From 03d6b988e2c94f6697ca5810edf31aea70f85fc8 Mon Sep 17 00:00:00 2001 From: jingrow Date: Sat, 22 Nov 2025 19:57:14 +0800 Subject: [PATCH] fix dynamic tool route loading in production --- ...bb19.js => AIAgentFlowBuilder-dceed8dc.js} | 2 +- ...il-45a0a869.js => AgentDetail-399db3ef.js} | 2 +- ...290e2a.js => AgentMarketplace-c0b62c90.js} | 2 +- ...tail-365ae623.js => AppDetail-f30c2502.js} | 2 +- ...r-64bbe86f.js => AppInstaller-39ffeeb1.js} | 2 +- ...yout-5b6443f0.js => AppLayout-e889a9f9.js} | 2 +- ...87b3f364.js => AppMarketplace-c21bb005.js} | 2 +- ...{Attach-8276bb81.js => Attach-4627ede0.js} | 2 +- ...ge-e6f5c274.js => AttachImage-c5181b42.js} | 2 +- ...07cb5.js => AttachmentSection-b5886d4a.js} | 2 +- ...e-7b31bbab.js => Autocomplete-e76c53a6.js} | 2 +- ...arcode-719e9569.js => Barcode-b3bbd4be.js} | 2 +- ...odal-d7f37376.js => BaseModal-8966a5e5.js} | 2 +- ...{Button-a612ab31.js => Button-c2adfcfc.js} | 2 +- .../{Check-fb5a1570.js => Check-24e0c7d2.js} | 2 +- .../{Code-01463ed1.js => Code-a486a048.js} | 2 +- .../{Color-2263ebad.js => Color-5d20723d.js} | 2 +- ...omment-4474028c.js => Comment-dc20eab5.js} | 2 +- ...940f0.js => CreateAppTemplate-4a358f5d.js} | 2 +- ....js => CreatePagetypeTemplate-270dec5c.js} | 2 +- ...tor-8edd4409.js => CronEditor-dfbcf304.js} | 2 +- ...rency-ea3fff6b.js => Currency-e7293724.js} | 2 +- ...dge-5fa8e332.js => CustomEdge-acd8b99a.js} | 2 +- ...oard-c919d047.js => Dashboard-88a5c6ca.js} | 2 +- .../{Data-b998e8ff.js => Data-7934e730.js} | 2 +- .../{Date-d9d7fa30.js => Date-763305af.js} | 2 +- ...ange-10631955.js => DateRange-74c289f4.js} | 2 +- ...etime-07afed2b.js => Datetime-5b4889cc.js} | 2 +- ...ation-0b5f170c.js => Duration-d579c52e.js} | 2 +- .../dist/assets/DynamicIcon-0b8ea1dd.js | 1 + .../dist/assets/DynamicIcon-23ccc37d.js | 1 - ...e_type_script_setup_true_lang-055bc1ef.js} | 2 +- ...nk-07536e48.js => DynamicLink-32decd06.js} | 2 +- ...-0f0815cf.js => EditableInput-9b4a13c6.js} | 2 +- ...b36047.js => ExecutionResults-030bde4d.js} | 2 +- ...-96c1a911.js => FieldRenderer-53748ec1.js} | 2 +- ...ue_type_script_setup_true_lang-464d7d5a.js | 1 - ...ue_type_script_setup_true_lang-7adedf0d.js | 1 + ...rBar-45792ce3.js => FilterBar-bbb6dcae.js} | 2 +- .../{Float-8c96ff2b.js => Float-0aad1a66.js} | 2 +- ...er-f01bc2c5.js => FlowBuilder-0d4e0acd.js} | 2 +- ...d5.js => FlowBuilderContainer-001ad899.js} | 2 +- ...anel-d76818a3.js => FormPanel-c54b1170.js} | 2 +- ...on-aba67e02.js => Geolocation-373e65fa.js} | 2 +- .../{HTML-f1d2e10e.js => HTML-1a069d19.js} | 2 +- .../{HTML-2425a86a.js => HTML-e4ff5ef2.js} | 2 +- ...tor-2c00cb22.js => HTMLEditor-1c6a4caf.js} | 2 +- ...eading-7bb40e5b.js => Heading-91fede8f.js} | 2 +- .../{Icon-d4eb6846.js => Icon-cfe49052.js} | 2 +- ...ker-5c7938fe.js => IconPicker-2d07cad1.js} | 2 +- .../{Image-85b37f18.js => Image-0feee1f3.js} | 2 +- ...y-f23d1823.js => ImageGallery-63e4832e.js} | 2 +- ...n-09d74899.js => ImageSection-ac8b0acc.js} | 2 +- ...9b.js => InstallProgressModal-1ec0a6fc.js} | 2 +- ...-e802f9b1.js => InstalledApps-82e8ebf3.js} | 2 +- .../{Int-cb384090.js => Int-88866b25.js} | 2 +- .../{JSON-58e60940.js => JSON-8353e669.js} | 2 +- .../frontend/dist/assets/Jeditor-482b2d2d.js | 1 + .../frontend/dist/assets/Jeditor-daae2995.js | 1 - ...e_vue_type_style_index_0_lang-1cf7520f.js} | 2 +- .../{Link-343da71e.js => Link-e3a40d9c.js} | 2 +- ...23c5651e.js => LocalJobDetail-224c7ffe.js} | 2 +- ...t-941079f5.js => LocalJobList-32f75d47.js} | 2 +- .../{Login-e84eeaa5.js => Login-5d7d02cc.js} | 2 +- ...gText-34963ee2.js => LongText-6a20c0d8.js} | 2 +- ...e284f6a7.js => MarkdownEditor-bb608218.js} | 2 +- ...er-477f9d33.js => MenuManager-acab2587.js} | 2 +- ...eck-06484c13.js => MultiCheck-3ad7391b.js} | 2 +- ...ct-a8b10d4a.js => MultiSelect-17bab1f5.js} | 2 +- ...399647b.js => MultiSelectList-cb3c53c2.js} | 2 +- ...d80529.js => MultiSelectPills-2c3638ce.js} | 2 +- ...8a4e1.js => MyPublishedAgents-304f7bc5.js} | 2 +- ...841d231.js => MyPublishedApps-238e9f54.js} | 2 +- ...a67ba0.js => MyPublishedNodes-0e96c3b3.js} | 2 +- ...554321.js => MyPublishedTools-08cb28bd.js} | 2 +- ...ail-35657f13.js => NodeDetail-7cfd7dab.js} | 2 +- ...e9a22c1.js => NodeMarketplace-4d50c853.js} | 2 +- ...te-0bf3e03c.js => NodePalette-e0efb88f.js} | 2 +- ...68bd0.js => NodePropertyModal-94ca3f6a.js} | 2 +- ...sword-9db4e189.js => Password-1628507d.js} | 2 +- ...ercent-2e2456c4.js => Percent-7a55d50d.js} | 2 +- .../{Phone-5865a10d.js => Phone-183c9dac.js} | 2 +- ...App-6a75806b.js => PublishApp-2a667051.js} | 2 +- ...49.js => PublishProgressModal-f3df8eed.js} | 2 +- ...ol-5a439f8d.js => PublishTool-ad247867.js} | 2 +- ...{Rating-a567e4d3.js => Rating-c3e83385.js} | 2 +- ...2778.js => ScheduledJobDetail-04a73e38.js} | 2 +- ...1a74a1.js => ScheduledJobList-701bc4cd.js} | 2 +- ...-5cd9fb38.js => SchemaBuilder-2d5c17c9.js} | 2 +- ...s-f9c37971.js => SchemaCanvas-a841f26c.js} | 2 +- ...9d9f8.js => SchemaEditorModal-3018ed0e.js} | 4 +- ...437a.js => SchemaFormRenderer-f7be2793.js} | 2 +- ...4d2e1c5b.js => SchemaSections-e3f0b1d4.js} | 2 +- ...-b54eef1a.js => SchemaSidebar-9a869d8a.js} | 2 +- ...abs-ab485280.js => SchemaTabs-a065312d.js} | 2 +- ...-6b5224b5.js => SearchResults-d4bf38c9.js} | 2 +- ...{Select-5b49c9cf.js => Select-27d3c7bc.js} | 2 +- ...tings-4aec7f8a.js => Settings-71622085.js} | 2 +- ...ture-d2f5f930.js => Signature-5b7271c1.js} | 2 +- ...Text-b65f144b.js => SmallText-737cdfbd.js} | 2 +- .../{Table-918c7db3.js => Table-0955984f.js} | 2 +- ...19ef1f.js => TableMultiSelect-4a586fb2.js} | 2 +- ...ion-ea833646.js => TagSection-1c67ceec.js} | 2 +- .../{Text-fd382873.js => Text-5d36f57e.js} | 2 +- ...tor-82ec254b.js => TextEditor-bc146615.js} | 2 +- .../{Time-da0b8920.js => Time-693f64a3.js} | 2 +- ...ail-6281966f.js => ToolDetail-5616af79.js} | 2 +- ...0ac3463.js => ToolMarketplace-c5fcc4f7.js} | 2 +- .../{Tools-5d63dae2.js => Tools-552e831e.js} | 2 +- ...-70d43a62.js => WorkspacePage-959eb42b.js} | 2 +- ...{common-0beb20f4.js => common-a0065b74.js} | 2 +- ...t-e8912061.js => default_list-0fd07094.js} | 2 +- ...20.js => default_list_actions-cba34fe1.js} | 2 +- ....js => default_list_filterbar-1e31f995.js} | 2 +- ...04.js => default_list_toolbar-d9bb4a58.js} | 2 +- ...35a29975.js => default_single-4e5cf8b5.js} | 2 +- ...age-8bd043aa.js => detailPage-6fba6f65.js} | 2 +- ...r-8a40f15e.js => file_toolbar-9a0ee9fa.js} | 2 +- ...er-2967762c.js => flowBuilder-41625347.js} | 2 +- ...conify-b5ab1212.js => iconify-30ae5ba5.js} | 2 +- .../{index-73986d31.js => index-2fe8616a.js} | 2 +- .../{index-b37e64ca.js => index-7b482730.js} | 346 +++++++++--------- .../frontend/dist/assets/listPage-7b769269.js | 1 - .../frontend/dist/assets/listPage-f787184b.js | 1 + ...Jobs-c0141744.js => localJobs-672668f6.js} | 2 +- ...> local_ai_agent_list_actions-5e26facc.js} | 2 +- ....js => local_ai_agent_toolbar-63529468.js} | 2 +- ...=> local_ai_node_list_actions-18165149.js} | 2 +- ...=> local_ai_node_list_toolbar-992f3003.js} | 2 +- ...7.js => local_ai_node_toolbar-b4b8167d.js} | 2 +- .../{menu-ce924ee4.js => menu-322c1713.js} | 2 +- ...a-868a0a07.js => nodeMetadata-55f4474f.js} | 2 +- .../{nodes-db5c425b.js => nodes-1118f3b4.js} | 2 +- ...d35b8e0.js => package_toolbar-d19ee056.js} | 2 +- ...895689.js => pagetypeOverride-df0ae790.js} | 2 +- ...1bf34.js => remove_background-9b9ff4f1.js} | 2 +- ...-e59ba30c.js => scheduledJobs-af63a2c9.js} | 2 +- ...1.js => schema_builder.bundle-63e6f588.js} | 2 +- .../{slug-217ba005.js => slug-c378c25f.js} | 2 +- .../{store-c4ca15da.js => store-28c0e441.js} | 2 +- ...-e20a6f7d.js => vue-flow-core-41a1e515.js} | 2 +- apps/jingrow/frontend/dist/index.html | 2 +- .../src/shared/utils/dynamicRoutes.ts | 45 +-- 143 files changed, 316 insertions(+), 351 deletions(-) rename apps/jingrow/frontend/dist/assets/{AIAgentFlowBuilder-0d0fbb19.js => AIAgentFlowBuilder-dceed8dc.js} (99%) rename apps/jingrow/frontend/dist/assets/{AgentDetail-45a0a869.js => AgentDetail-399db3ef.js} (97%) rename apps/jingrow/frontend/dist/assets/{AgentMarketplace-4e290e2a.js => AgentMarketplace-c0b62c90.js} (98%) rename apps/jingrow/frontend/dist/assets/{AppDetail-365ae623.js => AppDetail-f30c2502.js} (98%) rename apps/jingrow/frontend/dist/assets/{AppInstaller-64bbe86f.js => AppInstaller-39ffeeb1.js} (98%) rename apps/jingrow/frontend/dist/assets/{AppLayout-5b6443f0.js => AppLayout-e889a9f9.js} (97%) rename apps/jingrow/frontend/dist/assets/{AppMarketplace-87b3f364.js => AppMarketplace-c21bb005.js} (97%) rename apps/jingrow/frontend/dist/assets/{Attach-8276bb81.js => Attach-4627ede0.js} (95%) rename apps/jingrow/frontend/dist/assets/{AttachImage-e6f5c274.js => AttachImage-c5181b42.js} (96%) rename apps/jingrow/frontend/dist/assets/{AttachmentSection-77707cb5.js => AttachmentSection-b5886d4a.js} (97%) rename apps/jingrow/frontend/dist/assets/{Autocomplete-7b31bbab.js => Autocomplete-e76c53a6.js} (93%) rename apps/jingrow/frontend/dist/assets/{Barcode-719e9569.js => Barcode-b3bbd4be.js} (93%) rename apps/jingrow/frontend/dist/assets/{BaseModal-d7f37376.js => BaseModal-8966a5e5.js} (92%) rename apps/jingrow/frontend/dist/assets/{Button-a612ab31.js => Button-c2adfcfc.js} (93%) rename apps/jingrow/frontend/dist/assets/{Check-fb5a1570.js => Check-24e0c7d2.js} (95%) rename apps/jingrow/frontend/dist/assets/{Code-01463ed1.js => Code-a486a048.js} (96%) rename apps/jingrow/frontend/dist/assets/{Color-2263ebad.js => Color-5d20723d.js} (92%) rename apps/jingrow/frontend/dist/assets/{Comment-4474028c.js => Comment-dc20eab5.js} (93%) rename apps/jingrow/frontend/dist/assets/{CreateAppTemplate-52a940f0.js => CreateAppTemplate-4a358f5d.js} (97%) rename apps/jingrow/frontend/dist/assets/{CreatePagetypeTemplate-779a55b4.js => CreatePagetypeTemplate-270dec5c.js} (79%) rename apps/jingrow/frontend/dist/assets/{CronEditor-8edd4409.js => CronEditor-dfbcf304.js} (99%) rename apps/jingrow/frontend/dist/assets/{Currency-ea3fff6b.js => Currency-e7293724.js} (93%) rename apps/jingrow/frontend/dist/assets/{CustomEdge-5fa8e332.js => CustomEdge-acd8b99a.js} (87%) rename apps/jingrow/frontend/dist/assets/{Dashboard-c919d047.js => Dashboard-88a5c6ca.js} (92%) rename apps/jingrow/frontend/dist/assets/{Data-b998e8ff.js => Data-7934e730.js} (93%) rename apps/jingrow/frontend/dist/assets/{Date-d9d7fa30.js => Date-763305af.js} (93%) rename apps/jingrow/frontend/dist/assets/{DateRange-10631955.js => DateRange-74c289f4.js} (93%) rename apps/jingrow/frontend/dist/assets/{Datetime-07afed2b.js => Datetime-5b4889cc.js} (93%) rename apps/jingrow/frontend/dist/assets/{Duration-0b5f170c.js => Duration-d579c52e.js} (93%) create mode 100644 apps/jingrow/frontend/dist/assets/DynamicIcon-0b8ea1dd.js delete mode 100644 apps/jingrow/frontend/dist/assets/DynamicIcon-23ccc37d.js rename apps/jingrow/frontend/dist/assets/{DynamicIcon.vue_vue_type_script_setup_true_lang-d4076c90.js => DynamicIcon.vue_vue_type_script_setup_true_lang-055bc1ef.js} (72%) rename apps/jingrow/frontend/dist/assets/{DynamicLink-07536e48.js => DynamicLink-32decd06.js} (93%) rename apps/jingrow/frontend/dist/assets/{EditableInput-0f0815cf.js => EditableInput-9b4a13c6.js} (94%) rename apps/jingrow/frontend/dist/assets/{ExecutionResults-a7b36047.js => ExecutionResults-030bde4d.js} (93%) rename apps/jingrow/frontend/dist/assets/{FieldRenderer-96c1a911.js => FieldRenderer-53748ec1.js} (52%) delete mode 100644 apps/jingrow/frontend/dist/assets/FieldRenderer.vue_vue_type_script_setup_true_lang-464d7d5a.js create mode 100644 apps/jingrow/frontend/dist/assets/FieldRenderer.vue_vue_type_script_setup_true_lang-7adedf0d.js rename apps/jingrow/frontend/dist/assets/{FilterBar-45792ce3.js => FilterBar-bbb6dcae.js} (98%) rename apps/jingrow/frontend/dist/assets/{Float-8c96ff2b.js => Float-0aad1a66.js} (93%) rename apps/jingrow/frontend/dist/assets/{FlowBuilder-f01bc2c5.js => FlowBuilder-0d4e0acd.js} (71%) rename apps/jingrow/frontend/dist/assets/{FlowBuilderContainer-443a20d5.js => FlowBuilderContainer-001ad899.js} (92%) rename apps/jingrow/frontend/dist/assets/{FormPanel-d76818a3.js => FormPanel-c54b1170.js} (74%) rename apps/jingrow/frontend/dist/assets/{Geolocation-aba67e02.js => Geolocation-373e65fa.js} (93%) rename apps/jingrow/frontend/dist/assets/{HTML-f1d2e10e.js => HTML-1a069d19.js} (91%) rename apps/jingrow/frontend/dist/assets/{HTML-2425a86a.js => HTML-e4ff5ef2.js} (97%) rename apps/jingrow/frontend/dist/assets/{HTMLEditor-2c00cb22.js => HTMLEditor-1c6a4caf.js} (97%) rename apps/jingrow/frontend/dist/assets/{Heading-7bb40e5b.js => Heading-91fede8f.js} (91%) rename apps/jingrow/frontend/dist/assets/{Icon-d4eb6846.js => Icon-cfe49052.js} (90%) rename apps/jingrow/frontend/dist/assets/{IconPicker-5c7938fe.js => IconPicker-2d07cad1.js} (99%) rename apps/jingrow/frontend/dist/assets/{Image-85b37f18.js => Image-0feee1f3.js} (95%) rename apps/jingrow/frontend/dist/assets/{ImageGallery-f23d1823.js => ImageGallery-63e4832e.js} (97%) rename apps/jingrow/frontend/dist/assets/{ImageSection-09d74899.js => ImageSection-ac8b0acc.js} (95%) rename apps/jingrow/frontend/dist/assets/{InstallProgressModal-8a22be9b.js => InstallProgressModal-1ec0a6fc.js} (94%) rename apps/jingrow/frontend/dist/assets/{InstalledApps-e802f9b1.js => InstalledApps-82e8ebf3.js} (96%) rename apps/jingrow/frontend/dist/assets/{Int-cb384090.js => Int-88866b25.js} (93%) rename apps/jingrow/frontend/dist/assets/{JSON-58e60940.js => JSON-8353e669.js} (94%) create mode 100644 apps/jingrow/frontend/dist/assets/Jeditor-482b2d2d.js delete mode 100644 apps/jingrow/frontend/dist/assets/Jeditor-daae2995.js rename apps/jingrow/frontend/dist/assets/{Jeditor.vue_vue_type_style_index_0_lang-27957db9.js => Jeditor.vue_vue_type_style_index_0_lang-1cf7520f.js} (99%) rename apps/jingrow/frontend/dist/assets/{Link-343da71e.js => Link-e3a40d9c.js} (96%) rename apps/jingrow/frontend/dist/assets/{LocalJobDetail-23c5651e.js => LocalJobDetail-224c7ffe.js} (96%) rename apps/jingrow/frontend/dist/assets/{LocalJobList-941079f5.js => LocalJobList-32f75d47.js} (97%) rename apps/jingrow/frontend/dist/assets/{Login-e84eeaa5.js => Login-5d7d02cc.js} (94%) rename apps/jingrow/frontend/dist/assets/{LongText-34963ee2.js => LongText-6a20c0d8.js} (93%) rename apps/jingrow/frontend/dist/assets/{MarkdownEditor-e284f6a7.js => MarkdownEditor-bb608218.js} (99%) rename apps/jingrow/frontend/dist/assets/{MenuManager-477f9d33.js => MenuManager-acab2587.js} (96%) rename apps/jingrow/frontend/dist/assets/{MultiCheck-06484c13.js => MultiCheck-3ad7391b.js} (90%) rename apps/jingrow/frontend/dist/assets/{MultiSelect-a8b10d4a.js => MultiSelect-17bab1f5.js} (93%) rename apps/jingrow/frontend/dist/assets/{MultiSelectList-7399647b.js => MultiSelectList-cb3c53c2.js} (93%) rename apps/jingrow/frontend/dist/assets/{MultiSelectPills-3dd80529.js => MultiSelectPills-2c3638ce.js} (93%) rename apps/jingrow/frontend/dist/assets/{MyPublishedAgents-c408a4e1.js => MyPublishedAgents-304f7bc5.js} (97%) rename apps/jingrow/frontend/dist/assets/{MyPublishedApps-3841d231.js => MyPublishedApps-238e9f54.js} (98%) rename apps/jingrow/frontend/dist/assets/{MyPublishedNodes-faa67ba0.js => MyPublishedNodes-0e96c3b3.js} (97%) rename apps/jingrow/frontend/dist/assets/{MyPublishedTools-78554321.js => MyPublishedTools-08cb28bd.js} (98%) rename apps/jingrow/frontend/dist/assets/{NodeDetail-35657f13.js => NodeDetail-7cfd7dab.js} (98%) rename apps/jingrow/frontend/dist/assets/{NodeMarketplace-1e9a22c1.js => NodeMarketplace-4d50c853.js} (97%) rename apps/jingrow/frontend/dist/assets/{NodePalette-0bf3e03c.js => NodePalette-e0efb88f.js} (95%) rename apps/jingrow/frontend/dist/assets/{NodePropertyModal-c7168bd0.js => NodePropertyModal-94ca3f6a.js} (96%) rename apps/jingrow/frontend/dist/assets/{Password-9db4e189.js => Password-1628507d.js} (93%) rename apps/jingrow/frontend/dist/assets/{Percent-2e2456c4.js => Percent-7a55d50d.js} (92%) rename apps/jingrow/frontend/dist/assets/{Phone-5865a10d.js => Phone-183c9dac.js} (93%) rename apps/jingrow/frontend/dist/assets/{PublishApp-6a75806b.js => PublishApp-2a667051.js} (95%) rename apps/jingrow/frontend/dist/assets/{PublishProgressModal-0ec76e49.js => PublishProgressModal-f3df8eed.js} (95%) rename apps/jingrow/frontend/dist/assets/{PublishTool-5a439f8d.js => PublishTool-ad247867.js} (94%) rename apps/jingrow/frontend/dist/assets/{Rating-a567e4d3.js => Rating-c3e83385.js} (92%) rename apps/jingrow/frontend/dist/assets/{ScheduledJobDetail-54e52778.js => ScheduledJobDetail-04a73e38.js} (97%) rename apps/jingrow/frontend/dist/assets/{ScheduledJobList-7e1a74a1.js => ScheduledJobList-701bc4cd.js} (97%) rename apps/jingrow/frontend/dist/assets/{SchemaBuilder-5cd9fb38.js => SchemaBuilder-2d5c17c9.js} (80%) rename apps/jingrow/frontend/dist/assets/{SchemaCanvas-f9c37971.js => SchemaCanvas-a841f26c.js} (89%) rename apps/jingrow/frontend/dist/assets/{SchemaEditorModal-42c9d9f8.js => SchemaEditorModal-3018ed0e.js} (99%) rename apps/jingrow/frontend/dist/assets/{SchemaFormRenderer-0384437a.js => SchemaFormRenderer-f7be2793.js} (99%) rename apps/jingrow/frontend/dist/assets/{SchemaSections-4d2e1c5b.js => SchemaSections-e3f0b1d4.js} (99%) rename apps/jingrow/frontend/dist/assets/{SchemaSidebar-b54eef1a.js => SchemaSidebar-9a869d8a.js} (99%) rename apps/jingrow/frontend/dist/assets/{SchemaTabs-ab485280.js => SchemaTabs-a065312d.js} (94%) rename apps/jingrow/frontend/dist/assets/{SearchResults-6b5224b5.js => SearchResults-d4bf38c9.js} (97%) rename apps/jingrow/frontend/dist/assets/{Select-5b49c9cf.js => Select-27d3c7bc.js} (93%) rename apps/jingrow/frontend/dist/assets/{Settings-4aec7f8a.js => Settings-71622085.js} (99%) rename apps/jingrow/frontend/dist/assets/{Signature-d2f5f930.js => Signature-5b7271c1.js} (92%) rename apps/jingrow/frontend/dist/assets/{SmallText-b65f144b.js => SmallText-737cdfbd.js} (93%) rename apps/jingrow/frontend/dist/assets/{Table-918c7db3.js => Table-0955984f.js} (98%) rename apps/jingrow/frontend/dist/assets/{TableMultiSelect-7d19ef1f.js => TableMultiSelect-4a586fb2.js} (91%) rename apps/jingrow/frontend/dist/assets/{TagSection-ea833646.js => TagSection-1c67ceec.js} (85%) rename apps/jingrow/frontend/dist/assets/{Text-fd382873.js => Text-5d36f57e.js} (93%) rename apps/jingrow/frontend/dist/assets/{TextEditor-82ec254b.js => TextEditor-bc146615.js} (99%) rename apps/jingrow/frontend/dist/assets/{Time-da0b8920.js => Time-693f64a3.js} (92%) rename apps/jingrow/frontend/dist/assets/{ToolDetail-6281966f.js => ToolDetail-5616af79.js} (98%) rename apps/jingrow/frontend/dist/assets/{ToolMarketplace-00ac3463.js => ToolMarketplace-c5fcc4f7.js} (98%) rename apps/jingrow/frontend/dist/assets/{Tools-5d63dae2.js => Tools-552e831e.js} (96%) rename apps/jingrow/frontend/dist/assets/{WorkspacePage-70d43a62.js => WorkspacePage-959eb42b.js} (93%) rename apps/jingrow/frontend/dist/assets/{common-0beb20f4.js => common-a0065b74.js} (98%) rename apps/jingrow/frontend/dist/assets/{default_list-e8912061.js => default_list-0fd07094.js} (95%) rename apps/jingrow/frontend/dist/assets/{default_list_actions-84b0e220.js => default_list_actions-cba34fe1.js} (93%) rename apps/jingrow/frontend/dist/assets/{default_list_filterbar-f43e8362.js => default_list_filterbar-1e31f995.js} (70%) rename apps/jingrow/frontend/dist/assets/{default_list_toolbar-8b87a104.js => default_list_toolbar-d9bb4a58.js} (96%) rename apps/jingrow/frontend/dist/assets/{default_single-35a29975.js => default_single-4e5cf8b5.js} (98%) rename apps/jingrow/frontend/dist/assets/{detailPage-8bd043aa.js => detailPage-6fba6f65.js} (57%) rename apps/jingrow/frontend/dist/assets/{file_toolbar-8a40f15e.js => file_toolbar-9a0ee9fa.js} (93%) rename apps/jingrow/frontend/dist/assets/{flowBuilder-2967762c.js => flowBuilder-41625347.js} (86%) rename apps/jingrow/frontend/dist/assets/{iconify-b5ab1212.js => iconify-30ae5ba5.js} (99%) rename apps/jingrow/frontend/dist/assets/{index-73986d31.js => index-2fe8616a.js} (88%) rename apps/jingrow/frontend/dist/assets/{index-b37e64ca.js => index-7b482730.js} (78%) delete mode 100644 apps/jingrow/frontend/dist/assets/listPage-7b769269.js create mode 100644 apps/jingrow/frontend/dist/assets/listPage-f787184b.js rename apps/jingrow/frontend/dist/assets/{localJobs-c0141744.js => localJobs-672668f6.js} (89%) rename apps/jingrow/frontend/dist/assets/{local_ai_agent_list_actions-13f3975d.js => local_ai_agent_list_actions-5e26facc.js} (93%) rename apps/jingrow/frontend/dist/assets/{local_ai_agent_toolbar-04d02519.js => local_ai_agent_toolbar-63529468.js} (95%) rename apps/jingrow/frontend/dist/assets/{local_ai_node_list_actions-cb2a486f.js => local_ai_node_list_actions-18165149.js} (98%) rename apps/jingrow/frontend/dist/assets/{local_ai_node_list_toolbar-549889d1.js => local_ai_node_list_toolbar-992f3003.js} (95%) rename apps/jingrow/frontend/dist/assets/{local_ai_node_toolbar-bc5499f7.js => local_ai_node_toolbar-b4b8167d.js} (95%) rename apps/jingrow/frontend/dist/assets/{menu-ce924ee4.js => menu-322c1713.js} (98%) rename apps/jingrow/frontend/dist/assets/{nodeMetadata-868a0a07.js => nodeMetadata-55f4474f.js} (98%) rename apps/jingrow/frontend/dist/assets/{nodes-db5c425b.js => nodes-1118f3b4.js} (95%) rename apps/jingrow/frontend/dist/assets/{package_toolbar-2d35b8e0.js => package_toolbar-d19ee056.js} (96%) rename apps/jingrow/frontend/dist/assets/{pagetypeOverride-1f895689.js => pagetypeOverride-df0ae790.js} (56%) rename apps/jingrow/frontend/dist/assets/{remove_background-ae41bf34.js => remove_background-9b9ff4f1.js} (99%) rename apps/jingrow/frontend/dist/assets/{scheduledJobs-e59ba30c.js => scheduledJobs-af63a2c9.js} (94%) rename apps/jingrow/frontend/dist/assets/{schema_builder.bundle-b5da2271.js => schema_builder.bundle-63e6f588.js} (79%) rename apps/jingrow/frontend/dist/assets/{slug-217ba005.js => slug-c378c25f.js} (83%) rename apps/jingrow/frontend/dist/assets/{store-c4ca15da.js => store-28c0e441.js} (99%) rename apps/jingrow/frontend/dist/assets/{vue-flow-core-e20a6f7d.js => vue-flow-core-41a1e515.js} (99%) diff --git a/apps/jingrow/frontend/dist/assets/AIAgentFlowBuilder-0d0fbb19.js b/apps/jingrow/frontend/dist/assets/AIAgentFlowBuilder-dceed8dc.js similarity index 99% rename from apps/jingrow/frontend/dist/assets/AIAgentFlowBuilder-0d0fbb19.js rename to apps/jingrow/frontend/dist/assets/AIAgentFlowBuilder-dceed8dc.js index c6819a2..3740802 100644 --- a/apps/jingrow/frontend/dist/assets/AIAgentFlowBuilder-0d0fbb19.js +++ b/apps/jingrow/frontend/dist/assets/AIAgentFlowBuilder-dceed8dc.js @@ -1,4 +1,4 @@ -import{d as ae,aB as _t,l as C,D as tt,w as O,aC as j,e as R,F as le,h as Y,a9 as St,j as $,y as U,f as S,aD as Zn,aE as un,r as V,aF as Jn,c as et,aG as Qn,g as q,C as jn,a1 as cn,Y as Vt,aH as ti,aI as ei,aJ as Ve,A as hn,u as ni,o as Oe,a7 as ii,J as we,K as oi,M as qe,t as D,p as st,n as mt,I as ri,T as Le}from"./index-b37e64ca.js";import{P as si,u as ue,_ as fn,g as ai,a as li,w as ui,i as ci,b as Dt,c as hi}from"./vue-flow-core-e20a6f7d.js";import{g as dn,u as fi,p as di,a as gi}from"./nodeMetadata-868a0a07.js";import pi from"./NodePalette-0bf3e03c.js";import mi from"./ExecutionResults-a7b36047.js";import{_ as vi}from"./_plugin-vue_export-helper-c27b6911.js";import"./NodePropertyModal-c7168bd0.js";import"./SchemaFormRenderer-0384437a.js";import"./nodes-db5c425b.js";const yi={name:"ControlButton",compatConfig:{MODE:3}},wi=(t,e)=>{const n=t.__vccOpts||t;for(const[i,o]of e)n[i]=o;return n},_i={type:"button",class:"vue-flow__controls-button"};function ki(t,e,n,i,o,s){return C(),R("button",_i,[j(t.$slots,"default")])}const It=wi(yi,[["render",ki]]),xi={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},bi=S("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"},null,-1),$i=[bi];function Ci(t,e){return C(),R("svg",xi,$i)}const Ei={render:Ci},Ni={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},Si=S("path",{d:"M0 0h32v4.2H0z"},null,-1),Mi=[Si];function zi(t,e){return C(),R("svg",Ni,Mi)}const Ti={render:zi},Ri={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},Ai=S("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0 0 27.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94a.919.919 0 0 1-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"},null,-1),Di=[Ai];function Fi(t,e){return C(),R("svg",Ri,Di)}const Bi={render:Fi},Ii={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},Hi=S("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 0 0 0 13.714v15.238A3.056 3.056 0 0 0 3.048 32h18.285a3.056 3.056 0 0 0 3.048-3.048V13.714a3.056 3.056 0 0 0-3.048-3.047zM12.19 24.533a3.056 3.056 0 0 1-3.047-3.047 3.056 3.056 0 0 1 3.047-3.048 3.056 3.056 0 0 1 3.048 3.048 3.056 3.056 0 0 1-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"},null,-1),Pi=[Hi];function Vi(t,e){return C(),R("svg",Ii,Pi)}const Oi={render:Vi},qi={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},Li=S("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 0 0 0 13.714v15.238A3.056 3.056 0 0 0 3.048 32h18.285a3.056 3.056 0 0 0 3.048-3.048V13.714a3.056 3.056 0 0 0-3.048-3.047zM12.19 24.533a3.056 3.056 0 0 1-3.047-3.047 3.056 3.056 0 0 1 3.047-3.048 3.056 3.056 0 0 1 3.048 3.048 3.056 3.056 0 0 1-3.048 3.047z"},null,-1),Xi=[Li];function Yi(t,e){return C(),R("svg",qi,Xi)}const Ui={render:Yi},Gi={name:"Controls",compatConfig:{MODE:3}},Wi=ae({...Gi,props:{showZoom:{type:Boolean,default:!0},showFitView:{type:Boolean,default:!0},showInteractive:{type:Boolean,default:!0},fitViewParams:{},position:{default:()=>si.BottomLeft}},emits:["zoomIn","zoomOut","fitView","interactionChange"],setup(t,{emit:e}){const{nodesDraggable:n,nodesConnectable:i,elementsSelectable:o,setInteractive:s,zoomIn:r,zoomOut:a,fitView:l,viewport:u,minZoom:h,maxZoom:f}=ue(),g=_t(()=>n.value||i.value||o.value),v=_t(()=>u.value.zoom<=h.value),M=_t(()=>u.value.zoom>=f.value);function z(){r(),e("zoomIn")}function T(){a(),e("zoomOut")}function b(){l(t.fitViewParams),e("fitView")}function P(){s(!g.value),e("interactionChange",!g.value)}return(E,L)=>(C(),tt($(fn),{class:"vue-flow__controls",position:E.position},{default:O(()=>[j(E.$slots,"top"),E.showZoom?(C(),R(le,{key:0},[j(E.$slots,"control-zoom-in",{},()=>[Y(It,{class:"vue-flow__controls-zoomin",disabled:M.value,onClick:z},{default:O(()=>[j(E.$slots,"icon-zoom-in",{},()=>[(C(),tt(St($(Ei))))])]),_:3},8,["disabled"])]),j(E.$slots,"control-zoom-out",{},()=>[Y(It,{class:"vue-flow__controls-zoomout",disabled:v.value,onClick:T},{default:O(()=>[j(E.$slots,"icon-zoom-out",{},()=>[(C(),tt(St($(Ti))))])]),_:3},8,["disabled"])])],64)):U("",!0),E.showFitView?j(E.$slots,"control-fit-view",{key:1},()=>[Y(It,{class:"vue-flow__controls-fitview",onClick:b},{default:O(()=>[j(E.$slots,"icon-fit-view",{},()=>[(C(),tt(St($(Bi))))])]),_:3})]):U("",!0),E.showInteractive?j(E.$slots,"control-interactive",{key:2},()=>[E.showInteractive?(C(),tt(It,{key:0,class:"vue-flow__controls-interactive",onClick:P},{default:O(()=>[g.value?j(E.$slots,"icon-unlock",{key:0},()=>[(C(),tt(St($(Ui))))]):U("",!0),g.value?U("",!0):j(E.$slots,"icon-lock",{key:1},()=>[(C(),tt(St($(Oi))))])]),_:3})):U("",!0)]):U("",!0),j(E.$slots,"default")]),_:3},8,["position"]))}});var Ki={value:()=>{}};function Re(){for(var t=0,e=arguments.length,n={},i;t=0&&(i=n.slice(o+1),n=n.slice(0,o)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:i}})}Jt.prototype=Re.prototype={constructor:Jt,on:function(t,e){var n=this._,i=Zi(t+"",n),o,s=-1,r=i.length;if(arguments.length<2){for(;++s0)for(var n=new Array(o),i=0,o,s;i=0&&(e=t.slice(0,n))!=="xmlns"&&(t=t.slice(n+1)),Ye.hasOwnProperty(e)?{space:Ye[e],local:t}:t}function Qi(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===be&&e.documentElement.namespaceURI===be?e.createElement(t):e.createElementNS(n,t)}}function ji(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function gn(t){var e=ce(t);return(e.local?ji:Qi)(e)}function to(){}function Ae(t){return t==null?to:function(){return this.querySelector(t)}}function eo(t){typeof t!="function"&&(t=Ae(t));for(var e=this._groups,n=e.length,i=new Array(n),o=0;o=E&&(E=P+1);!(Z=T[E])&&++E=0;)(r=i[o])&&(s&&r.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(r,s),s=r);return this}function No(t){t||(t=So);function e(f,g){return f&&g?t(f.__data__,g.__data__):!f-!g}for(var n=this._groups,i=n.length,o=new Array(i),s=0;se?1:t>=e?0:NaN}function Mo(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function zo(){return Array.from(this)}function To(){for(var t=this._groups,e=0,n=t.length;e1?this.each((e==null?qo:typeof e=="function"?Xo:Lo)(t,e,n??"")):zt(this.node(),t)}function zt(t,e){return t.style.getPropertyValue(e)||wn(t).getComputedStyle(t,null).getPropertyValue(e)}function Uo(t){return function(){delete this[t]}}function Go(t,e){return function(){this[t]=e}}function Wo(t,e){return function(){var n=e.apply(this,arguments);n==null?delete this[t]:this[t]=n}}function Ko(t,e){return arguments.length>1?this.each((e==null?Uo:typeof e=="function"?Wo:Go)(t,e)):this.node()[t]}function _n(t){return t.trim().split(/^|\s+/)}function De(t){return t.classList||new kn(t)}function kn(t){this._node=t,this._names=_n(t.getAttribute("class")||"")}kn.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function xn(t,e){for(var n=De(t),i=-1,o=e.length;++i=0&&(n=e.slice(i+1),e=e.slice(0,i)),{type:e,name:n}})}function br(t){return function(){var e=this.__on;if(e){for(var n=0,i=-1,o=e.length,s;n>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?Gt(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?Gt(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=Fr.exec(t))?new nt(e[1],e[2],e[3],1):(e=Br.exec(t))?new nt(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=Ir.exec(t))?Gt(e[1],e[2],e[3],e[4]):(e=Hr.exec(t))?Gt(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=Pr.exec(t))?Qe(e[1],e[2]/100,e[3]/100,1):(e=Vr.exec(t))?Qe(e[1],e[2]/100,e[3]/100,e[4]):Ue.hasOwnProperty(t)?Ke(Ue[t]):t==="transparent"?new nt(NaN,NaN,NaN,0):null}function Ke(t){return new nt(t>>16&255,t>>8&255,t&255,1)}function Gt(t,e,n,i){return i<=0&&(t=e=n=NaN),new nt(t,e,n,i)}function Lr(t){return t instanceof Ut||(t=Lt(t)),t?(t=t.rgb(),new nt(t.r,t.g,t.b,t.opacity)):new nt}function Ee(t,e,n,i){return arguments.length===1?Lr(t):new nt(t,e,n,i??1)}function nt(t,e,n,i){this.r=+t,this.g=+e,this.b=+n,this.opacity=+i}Fe(nt,Ee,En(Ut,{brighter(t){return t=t==null?ne:Math.pow(ne,t),new nt(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Ot:Math.pow(Ot,t),new nt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new nt($t(this.r),$t(this.g),$t(this.b),ie(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Ze,formatHex:Ze,formatHex8:Xr,formatRgb:Je,toString:Je}));function Ze(){return`#${bt(this.r)}${bt(this.g)}${bt(this.b)}`}function Xr(){return`#${bt(this.r)}${bt(this.g)}${bt(this.b)}${bt((isNaN(this.opacity)?1:this.opacity)*255)}`}function Je(){const t=ie(this.opacity);return`${t===1?"rgb(":"rgba("}${$t(this.r)}, ${$t(this.g)}, ${$t(this.b)}${t===1?")":`, ${t})`}`}function ie(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function $t(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function bt(t){return t=$t(t),(t<16?"0":"")+t.toString(16)}function Qe(t,e,n,i){return i<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new at(t,e,n,i)}function Nn(t){if(t instanceof at)return new at(t.h,t.s,t.l,t.opacity);if(t instanceof Ut||(t=Lt(t)),!t)return new at;if(t instanceof at)return t;t=t.rgb();var e=t.r/255,n=t.g/255,i=t.b/255,o=Math.min(e,n,i),s=Math.max(e,n,i),r=NaN,a=s-o,l=(s+o)/2;return a?(e===s?r=(n-i)/a+(n0&&l<1?0:r,new at(r,a,l,t.opacity)}function Yr(t,e,n,i){return arguments.length===1?Nn(t):new at(t,e,n,i??1)}function at(t,e,n,i){this.h=+t,this.s=+e,this.l=+n,this.opacity=+i}Fe(at,Yr,En(Ut,{brighter(t){return t=t==null?ne:Math.pow(ne,t),new at(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Ot:Math.pow(Ot,t),new at(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*e,o=2*n-i;return new nt(_e(t>=240?t-240:t+120,o,i),_e(t,o,i),_e(t<120?t+240:t-120,o,i),this.opacity)},clamp(){return new at(je(this.h),Wt(this.s),Wt(this.l),ie(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=ie(this.opacity);return`${t===1?"hsl(":"hsla("}${je(this.h)}, ${Wt(this.s)*100}%, ${Wt(this.l)*100}%${t===1?")":`, ${t})`}`}}));function je(t){return t=(t||0)%360,t<0?t+360:t}function Wt(t){return Math.max(0,Math.min(1,t||0))}function _e(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const Sn=t=>()=>t;function Ur(t,e){return function(n){return t+n*e}}function Gr(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(i){return Math.pow(t+i*e,n)}}function Wr(t){return(t=+t)==1?Mn:function(e,n){return n-e?Gr(e,n,t):Sn(isNaN(e)?n:e)}}function Mn(t,e){var n=e-t;return n?Ur(t,n):Sn(isNaN(t)?e:t)}const tn=function t(e){var n=Wr(e);function i(o,s){var r=n((o=Ee(o)).r,(s=Ee(s)).r),a=n(o.g,s.g),l=n(o.b,s.b),u=Mn(o.opacity,s.opacity);return function(h){return o.r=r(h),o.g=a(h),o.b=l(h),o.opacity=u(h),o+""}}return i.gamma=t,i}(1);function yt(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}var Ne=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ke=new RegExp(Ne.source,"g");function Kr(t){return function(){return t}}function Zr(t){return function(e){return t(e)+""}}function Jr(t,e){var n=Ne.lastIndex=ke.lastIndex=0,i,o,s,r=-1,a=[],l=[];for(t=t+"",e=e+"";(i=Ne.exec(t))&&(o=ke.exec(e));)(s=o.index)>n&&(s=e.slice(n,s),a[r]?a[r]+=s:a[++r]=s),(i=i[0])===(o=o[0])?a[r]?a[r]+=o:a[++r]=o:(a[++r]=null,l.push({i:r,x:yt(i,o)})),n=ke.lastIndex;return n180?h+=360:h-u>180&&(u+=360),g.push({i:f.push(o(f)+"rotate(",null,i)-2,x:yt(u,h)})):h&&f.push(o(f)+"rotate("+h+i)}function a(u,h,f,g){u!==h?g.push({i:f.push(o(f)+"skewX(",null,i)-2,x:yt(u,h)}):h&&f.push(o(f)+"skewX("+h+i)}function l(u,h,f,g,v,M){if(u!==f||h!==g){var z=v.push(o(v)+"scale(",null,",",null,")");M.push({i:z-4,x:yt(u,f)},{i:z-2,x:yt(h,g)})}else(f!==1||g!==1)&&v.push(o(v)+"scale("+f+","+g+")")}return function(u,h){var f=[],g=[];return u=t(u),h=t(h),s(u.translateX,u.translateY,h.translateX,h.translateY,f,g),r(u.rotate,h.rotate,f,g),a(u.skewX,h.skewX,f,g),l(u.scaleX,u.scaleY,h.scaleX,h.scaleY,f,g),u=h=null,function(v){for(var M=-1,z=g.length,T;++M=0&&t._call.call(void 0,e),t=t._next;--Tt}function on(){Ct=(re=Xt.now())+he,Tt=Ht=0;try{as()}finally{Tt=0,us(),Ct=0}}function ls(){var t=Xt.now(),e=t-re;e>Rn&&(he-=e,re=t)}function us(){for(var t,e=oe,n,i=1/0;e;)e._call?(i>e._time&&(i=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:oe=n);Pt=t,Me(i)}function Me(t){if(!Tt){Ht&&(Ht=clearTimeout(Ht));var e=t-Ct;e>24?(t<1/0&&(Ht=setTimeout(on,t-Xt.now()-he)),Ft&&(Ft=clearInterval(Ft))):(Ft||(re=Xt.now(),Ft=setInterval(ls,Rn)),Tt=1,An(on))}}function rn(t,e,n){var i=new se;return e=e==null?0:+e,i.restart(o=>{i.stop(),t(o+e)},e,n),i}var cs=Re("start","end","cancel","interrupt"),hs=[],Fn=0,sn=1,ze=2,Qt=3,an=4,Te=5,jt=6;function fe(t,e,n,i,o,s){var r=t.__transition;if(!r)t.__transition={};else if(n in r)return;fs(t,n,{name:e,index:i,group:o,on:cs,tween:hs,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:Fn})}function Ie(t,e){var n=lt(t,e);if(n.state>Fn)throw new Error("too late; already scheduled");return n}function ct(t,e){var n=lt(t,e);if(n.state>Qt)throw new Error("too late; already running");return n}function lt(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function fs(t,e,n){var i=t.__transition,o;i[e]=n,n.timer=Dn(s,0,n.time);function s(u){n.state=sn,n.timer.restart(r,n.delay,n.time),n.delay<=u&&r(u-n.delay)}function r(u){var h,f,g,v;if(n.state!==sn)return l();for(h in i)if(v=i[h],v.name===n.name){if(v.state===Qt)return rn(r);v.state===an?(v.state=jt,v.timer.stop(),v.on.call("interrupt",t,t.__data__,v.index,v.group),delete i[h]):+hze&&i.state=0&&(e=e.slice(0,n)),!e||e==="start"})}function qs(t,e,n){var i,o,s=Os(e)?Ie:ct;return function(){var r=s(this,t),a=r.on;a!==i&&(o=(i=a).copy()).on(e,n),r.on=o}}function Ls(t,e){var n=this._id;return arguments.length<2?lt(this.node(),n).on.on(t):this.each(qs(n,t,e))}function Xs(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}function Ys(){return this.on("end.remove",Xs(this._id))}function Us(t){var e=this._name,n=this._id;typeof t!="function"&&(t=Ae(t));for(var i=this._groups,o=i.length,s=new Array(o),r=0;r()=>t;function va(t,{sourceEvent:e,target:n,transform:i,dispatch:o}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:i,enumerable:!0,configurable:!0},_:{value:o}})}function dt(t,e,n){this.k=t,this.x=e,this.y=n}dt.prototype={constructor:dt,scale:function(t){return t===1?this:new dt(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new dt(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Pe=new dt(1,0,0);dt.prototype;function xe(t){t.stopImmediatePropagation()}function Bt(t){t.preventDefault(),t.stopImmediatePropagation()}function ya(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function wa(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function ln(){return this.__zoom||Pe}function _a(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function ka(){return navigator.maxTouchPoints||"ontouchstart"in this}function xa(t,e,n){var i=t.invertX(e[0][0])-n[0][0],o=t.invertX(e[1][0])-n[1][0],s=t.invertY(e[0][1])-n[0][1],r=t.invertY(e[1][1])-n[1][1];return t.translate(o>i?(i+o)/2:Math.min(0,i)||Math.max(0,o),r>s?(s+r)/2:Math.min(0,s)||Math.max(0,r))}function ba(){var t=ya,e=wa,n=xa,i=_a,o=ka,s=[0,1/0],r=[[-1/0,-1/0],[1/0,1/0]],a=250,l=rs,u=Re("start","zoom","end"),h,f,g,v=500,M=150,z=0,T=10;function b(c){c.property("__zoom",ln).on("wheel.zoom",G,{passive:!1}).on("mousedown.zoom",W).on("dblclick.zoom",F).filter(o).on("touchstart.zoom",Rt).on("touchmove.zoom",Et).on("touchend.zoom touchcancel.zoom",kt).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}b.transform=function(c,k,d,x){var p=c.selection?c.selection():c;p.property("__zoom",ln),c!==p?Z(c,k,d,x):p.interrupt().each(function(){J(this,arguments).event(x).start().zoom(null,typeof k=="function"?k.apply(this,arguments):k).end()})},b.scaleBy=function(c,k,d,x){b.scaleTo(c,function(){var p=this.__zoom.k,_=typeof k=="function"?k.apply(this,arguments):k;return p*_},d,x)},b.scaleTo=function(c,k,d,x){b.transform(c,function(){var p=e.apply(this,arguments),_=this.__zoom,m=d==null?L(p):typeof d=="function"?d.apply(this,arguments):d,N=_.invert(m),B=typeof k=="function"?k.apply(this,arguments):k;return n(E(P(_,B),m,N),p,r)},d,x)},b.translateBy=function(c,k,d,x){b.transform(c,function(){return n(this.__zoom.translate(typeof k=="function"?k.apply(this,arguments):k,typeof d=="function"?d.apply(this,arguments):d),e.apply(this,arguments),r)},null,x)},b.translateTo=function(c,k,d,x,p){b.transform(c,function(){var _=e.apply(this,arguments),m=this.__zoom,N=x==null?L(_):typeof x=="function"?x.apply(this,arguments):x;return n(Pe.translate(N[0],N[1]).scale(m.k).translate(typeof k=="function"?-k.apply(this,arguments):-k,typeof d=="function"?-d.apply(this,arguments):-d),_,r)},x,p)};function P(c,k){return k=Math.max(s[0],Math.min(s[1],k)),k===c.k?c:new dt(k,c.x,c.y)}function E(c,k,d){var x=k[0]-d[0]*c.k,p=k[1]-d[1]*c.k;return x===c.x&&p===c.y?c:new dt(c.k,x,p)}function L(c){return[(+c[0][0]+ +c[1][0])/2,(+c[0][1]+ +c[1][1])/2]}function Z(c,k,d,x){c.on("start.zoom",function(){J(this,arguments).event(x).start()}).on("interrupt.zoom end.zoom",function(){J(this,arguments).event(x).end()}).tween("zoom",function(){var p=this,_=arguments,m=J(p,_).event(x),N=e.apply(p,_),B=d==null?L(N):typeof d=="function"?d.apply(p,_):d,I=Math.max(N[1][0]-N[0][0],N[1][1]-N[0][1]),H=p.__zoom,X=typeof k=="function"?k.apply(p,_):k,K=l(H.invert(B).concat(I/H.k),X.invert(B).concat(I/X.k));return function(Q){if(Q===1)Q=X;else{var it=K(Q),At=I/it[2];Q=new dt(At,B[0]-it[0]*At,B[1]-it[1]*At)}m.zoom(null,Q)}})}function J(c,k,d){return!d&&c.__zooming||new A(c,k)}function A(c,k){this.that=c,this.args=k,this.active=0,this.sourceEvent=null,this.extent=e.apply(c,k),this.taps=0}A.prototype={event:function(c){return c&&(this.sourceEvent=c),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(c,k){return this.mouse&&c!=="mouse"&&(this.mouse[1]=k.invert(this.mouse[0])),this.touch0&&c!=="touch"&&(this.touch0[1]=k.invert(this.touch0[0])),this.touch1&&c!=="touch"&&(this.touch1[1]=k.invert(this.touch1[0])),this.that.__zoom=k,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(c){var k=wt(this.that).datum();u.call(c,this.that,new va(c,{sourceEvent:this.sourceEvent,target:b,type:c,transform:this.that.__zoom,dispatch:u}),k)}};function G(c,...k){if(!t.apply(this,arguments))return;var d=J(this,k).event(c),x=this.__zoom,p=Math.max(s[0],Math.min(s[1],x.k*Math.pow(2,i.apply(this,arguments)))),_=vt(c);if(d.wheel)(d.mouse[0][0]!==_[0]||d.mouse[0][1]!==_[1])&&(d.mouse[1]=x.invert(d.mouse[0]=_)),clearTimeout(d.wheel);else{if(x.k===p)return;d.mouse=[_,x.invert(_)],te(this),d.start()}Bt(c),d.wheel=setTimeout(m,M),d.zoom("mouse",n(E(P(x,p),d.mouse[0],d.mouse[1]),d.extent,r));function m(){d.wheel=null,d.end()}}function W(c,...k){if(g||!t.apply(this,arguments))return;var d=c.currentTarget,x=J(this,k,!0).event(c),p=wt(c.view).on("mousemove.zoom",B,!0).on("mouseup.zoom",I,!0),_=vt(c,d),m=c.clientX,N=c.clientY;Rr(c.view),xe(c),x.mouse=[_,this.__zoom.invert(_)],te(this),x.start();function B(H){if(Bt(H),!x.moved){var X=H.clientX-m,K=H.clientY-N;x.moved=X*X+K*K>z}x.event(H).zoom("mouse",n(E(x.that.__zoom,x.mouse[0]=vt(H,d),x.mouse[1]),x.extent,r))}function I(H){p.on("mousemove.zoom mouseup.zoom",null),Ar(H.view,x.moved),Bt(H),x.event(H).end()}}function F(c,...k){if(t.apply(this,arguments)){var d=this.__zoom,x=vt(c.changedTouches?c.changedTouches[0]:c,this),p=d.invert(x),_=d.k*(c.shiftKey?.5:2),m=n(E(P(d,_),x,p),e.apply(this,k),r);Bt(c),a>0?wt(this).transition().duration(a).call(Z,m,x,c):wt(this).call(b.transform,m,x,c)}}function Rt(c,...k){if(t.apply(this,arguments)){var d=c.touches,x=d.length,p=J(this,k,c.changedTouches.length===x).event(c),_,m,N,B;for(xe(c),m=0;mo.style??{});function r(f){e("click",f)}function a(f){e("dblclick",f)}function l(f){e("mouseenter",f)}function u(f){e("mousemove",f)}function h(f){e("mouseleave",f)}return(f,g)=>!f.hidden&&f.dimensions.width!==0&&f.dimensions.height!==0?(C(),R(le,{key:0},[$(i)[`node-${n.type}`]?(C(),tt(St($(i)[`node-${n.type}`]),ei(Ve({key:0},{...n,...f.$attrs})),null,16)):(C(),R("rect",Ve({key:1,id:f.id},f.$attrs,{class:["vue-flow__minimap-node",{selected:f.selected,dragging:f.dragging}],x:f.position.x,y:f.position.y,rx:f.borderRadius,ry:f.borderRadius,width:f.dimensions.width,height:f.dimensions.height,fill:f.color||s.value.background||s.value.backgroundColor,stroke:f.strokeColor,"stroke-width":f.strokeWidth,"shape-rendering":f.shapeRendering,onClick:r,onDblclick:a,onMouseenter:l,onMousemove:u,onMouseleave:h}),null,16,$a))],64)):U("",!0)}}),Na=["width","height","viewBox","aria-labelledby"],Sa=["id"],Ma=["d","fill","stroke","stroke-width"],za={name:"MiniMap",compatConfig:{MODE:3}},Ta=ae({...za,props:{nodeColor:{type:[String,Function],default:"#e2e2e2"},nodeStrokeColor:{type:[String,Function],default:"transparent"},nodeClassName:{type:[String,Function]},nodeBorderRadius:{default:5},nodeStrokeWidth:{default:2},maskColor:{default:"rgb(240, 240, 240, 0.6)"},maskStrokeColor:{default:"none"},maskStrokeWidth:{default:1},position:{default:"bottom-right"},pannable:{type:Boolean,default:!1},zoomable:{type:Boolean,default:!1},width:{},height:{},ariaLabel:{default:"Vue Flow mini map"},inversePan:{type:Boolean,default:!1},zoomStep:{default:1},offsetScale:{default:5},maskBorderRadius:{default:0}},emits:["click","nodeClick","nodeDblclick","nodeMouseenter","nodeMousemove","nodeMouseleave"],setup(t,{emit:e}){const n=Zn(),i=un(),o=200,s=150,{id:r,edges:a,viewport:l,translateExtent:u,dimensions:h,emits:f,d3Selection:g,d3Zoom:v,getNodesInitialized:M}=ue(),z=V();Jn(Pn,n);const T=_t(()=>{var p;return t.width??((p=i.style)==null?void 0:p.width)??o}),b=_t(()=>{var p;return t.height??((p=i.style)==null?void 0:p.height)??s}),P=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision",E=et(()=>typeof t.nodeColor=="string"?()=>t.nodeColor:t.nodeColor),L=et(()=>typeof t.nodeStrokeColor=="string"?()=>t.nodeStrokeColor:t.nodeStrokeColor),Z=et(()=>typeof t.nodeClassName=="string"?()=>t.nodeClassName:typeof t.nodeClassName=="function"?t.nodeClassName:()=>""),J=et(()=>ai(M.value.filter(p=>!p.hidden))),A=et(()=>({x:-l.value.x/l.value.zoom,y:-l.value.y/l.value.zoom,width:h.value.width/l.value.zoom,height:h.value.height/l.value.zoom})),G=et(()=>M.value&&M.value.length?li(J.value,A.value):A.value),W=et(()=>{const p=G.value.width/T.value,_=G.value.height/b.value;return Math.max(p,_)}),F=et(()=>{const p=W.value*T.value,_=W.value*b.value,m=t.offsetScale*W.value;return{offset:m,x:G.value.x-(p-G.value.width)/2-m,y:G.value.y-(_-G.value.height)/2-m,width:p+m*2,height:_+m*2}}),Rt=et(()=>!F.value.x||!F.value.y?"":` +import{d as ae,aB as _t,l as C,D as tt,w as O,aC as j,e as R,F as le,h as Y,a9 as St,j as $,y as U,f as S,aD as Zn,aE as un,r as V,aF as Jn,c as et,aG as Qn,g as q,C as jn,a1 as cn,Y as Vt,aH as ti,aI as ei,aJ as Ve,A as hn,u as ni,o as Oe,a7 as ii,J as we,K as oi,M as qe,t as D,p as st,n as mt,I as ri,T as Le}from"./index-7b482730.js";import{P as si,u as ue,_ as fn,g as ai,a as li,w as ui,i as ci,b as Dt,c as hi}from"./vue-flow-core-41a1e515.js";import{g as dn,u as fi,p as di,a as gi}from"./nodeMetadata-55f4474f.js";import pi from"./NodePalette-e0efb88f.js";import mi from"./ExecutionResults-030bde4d.js";import{_ as vi}from"./_plugin-vue_export-helper-c27b6911.js";import"./NodePropertyModal-94ca3f6a.js";import"./SchemaFormRenderer-f7be2793.js";import"./nodes-1118f3b4.js";const yi={name:"ControlButton",compatConfig:{MODE:3}},wi=(t,e)=>{const n=t.__vccOpts||t;for(const[i,o]of e)n[i]=o;return n},_i={type:"button",class:"vue-flow__controls-button"};function ki(t,e,n,i,o,s){return C(),R("button",_i,[j(t.$slots,"default")])}const It=wi(yi,[["render",ki]]),xi={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},bi=S("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"},null,-1),$i=[bi];function Ci(t,e){return C(),R("svg",xi,$i)}const Ei={render:Ci},Ni={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},Si=S("path",{d:"M0 0h32v4.2H0z"},null,-1),Mi=[Si];function zi(t,e){return C(),R("svg",Ni,Mi)}const Ti={render:zi},Ri={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},Ai=S("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0 0 27.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94a.919.919 0 0 1-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"},null,-1),Di=[Ai];function Fi(t,e){return C(),R("svg",Ri,Di)}const Bi={render:Fi},Ii={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},Hi=S("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 0 0 0 13.714v15.238A3.056 3.056 0 0 0 3.048 32h18.285a3.056 3.056 0 0 0 3.048-3.048V13.714a3.056 3.056 0 0 0-3.048-3.047zM12.19 24.533a3.056 3.056 0 0 1-3.047-3.047 3.056 3.056 0 0 1 3.047-3.048 3.056 3.056 0 0 1 3.048 3.048 3.056 3.056 0 0 1-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"},null,-1),Pi=[Hi];function Vi(t,e){return C(),R("svg",Ii,Pi)}const Oi={render:Vi},qi={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},Li=S("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 0 0 0 13.714v15.238A3.056 3.056 0 0 0 3.048 32h18.285a3.056 3.056 0 0 0 3.048-3.048V13.714a3.056 3.056 0 0 0-3.048-3.047zM12.19 24.533a3.056 3.056 0 0 1-3.047-3.047 3.056 3.056 0 0 1 3.047-3.048 3.056 3.056 0 0 1 3.048 3.048 3.056 3.056 0 0 1-3.048 3.047z"},null,-1),Xi=[Li];function Yi(t,e){return C(),R("svg",qi,Xi)}const Ui={render:Yi},Gi={name:"Controls",compatConfig:{MODE:3}},Wi=ae({...Gi,props:{showZoom:{type:Boolean,default:!0},showFitView:{type:Boolean,default:!0},showInteractive:{type:Boolean,default:!0},fitViewParams:{},position:{default:()=>si.BottomLeft}},emits:["zoomIn","zoomOut","fitView","interactionChange"],setup(t,{emit:e}){const{nodesDraggable:n,nodesConnectable:i,elementsSelectable:o,setInteractive:s,zoomIn:r,zoomOut:a,fitView:l,viewport:u,minZoom:h,maxZoom:f}=ue(),g=_t(()=>n.value||i.value||o.value),v=_t(()=>u.value.zoom<=h.value),M=_t(()=>u.value.zoom>=f.value);function z(){r(),e("zoomIn")}function T(){a(),e("zoomOut")}function b(){l(t.fitViewParams),e("fitView")}function P(){s(!g.value),e("interactionChange",!g.value)}return(E,L)=>(C(),tt($(fn),{class:"vue-flow__controls",position:E.position},{default:O(()=>[j(E.$slots,"top"),E.showZoom?(C(),R(le,{key:0},[j(E.$slots,"control-zoom-in",{},()=>[Y(It,{class:"vue-flow__controls-zoomin",disabled:M.value,onClick:z},{default:O(()=>[j(E.$slots,"icon-zoom-in",{},()=>[(C(),tt(St($(Ei))))])]),_:3},8,["disabled"])]),j(E.$slots,"control-zoom-out",{},()=>[Y(It,{class:"vue-flow__controls-zoomout",disabled:v.value,onClick:T},{default:O(()=>[j(E.$slots,"icon-zoom-out",{},()=>[(C(),tt(St($(Ti))))])]),_:3},8,["disabled"])])],64)):U("",!0),E.showFitView?j(E.$slots,"control-fit-view",{key:1},()=>[Y(It,{class:"vue-flow__controls-fitview",onClick:b},{default:O(()=>[j(E.$slots,"icon-fit-view",{},()=>[(C(),tt(St($(Bi))))])]),_:3})]):U("",!0),E.showInteractive?j(E.$slots,"control-interactive",{key:2},()=>[E.showInteractive?(C(),tt(It,{key:0,class:"vue-flow__controls-interactive",onClick:P},{default:O(()=>[g.value?j(E.$slots,"icon-unlock",{key:0},()=>[(C(),tt(St($(Ui))))]):U("",!0),g.value?U("",!0):j(E.$slots,"icon-lock",{key:1},()=>[(C(),tt(St($(Oi))))])]),_:3})):U("",!0)]):U("",!0),j(E.$slots,"default")]),_:3},8,["position"]))}});var Ki={value:()=>{}};function Re(){for(var t=0,e=arguments.length,n={},i;t=0&&(i=n.slice(o+1),n=n.slice(0,o)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:i}})}Jt.prototype=Re.prototype={constructor:Jt,on:function(t,e){var n=this._,i=Zi(t+"",n),o,s=-1,r=i.length;if(arguments.length<2){for(;++s0)for(var n=new Array(o),i=0,o,s;i=0&&(e=t.slice(0,n))!=="xmlns"&&(t=t.slice(n+1)),Ye.hasOwnProperty(e)?{space:Ye[e],local:t}:t}function Qi(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===be&&e.documentElement.namespaceURI===be?e.createElement(t):e.createElementNS(n,t)}}function ji(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function gn(t){var e=ce(t);return(e.local?ji:Qi)(e)}function to(){}function Ae(t){return t==null?to:function(){return this.querySelector(t)}}function eo(t){typeof t!="function"&&(t=Ae(t));for(var e=this._groups,n=e.length,i=new Array(n),o=0;o=E&&(E=P+1);!(Z=T[E])&&++E=0;)(r=i[o])&&(s&&r.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(r,s),s=r);return this}function No(t){t||(t=So);function e(f,g){return f&&g?t(f.__data__,g.__data__):!f-!g}for(var n=this._groups,i=n.length,o=new Array(i),s=0;se?1:t>=e?0:NaN}function Mo(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function zo(){return Array.from(this)}function To(){for(var t=this._groups,e=0,n=t.length;e1?this.each((e==null?qo:typeof e=="function"?Xo:Lo)(t,e,n??"")):zt(this.node(),t)}function zt(t,e){return t.style.getPropertyValue(e)||wn(t).getComputedStyle(t,null).getPropertyValue(e)}function Uo(t){return function(){delete this[t]}}function Go(t,e){return function(){this[t]=e}}function Wo(t,e){return function(){var n=e.apply(this,arguments);n==null?delete this[t]:this[t]=n}}function Ko(t,e){return arguments.length>1?this.each((e==null?Uo:typeof e=="function"?Wo:Go)(t,e)):this.node()[t]}function _n(t){return t.trim().split(/^|\s+/)}function De(t){return t.classList||new kn(t)}function kn(t){this._node=t,this._names=_n(t.getAttribute("class")||"")}kn.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function xn(t,e){for(var n=De(t),i=-1,o=e.length;++i=0&&(n=e.slice(i+1),e=e.slice(0,i)),{type:e,name:n}})}function br(t){return function(){var e=this.__on;if(e){for(var n=0,i=-1,o=e.length,s;n>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?Gt(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?Gt(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=Fr.exec(t))?new nt(e[1],e[2],e[3],1):(e=Br.exec(t))?new nt(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=Ir.exec(t))?Gt(e[1],e[2],e[3],e[4]):(e=Hr.exec(t))?Gt(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=Pr.exec(t))?Qe(e[1],e[2]/100,e[3]/100,1):(e=Vr.exec(t))?Qe(e[1],e[2]/100,e[3]/100,e[4]):Ue.hasOwnProperty(t)?Ke(Ue[t]):t==="transparent"?new nt(NaN,NaN,NaN,0):null}function Ke(t){return new nt(t>>16&255,t>>8&255,t&255,1)}function Gt(t,e,n,i){return i<=0&&(t=e=n=NaN),new nt(t,e,n,i)}function Lr(t){return t instanceof Ut||(t=Lt(t)),t?(t=t.rgb(),new nt(t.r,t.g,t.b,t.opacity)):new nt}function Ee(t,e,n,i){return arguments.length===1?Lr(t):new nt(t,e,n,i??1)}function nt(t,e,n,i){this.r=+t,this.g=+e,this.b=+n,this.opacity=+i}Fe(nt,Ee,En(Ut,{brighter(t){return t=t==null?ne:Math.pow(ne,t),new nt(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Ot:Math.pow(Ot,t),new nt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new nt($t(this.r),$t(this.g),$t(this.b),ie(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Ze,formatHex:Ze,formatHex8:Xr,formatRgb:Je,toString:Je}));function Ze(){return`#${bt(this.r)}${bt(this.g)}${bt(this.b)}`}function Xr(){return`#${bt(this.r)}${bt(this.g)}${bt(this.b)}${bt((isNaN(this.opacity)?1:this.opacity)*255)}`}function Je(){const t=ie(this.opacity);return`${t===1?"rgb(":"rgba("}${$t(this.r)}, ${$t(this.g)}, ${$t(this.b)}${t===1?")":`, ${t})`}`}function ie(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function $t(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function bt(t){return t=$t(t),(t<16?"0":"")+t.toString(16)}function Qe(t,e,n,i){return i<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new at(t,e,n,i)}function Nn(t){if(t instanceof at)return new at(t.h,t.s,t.l,t.opacity);if(t instanceof Ut||(t=Lt(t)),!t)return new at;if(t instanceof at)return t;t=t.rgb();var e=t.r/255,n=t.g/255,i=t.b/255,o=Math.min(e,n,i),s=Math.max(e,n,i),r=NaN,a=s-o,l=(s+o)/2;return a?(e===s?r=(n-i)/a+(n0&&l<1?0:r,new at(r,a,l,t.opacity)}function Yr(t,e,n,i){return arguments.length===1?Nn(t):new at(t,e,n,i??1)}function at(t,e,n,i){this.h=+t,this.s=+e,this.l=+n,this.opacity=+i}Fe(at,Yr,En(Ut,{brighter(t){return t=t==null?ne:Math.pow(ne,t),new at(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Ot:Math.pow(Ot,t),new at(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*e,o=2*n-i;return new nt(_e(t>=240?t-240:t+120,o,i),_e(t,o,i),_e(t<120?t+240:t-120,o,i),this.opacity)},clamp(){return new at(je(this.h),Wt(this.s),Wt(this.l),ie(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=ie(this.opacity);return`${t===1?"hsl(":"hsla("}${je(this.h)}, ${Wt(this.s)*100}%, ${Wt(this.l)*100}%${t===1?")":`, ${t})`}`}}));function je(t){return t=(t||0)%360,t<0?t+360:t}function Wt(t){return Math.max(0,Math.min(1,t||0))}function _e(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const Sn=t=>()=>t;function Ur(t,e){return function(n){return t+n*e}}function Gr(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(i){return Math.pow(t+i*e,n)}}function Wr(t){return(t=+t)==1?Mn:function(e,n){return n-e?Gr(e,n,t):Sn(isNaN(e)?n:e)}}function Mn(t,e){var n=e-t;return n?Ur(t,n):Sn(isNaN(t)?e:t)}const tn=function t(e){var n=Wr(e);function i(o,s){var r=n((o=Ee(o)).r,(s=Ee(s)).r),a=n(o.g,s.g),l=n(o.b,s.b),u=Mn(o.opacity,s.opacity);return function(h){return o.r=r(h),o.g=a(h),o.b=l(h),o.opacity=u(h),o+""}}return i.gamma=t,i}(1);function yt(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}var Ne=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ke=new RegExp(Ne.source,"g");function Kr(t){return function(){return t}}function Zr(t){return function(e){return t(e)+""}}function Jr(t,e){var n=Ne.lastIndex=ke.lastIndex=0,i,o,s,r=-1,a=[],l=[];for(t=t+"",e=e+"";(i=Ne.exec(t))&&(o=ke.exec(e));)(s=o.index)>n&&(s=e.slice(n,s),a[r]?a[r]+=s:a[++r]=s),(i=i[0])===(o=o[0])?a[r]?a[r]+=o:a[++r]=o:(a[++r]=null,l.push({i:r,x:yt(i,o)})),n=ke.lastIndex;return n180?h+=360:h-u>180&&(u+=360),g.push({i:f.push(o(f)+"rotate(",null,i)-2,x:yt(u,h)})):h&&f.push(o(f)+"rotate("+h+i)}function a(u,h,f,g){u!==h?g.push({i:f.push(o(f)+"skewX(",null,i)-2,x:yt(u,h)}):h&&f.push(o(f)+"skewX("+h+i)}function l(u,h,f,g,v,M){if(u!==f||h!==g){var z=v.push(o(v)+"scale(",null,",",null,")");M.push({i:z-4,x:yt(u,f)},{i:z-2,x:yt(h,g)})}else(f!==1||g!==1)&&v.push(o(v)+"scale("+f+","+g+")")}return function(u,h){var f=[],g=[];return u=t(u),h=t(h),s(u.translateX,u.translateY,h.translateX,h.translateY,f,g),r(u.rotate,h.rotate,f,g),a(u.skewX,h.skewX,f,g),l(u.scaleX,u.scaleY,h.scaleX,h.scaleY,f,g),u=h=null,function(v){for(var M=-1,z=g.length,T;++M=0&&t._call.call(void 0,e),t=t._next;--Tt}function on(){Ct=(re=Xt.now())+he,Tt=Ht=0;try{as()}finally{Tt=0,us(),Ct=0}}function ls(){var t=Xt.now(),e=t-re;e>Rn&&(he-=e,re=t)}function us(){for(var t,e=oe,n,i=1/0;e;)e._call?(i>e._time&&(i=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:oe=n);Pt=t,Me(i)}function Me(t){if(!Tt){Ht&&(Ht=clearTimeout(Ht));var e=t-Ct;e>24?(t<1/0&&(Ht=setTimeout(on,t-Xt.now()-he)),Ft&&(Ft=clearInterval(Ft))):(Ft||(re=Xt.now(),Ft=setInterval(ls,Rn)),Tt=1,An(on))}}function rn(t,e,n){var i=new se;return e=e==null?0:+e,i.restart(o=>{i.stop(),t(o+e)},e,n),i}var cs=Re("start","end","cancel","interrupt"),hs=[],Fn=0,sn=1,ze=2,Qt=3,an=4,Te=5,jt=6;function fe(t,e,n,i,o,s){var r=t.__transition;if(!r)t.__transition={};else if(n in r)return;fs(t,n,{name:e,index:i,group:o,on:cs,tween:hs,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:Fn})}function Ie(t,e){var n=lt(t,e);if(n.state>Fn)throw new Error("too late; already scheduled");return n}function ct(t,e){var n=lt(t,e);if(n.state>Qt)throw new Error("too late; already running");return n}function lt(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function fs(t,e,n){var i=t.__transition,o;i[e]=n,n.timer=Dn(s,0,n.time);function s(u){n.state=sn,n.timer.restart(r,n.delay,n.time),n.delay<=u&&r(u-n.delay)}function r(u){var h,f,g,v;if(n.state!==sn)return l();for(h in i)if(v=i[h],v.name===n.name){if(v.state===Qt)return rn(r);v.state===an?(v.state=jt,v.timer.stop(),v.on.call("interrupt",t,t.__data__,v.index,v.group),delete i[h]):+hze&&i.state=0&&(e=e.slice(0,n)),!e||e==="start"})}function qs(t,e,n){var i,o,s=Os(e)?Ie:ct;return function(){var r=s(this,t),a=r.on;a!==i&&(o=(i=a).copy()).on(e,n),r.on=o}}function Ls(t,e){var n=this._id;return arguments.length<2?lt(this.node(),n).on.on(t):this.each(qs(n,t,e))}function Xs(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}function Ys(){return this.on("end.remove",Xs(this._id))}function Us(t){var e=this._name,n=this._id;typeof t!="function"&&(t=Ae(t));for(var i=this._groups,o=i.length,s=new Array(o),r=0;r()=>t;function va(t,{sourceEvent:e,target:n,transform:i,dispatch:o}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:i,enumerable:!0,configurable:!0},_:{value:o}})}function dt(t,e,n){this.k=t,this.x=e,this.y=n}dt.prototype={constructor:dt,scale:function(t){return t===1?this:new dt(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new dt(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Pe=new dt(1,0,0);dt.prototype;function xe(t){t.stopImmediatePropagation()}function Bt(t){t.preventDefault(),t.stopImmediatePropagation()}function ya(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function wa(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function ln(){return this.__zoom||Pe}function _a(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function ka(){return navigator.maxTouchPoints||"ontouchstart"in this}function xa(t,e,n){var i=t.invertX(e[0][0])-n[0][0],o=t.invertX(e[1][0])-n[1][0],s=t.invertY(e[0][1])-n[0][1],r=t.invertY(e[1][1])-n[1][1];return t.translate(o>i?(i+o)/2:Math.min(0,i)||Math.max(0,o),r>s?(s+r)/2:Math.min(0,s)||Math.max(0,r))}function ba(){var t=ya,e=wa,n=xa,i=_a,o=ka,s=[0,1/0],r=[[-1/0,-1/0],[1/0,1/0]],a=250,l=rs,u=Re("start","zoom","end"),h,f,g,v=500,M=150,z=0,T=10;function b(c){c.property("__zoom",ln).on("wheel.zoom",G,{passive:!1}).on("mousedown.zoom",W).on("dblclick.zoom",F).filter(o).on("touchstart.zoom",Rt).on("touchmove.zoom",Et).on("touchend.zoom touchcancel.zoom",kt).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}b.transform=function(c,k,d,x){var p=c.selection?c.selection():c;p.property("__zoom",ln),c!==p?Z(c,k,d,x):p.interrupt().each(function(){J(this,arguments).event(x).start().zoom(null,typeof k=="function"?k.apply(this,arguments):k).end()})},b.scaleBy=function(c,k,d,x){b.scaleTo(c,function(){var p=this.__zoom.k,_=typeof k=="function"?k.apply(this,arguments):k;return p*_},d,x)},b.scaleTo=function(c,k,d,x){b.transform(c,function(){var p=e.apply(this,arguments),_=this.__zoom,m=d==null?L(p):typeof d=="function"?d.apply(this,arguments):d,N=_.invert(m),B=typeof k=="function"?k.apply(this,arguments):k;return n(E(P(_,B),m,N),p,r)},d,x)},b.translateBy=function(c,k,d,x){b.transform(c,function(){return n(this.__zoom.translate(typeof k=="function"?k.apply(this,arguments):k,typeof d=="function"?d.apply(this,arguments):d),e.apply(this,arguments),r)},null,x)},b.translateTo=function(c,k,d,x,p){b.transform(c,function(){var _=e.apply(this,arguments),m=this.__zoom,N=x==null?L(_):typeof x=="function"?x.apply(this,arguments):x;return n(Pe.translate(N[0],N[1]).scale(m.k).translate(typeof k=="function"?-k.apply(this,arguments):-k,typeof d=="function"?-d.apply(this,arguments):-d),_,r)},x,p)};function P(c,k){return k=Math.max(s[0],Math.min(s[1],k)),k===c.k?c:new dt(k,c.x,c.y)}function E(c,k,d){var x=k[0]-d[0]*c.k,p=k[1]-d[1]*c.k;return x===c.x&&p===c.y?c:new dt(c.k,x,p)}function L(c){return[(+c[0][0]+ +c[1][0])/2,(+c[0][1]+ +c[1][1])/2]}function Z(c,k,d,x){c.on("start.zoom",function(){J(this,arguments).event(x).start()}).on("interrupt.zoom end.zoom",function(){J(this,arguments).event(x).end()}).tween("zoom",function(){var p=this,_=arguments,m=J(p,_).event(x),N=e.apply(p,_),B=d==null?L(N):typeof d=="function"?d.apply(p,_):d,I=Math.max(N[1][0]-N[0][0],N[1][1]-N[0][1]),H=p.__zoom,X=typeof k=="function"?k.apply(p,_):k,K=l(H.invert(B).concat(I/H.k),X.invert(B).concat(I/X.k));return function(Q){if(Q===1)Q=X;else{var it=K(Q),At=I/it[2];Q=new dt(At,B[0]-it[0]*At,B[1]-it[1]*At)}m.zoom(null,Q)}})}function J(c,k,d){return!d&&c.__zooming||new A(c,k)}function A(c,k){this.that=c,this.args=k,this.active=0,this.sourceEvent=null,this.extent=e.apply(c,k),this.taps=0}A.prototype={event:function(c){return c&&(this.sourceEvent=c),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(c,k){return this.mouse&&c!=="mouse"&&(this.mouse[1]=k.invert(this.mouse[0])),this.touch0&&c!=="touch"&&(this.touch0[1]=k.invert(this.touch0[0])),this.touch1&&c!=="touch"&&(this.touch1[1]=k.invert(this.touch1[0])),this.that.__zoom=k,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(c){var k=wt(this.that).datum();u.call(c,this.that,new va(c,{sourceEvent:this.sourceEvent,target:b,type:c,transform:this.that.__zoom,dispatch:u}),k)}};function G(c,...k){if(!t.apply(this,arguments))return;var d=J(this,k).event(c),x=this.__zoom,p=Math.max(s[0],Math.min(s[1],x.k*Math.pow(2,i.apply(this,arguments)))),_=vt(c);if(d.wheel)(d.mouse[0][0]!==_[0]||d.mouse[0][1]!==_[1])&&(d.mouse[1]=x.invert(d.mouse[0]=_)),clearTimeout(d.wheel);else{if(x.k===p)return;d.mouse=[_,x.invert(_)],te(this),d.start()}Bt(c),d.wheel=setTimeout(m,M),d.zoom("mouse",n(E(P(x,p),d.mouse[0],d.mouse[1]),d.extent,r));function m(){d.wheel=null,d.end()}}function W(c,...k){if(g||!t.apply(this,arguments))return;var d=c.currentTarget,x=J(this,k,!0).event(c),p=wt(c.view).on("mousemove.zoom",B,!0).on("mouseup.zoom",I,!0),_=vt(c,d),m=c.clientX,N=c.clientY;Rr(c.view),xe(c),x.mouse=[_,this.__zoom.invert(_)],te(this),x.start();function B(H){if(Bt(H),!x.moved){var X=H.clientX-m,K=H.clientY-N;x.moved=X*X+K*K>z}x.event(H).zoom("mouse",n(E(x.that.__zoom,x.mouse[0]=vt(H,d),x.mouse[1]),x.extent,r))}function I(H){p.on("mousemove.zoom mouseup.zoom",null),Ar(H.view,x.moved),Bt(H),x.event(H).end()}}function F(c,...k){if(t.apply(this,arguments)){var d=this.__zoom,x=vt(c.changedTouches?c.changedTouches[0]:c,this),p=d.invert(x),_=d.k*(c.shiftKey?.5:2),m=n(E(P(d,_),x,p),e.apply(this,k),r);Bt(c),a>0?wt(this).transition().duration(a).call(Z,m,x,c):wt(this).call(b.transform,m,x,c)}}function Rt(c,...k){if(t.apply(this,arguments)){var d=c.touches,x=d.length,p=J(this,k,c.changedTouches.length===x).event(c),_,m,N,B;for(xe(c),m=0;mo.style??{});function r(f){e("click",f)}function a(f){e("dblclick",f)}function l(f){e("mouseenter",f)}function u(f){e("mousemove",f)}function h(f){e("mouseleave",f)}return(f,g)=>!f.hidden&&f.dimensions.width!==0&&f.dimensions.height!==0?(C(),R(le,{key:0},[$(i)[`node-${n.type}`]?(C(),tt(St($(i)[`node-${n.type}`]),ei(Ve({key:0},{...n,...f.$attrs})),null,16)):(C(),R("rect",Ve({key:1,id:f.id},f.$attrs,{class:["vue-flow__minimap-node",{selected:f.selected,dragging:f.dragging}],x:f.position.x,y:f.position.y,rx:f.borderRadius,ry:f.borderRadius,width:f.dimensions.width,height:f.dimensions.height,fill:f.color||s.value.background||s.value.backgroundColor,stroke:f.strokeColor,"stroke-width":f.strokeWidth,"shape-rendering":f.shapeRendering,onClick:r,onDblclick:a,onMouseenter:l,onMousemove:u,onMouseleave:h}),null,16,$a))],64)):U("",!0)}}),Na=["width","height","viewBox","aria-labelledby"],Sa=["id"],Ma=["d","fill","stroke","stroke-width"],za={name:"MiniMap",compatConfig:{MODE:3}},Ta=ae({...za,props:{nodeColor:{type:[String,Function],default:"#e2e2e2"},nodeStrokeColor:{type:[String,Function],default:"transparent"},nodeClassName:{type:[String,Function]},nodeBorderRadius:{default:5},nodeStrokeWidth:{default:2},maskColor:{default:"rgb(240, 240, 240, 0.6)"},maskStrokeColor:{default:"none"},maskStrokeWidth:{default:1},position:{default:"bottom-right"},pannable:{type:Boolean,default:!1},zoomable:{type:Boolean,default:!1},width:{},height:{},ariaLabel:{default:"Vue Flow mini map"},inversePan:{type:Boolean,default:!1},zoomStep:{default:1},offsetScale:{default:5},maskBorderRadius:{default:0}},emits:["click","nodeClick","nodeDblclick","nodeMouseenter","nodeMousemove","nodeMouseleave"],setup(t,{emit:e}){const n=Zn(),i=un(),o=200,s=150,{id:r,edges:a,viewport:l,translateExtent:u,dimensions:h,emits:f,d3Selection:g,d3Zoom:v,getNodesInitialized:M}=ue(),z=V();Jn(Pn,n);const T=_t(()=>{var p;return t.width??((p=i.style)==null?void 0:p.width)??o}),b=_t(()=>{var p;return t.height??((p=i.style)==null?void 0:p.height)??s}),P=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision",E=et(()=>typeof t.nodeColor=="string"?()=>t.nodeColor:t.nodeColor),L=et(()=>typeof t.nodeStrokeColor=="string"?()=>t.nodeStrokeColor:t.nodeStrokeColor),Z=et(()=>typeof t.nodeClassName=="string"?()=>t.nodeClassName:typeof t.nodeClassName=="function"?t.nodeClassName:()=>""),J=et(()=>ai(M.value.filter(p=>!p.hidden))),A=et(()=>({x:-l.value.x/l.value.zoom,y:-l.value.y/l.value.zoom,width:h.value.width/l.value.zoom,height:h.value.height/l.value.zoom})),G=et(()=>M.value&&M.value.length?li(J.value,A.value):A.value),W=et(()=>{const p=G.value.width/T.value,_=G.value.height/b.value;return Math.max(p,_)}),F=et(()=>{const p=W.value*T.value,_=W.value*b.value,m=t.offsetScale*W.value;return{offset:m,x:G.value.x-(p-G.value.width)/2-m,y:G.value.y-(_-G.value.height)/2-m,width:p+m*2,height:_+m*2}}),Rt=et(()=>!F.value.x||!F.value.y?"":` M${F.value.x-F.value.offset},${F.value.y-F.value.offset} h${F.value.width+F.value.offset*2} v${F.value.height+F.value.offset*2} diff --git a/apps/jingrow/frontend/dist/assets/AgentDetail-45a0a869.js b/apps/jingrow/frontend/dist/assets/AgentDetail-399db3ef.js similarity index 97% rename from apps/jingrow/frontend/dist/assets/AgentDetail-45a0a869.js rename to apps/jingrow/frontend/dist/assets/AgentDetail-399db3ef.js index fd8614a..5fa5803 100644 --- a/apps/jingrow/frontend/dist/assets/AgentDetail-45a0a869.js +++ b/apps/jingrow/frontend/dist/assets/AgentDetail-399db3ef.js @@ -1 +1 @@ -import{d as q,u as J,X,r as _,c as $,o as Y,e as d,f as a,g as i,j as s,h as c,w as g,a1 as G,y as f,v as K,k as Q,a0 as I,t,a2 as W,l as u,$ as b,p as T,n as z,as as Z,aA as ee}from"./index-b37e64ca.js";import{I as m}from"./iconify-b5ab1212.js";import{I as te}from"./InstallProgressModal-8a22be9b.js";import{_ as ae}from"./_plugin-vue_export-helper-c27b6911.js";const se={class:"agent-detail"},ne={class:"page-header"},oe={class:"header-content"},le={class:"header-text"},ie={class:"header-actions"},re={key:0,class:"loading-container"},ce={key:1,class:"error-container"},de={key:2,class:"agent-content"},ue={class:"agent-card"},ge={class:"agent-info-section"},_e={class:"agent-content-layout"},ve={class:"agent-image-section"},fe={class:"agent-image"},pe={key:0,class:"agent-icon-container"},he={key:1,class:"placeholder-image"},me={class:"agent-info-content"},ye={class:"agent-header"},we={class:"agent-title"},ke={key:0,class:"agent-subtitle"},Ae={class:"info-list"},Ie={key:0,class:"info-item"},be={class:"label"},Ce={class:"value"},xe={key:1,class:"info-item"},Ne={class:"label"},De={class:"value"},Se={key:2,class:"info-item"},Te={class:"label"},Me={class:"value"},Le={key:3,class:"info-item"},Ve={class:"label"},je={class:"value"},Be={key:4,class:"info-item"},$e={class:"label"},ze={class:"value"},Ee={key:0,class:"description-section"},Pe=["innerHTML"],Fe=q({__name:"AgentDetail",setup(Re){const M=K(),C=Q(),x=J(),E=X(),N=_(!0),y=_(""),e=_(null),w=_(!1),k=_(0),p=_(""),A=_("info"),h=_(!1),L=_(new Set),P=$(()=>M.params.name),D=$(()=>e.value?H(e.value.agent_name||e.value.name||""):!1);async function F(){var n,l;N.value=!0,y.value="";try{const o=await I.get(`/jingrow/agent-marketplace/${P.value}`);e.value=o.data}catch(o){console.error("Failed to load agent detail:",o),y.value=((l=(n=o.response)==null?void 0:n.data)==null?void 0:l.detail)||t("Failed to load agent details")}finally{N.value=!1}}function V(n){if(!n)return"";const l=new Date(n),o=l.getFullYear(),v=String(l.getMonth()+1).padStart(2,"0"),r=String(l.getDate()).padStart(2,"0");return`${o}-${v}-${r}`}function R(){const n=M.query.returnTo;if(n){C.push(n);return}window.history.length>1?C.back():C.push("/agent-marketplace")}async function U(){var n,l;if(!((n=e.value)!=null&&n.agent_flow)&&!((l=e.value)!=null&&l.agent_name)){x.error(t("Agent flow data or name is missing"));return}try{const o=e.value.agent_name||e.value.name;if(o&&(await I.get(`/jingrow/check-agent/${o}`)).data.exists){E.warning({title:t("Agent already exists"),content:t('Agent "{0}" is already installed, do you want to overwrite?').replace("{0}",o),positiveText:t("Confirm Overwrite"),negativeText:t("Cancel"),onPositiveClick:()=>{j()}});return}}catch(o){console.error("Check agent exists error:",o)}j()}async function j(){var n,l,o,v;try{w.value=!0,k.value=0,p.value=t("Preparing installation..."),A.value="info",h.value=!0;let r=e.value.agent_flow,O=e.value.agent_name||e.value.name;if(!r)throw new Error(t("Agent flow data is missing"));if(k.value=30,p.value=t("Installing agent..."),typeof r=="string")try{r=JSON.parse(r)}catch{}const B=await I.post("/jingrow/install-agent",{agent_name:O,agent_flow:r},{headers:{...W(),"Content-Type":"application/json"}});if(k.value=100,B.data.success)w.value=!1,A.value="success",p.value=t("Agent installed successfully!"),x.success(t("Agent installed successfully")),S(),setTimeout(()=>{h.value=!1},2e3);else throw new Error(B.data.error||t("安装失败"))}catch(r){console.error("Install agent error:",r),w.value=!1,A.value="error",p.value=((l=(n=r.response)==null?void 0:n.data)==null?void 0:l.detail)||r.message||t("Installation failed"),x.error(((v=(o=r.response)==null?void 0:o.data)==null?void 0:v.detail)||t("Installation failed")),setTimeout(()=>{h.value=!1},3e3)}}async function S(){try{const n=await I.get("/jingrow/installed-agent-names");if(n.data.success){const l=n.data.agents||[];L.value=new Set(l.map(o=>o.toLowerCase()))}}catch(n){console.error("Load installed agents error:",n)}}function H(n){return n?L.value.has(n.toLowerCase()):!1}return Y(()=>{F(),S(),window.addEventListener("installedAgentsUpdated",()=>{S()})}),(n,l)=>{var o,v;return u(),d("div",se,[a("div",ne,[a("div",oe,[a("div",le,[a("h1",null,i(((o=e.value)==null?void 0:o.title)||((v=e.value)==null?void 0:v.agent_name)||s(t)("Agent Details")),1)]),a("div",ie,[c(s(z),{onClick:R,size:"medium"},{icon:g(()=>[c(s(b),null,{default:g(()=>[c(s(m),{icon:"tabler:arrow-left"})]),_:1})]),default:g(()=>[T(" "+i(s(t)("Back")),1)]),_:1}),c(s(z),{type:D.value?"warning":"primary",onClick:U,size:"medium"},{icon:g(()=>[c(s(b),null,{default:g(()=>[c(s(m),{icon:D.value?"tabler:check":"tabler:download"},null,8,["icon"])]),_:1})]),default:g(()=>[T(" "+i(D.value?s(t)("Installed"):s(t)("Install")),1)]),_:1},8,["type"])])])]),N.value?(u(),d("div",re,[c(s(Z),{size:"large"},{description:g(()=>[T(i(s(t)("Loading agent details...")),1)]),_:1})])):y.value?(u(),d("div",ce,[c(s(ee),{description:y.value},{icon:g(()=>[c(s(b),null,{default:g(()=>[c(s(m),{icon:"tabler:alert-circle"})]),_:1})]),_:1},8,["description"])])):e.value?(u(),d("div",de,[a("div",ue,[a("div",ge,[a("div",_e,[a("div",ve,[a("div",fe,[e.value.icon?(u(),d("div",pe,[c(s(m),{icon:e.value.icon,width:120,height:120,style:G({color:e.value.color||"#6b7280"})},null,8,["icon","style"])])):(u(),d("div",he,[c(s(b),{size:"80"},{default:g(()=>[c(s(m),{icon:"hugeicons:robotic"})]),_:1})]))])]),a("div",me,[a("div",ye,[a("h2",we,i(e.value.title||e.value.agent_name||s(t)("Untitled Agent")),1),e.value.subtitle?(u(),d("div",ke,i(e.value.subtitle),1)):f("",!0)]),a("div",Ae,[e.value.agent_name?(u(),d("div",Ie,[a("span",be,i(s(t)("Agent Name"))+":",1),a("span",Ce,i(e.value.agent_name),1)])):f("",!0),e.value.status?(u(),d("div",xe,[a("span",Ne,i(s(t)("Status"))+":",1),a("span",De,i(e.value.status),1)])):f("",!0),e.value.trigger_mode?(u(),d("div",Se,[a("span",Te,i(s(t)("Trigger Mode"))+":",1),a("span",Me,i(e.value.trigger_mode),1)])):f("",!0),e.value.creation?(u(),d("div",Le,[a("span",Ve,i(s(t)("Created"))+":",1),a("span",je,i(V(e.value.creation)),1)])):f("",!0),e.value.modified?(u(),d("div",Be,[a("span",$e,i(s(t)("Last Updated"))+":",1),a("span",ze,i(V(e.value.modified)),1)])):f("",!0)])])])]),e.value.description?(u(),d("div",Ee,[a("h3",null,i(s(t)("Description")),1),a("div",{class:"description-content",innerHTML:e.value.description},null,8,Pe)])):f("",!0)])])):f("",!0),c(te,{modelValue:h.value,"onUpdate:modelValue":l[0]||(l[0]=r=>h.value=r),progress:k.value,message:p.value,status:A.value,installing:w.value,title:s(t)("Installing Agent")},null,8,["modelValue","progress","message","status","installing","title"])])}}});const Xe=ae(Fe,[["__scopeId","data-v-e1f6ec28"]]);export{Xe as default}; +import{d as q,u as J,X,r as _,c as $,o as Y,e as d,f as a,g as i,j as s,h as c,w as g,a1 as G,y as f,v as K,k as Q,a0 as I,t,a2 as W,l as u,$ as b,p as T,n as z,as as Z,aA as ee}from"./index-7b482730.js";import{I as m}from"./iconify-30ae5ba5.js";import{I as te}from"./InstallProgressModal-1ec0a6fc.js";import{_ as ae}from"./_plugin-vue_export-helper-c27b6911.js";const se={class:"agent-detail"},ne={class:"page-header"},oe={class:"header-content"},le={class:"header-text"},ie={class:"header-actions"},re={key:0,class:"loading-container"},ce={key:1,class:"error-container"},de={key:2,class:"agent-content"},ue={class:"agent-card"},ge={class:"agent-info-section"},_e={class:"agent-content-layout"},ve={class:"agent-image-section"},fe={class:"agent-image"},pe={key:0,class:"agent-icon-container"},he={key:1,class:"placeholder-image"},me={class:"agent-info-content"},ye={class:"agent-header"},we={class:"agent-title"},ke={key:0,class:"agent-subtitle"},Ae={class:"info-list"},Ie={key:0,class:"info-item"},be={class:"label"},Ce={class:"value"},xe={key:1,class:"info-item"},Ne={class:"label"},De={class:"value"},Se={key:2,class:"info-item"},Te={class:"label"},Me={class:"value"},Le={key:3,class:"info-item"},Ve={class:"label"},je={class:"value"},Be={key:4,class:"info-item"},$e={class:"label"},ze={class:"value"},Ee={key:0,class:"description-section"},Pe=["innerHTML"],Fe=q({__name:"AgentDetail",setup(Re){const M=K(),C=Q(),x=J(),E=X(),N=_(!0),y=_(""),e=_(null),w=_(!1),k=_(0),p=_(""),A=_("info"),h=_(!1),L=_(new Set),P=$(()=>M.params.name),D=$(()=>e.value?H(e.value.agent_name||e.value.name||""):!1);async function F(){var n,l;N.value=!0,y.value="";try{const o=await I.get(`/jingrow/agent-marketplace/${P.value}`);e.value=o.data}catch(o){console.error("Failed to load agent detail:",o),y.value=((l=(n=o.response)==null?void 0:n.data)==null?void 0:l.detail)||t("Failed to load agent details")}finally{N.value=!1}}function V(n){if(!n)return"";const l=new Date(n),o=l.getFullYear(),v=String(l.getMonth()+1).padStart(2,"0"),r=String(l.getDate()).padStart(2,"0");return`${o}-${v}-${r}`}function R(){const n=M.query.returnTo;if(n){C.push(n);return}window.history.length>1?C.back():C.push("/agent-marketplace")}async function U(){var n,l;if(!((n=e.value)!=null&&n.agent_flow)&&!((l=e.value)!=null&&l.agent_name)){x.error(t("Agent flow data or name is missing"));return}try{const o=e.value.agent_name||e.value.name;if(o&&(await I.get(`/jingrow/check-agent/${o}`)).data.exists){E.warning({title:t("Agent already exists"),content:t('Agent "{0}" is already installed, do you want to overwrite?').replace("{0}",o),positiveText:t("Confirm Overwrite"),negativeText:t("Cancel"),onPositiveClick:()=>{j()}});return}}catch(o){console.error("Check agent exists error:",o)}j()}async function j(){var n,l,o,v;try{w.value=!0,k.value=0,p.value=t("Preparing installation..."),A.value="info",h.value=!0;let r=e.value.agent_flow,O=e.value.agent_name||e.value.name;if(!r)throw new Error(t("Agent flow data is missing"));if(k.value=30,p.value=t("Installing agent..."),typeof r=="string")try{r=JSON.parse(r)}catch{}const B=await I.post("/jingrow/install-agent",{agent_name:O,agent_flow:r},{headers:{...W(),"Content-Type":"application/json"}});if(k.value=100,B.data.success)w.value=!1,A.value="success",p.value=t("Agent installed successfully!"),x.success(t("Agent installed successfully")),S(),setTimeout(()=>{h.value=!1},2e3);else throw new Error(B.data.error||t("安装失败"))}catch(r){console.error("Install agent error:",r),w.value=!1,A.value="error",p.value=((l=(n=r.response)==null?void 0:n.data)==null?void 0:l.detail)||r.message||t("Installation failed"),x.error(((v=(o=r.response)==null?void 0:o.data)==null?void 0:v.detail)||t("Installation failed")),setTimeout(()=>{h.value=!1},3e3)}}async function S(){try{const n=await I.get("/jingrow/installed-agent-names");if(n.data.success){const l=n.data.agents||[];L.value=new Set(l.map(o=>o.toLowerCase()))}}catch(n){console.error("Load installed agents error:",n)}}function H(n){return n?L.value.has(n.toLowerCase()):!1}return Y(()=>{F(),S(),window.addEventListener("installedAgentsUpdated",()=>{S()})}),(n,l)=>{var o,v;return u(),d("div",se,[a("div",ne,[a("div",oe,[a("div",le,[a("h1",null,i(((o=e.value)==null?void 0:o.title)||((v=e.value)==null?void 0:v.agent_name)||s(t)("Agent Details")),1)]),a("div",ie,[c(s(z),{onClick:R,size:"medium"},{icon:g(()=>[c(s(b),null,{default:g(()=>[c(s(m),{icon:"tabler:arrow-left"})]),_:1})]),default:g(()=>[T(" "+i(s(t)("Back")),1)]),_:1}),c(s(z),{type:D.value?"warning":"primary",onClick:U,size:"medium"},{icon:g(()=>[c(s(b),null,{default:g(()=>[c(s(m),{icon:D.value?"tabler:check":"tabler:download"},null,8,["icon"])]),_:1})]),default:g(()=>[T(" "+i(D.value?s(t)("Installed"):s(t)("Install")),1)]),_:1},8,["type"])])])]),N.value?(u(),d("div",re,[c(s(Z),{size:"large"},{description:g(()=>[T(i(s(t)("Loading agent details...")),1)]),_:1})])):y.value?(u(),d("div",ce,[c(s(ee),{description:y.value},{icon:g(()=>[c(s(b),null,{default:g(()=>[c(s(m),{icon:"tabler:alert-circle"})]),_:1})]),_:1},8,["description"])])):e.value?(u(),d("div",de,[a("div",ue,[a("div",ge,[a("div",_e,[a("div",ve,[a("div",fe,[e.value.icon?(u(),d("div",pe,[c(s(m),{icon:e.value.icon,width:120,height:120,style:G({color:e.value.color||"#6b7280"})},null,8,["icon","style"])])):(u(),d("div",he,[c(s(b),{size:"80"},{default:g(()=>[c(s(m),{icon:"hugeicons:robotic"})]),_:1})]))])]),a("div",me,[a("div",ye,[a("h2",we,i(e.value.title||e.value.agent_name||s(t)("Untitled Agent")),1),e.value.subtitle?(u(),d("div",ke,i(e.value.subtitle),1)):f("",!0)]),a("div",Ae,[e.value.agent_name?(u(),d("div",Ie,[a("span",be,i(s(t)("Agent Name"))+":",1),a("span",Ce,i(e.value.agent_name),1)])):f("",!0),e.value.status?(u(),d("div",xe,[a("span",Ne,i(s(t)("Status"))+":",1),a("span",De,i(e.value.status),1)])):f("",!0),e.value.trigger_mode?(u(),d("div",Se,[a("span",Te,i(s(t)("Trigger Mode"))+":",1),a("span",Me,i(e.value.trigger_mode),1)])):f("",!0),e.value.creation?(u(),d("div",Le,[a("span",Ve,i(s(t)("Created"))+":",1),a("span",je,i(V(e.value.creation)),1)])):f("",!0),e.value.modified?(u(),d("div",Be,[a("span",$e,i(s(t)("Last Updated"))+":",1),a("span",ze,i(V(e.value.modified)),1)])):f("",!0)])])])]),e.value.description?(u(),d("div",Ee,[a("h3",null,i(s(t)("Description")),1),a("div",{class:"description-content",innerHTML:e.value.description},null,8,Pe)])):f("",!0)])])):f("",!0),c(te,{modelValue:h.value,"onUpdate:modelValue":l[0]||(l[0]=r=>h.value=r),progress:k.value,message:p.value,status:A.value,installing:w.value,title:s(t)("Installing Agent")},null,8,["modelValue","progress","message","status","installing","title"])])}}});const Xe=ae(Fe,[["__scopeId","data-v-e1f6ec28"]]);export{Xe as default}; diff --git a/apps/jingrow/frontend/dist/assets/AgentMarketplace-4e290e2a.js b/apps/jingrow/frontend/dist/assets/AgentMarketplace-c0b62c90.js similarity index 98% rename from apps/jingrow/frontend/dist/assets/AgentMarketplace-4e290e2a.js rename to apps/jingrow/frontend/dist/assets/AgentMarketplace-c0b62c90.js index 35a101c..1ca5b16 100644 --- a/apps/jingrow/frontend/dist/assets/AgentMarketplace-4e290e2a.js +++ b/apps/jingrow/frontend/dist/assets/AgentMarketplace-c0b62c90.js @@ -1 +1 @@ -import{d as ee,u as ae,X as te,r as i,c as K,o as se,M as L,e as v,f as l,g as d,j as s,h as o,w as c,i as ne,F as le,C as oe,y as C,k as ie,a0 as I,t,l as u,$ as z,m as re,p as A,n as $,Z as ce,D as U,a1 as ue,_ as de,as as ge,aA as ve,a2 as pe}from"./index-b37e64ca.js";import{I as S}from"./iconify-b5ab1212.js";import{I as _e}from"./InstallProgressModal-8a22be9b.js";import{_ as me}from"./_plugin-vue_export-helper-c27b6911.js";const he={class:"agent-marketplace"},fe={class:"page-header"},ye={class:"header-content"},we={class:"header-text"},ke={class:"content"},Ce={class:"search-container"},Ie={class:"search-bar"},Ae={key:0,class:"agents-section"},Se={class:"agents-header"},be={class:"sort-controls"},Ne={class:"agents-grid"},Me=["onClick"],Pe={key:1,class:"agent-icon-placeholder"},xe={class:"agent-content"},ze={class:"agent-header"},$e={class:"agent-title-section"},Te=["onClick"],je={key:0,class:"agent-name"},Be={key:0,class:"agent-description"},Fe={class:"agent-actions"},Le={class:"pagination-container"},Ue={key:1,class:"loading"},Ve={key:2,class:"empty"},Ee=ee({__name:"AgentMarketplace",setup(Re){const b=ae(),q=te(),Q=ie(),T=i(""),f=i(!1),p=i([]),N=i(0),_=i(1),y=i(parseInt(localStorage.getItem("itemsPerPage")||"20")),M=i("creation desc"),P=i(!1),w=i(0),h=i(""),x=i("info"),k=i(!1),V=i(new Set),X=K(()=>[{label:t("Latest"),value:"creation desc"},{label:t("Oldest"),value:"creation asc"},{label:t("Name A-Z"),value:"agent_name asc"},{label:t("Name Z-A"),value:"agent_name desc"},{label:t("Most Popular"),value:"modified desc"}]),G=K(()=>Math.max(1,Math.ceil(N.value/y.value)));async function g(){f.value=!0;try{const e=new URLSearchParams({page:_.value.toString(),page_size:y.value.toString(),search:T.value,sort_by:M.value}),a=(await I.get(`/jingrow/agent-marketplace?${e}`)).data;a.items?(p.value=a.items,N.value=a.total||0):(p.value=a||[],N.value=p.value.length)}catch(e){console.error("Failed to load agents:",e),b.error(t("Failed to load agents")),p.value=[],N.value=0}finally{f.value=!1}}function H(e){y.value=e,_.value=1,localStorage.setItem("itemsPerPage",e.toString()),g()}function j(e){Q.push({path:`/agent-marketplace/${e.name}`,query:{returnTo:"/agent-marketplace"}})}async function E(e){if(!e.agent_flow&&!e.agent_name){b.error(t("Agent flow data or name is missing"));return}try{const n=e.agent_name||e.name;if(n&&(await I.get(`/jingrow/check-agent/${n}`)).data.exists){q.warning({title:t("Agent already exists"),content:t('Agent "{0}" is already installed, do you want to overwrite?').replace("{0}",n),positiveText:t("Confirm Overwrite"),negativeText:t("Cancel"),onPositiveClick:()=>{R(e)}});return}}catch(n){console.error("Check agent exists error:",n)}R(e)}async function R(e){var n,a,m,D;try{P.value=!0,w.value=0,h.value=t("Preparing installation..."),x.value="info",k.value=!0;let r=e.agent_flow,F=e.agent_name||e.name;if(!r){h.value=t("Fetching agent details..."),w.value=20;try{const J=(await I.get(`/jingrow/agent-marketplace/${e.name}`)).data;r=J.agent_flow,F=J.agent_name||F}catch{throw new Error(t("Failed to fetch agent details"))}}if(!r)throw new Error(t("Agent flow data is missing"));if(w.value=40,h.value=t("Installing agent..."),typeof r=="string")try{r=JSON.parse(r)}catch{}const O=await I.post("/jingrow/install-agent",{agent_name:F,agent_flow:r},{headers:{...pe(),"Content-Type":"application/json"}});if(w.value=100,O.data.success)P.value=!1,x.value="success",h.value=t("Agent installed successfully!"),b.success(t("Agent installed successfully")),B(),setTimeout(()=>{k.value=!1},2e3);else throw new Error(O.data.error||t("Installation failed"))}catch(r){console.error("Install agent error:",r),P.value=!1,x.value="error",h.value=((a=(n=r.response)==null?void 0:n.data)==null?void 0:a.detail)||r.message||t("Installation failed"),b.error(((D=(m=r.response)==null?void 0:m.data)==null?void 0:D.detail)||t("Installation failed")),setTimeout(()=>{k.value=!1},3e3)}}function W(e,n){return e?e.length<=n?e:e.substring(0,n)+"...":""}async function B(){try{const e=await I.get("/jingrow/installed-agent-names");if(e.data.success){const n=e.data.agents||[];V.value=new Set(n.map(a=>a.toLowerCase()))}}catch(e){console.error("Load installed agents error:",e)}}function Y(e){return e?V.value.has(e.toLowerCase()):!1}return se(()=>{g(),B(),window.addEventListener("installedAgentsUpdated",()=>{B()})}),L([M],()=>{_.value=1,g()},{deep:!0}),L([_],()=>{g()}),L(()=>localStorage.getItem("itemsPerPage"),e=>{e&&(y.value=parseInt(e),_.value=1,g())}),(e,n)=>(u(),v("div",he,[l("div",fe,[l("div",ye,[l("div",we,[l("h1",null,d(s(t)("Agent Marketplace")),1),l("p",null,d(s(t)("Browse and install agents from Jingrow Agent Marketplace")),1)])])]),l("div",ke,[l("div",Ce,[l("div",Ie,[o(s(re),{value:T.value,"onUpdate:value":n[0]||(n[0]=a=>T.value=a),placeholder:s(t)("Search agents..."),clearable:"",size:"large",onKeyup:ne(g,["enter"]),class:"search-input"},{prefix:c(()=>[o(s(z),null,{default:c(()=>[o(s(S),{icon:"tabler:search"})]),_:1})]),_:1},8,["value","placeholder"]),o(s($),{type:"primary",size:"large",onClick:g,class:"search-button"},{icon:c(()=>[o(s(z),null,{default:c(()=>[o(s(S),{icon:"tabler:search"})]),_:1})]),default:c(()=>[A(" "+d(s(t)("Search")),1)]),_:1})])]),!f.value&&p.value.length>0?(u(),v("div",Ae,[l("div",Se,[n[4]||(n[4]=l("div",{class:"agents-title"},null,-1)),l("div",be,[o(s(ce),{value:M.value,"onUpdate:value":[n[1]||(n[1]=a=>M.value=a),g],options:X.value,placeholder:s(t)("Sort by"),style:{width:"150px"}},null,8,["value","options","placeholder"])])]),l("div",Ne,[(u(!0),v(le,null,oe(p.value,a=>(u(),v("div",{key:a.name,class:"agent-card"},[l("div",{class:"agent-icon",onClick:m=>j(a)},[a.icon?(u(),U(s(S),{key:0,icon:a.icon,width:48,height:48,style:ue({color:a.color||"#6b7280"})},null,8,["icon","style"])):(u(),v("div",Pe,[o(s(z),{size:"48"},{default:c(()=>[o(s(S),{icon:"hugeicons:robotic"})]),_:1})]))],8,Me),l("div",xe,[l("div",ze,[l("div",$e,[l("h3",{onClick:m=>j(a),class:"clickable-title"},d(a.title||a.agent_name||a.name),9,Te),a.agent_name?(u(),v("div",je,d(a.agent_name),1)):C("",!0)])]),a.description?(u(),v("div",Be,d(W(a.description,80)),1)):C("",!0)]),l("div",Fe,[o(s($),{type:"default",onClick:m=>j(a)},{default:c(()=>[A(d(s(t)("View Details")),1)]),_:1},8,["onClick"]),Y(a.agent_name||a.name)?(u(),U(s($),{key:0,type:"warning",onClick:m=>E(a)},{default:c(()=>[A(d(s(t)("Installed")),1)]),_:1},8,["onClick"])):(u(),U(s($),{key:1,type:"primary",onClick:m=>E(a)},{default:c(()=>[A(d(s(t)("Install")),1)]),_:1},8,["onClick"]))])]))),128))]),l("div",Le,[o(s(de),{page:_.value,"onUpdate:page":[n[2]||(n[2]=a=>_.value=a),g],"page-count":G.value,size:"large","show-size-picker":"","page-sizes":[20,50,100],"page-size":y.value,"onUpdate:pageSize":H},null,8,["page","page-count","page-size"])])])):C("",!0),f.value?(u(),v("div",Ue,[o(s(ge),{size:"large"},{description:c(()=>[A(d(s(t)("Loading agents...")),1)]),_:1})])):C("",!0),!f.value&&p.value.length===0?(u(),v("div",Ve,[o(s(ve),{description:s(t)("No agents found")},{icon:c(()=>[o(s(z),null,{default:c(()=>[o(s(S),{icon:"hugeicons:robotic"})]),_:1})]),_:1},8,["description"])])):C("",!0)]),o(_e,{modelValue:k.value,"onUpdate:modelValue":n[3]||(n[3]=a=>k.value=a),progress:w.value,message:h.value,status:x.value,installing:P.value,title:s(t)("Installing Agent")},null,8,["modelValue","progress","message","status","installing","title"])]))}});const Ke=me(Ee,[["__scopeId","data-v-4a3804b2"]]);export{Ke as default}; +import{d as ee,u as ae,X as te,r as i,c as K,o as se,M as L,e as v,f as l,g as d,j as s,h as o,w as c,i as ne,F as le,C as oe,y as C,k as ie,a0 as I,t,l as u,$ as z,m as re,p as A,n as $,Z as ce,D as U,a1 as ue,_ as de,as as ge,aA as ve,a2 as pe}from"./index-7b482730.js";import{I as S}from"./iconify-30ae5ba5.js";import{I as _e}from"./InstallProgressModal-1ec0a6fc.js";import{_ as me}from"./_plugin-vue_export-helper-c27b6911.js";const he={class:"agent-marketplace"},fe={class:"page-header"},ye={class:"header-content"},we={class:"header-text"},ke={class:"content"},Ce={class:"search-container"},Ie={class:"search-bar"},Ae={key:0,class:"agents-section"},Se={class:"agents-header"},be={class:"sort-controls"},Ne={class:"agents-grid"},Me=["onClick"],Pe={key:1,class:"agent-icon-placeholder"},xe={class:"agent-content"},ze={class:"agent-header"},$e={class:"agent-title-section"},Te=["onClick"],je={key:0,class:"agent-name"},Be={key:0,class:"agent-description"},Fe={class:"agent-actions"},Le={class:"pagination-container"},Ue={key:1,class:"loading"},Ve={key:2,class:"empty"},Ee=ee({__name:"AgentMarketplace",setup(Re){const b=ae(),q=te(),Q=ie(),T=i(""),f=i(!1),p=i([]),N=i(0),_=i(1),y=i(parseInt(localStorage.getItem("itemsPerPage")||"20")),M=i("creation desc"),P=i(!1),w=i(0),h=i(""),x=i("info"),k=i(!1),V=i(new Set),X=K(()=>[{label:t("Latest"),value:"creation desc"},{label:t("Oldest"),value:"creation asc"},{label:t("Name A-Z"),value:"agent_name asc"},{label:t("Name Z-A"),value:"agent_name desc"},{label:t("Most Popular"),value:"modified desc"}]),G=K(()=>Math.max(1,Math.ceil(N.value/y.value)));async function g(){f.value=!0;try{const e=new URLSearchParams({page:_.value.toString(),page_size:y.value.toString(),search:T.value,sort_by:M.value}),a=(await I.get(`/jingrow/agent-marketplace?${e}`)).data;a.items?(p.value=a.items,N.value=a.total||0):(p.value=a||[],N.value=p.value.length)}catch(e){console.error("Failed to load agents:",e),b.error(t("Failed to load agents")),p.value=[],N.value=0}finally{f.value=!1}}function H(e){y.value=e,_.value=1,localStorage.setItem("itemsPerPage",e.toString()),g()}function j(e){Q.push({path:`/agent-marketplace/${e.name}`,query:{returnTo:"/agent-marketplace"}})}async function E(e){if(!e.agent_flow&&!e.agent_name){b.error(t("Agent flow data or name is missing"));return}try{const n=e.agent_name||e.name;if(n&&(await I.get(`/jingrow/check-agent/${n}`)).data.exists){q.warning({title:t("Agent already exists"),content:t('Agent "{0}" is already installed, do you want to overwrite?').replace("{0}",n),positiveText:t("Confirm Overwrite"),negativeText:t("Cancel"),onPositiveClick:()=>{R(e)}});return}}catch(n){console.error("Check agent exists error:",n)}R(e)}async function R(e){var n,a,m,D;try{P.value=!0,w.value=0,h.value=t("Preparing installation..."),x.value="info",k.value=!0;let r=e.agent_flow,F=e.agent_name||e.name;if(!r){h.value=t("Fetching agent details..."),w.value=20;try{const J=(await I.get(`/jingrow/agent-marketplace/${e.name}`)).data;r=J.agent_flow,F=J.agent_name||F}catch{throw new Error(t("Failed to fetch agent details"))}}if(!r)throw new Error(t("Agent flow data is missing"));if(w.value=40,h.value=t("Installing agent..."),typeof r=="string")try{r=JSON.parse(r)}catch{}const O=await I.post("/jingrow/install-agent",{agent_name:F,agent_flow:r},{headers:{...pe(),"Content-Type":"application/json"}});if(w.value=100,O.data.success)P.value=!1,x.value="success",h.value=t("Agent installed successfully!"),b.success(t("Agent installed successfully")),B(),setTimeout(()=>{k.value=!1},2e3);else throw new Error(O.data.error||t("Installation failed"))}catch(r){console.error("Install agent error:",r),P.value=!1,x.value="error",h.value=((a=(n=r.response)==null?void 0:n.data)==null?void 0:a.detail)||r.message||t("Installation failed"),b.error(((D=(m=r.response)==null?void 0:m.data)==null?void 0:D.detail)||t("Installation failed")),setTimeout(()=>{k.value=!1},3e3)}}function W(e,n){return e?e.length<=n?e:e.substring(0,n)+"...":""}async function B(){try{const e=await I.get("/jingrow/installed-agent-names");if(e.data.success){const n=e.data.agents||[];V.value=new Set(n.map(a=>a.toLowerCase()))}}catch(e){console.error("Load installed agents error:",e)}}function Y(e){return e?V.value.has(e.toLowerCase()):!1}return se(()=>{g(),B(),window.addEventListener("installedAgentsUpdated",()=>{B()})}),L([M],()=>{_.value=1,g()},{deep:!0}),L([_],()=>{g()}),L(()=>localStorage.getItem("itemsPerPage"),e=>{e&&(y.value=parseInt(e),_.value=1,g())}),(e,n)=>(u(),v("div",he,[l("div",fe,[l("div",ye,[l("div",we,[l("h1",null,d(s(t)("Agent Marketplace")),1),l("p",null,d(s(t)("Browse and install agents from Jingrow Agent Marketplace")),1)])])]),l("div",ke,[l("div",Ce,[l("div",Ie,[o(s(re),{value:T.value,"onUpdate:value":n[0]||(n[0]=a=>T.value=a),placeholder:s(t)("Search agents..."),clearable:"",size:"large",onKeyup:ne(g,["enter"]),class:"search-input"},{prefix:c(()=>[o(s(z),null,{default:c(()=>[o(s(S),{icon:"tabler:search"})]),_:1})]),_:1},8,["value","placeholder"]),o(s($),{type:"primary",size:"large",onClick:g,class:"search-button"},{icon:c(()=>[o(s(z),null,{default:c(()=>[o(s(S),{icon:"tabler:search"})]),_:1})]),default:c(()=>[A(" "+d(s(t)("Search")),1)]),_:1})])]),!f.value&&p.value.length>0?(u(),v("div",Ae,[l("div",Se,[n[4]||(n[4]=l("div",{class:"agents-title"},null,-1)),l("div",be,[o(s(ce),{value:M.value,"onUpdate:value":[n[1]||(n[1]=a=>M.value=a),g],options:X.value,placeholder:s(t)("Sort by"),style:{width:"150px"}},null,8,["value","options","placeholder"])])]),l("div",Ne,[(u(!0),v(le,null,oe(p.value,a=>(u(),v("div",{key:a.name,class:"agent-card"},[l("div",{class:"agent-icon",onClick:m=>j(a)},[a.icon?(u(),U(s(S),{key:0,icon:a.icon,width:48,height:48,style:ue({color:a.color||"#6b7280"})},null,8,["icon","style"])):(u(),v("div",Pe,[o(s(z),{size:"48"},{default:c(()=>[o(s(S),{icon:"hugeicons:robotic"})]),_:1})]))],8,Me),l("div",xe,[l("div",ze,[l("div",$e,[l("h3",{onClick:m=>j(a),class:"clickable-title"},d(a.title||a.agent_name||a.name),9,Te),a.agent_name?(u(),v("div",je,d(a.agent_name),1)):C("",!0)])]),a.description?(u(),v("div",Be,d(W(a.description,80)),1)):C("",!0)]),l("div",Fe,[o(s($),{type:"default",onClick:m=>j(a)},{default:c(()=>[A(d(s(t)("View Details")),1)]),_:1},8,["onClick"]),Y(a.agent_name||a.name)?(u(),U(s($),{key:0,type:"warning",onClick:m=>E(a)},{default:c(()=>[A(d(s(t)("Installed")),1)]),_:1},8,["onClick"])):(u(),U(s($),{key:1,type:"primary",onClick:m=>E(a)},{default:c(()=>[A(d(s(t)("Install")),1)]),_:1},8,["onClick"]))])]))),128))]),l("div",Le,[o(s(de),{page:_.value,"onUpdate:page":[n[2]||(n[2]=a=>_.value=a),g],"page-count":G.value,size:"large","show-size-picker":"","page-sizes":[20,50,100],"page-size":y.value,"onUpdate:pageSize":H},null,8,["page","page-count","page-size"])])])):C("",!0),f.value?(u(),v("div",Ue,[o(s(ge),{size:"large"},{description:c(()=>[A(d(s(t)("Loading agents...")),1)]),_:1})])):C("",!0),!f.value&&p.value.length===0?(u(),v("div",Ve,[o(s(ve),{description:s(t)("No agents found")},{icon:c(()=>[o(s(z),null,{default:c(()=>[o(s(S),{icon:"hugeicons:robotic"})]),_:1})]),_:1},8,["description"])])):C("",!0)]),o(_e,{modelValue:k.value,"onUpdate:modelValue":n[3]||(n[3]=a=>k.value=a),progress:w.value,message:h.value,status:x.value,installing:P.value,title:s(t)("Installing Agent")},null,8,["modelValue","progress","message","status","installing","title"])]))}});const Ke=me(Ee,[["__scopeId","data-v-4a3804b2"]]);export{Ke as default}; diff --git a/apps/jingrow/frontend/dist/assets/AppDetail-365ae623.js b/apps/jingrow/frontend/dist/assets/AppDetail-f30c2502.js similarity index 98% rename from apps/jingrow/frontend/dist/assets/AppDetail-365ae623.js rename to apps/jingrow/frontend/dist/assets/AppDetail-f30c2502.js index 738c620..d7a3a5a 100644 --- a/apps/jingrow/frontend/dist/assets/AppDetail-365ae623.js +++ b/apps/jingrow/frontend/dist/assets/AppDetail-f30c2502.js @@ -1 +1 @@ -import{d as Y,u as G,X as J,r as _,c as j,o as K,e as r,f as t,g as n,j as l,h as u,w as d,y as v,v as O,k as Q,a0 as y,t as s,a2 as E,l as c,$ as I,p as N,n as V,as as Z,aA as ee}from"./index-b37e64ca.js";import{I as x}from"./iconify-b5ab1212.js";import{I as ae}from"./InstallProgressModal-8a22be9b.js";import{_ as se}from"./_plugin-vue_export-helper-c27b6911.js";const te={class:"app-detail"},le={class:"page-header"},oe={class:"header-content"},ne={class:"header-text"},ie={class:"header-actions"},re={key:0,class:"loading-container"},ce={key:1,class:"error-container"},ue={key:2,class:"app-content"},pe={class:"app-card"},de={class:"app-info-section"},_e={class:"app-content-layout"},ve={class:"app-image-section"},he={class:"app-image"},fe=["src","alt"],me={key:1,class:"placeholder-image"},ge={class:"app-info-content"},ye={class:"app-header"},we={class:"app-title"},ke={key:0,class:"app-subtitle"},be={class:"info-list"},Ie={key:0,class:"info-item"},xe={class:"label"},Ae={class:"value"},Ce={key:1,class:"info-item"},Le={class:"label"},Te={class:"value"},De={key:2,class:"info-item"},Ne={class:"label"},Re=["href"],Se={key:3,class:"info-item"},Ue={class:"label"},Me=["href"],je={key:4,class:"info-item"},Ee={class:"label"},Ve={class:"value"},$e={key:5,class:"info-item"},Be={class:"label"},Pe={class:"value"},ze={key:0,class:"description-section"},Fe=["innerHTML"],He=Y({__name:"AppDetail",setup(qe){const R=O(),A=Q(),C=G(),$=J(),L=_(!0),w=_(""),e=_(null),k=_(!1),f=_(0),h=_(""),b=_("info"),g=_(!1),S=_(new Set),B=j(()=>R.params.name),T=j(()=>e.value?W(e.value.app_name||e.value.name||""):!1);async function P(){var a,o;L.value=!0,w.value="";try{const i=await y.get(`/jingrow/app-marketplace/${B.value}`);e.value=i.data}catch(i){console.error("Failed to load app detail:",i),w.value=((o=(a=i.response)==null?void 0:a.data)==null?void 0:o.detail)||s("Failed to load application details")}finally{L.value=!1}}function U(a){if(!a)return"";const o=new Date(a),i=o.getFullYear(),m=String(o.getMonth()+1).padStart(2,"0"),p=String(o.getDate()).padStart(2,"0");return`${i}-${m}-${p}`}function z(a){return a?a.startsWith("http")?a:`https://cloud.jingrow.com${a}`:""}function F(a){const o=a.target;o.style.display="none"}function H(){const a=R.query.returnTo;if(a){A.push(a);return}window.history.length>1?A.back():A.push("/app-marketplace")}async function q(){var a,o;if(!((a=e.value)!=null&&a.file_url)&&!((o=e.value)!=null&&o.repository_url)){C.error(s("应用文件URL或仓库地址不存在"));return}try{const i=e.value.app_name||e.value.name;if(i&&(await y.get(`/jingrow/check-app/${i}`)).data.exists){$.warning({title:s("应用已存在"),content:s('应用 "{0}" 已安装,是否覆盖安装?').replace("{0}",i),positiveText:s("确认覆盖"),negativeText:s("取消"),onPositiveClick:()=>{M()}});return}}catch(i){console.error("Check app exists error:",i)}M()}async function M(){var a,o,i,m;try{k.value=!0,f.value=0,h.value=s("正在准备安装..."),b.value="info",g.value=!0;let p;if(e.value.file_url)h.value=s("正在下载应用包..."),f.value=20,h.value=s("正在安装应用..."),f.value=30,p=await y.post("/jingrow/install-from-url",new URLSearchParams({url:e.value.file_url}),{headers:{...E(),"Content-Type":"application/x-www-form-urlencoded"}});else if(e.value.repository_url){h.value=s("正在克隆仓库..."),f.value=20,h.value=s("正在安装应用..."),f.value=30;const X=new URLSearchParams({repo_url:e.value.repository_url});p=await y.post("/jingrow/install-from-git",X,{headers:{...E(),"Content-Type":"application/x-www-form-urlencoded"}})}if(!p)throw new Error(s("无法确定安装方式"));if(f.value=100,p.data.success)k.value=!1,b.value="success",h.value=s("应用安装成功!"),C.success(s("应用安装成功")),D(),setTimeout(()=>{g.value=!1},2e3);else throw new Error(p.data.error||s("安装失败"))}catch(p){console.error("Install app error:",p),k.value=!1,b.value="error",h.value=((o=(a=p.response)==null?void 0:a.data)==null?void 0:o.detail)||p.message||s("安装失败"),C.error(((m=(i=p.response)==null?void 0:i.data)==null?void 0:m.detail)||s("安装失败")),setTimeout(()=>{g.value=!1},3e3)}}async function D(){try{const a=await y.get("/jingrow/installed-app-names");if(a.data.success){const o=a.data.apps||[];S.value=new Set(o)}}catch(a){console.error("Load installed apps error:",a)}}function W(a){return a?S.value.has(a.toLowerCase()):!1}return K(()=>{P(),D(),window.addEventListener("installedAppsUpdated",()=>{D()})}),(a,o)=>{var i;return c(),r("div",te,[t("div",le,[t("div",oe,[t("div",ne,[t("h1",null,n(((i=e.value)==null?void 0:i.title)||l(s)("App Details")),1)]),t("div",ie,[u(l(V),{onClick:H,size:"medium"},{icon:d(()=>[u(l(I),null,{default:d(()=>[u(l(x),{icon:"tabler:arrow-left"})]),_:1})]),default:d(()=>[N(" "+n(l(s)("Back")),1)]),_:1}),u(l(V),{type:T.value?"warning":"primary",onClick:q,size:"medium"},{icon:d(()=>[u(l(I),null,{default:d(()=>[u(l(x),{icon:T.value?"tabler:check":"tabler:download"},null,8,["icon"])]),_:1})]),default:d(()=>[N(" "+n(T.value?l(s)("Installed"):l(s)("Install")),1)]),_:1},8,["type"])])])]),L.value?(c(),r("div",re,[u(l(Z),{size:"large"},{description:d(()=>[N(n(l(s)("Loading application details...")),1)]),_:1})])):w.value?(c(),r("div",ce,[u(l(ee),{description:w.value},{icon:d(()=>[u(l(I),null,{default:d(()=>[u(l(x),{icon:"tabler:alert-circle"})]),_:1})]),_:1},8,["description"])])):e.value?(c(),r("div",ue,[t("div",pe,[t("div",de,[t("div",_e,[t("div",ve,[t("div",he,[e.value.app_image?(c(),r("img",{key:0,src:z(e.value.app_image),alt:e.value.title,onError:F},null,40,fe)):(c(),r("div",me,[u(l(I),{size:"80"},{default:d(()=>[u(l(x),{icon:"tabler:apps"})]),_:1})]))])]),t("div",ge,[t("div",ye,[t("h2",we,n(e.value.title||l(s)("Untitled App")),1),e.value.subtitle?(c(),r("div",ke,n(e.value.subtitle),1)):v("",!0)]),t("div",be,[e.value.app_name?(c(),r("div",Ie,[t("span",xe,n(l(s)("App Name"))+":",1),t("span",Ae,n(e.value.app_name),1)])):v("",!0),e.value.team?(c(),r("div",Ce,[t("span",Le,n(l(s)("Team"))+":",1),t("span",Te,n(e.value.team),1)])):v("",!0),e.value.repository_url?(c(),r("div",De,[t("span",Ne,n(l(s)("Repository URL"))+":",1),t("a",{href:e.value.repository_url,target:"_blank",class:"link"},n(e.value.repository_url),9,Re)])):v("",!0),e.value.file_url?(c(),r("div",Se,[t("span",Ue,n(l(s)("File URL"))+":",1),t("a",{href:e.value.file_url,target:"_blank",class:"link"},n(e.value.file_url),9,Me)])):v("",!0),e.value.creation?(c(),r("div",je,[t("span",Ee,n(l(s)("Created"))+":",1),t("span",Ve,n(U(e.value.creation)),1)])):v("",!0),e.value.modified?(c(),r("div",$e,[t("span",Be,n(l(s)("Last Updated"))+":",1),t("span",Pe,n(U(e.value.modified)),1)])):v("",!0)])])])]),e.value.description?(c(),r("div",ze,[t("h3",null,n(l(s)("Description")),1),t("div",{class:"description-content",innerHTML:e.value.description},null,8,Fe)])):v("",!0)])])):v("",!0),u(ae,{modelValue:g.value,"onUpdate:modelValue":o[0]||(o[0]=m=>g.value=m),progress:f.value,message:h.value,status:b.value,installing:k.value},null,8,["modelValue","progress","message","status","installing"])])}}});const Je=se(He,[["__scopeId","data-v-1ea6ae46"]]);export{Je as default}; +import{d as Y,u as G,X as J,r as _,c as j,o as K,e as r,f as t,g as n,j as l,h as u,w as d,y as v,v as O,k as Q,a0 as y,t as s,a2 as E,l as c,$ as I,p as N,n as V,as as Z,aA as ee}from"./index-7b482730.js";import{I as x}from"./iconify-30ae5ba5.js";import{I as ae}from"./InstallProgressModal-1ec0a6fc.js";import{_ as se}from"./_plugin-vue_export-helper-c27b6911.js";const te={class:"app-detail"},le={class:"page-header"},oe={class:"header-content"},ne={class:"header-text"},ie={class:"header-actions"},re={key:0,class:"loading-container"},ce={key:1,class:"error-container"},ue={key:2,class:"app-content"},pe={class:"app-card"},de={class:"app-info-section"},_e={class:"app-content-layout"},ve={class:"app-image-section"},he={class:"app-image"},fe=["src","alt"],me={key:1,class:"placeholder-image"},ge={class:"app-info-content"},ye={class:"app-header"},we={class:"app-title"},ke={key:0,class:"app-subtitle"},be={class:"info-list"},Ie={key:0,class:"info-item"},xe={class:"label"},Ae={class:"value"},Ce={key:1,class:"info-item"},Le={class:"label"},Te={class:"value"},De={key:2,class:"info-item"},Ne={class:"label"},Re=["href"],Se={key:3,class:"info-item"},Ue={class:"label"},Me=["href"],je={key:4,class:"info-item"},Ee={class:"label"},Ve={class:"value"},$e={key:5,class:"info-item"},Be={class:"label"},Pe={class:"value"},ze={key:0,class:"description-section"},Fe=["innerHTML"],He=Y({__name:"AppDetail",setup(qe){const R=O(),A=Q(),C=G(),$=J(),L=_(!0),w=_(""),e=_(null),k=_(!1),f=_(0),h=_(""),b=_("info"),g=_(!1),S=_(new Set),B=j(()=>R.params.name),T=j(()=>e.value?W(e.value.app_name||e.value.name||""):!1);async function P(){var a,o;L.value=!0,w.value="";try{const i=await y.get(`/jingrow/app-marketplace/${B.value}`);e.value=i.data}catch(i){console.error("Failed to load app detail:",i),w.value=((o=(a=i.response)==null?void 0:a.data)==null?void 0:o.detail)||s("Failed to load application details")}finally{L.value=!1}}function U(a){if(!a)return"";const o=new Date(a),i=o.getFullYear(),m=String(o.getMonth()+1).padStart(2,"0"),p=String(o.getDate()).padStart(2,"0");return`${i}-${m}-${p}`}function z(a){return a?a.startsWith("http")?a:`https://cloud.jingrow.com${a}`:""}function F(a){const o=a.target;o.style.display="none"}function H(){const a=R.query.returnTo;if(a){A.push(a);return}window.history.length>1?A.back():A.push("/app-marketplace")}async function q(){var a,o;if(!((a=e.value)!=null&&a.file_url)&&!((o=e.value)!=null&&o.repository_url)){C.error(s("应用文件URL或仓库地址不存在"));return}try{const i=e.value.app_name||e.value.name;if(i&&(await y.get(`/jingrow/check-app/${i}`)).data.exists){$.warning({title:s("应用已存在"),content:s('应用 "{0}" 已安装,是否覆盖安装?').replace("{0}",i),positiveText:s("确认覆盖"),negativeText:s("取消"),onPositiveClick:()=>{M()}});return}}catch(i){console.error("Check app exists error:",i)}M()}async function M(){var a,o,i,m;try{k.value=!0,f.value=0,h.value=s("正在准备安装..."),b.value="info",g.value=!0;let p;if(e.value.file_url)h.value=s("正在下载应用包..."),f.value=20,h.value=s("正在安装应用..."),f.value=30,p=await y.post("/jingrow/install-from-url",new URLSearchParams({url:e.value.file_url}),{headers:{...E(),"Content-Type":"application/x-www-form-urlencoded"}});else if(e.value.repository_url){h.value=s("正在克隆仓库..."),f.value=20,h.value=s("正在安装应用..."),f.value=30;const X=new URLSearchParams({repo_url:e.value.repository_url});p=await y.post("/jingrow/install-from-git",X,{headers:{...E(),"Content-Type":"application/x-www-form-urlencoded"}})}if(!p)throw new Error(s("无法确定安装方式"));if(f.value=100,p.data.success)k.value=!1,b.value="success",h.value=s("应用安装成功!"),C.success(s("应用安装成功")),D(),setTimeout(()=>{g.value=!1},2e3);else throw new Error(p.data.error||s("安装失败"))}catch(p){console.error("Install app error:",p),k.value=!1,b.value="error",h.value=((o=(a=p.response)==null?void 0:a.data)==null?void 0:o.detail)||p.message||s("安装失败"),C.error(((m=(i=p.response)==null?void 0:i.data)==null?void 0:m.detail)||s("安装失败")),setTimeout(()=>{g.value=!1},3e3)}}async function D(){try{const a=await y.get("/jingrow/installed-app-names");if(a.data.success){const o=a.data.apps||[];S.value=new Set(o)}}catch(a){console.error("Load installed apps error:",a)}}function W(a){return a?S.value.has(a.toLowerCase()):!1}return K(()=>{P(),D(),window.addEventListener("installedAppsUpdated",()=>{D()})}),(a,o)=>{var i;return c(),r("div",te,[t("div",le,[t("div",oe,[t("div",ne,[t("h1",null,n(((i=e.value)==null?void 0:i.title)||l(s)("App Details")),1)]),t("div",ie,[u(l(V),{onClick:H,size:"medium"},{icon:d(()=>[u(l(I),null,{default:d(()=>[u(l(x),{icon:"tabler:arrow-left"})]),_:1})]),default:d(()=>[N(" "+n(l(s)("Back")),1)]),_:1}),u(l(V),{type:T.value?"warning":"primary",onClick:q,size:"medium"},{icon:d(()=>[u(l(I),null,{default:d(()=>[u(l(x),{icon:T.value?"tabler:check":"tabler:download"},null,8,["icon"])]),_:1})]),default:d(()=>[N(" "+n(T.value?l(s)("Installed"):l(s)("Install")),1)]),_:1},8,["type"])])])]),L.value?(c(),r("div",re,[u(l(Z),{size:"large"},{description:d(()=>[N(n(l(s)("Loading application details...")),1)]),_:1})])):w.value?(c(),r("div",ce,[u(l(ee),{description:w.value},{icon:d(()=>[u(l(I),null,{default:d(()=>[u(l(x),{icon:"tabler:alert-circle"})]),_:1})]),_:1},8,["description"])])):e.value?(c(),r("div",ue,[t("div",pe,[t("div",de,[t("div",_e,[t("div",ve,[t("div",he,[e.value.app_image?(c(),r("img",{key:0,src:z(e.value.app_image),alt:e.value.title,onError:F},null,40,fe)):(c(),r("div",me,[u(l(I),{size:"80"},{default:d(()=>[u(l(x),{icon:"tabler:apps"})]),_:1})]))])]),t("div",ge,[t("div",ye,[t("h2",we,n(e.value.title||l(s)("Untitled App")),1),e.value.subtitle?(c(),r("div",ke,n(e.value.subtitle),1)):v("",!0)]),t("div",be,[e.value.app_name?(c(),r("div",Ie,[t("span",xe,n(l(s)("App Name"))+":",1),t("span",Ae,n(e.value.app_name),1)])):v("",!0),e.value.team?(c(),r("div",Ce,[t("span",Le,n(l(s)("Team"))+":",1),t("span",Te,n(e.value.team),1)])):v("",!0),e.value.repository_url?(c(),r("div",De,[t("span",Ne,n(l(s)("Repository URL"))+":",1),t("a",{href:e.value.repository_url,target:"_blank",class:"link"},n(e.value.repository_url),9,Re)])):v("",!0),e.value.file_url?(c(),r("div",Se,[t("span",Ue,n(l(s)("File URL"))+":",1),t("a",{href:e.value.file_url,target:"_blank",class:"link"},n(e.value.file_url),9,Me)])):v("",!0),e.value.creation?(c(),r("div",je,[t("span",Ee,n(l(s)("Created"))+":",1),t("span",Ve,n(U(e.value.creation)),1)])):v("",!0),e.value.modified?(c(),r("div",$e,[t("span",Be,n(l(s)("Last Updated"))+":",1),t("span",Pe,n(U(e.value.modified)),1)])):v("",!0)])])])]),e.value.description?(c(),r("div",ze,[t("h3",null,n(l(s)("Description")),1),t("div",{class:"description-content",innerHTML:e.value.description},null,8,Fe)])):v("",!0)])])):v("",!0),u(ae,{modelValue:g.value,"onUpdate:modelValue":o[0]||(o[0]=m=>g.value=m),progress:f.value,message:h.value,status:b.value,installing:k.value},null,8,["modelValue","progress","message","status","installing"])])}}});const Je=se(He,[["__scopeId","data-v-1ea6ae46"]]);export{Je as default}; diff --git a/apps/jingrow/frontend/dist/assets/AppInstaller-64bbe86f.js b/apps/jingrow/frontend/dist/assets/AppInstaller-39ffeeb1.js similarity index 98% rename from apps/jingrow/frontend/dist/assets/AppInstaller-64bbe86f.js rename to apps/jingrow/frontend/dist/assets/AppInstaller-39ffeeb1.js index 5c97828..b757f19 100644 --- a/apps/jingrow/frontend/dist/assets/AppInstaller-64bbe86f.js +++ b/apps/jingrow/frontend/dist/assets/AppInstaller-39ffeeb1.js @@ -1 +1 @@ -import{I as A}from"./iconify-b5ab1212.js";import{d as Q,r as p,u as X,t as a,A as Y,o as ee,e as b,f as d,h as l,w as t,j as e,p as f,g as r,y as I,k as ae,n as C,a0 as B,a2 as T,l as m,$ as N,aw as le,ax as te,s as U,ay as se,ak as oe,I as S,D as ne,U as E,ac as ie,az as re,af as de}from"./index-b37e64ca.js";import{_ as ce}from"./_plugin-vue_export-helper-c27b6911.js";const ue={class:"app-installer-page"},pe={class:"page-header"},fe={class:"header-content"},_e={class:"page-title"},ge={class:"page-description"},ve={class:"header-actions"},he={class:"upload-section"},me={key:0,class:"upload-content"},ye={key:0,class:"file-info-card"},ke={class:"file-info-header"},we={key:1,class:"upload-actions"},Ae={key:0,class:"local-apps-section"},be={class:"progress-content"},Ie=Q({__name:"AppInstaller",setup(Ce){const c=p([]),_=p(!1),z=p(!1),g=p(0),y=p(""),P=p("info"),x=p(!1),L=p([]),F=p(!1),u=X(),D=p(),Z=ae(),$=()=>{Z.push("/app-marketplace")},j=[{title:a("App Name"),key:"name",width:150},{title:a("Title"),key:"title",width:200},{title:a("Publisher"),key:"publisher",width:150},{title:a("Description"),key:"description",ellipsis:!0},{title:a("Actions"),key:"actions",width:120,render:s=>Y(C,{type:"primary",size:"small",onClick:()=>K(s.name)},{default:()=>a("Install")})}],G=s=>{const i=s.file.file;if(!i)return!1;const o=i.name.toLowerCase();return[".zip",".tar.gz",".tgz",".gz"].some(M=>o.endsWith(M))?!0:(u.error(a("Only ZIP and TAR.GZ files are supported")),!1)},O=s=>{c.value=s.fileList},q=async s=>Promise.resolve(),H=async()=>{var o,n,v,M;if(c.value.length===0){u.error(a("Please select a file first"));return}const s=c.value[0].file;if(!s){u.error(a("File not found"));return}const i="/jingrow/install/upload";try{_.value=!0,z.value=!0,x.value=!0,g.value=0,y.value=a("Preparing upload..."),P.value="info";const h=new FormData;h.append("file",s),g.value=30,y.value=a("Uploading file...");const k=await B.post(i,h,{headers:{...T(),"Content-Type":"multipart/form-data"},onUploadProgress:w=>{if(w.total){const W=Math.round(w.loaded*70/w.total)+30;g.value=Math.min(W,100)}}});if(g.value=100,y.value=a("Installation completed!"),P.value="success",k.data.success){V();const w=k.data.app_name;u.success(a("Package '{0}' installed successfully").replace("{0}",w))}else throw new Error(k.data.error||a("Installation failed"))}catch(h){g.value=100,y.value=a("Installation failed!"),P.value="error";const k=((n=(o=h.response)==null?void 0:o.data)==null?void 0:n.detail)||((M=(v=h.response)==null?void 0:v.data)==null?void 0:M.message)||h.message||a("Upload failed");u.error(k)}finally{_.value=!1,z.value=!1}},V=()=>{var s;c.value=[],(s=D.value)==null||s.clear()},J=s=>{if(s===0)return"0 B";const i=1024,o=["B","KB","MB","GB"],n=Math.floor(Math.log(s)/Math.log(i));return Math.round(s/Math.pow(i,n)*100)/100+" "+o[n]},R=async()=>{var s,i;F.value=!0;try{const o={}.VITE_LOCAL_API_URL||"",n=await B.get(`${o}/jingrow/local-apps`,{headers:T(),withCredentials:!0});n.data.success?L.value=n.data.data.apps:u.error(n.data.detail||a("Failed to load local apps"))}catch(o){u.error(((i=(s=o==null?void 0:o.response)==null?void 0:s.data)==null?void 0:i.detail)||(o==null?void 0:o.message)||a("Failed to load local apps"))}finally{F.value=!1}},K=async s=>{var i,o;try{const n={}.VITE_LOCAL_API_URL||"",v=await B.post(`${n}/jingrow/install-local/${s}`,{},{headers:T(),withCredentials:!0});v.data.success?(u.success(a("App '{0}' installed successfully").replace("{0}",s)),await R()):u.error(v.data.detail||a("Failed to install app"))}catch(n){u.error(((o=(i=n==null?void 0:n.response)==null?void 0:i.data)==null?void 0:o.detail)||(n==null?void 0:n.message)||a("Failed to install app"))}};return ee(()=>{R()}),(s,i)=>(m(),b("div",ue,[d("div",pe,[d("div",fe,[d("h1",_e,[l(e(N),null,{default:t(()=>[l(e(A),{icon:"tabler:upload"})]),_:1}),f(" "+r(e(a)("App Installer")),1)]),d("p",ge,r(e(a)("Upload and install applications to your local Jingrow environment")),1)]),d("div",ve,[l(e(C),{type:"primary",onClick:$,"theme-overrides":{colorHover:"#3b82f6",colorPressed:"#2563eb"}},{icon:t(()=>[l(e(N),null,{default:t(()=>[l(e(A),{icon:"tabler:shopping-cart"})]),_:1})]),default:t(()=>[f(" "+r(e(a)("App Marketplace")),1)]),_:1})])]),d("div",he,[l(e(E),{title:e(a)("Upload App Package"),class:"upload-card"},{default:t(()=>[l(e(le),{ref_key:"uploadRef",ref:D,"file-list":c.value,max:1,accept:".zip,.tar.gz,.tgz,.gz","on-before-upload":G,"on-change":O,"custom-request":q,disabled:_.value},{default:t(()=>[l(e(te),null,{default:t(()=>[c.value.length===0?(m(),b("div",me,[l(e(N),{size:"48",depth:3},{default:t(()=>[l(e(A),{icon:"tabler:cloud-upload"})]),_:1}),l(e(U),{style:{"font-size":"16px"}},{default:t(()=>[f(r(_.value?e(a)("Uploading..."):e(a)("Click or drag package file to this area to upload")),1)]),_:1}),l(e(se),{depth:"3",style:{margin:"8px 0 0 0"}},{default:t(()=>[f(r(e(a)("Support for ZIP, TAR.GZ, and GZ format")),1)]),_:1})])):I("",!0)]),_:1})]),_:1},8,["file-list","disabled"]),c.value.length>0?(m(),b("div",ye,[l(e(oe),{type:"info",bordered:!1},{header:t(()=>[d("div",ke,[l(e(N),{size:"20",color:"#2080f0"},{default:t(()=>[l(e(A),{icon:"tabler:file-zip"})]),_:1}),d("strong",null,r(e(a)("Selected Package")),1)])]),default:t(()=>[l(e(S),{vertical:""},{default:t(()=>[l(e(U),null,{default:t(()=>[d("strong",null,r(e(a)("File Name"))+":",1),f(" "+r(c.value[0].name),1)]),_:1}),c.value[0].file?(m(),ne(e(U),{key:0,depth:"3"},{default:t(()=>[d("strong",null,r(e(a)("Size"))+":",1),f(" "+r(J(c.value[0].file.size)),1)]),_:1})):I("",!0)]),_:1})]),_:1})])):I("",!0),c.value.length>0?(m(),b("div",we,[l(e(S),null,{default:t(()=>[l(e(C),{onClick:V,disabled:_.value},{default:t(()=>[f(r(e(a)("Clear")),1)]),_:1},8,["disabled"]),l(e(C),{type:"primary",onClick:H,loading:_.value,disabled:_.value},{icon:t(()=>[l(e(N),null,{default:t(()=>[l(e(A),{icon:"tabler:upload"})]),_:1})]),default:t(()=>[f(" "+r(e(a)("Install App")),1)]),_:1},8,["loading","disabled"])]),_:1})])):I("",!0)]),_:1},8,["title"])]),L.value.length>0?(m(),b("div",Ae,[l(e(E),{title:e(a)("Local Apps Available"),class:"local-apps-card"},{default:t(()=>[l(e(ie),{columns:j,data:L.value,loading:F.value,pagination:!1,bordered:!1},null,8,["data","loading"])]),_:1},8,["title"])])):I("",!0),l(e(de),{show:x.value,"onUpdate:show":i[1]||(i[1]=o=>x.value=o),preset:"card",style:{width:"500px"}},{header:t(()=>[d("h3",null,r(e(a)("Installing App")),1)]),action:t(()=>[l(e(C),{onClick:i[0]||(i[0]=o=>x.value=!1),disabled:z.value},{default:t(()=>[f(r(z.value?e(a)("Installing..."):e(a)("Close")),1)]),_:1},8,["disabled"])]),default:t(()=>[d("div",be,[l(e(re),{percentage:g.value,status:P.value,"show-indicator":!0},null,8,["percentage","status"]),l(e(U),{class:"progress-text"},{default:t(()=>[f(r(y.value),1)]),_:1})])]),_:1},8,["show"])]))}});const xe=ce(Ie,[["__scopeId","data-v-e6073096"]]);export{xe as default}; +import{I as A}from"./iconify-30ae5ba5.js";import{d as Q,r as p,u as X,t as a,A as Y,o as ee,e as b,f as d,h as l,w as t,j as e,p as f,g as r,y as I,k as ae,n as C,a0 as B,a2 as T,l as m,$ as N,aw as le,ax as te,s as U,ay as se,ak as oe,I as S,D as ne,U as E,ac as ie,az as re,af as de}from"./index-7b482730.js";import{_ as ce}from"./_plugin-vue_export-helper-c27b6911.js";const ue={class:"app-installer-page"},pe={class:"page-header"},fe={class:"header-content"},_e={class:"page-title"},ge={class:"page-description"},ve={class:"header-actions"},he={class:"upload-section"},me={key:0,class:"upload-content"},ye={key:0,class:"file-info-card"},ke={class:"file-info-header"},we={key:1,class:"upload-actions"},Ae={key:0,class:"local-apps-section"},be={class:"progress-content"},Ie=Q({__name:"AppInstaller",setup(Ce){const c=p([]),_=p(!1),z=p(!1),g=p(0),y=p(""),P=p("info"),x=p(!1),L=p([]),F=p(!1),u=X(),D=p(),Z=ae(),$=()=>{Z.push("/app-marketplace")},j=[{title:a("App Name"),key:"name",width:150},{title:a("Title"),key:"title",width:200},{title:a("Publisher"),key:"publisher",width:150},{title:a("Description"),key:"description",ellipsis:!0},{title:a("Actions"),key:"actions",width:120,render:s=>Y(C,{type:"primary",size:"small",onClick:()=>K(s.name)},{default:()=>a("Install")})}],G=s=>{const i=s.file.file;if(!i)return!1;const o=i.name.toLowerCase();return[".zip",".tar.gz",".tgz",".gz"].some(M=>o.endsWith(M))?!0:(u.error(a("Only ZIP and TAR.GZ files are supported")),!1)},O=s=>{c.value=s.fileList},q=async s=>Promise.resolve(),H=async()=>{var o,n,v,M;if(c.value.length===0){u.error(a("Please select a file first"));return}const s=c.value[0].file;if(!s){u.error(a("File not found"));return}const i="/jingrow/install/upload";try{_.value=!0,z.value=!0,x.value=!0,g.value=0,y.value=a("Preparing upload..."),P.value="info";const h=new FormData;h.append("file",s),g.value=30,y.value=a("Uploading file...");const k=await B.post(i,h,{headers:{...T(),"Content-Type":"multipart/form-data"},onUploadProgress:w=>{if(w.total){const W=Math.round(w.loaded*70/w.total)+30;g.value=Math.min(W,100)}}});if(g.value=100,y.value=a("Installation completed!"),P.value="success",k.data.success){V();const w=k.data.app_name;u.success(a("Package '{0}' installed successfully").replace("{0}",w))}else throw new Error(k.data.error||a("Installation failed"))}catch(h){g.value=100,y.value=a("Installation failed!"),P.value="error";const k=((n=(o=h.response)==null?void 0:o.data)==null?void 0:n.detail)||((M=(v=h.response)==null?void 0:v.data)==null?void 0:M.message)||h.message||a("Upload failed");u.error(k)}finally{_.value=!1,z.value=!1}},V=()=>{var s;c.value=[],(s=D.value)==null||s.clear()},J=s=>{if(s===0)return"0 B";const i=1024,o=["B","KB","MB","GB"],n=Math.floor(Math.log(s)/Math.log(i));return Math.round(s/Math.pow(i,n)*100)/100+" "+o[n]},R=async()=>{var s,i;F.value=!0;try{const o={}.VITE_LOCAL_API_URL||"",n=await B.get(`${o}/jingrow/local-apps`,{headers:T(),withCredentials:!0});n.data.success?L.value=n.data.data.apps:u.error(n.data.detail||a("Failed to load local apps"))}catch(o){u.error(((i=(s=o==null?void 0:o.response)==null?void 0:s.data)==null?void 0:i.detail)||(o==null?void 0:o.message)||a("Failed to load local apps"))}finally{F.value=!1}},K=async s=>{var i,o;try{const n={}.VITE_LOCAL_API_URL||"",v=await B.post(`${n}/jingrow/install-local/${s}`,{},{headers:T(),withCredentials:!0});v.data.success?(u.success(a("App '{0}' installed successfully").replace("{0}",s)),await R()):u.error(v.data.detail||a("Failed to install app"))}catch(n){u.error(((o=(i=n==null?void 0:n.response)==null?void 0:i.data)==null?void 0:o.detail)||(n==null?void 0:n.message)||a("Failed to install app"))}};return ee(()=>{R()}),(s,i)=>(m(),b("div",ue,[d("div",pe,[d("div",fe,[d("h1",_e,[l(e(N),null,{default:t(()=>[l(e(A),{icon:"tabler:upload"})]),_:1}),f(" "+r(e(a)("App Installer")),1)]),d("p",ge,r(e(a)("Upload and install applications to your local Jingrow environment")),1)]),d("div",ve,[l(e(C),{type:"primary",onClick:$,"theme-overrides":{colorHover:"#3b82f6",colorPressed:"#2563eb"}},{icon:t(()=>[l(e(N),null,{default:t(()=>[l(e(A),{icon:"tabler:shopping-cart"})]),_:1})]),default:t(()=>[f(" "+r(e(a)("App Marketplace")),1)]),_:1})])]),d("div",he,[l(e(E),{title:e(a)("Upload App Package"),class:"upload-card"},{default:t(()=>[l(e(le),{ref_key:"uploadRef",ref:D,"file-list":c.value,max:1,accept:".zip,.tar.gz,.tgz,.gz","on-before-upload":G,"on-change":O,"custom-request":q,disabled:_.value},{default:t(()=>[l(e(te),null,{default:t(()=>[c.value.length===0?(m(),b("div",me,[l(e(N),{size:"48",depth:3},{default:t(()=>[l(e(A),{icon:"tabler:cloud-upload"})]),_:1}),l(e(U),{style:{"font-size":"16px"}},{default:t(()=>[f(r(_.value?e(a)("Uploading..."):e(a)("Click or drag package file to this area to upload")),1)]),_:1}),l(e(se),{depth:"3",style:{margin:"8px 0 0 0"}},{default:t(()=>[f(r(e(a)("Support for ZIP, TAR.GZ, and GZ format")),1)]),_:1})])):I("",!0)]),_:1})]),_:1},8,["file-list","disabled"]),c.value.length>0?(m(),b("div",ye,[l(e(oe),{type:"info",bordered:!1},{header:t(()=>[d("div",ke,[l(e(N),{size:"20",color:"#2080f0"},{default:t(()=>[l(e(A),{icon:"tabler:file-zip"})]),_:1}),d("strong",null,r(e(a)("Selected Package")),1)])]),default:t(()=>[l(e(S),{vertical:""},{default:t(()=>[l(e(U),null,{default:t(()=>[d("strong",null,r(e(a)("File Name"))+":",1),f(" "+r(c.value[0].name),1)]),_:1}),c.value[0].file?(m(),ne(e(U),{key:0,depth:"3"},{default:t(()=>[d("strong",null,r(e(a)("Size"))+":",1),f(" "+r(J(c.value[0].file.size)),1)]),_:1})):I("",!0)]),_:1})]),_:1})])):I("",!0),c.value.length>0?(m(),b("div",we,[l(e(S),null,{default:t(()=>[l(e(C),{onClick:V,disabled:_.value},{default:t(()=>[f(r(e(a)("Clear")),1)]),_:1},8,["disabled"]),l(e(C),{type:"primary",onClick:H,loading:_.value,disabled:_.value},{icon:t(()=>[l(e(N),null,{default:t(()=>[l(e(A),{icon:"tabler:upload"})]),_:1})]),default:t(()=>[f(" "+r(e(a)("Install App")),1)]),_:1},8,["loading","disabled"])]),_:1})])):I("",!0)]),_:1},8,["title"])]),L.value.length>0?(m(),b("div",Ae,[l(e(E),{title:e(a)("Local Apps Available"),class:"local-apps-card"},{default:t(()=>[l(e(ie),{columns:j,data:L.value,loading:F.value,pagination:!1,bordered:!1},null,8,["data","loading"])]),_:1},8,["title"])])):I("",!0),l(e(de),{show:x.value,"onUpdate:show":i[1]||(i[1]=o=>x.value=o),preset:"card",style:{width:"500px"}},{header:t(()=>[d("h3",null,r(e(a)("Installing App")),1)]),action:t(()=>[l(e(C),{onClick:i[0]||(i[0]=o=>x.value=!1),disabled:z.value},{default:t(()=>[f(r(z.value?e(a)("Installing..."):e(a)("Close")),1)]),_:1},8,["disabled"])]),default:t(()=>[d("div",be,[l(e(re),{percentage:g.value,status:P.value,"show-indicator":!0},null,8,["percentage","status"]),l(e(U),{class:"progress-text"},{default:t(()=>[f(r(y.value),1)]),_:1})])]),_:1},8,["show"])]))}});const xe=ce(Ie,[["__scopeId","data-v-e6073096"]]);export{xe as default}; diff --git a/apps/jingrow/frontend/dist/assets/AppLayout-5b6443f0.js b/apps/jingrow/frontend/dist/assets/AppLayout-e889a9f9.js similarity index 97% rename from apps/jingrow/frontend/dist/assets/AppLayout-5b6443f0.js rename to apps/jingrow/frontend/dist/assets/AppLayout-e889a9f9.js index a4f097a..097c18a 100644 --- a/apps/jingrow/frontend/dist/assets/AppLayout-5b6443f0.js +++ b/apps/jingrow/frontend/dist/assets/AppLayout-e889a9f9.js @@ -1 +1 @@ -import{_ as j}from"./logo-a60c622a.js";import{d as C,k as W,v as V,c as w,x as O,l as m,e as L,f as S,h as s,w as u,g as E,y as M,j as o,z as G,t as c,A as J,u as X,a as Z,r as I,n as $,B as D,p as A,F as U,C as ee,D as x,E as te,i as R,m as oe,G as se,H as ae,I as le,o as Y,J as ne,K as Q,L as re,T as ce,M as ie,O as ue,P as de,Q as pe,R as z}from"./index-b37e64ca.js";import{u as _e}from"./menu-ce924ee4.js";import{p as F}from"./slug-217ba005.js";import{_ as he}from"./DynamicIcon.vue_vue_type_script_setup_true_lang-d4076c90.js";import{_ as H}from"./_plugin-vue_export-helper-c27b6911.js";import{I as T}from"./iconify-b5ab1212.js";const me={class:"app-sidebar"},fe={class:"sidebar-header"},ve={class:"logo"},ge=["alt"],be={key:0,class:"logo-text"},ye={class:"menu-container"},we=C({__name:"AppSidebar",props:{collapsed:{type:Boolean}},emits:["menu-select"],setup(B,{emit:i}){const d=i,p=W(),f=V(),v=w(()=>f.name),k=_e(),b=w(()=>localStorage.getItem("appName")||"Jingrow"),y=r=>{const e={};r.forEach(l=>e[l.id]={...l,children:[]});const t=[];return r.forEach(l=>{const _=l.parentId;_&&e[_]?e[_].children.push(e[l.id]):t.push(e[l.id])}),t},h=(r,e=24)=>r?()=>J(he,{name:r,size:e,color:"#64748b",iconLibrary:"tabler"}):void 0,g=r=>r.map(e=>({label:c(e.label),key:e.id,icon:h(e.icon,24),children:e.children&&e.children.length?e.children.map(t=>{var l;return{label:c(t.label),key:t.id,icon:h(t.icon,20),children:(l=t.children)!=null&&l.length?g(t.children):void 0}}):void 0})),n=w(()=>{const r=y(k.visibleItems);return g(r)}),a=r=>{const e=k.items.find(t=>t.id===r);if(e)if(d("menu-select"),e.type==="pagetype"&&e.pagetype){const t=F(e.pagetype);p.push({name:"PageTypeList",params:{entity:t}})}else if(e.type==="route"&&e.routeName)p.push({name:e.routeName});else if(e.type==="url"&&e.url)e.url.startsWith("http://")||e.url.startsWith("https://")?window.open(e.url,"_blank"):p.push(e.url);else{if(e.type==="workspace"&&e.workspaceName){const t=F(e.workspaceName);p.push(`/workspace/${t}`);return}e.url?e.url.startsWith("http://")||e.url.startsWith("https://")?window.open(e.url,"_blank"):p.push(e.url):e.routeName&&p.push({name:e.routeName})}};return(r,e)=>{const t=O("router-link");return m(),L("div",me,[S("div",fe,[S("div",ve,[s(t,{to:"/",class:"logo-link"},{default:u(()=>[S("img",{src:j,alt:b.value,width:"32",height:"32"},null,8,ge),r.collapsed?M("",!0):(m(),L("span",be,E(b.value),1))]),_:1})])]),S("div",ye,[s(o(G),{collapsed:r.collapsed,"collapsed-width":64,"collapsed-icon-size":24,options:n.value,value:v.value,"onUpdate:value":a},null,8,["collapsed","options","value"])])])}}});const Se=H(we,[["__scopeId","data-v-b09c3830"]]),ke={class:"app-header"},Le={class:"header-left"},Ne={class:"header-right"},Te={class:"username"},Ee=C({__name:"AppHeader",setup(B){const i=W(),d=V(),p=X(),f=Z(),v=I(""),k=w(()=>localStorage.getItem("appName")||"Jingrow"),b=w(()=>f.user),y=w(()=>{var e;return((e=f.user)==null?void 0:e.user_type)==="System User"}),h=w(()=>{const e=[];if(d.name==="PageTypeList"){const t=d.params.entity;t&&e.push({label:t,href:`/app/${t}`})}else if(d.name==="PageTypeDetail"){const t=d.params.entity,l=d.params.id;t&&e.push({label:t,href:`/app/${t}`}),l&&l!=="new"&&e.push({label:l==="new"?c("Create"):l})}else{const l={Dashboard:c("Dashboard"),AgentList:c("Agents"),AgentDetail:c("Agent Detail"),NodeList:c("Node Management"),NodeDetail:c("Node Detail"),LocalJobList:c("Local Jobs"),LocalJobDetail:c("Local Job Detail"),FlowBuilder:c("Flow Builder"),ScheduledJobList:c("Scheduled Jobs"),ScheduledJobDetail:c("Scheduled Job Detail"),MenuManager:c("Menu Manager"),Settings:c("Settings"),SearchResults:c("Search Results")}[d.name];l&&e.push({label:l})}return e}),g=w(()=>[{label:c("Profile"),key:"profile",icon:()=>J(T,{icon:"tabler:user"})},{label:c("Logout"),key:"logout",icon:()=>J(T,{icon:"tabler:logout"})}]),n=async e=>{e==="logout"?(await f.logout(),p.success(c("Logged out")),i.push("/login")):e==="profile"&&i.push("/profile")},a=()=>{v.value.trim()&&i.push({name:"SearchResults",query:{q:v.value.trim()}})},r=()=>{v.value=""};return(e,t)=>{const l=O("router-link");return m(),L("div",ke,[S("div",Le,[s(o($),{quaternary:"",circle:"",onClick:t[0]||(t[0]=_=>e.$emit("toggle-sidebar")),class:"sidebar-toggle"},{icon:u(()=>[s(o(T),{icon:"tabler:menu-2"})]),_:1}),s(o(te),{class:"breadcrumb"},{default:u(()=>[s(o(D),null,{default:u(()=>[s(l,{to:"/"},{default:u(()=>[A(E(k.value),1)]),_:1})]),_:1}),(m(!0),L(U,null,ee(h.value,(_,N)=>(m(),L(U,{key:N},[_.href?(m(),x(o(D),{key:0},{default:u(()=>[s(l,{to:_.href},{default:u(()=>[A(E(_.label),1)]),_:2},1032,["to"])]),_:2},1024)):(m(),x(o(D),{key:1},{default:u(()=>[A(E(_.label),1)]),_:2},1024))],64))),128))]),_:1})]),S("div",Ne,[s(o(le),null,{default:u(()=>[y.value?(m(),x(o(oe),{key:0,value:v.value,"onUpdate:value":t[1]||(t[1]=_=>v.value=_),placeholder:o(c)("Search..."),clearable:"",class:"search-input",onKeyup:R(a,["enter"]),onClear:r},{prefix:u(()=>[s(o(T),{icon:"tabler:search"})]),_:1},8,["value","placeholder"])):M("",!0),s(o($),{quaternary:"",circle:""},{icon:u(()=>[s(o(T),{icon:"tabler:bell"})]),_:1}),s(o(se),{trigger:"click",options:g.value,onSelect:n},{default:u(()=>[s(o($),{quaternary:""},{default:u(()=>{var _,N;return[s(o(ae),{round:"",size:"small",src:(_=b.value)==null?void 0:_.avatar},{default:u(()=>{var P,q;return[A(E((q=(P=b.value)==null?void 0:P.username)==null?void 0:q.charAt(0).toUpperCase()),1)]}),_:1},8,["src"]),S("span",Te,E((N=b.value)==null?void 0:N.username),1),s(o(T),{icon:"tabler:chevron-down"})]}),_:1})]),_:1},8,["options"])]),_:1})])])}}});const Ie=H(Ee,[["__scopeId","data-v-85ad4a00"]]),xe=["aria-label","title","onKeydown"],Ae={class:"progress-ring",viewBox:"0 0 48 48"},Ce=["stroke-dasharray","stroke-dashoffset"],Me=300,He=23,Be=C({__name:"BackToTop",setup(B){const i=I(!1),d=I(0),p=I([]),f=w(()=>2*Math.PI*He),v=w(()=>f.value*(1-d.value)),k=()=>{const n=[window],a=document.querySelector(".content-wrapper");return a&&n.push(a),document.querySelectorAll('[class*="scroll"], [class*="content"], [class*="wrapper"]').forEach(e=>{const t=window.getComputedStyle(e);(t.overflowY==="auto"||t.overflowY==="scroll"||t.overflow==="auto"||t.overflow==="scroll")&&(n.includes(e)||n.push(e))}),n},b=n=>{if(n===window)return{scrollTop:window.pageYOffset||document.documentElement.scrollTop||0,scrollHeight:document.documentElement.scrollHeight||document.body.scrollHeight||0,clientHeight:window.innerHeight||document.documentElement.clientHeight||0};{const a=n;return{scrollTop:a.scrollTop||0,scrollHeight:a.scrollHeight||0,clientHeight:a.clientHeight||0}}},y=()=>{p.value.forEach(a=>{a===window?window.scrollTo({top:0,behavior:"smooth"}):a.scrollTo({top:0,behavior:"smooth"})})};let h=null;const g=()=>{h===null&&(h=requestAnimationFrame(()=>{const n=p.value;if(n.length===0){h=null;return}let a=0,r=0;n.forEach(e=>{const t=b(e),l=t.scrollTop,_=t.scrollHeight-t.clientHeight;if(l>a&&(a=l),_>0){const N=Math.min(l/_,1);N>r&&(r=N)}}),d.value=r,i.value=a>Me,h=null}))};return Y(()=>{ne(()=>{const n=k();p.value=n,n.forEach(a=>{a.addEventListener("scroll",g,{passive:!0})}),g()})}),Q(()=>{p.value.forEach(n=>{n.removeEventListener("scroll",g)}),p.value=[],h!==null&&(cancelAnimationFrame(h),h=null)}),(n,a)=>(m(),x(ce,{name:"back-to-top-fade"},{default:u(()=>[i.value?(m(),L("div",{key:0,class:"back-to-top-btn",role:"button",tabindex:"0","aria-label":o(c)("Back to top"),title:o(c)("Back to top"),onClick:y,onKeydown:[R(y,["enter"]),R(re(y,["prevent"]),["space"])]},[(m(),L("svg",Ae,[a[0]||(a[0]=S("circle",{class:"progress-ring-bg",cx:"24",cy:"24",r:"23",fill:"none",stroke:"#d1d5db","stroke-width":"2"},null,-1)),S("circle",{class:"progress-ring-progress",cx:"24",cy:"24",r:"23",fill:"none",stroke:"#22c55e","stroke-width":"2","stroke-linecap":"round","stroke-dasharray":f.value,"stroke-dashoffset":v.value},null,8,Ce)])),s(o(T),{icon:"tabler:arrow-up",width:20,height:20,class:"arrow-icon"})],40,xe)):M("",!0)]),_:1}))}});const $e=H(Be,[["__scopeId","data-v-1b4f2300"]]),De={class:"content-wrapper"},K="app.sidebar.collapsed",Je=C({__name:"AppLayout",setup(B){const i=I(localStorage.getItem(K)==="true"),d=I(!1),p=()=>{d.value=window.innerWidth<768,d.value&&(i.value=!0)},f=()=>{i.value=!i.value},v=()=>{i.value=!0},k=()=>{i.value=!1},b=()=>{d.value&&(i.value=!0)},y=()=>{p()};return Y(()=>{p(),window.addEventListener("resize",y)}),Q(()=>{window.removeEventListener("resize",y)}),ie(i,h=>{localStorage.setItem(K,String(h))}),(h,g)=>{const n=O("router-view");return m(),x(o(z),{"has-sider":"",class:"app-layout"},{default:u(()=>[s(o(ue),{bordered:"","collapse-mode":"width","collapsed-width":64,width:240,collapsed:i.value,"onUpdate:collapsed":g[0]||(g[0]=a=>i.value=a),"show-trigger":!d.value,responsive:!0,breakpoint:768,onCollapse:v,onExpand:k},{default:u(()=>[s(Se,{collapsed:i.value,onMenuSelect:b},null,8,["collapsed"])]),_:1},8,["collapsed","show-trigger"]),s(o(z),null,{default:u(()=>[s(o(de),{bordered:""},{default:u(()=>[s(Ie,{onToggleSidebar:f})]),_:1}),s(o(pe),null,{default:u(()=>[S("div",De,[s(n)])]),_:1})]),_:1}),d.value&&!i.value?(m(),L("div",{key:0,class:"mobile-overlay",onClick:f})):M("",!0),s($e)]),_:1})}}});const Ke=H(Je,[["__scopeId","data-v-7c9a0753"]]);export{Ke as default}; +import{_ as j}from"./logo-a60c622a.js";import{d as C,k as W,v as V,c as w,x as O,l as m,e as L,f as S,h as s,w as u,g as E,y as M,j as o,z as G,t as c,A as J,u as X,a as Z,r as I,n as $,B as D,p as A,F as U,C as ee,D as x,E as te,i as R,m as oe,G as se,H as ae,I as le,o as Y,J as ne,K as Q,L as re,T as ce,M as ie,O as ue,P as de,Q as pe,R as z}from"./index-7b482730.js";import{u as _e}from"./menu-322c1713.js";import{p as F}from"./slug-c378c25f.js";import{_ as he}from"./DynamicIcon.vue_vue_type_script_setup_true_lang-055bc1ef.js";import{_ as H}from"./_plugin-vue_export-helper-c27b6911.js";import{I as T}from"./iconify-30ae5ba5.js";const me={class:"app-sidebar"},fe={class:"sidebar-header"},ve={class:"logo"},ge=["alt"],be={key:0,class:"logo-text"},ye={class:"menu-container"},we=C({__name:"AppSidebar",props:{collapsed:{type:Boolean}},emits:["menu-select"],setup(B,{emit:i}){const d=i,p=W(),f=V(),v=w(()=>f.name),k=_e(),b=w(()=>localStorage.getItem("appName")||"Jingrow"),y=r=>{const e={};r.forEach(l=>e[l.id]={...l,children:[]});const t=[];return r.forEach(l=>{const _=l.parentId;_&&e[_]?e[_].children.push(e[l.id]):t.push(e[l.id])}),t},h=(r,e=24)=>r?()=>J(he,{name:r,size:e,color:"#64748b",iconLibrary:"tabler"}):void 0,g=r=>r.map(e=>({label:c(e.label),key:e.id,icon:h(e.icon,24),children:e.children&&e.children.length?e.children.map(t=>{var l;return{label:c(t.label),key:t.id,icon:h(t.icon,20),children:(l=t.children)!=null&&l.length?g(t.children):void 0}}):void 0})),n=w(()=>{const r=y(k.visibleItems);return g(r)}),a=r=>{const e=k.items.find(t=>t.id===r);if(e)if(d("menu-select"),e.type==="pagetype"&&e.pagetype){const t=F(e.pagetype);p.push({name:"PageTypeList",params:{entity:t}})}else if(e.type==="route"&&e.routeName)p.push({name:e.routeName});else if(e.type==="url"&&e.url)e.url.startsWith("http://")||e.url.startsWith("https://")?window.open(e.url,"_blank"):p.push(e.url);else{if(e.type==="workspace"&&e.workspaceName){const t=F(e.workspaceName);p.push(`/workspace/${t}`);return}e.url?e.url.startsWith("http://")||e.url.startsWith("https://")?window.open(e.url,"_blank"):p.push(e.url):e.routeName&&p.push({name:e.routeName})}};return(r,e)=>{const t=O("router-link");return m(),L("div",me,[S("div",fe,[S("div",ve,[s(t,{to:"/",class:"logo-link"},{default:u(()=>[S("img",{src:j,alt:b.value,width:"32",height:"32"},null,8,ge),r.collapsed?M("",!0):(m(),L("span",be,E(b.value),1))]),_:1})])]),S("div",ye,[s(o(G),{collapsed:r.collapsed,"collapsed-width":64,"collapsed-icon-size":24,options:n.value,value:v.value,"onUpdate:value":a},null,8,["collapsed","options","value"])])])}}});const Se=H(we,[["__scopeId","data-v-b09c3830"]]),ke={class:"app-header"},Le={class:"header-left"},Ne={class:"header-right"},Te={class:"username"},Ee=C({__name:"AppHeader",setup(B){const i=W(),d=V(),p=X(),f=Z(),v=I(""),k=w(()=>localStorage.getItem("appName")||"Jingrow"),b=w(()=>f.user),y=w(()=>{var e;return((e=f.user)==null?void 0:e.user_type)==="System User"}),h=w(()=>{const e=[];if(d.name==="PageTypeList"){const t=d.params.entity;t&&e.push({label:t,href:`/app/${t}`})}else if(d.name==="PageTypeDetail"){const t=d.params.entity,l=d.params.id;t&&e.push({label:t,href:`/app/${t}`}),l&&l!=="new"&&e.push({label:l==="new"?c("Create"):l})}else{const l={Dashboard:c("Dashboard"),AgentList:c("Agents"),AgentDetail:c("Agent Detail"),NodeList:c("Node Management"),NodeDetail:c("Node Detail"),LocalJobList:c("Local Jobs"),LocalJobDetail:c("Local Job Detail"),FlowBuilder:c("Flow Builder"),ScheduledJobList:c("Scheduled Jobs"),ScheduledJobDetail:c("Scheduled Job Detail"),MenuManager:c("Menu Manager"),Settings:c("Settings"),SearchResults:c("Search Results")}[d.name];l&&e.push({label:l})}return e}),g=w(()=>[{label:c("Profile"),key:"profile",icon:()=>J(T,{icon:"tabler:user"})},{label:c("Logout"),key:"logout",icon:()=>J(T,{icon:"tabler:logout"})}]),n=async e=>{e==="logout"?(await f.logout(),p.success(c("Logged out")),i.push("/login")):e==="profile"&&i.push("/profile")},a=()=>{v.value.trim()&&i.push({name:"SearchResults",query:{q:v.value.trim()}})},r=()=>{v.value=""};return(e,t)=>{const l=O("router-link");return m(),L("div",ke,[S("div",Le,[s(o($),{quaternary:"",circle:"",onClick:t[0]||(t[0]=_=>e.$emit("toggle-sidebar")),class:"sidebar-toggle"},{icon:u(()=>[s(o(T),{icon:"tabler:menu-2"})]),_:1}),s(o(te),{class:"breadcrumb"},{default:u(()=>[s(o(D),null,{default:u(()=>[s(l,{to:"/"},{default:u(()=>[A(E(k.value),1)]),_:1})]),_:1}),(m(!0),L(U,null,ee(h.value,(_,N)=>(m(),L(U,{key:N},[_.href?(m(),x(o(D),{key:0},{default:u(()=>[s(l,{to:_.href},{default:u(()=>[A(E(_.label),1)]),_:2},1032,["to"])]),_:2},1024)):(m(),x(o(D),{key:1},{default:u(()=>[A(E(_.label),1)]),_:2},1024))],64))),128))]),_:1})]),S("div",Ne,[s(o(le),null,{default:u(()=>[y.value?(m(),x(o(oe),{key:0,value:v.value,"onUpdate:value":t[1]||(t[1]=_=>v.value=_),placeholder:o(c)("Search..."),clearable:"",class:"search-input",onKeyup:R(a,["enter"]),onClear:r},{prefix:u(()=>[s(o(T),{icon:"tabler:search"})]),_:1},8,["value","placeholder"])):M("",!0),s(o($),{quaternary:"",circle:""},{icon:u(()=>[s(o(T),{icon:"tabler:bell"})]),_:1}),s(o(se),{trigger:"click",options:g.value,onSelect:n},{default:u(()=>[s(o($),{quaternary:""},{default:u(()=>{var _,N;return[s(o(ae),{round:"",size:"small",src:(_=b.value)==null?void 0:_.avatar},{default:u(()=>{var P,q;return[A(E((q=(P=b.value)==null?void 0:P.username)==null?void 0:q.charAt(0).toUpperCase()),1)]}),_:1},8,["src"]),S("span",Te,E((N=b.value)==null?void 0:N.username),1),s(o(T),{icon:"tabler:chevron-down"})]}),_:1})]),_:1},8,["options"])]),_:1})])])}}});const Ie=H(Ee,[["__scopeId","data-v-85ad4a00"]]),xe=["aria-label","title","onKeydown"],Ae={class:"progress-ring",viewBox:"0 0 48 48"},Ce=["stroke-dasharray","stroke-dashoffset"],Me=300,He=23,Be=C({__name:"BackToTop",setup(B){const i=I(!1),d=I(0),p=I([]),f=w(()=>2*Math.PI*He),v=w(()=>f.value*(1-d.value)),k=()=>{const n=[window],a=document.querySelector(".content-wrapper");return a&&n.push(a),document.querySelectorAll('[class*="scroll"], [class*="content"], [class*="wrapper"]').forEach(e=>{const t=window.getComputedStyle(e);(t.overflowY==="auto"||t.overflowY==="scroll"||t.overflow==="auto"||t.overflow==="scroll")&&(n.includes(e)||n.push(e))}),n},b=n=>{if(n===window)return{scrollTop:window.pageYOffset||document.documentElement.scrollTop||0,scrollHeight:document.documentElement.scrollHeight||document.body.scrollHeight||0,clientHeight:window.innerHeight||document.documentElement.clientHeight||0};{const a=n;return{scrollTop:a.scrollTop||0,scrollHeight:a.scrollHeight||0,clientHeight:a.clientHeight||0}}},y=()=>{p.value.forEach(a=>{a===window?window.scrollTo({top:0,behavior:"smooth"}):a.scrollTo({top:0,behavior:"smooth"})})};let h=null;const g=()=>{h===null&&(h=requestAnimationFrame(()=>{const n=p.value;if(n.length===0){h=null;return}let a=0,r=0;n.forEach(e=>{const t=b(e),l=t.scrollTop,_=t.scrollHeight-t.clientHeight;if(l>a&&(a=l),_>0){const N=Math.min(l/_,1);N>r&&(r=N)}}),d.value=r,i.value=a>Me,h=null}))};return Y(()=>{ne(()=>{const n=k();p.value=n,n.forEach(a=>{a.addEventListener("scroll",g,{passive:!0})}),g()})}),Q(()=>{p.value.forEach(n=>{n.removeEventListener("scroll",g)}),p.value=[],h!==null&&(cancelAnimationFrame(h),h=null)}),(n,a)=>(m(),x(ce,{name:"back-to-top-fade"},{default:u(()=>[i.value?(m(),L("div",{key:0,class:"back-to-top-btn",role:"button",tabindex:"0","aria-label":o(c)("Back to top"),title:o(c)("Back to top"),onClick:y,onKeydown:[R(y,["enter"]),R(re(y,["prevent"]),["space"])]},[(m(),L("svg",Ae,[a[0]||(a[0]=S("circle",{class:"progress-ring-bg",cx:"24",cy:"24",r:"23",fill:"none",stroke:"#d1d5db","stroke-width":"2"},null,-1)),S("circle",{class:"progress-ring-progress",cx:"24",cy:"24",r:"23",fill:"none",stroke:"#22c55e","stroke-width":"2","stroke-linecap":"round","stroke-dasharray":f.value,"stroke-dashoffset":v.value},null,8,Ce)])),s(o(T),{icon:"tabler:arrow-up",width:20,height:20,class:"arrow-icon"})],40,xe)):M("",!0)]),_:1}))}});const $e=H(Be,[["__scopeId","data-v-1b4f2300"]]),De={class:"content-wrapper"},K="app.sidebar.collapsed",Je=C({__name:"AppLayout",setup(B){const i=I(localStorage.getItem(K)==="true"),d=I(!1),p=()=>{d.value=window.innerWidth<768,d.value&&(i.value=!0)},f=()=>{i.value=!i.value},v=()=>{i.value=!0},k=()=>{i.value=!1},b=()=>{d.value&&(i.value=!0)},y=()=>{p()};return Y(()=>{p(),window.addEventListener("resize",y)}),Q(()=>{window.removeEventListener("resize",y)}),ie(i,h=>{localStorage.setItem(K,String(h))}),(h,g)=>{const n=O("router-view");return m(),x(o(z),{"has-sider":"",class:"app-layout"},{default:u(()=>[s(o(ue),{bordered:"","collapse-mode":"width","collapsed-width":64,width:240,collapsed:i.value,"onUpdate:collapsed":g[0]||(g[0]=a=>i.value=a),"show-trigger":!d.value,responsive:!0,breakpoint:768,onCollapse:v,onExpand:k},{default:u(()=>[s(Se,{collapsed:i.value,onMenuSelect:b},null,8,["collapsed"])]),_:1},8,["collapsed","show-trigger"]),s(o(z),null,{default:u(()=>[s(o(de),{bordered:""},{default:u(()=>[s(Ie,{onToggleSidebar:f})]),_:1}),s(o(pe),null,{default:u(()=>[S("div",De,[s(n)])]),_:1})]),_:1}),d.value&&!i.value?(m(),L("div",{key:0,class:"mobile-overlay",onClick:f})):M("",!0),s($e)]),_:1})}}});const Ke=H(Je,[["__scopeId","data-v-7c9a0753"]]);export{Ke as default}; diff --git a/apps/jingrow/frontend/dist/assets/AppMarketplace-87b3f364.js b/apps/jingrow/frontend/dist/assets/AppMarketplace-c21bb005.js similarity index 97% rename from apps/jingrow/frontend/dist/assets/AppMarketplace-87b3f364.js rename to apps/jingrow/frontend/dist/assets/AppMarketplace-c21bb005.js index 4d2e95a..f28bf60 100644 --- a/apps/jingrow/frontend/dist/assets/AppMarketplace-87b3f364.js +++ b/apps/jingrow/frontend/dist/assets/AppMarketplace-c21bb005.js @@ -1 +1 @@ -import{d as ae,u as se,X as te,r as i,c as F,o as le,M as E,e as p,f as n,g as u,j as s,h as o,w as r,i as oe,F as ne,C as re,y,k as ie,a0 as A,t,l as c,$ as k,p as w,n as P,m as ce,Z as ue,D as Z,_ as pe,as as de,aA as ve,a2 as q}from"./index-b37e64ca.js";import{I as b}from"./iconify-b5ab1212.js";import{I as _e}from"./InstallProgressModal-8a22be9b.js";import{_ as ge}from"./_plugin-vue_export-helper-c27b6911.js";const he={class:"app-marketplace"},me={class:"page-header"},fe={class:"header-content"},ye={class:"header-text"},ke={class:"content"},we={class:"search-container"},be={class:"search-bar"},Ce={key:0,class:"apps-section"},Se={class:"apps-header"},Ie={class:"sort-controls"},Ae={class:"apps-grid"},Pe=["onClick"],Ne=["src","alt"],xe={key:1,class:"app-image-placeholder"},Me={class:"app-content"},ze={class:"app-header"},$e={class:"app-title-section"},Le=["onClick"],Te={key:0,class:"app-team"},Ue={key:0,class:"app-name"},Ee={key:0,class:"app-subtitle"},je={class:"app-actions"},Be={class:"pagination-container"},Re={key:1,class:"loading"},Ve={key:2,class:"empty"},De=ae({__name:"AppMarketplace",setup(Fe){const N=se(),K=te(),j=ie(),L=i(""),C=i(!1),h=i([]),x=i(0),m=i(1),S=i(parseInt(localStorage.getItem("itemsPerPage")||"20")),M=i("creation desc"),z=i(!1),f=i(0),g=i(""),$=i("info"),I=i(!1),B=i(new Set),O=F(()=>[{label:t("Latest"),value:"creation desc"},{label:t("Oldest"),value:"creation asc"},{label:t("Name A-Z"),value:"app_name asc"},{label:t("Name Z-A"),value:"app_name desc"},{label:t("Most Popular"),value:"modified desc"}]),W=F(()=>Math.max(1,Math.ceil(x.value/S.value)));async function _(){C.value=!0;try{const e=new URLSearchParams({page:m.value.toString(),page_size:S.value.toString(),search:L.value,sort_by:M.value}),a=(await A.get(`/jingrow/app-marketplace?${e}`)).data;a.items?(h.value=a.items,x.value=a.total||0):(h.value=a||[],x.value=h.value.length)}catch(e){console.error("Failed to load apps:",e),N.error(t("Failed to load applications")),h.value=[],x.value=0}finally{C.value=!1}}function J(){j.push("/publish-app")}function Q(e){S.value=e,m.value=1,localStorage.setItem("itemsPerPage",e.toString()),_()}function T(e){j.push({path:`/app-marketplace/${e.name}`,query:{returnTo:"/app-marketplace"}})}async function R(e){if(!e.file_url&&!e.repository_url){N.error(t("应用文件URL或仓库地址不存在"));return}try{const l=e.app_name||e.name;if(l&&(await A.get(`/jingrow/check-app/${l}`)).data.exists){K.warning({title:t("应用已存在"),content:t('应用 "{0}" 已安装,是否覆盖安装?').replace("{0}",l),positiveText:t("确认覆盖"),negativeText:t("取消"),onPositiveClick:()=>{V(e)}});return}}catch(l){console.error("Check app exists error:",l)}V(e)}async function V(e){var l,a,d,D;try{z.value=!0,f.value=0,g.value=t("正在准备安装..."),$.value="info",I.value=!0;let v;if(e.file_url)g.value=t("正在下载应用包..."),f.value=20,g.value=t("正在安装应用..."),f.value=30,v=await A.post("/jingrow/install-from-url",new URLSearchParams({url:e.file_url}),{headers:{...q(),"Content-Type":"application/x-www-form-urlencoded"}});else if(e.repository_url){g.value=t("正在克隆仓库..."),f.value=20,g.value=t("正在安装应用..."),f.value=30;const ee=new URLSearchParams({repo_url:e.repository_url});v=await A.post("/jingrow/install-from-git",ee,{headers:{...q(),"Content-Type":"application/x-www-form-urlencoded"}})}if(!v)throw new Error(t("无法确定安装方式"));if(f.value=100,v.data.success)z.value=!1,$.value="success",g.value=t("应用安装成功!"),N.success(t("应用安装成功")),U(),setTimeout(()=>{I.value=!1},2e3);else throw new Error(v.data.error||t("安装失败"))}catch(v){console.error("Install app error:",v),z.value=!1,$.value="error",g.value=((a=(l=v.response)==null?void 0:l.data)==null?void 0:a.detail)||v.message||t("安装失败"),N.error(((D=(d=v.response)==null?void 0:d.data)==null?void 0:D.detail)||t("安装失败")),setTimeout(()=>{I.value=!1},3e3)}}function X(e){return e?e.startsWith("http")?e:`https://cloud.jingrow.com${e.startsWith("/")?"":"/"}${e}`:""}function G(e){var a,d;const l=e.target;l.style.display="none",(d=(a=l.parentElement)==null?void 0:a.querySelector(".app-image-placeholder"))==null||d.classList.add("show")}function H(e,l){return e?e.length<=l?e:e.substring(0,l)+"...":""}async function U(){try{const e=await A.get("/jingrow/installed-app-names");if(e.data.success){const l=e.data.apps||[];B.value=new Set(l)}}catch(e){console.error("Load installed apps error:",e)}}function Y(e){return e?B.value.has(e.toLowerCase()):!1}return le(()=>{_(),U(),window.addEventListener("installedAppsUpdated",()=>{U()})}),E([M],()=>{m.value=1,_()},{deep:!0}),E([m],()=>{_()}),E(()=>localStorage.getItem("itemsPerPage"),e=>{e&&(S.value=parseInt(e),m.value=1,_())}),(e,l)=>(c(),p("div",he,[n("div",me,[n("div",fe,[n("div",ye,[n("h1",null,u(s(t)("App Marketplace")),1),n("p",null,u(s(t)("Browse and install applications from Jingrow App Marketplace")),1)]),o(s(P),{type:"primary",onClick:J},{icon:r(()=>[o(s(k),null,{default:r(()=>[o(s(b),{icon:"tabler:plus"})]),_:1})]),default:r(()=>[w(" "+u(s(t)("Publish App")),1)]),_:1})])]),n("div",ke,[n("div",we,[n("div",be,[o(s(ce),{value:L.value,"onUpdate:value":l[0]||(l[0]=a=>L.value=a),placeholder:s(t)("Search applications..."),clearable:"",size:"large",onKeyup:oe(_,["enter"]),class:"search-input"},{prefix:r(()=>[o(s(k),null,{default:r(()=>[o(s(b),{icon:"tabler:search"})]),_:1})]),_:1},8,["value","placeholder"]),o(s(P),{type:"primary",size:"large",onClick:_,class:"search-button"},{icon:r(()=>[o(s(k),null,{default:r(()=>[o(s(b),{icon:"tabler:search"})]),_:1})]),default:r(()=>[w(" "+u(s(t)("Search")),1)]),_:1})])]),!C.value&&h.value.length>0?(c(),p("div",Ce,[n("div",Se,[l[4]||(l[4]=n("div",{class:"apps-title"},null,-1)),n("div",Ie,[o(s(ue),{value:M.value,"onUpdate:value":[l[1]||(l[1]=a=>M.value=a),_],options:O.value,placeholder:s(t)("Sort by"),style:{width:"150px"}},null,8,["value","options","placeholder"])])]),n("div",Ae,[(c(!0),p(ne,null,re(h.value,a=>(c(),p("div",{key:a.name,class:"app-card"},[n("div",{class:"app-image",onClick:d=>T(a)},[a.app_image?(c(),p("img",{key:0,src:X(a.app_image),alt:a.title||a.name,onError:G},null,40,Ne)):(c(),p("div",xe,[o(s(k),{size:"48"},{default:r(()=>[o(s(b),{icon:"tabler:apps"})]),_:1})]))],8,Pe),n("div",Me,[n("div",ze,[n("div",$e,[n("h3",{onClick:d=>T(a),class:"clickable-title"},u(a.title||a.name),9,Le),a.team?(c(),p("div",Te,[o(s(k),null,{default:r(()=>[o(s(b),{icon:"tabler:users"})]),_:1}),n("span",null,u(a.team),1)])):y("",!0)]),a.app_name?(c(),p("div",Ue,u(a.app_name),1)):y("",!0)]),a.subtitle?(c(),p("div",Ee,u(H(a.subtitle,60)),1)):y("",!0)]),n("div",je,[o(s(P),{type:"default",onClick:d=>T(a)},{default:r(()=>[w(u(s(t)("View Details")),1)]),_:1},8,["onClick"]),Y(a.app_name||a.name)?(c(),Z(s(P),{key:0,type:"warning",onClick:d=>R(a)},{default:r(()=>[w(u(s(t)("Installed")),1)]),_:1},8,["onClick"])):(c(),Z(s(P),{key:1,type:"primary",onClick:d=>R(a)},{default:r(()=>[w(u(s(t)("Install")),1)]),_:1},8,["onClick"]))])]))),128))]),n("div",Be,[o(s(pe),{page:m.value,"onUpdate:page":[l[2]||(l[2]=a=>m.value=a),_],"page-count":W.value,size:"large","show-size-picker":"","page-sizes":[20,50,100],"page-size":S.value,"onUpdate:pageSize":Q},null,8,["page","page-count","page-size"])])])):y("",!0),C.value?(c(),p("div",Re,[o(s(de),{size:"large"},{description:r(()=>[w(u(s(t)("Loading applications...")),1)]),_:1})])):y("",!0),!C.value&&h.value.length===0?(c(),p("div",Ve,[o(s(ve),{description:s(t)("No applications found")},{icon:r(()=>[o(s(k),null,{default:r(()=>[o(s(b),{icon:"tabler:apps"})]),_:1})]),_:1},8,["description"])])):y("",!0)]),o(_e,{modelValue:I.value,"onUpdate:modelValue":l[3]||(l[3]=a=>I.value=a),progress:f.value,message:g.value,status:$.value,installing:z.value},null,8,["modelValue","progress","message","status","installing"])]))}});const We=ge(De,[["__scopeId","data-v-5a0ca7e4"]]);export{We as default}; +import{d as ae,u as se,X as te,r as i,c as F,o as le,M as E,e as p,f as n,g as u,j as s,h as o,w as r,i as oe,F as ne,C as re,y,k as ie,a0 as A,t,l as c,$ as k,p as w,n as P,m as ce,Z as ue,D as Z,_ as pe,as as de,aA as ve,a2 as q}from"./index-7b482730.js";import{I as b}from"./iconify-30ae5ba5.js";import{I as _e}from"./InstallProgressModal-1ec0a6fc.js";import{_ as ge}from"./_plugin-vue_export-helper-c27b6911.js";const he={class:"app-marketplace"},me={class:"page-header"},fe={class:"header-content"},ye={class:"header-text"},ke={class:"content"},we={class:"search-container"},be={class:"search-bar"},Ce={key:0,class:"apps-section"},Se={class:"apps-header"},Ie={class:"sort-controls"},Ae={class:"apps-grid"},Pe=["onClick"],Ne=["src","alt"],xe={key:1,class:"app-image-placeholder"},Me={class:"app-content"},ze={class:"app-header"},$e={class:"app-title-section"},Le=["onClick"],Te={key:0,class:"app-team"},Ue={key:0,class:"app-name"},Ee={key:0,class:"app-subtitle"},je={class:"app-actions"},Be={class:"pagination-container"},Re={key:1,class:"loading"},Ve={key:2,class:"empty"},De=ae({__name:"AppMarketplace",setup(Fe){const N=se(),K=te(),j=ie(),L=i(""),C=i(!1),h=i([]),x=i(0),m=i(1),S=i(parseInt(localStorage.getItem("itemsPerPage")||"20")),M=i("creation desc"),z=i(!1),f=i(0),g=i(""),$=i("info"),I=i(!1),B=i(new Set),O=F(()=>[{label:t("Latest"),value:"creation desc"},{label:t("Oldest"),value:"creation asc"},{label:t("Name A-Z"),value:"app_name asc"},{label:t("Name Z-A"),value:"app_name desc"},{label:t("Most Popular"),value:"modified desc"}]),W=F(()=>Math.max(1,Math.ceil(x.value/S.value)));async function _(){C.value=!0;try{const e=new URLSearchParams({page:m.value.toString(),page_size:S.value.toString(),search:L.value,sort_by:M.value}),a=(await A.get(`/jingrow/app-marketplace?${e}`)).data;a.items?(h.value=a.items,x.value=a.total||0):(h.value=a||[],x.value=h.value.length)}catch(e){console.error("Failed to load apps:",e),N.error(t("Failed to load applications")),h.value=[],x.value=0}finally{C.value=!1}}function J(){j.push("/publish-app")}function Q(e){S.value=e,m.value=1,localStorage.setItem("itemsPerPage",e.toString()),_()}function T(e){j.push({path:`/app-marketplace/${e.name}`,query:{returnTo:"/app-marketplace"}})}async function R(e){if(!e.file_url&&!e.repository_url){N.error(t("应用文件URL或仓库地址不存在"));return}try{const l=e.app_name||e.name;if(l&&(await A.get(`/jingrow/check-app/${l}`)).data.exists){K.warning({title:t("应用已存在"),content:t('应用 "{0}" 已安装,是否覆盖安装?').replace("{0}",l),positiveText:t("确认覆盖"),negativeText:t("取消"),onPositiveClick:()=>{V(e)}});return}}catch(l){console.error("Check app exists error:",l)}V(e)}async function V(e){var l,a,d,D;try{z.value=!0,f.value=0,g.value=t("正在准备安装..."),$.value="info",I.value=!0;let v;if(e.file_url)g.value=t("正在下载应用包..."),f.value=20,g.value=t("正在安装应用..."),f.value=30,v=await A.post("/jingrow/install-from-url",new URLSearchParams({url:e.file_url}),{headers:{...q(),"Content-Type":"application/x-www-form-urlencoded"}});else if(e.repository_url){g.value=t("正在克隆仓库..."),f.value=20,g.value=t("正在安装应用..."),f.value=30;const ee=new URLSearchParams({repo_url:e.repository_url});v=await A.post("/jingrow/install-from-git",ee,{headers:{...q(),"Content-Type":"application/x-www-form-urlencoded"}})}if(!v)throw new Error(t("无法确定安装方式"));if(f.value=100,v.data.success)z.value=!1,$.value="success",g.value=t("应用安装成功!"),N.success(t("应用安装成功")),U(),setTimeout(()=>{I.value=!1},2e3);else throw new Error(v.data.error||t("安装失败"))}catch(v){console.error("Install app error:",v),z.value=!1,$.value="error",g.value=((a=(l=v.response)==null?void 0:l.data)==null?void 0:a.detail)||v.message||t("安装失败"),N.error(((D=(d=v.response)==null?void 0:d.data)==null?void 0:D.detail)||t("安装失败")),setTimeout(()=>{I.value=!1},3e3)}}function X(e){return e?e.startsWith("http")?e:`https://cloud.jingrow.com${e.startsWith("/")?"":"/"}${e}`:""}function G(e){var a,d;const l=e.target;l.style.display="none",(d=(a=l.parentElement)==null?void 0:a.querySelector(".app-image-placeholder"))==null||d.classList.add("show")}function H(e,l){return e?e.length<=l?e:e.substring(0,l)+"...":""}async function U(){try{const e=await A.get("/jingrow/installed-app-names");if(e.data.success){const l=e.data.apps||[];B.value=new Set(l)}}catch(e){console.error("Load installed apps error:",e)}}function Y(e){return e?B.value.has(e.toLowerCase()):!1}return le(()=>{_(),U(),window.addEventListener("installedAppsUpdated",()=>{U()})}),E([M],()=>{m.value=1,_()},{deep:!0}),E([m],()=>{_()}),E(()=>localStorage.getItem("itemsPerPage"),e=>{e&&(S.value=parseInt(e),m.value=1,_())}),(e,l)=>(c(),p("div",he,[n("div",me,[n("div",fe,[n("div",ye,[n("h1",null,u(s(t)("App Marketplace")),1),n("p",null,u(s(t)("Browse and install applications from Jingrow App Marketplace")),1)]),o(s(P),{type:"primary",onClick:J},{icon:r(()=>[o(s(k),null,{default:r(()=>[o(s(b),{icon:"tabler:plus"})]),_:1})]),default:r(()=>[w(" "+u(s(t)("Publish App")),1)]),_:1})])]),n("div",ke,[n("div",we,[n("div",be,[o(s(ce),{value:L.value,"onUpdate:value":l[0]||(l[0]=a=>L.value=a),placeholder:s(t)("Search applications..."),clearable:"",size:"large",onKeyup:oe(_,["enter"]),class:"search-input"},{prefix:r(()=>[o(s(k),null,{default:r(()=>[o(s(b),{icon:"tabler:search"})]),_:1})]),_:1},8,["value","placeholder"]),o(s(P),{type:"primary",size:"large",onClick:_,class:"search-button"},{icon:r(()=>[o(s(k),null,{default:r(()=>[o(s(b),{icon:"tabler:search"})]),_:1})]),default:r(()=>[w(" "+u(s(t)("Search")),1)]),_:1})])]),!C.value&&h.value.length>0?(c(),p("div",Ce,[n("div",Se,[l[4]||(l[4]=n("div",{class:"apps-title"},null,-1)),n("div",Ie,[o(s(ue),{value:M.value,"onUpdate:value":[l[1]||(l[1]=a=>M.value=a),_],options:O.value,placeholder:s(t)("Sort by"),style:{width:"150px"}},null,8,["value","options","placeholder"])])]),n("div",Ae,[(c(!0),p(ne,null,re(h.value,a=>(c(),p("div",{key:a.name,class:"app-card"},[n("div",{class:"app-image",onClick:d=>T(a)},[a.app_image?(c(),p("img",{key:0,src:X(a.app_image),alt:a.title||a.name,onError:G},null,40,Ne)):(c(),p("div",xe,[o(s(k),{size:"48"},{default:r(()=>[o(s(b),{icon:"tabler:apps"})]),_:1})]))],8,Pe),n("div",Me,[n("div",ze,[n("div",$e,[n("h3",{onClick:d=>T(a),class:"clickable-title"},u(a.title||a.name),9,Le),a.team?(c(),p("div",Te,[o(s(k),null,{default:r(()=>[o(s(b),{icon:"tabler:users"})]),_:1}),n("span",null,u(a.team),1)])):y("",!0)]),a.app_name?(c(),p("div",Ue,u(a.app_name),1)):y("",!0)]),a.subtitle?(c(),p("div",Ee,u(H(a.subtitle,60)),1)):y("",!0)]),n("div",je,[o(s(P),{type:"default",onClick:d=>T(a)},{default:r(()=>[w(u(s(t)("View Details")),1)]),_:1},8,["onClick"]),Y(a.app_name||a.name)?(c(),Z(s(P),{key:0,type:"warning",onClick:d=>R(a)},{default:r(()=>[w(u(s(t)("Installed")),1)]),_:1},8,["onClick"])):(c(),Z(s(P),{key:1,type:"primary",onClick:d=>R(a)},{default:r(()=>[w(u(s(t)("Install")),1)]),_:1},8,["onClick"]))])]))),128))]),n("div",Be,[o(s(pe),{page:m.value,"onUpdate:page":[l[2]||(l[2]=a=>m.value=a),_],"page-count":W.value,size:"large","show-size-picker":"","page-sizes":[20,50,100],"page-size":S.value,"onUpdate:pageSize":Q},null,8,["page","page-count","page-size"])])])):y("",!0),C.value?(c(),p("div",Re,[o(s(de),{size:"large"},{description:r(()=>[w(u(s(t)("Loading applications...")),1)]),_:1})])):y("",!0),!C.value&&h.value.length===0?(c(),p("div",Ve,[o(s(ve),{description:s(t)("No applications found")},{icon:r(()=>[o(s(k),null,{default:r(()=>[o(s(b),{icon:"tabler:apps"})]),_:1})]),_:1},8,["description"])])):y("",!0)]),o(_e,{modelValue:I.value,"onUpdate:modelValue":l[3]||(l[3]=a=>I.value=a),progress:f.value,message:g.value,status:$.value,installing:z.value},null,8,["modelValue","progress","message","status","installing"])]))}});const We=ge(De,[["__scopeId","data-v-5a0ca7e4"]]);export{We as default}; diff --git a/apps/jingrow/frontend/dist/assets/Attach-8276bb81.js b/apps/jingrow/frontend/dist/assets/Attach-4627ede0.js similarity index 95% rename from apps/jingrow/frontend/dist/assets/Attach-8276bb81.js rename to apps/jingrow/frontend/dist/assets/Attach-4627ede0.js index 8da7662..b03b7bf 100644 --- a/apps/jingrow/frontend/dist/assets/Attach-8276bb81.js +++ b/apps/jingrow/frontend/dist/assets/Attach-4627ede0.js @@ -1 +1 @@ -import{uploadFileToJingrow as F}from"./common-0beb20f4.js";import{d as M,r as U,c as f,e as l,f as o,p as T,g as d,y as I,F as $,Y as j,l as s}from"./index-b37e64ca.js";import{_ as q}from"./_plugin-vue_export-helper-c27b6911.js";const z={class:"field-label"},L={key:0,class:"required"},D={class:"attach-container"},J={class:"file-link-wrap"},P=["title","href"],Y={key:0,class:"actions"},G={key:0,class:"actions actions-left"},H={key:1,class:"field-value"},K=M({__name:"Attach",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(R){const t=R,u=U(null),p=U(!1),i=f(()=>{var e;return String(((e=t.record)==null?void 0:e[t.df.fieldname])||"")}),B=f(()=>t.df.label_layout||"vertical"),N=f(()=>{const e=i.value;if(!e)return"";try{const n=new URL(e,window.location.origin).pathname,c=n.substring(n.lastIndexOf("/")+1);return decodeURIComponent(c||e)}catch{const n=e.lastIndexOf("/");return n>=0?decodeURIComponent(e.substring(n+1)):e}});function O(){var e;t.canEdit&&((e=u.value)==null||e.click())}async function S(e){var c,_,y,v,m,g,h,b,k,x,C;const a=e.target,n=(c=a.files)==null?void 0:c[0];if(n)try{const w=((_=t.ctx)==null?void 0:_.entity)&&(((y=t.ctx)==null?void 0:y.entity.value)??((v=t.ctx)==null?void 0:v.entity))||((m=t.record)==null?void 0:m.pagetype)||"",A=((g=t.ctx)==null?void 0:g.id)&&(((h=t.ctx)==null?void 0:h.id.value)??((b=t.ctx)==null?void 0:b.id))||((k=t.record)==null?void 0:k.name)||"",E=(x=t.df)==null?void 0:x.fieldname,r=await F(n,w,A,E);if(r.success){if(r.file_url){t.record[E]=r.file_url;try{typeof((C=t.ctx)==null?void 0:C.save)=="function"&&await t.ctx.save()}catch{}}}else alert(r.error||"上传失败")}catch{alert("上传失败")}finally{a&&(a.value="")}}function V(){t.canEdit&&(t.record[t.df.fieldname]="")}return(e,a)=>(s(),l("div",{class:j(["field-wrapper",`layout-${B.value}`])},[o("label",z,[T(d(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(s(),l("span",L,"*")):I("",!0)]),o("div",D,[i.value?(s(),l("div",{key:0,class:"attach-line",onMouseenter:a[0]||(a[0]=n=>p.value=!0),onMouseleave:a[1]||(a[1]=n=>p.value=!1)},[a[2]||(a[2]=o("span",{class:"link-icon"},[o("i",{class:"fa-regular fa-file"})],-1)),o("span",J,[o("a",{class:"file-link",title:i.value,href:i.value,target:"_blank",rel:"noopener"},d(N.value||i.value),9,P)]),e.canEdit?(s(),l("div",Y,[o("button",{class:"action",type:"button",onClick:V},d(e.ctx.t?e.ctx.t("Clear"):"Clear"),1)])):I("",!0)],32)):(s(),l($,{key:1},[e.canEdit?(s(),l("div",G,[o("button",{class:"action",type:"button",onClick:O},d(e.ctx.t?e.ctx.t("Upload"):"Upload"),1)])):(s(),l("span",H,"—"))],64)),o("input",{ref_key:"inputRef",ref:u,type:"file",style:{display:"none"},onChange:S},null,544)])],2))}});const Q=q(K,[["__scopeId","data-v-0249c198"]]),te=Object.freeze(Object.defineProperty({__proto__:null,default:Q},Symbol.toStringTag,{value:"Module"}));export{te as _}; +import{uploadFileToJingrow as F}from"./common-a0065b74.js";import{d as M,r as U,c as f,e as l,f as o,p as T,g as d,y as I,F as $,Y as j,l as s}from"./index-7b482730.js";import{_ as q}from"./_plugin-vue_export-helper-c27b6911.js";const z={class:"field-label"},L={key:0,class:"required"},D={class:"attach-container"},J={class:"file-link-wrap"},P=["title","href"],Y={key:0,class:"actions"},G={key:0,class:"actions actions-left"},H={key:1,class:"field-value"},K=M({__name:"Attach",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(R){const t=R,u=U(null),p=U(!1),i=f(()=>{var e;return String(((e=t.record)==null?void 0:e[t.df.fieldname])||"")}),B=f(()=>t.df.label_layout||"vertical"),N=f(()=>{const e=i.value;if(!e)return"";try{const n=new URL(e,window.location.origin).pathname,c=n.substring(n.lastIndexOf("/")+1);return decodeURIComponent(c||e)}catch{const n=e.lastIndexOf("/");return n>=0?decodeURIComponent(e.substring(n+1)):e}});function O(){var e;t.canEdit&&((e=u.value)==null||e.click())}async function S(e){var c,_,y,v,m,g,h,b,k,x,C;const a=e.target,n=(c=a.files)==null?void 0:c[0];if(n)try{const w=((_=t.ctx)==null?void 0:_.entity)&&(((y=t.ctx)==null?void 0:y.entity.value)??((v=t.ctx)==null?void 0:v.entity))||((m=t.record)==null?void 0:m.pagetype)||"",A=((g=t.ctx)==null?void 0:g.id)&&(((h=t.ctx)==null?void 0:h.id.value)??((b=t.ctx)==null?void 0:b.id))||((k=t.record)==null?void 0:k.name)||"",E=(x=t.df)==null?void 0:x.fieldname,r=await F(n,w,A,E);if(r.success){if(r.file_url){t.record[E]=r.file_url;try{typeof((C=t.ctx)==null?void 0:C.save)=="function"&&await t.ctx.save()}catch{}}}else alert(r.error||"上传失败")}catch{alert("上传失败")}finally{a&&(a.value="")}}function V(){t.canEdit&&(t.record[t.df.fieldname]="")}return(e,a)=>(s(),l("div",{class:j(["field-wrapper",`layout-${B.value}`])},[o("label",z,[T(d(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(s(),l("span",L,"*")):I("",!0)]),o("div",D,[i.value?(s(),l("div",{key:0,class:"attach-line",onMouseenter:a[0]||(a[0]=n=>p.value=!0),onMouseleave:a[1]||(a[1]=n=>p.value=!1)},[a[2]||(a[2]=o("span",{class:"link-icon"},[o("i",{class:"fa-regular fa-file"})],-1)),o("span",J,[o("a",{class:"file-link",title:i.value,href:i.value,target:"_blank",rel:"noopener"},d(N.value||i.value),9,P)]),e.canEdit?(s(),l("div",Y,[o("button",{class:"action",type:"button",onClick:V},d(e.ctx.t?e.ctx.t("Clear"):"Clear"),1)])):I("",!0)],32)):(s(),l($,{key:1},[e.canEdit?(s(),l("div",G,[o("button",{class:"action",type:"button",onClick:O},d(e.ctx.t?e.ctx.t("Upload"):"Upload"),1)])):(s(),l("span",H,"—"))],64)),o("input",{ref_key:"inputRef",ref:u,type:"file",style:{display:"none"},onChange:S},null,544)])],2))}});const Q=q(K,[["__scopeId","data-v-0249c198"]]),te=Object.freeze(Object.defineProperty({__proto__:null,default:Q},Symbol.toStringTag,{value:"Module"}));export{te as _}; diff --git a/apps/jingrow/frontend/dist/assets/AttachImage-e6f5c274.js b/apps/jingrow/frontend/dist/assets/AttachImage-c5181b42.js similarity index 96% rename from apps/jingrow/frontend/dist/assets/AttachImage-e6f5c274.js rename to apps/jingrow/frontend/dist/assets/AttachImage-c5181b42.js index a35ec38..595d65c 100644 --- a/apps/jingrow/frontend/dist/assets/AttachImage-e6f5c274.js +++ b/apps/jingrow/frontend/dist/assets/AttachImage-c5181b42.js @@ -1 +1 @@ -import{uploadFileToJingrow as $}from"./common-0beb20f4.js";import{d as q,r as V,c as B,e as s,f as o,p as z,g as u,y as p,F as O,Y as R,l as n}from"./index-b37e64ca.js";import{_ as D}from"./_plugin-vue_export-helper-c27b6911.js";const J={class:"field-label"},L={key:0,class:"required"},P={class:"attach-image-container"},Y={key:0,class:"attach-line"},G={class:"file-link-wrap"},H=["title"],K={key:0,class:"actions"},Q={key:1,class:"preview-popover"},W=["src"],X={key:0,class:"actions actions-left"},Z={key:1,class:"field-value"},ee=q({__name:"AttachImage",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(S){const e=S,_=V(null),f=V(!1),r=B(()=>{var t;return String(((t=e.record)==null?void 0:t[e.df.fieldname])||"")}),j=B(()=>e.df.label_layout||"vertical");function F(){var t;e.canEdit&&((t=_.value)==null||t.click())}async function M(t){var m,v,g,y,h,b,k,I,A,w,x,C;const a=t.target,c=(m=a.files)==null?void 0:m[0];if(c)try{const d=((v=e.ctx)==null?void 0:v.entity)&&(((g=e.ctx)==null?void 0:g.entity.value)??((y=e.ctx)==null?void 0:y.entity))||((h=e.record)==null?void 0:h.pagetype)||"",E=((b=e.ctx)==null?void 0:b.id)&&(((k=e.ctx)==null?void 0:k.id.value)??((I=e.ctx)==null?void 0:I.id))||((A=e.record)==null?void 0:A.name)||"",i=(w=e.df)==null?void 0:w.fieldname,T=(x=e.record)==null?void 0:x[i];console.debug("[AttachImage] upload params",{pagetype:d,docname:E,fieldname:i,file:c.name,oldValue:T});const l=await $(c,d,E,i);if(console.debug("[AttachImage] upload result",l),l.success){if(console.debug("[AttachImage] server returned",{file_url:l.file_url,file_name:l.file_name,local_path:l.local_path}),l.file_url){e.record[i]=l.file_url,console.debug("[AttachImage] set field value locally",{fieldname:i,value:l.file_url});try{typeof((C=e.ctx)==null?void 0:C.save)=="function"&&(await e.ctx.save(),console.debug("[AttachImage] auto save triggered"))}catch(U){console.warn("[AttachImage] auto save failed",U)}}}else alert(l.error||"上传失败"),console.warn("[AttachImage] upload failed",l)}catch(d){alert("上传失败"),console.error("[AttachImage] upload error",d)}finally{a&&(a.value="")}}function N(){e.canEdit&&(e.record[e.df.fieldname]="")}return(t,a)=>(n(),s("div",{class:R(["field-wrapper",`layout-${j.value}`])},[o("label",J,[z(u(t.ctx.t(t.df.label||t.df.fieldname))+" ",1),t.df.reqd?(n(),s("span",L,"*")):p("",!0)]),o("div",P,[r.value?(n(),s("div",Y,[a[2]||(a[2]=o("span",{class:"link-icon"},[o("i",{class:"fa-solid fa-link"})],-1)),o("span",G,[o("a",{class:"file-link",title:r.value,href:"javascript:void(0)",onMouseenter:a[0]||(a[0]=c=>f.value=!0),onMouseleave:a[1]||(a[1]=c=>f.value=!1)},u(r.value),41,H)]),t.canEdit?(n(),s("div",K,[o("button",{class:"action",type:"button",onClick:N},u(t.ctx.t?t.ctx.t("Clear"):"Clear"),1)])):p("",!0),f.value?(n(),s("div",Q,[o("img",{src:r.value,alt:"preview"},null,8,W)])):p("",!0)])):(n(),s(O,{key:1},[t.canEdit?(n(),s("div",X,[o("button",{class:"action",type:"button",onClick:F},u(t.ctx.t?t.ctx.t("Upload"):"Upload"),1)])):(n(),s("span",Z,"—"))],64)),o("input",{ref_key:"inputRef",ref:_,type:"file",accept:"image/*",style:{display:"none"},onChange:M},null,544)])],2))}});const te=D(ee,[["__scopeId","data-v-468818cf"]]),se=Object.freeze(Object.defineProperty({__proto__:null,default:te},Symbol.toStringTag,{value:"Module"}));export{se as _}; +import{uploadFileToJingrow as $}from"./common-a0065b74.js";import{d as q,r as V,c as B,e as s,f as o,p as z,g as u,y as p,F as O,Y as R,l as n}from"./index-7b482730.js";import{_ as D}from"./_plugin-vue_export-helper-c27b6911.js";const J={class:"field-label"},L={key:0,class:"required"},P={class:"attach-image-container"},Y={key:0,class:"attach-line"},G={class:"file-link-wrap"},H=["title"],K={key:0,class:"actions"},Q={key:1,class:"preview-popover"},W=["src"],X={key:0,class:"actions actions-left"},Z={key:1,class:"field-value"},ee=q({__name:"AttachImage",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(S){const e=S,_=V(null),f=V(!1),r=B(()=>{var t;return String(((t=e.record)==null?void 0:t[e.df.fieldname])||"")}),j=B(()=>e.df.label_layout||"vertical");function F(){var t;e.canEdit&&((t=_.value)==null||t.click())}async function M(t){var m,v,g,y,h,b,k,I,A,w,x,C;const a=t.target,c=(m=a.files)==null?void 0:m[0];if(c)try{const d=((v=e.ctx)==null?void 0:v.entity)&&(((g=e.ctx)==null?void 0:g.entity.value)??((y=e.ctx)==null?void 0:y.entity))||((h=e.record)==null?void 0:h.pagetype)||"",E=((b=e.ctx)==null?void 0:b.id)&&(((k=e.ctx)==null?void 0:k.id.value)??((I=e.ctx)==null?void 0:I.id))||((A=e.record)==null?void 0:A.name)||"",i=(w=e.df)==null?void 0:w.fieldname,T=(x=e.record)==null?void 0:x[i];console.debug("[AttachImage] upload params",{pagetype:d,docname:E,fieldname:i,file:c.name,oldValue:T});const l=await $(c,d,E,i);if(console.debug("[AttachImage] upload result",l),l.success){if(console.debug("[AttachImage] server returned",{file_url:l.file_url,file_name:l.file_name,local_path:l.local_path}),l.file_url){e.record[i]=l.file_url,console.debug("[AttachImage] set field value locally",{fieldname:i,value:l.file_url});try{typeof((C=e.ctx)==null?void 0:C.save)=="function"&&(await e.ctx.save(),console.debug("[AttachImage] auto save triggered"))}catch(U){console.warn("[AttachImage] auto save failed",U)}}}else alert(l.error||"上传失败"),console.warn("[AttachImage] upload failed",l)}catch(d){alert("上传失败"),console.error("[AttachImage] upload error",d)}finally{a&&(a.value="")}}function N(){e.canEdit&&(e.record[e.df.fieldname]="")}return(t,a)=>(n(),s("div",{class:R(["field-wrapper",`layout-${j.value}`])},[o("label",J,[z(u(t.ctx.t(t.df.label||t.df.fieldname))+" ",1),t.df.reqd?(n(),s("span",L,"*")):p("",!0)]),o("div",P,[r.value?(n(),s("div",Y,[a[2]||(a[2]=o("span",{class:"link-icon"},[o("i",{class:"fa-solid fa-link"})],-1)),o("span",G,[o("a",{class:"file-link",title:r.value,href:"javascript:void(0)",onMouseenter:a[0]||(a[0]=c=>f.value=!0),onMouseleave:a[1]||(a[1]=c=>f.value=!1)},u(r.value),41,H)]),t.canEdit?(n(),s("div",K,[o("button",{class:"action",type:"button",onClick:N},u(t.ctx.t?t.ctx.t("Clear"):"Clear"),1)])):p("",!0),f.value?(n(),s("div",Q,[o("img",{src:r.value,alt:"preview"},null,8,W)])):p("",!0)])):(n(),s(O,{key:1},[t.canEdit?(n(),s("div",X,[o("button",{class:"action",type:"button",onClick:F},u(t.ctx.t?t.ctx.t("Upload"):"Upload"),1)])):(n(),s("span",Z,"—"))],64)),o("input",{ref_key:"inputRef",ref:_,type:"file",accept:"image/*",style:{display:"none"},onChange:M},null,544)])],2))}});const te=D(ee,[["__scopeId","data-v-468818cf"]]),se=Object.freeze(Object.defineProperty({__proto__:null,default:te},Symbol.toStringTag,{value:"Module"}));export{se as _}; diff --git a/apps/jingrow/frontend/dist/assets/AttachmentSection-77707cb5.js b/apps/jingrow/frontend/dist/assets/AttachmentSection-b5886d4a.js similarity index 97% rename from apps/jingrow/frontend/dist/assets/AttachmentSection-77707cb5.js rename to apps/jingrow/frontend/dist/assets/AttachmentSection-b5886d4a.js index 43d39db..4885776 100644 --- a/apps/jingrow/frontend/dist/assets/AttachmentSection-77707cb5.js +++ b/apps/jingrow/frontend/dist/assets/AttachmentSection-b5886d4a.js @@ -1 +1 @@ -import{d as Z,c as n,r as I,e as u,f as o,h as l,w as c,D as ee,j as a,y as d,F as G,C as V,x as te,l as r,g as _,t as f,$ as w,n as F,L as k,p as A}from"./index-b37e64ca.js";import{I as p}from"./iconify-b5ab1212.js";import ae from"./ImageGallery-f23d1823.js";import{_ as le}from"./_plugin-vue_export-helper-c27b6911.js";const ne={key:0,class:"media-section"},se={class:"section-header"},oe={key:0,class:"image-attachment-list"},ie={class:"image-attachment"},ce={class:"image-container"},re=["src","alt","onClick"],ue={class:"image-overlay"},me=["onClick","title"],de={class:"image-filename"},_e={key:1,class:"file-attachment-list"},fe={class:"file-attachment"},pe={class:"attachment-icon"},he={class:"attachment-info"},ve={class:"file-name-container"},ge=["onClick","title"],ye={key:2,class:"load-more-container"},ke={key:3,class:"add-attachment-placeholder"},Ae=8,be=20,xe=Z({__name:"AttachmentSection",props:{metaFields:{},record:{},canEdit:{type:Boolean}},emits:["add-attachment","delete-attachment"],setup(j,{emit:P}){const M=j,$=P,h=n(()=>{const e=M.record.attachments||[];return e.length===0?[]:e.map(t=>({file_name:t.file_name||t.name,file_url:t.file_url||t.url,name:t.name,is_private:t.is_private||!1}))}),v=I(8),g=I(20),b=n(()=>h.value.filter(e=>y(e))),x=n(()=>h.value.filter(e=>!y(e))),z=n(()=>b.value.slice(0,v.value)),D=n(()=>x.value.slice(0,g.value)),R=n(()=>b.value.length>v.value),T=n(()=>x.value.length>g.value),U=n(()=>R.value||T.value),q=n(()=>z.value.length>0),H=n(()=>D.value.length>0),J=n(()=>{const e=Math.max(0,b.value.length-v.value),t=Math.max(0,x.value.length-g.value);return e+t}),K=()=>{v.value+=Ae,g.value+=be},E=n(()=>h.value.length>0),C=n(()=>M.canEdit!==!1),N=I(),O=n(()=>h.value.filter(e=>y(e)).map(e=>e.file_url)),y=e=>{const t=e.file_url||"",i=e.file_name||"";return[".jpg",".jpeg",".png",".gif",".webp",".bmp",".svg"].some(m=>t.toLowerCase().includes(m)||i.toLowerCase().includes(m))},Q=e=>{var i;switch((i=e.split(".").pop())==null?void 0:i.toLowerCase()){case"pdf":return"tabler:file-type-pdf";case"doc":case"docx":return"tabler:file-type-doc";case"xls":case"xlsx":return"tabler:file-type-xls";case"ppt":case"pptx":return"tabler:file-type-ppt";case"zip":case"rar":return"tabler:file-zip";case"txt":return"tabler:file-text";default:return"tabler:file"}},W=e=>{var i;const t=h.value.slice(0,e+1).filter(s=>y(s)).length-1;(i=N.value)==null||i.open(t)},X=()=>{},B=()=>{$("add-attachment")},L=e=>{$("delete-attachment",e)},Y=e=>{const t=e.target;t.src&&!t.src.includes("?retry=")&&setTimeout(()=>{t.src=t.src.split("?")[0]+"?retry="+Date.now()},1e3)};return(e,t)=>{const i=te("router-link");return E.value||C.value?(r(),u("div",ne,[o("div",se,[l(i,{to:"/app/file",class:"section-title-link",target:"_blank"},{default:c(()=>[o("h4",null,_(a(f)("Attachments")),1)]),_:1}),C.value?(r(),ee(a(F),{key:0,type:"default",size:"small",text:"",onClick:B,title:a(f)("Add Attachment"),class:"add-attachment-btn"},{icon:c(()=>[l(a(w),null,{default:c(()=>[l(a(p),{icon:"tabler:plus"})]),_:1})]),_:1},8,["title"])):d("",!0)]),q.value?(r(),u("div",oe,[(r(!0),u(G,null,V(z.value,(s,m)=>(r(),u("div",{key:`image-${m}`,class:"image-attachment-item"},[o("div",ie,[o("div",ce,[o("img",{src:s.file_url,alt:s.file_name,loading:"lazy",onClick:S=>W(m),onError:Y},null,40,re),o("div",ue,[o("button",{onClick:k(S=>L(s),["stop"]),title:a(f)("Delete Attachment"),class:"delete-btn"},[l(a(p),{icon:"tabler:x"})],8,me)])]),o("div",de,[l(i,{to:`/app/file/${s.name}`,class:"file-name-link",target:"_blank",onClick:t[0]||(t[0]=k(()=>{},["stop"]))},{default:c(()=>[A(_(s.file_name),1)]),_:2},1032,["to"])])])]))),128))])):d("",!0),H.value?(r(),u("div",_e,[(r(!0),u(G,null,V(D.value,(s,m)=>(r(),u("div",{key:`file-${m}`,class:"file-attachment-item"},[o("div",fe,[o("div",pe,[l(a(p),{icon:Q(s.file_url)},null,8,["icon"])]),o("div",he,[o("div",ve,[l(i,{to:`/app/file/${s.name}`,class:"file-name-link",target:"_blank",onClick:t[1]||(t[1]=k(()=>{},["stop"]))},{default:c(()=>[A(_(s.file_name),1)]),_:2},1032,["to"]),o("button",{onClick:k(S=>L(s),["stop"]),title:a(f)("Delete Attachment"),class:"delete-btn-inline"},[l(a(p),{icon:"tabler:x"})],8,ge)])])])]))),128))])):d("",!0),U.value?(r(),u("div",ye,[l(a(F),{type:"default",size:"small",text:"",onClick:K,class:"load-more-btn"},{icon:c(()=>[l(a(w),null,{default:c(()=>[l(a(p),{icon:"tabler:chevron-down"})]),_:1})]),default:c(()=>[A(" "+_(a(f)("Load More"))+" ("+_(J.value)+") ",1)]),_:1})])):d("",!0),!E.value&&C.value?(r(),u("div",ke,[l(a(F),{type:"default",onClick:B,class:"add-button"},{icon:c(()=>[l(a(w),null,{default:c(()=>[l(a(p),{icon:"tabler:plus"})]),_:1})]),default:c(()=>[A(" "+_(a(f)("Add Attachment")),1)]),_:1})])):d("",!0),l(ae,{ref_key:"imageGalleryRef",ref:N,images:O.value,onClose:X},null,8,["images"])])):d("",!0)}}});const Me=le(xe,[["__scopeId","data-v-9eb80c1e"]]);export{Me as default}; +import{d as Z,c as n,r as I,e as u,f as o,h as l,w as c,D as ee,j as a,y as d,F as G,C as V,x as te,l as r,g as _,t as f,$ as w,n as F,L as k,p as A}from"./index-7b482730.js";import{I as p}from"./iconify-30ae5ba5.js";import ae from"./ImageGallery-63e4832e.js";import{_ as le}from"./_plugin-vue_export-helper-c27b6911.js";const ne={key:0,class:"media-section"},se={class:"section-header"},oe={key:0,class:"image-attachment-list"},ie={class:"image-attachment"},ce={class:"image-container"},re=["src","alt","onClick"],ue={class:"image-overlay"},me=["onClick","title"],de={class:"image-filename"},_e={key:1,class:"file-attachment-list"},fe={class:"file-attachment"},pe={class:"attachment-icon"},he={class:"attachment-info"},ve={class:"file-name-container"},ge=["onClick","title"],ye={key:2,class:"load-more-container"},ke={key:3,class:"add-attachment-placeholder"},Ae=8,be=20,xe=Z({__name:"AttachmentSection",props:{metaFields:{},record:{},canEdit:{type:Boolean}},emits:["add-attachment","delete-attachment"],setup(j,{emit:P}){const M=j,$=P,h=n(()=>{const e=M.record.attachments||[];return e.length===0?[]:e.map(t=>({file_name:t.file_name||t.name,file_url:t.file_url||t.url,name:t.name,is_private:t.is_private||!1}))}),v=I(8),g=I(20),b=n(()=>h.value.filter(e=>y(e))),x=n(()=>h.value.filter(e=>!y(e))),z=n(()=>b.value.slice(0,v.value)),D=n(()=>x.value.slice(0,g.value)),R=n(()=>b.value.length>v.value),T=n(()=>x.value.length>g.value),U=n(()=>R.value||T.value),q=n(()=>z.value.length>0),H=n(()=>D.value.length>0),J=n(()=>{const e=Math.max(0,b.value.length-v.value),t=Math.max(0,x.value.length-g.value);return e+t}),K=()=>{v.value+=Ae,g.value+=be},E=n(()=>h.value.length>0),C=n(()=>M.canEdit!==!1),N=I(),O=n(()=>h.value.filter(e=>y(e)).map(e=>e.file_url)),y=e=>{const t=e.file_url||"",i=e.file_name||"";return[".jpg",".jpeg",".png",".gif",".webp",".bmp",".svg"].some(m=>t.toLowerCase().includes(m)||i.toLowerCase().includes(m))},Q=e=>{var i;switch((i=e.split(".").pop())==null?void 0:i.toLowerCase()){case"pdf":return"tabler:file-type-pdf";case"doc":case"docx":return"tabler:file-type-doc";case"xls":case"xlsx":return"tabler:file-type-xls";case"ppt":case"pptx":return"tabler:file-type-ppt";case"zip":case"rar":return"tabler:file-zip";case"txt":return"tabler:file-text";default:return"tabler:file"}},W=e=>{var i;const t=h.value.slice(0,e+1).filter(s=>y(s)).length-1;(i=N.value)==null||i.open(t)},X=()=>{},B=()=>{$("add-attachment")},L=e=>{$("delete-attachment",e)},Y=e=>{const t=e.target;t.src&&!t.src.includes("?retry=")&&setTimeout(()=>{t.src=t.src.split("?")[0]+"?retry="+Date.now()},1e3)};return(e,t)=>{const i=te("router-link");return E.value||C.value?(r(),u("div",ne,[o("div",se,[l(i,{to:"/app/file",class:"section-title-link",target:"_blank"},{default:c(()=>[o("h4",null,_(a(f)("Attachments")),1)]),_:1}),C.value?(r(),ee(a(F),{key:0,type:"default",size:"small",text:"",onClick:B,title:a(f)("Add Attachment"),class:"add-attachment-btn"},{icon:c(()=>[l(a(w),null,{default:c(()=>[l(a(p),{icon:"tabler:plus"})]),_:1})]),_:1},8,["title"])):d("",!0)]),q.value?(r(),u("div",oe,[(r(!0),u(G,null,V(z.value,(s,m)=>(r(),u("div",{key:`image-${m}`,class:"image-attachment-item"},[o("div",ie,[o("div",ce,[o("img",{src:s.file_url,alt:s.file_name,loading:"lazy",onClick:S=>W(m),onError:Y},null,40,re),o("div",ue,[o("button",{onClick:k(S=>L(s),["stop"]),title:a(f)("Delete Attachment"),class:"delete-btn"},[l(a(p),{icon:"tabler:x"})],8,me)])]),o("div",de,[l(i,{to:`/app/file/${s.name}`,class:"file-name-link",target:"_blank",onClick:t[0]||(t[0]=k(()=>{},["stop"]))},{default:c(()=>[A(_(s.file_name),1)]),_:2},1032,["to"])])])]))),128))])):d("",!0),H.value?(r(),u("div",_e,[(r(!0),u(G,null,V(D.value,(s,m)=>(r(),u("div",{key:`file-${m}`,class:"file-attachment-item"},[o("div",fe,[o("div",pe,[l(a(p),{icon:Q(s.file_url)},null,8,["icon"])]),o("div",he,[o("div",ve,[l(i,{to:`/app/file/${s.name}`,class:"file-name-link",target:"_blank",onClick:t[1]||(t[1]=k(()=>{},["stop"]))},{default:c(()=>[A(_(s.file_name),1)]),_:2},1032,["to"]),o("button",{onClick:k(S=>L(s),["stop"]),title:a(f)("Delete Attachment"),class:"delete-btn-inline"},[l(a(p),{icon:"tabler:x"})],8,ge)])])])]))),128))])):d("",!0),U.value?(r(),u("div",ye,[l(a(F),{type:"default",size:"small",text:"",onClick:K,class:"load-more-btn"},{icon:c(()=>[l(a(w),null,{default:c(()=>[l(a(p),{icon:"tabler:chevron-down"})]),_:1})]),default:c(()=>[A(" "+_(a(f)("Load More"))+" ("+_(J.value)+") ",1)]),_:1})])):d("",!0),!E.value&&C.value?(r(),u("div",ke,[l(a(F),{type:"default",onClick:B,class:"add-button"},{icon:c(()=>[l(a(w),null,{default:c(()=>[l(a(p),{icon:"tabler:plus"})]),_:1})]),default:c(()=>[A(" "+_(a(f)("Add Attachment")),1)]),_:1})])):d("",!0),l(ae,{ref_key:"imageGalleryRef",ref:N,images:O.value,onClose:X},null,8,["images"])])):d("",!0)}}});const Me=le(xe,[["__scopeId","data-v-9eb80c1e"]]);export{Me as default}; diff --git a/apps/jingrow/frontend/dist/assets/Autocomplete-7b31bbab.js b/apps/jingrow/frontend/dist/assets/Autocomplete-e76c53a6.js similarity index 93% rename from apps/jingrow/frontend/dist/assets/Autocomplete-7b31bbab.js rename to apps/jingrow/frontend/dist/assets/Autocomplete-e76c53a6.js index f136dc8..5a4981b 100644 --- a/apps/jingrow/frontend/dist/assets/Autocomplete-7b31bbab.js +++ b/apps/jingrow/frontend/dist/assets/Autocomplete-e76c53a6.js @@ -1 +1 @@ -import{d as r,c as p,e as a,f as i,p as c,g as f,y as u,h as m,j as _,Y as b,l as t,aq as v}from"./index-b37e64ca.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},N={key:0,class:"required"},S=r({__name:"Autocomplete",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(l){const s=l,d=p(()=>s.df.label_layout||"vertical");return(e,o)=>(t(),a("div",{class:b(["field-wrapper",`layout-${d.value}`])},[i("label",g,[c(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(t(),a("span",N,"*")):u("",!0)]),m(_(v),{value:e.record[e.df.fieldname],"onUpdate:value":o[0]||(o[0]=n=>e.record[e.df.fieldname]=n),options:e.ctx.getSelectOptions?e.ctx.getSelectOptions(e.df):[],placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","options","placeholder","disabled"])],2))}});const h=y(S,[["__scopeId","data-v-11679784"]]),C=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{C as _}; +import{d as r,c as p,e as a,f as i,p as c,g as f,y as u,h as m,j as _,Y as b,l as t,aq as v}from"./index-7b482730.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},N={key:0,class:"required"},S=r({__name:"Autocomplete",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(l){const s=l,d=p(()=>s.df.label_layout||"vertical");return(e,o)=>(t(),a("div",{class:b(["field-wrapper",`layout-${d.value}`])},[i("label",g,[c(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(t(),a("span",N,"*")):u("",!0)]),m(_(v),{value:e.record[e.df.fieldname],"onUpdate:value":o[0]||(o[0]=n=>e.record[e.df.fieldname]=n),options:e.ctx.getSelectOptions?e.ctx.getSelectOptions(e.df):[],placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","options","placeholder","disabled"])],2))}});const h=y(S,[["__scopeId","data-v-11679784"]]),C=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{C as _}; diff --git a/apps/jingrow/frontend/dist/assets/Barcode-719e9569.js b/apps/jingrow/frontend/dist/assets/Barcode-b3bbd4be.js similarity index 93% rename from apps/jingrow/frontend/dist/assets/Barcode-719e9569.js rename to apps/jingrow/frontend/dist/assets/Barcode-b3bbd4be.js index dfa27b3..41cf7eb 100644 --- a/apps/jingrow/frontend/dist/assets/Barcode-719e9569.js +++ b/apps/jingrow/frontend/dist/assets/Barcode-b3bbd4be.js @@ -1 +1 @@ -import{d as n,c,e as o,f as p,p as i,g as f,y as u,h as _,j as m,Y as y,l,m as b}from"./index-b37e64ca.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const B={class:"field-label"},g={key:0,class:"required"},N=n({__name:"Barcode",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(d){const t=d,s=c(()=>t.df.label_layout||"vertical");return(e,a)=>(l(),o("div",{class:y(["field-wrapper",`layout-${s.value}`])},[p("label",B,[i(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),o("span",g,"*")):u("",!0)]),_(m(b),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=r=>e.record[e.df.fieldname]=r),type:"text",placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const h=v(N,[["__scopeId","data-v-51a81c93"]]),k=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{k as _}; +import{d as n,c,e as o,f as p,p as i,g as f,y as u,h as _,j as m,Y as y,l,m as b}from"./index-7b482730.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const B={class:"field-label"},g={key:0,class:"required"},N=n({__name:"Barcode",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(d){const t=d,s=c(()=>t.df.label_layout||"vertical");return(e,a)=>(l(),o("div",{class:y(["field-wrapper",`layout-${s.value}`])},[p("label",B,[i(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),o("span",g,"*")):u("",!0)]),_(m(b),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=r=>e.record[e.df.fieldname]=r),type:"text",placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const h=v(N,[["__scopeId","data-v-51a81c93"]]),k=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{k as _}; diff --git a/apps/jingrow/frontend/dist/assets/BaseModal-d7f37376.js b/apps/jingrow/frontend/dist/assets/BaseModal-8966a5e5.js similarity index 92% rename from apps/jingrow/frontend/dist/assets/BaseModal-d7f37376.js rename to apps/jingrow/frontend/dist/assets/BaseModal-8966a5e5.js index 3679ed1..f6f3226 100644 --- a/apps/jingrow/frontend/dist/assets/BaseModal-d7f37376.js +++ b/apps/jingrow/frontend/dist/assets/BaseModal-8966a5e5.js @@ -1 +1 @@ -import{e as n,f as e,g as c,aC as a,L as i,y as r,l as _}from"./index-b37e64ca.js";import{_ as m}from"./_plugin-vue_export-helper-c27b6911.js";const u={class:"modal-wrapper"},p={class:"modal-container"},f={class:"modal-header"},h={class:"modal-body"},v={class:"modal-footer"},y={__name:"BaseModal",props:{modelValue:Boolean,title:{type:String,default:""}},emits:["update:modelValue"],setup(s,{emit:l}){const d=l;function o(){d("update:modelValue",!1)}return(t,k)=>s.modelValue?(_(),n("div",{key:0,class:"modal-mask",onClick:i(o,["self"])},[e("div",u,[e("div",p,[e("div",f,[e("h4",null,c(s.title),1),e("button",{class:"modal-close",onClick:o},"×")]),e("div",h,[a(t.$slots,"default",{},void 0,!0)]),e("div",v,[a(t.$slots,"footer",{},()=>[e("button",{class:"btn btn-primary",onClick:o},"确定")],!0)])])])])):r("",!0)}},V=m(y,[["__scopeId","data-v-9d206155"]]);export{V as default}; +import{e as n,f as e,g as c,aC as a,L as i,y as r,l as _}from"./index-7b482730.js";import{_ as m}from"./_plugin-vue_export-helper-c27b6911.js";const u={class:"modal-wrapper"},p={class:"modal-container"},f={class:"modal-header"},h={class:"modal-body"},v={class:"modal-footer"},y={__name:"BaseModal",props:{modelValue:Boolean,title:{type:String,default:""}},emits:["update:modelValue"],setup(s,{emit:l}){const d=l;function o(){d("update:modelValue",!1)}return(t,k)=>s.modelValue?(_(),n("div",{key:0,class:"modal-mask",onClick:i(o,["self"])},[e("div",u,[e("div",p,[e("div",f,[e("h4",null,c(s.title),1),e("button",{class:"modal-close",onClick:o},"×")]),e("div",h,[a(t.$slots,"default",{},void 0,!0)]),e("div",v,[a(t.$slots,"footer",{},()=>[e("button",{class:"btn btn-primary",onClick:o},"确定")],!0)])])])])):r("",!0)}},V=m(y,[["__scopeId","data-v-9d206155"]]);export{V as default}; diff --git a/apps/jingrow/frontend/dist/assets/Button-a612ab31.js b/apps/jingrow/frontend/dist/assets/Button-c2adfcfc.js similarity index 93% rename from apps/jingrow/frontend/dist/assets/Button-a612ab31.js rename to apps/jingrow/frontend/dist/assets/Button-c2adfcfc.js index 2d3063d..409a54f 100644 --- a/apps/jingrow/frontend/dist/assets/Button-a612ab31.js +++ b/apps/jingrow/frontend/dist/assets/Button-c2adfcfc.js @@ -1 +1 @@ -import{d as c,c as i,e as a,f,p as o,g as l,y as u,h as p,w as _,j as m,Y as b,l as s,n as y}from"./index-b37e64ca.js";import{_ as B}from"./_plugin-vue_export-helper-c27b6911.js";const v={class:"field-label"},C={key:0,class:"required"},g=c({__name:"Button",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(n){const d=n,r=i(()=>d.df.label_layout||"vertical");return(e,t)=>(s(),a("div",{class:b(["field-wrapper",`layout-${r.value}`])},[f("label",v,[o(l(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(s(),a("span",C,"*")):u("",!0)]),p(m(y),{disabled:!e.canEdit,onClick:t[0]||(t[0]=h=>e.ctx.handleButtonClick?e.ctx.handleButtonClick(e.df):null)},{default:_(()=>[o(l(e.ctx.t(e.df.label||e.df.fieldname)),1)]),_:1},8,["disabled"])],2))}});const k=B(g,[["__scopeId","data-v-55efe31c"]]),j=Object.freeze(Object.defineProperty({__proto__:null,default:k},Symbol.toStringTag,{value:"Module"}));export{j as _}; +import{d as c,c as i,e as a,f,p as o,g as l,y as u,h as p,w as _,j as m,Y as b,l as s,n as y}from"./index-7b482730.js";import{_ as B}from"./_plugin-vue_export-helper-c27b6911.js";const v={class:"field-label"},C={key:0,class:"required"},g=c({__name:"Button",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(n){const d=n,r=i(()=>d.df.label_layout||"vertical");return(e,t)=>(s(),a("div",{class:b(["field-wrapper",`layout-${r.value}`])},[f("label",v,[o(l(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(s(),a("span",C,"*")):u("",!0)]),p(m(y),{disabled:!e.canEdit,onClick:t[0]||(t[0]=h=>e.ctx.handleButtonClick?e.ctx.handleButtonClick(e.df):null)},{default:_(()=>[o(l(e.ctx.t(e.df.label||e.df.fieldname)),1)]),_:1},8,["disabled"])],2))}});const k=B(g,[["__scopeId","data-v-55efe31c"]]),j=Object.freeze(Object.defineProperty({__proto__:null,default:k},Symbol.toStringTag,{value:"Module"}));export{j as _}; diff --git a/apps/jingrow/frontend/dist/assets/Check-fb5a1570.js b/apps/jingrow/frontend/dist/assets/Check-24e0c7d2.js similarity index 95% rename from apps/jingrow/frontend/dist/assets/Check-fb5a1570.js rename to apps/jingrow/frontend/dist/assets/Check-24e0c7d2.js index 56c068b..79fb3cd 100644 --- a/apps/jingrow/frontend/dist/assets/Check-fb5a1570.js +++ b/apps/jingrow/frontend/dist/assets/Check-24e0c7d2.js @@ -1 +1 @@ -import{d as h,c as i,e as a,F as r,f as d,p as f,g as p,y as u,Y as _,l as o}from"./index-b37e64ca.js";import{_ as k}from"./_plugin-vue_export-helper-c27b6911.js";const m={class:"field-label"},v={key:0,class:"required"},y={class:"checkbox-container"},g=["id","checked","disabled"],C={class:"checkbox-container"},q=["id","checked","disabled"],B={class:"field-label"},E={key:0,class:"required"},S=h({__name:"Check",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(b){const l=b,n=i(()=>l.df.label_layout||"vertical"),c=i(()=>`checkbox-${l.df.fieldname}-${Math.random().toString(36).substr(2,9)}`);return(e,s)=>(o(),a("div",{class:_(["field-wrapper",`layout-${n.value}`])},[n.value==="vertical"?(o(),a(r,{key:0},[d("div",m,[f(p(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(o(),a("span",v,"*")):u("",!0)]),d("div",y,[d("input",{id:c.value,type:"checkbox",checked:!!e.record[e.df.fieldname],onChange:s[0]||(s[0]=t=>{e.record[e.df.fieldname]=t.target.checked?1:0}),disabled:!e.canEdit,class:"native-checkbox"},null,40,g)])],64)):(o(),a(r,{key:1},[d("div",C,[d("input",{id:c.value,type:"checkbox",checked:!!e.record[e.df.fieldname],onChange:s[1]||(s[1]=t=>{e.record[e.df.fieldname]=t.target.checked?1:0}),disabled:!e.canEdit,class:"native-checkbox"},null,40,q)]),d("div",B,[f(p(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(o(),a("span",E,"*")):u("",!0)])],64))],2))}});const N=k(S,[["__scopeId","data-v-08df56b7"]]),j=Object.freeze(Object.defineProperty({__proto__:null,default:N},Symbol.toStringTag,{value:"Module"}));export{j as _}; +import{d as h,c as i,e as a,F as r,f as d,p as f,g as p,y as u,Y as _,l as o}from"./index-7b482730.js";import{_ as k}from"./_plugin-vue_export-helper-c27b6911.js";const m={class:"field-label"},v={key:0,class:"required"},y={class:"checkbox-container"},g=["id","checked","disabled"],C={class:"checkbox-container"},q=["id","checked","disabled"],B={class:"field-label"},E={key:0,class:"required"},S=h({__name:"Check",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(b){const l=b,n=i(()=>l.df.label_layout||"vertical"),c=i(()=>`checkbox-${l.df.fieldname}-${Math.random().toString(36).substr(2,9)}`);return(e,s)=>(o(),a("div",{class:_(["field-wrapper",`layout-${n.value}`])},[n.value==="vertical"?(o(),a(r,{key:0},[d("div",m,[f(p(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(o(),a("span",v,"*")):u("",!0)]),d("div",y,[d("input",{id:c.value,type:"checkbox",checked:!!e.record[e.df.fieldname],onChange:s[0]||(s[0]=t=>{e.record[e.df.fieldname]=t.target.checked?1:0}),disabled:!e.canEdit,class:"native-checkbox"},null,40,g)])],64)):(o(),a(r,{key:1},[d("div",C,[d("input",{id:c.value,type:"checkbox",checked:!!e.record[e.df.fieldname],onChange:s[1]||(s[1]=t=>{e.record[e.df.fieldname]=t.target.checked?1:0}),disabled:!e.canEdit,class:"native-checkbox"},null,40,q)]),d("div",B,[f(p(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(o(),a("span",E,"*")):u("",!0)])],64))],2))}});const N=k(S,[["__scopeId","data-v-08df56b7"]]),j=Object.freeze(Object.defineProperty({__proto__:null,default:N},Symbol.toStringTag,{value:"Module"}));export{j as _}; diff --git a/apps/jingrow/frontend/dist/assets/Code-01463ed1.js b/apps/jingrow/frontend/dist/assets/Code-a486a048.js similarity index 96% rename from apps/jingrow/frontend/dist/assets/Code-01463ed1.js rename to apps/jingrow/frontend/dist/assets/Code-a486a048.js index 1f75e76..571f466 100644 --- a/apps/jingrow/frontend/dist/assets/Code-01463ed1.js +++ b/apps/jingrow/frontend/dist/assets/Code-a486a048.js @@ -1 +1 @@ -import{l as z}from"./index-2d2e8bf3.js";import{d as E,r as m,u as j,c as h,M as T,o as D,J as p,aU as N,e as u,f as n,p as _,g,y as v,Y as C,D as J,w as O,j as P,l as r,n as W}from"./index-b37e64ca.js";import{_ as q}from"./_plugin-vue_export-helper-c27b6911.js";const Z={class:"field-label"},G={key:0,class:"required"},I={class:"code-editor"},U={key:0,class:"code-editor__preview"},A=["aria-label"],R={class:"code-editor__footer"},Y=E({__name:"Code",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(b){const a=b,s=m(null);let f=null,e=null;const i=m(!1),c=j(),w=h(()=>a.df.label_layout||"vertical"),d=h(()=>!a.canEdit),S=()=>({Javascript:"javascript",JS:"javascript",Python:"python",Py:"python",PythonExpression:"python",HTML:"html",CSS:"css",Markdown:"markdown",SCSS:"scss",JSON:"json",Golang:"go",Go:"go",Jinja:"html"})[a.df.options]||"text";async function x(){if(!s.value||d.value||(f||(f=await z.init()),e))return;const o=S(),t=String(a.record[a.df.fieldname]||"");e=f.editor.create(s.value,{value:t,language:o,automaticLayout:!0,folding:!0,minimap:{enabled:!1},readOnly:!1,wordWrap:a.df.wrap?"on":"off",wordWrapColumn:120,wrappingStrategy:"advanced",scrollBeyondLastLine:!1,scrollBeyondLastColumn:0,scrollbar:{horizontal:"auto",vertical:"auto",horizontalScrollbarSize:6,verticalScrollbarSize:6,alwaysConsumeMouseWheel:!1},theme:"vs",showPrintMargin:!1,fontSize:14,lineNumbers:"on",renderWhitespace:"selection",tabSize:2,insertSpaces:!0});const l=()=>{if(!e||!s.value)return;const y=e.getLayoutInfo(),B=e.getScrollHeight()>y.height+1,L=e.getScrollWidth()>y.width+1;s.value.classList.toggle("no-scroll-y",!B),s.value.classList.toggle("no-scroll-x",!L)};l(),e.onDidContentSizeChange(()=>l()),e.onDidScrollChange(()=>l()),e.onDidLayoutChange(()=>l()),e.onDidChangeModelContent(()=>{e&&(a.record[a.df.fieldname]=e.getValue(),l())})}function V(){try{e==null||e.dispose()}catch{}e=null}function k(){i.value=!i.value,p(()=>e==null?void 0:e.layout())}function M(){const o=e?e.getValue():String(a.record[a.df.fieldname]||"");o?navigator.clipboard.writeText(o).then(()=>{c.success("代码已复制到剪贴板")}).catch(t=>{console.error("复制失败:",t),H(o)}):c.warning("没有内容可复制")}function H(o){const t=document.createElement("textarea");t.value=o,t.style.position="fixed",t.style.left="-999999px",t.style.top="-999999px",document.body.appendChild(t),t.focus(),t.select();try{document.execCommand("copy"),c.success("代码已复制到剪贴板")}catch(l){console.error("复制失败:",l),c.error("复制失败,请手动复制")}document.body.removeChild(t)}return T(()=>a.record[a.df.fieldname],o=>{e&&o!==e.getValue()&&e.setValue(String(o||""))}),D(async()=>{await p(),await x(),p(()=>e==null?void 0:e.layout())}),N(V),(o,t)=>(r(),u("div",{class:C(["field-wrapper",`layout-${w.value}`])},[n("label",Z,[_(g(o.ctx.t(o.df.label||o.df.fieldname))+" ",1),o.df.reqd?(r(),u("span",G,"*")):v("",!0)]),n("div",I,[n("div",{class:C(["code-editor__monaco-wrap",{collapsed:!i.value,readonly:d.value}])},[d.value?(r(),u("div",U,[n("pre",null,[n("code",null,g(o.record[o.df.fieldname]||""),1)])])):(r(),u("div",{key:1,ref_key:"editorHost",ref:s,class:"code-editor__monaco-host"},null,512)),n("button",{class:"code-editor__copy-btn",type:"button",onClick:M,"aria-label":o.ctx.t("Copy")},[...t[0]||(t[0]=[n("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},[n("path",{d:"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z",fill:"currentColor"})],-1)])],8,A)],2),n("div",R,[d.value?v("",!0):(r(),J(P(W),{key:0,size:"tiny",quaternary:"",onClick:k},{default:O(()=>[_(g(i.value?o.ctx.t("Collapse"):o.ctx.t("Expand")),1)]),_:1}))])])],2))}});const $=q(Y,[["__scopeId","data-v-928e00fb"]]),X=Object.freeze(Object.defineProperty({__proto__:null,default:$},Symbol.toStringTag,{value:"Module"}));export{X as _}; +import{l as z}from"./index-2d2e8bf3.js";import{d as E,r as m,u as j,c as h,M as T,o as D,J as p,aU as N,e as u,f as n,p as _,g,y as v,Y as C,D as J,w as O,j as P,l as r,n as W}from"./index-7b482730.js";import{_ as q}from"./_plugin-vue_export-helper-c27b6911.js";const Z={class:"field-label"},G={key:0,class:"required"},I={class:"code-editor"},U={key:0,class:"code-editor__preview"},A=["aria-label"],R={class:"code-editor__footer"},Y=E({__name:"Code",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(b){const a=b,s=m(null);let f=null,e=null;const i=m(!1),c=j(),w=h(()=>a.df.label_layout||"vertical"),d=h(()=>!a.canEdit),S=()=>({Javascript:"javascript",JS:"javascript",Python:"python",Py:"python",PythonExpression:"python",HTML:"html",CSS:"css",Markdown:"markdown",SCSS:"scss",JSON:"json",Golang:"go",Go:"go",Jinja:"html"})[a.df.options]||"text";async function x(){if(!s.value||d.value||(f||(f=await z.init()),e))return;const o=S(),t=String(a.record[a.df.fieldname]||"");e=f.editor.create(s.value,{value:t,language:o,automaticLayout:!0,folding:!0,minimap:{enabled:!1},readOnly:!1,wordWrap:a.df.wrap?"on":"off",wordWrapColumn:120,wrappingStrategy:"advanced",scrollBeyondLastLine:!1,scrollBeyondLastColumn:0,scrollbar:{horizontal:"auto",vertical:"auto",horizontalScrollbarSize:6,verticalScrollbarSize:6,alwaysConsumeMouseWheel:!1},theme:"vs",showPrintMargin:!1,fontSize:14,lineNumbers:"on",renderWhitespace:"selection",tabSize:2,insertSpaces:!0});const l=()=>{if(!e||!s.value)return;const y=e.getLayoutInfo(),B=e.getScrollHeight()>y.height+1,L=e.getScrollWidth()>y.width+1;s.value.classList.toggle("no-scroll-y",!B),s.value.classList.toggle("no-scroll-x",!L)};l(),e.onDidContentSizeChange(()=>l()),e.onDidScrollChange(()=>l()),e.onDidLayoutChange(()=>l()),e.onDidChangeModelContent(()=>{e&&(a.record[a.df.fieldname]=e.getValue(),l())})}function V(){try{e==null||e.dispose()}catch{}e=null}function k(){i.value=!i.value,p(()=>e==null?void 0:e.layout())}function M(){const o=e?e.getValue():String(a.record[a.df.fieldname]||"");o?navigator.clipboard.writeText(o).then(()=>{c.success("代码已复制到剪贴板")}).catch(t=>{console.error("复制失败:",t),H(o)}):c.warning("没有内容可复制")}function H(o){const t=document.createElement("textarea");t.value=o,t.style.position="fixed",t.style.left="-999999px",t.style.top="-999999px",document.body.appendChild(t),t.focus(),t.select();try{document.execCommand("copy"),c.success("代码已复制到剪贴板")}catch(l){console.error("复制失败:",l),c.error("复制失败,请手动复制")}document.body.removeChild(t)}return T(()=>a.record[a.df.fieldname],o=>{e&&o!==e.getValue()&&e.setValue(String(o||""))}),D(async()=>{await p(),await x(),p(()=>e==null?void 0:e.layout())}),N(V),(o,t)=>(r(),u("div",{class:C(["field-wrapper",`layout-${w.value}`])},[n("label",Z,[_(g(o.ctx.t(o.df.label||o.df.fieldname))+" ",1),o.df.reqd?(r(),u("span",G,"*")):v("",!0)]),n("div",I,[n("div",{class:C(["code-editor__monaco-wrap",{collapsed:!i.value,readonly:d.value}])},[d.value?(r(),u("div",U,[n("pre",null,[n("code",null,g(o.record[o.df.fieldname]||""),1)])])):(r(),u("div",{key:1,ref_key:"editorHost",ref:s,class:"code-editor__monaco-host"},null,512)),n("button",{class:"code-editor__copy-btn",type:"button",onClick:M,"aria-label":o.ctx.t("Copy")},[...t[0]||(t[0]=[n("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},[n("path",{d:"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z",fill:"currentColor"})],-1)])],8,A)],2),n("div",R,[d.value?v("",!0):(r(),J(P(W),{key:0,size:"tiny",quaternary:"",onClick:k},{default:O(()=>[_(g(i.value?o.ctx.t("Collapse"):o.ctx.t("Expand")),1)]),_:1}))])])],2))}});const $=q(Y,[["__scopeId","data-v-928e00fb"]]),X=Object.freeze(Object.defineProperty({__proto__:null,default:$},Symbol.toStringTag,{value:"Module"}));export{X as _}; diff --git a/apps/jingrow/frontend/dist/assets/Color-2263ebad.js b/apps/jingrow/frontend/dist/assets/Color-5d20723d.js similarity index 92% rename from apps/jingrow/frontend/dist/assets/Color-2263ebad.js rename to apps/jingrow/frontend/dist/assets/Color-5d20723d.js index 3b0e793..3f8db60 100644 --- a/apps/jingrow/frontend/dist/assets/Color-2263ebad.js +++ b/apps/jingrow/frontend/dist/assets/Color-5d20723d.js @@ -1 +1 @@ -import{d as n,c as i,e as o,f as c,p,g as _,y as f,h as u,j as m,Y as b,l,ap as v}from"./index-b37e64ca.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const C={class:"field-label"},g={key:0,class:"required"},N=n({__name:"Color",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(s){const t=s,r=i(()=>t.df.label_layout||"vertical");return(e,a)=>(l(),o("div",{class:b(["field-wrapper",`layout-${r.value}`])},[c("label",C,[p(_(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),o("span",g,"*")):f("",!0)]),u(m(v),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=d=>e.record[e.df.fieldname]=d),disabled:!e.canEdit,size:"medium"},null,8,["value","disabled"])],2))}});const k=y(N,[["__scopeId","data-v-896505ba"]]),j=Object.freeze(Object.defineProperty({__proto__:null,default:k},Symbol.toStringTag,{value:"Module"}));export{j as _}; +import{d as n,c as i,e as o,f as c,p,g as _,y as f,h as u,j as m,Y as b,l,ap as v}from"./index-7b482730.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const C={class:"field-label"},g={key:0,class:"required"},N=n({__name:"Color",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(s){const t=s,r=i(()=>t.df.label_layout||"vertical");return(e,a)=>(l(),o("div",{class:b(["field-wrapper",`layout-${r.value}`])},[c("label",C,[p(_(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),o("span",g,"*")):f("",!0)]),u(m(v),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=d=>e.record[e.df.fieldname]=d),disabled:!e.canEdit,size:"medium"},null,8,["value","disabled"])],2))}});const k=y(N,[["__scopeId","data-v-896505ba"]]),j=Object.freeze(Object.defineProperty({__proto__:null,default:k},Symbol.toStringTag,{value:"Module"}));export{j as _}; diff --git a/apps/jingrow/frontend/dist/assets/Comment-4474028c.js b/apps/jingrow/frontend/dist/assets/Comment-dc20eab5.js similarity index 93% rename from apps/jingrow/frontend/dist/assets/Comment-4474028c.js rename to apps/jingrow/frontend/dist/assets/Comment-dc20eab5.js index 9c220f6..443e840 100644 --- a/apps/jingrow/frontend/dist/assets/Comment-4474028c.js +++ b/apps/jingrow/frontend/dist/assets/Comment-dc20eab5.js @@ -1 +1 @@ -import{d as n,c as p,e as o,f,p as i,g as c,y as m,h as u,j as _,Y as y,l,m as b}from"./index-b37e64ca.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},C={key:0,class:"required"},N=n({__name:"Comment",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(t){const s=t,d=p(()=>s.df.label_layout||"vertical");return(e,a)=>(l(),o("div",{class:y(["field-wrapper",`layout-${d.value}`])},[f("label",g,[i(c(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),o("span",C,"*")):m("",!0)]),u(_(b),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=r=>e.record[e.df.fieldname]=r),type:"textarea",rows:6,placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const h=v(N,[["__scopeId","data-v-e124a6f5"]]),j=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{j as _}; +import{d as n,c as p,e as o,f,p as i,g as c,y as m,h as u,j as _,Y as y,l,m as b}from"./index-7b482730.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},C={key:0,class:"required"},N=n({__name:"Comment",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(t){const s=t,d=p(()=>s.df.label_layout||"vertical");return(e,a)=>(l(),o("div",{class:y(["field-wrapper",`layout-${d.value}`])},[f("label",g,[i(c(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),o("span",C,"*")):m("",!0)]),u(_(b),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=r=>e.record[e.df.fieldname]=r),type:"textarea",rows:6,placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const h=v(N,[["__scopeId","data-v-e124a6f5"]]),j=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{j as _}; diff --git a/apps/jingrow/frontend/dist/assets/CreateAppTemplate-52a940f0.js b/apps/jingrow/frontend/dist/assets/CreateAppTemplate-4a358f5d.js similarity index 97% rename from apps/jingrow/frontend/dist/assets/CreateAppTemplate-52a940f0.js rename to apps/jingrow/frontend/dist/assets/CreateAppTemplate-4a358f5d.js index 813f6f4..e887a17 100644 --- a/apps/jingrow/frontend/dist/assets/CreateAppTemplate-52a940f0.js +++ b/apps/jingrow/frontend/dist/assets/CreateAppTemplate-4a358f5d.js @@ -1 +1 @@ -import{I as x}from"./iconify-b5ab1212.js";import{d as S,u as M,r as b,t as a,e as F,f as u,g as i,j as t,h as e,w as l,D as G,y as V,x as o,l as P,p as v,a0 as j}from"./index-b37e64ca.js";import{_ as R}from"./_plugin-vue_export-helper-c27b6911.js";const Y={class:"create-app-template"},O={class:"page-header"},$={class:"header-content"},H={class:"header-text"},J={class:"description"},K={class:"content"},Q={class:"form-actions"},W={class:"flex items-center gap-2"},X=S({__name:"CreateAppTemplate",setup(Z){const h=M(),A=b(),g=b(!1),d=b(null),p=b({appName:"",appTitle:"",publisher:"Your Company",description:"",email:"support@yourcompany.com",license:"MIT"}),w=[{label:"MIT",value:"MIT"},{label:"Apache 2.0",value:"Apache 2.0"},{label:"GPL v3",value:"GPL v3"},{label:"AGPL v3",value:"AGPL v3"},{label:"BSD 3-Clause",value:"BSD 3-Clause"}],k={appName:[{required:!0,message:a("App name is required")},{pattern:/^[a-z][a-z0-9_]*$/,message:a("App name must start with lowercase letter and contain only lowercase letters, numbers, and underscores")}],appTitle:[{required:!0,message:a("App title is required")}],publisher:[{required:!0,message:a("Publisher is required")}],description:[{required:!0,message:a("Description is required")}],email:[{required:!0,message:a("Email is required")},{type:"email",message:a("Please enter a valid email")}]},q=()=>{p.value.appName?(p.value.appName=p.value.appName.toLowerCase().replace(/\s+/g,"_").replace(/[^a-z0-9_]/g,""),p.value.appTitle=p.value.appName.split("_").map(m=>m.charAt(0).toUpperCase()+m.slice(1)).join(" ")):p.value.appTitle=""},I=()=>{p.value={appName:"",appTitle:"",publisher:"Your Company",description:"",email:"support@yourcompany.com",license:"MIT"},d.value=null},B=async()=>{var m,n,c;try{await((m=A.value)==null?void 0:m.validate()),g.value=!0;const s=await j.post("/jingrow/dev/create-app-template",p.value);s.data.success?(d.value=s.data,h.success(a("App template created successfully"))):h.error(s.data.error||a("Failed to create app template"))}catch(s){console.error("Create app template error:",s),h.error(((c=(n=s.response)==null?void 0:n.data)==null?void 0:c.detail)||s.message||a("Failed to create app template"))}finally{g.value=!1}};return(m,n)=>{const c=o("n-input"),s=o("n-form-item"),_=o("n-form-item-grid-item"),E=o("n-select"),U=o("n-grid"),T=o("n-button"),C=o("n-icon"),z=o("n-space"),D=o("n-form"),N=o("n-card"),f=o("n-descriptions-item"),y=o("n-text"),L=o("n-descriptions");return P(),F("div",Y,[u("div",O,[u("div",$,[u("div",H,[u("h1",null,i(t(a)("Create App Template")),1),u("p",J,i(t(a)("Create a modern, efficient template app")),1)])])]),u("div",K,[e(N,null,{default:l(()=>[e(D,{ref_key:"formRef",ref:A,model:p.value,rules:k,"label-placement":"left","label-width":"140px",size:"large"},{default:l(()=>[e(U,{cols:3,"x-gap":24,responsive:"screen"},{default:l(()=>[e(_,null,{default:l(()=>[e(s,{label:t(a)("App Name"),path:"appName"},{default:l(()=>[e(c,{value:p.value.appName,"onUpdate:value":n[0]||(n[0]=r=>p.value.appName=r),placeholder:t(a)("Enter app name (spaces auto-converted to underscores)"),onInput:q},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),e(_,null,{default:l(()=>[e(s,{label:t(a)("App Title"),path:"appTitle"},{default:l(()=>[e(c,{value:p.value.appTitle,"onUpdate:value":n[1]||(n[1]=r=>p.value.appTitle=r),placeholder:t(a)("App title (auto-generated from app name)")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),e(_,null,{default:l(()=>[e(s,{label:t(a)("Publisher"),path:"publisher"},{default:l(()=>[e(c,{value:p.value.publisher,"onUpdate:value":n[2]||(n[2]=r=>p.value.publisher=r),placeholder:t(a)("Enter publisher name")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),e(_,null,{default:l(()=>[e(s,{label:t(a)("Description"),path:"description"},{default:l(()=>[e(c,{value:p.value.description,"onUpdate:value":n[3]||(n[3]=r=>p.value.description=r),placeholder:t(a)("Enter app description")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),e(_,null,{default:l(()=>[e(s,{label:t(a)("Email"),path:"email"},{default:l(()=>[e(c,{value:p.value.email,"onUpdate:value":n[4]||(n[4]=r=>p.value.email=r),placeholder:t(a)("Enter support email")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),e(_,null,{default:l(()=>[e(s,{label:t(a)("License"),path:"license"},{default:l(()=>[e(E,{value:p.value.license,"onUpdate:value":n[5]||(n[5]=r=>p.value.license=r),options:w,placeholder:t(a)("Select license")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1}),u("div",Q,[e(z,null,{default:l(()=>[e(T,{onClick:I,size:"large"},{default:l(()=>[v(i(t(a)("Reset")),1)]),_:1}),e(T,{type:"primary",size:"large",loading:g.value,onClick:B},{icon:l(()=>[e(C,null,{default:l(()=>[e(t(x),{icon:"tabler:app-window"})]),_:1})]),default:l(()=>[v(" "+i(t(a)("Create App Template")),1)]),_:1},8,["loading"])]),_:1})])]),_:1},8,["model"])]),_:1}),d.value?(P(),G(N,{key:0,class:"mt-6"},{header:l(()=>[u("div",W,[e(C,{color:"#18a058"},{default:l(()=>[e(t(x),{icon:"tabler:check"})]),_:1}),u("span",null,i(t(a)("App Template Created Successfully")),1)])]),default:l(()=>[e(L,{column:2,bordered:""},{default:l(()=>[e(f,{label:t(a)("App Name")},{default:l(()=>[v(i(d.value.appName),1)]),_:1},8,["label"]),e(f,{label:t(a)("App Path")},{default:l(()=>[e(y,{code:""},{default:l(()=>[v(i(d.value.appPath),1)]),_:1})]),_:1},8,["label"]),e(f,{label:t(a)("Backend Path")},{default:l(()=>[e(y,{code:""},{default:l(()=>[v(i(d.value.backendPath),1)]),_:1})]),_:1},8,["label"]),e(f,{label:t(a)("Frontend Path")},{default:l(()=>[e(y,{code:""},{default:l(()=>[v(i(d.value.frontendPath),1)]),_:1})]),_:1},8,["label"])]),_:1})]),_:1})):V("",!0)])])}}});const te=R(X,[["__scopeId","data-v-17fe66dc"]]);export{te as default}; +import{I as x}from"./iconify-30ae5ba5.js";import{d as S,u as M,r as b,t as a,e as F,f as u,g as i,j as t,h as e,w as l,D as G,y as V,x as o,l as P,p as v,a0 as j}from"./index-7b482730.js";import{_ as R}from"./_plugin-vue_export-helper-c27b6911.js";const Y={class:"create-app-template"},O={class:"page-header"},$={class:"header-content"},H={class:"header-text"},J={class:"description"},K={class:"content"},Q={class:"form-actions"},W={class:"flex items-center gap-2"},X=S({__name:"CreateAppTemplate",setup(Z){const h=M(),A=b(),g=b(!1),d=b(null),p=b({appName:"",appTitle:"",publisher:"Your Company",description:"",email:"support@yourcompany.com",license:"MIT"}),w=[{label:"MIT",value:"MIT"},{label:"Apache 2.0",value:"Apache 2.0"},{label:"GPL v3",value:"GPL v3"},{label:"AGPL v3",value:"AGPL v3"},{label:"BSD 3-Clause",value:"BSD 3-Clause"}],k={appName:[{required:!0,message:a("App name is required")},{pattern:/^[a-z][a-z0-9_]*$/,message:a("App name must start with lowercase letter and contain only lowercase letters, numbers, and underscores")}],appTitle:[{required:!0,message:a("App title is required")}],publisher:[{required:!0,message:a("Publisher is required")}],description:[{required:!0,message:a("Description is required")}],email:[{required:!0,message:a("Email is required")},{type:"email",message:a("Please enter a valid email")}]},q=()=>{p.value.appName?(p.value.appName=p.value.appName.toLowerCase().replace(/\s+/g,"_").replace(/[^a-z0-9_]/g,""),p.value.appTitle=p.value.appName.split("_").map(m=>m.charAt(0).toUpperCase()+m.slice(1)).join(" ")):p.value.appTitle=""},I=()=>{p.value={appName:"",appTitle:"",publisher:"Your Company",description:"",email:"support@yourcompany.com",license:"MIT"},d.value=null},B=async()=>{var m,n,c;try{await((m=A.value)==null?void 0:m.validate()),g.value=!0;const s=await j.post("/jingrow/dev/create-app-template",p.value);s.data.success?(d.value=s.data,h.success(a("App template created successfully"))):h.error(s.data.error||a("Failed to create app template"))}catch(s){console.error("Create app template error:",s),h.error(((c=(n=s.response)==null?void 0:n.data)==null?void 0:c.detail)||s.message||a("Failed to create app template"))}finally{g.value=!1}};return(m,n)=>{const c=o("n-input"),s=o("n-form-item"),_=o("n-form-item-grid-item"),E=o("n-select"),U=o("n-grid"),T=o("n-button"),C=o("n-icon"),z=o("n-space"),D=o("n-form"),N=o("n-card"),f=o("n-descriptions-item"),y=o("n-text"),L=o("n-descriptions");return P(),F("div",Y,[u("div",O,[u("div",$,[u("div",H,[u("h1",null,i(t(a)("Create App Template")),1),u("p",J,i(t(a)("Create a modern, efficient template app")),1)])])]),u("div",K,[e(N,null,{default:l(()=>[e(D,{ref_key:"formRef",ref:A,model:p.value,rules:k,"label-placement":"left","label-width":"140px",size:"large"},{default:l(()=>[e(U,{cols:3,"x-gap":24,responsive:"screen"},{default:l(()=>[e(_,null,{default:l(()=>[e(s,{label:t(a)("App Name"),path:"appName"},{default:l(()=>[e(c,{value:p.value.appName,"onUpdate:value":n[0]||(n[0]=r=>p.value.appName=r),placeholder:t(a)("Enter app name (spaces auto-converted to underscores)"),onInput:q},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),e(_,null,{default:l(()=>[e(s,{label:t(a)("App Title"),path:"appTitle"},{default:l(()=>[e(c,{value:p.value.appTitle,"onUpdate:value":n[1]||(n[1]=r=>p.value.appTitle=r),placeholder:t(a)("App title (auto-generated from app name)")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),e(_,null,{default:l(()=>[e(s,{label:t(a)("Publisher"),path:"publisher"},{default:l(()=>[e(c,{value:p.value.publisher,"onUpdate:value":n[2]||(n[2]=r=>p.value.publisher=r),placeholder:t(a)("Enter publisher name")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),e(_,null,{default:l(()=>[e(s,{label:t(a)("Description"),path:"description"},{default:l(()=>[e(c,{value:p.value.description,"onUpdate:value":n[3]||(n[3]=r=>p.value.description=r),placeholder:t(a)("Enter app description")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),e(_,null,{default:l(()=>[e(s,{label:t(a)("Email"),path:"email"},{default:l(()=>[e(c,{value:p.value.email,"onUpdate:value":n[4]||(n[4]=r=>p.value.email=r),placeholder:t(a)("Enter support email")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),e(_,null,{default:l(()=>[e(s,{label:t(a)("License"),path:"license"},{default:l(()=>[e(E,{value:p.value.license,"onUpdate:value":n[5]||(n[5]=r=>p.value.license=r),options:w,placeholder:t(a)("Select license")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1}),u("div",Q,[e(z,null,{default:l(()=>[e(T,{onClick:I,size:"large"},{default:l(()=>[v(i(t(a)("Reset")),1)]),_:1}),e(T,{type:"primary",size:"large",loading:g.value,onClick:B},{icon:l(()=>[e(C,null,{default:l(()=>[e(t(x),{icon:"tabler:app-window"})]),_:1})]),default:l(()=>[v(" "+i(t(a)("Create App Template")),1)]),_:1},8,["loading"])]),_:1})])]),_:1},8,["model"])]),_:1}),d.value?(P(),G(N,{key:0,class:"mt-6"},{header:l(()=>[u("div",W,[e(C,{color:"#18a058"},{default:l(()=>[e(t(x),{icon:"tabler:check"})]),_:1}),u("span",null,i(t(a)("App Template Created Successfully")),1)])]),default:l(()=>[e(L,{column:2,bordered:""},{default:l(()=>[e(f,{label:t(a)("App Name")},{default:l(()=>[v(i(d.value.appName),1)]),_:1},8,["label"]),e(f,{label:t(a)("App Path")},{default:l(()=>[e(y,{code:""},{default:l(()=>[v(i(d.value.appPath),1)]),_:1})]),_:1},8,["label"]),e(f,{label:t(a)("Backend Path")},{default:l(()=>[e(y,{code:""},{default:l(()=>[v(i(d.value.backendPath),1)]),_:1})]),_:1},8,["label"]),e(f,{label:t(a)("Frontend Path")},{default:l(()=>[e(y,{code:""},{default:l(()=>[v(i(d.value.frontendPath),1)]),_:1})]),_:1},8,["label"])]),_:1})]),_:1})):V("",!0)])])}}});const te=R(X,[["__scopeId","data-v-17fe66dc"]]);export{te as default}; diff --git a/apps/jingrow/frontend/dist/assets/CreatePagetypeTemplate-779a55b4.js b/apps/jingrow/frontend/dist/assets/CreatePagetypeTemplate-270dec5c.js similarity index 79% rename from apps/jingrow/frontend/dist/assets/CreatePagetypeTemplate-779a55b4.js rename to apps/jingrow/frontend/dist/assets/CreatePagetypeTemplate-270dec5c.js index 3b4360c..c11e42c 100644 --- a/apps/jingrow/frontend/dist/assets/CreatePagetypeTemplate-779a55b4.js +++ b/apps/jingrow/frontend/dist/assets/CreatePagetypeTemplate-270dec5c.js @@ -1,2 +1,2 @@ -import{_ as z}from"./Attach-8276bb81.js";import{_ as K}from"./AttachImage-e6f5c274.js";import{_ as Q}from"./Autocomplete-7b31bbab.js";import{_ as X}from"./Barcode-719e9569.js";import{_ as Y}from"./Button-a612ab31.js";import{_ as ee}from"./Check-fb5a1570.js";import{_ as te}from"./Code-01463ed1.js";import{_ as oe}from"./Color-2263ebad.js";import{_ as ae}from"./Comment-4474028c.js";import{_ as re}from"./CronEditor-8edd4409.js";import{_ as le}from"./Currency-ea3fff6b.js";import{_ as se}from"./Data-b998e8ff.js";import{_ as _e}from"./Date-d9d7fa30.js";import{_ as pe}from"./DateRange-10631955.js";import{_ as ne}from"./Datetime-07afed2b.js";import{_ as ie}from"./Duration-0b5f170c.js";import{_ as ce}from"./DynamicLink-07536e48.js";import{_ as ue}from"./Float-8c96ff2b.js";import{_ as ve}from"./Geolocation-aba67e02.js";import{_ as me}from"./HTML-f1d2e10e.js";import{_ as de}from"./HTMLEditor-2c00cb22.js";import{_ as fe}from"./Heading-7bb40e5b.js";import{_ as ge}from"./Icon-d4eb6846.js";import{_ as ye}from"./Image-85b37f18.js";import{_ as be}from"./Int-cb384090.js";import{_ as he}from"./JSON-58e60940.js";import{_ as Te}from"./Jeditor-daae2995.js";import{_ as ke}from"./Link-343da71e.js";import{_ as Ce}from"./LongText-34963ee2.js";import{_ as we}from"./MarkdownEditor-e284f6a7.js";import{_ as Ne}from"./MultiCheck-06484c13.js";import{_ as Se}from"./MultiSelect-a8b10d4a.js";import{_ as Fe}from"./MultiSelectList-7399647b.js";import{_ as Pe}from"./MultiSelectPills-3dd80529.js";import{_ as Oe}from"./Password-9db4e189.js";import{_ as xe}from"./Percent-2e2456c4.js";import{_ as $e}from"./Phone-5865a10d.js";import{_ as Be}from"./Rating-a567e4d3.js";import{_ as Me}from"./Select-5b49c9cf.js";import{_ as De}from"./Signature-d2f5f930.js";import{_ as Le}from"./SmallText-b65f144b.js";import{_ as Ie}from"./Table-918c7db3.js";import{_ as Ee}from"./TableMultiSelect-7d19ef1f.js";import{_ as je}from"./Text-fd382873.js";import{_ as Ue}from"./TextEditor-82ec254b.js";import{_ as Ae}from"./Time-da0b8920.js";import{d as He,u as Re,r as m,c as x,t as l,e as g,h as s,w as u,j as o,l as v,q as Je,N as h,Z as j,ae as U,D as $,av as Ve,I as Ge,a3 as w,f as b,y,n as qe,p as We,g as d,U as Ze,a0 as B,a2 as M}from"./index-b37e64ca.js";import{_ as ze}from"./_plugin-vue_export-helper-c27b6911.js";import"./common-0beb20f4.js";import"./index-2d2e8bf3.js";import"./iconify-b5ab1212.js";import"./IconPicker-5c7938fe.js";import"./index-73986d31.js";import"./Jeditor.vue_vue_type_style_index_0_lang-27957db9.js";import"./slug-217ba005.js";import"./FieldRenderer.vue_vue_type_script_setup_true_lang-464d7d5a.js";import"./_commonjsHelpers-de833af9.js";const Ke={class:"page-dev-create-template"},Qe={class:"field-types-row"},Xe={class:"preview"},Ye={key:0},et={class:"path-preview"},tt={key:1},ot={key:0,class:"result"},at={key:0},rt={key:0},lt={key:1},st={key:1},_t={style:{color:"#ef4444"}},pt=He({__name:"CreatePagetypeTemplate",setup(nt){const C=Re(),N=m(!1),S=m(!1),f=m(null),D=m(null),e=m({pagetype:"",createFrontend:!1,createBackend:!0,frontendOptions:["toolbar"],fieldTypeNames:[]}),F=m([]),P=m([]),p=m(""),T=m("");(()=>{try{const r=Object.keys(Object.assign({"/src/core/pagetype/form/controls/Attach.vue":z,"/src/core/pagetype/form/controls/AttachImage.vue":K,"/src/core/pagetype/form/controls/Autocomplete.vue":Q,"/src/core/pagetype/form/controls/Barcode.vue":X,"/src/core/pagetype/form/controls/Button.vue":Y,"/src/core/pagetype/form/controls/Check.vue":ee,"/src/core/pagetype/form/controls/Code.vue":te,"/src/core/pagetype/form/controls/Color.vue":oe,"/src/core/pagetype/form/controls/Comment.vue":ae,"/src/core/pagetype/form/controls/CronEditor.vue":re,"/src/core/pagetype/form/controls/Currency.vue":le,"/src/core/pagetype/form/controls/Data.vue":se,"/src/core/pagetype/form/controls/Date.vue":_e,"/src/core/pagetype/form/controls/DateRange.vue":pe,"/src/core/pagetype/form/controls/Datetime.vue":ne,"/src/core/pagetype/form/controls/Duration.vue":ie,"/src/core/pagetype/form/controls/DynamicLink.vue":ce,"/src/core/pagetype/form/controls/Float.vue":ue,"/src/core/pagetype/form/controls/Geolocation.vue":ve,"/src/core/pagetype/form/controls/HTML.vue":me,"/src/core/pagetype/form/controls/HTMLEditor.vue":de,"/src/core/pagetype/form/controls/Heading.vue":fe,"/src/core/pagetype/form/controls/Icon.vue":ge,"/src/core/pagetype/form/controls/Image.vue":ye,"/src/core/pagetype/form/controls/Int.vue":be,"/src/core/pagetype/form/controls/JSON.vue":he,"/src/core/pagetype/form/controls/Jeditor.vue":Te,"/src/core/pagetype/form/controls/Link.vue":ke,"/src/core/pagetype/form/controls/LongText.vue":Ce,"/src/core/pagetype/form/controls/MarkdownEditor.vue":we,"/src/core/pagetype/form/controls/MultiCheck.vue":Ne,"/src/core/pagetype/form/controls/MultiSelect.vue":Se,"/src/core/pagetype/form/controls/MultiSelectList.vue":Fe,"/src/core/pagetype/form/controls/MultiSelectPills.vue":Pe,"/src/core/pagetype/form/controls/Password.vue":Oe,"/src/core/pagetype/form/controls/Percent.vue":xe,"/src/core/pagetype/form/controls/Phone.vue":$e,"/src/core/pagetype/form/controls/Rating.vue":Be,"/src/core/pagetype/form/controls/Select.vue":Me,"/src/core/pagetype/form/controls/Signature.vue":De,"/src/core/pagetype/form/controls/SmallText.vue":Le,"/src/core/pagetype/form/controls/Table.vue":Ie,"/src/core/pagetype/form/controls/TableMultiSelect.vue":Ee,"/src/core/pagetype/form/controls/Text.vue":je,"/src/core/pagetype/form/controls/TextEditor.vue":Ue,"/src/core/pagetype/form/controls/Time.vue":Ae})).map(t=>{var n;return((n=t.split("/").pop())==null?void 0:n.replace(".vue",""))||""}).filter(t=>t&&!t.startsWith("_"));P.value=r.map(t=>({label:t,value:t})).sort((t,n)=>t.label.localeCompare(n.label))}catch(a){console.warn("Failed to load field type options from filesystem:",a),P.value=["Attach","AttachImage","Autocomplete","Barcode","Button","Check","Code","Color","Comment","CronEditor","Currency","Data","Date","DateRange","Datetime","Duration","DynamicLink","Float","Geolocation","Heading","HTML","HTMLEditor","Icon","Image","Int","Jeditor","JSON","Link","LongText","MarkdownEditor","MultiCheck","MultiSelect","MultiSelectList","MultiSelectPills","Password","Percent","Phone","Rating","Select","Signature","SmallText","Table","TableMultiSelect","Text","TextEditor","Time"].map(r=>({label:r,value:r}))}})();const c=x(()=>J(e.value.pagetype||""));function A(a){return a?a.split(".").join("/").toLowerCase():""}const L=x(()=>{var r,t,n,i;if(!p.value||c.value==="")return"";const a=[];return(r=e.value.frontendOptions)!=null&&r.includes("toolbar")&&a.push(`apps/${p.value}/frontend/src/views/pagetype/${c.value}/${c.value}_toolbar.vue`),(t=e.value.frontendOptions)!=null&&t.includes("sidebar")&&a.push(`apps/${p.value}/frontend/src/views/pagetype/${c.value}/${c.value}_sidebar.vue`),(n=e.value.frontendOptions)!=null&&n.includes("page")&&a.push(`apps/${p.value}/frontend/src/views/pagetype/${c.value}/${c.value}.vue`),(i=e.value.frontendOptions)!=null&&i.includes("field_types")&&(e.value.fieldTypeNames&&e.value.fieldTypeNames.length>0?e.value.fieldTypeNames.forEach(_=>{a.push(`apps/${p.value}/frontend/src/views/pagetype/${c.value}/form/controls/${_}.vue`)}):a.push(`apps/${p.value}/frontend/src/views/pagetype/${c.value}/form/controls/`)),a.join(` +import{_ as z}from"./Attach-4627ede0.js";import{_ as K}from"./AttachImage-c5181b42.js";import{_ as Q}from"./Autocomplete-e76c53a6.js";import{_ as X}from"./Barcode-b3bbd4be.js";import{_ as Y}from"./Button-c2adfcfc.js";import{_ as ee}from"./Check-24e0c7d2.js";import{_ as te}from"./Code-a486a048.js";import{_ as oe}from"./Color-5d20723d.js";import{_ as ae}from"./Comment-dc20eab5.js";import{_ as re}from"./CronEditor-dfbcf304.js";import{_ as le}from"./Currency-e7293724.js";import{_ as se}from"./Data-7934e730.js";import{_ as _e}from"./Date-763305af.js";import{_ as pe}from"./DateRange-74c289f4.js";import{_ as ne}from"./Datetime-5b4889cc.js";import{_ as ie}from"./Duration-d579c52e.js";import{_ as ce}from"./DynamicLink-32decd06.js";import{_ as ue}from"./Float-0aad1a66.js";import{_ as ve}from"./Geolocation-373e65fa.js";import{_ as me}from"./HTML-1a069d19.js";import{_ as de}from"./HTMLEditor-1c6a4caf.js";import{_ as fe}from"./Heading-91fede8f.js";import{_ as ge}from"./Icon-cfe49052.js";import{_ as ye}from"./Image-0feee1f3.js";import{_ as be}from"./Int-88866b25.js";import{_ as he}from"./JSON-8353e669.js";import{_ as Te}from"./Jeditor-482b2d2d.js";import{_ as ke}from"./Link-e3a40d9c.js";import{_ as Ce}from"./LongText-6a20c0d8.js";import{_ as we}from"./MarkdownEditor-bb608218.js";import{_ as Ne}from"./MultiCheck-3ad7391b.js";import{_ as Se}from"./MultiSelect-17bab1f5.js";import{_ as Fe}from"./MultiSelectList-cb3c53c2.js";import{_ as Pe}from"./MultiSelectPills-2c3638ce.js";import{_ as Oe}from"./Password-1628507d.js";import{_ as xe}from"./Percent-7a55d50d.js";import{_ as $e}from"./Phone-183c9dac.js";import{_ as Be}from"./Rating-c3e83385.js";import{_ as Me}from"./Select-27d3c7bc.js";import{_ as De}from"./Signature-5b7271c1.js";import{_ as Le}from"./SmallText-737cdfbd.js";import{_ as Ie}from"./Table-0955984f.js";import{_ as Ee}from"./TableMultiSelect-4a586fb2.js";import{_ as je}from"./Text-5d36f57e.js";import{_ as Ue}from"./TextEditor-bc146615.js";import{_ as Ae}from"./Time-693f64a3.js";import{d as He,u as Re,r as m,c as x,t as l,e as g,h as s,w as u,j as o,l as v,q as Je,N as h,Z as j,ae as U,D as $,av as Ve,I as Ge,a3 as w,f as b,y,n as qe,p as We,g as d,U as Ze,a0 as B,a2 as M}from"./index-7b482730.js";import{_ as ze}from"./_plugin-vue_export-helper-c27b6911.js";import"./common-a0065b74.js";import"./index-2d2e8bf3.js";import"./iconify-30ae5ba5.js";import"./IconPicker-2d07cad1.js";import"./index-2fe8616a.js";import"./Jeditor.vue_vue_type_style_index_0_lang-1cf7520f.js";import"./slug-c378c25f.js";import"./FieldRenderer.vue_vue_type_script_setup_true_lang-7adedf0d.js";import"./_commonjsHelpers-de833af9.js";const Ke={class:"page-dev-create-template"},Qe={class:"field-types-row"},Xe={class:"preview"},Ye={key:0},et={class:"path-preview"},tt={key:1},ot={key:0,class:"result"},at={key:0},rt={key:0},lt={key:1},st={key:1},_t={style:{color:"#ef4444"}},pt=He({__name:"CreatePagetypeTemplate",setup(nt){const C=Re(),N=m(!1),S=m(!1),f=m(null),D=m(null),e=m({pagetype:"",createFrontend:!1,createBackend:!0,frontendOptions:["toolbar"],fieldTypeNames:[]}),F=m([]),P=m([]),p=m(""),T=m("");(()=>{try{const r=Object.keys(Object.assign({"/src/core/pagetype/form/controls/Attach.vue":z,"/src/core/pagetype/form/controls/AttachImage.vue":K,"/src/core/pagetype/form/controls/Autocomplete.vue":Q,"/src/core/pagetype/form/controls/Barcode.vue":X,"/src/core/pagetype/form/controls/Button.vue":Y,"/src/core/pagetype/form/controls/Check.vue":ee,"/src/core/pagetype/form/controls/Code.vue":te,"/src/core/pagetype/form/controls/Color.vue":oe,"/src/core/pagetype/form/controls/Comment.vue":ae,"/src/core/pagetype/form/controls/CronEditor.vue":re,"/src/core/pagetype/form/controls/Currency.vue":le,"/src/core/pagetype/form/controls/Data.vue":se,"/src/core/pagetype/form/controls/Date.vue":_e,"/src/core/pagetype/form/controls/DateRange.vue":pe,"/src/core/pagetype/form/controls/Datetime.vue":ne,"/src/core/pagetype/form/controls/Duration.vue":ie,"/src/core/pagetype/form/controls/DynamicLink.vue":ce,"/src/core/pagetype/form/controls/Float.vue":ue,"/src/core/pagetype/form/controls/Geolocation.vue":ve,"/src/core/pagetype/form/controls/HTML.vue":me,"/src/core/pagetype/form/controls/HTMLEditor.vue":de,"/src/core/pagetype/form/controls/Heading.vue":fe,"/src/core/pagetype/form/controls/Icon.vue":ge,"/src/core/pagetype/form/controls/Image.vue":ye,"/src/core/pagetype/form/controls/Int.vue":be,"/src/core/pagetype/form/controls/JSON.vue":he,"/src/core/pagetype/form/controls/Jeditor.vue":Te,"/src/core/pagetype/form/controls/Link.vue":ke,"/src/core/pagetype/form/controls/LongText.vue":Ce,"/src/core/pagetype/form/controls/MarkdownEditor.vue":we,"/src/core/pagetype/form/controls/MultiCheck.vue":Ne,"/src/core/pagetype/form/controls/MultiSelect.vue":Se,"/src/core/pagetype/form/controls/MultiSelectList.vue":Fe,"/src/core/pagetype/form/controls/MultiSelectPills.vue":Pe,"/src/core/pagetype/form/controls/Password.vue":Oe,"/src/core/pagetype/form/controls/Percent.vue":xe,"/src/core/pagetype/form/controls/Phone.vue":$e,"/src/core/pagetype/form/controls/Rating.vue":Be,"/src/core/pagetype/form/controls/Select.vue":Me,"/src/core/pagetype/form/controls/Signature.vue":De,"/src/core/pagetype/form/controls/SmallText.vue":Le,"/src/core/pagetype/form/controls/Table.vue":Ie,"/src/core/pagetype/form/controls/TableMultiSelect.vue":Ee,"/src/core/pagetype/form/controls/Text.vue":je,"/src/core/pagetype/form/controls/TextEditor.vue":Ue,"/src/core/pagetype/form/controls/Time.vue":Ae})).map(t=>{var n;return((n=t.split("/").pop())==null?void 0:n.replace(".vue",""))||""}).filter(t=>t&&!t.startsWith("_"));P.value=r.map(t=>({label:t,value:t})).sort((t,n)=>t.label.localeCompare(n.label))}catch(a){console.warn("Failed to load field type options from filesystem:",a),P.value=["Attach","AttachImage","Autocomplete","Barcode","Button","Check","Code","Color","Comment","CronEditor","Currency","Data","Date","DateRange","Datetime","Duration","DynamicLink","Float","Geolocation","Heading","HTML","HTMLEditor","Icon","Image","Int","Jeditor","JSON","Link","LongText","MarkdownEditor","MultiCheck","MultiSelect","MultiSelectList","MultiSelectPills","Password","Percent","Phone","Rating","Select","Signature","SmallText","Table","TableMultiSelect","Text","TextEditor","Time"].map(r=>({label:r,value:r}))}})();const c=x(()=>J(e.value.pagetype||""));function A(a){return a?a.split(".").join("/").toLowerCase():""}const L=x(()=>{var r,t,n,i;if(!p.value||c.value==="")return"";const a=[];return(r=e.value.frontendOptions)!=null&&r.includes("toolbar")&&a.push(`apps/${p.value}/frontend/src/views/pagetype/${c.value}/${c.value}_toolbar.vue`),(t=e.value.frontendOptions)!=null&&t.includes("sidebar")&&a.push(`apps/${p.value}/frontend/src/views/pagetype/${c.value}/${c.value}_sidebar.vue`),(n=e.value.frontendOptions)!=null&&n.includes("page")&&a.push(`apps/${p.value}/frontend/src/views/pagetype/${c.value}/${c.value}.vue`),(i=e.value.frontendOptions)!=null&&i.includes("field_types")&&(e.value.fieldTypeNames&&e.value.fieldTypeNames.length>0?e.value.fieldTypeNames.forEach(_=>{a.push(`apps/${p.value}/frontend/src/views/pagetype/${c.value}/form/controls/${_}.vue`)}):a.push(`apps/${p.value}/frontend/src/views/pagetype/${c.value}/form/controls/`)),a.join(` `)}),I=x(()=>p.value&&c.value!==""?`apps/${p.value}/${p.value}/${A(T.value)}/pagetype/${c.value}/${c.value}.py`:""),H={pagetype:[{required:!0,message:l("Please select PageType")}]};async function R(a){var r,t,n;if(!(!a||F.value.length)){N.value=!0;try{const _=((r=(await B.get("/api/data/PageType",{params:{order_by:"modified desc",limit_page_length:1e3},headers:M(),withCredentials:!0})).data)==null?void 0:r.data)||[];F.value=_.map(k=>({label:k.name,value:k.name}))}catch(i){C.error(((n=(t=i==null?void 0:i.response)==null?void 0:t.data)==null?void 0:n.message)||(i==null?void 0:i.message)||"Failed to load")}finally{N.value=!1}}}function J(a){return a.replace(/\s+/g,"_").replace(/-+/g,"_").toLowerCase()}function V(a){var r;a&&!((r=e.value.frontendOptions)!=null&&r.length)?e.value.frontendOptions=["toolbar"]:a||(e.value.frontendOptions=[],e.value.fieldTypeNames=[])}function G(){}function q(a){a.includes("field_types")||(e.value.fieldTypeNames=[])}async function W(){var a;if(p.value="",T.value="",!!e.value.pagetype)try{const t=((a=(await B.get("/jingrow/get-module-app",{params:{pagetype:e.value.pagetype},headers:M(),withCredentials:!0})).data)==null?void 0:a.message)||{};t!=null&&t.success&&(p.value=t.app||"",T.value=t.module||"")}catch{}}async function Z(){var a;(a=D.value)==null||a.validate(async r=>{var t,n,i;if(!r){S.value=!0;try{const _=await B.post("/jingrow/dev/create-pagetype-template",{pagetype:e.value.pagetype,app:p.value,module:T.value,create_frontend:e.value.createFrontend,create_backend:e.value.createBackend,frontend_options:e.value.frontendOptions||[],field_type_names:e.value.fieldTypeNames||[]},{headers:M(),withCredentials:!0});if(f.value=_.data,(t=_.data)!=null&&t.success){const{frontend_exists:k,backend_exists:E}=_.data;if(k||E){const O=[];k&&O.push("前端文件"),E&&O.push("后端文件"),C.warning(`${O.join("、")}已存在`)}else C.success(l("Created successfully"))}}catch(_){C.error(((i=(n=_==null?void 0:_.response)==null?void 0:n.data)==null?void 0:i.detail)||(_==null?void 0:_.message)||"Failed")}finally{S.value=!1}}})}return(a,r)=>(v(),g("div",Ke,[s(o(Ze),{title:o(l)("Create PageType Template Files")},{default:u(()=>[s(o(Je),{model:e.value,rules:H,ref_key:"formRef",ref:D,"label-width":"120"},{default:u(()=>[s(o(h),{label:o(l)("PageType"),path:"pagetype"},{default:u(()=>[s(o(j),{value:e.value.pagetype,"onUpdate:value":[r[0]||(r[0]=t=>e.value.pagetype=t),W],options:F.value,filterable:"",clearable:"",loading:N.value,placeholder:o(l)("Select PageType"),"onUpdate:show":R},null,8,["value","options","loading","placeholder"])]),_:1},8,["label"]),s(o(h),{label:o(l)("Create Frontend")},{default:u(()=>[s(o(U),{value:e.value.createFrontend,"onUpdate:value":[r[1]||(r[1]=t=>e.value.createFrontend=t),V]},null,8,["value"])]),_:1},8,["label"]),e.value.createFrontend?(v(),$(o(h),{key:0,label:"",style:{"margin-top":"0"}},{default:u(()=>[s(o(Ve),{value:e.value.frontendOptions,"onUpdate:value":[r[3]||(r[3]=t=>e.value.frontendOptions=t),q]},{default:u(()=>[s(o(Ge),{vertical:""},{default:u(()=>[s(o(w),{value:"toolbar",label:o(l)("Toolbar")},null,8,["label"]),s(o(w),{value:"sidebar",label:o(l)("Sidebar")},null,8,["label"]),b("div",Qe,[s(o(w),{value:"field_types",label:o(l)("Field Types")},null,8,["label"]),e.value.frontendOptions.includes("field_types")?(v(),$(o(j),{key:0,value:e.value.fieldTypeNames,"onUpdate:value":[r[2]||(r[2]=t=>e.value.fieldTypeNames=t),G],options:P.value,multiple:"",filterable:"",placeholder:o(l)("Select Field Types"),style:{width:"200px","margin-left":"16px"}},null,8,["value","options","placeholder"])):y("",!0)]),s(o(w),{value:"page",label:o(l)("Page")},null,8,["label"])]),_:1})]),_:1},8,["value"])]),_:1})):y("",!0),s(o(h),{label:o(l)("Create Backend")},{default:u(()=>[s(o(U),{value:e.value.createBackend,"onUpdate:value":r[4]||(r[4]=t=>e.value.createBackend=t)},null,8,["value"])]),_:1},8,["label"]),s(o(h),null,{default:u(()=>[s(o(qe),{type:"primary",loading:S.value,onClick:Z},{default:u(()=>[We(d(o(l)("Create")),1)]),_:1},8,["loading"])]),_:1}),p.value||T.value?(v(),$(o(h),{key:1,label:o(l)("Preview")},{default:u(()=>[b("div",Xe,[e.value.createFrontend&&L.value?(v(),g("div",Ye,[b("div",null,[b("strong",null,d(o(l)("Frontend"))+":",1)]),b("pre",et,d(L.value),1)])):y("",!0),e.value.createBackend&&I.value?(v(),g("div",tt,d(o(l)("Backend"))+": "+d(I.value),1)):y("",!0)])]),_:1},8,["label"])):y("",!0)]),_:1},8,["model"]),f.value?(v(),g("div",ot,[f.value.success?(v(),g("div",at,[b("p",null,d(o(l)("Created successfully")),1),f.value.frontend_path?(v(),g("p",rt,"Frontend: "+d(f.value.frontend_path),1)):y("",!0),f.value.backend_path?(v(),g("p",lt,"Backend: "+d(f.value.backend_path),1)):y("",!0)])):(v(),g("div",st,[b("p",_t,d(f.value.message),1)]))])):y("",!0)]),_:1},8,["title"])]))}});const mo=ze(pt,[["__scopeId","data-v-28bb922d"]]);export{mo as default}; diff --git a/apps/jingrow/frontend/dist/assets/CronEditor-8edd4409.js b/apps/jingrow/frontend/dist/assets/CronEditor-dfbcf304.js similarity index 99% rename from apps/jingrow/frontend/dist/assets/CronEditor-8edd4409.js rename to apps/jingrow/frontend/dist/assets/CronEditor-dfbcf304.js index 272a48c..72a4585 100644 --- a/apps/jingrow/frontend/dist/assets/CronEditor-8edd4409.js +++ b/apps/jingrow/frontend/dist/assets/CronEditor-dfbcf304.js @@ -1 +1 @@ -import{d as D,c as M,r as g,M as O,o as L,e as v,p as u,g as V,y as c,f as o,a4 as p,b1 as T,b2 as x,a5 as _,Y as E,l as m}from"./index-b37e64ca.js";import{_ as Y}from"./_plugin-vue_export-helper-c27b6911.js";const F={key:0,class:"field-label"},G={key:0,class:"required"},J={class:"cron-editor-modern"},K={class:"cron-type-container"},Q={key:0,class:"cron-params"},R={key:0,class:"param-group"},W={key:1,class:"param-group"},X={key:2,class:"param-group"},Z={key:3,class:"param-group"},ee={key:4,class:"param-group"},te={key:1,class:"cron-preview"},ae={key:0,class:"cron-text"},ne=["disabled"],oe={class:"cron-toggle-container"},ue={key:2,class:"cron-advanced"},le=["name","value"],se=D({__name:"CronEditor",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{},modelValue:{default:"* * * * *"},name:{default:"trigger_time"}},emits:["update:modelValue"],setup(H,{emit:N}){const r=H,S=M(()=>{var t;return((t=r.df)==null?void 0:t.label_layout)||"vertical"}),C=N,l=g(""),I=g(!1),k=g(!1),$=g(!1),w=g(!1),a=g({nMinute:5,nHour:1,hour:0,minute:0,weekday:0,day:1}),s=g(r.modelValue||"* * * * *"),U=M(()=>A(s.value)),B=M(()=>/^\s*([0-9\*\/\-,]+\s+){4,6}[0-9\*\/\-,]+\s*$/.test(s.value)),A=t=>{var e,b;if(t==="* * * * *")return"每分钟";if(/^\*\/(\d+) \* \* \* \*$/.test(t))return`每${(e=t.match(/^\*\/(\d+)/))==null?void 0:e[1]}分钟`;if(t==="0 * * * *")return"每小时";if(/^0 \*\/(\d+) \* \* \*$/.test(t))return`每${(b=t.match(/^0 \*\/(\d+)/))==null?void 0:b[1]}小时`;if(/^\d+ \d+ \* \* \*$/.test(t)){const[d,i]=t.split(" ");return`每天 ${i}时${d}分`}if(/^\d+ \d+ \* \* \d+$/.test(t)){const[d,i,,,f]=t.split(" ");return`每${["周日","周一","周二","周三","周四","周五","周六"][parseInt(f)||0]} ${i}时${d}分`}if(/^\d+ \d+ \d+ \* \*$/.test(t)){const[d,i,f]=t.split(" ");return`每月${f}日 ${i}时${d}分`}return""},y=()=>{let t="";switch(l.value){case"every_minute":t="* * * * *";break;case"every_n_minute":t=`*/${a.value.nMinute} * * * *`;break;case"every_hour":t="0 * * * *";break;case"every_n_hour":t=`0 */${a.value.nHour} * * *`;break;case"every_day":t=`${a.value.minute} ${a.value.hour} * * *`;break;case"every_week":t=`${a.value.minute} ${a.value.hour} * * ${a.value.weekday}`;break;case"every_month":t=`${a.value.minute} ${a.value.hour} ${a.value.day} * *`;break;default:t="* * * * *"}s.value=t,C("update:modelValue",t)},P=()=>{l.value?(I.value=!0,k.value=!0,$.value=!1,y()):(I.value=!1,s.value&&s.value,k.value=!0)},j=()=>{$.value=!$.value,$.value?I.value=!1:I.value=!0},q=()=>{C("update:modelValue",s.value)},z=async()=>{try{await navigator.clipboard.writeText(s.value),w.value=!0,setTimeout(()=>{w.value=!1},1200)}catch(t){console.error("复制失败:",t)}},h=t=>{if(!t||t==="* * * * *")return;const e=t.match(/^\*\/(\d+) \* \* \* \*$/);if(e){l.value="every_n_minute",a.value.nMinute=parseInt(e[1]);return}const b=t.match(/^0 \*\/(\d+) \* \* \*$/);if(b){l.value="every_n_hour",a.value.nHour=parseInt(b[1]);return}const d=t.match(/^(\d+) (\d+) \* \* \*$/);if(d){l.value="every_day",a.value.minute=parseInt(d[1]),a.value.hour=parseInt(d[2]);return}const i=t.match(/^(\d+) (\d+) \* \* (\d+)$/);if(i){l.value="every_week",a.value.minute=parseInt(i[1]),a.value.hour=parseInt(i[2]),a.value.weekday=parseInt(i[3]);return}const f=t.match(/^(\d+) (\d+) (\d+) \* \*$/);if(f){l.value="every_month",a.value.minute=parseInt(f[1]),a.value.hour=parseInt(f[2]),a.value.day=parseInt(f[3]);return}$.value=!0};return O(()=>r.modelValue,t=>{t&&t!==s.value&&(s.value=t,h(t),t&&t!=="* * * * *"&&(k.value=!0))}),L(()=>{s.value=r.modelValue||"* * * * *",r.modelValue&&r.modelValue!=="* * * * *"&&h(r.modelValue),k.value=!0}),(t,e)=>{var b,d,i,f;return m(),v("div",{class:E(["field-wrapper",`layout-${S.value}`])},[r.df?(m(),v("label",F,[u(V((i=r.ctx)==null?void 0:i.t(((b=r.df)==null?void 0:b.label)||((d=r.df)==null?void 0:d.fieldname)))+" ",1),(f=r.df)!=null&&f.reqd?(m(),v("span",G,"*")):c("",!0)])):c("",!0),o("div",J,[o("div",K,[p(o("select",{"onUpdate:modelValue":e[0]||(e[0]=n=>l.value=n),class:"cron-type",onChange:P},[...e[12]||(e[12]=[x('',8)])],544),[[T,l.value]])]),I.value?(m(),v("div",Q,[l.value==="every_n_minute"?(m(),v("div",R,[e[13]||(e[13]=u(" 每 ",-1)),p(o("input",{type:"number","onUpdate:modelValue":e[1]||(e[1]=n=>a.value.nMinute=n),min:"1",max:"59",class:"param-input",onInput:y},null,544),[[_,a.value.nMinute]]),e[14]||(e[14]=u(" 分钟 ",-1))])):c("",!0),l.value==="every_n_hour"?(m(),v("div",W,[e[15]||(e[15]=u(" 每 ",-1)),p(o("input",{type:"number","onUpdate:modelValue":e[2]||(e[2]=n=>a.value.nHour=n),min:"1",max:"23",class:"param-input",onInput:y},null,544),[[_,a.value.nHour]]),e[16]||(e[16]=u(" 小时 ",-1))])):c("",!0),l.value==="every_day"?(m(),v("div",X,[e[17]||(e[17]=u(" 每天 ",-1)),p(o("input",{type:"number","onUpdate:modelValue":e[3]||(e[3]=n=>a.value.hour=n),min:"0",max:"23",class:"param-input",onInput:y},null,544),[[_,a.value.hour]]),e[18]||(e[18]=u(" 时 ",-1)),p(o("input",{type:"number","onUpdate:modelValue":e[4]||(e[4]=n=>a.value.minute=n),min:"0",max:"59",class:"param-input",onInput:y},null,544),[[_,a.value.minute]]),e[19]||(e[19]=u(" 分 ",-1))])):c("",!0),l.value==="every_week"?(m(),v("div",Z,[e[21]||(e[21]=u(" 每周 ",-1)),p(o("select",{"onUpdate:modelValue":e[5]||(e[5]=n=>a.value.weekday=n),class:"param-select",onChange:y},[...e[20]||(e[20]=[x('',7)])],544),[[T,a.value.weekday]]),p(o("input",{type:"number","onUpdate:modelValue":e[6]||(e[6]=n=>a.value.hour=n),min:"0",max:"23",class:"param-input",onInput:y},null,544),[[_,a.value.hour]]),e[22]||(e[22]=u(" 时 ",-1)),p(o("input",{type:"number","onUpdate:modelValue":e[7]||(e[7]=n=>a.value.minute=n),min:"0",max:"59",class:"param-input",onInput:y},null,544),[[_,a.value.minute]]),e[23]||(e[23]=u(" 分 ",-1))])):c("",!0),l.value==="every_month"?(m(),v("div",ee,[e[24]||(e[24]=u(" 每月 ",-1)),p(o("input",{type:"number","onUpdate:modelValue":e[8]||(e[8]=n=>a.value.day=n),min:"1",max:"31",class:"param-input",onInput:y},null,544),[[_,a.value.day]]),e[25]||(e[25]=u(" 日 ",-1)),p(o("input",{type:"number","onUpdate:modelValue":e[9]||(e[9]=n=>a.value.hour=n),min:"0",max:"23",class:"param-input",onInput:y},null,544),[[_,a.value.hour]]),e[26]||(e[26]=u(" 时 ",-1)),p(o("input",{type:"number","onUpdate:modelValue":e[10]||(e[10]=n=>a.value.minute=n),min:"0",max:"59",class:"param-input",onInput:y},null,544),[[_,a.value.minute]]),e[27]||(e[27]=u(" 分 ",-1))])):c("",!0)])):c("",!0),k.value?(m(),v("div",te,[e[28]||(e[28]=o("strong",null,"Cron 表达式:",-1)),o("code",null,V(s.value),1),U.value?(m(),v("span",ae,"("+V(U.value)+")",1)):c("",!0),o("button",{type:"button",class:"copy-btn",onClick:z,disabled:w.value},V(w.value?"已复制!":"复制"),9,ne)])):c("",!0),o("div",oe,[o("button",{type:"button",class:"cron-toggle-mode",onClick:j},V($.value?"可视化设置":"Cron表达式"),1)]),$.value?(m(),v("div",ue,[p(o("input",{type:"text","onUpdate:modelValue":e[11]||(e[11]=n=>s.value=n),class:E(["cron-input",{error:!B.value}]),placeholder:"如:*/5 * * * *",onInput:q},null,34),[[_,s.value]])])):c("",!0),o("input",{type:"hidden",name:r.name,value:s.value},null,8,le)])],2)}}});const re=Y(se,[["__scopeId","data-v-ae94164e"]]),ve=Object.freeze(Object.defineProperty({__proto__:null,default:re},Symbol.toStringTag,{value:"Module"}));export{ve as _}; +import{d as D,c as M,r as g,M as O,o as L,e as v,p as u,g as V,y as c,f as o,a4 as p,b1 as T,b2 as x,a5 as _,Y as E,l as m}from"./index-7b482730.js";import{_ as Y}from"./_plugin-vue_export-helper-c27b6911.js";const F={key:0,class:"field-label"},G={key:0,class:"required"},J={class:"cron-editor-modern"},K={class:"cron-type-container"},Q={key:0,class:"cron-params"},R={key:0,class:"param-group"},W={key:1,class:"param-group"},X={key:2,class:"param-group"},Z={key:3,class:"param-group"},ee={key:4,class:"param-group"},te={key:1,class:"cron-preview"},ae={key:0,class:"cron-text"},ne=["disabled"],oe={class:"cron-toggle-container"},ue={key:2,class:"cron-advanced"},le=["name","value"],se=D({__name:"CronEditor",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{},modelValue:{default:"* * * * *"},name:{default:"trigger_time"}},emits:["update:modelValue"],setup(H,{emit:N}){const r=H,S=M(()=>{var t;return((t=r.df)==null?void 0:t.label_layout)||"vertical"}),C=N,l=g(""),I=g(!1),k=g(!1),$=g(!1),w=g(!1),a=g({nMinute:5,nHour:1,hour:0,minute:0,weekday:0,day:1}),s=g(r.modelValue||"* * * * *"),U=M(()=>A(s.value)),B=M(()=>/^\s*([0-9\*\/\-,]+\s+){4,6}[0-9\*\/\-,]+\s*$/.test(s.value)),A=t=>{var e,b;if(t==="* * * * *")return"每分钟";if(/^\*\/(\d+) \* \* \* \*$/.test(t))return`每${(e=t.match(/^\*\/(\d+)/))==null?void 0:e[1]}分钟`;if(t==="0 * * * *")return"每小时";if(/^0 \*\/(\d+) \* \* \*$/.test(t))return`每${(b=t.match(/^0 \*\/(\d+)/))==null?void 0:b[1]}小时`;if(/^\d+ \d+ \* \* \*$/.test(t)){const[d,i]=t.split(" ");return`每天 ${i}时${d}分`}if(/^\d+ \d+ \* \* \d+$/.test(t)){const[d,i,,,f]=t.split(" ");return`每${["周日","周一","周二","周三","周四","周五","周六"][parseInt(f)||0]} ${i}时${d}分`}if(/^\d+ \d+ \d+ \* \*$/.test(t)){const[d,i,f]=t.split(" ");return`每月${f}日 ${i}时${d}分`}return""},y=()=>{let t="";switch(l.value){case"every_minute":t="* * * * *";break;case"every_n_minute":t=`*/${a.value.nMinute} * * * *`;break;case"every_hour":t="0 * * * *";break;case"every_n_hour":t=`0 */${a.value.nHour} * * *`;break;case"every_day":t=`${a.value.minute} ${a.value.hour} * * *`;break;case"every_week":t=`${a.value.minute} ${a.value.hour} * * ${a.value.weekday}`;break;case"every_month":t=`${a.value.minute} ${a.value.hour} ${a.value.day} * *`;break;default:t="* * * * *"}s.value=t,C("update:modelValue",t)},P=()=>{l.value?(I.value=!0,k.value=!0,$.value=!1,y()):(I.value=!1,s.value&&s.value,k.value=!0)},j=()=>{$.value=!$.value,$.value?I.value=!1:I.value=!0},q=()=>{C("update:modelValue",s.value)},z=async()=>{try{await navigator.clipboard.writeText(s.value),w.value=!0,setTimeout(()=>{w.value=!1},1200)}catch(t){console.error("复制失败:",t)}},h=t=>{if(!t||t==="* * * * *")return;const e=t.match(/^\*\/(\d+) \* \* \* \*$/);if(e){l.value="every_n_minute",a.value.nMinute=parseInt(e[1]);return}const b=t.match(/^0 \*\/(\d+) \* \* \*$/);if(b){l.value="every_n_hour",a.value.nHour=parseInt(b[1]);return}const d=t.match(/^(\d+) (\d+) \* \* \*$/);if(d){l.value="every_day",a.value.minute=parseInt(d[1]),a.value.hour=parseInt(d[2]);return}const i=t.match(/^(\d+) (\d+) \* \* (\d+)$/);if(i){l.value="every_week",a.value.minute=parseInt(i[1]),a.value.hour=parseInt(i[2]),a.value.weekday=parseInt(i[3]);return}const f=t.match(/^(\d+) (\d+) (\d+) \* \*$/);if(f){l.value="every_month",a.value.minute=parseInt(f[1]),a.value.hour=parseInt(f[2]),a.value.day=parseInt(f[3]);return}$.value=!0};return O(()=>r.modelValue,t=>{t&&t!==s.value&&(s.value=t,h(t),t&&t!=="* * * * *"&&(k.value=!0))}),L(()=>{s.value=r.modelValue||"* * * * *",r.modelValue&&r.modelValue!=="* * * * *"&&h(r.modelValue),k.value=!0}),(t,e)=>{var b,d,i,f;return m(),v("div",{class:E(["field-wrapper",`layout-${S.value}`])},[r.df?(m(),v("label",F,[u(V((i=r.ctx)==null?void 0:i.t(((b=r.df)==null?void 0:b.label)||((d=r.df)==null?void 0:d.fieldname)))+" ",1),(f=r.df)!=null&&f.reqd?(m(),v("span",G,"*")):c("",!0)])):c("",!0),o("div",J,[o("div",K,[p(o("select",{"onUpdate:modelValue":e[0]||(e[0]=n=>l.value=n),class:"cron-type",onChange:P},[...e[12]||(e[12]=[x('',8)])],544),[[T,l.value]])]),I.value?(m(),v("div",Q,[l.value==="every_n_minute"?(m(),v("div",R,[e[13]||(e[13]=u(" 每 ",-1)),p(o("input",{type:"number","onUpdate:modelValue":e[1]||(e[1]=n=>a.value.nMinute=n),min:"1",max:"59",class:"param-input",onInput:y},null,544),[[_,a.value.nMinute]]),e[14]||(e[14]=u(" 分钟 ",-1))])):c("",!0),l.value==="every_n_hour"?(m(),v("div",W,[e[15]||(e[15]=u(" 每 ",-1)),p(o("input",{type:"number","onUpdate:modelValue":e[2]||(e[2]=n=>a.value.nHour=n),min:"1",max:"23",class:"param-input",onInput:y},null,544),[[_,a.value.nHour]]),e[16]||(e[16]=u(" 小时 ",-1))])):c("",!0),l.value==="every_day"?(m(),v("div",X,[e[17]||(e[17]=u(" 每天 ",-1)),p(o("input",{type:"number","onUpdate:modelValue":e[3]||(e[3]=n=>a.value.hour=n),min:"0",max:"23",class:"param-input",onInput:y},null,544),[[_,a.value.hour]]),e[18]||(e[18]=u(" 时 ",-1)),p(o("input",{type:"number","onUpdate:modelValue":e[4]||(e[4]=n=>a.value.minute=n),min:"0",max:"59",class:"param-input",onInput:y},null,544),[[_,a.value.minute]]),e[19]||(e[19]=u(" 分 ",-1))])):c("",!0),l.value==="every_week"?(m(),v("div",Z,[e[21]||(e[21]=u(" 每周 ",-1)),p(o("select",{"onUpdate:modelValue":e[5]||(e[5]=n=>a.value.weekday=n),class:"param-select",onChange:y},[...e[20]||(e[20]=[x('',7)])],544),[[T,a.value.weekday]]),p(o("input",{type:"number","onUpdate:modelValue":e[6]||(e[6]=n=>a.value.hour=n),min:"0",max:"23",class:"param-input",onInput:y},null,544),[[_,a.value.hour]]),e[22]||(e[22]=u(" 时 ",-1)),p(o("input",{type:"number","onUpdate:modelValue":e[7]||(e[7]=n=>a.value.minute=n),min:"0",max:"59",class:"param-input",onInput:y},null,544),[[_,a.value.minute]]),e[23]||(e[23]=u(" 分 ",-1))])):c("",!0),l.value==="every_month"?(m(),v("div",ee,[e[24]||(e[24]=u(" 每月 ",-1)),p(o("input",{type:"number","onUpdate:modelValue":e[8]||(e[8]=n=>a.value.day=n),min:"1",max:"31",class:"param-input",onInput:y},null,544),[[_,a.value.day]]),e[25]||(e[25]=u(" 日 ",-1)),p(o("input",{type:"number","onUpdate:modelValue":e[9]||(e[9]=n=>a.value.hour=n),min:"0",max:"23",class:"param-input",onInput:y},null,544),[[_,a.value.hour]]),e[26]||(e[26]=u(" 时 ",-1)),p(o("input",{type:"number","onUpdate:modelValue":e[10]||(e[10]=n=>a.value.minute=n),min:"0",max:"59",class:"param-input",onInput:y},null,544),[[_,a.value.minute]]),e[27]||(e[27]=u(" 分 ",-1))])):c("",!0)])):c("",!0),k.value?(m(),v("div",te,[e[28]||(e[28]=o("strong",null,"Cron 表达式:",-1)),o("code",null,V(s.value),1),U.value?(m(),v("span",ae,"("+V(U.value)+")",1)):c("",!0),o("button",{type:"button",class:"copy-btn",onClick:z,disabled:w.value},V(w.value?"已复制!":"复制"),9,ne)])):c("",!0),o("div",oe,[o("button",{type:"button",class:"cron-toggle-mode",onClick:j},V($.value?"可视化设置":"Cron表达式"),1)]),$.value?(m(),v("div",ue,[p(o("input",{type:"text","onUpdate:modelValue":e[11]||(e[11]=n=>s.value=n),class:E(["cron-input",{error:!B.value}]),placeholder:"如:*/5 * * * *",onInput:q},null,34),[[_,s.value]])])):c("",!0),o("input",{type:"hidden",name:r.name,value:s.value},null,8,le)])],2)}}});const re=Y(se,[["__scopeId","data-v-ae94164e"]]),ve=Object.freeze(Object.defineProperty({__proto__:null,default:re},Symbol.toStringTag,{value:"Module"}));export{ve as _}; diff --git a/apps/jingrow/frontend/dist/assets/Currency-ea3fff6b.js b/apps/jingrow/frontend/dist/assets/Currency-e7293724.js similarity index 93% rename from apps/jingrow/frontend/dist/assets/Currency-ea3fff6b.js rename to apps/jingrow/frontend/dist/assets/Currency-e7293724.js index 4d5665a..897ec0d 100644 --- a/apps/jingrow/frontend/dist/assets/Currency-ea3fff6b.js +++ b/apps/jingrow/frontend/dist/assets/Currency-e7293724.js @@ -1 +1 @@ -import{d as n,c,e as o,f,p as i,g as p,y as u,h as _,j as m,Y as b,l,ad as y}from"./index-b37e64ca.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},C={key:0,class:"required"},N=n({__name:"Currency",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(r){const d=r,s=c(()=>d.df.label_layout||"vertical");return(e,a)=>(l(),o("div",{class:b(["field-wrapper",`layout-${s.value}`])},[f("label",g,[i(p(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),o("span",C,"*")):u("",!0)]),_(m(y),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=t=>e.record[e.df.fieldname]=t),precision:2,placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const h=v(N,[["__scopeId","data-v-b63fa7ef"]]),j=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{j as _}; +import{d as n,c,e as o,f,p as i,g as p,y as u,h as _,j as m,Y as b,l,ad as y}from"./index-7b482730.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},C={key:0,class:"required"},N=n({__name:"Currency",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(r){const d=r,s=c(()=>d.df.label_layout||"vertical");return(e,a)=>(l(),o("div",{class:b(["field-wrapper",`layout-${s.value}`])},[f("label",g,[i(p(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),o("span",C,"*")):u("",!0)]),_(m(y),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=t=>e.record[e.df.fieldname]=t),precision:2,placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const h=v(N,[["__scopeId","data-v-b63fa7ef"]]),j=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{j as _}; diff --git a/apps/jingrow/frontend/dist/assets/CustomEdge-5fa8e332.js b/apps/jingrow/frontend/dist/assets/CustomEdge-acd8b99a.js similarity index 87% rename from apps/jingrow/frontend/dist/assets/CustomEdge-5fa8e332.js rename to apps/jingrow/frontend/dist/assets/CustomEdge-acd8b99a.js index 5ee0102..5cc847f 100644 --- a/apps/jingrow/frontend/dist/assets/CustomEdge-5fa8e332.js +++ b/apps/jingrow/frontend/dist/assets/CustomEdge-acd8b99a.js @@ -1 +1 @@ -import{u as i,f as l,h as d,j as p}from"./vue-flow-core-e20a6f7d.js";import{c,e as m,h as s,j as t,w as _,F as f,l as g,f as u,a1 as y}from"./index-b37e64ca.js";const b={inheritAttrs:!1},E=Object.assign(b,{__name:"CustomEdge",props:{id:{type:String,required:!0},sourceX:{type:Number,required:!0},sourceY:{type:Number,required:!0},targetX:{type:Number,required:!0},targetY:{type:Number,required:!0},sourcePosition:{type:String,required:!0},targetPosition:{type:String,required:!0},data:{type:Object,required:!1},markerEnd:{type:String,required:!1},style:{type:Object,required:!1}},setup(r){const n=r,{removeEdges:o}=i(),e=c(()=>p(n));return(q,a)=>(g(),m(f,null,[s(t(l),{path:e.value[0]},null,8,["path"]),s(t(d),null,{default:_(()=>[u("div",{style:y({pointerEvents:"all",position:"absolute",transform:`translate(-50%, -50%) translate(${e.value[1]}px,${e.value[2]}px)`}),class:"nodrag nopan"},[u("button",{class:"edgebutton",onClick:a[0]||(a[0]=v=>t(o)(r.id))},"×")],4)]),_:1})],64))}});export{E as default}; +import{u as i,f as l,h as d,j as p}from"./vue-flow-core-41a1e515.js";import{c,e as m,h as s,j as t,w as _,F as f,l as g,f as u,a1 as y}from"./index-7b482730.js";const b={inheritAttrs:!1},E=Object.assign(b,{__name:"CustomEdge",props:{id:{type:String,required:!0},sourceX:{type:Number,required:!0},sourceY:{type:Number,required:!0},targetX:{type:Number,required:!0},targetY:{type:Number,required:!0},sourcePosition:{type:String,required:!0},targetPosition:{type:String,required:!0},data:{type:Object,required:!1},markerEnd:{type:String,required:!1},style:{type:Object,required:!1}},setup(r){const n=r,{removeEdges:o}=i(),e=c(()=>p(n));return(q,a)=>(g(),m(f,null,[s(t(l),{path:e.value[0]},null,8,["path"]),s(t(d),null,{default:_(()=>[u("div",{style:y({pointerEvents:"all",position:"absolute",transform:`translate(-50%, -50%) translate(${e.value[1]}px,${e.value[2]}px)`}),class:"nodrag nopan"},[u("button",{class:"edgebutton",onClick:a[0]||(a[0]=v=>t(o)(r.id))},"×")],4)]),_:1})],64))}});export{E as default}; diff --git a/apps/jingrow/frontend/dist/assets/Dashboard-c919d047.js b/apps/jingrow/frontend/dist/assets/Dashboard-88a5c6ca.js similarity index 92% rename from apps/jingrow/frontend/dist/assets/Dashboard-c919d047.js rename to apps/jingrow/frontend/dist/assets/Dashboard-88a5c6ca.js index fef5063..fa54fd7 100644 --- a/apps/jingrow/frontend/dist/assets/Dashboard-c919d047.js +++ b/apps/jingrow/frontend/dist/assets/Dashboard-88a5c6ca.js @@ -1 +1 @@ -import{d as k,b as m,o as N,e as T,f as h,g as B,j as e,h as l,w as a,l as R,t,S as u,U as o,V as n,W as D}from"./index-b37e64ca.js";import{getCount as c,getLocalJobCount as x}from"./common-0beb20f4.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const S={class:"dashboard-page"},C={class:"page-header"},Q={class:"page-title"},A=k({__name:"Dashboard",setup(L){const s=m({agents:0,nodes:0,taskQueue:0,scheduledTasks:0,knowledgeBase:0,note:0,event:0,todo:0,file:0}),w=async()=>{try{const d=await c("Local Ai Agent");d.success&&(s.agents=d.count||0);const i=await c("Local Ai Node");i.success&&(s.nodes=i.count||0);const _=await x();_.success&&(s.taskQueue=_.count||0);const f=await c("Local Scheduled Job");f.success&&(s.scheduledTasks=f.count||0);const r=await c("Knowledge Base");r.success&&(s.knowledgeBase=r.count||0);const v=await c("Note");v.success&&(s.note=v.count||0);const b=await c("Event");b.success&&(s.event=b.count||0);const g=await c("ToDo");g.success&&(s.todo=g.count||0);const p=await c("File");p.success&&(s.file=p.count||0)}catch(d){console.error("加载统计数据失败:",d)}};return N(()=>{w()}),(d,i)=>(R(),T("div",S,[h("div",C,[h("h1",Q,B(e(t)("Dashboard")),1)]),l(e(D),{cols:4,"x-gap":16,"y-gap":16,responsive:"screen","item-responsive":!0,class:"stats-grid"},{default:a(()=>[l(e(u),null,{default:a(()=>[l(e(o),null,{default:a(()=>[l(e(n),{label:e(t)("Total Agents"),value:s.agents},null,8,["label","value"])]),_:1})]),_:1}),l(e(u),null,{default:a(()=>[l(e(o),null,{default:a(()=>[l(e(n),{label:e(t)("Total Nodes"),value:s.nodes},null,8,["label","value"])]),_:1})]),_:1}),l(e(u),null,{default:a(()=>[l(e(o),null,{default:a(()=>[l(e(n),{label:e(t)("Task Queue"),value:s.taskQueue},null,8,["label","value"])]),_:1})]),_:1}),l(e(u),null,{default:a(()=>[l(e(o),null,{default:a(()=>[l(e(n),{label:e(t)("Scheduled Tasks"),value:s.scheduledTasks},null,8,["label","value"])]),_:1})]),_:1}),l(e(u),null,{default:a(()=>[l(e(o),null,{default:a(()=>[l(e(n),{label:e(t)("Knowledge Base"),value:s.knowledgeBase},null,8,["label","value"])]),_:1})]),_:1}),l(e(u),null,{default:a(()=>[l(e(o),null,{default:a(()=>[l(e(n),{label:e(t)("Note"),value:s.note},null,8,["label","value"])]),_:1})]),_:1}),l(e(u),null,{default:a(()=>[l(e(o),null,{default:a(()=>[l(e(n),{label:e(t)("Event"),value:s.event},null,8,["label","value"])]),_:1})]),_:1}),l(e(u),null,{default:a(()=>[l(e(o),null,{default:a(()=>[l(e(n),{label:e(t)("ToDo"),value:s.todo},null,8,["label","value"])]),_:1})]),_:1}),l(e(u),null,{default:a(()=>[l(e(o),null,{default:a(()=>[l(e(n),{label:e(t)("File"),value:s.file},null,8,["label","value"])]),_:1})]),_:1})]),_:1})]))}});const G=y(A,[["__scopeId","data-v-d1f0aa95"]]);export{G as default}; +import{d as k,b as m,o as N,e as T,f as h,g as B,j as e,h as l,w as a,l as R,t,S as u,U as o,V as n,W as D}from"./index-7b482730.js";import{getCount as c,getLocalJobCount as x}from"./common-a0065b74.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const S={class:"dashboard-page"},C={class:"page-header"},Q={class:"page-title"},A=k({__name:"Dashboard",setup(L){const s=m({agents:0,nodes:0,taskQueue:0,scheduledTasks:0,knowledgeBase:0,note:0,event:0,todo:0,file:0}),w=async()=>{try{const d=await c("Local Ai Agent");d.success&&(s.agents=d.count||0);const i=await c("Local Ai Node");i.success&&(s.nodes=i.count||0);const _=await x();_.success&&(s.taskQueue=_.count||0);const f=await c("Local Scheduled Job");f.success&&(s.scheduledTasks=f.count||0);const r=await c("Knowledge Base");r.success&&(s.knowledgeBase=r.count||0);const v=await c("Note");v.success&&(s.note=v.count||0);const b=await c("Event");b.success&&(s.event=b.count||0);const g=await c("ToDo");g.success&&(s.todo=g.count||0);const p=await c("File");p.success&&(s.file=p.count||0)}catch(d){console.error("加载统计数据失败:",d)}};return N(()=>{w()}),(d,i)=>(R(),T("div",S,[h("div",C,[h("h1",Q,B(e(t)("Dashboard")),1)]),l(e(D),{cols:4,"x-gap":16,"y-gap":16,responsive:"screen","item-responsive":!0,class:"stats-grid"},{default:a(()=>[l(e(u),null,{default:a(()=>[l(e(o),null,{default:a(()=>[l(e(n),{label:e(t)("Total Agents"),value:s.agents},null,8,["label","value"])]),_:1})]),_:1}),l(e(u),null,{default:a(()=>[l(e(o),null,{default:a(()=>[l(e(n),{label:e(t)("Total Nodes"),value:s.nodes},null,8,["label","value"])]),_:1})]),_:1}),l(e(u),null,{default:a(()=>[l(e(o),null,{default:a(()=>[l(e(n),{label:e(t)("Task Queue"),value:s.taskQueue},null,8,["label","value"])]),_:1})]),_:1}),l(e(u),null,{default:a(()=>[l(e(o),null,{default:a(()=>[l(e(n),{label:e(t)("Scheduled Tasks"),value:s.scheduledTasks},null,8,["label","value"])]),_:1})]),_:1}),l(e(u),null,{default:a(()=>[l(e(o),null,{default:a(()=>[l(e(n),{label:e(t)("Knowledge Base"),value:s.knowledgeBase},null,8,["label","value"])]),_:1})]),_:1}),l(e(u),null,{default:a(()=>[l(e(o),null,{default:a(()=>[l(e(n),{label:e(t)("Note"),value:s.note},null,8,["label","value"])]),_:1})]),_:1}),l(e(u),null,{default:a(()=>[l(e(o),null,{default:a(()=>[l(e(n),{label:e(t)("Event"),value:s.event},null,8,["label","value"])]),_:1})]),_:1}),l(e(u),null,{default:a(()=>[l(e(o),null,{default:a(()=>[l(e(n),{label:e(t)("ToDo"),value:s.todo},null,8,["label","value"])]),_:1})]),_:1}),l(e(u),null,{default:a(()=>[l(e(o),null,{default:a(()=>[l(e(n),{label:e(t)("File"),value:s.file},null,8,["label","value"])]),_:1})]),_:1})]),_:1})]))}});const G=y(A,[["__scopeId","data-v-d1f0aa95"]]);export{G as default}; diff --git a/apps/jingrow/frontend/dist/assets/Data-b998e8ff.js b/apps/jingrow/frontend/dist/assets/Data-7934e730.js similarity index 93% rename from apps/jingrow/frontend/dist/assets/Data-b998e8ff.js rename to apps/jingrow/frontend/dist/assets/Data-7934e730.js index fd7b45c..8ebaced 100644 --- a/apps/jingrow/frontend/dist/assets/Data-b998e8ff.js +++ b/apps/jingrow/frontend/dist/assets/Data-7934e730.js @@ -1 +1 @@ -import{d as n,c as p,e as l,f as c,p as f,g as i,y as u,h as _,j as m,Y as y,l as o,m as b}from"./index-b37e64ca.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},N={key:0,class:"required"},h=n({__name:"Data",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(t){const d=t,s=p(()=>d.df.label_layout||"vertical");return(e,a)=>(o(),l("div",{class:y(["field-wrapper",`layout-${s.value}`])},[c("label",g,[f(i(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(o(),l("span",N,"*")):u("",!0)]),_(m(b),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=r=>e.record[e.df.fieldname]=r),type:"text",placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const B=v(h,[["__scopeId","data-v-5f049c90"]]),j=Object.freeze(Object.defineProperty({__proto__:null,default:B},Symbol.toStringTag,{value:"Module"}));export{j as _}; +import{d as n,c as p,e as l,f as c,p as f,g as i,y as u,h as _,j as m,Y as y,l as o,m as b}from"./index-7b482730.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},N={key:0,class:"required"},h=n({__name:"Data",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(t){const d=t,s=p(()=>d.df.label_layout||"vertical");return(e,a)=>(o(),l("div",{class:y(["field-wrapper",`layout-${s.value}`])},[c("label",g,[f(i(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(o(),l("span",N,"*")):u("",!0)]),_(m(b),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=r=>e.record[e.df.fieldname]=r),type:"text",placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const B=v(h,[["__scopeId","data-v-5f049c90"]]),j=Object.freeze(Object.defineProperty({__proto__:null,default:B},Symbol.toStringTag,{value:"Module"}));export{j as _}; diff --git a/apps/jingrow/frontend/dist/assets/Date-d9d7fa30.js b/apps/jingrow/frontend/dist/assets/Date-763305af.js similarity index 93% rename from apps/jingrow/frontend/dist/assets/Date-d9d7fa30.js rename to apps/jingrow/frontend/dist/assets/Date-763305af.js index f537d4a..a1e77fb 100644 --- a/apps/jingrow/frontend/dist/assets/Date-d9d7fa30.js +++ b/apps/jingrow/frontend/dist/assets/Date-763305af.js @@ -1 +1 @@ -import{d as n,c as p,e as t,f as u,p as i,g as c,y as f,h as _,j as m,Y as y,l,aY as b}from"./index-b37e64ca.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const D={class:"field-label"},V={key:0,class:"required"},g=n({__name:"Date",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(o){const d=o,s=p(()=>d.df.label_layout||"vertical");return(e,a)=>(l(),t("div",{class:y(["field-wrapper",`layout-${s.value}`])},[u("label",D,[i(c(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),t("span",V,"*")):f("",!0)]),_(m(b),{value:e.ctx.toDateValue?e.ctx.toDateValue(e.record[e.df.fieldname]):null,"onUpdate:value":a[0]||(a[0]=r=>e.ctx.updateDateValue&&e.ctx.updateDateValue(e.df.fieldname,r)),type:"date",placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const N=v(g,[["__scopeId","data-v-7d0f5693"]]),B=Object.freeze(Object.defineProperty({__proto__:null,default:N},Symbol.toStringTag,{value:"Module"}));export{B as _}; +import{d as n,c as p,e as t,f as u,p as i,g as c,y as f,h as _,j as m,Y as y,l,aY as b}from"./index-7b482730.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const D={class:"field-label"},V={key:0,class:"required"},g=n({__name:"Date",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(o){const d=o,s=p(()=>d.df.label_layout||"vertical");return(e,a)=>(l(),t("div",{class:y(["field-wrapper",`layout-${s.value}`])},[u("label",D,[i(c(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),t("span",V,"*")):f("",!0)]),_(m(b),{value:e.ctx.toDateValue?e.ctx.toDateValue(e.record[e.df.fieldname]):null,"onUpdate:value":a[0]||(a[0]=r=>e.ctx.updateDateValue&&e.ctx.updateDateValue(e.df.fieldname,r)),type:"date",placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const N=v(g,[["__scopeId","data-v-7d0f5693"]]),B=Object.freeze(Object.defineProperty({__proto__:null,default:N},Symbol.toStringTag,{value:"Module"}));export{B as _}; diff --git a/apps/jingrow/frontend/dist/assets/DateRange-10631955.js b/apps/jingrow/frontend/dist/assets/DateRange-74c289f4.js similarity index 93% rename from apps/jingrow/frontend/dist/assets/DateRange-10631955.js rename to apps/jingrow/frontend/dist/assets/DateRange-74c289f4.js index af33054..4cef297 100644 --- a/apps/jingrow/frontend/dist/assets/DateRange-10631955.js +++ b/apps/jingrow/frontend/dist/assets/DateRange-74c289f4.js @@ -1 +1 @@ -import{d as n,c,e as l,f as i,p,g as f,y as _,h as u,j as m,Y as y,l as o,aY as b}from"./index-b37e64ca.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},D={key:0,class:"required"},N=n({__name:"DateRange",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(t){const d=t,s=c(()=>d.df.label_layout||"vertical");return(e,a)=>(o(),l("div",{class:y(["field-wrapper",`layout-${s.value}`])},[i("label",g,[p(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(o(),l("span",D,"*")):_("",!0)]),u(m(b),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=r=>e.record[e.df.fieldname]=r),type:"daterange",placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const h=v(N,[["__scopeId","data-v-83e2c9a1"]]),V=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{V as _}; +import{d as n,c,e as l,f as i,p,g as f,y as _,h as u,j as m,Y as y,l as o,aY as b}from"./index-7b482730.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},D={key:0,class:"required"},N=n({__name:"DateRange",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(t){const d=t,s=c(()=>d.df.label_layout||"vertical");return(e,a)=>(o(),l("div",{class:y(["field-wrapper",`layout-${s.value}`])},[i("label",g,[p(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(o(),l("span",D,"*")):_("",!0)]),u(m(b),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=r=>e.record[e.df.fieldname]=r),type:"daterange",placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const h=v(N,[["__scopeId","data-v-83e2c9a1"]]),V=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{V as _}; diff --git a/apps/jingrow/frontend/dist/assets/Datetime-07afed2b.js b/apps/jingrow/frontend/dist/assets/Datetime-5b4889cc.js similarity index 93% rename from apps/jingrow/frontend/dist/assets/Datetime-07afed2b.js rename to apps/jingrow/frontend/dist/assets/Datetime-5b4889cc.js index f078333..ec7549f 100644 --- a/apps/jingrow/frontend/dist/assets/Datetime-07afed2b.js +++ b/apps/jingrow/frontend/dist/assets/Datetime-5b4889cc.js @@ -1 +1 @@ -import{d as n,c as i,e as t,f as c,p,g as f,y as _,h as m,j as u,Y as y,l,aY as b}from"./index-b37e64ca.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},D={key:0,class:"required"},N=n({__name:"Datetime",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(o){const d=o,s=i(()=>d.df.label_layout||"vertical");return(e,a)=>(l(),t("div",{class:y(["field-wrapper",`layout-${s.value}`])},[c("label",g,[p(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),t("span",D,"*")):_("",!0)]),m(u(b),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=r=>e.record[e.df.fieldname]=r),type:"datetime",placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const h=v(N,[["__scopeId","data-v-eeece6ed"]]),V=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{V as _}; +import{d as n,c as i,e as t,f as c,p,g as f,y as _,h as m,j as u,Y as y,l,aY as b}from"./index-7b482730.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},D={key:0,class:"required"},N=n({__name:"Datetime",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(o){const d=o,s=i(()=>d.df.label_layout||"vertical");return(e,a)=>(l(),t("div",{class:y(["field-wrapper",`layout-${s.value}`])},[c("label",g,[p(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),t("span",D,"*")):_("",!0)]),m(u(b),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=r=>e.record[e.df.fieldname]=r),type:"datetime",placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const h=v(N,[["__scopeId","data-v-eeece6ed"]]),V=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{V as _}; diff --git a/apps/jingrow/frontend/dist/assets/Duration-0b5f170c.js b/apps/jingrow/frontend/dist/assets/Duration-d579c52e.js similarity index 93% rename from apps/jingrow/frontend/dist/assets/Duration-0b5f170c.js rename to apps/jingrow/frontend/dist/assets/Duration-d579c52e.js index 2941071..7bac1e3 100644 --- a/apps/jingrow/frontend/dist/assets/Duration-0b5f170c.js +++ b/apps/jingrow/frontend/dist/assets/Duration-d579c52e.js @@ -1 +1 @@ -import{d as n,c as i,e as o,f as p,p as f,g as c,y as u,h as _,j as m,Y as b,l,m as v}from"./index-b37e64ca.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},N={key:0,class:"required"},h=n({__name:"Duration",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(t){const d=t,s=i(()=>d.df.label_layout||"vertical");return(e,a)=>(l(),o("div",{class:b(["field-wrapper",`layout-${s.value}`])},[p("label",g,[f(c(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),o("span",N,"*")):u("",!0)]),_(m(v),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=r=>e.record[e.df.fieldname]=r),placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const B=y(h,[["__scopeId","data-v-9f30209e"]]),j=Object.freeze(Object.defineProperty({__proto__:null,default:B},Symbol.toStringTag,{value:"Module"}));export{j as _}; +import{d as n,c as i,e as o,f as p,p as f,g as c,y as u,h as _,j as m,Y as b,l,m as v}from"./index-7b482730.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},N={key:0,class:"required"},h=n({__name:"Duration",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(t){const d=t,s=i(()=>d.df.label_layout||"vertical");return(e,a)=>(l(),o("div",{class:b(["field-wrapper",`layout-${s.value}`])},[p("label",g,[f(c(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),o("span",N,"*")):u("",!0)]),_(m(v),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=r=>e.record[e.df.fieldname]=r),placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const B=y(h,[["__scopeId","data-v-9f30209e"]]),j=Object.freeze(Object.defineProperty({__proto__:null,default:B},Symbol.toStringTag,{value:"Module"}));export{j as _}; diff --git a/apps/jingrow/frontend/dist/assets/DynamicIcon-0b8ea1dd.js b/apps/jingrow/frontend/dist/assets/DynamicIcon-0b8ea1dd.js new file mode 100644 index 0000000..e76ab5e --- /dev/null +++ b/apps/jingrow/frontend/dist/assets/DynamicIcon-0b8ea1dd.js @@ -0,0 +1 @@ +import{_ as o}from"./DynamicIcon.vue_vue_type_script_setup_true_lang-055bc1ef.js";import"./iconify-30ae5ba5.js";import"./index-7b482730.js";export{o as default}; diff --git a/apps/jingrow/frontend/dist/assets/DynamicIcon-23ccc37d.js b/apps/jingrow/frontend/dist/assets/DynamicIcon-23ccc37d.js deleted file mode 100644 index 56e247c..0000000 --- a/apps/jingrow/frontend/dist/assets/DynamicIcon-23ccc37d.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./DynamicIcon.vue_vue_type_script_setup_true_lang-d4076c90.js";import"./iconify-b5ab1212.js";import"./index-b37e64ca.js";export{o as default}; diff --git a/apps/jingrow/frontend/dist/assets/DynamicIcon.vue_vue_type_script_setup_true_lang-d4076c90.js b/apps/jingrow/frontend/dist/assets/DynamicIcon.vue_vue_type_script_setup_true_lang-055bc1ef.js similarity index 72% rename from apps/jingrow/frontend/dist/assets/DynamicIcon.vue_vue_type_script_setup_true_lang-d4076c90.js rename to apps/jingrow/frontend/dist/assets/DynamicIcon.vue_vue_type_script_setup_true_lang-055bc1ef.js index 9515131..504be9a 100644 --- a/apps/jingrow/frontend/dist/assets/DynamicIcon.vue_vue_type_script_setup_true_lang-d4076c90.js +++ b/apps/jingrow/frontend/dist/assets/DynamicIcon.vue_vue_type_script_setup_true_lang-055bc1ef.js @@ -1 +1 @@ -import{I as a}from"./iconify-b5ab1212.js";import{d as c,c as i,D as t,j as s,l}from"./index-b37e64ca.js";const d=c({__name:"DynamicIcon",props:{name:{},size:{default:32},color:{default:"currentColor"},iconLibrary:{default:"tabler"}},setup(n){const e=n,r=i(()=>e.name.includes(":")?e.name:`${e.iconLibrary}:${e.name}`);return(o,m)=>(l(),t(s(a),{icon:r.value,width:o.size,height:o.size,color:o.color},null,8,["icon","width","height","color"]))}});export{d as _}; +import{I as a}from"./iconify-30ae5ba5.js";import{d as c,c as i,D as t,j as s,l}from"./index-7b482730.js";const d=c({__name:"DynamicIcon",props:{name:{},size:{default:32},color:{default:"currentColor"},iconLibrary:{default:"tabler"}},setup(n){const e=n,r=i(()=>e.name.includes(":")?e.name:`${e.iconLibrary}:${e.name}`);return(o,m)=>(l(),t(s(a),{icon:r.value,width:o.size,height:o.size,color:o.color},null,8,["icon","width","height","color"]))}});export{d as _}; diff --git a/apps/jingrow/frontend/dist/assets/DynamicLink-07536e48.js b/apps/jingrow/frontend/dist/assets/DynamicLink-32decd06.js similarity index 93% rename from apps/jingrow/frontend/dist/assets/DynamicLink-07536e48.js rename to apps/jingrow/frontend/dist/assets/DynamicLink-32decd06.js index 5488a0b..f5feba1 100644 --- a/apps/jingrow/frontend/dist/assets/DynamicLink-07536e48.js +++ b/apps/jingrow/frontend/dist/assets/DynamicLink-32decd06.js @@ -1 +1 @@ -import{d as r,c as i,e as l,f as c,p as f,g as p,y as u,h as _,j as m,Y as y,l as o,m as b}from"./index-b37e64ca.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},k={key:0,class:"required"},N=r({__name:"DynamicLink",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(d){const s=d,t=i(()=>s.df.label_layout||"vertical");return(e,a)=>(o(),l("div",{class:y(["field-wrapper",`layout-${t.value}`])},[c("label",g,[f(p(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(o(),l("span",k,"*")):u("",!0)]),_(m(b),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=n=>e.record[e.df.fieldname]=n),placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const h=v(N,[["__scopeId","data-v-382cf9fd"]]),L=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{L as _}; +import{d as r,c as i,e as l,f as c,p as f,g as p,y as u,h as _,j as m,Y as y,l as o,m as b}from"./index-7b482730.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},k={key:0,class:"required"},N=r({__name:"DynamicLink",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(d){const s=d,t=i(()=>s.df.label_layout||"vertical");return(e,a)=>(o(),l("div",{class:y(["field-wrapper",`layout-${t.value}`])},[c("label",g,[f(p(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(o(),l("span",k,"*")):u("",!0)]),_(m(b),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=n=>e.record[e.df.fieldname]=n),placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const h=v(N,[["__scopeId","data-v-382cf9fd"]]),L=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{L as _}; diff --git a/apps/jingrow/frontend/dist/assets/EditableInput-0f0815cf.js b/apps/jingrow/frontend/dist/assets/EditableInput-9b4a13c6.js similarity index 94% rename from apps/jingrow/frontend/dist/assets/EditableInput-0f0815cf.js rename to apps/jingrow/frontend/dist/assets/EditableInput-9b4a13c6.js index 5f1da35..e6ed45b 100644 --- a/apps/jingrow/frontend/dist/assets/EditableInput-0f0815cf.js +++ b/apps/jingrow/frontend/dist/assets/EditableInput-9b4a13c6.js @@ -1 +1 @@ -import{r as u,c as x,e as c,g as b,a4 as g,a5 as E,i as s,Y as k,L as h,l as p,J as w}from"./index-b37e64ca.js";import{_ as I}from"./_plugin-vue_export-helper-c27b6911.js";const L={key:0,class:"editable-text"},S={__name:"EditableInput",props:{text:{type:String,default:""},placeholder:{type:String,default:""},emptyLabel:{type:String,default:""}},emits:["update:modelValue"],setup(d,{emit:f}){const e=d,_=f,t=u(!1),a=u(""),n=u(null),m=x(()=>e.text?e.text:e.emptyLabel?e.emptyLabel:e.placeholder||"点击编辑");async function v(){var o,l;t.value=!0,a.value=e.text,await w(),(o=n.value)==null||o.focus(),(l=n.value)==null||l.select()}function i(){t.value&&(_("update:modelValue",a.value),t.value=!1)}function r(){a.value=e.text,t.value=!1}return(o,l)=>(p(),c("span",{class:k(["editable-input",{"is-editing":t.value}]),onDblclick:h(v,["stop"]),onKeydown:[s(i,["enter"]),s(r,["escape"])],tabindex:"0"},[t.value?g((p(),c("input",{key:1,ref_key:"inputRef",ref:n,type:"text",class:"form-control","onUpdate:modelValue":l[0]||(l[0]=y=>a.value=y),onBlur:i,onKeydown:[s(i,["enter"]),s(r,["escape"])]},null,544)),[[E,a.value]]):(p(),c("span",L,b(m.value),1))],34))}},D=I(S,[["__scopeId","data-v-c7790eb2"]]);export{D as default}; +import{r as u,c as x,e as c,g as b,a4 as g,a5 as E,i as s,Y as k,L as h,l as p,J as w}from"./index-7b482730.js";import{_ as I}from"./_plugin-vue_export-helper-c27b6911.js";const L={key:0,class:"editable-text"},S={__name:"EditableInput",props:{text:{type:String,default:""},placeholder:{type:String,default:""},emptyLabel:{type:String,default:""}},emits:["update:modelValue"],setup(d,{emit:f}){const e=d,_=f,t=u(!1),a=u(""),n=u(null),m=x(()=>e.text?e.text:e.emptyLabel?e.emptyLabel:e.placeholder||"点击编辑");async function v(){var o,l;t.value=!0,a.value=e.text,await w(),(o=n.value)==null||o.focus(),(l=n.value)==null||l.select()}function i(){t.value&&(_("update:modelValue",a.value),t.value=!1)}function r(){a.value=e.text,t.value=!1}return(o,l)=>(p(),c("span",{class:k(["editable-input",{"is-editing":t.value}]),onDblclick:h(v,["stop"]),onKeydown:[s(i,["enter"]),s(r,["escape"])],tabindex:"0"},[t.value?g((p(),c("input",{key:1,ref_key:"inputRef",ref:n,type:"text",class:"form-control","onUpdate:modelValue":l[0]||(l[0]=y=>a.value=y),onBlur:i,onKeydown:[s(i,["enter"]),s(r,["escape"])]},null,544)),[[E,a.value]]):(p(),c("span",L,b(m.value),1))],34))}},D=I(S,[["__scopeId","data-v-c7790eb2"]]);export{D as default}; diff --git a/apps/jingrow/frontend/dist/assets/ExecutionResults-a7b36047.js b/apps/jingrow/frontend/dist/assets/ExecutionResults-030bde4d.js similarity index 93% rename from apps/jingrow/frontend/dist/assets/ExecutionResults-a7b36047.js rename to apps/jingrow/frontend/dist/assets/ExecutionResults-030bde4d.js index 23febce..79d702f 100644 --- a/apps/jingrow/frontend/dist/assets/ExecutionResults-a7b36047.js +++ b/apps/jingrow/frontend/dist/assets/ExecutionResults-030bde4d.js @@ -1 +1 @@ -import{u as C,r as p,l as o,e as i,f as e,g as u,F as T,C as N,Y as v,j as f,t as R,y as d,h as j,w as O,T as S}from"./index-b37e64ca.js";import{g as b}from"./nodeMetadata-868a0a07.js";import{_ as D}from"./_plugin-vue_export-helper-c27b6911.js";import"./vue-flow-core-e20a6f7d.js";import"./NodePropertyModal-c7168bd0.js";import"./SchemaFormRenderer-0384437a.js";import"./nodes-db5c425b.js";const H={class:"execution-results"},$={class:"execution-results-body"},B={class:"execution-details"},E={class:"details-left"},J={class:"history-list"},L={key:0,class:"success-overview-card"},I={class:"overview-card-header"},V={class:"overview-info-header"},F={key:1,class:"error-overview-card"},M={class:"overview-card-header"},z={class:"overview-info-header"},A={key:2,class:"no-execution-overview-card"},W={key:3},Y=["onClick"],q={class:"history-item-header"},G={class:"history-node-name"},K={class:"history-item-meta"},P={class:"history-time"},Q={key:4,class:"no-history"},U={key:0,class:"details-right"},X={class:"node-detail-header"},Z={class:"detail-tabs"},ee={class:"node-detail-content"},te={key:0,class:"detail-panel"},se={class:"json-viewer"},oe={key:1,class:"detail-panel"},ie={class:"json-viewer"},le={key:1,class:"details-right empty"},ae={key:0,class:"copy-tip"},ne={__name:"ExecutionResults",props:{executionResult:Object,executionHistory:Array},emits:["close"],setup(a,{emit:ue}){const k=C(),l=p(null),r=p("output"),y=p(!1),g=n=>{l.value=n,r.value="output"},h=async n=>{try{const t=JSON.stringify(n,null,2);await navigator.clipboard.writeText(t),y.value=!0,setTimeout(()=>{y.value=!1},2e3)}catch{k.error("复制失败,请手动复制")}},_=n=>{if(typeof n!="object"||n===null)return n;const t={};for(const[c,s]of Object.entries(n))if(typeof s=="string"&&s.trim().startsWith("{"))try{t[c]=JSON.parse(s)}catch{t[c]=s}else t[c]=s;return t};return(n,t)=>{var c;return o(),i("div",H,[e("div",$,[e("div",B,[e("div",E,[e("div",J,[a.executionResult&&a.executionResult.success?(o(),i("div",L,[e("div",I,[t[5]||(t[5]=e("i",{class:"fa fa-check-circle text-success"},null,-1)),e("div",V,[t[4]||(t[4]=e("h5",null,"执行成功",-1)),e("p",null,"执行了 "+u(a.executionHistory.length)+" 个节点",1)])])])):a.executionResult&&!a.executionResult.success?(o(),i("div",F,[e("div",M,[t[7]||(t[7]=e("i",{class:"fa fa-exclamation-circle text-danger"},null,-1)),e("div",z,[t[6]||(t[6]=e("h5",null,"执行失败",-1)),e("p",null,u(a.executionResult.error),1)])])])):(o(),i("div",A,[...t[8]||(t[8]=[e("div",{class:"overview-card-header"},[e("i",{class:"fa fa-info-circle text-info"}),e("div",{class:"overview-info-header"},[e("h5",null,"无执行历史"),e("p",null,"请先执行流程查看结果")])],-1)])])),a.executionHistory&&a.executionHistory.length>0?(o(),i("div",W,[(o(!0),i(T,null,N(a.executionHistory,(s,w)=>{var m,x;return o(),i("div",{key:w,class:v(["history-item",[s.status,{active:((m=l.value)==null?void 0:m.nodeId)===s.nodeId}]]),onClick:re=>g(s)},[e("div",q,[e("span",G,u(s.nodeLabel||((x=f(b)(s.nodeType))==null?void 0:x.label)||s.nodeType),1),e("span",{class:v(["history-status-badge",s.status])},u(f(R)(s.status)),3)]),e("div",K,[e("span",P,u(new Date(s.timestamp).toLocaleTimeString()),1)])],10,Y)}),128))])):(o(),i("div",Q,[...t[9]||(t[9]=[e("div",{class:"no-history-content"},[e("i",{class:"fa fa-history"}),e("p",null,"暂无执行历史")],-1)])]))])]),l.value?(o(),i("div",U,[e("div",X,[e("h6",null,u(l.value.nodeLabel||((c=f(b)(l.value.nodeType))==null?void 0:c.label)||l.value.nodeType),1),e("div",Z,[e("button",{class:v(["tab-btn",{active:r.value==="input"}]),onClick:t[0]||(t[0]=s=>r.value="input")}," 输入 ",2),e("button",{class:v(["tab-btn",{active:r.value==="output"}]),onClick:t[1]||(t[1]=s=>r.value="output")}," 输出 ",2)])]),e("div",ee,[r.value==="input"?(o(),i("div",te,[l.value.inputs&&Object.keys(l.value.inputs).length>0?(o(),i("button",{key:0,class:"copy-btn-floating",onClick:t[2]||(t[2]=s=>h(l.value.inputs)),title:"复制"},[...t[10]||(t[10]=[e("i",{class:"fa fa-copy"},null,-1)])])):d("",!0),e("pre",se,u(JSON.stringify(_(l.value.inputs||{}),null,2)),1)])):d("",!0),r.value==="output"?(o(),i("div",oe,[l.value.result&&Object.keys(l.value.result).length>0?(o(),i("button",{key:0,class:"copy-btn-floating",onClick:t[3]||(t[3]=s=>h(l.value.result)),title:"复制"},[...t[11]||(t[11]=[e("i",{class:"fa fa-copy"},null,-1)])])):d("",!0),e("pre",ie,u(JSON.stringify(_(l.value.result||{}),null,2)),1)])):d("",!0)])])):(o(),i("div",le,[...t[12]||(t[12]=[e("div",{class:"empty-state"},[e("i",{class:"fa fa-mouse-pointer"}),e("p",null,"点击左侧节点查看详情")],-1)])]))])]),j(S,{name:"fade"},{default:O(()=>[y.value?(o(),i("div",ae,"已复制")):d("",!0)]),_:1})])}}},_e=D(ne,[["__scopeId","data-v-5b99f9ea"]]);export{_e as default}; +import{u as C,r as p,l as o,e as i,f as e,g as u,F as T,C as N,Y as v,j as f,t as R,y as d,h as j,w as O,T as S}from"./index-7b482730.js";import{g as b}from"./nodeMetadata-55f4474f.js";import{_ as D}from"./_plugin-vue_export-helper-c27b6911.js";import"./vue-flow-core-41a1e515.js";import"./NodePropertyModal-94ca3f6a.js";import"./SchemaFormRenderer-f7be2793.js";import"./nodes-1118f3b4.js";const H={class:"execution-results"},$={class:"execution-results-body"},B={class:"execution-details"},E={class:"details-left"},J={class:"history-list"},L={key:0,class:"success-overview-card"},I={class:"overview-card-header"},V={class:"overview-info-header"},F={key:1,class:"error-overview-card"},M={class:"overview-card-header"},z={class:"overview-info-header"},A={key:2,class:"no-execution-overview-card"},W={key:3},Y=["onClick"],q={class:"history-item-header"},G={class:"history-node-name"},K={class:"history-item-meta"},P={class:"history-time"},Q={key:4,class:"no-history"},U={key:0,class:"details-right"},X={class:"node-detail-header"},Z={class:"detail-tabs"},ee={class:"node-detail-content"},te={key:0,class:"detail-panel"},se={class:"json-viewer"},oe={key:1,class:"detail-panel"},ie={class:"json-viewer"},le={key:1,class:"details-right empty"},ae={key:0,class:"copy-tip"},ne={__name:"ExecutionResults",props:{executionResult:Object,executionHistory:Array},emits:["close"],setup(a,{emit:ue}){const k=C(),l=p(null),r=p("output"),y=p(!1),g=n=>{l.value=n,r.value="output"},h=async n=>{try{const t=JSON.stringify(n,null,2);await navigator.clipboard.writeText(t),y.value=!0,setTimeout(()=>{y.value=!1},2e3)}catch{k.error("复制失败,请手动复制")}},_=n=>{if(typeof n!="object"||n===null)return n;const t={};for(const[c,s]of Object.entries(n))if(typeof s=="string"&&s.trim().startsWith("{"))try{t[c]=JSON.parse(s)}catch{t[c]=s}else t[c]=s;return t};return(n,t)=>{var c;return o(),i("div",H,[e("div",$,[e("div",B,[e("div",E,[e("div",J,[a.executionResult&&a.executionResult.success?(o(),i("div",L,[e("div",I,[t[5]||(t[5]=e("i",{class:"fa fa-check-circle text-success"},null,-1)),e("div",V,[t[4]||(t[4]=e("h5",null,"执行成功",-1)),e("p",null,"执行了 "+u(a.executionHistory.length)+" 个节点",1)])])])):a.executionResult&&!a.executionResult.success?(o(),i("div",F,[e("div",M,[t[7]||(t[7]=e("i",{class:"fa fa-exclamation-circle text-danger"},null,-1)),e("div",z,[t[6]||(t[6]=e("h5",null,"执行失败",-1)),e("p",null,u(a.executionResult.error),1)])])])):(o(),i("div",A,[...t[8]||(t[8]=[e("div",{class:"overview-card-header"},[e("i",{class:"fa fa-info-circle text-info"}),e("div",{class:"overview-info-header"},[e("h5",null,"无执行历史"),e("p",null,"请先执行流程查看结果")])],-1)])])),a.executionHistory&&a.executionHistory.length>0?(o(),i("div",W,[(o(!0),i(T,null,N(a.executionHistory,(s,w)=>{var m,x;return o(),i("div",{key:w,class:v(["history-item",[s.status,{active:((m=l.value)==null?void 0:m.nodeId)===s.nodeId}]]),onClick:re=>g(s)},[e("div",q,[e("span",G,u(s.nodeLabel||((x=f(b)(s.nodeType))==null?void 0:x.label)||s.nodeType),1),e("span",{class:v(["history-status-badge",s.status])},u(f(R)(s.status)),3)]),e("div",K,[e("span",P,u(new Date(s.timestamp).toLocaleTimeString()),1)])],10,Y)}),128))])):(o(),i("div",Q,[...t[9]||(t[9]=[e("div",{class:"no-history-content"},[e("i",{class:"fa fa-history"}),e("p",null,"暂无执行历史")],-1)])]))])]),l.value?(o(),i("div",U,[e("div",X,[e("h6",null,u(l.value.nodeLabel||((c=f(b)(l.value.nodeType))==null?void 0:c.label)||l.value.nodeType),1),e("div",Z,[e("button",{class:v(["tab-btn",{active:r.value==="input"}]),onClick:t[0]||(t[0]=s=>r.value="input")}," 输入 ",2),e("button",{class:v(["tab-btn",{active:r.value==="output"}]),onClick:t[1]||(t[1]=s=>r.value="output")}," 输出 ",2)])]),e("div",ee,[r.value==="input"?(o(),i("div",te,[l.value.inputs&&Object.keys(l.value.inputs).length>0?(o(),i("button",{key:0,class:"copy-btn-floating",onClick:t[2]||(t[2]=s=>h(l.value.inputs)),title:"复制"},[...t[10]||(t[10]=[e("i",{class:"fa fa-copy"},null,-1)])])):d("",!0),e("pre",se,u(JSON.stringify(_(l.value.inputs||{}),null,2)),1)])):d("",!0),r.value==="output"?(o(),i("div",oe,[l.value.result&&Object.keys(l.value.result).length>0?(o(),i("button",{key:0,class:"copy-btn-floating",onClick:t[3]||(t[3]=s=>h(l.value.result)),title:"复制"},[...t[11]||(t[11]=[e("i",{class:"fa fa-copy"},null,-1)])])):d("",!0),e("pre",ie,u(JSON.stringify(_(l.value.result||{}),null,2)),1)])):d("",!0)])])):(o(),i("div",le,[...t[12]||(t[12]=[e("div",{class:"empty-state"},[e("i",{class:"fa fa-mouse-pointer"}),e("p",null,"点击左侧节点查看详情")],-1)])]))])]),j(S,{name:"fade"},{default:O(()=>[y.value?(o(),i("div",ae,"已复制")):d("",!0)]),_:1})])}}},_e=D(ne,[["__scopeId","data-v-5b99f9ea"]]);export{_e as default}; diff --git a/apps/jingrow/frontend/dist/assets/FieldRenderer-96c1a911.js b/apps/jingrow/frontend/dist/assets/FieldRenderer-53748ec1.js similarity index 52% rename from apps/jingrow/frontend/dist/assets/FieldRenderer-96c1a911.js rename to apps/jingrow/frontend/dist/assets/FieldRenderer-53748ec1.js index e44a42a..8a18a3d 100644 --- a/apps/jingrow/frontend/dist/assets/FieldRenderer-96c1a911.js +++ b/apps/jingrow/frontend/dist/assets/FieldRenderer-53748ec1.js @@ -1 +1 @@ -import{_ as m}from"./FieldRenderer.vue_vue_type_script_setup_true_lang-464d7d5a.js";import"./index-b37e64ca.js";export{m as default}; +import{_ as m}from"./FieldRenderer.vue_vue_type_script_setup_true_lang-7adedf0d.js";import"./index-7b482730.js";export{m as default}; diff --git a/apps/jingrow/frontend/dist/assets/FieldRenderer.vue_vue_type_script_setup_true_lang-464d7d5a.js b/apps/jingrow/frontend/dist/assets/FieldRenderer.vue_vue_type_script_setup_true_lang-464d7d5a.js deleted file mode 100644 index 2eaf882..0000000 --- a/apps/jingrow/frontend/dist/assets/FieldRenderer.vue_vue_type_script_setup_true_lang-464d7d5a.js +++ /dev/null @@ -1 +0,0 @@ -import{a8 as _,d as A,c as E,D,a9 as L,e as O,g as d,l as p,ab as a}from"./index-b37e64ca.js";const m=(u,o)=>{const r=u[o];return r?typeof r=="function"?r():Promise.resolve(r):new Promise((i,l)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(l.bind(null,new Error("Unknown variable dynamic import: "+o)))})},I=Object.assign({"/src/views/pagetype/file/form/controls/HTML.vue":()=>_(()=>import("./HTML-2425a86a.js"),["assets/HTML-2425a86a.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/HTML-97e0e518.css"])}),R=Object.assign({"/src/views/pagetype/file/form/controls/HTML.vue":()=>_(()=>import("./HTML-2425a86a.js"),["assets/HTML-2425a86a.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/HTML-97e0e518.css"])}),P=[];function V(){return Array.isArray([])&&[].length>0?[]:["jingrow"]}function h(u){const r=V().indexOf(u);return r>=0?r:-1}function f(u){const o=u.replace(/\\/g,"/").replace(/^\/@fs\//,"/");if(o.startsWith("/src/"))return"jingrow";const r=/(?:^|\/)apps\/([^/]+)\/frontend\//,i=/(?:^|\/)@apps\/([^/]+)\/frontend\//,l=o.match(r);if(l&&l[1])return l[1];const n=o.match(i);if(n&&n[1])return n[1];const s=/(?:^|\/)\.\.\/([^/]+)\/frontend\/src\//,c=o.match(s);if(c&&c[1]&&c[1]!=="jingrow")return c[1];const t=o.split("/").filter(Boolean);let e=t.indexOf("apps");return e<0&&(e=t.indexOf("@apps")),e>=0&&e+1=o.length||i+1>=o.length)return null;const l=o[r+1],s=o[i+1].replace(/\.vue$/i,"");return{entity:l,fieldtype:s}}function T(u){for(const[o,r]of Object.entries(u)){const i=g(o);i&&P.push({loader:r,appName:f(o),fullPath:o,entity:i.entity,fieldtype:i.fieldtype})}}T(I);T(R);const v={};for(const u of P){const o=`${u.entity}:${u.fieldtype}`;v[o]||(v[o]=[]),v[o].push(u)}for(const u of Object.keys(v))v[u].sort((o,r)=>{const i=h(o.appName),l=h(r.appName);if(i!==l)return l-i;const n=o.fullPath.includes("/apps/")||o.fullPath.includes("@apps/"),s=r.fullPath.includes("/apps/")||r.fullPath.includes("@apps/");return n!==s?n?-1:1:o.fullPath.length!==r.fullPath.length?o.fullPath.length-r.fullPath.length:o.fullPath.localeCompare(r.fullPath)});async function y(u,o){if(!u||!o)return null;const r=`${u.toLowerCase().replace(/-/g,"_")}:${String(o).replace(/\s+/g,"")}`;let i=v[r];if((!i||i.length===0)&&(i=v[`_global:${String(o).replace(/\s+/g,"")}`]),!i||i.length===0)return null;try{const l=await i[0].loader();return(l==null?void 0:l.default)??l}catch{return null}}const k={key:1,class:"field-value"},M=A({__name:"FieldRenderer",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(u){const o=u,r=E(()=>!(!o.canEdit||o.df.read_only===1));function i(n){return n.replace(/\s+/g,"")}const l=E(()=>{var c;const n=i(String(o.df.fieldtype||""));if(!n)return null;const s=(c=o.ctx)==null?void 0:c.entity;if(s)try{return a(async()=>{const t=await y(s,n);return t||m(Object.assign({"./controls/Attach.vue":()=>_(()=>import("./Attach-8276bb81.js").then(e=>e._),["assets/Attach-8276bb81.js","assets/common-0beb20f4.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Attach-c8ad1cd3.css"]),"./controls/AttachImage.vue":()=>_(()=>import("./AttachImage-e6f5c274.js").then(e=>e._),["assets/AttachImage-e6f5c274.js","assets/common-0beb20f4.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/AttachImage-7d44c0de.css"]),"./controls/Autocomplete.vue":()=>_(()=>import("./Autocomplete-7b31bbab.js").then(e=>e._),["assets/Autocomplete-7b31bbab.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Autocomplete-516339c6.css"]),"./controls/Barcode.vue":()=>_(()=>import("./Barcode-719e9569.js").then(e=>e._),["assets/Barcode-719e9569.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Barcode-38d1adf5.css"]),"./controls/Button.vue":()=>_(()=>import("./Button-a612ab31.js").then(e=>e._),["assets/Button-a612ab31.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Button-56079bd3.css"]),"./controls/Check.vue":()=>_(()=>import("./Check-fb5a1570.js").then(e=>e._),["assets/Check-fb5a1570.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Check-fde95c17.css"]),"./controls/Code.vue":()=>_(()=>import("./Code-01463ed1.js").then(e=>e._),["assets/Code-01463ed1.js","assets/index-2d2e8bf3.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Code-40ef4836.css"]),"./controls/Color.vue":()=>_(()=>import("./Color-2263ebad.js").then(e=>e._),["assets/Color-2263ebad.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Color-bd04798e.css"]),"./controls/Comment.vue":()=>_(()=>import("./Comment-4474028c.js").then(e=>e._),["assets/Comment-4474028c.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Comment-0f3aab98.css"]),"./controls/CronEditor.vue":()=>_(()=>import("./CronEditor-8edd4409.js").then(e=>e._),["assets/CronEditor-8edd4409.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/CronEditor-3a75aedb.css"]),"./controls/Currency.vue":()=>_(()=>import("./Currency-ea3fff6b.js").then(e=>e._),["assets/Currency-ea3fff6b.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Currency-58bf1f16.css"]),"./controls/Data.vue":()=>_(()=>import("./Data-b998e8ff.js").then(e=>e._),["assets/Data-b998e8ff.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Data-8493e7ad.css"]),"./controls/Date.vue":()=>_(()=>import("./Date-d9d7fa30.js").then(e=>e._),["assets/Date-d9d7fa30.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Date-6e2aaf45.css"]),"./controls/DateRange.vue":()=>_(()=>import("./DateRange-10631955.js").then(e=>e._),["assets/DateRange-10631955.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/DateRange-93ce54f7.css"]),"./controls/Datetime.vue":()=>_(()=>import("./Datetime-07afed2b.js").then(e=>e._),["assets/Datetime-07afed2b.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Datetime-9f05aa87.css"]),"./controls/Duration.vue":()=>_(()=>import("./Duration-0b5f170c.js").then(e=>e._),["assets/Duration-0b5f170c.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Duration-800eb9ee.css"]),"./controls/DynamicLink.vue":()=>_(()=>import("./DynamicLink-07536e48.js").then(e=>e._),["assets/DynamicLink-07536e48.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/DynamicLink-cf70976f.css"]),"./controls/Float.vue":()=>_(()=>import("./Float-8c96ff2b.js").then(e=>e._),["assets/Float-8c96ff2b.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Float-e9034d6f.css"]),"./controls/Geolocation.vue":()=>_(()=>import("./Geolocation-aba67e02.js").then(e=>e._),["assets/Geolocation-aba67e02.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Geolocation-53613cdc.css"]),"./controls/HTML.vue":()=>_(()=>import("./HTML-f1d2e10e.js").then(e=>e._),["assets/HTML-f1d2e10e.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/HTML-001056b5.css"]),"./controls/HTMLEditor.vue":()=>_(()=>import("./HTMLEditor-2c00cb22.js").then(e=>e._),["assets/HTMLEditor-2c00cb22.js","assets/index-2d2e8bf3.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/HTMLEditor-da363245.css"]),"./controls/Heading.vue":()=>_(()=>import("./Heading-7bb40e5b.js").then(e=>e._),["assets/Heading-7bb40e5b.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Heading-96be6be6.css"]),"./controls/Icon.vue":()=>_(()=>import("./Icon-d4eb6846.js").then(e=>e._),["assets/Icon-d4eb6846.js","assets/iconify-b5ab1212.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/IconPicker-5c7938fe.js","assets/index-73986d31.js","assets/_plugin-vue_export-helper-c27b6911.js","assets/IconPicker-1d3392a9.css","assets/Icon-175ab1a3.css"]),"./controls/Image.vue":()=>_(()=>import("./Image-85b37f18.js").then(e=>e._),["assets/Image-85b37f18.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Image-99476d84.css"]),"./controls/Int.vue":()=>_(()=>import("./Int-cb384090.js").then(e=>e._),["assets/Int-cb384090.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Int-659d1204.css"]),"./controls/JSON.vue":()=>_(()=>import("./JSON-58e60940.js").then(e=>e._),["assets/JSON-58e60940.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/JSON-e50cb536.css"]),"./controls/Jeditor.vue":()=>_(()=>import("./Jeditor-daae2995.js").then(e=>e._),["assets/Jeditor-daae2995.js","assets/Jeditor.vue_vue_type_style_index_0_lang-27957db9.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/common-0beb20f4.js","assets/Jeditor-c552a82f.css"]),"./controls/Link.vue":()=>_(()=>import("./Link-343da71e.js").then(e=>e._),["assets/Link-343da71e.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/iconify-b5ab1212.js","assets/common-0beb20f4.js","assets/slug-217ba005.js","assets/_plugin-vue_export-helper-c27b6911.js","assets/Link-36f94aa6.css"]),"./controls/LongText.vue":()=>_(()=>import("./LongText-34963ee2.js").then(e=>e._),["assets/LongText-34963ee2.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/LongText-08a19895.css"]),"./controls/MarkdownEditor.vue":()=>_(()=>import("./MarkdownEditor-e284f6a7.js").then(e=>e._),["assets/MarkdownEditor-e284f6a7.js","assets/index-2d2e8bf3.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/MarkdownEditor-89419c24.css"]),"./controls/MultiCheck.vue":()=>_(()=>import("./MultiCheck-06484c13.js").then(e=>e._),["assets/MultiCheck-06484c13.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/MultiCheck-dcdd6a2f.css"]),"./controls/MultiSelect.vue":()=>_(()=>import("./MultiSelect-a8b10d4a.js").then(e=>e._),["assets/MultiSelect-a8b10d4a.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/MultiSelect-533500c8.css"]),"./controls/MultiSelectList.vue":()=>_(()=>import("./MultiSelectList-7399647b.js").then(e=>e._),["assets/MultiSelectList-7399647b.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/MultiSelectList-d72c9fa6.css"]),"./controls/MultiSelectPills.vue":()=>_(()=>import("./MultiSelectPills-3dd80529.js").then(e=>e._),["assets/MultiSelectPills-3dd80529.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/MultiSelectPills-75741655.css"]),"./controls/Password.vue":()=>_(()=>import("./Password-9db4e189.js").then(e=>e._),["assets/Password-9db4e189.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Password-6c897bb6.css"]),"./controls/Percent.vue":()=>_(()=>import("./Percent-2e2456c4.js").then(e=>e._),["assets/Percent-2e2456c4.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Percent-5230862a.css"]),"./controls/Phone.vue":()=>_(()=>import("./Phone-5865a10d.js").then(e=>e._),["assets/Phone-5865a10d.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Phone-6f74dbad.css"]),"./controls/Rating.vue":()=>_(()=>import("./Rating-a567e4d3.js").then(e=>e._),["assets/Rating-a567e4d3.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Rating-0f221503.css"]),"./controls/Select.vue":()=>_(()=>import("./Select-5b49c9cf.js").then(e=>e._),["assets/Select-5b49c9cf.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Select-78e47719.css"]),"./controls/Signature.vue":()=>_(()=>import("./Signature-d2f5f930.js").then(e=>e._),["assets/Signature-d2f5f930.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Signature-39609589.css"]),"./controls/SmallText.vue":()=>_(()=>import("./SmallText-b65f144b.js").then(e=>e._),["assets/SmallText-b65f144b.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/SmallText-28cc6705.css"]),"./controls/Table.vue":()=>_(()=>import("./Table-918c7db3.js").then(e=>e._),["assets/Table-918c7db3.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/iconify-b5ab1212.js","assets/_plugin-vue_export-helper-c27b6911.js","assets/Table-72749cdd.css"]),"./controls/TableMultiSelect.vue":()=>_(()=>import("./TableMultiSelect-7d19ef1f.js").then(e=>e._),["assets/TableMultiSelect-7d19ef1f.js","assets/index-b37e64ca.js","assets/index-3d86671b.css"]),"./controls/Text.vue":()=>_(()=>import("./Text-fd382873.js").then(e=>e._),["assets/Text-fd382873.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Text-68de82ad.css"]),"./controls/TextEditor.vue":()=>_(()=>import("./TextEditor-82ec254b.js").then(e=>e._),["assets/TextEditor-82ec254b.js","assets/_commonjsHelpers-de833af9.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/TextEditor-48efdb66.css"]),"./controls/Time.vue":()=>_(()=>import("./Time-da0b8920.js").then(e=>e._),["assets/Time-da0b8920.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Time-fc75c02c.css"])}),`./controls/${n}.vue`)})}catch{}try{return a(()=>m(Object.assign({"./controls/Attach.vue":()=>_(()=>import("./Attach-8276bb81.js").then(t=>t._),["assets/Attach-8276bb81.js","assets/common-0beb20f4.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Attach-c8ad1cd3.css"]),"./controls/AttachImage.vue":()=>_(()=>import("./AttachImage-e6f5c274.js").then(t=>t._),["assets/AttachImage-e6f5c274.js","assets/common-0beb20f4.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/AttachImage-7d44c0de.css"]),"./controls/Autocomplete.vue":()=>_(()=>import("./Autocomplete-7b31bbab.js").then(t=>t._),["assets/Autocomplete-7b31bbab.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Autocomplete-516339c6.css"]),"./controls/Barcode.vue":()=>_(()=>import("./Barcode-719e9569.js").then(t=>t._),["assets/Barcode-719e9569.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Barcode-38d1adf5.css"]),"./controls/Button.vue":()=>_(()=>import("./Button-a612ab31.js").then(t=>t._),["assets/Button-a612ab31.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Button-56079bd3.css"]),"./controls/Check.vue":()=>_(()=>import("./Check-fb5a1570.js").then(t=>t._),["assets/Check-fb5a1570.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Check-fde95c17.css"]),"./controls/Code.vue":()=>_(()=>import("./Code-01463ed1.js").then(t=>t._),["assets/Code-01463ed1.js","assets/index-2d2e8bf3.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Code-40ef4836.css"]),"./controls/Color.vue":()=>_(()=>import("./Color-2263ebad.js").then(t=>t._),["assets/Color-2263ebad.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Color-bd04798e.css"]),"./controls/Comment.vue":()=>_(()=>import("./Comment-4474028c.js").then(t=>t._),["assets/Comment-4474028c.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Comment-0f3aab98.css"]),"./controls/CronEditor.vue":()=>_(()=>import("./CronEditor-8edd4409.js").then(t=>t._),["assets/CronEditor-8edd4409.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/CronEditor-3a75aedb.css"]),"./controls/Currency.vue":()=>_(()=>import("./Currency-ea3fff6b.js").then(t=>t._),["assets/Currency-ea3fff6b.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Currency-58bf1f16.css"]),"./controls/Data.vue":()=>_(()=>import("./Data-b998e8ff.js").then(t=>t._),["assets/Data-b998e8ff.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Data-8493e7ad.css"]),"./controls/Date.vue":()=>_(()=>import("./Date-d9d7fa30.js").then(t=>t._),["assets/Date-d9d7fa30.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Date-6e2aaf45.css"]),"./controls/DateRange.vue":()=>_(()=>import("./DateRange-10631955.js").then(t=>t._),["assets/DateRange-10631955.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/DateRange-93ce54f7.css"]),"./controls/Datetime.vue":()=>_(()=>import("./Datetime-07afed2b.js").then(t=>t._),["assets/Datetime-07afed2b.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Datetime-9f05aa87.css"]),"./controls/Duration.vue":()=>_(()=>import("./Duration-0b5f170c.js").then(t=>t._),["assets/Duration-0b5f170c.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Duration-800eb9ee.css"]),"./controls/DynamicLink.vue":()=>_(()=>import("./DynamicLink-07536e48.js").then(t=>t._),["assets/DynamicLink-07536e48.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/DynamicLink-cf70976f.css"]),"./controls/Float.vue":()=>_(()=>import("./Float-8c96ff2b.js").then(t=>t._),["assets/Float-8c96ff2b.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Float-e9034d6f.css"]),"./controls/Geolocation.vue":()=>_(()=>import("./Geolocation-aba67e02.js").then(t=>t._),["assets/Geolocation-aba67e02.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Geolocation-53613cdc.css"]),"./controls/HTML.vue":()=>_(()=>import("./HTML-f1d2e10e.js").then(t=>t._),["assets/HTML-f1d2e10e.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/HTML-001056b5.css"]),"./controls/HTMLEditor.vue":()=>_(()=>import("./HTMLEditor-2c00cb22.js").then(t=>t._),["assets/HTMLEditor-2c00cb22.js","assets/index-2d2e8bf3.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/HTMLEditor-da363245.css"]),"./controls/Heading.vue":()=>_(()=>import("./Heading-7bb40e5b.js").then(t=>t._),["assets/Heading-7bb40e5b.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Heading-96be6be6.css"]),"./controls/Icon.vue":()=>_(()=>import("./Icon-d4eb6846.js").then(t=>t._),["assets/Icon-d4eb6846.js","assets/iconify-b5ab1212.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/IconPicker-5c7938fe.js","assets/index-73986d31.js","assets/_plugin-vue_export-helper-c27b6911.js","assets/IconPicker-1d3392a9.css","assets/Icon-175ab1a3.css"]),"./controls/Image.vue":()=>_(()=>import("./Image-85b37f18.js").then(t=>t._),["assets/Image-85b37f18.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Image-99476d84.css"]),"./controls/Int.vue":()=>_(()=>import("./Int-cb384090.js").then(t=>t._),["assets/Int-cb384090.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Int-659d1204.css"]),"./controls/JSON.vue":()=>_(()=>import("./JSON-58e60940.js").then(t=>t._),["assets/JSON-58e60940.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/JSON-e50cb536.css"]),"./controls/Jeditor.vue":()=>_(()=>import("./Jeditor-daae2995.js").then(t=>t._),["assets/Jeditor-daae2995.js","assets/Jeditor.vue_vue_type_style_index_0_lang-27957db9.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/common-0beb20f4.js","assets/Jeditor-c552a82f.css"]),"./controls/Link.vue":()=>_(()=>import("./Link-343da71e.js").then(t=>t._),["assets/Link-343da71e.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/iconify-b5ab1212.js","assets/common-0beb20f4.js","assets/slug-217ba005.js","assets/_plugin-vue_export-helper-c27b6911.js","assets/Link-36f94aa6.css"]),"./controls/LongText.vue":()=>_(()=>import("./LongText-34963ee2.js").then(t=>t._),["assets/LongText-34963ee2.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/LongText-08a19895.css"]),"./controls/MarkdownEditor.vue":()=>_(()=>import("./MarkdownEditor-e284f6a7.js").then(t=>t._),["assets/MarkdownEditor-e284f6a7.js","assets/index-2d2e8bf3.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/MarkdownEditor-89419c24.css"]),"./controls/MultiCheck.vue":()=>_(()=>import("./MultiCheck-06484c13.js").then(t=>t._),["assets/MultiCheck-06484c13.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/MultiCheck-dcdd6a2f.css"]),"./controls/MultiSelect.vue":()=>_(()=>import("./MultiSelect-a8b10d4a.js").then(t=>t._),["assets/MultiSelect-a8b10d4a.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/MultiSelect-533500c8.css"]),"./controls/MultiSelectList.vue":()=>_(()=>import("./MultiSelectList-7399647b.js").then(t=>t._),["assets/MultiSelectList-7399647b.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/MultiSelectList-d72c9fa6.css"]),"./controls/MultiSelectPills.vue":()=>_(()=>import("./MultiSelectPills-3dd80529.js").then(t=>t._),["assets/MultiSelectPills-3dd80529.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/MultiSelectPills-75741655.css"]),"./controls/Password.vue":()=>_(()=>import("./Password-9db4e189.js").then(t=>t._),["assets/Password-9db4e189.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Password-6c897bb6.css"]),"./controls/Percent.vue":()=>_(()=>import("./Percent-2e2456c4.js").then(t=>t._),["assets/Percent-2e2456c4.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Percent-5230862a.css"]),"./controls/Phone.vue":()=>_(()=>import("./Phone-5865a10d.js").then(t=>t._),["assets/Phone-5865a10d.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Phone-6f74dbad.css"]),"./controls/Rating.vue":()=>_(()=>import("./Rating-a567e4d3.js").then(t=>t._),["assets/Rating-a567e4d3.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Rating-0f221503.css"]),"./controls/Select.vue":()=>_(()=>import("./Select-5b49c9cf.js").then(t=>t._),["assets/Select-5b49c9cf.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Select-78e47719.css"]),"./controls/Signature.vue":()=>_(()=>import("./Signature-d2f5f930.js").then(t=>t._),["assets/Signature-d2f5f930.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Signature-39609589.css"]),"./controls/SmallText.vue":()=>_(()=>import("./SmallText-b65f144b.js").then(t=>t._),["assets/SmallText-b65f144b.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/SmallText-28cc6705.css"]),"./controls/Table.vue":()=>_(()=>import("./Table-918c7db3.js").then(t=>t._),["assets/Table-918c7db3.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/iconify-b5ab1212.js","assets/_plugin-vue_export-helper-c27b6911.js","assets/Table-72749cdd.css"]),"./controls/TableMultiSelect.vue":()=>_(()=>import("./TableMultiSelect-7d19ef1f.js").then(t=>t._),["assets/TableMultiSelect-7d19ef1f.js","assets/index-b37e64ca.js","assets/index-3d86671b.css"]),"./controls/Text.vue":()=>_(()=>import("./Text-fd382873.js").then(t=>t._),["assets/Text-fd382873.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Text-68de82ad.css"]),"./controls/TextEditor.vue":()=>_(()=>import("./TextEditor-82ec254b.js").then(t=>t._),["assets/TextEditor-82ec254b.js","assets/_commonjsHelpers-de833af9.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/TextEditor-48efdb66.css"]),"./controls/Time.vue":()=>_(()=>import("./Time-da0b8920.js").then(t=>t._),["assets/Time-da0b8920.js","assets/index-b37e64ca.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Time-fc75c02c.css"])}),`./controls/${n}.vue`))}catch{return null}});return(n,s)=>l.value?(p(),D(L(l.value),{key:0,df:n.df,record:n.record,"can-edit":r.value,ctx:n.ctx,modelValue:n.record[n.df.fieldname],"onUpdate:modelValue":s[0]||(s[0]=c=>n.record[n.df.fieldname]=c),disabled:!r.value},null,8,["df","record","can-edit","ctx","modelValue","disabled"])):(p(),O("span",k,d(n.ctx.t("Unsupported field type"))+": "+d(n.df.fieldtype),1))}});export{M as _}; diff --git a/apps/jingrow/frontend/dist/assets/FieldRenderer.vue_vue_type_script_setup_true_lang-7adedf0d.js b/apps/jingrow/frontend/dist/assets/FieldRenderer.vue_vue_type_script_setup_true_lang-7adedf0d.js new file mode 100644 index 0000000..24d2631 --- /dev/null +++ b/apps/jingrow/frontend/dist/assets/FieldRenderer.vue_vue_type_script_setup_true_lang-7adedf0d.js @@ -0,0 +1 @@ +import{a8 as _,d as A,c as E,D,a9 as L,e as O,g as d,l as p,ab as a}from"./index-7b482730.js";const m=(u,o)=>{const r=u[o];return r?typeof r=="function"?r():Promise.resolve(r):new Promise((i,l)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(l.bind(null,new Error("Unknown variable dynamic import: "+o)))})},I=Object.assign({"/src/views/pagetype/file/form/controls/HTML.vue":()=>_(()=>import("./HTML-e4ff5ef2.js"),["assets/HTML-e4ff5ef2.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/HTML-97e0e518.css"])}),R=Object.assign({"/src/views/pagetype/file/form/controls/HTML.vue":()=>_(()=>import("./HTML-e4ff5ef2.js"),["assets/HTML-e4ff5ef2.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/HTML-97e0e518.css"])}),P=[];function V(){return Array.isArray([])&&[].length>0?[]:["jingrow"]}function h(u){const r=V().indexOf(u);return r>=0?r:-1}function f(u){const o=u.replace(/\\/g,"/").replace(/^\/@fs\//,"/");if(o.startsWith("/src/"))return"jingrow";const r=/(?:^|\/)apps\/([^/]+)\/frontend\//,i=/(?:^|\/)@apps\/([^/]+)\/frontend\//,l=o.match(r);if(l&&l[1])return l[1];const n=o.match(i);if(n&&n[1])return n[1];const s=/(?:^|\/)\.\.\/([^/]+)\/frontend\/src\//,c=o.match(s);if(c&&c[1]&&c[1]!=="jingrow")return c[1];const t=o.split("/").filter(Boolean);let e=t.indexOf("apps");return e<0&&(e=t.indexOf("@apps")),e>=0&&e+1=o.length||i+1>=o.length)return null;const l=o[r+1],s=o[i+1].replace(/\.vue$/i,"");return{entity:l,fieldtype:s}}function T(u){for(const[o,r]of Object.entries(u)){const i=g(o);i&&P.push({loader:r,appName:f(o),fullPath:o,entity:i.entity,fieldtype:i.fieldtype})}}T(I);T(R);const v={};for(const u of P){const o=`${u.entity}:${u.fieldtype}`;v[o]||(v[o]=[]),v[o].push(u)}for(const u of Object.keys(v))v[u].sort((o,r)=>{const i=h(o.appName),l=h(r.appName);if(i!==l)return l-i;const n=o.fullPath.includes("/apps/")||o.fullPath.includes("@apps/"),s=r.fullPath.includes("/apps/")||r.fullPath.includes("@apps/");return n!==s?n?-1:1:o.fullPath.length!==r.fullPath.length?o.fullPath.length-r.fullPath.length:o.fullPath.localeCompare(r.fullPath)});async function y(u,o){if(!u||!o)return null;const r=`${u.toLowerCase().replace(/-/g,"_")}:${String(o).replace(/\s+/g,"")}`;let i=v[r];if((!i||i.length===0)&&(i=v[`_global:${String(o).replace(/\s+/g,"")}`]),!i||i.length===0)return null;try{const l=await i[0].loader();return(l==null?void 0:l.default)??l}catch{return null}}const k={key:1,class:"field-value"},M=A({__name:"FieldRenderer",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(u){const o=u,r=E(()=>!(!o.canEdit||o.df.read_only===1));function i(n){return n.replace(/\s+/g,"")}const l=E(()=>{var c;const n=i(String(o.df.fieldtype||""));if(!n)return null;const s=(c=o.ctx)==null?void 0:c.entity;if(s)try{return a(async()=>{const t=await y(s,n);return t||m(Object.assign({"./controls/Attach.vue":()=>_(()=>import("./Attach-4627ede0.js").then(e=>e._),["assets/Attach-4627ede0.js","assets/common-a0065b74.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Attach-c8ad1cd3.css"]),"./controls/AttachImage.vue":()=>_(()=>import("./AttachImage-c5181b42.js").then(e=>e._),["assets/AttachImage-c5181b42.js","assets/common-a0065b74.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/AttachImage-7d44c0de.css"]),"./controls/Autocomplete.vue":()=>_(()=>import("./Autocomplete-e76c53a6.js").then(e=>e._),["assets/Autocomplete-e76c53a6.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Autocomplete-516339c6.css"]),"./controls/Barcode.vue":()=>_(()=>import("./Barcode-b3bbd4be.js").then(e=>e._),["assets/Barcode-b3bbd4be.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Barcode-38d1adf5.css"]),"./controls/Button.vue":()=>_(()=>import("./Button-c2adfcfc.js").then(e=>e._),["assets/Button-c2adfcfc.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Button-56079bd3.css"]),"./controls/Check.vue":()=>_(()=>import("./Check-24e0c7d2.js").then(e=>e._),["assets/Check-24e0c7d2.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Check-fde95c17.css"]),"./controls/Code.vue":()=>_(()=>import("./Code-a486a048.js").then(e=>e._),["assets/Code-a486a048.js","assets/index-2d2e8bf3.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Code-40ef4836.css"]),"./controls/Color.vue":()=>_(()=>import("./Color-5d20723d.js").then(e=>e._),["assets/Color-5d20723d.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Color-bd04798e.css"]),"./controls/Comment.vue":()=>_(()=>import("./Comment-dc20eab5.js").then(e=>e._),["assets/Comment-dc20eab5.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Comment-0f3aab98.css"]),"./controls/CronEditor.vue":()=>_(()=>import("./CronEditor-dfbcf304.js").then(e=>e._),["assets/CronEditor-dfbcf304.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/CronEditor-3a75aedb.css"]),"./controls/Currency.vue":()=>_(()=>import("./Currency-e7293724.js").then(e=>e._),["assets/Currency-e7293724.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Currency-58bf1f16.css"]),"./controls/Data.vue":()=>_(()=>import("./Data-7934e730.js").then(e=>e._),["assets/Data-7934e730.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Data-8493e7ad.css"]),"./controls/Date.vue":()=>_(()=>import("./Date-763305af.js").then(e=>e._),["assets/Date-763305af.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Date-6e2aaf45.css"]),"./controls/DateRange.vue":()=>_(()=>import("./DateRange-74c289f4.js").then(e=>e._),["assets/DateRange-74c289f4.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/DateRange-93ce54f7.css"]),"./controls/Datetime.vue":()=>_(()=>import("./Datetime-5b4889cc.js").then(e=>e._),["assets/Datetime-5b4889cc.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Datetime-9f05aa87.css"]),"./controls/Duration.vue":()=>_(()=>import("./Duration-d579c52e.js").then(e=>e._),["assets/Duration-d579c52e.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Duration-800eb9ee.css"]),"./controls/DynamicLink.vue":()=>_(()=>import("./DynamicLink-32decd06.js").then(e=>e._),["assets/DynamicLink-32decd06.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/DynamicLink-cf70976f.css"]),"./controls/Float.vue":()=>_(()=>import("./Float-0aad1a66.js").then(e=>e._),["assets/Float-0aad1a66.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Float-e9034d6f.css"]),"./controls/Geolocation.vue":()=>_(()=>import("./Geolocation-373e65fa.js").then(e=>e._),["assets/Geolocation-373e65fa.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Geolocation-53613cdc.css"]),"./controls/HTML.vue":()=>_(()=>import("./HTML-1a069d19.js").then(e=>e._),["assets/HTML-1a069d19.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/HTML-001056b5.css"]),"./controls/HTMLEditor.vue":()=>_(()=>import("./HTMLEditor-1c6a4caf.js").then(e=>e._),["assets/HTMLEditor-1c6a4caf.js","assets/index-2d2e8bf3.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/HTMLEditor-da363245.css"]),"./controls/Heading.vue":()=>_(()=>import("./Heading-91fede8f.js").then(e=>e._),["assets/Heading-91fede8f.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Heading-96be6be6.css"]),"./controls/Icon.vue":()=>_(()=>import("./Icon-cfe49052.js").then(e=>e._),["assets/Icon-cfe49052.js","assets/iconify-30ae5ba5.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/IconPicker-2d07cad1.js","assets/index-2fe8616a.js","assets/_plugin-vue_export-helper-c27b6911.js","assets/IconPicker-1d3392a9.css","assets/Icon-175ab1a3.css"]),"./controls/Image.vue":()=>_(()=>import("./Image-0feee1f3.js").then(e=>e._),["assets/Image-0feee1f3.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Image-99476d84.css"]),"./controls/Int.vue":()=>_(()=>import("./Int-88866b25.js").then(e=>e._),["assets/Int-88866b25.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Int-659d1204.css"]),"./controls/JSON.vue":()=>_(()=>import("./JSON-8353e669.js").then(e=>e._),["assets/JSON-8353e669.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/JSON-e50cb536.css"]),"./controls/Jeditor.vue":()=>_(()=>import("./Jeditor-482b2d2d.js").then(e=>e._),["assets/Jeditor-482b2d2d.js","assets/Jeditor.vue_vue_type_style_index_0_lang-1cf7520f.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/common-a0065b74.js","assets/Jeditor-c552a82f.css"]),"./controls/Link.vue":()=>_(()=>import("./Link-e3a40d9c.js").then(e=>e._),["assets/Link-e3a40d9c.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/iconify-30ae5ba5.js","assets/common-a0065b74.js","assets/slug-c378c25f.js","assets/_plugin-vue_export-helper-c27b6911.js","assets/Link-36f94aa6.css"]),"./controls/LongText.vue":()=>_(()=>import("./LongText-6a20c0d8.js").then(e=>e._),["assets/LongText-6a20c0d8.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/LongText-08a19895.css"]),"./controls/MarkdownEditor.vue":()=>_(()=>import("./MarkdownEditor-bb608218.js").then(e=>e._),["assets/MarkdownEditor-bb608218.js","assets/index-2d2e8bf3.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/MarkdownEditor-89419c24.css"]),"./controls/MultiCheck.vue":()=>_(()=>import("./MultiCheck-3ad7391b.js").then(e=>e._),["assets/MultiCheck-3ad7391b.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/MultiCheck-dcdd6a2f.css"]),"./controls/MultiSelect.vue":()=>_(()=>import("./MultiSelect-17bab1f5.js").then(e=>e._),["assets/MultiSelect-17bab1f5.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/MultiSelect-533500c8.css"]),"./controls/MultiSelectList.vue":()=>_(()=>import("./MultiSelectList-cb3c53c2.js").then(e=>e._),["assets/MultiSelectList-cb3c53c2.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/MultiSelectList-d72c9fa6.css"]),"./controls/MultiSelectPills.vue":()=>_(()=>import("./MultiSelectPills-2c3638ce.js").then(e=>e._),["assets/MultiSelectPills-2c3638ce.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/MultiSelectPills-75741655.css"]),"./controls/Password.vue":()=>_(()=>import("./Password-1628507d.js").then(e=>e._),["assets/Password-1628507d.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Password-6c897bb6.css"]),"./controls/Percent.vue":()=>_(()=>import("./Percent-7a55d50d.js").then(e=>e._),["assets/Percent-7a55d50d.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Percent-5230862a.css"]),"./controls/Phone.vue":()=>_(()=>import("./Phone-183c9dac.js").then(e=>e._),["assets/Phone-183c9dac.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Phone-6f74dbad.css"]),"./controls/Rating.vue":()=>_(()=>import("./Rating-c3e83385.js").then(e=>e._),["assets/Rating-c3e83385.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Rating-0f221503.css"]),"./controls/Select.vue":()=>_(()=>import("./Select-27d3c7bc.js").then(e=>e._),["assets/Select-27d3c7bc.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Select-78e47719.css"]),"./controls/Signature.vue":()=>_(()=>import("./Signature-5b7271c1.js").then(e=>e._),["assets/Signature-5b7271c1.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Signature-39609589.css"]),"./controls/SmallText.vue":()=>_(()=>import("./SmallText-737cdfbd.js").then(e=>e._),["assets/SmallText-737cdfbd.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/SmallText-28cc6705.css"]),"./controls/Table.vue":()=>_(()=>import("./Table-0955984f.js").then(e=>e._),["assets/Table-0955984f.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/iconify-30ae5ba5.js","assets/_plugin-vue_export-helper-c27b6911.js","assets/Table-72749cdd.css"]),"./controls/TableMultiSelect.vue":()=>_(()=>import("./TableMultiSelect-4a586fb2.js").then(e=>e._),["assets/TableMultiSelect-4a586fb2.js","assets/index-7b482730.js","assets/index-3d86671b.css"]),"./controls/Text.vue":()=>_(()=>import("./Text-5d36f57e.js").then(e=>e._),["assets/Text-5d36f57e.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Text-68de82ad.css"]),"./controls/TextEditor.vue":()=>_(()=>import("./TextEditor-bc146615.js").then(e=>e._),["assets/TextEditor-bc146615.js","assets/_commonjsHelpers-de833af9.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/TextEditor-48efdb66.css"]),"./controls/Time.vue":()=>_(()=>import("./Time-693f64a3.js").then(e=>e._),["assets/Time-693f64a3.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Time-fc75c02c.css"])}),`./controls/${n}.vue`)})}catch{}try{return a(()=>m(Object.assign({"./controls/Attach.vue":()=>_(()=>import("./Attach-4627ede0.js").then(t=>t._),["assets/Attach-4627ede0.js","assets/common-a0065b74.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Attach-c8ad1cd3.css"]),"./controls/AttachImage.vue":()=>_(()=>import("./AttachImage-c5181b42.js").then(t=>t._),["assets/AttachImage-c5181b42.js","assets/common-a0065b74.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/AttachImage-7d44c0de.css"]),"./controls/Autocomplete.vue":()=>_(()=>import("./Autocomplete-e76c53a6.js").then(t=>t._),["assets/Autocomplete-e76c53a6.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Autocomplete-516339c6.css"]),"./controls/Barcode.vue":()=>_(()=>import("./Barcode-b3bbd4be.js").then(t=>t._),["assets/Barcode-b3bbd4be.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Barcode-38d1adf5.css"]),"./controls/Button.vue":()=>_(()=>import("./Button-c2adfcfc.js").then(t=>t._),["assets/Button-c2adfcfc.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Button-56079bd3.css"]),"./controls/Check.vue":()=>_(()=>import("./Check-24e0c7d2.js").then(t=>t._),["assets/Check-24e0c7d2.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Check-fde95c17.css"]),"./controls/Code.vue":()=>_(()=>import("./Code-a486a048.js").then(t=>t._),["assets/Code-a486a048.js","assets/index-2d2e8bf3.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Code-40ef4836.css"]),"./controls/Color.vue":()=>_(()=>import("./Color-5d20723d.js").then(t=>t._),["assets/Color-5d20723d.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Color-bd04798e.css"]),"./controls/Comment.vue":()=>_(()=>import("./Comment-dc20eab5.js").then(t=>t._),["assets/Comment-dc20eab5.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Comment-0f3aab98.css"]),"./controls/CronEditor.vue":()=>_(()=>import("./CronEditor-dfbcf304.js").then(t=>t._),["assets/CronEditor-dfbcf304.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/CronEditor-3a75aedb.css"]),"./controls/Currency.vue":()=>_(()=>import("./Currency-e7293724.js").then(t=>t._),["assets/Currency-e7293724.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Currency-58bf1f16.css"]),"./controls/Data.vue":()=>_(()=>import("./Data-7934e730.js").then(t=>t._),["assets/Data-7934e730.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Data-8493e7ad.css"]),"./controls/Date.vue":()=>_(()=>import("./Date-763305af.js").then(t=>t._),["assets/Date-763305af.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Date-6e2aaf45.css"]),"./controls/DateRange.vue":()=>_(()=>import("./DateRange-74c289f4.js").then(t=>t._),["assets/DateRange-74c289f4.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/DateRange-93ce54f7.css"]),"./controls/Datetime.vue":()=>_(()=>import("./Datetime-5b4889cc.js").then(t=>t._),["assets/Datetime-5b4889cc.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Datetime-9f05aa87.css"]),"./controls/Duration.vue":()=>_(()=>import("./Duration-d579c52e.js").then(t=>t._),["assets/Duration-d579c52e.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Duration-800eb9ee.css"]),"./controls/DynamicLink.vue":()=>_(()=>import("./DynamicLink-32decd06.js").then(t=>t._),["assets/DynamicLink-32decd06.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/DynamicLink-cf70976f.css"]),"./controls/Float.vue":()=>_(()=>import("./Float-0aad1a66.js").then(t=>t._),["assets/Float-0aad1a66.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Float-e9034d6f.css"]),"./controls/Geolocation.vue":()=>_(()=>import("./Geolocation-373e65fa.js").then(t=>t._),["assets/Geolocation-373e65fa.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Geolocation-53613cdc.css"]),"./controls/HTML.vue":()=>_(()=>import("./HTML-1a069d19.js").then(t=>t._),["assets/HTML-1a069d19.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/HTML-001056b5.css"]),"./controls/HTMLEditor.vue":()=>_(()=>import("./HTMLEditor-1c6a4caf.js").then(t=>t._),["assets/HTMLEditor-1c6a4caf.js","assets/index-2d2e8bf3.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/HTMLEditor-da363245.css"]),"./controls/Heading.vue":()=>_(()=>import("./Heading-91fede8f.js").then(t=>t._),["assets/Heading-91fede8f.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Heading-96be6be6.css"]),"./controls/Icon.vue":()=>_(()=>import("./Icon-cfe49052.js").then(t=>t._),["assets/Icon-cfe49052.js","assets/iconify-30ae5ba5.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/IconPicker-2d07cad1.js","assets/index-2fe8616a.js","assets/_plugin-vue_export-helper-c27b6911.js","assets/IconPicker-1d3392a9.css","assets/Icon-175ab1a3.css"]),"./controls/Image.vue":()=>_(()=>import("./Image-0feee1f3.js").then(t=>t._),["assets/Image-0feee1f3.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Image-99476d84.css"]),"./controls/Int.vue":()=>_(()=>import("./Int-88866b25.js").then(t=>t._),["assets/Int-88866b25.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Int-659d1204.css"]),"./controls/JSON.vue":()=>_(()=>import("./JSON-8353e669.js").then(t=>t._),["assets/JSON-8353e669.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/JSON-e50cb536.css"]),"./controls/Jeditor.vue":()=>_(()=>import("./Jeditor-482b2d2d.js").then(t=>t._),["assets/Jeditor-482b2d2d.js","assets/Jeditor.vue_vue_type_style_index_0_lang-1cf7520f.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/common-a0065b74.js","assets/Jeditor-c552a82f.css"]),"./controls/Link.vue":()=>_(()=>import("./Link-e3a40d9c.js").then(t=>t._),["assets/Link-e3a40d9c.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/iconify-30ae5ba5.js","assets/common-a0065b74.js","assets/slug-c378c25f.js","assets/_plugin-vue_export-helper-c27b6911.js","assets/Link-36f94aa6.css"]),"./controls/LongText.vue":()=>_(()=>import("./LongText-6a20c0d8.js").then(t=>t._),["assets/LongText-6a20c0d8.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/LongText-08a19895.css"]),"./controls/MarkdownEditor.vue":()=>_(()=>import("./MarkdownEditor-bb608218.js").then(t=>t._),["assets/MarkdownEditor-bb608218.js","assets/index-2d2e8bf3.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/MarkdownEditor-89419c24.css"]),"./controls/MultiCheck.vue":()=>_(()=>import("./MultiCheck-3ad7391b.js").then(t=>t._),["assets/MultiCheck-3ad7391b.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/MultiCheck-dcdd6a2f.css"]),"./controls/MultiSelect.vue":()=>_(()=>import("./MultiSelect-17bab1f5.js").then(t=>t._),["assets/MultiSelect-17bab1f5.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/MultiSelect-533500c8.css"]),"./controls/MultiSelectList.vue":()=>_(()=>import("./MultiSelectList-cb3c53c2.js").then(t=>t._),["assets/MultiSelectList-cb3c53c2.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/MultiSelectList-d72c9fa6.css"]),"./controls/MultiSelectPills.vue":()=>_(()=>import("./MultiSelectPills-2c3638ce.js").then(t=>t._),["assets/MultiSelectPills-2c3638ce.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/MultiSelectPills-75741655.css"]),"./controls/Password.vue":()=>_(()=>import("./Password-1628507d.js").then(t=>t._),["assets/Password-1628507d.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Password-6c897bb6.css"]),"./controls/Percent.vue":()=>_(()=>import("./Percent-7a55d50d.js").then(t=>t._),["assets/Percent-7a55d50d.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Percent-5230862a.css"]),"./controls/Phone.vue":()=>_(()=>import("./Phone-183c9dac.js").then(t=>t._),["assets/Phone-183c9dac.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Phone-6f74dbad.css"]),"./controls/Rating.vue":()=>_(()=>import("./Rating-c3e83385.js").then(t=>t._),["assets/Rating-c3e83385.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Rating-0f221503.css"]),"./controls/Select.vue":()=>_(()=>import("./Select-27d3c7bc.js").then(t=>t._),["assets/Select-27d3c7bc.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Select-78e47719.css"]),"./controls/Signature.vue":()=>_(()=>import("./Signature-5b7271c1.js").then(t=>t._),["assets/Signature-5b7271c1.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Signature-39609589.css"]),"./controls/SmallText.vue":()=>_(()=>import("./SmallText-737cdfbd.js").then(t=>t._),["assets/SmallText-737cdfbd.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/SmallText-28cc6705.css"]),"./controls/Table.vue":()=>_(()=>import("./Table-0955984f.js").then(t=>t._),["assets/Table-0955984f.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/iconify-30ae5ba5.js","assets/_plugin-vue_export-helper-c27b6911.js","assets/Table-72749cdd.css"]),"./controls/TableMultiSelect.vue":()=>_(()=>import("./TableMultiSelect-4a586fb2.js").then(t=>t._),["assets/TableMultiSelect-4a586fb2.js","assets/index-7b482730.js","assets/index-3d86671b.css"]),"./controls/Text.vue":()=>_(()=>import("./Text-5d36f57e.js").then(t=>t._),["assets/Text-5d36f57e.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Text-68de82ad.css"]),"./controls/TextEditor.vue":()=>_(()=>import("./TextEditor-bc146615.js").then(t=>t._),["assets/TextEditor-bc146615.js","assets/_commonjsHelpers-de833af9.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/TextEditor-48efdb66.css"]),"./controls/Time.vue":()=>_(()=>import("./Time-693f64a3.js").then(t=>t._),["assets/Time-693f64a3.js","assets/index-7b482730.js","assets/index-3d86671b.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/Time-fc75c02c.css"])}),`./controls/${n}.vue`))}catch{return null}});return(n,s)=>l.value?(p(),D(L(l.value),{key:0,df:n.df,record:n.record,"can-edit":r.value,ctx:n.ctx,modelValue:n.record[n.df.fieldname],"onUpdate:modelValue":s[0]||(s[0]=c=>n.record[n.df.fieldname]=c),disabled:!r.value},null,8,["df","record","can-edit","ctx","modelValue","disabled"])):(p(),O("span",k,d(n.ctx.t("Unsupported field type"))+": "+d(n.df.fieldtype),1))}});export{M as _}; diff --git a/apps/jingrow/frontend/dist/assets/FilterBar-45792ce3.js b/apps/jingrow/frontend/dist/assets/FilterBar-bbb6dcae.js similarity index 98% rename from apps/jingrow/frontend/dist/assets/FilterBar-45792ce3.js rename to apps/jingrow/frontend/dist/assets/FilterBar-bbb6dcae.js index 77b349e..433703a 100644 --- a/apps/jingrow/frontend/dist/assets/FilterBar-45792ce3.js +++ b/apps/jingrow/frontend/dist/assets/FilterBar-bbb6dcae.js @@ -1,2 +1,2 @@ -import{d as oe,r as V,c as L,o as ie,K as re,M,e as r,f,F as P,C as $,j as d,y as g,l as u,Y as K,h,i as U,m as N,Z as D,t as k,ad as ue,aY as ce,g as S,a0 as j,a2 as A}from"./index-b37e64ca.js";import{getRecords as de}from"./common-0beb20f4.js";import{_ as pe}from"./_plugin-vue_export-helper-c27b6911.js";const ve={key:0,class:"elegant-filter-bar"},me={class:"filter-content"},fe={class:"filter-row"},he={key:0,class:"filter-input"},ye={key:1,class:"filter-input"},_e={key:2,class:"filter-input"},ke={key:3,class:"filter-input"},ge={key:4,class:"filter-input"},Ce={key:5,class:"filter-input"},be={key:6,class:"filter-input link-filter-input"},Fe={key:0,class:"link-dropdown-menu"},we={class:"link-dropdown-content"},Ve=["onClick"],Le={key:0,class:"create-icon"},Ue={class:"item-label"},Ne={key:0,class:"link-empty-state"},De={key:1,class:"link-loading-state"},Se={key:7,class:"filter-input"},Be={class:"filter-actions"},Te=["title"],Ie=oe({__name:"FilterBar",props:{fields:{},modelValue:{}},emits:["update:modelValue","filter-change"],setup(Y,{emit:Z}){const C=Y,B=Z,s=V({...C.modelValue}),t=V({}),T=V({}),F=L(()=>{const l=i=>!["Section Break","Column Break","Tab Break"].includes(i.fieldtype);return C.fields.filter(l).filter(i=>i.in_standard_filter).slice(0,8)}),G=L(()=>Object.values(s.value).filter(l=>l!=null&&l!==""&&!(Array.isArray(l)&&l.length===0)).length),H=L(()=>G.value>0);function J(l){return["Data","Text","Long Text","Comment"].includes(l)}function W(l){return["MultiSelect","MultiSelect Pills","MultiSelect List"].includes(l)}function X(l){return["Int","Float","Currency","Percent"].includes(l)}function q(l){return["Date","Datetime"].includes(l)}function v(l){const a=l.label||l.fieldname;return k(a)}function I(l){return l.options?l.options.split(` +import{d as oe,r as V,c as L,o as ie,K as re,M,e as r,f,F as P,C as $,j as d,y as g,l as u,Y as K,h,i as U,m as N,Z as D,t as k,ad as ue,aY as ce,g as S,a0 as j,a2 as A}from"./index-7b482730.js";import{getRecords as de}from"./common-a0065b74.js";import{_ as pe}from"./_plugin-vue_export-helper-c27b6911.js";const ve={key:0,class:"elegant-filter-bar"},me={class:"filter-content"},fe={class:"filter-row"},he={key:0,class:"filter-input"},ye={key:1,class:"filter-input"},_e={key:2,class:"filter-input"},ke={key:3,class:"filter-input"},ge={key:4,class:"filter-input"},Ce={key:5,class:"filter-input"},be={key:6,class:"filter-input link-filter-input"},Fe={key:0,class:"link-dropdown-menu"},we={class:"link-dropdown-content"},Ve=["onClick"],Le={key:0,class:"create-icon"},Ue={class:"item-label"},Ne={key:0,class:"link-empty-state"},De={key:1,class:"link-loading-state"},Se={key:7,class:"filter-input"},Be={class:"filter-actions"},Te=["title"],Ie=oe({__name:"FilterBar",props:{fields:{},modelValue:{}},emits:["update:modelValue","filter-change"],setup(Y,{emit:Z}){const C=Y,B=Z,s=V({...C.modelValue}),t=V({}),T=V({}),F=L(()=>{const l=i=>!["Section Break","Column Break","Tab Break"].includes(i.fieldtype);return C.fields.filter(l).filter(i=>i.in_standard_filter).slice(0,8)}),G=L(()=>Object.values(s.value).filter(l=>l!=null&&l!==""&&!(Array.isArray(l)&&l.length===0)).length),H=L(()=>G.value>0);function J(l){return["Data","Text","Long Text","Comment"].includes(l)}function W(l){return["MultiSelect","MultiSelect Pills","MultiSelect List"].includes(l)}function X(l){return["Int","Float","Currency","Percent"].includes(l)}function q(l){return["Date","Datetime"].includes(l)}function v(l){const a=l.label||l.fieldname;return k(a)}function I(l){return l.options?l.options.split(` `).filter(e=>e.trim()!=="").map(e=>({label:k(e),value:e})):[]}function o(){B("update:modelValue",{...s.value}),B("filter-change",{...s.value})}function w(l){(l==null||l==="")&&o()}function ee(){s.value={},o()}function p(l){t.value[l]||(t.value[l]={show:!1,options:[],loading:!1,searchQuery:"",displayValue:"",pageTypeConfig:{}})}function ae(l,a){a&&(T.value[l]=a)}function le(l){const a=l.fieldname;p(a);const e=s.value[a];return e?t.value[a].displayValue&&t.value[a].displayValue!==e?t.value[a].displayValue:e:t.value[a].searchQuery||""}async function z(l){var i;const a=l.fieldname;p(a);const e=s.value[a];if(!(!e||!l.options)&&!(t.value[a].displayValue&&t.value[a].displayValue!==e))try{const m=(await x(l.options)).title_field||"name";if(m==="name"){t.value[a].displayValue=e;return}const n=(((i=(await j.get(`/api/data/${encodeURIComponent(l.options)}/${encodeURIComponent(e)}`,{headers:A(),withCredentials:!0})).data)==null?void 0:i.data)||{})[m]||e;t.value[a].displayValue=n}catch(c){console.warn("加载Link字段显示值失败:",c)}}async function x(l){var e;const a=`_config_${l}`;if(t.value[a]||(t.value[a]={show:!1,options:[],loading:!1,searchQuery:"",displayValue:"",pageTypeConfig:{}}),Object.keys(t.value[a].pageTypeConfig).length>0)return t.value[a].pageTypeConfig;try{const c=((e=(await j.get(`/api/data/PageType/${encodeURIComponent(l)}`,{headers:A(),withCredentials:!0})).data)==null?void 0:e.data)||{};return t.value[a].pageTypeConfig=c,c}catch(i){return console.error("获取页面类型配置失败:",i),{}}}async function Q(l,a=""){const e=l.fieldname;if(p(e),!!l.options){t.value[e].loading=!0;try{const c=(await x(l.options)).title_field||"name",m=["name"];c!=="name"&&m.push(c);const y=[];a.trim()&&(c!=="name"?y.push([c,"like",`%${a}%`]):y.push(["name","like",`%${a}%`]));const _=await de(l.options,y,m,"modified desc",0,20);if(_.success&&_.data){const n=_.data.map(b=>{const R=c==="name"?b.name:b[c]||b.name;return{label:R,value:b.name,title:R}});t.value[e].options=n}else t.value[e].options=[]}catch(i){console.error("搜索Link选项失败:",i),t.value[e].options=[]}finally{t.value[e].loading=!1}}}function te(l,a){const e=l.fieldname;p(e),t.value[e].searchQuery=a||"",t.value[e].show&&Q(l,a),a||(s.value[e]="",o())}async function E(l){const a=l.fieldname;p(a),!t.value[a].show&&(await Q(l,t.value[a].searchQuery),t.value[a].show=!0)}function ne(l,a){const e=l.fieldname;if(p(e),a.type==="create"){t.value[e].show=!1;return}s.value[e]=a.value,t.value[e].displayValue=a.title||a.label,t.value[e].searchQuery="",t.value[e].show=!1,o()}function se(l){const a=l.fieldname;p(a),s.value[a]="",t.value[a].displayValue="",t.value[a].searchQuery="",t.value[a].show=!1,o()}function O(l){const a=l.target;Object.keys(t.value).forEach(e=>{const i=T.value[e];i&&!i.contains(a)&&(t.value[e].show=!1)})}return ie(()=>{document.addEventListener("click",O),C.fields.forEach(l=>{l.fieldtype==="Link"&&l.options&&p(l.fieldname)})}),re(()=>{document.removeEventListener("click",O)}),M(()=>C.modelValue,l=>{s.value={...l},C.fields.forEach(a=>{a.fieldtype==="Link"&&a.options&&l[a.fieldname]?(p(a.fieldname),t.value[a.fieldname].displayValue="",z(a)):a.fieldtype==="Link"&&a.options&&!l[a.fieldname]&&(p(a.fieldname),t.value[a.fieldname].displayValue="",t.value[a.fieldname].searchQuery="")})},{deep:!0}),M(()=>F.value,l=>{l.forEach(a=>{a.fieldtype==="Link"&&a.options&&s.value[a.fieldname]&&z(a)})},{immediate:!0}),(l,a)=>F.value.length>0?(u(),r("div",ve,[f("div",me,[f("div",fe,[(u(!0),r(P,null,$(F.value,e=>{var i,c,m,y,_;return u(),r("div",{key:e.fieldname,class:K(["filter-item",{"has-value":s.value[e.fieldname]}])},[J(e.fieldtype)?(u(),r("div",he,[h(d(N),{value:s.value[e.fieldname],"onUpdate:value":[n=>s.value[e.fieldname]=n,w],placeholder:v(e),clearable:"",size:"small",onBlur:o,onKeyup:U(o,["enter"])},null,8,["value","onUpdate:value","placeholder"])])):e.fieldtype==="Select"?(u(),r("div",ye,[h(d(D),{value:s.value[e.fieldname],"onUpdate:value":[n=>s.value[e.fieldname]=n,o],options:I(e),placeholder:v(e),clearable:"",size:"small",onClear:o},null,8,["value","onUpdate:value","options","placeholder"])])):W(e.fieldtype)?(u(),r("div",_e,[h(d(D),{value:s.value[e.fieldname],"onUpdate:value":[n=>s.value[e.fieldname]=n,o],options:I(e),multiple:"",placeholder:v(e),clearable:"",size:"small",onClear:o},null,8,["value","onUpdate:value","options","placeholder"])])):e.fieldtype==="Check"?(u(),r("div",ke,[h(d(D),{value:s.value[e.fieldname],"onUpdate:value":[n=>s.value[e.fieldname]=n,o],options:[{label:d(k)("是"),value:1},{label:d(k)("否"),value:0}],placeholder:v(e),clearable:"",size:"small",onClear:o},null,8,["value","onUpdate:value","options","placeholder"])])):X(e.fieldtype)?(u(),r("div",ge,[h(d(ue),{value:s.value[e.fieldname],"onUpdate:value":[n=>s.value[e.fieldname]=n,w],placeholder:v(e),clearable:"",size:"small",onBlur:o,onKeyup:U(o,["enter"])},null,8,["value","onUpdate:value","placeholder"])])):q(e.fieldtype)?(u(),r("div",Ce,[h(d(ce),{value:s.value[e.fieldname],"onUpdate:value":[n=>s.value[e.fieldname]=n,o],placeholder:v(e),clearable:"",size:"small",onClear:o},null,8,["value","onUpdate:value","placeholder"])])):e.fieldtype==="Link"&&e.options?(u(),r("div",be,[f("div",{class:"link-filter-container",ref_for:!0,ref:n=>ae(e.fieldname,n)},[h(d(N),{value:le(e),placeholder:v(e),clearable:"",size:"small","onUpdate:value":n=>te(e,n),onClick:()=>E(e),onFocus:()=>E(e),onClear:()=>se(e)},null,8,["value","placeholder","onUpdate:value","onClick","onFocus","onClear"]),(i=t.value[e.fieldname])!=null&&i.show?(u(),r("div",Fe,[f("div",we,[(u(!0),r(P,null,$(((c=t.value[e.fieldname])==null?void 0:c.options)||[],n=>(u(),r("div",{key:n.value,class:K(["link-dropdown-item",{"create-item":n.type==="create"}]),onClick:()=>ne(e,n)},[n.type==="create"?(u(),r("span",Le,[...a[0]||(a[0]=[f("i",{class:"fa fa-plus"},null,-1)])])):g("",!0),f("span",Ue,S(n.label),1)],10,Ve))),128)),(((m=t.value[e.fieldname])==null?void 0:m.options)||[]).length===0&&!((y=t.value[e.fieldname])!=null&&y.loading)?(u(),r("div",Ne,S(d(k)("No Data")),1)):g("",!0),(_=t.value[e.fieldname])!=null&&_.loading?(u(),r("div",De,S(d(k)("Loading")),1)):g("",!0)])])):g("",!0)],512)])):(u(),r("div",Se,[h(d(N),{value:s.value[e.fieldname],"onUpdate:value":[n=>s.value[e.fieldname]=n,w],placeholder:v(e),clearable:"",size:"small",onBlur:o,onKeyup:U(o,["enter"])},null,8,["value","onUpdate:value","placeholder"])]))],2)}),128)),f("div",Be,[H.value?(u(),r("button",{key:0,class:"action-btn clear-btn",onClick:ee,title:d(k)("清除所有过滤条件")},[...a[1]||(a[1]=[f("i",{class:"fa fa-times"},null,-1)])],8,Te)):g("",!0)])])])])):g("",!0)}});const Ee=pe(Ie,[["__scopeId","data-v-305db73a"]]);export{Ee as default}; diff --git a/apps/jingrow/frontend/dist/assets/Float-8c96ff2b.js b/apps/jingrow/frontend/dist/assets/Float-0aad1a66.js similarity index 93% rename from apps/jingrow/frontend/dist/assets/Float-8c96ff2b.js rename to apps/jingrow/frontend/dist/assets/Float-0aad1a66.js index 08f989e..291159a 100644 --- a/apps/jingrow/frontend/dist/assets/Float-8c96ff2b.js +++ b/apps/jingrow/frontend/dist/assets/Float-0aad1a66.js @@ -1 +1 @@ -import{d as n,c,e as o,f as i,p,g as f,y as u,h as _,j as m,Y as b,l,ad as v}from"./index-b37e64ca.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},N={key:0,class:"required"},h=n({__name:"Float",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(t){const d=t,s=c(()=>d.df.label_layout||"vertical");return(e,a)=>(l(),o("div",{class:b(["field-wrapper",`layout-${s.value}`])},[i("label",g,[p(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),o("span",N,"*")):u("",!0)]),_(m(v),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=r=>e.record[e.df.fieldname]=r),precision:2,placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const B=y(h,[["__scopeId","data-v-72b5c9f6"]]),k=Object.freeze(Object.defineProperty({__proto__:null,default:B},Symbol.toStringTag,{value:"Module"}));export{k as _}; +import{d as n,c,e as o,f as i,p,g as f,y as u,h as _,j as m,Y as b,l,ad as v}from"./index-7b482730.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},N={key:0,class:"required"},h=n({__name:"Float",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(t){const d=t,s=c(()=>d.df.label_layout||"vertical");return(e,a)=>(l(),o("div",{class:b(["field-wrapper",`layout-${s.value}`])},[i("label",g,[p(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),o("span",N,"*")):u("",!0)]),_(m(v),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=r=>e.record[e.df.fieldname]=r),precision:2,placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const B=y(h,[["__scopeId","data-v-72b5c9f6"]]),k=Object.freeze(Object.defineProperty({__proto__:null,default:B},Symbol.toStringTag,{value:"Module"}));export{k as _}; diff --git a/apps/jingrow/frontend/dist/assets/FlowBuilder-f01bc2c5.js b/apps/jingrow/frontend/dist/assets/FlowBuilder-0d4e0acd.js similarity index 71% rename from apps/jingrow/frontend/dist/assets/FlowBuilder-f01bc2c5.js rename to apps/jingrow/frontend/dist/assets/FlowBuilder-0d4e0acd.js index 55563e2..78c0e09 100644 --- a/apps/jingrow/frontend/dist/assets/FlowBuilder-f01bc2c5.js +++ b/apps/jingrow/frontend/dist/assets/FlowBuilder-0d4e0acd.js @@ -1 +1 @@ -import{d as y,u as h,c as g,o as B,e as _,f as i,g as u,j as a,h as F,w as A,D as S,k as I,v as k,t as s,l as d,p as x,n as D}from"./index-b37e64ca.js";import{u as N,F as V}from"./FlowBuilderContainer-443a20d5.js";import{useFlowBuilderStore as C}from"./flowBuilder-2967762c.js";import{_ as q}from"./_plugin-vue_export-helper-c27b6911.js";import"./iconify-b5ab1212.js";import"./AIAgentFlowBuilder-0d0fbb19.js";import"./vue-flow-core-e20a6f7d.js";import"./nodeMetadata-868a0a07.js";import"./NodePropertyModal-c7168bd0.js";import"./SchemaFormRenderer-0384437a.js";import"./nodes-db5c425b.js";import"./NodePalette-0bf3e03c.js";import"./ExecutionResults-a7b36047.js";import"./common-0beb20f4.js";const M={class:"flow-builder-page"},P={key:0,class:"empty-state"},R={class:"empty-content"},T=y({__name:"FlowBuilder",setup(b){const f=I(),p=k(),l=h(),c=N(),t=C(),n=g(()=>t.getAgentId()||p.query.agentId),m=g(()=>n.value||t.hasFlowData());B(async()=>{const o=p.query.agentId;if(o&&!t.getAgentId())try{t.setAgentId(o),await c.fetchAgent(o);const e=c.currentAgent;if(e!=null&&e.agent_flow){let r=e.agent_flow;typeof r=="string"&&(r=JSON.parse(r)),t.setFlowData(r)}}catch(e){console.error("恢复智能体数据失败:",e)}});const w=async o=>{try{n.value?(await c.updateAgent(n.value,{agent_flow:o}),l.success(s("Agent flow saved successfully")),t.deactivateFlowBuilder()):(console.log("保存流程数据:",o),l.success(s("Flow saved successfully")))}catch(e){l.error(s("Save failed")+": "+((e==null?void 0:e.message)||""))}},v=()=>{f.push("/agents")};return(o,e)=>(d(),_("div",M,[m.value?(d(),S(V,{key:1,"initial-value":a(t).getFlowData(),"agent-id":n.value,onSave:w},null,8,["initial-value","agent-id"])):(d(),_("div",P,[i("div",R,[i("h3",null,u(a(s)("Flow Builder")),1),i("p",null,u(a(s)("Please enter from Agents page to open Flow Builder")),1),F(a(D),{type:"primary",onClick:v},{default:A(()=>[x(u(a(s)("View Agents")),1)]),_:1})])]))]))}});const Z=q(T,[["__scopeId","data-v-2089ffe8"]]);export{Z as default}; +import{d as y,u as h,c as g,o as B,e as _,f as i,g as u,j as a,h as F,w as A,D as S,k as I,v as k,t as s,l as d,p as x,n as D}from"./index-7b482730.js";import{u as N,F as V}from"./FlowBuilderContainer-001ad899.js";import{useFlowBuilderStore as C}from"./flowBuilder-41625347.js";import{_ as q}from"./_plugin-vue_export-helper-c27b6911.js";import"./iconify-30ae5ba5.js";import"./AIAgentFlowBuilder-dceed8dc.js";import"./vue-flow-core-41a1e515.js";import"./nodeMetadata-55f4474f.js";import"./NodePropertyModal-94ca3f6a.js";import"./SchemaFormRenderer-f7be2793.js";import"./nodes-1118f3b4.js";import"./NodePalette-e0efb88f.js";import"./ExecutionResults-030bde4d.js";import"./common-a0065b74.js";const M={class:"flow-builder-page"},P={key:0,class:"empty-state"},R={class:"empty-content"},T=y({__name:"FlowBuilder",setup(b){const f=I(),p=k(),l=h(),c=N(),t=C(),n=g(()=>t.getAgentId()||p.query.agentId),m=g(()=>n.value||t.hasFlowData());B(async()=>{const o=p.query.agentId;if(o&&!t.getAgentId())try{t.setAgentId(o),await c.fetchAgent(o);const e=c.currentAgent;if(e!=null&&e.agent_flow){let r=e.agent_flow;typeof r=="string"&&(r=JSON.parse(r)),t.setFlowData(r)}}catch(e){console.error("恢复智能体数据失败:",e)}});const w=async o=>{try{n.value?(await c.updateAgent(n.value,{agent_flow:o}),l.success(s("Agent flow saved successfully")),t.deactivateFlowBuilder()):(console.log("保存流程数据:",o),l.success(s("Flow saved successfully")))}catch(e){l.error(s("Save failed")+": "+((e==null?void 0:e.message)||""))}},v=()=>{f.push("/agents")};return(o,e)=>(d(),_("div",M,[m.value?(d(),S(V,{key:1,"initial-value":a(t).getFlowData(),"agent-id":n.value,onSave:w},null,8,["initial-value","agent-id"])):(d(),_("div",P,[i("div",R,[i("h3",null,u(a(s)("Flow Builder")),1),i("p",null,u(a(s)("Please enter from Agents page to open Flow Builder")),1),F(a(D),{type:"primary",onClick:v},{default:A(()=>[x(u(a(s)("View Agents")),1)]),_:1})])]))]))}});const Z=q(T,[["__scopeId","data-v-2089ffe8"]]);export{Z as default}; diff --git a/apps/jingrow/frontend/dist/assets/FlowBuilderContainer-443a20d5.js b/apps/jingrow/frontend/dist/assets/FlowBuilderContainer-001ad899.js similarity index 92% rename from apps/jingrow/frontend/dist/assets/FlowBuilderContainer-443a20d5.js rename to apps/jingrow/frontend/dist/assets/FlowBuilderContainer-001ad899.js index 52dcf86..6e6444c 100644 --- a/apps/jingrow/frontend/dist/assets/FlowBuilderContainer-443a20d5.js +++ b/apps/jingrow/frontend/dist/assets/FlowBuilderContainer-001ad899.js @@ -1 +1 @@ -import{ag as N,r as A,d as x,u as E,c as p,M as j,e as R,f as g,g as h,h as s,w as i,j as o,k as z,l as O,n as B,$ as I,p as F,t as l,I as M}from"./index-b37e64ca.js";import{I as b}from"./iconify-b5ab1212.js";import T from"./AIAgentFlowBuilder-0d0fbb19.js";import{useFlowBuilderStore as $}from"./flowBuilder-2967762c.js";import{getRecord as L,updateRecord as P}from"./common-0beb20f4.js";import{_ as q}from"./_plugin-vue_export-helper-c27b6911.js";const G=async e=>{try{const r=await L("Local Ai Agent",e);if(!r.success)throw new Error(r.message||"获取AI Agent详情失败");return r.data}catch(r){throw new Error(r.message||"获取AI Agent详情失败")}},H=async(e,r)=>{try{const t=await P("Local Ai Agent",e,r);if(!t.success)throw new Error(t.message||"更新AI Agent失败");return t.data}catch(t){throw console.error("Error in updateAgentApi:",t),new Error(t.message||"更新AI Agent失败")}},J=N("agent",()=>{const e=A(null);return{currentAgent:e,fetchAgent:async u=>{try{const n=await G(u);e.value=n}catch(n){throw console.error("获取AI Agent详情失败:",n),n}},updateAgent:async(u,n)=>{try{return await H(u,n),e.value&&e.value.name===u&&(e.value={...e.value,...n}),{success:!0}}catch(c){throw console.error("更新AI Agent失败:",c),c}}}}),K={class:"flow-builder"},Q={class:"flow-builder-header"},U={class:"header-left"},W={class:"title"},X={class:"header-right"},Y={class:"flow-builder-content"},Z=x({__name:"FlowBuilderContainer",props:{initialValue:{},agentId:{}},emits:["save"],setup(e,{emit:r}){const t=e,u=r,n=z(),c=E(),f=J(),w=$(),d=A(""),k=p(()=>{if(t.initialValue&&Object.keys(t.initialValue).length>0)return t.initialValue;const a=w.getFlowData();return a&&Object.keys(a).length>0?a:{}}),v=A(),_=p(()=>t.agentId||w.getAgentId()),S=p(()=>d.value?`${d.value}`:l("Flow Builder"));j(_,async a=>{var m,y;if(a)try{await f.fetchAgent(a),d.value=((m=f.currentAgent)==null?void 0:m.agent_name)||((y=f.currentAgent)==null?void 0:y.name)||""}catch(D){console.error("获取智能体信息失败:",D),d.value=""}else d.value=""},{immediate:!0});const C=async()=>{try{if(!v.value){c.error(l("Flow Builder is not initialized"));return}const a=v.value.getFlowData();_.value?(await f.updateAgent(_.value,{agent_flow:a}),c.success(l("Flow saved successfully"))):(u("save",a),c.success(l("Flow saved successfully")))}catch(a){c.error(l("Save failed")+": "+(a.message||l("An error occurred during save")))}},V=()=>{w.deactivateFlowBuilder(),n.back()};return(a,m)=>(O(),R("div",K,[g("div",Q,[g("div",U,[g("h2",W,h(S.value),1)]),g("div",X,[s(o(M),null,{default:i(()=>[s(o(B),{size:"small",onClick:V},{icon:i(()=>[s(o(I),null,{default:i(()=>[s(o(b),{icon:"tabler:arrow-left"})]),_:1})]),default:i(()=>[F(" "+h(o(l)("Back")),1)]),_:1}),s(o(B),{size:"small",type:"primary",onClick:C,class:"save-btn-brand"},{icon:i(()=>[s(o(I),null,{default:i(()=>[s(o(b),{icon:"tabler:check"})]),_:1})]),default:i(()=>[F(" "+h(o(l)("Save")),1)]),_:1})]),_:1})])]),g("div",Y,[s(T,{ref_key:"flowBuilderRef",ref:v,"initial-value":k.value,"agent-id":_.value},null,8,["initial-value","agent-id"])])]))}});const ee=q(Z,[["__scopeId","data-v-c0f6c106"]]),le=Object.freeze(Object.defineProperty({__proto__:null,default:ee},Symbol.toStringTag,{value:"Module"}));export{ee as F,le as a,J as u}; +import{ag as N,r as A,d as x,u as E,c as p,M as j,e as R,f as g,g as h,h as s,w as i,j as o,k as z,l as O,n as B,$ as I,p as F,t as l,I as M}from"./index-7b482730.js";import{I as b}from"./iconify-30ae5ba5.js";import T from"./AIAgentFlowBuilder-dceed8dc.js";import{useFlowBuilderStore as $}from"./flowBuilder-41625347.js";import{getRecord as L,updateRecord as P}from"./common-a0065b74.js";import{_ as q}from"./_plugin-vue_export-helper-c27b6911.js";const G=async e=>{try{const r=await L("Local Ai Agent",e);if(!r.success)throw new Error(r.message||"获取AI Agent详情失败");return r.data}catch(r){throw new Error(r.message||"获取AI Agent详情失败")}},H=async(e,r)=>{try{const t=await P("Local Ai Agent",e,r);if(!t.success)throw new Error(t.message||"更新AI Agent失败");return t.data}catch(t){throw console.error("Error in updateAgentApi:",t),new Error(t.message||"更新AI Agent失败")}},J=N("agent",()=>{const e=A(null);return{currentAgent:e,fetchAgent:async u=>{try{const n=await G(u);e.value=n}catch(n){throw console.error("获取AI Agent详情失败:",n),n}},updateAgent:async(u,n)=>{try{return await H(u,n),e.value&&e.value.name===u&&(e.value={...e.value,...n}),{success:!0}}catch(c){throw console.error("更新AI Agent失败:",c),c}}}}),K={class:"flow-builder"},Q={class:"flow-builder-header"},U={class:"header-left"},W={class:"title"},X={class:"header-right"},Y={class:"flow-builder-content"},Z=x({__name:"FlowBuilderContainer",props:{initialValue:{},agentId:{}},emits:["save"],setup(e,{emit:r}){const t=e,u=r,n=z(),c=E(),f=J(),w=$(),d=A(""),k=p(()=>{if(t.initialValue&&Object.keys(t.initialValue).length>0)return t.initialValue;const a=w.getFlowData();return a&&Object.keys(a).length>0?a:{}}),v=A(),_=p(()=>t.agentId||w.getAgentId()),S=p(()=>d.value?`${d.value}`:l("Flow Builder"));j(_,async a=>{var m,y;if(a)try{await f.fetchAgent(a),d.value=((m=f.currentAgent)==null?void 0:m.agent_name)||((y=f.currentAgent)==null?void 0:y.name)||""}catch(D){console.error("获取智能体信息失败:",D),d.value=""}else d.value=""},{immediate:!0});const C=async()=>{try{if(!v.value){c.error(l("Flow Builder is not initialized"));return}const a=v.value.getFlowData();_.value?(await f.updateAgent(_.value,{agent_flow:a}),c.success(l("Flow saved successfully"))):(u("save",a),c.success(l("Flow saved successfully")))}catch(a){c.error(l("Save failed")+": "+(a.message||l("An error occurred during save")))}},V=()=>{w.deactivateFlowBuilder(),n.back()};return(a,m)=>(O(),R("div",K,[g("div",Q,[g("div",U,[g("h2",W,h(S.value),1)]),g("div",X,[s(o(M),null,{default:i(()=>[s(o(B),{size:"small",onClick:V},{icon:i(()=>[s(o(I),null,{default:i(()=>[s(o(b),{icon:"tabler:arrow-left"})]),_:1})]),default:i(()=>[F(" "+h(o(l)("Back")),1)]),_:1}),s(o(B),{size:"small",type:"primary",onClick:C,class:"save-btn-brand"},{icon:i(()=>[s(o(I),null,{default:i(()=>[s(o(b),{icon:"tabler:check"})]),_:1})]),default:i(()=>[F(" "+h(o(l)("Save")),1)]),_:1})]),_:1})])]),g("div",Y,[s(T,{ref_key:"flowBuilderRef",ref:v,"initial-value":k.value,"agent-id":_.value},null,8,["initial-value","agent-id"])])]))}});const ee=q(Z,[["__scopeId","data-v-c0f6c106"]]),le=Object.freeze(Object.defineProperty({__proto__:null,default:ee},Symbol.toStringTag,{value:"Module"}));export{ee as F,le as a,J as u}; diff --git a/apps/jingrow/frontend/dist/assets/FormPanel-d76818a3.js b/apps/jingrow/frontend/dist/assets/FormPanel-c54b1170.js similarity index 74% rename from apps/jingrow/frontend/dist/assets/FormPanel-d76818a3.js rename to apps/jingrow/frontend/dist/assets/FormPanel-c54b1170.js index e950bf5..5c57a40 100644 --- a/apps/jingrow/frontend/dist/assets/FormPanel-d76818a3.js +++ b/apps/jingrow/frontend/dist/assets/FormPanel-c54b1170.js @@ -1 +1 @@ -import{d as o,e as s,f as t,aC as a,y as n,l}from"./index-b37e64ca.js";import{_ as r}from"./_plugin-vue_export-helper-c27b6911.js";const _={key:0,class:"media-sidebar"},c={class:"sidebar-content"},d=o({__name:"FormPanel",props:{position:{},collapsed:{type:Boolean},hasContent:{type:Boolean}},emits:["toggle-collapse"],setup(p){return(e,i)=>e.collapsed?n("",!0):(l(),s("div",_,[t("div",c,[a(e.$slots,"default",{},void 0,!0)])]))}});const u=r(d,[["__scopeId","data-v-84fe9c98"]]);export{u as default}; +import{d as o,e as s,f as t,aC as a,y as n,l}from"./index-7b482730.js";import{_ as r}from"./_plugin-vue_export-helper-c27b6911.js";const _={key:0,class:"media-sidebar"},c={class:"sidebar-content"},d=o({__name:"FormPanel",props:{position:{},collapsed:{type:Boolean},hasContent:{type:Boolean}},emits:["toggle-collapse"],setup(p){return(e,i)=>e.collapsed?n("",!0):(l(),s("div",_,[t("div",c,[a(e.$slots,"default",{},void 0,!0)])]))}});const u=r(d,[["__scopeId","data-v-84fe9c98"]]);export{u as default}; diff --git a/apps/jingrow/frontend/dist/assets/Geolocation-aba67e02.js b/apps/jingrow/frontend/dist/assets/Geolocation-373e65fa.js similarity index 93% rename from apps/jingrow/frontend/dist/assets/Geolocation-aba67e02.js rename to apps/jingrow/frontend/dist/assets/Geolocation-373e65fa.js index 6e7d069..bf4b212 100644 --- a/apps/jingrow/frontend/dist/assets/Geolocation-aba67e02.js +++ b/apps/jingrow/frontend/dist/assets/Geolocation-373e65fa.js @@ -1 +1 @@ -import{d as r,c as i,e as o,f as c,p,g as f,y as u,h as _,j as m,Y as b,l,m as v}from"./index-b37e64ca.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},N={key:0,class:"required"},h=r({__name:"Geolocation",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(t){const d=t,s=i(()=>d.df.label_layout||"vertical");return(e,a)=>(l(),o("div",{class:b(["field-wrapper",`layout-${s.value}`])},[c("label",g,[p(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),o("span",N,"*")):u("",!0)]),_(m(v),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=n=>e.record[e.df.fieldname]=n),placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const B=y(h,[["__scopeId","data-v-ad896992"]]),k=Object.freeze(Object.defineProperty({__proto__:null,default:B},Symbol.toStringTag,{value:"Module"}));export{k as _}; +import{d as r,c as i,e as o,f as c,p,g as f,y as u,h as _,j as m,Y as b,l,m as v}from"./index-7b482730.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},N={key:0,class:"required"},h=r({__name:"Geolocation",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(t){const d=t,s=i(()=>d.df.label_layout||"vertical");return(e,a)=>(l(),o("div",{class:b(["field-wrapper",`layout-${s.value}`])},[c("label",g,[p(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),o("span",N,"*")):u("",!0)]),_(m(v),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=n=>e.record[e.df.fieldname]=n),placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const B=y(h,[["__scopeId","data-v-ad896992"]]),k=Object.freeze(Object.defineProperty({__proto__:null,default:B},Symbol.toStringTag,{value:"Module"}));export{k as _}; diff --git a/apps/jingrow/frontend/dist/assets/HTML-f1d2e10e.js b/apps/jingrow/frontend/dist/assets/HTML-1a069d19.js similarity index 91% rename from apps/jingrow/frontend/dist/assets/HTML-f1d2e10e.js rename to apps/jingrow/frontend/dist/assets/HTML-1a069d19.js index 0bd2340..29a5f41 100644 --- a/apps/jingrow/frontend/dist/assets/HTML-f1d2e10e.js +++ b/apps/jingrow/frontend/dist/assets/HTML-1a069d19.js @@ -1 +1 @@ -import{d as r,c as d,e as a,f as o,p as c,g as _,y as i,Y as f,l as t}from"./index-b37e64ca.js";import{_ as p}from"./_plugin-vue_export-helper-c27b6911.js";const u={class:"field-label"},m={key:0,class:"required"},y=["innerHTML"],b=r({__name:"HTML",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(s){const l=s,n=d(()=>l.df.label_layout||"vertical");return(e,T)=>(t(),a("div",{class:f(["field-wrapper",`layout-${n.value}`])},[o("label",u,[c(_(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(t(),a("span",m,"*")):i("",!0)]),o("div",{class:"html-content",innerHTML:e.record[e.df.fieldname]},null,8,y)],2))}});const v=p(b,[["__scopeId","data-v-f31e7adf"]]),M=Object.freeze(Object.defineProperty({__proto__:null,default:v},Symbol.toStringTag,{value:"Module"}));export{M as _}; +import{d as r,c as d,e as a,f as o,p as c,g as _,y as i,Y as f,l as t}from"./index-7b482730.js";import{_ as p}from"./_plugin-vue_export-helper-c27b6911.js";const u={class:"field-label"},m={key:0,class:"required"},y=["innerHTML"],b=r({__name:"HTML",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(s){const l=s,n=d(()=>l.df.label_layout||"vertical");return(e,T)=>(t(),a("div",{class:f(["field-wrapper",`layout-${n.value}`])},[o("label",u,[c(_(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(t(),a("span",m,"*")):i("",!0)]),o("div",{class:"html-content",innerHTML:e.record[e.df.fieldname]},null,8,y)],2))}});const v=p(b,[["__scopeId","data-v-f31e7adf"]]),M=Object.freeze(Object.defineProperty({__proto__:null,default:v},Symbol.toStringTag,{value:"Module"}));export{M as _}; diff --git a/apps/jingrow/frontend/dist/assets/HTML-2425a86a.js b/apps/jingrow/frontend/dist/assets/HTML-e4ff5ef2.js similarity index 97% rename from apps/jingrow/frontend/dist/assets/HTML-2425a86a.js rename to apps/jingrow/frontend/dist/assets/HTML-e4ff5ef2.js index 66d878f..3b25e62 100644 --- a/apps/jingrow/frontend/dist/assets/HTML-2425a86a.js +++ b/apps/jingrow/frontend/dist/assets/HTML-e4ff5ef2.js @@ -1,4 +1,4 @@ -import{d as y,c as b,r as x,M as d,e as l,f as p,p as T,g as L,y as $,Y as C,l as u}from"./index-b37e64ca.js";import{_ as E}from"./_plugin-vue_export-helper-c27b6911.js";const H={class:"field-label"},M={key:0,class:"required"},j=["innerHTML"],k=y({__name:"HTML",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(m,{expose:f}){const t=m,v=b(()=>t.df.label_layout||"vertical"),n=x(""),i=()=>{if(t.df.fieldname==="preview_html")return _();let e=t.df.options||"";e=t.ctx.t?t.ctx.t(e):e;try{return t.ctx.render?t.ctx.render(e,t):e}catch(o){return console.warn("HTML模板渲染失败:",o),e}},_=()=>{var c;const e=t.record,o=e.file_url,a=(c=e.file_type)==null?void 0:c.toLowerCase();return o?g(o)?`
+import{d as y,c as b,r as x,M as d,e as l,f as p,p as T,g as L,y as $,Y as C,l as u}from"./index-7b482730.js";import{_ as E}from"./_plugin-vue_export-helper-c27b6911.js";const H={class:"field-label"},M={key:0,class:"required"},j=["innerHTML"],k=y({__name:"HTML",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(m,{expose:f}){const t=m,v=b(()=>t.df.label_layout||"vertical"),n=x(""),i=()=>{if(t.df.fieldname==="preview_html")return _();let e=t.df.options||"";e=t.ctx.t?t.ctx.t(e):e;try{return t.ctx.render?t.ctx.render(e,t):e}catch(o){return console.warn("HTML模板渲染失败:",o),e}},_=()=>{var c;const e=t.record,o=e.file_url,a=(c=e.file_type)==null?void 0:c.toLowerCase();return o?g(o)?`
a.df.label_layout||"vertical"),l=_(null);let f=null,e=null;const r=_(!1),s=_("preview"),E=C(()=>String(a.record[a.df.fieldname]||""));async function z(){if(!l.value||(f||(f=await x.init()),e))return;e=f.editor.create(l.value,{value:String(a.record[a.df.fieldname]||""),language:"html",automaticLayout:!0,folding:!0,minimap:{enabled:!1},readOnly:!a.canEdit,wordWrap:"on",wordWrapColumn:120,wrappingStrategy:"advanced",scrollBeyondLastLine:!1,scrollBeyondLastColumn:0,scrollbar:{horizontal:"hidden",vertical:"auto",horizontalScrollbarSize:6,verticalScrollbarSize:6,alwaysConsumeMouseWheel:!1}});const t=()=>{if(!e||!l.value)return;const o=e.getLayoutInfo(),p=e.getScrollHeight()>o.height+1,M=e.getScrollWidth()>o.width+1;l.value.classList.toggle("no-scroll-y",!p),l.value.classList.toggle("no-scroll-x",!M)};t(),e.onDidContentSizeChange(()=>t()),e.onDidScrollChange(()=>t()),e.onDidLayoutChange(()=>t()),e.onDidChangeModelContent(()=>{e&&(a.record[a.df.fieldname]=e.getValue(),t())})}function w(){try{e==null||e.dispose()}catch{}e=null}function B(){r.value=!r.value,g(()=>e==null?void 0:e.layout())}return y(()=>a.canEdit,t=>{e==null||e.updateOptions({readOnly:!t})}),y(()=>a.record[a.df.fieldname],t=>{e&&t!==e.getValue()&&e.setValue(String(t||""))}),T(async()=>{}),y(s,async t=>{t==="edit"?(await g(),await z(),g(()=>e==null?void 0:e.layout())):w()}),V(w),(t,o)=>(n(),i("div",{class:b(["field-wrapper",`layout-${k.value}`])},[d("label",O,[c(u(t.ctx.t(t.df.label||t.df.fieldname))+" ",1),t.df.reqd?(n(),i("span",W,"*")):D("",!0)]),d("div",j,[d("div",P,[s.value==="edit"?(n(),S(v(h),{key:0,size:"tiny",quaternary:"",type:"default",onClick:o[0]||(o[0]=p=>s.value="preview")},{default:m(()=>[c(u(t.ctx.t("Preview")),1)]),_:1})):(n(),S(v(h),{key:1,size:"tiny",quaternary:"",type:"default",onClick:o[1]||(o[1]=p=>s.value="edit")},{default:m(()=>[c(u(t.ctx.t("Edit")),1)]),_:1}))]),s.value==="preview"?(n(),i("div",{key:0,class:"html-editor__preview",innerHTML:E.value},null,8,$)):(n(),i("div",{key:1,ref_key:"editorHost",ref:l,class:b(["html-editor__monaco",{collapsed:!r.value}])},null,2)),d("div",I,[q(v(h),{size:"tiny",quaternary:"",onClick:B},{default:m(()=>[c(u(r.value?t.ctx.t("Collapse"):t.ctx.t("Expand")),1)]),_:1})])])],2))}});const J=N(U,[["__scopeId","data-v-4ffe6731"]]),G=Object.freeze(Object.defineProperty({__proto__:null,default:J},Symbol.toStringTag,{value:"Module"}));export{G as _}; +import{l as x}from"./index-2d2e8bf3.js";import{d as H,c as C,r as _,M as y,o as T,aU as V,e as i,f as d,p as c,g as u,y as D,D as S,w as m,j as v,Y as b,h as q,J as g,l as n,n as h}from"./index-7b482730.js";import{_ as N}from"./_plugin-vue_export-helper-c27b6911.js";const O={class:"field-label"},W={key:0,class:"required"},j={class:"html-editor"},P={class:"html-editor__toolbar"},$=["innerHTML"],I={class:"html-editor__actions"},U=H({__name:"HTMLEditor",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(L){const a=L,k=C(()=>a.df.label_layout||"vertical"),l=_(null);let f=null,e=null;const r=_(!1),s=_("preview"),E=C(()=>String(a.record[a.df.fieldname]||""));async function z(){if(!l.value||(f||(f=await x.init()),e))return;e=f.editor.create(l.value,{value:String(a.record[a.df.fieldname]||""),language:"html",automaticLayout:!0,folding:!0,minimap:{enabled:!1},readOnly:!a.canEdit,wordWrap:"on",wordWrapColumn:120,wrappingStrategy:"advanced",scrollBeyondLastLine:!1,scrollBeyondLastColumn:0,scrollbar:{horizontal:"hidden",vertical:"auto",horizontalScrollbarSize:6,verticalScrollbarSize:6,alwaysConsumeMouseWheel:!1}});const t=()=>{if(!e||!l.value)return;const o=e.getLayoutInfo(),p=e.getScrollHeight()>o.height+1,M=e.getScrollWidth()>o.width+1;l.value.classList.toggle("no-scroll-y",!p),l.value.classList.toggle("no-scroll-x",!M)};t(),e.onDidContentSizeChange(()=>t()),e.onDidScrollChange(()=>t()),e.onDidLayoutChange(()=>t()),e.onDidChangeModelContent(()=>{e&&(a.record[a.df.fieldname]=e.getValue(),t())})}function w(){try{e==null||e.dispose()}catch{}e=null}function B(){r.value=!r.value,g(()=>e==null?void 0:e.layout())}return y(()=>a.canEdit,t=>{e==null||e.updateOptions({readOnly:!t})}),y(()=>a.record[a.df.fieldname],t=>{e&&t!==e.getValue()&&e.setValue(String(t||""))}),T(async()=>{}),y(s,async t=>{t==="edit"?(await g(),await z(),g(()=>e==null?void 0:e.layout())):w()}),V(w),(t,o)=>(n(),i("div",{class:b(["field-wrapper",`layout-${k.value}`])},[d("label",O,[c(u(t.ctx.t(t.df.label||t.df.fieldname))+" ",1),t.df.reqd?(n(),i("span",W,"*")):D("",!0)]),d("div",j,[d("div",P,[s.value==="edit"?(n(),S(v(h),{key:0,size:"tiny",quaternary:"",type:"default",onClick:o[0]||(o[0]=p=>s.value="preview")},{default:m(()=>[c(u(t.ctx.t("Preview")),1)]),_:1})):(n(),S(v(h),{key:1,size:"tiny",quaternary:"",type:"default",onClick:o[1]||(o[1]=p=>s.value="edit")},{default:m(()=>[c(u(t.ctx.t("Edit")),1)]),_:1}))]),s.value==="preview"?(n(),i("div",{key:0,class:"html-editor__preview",innerHTML:E.value},null,8,$)):(n(),i("div",{key:1,ref_key:"editorHost",ref:l,class:b(["html-editor__monaco",{collapsed:!r.value}])},null,2)),d("div",I,[q(v(h),{size:"tiny",quaternary:"",onClick:B},{default:m(()=>[c(u(r.value?t.ctx.t("Collapse"):t.ctx.t("Expand")),1)]),_:1})])])],2))}});const J=N(U,[["__scopeId","data-v-4ffe6731"]]),G=Object.freeze(Object.defineProperty({__proto__:null,default:J},Symbol.toStringTag,{value:"Module"}));export{G as _}; diff --git a/apps/jingrow/frontend/dist/assets/Heading-7bb40e5b.js b/apps/jingrow/frontend/dist/assets/Heading-91fede8f.js similarity index 91% rename from apps/jingrow/frontend/dist/assets/Heading-7bb40e5b.js rename to apps/jingrow/frontend/dist/assets/Heading-91fede8f.js index d603d68..1fe6d94 100644 --- a/apps/jingrow/frontend/dist/assets/Heading-7bb40e5b.js +++ b/apps/jingrow/frontend/dist/assets/Heading-91fede8f.js @@ -1 +1 @@ -import{d as r,c,e as a,f as o,p as _,g as t,y as i,Y as p,l as s}from"./index-b37e64ca.js";import{_ as f}from"./_plugin-vue_export-helper-c27b6911.js";const u={class:"field-label"},m={key:0,class:"required"},y={class:"field-heading"},b=r({__name:"Heading",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(l){const d=l,n=c(()=>d.df.label_layout||"vertical");return(e,v)=>(s(),a("div",{class:p(["field-wrapper",`layout-${n.value}`])},[o("label",u,[_(t(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(s(),a("span",m,"*")):i("",!0)]),o("h3",y,t(e.ctx.t(e.df.label||e.df.fieldname)),1)],2))}});const g=f(b,[["__scopeId","data-v-3988dedc"]]),k=Object.freeze(Object.defineProperty({__proto__:null,default:g},Symbol.toStringTag,{value:"Module"}));export{k as _}; +import{d as r,c,e as a,f as o,p as _,g as t,y as i,Y as p,l as s}from"./index-7b482730.js";import{_ as f}from"./_plugin-vue_export-helper-c27b6911.js";const u={class:"field-label"},m={key:0,class:"required"},y={class:"field-heading"},b=r({__name:"Heading",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(l){const d=l,n=c(()=>d.df.label_layout||"vertical");return(e,v)=>(s(),a("div",{class:p(["field-wrapper",`layout-${n.value}`])},[o("label",u,[_(t(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(s(),a("span",m,"*")):i("",!0)]),o("h3",y,t(e.ctx.t(e.df.label||e.df.fieldname)),1)],2))}});const g=f(b,[["__scopeId","data-v-3988dedc"]]),k=Object.freeze(Object.defineProperty({__proto__:null,default:g},Symbol.toStringTag,{value:"Module"}));export{k as _}; diff --git a/apps/jingrow/frontend/dist/assets/Icon-d4eb6846.js b/apps/jingrow/frontend/dist/assets/Icon-cfe49052.js similarity index 90% rename from apps/jingrow/frontend/dist/assets/Icon-d4eb6846.js rename to apps/jingrow/frontend/dist/assets/Icon-cfe49052.js index 5b3e0e1..6b1d78e 100644 --- a/apps/jingrow/frontend/dist/assets/Icon-d4eb6846.js +++ b/apps/jingrow/frontend/dist/assets/Icon-cfe49052.js @@ -1 +1 @@ -import{I as d}from"./iconify-b5ab1212.js";import k from"./IconPicker-5c7938fe.js";import{d as h,c as p,r as b,e as a,f as r,p as g,g as _,y as f,D as t,j as s,Y as I,l as o,m as E}from"./index-b37e64ca.js";import{_ as w}from"./_plugin-vue_export-helper-c27b6911.js";const B={class:"field-label"},C={key:0,class:"required"},P={class:"icon-field-content"},V=["title"],N={key:1,class:"icon-display"},j={key:1,class:"icon-placeholder"},S={class:"icon-value-display"},q={key:0,class:"field-value-text"},z=h({__name:"Icon",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(v){const n=v,y=p(()=>n.df.label_layout||"vertical"),l=p({get:()=>n.record[n.df.fieldname]||"",set:e=>{n.record[n.df.fieldname]=e}}),u=b(null);function m(){var e;(e=u.value)==null||e.open()}return(e,c)=>(o(),a("div",{class:I(["field-wrapper",`layout-${y.value}`])},[r("label",B,[g(_(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(o(),a("span",C,"*")):f("",!0)]),r("div",P,[e.canEdit?(o(),a("div",{key:0,class:"icon-display clickable",onClick:m,title:e.ctx.t("Click to select icon")},[l.value?(o(),t(s(d),{key:0,icon:l.value,width:24,height:24,class:"icon-gray icon-preview"},null,8,["icon"])):(o(),t(s(d),{key:1,icon:"tabler:apps",width:24,height:24,class:"icon-gray icon-placeholder-icon"}))],8,V)):(o(),a("div",N,[l.value?(o(),t(s(d),{key:0,icon:l.value,width:24,height:24,class:"icon-gray"},null,8,["icon"])):(o(),a("span",j,"—"))])),r("div",S,[e.canEdit?(o(),t(s(E),{key:1,value:l.value,"onUpdate:value":c[0]||(c[0]=i=>l.value=i),placeholder:e.ctx.t("Enter icon name or click icon to select"),class:"icon-input",clearable:""},null,8,["value","placeholder"])):(o(),a("span",q,_(l.value||"—"),1))])]),e.canEdit?(o(),t(k,{key:0,ref_key:"iconPickerRef",ref:u,"model-value":l.value,"onUpdate:modelValue":c[1]||(c[1]=i=>l.value=i),style:{display:"none"}},null,8,["model-value"])):f("",!0)],2))}});const D=w(z,[["__scopeId","data-v-5f2b6189"]]),$=Object.freeze(Object.defineProperty({__proto__:null,default:D},Symbol.toStringTag,{value:"Module"}));export{$ as _}; +import{I as d}from"./iconify-30ae5ba5.js";import k from"./IconPicker-2d07cad1.js";import{d as h,c as p,r as b,e as a,f as r,p as g,g as _,y as f,D as t,j as s,Y as I,l as o,m as E}from"./index-7b482730.js";import{_ as w}from"./_plugin-vue_export-helper-c27b6911.js";const B={class:"field-label"},C={key:0,class:"required"},P={class:"icon-field-content"},V=["title"],N={key:1,class:"icon-display"},j={key:1,class:"icon-placeholder"},S={class:"icon-value-display"},q={key:0,class:"field-value-text"},z=h({__name:"Icon",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(v){const n=v,y=p(()=>n.df.label_layout||"vertical"),l=p({get:()=>n.record[n.df.fieldname]||"",set:e=>{n.record[n.df.fieldname]=e}}),u=b(null);function m(){var e;(e=u.value)==null||e.open()}return(e,c)=>(o(),a("div",{class:I(["field-wrapper",`layout-${y.value}`])},[r("label",B,[g(_(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(o(),a("span",C,"*")):f("",!0)]),r("div",P,[e.canEdit?(o(),a("div",{key:0,class:"icon-display clickable",onClick:m,title:e.ctx.t("Click to select icon")},[l.value?(o(),t(s(d),{key:0,icon:l.value,width:24,height:24,class:"icon-gray icon-preview"},null,8,["icon"])):(o(),t(s(d),{key:1,icon:"tabler:apps",width:24,height:24,class:"icon-gray icon-placeholder-icon"}))],8,V)):(o(),a("div",N,[l.value?(o(),t(s(d),{key:0,icon:l.value,width:24,height:24,class:"icon-gray"},null,8,["icon"])):(o(),a("span",j,"—"))])),r("div",S,[e.canEdit?(o(),t(s(E),{key:1,value:l.value,"onUpdate:value":c[0]||(c[0]=i=>l.value=i),placeholder:e.ctx.t("Enter icon name or click icon to select"),class:"icon-input",clearable:""},null,8,["value","placeholder"])):(o(),a("span",q,_(l.value||"—"),1))])]),e.canEdit?(o(),t(k,{key:0,ref_key:"iconPickerRef",ref:u,"model-value":l.value,"onUpdate:modelValue":c[1]||(c[1]=i=>l.value=i),style:{display:"none"}},null,8,["model-value"])):f("",!0)],2))}});const D=w(z,[["__scopeId","data-v-5f2b6189"]]),$=Object.freeze(Object.defineProperty({__proto__:null,default:D},Symbol.toStringTag,{value:"Module"}));export{$ as _}; diff --git a/apps/jingrow/frontend/dist/assets/IconPicker-5c7938fe.js b/apps/jingrow/frontend/dist/assets/IconPicker-2d07cad1.js similarity index 99% rename from apps/jingrow/frontend/dist/assets/IconPicker-5c7938fe.js rename to apps/jingrow/frontend/dist/assets/IconPicker-2d07cad1.js index 0750979..4f5ea55 100644 --- a/apps/jingrow/frontend/dist/assets/IconPicker-5c7938fe.js +++ b/apps/jingrow/frontend/dist/assets/IconPicker-2d07cad1.js @@ -1 +1 @@ -import{d as fe,u as me,r as d,c as S,M as q,e as y,h as c,w as b,j as a,l as g,F as E,p as j,g as r,t,n as P,a$ as he,f as u,m as ve,Z as ye,y as z,C as ge,Y as xe,L as Ie,b0 as be,J as Ne}from"./index-b37e64ca.js";import{I as w}from"./iconify-b5ab1212.js";import{u as Ue}from"./index-73986d31.js";import{_ as ke}from"./_plugin-vue_export-helper-c27b6911.js";const Z={all:{name:"all",prefix:"all",displayName:"All Icons",description:"显示所有图标库的图标,支持全局搜索",apiUrl:"https://api.iconify.design/collections"},tabler:{name:"tabler",prefix:"tabler",displayName:"Tabler Icons",description:"现代、简洁的SVG图标库 (5,963个图标)",apiUrl:"https://api.iconify.design/collection?prefix=tabler"},heroicons:{name:"heroicons",prefix:"heroicons",displayName:"Heroicons",description:"由Tailwind CSS团队制作的精美图标 (1,288个图标)",apiUrl:"https://api.iconify.design/collection?prefix=heroicons"},lucide:{name:"lucide",prefix:"lucide",displayName:"Lucide",description:"Feather图标的社区延续",apiUrl:"https://api.iconify.design/collection?prefix=lucide"},material:{name:"material",prefix:"material-symbols",displayName:"Material Symbols",description:"Google Material Design图标",apiUrl:"https://api.iconify.design/collection?prefix=material-symbols"},carbon:{name:"carbon",prefix:"carbon",displayName:"Carbon Icons",description:"IBM Carbon Design System图标 (2,392个图标)",apiUrl:"https://api.iconify.design/collection?prefix=carbon"},feather:{name:"feather",prefix:"feather",displayName:"Feather Icons",description:"简洁美观的线性图标 (286个图标)",apiUrl:"https://api.iconify.design/collection?prefix=feather"},fluent:{name:"fluent",prefix:"fluent",displayName:"Fluent UI System Icons",description:"Microsoft官方风格,企业级项目首选 (18,519个图标)",apiUrl:"https://api.iconify.design/collection?prefix=fluent"},phosphor:{name:"phosphor",prefix:"ph",displayName:"Phosphor",description:"多风格可选,设计现代 (9,072个图标)",apiUrl:"https://api.iconify.design/collection?prefix=ph"},hugeicons:{name:"hugeicons",prefix:"hugeicons",displayName:"Huge Icons",description:"图标数量大,种类丰富 (4,556个图标)",apiUrl:"https://api.iconify.design/collection?prefix=hugeicons"},"fluent-emoji-flat":{name:"fluent-emoji-flat",prefix:"fluent-emoji-flat",displayName:"Fluent Emoji Flat",description:"Emoji图标集,平面风格 (3,145个图标)",apiUrl:"https://api.iconify.design/collection?prefix=fluent-emoji-flat"},mynaui:{name:"mynaui",prefix:"mynaui",displayName:"Myna UI Icons",description:"UI设计友好,企业级项目 (2,544个图标)",apiUrl:"https://api.iconify.design/collection?prefix=mynaui"},tdesign:{name:"tdesign",prefix:"tdesign",displayName:"TDesign Icons",description:"腾讯设计团队,企业级项目首选 (2,130个图标)",apiUrl:"https://api.iconify.design/collection?prefix=tdesign"},"token-branded":{name:"token-branded",prefix:"token-branded",displayName:"Web3 Icons Branded",description:"Web3相关品牌图标,区块链项目 (2,000个图标)",apiUrl:"https://api.iconify.design/collection?prefix=token-branded"},token:{name:"token",prefix:"token",displayName:"Web3 Icons",description:"Web3主题图标,适合加密/区块链界面 (1,746个图标)",apiUrl:"https://api.iconify.design/collection?prefix=token"},"fluent-emoji-high-contrast":{name:"fluent-emoji-high-contrast",prefix:"fluent-emoji-high-contrast",displayName:"Fluent Emoji High Contrast",description:"高对比度Emoji,适合无障碍设计 (1,595个图标)",apiUrl:"https://api.iconify.design/collection?prefix=fluent-emoji-high-contrast"},iconoir:{name:"iconoir",prefix:"iconoir",displayName:"Iconoir",description:"风格现代、简洁,适合Web和移动端 (1,671个图标)",apiUrl:"https://api.iconify.design/collection?prefix=iconoir"},ion:{name:"ion",prefix:"ion",displayName:"IonIcons",description:"Ionic团队,移动端和Web项目通用 (1,357个图标)",apiUrl:"https://api.iconify.design/collection?prefix=ion"},"vscode-icons":{name:"vscode-icons",prefix:"vscode-icons",displayName:"VSCode Icons",description:"编程相关图标,适合开发工具 (1,397个图标)",apiUrl:"https://api.iconify.design/collection?prefix=vscode-icons"},"siemens-industrial":{name:"siemens-industrial",prefix:"ix",displayName:"Siemens Industrial Icons",description:"工业风格图标,适合工业/硬件UI (1,407个图标)",apiUrl:"https://api.iconify.design/collection?prefix=ix"},framework7:{name:"framework7",prefix:"f7",displayName:"Framework7 Icons",description:"移动端Web项目图标,兼容性好 (1,253个图标)",apiUrl:"https://api.iconify.design/collection?prefix=f7"},teenyicons:{name:"teenyicons",prefix:"teenyicons",displayName:"Teenyicons",description:"极小图标集,适合微小界面元素 (1,200个图标)",apiUrl:"https://api.iconify.design/collection?prefix=teenyicons"},dinkie:{name:"dinkie",prefix:"dinkie-icons",displayName:"Dinkie Icons",description:"小型图标集,设计简洁 (1,198个图标)",apiUrl:"https://api.iconify.design/collection?prefix=dinkie-icons"},"material-icon-theme":{name:"material-icon-theme",prefix:"material-icon-theme",displayName:"Material Icon Theme",description:"Material Design官方图标,UI项目首选 (1,106个图标)",apiUrl:"https://api.iconify.design/collection?prefix=material-icon-theme"},clarity:{name:"clarity",prefix:"clarity",displayName:"Clarity",description:"VMware提供,企业级UI项目 (1,103个图标)",apiUrl:"https://api.iconify.design/collection?prefix=clarity"},devicon:{name:"devicon",prefix:"devicon",displayName:"Devicon",description:"编程和开发工具图标,适合技术相关页面 (957个图标)",apiUrl:"https://api.iconify.design/collection?prefix=devicon"},jam:{name:"jam",prefix:"jam",displayName:"Jam Icons",description:"UI设计友好,风格多样 (940个图标)",apiUrl:"https://api.iconify.design/collection?prefix=jam"},"devicon-plain":{name:"devicon-plain",prefix:"devicon-plain",displayName:"Devicon Plain",description:"Devicon的简化版,更轻量 (700个图标)",apiUrl:"https://api.iconify.design/collection?prefix=devicon-plain"},gg:{name:"gg",prefix:"gg",displayName:"css.gg",description:"小而美的UI图标,设计现代 (704个图标)",apiUrl:"https://api.iconify.design/collection?prefix=gg"},lineicons:{name:"lineicons",prefix:"lineicons",displayName:"Lineicons",description:"流行线性图标集,UI项目适用 (606个图标)",apiUrl:"https://api.iconify.design/collection?prefix=lineicons"},fontisto:{name:"fontisto",prefix:"fontisto",displayName:"Fontisto",description:"社交媒体和常用图标集合 (615个图标)",apiUrl:"https://api.iconify.design/collection?prefix=fontisto"},healthicons:{name:"healthicons",prefix:"healthicons",displayName:"Health Icons",description:"医疗和健康相关图标,专业项目 (2,024个图标)",apiUrl:"https://api.iconify.design/collection?prefix=healthicons"},stash:{name:"stash",prefix:"stash",displayName:"Stash Icons",description:"通用UI图标集,适合快速集成 (982个图标)",apiUrl:"https://api.iconify.design/collection?prefix=stash"},si:{name:"si",prefix:"si",displayName:"Sargam Icons",description:"多用途图标集,风格现代 (1,227个图标)",apiUrl:"https://api.iconify.design/collection?prefix=si"},"ant-design":{name:"ant-design",prefix:"ant-design",displayName:"Ant Design Icons",description:"Ant Design官方图标,企业级UI项目 (830个图标)",apiUrl:"https://api.iconify.design/collection?prefix=ant-design"}};function W(N){return Z[N]||null}function Q(){const N=Object.values(Z),$=N.find(f=>f.name==="all"),C=N.filter(f=>f.name!=="all");return C.sort((f,D)=>f.displayName.localeCompare(D.displayName)),$?[$,...C]:C}const B="all",_e={class:"icon-picker"},we={class:"icon-picker-content"},Ce={class:"search-section"},Le={class:"search-controls"},Se={class:"icon-count"},je={key:0,class:"loading-text"},$e=["onClick","title"],Fe=["onClick","title"],De={class:"icon-wrapper"},Me={class:"icon-name"},Ae={key:1,class:"loading-more"},Te={class:"drawer-footer"},Ve=fe({__name:"IconPicker",props:{modelValue:{},iconLibrary:{default:B}},emits:["update:modelValue"],setup(N,{expose:$,emit:C}){const f=N,D=C,K=me(),U=d(!1),h=d(""),l=d(f.modelValue||""),p=d(""),m=d([]),k=d(f.iconLibrary||B),x=d(!1),I=d(1),X=d(200),F=d(!0),H=d(null),o=S(()=>W(k.value)||W(B)),ee=S(()=>Q().map(e=>({label:e.displayName,value:e.name,description:e.description}))),M=S(()=>{if(!h.value)return m.value;const e=h.value.toLowerCase();return m.value.filter(n=>n.toLowerCase().includes(e))}),O=S(()=>{const e=M.value,n=0,i=I.value*X.value;return e.slice(n,i)}),A=S(()=>O.value.length{Array.isArray(s)&&v.push(...s)}),m.value=v.sort()}else m.value=T(e.prefix);I.value=1,F.value=!0}}catch(e){console.warn(`Failed to load icons from ${o.value.displayName} API, using fallback list:`,e),m.value=T(o.value.prefix),I.value=1,F.value=!0}finally{x.value=!1}}async function ie(){try{const n=Q().filter(s=>s.name!=="all").map(async s=>{try{const _=await(await fetch(s.apiUrl)).json();let V=[];return _&&_.uncategorized?V=_.uncategorized:_&&_.categories&&Object.values(_.categories).forEach(L=>{Array.isArray(L)&&V.push(...L)}),V.map(L=>({name:L,library:s.prefix,fullName:`${s.prefix}:${L}`}))}catch(Y){return console.warn(`Failed to load icons from ${s.displayName}:`,Y),[]}}),v=(await Promise.all(n)).flat();m.value=v.map(s=>s.fullName).sort(),I.value=1,F.value=!0}catch(e){console.error("Failed to load all icons:",e),m.value=T(),I.value=1,F.value=!0}}function G(){A.value&&!x.value&&I.value++}function T(e){return["home","settings","user","menu","search","file","folder","dashboard","users","lock","key","shield","crown","trophy","gift","heart","star","download","upload","printer","file-text","chart-bar","chart-pie","chart-line","table","database","cloud","api","tool","bug","code","flask","bulb","camera","photo","video","music","volume","arrow-up","arrow-down","arrow-left","arrow-right","edit","trash","plus","minus","check","x","mail","phone","message","bell","shopping-cart","currency-dollar","credit-card","book","school","info-circle","alert-circle","robot","clock","calendar","map","globe","wifi","bluetooth","battery"].sort()}function ae(e){p.value=e}async function J(){if(U.value=!0,l.value&&l.value.includes(":")){const[e,n]=l.value.split(":"),i=W(e);i?(k.value=i.name,p.value=n,h.value=n):(o.value.name!=="all"&&(k.value="all"),p.value=l.value,h.value=l.value)}else l.value?(p.value=l.value,h.value=l.value):(p.value="",h.value="")}function ne(){let e;o.value.name==="all"?e=p.value:e=`${o.value.prefix}:${p.value}`,l.value=e,D("update:modelValue",e),U.value=!1}function oe(){p.value="",U.value=!1}function le(e){const n=e.target,{scrollTop:i,scrollHeight:v,clientHeight:s}=n;v-i-s<100&&A.value&&!x.value&&G()}const te=Ue(()=>{I.value=1},300);function se(){te()}async function ce(e){k.value=e,await R(),p.value=""}function re(e){return e&&e.includes(":")?e.split(":")[1]:e}function pe(e){console.warn("Icon failed to load:",e)}async function de(e){const n=o.value.name==="all"?e:`${o.value.prefix}:${e}`;await navigator.clipboard.writeText(n),K.success(`${t("Icon name copied to clipboard")}: ${n}`)}q(()=>f.modelValue,e=>{e!==l.value&&(l.value=e||"")},{immediate:!0}),q(U,async e=>{e&&(m.value.length===0&&await R(),await Ne(),setTimeout(()=>{var n;(n=H.value)==null||n.focus()},150))});function ue(){J()}return $({open:ue}),(e,n)=>(g(),y("div",_e,[c(a(P),{onClick:J,type:l.value?"default":"dashed",class:"icon-trigger",block:""},{default:b(()=>[l.value?(g(),y(E,{key:0},[c(a(w),{icon:l.value,width:20,height:20,style:{"margin-right":"8px"}},null,8,["icon"]),j(" "+r(re(l.value)),1)],64)):(g(),y(E,{key:1},[c(a(w),{icon:`${o.value.prefix}:menu`,width:20,height:20,style:{"margin-right":"8px"}},null,8,["icon"]),j(" "+r(a(t)("Select Icon")),1)],64))]),_:1},8,["type"]),c(a(be),{show:U.value,"onUpdate:show":n[2]||(n[2]=i=>U.value=i),width:900,placement:"right","trap-focus":!0,"close-on-esc":!0},{default:b(()=>[c(a(he),{title:a(t)("Select Icon"),closable:!0},{default:b(()=>[u("div",we,[u("div",Ce,[u("div",Le,[c(a(ve),{ref_key:"searchInputRef",ref:H,value:h.value,"onUpdate:value":[n[0]||(n[0]=i=>h.value=i),se],placeholder:a(t)("Search icon name..."),clearable:"",size:"large",style:{flex:"1"}},{prefix:b(()=>[c(a(w),{icon:`${o.value.prefix}:search`},null,8,["icon"])]),_:1},8,["value","placeholder"]),c(a(ye),{value:k.value,"onUpdate:value":[n[1]||(n[1]=i=>k.value=i),ce],options:ee.value,placeholder:a(t)("Icon Library"),size:"large",style:{width:"200px","margin-left":"12px"}},null,8,["value","options","placeholder"])]),u("div",Se,[j(r(a(t)("Total"))+" "+r(M.value.length)+" "+r(a(t)("icons"))+" ("+r(o.value.displayName)+") ",1),x.value?(g(),y("span",je,r(a(t)("Loading...")),1)):z("",!0)])]),u("div",{class:"icon-grid",onScroll:le},[(g(!0),y(E,null,ge(O.value,i=>(g(),y("div",{key:i,class:xe(["icon-item",{active:p.value===i}]),onClick:v=>ae(i),title:i},[u("button",{class:"copy-button",onClick:Ie(v=>de(i),["stop"]),title:a(t)("Copy icon name")},r(a(t)("Copy")),9,Fe),u("div",De,[c(a(w),{icon:o.value.name==="all"?i:`${o.value.prefix}:${i}`,width:32,height:32,onError:pe},null,8,["icon"])]),u("div",Me,r(o.value.name==="all"&&i.split(":")[1]||i),1)],10,$e))),128)),A.value&&!x.value?(g(),y("div",{key:0,class:"load-more",onClick:G},[c(a(w),{icon:`${o.value.prefix}:plus`,width:24,height:24},null,8,["icon"]),u("span",null,r(a(t)("Load More")),1)])):z("",!0),x.value?(g(),y("div",Ae,[c(a(w),{icon:`${o.value.prefix}:loader`,width:24,height:24,class:"spinning"},null,8,["icon"]),u("span",null,r(a(t)("Loading...")),1)])):z("",!0)],32)])]),footer:b(()=>[u("div",Te,[c(a(P),{onClick:oe},{default:b(()=>[j(r(a(t)("Cancel")),1)]),_:1}),c(a(P),{type:"primary",onClick:ne,disabled:!p.value},{default:b(()=>[j(r(a(t)("Confirm")),1)]),_:1},8,["disabled"])])]),_:1},8,["title"])]),_:1},8,["show"])]))}});const Be=ke(Ve,[["__scopeId","data-v-4c234e6a"]]);export{Be as default}; +import{d as fe,u as me,r as d,c as S,M as q,e as y,h as c,w as b,j as a,l as g,F as E,p as j,g as r,t,n as P,a$ as he,f as u,m as ve,Z as ye,y as z,C as ge,Y as xe,L as Ie,b0 as be,J as Ne}from"./index-7b482730.js";import{I as w}from"./iconify-30ae5ba5.js";import{u as Ue}from"./index-2fe8616a.js";import{_ as ke}from"./_plugin-vue_export-helper-c27b6911.js";const Z={all:{name:"all",prefix:"all",displayName:"All Icons",description:"显示所有图标库的图标,支持全局搜索",apiUrl:"https://api.iconify.design/collections"},tabler:{name:"tabler",prefix:"tabler",displayName:"Tabler Icons",description:"现代、简洁的SVG图标库 (5,963个图标)",apiUrl:"https://api.iconify.design/collection?prefix=tabler"},heroicons:{name:"heroicons",prefix:"heroicons",displayName:"Heroicons",description:"由Tailwind CSS团队制作的精美图标 (1,288个图标)",apiUrl:"https://api.iconify.design/collection?prefix=heroicons"},lucide:{name:"lucide",prefix:"lucide",displayName:"Lucide",description:"Feather图标的社区延续",apiUrl:"https://api.iconify.design/collection?prefix=lucide"},material:{name:"material",prefix:"material-symbols",displayName:"Material Symbols",description:"Google Material Design图标",apiUrl:"https://api.iconify.design/collection?prefix=material-symbols"},carbon:{name:"carbon",prefix:"carbon",displayName:"Carbon Icons",description:"IBM Carbon Design System图标 (2,392个图标)",apiUrl:"https://api.iconify.design/collection?prefix=carbon"},feather:{name:"feather",prefix:"feather",displayName:"Feather Icons",description:"简洁美观的线性图标 (286个图标)",apiUrl:"https://api.iconify.design/collection?prefix=feather"},fluent:{name:"fluent",prefix:"fluent",displayName:"Fluent UI System Icons",description:"Microsoft官方风格,企业级项目首选 (18,519个图标)",apiUrl:"https://api.iconify.design/collection?prefix=fluent"},phosphor:{name:"phosphor",prefix:"ph",displayName:"Phosphor",description:"多风格可选,设计现代 (9,072个图标)",apiUrl:"https://api.iconify.design/collection?prefix=ph"},hugeicons:{name:"hugeicons",prefix:"hugeicons",displayName:"Huge Icons",description:"图标数量大,种类丰富 (4,556个图标)",apiUrl:"https://api.iconify.design/collection?prefix=hugeicons"},"fluent-emoji-flat":{name:"fluent-emoji-flat",prefix:"fluent-emoji-flat",displayName:"Fluent Emoji Flat",description:"Emoji图标集,平面风格 (3,145个图标)",apiUrl:"https://api.iconify.design/collection?prefix=fluent-emoji-flat"},mynaui:{name:"mynaui",prefix:"mynaui",displayName:"Myna UI Icons",description:"UI设计友好,企业级项目 (2,544个图标)",apiUrl:"https://api.iconify.design/collection?prefix=mynaui"},tdesign:{name:"tdesign",prefix:"tdesign",displayName:"TDesign Icons",description:"腾讯设计团队,企业级项目首选 (2,130个图标)",apiUrl:"https://api.iconify.design/collection?prefix=tdesign"},"token-branded":{name:"token-branded",prefix:"token-branded",displayName:"Web3 Icons Branded",description:"Web3相关品牌图标,区块链项目 (2,000个图标)",apiUrl:"https://api.iconify.design/collection?prefix=token-branded"},token:{name:"token",prefix:"token",displayName:"Web3 Icons",description:"Web3主题图标,适合加密/区块链界面 (1,746个图标)",apiUrl:"https://api.iconify.design/collection?prefix=token"},"fluent-emoji-high-contrast":{name:"fluent-emoji-high-contrast",prefix:"fluent-emoji-high-contrast",displayName:"Fluent Emoji High Contrast",description:"高对比度Emoji,适合无障碍设计 (1,595个图标)",apiUrl:"https://api.iconify.design/collection?prefix=fluent-emoji-high-contrast"},iconoir:{name:"iconoir",prefix:"iconoir",displayName:"Iconoir",description:"风格现代、简洁,适合Web和移动端 (1,671个图标)",apiUrl:"https://api.iconify.design/collection?prefix=iconoir"},ion:{name:"ion",prefix:"ion",displayName:"IonIcons",description:"Ionic团队,移动端和Web项目通用 (1,357个图标)",apiUrl:"https://api.iconify.design/collection?prefix=ion"},"vscode-icons":{name:"vscode-icons",prefix:"vscode-icons",displayName:"VSCode Icons",description:"编程相关图标,适合开发工具 (1,397个图标)",apiUrl:"https://api.iconify.design/collection?prefix=vscode-icons"},"siemens-industrial":{name:"siemens-industrial",prefix:"ix",displayName:"Siemens Industrial Icons",description:"工业风格图标,适合工业/硬件UI (1,407个图标)",apiUrl:"https://api.iconify.design/collection?prefix=ix"},framework7:{name:"framework7",prefix:"f7",displayName:"Framework7 Icons",description:"移动端Web项目图标,兼容性好 (1,253个图标)",apiUrl:"https://api.iconify.design/collection?prefix=f7"},teenyicons:{name:"teenyicons",prefix:"teenyicons",displayName:"Teenyicons",description:"极小图标集,适合微小界面元素 (1,200个图标)",apiUrl:"https://api.iconify.design/collection?prefix=teenyicons"},dinkie:{name:"dinkie",prefix:"dinkie-icons",displayName:"Dinkie Icons",description:"小型图标集,设计简洁 (1,198个图标)",apiUrl:"https://api.iconify.design/collection?prefix=dinkie-icons"},"material-icon-theme":{name:"material-icon-theme",prefix:"material-icon-theme",displayName:"Material Icon Theme",description:"Material Design官方图标,UI项目首选 (1,106个图标)",apiUrl:"https://api.iconify.design/collection?prefix=material-icon-theme"},clarity:{name:"clarity",prefix:"clarity",displayName:"Clarity",description:"VMware提供,企业级UI项目 (1,103个图标)",apiUrl:"https://api.iconify.design/collection?prefix=clarity"},devicon:{name:"devicon",prefix:"devicon",displayName:"Devicon",description:"编程和开发工具图标,适合技术相关页面 (957个图标)",apiUrl:"https://api.iconify.design/collection?prefix=devicon"},jam:{name:"jam",prefix:"jam",displayName:"Jam Icons",description:"UI设计友好,风格多样 (940个图标)",apiUrl:"https://api.iconify.design/collection?prefix=jam"},"devicon-plain":{name:"devicon-plain",prefix:"devicon-plain",displayName:"Devicon Plain",description:"Devicon的简化版,更轻量 (700个图标)",apiUrl:"https://api.iconify.design/collection?prefix=devicon-plain"},gg:{name:"gg",prefix:"gg",displayName:"css.gg",description:"小而美的UI图标,设计现代 (704个图标)",apiUrl:"https://api.iconify.design/collection?prefix=gg"},lineicons:{name:"lineicons",prefix:"lineicons",displayName:"Lineicons",description:"流行线性图标集,UI项目适用 (606个图标)",apiUrl:"https://api.iconify.design/collection?prefix=lineicons"},fontisto:{name:"fontisto",prefix:"fontisto",displayName:"Fontisto",description:"社交媒体和常用图标集合 (615个图标)",apiUrl:"https://api.iconify.design/collection?prefix=fontisto"},healthicons:{name:"healthicons",prefix:"healthicons",displayName:"Health Icons",description:"医疗和健康相关图标,专业项目 (2,024个图标)",apiUrl:"https://api.iconify.design/collection?prefix=healthicons"},stash:{name:"stash",prefix:"stash",displayName:"Stash Icons",description:"通用UI图标集,适合快速集成 (982个图标)",apiUrl:"https://api.iconify.design/collection?prefix=stash"},si:{name:"si",prefix:"si",displayName:"Sargam Icons",description:"多用途图标集,风格现代 (1,227个图标)",apiUrl:"https://api.iconify.design/collection?prefix=si"},"ant-design":{name:"ant-design",prefix:"ant-design",displayName:"Ant Design Icons",description:"Ant Design官方图标,企业级UI项目 (830个图标)",apiUrl:"https://api.iconify.design/collection?prefix=ant-design"}};function W(N){return Z[N]||null}function Q(){const N=Object.values(Z),$=N.find(f=>f.name==="all"),C=N.filter(f=>f.name!=="all");return C.sort((f,D)=>f.displayName.localeCompare(D.displayName)),$?[$,...C]:C}const B="all",_e={class:"icon-picker"},we={class:"icon-picker-content"},Ce={class:"search-section"},Le={class:"search-controls"},Se={class:"icon-count"},je={key:0,class:"loading-text"},$e=["onClick","title"],Fe=["onClick","title"],De={class:"icon-wrapper"},Me={class:"icon-name"},Ae={key:1,class:"loading-more"},Te={class:"drawer-footer"},Ve=fe({__name:"IconPicker",props:{modelValue:{},iconLibrary:{default:B}},emits:["update:modelValue"],setup(N,{expose:$,emit:C}){const f=N,D=C,K=me(),U=d(!1),h=d(""),l=d(f.modelValue||""),p=d(""),m=d([]),k=d(f.iconLibrary||B),x=d(!1),I=d(1),X=d(200),F=d(!0),H=d(null),o=S(()=>W(k.value)||W(B)),ee=S(()=>Q().map(e=>({label:e.displayName,value:e.name,description:e.description}))),M=S(()=>{if(!h.value)return m.value;const e=h.value.toLowerCase();return m.value.filter(n=>n.toLowerCase().includes(e))}),O=S(()=>{const e=M.value,n=0,i=I.value*X.value;return e.slice(n,i)}),A=S(()=>O.value.length{Array.isArray(s)&&v.push(...s)}),m.value=v.sort()}else m.value=T(e.prefix);I.value=1,F.value=!0}}catch(e){console.warn(`Failed to load icons from ${o.value.displayName} API, using fallback list:`,e),m.value=T(o.value.prefix),I.value=1,F.value=!0}finally{x.value=!1}}async function ie(){try{const n=Q().filter(s=>s.name!=="all").map(async s=>{try{const _=await(await fetch(s.apiUrl)).json();let V=[];return _&&_.uncategorized?V=_.uncategorized:_&&_.categories&&Object.values(_.categories).forEach(L=>{Array.isArray(L)&&V.push(...L)}),V.map(L=>({name:L,library:s.prefix,fullName:`${s.prefix}:${L}`}))}catch(Y){return console.warn(`Failed to load icons from ${s.displayName}:`,Y),[]}}),v=(await Promise.all(n)).flat();m.value=v.map(s=>s.fullName).sort(),I.value=1,F.value=!0}catch(e){console.error("Failed to load all icons:",e),m.value=T(),I.value=1,F.value=!0}}function G(){A.value&&!x.value&&I.value++}function T(e){return["home","settings","user","menu","search","file","folder","dashboard","users","lock","key","shield","crown","trophy","gift","heart","star","download","upload","printer","file-text","chart-bar","chart-pie","chart-line","table","database","cloud","api","tool","bug","code","flask","bulb","camera","photo","video","music","volume","arrow-up","arrow-down","arrow-left","arrow-right","edit","trash","plus","minus","check","x","mail","phone","message","bell","shopping-cart","currency-dollar","credit-card","book","school","info-circle","alert-circle","robot","clock","calendar","map","globe","wifi","bluetooth","battery"].sort()}function ae(e){p.value=e}async function J(){if(U.value=!0,l.value&&l.value.includes(":")){const[e,n]=l.value.split(":"),i=W(e);i?(k.value=i.name,p.value=n,h.value=n):(o.value.name!=="all"&&(k.value="all"),p.value=l.value,h.value=l.value)}else l.value?(p.value=l.value,h.value=l.value):(p.value="",h.value="")}function ne(){let e;o.value.name==="all"?e=p.value:e=`${o.value.prefix}:${p.value}`,l.value=e,D("update:modelValue",e),U.value=!1}function oe(){p.value="",U.value=!1}function le(e){const n=e.target,{scrollTop:i,scrollHeight:v,clientHeight:s}=n;v-i-s<100&&A.value&&!x.value&&G()}const te=Ue(()=>{I.value=1},300);function se(){te()}async function ce(e){k.value=e,await R(),p.value=""}function re(e){return e&&e.includes(":")?e.split(":")[1]:e}function pe(e){console.warn("Icon failed to load:",e)}async function de(e){const n=o.value.name==="all"?e:`${o.value.prefix}:${e}`;await navigator.clipboard.writeText(n),K.success(`${t("Icon name copied to clipboard")}: ${n}`)}q(()=>f.modelValue,e=>{e!==l.value&&(l.value=e||"")},{immediate:!0}),q(U,async e=>{e&&(m.value.length===0&&await R(),await Ne(),setTimeout(()=>{var n;(n=H.value)==null||n.focus()},150))});function ue(){J()}return $({open:ue}),(e,n)=>(g(),y("div",_e,[c(a(P),{onClick:J,type:l.value?"default":"dashed",class:"icon-trigger",block:""},{default:b(()=>[l.value?(g(),y(E,{key:0},[c(a(w),{icon:l.value,width:20,height:20,style:{"margin-right":"8px"}},null,8,["icon"]),j(" "+r(re(l.value)),1)],64)):(g(),y(E,{key:1},[c(a(w),{icon:`${o.value.prefix}:menu`,width:20,height:20,style:{"margin-right":"8px"}},null,8,["icon"]),j(" "+r(a(t)("Select Icon")),1)],64))]),_:1},8,["type"]),c(a(be),{show:U.value,"onUpdate:show":n[2]||(n[2]=i=>U.value=i),width:900,placement:"right","trap-focus":!0,"close-on-esc":!0},{default:b(()=>[c(a(he),{title:a(t)("Select Icon"),closable:!0},{default:b(()=>[u("div",we,[u("div",Ce,[u("div",Le,[c(a(ve),{ref_key:"searchInputRef",ref:H,value:h.value,"onUpdate:value":[n[0]||(n[0]=i=>h.value=i),se],placeholder:a(t)("Search icon name..."),clearable:"",size:"large",style:{flex:"1"}},{prefix:b(()=>[c(a(w),{icon:`${o.value.prefix}:search`},null,8,["icon"])]),_:1},8,["value","placeholder"]),c(a(ye),{value:k.value,"onUpdate:value":[n[1]||(n[1]=i=>k.value=i),ce],options:ee.value,placeholder:a(t)("Icon Library"),size:"large",style:{width:"200px","margin-left":"12px"}},null,8,["value","options","placeholder"])]),u("div",Se,[j(r(a(t)("Total"))+" "+r(M.value.length)+" "+r(a(t)("icons"))+" ("+r(o.value.displayName)+") ",1),x.value?(g(),y("span",je,r(a(t)("Loading...")),1)):z("",!0)])]),u("div",{class:"icon-grid",onScroll:le},[(g(!0),y(E,null,ge(O.value,i=>(g(),y("div",{key:i,class:xe(["icon-item",{active:p.value===i}]),onClick:v=>ae(i),title:i},[u("button",{class:"copy-button",onClick:Ie(v=>de(i),["stop"]),title:a(t)("Copy icon name")},r(a(t)("Copy")),9,Fe),u("div",De,[c(a(w),{icon:o.value.name==="all"?i:`${o.value.prefix}:${i}`,width:32,height:32,onError:pe},null,8,["icon"])]),u("div",Me,r(o.value.name==="all"&&i.split(":")[1]||i),1)],10,$e))),128)),A.value&&!x.value?(g(),y("div",{key:0,class:"load-more",onClick:G},[c(a(w),{icon:`${o.value.prefix}:plus`,width:24,height:24},null,8,["icon"]),u("span",null,r(a(t)("Load More")),1)])):z("",!0),x.value?(g(),y("div",Ae,[c(a(w),{icon:`${o.value.prefix}:loader`,width:24,height:24,class:"spinning"},null,8,["icon"]),u("span",null,r(a(t)("Loading...")),1)])):z("",!0)],32)])]),footer:b(()=>[u("div",Te,[c(a(P),{onClick:oe},{default:b(()=>[j(r(a(t)("Cancel")),1)]),_:1}),c(a(P),{type:"primary",onClick:ne,disabled:!p.value},{default:b(()=>[j(r(a(t)("Confirm")),1)]),_:1},8,["disabled"])])]),_:1},8,["title"])]),_:1},8,["show"])]))}});const Be=ke(Ve,[["__scopeId","data-v-4c234e6a"]]);export{Be as default}; diff --git a/apps/jingrow/frontend/dist/assets/Image-85b37f18.js b/apps/jingrow/frontend/dist/assets/Image-0feee1f3.js similarity index 95% rename from apps/jingrow/frontend/dist/assets/Image-85b37f18.js rename to apps/jingrow/frontend/dist/assets/Image-0feee1f3.js index 72e2479..1b38d12 100644 --- a/apps/jingrow/frontend/dist/assets/Image-85b37f18.js +++ b/apps/jingrow/frontend/dist/assets/Image-0feee1f3.js @@ -1 +1 @@ -import{d as v,r as p,c as n,o as f,e as l,f as t,g as y,y as c,l as i}from"./index-b37e64ca.js";import{_ as I}from"./_plugin-vue_export-helper-c27b6911.js";const b={key:0,class:"form-field"},h={class:"field-content"},x={class:"image-container"},k={class:"image-body",style:{"margin-bottom":"10px"}},B=["src"],E={key:1,class:"image-error"},L={class:"error-url"},S=v({__name:"Image",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(u){const r=u,s=p(!1),a=n(()=>{const e=r.record;return e&&r.df.options&&e[r.df.options]?e[r.df.options]:""}),d=n(()=>{const e=a.value;return!!(e&&e.trim())}),_=n(()=>d.value||s.value);f(()=>{});function m(e){const o=e.target;s.value=!0,console.error("[Image] Failed to load image:",o.src)}function g(){s.value=!1}return(e,o)=>_.value?(i(),l("div",b,[t("div",h,[t("div",x,[t("div",k,[d.value&&!s.value?(i(),l("img",{key:0,src:a.value,class:"img-responsive",alt:"Image",onError:m,onLoad:g},null,40,B)):s.value?(i(),l("div",E,[o[0]||(o[0]=t("svg",{class:"icon icon-md","aria-hidden":"true"},[t("use",{href:"#icon-restriction"})],-1)),o[1]||(o[1]=t("div",{class:"error-text"},"图片加载失败",-1)),t("div",L,y(a.value),1)])):c("",!0)]),o[2]||(o[2]=t("div",{class:"clearfix"},null,-1))])])])):c("",!0)}});const j=I(S,[["__scopeId","data-v-921bd1a3"]]),N=Object.freeze(Object.defineProperty({__proto__:null,default:j},Symbol.toStringTag,{value:"Module"}));export{N as _}; +import{d as v,r as p,c as n,o as f,e as l,f as t,g as y,y as c,l as i}from"./index-7b482730.js";import{_ as I}from"./_plugin-vue_export-helper-c27b6911.js";const b={key:0,class:"form-field"},h={class:"field-content"},x={class:"image-container"},k={class:"image-body",style:{"margin-bottom":"10px"}},B=["src"],E={key:1,class:"image-error"},L={class:"error-url"},S=v({__name:"Image",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(u){const r=u,s=p(!1),a=n(()=>{const e=r.record;return e&&r.df.options&&e[r.df.options]?e[r.df.options]:""}),d=n(()=>{const e=a.value;return!!(e&&e.trim())}),_=n(()=>d.value||s.value);f(()=>{});function m(e){const o=e.target;s.value=!0,console.error("[Image] Failed to load image:",o.src)}function g(){s.value=!1}return(e,o)=>_.value?(i(),l("div",b,[t("div",h,[t("div",x,[t("div",k,[d.value&&!s.value?(i(),l("img",{key:0,src:a.value,class:"img-responsive",alt:"Image",onError:m,onLoad:g},null,40,B)):s.value?(i(),l("div",E,[o[0]||(o[0]=t("svg",{class:"icon icon-md","aria-hidden":"true"},[t("use",{href:"#icon-restriction"})],-1)),o[1]||(o[1]=t("div",{class:"error-text"},"图片加载失败",-1)),t("div",L,y(a.value),1)])):c("",!0)]),o[2]||(o[2]=t("div",{class:"clearfix"},null,-1))])])])):c("",!0)}});const j=I(S,[["__scopeId","data-v-921bd1a3"]]),N=Object.freeze(Object.defineProperty({__proto__:null,default:j},Symbol.toStringTag,{value:"Module"}));export{N as _}; diff --git a/apps/jingrow/frontend/dist/assets/ImageGallery-f23d1823.js b/apps/jingrow/frontend/dist/assets/ImageGallery-63e4832e.js similarity index 97% rename from apps/jingrow/frontend/dist/assets/ImageGallery-f23d1823.js rename to apps/jingrow/frontend/dist/assets/ImageGallery-63e4832e.js index 5766382..8e79af7 100644 --- a/apps/jingrow/frontend/dist/assets/ImageGallery-f23d1823.js +++ b/apps/jingrow/frontend/dist/assets/ImageGallery-63e4832e.js @@ -1 +1 @@ -import{d as K,r as f,c as U,M as j,o as O,K as P,D as $,e as d,f as g,h as p,j as k,L,y as m,g as x,aN as q,l as i}from"./index-b37e64ca.js";import{I as _}from"./iconify-b5ab1212.js";import{_ as z}from"./_plugin-vue_export-helper-c27b6911.js";const F={class:"image-wrapper"},H=["src","alt"],J={key:0,class:"image-index"},Q=K({__name:"ImageGallery",props:{images:{},initialIndex:{}},emits:["close"],setup(E,{expose:M,emit:T}){const n=E,B=T,s=f(!1),t=f(0),r=f(!1),X=U(()=>n.images[t.value]||""),N=(e=0)=>{t.value=Math.max(0,Math.min(e,n.images.length-1)),s.value=!0,r.value=!1},o=()=>{s.value=!1,B("close")},c=()=>{n.images.length<=1||(t.value=t.value>0?t.value-1:n.images.length-1,r.value=!1)},l=()=>{n.images.length<=1||(t.value=t.value{e.target===e.currentTarget&&o()},G=e=>{const a=e.target;if(!(a.tagName==="BUTTON"||a.closest("button"))&&!(a.classList.contains("image-index")||a.closest(".image-index"))){if(a.classList.contains("gallery-image")){const u=a.getBoundingClientRect(),v=e.clientX-u.left,D=u.width;v{e.stopPropagation();const h=e.currentTarget.getBoundingClientRect(),u=e.clientX-h.left,v=h.width;u{r.value=!0},y=e=>{if(s.value)switch(e.key){case"Escape":o();break;case"ArrowLeft":c();break;case"ArrowRight":l();break}};let b=0,C=0;const w=e=>{e.touches.length===1&&(b=e.touches[0].clientX)},I=e=>{e.changedTouches.length===1&&(C=e.changedTouches[0].clientX,A())},A=()=>{const e=C-b,a=50;Math.abs(e)>a&&(e<0?l():c())};return j(()=>n.initialIndex,e=>{e!==void 0&&s.value&&(t.value=Math.max(0,Math.min(e,n.images.length-1)))}),O(()=>{document.addEventListener("keydown",y),document.addEventListener("touchstart",w,{passive:!0}),document.addEventListener("touchend",I,{passive:!0})}),P(()=>{document.removeEventListener("keydown",y),document.removeEventListener("touchstart",w),document.removeEventListener("touchend",I)}),M({open:N,close:o}),(e,a)=>(i(),$(q,{to:"body"},[s.value?(i(),d("div",{key:0,class:"image-gallery-modal",onClick:S},[g("div",{class:"image-gallery-container",onClick:G},[g("button",{class:"close-btn",onClick:o},[p(k(_),{icon:"tabler:x"})]),g("div",F,[g("img",{src:X.value,alt:`图片 ${t.value+1}`,class:"gallery-image",onLoad:V,onClick:R},null,40,H),e.images.length>1?(i(),d("button",{key:0,class:"nav-btn nav-left",onClick:L(c,["stop"])},[p(k(_),{icon:"tabler:chevron-left"})])):m("",!0),e.images.length>1?(i(),d("button",{key:1,class:"nav-btn nav-right",onClick:L(l,["stop"])},[p(k(_),{icon:"tabler:chevron-right"})])):m("",!0)]),e.images.length>1?(i(),d("div",J,x(t.value+1)+" / "+x(e.images.length),1)):m("",!0)])])):m("",!0)]))}});const ee=z(Q,[["__scopeId","data-v-5cebea08"]]);export{ee as default}; +import{d as K,r as f,c as U,M as j,o as O,K as P,D as $,e as d,f as g,h as p,j as k,L,y as m,g as x,aN as q,l as i}from"./index-7b482730.js";import{I as _}from"./iconify-30ae5ba5.js";import{_ as z}from"./_plugin-vue_export-helper-c27b6911.js";const F={class:"image-wrapper"},H=["src","alt"],J={key:0,class:"image-index"},Q=K({__name:"ImageGallery",props:{images:{},initialIndex:{}},emits:["close"],setup(E,{expose:M,emit:T}){const n=E,B=T,s=f(!1),t=f(0),r=f(!1),X=U(()=>n.images[t.value]||""),N=(e=0)=>{t.value=Math.max(0,Math.min(e,n.images.length-1)),s.value=!0,r.value=!1},o=()=>{s.value=!1,B("close")},c=()=>{n.images.length<=1||(t.value=t.value>0?t.value-1:n.images.length-1,r.value=!1)},l=()=>{n.images.length<=1||(t.value=t.value{e.target===e.currentTarget&&o()},G=e=>{const a=e.target;if(!(a.tagName==="BUTTON"||a.closest("button"))&&!(a.classList.contains("image-index")||a.closest(".image-index"))){if(a.classList.contains("gallery-image")){const u=a.getBoundingClientRect(),v=e.clientX-u.left,D=u.width;v{e.stopPropagation();const h=e.currentTarget.getBoundingClientRect(),u=e.clientX-h.left,v=h.width;u{r.value=!0},y=e=>{if(s.value)switch(e.key){case"Escape":o();break;case"ArrowLeft":c();break;case"ArrowRight":l();break}};let b=0,C=0;const w=e=>{e.touches.length===1&&(b=e.touches[0].clientX)},I=e=>{e.changedTouches.length===1&&(C=e.changedTouches[0].clientX,A())},A=()=>{const e=C-b,a=50;Math.abs(e)>a&&(e<0?l():c())};return j(()=>n.initialIndex,e=>{e!==void 0&&s.value&&(t.value=Math.max(0,Math.min(e,n.images.length-1)))}),O(()=>{document.addEventListener("keydown",y),document.addEventListener("touchstart",w,{passive:!0}),document.addEventListener("touchend",I,{passive:!0})}),P(()=>{document.removeEventListener("keydown",y),document.removeEventListener("touchstart",w),document.removeEventListener("touchend",I)}),M({open:N,close:o}),(e,a)=>(i(),$(q,{to:"body"},[s.value?(i(),d("div",{key:0,class:"image-gallery-modal",onClick:S},[g("div",{class:"image-gallery-container",onClick:G},[g("button",{class:"close-btn",onClick:o},[p(k(_),{icon:"tabler:x"})]),g("div",F,[g("img",{src:X.value,alt:`图片 ${t.value+1}`,class:"gallery-image",onLoad:V,onClick:R},null,40,H),e.images.length>1?(i(),d("button",{key:0,class:"nav-btn nav-left",onClick:L(c,["stop"])},[p(k(_),{icon:"tabler:chevron-left"})])):m("",!0),e.images.length>1?(i(),d("button",{key:1,class:"nav-btn nav-right",onClick:L(l,["stop"])},[p(k(_),{icon:"tabler:chevron-right"})])):m("",!0)]),e.images.length>1?(i(),d("div",J,x(t.value+1)+" / "+x(e.images.length),1)):m("",!0)])])):m("",!0)]))}});const ee=z(Q,[["__scopeId","data-v-5cebea08"]]);export{ee as default}; diff --git a/apps/jingrow/frontend/dist/assets/ImageSection-09d74899.js b/apps/jingrow/frontend/dist/assets/ImageSection-ac8b0acc.js similarity index 95% rename from apps/jingrow/frontend/dist/assets/ImageSection-09d74899.js rename to apps/jingrow/frontend/dist/assets/ImageSection-ac8b0acc.js index 08f4782..a505ba8 100644 --- a/apps/jingrow/frontend/dist/assets/ImageSection-09d74899.js +++ b/apps/jingrow/frontend/dist/assets/ImageSection-ac8b0acc.js @@ -1 +1 @@ -import{d as v,r as u,c as _,e as r,f as a,F as h,C as k,h as w,w as C,j as I,y as M,l as i,af as x}from"./index-b37e64ca.js";import{_ as F}from"./_plugin-vue_export-helper-c27b6911.js";const b={key:0,class:"media-section"},y={class:"image-grid"},N=["onClick"],B=["src","alt"],V={class:"image-modal-container"},L=["src"],S=v({__name:"ImageSection",props:{metaFields:{},record:{},pageMeta:{}},setup(f){const n=f,o=u(!1),d=u(""),c=_(()=>{var l;const t=(l=n.pageMeta)==null?void 0:l.image_field;if(!t||!t.trim())return[];const s=n.metaFields.find(m=>m.fieldname===t);if(!s)return[];const e=n.record[t];return!e||!e.trim()?[]:[{fieldname:t,url:e,label:s.label||t}]}),p=_(()=>c.value.length>0),g=t=>{d.value=t,o.value=!0};return(t,s)=>p.value?(i(),r("div",b,[a("div",y,[(i(!0),r(h,null,k(c.value,(e,l)=>(i(),r("div",{key:l,class:"image-card",onClick:m=>g(e.url)},[a("img",{src:e.url,alt:e.fieldname},null,8,B)],8,N))),128))]),w(I(x),{show:o.value,"onUpdate:show":s[1]||(s[1]=e=>o.value=e),"mask-closable":!0},{default:C(()=>[a("div",V,[a("button",{class:"close-btn",onClick:s[0]||(s[0]=e=>o.value=!1)},[...s[2]||(s[2]=[a("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none"},[a("path",{d:"M18 6L6 18M6 6L18 18",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])]),a("img",{src:d.value,class:"preview-image"},null,8,L)])]),_:1},8,["show"])])):M("",!0)}});const j=F(S,[["__scopeId","data-v-626f5180"]]);export{j as default}; +import{d as v,r as u,c as _,e as r,f as a,F as h,C as k,h as w,w as C,j as I,y as M,l as i,af as x}from"./index-7b482730.js";import{_ as F}from"./_plugin-vue_export-helper-c27b6911.js";const b={key:0,class:"media-section"},y={class:"image-grid"},N=["onClick"],B=["src","alt"],V={class:"image-modal-container"},L=["src"],S=v({__name:"ImageSection",props:{metaFields:{},record:{},pageMeta:{}},setup(f){const n=f,o=u(!1),d=u(""),c=_(()=>{var l;const t=(l=n.pageMeta)==null?void 0:l.image_field;if(!t||!t.trim())return[];const s=n.metaFields.find(m=>m.fieldname===t);if(!s)return[];const e=n.record[t];return!e||!e.trim()?[]:[{fieldname:t,url:e,label:s.label||t}]}),p=_(()=>c.value.length>0),g=t=>{d.value=t,o.value=!0};return(t,s)=>p.value?(i(),r("div",b,[a("div",y,[(i(!0),r(h,null,k(c.value,(e,l)=>(i(),r("div",{key:l,class:"image-card",onClick:m=>g(e.url)},[a("img",{src:e.url,alt:e.fieldname},null,8,B)],8,N))),128))]),w(I(x),{show:o.value,"onUpdate:show":s[1]||(s[1]=e=>o.value=e),"mask-closable":!0},{default:C(()=>[a("div",V,[a("button",{class:"close-btn",onClick:s[0]||(s[0]=e=>o.value=!1)},[...s[2]||(s[2]=[a("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none"},[a("path",{d:"M18 6L6 18M6 6L18 18",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])]),a("img",{src:d.value,class:"preview-image"},null,8,L)])]),_:1},8,["show"])])):M("",!0)}});const j=F(S,[["__scopeId","data-v-626f5180"]]);export{j as default}; diff --git a/apps/jingrow/frontend/dist/assets/InstallProgressModal-8a22be9b.js b/apps/jingrow/frontend/dist/assets/InstallProgressModal-1ec0a6fc.js similarity index 94% rename from apps/jingrow/frontend/dist/assets/InstallProgressModal-8a22be9b.js rename to apps/jingrow/frontend/dist/assets/InstallProgressModal-1ec0a6fc.js index b545d8f..c0947c6 100644 --- a/apps/jingrow/frontend/dist/assets/InstallProgressModal-8a22be9b.js +++ b/apps/jingrow/frontend/dist/assets/InstallProgressModal-1ec0a6fc.js @@ -1 +1 @@ -import{d as h,r as w,M as i,D as v,w as t,j as s,l as V,f as p,g as o,t as n,h as r,p as c,n as I,az as N,s as y,af as B}from"./index-b37e64ca.js";import{_ as C}from"./_plugin-vue_export-helper-c27b6911.js";const M={class:"progress-content"},x=h({__name:"InstallProgressModal",props:{modelValue:{type:Boolean},progress:{},message:{},status:{},installing:{type:Boolean},title:{}},emits:["update:modelValue"],setup(u,{emit:g}){const l=u,_=g,a=w(l.modelValue);i(()=>l.modelValue,e=>{a.value=e}),i(a,e=>{_("update:modelValue",e)});function f(){l.installing||(a.value=!1)}return(e,d)=>(V(),v(s(B),{show:a.value,"onUpdate:show":d[0]||(d[0]=m=>a.value=m),preset:"card",style:{width:"500px"}},{header:t(()=>[p("h3",null,o(e.title||s(n)("Installing App")),1)]),action:t(()=>[r(s(I),{onClick:f,disabled:e.installing},{default:t(()=>[c(o(e.installing?s(n)("Installing..."):s(n)("Close")),1)]),_:1},8,["disabled"])]),default:t(()=>[p("div",M,[r(s(N),{percentage:e.progress,"show-indicator":!0,color:"#10b981"},null,8,["percentage"]),r(s(y),{class:"progress-text"},{default:t(()=>[c(o(e.message),1)]),_:1})])]),_:1},8,["show"]))}});const k=C(x,[["__scopeId","data-v-fee9acec"]]);export{k as I}; +import{d as h,r as w,M as i,D as v,w as t,j as s,l as V,f as p,g as o,t as n,h as r,p as c,n as I,az as N,s as y,af as B}from"./index-7b482730.js";import{_ as C}from"./_plugin-vue_export-helper-c27b6911.js";const M={class:"progress-content"},x=h({__name:"InstallProgressModal",props:{modelValue:{type:Boolean},progress:{},message:{},status:{},installing:{type:Boolean},title:{}},emits:["update:modelValue"],setup(u,{emit:g}){const l=u,_=g,a=w(l.modelValue);i(()=>l.modelValue,e=>{a.value=e}),i(a,e=>{_("update:modelValue",e)});function f(){l.installing||(a.value=!1)}return(e,d)=>(V(),v(s(B),{show:a.value,"onUpdate:show":d[0]||(d[0]=m=>a.value=m),preset:"card",style:{width:"500px"}},{header:t(()=>[p("h3",null,o(e.title||s(n)("Installing App")),1)]),action:t(()=>[r(s(I),{onClick:f,disabled:e.installing},{default:t(()=>[c(o(e.installing?s(n)("Installing..."):s(n)("Close")),1)]),_:1},8,["disabled"])]),default:t(()=>[p("div",M,[r(s(N),{percentage:e.progress,"show-indicator":!0,color:"#10b981"},null,8,["percentage"]),r(s(y),{class:"progress-text"},{default:t(()=>[c(o(e.message),1)]),_:1})])]),_:1},8,["show"]))}});const k=C(x,[["__scopeId","data-v-fee9acec"]]);export{k as I}; diff --git a/apps/jingrow/frontend/dist/assets/InstalledApps-e802f9b1.js b/apps/jingrow/frontend/dist/assets/InstalledApps-82e8ebf3.js similarity index 96% rename from apps/jingrow/frontend/dist/assets/InstalledApps-e802f9b1.js rename to apps/jingrow/frontend/dist/assets/InstalledApps-82e8ebf3.js index 4c8a738..9e94f4e 100644 --- a/apps/jingrow/frontend/dist/assets/InstalledApps-e802f9b1.js +++ b/apps/jingrow/frontend/dist/assets/InstalledApps-82e8ebf3.js @@ -1 +1 @@ -import{I as A}from"./iconify-b5ab1212.js";import{d as U,r as d,u as B,X as T,t as e,A as _,n as g,a0 as m,a2 as h,o as S,e as V,f as c,h as r,w as i,j as l,p as b,g as y,l as $,$ as k,ac as D,U as E}from"./index-b37e64ca.js";import{_ as M}from"./_plugin-vue_export-helper-c27b6911.js";const z={class:"installed-apps-page"},P={class:"page-header"},G={class:"header-content"},L={class:"page-title"},R={class:"page-description"},X={class:"apps-section"},q=U({__name:"InstalledApps",setup(H){const v=d([]),p=d(!1),x=d(!1),u=d(null),n=B(),w=T(),I=[{title:e("App Name"),key:"name",width:200},{title:e("Version"),key:"version",width:100,render:a=>a.version||"1.0.0"},{title:e("Git Branch"),key:"git_branch",width:120,render:a=>a.git_branch||"main"},{title:e("Actions"),key:"actions",width:280,render:a=>_("div",{class:"action-buttons"},[_(g,{size:"small",type:"default",loading:u.value===a.name,disabled:a.name==="jingrow",onClick:()=>N(a)},{default:()=>e("Export Package")}),_(g,{size:"small",type:"error",style:"margin-left: 8px;",disabled:!a.uninstallable,onClick:()=>j(a)},{default:()=>a.uninstallable?e("Uninstall"):e("System App")})])}],f=async()=>{var a,o;try{p.value=!0;const t=await m.get("/jingrow/installed-apps",{headers:h()});t.data.success?v.value=t.data.data.apps||[]:n.error(t.data.error||e("Failed to load apps"))}catch(t){console.error("Load apps error:",t),n.error(((o=(a=t.response)==null?void 0:a.data)==null?void 0:o.error)||e("Failed to load apps"))}finally{p.value=!1}},C=()=>{f()},N=async a=>{var o,t;if(a.name==="jingrow"){n.warning(e("System App")+" "+e("cannot be exported"));return}try{u.value=a.name;const s=await m.post(`/jingrow/export-app-package/${a.name}`,{},{headers:h()});if(s.data.success){if(n.success(e("App package exported successfully: {0}").replace("{0}",s.data.filename||a.name)),s.data.filename){const F=`/files/${s.data.filename}`;window.open(F,"_blank")}}else n.error(s.data.error||e("Failed to export app package"))}catch(s){console.error("Export app error:",s),n.error(((t=(o=s.response)==null?void 0:o.data)==null?void 0:t.error)||e("Failed to export app package"))}finally{u.value=null}},j=async a=>{if(!a.uninstallable){n.warning(e("System App")+" "+e("cannot be uninstalled"));return}w.warning({title:e("Uninstall App"),content:e("Are you sure you want to uninstall '{0}'? This action cannot be undone.").replace("{0}",a.name),positiveText:e("Uninstall"),negativeText:e("Cancel"),onPositiveClick:async()=>{var o,t;try{x.value=!0;const s=await m.post(`/jingrow/uninstall/${a.name}`,{},{headers:h()});s.data.success?(n.success(e("App '{0}' uninstalled successfully").replace("{0}",a.name)),await f()):n.error(s.data.error||e("Failed to uninstall app"))}catch(s){console.error("Uninstall app error:",s),n.error(((t=(o=s.response)==null?void 0:o.data)==null?void 0:t.error)||e("Failed to uninstall app"))}finally{x.value=!1}}})};return S(()=>{f()}),(a,o)=>($(),V("div",z,[c("div",P,[c("div",G,[c("h1",L,[r(l(k),null,{default:i(()=>[r(l(A),{icon:"tabler:apps"})]),_:1}),b(" "+y(l(e)("Installed Apps")),1)]),c("p",R,y(l(e)("Manage your locally installed applications")),1)])]),c("div",X,[r(l(E),{class:"apps-card"},{"header-extra":i(()=>[r(l(g),{onClick:C,loading:p.value},{icon:i(()=>[r(l(k),null,{default:i(()=>[r(l(A),{icon:"tabler:refresh"})]),_:1})]),default:i(()=>[b(" "+y(l(e)("Refresh")),1)]),_:1},8,["loading"])]),default:i(()=>[r(l(D),{columns:I,data:v.value,loading:p.value,pagination:!1},null,8,["data","loading"])]),_:1})])]))}});const Q=M(q,[["__scopeId","data-v-fb9ef3d0"]]);export{Q as default}; +import{I as A}from"./iconify-30ae5ba5.js";import{d as U,r as d,u as B,X as T,t as e,A as _,n as g,a0 as m,a2 as h,o as S,e as V,f as c,h as r,w as i,j as l,p as b,g as y,l as $,$ as k,ac as D,U as E}from"./index-7b482730.js";import{_ as M}from"./_plugin-vue_export-helper-c27b6911.js";const z={class:"installed-apps-page"},P={class:"page-header"},G={class:"header-content"},L={class:"page-title"},R={class:"page-description"},X={class:"apps-section"},q=U({__name:"InstalledApps",setup(H){const v=d([]),p=d(!1),x=d(!1),u=d(null),n=B(),w=T(),I=[{title:e("App Name"),key:"name",width:200},{title:e("Version"),key:"version",width:100,render:a=>a.version||"1.0.0"},{title:e("Git Branch"),key:"git_branch",width:120,render:a=>a.git_branch||"main"},{title:e("Actions"),key:"actions",width:280,render:a=>_("div",{class:"action-buttons"},[_(g,{size:"small",type:"default",loading:u.value===a.name,disabled:a.name==="jingrow",onClick:()=>N(a)},{default:()=>e("Export Package")}),_(g,{size:"small",type:"error",style:"margin-left: 8px;",disabled:!a.uninstallable,onClick:()=>j(a)},{default:()=>a.uninstallable?e("Uninstall"):e("System App")})])}],f=async()=>{var a,o;try{p.value=!0;const t=await m.get("/jingrow/installed-apps",{headers:h()});t.data.success?v.value=t.data.data.apps||[]:n.error(t.data.error||e("Failed to load apps"))}catch(t){console.error("Load apps error:",t),n.error(((o=(a=t.response)==null?void 0:a.data)==null?void 0:o.error)||e("Failed to load apps"))}finally{p.value=!1}},C=()=>{f()},N=async a=>{var o,t;if(a.name==="jingrow"){n.warning(e("System App")+" "+e("cannot be exported"));return}try{u.value=a.name;const s=await m.post(`/jingrow/export-app-package/${a.name}`,{},{headers:h()});if(s.data.success){if(n.success(e("App package exported successfully: {0}").replace("{0}",s.data.filename||a.name)),s.data.filename){const F=`/files/${s.data.filename}`;window.open(F,"_blank")}}else n.error(s.data.error||e("Failed to export app package"))}catch(s){console.error("Export app error:",s),n.error(((t=(o=s.response)==null?void 0:o.data)==null?void 0:t.error)||e("Failed to export app package"))}finally{u.value=null}},j=async a=>{if(!a.uninstallable){n.warning(e("System App")+" "+e("cannot be uninstalled"));return}w.warning({title:e("Uninstall App"),content:e("Are you sure you want to uninstall '{0}'? This action cannot be undone.").replace("{0}",a.name),positiveText:e("Uninstall"),negativeText:e("Cancel"),onPositiveClick:async()=>{var o,t;try{x.value=!0;const s=await m.post(`/jingrow/uninstall/${a.name}`,{},{headers:h()});s.data.success?(n.success(e("App '{0}' uninstalled successfully").replace("{0}",a.name)),await f()):n.error(s.data.error||e("Failed to uninstall app"))}catch(s){console.error("Uninstall app error:",s),n.error(((t=(o=s.response)==null?void 0:o.data)==null?void 0:t.error)||e("Failed to uninstall app"))}finally{x.value=!1}}})};return S(()=>{f()}),(a,o)=>($(),V("div",z,[c("div",P,[c("div",G,[c("h1",L,[r(l(k),null,{default:i(()=>[r(l(A),{icon:"tabler:apps"})]),_:1}),b(" "+y(l(e)("Installed Apps")),1)]),c("p",R,y(l(e)("Manage your locally installed applications")),1)])]),c("div",X,[r(l(E),{class:"apps-card"},{"header-extra":i(()=>[r(l(g),{onClick:C,loading:p.value},{icon:i(()=>[r(l(k),null,{default:i(()=>[r(l(A),{icon:"tabler:refresh"})]),_:1})]),default:i(()=>[b(" "+y(l(e)("Refresh")),1)]),_:1},8,["loading"])]),default:i(()=>[r(l(D),{columns:I,data:v.value,loading:p.value,pagination:!1},null,8,["data","loading"])]),_:1})])]))}});const Q=M(q,[["__scopeId","data-v-fb9ef3d0"]]);export{Q as default}; diff --git a/apps/jingrow/frontend/dist/assets/Int-cb384090.js b/apps/jingrow/frontend/dist/assets/Int-88866b25.js similarity index 93% rename from apps/jingrow/frontend/dist/assets/Int-cb384090.js rename to apps/jingrow/frontend/dist/assets/Int-88866b25.js index da0bea9..f12ee3f 100644 --- a/apps/jingrow/frontend/dist/assets/Int-cb384090.js +++ b/apps/jingrow/frontend/dist/assets/Int-88866b25.js @@ -1 +1 @@ -import{d as n,c,e as o,f as i,p,g as f,y as u,h as _,j as m,Y as b,l,ad as v}from"./index-b37e64ca.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},N={key:0,class:"required"},I=n({__name:"Int",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(d){const t=d,s=c(()=>t.df.label_layout||"vertical");return(e,a)=>(l(),o("div",{class:b(["field-wrapper",`layout-${s.value}`])},[i("label",g,[p(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),o("span",N,"*")):u("",!0)]),_(m(v),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=r=>e.record[e.df.fieldname]=r),precision:0,placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const h=y(I,[["__scopeId","data-v-2ca541d3"]]),j=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{j as _}; +import{d as n,c,e as o,f as i,p,g as f,y as u,h as _,j as m,Y as b,l,ad as v}from"./index-7b482730.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},N={key:0,class:"required"},I=n({__name:"Int",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(d){const t=d,s=c(()=>t.df.label_layout||"vertical");return(e,a)=>(l(),o("div",{class:b(["field-wrapper",`layout-${s.value}`])},[i("label",g,[p(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),o("span",N,"*")):u("",!0)]),_(m(v),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=r=>e.record[e.df.fieldname]=r),precision:0,placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const h=y(I,[["__scopeId","data-v-2ca541d3"]]),j=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{j as _}; diff --git a/apps/jingrow/frontend/dist/assets/JSON-58e60940.js b/apps/jingrow/frontend/dist/assets/JSON-8353e669.js similarity index 94% rename from apps/jingrow/frontend/dist/assets/JSON-58e60940.js rename to apps/jingrow/frontend/dist/assets/JSON-8353e669.js index e0cef1a..855afcc 100644 --- a/apps/jingrow/frontend/dist/assets/JSON-58e60940.js +++ b/apps/jingrow/frontend/dist/assets/JSON-8353e669.js @@ -1 +1 @@ -import{d as i,c as p,e as l,f as o,p as c,g as u,y as f,h as m,j as _,Y as y,l as s,m as b}from"./index-b37e64ca.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},N={key:0,class:"required"},V={class:"json-field-container"},J=i({__name:"JSON",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(t){const d=t,n=p(()=>d.df.label_layout||"vertical");return(e,a)=>(s(),l("div",{class:y(["field-wrapper",`layout-${n.value}`])},[o("label",g,[c(u(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(s(),l("span",N,"*")):f("",!0)]),o("div",V,[m(_(b),{value:e.ctx.getJsonDisplayValue?e.ctx.getJsonDisplayValue(e.record[e.df.fieldname]):e.record[e.df.fieldname]??"","onUpdate:value":a[0]||(a[0]=r=>e.ctx.updateJsonValue&&e.ctx.updateJsonValue(e.df.fieldname,r)),type:"textarea",rows:12,placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit,class:"json-textarea"},null,8,["value","placeholder","disabled"])])],2))}});const S=v(J,[["__scopeId","data-v-b51c2816"]]),O=Object.freeze(Object.defineProperty({__proto__:null,default:S},Symbol.toStringTag,{value:"Module"}));export{O as _}; +import{d as i,c as p,e as l,f as o,p as c,g as u,y as f,h as m,j as _,Y as y,l as s,m as b}from"./index-7b482730.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},N={key:0,class:"required"},V={class:"json-field-container"},J=i({__name:"JSON",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(t){const d=t,n=p(()=>d.df.label_layout||"vertical");return(e,a)=>(s(),l("div",{class:y(["field-wrapper",`layout-${n.value}`])},[o("label",g,[c(u(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(s(),l("span",N,"*")):f("",!0)]),o("div",V,[m(_(b),{value:e.ctx.getJsonDisplayValue?e.ctx.getJsonDisplayValue(e.record[e.df.fieldname]):e.record[e.df.fieldname]??"","onUpdate:value":a[0]||(a[0]=r=>e.ctx.updateJsonValue&&e.ctx.updateJsonValue(e.df.fieldname,r)),type:"textarea",rows:12,placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit,class:"json-textarea"},null,8,["value","placeholder","disabled"])])],2))}});const S=v(J,[["__scopeId","data-v-b51c2816"]]),O=Object.freeze(Object.defineProperty({__proto__:null,default:S},Symbol.toStringTag,{value:"Module"}));export{O as _}; diff --git a/apps/jingrow/frontend/dist/assets/Jeditor-482b2d2d.js b/apps/jingrow/frontend/dist/assets/Jeditor-482b2d2d.js new file mode 100644 index 0000000..6662579 --- /dev/null +++ b/apps/jingrow/frontend/dist/assets/Jeditor-482b2d2d.js @@ -0,0 +1 @@ +import{_ as e}from"./Jeditor.vue_vue_type_style_index_0_lang-1cf7520f.js";const o=Object.freeze(Object.defineProperty({__proto__:null,default:e},Symbol.toStringTag,{value:"Module"}));export{o as _}; diff --git a/apps/jingrow/frontend/dist/assets/Jeditor-daae2995.js b/apps/jingrow/frontend/dist/assets/Jeditor-daae2995.js deleted file mode 100644 index 0d75ace..0000000 --- a/apps/jingrow/frontend/dist/assets/Jeditor-daae2995.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e}from"./Jeditor.vue_vue_type_style_index_0_lang-27957db9.js";const o=Object.freeze(Object.defineProperty({__proto__:null,default:e},Symbol.toStringTag,{value:"Module"}));export{o as _}; diff --git a/apps/jingrow/frontend/dist/assets/Jeditor.vue_vue_type_style_index_0_lang-27957db9.js b/apps/jingrow/frontend/dist/assets/Jeditor.vue_vue_type_style_index_0_lang-1cf7520f.js similarity index 99% rename from apps/jingrow/frontend/dist/assets/Jeditor.vue_vue_type_style_index_0_lang-27957db9.js rename to apps/jingrow/frontend/dist/assets/Jeditor.vue_vue_type_style_index_0_lang-1cf7520f.js index 400132a..c568cd8 100644 --- a/apps/jingrow/frontend/dist/assets/Jeditor.vue_vue_type_style_index_0_lang-27957db9.js +++ b/apps/jingrow/frontend/dist/assets/Jeditor.vue_vue_type_style_index_0_lang-1cf7520f.js @@ -1,4 +1,4 @@ -import{d as Lc,c as Pc,r as zc,o as Bc,aU as Hc,M as Yi,e as Xi,f as ls,p as Fc,g as $c,y as Vc,Y as Wc,l as Qi,a8 as Zi}from"./index-b37e64ca.js";import{uploadFileToJingrow as jc}from"./common-0beb20f4.js";function ae(n){this.content=n}ae.prototype={constructor:ae,find:function(n){for(var e=0;e>1}};ae.from=function(n){if(n instanceof ae)return n;var e=[];if(n)for(var t in n)e.push(t,n[t]);return new ae(e)};function Ll(n,e,t){for(let r=0;;r++){if(r==n.childCount||r==e.childCount)return n.childCount==e.childCount?null:t;let s=n.child(r),i=e.child(r);if(s==i){t+=s.nodeSize;continue}if(!s.sameMarkup(i))return t;if(s.isText&&s.text!=i.text){for(let o=0;s.text[o]==i.text[o];o++)t++;return t}if(s.content.size||i.content.size){let o=Ll(s.content,i.content,t+1);if(o!=null)return o}t+=s.nodeSize}}function Pl(n,e,t,r){for(let s=n.childCount,i=e.childCount;;){if(s==0||i==0)return s==i?null:{a:t,b:r};let o=n.child(--s),l=e.child(--i),a=o.nodeSize;if(o==l){t-=a,r-=a;continue}if(!o.sameMarkup(l))return{a:t,b:r};if(o.isText&&o.text!=l.text){let c=0,d=Math.min(o.text.length,l.text.length);for(;ce&&r(a,s+l,i||null,o)!==!1&&a.content.size){let d=l+1;a.nodesBetween(Math.max(0,e-d),Math.min(a.content.size,t-d),r,s+d)}l=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,r,s){let i="",o=!0;return this.nodesBetween(e,t,(l,a)=>{let c=l.isText?l.text.slice(Math.max(e,a)-a,t-a):l.isLeaf?s?typeof s=="function"?s(l):s:l.type.spec.leafText?l.type.spec.leafText(l):"":"";l.isBlock&&(l.isLeaf&&c||l.isTextblock)&&r&&(o?o=!1:i+=r),i+=c},0),i}append(e){if(!e.size)return this;if(!this.size)return e;let t=this.lastChild,r=e.firstChild,s=this.content.slice(),i=0;for(t.isText&&t.sameMarkup(r)&&(s[s.length-1]=t.withText(t.text+r.text),i=1);ie)for(let i=0,o=0;oe&&((ot)&&(l.isText?l=l.cut(Math.max(0,e-o),Math.min(l.text.length,t-o)):l=l.cut(Math.max(0,e-o-1),Math.min(l.content.size,t-o-1))),r.push(l),s+=l.nodeSize),o=a}return new k(r,s)}cutByIndex(e,t){return e==t?k.empty:e==0&&t==this.content.length?this:new k(this.content.slice(e,t))}replaceChild(e,t){let r=this.content[e];if(r==t)return this;let s=this.content.slice(),i=this.size+t.nodeSize-r.nodeSize;return s[e]=t,new k(s,i)}addToStart(e){return new k([e].concat(this.content),this.size+e.nodeSize)}addToEnd(e){return new k(this.content.concat(e),this.size+e.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;tthis.size||e<0)throw new RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,r=0;;t++){let s=this.child(t),i=r+s.nodeSize;if(i>=e)return i==e?zn(t+1,i):zn(t,r);r=i}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(e,t){if(!t)return k.empty;if(!Array.isArray(t))throw new RangeError("Invalid input for Fragment.fromJSON");return new k(t.map(e.nodeFromJSON))}static fromArray(e){if(!e.length)return k.empty;let t,r=0;for(let s=0;sthis.type.rank&&(t||(t=e.slice(0,s)),t.push(this),r=!0),t&&t.push(i)}}return t||(t=e.slice()),r||t.push(this),t}removeFromSet(e){for(let t=0;tr.type.rank-s.type.rank),t}};j.none=[];class ir extends Error{}class T{constructor(e,t,r){this.content=e,this.openStart=t,this.openEnd=r}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(e,t){let r=Bl(this.content,e+this.openStart,t);return r&&new T(r,this.openStart,this.openEnd)}removeBetween(e,t){return new T(zl(this.content,e+this.openStart,t+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(e,t){if(!t)return T.empty;let r=t.openStart||0,s=t.openEnd||0;if(typeof r!="number"||typeof s!="number")throw new RangeError("Invalid input for Slice.fromJSON");return new T(k.fromJSON(e,t.content),r,s)}static maxOpen(e,t=!0){let r=0,s=0;for(let i=e.firstChild;i&&!i.isLeaf&&(t||!i.type.spec.isolating);i=i.firstChild)r++;for(let i=e.lastChild;i&&!i.isLeaf&&(t||!i.type.spec.isolating);i=i.lastChild)s++;return new T(e,r,s)}}T.empty=new T(k.empty,0,0);function zl(n,e,t){let{index:r,offset:s}=n.findIndex(e),i=n.maybeChild(r),{index:o,offset:l}=n.findIndex(t);if(s==e||i.isText){if(l!=t&&!n.child(o).isText)throw new RangeError("Removing non-flat range");return n.cut(0,e).append(n.cut(t))}if(r!=o)throw new RangeError("Removing non-flat range");return n.replaceChild(r,i.copy(zl(i.content,e-s-1,t-s-1)))}function Bl(n,e,t,r){let{index:s,offset:i}=n.findIndex(e),o=n.maybeChild(s);if(i==e||o.isText)return r&&!r.canReplace(s,s,t)?null:n.cut(0,e).append(t).append(n.cut(e));let l=Bl(o.content,e-i-1,t,o);return l&&n.replaceChild(s,o.copy(l))}function _c(n,e,t){if(t.openStart>n.depth)throw new ir("Inserted content deeper than insertion position");if(n.depth-t.openStart!=e.depth-t.openEnd)throw new ir("Inconsistent open depths");return Hl(n,e,t,0)}function Hl(n,e,t,r){let s=n.index(r),i=n.node(r);if(s==e.index(r)&&r=0&&n.isText&&n.sameMarkup(e[t])?e[t]=n.withText(e[t].text+n.text):e.push(n)}function dn(n,e,t,r){let s=(e||n).node(t),i=0,o=e?e.index(t):s.childCount;n&&(i=n.index(t),n.depth>t?i++:n.textOffset&&(Tt(n.nodeAfter,r),i++));for(let l=i;ls&&zs(n,e,s+1),o=r.depth>s&&zs(t,r,s+1),l=[];return dn(null,n,s,l),i&&o&&e.index(s)==t.index(s)?(Fl(i,o),Tt(Et(i,$l(n,e,t,r,s+1)),l)):(i&&Tt(Et(i,or(n,e,s+1)),l),dn(e,t,s,l),o&&Tt(Et(o,or(t,r,s+1)),l)),dn(r,null,s,l),new k(l)}function or(n,e,t){let r=[];if(dn(null,n,t,r),n.depth>t){let s=zs(n,e,t+1);Tt(Et(s,or(n,e,t+1)),r)}return dn(e,null,t,r),new k(r)}function Kc(n,e){let t=e.depth-n.openStart,s=e.node(t).copy(n.content);for(let i=t-1;i>=0;i--)s=e.node(i).copy(k.from(s));return{start:s.resolveNoCache(n.openStart+t),end:s.resolveNoCache(s.content.size-n.openEnd-t)}}class Cn{constructor(e,t,r){this.pos=e,this.path=t,this.parentOffset=r,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position before the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position after the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let r=this.pos-this.path[this.path.length-1],s=e.child(t);return r?e.child(t).cut(r):s}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let r=this.path[t*3],s=t==0?0:this.path[t*3-1]+1;for(let i=0;i0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos=0;r--)if(e.pos<=this.end(r)&&(!t||t(this.node(r))))return new lr(this,e,r);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos=0&&t<=e.content.size))throw new RangeError("Position "+t+" out of range");let r=[],s=0,i=t;for(let o=e;;){let{index:l,offset:a}=o.content.findIndex(i),c=i-a;if(r.push(o,l,s+a),!c||(o=o.child(l),o.isText))break;i=c-1,s+=a+1}return new Cn(t,r,i)}static resolveCached(e,t){let r=eo.get(e);if(r)for(let i=0;ie&&this.nodesBetween(e,t,i=>(r.isInSet(i.marks)&&(s=!0),!s)),s}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+="("+this.content.toStringInner()+")"),Vl(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw new Error("Called contentMatchAt on a node with invalid content");return t}canReplace(e,t,r=k.empty,s=0,i=r.childCount){let o=this.contentMatchAt(e).matchFragment(r,s,i),l=o&&o.matchFragment(this.content,t);if(!l||!l.validEnd)return!1;for(let a=s;at.type.name)}`);this.content.forEach(t=>t.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(t=>t.toJSON())),e}static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Node.fromJSON");let r;if(t.marks){if(!Array.isArray(t.marks))throw new RangeError("Invalid mark data for Node.fromJSON");r=t.marks.map(e.markFromJSON)}if(t.type=="text"){if(typeof t.text!="string")throw new RangeError("Invalid text node in JSON");return e.text(t.text,r)}let s=k.fromJSON(e,t.content),i=e.nodeType(t.type).create(t.attrs,s,r);return i.type.checkAttrs(i.attrs),i}};lt.prototype.text=void 0;class ar extends lt{constructor(e,t,r,s){if(super(e,t,null,s),!r)throw new RangeError("Empty text nodes are not allowed");this.text=r}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):Vl(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(e){return e==this.marks?this:new ar(this.type,this.attrs,this.text,e)}withText(e){return e==this.text?this:new ar(this.type,this.attrs,e,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}}function Vl(n,e){for(let t=n.length-1;t>=0;t--)e=n[t].type.name+"("+e+")";return e}class vt{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(e,t){let r=new Gc(e,t);if(r.next==null)return vt.empty;let s=Wl(r);r.next&&r.err("Unexpected trailing text");let i=nd(td(s));return rd(i,r),i}matchType(e){for(let t=0;tc.createAndFill()));for(let c=0;c=this.next.length)throw new RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(r){e.push(r);for(let s=0;s{let i=s+(r.validEnd?"*":" ")+" ";for(let o=0;o"+e.indexOf(r.next[o].next);return i}).join(` +import{d as Lc,c as Pc,r as zc,o as Bc,aU as Hc,M as Yi,e as Xi,f as ls,p as Fc,g as $c,y as Vc,Y as Wc,l as Qi,a8 as Zi}from"./index-7b482730.js";import{uploadFileToJingrow as jc}from"./common-a0065b74.js";function ae(n){this.content=n}ae.prototype={constructor:ae,find:function(n){for(var e=0;e>1}};ae.from=function(n){if(n instanceof ae)return n;var e=[];if(n)for(var t in n)e.push(t,n[t]);return new ae(e)};function Ll(n,e,t){for(let r=0;;r++){if(r==n.childCount||r==e.childCount)return n.childCount==e.childCount?null:t;let s=n.child(r),i=e.child(r);if(s==i){t+=s.nodeSize;continue}if(!s.sameMarkup(i))return t;if(s.isText&&s.text!=i.text){for(let o=0;s.text[o]==i.text[o];o++)t++;return t}if(s.content.size||i.content.size){let o=Ll(s.content,i.content,t+1);if(o!=null)return o}t+=s.nodeSize}}function Pl(n,e,t,r){for(let s=n.childCount,i=e.childCount;;){if(s==0||i==0)return s==i?null:{a:t,b:r};let o=n.child(--s),l=e.child(--i),a=o.nodeSize;if(o==l){t-=a,r-=a;continue}if(!o.sameMarkup(l))return{a:t,b:r};if(o.isText&&o.text!=l.text){let c=0,d=Math.min(o.text.length,l.text.length);for(;ce&&r(a,s+l,i||null,o)!==!1&&a.content.size){let d=l+1;a.nodesBetween(Math.max(0,e-d),Math.min(a.content.size,t-d),r,s+d)}l=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,r,s){let i="",o=!0;return this.nodesBetween(e,t,(l,a)=>{let c=l.isText?l.text.slice(Math.max(e,a)-a,t-a):l.isLeaf?s?typeof s=="function"?s(l):s:l.type.spec.leafText?l.type.spec.leafText(l):"":"";l.isBlock&&(l.isLeaf&&c||l.isTextblock)&&r&&(o?o=!1:i+=r),i+=c},0),i}append(e){if(!e.size)return this;if(!this.size)return e;let t=this.lastChild,r=e.firstChild,s=this.content.slice(),i=0;for(t.isText&&t.sameMarkup(r)&&(s[s.length-1]=t.withText(t.text+r.text),i=1);ie)for(let i=0,o=0;oe&&((ot)&&(l.isText?l=l.cut(Math.max(0,e-o),Math.min(l.text.length,t-o)):l=l.cut(Math.max(0,e-o-1),Math.min(l.content.size,t-o-1))),r.push(l),s+=l.nodeSize),o=a}return new k(r,s)}cutByIndex(e,t){return e==t?k.empty:e==0&&t==this.content.length?this:new k(this.content.slice(e,t))}replaceChild(e,t){let r=this.content[e];if(r==t)return this;let s=this.content.slice(),i=this.size+t.nodeSize-r.nodeSize;return s[e]=t,new k(s,i)}addToStart(e){return new k([e].concat(this.content),this.size+e.nodeSize)}addToEnd(e){return new k(this.content.concat(e),this.size+e.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;tthis.size||e<0)throw new RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,r=0;;t++){let s=this.child(t),i=r+s.nodeSize;if(i>=e)return i==e?zn(t+1,i):zn(t,r);r=i}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(e,t){if(!t)return k.empty;if(!Array.isArray(t))throw new RangeError("Invalid input for Fragment.fromJSON");return new k(t.map(e.nodeFromJSON))}static fromArray(e){if(!e.length)return k.empty;let t,r=0;for(let s=0;sthis.type.rank&&(t||(t=e.slice(0,s)),t.push(this),r=!0),t&&t.push(i)}}return t||(t=e.slice()),r||t.push(this),t}removeFromSet(e){for(let t=0;tr.type.rank-s.type.rank),t}};j.none=[];class ir extends Error{}class T{constructor(e,t,r){this.content=e,this.openStart=t,this.openEnd=r}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(e,t){let r=Bl(this.content,e+this.openStart,t);return r&&new T(r,this.openStart,this.openEnd)}removeBetween(e,t){return new T(zl(this.content,e+this.openStart,t+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(e,t){if(!t)return T.empty;let r=t.openStart||0,s=t.openEnd||0;if(typeof r!="number"||typeof s!="number")throw new RangeError("Invalid input for Slice.fromJSON");return new T(k.fromJSON(e,t.content),r,s)}static maxOpen(e,t=!0){let r=0,s=0;for(let i=e.firstChild;i&&!i.isLeaf&&(t||!i.type.spec.isolating);i=i.firstChild)r++;for(let i=e.lastChild;i&&!i.isLeaf&&(t||!i.type.spec.isolating);i=i.lastChild)s++;return new T(e,r,s)}}T.empty=new T(k.empty,0,0);function zl(n,e,t){let{index:r,offset:s}=n.findIndex(e),i=n.maybeChild(r),{index:o,offset:l}=n.findIndex(t);if(s==e||i.isText){if(l!=t&&!n.child(o).isText)throw new RangeError("Removing non-flat range");return n.cut(0,e).append(n.cut(t))}if(r!=o)throw new RangeError("Removing non-flat range");return n.replaceChild(r,i.copy(zl(i.content,e-s-1,t-s-1)))}function Bl(n,e,t,r){let{index:s,offset:i}=n.findIndex(e),o=n.maybeChild(s);if(i==e||o.isText)return r&&!r.canReplace(s,s,t)?null:n.cut(0,e).append(t).append(n.cut(e));let l=Bl(o.content,e-i-1,t,o);return l&&n.replaceChild(s,o.copy(l))}function _c(n,e,t){if(t.openStart>n.depth)throw new ir("Inserted content deeper than insertion position");if(n.depth-t.openStart!=e.depth-t.openEnd)throw new ir("Inconsistent open depths");return Hl(n,e,t,0)}function Hl(n,e,t,r){let s=n.index(r),i=n.node(r);if(s==e.index(r)&&r=0&&n.isText&&n.sameMarkup(e[t])?e[t]=n.withText(e[t].text+n.text):e.push(n)}function dn(n,e,t,r){let s=(e||n).node(t),i=0,o=e?e.index(t):s.childCount;n&&(i=n.index(t),n.depth>t?i++:n.textOffset&&(Tt(n.nodeAfter,r),i++));for(let l=i;ls&&zs(n,e,s+1),o=r.depth>s&&zs(t,r,s+1),l=[];return dn(null,n,s,l),i&&o&&e.index(s)==t.index(s)?(Fl(i,o),Tt(Et(i,$l(n,e,t,r,s+1)),l)):(i&&Tt(Et(i,or(n,e,s+1)),l),dn(e,t,s,l),o&&Tt(Et(o,or(t,r,s+1)),l)),dn(r,null,s,l),new k(l)}function or(n,e,t){let r=[];if(dn(null,n,t,r),n.depth>t){let s=zs(n,e,t+1);Tt(Et(s,or(n,e,t+1)),r)}return dn(e,null,t,r),new k(r)}function Kc(n,e){let t=e.depth-n.openStart,s=e.node(t).copy(n.content);for(let i=t-1;i>=0;i--)s=e.node(i).copy(k.from(s));return{start:s.resolveNoCache(n.openStart+t),end:s.resolveNoCache(s.content.size-n.openEnd-t)}}class Cn{constructor(e,t,r){this.pos=e,this.path=t,this.parentOffset=r,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position before the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position after the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let r=this.pos-this.path[this.path.length-1],s=e.child(t);return r?e.child(t).cut(r):s}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let r=this.path[t*3],s=t==0?0:this.path[t*3-1]+1;for(let i=0;i0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos=0;r--)if(e.pos<=this.end(r)&&(!t||t(this.node(r))))return new lr(this,e,r);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos=0&&t<=e.content.size))throw new RangeError("Position "+t+" out of range");let r=[],s=0,i=t;for(let o=e;;){let{index:l,offset:a}=o.content.findIndex(i),c=i-a;if(r.push(o,l,s+a),!c||(o=o.child(l),o.isText))break;i=c-1,s+=a+1}return new Cn(t,r,i)}static resolveCached(e,t){let r=eo.get(e);if(r)for(let i=0;ie&&this.nodesBetween(e,t,i=>(r.isInSet(i.marks)&&(s=!0),!s)),s}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+="("+this.content.toStringInner()+")"),Vl(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw new Error("Called contentMatchAt on a node with invalid content");return t}canReplace(e,t,r=k.empty,s=0,i=r.childCount){let o=this.contentMatchAt(e).matchFragment(r,s,i),l=o&&o.matchFragment(this.content,t);if(!l||!l.validEnd)return!1;for(let a=s;at.type.name)}`);this.content.forEach(t=>t.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(t=>t.toJSON())),e}static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Node.fromJSON");let r;if(t.marks){if(!Array.isArray(t.marks))throw new RangeError("Invalid mark data for Node.fromJSON");r=t.marks.map(e.markFromJSON)}if(t.type=="text"){if(typeof t.text!="string")throw new RangeError("Invalid text node in JSON");return e.text(t.text,r)}let s=k.fromJSON(e,t.content),i=e.nodeType(t.type).create(t.attrs,s,r);return i.type.checkAttrs(i.attrs),i}};lt.prototype.text=void 0;class ar extends lt{constructor(e,t,r,s){if(super(e,t,null,s),!r)throw new RangeError("Empty text nodes are not allowed");this.text=r}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):Vl(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(e){return e==this.marks?this:new ar(this.type,this.attrs,this.text,e)}withText(e){return e==this.text?this:new ar(this.type,this.attrs,e,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}}function Vl(n,e){for(let t=n.length-1;t>=0;t--)e=n[t].type.name+"("+e+")";return e}class vt{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(e,t){let r=new Gc(e,t);if(r.next==null)return vt.empty;let s=Wl(r);r.next&&r.err("Unexpected trailing text");let i=nd(td(s));return rd(i,r),i}matchType(e){for(let t=0;tc.createAndFill()));for(let c=0;c=this.next.length)throw new RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(r){e.push(r);for(let s=0;s{let i=s+(r.validEnd?"*":" ")+" ";for(let o=0;o"+e.indexOf(r.next[o].next);return i}).join(` `)}}vt.empty=new vt(!0);class Gc{constructor(e,t){this.string=e,this.nodeTypes=t,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==""&&this.tokens.pop(),this.tokens[0]==""&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw new SyntaxError(e+" (in content expression '"+this.string+"')")}}function Wl(n){let e=[];do e.push(Yc(n));while(n.eat("|"));return e.length==1?e[0]:{type:"choice",exprs:e}}function Yc(n){let e=[];do e.push(Xc(n));while(n.next&&n.next!=")"&&n.next!="|");return e.length==1?e[0]:{type:"seq",exprs:e}}function Xc(n){let e=ed(n);for(;;)if(n.eat("+"))e={type:"plus",expr:e};else if(n.eat("*"))e={type:"star",expr:e};else if(n.eat("?"))e={type:"opt",expr:e};else if(n.eat("{"))e=Qc(n,e);else break;return e}function to(n){/\D/.test(n.next)&&n.err("Expected number, got '"+n.next+"'");let e=Number(n.next);return n.pos++,e}function Qc(n,e){let t=to(n),r=t;return n.eat(",")&&(n.next!="}"?r=to(n):r=-1),n.eat("}")||n.err("Unclosed braced range"),{type:"range",min:t,max:r,expr:e}}function Zc(n,e){let t=n.nodeTypes,r=t[e];if(r)return[r];let s=[];for(let i in t){let o=t[i];o.isInGroup(e)&&s.push(o)}return s.length==0&&n.err("No node type or group '"+e+"' found"),s}function ed(n){if(n.eat("(")){let e=Wl(n);return n.eat(")")||n.err("Missing closing paren"),e}else if(/\W/.test(n.next))n.err("Unexpected token '"+n.next+"'");else{let e=Zc(n,n.next).map(t=>(n.inline==null?n.inline=t.isInline:n.inline!=t.isInline&&n.err("Mixing inline and block content"),{type:"name",value:t}));return n.pos++,e.length==1?e[0]:{type:"choice",exprs:e}}}function td(n){let e=[[]];return s(i(n,0),t()),e;function t(){return e.push([])-1}function r(o,l,a){let c={term:a,to:l};return e[o].push(c),c}function s(o,l){o.forEach(a=>a.to=l)}function i(o,l){if(o.type=="choice")return o.exprs.reduce((a,c)=>a.concat(i(c,l)),[]);if(o.type=="seq")for(let a=0;;a++){let c=i(o.exprs[a],l);if(a==o.exprs.length-1)return c;s(c,l=t())}else if(o.type=="star"){let a=t();return r(l,a),s(i(o.expr,a),a),[r(a)]}else if(o.type=="plus"){let a=t();return s(i(o.expr,l),a),s(i(o.expr,a),a),[r(a)]}else{if(o.type=="opt")return[r(l)].concat(i(o.expr,l));if(o.type=="range"){let a=l;for(let c=0;c{n[o].forEach(({term:l,to:a})=>{if(!l)return;let c;for(let d=0;d{c||s.push([l,c=[]]),c.indexOf(d)==-1&&c.push(d)})})});let i=e[r.join(",")]=new vt(r.indexOf(n.length-1)>-1);for(let o=0;o-1}get whitespace(){return this.spec.whitespace||(this.spec.code?"pre":"normal")}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:Kl(this.attrs,e)}create(e=null,t,r){if(this.isText)throw new Error("NodeType.create can't construct text nodes");return new lt(this,this.computeAttrs(e),k.from(t),j.setFrom(r))}createChecked(e=null,t,r){return t=k.from(t),this.checkContent(t),new lt(this,this.computeAttrs(e),t,j.setFrom(r))}createAndFill(e=null,t,r){if(e=this.computeAttrs(e),t=k.from(t),t.size){let o=this.contentMatch.fillBefore(t);if(!o)return null;t=o.append(t)}let s=this.contentMatch.matchFragment(t),i=s&&s.fillBefore(k.empty,!0);return i?new lt(this,e,t.append(i),j.setFrom(r)):null}validContent(e){let t=this.contentMatch.matchFragment(e);if(!t||!t.validEnd)return!1;for(let r=0;r-1}allowsMarks(e){if(this.markSet==null)return!0;for(let t=0;tr[i]=new Jl(i,t,o));let s=t.spec.topNode||"doc";if(!r[s])throw new RangeError("Schema is missing its top node type ('"+s+"')");if(!r.text)throw new RangeError("Every schema needs a 'text' type");for(let i in r.text.attrs)throw new RangeError("The text node type should not have attributes");return r}};function sd(n,e,t){let r=t.split("|");return s=>{let i=s===null?"null":typeof s;if(r.indexOf(i)<0)throw new RangeError(`Expected value of type ${r} for attribute ${e} on type ${n}, got ${i}`)}}class id{constructor(e,t,r){this.hasDefault=Object.prototype.hasOwnProperty.call(r,"default"),this.default=r.default,this.validate=typeof r.validate=="string"?sd(e,t,r.validate):r.validate}get isRequired(){return!this.hasDefault}}class _r{constructor(e,t,r,s){this.name=e,this.rank=t,this.schema=r,this.spec=s,this.attrs=ql(e,s.attrs),this.excluded=null;let i=_l(this.attrs);this.instance=i?new j(this,i):null}create(e=null){return!e&&this.instance?this.instance:new j(this,Kl(this.attrs,e))}static compile(e,t){let r=Object.create(null),s=0;return e.forEach((i,o)=>r[i]=new _r(i,s++,t,o)),r}removeFromSet(e){for(var t=0;t-1}}class Gl{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let t=this.spec={};for(let s in e)t[s]=e[s];t.nodes=ae.from(e.nodes),t.marks=ae.from(e.marks||{}),this.nodes=ro.compile(this.spec.nodes,this),this.marks=_r.compile(this.spec.marks,this);let r=Object.create(null);for(let s in this.nodes){if(s in this.marks)throw new RangeError(s+" can not be both a node and a mark");let i=this.nodes[s],o=i.spec.content||"",l=i.spec.marks;if(i.contentMatch=r[o]||(r[o]=vt.parse(o,this.nodes)),i.inlineContent=i.contentMatch.inlineContent,i.spec.linebreakReplacement){if(this.linebreakReplacement)throw new RangeError("Multiple linebreak nodes defined");if(!i.isInline||!i.isLeaf)throw new RangeError("Linebreak replacement nodes must be inline leaf nodes");this.linebreakReplacement=i}i.markSet=l=="_"?null:l?so(this,l.split(" ")):l==""||!i.inlineContent?[]:null}for(let s in this.marks){let i=this.marks[s],o=i.spec.excludes;i.excluded=o==null?[i]:o==""?[]:so(this,o.split(" "))}this.nodeFromJSON=s=>lt.fromJSON(this,s),this.markFromJSON=s=>j.fromJSON(this,s),this.topNodeType=this.nodes[this.spec.topNode||"doc"],this.cached.wrappings=Object.create(null)}node(e,t=null,r,s){if(typeof e=="string")e=this.nodeType(e);else if(e instanceof ro){if(e.schema!=this)throw new RangeError("Node type from different schema used ("+e.name+")")}else throw new RangeError("Invalid node type: "+e);return e.createChecked(t,r,s)}text(e,t){let r=this.nodes.text;return new ar(r,r.defaultAttrs,e,j.setFrom(t))}mark(e,t){return typeof e=="string"&&(e=this.marks[e]),e.create(t)}nodeType(e){let t=this.nodes[e];if(!t)throw new RangeError("Unknown node type: "+e);return t}}function so(n,e){let t=[];for(let r=0;r-1)&&t.push(o=a)}if(!o)throw new SyntaxError("Unknown mark type: '"+e[r]+"'")}return t}function od(n){return n.tag!=null}function ld(n){return n.style!=null}class at{constructor(e,t){this.schema=e,this.rules=t,this.tags=[],this.styles=[];let r=this.matchedStyles=[];t.forEach(s=>{if(od(s))this.tags.push(s);else if(ld(s)){let i=/[^=]*/.exec(s.style)[0];r.indexOf(i)<0&&r.push(i),this.styles.push(s)}}),this.normalizeLists=!this.tags.some(s=>{if(!/^(ul|ol)\b/.test(s.tag)||!s.node)return!1;let i=e.nodes[s.node];return i.contentMatch.matchType(i)})}parse(e,t={}){let r=new oo(this,t,!1);return r.addAll(e,j.none,t.from,t.to),r.finish()}parseSlice(e,t={}){let r=new oo(this,t,!0);return r.addAll(e,j.none,t.from,t.to),T.maxOpen(r.finish())}matchTag(e,t,r){for(let s=r?this.tags.indexOf(r)+1:0;se.length&&(l.charCodeAt(e.length)!=61||l.slice(e.length+1)!=t))){if(o.getAttrs){let a=o.getAttrs(t);if(a===!1)continue;o.attrs=a||void 0}return o}}}static schemaRules(e){let t=[];function r(s){let i=s.priority==null?50:s.priority,o=0;for(;o{r(o=lo(o)),o.mark||o.ignore||o.clearMark||(o.mark=s)})}for(let s in e.nodes){let i=e.nodes[s].spec.parseDOM;i&&i.forEach(o=>{r(o=lo(o)),o.node||o.ignore||o.mark||(o.node=s)})}return t}static fromSchema(e){return e.cached.domParser||(e.cached.domParser=new at(e,at.schemaRules(e)))}}const Yl={address:!0,article:!0,aside:!0,blockquote:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},ad={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},Xl={ol:!0,ul:!0},xn=1,Hs=2,un=4;function io(n,e,t){return e!=null?(e?xn:0)|(e==="full"?Hs:0):n&&n.whitespace=="pre"?xn|Hs:t&~un}class Bn{constructor(e,t,r,s,i,o){this.type=e,this.attrs=t,this.marks=r,this.solid=s,this.options=o,this.content=[],this.activeMarks=j.none,this.match=i||(o&un?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let t=this.type.contentMatch.fillBefore(k.from(e));if(t)this.match=this.type.contentMatch.matchFragment(t);else{let r=this.type.contentMatch,s;return(s=r.findWrapping(e.type))?(this.match=r,s):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&xn)){let r=this.content[this.content.length-1],s;if(r&&r.isText&&(s=/[ \t\r\n\u000c]+$/.exec(r.text))){let i=r;r.text.length==s[0].length?this.content.pop():this.content[this.content.length-1]=i.withText(i.text.slice(0,i.text.length-s[0].length))}}let t=k.from(this.content);return!e&&this.match&&(t=t.append(this.match.fillBefore(k.empty,!0))),this.type?this.type.create(this.attrs,t,this.marks):t}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!Yl.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}}class oo{constructor(e,t,r){this.parser=e,this.options=t,this.isOpen=r,this.open=0,this.localPreserveWS=!1;let s=t.topNode,i,o=io(null,t.preserveWhitespace,0)|(r?un:0);s?i=new Bn(s.type,s.attrs,j.none,!0,t.topMatch||s.type.contentMatch,o):r?i=new Bn(null,null,j.none,!0,null,o):i=new Bn(e.schema.topNodeType,null,j.none,!0,null,o),this.nodes=[i],this.find=t.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,t){e.nodeType==3?this.addTextNode(e,t):e.nodeType==1&&this.addElement(e,t)}addTextNode(e,t){let r=e.nodeValue,s=this.top,i=s.options&Hs?"full":this.localPreserveWS||(s.options&xn)>0;if(i==="full"||s.inlineContext(e)||/[^ \t\r\n\u000c]/.test(r)){if(i)i!=="full"?r=r.replace(/\r?\n|\r/g," "):r=r.replace(/\r\n?/g,` `);else if(r=r.replace(/[ \t\r\n\u000c]+/g," "),/^[ \t\r\n\u000c]/.test(r)&&this.open==this.nodes.length-1){let o=s.content[s.content.length-1],l=e.previousSibling;(!o||l&&l.nodeName=="BR"||o.isText&&/[ \t\r\n\u000c]$/.test(o.text))&&(r=r.slice(1))}r&&this.insertNode(this.parser.schema.text(r),t,!/\S/.test(r)),this.findInText(e)}else this.findInside(e)}addElement(e,t,r){let s=this.localPreserveWS,i=this.top;(e.tagName=="PRE"||/pre/.test(e.style&&e.style.whiteSpace))&&(this.localPreserveWS=!0);let o=e.nodeName.toLowerCase(),l;Xl.hasOwnProperty(o)&&this.parser.normalizeLists&&cd(e);let a=this.options.ruleFromNode&&this.options.ruleFromNode(e)||(l=this.parser.matchTag(e,this,r));e:if(a?a.ignore:ad.hasOwnProperty(o))this.findInside(e),this.ignoreFallback(e,t);else if(!a||a.skip||a.closeParent){a&&a.closeParent?this.open=Math.max(0,this.open-1):a&&a.skip.nodeType&&(e=a.skip);let c,d=this.needsBlock;if(Yl.hasOwnProperty(o))i.content.length&&i.content[0].isInline&&this.open&&(this.open--,i=this.top),c=!0,i.type||(this.needsBlock=!0);else if(!e.firstChild){this.leafFallback(e,t);break e}let u=a&&a.skip?t:this.readStyles(e,t);u&&this.addAll(e,u),c&&this.sync(i),this.needsBlock=d}else{let c=this.readStyles(e,t);c&&this.addElementByRule(e,a,c,a.consuming===!1?l:void 0)}this.localPreserveWS=s}leafFallback(e,t){e.nodeName=="BR"&&this.top.type&&this.top.type.inlineContent&&this.addTextNode(e.ownerDocument.createTextNode(` `),t)}ignoreFallback(e,t){e.nodeName=="BR"&&(!this.top.type||!this.top.type.inlineContent)&&this.findPlace(this.parser.schema.text("-"),t,!0)}readStyles(e,t){let r=e.style;if(r&&r.length)for(let s=0;s!a.clearMark(c)):t=t.concat(this.parser.schema.marks[a.mark].create(a.attrs)),a.consuming===!1)l=a;else break}}return t}addElementByRule(e,t,r,s){let i,o;if(t.node)if(o=this.parser.schema.nodes[t.node],o.isLeaf)this.insertNode(o.create(t.attrs),r,e.nodeName=="BR")||this.leafFallback(e,r);else{let a=this.enter(o,t.attrs||null,r,t.preserveWhitespace);a&&(i=!0,r=a)}else{let a=this.parser.schema.marks[t.mark];r=r.concat(a.create(t.attrs))}let l=this.top;if(o&&o.isLeaf)this.findInside(e);else if(s)this.addElement(e,r,s);else if(t.getContent)this.findInside(e),t.getContent(e,this.parser.schema).forEach(a=>this.insertNode(a,r,!1));else{let a=e;typeof t.contentElement=="string"?a=e.querySelector(t.contentElement):typeof t.contentElement=="function"?a=t.contentElement(e):t.contentElement&&(a=t.contentElement),this.findAround(e,a,!0),this.addAll(a,r),this.findAround(e,a,!1)}i&&this.sync(l)&&this.open--}addAll(e,t,r,s){let i=r||0;for(let o=r?e.childNodes[r]:e.firstChild,l=s==null?null:e.childNodes[s];o!=l;o=o.nextSibling,++i)this.findAtPoint(e,i),this.addDOM(o,t);this.findAtPoint(e,i)}findPlace(e,t,r){let s,i;for(let o=this.open,l=0;o>=0;o--){let a=this.nodes[o],c=a.findWrapping(e);if(c&&(!s||s.length>c.length+l)&&(s=c,i=a,!c.length))break;if(a.solid){if(r)break;l+=2}}if(!s)return null;this.sync(i);for(let o=0;o(o.type?o.type.allowsMarkType(c.type):ao(c.type,e))?(a=c.addToSet(a),!1):!0),this.nodes.push(new Bn(e,t,a,s,null,l)),this.open++,r}closeExtra(e=!1){let t=this.nodes.length-1;if(t>this.open){for(;t>this.open;t--)this.nodes[t-1].content.push(this.nodes[t].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!!(this.isOpen||this.options.topOpen))}sync(e){for(let t=this.open;t>=0;t--){if(this.nodes[t]==e)return this.open=t,!0;this.localPreserveWS&&(this.nodes[t].options|=xn)}return!1}get currentPos(){this.closeExtra();let e=0;for(let t=this.open;t>=0;t--){let r=this.nodes[t].content;for(let s=r.length-1;s>=0;s--)e+=r[s].nodeSize;t&&e++}return e}findAtPoint(e,t){if(this.find)for(let r=0;r-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let t=e.split("/"),r=this.options.context,s=!this.isOpen&&(!r||r.parent.type==this.nodes[0].type),i=-(r?r.depth+1:0)+(s?0:1),o=(l,a)=>{for(;l>=0;l--){let c=t[l];if(c==""){if(l==t.length-1||l==0)continue;for(;a>=i;a--)if(o(l-1,a))return!0;return!1}else{let d=a>0||a==0&&s?this.nodes[a].type:r&&a>=i?r.node(a-i).type:null;if(!d||d.name!=c&&!d.isInGroup(c))return!1;a--}}return!0};return o(t.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let t=e.depth;t>=0;t--){let r=e.node(t).contentMatchAt(e.indexAfter(t)).defaultType;if(r&&r.isTextblock&&r.defaultAttrs)return r}for(let t in this.parser.schema.nodes){let r=this.parser.schema.nodes[t];if(r.isTextblock&&r.defaultAttrs)return r}}}function cd(n){for(let e=n.firstChild,t=null;e;e=e.nextSibling){let r=e.nodeType==1?e.nodeName.toLowerCase():null;r&&Xl.hasOwnProperty(r)&&t?(t.appendChild(e),e=t):r=="li"?t=e:r&&(t=null)}}function dd(n,e){return(n.matches||n.msMatchesSelector||n.webkitMatchesSelector||n.mozMatchesSelector).call(n,e)}function lo(n){let e={};for(let t in n)e[t]=n[t];return e}function ao(n,e){let t=e.schema.nodes;for(let r in t){let s=t[r];if(!s.allowsMarkType(n))continue;let i=[],o=l=>{i.push(l);for(let a=0;a{if(i.length||o.marks.length){let l=0,a=0;for(;l=0;s--){let i=this.serializeMark(e.marks[s],e.isInline,t);i&&((i.contentDOM||i.dom).appendChild(r),r=i.dom)}return r}serializeMark(e,t,r={}){let s=this.marks[e.type.name];return s&&Xn(cs(r),s(e,t),null,e.attrs)}static renderSpec(e,t,r=null,s){return Xn(e,t,r,s)}static fromSchema(e){return e.cached.domSerializer||(e.cached.domSerializer=new zt(this.nodesFromSchema(e),this.marksFromSchema(e)))}static nodesFromSchema(e){let t=co(e.nodes);return t.text||(t.text=r=>r.text),t}static marksFromSchema(e){return co(e.marks)}}function co(n){let e={};for(let t in n){let r=n[t].spec.toDOM;r&&(e[t]=r)}return e}function cs(n){return n.document||window.document}const uo=new WeakMap;function ud(n){let e=uo.get(n);return e===void 0&&uo.set(n,e=fd(n)),e}function fd(n){let e=null;function t(r){if(r&&typeof r=="object")if(Array.isArray(r))if(typeof r[0]=="string")e||(e=[]),e.push(r);else for(let s=0;s-1)throw new RangeError("Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.");let o=s.indexOf(" ");o>0&&(t=s.slice(0,o),s=s.slice(o+1));let l,a=t?n.createElementNS(t,s):n.createElement(s),c=e[1],d=1;if(c&&typeof c=="object"&&c.nodeType==null&&!Array.isArray(c)){d=2;for(let u in c)if(c[u]!=null){let f=u.indexOf(" ");f>0?a.setAttributeNS(u.slice(0,f),u.slice(f+1),c[u]):u=="style"&&a.style?a.style.cssText=c[u]:a.setAttribute(u,c[u])}}for(let u=d;ud)throw new RangeError("Content hole must be the only child of its parent node");return{dom:a,contentDOM:a}}else{let{dom:h,contentDOM:p}=Xn(n,f,t,r);if(a.appendChild(h),p){if(l)throw new RangeError("Multiple content holes");l=p}}}return{dom:a,contentDOM:l}}const Ql=65535,Zl=Math.pow(2,16);function hd(n,e){return n+e*Zl}function fo(n){return n&Ql}function pd(n){return(n-(n&Ql))/Zl}const ea=1,ta=2,Qn=4,na=8;class Fs{constructor(e,t,r){this.pos=e,this.delInfo=t,this.recover=r}get deleted(){return(this.delInfo&na)>0}get deletedBefore(){return(this.delInfo&(ea|Qn))>0}get deletedAfter(){return(this.delInfo&(ta|Qn))>0}get deletedAcross(){return(this.delInfo&Qn)>0}}class Se{constructor(e,t=!1){if(this.ranges=e,this.inverted=t,!e.length&&Se.empty)return Se.empty}recover(e){let t=0,r=fo(e);if(!this.inverted)for(let s=0;se)break;let c=this.ranges[l+i],d=this.ranges[l+o],u=a+c;if(e<=u){let f=c?e==a?-1:e==u?1:t:t,h=a+s+(f<0?0:d);if(r)return h;let p=e==(t<0?a:u)?null:hd(l/3,e-a),m=e==a?ta:e==u?ea:Qn;return(t<0?e!=a:e!=u)&&(m|=na),new Fs(h,m,p)}s+=d-c}return r?e+s:new Fs(e+s,0,null)}touches(e,t){let r=0,s=fo(t),i=this.inverted?2:1,o=this.inverted?1:2;for(let l=0;le)break;let c=this.ranges[l+i],d=a+c;if(e<=d&&l==s*3)return!0;r+=this.ranges[l+o]-c}return!1}forEach(e){let t=this.inverted?2:1,r=this.inverted?1:2;for(let s=0,i=0;s=0;t--){let s=e.getMirror(t);this.appendMap(e._maps[t].invert(),s!=null&&s>t?r-s-1:void 0)}}invert(){let e=new Sn;return e.appendMappingInverted(this),e}map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let r=this.from;ri&&a!o.isAtom||!l.type.allowsMarkType(this.mark.type)?o:o.mark(this.mark.addToSet(o.marks)),s),t.openStart,t.openEnd);return te.fromReplace(e,this.from,this.to,i)}invert(){return new Be(this.from,this.to,this.mark)}map(e){let t=e.mapResult(this.from,1),r=e.mapResult(this.to,-1);return t.deleted&&r.deleted||t.pos>=r.pos?null:new st(t.pos,r.pos,this.mark)}merge(e){return e instanceof st&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new st(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"addMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,t){if(typeof t.from!="number"||typeof t.to!="number")throw new RangeError("Invalid input for AddMarkStep.fromJSON");return new st(t.from,t.to,e.markFromJSON(t.mark))}}me.jsonID("addMark",st);class Be extends me{constructor(e,t,r){super(),this.from=e,this.to=t,this.mark=r}apply(e){let t=e.slice(this.from,this.to),r=new T(mi(t.content,s=>s.mark(this.mark.removeFromSet(s.marks)),e),t.openStart,t.openEnd);return te.fromReplace(e,this.from,this.to,r)}invert(){return new st(this.from,this.to,this.mark)}map(e){let t=e.mapResult(this.from,1),r=e.mapResult(this.to,-1);return t.deleted&&r.deleted||t.pos>=r.pos?null:new Be(t.pos,r.pos,this.mark)}merge(e){return e instanceof Be&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new Be(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,t){if(typeof t.from!="number"||typeof t.to!="number")throw new RangeError("Invalid input for RemoveMarkStep.fromJSON");return new Be(t.from,t.to,e.markFromJSON(t.mark))}}me.jsonID("removeMark",Be);class it extends me{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return te.fail("No node at mark step's position");let r=t.type.create(t.attrs,null,this.mark.addToSet(t.marks));return te.fromReplace(e,this.pos,this.pos+1,new T(k.from(r),0,t.isLeaf?0:1))}invert(e){let t=e.nodeAt(this.pos);if(t){let r=this.mark.addToSet(t.marks);if(r.length==t.marks.length){for(let s=0;sr.pos?null:new se(t.pos,r.pos,s,i,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:"replaceAround",from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(e,t){if(typeof t.from!="number"||typeof t.to!="number"||typeof t.gapFrom!="number"||typeof t.gapTo!="number"||typeof t.insert!="number")throw new RangeError("Invalid input for ReplaceAroundStep.fromJSON");return new se(t.from,t.to,t.gapFrom,t.gapTo,T.fromJSON(e,t.slice),t.insert,!!t.structure)}}me.jsonID("replaceAround",se);function $s(n,e,t){let r=n.resolve(e),s=t-e,i=r.depth;for(;s>0&&i>0&&r.indexAfter(i)==r.node(i).childCount;)i--,s--;if(s>0){let o=r.node(i).maybeChild(r.indexAfter(i));for(;s>0;){if(!o||o.isLeaf)return!0;o=o.firstChild,s--}}return!1}function md(n,e,t,r){let s=[],i=[],o,l;n.doc.nodesBetween(e,t,(a,c,d)=>{if(!a.isInline)return;let u=a.marks;if(!r.isInSet(u)&&d.type.allowsMarkType(r.type)){let f=Math.max(c,e),h=Math.min(c+a.nodeSize,t),p=r.addToSet(u);for(let m=0;mn.step(a)),i.forEach(a=>n.step(a))}function gd(n,e,t,r){let s=[],i=0;n.doc.nodesBetween(e,t,(o,l)=>{if(!o.isInline)return;i++;let a=null;if(r instanceof _r){let c=o.marks,d;for(;d=r.isInSet(c);)(a||(a=[])).push(d),c=d.removeFromSet(c)}else r?r.isInSet(o.marks)&&(a=[r]):a=o.marks;if(a&&a.length){let c=Math.min(l+o.nodeSize,t);for(let d=0;dn.step(new Be(o.from,o.to,o.style)))}function gi(n,e,t,r=t.contentMatch,s=!0){let i=n.doc.nodeAt(e),o=[],l=e+1;for(let a=0;a=0;a--)n.step(o[a])}function yd(n,e,t){return(e==0||n.canReplace(e,n.childCount))&&(t==n.childCount||n.canReplace(0,t))}function Zt(n){let t=n.parent.content.cutByIndex(n.startIndex,n.endIndex);for(let r=n.depth;;--r){let s=n.$from.node(r),i=n.$from.index(r),o=n.$to.indexAfter(r);if(rt;p--)m||r.index(p)>0?(m=!0,d=k.from(r.node(p).copy(d)),u++):a--;let f=k.empty,h=0;for(let p=i,m=!1;p>t;p--)m||s.after(p+1)=0;o--){if(r.size){let l=t[o].type.contentMatch.matchFragment(r);if(!l||!l.validEnd)throw new RangeError("Wrapper type given to Transform.wrap does not form valid content of its parent wrapper")}r=k.from(t[o].type.create(t[o].attrs,r))}let s=e.start,i=e.end;n.step(new se(s,i,s,i,new T(r,0,0),t.length,!0))}function Sd(n,e,t,r,s){if(!r.isTextblock)throw new RangeError("Type given to setBlockType should be a textblock");let i=n.steps.length;n.doc.nodesBetween(e,t,(o,l)=>{let a=typeof s=="function"?s(o):s;if(o.isTextblock&&!o.hasMarkup(r,a)&&wd(n.doc,n.mapping.slice(i).map(l),r)){let c=null;if(r.schema.linebreakReplacement){let h=r.whitespace=="pre",p=!!r.contentMatch.matchType(r.schema.linebreakReplacement);h&&!p?c=!1:!h&&p&&(c=!0)}c===!1&&sa(n,o,l,i),gi(n,n.mapping.slice(i).map(l,1),r,void 0,c===null);let d=n.mapping.slice(i),u=d.map(l,1),f=d.map(l+o.nodeSize,1);return n.step(new se(u,f,u+1,f-1,new T(k.from(r.create(a,null,o.marks)),0,0),1,!0)),c===!0&&ra(n,o,l,i),!1}})}function ra(n,e,t,r){e.forEach((s,i)=>{if(s.isText){let o,l=/\r?\n|\r/g;for(;o=l.exec(s.text);){let a=n.mapping.slice(r).map(t+1+i+o.index);n.replaceWith(a,a+1,e.type.schema.linebreakReplacement.create())}}})}function sa(n,e,t,r){e.forEach((s,i)=>{if(s.type==s.type.schema.linebreakReplacement){let o=n.mapping.slice(r).map(t+1+i);n.replaceWith(o,o+1,e.type.schema.text(` diff --git a/apps/jingrow/frontend/dist/assets/Link-343da71e.js b/apps/jingrow/frontend/dist/assets/Link-e3a40d9c.js similarity index 96% rename from apps/jingrow/frontend/dist/assets/Link-343da71e.js rename to apps/jingrow/frontend/dist/assets/Link-e3a40d9c.js index 40a1137..c471f37 100644 --- a/apps/jingrow/frontend/dist/assets/Link-343da71e.js +++ b/apps/jingrow/frontend/dist/assets/Link-e3a40d9c.js @@ -1 +1 @@ -import{d as ne,c as $,r as c,M as z,o as le,K as se,e as r,f as C,p as oe,g as L,y as v,h as p,j as n,D as ie,w as I,L as j,F as ce,C as re,Y as P,l as o,m as ue,$ as q,t as m,n as K,a0 as N,a2 as Q}from"./index-b37e64ca.js";import{I as F}from"./iconify-b5ab1212.js";import{getRecords as de}from"./common-0beb20f4.js";import{p as Y}from"./slug-217ba005.js";import{_ as fe}from"./_plugin-vue_export-helper-c27b6911.js";const ve={class:"field-label"},pe={key:0,class:"required"},_e={class:"input-wrapper"},me={key:0,class:"link-buttons"},he={key:0,class:"dropdown-menu"},ke={class:"dropdown-content"},ye=["onClick"],ge={key:0,class:"create-icon"},we={class:"item-label"},Ce={key:0,class:"empty-state"},be={key:1,class:"loading-state"},$e=ne({__name:"Link",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(A){const s=A,G=$(()=>s.df.label_layout||"vertical"),u=c(""),h=c(""),k=c(""),B=c(!1),d=c(!1),y=c([]),b=c(!1),O=c({}),g=c({}),i=$(()=>s.df.options||""),S=$(()=>!!u.value),H=$(()=>s.df.max_options||20);z(()=>s.record[s.df.fieldname],async e=>{e!==u.value&&(u.value=e||"",e&&i.value?h.value=await J(i.value,e):h.value="")},{immediate:!0}),z(u,e=>{s.record[s.df.fieldname]!==e&&(s.record[s.df.fieldname]=e)});async function M(e){var t;if(!e)return{};if(O.value[e])return O.value[e];try{const l=((t=(await N.get(`/api/data/PageType/${encodeURIComponent(e)}`,{headers:Q(),withCredentials:!0})).data)==null?void 0:t.data)||{};return O.value[e]=l,l}catch(a){return console.error("获取页面类型配置失败:",a),{}}}async function J(e,t){var l;if(!e||!t)return t;const a=`${e}_${t}`;if(g.value[a])return g.value[a];try{const f=await M(e),_=f.title_field||"name",D=f.show_title_field_in_link||!1;if(_==="name"||!D)return g.value[a]=t,t;const x=(((l=(await N.get(`/api/data/${encodeURIComponent(e)}/${encodeURIComponent(t)}`,{headers:Q(),withCredentials:!0})).data)==null?void 0:l.data)||{})[_]||t;return g.value[a]=x,x}catch(f){return console.error("获取记录标题失败:",f),t}}function T(){return{label:`${m("Create")}${m(i.value)}`,value:"create_new",type:"create"}}async function R(e=""){if(i.value){b.value=!0;try{const a=(await M(i.value)).title_field||"name",l=["name"];a!=="name"&&l.push(a);const f=[];e.trim()&&(a!=="name"?f.push([a,"like",`%${e}%`]):f.push(["name","like",`%${e}%`]));const _=await de(i.value,f,l,"modified desc",0,H.value);if(_.success&&_.data){const D=_.data.map(w=>{const E=a==="name"?w.name:w[a]||w.name;return{label:E,value:w.name,title:E}});y.value=[...D,T()]}else y.value=[T()]}catch(t){console.error("搜索选项失败:",t),y.value=[T()]}finally{b.value=!1}}}function W(e){k.value=e,d.value&&R(e)}async function U(){s.canEdit&&(d.value||(await R(k.value),d.value=!0))}async function X(e){if(e.type==="create"){const t=Y(i.value),a=Math.random().toString(36).substring(2,12),l=`new-${t}-${a}`;window.open(`/app/${t}/${l}`,"_blank"),d.value=!1;return}u.value=e.value,h.value=e.title||e.label,k.value="",d.value=!1}function Z(){u.value="",h.value="",k.value="",d.value=!1}function ee(){if(!u.value||!i.value)return;const e=Y(i.value);window.open(`/app/${e}/${u.value}`,"_blank")}function ae(){B.value=S.value}function te(){B.value=!1}function V(e){e.target.closest(".link-field-container")||(d.value=!1)}return le(()=>{document.addEventListener("click",V)}),se(()=>{document.removeEventListener("click",V)}),(e,t)=>(o(),r("div",{class:P(["field-wrapper",`layout-${G.value}`])},[C("label",ve,[oe(L(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(o(),r("span",pe,"*")):v("",!0)]),C("div",{class:"link-field-container",onMouseenter:ae,onMouseleave:te},[C("div",_e,[p(n(ue),{value:S.value?h.value:k.value,placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit,"onUpdate:value":W,onClick:U,onFocus:U,class:"link-input"},null,8,["value","placeholder","disabled"]),B.value&&S.value?(o(),r("div",me,[e.canEdit?(o(),ie(n(K),{key:0,size:"small",quaternary:"",onClick:j(Z,["stop"]),title:n(m)("Clear"),class:"action-btn"},{icon:I(()=>[p(n(q),null,{default:I(()=>[p(n(F),{icon:"mdi:close"})]),_:1})]),_:1},8,["title"])):v("",!0),p(n(K),{size:"small",quaternary:"",onClick:j(ee,["stop"]),title:n(m)("Open Detail"),class:"action-btn"},{icon:I(()=>[p(n(q),null,{default:I(()=>[p(n(F),{icon:"mdi:arrow-right"})]),_:1})]),_:1},8,["title"])])):v("",!0)]),d.value?(o(),r("div",he,[C("div",ke,[(o(!0),r(ce,null,re(y.value,a=>(o(),r("div",{key:a.value,class:P(["dropdown-item",{"create-item":a.type==="create"}]),onClick:l=>X(a)},[a.type==="create"?(o(),r("span",ge,[p(n(F),{icon:"mdi:plus"})])):v("",!0),C("span",we,L(a.label),1)],10,ye))),128)),y.value.length===0&&!b.value?(o(),r("div",Ce,L(n(m)("No Data")),1)):v("",!0),b.value?(o(),r("div",be,L(n(m)("Loading")),1)):v("",!0)])])):v("",!0)],32)],2))}});const Le=fe($e,[["__scopeId","data-v-1284a7de"]]),De=Object.freeze(Object.defineProperty({__proto__:null,default:Le},Symbol.toStringTag,{value:"Module"}));export{De as _}; +import{d as ne,c as $,r as c,M as z,o as le,K as se,e as r,f as C,p as oe,g as L,y as v,h as p,j as n,D as ie,w as I,L as j,F as ce,C as re,Y as P,l as o,m as ue,$ as q,t as m,n as K,a0 as N,a2 as Q}from"./index-7b482730.js";import{I as F}from"./iconify-30ae5ba5.js";import{getRecords as de}from"./common-a0065b74.js";import{p as Y}from"./slug-c378c25f.js";import{_ as fe}from"./_plugin-vue_export-helper-c27b6911.js";const ve={class:"field-label"},pe={key:0,class:"required"},_e={class:"input-wrapper"},me={key:0,class:"link-buttons"},he={key:0,class:"dropdown-menu"},ke={class:"dropdown-content"},ye=["onClick"],ge={key:0,class:"create-icon"},we={class:"item-label"},Ce={key:0,class:"empty-state"},be={key:1,class:"loading-state"},$e=ne({__name:"Link",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(A){const s=A,G=$(()=>s.df.label_layout||"vertical"),u=c(""),h=c(""),k=c(""),B=c(!1),d=c(!1),y=c([]),b=c(!1),O=c({}),g=c({}),i=$(()=>s.df.options||""),S=$(()=>!!u.value),H=$(()=>s.df.max_options||20);z(()=>s.record[s.df.fieldname],async e=>{e!==u.value&&(u.value=e||"",e&&i.value?h.value=await J(i.value,e):h.value="")},{immediate:!0}),z(u,e=>{s.record[s.df.fieldname]!==e&&(s.record[s.df.fieldname]=e)});async function M(e){var t;if(!e)return{};if(O.value[e])return O.value[e];try{const l=((t=(await N.get(`/api/data/PageType/${encodeURIComponent(e)}`,{headers:Q(),withCredentials:!0})).data)==null?void 0:t.data)||{};return O.value[e]=l,l}catch(a){return console.error("获取页面类型配置失败:",a),{}}}async function J(e,t){var l;if(!e||!t)return t;const a=`${e}_${t}`;if(g.value[a])return g.value[a];try{const f=await M(e),_=f.title_field||"name",D=f.show_title_field_in_link||!1;if(_==="name"||!D)return g.value[a]=t,t;const x=(((l=(await N.get(`/api/data/${encodeURIComponent(e)}/${encodeURIComponent(t)}`,{headers:Q(),withCredentials:!0})).data)==null?void 0:l.data)||{})[_]||t;return g.value[a]=x,x}catch(f){return console.error("获取记录标题失败:",f),t}}function T(){return{label:`${m("Create")}${m(i.value)}`,value:"create_new",type:"create"}}async function R(e=""){if(i.value){b.value=!0;try{const a=(await M(i.value)).title_field||"name",l=["name"];a!=="name"&&l.push(a);const f=[];e.trim()&&(a!=="name"?f.push([a,"like",`%${e}%`]):f.push(["name","like",`%${e}%`]));const _=await de(i.value,f,l,"modified desc",0,H.value);if(_.success&&_.data){const D=_.data.map(w=>{const E=a==="name"?w.name:w[a]||w.name;return{label:E,value:w.name,title:E}});y.value=[...D,T()]}else y.value=[T()]}catch(t){console.error("搜索选项失败:",t),y.value=[T()]}finally{b.value=!1}}}function W(e){k.value=e,d.value&&R(e)}async function U(){s.canEdit&&(d.value||(await R(k.value),d.value=!0))}async function X(e){if(e.type==="create"){const t=Y(i.value),a=Math.random().toString(36).substring(2,12),l=`new-${t}-${a}`;window.open(`/app/${t}/${l}`,"_blank"),d.value=!1;return}u.value=e.value,h.value=e.title||e.label,k.value="",d.value=!1}function Z(){u.value="",h.value="",k.value="",d.value=!1}function ee(){if(!u.value||!i.value)return;const e=Y(i.value);window.open(`/app/${e}/${u.value}`,"_blank")}function ae(){B.value=S.value}function te(){B.value=!1}function V(e){e.target.closest(".link-field-container")||(d.value=!1)}return le(()=>{document.addEventListener("click",V)}),se(()=>{document.removeEventListener("click",V)}),(e,t)=>(o(),r("div",{class:P(["field-wrapper",`layout-${G.value}`])},[C("label",ve,[oe(L(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(o(),r("span",pe,"*")):v("",!0)]),C("div",{class:"link-field-container",onMouseenter:ae,onMouseleave:te},[C("div",_e,[p(n(ue),{value:S.value?h.value:k.value,placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit,"onUpdate:value":W,onClick:U,onFocus:U,class:"link-input"},null,8,["value","placeholder","disabled"]),B.value&&S.value?(o(),r("div",me,[e.canEdit?(o(),ie(n(K),{key:0,size:"small",quaternary:"",onClick:j(Z,["stop"]),title:n(m)("Clear"),class:"action-btn"},{icon:I(()=>[p(n(q),null,{default:I(()=>[p(n(F),{icon:"mdi:close"})]),_:1})]),_:1},8,["title"])):v("",!0),p(n(K),{size:"small",quaternary:"",onClick:j(ee,["stop"]),title:n(m)("Open Detail"),class:"action-btn"},{icon:I(()=>[p(n(q),null,{default:I(()=>[p(n(F),{icon:"mdi:arrow-right"})]),_:1})]),_:1},8,["title"])])):v("",!0)]),d.value?(o(),r("div",he,[C("div",ke,[(o(!0),r(ce,null,re(y.value,a=>(o(),r("div",{key:a.value,class:P(["dropdown-item",{"create-item":a.type==="create"}]),onClick:l=>X(a)},[a.type==="create"?(o(),r("span",ge,[p(n(F),{icon:"mdi:plus"})])):v("",!0),C("span",we,L(a.label),1)],10,ye))),128)),y.value.length===0&&!b.value?(o(),r("div",Ce,L(n(m)("No Data")),1)):v("",!0),b.value?(o(),r("div",be,L(n(m)("Loading")),1)):v("",!0)])])):v("",!0)],32)],2))}});const Le=fe($e,[["__scopeId","data-v-1284a7de"]]),De=Object.freeze(Object.defineProperty({__proto__:null,default:Le},Symbol.toStringTag,{value:"Module"}));export{De as _}; diff --git a/apps/jingrow/frontend/dist/assets/LocalJobDetail-23c5651e.js b/apps/jingrow/frontend/dist/assets/LocalJobDetail-224c7ffe.js similarity index 96% rename from apps/jingrow/frontend/dist/assets/LocalJobDetail-23c5651e.js rename to apps/jingrow/frontend/dist/assets/LocalJobDetail-224c7ffe.js index 9c3596f..ea0ed66 100644 --- a/apps/jingrow/frontend/dist/assets/LocalJobDetail-23c5651e.js +++ b/apps/jingrow/frontend/dist/assets/LocalJobDetail-224c7ffe.js @@ -1 +1 @@ -import{d as I,X as T,u as B,r as m,o as A,e as d,f as e,h as i,w as c,j as t,p as h,g as s,Y as F,y as z,v as E,k as M,t as a,l as u,I as k,n as b,$ as p}from"./index-b37e64ca.js";import{I as g}from"./iconify-b5ab1212.js";import{a as S,d as V}from"./localJobs-c0141744.js";import{_ as O}from"./_plugin-vue_export-helper-c27b6911.js";const R={class:"page"},q={class:"page-header"},$={class:"page-title"},P={class:"main-layout"},Q={class:"main-content"},X={key:0,class:"loading"},Y={key:1,class:"error"},G={key:2,class:"content-grid"},H={class:"info-card"},K={class:"info-grid"},U={class:"info-item"},W={class:"value"},Z={class:"info-item"},ee={class:"value"},te={class:"info-item"},se={class:"value"},ae={class:"queue-badge"},le={class:"info-item"},oe={class:"value"},ie={class:"info-item"},ne={class:"value"},ce={class:"info-item"},de={class:"value"},ue={class:"info-item"},re={class:"value"},_e={class:"info-item"},ve={class:"value"},fe={class:"time-card"},me={class:"time-grid"},he={class:"time-item"},be={class:"value"},pe={class:"time-item"},ge={class:"value"},ye={class:"time-item"},Je={class:"value"},ke={class:"time-item"},De={class:"value"},je={class:"arguments-card"},xe={class:"arguments-container"},Ce={key:0},Ne={key:1,class:"no-data"},we={key:0,class:"exception-card"},Le={class:"exception-container"},Ie=I({__name:"LocalJobDetail",setup(Te){const D=E(),j=M(),x=T(),_=B(),r=m(!0),f=m(!1),l=m(null);async function y(){r.value=!0;try{const o=D.params.id,n=await S(o);n.success?l.value=n.data:(l.value=null,_.error(a("Failed to load job detail")))}catch(o){console.error("Fetch job detail error:",o),l.value=null,_.error(a("Failed to load job detail"))}finally{r.value=!1}}async function C(){l.value&&x.error({title:a("Confirm Delete"),content:a("Are you sure you want to delete this job?"),positiveText:a("Delete"),negativeText:a("Cancel"),onPositiveClick:async()=>{f.value=!0;try{(await V(l.value.job_id)).success?(_.success(a("Job deleted successfully")),J()):_.error(a("Failed to delete job"))}catch(o){console.error("Delete error:",o),_.error(a("Failed to delete job"))}finally{f.value=!1}}})}function N(){y()}function J(){j.push({name:"LocalJobList"})}function v(o){if(!o)return"—";try{return new Date(o).toLocaleString()}catch{return o}}function w(o){return o?typeof o=="number"?`${o}s`:o:"—"}function L(o){try{const n=JSON.parse(o);return JSON.stringify(n,null,2)}catch{return o}}return A(()=>{y()}),(o,n)=>(u(),d("div",R,[e("div",q,[i(t(k),{justify:"space-between",align:"center"},{default:c(()=>[e("div",null,[e("h1",$,s(l.value?l.value.job_name||l.value.job_id:t(a)("Job Details")),1)]),i(t(k),{align:"center"},{default:c(()=>[i(t(b),{type:"default",size:"medium",onClick:N,disabled:r.value||!l.value,title:t(a)("Refresh"),class:"header-action-btn"},{icon:c(()=>[i(t(p),null,{default:c(()=>[i(t(g),{icon:"tabler:refresh"})]),_:1})]),_:1},8,["disabled","title"]),i(t(b),{type:"default",size:"medium",onClick:C,disabled:r.value||!l.value||f.value,title:t(a)("Delete"),class:"header-action-btn delete-btn"},{icon:c(()=>[i(t(p),null,{default:c(()=>[i(t(g),{icon:"tabler:trash"})]),_:1})]),_:1},8,["disabled","title"]),i(t(b),{type:"default",size:"medium",onClick:J,disabled:r.value},{icon:c(()=>[i(t(p),null,{default:c(()=>[i(t(g),{icon:"tabler:arrow-left"})]),_:1})]),default:c(()=>[h(" "+s(t(a)("Back")),1)]),_:1},8,["disabled"])]),_:1})]),_:1})]),e("div",P,[e("div",Q,[r.value?(u(),d("div",X,[n[0]||(n[0]=e("i",{class:"fa fa-spinner fa-spin"},null,-1)),h(" "+s(t(a)("Loading...")),1)])):l.value?(u(),d("div",G,[e("div",H,[e("h4",null,s(t(a)("Job Details")),1),e("div",K,[e("div",U,[e("label",null,s(t(a)("Job ID")),1),e("div",W,s(l.value.job_id),1)]),e("div",Z,[e("label",null,s(t(a)("Job Name")),1),e("div",ee,s(l.value.job_name||"—"),1)]),e("div",te,[e("label",null,s(t(a)("Queue")),1),e("div",se,[e("span",ae,s(t(a)(l.value.queue)),1)])]),e("div",le,[e("label",null,s(t(a)("Job Status")),1),e("div",oe,[e("span",{class:F(["status-badge",l.value.status])},s(t(a)(l.value.status)),3)])]),e("div",ie,[e("label",null,s(t(a)("Creation")),1),e("div",ne,s(v(l.value.creation)),1)]),e("div",ce,[e("label",null,s(t(a)("Modified")),1),e("div",de,s(v(l.value.modified)),1)]),e("div",ue,[e("label",null,s(t(a)("Owner")),1),e("div",re,s(l.value.owner||"—"),1)]),e("div",_e,[e("label",null,s(t(a)("Modified By")),1),e("div",ve,s(l.value.modified_by||"—"),1)])])]),e("div",fe,[e("h4",null,s(t(a)("Execution Time")),1),e("div",me,[e("div",he,[e("label",null,s(t(a)("Started At")),1),e("div",be,s(v(l.value.started_at)),1)]),e("div",pe,[e("label",null,s(t(a)("Ended At")),1),e("div",ge,s(v(l.value.ended_at)),1)]),e("div",ye,[e("label",null,s(t(a)("Time Taken")),1),e("div",Je,s(w(l.value.time_taken)),1)]),e("div",ke,[e("label",null,s(t(a)("Timeout")),1),e("div",De,s(l.value.timeout||"—"),1)])])]),e("div",je,[e("h4",null,s(t(a)("Job Arguments")),1),e("div",xe,[l.value.arguments?(u(),d("pre",Ce,s(L(l.value.arguments)),1)):(u(),d("div",Ne,s(t(a)("No arguments")),1))])]),l.value.exc_info?(u(),d("div",we,[e("h4",null,s(t(a)("Exception Info")),1),e("div",Le,[e("pre",null,s(l.value.exc_info),1)])])):z("",!0)])):(u(),d("div",Y,[n[1]||(n[1]=e("i",{class:"fa fa-exclamation-triangle"},null,-1)),h(" "+s(t(a)("Job not found")),1)]))])])]))}});const Ee=O(Ie,[["__scopeId","data-v-0f561628"]]);export{Ee as default}; +import{d as I,X as T,u as B,r as m,o as A,e as d,f as e,h as i,w as c,j as t,p as h,g as s,Y as F,y as z,v as E,k as M,t as a,l as u,I as k,n as b,$ as p}from"./index-7b482730.js";import{I as g}from"./iconify-30ae5ba5.js";import{a as S,d as V}from"./localJobs-672668f6.js";import{_ as O}from"./_plugin-vue_export-helper-c27b6911.js";const R={class:"page"},q={class:"page-header"},$={class:"page-title"},P={class:"main-layout"},Q={class:"main-content"},X={key:0,class:"loading"},Y={key:1,class:"error"},G={key:2,class:"content-grid"},H={class:"info-card"},K={class:"info-grid"},U={class:"info-item"},W={class:"value"},Z={class:"info-item"},ee={class:"value"},te={class:"info-item"},se={class:"value"},ae={class:"queue-badge"},le={class:"info-item"},oe={class:"value"},ie={class:"info-item"},ne={class:"value"},ce={class:"info-item"},de={class:"value"},ue={class:"info-item"},re={class:"value"},_e={class:"info-item"},ve={class:"value"},fe={class:"time-card"},me={class:"time-grid"},he={class:"time-item"},be={class:"value"},pe={class:"time-item"},ge={class:"value"},ye={class:"time-item"},Je={class:"value"},ke={class:"time-item"},De={class:"value"},je={class:"arguments-card"},xe={class:"arguments-container"},Ce={key:0},Ne={key:1,class:"no-data"},we={key:0,class:"exception-card"},Le={class:"exception-container"},Ie=I({__name:"LocalJobDetail",setup(Te){const D=E(),j=M(),x=T(),_=B(),r=m(!0),f=m(!1),l=m(null);async function y(){r.value=!0;try{const o=D.params.id,n=await S(o);n.success?l.value=n.data:(l.value=null,_.error(a("Failed to load job detail")))}catch(o){console.error("Fetch job detail error:",o),l.value=null,_.error(a("Failed to load job detail"))}finally{r.value=!1}}async function C(){l.value&&x.error({title:a("Confirm Delete"),content:a("Are you sure you want to delete this job?"),positiveText:a("Delete"),negativeText:a("Cancel"),onPositiveClick:async()=>{f.value=!0;try{(await V(l.value.job_id)).success?(_.success(a("Job deleted successfully")),J()):_.error(a("Failed to delete job"))}catch(o){console.error("Delete error:",o),_.error(a("Failed to delete job"))}finally{f.value=!1}}})}function N(){y()}function J(){j.push({name:"LocalJobList"})}function v(o){if(!o)return"—";try{return new Date(o).toLocaleString()}catch{return o}}function w(o){return o?typeof o=="number"?`${o}s`:o:"—"}function L(o){try{const n=JSON.parse(o);return JSON.stringify(n,null,2)}catch{return o}}return A(()=>{y()}),(o,n)=>(u(),d("div",R,[e("div",q,[i(t(k),{justify:"space-between",align:"center"},{default:c(()=>[e("div",null,[e("h1",$,s(l.value?l.value.job_name||l.value.job_id:t(a)("Job Details")),1)]),i(t(k),{align:"center"},{default:c(()=>[i(t(b),{type:"default",size:"medium",onClick:N,disabled:r.value||!l.value,title:t(a)("Refresh"),class:"header-action-btn"},{icon:c(()=>[i(t(p),null,{default:c(()=>[i(t(g),{icon:"tabler:refresh"})]),_:1})]),_:1},8,["disabled","title"]),i(t(b),{type:"default",size:"medium",onClick:C,disabled:r.value||!l.value||f.value,title:t(a)("Delete"),class:"header-action-btn delete-btn"},{icon:c(()=>[i(t(p),null,{default:c(()=>[i(t(g),{icon:"tabler:trash"})]),_:1})]),_:1},8,["disabled","title"]),i(t(b),{type:"default",size:"medium",onClick:J,disabled:r.value},{icon:c(()=>[i(t(p),null,{default:c(()=>[i(t(g),{icon:"tabler:arrow-left"})]),_:1})]),default:c(()=>[h(" "+s(t(a)("Back")),1)]),_:1},8,["disabled"])]),_:1})]),_:1})]),e("div",P,[e("div",Q,[r.value?(u(),d("div",X,[n[0]||(n[0]=e("i",{class:"fa fa-spinner fa-spin"},null,-1)),h(" "+s(t(a)("Loading...")),1)])):l.value?(u(),d("div",G,[e("div",H,[e("h4",null,s(t(a)("Job Details")),1),e("div",K,[e("div",U,[e("label",null,s(t(a)("Job ID")),1),e("div",W,s(l.value.job_id),1)]),e("div",Z,[e("label",null,s(t(a)("Job Name")),1),e("div",ee,s(l.value.job_name||"—"),1)]),e("div",te,[e("label",null,s(t(a)("Queue")),1),e("div",se,[e("span",ae,s(t(a)(l.value.queue)),1)])]),e("div",le,[e("label",null,s(t(a)("Job Status")),1),e("div",oe,[e("span",{class:F(["status-badge",l.value.status])},s(t(a)(l.value.status)),3)])]),e("div",ie,[e("label",null,s(t(a)("Creation")),1),e("div",ne,s(v(l.value.creation)),1)]),e("div",ce,[e("label",null,s(t(a)("Modified")),1),e("div",de,s(v(l.value.modified)),1)]),e("div",ue,[e("label",null,s(t(a)("Owner")),1),e("div",re,s(l.value.owner||"—"),1)]),e("div",_e,[e("label",null,s(t(a)("Modified By")),1),e("div",ve,s(l.value.modified_by||"—"),1)])])]),e("div",fe,[e("h4",null,s(t(a)("Execution Time")),1),e("div",me,[e("div",he,[e("label",null,s(t(a)("Started At")),1),e("div",be,s(v(l.value.started_at)),1)]),e("div",pe,[e("label",null,s(t(a)("Ended At")),1),e("div",ge,s(v(l.value.ended_at)),1)]),e("div",ye,[e("label",null,s(t(a)("Time Taken")),1),e("div",Je,s(w(l.value.time_taken)),1)]),e("div",ke,[e("label",null,s(t(a)("Timeout")),1),e("div",De,s(l.value.timeout||"—"),1)])])]),e("div",je,[e("h4",null,s(t(a)("Job Arguments")),1),e("div",xe,[l.value.arguments?(u(),d("pre",Ce,s(L(l.value.arguments)),1)):(u(),d("div",Ne,s(t(a)("No arguments")),1))])]),l.value.exc_info?(u(),d("div",we,[e("h4",null,s(t(a)("Exception Info")),1),e("div",Le,[e("pre",null,s(l.value.exc_info),1)])])):z("",!0)])):(u(),d("div",Y,[n[1]||(n[1]=e("i",{class:"fa fa-exclamation-triangle"},null,-1)),h(" "+s(t(a)("Job not found")),1)]))])])]))}});const Ee=O(Ie,[["__scopeId","data-v-0f561628"]]);export{Ee as default}; diff --git a/apps/jingrow/frontend/dist/assets/LocalJobList-941079f5.js b/apps/jingrow/frontend/dist/assets/LocalJobList-32f75d47.js similarity index 97% rename from apps/jingrow/frontend/dist/assets/LocalJobList-941079f5.js rename to apps/jingrow/frontend/dist/assets/LocalJobList-32f75d47.js index bd11da8..7ac4155 100644 --- a/apps/jingrow/frontend/dist/assets/LocalJobList-941079f5.js +++ b/apps/jingrow/frontend/dist/assets/LocalJobList-32f75d47.js @@ -1 +1 @@ -import{d as R,X,u as Y,r as u,c as q,M as w,o as Z,e as f,f as s,g as n,j as a,h as x,Y as S,p as A,y as N,F as G,C as H,k as K,t as e,l as h,m as W,Z as ee,L as _,_ as te}from"./index-b37e64ca.js";import{g as se,b as le,d as oe,s as ae}from"./localJobs-c0141744.js";import{_ as ne}from"./_plugin-vue_export-helper-c27b6911.js";const ie={class:"page"},ce={class:"page-header"},de={class:"header-left"},ue={class:"header-right"},re={class:"filters"},ve=["disabled"],_e=["disabled"],pe={class:"page-content"},fe={key:0,class:"loading"},he={key:1},be={class:"job-list"},ge={class:"list-header"},me={class:"col-checkbox"},ke=["checked","indeterminate"],Ce={class:"col-status"},ye={class:"col-job-name"},Je={class:"col-queue"},De={class:"col-started"},Le={class:"col-ended"},we={class:"col-duration"},xe={class:"col-actions"},Se={class:"list-body"},$e=["onClick"],je={class:"col-checkbox"},Fe=["checked","onClick"],Te=["onClick"],qe=["onClick"],Ae={class:"job-name"},Ne={class:"job-id"},Pe=["onClick"],Me={class:"queue-badge"},Ie=["onClick"],Ve=["onClick"],ze=["onClick"],Be=["onClick","title"],Ee=["onClick","title"],Oe=["onClick","title"],Qe={class:"list-pagination"},Ue=R({__name:"LocalJobList",setup(Re){const P=K(),C=X(),d=Y(),b=u(!0),y=u(!1),r=u([]),J=u([]),D=u(0),i=u([]),m=u(""),k=u("all"),g=u(1),L=u(parseInt(localStorage.getItem("itemsPerPage")||"20")),M=q(()=>[{label:e("All"),value:"all"},{label:e("Queued"),value:"queued"},{label:e("Started"),value:"started"},{label:e("Finished"),value:"finished"},{label:e("Failed"),value:"failed"},{label:e("Deferred"),value:"deferred"},{label:e("Scheduled"),value:"scheduled"},{label:e("Canceled"),value:"canceled"}]),I=q(()=>Math.max(1,Math.ceil(D.value/L.value)));async function p(){b.value=!0;try{const t=await se(g.value,L.value);J.value=t.items||[],$(),D.value=t.total||0}catch(t){console.error("Fetch jobs error:",t),r.value=[],J.value=[],D.value=0,d.error(e("Failed to load jobs"))}finally{b.value=!1}}function $(){let t=[...J.value];if(m.value){const l=m.value.toLowerCase();t=t.filter(o=>{var c,F,T;return((c=o.job_name)==null?void 0:c.toLowerCase().includes(l))||((F=o.job_id)==null?void 0:F.toLowerCase().includes(l))||((T=o.queue)==null?void 0:T.toLowerCase().includes(l))})}k.value!=="all"&&(t=t.filter(l=>l.status===k.value)),r.value=t}function V(){p()}function z(t){const l=i.value.indexOf(t);l>-1?i.value.splice(l,1):i.value.push(t)}function B(){i.value.length===r.value.length?i.value=[]:i.value=r.value.map(t=>t.job_id)}async function E(){i.value.length!==0&&C.error({title:e("Confirm Delete"),content:e("Are you sure you want to delete the selected jobs? This action cannot be undone."),positiveText:e("Delete"),negativeText:e("Cancel"),onPositiveClick:async()=>{y.value=!0;try{const t=await le(i.value);if(t.success){let l=e(t.message);t.message_params&&Object.entries(t.message_params).forEach(([o,c])=>{l=l.replace(`{${o}}`,String(c))}),d.success(l),i.value=[],await p()}else d.error(e("Delete failed"))}catch(t){console.error("Delete error:",t),d.error(e("Delete failed"))}finally{y.value=!1}}})}async function O(t){C.error({title:e("Confirm Delete"),content:e("Are you sure you want to delete this job?"),positiveText:e("Delete"),negativeText:e("Cancel"),onPositiveClick:async()=>{try{(await oe(t)).success?(d.success(e("Job deleted successfully")),await p()):d.error(e("Failed to delete job"))}catch(l){console.error("Delete error:",l),d.error(e("Failed to delete job"))}}})}async function Q(t){C.warning({title:e("Confirm Stop"),content:e("Are you sure you want to stop this job?"),positiveText:e("Stop"),negativeText:e("Cancel"),onPositiveClick:async()=>{try{(await ae(t)).success?(d.success(e("Job stopped successfully")),await p()):d.error(e("Failed to stop job"))}catch(l){console.error("Stop error:",l),d.error(e("Failed to stop job"))}}})}function j(t){if(!t)return"—";try{return new Date(t).toLocaleString()}catch{return t}}function U(t){return t?typeof t=="number"?`${t}s`:t:"—"}w([m,k],()=>{g.value=1,$()},{deep:!0}),w([g],()=>{p()}),w(()=>localStorage.getItem("itemsPerPage"),t=>{t&&(L.value=parseInt(t),g.value=1,p())});function v(t){P.push({name:"LocalJobDetail",params:{id:t}})}return Z(()=>{p()}),(t,l)=>(h(),f("div",ie,[s("div",ce,[s("div",de,[s("h2",null,n(a(e)("Local Jobs")),1)]),s("div",ue,[s("div",re,[x(a(W),{value:m.value,"onUpdate:value":l[0]||(l[0]=o=>m.value=o),placeholder:a(e)("Search"),clearable:"",style:{width:"220px"}},null,8,["value","placeholder"]),x(a(ee),{value:k.value,"onUpdate:value":l[1]||(l[1]=o=>k.value=o),options:M.value,style:{width:"160px"}},null,8,["value","options"])]),s("button",{class:"refresh-btn",onClick:V,disabled:b.value},[s("i",{class:S(b.value?"fa fa-spinner fa-spin":"fa fa-refresh")},null,2)],8,ve),i.value.length>0?(h(),f("button",{key:0,class:"delete-btn",onClick:E,disabled:y.value||b.value},[l[4]||(l[4]=s("i",{class:"fa fa-trash"},null,-1)),A(" "+n(a(e)("Delete Selected Jobs"))+" ("+n(i.value.length)+") ",1)],8,_e)):N("",!0)])]),s("div",pe,[b.value?(h(),f("div",fe,[l[5]||(l[5]=s("i",{class:"fa fa-spinner fa-spin"},null,-1)),A(" "+n(a(e)("Loading...")),1)])):(h(),f("div",he,[s("div",be,[s("div",ge,[s("div",me,[s("input",{type:"checkbox",checked:i.value.length===r.value.length&&r.value.length>0,indeterminate:i.value.length>0&&i.value.length(h(),f("div",{key:o.job_id,class:S(["job-list-item",{selected:i.value.includes(o.job_id)}]),onClick:c=>v(o.job_id)},[s("div",je,[s("input",{type:"checkbox",checked:i.value.includes(o.job_id),onClick:_(c=>z(o.job_id),["stop"])},null,8,Fe)]),s("div",{class:"col-status",onClick:_(c=>v(o.job_id),["stop"])},[s("span",{class:S(["status-badge",o.status])},n(a(e)(o.status)),3)],8,Te),s("div",{class:"col-job-name",onClick:_(c=>v(o.job_id),["stop"])},[s("div",Ae,n(o.job_name||o.job_id),1),s("div",Ne,n(o.job_id),1)],8,qe),s("div",{class:"col-queue",onClick:_(c=>v(o.job_id),["stop"])},[s("span",Me,n(a(e)(o.queue)),1)],8,Pe),s("div",{class:"col-started",onClick:_(c=>v(o.job_id),["stop"])},n(j(o.started_at)),9,Ie),s("div",{class:"col-ended",onClick:_(c=>v(o.job_id),["stop"])},n(j(o.ended_at)),9,Ve),s("div",{class:"col-duration",onClick:_(c=>v(o.job_id),["stop"])},n(U(o.time_taken)),9,ze),s("div",{class:"col-actions",onClick:l[2]||(l[2]=_(()=>{},["stop"]))},[o.status==="started"||o.status==="queued"?(h(),f("button",{key:0,class:"action-btn stop-btn",onClick:c=>Q(o.job_id),title:a(e)("Stop Job")},[...l[6]||(l[6]=[s("i",{class:"fa fa-stop"},null,-1)])],8,Be)):N("",!0),s("button",{class:"action-btn",onClick:c=>v(o.job_id),title:a(e)("View Details")},[...l[7]||(l[7]=[s("i",{class:"fa fa-eye"},null,-1)])],8,Ee),s("button",{class:"action-btn delete-btn",onClick:c=>O(o.job_id),title:a(e)("Delete Job")},[...l[8]||(l[8]=[s("i",{class:"fa fa-trash"},null,-1)])],8,Oe)])],10,$e))),128))]),s("div",Qe,[x(a(te),{page:g.value,"onUpdate:page":l[3]||(l[3]=o=>g.value=o),"page-count":I.value,size:"small"},null,8,["page","page-count"])])])]))])]))}});const Ge=ne(Ue,[["__scopeId","data-v-120643f1"]]);export{Ge as default}; +import{d as R,X,u as Y,r as u,c as q,M as w,o as Z,e as f,f as s,g as n,j as a,h as x,Y as S,p as A,y as N,F as G,C as H,k as K,t as e,l as h,m as W,Z as ee,L as _,_ as te}from"./index-7b482730.js";import{g as se,b as le,d as oe,s as ae}from"./localJobs-672668f6.js";import{_ as ne}from"./_plugin-vue_export-helper-c27b6911.js";const ie={class:"page"},ce={class:"page-header"},de={class:"header-left"},ue={class:"header-right"},re={class:"filters"},ve=["disabled"],_e=["disabled"],pe={class:"page-content"},fe={key:0,class:"loading"},he={key:1},be={class:"job-list"},ge={class:"list-header"},me={class:"col-checkbox"},ke=["checked","indeterminate"],Ce={class:"col-status"},ye={class:"col-job-name"},Je={class:"col-queue"},De={class:"col-started"},Le={class:"col-ended"},we={class:"col-duration"},xe={class:"col-actions"},Se={class:"list-body"},$e=["onClick"],je={class:"col-checkbox"},Fe=["checked","onClick"],Te=["onClick"],qe=["onClick"],Ae={class:"job-name"},Ne={class:"job-id"},Pe=["onClick"],Me={class:"queue-badge"},Ie=["onClick"],Ve=["onClick"],ze=["onClick"],Be=["onClick","title"],Ee=["onClick","title"],Oe=["onClick","title"],Qe={class:"list-pagination"},Ue=R({__name:"LocalJobList",setup(Re){const P=K(),C=X(),d=Y(),b=u(!0),y=u(!1),r=u([]),J=u([]),D=u(0),i=u([]),m=u(""),k=u("all"),g=u(1),L=u(parseInt(localStorage.getItem("itemsPerPage")||"20")),M=q(()=>[{label:e("All"),value:"all"},{label:e("Queued"),value:"queued"},{label:e("Started"),value:"started"},{label:e("Finished"),value:"finished"},{label:e("Failed"),value:"failed"},{label:e("Deferred"),value:"deferred"},{label:e("Scheduled"),value:"scheduled"},{label:e("Canceled"),value:"canceled"}]),I=q(()=>Math.max(1,Math.ceil(D.value/L.value)));async function p(){b.value=!0;try{const t=await se(g.value,L.value);J.value=t.items||[],$(),D.value=t.total||0}catch(t){console.error("Fetch jobs error:",t),r.value=[],J.value=[],D.value=0,d.error(e("Failed to load jobs"))}finally{b.value=!1}}function $(){let t=[...J.value];if(m.value){const l=m.value.toLowerCase();t=t.filter(o=>{var c,F,T;return((c=o.job_name)==null?void 0:c.toLowerCase().includes(l))||((F=o.job_id)==null?void 0:F.toLowerCase().includes(l))||((T=o.queue)==null?void 0:T.toLowerCase().includes(l))})}k.value!=="all"&&(t=t.filter(l=>l.status===k.value)),r.value=t}function V(){p()}function z(t){const l=i.value.indexOf(t);l>-1?i.value.splice(l,1):i.value.push(t)}function B(){i.value.length===r.value.length?i.value=[]:i.value=r.value.map(t=>t.job_id)}async function E(){i.value.length!==0&&C.error({title:e("Confirm Delete"),content:e("Are you sure you want to delete the selected jobs? This action cannot be undone."),positiveText:e("Delete"),negativeText:e("Cancel"),onPositiveClick:async()=>{y.value=!0;try{const t=await le(i.value);if(t.success){let l=e(t.message);t.message_params&&Object.entries(t.message_params).forEach(([o,c])=>{l=l.replace(`{${o}}`,String(c))}),d.success(l),i.value=[],await p()}else d.error(e("Delete failed"))}catch(t){console.error("Delete error:",t),d.error(e("Delete failed"))}finally{y.value=!1}}})}async function O(t){C.error({title:e("Confirm Delete"),content:e("Are you sure you want to delete this job?"),positiveText:e("Delete"),negativeText:e("Cancel"),onPositiveClick:async()=>{try{(await oe(t)).success?(d.success(e("Job deleted successfully")),await p()):d.error(e("Failed to delete job"))}catch(l){console.error("Delete error:",l),d.error(e("Failed to delete job"))}}})}async function Q(t){C.warning({title:e("Confirm Stop"),content:e("Are you sure you want to stop this job?"),positiveText:e("Stop"),negativeText:e("Cancel"),onPositiveClick:async()=>{try{(await ae(t)).success?(d.success(e("Job stopped successfully")),await p()):d.error(e("Failed to stop job"))}catch(l){console.error("Stop error:",l),d.error(e("Failed to stop job"))}}})}function j(t){if(!t)return"—";try{return new Date(t).toLocaleString()}catch{return t}}function U(t){return t?typeof t=="number"?`${t}s`:t:"—"}w([m,k],()=>{g.value=1,$()},{deep:!0}),w([g],()=>{p()}),w(()=>localStorage.getItem("itemsPerPage"),t=>{t&&(L.value=parseInt(t),g.value=1,p())});function v(t){P.push({name:"LocalJobDetail",params:{id:t}})}return Z(()=>{p()}),(t,l)=>(h(),f("div",ie,[s("div",ce,[s("div",de,[s("h2",null,n(a(e)("Local Jobs")),1)]),s("div",ue,[s("div",re,[x(a(W),{value:m.value,"onUpdate:value":l[0]||(l[0]=o=>m.value=o),placeholder:a(e)("Search"),clearable:"",style:{width:"220px"}},null,8,["value","placeholder"]),x(a(ee),{value:k.value,"onUpdate:value":l[1]||(l[1]=o=>k.value=o),options:M.value,style:{width:"160px"}},null,8,["value","options"])]),s("button",{class:"refresh-btn",onClick:V,disabled:b.value},[s("i",{class:S(b.value?"fa fa-spinner fa-spin":"fa fa-refresh")},null,2)],8,ve),i.value.length>0?(h(),f("button",{key:0,class:"delete-btn",onClick:E,disabled:y.value||b.value},[l[4]||(l[4]=s("i",{class:"fa fa-trash"},null,-1)),A(" "+n(a(e)("Delete Selected Jobs"))+" ("+n(i.value.length)+") ",1)],8,_e)):N("",!0)])]),s("div",pe,[b.value?(h(),f("div",fe,[l[5]||(l[5]=s("i",{class:"fa fa-spinner fa-spin"},null,-1)),A(" "+n(a(e)("Loading...")),1)])):(h(),f("div",he,[s("div",be,[s("div",ge,[s("div",me,[s("input",{type:"checkbox",checked:i.value.length===r.value.length&&r.value.length>0,indeterminate:i.value.length>0&&i.value.length(h(),f("div",{key:o.job_id,class:S(["job-list-item",{selected:i.value.includes(o.job_id)}]),onClick:c=>v(o.job_id)},[s("div",je,[s("input",{type:"checkbox",checked:i.value.includes(o.job_id),onClick:_(c=>z(o.job_id),["stop"])},null,8,Fe)]),s("div",{class:"col-status",onClick:_(c=>v(o.job_id),["stop"])},[s("span",{class:S(["status-badge",o.status])},n(a(e)(o.status)),3)],8,Te),s("div",{class:"col-job-name",onClick:_(c=>v(o.job_id),["stop"])},[s("div",Ae,n(o.job_name||o.job_id),1),s("div",Ne,n(o.job_id),1)],8,qe),s("div",{class:"col-queue",onClick:_(c=>v(o.job_id),["stop"])},[s("span",Me,n(a(e)(o.queue)),1)],8,Pe),s("div",{class:"col-started",onClick:_(c=>v(o.job_id),["stop"])},n(j(o.started_at)),9,Ie),s("div",{class:"col-ended",onClick:_(c=>v(o.job_id),["stop"])},n(j(o.ended_at)),9,Ve),s("div",{class:"col-duration",onClick:_(c=>v(o.job_id),["stop"])},n(U(o.time_taken)),9,ze),s("div",{class:"col-actions",onClick:l[2]||(l[2]=_(()=>{},["stop"]))},[o.status==="started"||o.status==="queued"?(h(),f("button",{key:0,class:"action-btn stop-btn",onClick:c=>Q(o.job_id),title:a(e)("Stop Job")},[...l[6]||(l[6]=[s("i",{class:"fa fa-stop"},null,-1)])],8,Be)):N("",!0),s("button",{class:"action-btn",onClick:c=>v(o.job_id),title:a(e)("View Details")},[...l[7]||(l[7]=[s("i",{class:"fa fa-eye"},null,-1)])],8,Ee),s("button",{class:"action-btn delete-btn",onClick:c=>O(o.job_id),title:a(e)("Delete Job")},[...l[8]||(l[8]=[s("i",{class:"fa fa-trash"},null,-1)])],8,Oe)])],10,$e))),128))]),s("div",Qe,[x(a(te),{page:g.value,"onUpdate:page":l[3]||(l[3]=o=>g.value=o),"page-count":I.value,size:"small"},null,8,["page","page-count"])])])]))])]))}});const Ge=ne(Ue,[["__scopeId","data-v-120643f1"]]);export{Ge as default}; diff --git a/apps/jingrow/frontend/dist/assets/Login-e84eeaa5.js b/apps/jingrow/frontend/dist/assets/Login-5d7d02cc.js similarity index 94% rename from apps/jingrow/frontend/dist/assets/Login-e84eeaa5.js rename to apps/jingrow/frontend/dist/assets/Login-5d7d02cc.js index 1c0b87e..b2bafc7 100644 --- a/apps/jingrow/frontend/dist/assets/Login-e84eeaa5.js +++ b/apps/jingrow/frontend/dist/assets/Login-5d7d02cc.js @@ -1 +1 @@ -import{d as L,u as k,a as x,r as h,b,t as o,c as I,o as B,e as P,f as n,g as v,h as s,w as t,i as S,j as e,k as q,l as C,N as p,m as w,n as R,p as U,q as V,s as z}from"./index-b37e64ca.js";import{_ as A}from"./logo-a60c622a.js";import{I as y}from"./iconify-b5ab1212.js";import{_ as D}from"./_plugin-vue_export-helper-c27b6911.js";const F={class:"login-container"},K={class:"login-card"},M={class:"login-header"},T={class:"logo"},j=["alt"],E={class:"title"},J={class:"login-footer"},G=L({__name:"Login",setup(H){const m=q(),l=k(),i=x(),_=h(),u=h(!1),r=b({username:"",password:""}),N={username:[{required:!0,message:o("Please enter username"),trigger:"blur"}],password:[{required:!0,message:o("Please enter password"),trigger:"blur"},{min:6,message:o("Password must be at least 6 characters"),trigger:"blur"}]},g=async()=>{var c;try{await((c=_.value)==null?void 0:c.validate()),u.value=!0;const a=await i.login(r.username,r.password);a.success?(l.success(o("Login successful")),m.push("/")):l.error(a.error||o("Login failed"))}catch(a){console.error("Login error:",a),l.error(o("Login failed, please check username and password"))}finally{u.value=!1}},f=I(()=>localStorage.getItem("appName")||"Jingrow");return B(async()=>{await i.initAuth(),i.isLoggedIn&&m.push("/")}),(c,a)=>(C(),P("div",F,[n("div",K,[n("div",M,[n("div",T,[n("img",{src:A,alt:f.value,width:"48",height:"48"},null,8,j)]),n("h1",E,v(f.value),1)]),s(e(V),{ref_key:"formRef",ref:_,model:r,rules:N,size:"large",onKeyup:S(g,["enter"])},{default:t(()=>[s(e(p),{path:"username"},{default:t(()=>[s(e(w),{value:r.username,"onUpdate:value":a[0]||(a[0]=d=>r.username=d),placeholder:e(o)("Username"),"input-props":{autocomplete:"username"}},{prefix:t(()=>[s(e(y),{icon:"tabler:user"})]),_:1},8,["value","placeholder"])]),_:1}),s(e(p),{path:"password"},{default:t(()=>[s(e(w),{value:r.password,"onUpdate:value":a[1]||(a[1]=d=>r.password=d),type:"password",placeholder:e(o)("Password"),"input-props":{autocomplete:"current-password"},"show-password-on":"click"},{prefix:t(()=>[s(e(y),{icon:"tabler:lock"})]),_:1},8,["value","placeholder"])]),_:1}),s(e(p),null,{default:t(()=>[s(e(R),{type:"primary",size:"large",block:"",loading:u.value,onClick:g},{default:t(()=>[U(v(e(o)("Login")),1)]),_:1},8,["loading"])]),_:1})]),_:1},8,["model"]),n("div",J,[s(e(z),{depth:"3"})])])]))}});const Y=D(G,[["__scopeId","data-v-eaaa6792"]]);export{Y as default}; +import{d as L,u as k,a as x,r as h,b,t as o,c as I,o as B,e as P,f as n,g as v,h as s,w as t,i as S,j as e,k as q,l as C,N as p,m as w,n as R,p as U,q as V,s as z}from"./index-7b482730.js";import{_ as A}from"./logo-a60c622a.js";import{I as y}from"./iconify-30ae5ba5.js";import{_ as D}from"./_plugin-vue_export-helper-c27b6911.js";const F={class:"login-container"},K={class:"login-card"},M={class:"login-header"},T={class:"logo"},j=["alt"],E={class:"title"},J={class:"login-footer"},G=L({__name:"Login",setup(H){const m=q(),l=k(),i=x(),_=h(),u=h(!1),r=b({username:"",password:""}),N={username:[{required:!0,message:o("Please enter username"),trigger:"blur"}],password:[{required:!0,message:o("Please enter password"),trigger:"blur"},{min:6,message:o("Password must be at least 6 characters"),trigger:"blur"}]},g=async()=>{var c;try{await((c=_.value)==null?void 0:c.validate()),u.value=!0;const a=await i.login(r.username,r.password);a.success?(l.success(o("Login successful")),m.push("/")):l.error(a.error||o("Login failed"))}catch(a){console.error("Login error:",a),l.error(o("Login failed, please check username and password"))}finally{u.value=!1}},f=I(()=>localStorage.getItem("appName")||"Jingrow");return B(async()=>{await i.initAuth(),i.isLoggedIn&&m.push("/")}),(c,a)=>(C(),P("div",F,[n("div",K,[n("div",M,[n("div",T,[n("img",{src:A,alt:f.value,width:"48",height:"48"},null,8,j)]),n("h1",E,v(f.value),1)]),s(e(V),{ref_key:"formRef",ref:_,model:r,rules:N,size:"large",onKeyup:S(g,["enter"])},{default:t(()=>[s(e(p),{path:"username"},{default:t(()=>[s(e(w),{value:r.username,"onUpdate:value":a[0]||(a[0]=d=>r.username=d),placeholder:e(o)("Username"),"input-props":{autocomplete:"username"}},{prefix:t(()=>[s(e(y),{icon:"tabler:user"})]),_:1},8,["value","placeholder"])]),_:1}),s(e(p),{path:"password"},{default:t(()=>[s(e(w),{value:r.password,"onUpdate:value":a[1]||(a[1]=d=>r.password=d),type:"password",placeholder:e(o)("Password"),"input-props":{autocomplete:"current-password"},"show-password-on":"click"},{prefix:t(()=>[s(e(y),{icon:"tabler:lock"})]),_:1},8,["value","placeholder"])]),_:1}),s(e(p),null,{default:t(()=>[s(e(R),{type:"primary",size:"large",block:"",loading:u.value,onClick:g},{default:t(()=>[U(v(e(o)("Login")),1)]),_:1},8,["loading"])]),_:1})]),_:1},8,["model"]),n("div",J,[s(e(z),{depth:"3"})])])]))}});const Y=D(G,[["__scopeId","data-v-eaaa6792"]]);export{Y as default}; diff --git a/apps/jingrow/frontend/dist/assets/LongText-34963ee2.js b/apps/jingrow/frontend/dist/assets/LongText-6a20c0d8.js similarity index 93% rename from apps/jingrow/frontend/dist/assets/LongText-34963ee2.js rename to apps/jingrow/frontend/dist/assets/LongText-6a20c0d8.js index 28c232a..730ea24 100644 --- a/apps/jingrow/frontend/dist/assets/LongText-34963ee2.js +++ b/apps/jingrow/frontend/dist/assets/LongText-6a20c0d8.js @@ -1 +1 @@ -import{d as n,c as p,e as o,f as i,p as c,g as f,y as u,h as _,j as m,Y as y,l,m as b}from"./index-b37e64ca.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},N={key:0,class:"required"},T=n({__name:"LongText",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(t){const d=t,s=p(()=>d.df.label_layout||"vertical");return(e,a)=>(l(),o("div",{class:y(["field-wrapper",`layout-${s.value}`])},[i("label",g,[c(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),o("span",N,"*")):u("",!0)]),_(m(b),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=r=>e.record[e.df.fieldname]=r),type:"textarea",rows:6,placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const h=v(T,[["__scopeId","data-v-322d4a53"]]),V=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{V as _}; +import{d as n,c as p,e as o,f as i,p as c,g as f,y as u,h as _,j as m,Y as y,l,m as b}from"./index-7b482730.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},N={key:0,class:"required"},T=n({__name:"LongText",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(t){const d=t,s=p(()=>d.df.label_layout||"vertical");return(e,a)=>(l(),o("div",{class:y(["field-wrapper",`layout-${s.value}`])},[i("label",g,[c(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),o("span",N,"*")):u("",!0)]),_(m(b),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=r=>e.record[e.df.fieldname]=r),type:"textarea",rows:6,placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const h=v(T,[["__scopeId","data-v-322d4a53"]]),V=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{V as _}; diff --git a/apps/jingrow/frontend/dist/assets/MarkdownEditor-e284f6a7.js b/apps/jingrow/frontend/dist/assets/MarkdownEditor-bb608218.js similarity index 99% rename from apps/jingrow/frontend/dist/assets/MarkdownEditor-e284f6a7.js rename to apps/jingrow/frontend/dist/assets/MarkdownEditor-bb608218.js index 8ecae9f..c57cfe5 100644 --- a/apps/jingrow/frontend/dist/assets/MarkdownEditor-e284f6a7.js +++ b/apps/jingrow/frontend/dist/assets/MarkdownEditor-bb608218.js @@ -1,4 +1,4 @@ -var _e=Object.defineProperty;var ze=(c,e,t)=>e in c?_e(c,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):c[e]=t;var x=(c,e,t)=>(ze(c,typeof e!="symbol"?e+"":e,t),t);import{l as Te}from"./index-2d2e8bf3.js";import{d as Re,c as ie,r as Q,M as H,o as Se,aU as ve,e as S,f as N,p as B,g as q,y as re,D as le,w as V,Y as oe,h as Ee,J as U,x as Ie,l as _}from"./index-b37e64ca.js";import{_ as Ae}from"./_plugin-vue_export-helper-c27b6911.js";function F(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}let T=F();function fe(c){T=c}const ge=/[&<>"']/,Ce=new RegExp(ge.source,"g"),de=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,Le=new RegExp(de.source,"g"),Be={"&":"&","<":"<",">":">",'"':""","'":"'"},ae=c=>Be[c];function w(c,e){if(e){if(ge.test(c))return c.replace(Ce,ae)}else if(de.test(c))return c.replace(Le,ae);return c}const qe=/(^|[^\[])\^/g;function k(c,e){let t=typeof c=="string"?c:c.source;e=e||"";const n={replace:(s,i)=>{let r=typeof i=="string"?i:i.source;return r=r.replace(qe,"$1"),t=t.replace(s,r),n},getRegex:()=>new RegExp(t,e)};return n}function ce(c){try{c=encodeURI(c).replace(/%25/g,"%")}catch{return null}return c}const I={exec:()=>null};function he(c,e){const t=c.replace(/\|/g,(i,r,l)=>{let o=!1,a=r;for(;--a>=0&&l[a]==="\\";)o=!o;return o?"|":" |"}),n=t.split(/ \|/);let s=0;if(n[0].trim()||n.shift(),n.length>0&&!n[n.length-1].trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.lengthe in c?_e(c,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):c[e]=t;var x=(c,e,t)=>(ze(c,typeof e!="symbol"?e+"":e,t),t);import{l as Te}from"./index-2d2e8bf3.js";import{d as Re,c as ie,r as Q,M as H,o as Se,aU as ve,e as S,f as N,p as B,g as q,y as re,D as le,w as V,Y as oe,h as Ee,J as U,x as Ie,l as _}from"./index-7b482730.js";import{_ as Ae}from"./_plugin-vue_export-helper-c27b6911.js";function F(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}let T=F();function fe(c){T=c}const ge=/[&<>"']/,Ce=new RegExp(ge.source,"g"),de=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,Le=new RegExp(de.source,"g"),Be={"&":"&","<":"<",">":">",'"':""","'":"'"},ae=c=>Be[c];function w(c,e){if(e){if(ge.test(c))return c.replace(Ce,ae)}else if(de.test(c))return c.replace(Le,ae);return c}const qe=/(^|[^\[])\^/g;function k(c,e){let t=typeof c=="string"?c:c.source;e=e||"";const n={replace:(s,i)=>{let r=typeof i=="string"?i:i.source;return r=r.replace(qe,"$1"),t=t.replace(s,r),n},getRegex:()=>new RegExp(t,e)};return n}function ce(c){try{c=encodeURI(c).replace(/%25/g,"%")}catch{return null}return c}const I={exec:()=>null};function he(c,e){const t=c.replace(/\|/g,(i,r,l)=>{let o=!1,a=r;for(;--a>=0&&l[a]==="\\";)o=!o;return o?"|":" |"}),n=t.split(/ \|/);let s=0;if(n[0].trim()||n.shift(),n.length>0&&!n[n.length-1].trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length{const i=s.match(/^\s+/);if(i===null)return s;const[r]=i;return r.length>=n.length?s.slice(n.length):s}).join(` `)}class P{constructor(e){x(this,"options");x(this,"rules");x(this,"lexer");this.options=e||T}space(e){const t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){const t=this.rules.block.code.exec(e);if(t){const n=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?n:v(n,` `)}}}fences(e){const t=this.rules.block.fences.exec(e);if(t){const n=t[0],s=Pe(n,t[3]||"");return{type:"code",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:s}}}heading(e){const t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(/#$/.test(n)){const s=v(n,"#");(this.options.pedantic||!s||/ $/.test(s))&&(n=s.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){const t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:v(t[0],` diff --git a/apps/jingrow/frontend/dist/assets/MenuManager-477f9d33.js b/apps/jingrow/frontend/dist/assets/MenuManager-acab2587.js similarity index 96% rename from apps/jingrow/frontend/dist/assets/MenuManager-477f9d33.js rename to apps/jingrow/frontend/dist/assets/MenuManager-acab2587.js index a517e12..0c47f0c 100644 --- a/apps/jingrow/frontend/dist/assets/MenuManager-477f9d33.js +++ b/apps/jingrow/frontend/dist/assets/MenuManager-acab2587.js @@ -1 +1 @@ -import{u as ue}from"./menu-ce924ee4.js";import{d as ne,a as re,c as w,X as oe,t as a,A as R,r as k,e as se,f as y,g as f,j as l,p as g,h as o,w as p,n as D,I as P,l as T,ac as pe,q as de,N as m,m as M,Z as B,D as x,s as E,y as S,ad as ie,ae as ve,af as ce}from"./index-b37e64ca.js";import{p as _}from"./slug-217ba005.js";import ye from"./IconPicker-5c7938fe.js";import{_ as fe}from"./_plugin-vue_export-helper-c27b6911.js";import"./iconify-b5ab1212.js";import"./index-73986d31.js";const me={class:"page-menu-manager"},ge={class:"page-header"},ke={class:"header-left"},be={class:"page-description"},he={class:"header-right"},we={class:"page-content"},Ne=ne({__name:"MenuManager",setup(Ie){const i=ue(),U=re();function V(e){const t={};e.forEach(r=>t[r.id]={...r,children:[]});const u=[];e.forEach(r=>{const d=r.parentId;d&&t[d]?t[d].children.push(t[r.id]):u.push(t[r.id])});const s=r=>{r.forEach(d=>{d.children&&d.children.length?s(d.children):delete d.children})};return s(u),u}const A=w(()=>{var u;const t=((u=U.user)==null?void 0:u.user_type)==="System User";return i.items.filter(s=>{if(s.hidden)return!1;if(!t){if(s.type==="pagetype"||s.type==="workspace")return!1;const r=["tools","dev-group","menuManager","settings"];if(!s.parentId&&!r.includes(s.id)||s.parentId==="dev-group"&&!["app-marketplace","node-marketplace","agent-marketplace","tool-marketplace"].includes(s.id))return!1}return!0})}),z=w(()=>c.value?h.value:A.value),L=w(()=>V(z.value)),C=oe(),K=[{title:a("Display Name"),key:"label"},{title:a("Type"),key:"type",render:e=>({pagetype:a("PageType"),route:a("Route"),url:a("URL"),workspace:a("Workspace"),group:a("Group")})[e.type]||e.type},{title:a("Parent Menu"),key:"parentId",render:e=>{if(!e.parentId)return a("None");const t=i.items.find(u=>u.id===e.parentId);return t?t.label:a("None")}},{title:a("PageType"),key:"pagetype"},{title:a("Workspace"),key:"workspaceName"},{title:a("Route Name"),key:"routeName"},{title:a("URL Path"),key:"url"},{title:a("Icon"),key:"icon"},{title:a("Order"),key:"order"},{title:a("Hidden"),key:"hidden",render:e=>e.hidden?a("Yes"):a("No")},{title:a("Actions"),key:"actions",render:e=>R(P,{},{default:()=>[R(D,{size:"small",onClick:()=>H(e)},{default:()=>a("Edit")}),R(D,{size:"small",type:"error",onClick:()=>J(e)},{default:()=>a("Delete")})]})}],b=k(!1),N=k(null),n=k({id:"",key:"",label:"",icon:"MenuOutlined",type:"pagetype",pagetype:"",routeName:"",url:"",order:0,hidden:!1}),O=k(null),W={label:[{required:!0,message:a("Please enter display name")}],type:[{required:!0,message:a("Please select menu type")}]},q=w(()=>{var s;const t=((s=U.user)==null?void 0:s.user_type)==="System User",u=[{label:a("PageType"),value:"pagetype"},{label:a("Route"),value:"route"},{label:a("URL"),value:"url"},{label:a("Workspace"),value:"workspace"},{label:a("Group"),value:"group"}];return t?u:u.filter(r=>r.value!=="pagetype"&&r.value!=="workspace")}),j=w(()=>{const e=A.value.map(t=>({label:t.label,value:t.id}));return[{label:a("None"),value:null}].concat(e)}),F=w(()=>n.value.type==="pagetype"&&n.value.pagetype?`/app/${_(n.value.pagetype)}`:"");function G(){var u;N.value=null;const t=((u=U.user)==null?void 0:u.user_type)==="System User";n.value={id:"",key:"",label:"",icon:"",type:t?"pagetype":"route",pagetype:"",routeName:"",url:"",order:0,hidden:!1,parentId:null},b.value=!0}function H(e){N.value=e,n.value={...e},b.value=!0}function X(){n.value.pagetype="",n.value.routeName="",n.value.url="",n.value.workspaceName=""}function Y(){if(n.value.type==="pagetype"&&n.value.pagetype){const e=_(n.value.pagetype);n.value.url=`/app/${e}`}}function Z(){var s,r;const e={...n.value};if(!(((s=U.user)==null?void 0:s.user_type)==="System User")&&(e.type==="pagetype"||e.type==="workspace")){C.error({title:a("Permission Denied"),content:a("Non-System User cannot create or edit pagetype and workspace menu items"),positiveText:a("OK")});return}e.type==="pagetype"&&e.pagetype?(e.key=_(e.pagetype),e.url=`/app/${e.key}`):e.type==="workspace"&&e.workspaceName?(e.key=_(e.workspaceName),e.url=`/workspace/${e.key}`):e.type==="route"&&e.routeName?e.key=e.routeName:e.type==="url"&&e.url?e.key=e.url:e.type==="group"&&(e.key=e.key||`group_${Date.now()}`),(r=O.value)==null||r.validate(d=>{d||(N.value?i.updateMenu(N.value.id,e):(e.id="",i.addMenu(e)),b.value=!1)})}function J(e){C.warning({title:a("Confirm Delete"),content:`${a("Are you sure you want to delete menu")}"${e.label}"?`,positiveText:a("Delete"),negativeText:a("Cancel"),onPositiveClick:()=>i.removeMenu(e.id)})}function Q(){C.warning({title:a("Reset to Default"),content:a("Are you sure to reset menus to default? This will overwrite current settings."),positiveText:a("Confirm"),negativeText:a("Cancel"),onPositiveClick:()=>i.resetDefault()})}const c=k(null),v=k(-1),h=k([]);function ee(e,t){var s;const u=i.items.findIndex(r=>r.id===e.id);return{draggable:!0,class:{"draggable-row":!0,"drag-over":v.value===u,dragging:((s=c.value)==null?void 0:s.id)===e.id},onDragstart:r=>{c.value=e,h.value=[...i.items],r.dataTransfer.effectAllowed="move"},onDragover:r=>{r.preventDefault(),c.value&&v.value!==u&&(v.value=u,ae())},onDragleave:()=>{setTimeout(()=>{c.value||(v.value=-1,h.value=[...i.items])},50)},onDrop:r=>{r.preventDefault(),c.value&&v.value!==-1&&te(),$()},onDragend:$}}function ae(){if(!c.value||v.value===-1)return;const e=[...i.items],t=e.findIndex(s=>s.id===c.value.id);if(t===-1||t===v.value)return;e.splice(t,1);const u=v.value>t?v.value-1:v.value;e.splice(u,0,c.value),h.value=e}function te(){if(!c.value||v.value===-1)return;const e=[...h.value],t=e.filter(r=>!r.parentId),u=e.filter(r=>r.parentId);t.forEach((r,d)=>{r.order=d+1});const s=u.reduce((r,d)=>{const I=d.parentId;return r[I]||(r[I]=[]),r[I].push(d),r},{});Object.values(s).forEach(r=>{r.forEach((d,I)=>{d.order=I+1})}),i.items=e,i.persist()}function $(){c.value=null,v.value=-1,h.value=[...i.items]}function le(e){console.log("Selected rows:",e)}return(e,t)=>(T(),se("div",me,[y("div",ge,[y("div",ke,[y("h2",null,f(l(a)("Menu Management")),1),y("p",be,f(l(a)("Manage navigation menu items")),1)]),y("div",he,[y("button",{class:"reset-btn",onClick:Q},[t[12]||(t[12]=y("i",{class:"fa fa-undo"},null,-1)),g(" "+f(l(a)("Reset to Default")),1)]),y("button",{class:"create-btn",onClick:G},[t[13]||(t[13]=y("i",{class:"fa fa-plus"},null,-1)),g(" "+f(l(a)("Add Menu")),1)])])]),y("div",we,[o(l(P),{vertical:"",size:16},{default:p(()=>[o(l(pe),{columns:K,data:L.value,bordered:!1,"row-key":u=>u.id,"row-props":(u,s)=>ee(u,s),"onUpdate:checkedRowKeys":le},null,8,["data","row-key","row-props"])]),_:1})]),o(l(ce),{show:b.value,"onUpdate:show":t[11]||(t[11]=u=>b.value=u),preset:"dialog",title:N.value?l(a)("Edit Menu"):l(a)("Add Menu")},{action:p(()=>[o(l(P),null,{default:p(()=>[o(l(D),{onClick:t[10]||(t[10]=u=>b.value=!1)},{default:p(()=>[g(f(l(a)("Cancel")),1)]),_:1}),o(l(D),{type:"primary",onClick:Z},{default:p(()=>[g(f(l(a)("Save")),1)]),_:1})]),_:1})]),default:p(()=>[o(l(de),{model:n.value,rules:W,"label-width":"100",ref_key:"formRef",ref:O},{default:p(()=>[o(l(m),{label:l(a)("Display Name")},{default:p(()=>[o(l(M),{value:n.value.label,"onUpdate:value":t[0]||(t[0]=u=>n.value.label=u)},null,8,["value"])]),_:1},8,["label"]),o(l(m),{label:l(a)("Menu Type")},{default:p(()=>[o(l(B),{value:n.value.type,"onUpdate:value":[t[1]||(t[1]=u=>n.value.type=u),X],options:q.value,placeholder:l(a)("Select Menu Type")},null,8,["value","options","placeholder"])]),_:1},8,["label"]),o(l(m),{label:l(a)("Parent Menu"),path:"parentId"},{default:p(()=>[o(l(B),{value:n.value.parentId,"onUpdate:value":t[2]||(t[2]=u=>n.value.parentId=u),options:j.value,placeholder:l(a)("No parent (top-level)"),clearable:""},null,8,["value","options","placeholder"])]),_:1},8,["label"]),n.value.type==="pagetype"?(T(),x(l(m),{key:0,label:l(a)("PageType Name")},{feedback:p(()=>[o(l(E),{depth:"3",style:{"font-size":"12px"}},{default:p(()=>[g(f(l(a)("Enter PageType name, system will auto-generate friendly URL"))+":"+f(F.value),1)]),_:1})]),default:p(()=>[o(l(M),{value:n.value.pagetype,"onUpdate:value":t[3]||(t[3]=u=>n.value.pagetype=u),placeholder:l(a)("Enter PageType name, e.g.: Knowledge Base"),onInput:Y},null,8,["value","placeholder"])]),_:1},8,["label"])):S("",!0),n.value.type==="route"?(T(),x(l(m),{key:1,label:l(a)("Route Name")},{default:p(()=>[o(l(M),{value:n.value.routeName,"onUpdate:value":t[4]||(t[4]=u=>n.value.routeName=u),placeholder:l(a)("Enter route name, e.g.: Dashboard")},null,8,["value","placeholder"])]),_:1},8,["label"])):S("",!0),n.value.type==="url"?(T(),x(l(m),{key:2,label:l(a)("URL Path")},{feedback:p(()=>[o(l(E),{depth:"3",style:{"font-size":"12px"}},{default:p(()=>[g(f(l(a)("Internal path: /app/knowledge-base"))+" ",1),t[14]||(t[14]=y("br",null,null,-1)),g(" "+f(l(a)("External link: starts with http:// or https://")),1)]),_:1})]),default:p(()=>[o(l(M),{value:n.value.url,"onUpdate:value":t[5]||(t[5]=u=>n.value.url=u),placeholder:l(a)("Enter complete URL path")},null,8,["value","placeholder"])]),_:1},8,["label"])):S("",!0),n.value.type==="workspace"?(T(),x(l(m),{key:3,label:l(a)("Workspace Name")},{feedback:p(()=>[o(l(E),{depth:"3",style:{"font-size":"12px"}},{default:p(()=>[g(" 打开路径:/workspace/"+f(l(_)(n.value.workspaceName||"")),1)]),_:1})]),default:p(()=>[o(l(M),{value:n.value.workspaceName,"onUpdate:value":t[6]||(t[6]=u=>n.value.workspaceName=u),placeholder:l(a)("e.g. Build or custom workspace name")},null,8,["value","placeholder"])]),_:1},8,["label"])):S("",!0),o(l(m),{label:l(a)("Icon")},{default:p(()=>[o(ye,{modelValue:n.value.icon,"onUpdate:modelValue":t[7]||(t[7]=u=>n.value.icon=u)},null,8,["modelValue"])]),_:1},8,["label"]),o(l(m),{label:l(a)("Order")},{default:p(()=>[o(l(ie),{value:n.value.order,"onUpdate:value":t[8]||(t[8]=u=>n.value.order=u),min:0},null,8,["value"])]),_:1},8,["label"]),o(l(m),{label:l(a)("Hidden")},{default:p(()=>[o(l(ve),{value:n.value.hidden,"onUpdate:value":t[9]||(t[9]=u=>n.value.hidden=u)},null,8,["value"])]),_:1},8,["label"])]),_:1},8,["model"])]),_:1},8,["show","title"])]))}});const Ce=fe(Ne,[["__scopeId","data-v-d5cdce81"]]);export{Ce as default}; +import{u as ue}from"./menu-322c1713.js";import{d as ne,a as re,c as w,X as oe,t as a,A as R,r as k,e as se,f as y,g as f,j as l,p as g,h as o,w as p,n as D,I as P,l as T,ac as pe,q as de,N as m,m as M,Z as B,D as x,s as E,y as S,ad as ie,ae as ve,af as ce}from"./index-7b482730.js";import{p as _}from"./slug-c378c25f.js";import ye from"./IconPicker-2d07cad1.js";import{_ as fe}from"./_plugin-vue_export-helper-c27b6911.js";import"./iconify-30ae5ba5.js";import"./index-2fe8616a.js";const me={class:"page-menu-manager"},ge={class:"page-header"},ke={class:"header-left"},be={class:"page-description"},he={class:"header-right"},we={class:"page-content"},Ne=ne({__name:"MenuManager",setup(Ie){const i=ue(),U=re();function V(e){const t={};e.forEach(r=>t[r.id]={...r,children:[]});const u=[];e.forEach(r=>{const d=r.parentId;d&&t[d]?t[d].children.push(t[r.id]):u.push(t[r.id])});const s=r=>{r.forEach(d=>{d.children&&d.children.length?s(d.children):delete d.children})};return s(u),u}const A=w(()=>{var u;const t=((u=U.user)==null?void 0:u.user_type)==="System User";return i.items.filter(s=>{if(s.hidden)return!1;if(!t){if(s.type==="pagetype"||s.type==="workspace")return!1;const r=["tools","dev-group","menuManager","settings"];if(!s.parentId&&!r.includes(s.id)||s.parentId==="dev-group"&&!["app-marketplace","node-marketplace","agent-marketplace","tool-marketplace"].includes(s.id))return!1}return!0})}),z=w(()=>c.value?h.value:A.value),L=w(()=>V(z.value)),C=oe(),K=[{title:a("Display Name"),key:"label"},{title:a("Type"),key:"type",render:e=>({pagetype:a("PageType"),route:a("Route"),url:a("URL"),workspace:a("Workspace"),group:a("Group")})[e.type]||e.type},{title:a("Parent Menu"),key:"parentId",render:e=>{if(!e.parentId)return a("None");const t=i.items.find(u=>u.id===e.parentId);return t?t.label:a("None")}},{title:a("PageType"),key:"pagetype"},{title:a("Workspace"),key:"workspaceName"},{title:a("Route Name"),key:"routeName"},{title:a("URL Path"),key:"url"},{title:a("Icon"),key:"icon"},{title:a("Order"),key:"order"},{title:a("Hidden"),key:"hidden",render:e=>e.hidden?a("Yes"):a("No")},{title:a("Actions"),key:"actions",render:e=>R(P,{},{default:()=>[R(D,{size:"small",onClick:()=>H(e)},{default:()=>a("Edit")}),R(D,{size:"small",type:"error",onClick:()=>J(e)},{default:()=>a("Delete")})]})}],b=k(!1),N=k(null),n=k({id:"",key:"",label:"",icon:"MenuOutlined",type:"pagetype",pagetype:"",routeName:"",url:"",order:0,hidden:!1}),O=k(null),W={label:[{required:!0,message:a("Please enter display name")}],type:[{required:!0,message:a("Please select menu type")}]},q=w(()=>{var s;const t=((s=U.user)==null?void 0:s.user_type)==="System User",u=[{label:a("PageType"),value:"pagetype"},{label:a("Route"),value:"route"},{label:a("URL"),value:"url"},{label:a("Workspace"),value:"workspace"},{label:a("Group"),value:"group"}];return t?u:u.filter(r=>r.value!=="pagetype"&&r.value!=="workspace")}),j=w(()=>{const e=A.value.map(t=>({label:t.label,value:t.id}));return[{label:a("None"),value:null}].concat(e)}),F=w(()=>n.value.type==="pagetype"&&n.value.pagetype?`/app/${_(n.value.pagetype)}`:"");function G(){var u;N.value=null;const t=((u=U.user)==null?void 0:u.user_type)==="System User";n.value={id:"",key:"",label:"",icon:"",type:t?"pagetype":"route",pagetype:"",routeName:"",url:"",order:0,hidden:!1,parentId:null},b.value=!0}function H(e){N.value=e,n.value={...e},b.value=!0}function X(){n.value.pagetype="",n.value.routeName="",n.value.url="",n.value.workspaceName=""}function Y(){if(n.value.type==="pagetype"&&n.value.pagetype){const e=_(n.value.pagetype);n.value.url=`/app/${e}`}}function Z(){var s,r;const e={...n.value};if(!(((s=U.user)==null?void 0:s.user_type)==="System User")&&(e.type==="pagetype"||e.type==="workspace")){C.error({title:a("Permission Denied"),content:a("Non-System User cannot create or edit pagetype and workspace menu items"),positiveText:a("OK")});return}e.type==="pagetype"&&e.pagetype?(e.key=_(e.pagetype),e.url=`/app/${e.key}`):e.type==="workspace"&&e.workspaceName?(e.key=_(e.workspaceName),e.url=`/workspace/${e.key}`):e.type==="route"&&e.routeName?e.key=e.routeName:e.type==="url"&&e.url?e.key=e.url:e.type==="group"&&(e.key=e.key||`group_${Date.now()}`),(r=O.value)==null||r.validate(d=>{d||(N.value?i.updateMenu(N.value.id,e):(e.id="",i.addMenu(e)),b.value=!1)})}function J(e){C.warning({title:a("Confirm Delete"),content:`${a("Are you sure you want to delete menu")}"${e.label}"?`,positiveText:a("Delete"),negativeText:a("Cancel"),onPositiveClick:()=>i.removeMenu(e.id)})}function Q(){C.warning({title:a("Reset to Default"),content:a("Are you sure to reset menus to default? This will overwrite current settings."),positiveText:a("Confirm"),negativeText:a("Cancel"),onPositiveClick:()=>i.resetDefault()})}const c=k(null),v=k(-1),h=k([]);function ee(e,t){var s;const u=i.items.findIndex(r=>r.id===e.id);return{draggable:!0,class:{"draggable-row":!0,"drag-over":v.value===u,dragging:((s=c.value)==null?void 0:s.id)===e.id},onDragstart:r=>{c.value=e,h.value=[...i.items],r.dataTransfer.effectAllowed="move"},onDragover:r=>{r.preventDefault(),c.value&&v.value!==u&&(v.value=u,ae())},onDragleave:()=>{setTimeout(()=>{c.value||(v.value=-1,h.value=[...i.items])},50)},onDrop:r=>{r.preventDefault(),c.value&&v.value!==-1&&te(),$()},onDragend:$}}function ae(){if(!c.value||v.value===-1)return;const e=[...i.items],t=e.findIndex(s=>s.id===c.value.id);if(t===-1||t===v.value)return;e.splice(t,1);const u=v.value>t?v.value-1:v.value;e.splice(u,0,c.value),h.value=e}function te(){if(!c.value||v.value===-1)return;const e=[...h.value],t=e.filter(r=>!r.parentId),u=e.filter(r=>r.parentId);t.forEach((r,d)=>{r.order=d+1});const s=u.reduce((r,d)=>{const I=d.parentId;return r[I]||(r[I]=[]),r[I].push(d),r},{});Object.values(s).forEach(r=>{r.forEach((d,I)=>{d.order=I+1})}),i.items=e,i.persist()}function $(){c.value=null,v.value=-1,h.value=[...i.items]}function le(e){console.log("Selected rows:",e)}return(e,t)=>(T(),se("div",me,[y("div",ge,[y("div",ke,[y("h2",null,f(l(a)("Menu Management")),1),y("p",be,f(l(a)("Manage navigation menu items")),1)]),y("div",he,[y("button",{class:"reset-btn",onClick:Q},[t[12]||(t[12]=y("i",{class:"fa fa-undo"},null,-1)),g(" "+f(l(a)("Reset to Default")),1)]),y("button",{class:"create-btn",onClick:G},[t[13]||(t[13]=y("i",{class:"fa fa-plus"},null,-1)),g(" "+f(l(a)("Add Menu")),1)])])]),y("div",we,[o(l(P),{vertical:"",size:16},{default:p(()=>[o(l(pe),{columns:K,data:L.value,bordered:!1,"row-key":u=>u.id,"row-props":(u,s)=>ee(u,s),"onUpdate:checkedRowKeys":le},null,8,["data","row-key","row-props"])]),_:1})]),o(l(ce),{show:b.value,"onUpdate:show":t[11]||(t[11]=u=>b.value=u),preset:"dialog",title:N.value?l(a)("Edit Menu"):l(a)("Add Menu")},{action:p(()=>[o(l(P),null,{default:p(()=>[o(l(D),{onClick:t[10]||(t[10]=u=>b.value=!1)},{default:p(()=>[g(f(l(a)("Cancel")),1)]),_:1}),o(l(D),{type:"primary",onClick:Z},{default:p(()=>[g(f(l(a)("Save")),1)]),_:1})]),_:1})]),default:p(()=>[o(l(de),{model:n.value,rules:W,"label-width":"100",ref_key:"formRef",ref:O},{default:p(()=>[o(l(m),{label:l(a)("Display Name")},{default:p(()=>[o(l(M),{value:n.value.label,"onUpdate:value":t[0]||(t[0]=u=>n.value.label=u)},null,8,["value"])]),_:1},8,["label"]),o(l(m),{label:l(a)("Menu Type")},{default:p(()=>[o(l(B),{value:n.value.type,"onUpdate:value":[t[1]||(t[1]=u=>n.value.type=u),X],options:q.value,placeholder:l(a)("Select Menu Type")},null,8,["value","options","placeholder"])]),_:1},8,["label"]),o(l(m),{label:l(a)("Parent Menu"),path:"parentId"},{default:p(()=>[o(l(B),{value:n.value.parentId,"onUpdate:value":t[2]||(t[2]=u=>n.value.parentId=u),options:j.value,placeholder:l(a)("No parent (top-level)"),clearable:""},null,8,["value","options","placeholder"])]),_:1},8,["label"]),n.value.type==="pagetype"?(T(),x(l(m),{key:0,label:l(a)("PageType Name")},{feedback:p(()=>[o(l(E),{depth:"3",style:{"font-size":"12px"}},{default:p(()=>[g(f(l(a)("Enter PageType name, system will auto-generate friendly URL"))+":"+f(F.value),1)]),_:1})]),default:p(()=>[o(l(M),{value:n.value.pagetype,"onUpdate:value":t[3]||(t[3]=u=>n.value.pagetype=u),placeholder:l(a)("Enter PageType name, e.g.: Knowledge Base"),onInput:Y},null,8,["value","placeholder"])]),_:1},8,["label"])):S("",!0),n.value.type==="route"?(T(),x(l(m),{key:1,label:l(a)("Route Name")},{default:p(()=>[o(l(M),{value:n.value.routeName,"onUpdate:value":t[4]||(t[4]=u=>n.value.routeName=u),placeholder:l(a)("Enter route name, e.g.: Dashboard")},null,8,["value","placeholder"])]),_:1},8,["label"])):S("",!0),n.value.type==="url"?(T(),x(l(m),{key:2,label:l(a)("URL Path")},{feedback:p(()=>[o(l(E),{depth:"3",style:{"font-size":"12px"}},{default:p(()=>[g(f(l(a)("Internal path: /app/knowledge-base"))+" ",1),t[14]||(t[14]=y("br",null,null,-1)),g(" "+f(l(a)("External link: starts with http:// or https://")),1)]),_:1})]),default:p(()=>[o(l(M),{value:n.value.url,"onUpdate:value":t[5]||(t[5]=u=>n.value.url=u),placeholder:l(a)("Enter complete URL path")},null,8,["value","placeholder"])]),_:1},8,["label"])):S("",!0),n.value.type==="workspace"?(T(),x(l(m),{key:3,label:l(a)("Workspace Name")},{feedback:p(()=>[o(l(E),{depth:"3",style:{"font-size":"12px"}},{default:p(()=>[g(" 打开路径:/workspace/"+f(l(_)(n.value.workspaceName||"")),1)]),_:1})]),default:p(()=>[o(l(M),{value:n.value.workspaceName,"onUpdate:value":t[6]||(t[6]=u=>n.value.workspaceName=u),placeholder:l(a)("e.g. Build or custom workspace name")},null,8,["value","placeholder"])]),_:1},8,["label"])):S("",!0),o(l(m),{label:l(a)("Icon")},{default:p(()=>[o(ye,{modelValue:n.value.icon,"onUpdate:modelValue":t[7]||(t[7]=u=>n.value.icon=u)},null,8,["modelValue"])]),_:1},8,["label"]),o(l(m),{label:l(a)("Order")},{default:p(()=>[o(l(ie),{value:n.value.order,"onUpdate:value":t[8]||(t[8]=u=>n.value.order=u),min:0},null,8,["value"])]),_:1},8,["label"]),o(l(m),{label:l(a)("Hidden")},{default:p(()=>[o(l(ve),{value:n.value.hidden,"onUpdate:value":t[9]||(t[9]=u=>n.value.hidden=u)},null,8,["value"])]),_:1},8,["label"])]),_:1},8,["model"])]),_:1},8,["show","title"])]))}});const Ce=fe(Ne,[["__scopeId","data-v-d5cdce81"]]);export{Ce as default}; diff --git a/apps/jingrow/frontend/dist/assets/MultiCheck-06484c13.js b/apps/jingrow/frontend/dist/assets/MultiCheck-3ad7391b.js similarity index 90% rename from apps/jingrow/frontend/dist/assets/MultiCheck-06484c13.js rename to apps/jingrow/frontend/dist/assets/MultiCheck-3ad7391b.js index 73572d1..c628bd8 100644 --- a/apps/jingrow/frontend/dist/assets/MultiCheck-06484c13.js +++ b/apps/jingrow/frontend/dist/assets/MultiCheck-3ad7391b.js @@ -1 +1 @@ -import{d as y,c as h,e as r,f as o,p as n,g as i,y as k,F as b,C as v,Y as g,l,D as C,w as B,j as O,a3 as S}from"./index-b37e64ca.js";import{_ as A}from"./_plugin-vue_export-helper-c27b6911.js";const M={class:"field-label"},N={key:0,class:"required"},j={class:"multicheck-container"},w=y({__name:"MultiCheck",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(f){const u=f,_=h(()=>u.df.label_layout||"vertical");function p(e,t){const a=e[t];return Array.isArray(a)?a:[]}function m(e,t,a,c){Array.isArray(e[t])||(e[t]=[]);const s=e[t];if(c)s.includes(a)||s.push(a);else{const d=s.indexOf(a);d>-1&&s.splice(d,1)}}return(e,t)=>(l(),r("div",{class:g(["field-wrapper",`layout-${_.value}`])},[o("label",M,[n(i(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),r("span",N,"*")):k("",!0)]),o("div",j,[(l(!0),r(b,null,v(e.ctx.getSelectOptions?e.ctx.getSelectOptions(e.df):[],a=>(l(),C(O(S),{key:a.value,checked:p(e.record,e.df.fieldname).includes(a.value),"onUpdate:checked":c=>m(e.record,e.df.fieldname,a.value,c),disabled:!e.canEdit},{default:B(()=>[n(i(a.label),1)]),_:2},1032,["checked","onUpdate:checked","disabled"]))),128))])],2))}});const E=A(w,[["__scopeId","data-v-4f5f405e"]]),D=Object.freeze(Object.defineProperty({__proto__:null,default:E},Symbol.toStringTag,{value:"Module"}));export{D as _}; +import{d as y,c as h,e as r,f as o,p as n,g as i,y as k,F as b,C as v,Y as g,l,D as C,w as B,j as O,a3 as S}from"./index-7b482730.js";import{_ as A}from"./_plugin-vue_export-helper-c27b6911.js";const M={class:"field-label"},N={key:0,class:"required"},j={class:"multicheck-container"},w=y({__name:"MultiCheck",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(f){const u=f,_=h(()=>u.df.label_layout||"vertical");function p(e,t){const a=e[t];return Array.isArray(a)?a:[]}function m(e,t,a,c){Array.isArray(e[t])||(e[t]=[]);const s=e[t];if(c)s.includes(a)||s.push(a);else{const d=s.indexOf(a);d>-1&&s.splice(d,1)}}return(e,t)=>(l(),r("div",{class:g(["field-wrapper",`layout-${_.value}`])},[o("label",M,[n(i(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),r("span",N,"*")):k("",!0)]),o("div",j,[(l(!0),r(b,null,v(e.ctx.getSelectOptions?e.ctx.getSelectOptions(e.df):[],a=>(l(),C(O(S),{key:a.value,checked:p(e.record,e.df.fieldname).includes(a.value),"onUpdate:checked":c=>m(e.record,e.df.fieldname,a.value,c),disabled:!e.canEdit},{default:B(()=>[n(i(a.label),1)]),_:2},1032,["checked","onUpdate:checked","disabled"]))),128))])],2))}});const E=A(w,[["__scopeId","data-v-4f5f405e"]]),D=Object.freeze(Object.defineProperty({__proto__:null,default:E},Symbol.toStringTag,{value:"Module"}));export{D as _}; diff --git a/apps/jingrow/frontend/dist/assets/MultiSelect-a8b10d4a.js b/apps/jingrow/frontend/dist/assets/MultiSelect-17bab1f5.js similarity index 93% rename from apps/jingrow/frontend/dist/assets/MultiSelect-a8b10d4a.js rename to apps/jingrow/frontend/dist/assets/MultiSelect-17bab1f5.js index f5faae9..d596898 100644 --- a/apps/jingrow/frontend/dist/assets/MultiSelect-a8b10d4a.js +++ b/apps/jingrow/frontend/dist/assets/MultiSelect-17bab1f5.js @@ -1 +1 @@ -import{d as r,c as i,e as a,f as p,p as c,g as f,y as u,h as _,j as m,Y as b,l as t,Z as v}from"./index-b37e64ca.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const S={class:"field-label"},g={key:0,class:"required"},N=r({__name:"MultiSelect",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(o){const s=o,d=i(()=>s.df.label_layout||"vertical");return(e,l)=>(t(),a("div",{class:b(["field-wrapper",`layout-${d.value}`])},[p("label",S,[c(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(t(),a("span",g,"*")):u("",!0)]),_(m(v),{value:e.record[e.df.fieldname],"onUpdate:value":l[0]||(l[0]=n=>e.record[e.df.fieldname]=n),options:e.ctx.getSelectOptions?e.ctx.getSelectOptions(e.df):[],multiple:"",placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","options","placeholder","disabled"])],2))}});const h=y(N,[["__scopeId","data-v-89f34463"]]),O=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{O as _}; +import{d as r,c as i,e as a,f as p,p as c,g as f,y as u,h as _,j as m,Y as b,l as t,Z as v}from"./index-7b482730.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const S={class:"field-label"},g={key:0,class:"required"},N=r({__name:"MultiSelect",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(o){const s=o,d=i(()=>s.df.label_layout||"vertical");return(e,l)=>(t(),a("div",{class:b(["field-wrapper",`layout-${d.value}`])},[p("label",S,[c(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(t(),a("span",g,"*")):u("",!0)]),_(m(v),{value:e.record[e.df.fieldname],"onUpdate:value":l[0]||(l[0]=n=>e.record[e.df.fieldname]=n),options:e.ctx.getSelectOptions?e.ctx.getSelectOptions(e.df):[],multiple:"",placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","options","placeholder","disabled"])],2))}});const h=y(N,[["__scopeId","data-v-89f34463"]]),O=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{O as _}; diff --git a/apps/jingrow/frontend/dist/assets/MultiSelectList-7399647b.js b/apps/jingrow/frontend/dist/assets/MultiSelectList-cb3c53c2.js similarity index 93% rename from apps/jingrow/frontend/dist/assets/MultiSelectList-7399647b.js rename to apps/jingrow/frontend/dist/assets/MultiSelectList-cb3c53c2.js index c8e18e6..2e2f2f0 100644 --- a/apps/jingrow/frontend/dist/assets/MultiSelectList-7399647b.js +++ b/apps/jingrow/frontend/dist/assets/MultiSelectList-cb3c53c2.js @@ -1 +1 @@ -import{d as r,c as i,e as t,f as p,p as c,g as f,y as u,h as _,j as m,Y as b,l as a,Z as v}from"./index-b37e64ca.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const S={class:"field-label"},g={key:0,class:"required"},N=r({__name:"MultiSelectList",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(o){const s=o,d=i(()=>s.df.label_layout||"vertical");return(e,l)=>(a(),t("div",{class:b(["field-wrapper",`layout-${d.value}`])},[p("label",S,[c(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(a(),t("span",g,"*")):u("",!0)]),_(m(v),{value:e.record[e.df.fieldname],"onUpdate:value":l[0]||(l[0]=n=>e.record[e.df.fieldname]=n),options:e.ctx.getSelectOptions?e.ctx.getSelectOptions(e.df):[],multiple:"",placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","options","placeholder","disabled"])],2))}});const h=y(N,[["__scopeId","data-v-d603d379"]]),M=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{M as _}; +import{d as r,c as i,e as t,f as p,p as c,g as f,y as u,h as _,j as m,Y as b,l as a,Z as v}from"./index-7b482730.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const S={class:"field-label"},g={key:0,class:"required"},N=r({__name:"MultiSelectList",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(o){const s=o,d=i(()=>s.df.label_layout||"vertical");return(e,l)=>(a(),t("div",{class:b(["field-wrapper",`layout-${d.value}`])},[p("label",S,[c(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(a(),t("span",g,"*")):u("",!0)]),_(m(v),{value:e.record[e.df.fieldname],"onUpdate:value":l[0]||(l[0]=n=>e.record[e.df.fieldname]=n),options:e.ctx.getSelectOptions?e.ctx.getSelectOptions(e.df):[],multiple:"",placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","options","placeholder","disabled"])],2))}});const h=y(N,[["__scopeId","data-v-d603d379"]]),M=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{M as _}; diff --git a/apps/jingrow/frontend/dist/assets/MultiSelectPills-3dd80529.js b/apps/jingrow/frontend/dist/assets/MultiSelectPills-2c3638ce.js similarity index 93% rename from apps/jingrow/frontend/dist/assets/MultiSelectPills-3dd80529.js rename to apps/jingrow/frontend/dist/assets/MultiSelectPills-2c3638ce.js index b3c2647..fa4242c 100644 --- a/apps/jingrow/frontend/dist/assets/MultiSelectPills-3dd80529.js +++ b/apps/jingrow/frontend/dist/assets/MultiSelectPills-2c3638ce.js @@ -1 +1 @@ -import{d as r,c as i,e as a,f as p,p as c,g as f,y as u,h as _,j as m,Y as b,l as t,Z as v}from"./index-b37e64ca.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const S={class:"field-label"},g={key:0,class:"required"},N=r({__name:"MultiSelectPills",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(o){const s=o,d=i(()=>s.df.label_layout||"vertical");return(e,l)=>(t(),a("div",{class:b(["field-wrapper",`layout-${d.value}`])},[p("label",S,[c(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(t(),a("span",g,"*")):u("",!0)]),_(m(v),{value:e.record[e.df.fieldname],"onUpdate:value":l[0]||(l[0]=n=>e.record[e.df.fieldname]=n),options:e.ctx.getSelectOptions?e.ctx.getSelectOptions(e.df):[],multiple:"",placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","options","placeholder","disabled"])],2))}});const h=y(N,[["__scopeId","data-v-b4b95f53"]]),O=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{O as _}; +import{d as r,c as i,e as a,f as p,p as c,g as f,y as u,h as _,j as m,Y as b,l as t,Z as v}from"./index-7b482730.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const S={class:"field-label"},g={key:0,class:"required"},N=r({__name:"MultiSelectPills",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(o){const s=o,d=i(()=>s.df.label_layout||"vertical");return(e,l)=>(t(),a("div",{class:b(["field-wrapper",`layout-${d.value}`])},[p("label",S,[c(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(t(),a("span",g,"*")):u("",!0)]),_(m(v),{value:e.record[e.df.fieldname],"onUpdate:value":l[0]||(l[0]=n=>e.record[e.df.fieldname]=n),options:e.ctx.getSelectOptions?e.ctx.getSelectOptions(e.df):[],multiple:"",placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","options","placeholder","disabled"])],2))}});const h=y(N,[["__scopeId","data-v-b4b95f53"]]),O=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{O as _}; diff --git a/apps/jingrow/frontend/dist/assets/MyPublishedAgents-c408a4e1.js b/apps/jingrow/frontend/dist/assets/MyPublishedAgents-304f7bc5.js similarity index 97% rename from apps/jingrow/frontend/dist/assets/MyPublishedAgents-c408a4e1.js rename to apps/jingrow/frontend/dist/assets/MyPublishedAgents-304f7bc5.js index 02012f0..eb73eb7 100644 --- a/apps/jingrow/frontend/dist/assets/MyPublishedAgents-c408a4e1.js +++ b/apps/jingrow/frontend/dist/assets/MyPublishedAgents-304f7bc5.js @@ -1 +1 @@ -import{d as R,u as q,X as Q,r as _,c as $,o as X,M,e as c,f as o,g as d,j as t,h as l,w as i,i as Y,F as G,C as H,y as h,k as J,a0 as B,t as a,l as r,$ as C,m as W,p as z,n as D,Z as ee,D as te,a1 as se,Y as ae,_ as oe,as as ne,aA as le}from"./index-b37e64ca.js";import{I as y}from"./iconify-b5ab1212.js";import{_ as ie}from"./_plugin-vue_export-helper-c27b6911.js";const re={class:"my-published-agents"},ce={class:"page-header"},de={class:"header-content"},ue={class:"header-text"},pe={class:"content"},ge={class:"search-container"},ve={class:"search-bar"},_e={key:0,class:"agents-section"},he={class:"agents-header"},me={class:"sort-controls"},ye={class:"agents-grid"},fe=["onClick"],be={key:1,class:"agent-icon-placeholder"},ke={class:"agent-content"},Ce={class:"agent-header"},we={class:"agent-title-section"},Se=["onClick"],Ne={class:"agent-meta"},ze={key:0,class:"agent-team"},Pe={key:0,class:"agent-name"},Ae={key:0,class:"agent-description"},Me={class:"agent-actions"},De={class:"pagination-container"},xe={key:1,class:"loading"},Ie={key:2,class:"empty"},Te=R({__name:"MyPublishedAgents",setup($e){const f=q(),U=Q(),F=J(),w=_(""),b=_(!1),g=_([]),S=_(0),v=_(1),k=_(parseInt(localStorage.getItem("itemsPerPage")||"20")),N=_("creation desc"),L=$(()=>[{label:a("Latest"),value:"creation desc"},{label:a("Oldest"),value:"creation asc"},{label:a("Name A-Z"),value:"name asc"},{label:a("Name Z-A"),value:"name desc"},{label:a("Most Popular"),value:"modified desc"}]),V=$(()=>Math.max(1,Math.ceil(S.value/k.value)));async function u(){b.value=!0;try{const s=new URLSearchParams({page:v.value.toString(),page_size:k.value.toString(),search:w.value,sort_by:N.value}),e=(await B.get(`/jingrow/my-published-agents?${s}`)).data;e.items?(g.value=e.items,S.value=e.total||0):(g.value=e||[],S.value=g.value.length)}catch(s){console.error("Failed to load agents:",s),f.error(a("Failed to load agents")),g.value=[],S.value=0}finally{b.value=!1}}function j(s){k.value=s,v.value=1,localStorage.setItem("itemsPerPage",s.toString()),u()}function P(s){F.push({path:`/agent-marketplace/${s.name}`,query:{returnTo:"/my-published-agents"}})}function Z(s,n){return s?s.length<=n?s:s.substring(0,n)+"...":""}function E(s){return s?s.toLowerCase().replace(/\s+/g,"-"):""}async function K(s){const n=s.name;if(!n){f.error(a("Agent name does not exist"));return}const e=s.title||s.agent_name||n;U.warning({title:a("Confirm Delete"),content:a('Are you sure you want to delete agent "{0}"? This action cannot be undone.').replace("{0}",e),positiveText:a("Confirm Delete"),negativeText:a("Cancel"),onPositiveClick:async()=>{await O(n)}})}async function O(s){var n,e,m,x,I,T;try{const p=await B.post("/jingrow/delete-published-agent",{name:s},{withCredentials:!0});if(p.data&&p.data.success)f.success(p.data.message||a("Agent deleted successfully")),u();else{const A=((n=p.data)==null?void 0:n.message)||((e=p.data)==null?void 0:e.error)||a("Delete failed");f.error(A)}}catch(p){console.error("Delete agent error:",p);const A=((x=(m=p.response)==null?void 0:m.data)==null?void 0:x.detail)||((T=(I=p.response)==null?void 0:I.data)==null?void 0:T.message)||p.message||a("Delete failed");f.error(A)}}return X(()=>{u()}),M([w,N],()=>{v.value=1,u()},{deep:!0}),M([v],()=>{u()}),M(()=>localStorage.getItem("itemsPerPage"),s=>{s&&(k.value=parseInt(s),v.value=1,u())}),(s,n)=>(r(),c("div",re,[o("div",ce,[o("div",de,[o("div",ue,[o("h1",null,d(t(a)("My Published Agents")),1),o("p",null,d(t(a)("Manage your published agents in the marketplace")),1)])])]),o("div",pe,[o("div",ge,[o("div",ve,[l(t(W),{value:w.value,"onUpdate:value":n[0]||(n[0]=e=>w.value=e),placeholder:t(a)("Search agents..."),clearable:"",size:"large",onKeyup:Y(u,["enter"]),class:"search-input"},{prefix:i(()=>[l(t(C),null,{default:i(()=>[l(t(y),{icon:"tabler:search"})]),_:1})]),_:1},8,["value","placeholder"]),l(t(D),{type:"primary",size:"large",onClick:u,class:"search-button"},{icon:i(()=>[l(t(C),null,{default:i(()=>[l(t(y),{icon:"tabler:search"})]),_:1})]),default:i(()=>[z(" "+d(t(a)("Search")),1)]),_:1})])]),!b.value&&g.value.length>0?(r(),c("div",_e,[o("div",he,[n[3]||(n[3]=o("div",{class:"agents-title"},null,-1)),o("div",me,[l(t(ee),{value:N.value,"onUpdate:value":[n[1]||(n[1]=e=>N.value=e),u],options:L.value,placeholder:t(a)("Sort by"),style:{width:"150px"}},null,8,["value","options","placeholder"])])]),o("div",ye,[(r(!0),c(G,null,H(g.value,e=>(r(),c("div",{key:e.name,class:"agent-card"},[o("div",{class:"agent-icon",onClick:m=>P(e)},[e.icon?(r(),te(t(y),{key:0,icon:e.icon,width:64,height:64,style:se({color:e.color||"#6b7280"})},null,8,["icon","style"])):(r(),c("div",be,[l(t(C),{size:"64"},{default:i(()=>[l(t(y),{icon:"hugeicons:robotic"})]),_:1})]))],8,fe),o("div",ke,[o("div",Ce,[o("div",we,[o("h3",{onClick:m=>P(e),class:"clickable-title"},d(e.title||e.agent_name||e.name),9,Se),o("div",Ne,[e.team?(r(),c("div",ze,[l(t(C),null,{default:i(()=>[l(t(y),{icon:"tabler:users"})]),_:1}),o("span",null,d(e.team),1)])):h("",!0),e.status?(r(),c("span",{key:1,class:ae(["status-badge",E(e.status)])},d(t(a)(e.status)),3)):h("",!0)])]),e.agent_name?(r(),c("div",Pe,d(e.agent_name),1)):h("",!0)]),e.description?(r(),c("div",Ae,d(Z(e.description,80)),1)):h("",!0)]),o("div",Me,[l(t(D),{type:"default",onClick:m=>P(e)},{default:i(()=>[z(d(t(a)("View Details")),1)]),_:1},8,["onClick"]),l(t(D),{type:"error",onClick:m=>K(e)},{default:i(()=>[z(d(t(a)("Delete")),1)]),_:1},8,["onClick"])])]))),128))]),o("div",De,[l(t(oe),{page:v.value,"onUpdate:page":[n[2]||(n[2]=e=>v.value=e),u],"page-count":V.value,size:"large","show-size-picker":"","page-sizes":[20,50,100],"page-size":k.value,"onUpdate:pageSize":j},null,8,["page","page-count","page-size"])])])):h("",!0),b.value?(r(),c("div",xe,[l(t(ne),{size:"large"},{description:i(()=>[z(d(t(a)("Loading agents...")),1)]),_:1})])):h("",!0),!b.value&&g.value.length===0?(r(),c("div",Ie,[l(t(le),{description:t(a)("No agents found")},{icon:i(()=>[l(t(C),null,{default:i(()=>[l(t(y),{icon:"hugeicons:robotic"})]),_:1})]),_:1},8,["description"])])):h("",!0)])]))}});const Le=ie(Te,[["__scopeId","data-v-79414a75"]]);export{Le as default}; +import{d as R,u as q,X as Q,r as _,c as $,o as X,M,e as c,f as o,g as d,j as t,h as l,w as i,i as Y,F as G,C as H,y as h,k as J,a0 as B,t as a,l as r,$ as C,m as W,p as z,n as D,Z as ee,D as te,a1 as se,Y as ae,_ as oe,as as ne,aA as le}from"./index-7b482730.js";import{I as y}from"./iconify-30ae5ba5.js";import{_ as ie}from"./_plugin-vue_export-helper-c27b6911.js";const re={class:"my-published-agents"},ce={class:"page-header"},de={class:"header-content"},ue={class:"header-text"},pe={class:"content"},ge={class:"search-container"},ve={class:"search-bar"},_e={key:0,class:"agents-section"},he={class:"agents-header"},me={class:"sort-controls"},ye={class:"agents-grid"},fe=["onClick"],be={key:1,class:"agent-icon-placeholder"},ke={class:"agent-content"},Ce={class:"agent-header"},we={class:"agent-title-section"},Se=["onClick"],Ne={class:"agent-meta"},ze={key:0,class:"agent-team"},Pe={key:0,class:"agent-name"},Ae={key:0,class:"agent-description"},Me={class:"agent-actions"},De={class:"pagination-container"},xe={key:1,class:"loading"},Ie={key:2,class:"empty"},Te=R({__name:"MyPublishedAgents",setup($e){const f=q(),U=Q(),F=J(),w=_(""),b=_(!1),g=_([]),S=_(0),v=_(1),k=_(parseInt(localStorage.getItem("itemsPerPage")||"20")),N=_("creation desc"),L=$(()=>[{label:a("Latest"),value:"creation desc"},{label:a("Oldest"),value:"creation asc"},{label:a("Name A-Z"),value:"name asc"},{label:a("Name Z-A"),value:"name desc"},{label:a("Most Popular"),value:"modified desc"}]),V=$(()=>Math.max(1,Math.ceil(S.value/k.value)));async function u(){b.value=!0;try{const s=new URLSearchParams({page:v.value.toString(),page_size:k.value.toString(),search:w.value,sort_by:N.value}),e=(await B.get(`/jingrow/my-published-agents?${s}`)).data;e.items?(g.value=e.items,S.value=e.total||0):(g.value=e||[],S.value=g.value.length)}catch(s){console.error("Failed to load agents:",s),f.error(a("Failed to load agents")),g.value=[],S.value=0}finally{b.value=!1}}function j(s){k.value=s,v.value=1,localStorage.setItem("itemsPerPage",s.toString()),u()}function P(s){F.push({path:`/agent-marketplace/${s.name}`,query:{returnTo:"/my-published-agents"}})}function Z(s,n){return s?s.length<=n?s:s.substring(0,n)+"...":""}function E(s){return s?s.toLowerCase().replace(/\s+/g,"-"):""}async function K(s){const n=s.name;if(!n){f.error(a("Agent name does not exist"));return}const e=s.title||s.agent_name||n;U.warning({title:a("Confirm Delete"),content:a('Are you sure you want to delete agent "{0}"? This action cannot be undone.').replace("{0}",e),positiveText:a("Confirm Delete"),negativeText:a("Cancel"),onPositiveClick:async()=>{await O(n)}})}async function O(s){var n,e,m,x,I,T;try{const p=await B.post("/jingrow/delete-published-agent",{name:s},{withCredentials:!0});if(p.data&&p.data.success)f.success(p.data.message||a("Agent deleted successfully")),u();else{const A=((n=p.data)==null?void 0:n.message)||((e=p.data)==null?void 0:e.error)||a("Delete failed");f.error(A)}}catch(p){console.error("Delete agent error:",p);const A=((x=(m=p.response)==null?void 0:m.data)==null?void 0:x.detail)||((T=(I=p.response)==null?void 0:I.data)==null?void 0:T.message)||p.message||a("Delete failed");f.error(A)}}return X(()=>{u()}),M([w,N],()=>{v.value=1,u()},{deep:!0}),M([v],()=>{u()}),M(()=>localStorage.getItem("itemsPerPage"),s=>{s&&(k.value=parseInt(s),v.value=1,u())}),(s,n)=>(r(),c("div",re,[o("div",ce,[o("div",de,[o("div",ue,[o("h1",null,d(t(a)("My Published Agents")),1),o("p",null,d(t(a)("Manage your published agents in the marketplace")),1)])])]),o("div",pe,[o("div",ge,[o("div",ve,[l(t(W),{value:w.value,"onUpdate:value":n[0]||(n[0]=e=>w.value=e),placeholder:t(a)("Search agents..."),clearable:"",size:"large",onKeyup:Y(u,["enter"]),class:"search-input"},{prefix:i(()=>[l(t(C),null,{default:i(()=>[l(t(y),{icon:"tabler:search"})]),_:1})]),_:1},8,["value","placeholder"]),l(t(D),{type:"primary",size:"large",onClick:u,class:"search-button"},{icon:i(()=>[l(t(C),null,{default:i(()=>[l(t(y),{icon:"tabler:search"})]),_:1})]),default:i(()=>[z(" "+d(t(a)("Search")),1)]),_:1})])]),!b.value&&g.value.length>0?(r(),c("div",_e,[o("div",he,[n[3]||(n[3]=o("div",{class:"agents-title"},null,-1)),o("div",me,[l(t(ee),{value:N.value,"onUpdate:value":[n[1]||(n[1]=e=>N.value=e),u],options:L.value,placeholder:t(a)("Sort by"),style:{width:"150px"}},null,8,["value","options","placeholder"])])]),o("div",ye,[(r(!0),c(G,null,H(g.value,e=>(r(),c("div",{key:e.name,class:"agent-card"},[o("div",{class:"agent-icon",onClick:m=>P(e)},[e.icon?(r(),te(t(y),{key:0,icon:e.icon,width:64,height:64,style:se({color:e.color||"#6b7280"})},null,8,["icon","style"])):(r(),c("div",be,[l(t(C),{size:"64"},{default:i(()=>[l(t(y),{icon:"hugeicons:robotic"})]),_:1})]))],8,fe),o("div",ke,[o("div",Ce,[o("div",we,[o("h3",{onClick:m=>P(e),class:"clickable-title"},d(e.title||e.agent_name||e.name),9,Se),o("div",Ne,[e.team?(r(),c("div",ze,[l(t(C),null,{default:i(()=>[l(t(y),{icon:"tabler:users"})]),_:1}),o("span",null,d(e.team),1)])):h("",!0),e.status?(r(),c("span",{key:1,class:ae(["status-badge",E(e.status)])},d(t(a)(e.status)),3)):h("",!0)])]),e.agent_name?(r(),c("div",Pe,d(e.agent_name),1)):h("",!0)]),e.description?(r(),c("div",Ae,d(Z(e.description,80)),1)):h("",!0)]),o("div",Me,[l(t(D),{type:"default",onClick:m=>P(e)},{default:i(()=>[z(d(t(a)("View Details")),1)]),_:1},8,["onClick"]),l(t(D),{type:"error",onClick:m=>K(e)},{default:i(()=>[z(d(t(a)("Delete")),1)]),_:1},8,["onClick"])])]))),128))]),o("div",De,[l(t(oe),{page:v.value,"onUpdate:page":[n[2]||(n[2]=e=>v.value=e),u],"page-count":V.value,size:"large","show-size-picker":"","page-sizes":[20,50,100],"page-size":k.value,"onUpdate:pageSize":j},null,8,["page","page-count","page-size"])])])):h("",!0),b.value?(r(),c("div",xe,[l(t(ne),{size:"large"},{description:i(()=>[z(d(t(a)("Loading agents...")),1)]),_:1})])):h("",!0),!b.value&&g.value.length===0?(r(),c("div",Ie,[l(t(le),{description:t(a)("No agents found")},{icon:i(()=>[l(t(C),null,{default:i(()=>[l(t(y),{icon:"hugeicons:robotic"})]),_:1})]),_:1},8,["description"])])):h("",!0)])]))}});const Le=ie(Te,[["__scopeId","data-v-79414a75"]]);export{Le as default}; diff --git a/apps/jingrow/frontend/dist/assets/MyPublishedApps-3841d231.js b/apps/jingrow/frontend/dist/assets/MyPublishedApps-238e9f54.js similarity index 98% rename from apps/jingrow/frontend/dist/assets/MyPublishedApps-3841d231.js rename to apps/jingrow/frontend/dist/assets/MyPublishedApps-238e9f54.js index a84873a..13d61c2 100644 --- a/apps/jingrow/frontend/dist/assets/MyPublishedApps-3841d231.js +++ b/apps/jingrow/frontend/dist/assets/MyPublishedApps-238e9f54.js @@ -1 +1 @@ -import{d as Y,u as Q,X,r as g,c as E,o as G,M as I,e as c,f as n,g as r,j as s,h as l,w as i,i as H,F as J,C as ee,y as m,k as ae,a0 as F,t,l as u,$ as y,p as f,n as S,m as se,Z as te,Y as oe,_ as le,as as ne,aA as ie}from"./index-b37e64ca.js";import{I as b}from"./iconify-b5ab1212.js";import{_ as re}from"./_plugin-vue_export-helper-c27b6911.js";const ce={class:"my-published-apps"},ue={class:"page-header"},pe={class:"header-content"},de={class:"header-text"},_e={class:"content"},ve={class:"search-container"},he={class:"search-bar"},ge={key:0,class:"apps-section"},me={class:"apps-header"},ye={class:"sort-controls"},fe={class:"apps-grid"},be=["onClick"],ke=["src","alt"],Ce={key:1,class:"app-image-placeholder"},we={class:"app-content"},Se={class:"app-header"},Pe={class:"app-title-section"},Ne=["onClick"],ze={class:"app-meta"},Ae={key:0,class:"app-team"},Me={key:0,class:"app-name"},Ie={key:0,class:"app-subtitle"},xe={class:"app-actions"},$e={class:"pagination-container"},De={key:1,class:"loading"},Te={key:2,class:"empty"},Be=Y({__name:"MyPublishedApps",setup(Ee){const k=Q(),L=X(),x=ae(),P=g(""),C=g(!1),v=g([]),N=g(0),h=g(1),w=g(parseInt(localStorage.getItem("itemsPerPage")||"20")),z=g("creation desc"),j=E(()=>[{label:t("Latest"),value:"creation desc"},{label:t("Oldest"),value:"creation asc"},{label:t("Name A-Z"),value:"app_name asc"},{label:t("Name Z-A"),value:"app_name desc"},{label:t("Most Popular"),value:"modified desc"}]),U=E(()=>Math.max(1,Math.ceil(N.value/w.value)));async function p(){C.value=!0;try{const a=new URLSearchParams({page:h.value.toString(),page_size:w.value.toString(),search:P.value,sort_by:z.value}),e=(await F.get(`/jingrow/my-published-apps?${a}`)).data;e.items?(v.value=e.items,N.value=e.total||0):(v.value=e||[],N.value=v.value.length)}catch(a){console.error("Failed to load apps:",a),k.error(t("Failed to load applications")),v.value=[],N.value=0}finally{C.value=!1}}function $(){x.push("/publish-app")}function V(a){w.value=a,h.value=1,localStorage.setItem("itemsPerPage",a.toString()),p()}function A(a){x.push({path:`/app-marketplace/${a.name}`,query:{returnTo:"/my-published-apps"}})}function Z(a){return a?a.startsWith("http")?a:`https://cloud.jingrow.com${a.startsWith("/")?"":"/"}${a}`:""}function q(a){var e,_;const o=a.target;o.style.display="none",(_=(e=o.parentElement)==null?void 0:e.querySelector(".app-image-placeholder"))==null||_.classList.add("show")}function K(a,o){return a?a.length<=o?a:a.substring(0,o)+"...":""}function O(a){return a?a.toLowerCase().replace(/\s+/g,"-"):""}async function R(a){const o=a.name;if(!o){k.error(t("应用名称不存在"));return}const e=a.title||a.app_name||o;L.warning({title:t("确认删除"),content:t('确定要删除应用 "{0}" 吗?此操作不可恢复。').replace("{0}",e),positiveText:t("确认删除"),negativeText:t("取消"),onPositiveClick:async()=>{await W(o)}})}async function W(a){var o,e,_,D,T,B;try{const d=await F.post("/jingrow/delete-published-app",{name:a},{withCredentials:!0});if(d.data&&d.data.success)k.success(d.data.message||t("应用删除成功")),p();else{const M=((o=d.data)==null?void 0:o.message)||((e=d.data)==null?void 0:e.error)||t("删除失败");k.error(M)}}catch(d){console.error("Delete app error:",d);const M=((D=(_=d.response)==null?void 0:_.data)==null?void 0:D.detail)||((B=(T=d.response)==null?void 0:T.data)==null?void 0:B.message)||d.message||t("删除失败");k.error(M)}}return G(()=>{p()}),I([P,z],()=>{h.value=1,p()},{deep:!0}),I([h],()=>{p()}),I(()=>localStorage.getItem("itemsPerPage"),a=>{a&&(w.value=parseInt(a),h.value=1,p())}),(a,o)=>(u(),c("div",ce,[n("div",ue,[n("div",pe,[n("div",de,[n("h1",null,r(s(t)("My Published Apps")),1),n("p",null,r(s(t)("Manage your published applications in the marketplace")),1)]),l(s(S),{type:"primary",onClick:$},{icon:i(()=>[l(s(y),null,{default:i(()=>[l(s(b),{icon:"tabler:plus"})]),_:1})]),default:i(()=>[f(" "+r(s(t)("Publish App")),1)]),_:1})])]),n("div",_e,[n("div",ve,[n("div",he,[l(s(se),{value:P.value,"onUpdate:value":o[0]||(o[0]=e=>P.value=e),placeholder:s(t)("Search applications..."),clearable:"",size:"large",onKeyup:H(p,["enter"]),class:"search-input"},{prefix:i(()=>[l(s(y),null,{default:i(()=>[l(s(b),{icon:"tabler:search"})]),_:1})]),_:1},8,["value","placeholder"]),l(s(S),{type:"primary",size:"large",onClick:p,class:"search-button"},{icon:i(()=>[l(s(y),null,{default:i(()=>[l(s(b),{icon:"tabler:search"})]),_:1})]),default:i(()=>[f(" "+r(s(t)("Search")),1)]),_:1})])]),!C.value&&v.value.length>0?(u(),c("div",ge,[n("div",me,[o[3]||(o[3]=n("div",{class:"apps-title"},null,-1)),n("div",ye,[l(s(te),{value:z.value,"onUpdate:value":[o[1]||(o[1]=e=>z.value=e),p],options:j.value,placeholder:s(t)("Sort by"),style:{width:"150px"}},null,8,["value","options","placeholder"])])]),n("div",fe,[(u(!0),c(J,null,ee(v.value,e=>(u(),c("div",{key:e.name,class:"app-card"},[n("div",{class:"app-image",onClick:_=>A(e)},[e.app_image?(u(),c("img",{key:0,src:Z(e.app_image),alt:e.title||e.name,onError:q},null,40,ke)):(u(),c("div",Ce,[l(s(y),{size:"48"},{default:i(()=>[l(s(b),{icon:"tabler:apps"})]),_:1})]))],8,be),n("div",we,[n("div",Se,[n("div",Pe,[n("h3",{onClick:_=>A(e),class:"clickable-title"},r(e.title||e.name),9,Ne),n("div",ze,[e.team?(u(),c("div",Ae,[l(s(y),null,{default:i(()=>[l(s(b),{icon:"tabler:users"})]),_:1}),n("span",null,r(e.team),1)])):m("",!0),e.status?(u(),c("span",{key:1,class:oe(["status-badge",O(e.status)])},r(s(t)(e.status)),3)):m("",!0)])]),e.app_name?(u(),c("div",Me,r(e.app_name),1)):m("",!0)]),e.subtitle?(u(),c("div",Ie,r(K(e.subtitle,60)),1)):m("",!0)]),n("div",xe,[l(s(S),{type:"default",onClick:_=>A(e)},{default:i(()=>[f(r(s(t)("View Details")),1)]),_:1},8,["onClick"]),l(s(S),{type:"error",onClick:_=>R(e)},{default:i(()=>[f(r(s(t)("Delete")),1)]),_:1},8,["onClick"])])]))),128))]),n("div",$e,[l(s(le),{page:h.value,"onUpdate:page":[o[2]||(o[2]=e=>h.value=e),p],"page-count":U.value,size:"large","show-size-picker":"","page-sizes":[20,50,100],"page-size":w.value,"onUpdate:pageSize":V},null,8,["page","page-count","page-size"])])])):m("",!0),C.value?(u(),c("div",De,[l(s(ne),{size:"large"},{description:i(()=>[f(r(s(t)("Loading applications...")),1)]),_:1})])):m("",!0),!C.value&&v.value.length===0?(u(),c("div",Te,[l(s(ie),{description:s(t)("No applications found")},{icon:i(()=>[l(s(y),null,{default:i(()=>[l(s(b),{icon:"tabler:apps"})]),_:1})]),extra:i(()=>[l(s(S),{type:"primary",onClick:$},{default:i(()=>[f(r(s(t)("Publish Your First App")),1)]),_:1})]),_:1},8,["description"])])):m("",!0)])]))}});const Ue=re(Be,[["__scopeId","data-v-76ccce52"]]);export{Ue as default}; +import{d as Y,u as Q,X,r as g,c as E,o as G,M as I,e as c,f as n,g as r,j as s,h as l,w as i,i as H,F as J,C as ee,y as m,k as ae,a0 as F,t,l as u,$ as y,p as f,n as S,m as se,Z as te,Y as oe,_ as le,as as ne,aA as ie}from"./index-7b482730.js";import{I as b}from"./iconify-30ae5ba5.js";import{_ as re}from"./_plugin-vue_export-helper-c27b6911.js";const ce={class:"my-published-apps"},ue={class:"page-header"},pe={class:"header-content"},de={class:"header-text"},_e={class:"content"},ve={class:"search-container"},he={class:"search-bar"},ge={key:0,class:"apps-section"},me={class:"apps-header"},ye={class:"sort-controls"},fe={class:"apps-grid"},be=["onClick"],ke=["src","alt"],Ce={key:1,class:"app-image-placeholder"},we={class:"app-content"},Se={class:"app-header"},Pe={class:"app-title-section"},Ne=["onClick"],ze={class:"app-meta"},Ae={key:0,class:"app-team"},Me={key:0,class:"app-name"},Ie={key:0,class:"app-subtitle"},xe={class:"app-actions"},$e={class:"pagination-container"},De={key:1,class:"loading"},Te={key:2,class:"empty"},Be=Y({__name:"MyPublishedApps",setup(Ee){const k=Q(),L=X(),x=ae(),P=g(""),C=g(!1),v=g([]),N=g(0),h=g(1),w=g(parseInt(localStorage.getItem("itemsPerPage")||"20")),z=g("creation desc"),j=E(()=>[{label:t("Latest"),value:"creation desc"},{label:t("Oldest"),value:"creation asc"},{label:t("Name A-Z"),value:"app_name asc"},{label:t("Name Z-A"),value:"app_name desc"},{label:t("Most Popular"),value:"modified desc"}]),U=E(()=>Math.max(1,Math.ceil(N.value/w.value)));async function p(){C.value=!0;try{const a=new URLSearchParams({page:h.value.toString(),page_size:w.value.toString(),search:P.value,sort_by:z.value}),e=(await F.get(`/jingrow/my-published-apps?${a}`)).data;e.items?(v.value=e.items,N.value=e.total||0):(v.value=e||[],N.value=v.value.length)}catch(a){console.error("Failed to load apps:",a),k.error(t("Failed to load applications")),v.value=[],N.value=0}finally{C.value=!1}}function $(){x.push("/publish-app")}function V(a){w.value=a,h.value=1,localStorage.setItem("itemsPerPage",a.toString()),p()}function A(a){x.push({path:`/app-marketplace/${a.name}`,query:{returnTo:"/my-published-apps"}})}function Z(a){return a?a.startsWith("http")?a:`https://cloud.jingrow.com${a.startsWith("/")?"":"/"}${a}`:""}function q(a){var e,_;const o=a.target;o.style.display="none",(_=(e=o.parentElement)==null?void 0:e.querySelector(".app-image-placeholder"))==null||_.classList.add("show")}function K(a,o){return a?a.length<=o?a:a.substring(0,o)+"...":""}function O(a){return a?a.toLowerCase().replace(/\s+/g,"-"):""}async function R(a){const o=a.name;if(!o){k.error(t("应用名称不存在"));return}const e=a.title||a.app_name||o;L.warning({title:t("确认删除"),content:t('确定要删除应用 "{0}" 吗?此操作不可恢复。').replace("{0}",e),positiveText:t("确认删除"),negativeText:t("取消"),onPositiveClick:async()=>{await W(o)}})}async function W(a){var o,e,_,D,T,B;try{const d=await F.post("/jingrow/delete-published-app",{name:a},{withCredentials:!0});if(d.data&&d.data.success)k.success(d.data.message||t("应用删除成功")),p();else{const M=((o=d.data)==null?void 0:o.message)||((e=d.data)==null?void 0:e.error)||t("删除失败");k.error(M)}}catch(d){console.error("Delete app error:",d);const M=((D=(_=d.response)==null?void 0:_.data)==null?void 0:D.detail)||((B=(T=d.response)==null?void 0:T.data)==null?void 0:B.message)||d.message||t("删除失败");k.error(M)}}return G(()=>{p()}),I([P,z],()=>{h.value=1,p()},{deep:!0}),I([h],()=>{p()}),I(()=>localStorage.getItem("itemsPerPage"),a=>{a&&(w.value=parseInt(a),h.value=1,p())}),(a,o)=>(u(),c("div",ce,[n("div",ue,[n("div",pe,[n("div",de,[n("h1",null,r(s(t)("My Published Apps")),1),n("p",null,r(s(t)("Manage your published applications in the marketplace")),1)]),l(s(S),{type:"primary",onClick:$},{icon:i(()=>[l(s(y),null,{default:i(()=>[l(s(b),{icon:"tabler:plus"})]),_:1})]),default:i(()=>[f(" "+r(s(t)("Publish App")),1)]),_:1})])]),n("div",_e,[n("div",ve,[n("div",he,[l(s(se),{value:P.value,"onUpdate:value":o[0]||(o[0]=e=>P.value=e),placeholder:s(t)("Search applications..."),clearable:"",size:"large",onKeyup:H(p,["enter"]),class:"search-input"},{prefix:i(()=>[l(s(y),null,{default:i(()=>[l(s(b),{icon:"tabler:search"})]),_:1})]),_:1},8,["value","placeholder"]),l(s(S),{type:"primary",size:"large",onClick:p,class:"search-button"},{icon:i(()=>[l(s(y),null,{default:i(()=>[l(s(b),{icon:"tabler:search"})]),_:1})]),default:i(()=>[f(" "+r(s(t)("Search")),1)]),_:1})])]),!C.value&&v.value.length>0?(u(),c("div",ge,[n("div",me,[o[3]||(o[3]=n("div",{class:"apps-title"},null,-1)),n("div",ye,[l(s(te),{value:z.value,"onUpdate:value":[o[1]||(o[1]=e=>z.value=e),p],options:j.value,placeholder:s(t)("Sort by"),style:{width:"150px"}},null,8,["value","options","placeholder"])])]),n("div",fe,[(u(!0),c(J,null,ee(v.value,e=>(u(),c("div",{key:e.name,class:"app-card"},[n("div",{class:"app-image",onClick:_=>A(e)},[e.app_image?(u(),c("img",{key:0,src:Z(e.app_image),alt:e.title||e.name,onError:q},null,40,ke)):(u(),c("div",Ce,[l(s(y),{size:"48"},{default:i(()=>[l(s(b),{icon:"tabler:apps"})]),_:1})]))],8,be),n("div",we,[n("div",Se,[n("div",Pe,[n("h3",{onClick:_=>A(e),class:"clickable-title"},r(e.title||e.name),9,Ne),n("div",ze,[e.team?(u(),c("div",Ae,[l(s(y),null,{default:i(()=>[l(s(b),{icon:"tabler:users"})]),_:1}),n("span",null,r(e.team),1)])):m("",!0),e.status?(u(),c("span",{key:1,class:oe(["status-badge",O(e.status)])},r(s(t)(e.status)),3)):m("",!0)])]),e.app_name?(u(),c("div",Me,r(e.app_name),1)):m("",!0)]),e.subtitle?(u(),c("div",Ie,r(K(e.subtitle,60)),1)):m("",!0)]),n("div",xe,[l(s(S),{type:"default",onClick:_=>A(e)},{default:i(()=>[f(r(s(t)("View Details")),1)]),_:1},8,["onClick"]),l(s(S),{type:"error",onClick:_=>R(e)},{default:i(()=>[f(r(s(t)("Delete")),1)]),_:1},8,["onClick"])])]))),128))]),n("div",$e,[l(s(le),{page:h.value,"onUpdate:page":[o[2]||(o[2]=e=>h.value=e),p],"page-count":U.value,size:"large","show-size-picker":"","page-sizes":[20,50,100],"page-size":w.value,"onUpdate:pageSize":V},null,8,["page","page-count","page-size"])])])):m("",!0),C.value?(u(),c("div",De,[l(s(ne),{size:"large"},{description:i(()=>[f(r(s(t)("Loading applications...")),1)]),_:1})])):m("",!0),!C.value&&v.value.length===0?(u(),c("div",Te,[l(s(ie),{description:s(t)("No applications found")},{icon:i(()=>[l(s(y),null,{default:i(()=>[l(s(b),{icon:"tabler:apps"})]),_:1})]),extra:i(()=>[l(s(S),{type:"primary",onClick:$},{default:i(()=>[f(r(s(t)("Publish Your First App")),1)]),_:1})]),_:1},8,["description"])])):m("",!0)])]))}});const Ue=re(Be,[["__scopeId","data-v-76ccce52"]]);export{Ue as default}; diff --git a/apps/jingrow/frontend/dist/assets/MyPublishedNodes-faa67ba0.js b/apps/jingrow/frontend/dist/assets/MyPublishedNodes-0e96c3b3.js similarity index 97% rename from apps/jingrow/frontend/dist/assets/MyPublishedNodes-faa67ba0.js rename to apps/jingrow/frontend/dist/assets/MyPublishedNodes-0e96c3b3.js index 0591efd..8021e56 100644 --- a/apps/jingrow/frontend/dist/assets/MyPublishedNodes-faa67ba0.js +++ b/apps/jingrow/frontend/dist/assets/MyPublishedNodes-0e96c3b3.js @@ -1 +1 @@ -import{d as R,u as q,X as Q,r as g,c as B,o as X,M as D,e as r,f as o,g as c,j as s,h as l,w as d,i as Y,F as G,C as H,y as v,k as J,a0 as U,t,l as i,$ as N,m as W,p as z,n as x,Z as ee,D as se,a1 as ae,Y as te,_ as oe,as as ne,aA as le}from"./index-b37e64ca.js";import{I as y}from"./iconify-b5ab1212.js";import{_ as ie}from"./_plugin-vue_export-helper-c27b6911.js";const re={class:"my-published-nodes"},ce={class:"page-header"},de={class:"header-content"},ue={class:"header-text"},pe={class:"content"},ve={class:"search-container"},_e={class:"search-bar"},he={key:0,class:"nodes-section"},ge={class:"nodes-header"},me={class:"sort-controls"},ye={class:"nodes-grid"},fe=["onClick"],be={key:1,class:"node-icon-placeholder"},ke={class:"node-content"},Ne={class:"node-header"},Ce={class:"node-title-section"},we=["onClick"],Se={class:"node-meta"},ze={key:0,class:"node-type"},Pe={key:0,class:"node-name"},Me={key:0,class:"node-description"},De={key:1,class:"node-meta-info"},xe={class:"node-actions"},Ie={class:"pagination-container"},Te={key:1,class:"loading"},$e={key:2,class:"empty"},Be=R({__name:"MyPublishedNodes",setup(Ue){const f=q(),A=Q(),F=J(),C=g(""),b=g(!1),_=g([]),w=g(0),h=g(1),k=g(parseInt(localStorage.getItem("itemsPerPage")||"20")),S=g("creation desc"),L=B(()=>[{label:t("Latest"),value:"creation desc"},{label:t("Oldest"),value:"creation asc"},{label:t("Name A-Z"),value:"name asc"},{label:t("Name Z-A"),value:"name desc"},{label:t("Most Popular"),value:"modified desc"}]),V=B(()=>Math.max(1,Math.ceil(w.value/k.value)));async function u(){b.value=!0;try{const a=new URLSearchParams({page:h.value.toString(),page_size:k.value.toString(),search:C.value,sort_by:S.value}),e=(await U.get(`/jingrow/my-published-nodes?${a}`)).data;e.items?(_.value=e.items,w.value=e.total||0):(_.value=e||[],w.value=_.value.length)}catch(a){console.error("Failed to load nodes:",a),f.error(t("Failed to load nodes")),_.value=[],w.value=0}finally{b.value=!1}}function j(a){k.value=a,h.value=1,localStorage.setItem("itemsPerPage",a.toString()),u()}function P(a){F.push({path:`/node-marketplace/${a.name}`,query:{returnTo:"/my-published-nodes"}})}function Z(a,n){return a?a.length<=n?a:a.substring(0,n)+"...":""}function E(a){return a?a.toLowerCase().replace(/\s+/g,"-"):""}async function K(a){const n=a.name;if(!n){f.error(t("Node name does not exist"));return}const e=a.title||a.node_type||n;A.warning({title:t("Confirm Delete"),content:t('Are you sure you want to delete node "{0}"? This action cannot be undone.').replace("{0}",e),positiveText:t("Confirm Delete"),negativeText:t("Cancel"),onPositiveClick:async()=>{await O(n)}})}async function O(a){var n,e,m,I,T,$;try{const p=await U.post("/jingrow/delete-published-node",{name:a},{withCredentials:!0});if(p.data&&p.data.success)f.success(p.data.message||t("Node deleted successfully")),u();else{const M=((n=p.data)==null?void 0:n.message)||((e=p.data)==null?void 0:e.error)||t("Delete failed");f.error(M)}}catch(p){console.error("Delete node error:",p);const M=((I=(m=p.response)==null?void 0:m.data)==null?void 0:I.detail)||(($=(T=p.response)==null?void 0:T.data)==null?void 0:$.message)||p.message||t("Delete failed");f.error(M)}}return X(()=>{u()}),D([C,S],()=>{h.value=1,u()},{deep:!0}),D([h],()=>{u()}),D(()=>localStorage.getItem("itemsPerPage"),a=>{a&&(k.value=parseInt(a),h.value=1,u())}),(a,n)=>(i(),r("div",re,[o("div",ce,[o("div",de,[o("div",ue,[o("h1",null,c(s(t)("My Published Nodes")),1),o("p",null,c(s(t)("Manage your published nodes in the marketplace")),1)])])]),o("div",pe,[o("div",ve,[o("div",_e,[l(s(W),{value:C.value,"onUpdate:value":n[0]||(n[0]=e=>C.value=e),placeholder:s(t)("Search nodes..."),clearable:"",size:"large",onKeyup:Y(u,["enter"]),class:"search-input"},{prefix:d(()=>[l(s(N),null,{default:d(()=>[l(s(y),{icon:"tabler:search"})]),_:1})]),_:1},8,["value","placeholder"]),l(s(x),{type:"primary",size:"large",onClick:u,class:"search-button"},{icon:d(()=>[l(s(N),null,{default:d(()=>[l(s(y),{icon:"tabler:search"})]),_:1})]),default:d(()=>[z(" "+c(s(t)("Search")),1)]),_:1})])]),!b.value&&_.value.length>0?(i(),r("div",he,[o("div",ge,[n[3]||(n[3]=o("div",{class:"nodes-title"},null,-1)),o("div",me,[l(s(ee),{value:S.value,"onUpdate:value":[n[1]||(n[1]=e=>S.value=e),u],options:L.value,placeholder:s(t)("Sort by"),style:{width:"150px"}},null,8,["value","options","placeholder"])])]),o("div",ye,[(i(!0),r(G,null,H(_.value,e=>(i(),r("div",{key:e.name,class:"node-card"},[o("div",{class:"node-icon",onClick:m=>P(e)},[e.icon?(i(),se(s(y),{key:0,icon:e.icon,width:64,height:64,style:ae({color:e.color||"#6b7280"})},null,8,["icon","style"])):(i(),r("div",be,[l(s(N),{size:"64"},{default:d(()=>[l(s(y),{icon:"carbon:add-child-node"})]),_:1})]))],8,fe),o("div",ke,[o("div",Ne,[o("div",Ce,[o("h3",{onClick:m=>P(e),class:"clickable-title"},c(e.title||e.name),9,we),o("div",Se,[e.node_type?(i(),r("div",ze,c(e.node_type),1)):v("",!0),e.status?(i(),r("span",{key:1,class:te(["status-badge",E(e.status)])},c(s(t)(e.status)),3)):v("",!0)])]),e.name?(i(),r("div",Pe,c(e.name),1)):v("",!0)]),e.description?(i(),r("div",Me,c(Z(e.description,80)),1)):v("",!0),e.group?(i(),r("div",De,[l(s(N),null,{default:d(()=>[l(s(y),{icon:"tabler:category"})]),_:1}),o("span",null,c(e.group),1)])):v("",!0)]),o("div",xe,[l(s(x),{type:"default",onClick:m=>P(e)},{default:d(()=>[z(c(s(t)("View Details")),1)]),_:1},8,["onClick"]),l(s(x),{type:"error",onClick:m=>K(e)},{default:d(()=>[z(c(s(t)("Delete")),1)]),_:1},8,["onClick"])])]))),128))]),o("div",Ie,[l(s(oe),{page:h.value,"onUpdate:page":[n[2]||(n[2]=e=>h.value=e),u],"page-count":V.value,size:"large","show-size-picker":"","page-sizes":[20,50,100],"page-size":k.value,"onUpdate:pageSize":j},null,8,["page","page-count","page-size"])])])):v("",!0),b.value?(i(),r("div",Te,[l(s(ne),{size:"large"},{description:d(()=>[z(c(s(t)("Loading nodes...")),1)]),_:1})])):v("",!0),!b.value&&_.value.length===0?(i(),r("div",$e,[l(s(le),{description:s(t)("No nodes found")},{icon:d(()=>[l(s(N),null,{default:d(()=>[l(s(y),{icon:"carbon:add-child-node"})]),_:1})]),_:1},8,["description"])])):v("",!0)])]))}});const Ve=ie(Be,[["__scopeId","data-v-229066e3"]]);export{Ve as default}; +import{d as R,u as q,X as Q,r as g,c as B,o as X,M as D,e as r,f as o,g as c,j as s,h as l,w as d,i as Y,F as G,C as H,y as v,k as J,a0 as U,t,l as i,$ as N,m as W,p as z,n as x,Z as ee,D as se,a1 as ae,Y as te,_ as oe,as as ne,aA as le}from"./index-7b482730.js";import{I as y}from"./iconify-30ae5ba5.js";import{_ as ie}from"./_plugin-vue_export-helper-c27b6911.js";const re={class:"my-published-nodes"},ce={class:"page-header"},de={class:"header-content"},ue={class:"header-text"},pe={class:"content"},ve={class:"search-container"},_e={class:"search-bar"},he={key:0,class:"nodes-section"},ge={class:"nodes-header"},me={class:"sort-controls"},ye={class:"nodes-grid"},fe=["onClick"],be={key:1,class:"node-icon-placeholder"},ke={class:"node-content"},Ne={class:"node-header"},Ce={class:"node-title-section"},we=["onClick"],Se={class:"node-meta"},ze={key:0,class:"node-type"},Pe={key:0,class:"node-name"},Me={key:0,class:"node-description"},De={key:1,class:"node-meta-info"},xe={class:"node-actions"},Ie={class:"pagination-container"},Te={key:1,class:"loading"},$e={key:2,class:"empty"},Be=R({__name:"MyPublishedNodes",setup(Ue){const f=q(),A=Q(),F=J(),C=g(""),b=g(!1),_=g([]),w=g(0),h=g(1),k=g(parseInt(localStorage.getItem("itemsPerPage")||"20")),S=g("creation desc"),L=B(()=>[{label:t("Latest"),value:"creation desc"},{label:t("Oldest"),value:"creation asc"},{label:t("Name A-Z"),value:"name asc"},{label:t("Name Z-A"),value:"name desc"},{label:t("Most Popular"),value:"modified desc"}]),V=B(()=>Math.max(1,Math.ceil(w.value/k.value)));async function u(){b.value=!0;try{const a=new URLSearchParams({page:h.value.toString(),page_size:k.value.toString(),search:C.value,sort_by:S.value}),e=(await U.get(`/jingrow/my-published-nodes?${a}`)).data;e.items?(_.value=e.items,w.value=e.total||0):(_.value=e||[],w.value=_.value.length)}catch(a){console.error("Failed to load nodes:",a),f.error(t("Failed to load nodes")),_.value=[],w.value=0}finally{b.value=!1}}function j(a){k.value=a,h.value=1,localStorage.setItem("itemsPerPage",a.toString()),u()}function P(a){F.push({path:`/node-marketplace/${a.name}`,query:{returnTo:"/my-published-nodes"}})}function Z(a,n){return a?a.length<=n?a:a.substring(0,n)+"...":""}function E(a){return a?a.toLowerCase().replace(/\s+/g,"-"):""}async function K(a){const n=a.name;if(!n){f.error(t("Node name does not exist"));return}const e=a.title||a.node_type||n;A.warning({title:t("Confirm Delete"),content:t('Are you sure you want to delete node "{0}"? This action cannot be undone.').replace("{0}",e),positiveText:t("Confirm Delete"),negativeText:t("Cancel"),onPositiveClick:async()=>{await O(n)}})}async function O(a){var n,e,m,I,T,$;try{const p=await U.post("/jingrow/delete-published-node",{name:a},{withCredentials:!0});if(p.data&&p.data.success)f.success(p.data.message||t("Node deleted successfully")),u();else{const M=((n=p.data)==null?void 0:n.message)||((e=p.data)==null?void 0:e.error)||t("Delete failed");f.error(M)}}catch(p){console.error("Delete node error:",p);const M=((I=(m=p.response)==null?void 0:m.data)==null?void 0:I.detail)||(($=(T=p.response)==null?void 0:T.data)==null?void 0:$.message)||p.message||t("Delete failed");f.error(M)}}return X(()=>{u()}),D([C,S],()=>{h.value=1,u()},{deep:!0}),D([h],()=>{u()}),D(()=>localStorage.getItem("itemsPerPage"),a=>{a&&(k.value=parseInt(a),h.value=1,u())}),(a,n)=>(i(),r("div",re,[o("div",ce,[o("div",de,[o("div",ue,[o("h1",null,c(s(t)("My Published Nodes")),1),o("p",null,c(s(t)("Manage your published nodes in the marketplace")),1)])])]),o("div",pe,[o("div",ve,[o("div",_e,[l(s(W),{value:C.value,"onUpdate:value":n[0]||(n[0]=e=>C.value=e),placeholder:s(t)("Search nodes..."),clearable:"",size:"large",onKeyup:Y(u,["enter"]),class:"search-input"},{prefix:d(()=>[l(s(N),null,{default:d(()=>[l(s(y),{icon:"tabler:search"})]),_:1})]),_:1},8,["value","placeholder"]),l(s(x),{type:"primary",size:"large",onClick:u,class:"search-button"},{icon:d(()=>[l(s(N),null,{default:d(()=>[l(s(y),{icon:"tabler:search"})]),_:1})]),default:d(()=>[z(" "+c(s(t)("Search")),1)]),_:1})])]),!b.value&&_.value.length>0?(i(),r("div",he,[o("div",ge,[n[3]||(n[3]=o("div",{class:"nodes-title"},null,-1)),o("div",me,[l(s(ee),{value:S.value,"onUpdate:value":[n[1]||(n[1]=e=>S.value=e),u],options:L.value,placeholder:s(t)("Sort by"),style:{width:"150px"}},null,8,["value","options","placeholder"])])]),o("div",ye,[(i(!0),r(G,null,H(_.value,e=>(i(),r("div",{key:e.name,class:"node-card"},[o("div",{class:"node-icon",onClick:m=>P(e)},[e.icon?(i(),se(s(y),{key:0,icon:e.icon,width:64,height:64,style:ae({color:e.color||"#6b7280"})},null,8,["icon","style"])):(i(),r("div",be,[l(s(N),{size:"64"},{default:d(()=>[l(s(y),{icon:"carbon:add-child-node"})]),_:1})]))],8,fe),o("div",ke,[o("div",Ne,[o("div",Ce,[o("h3",{onClick:m=>P(e),class:"clickable-title"},c(e.title||e.name),9,we),o("div",Se,[e.node_type?(i(),r("div",ze,c(e.node_type),1)):v("",!0),e.status?(i(),r("span",{key:1,class:te(["status-badge",E(e.status)])},c(s(t)(e.status)),3)):v("",!0)])]),e.name?(i(),r("div",Pe,c(e.name),1)):v("",!0)]),e.description?(i(),r("div",Me,c(Z(e.description,80)),1)):v("",!0),e.group?(i(),r("div",De,[l(s(N),null,{default:d(()=>[l(s(y),{icon:"tabler:category"})]),_:1}),o("span",null,c(e.group),1)])):v("",!0)]),o("div",xe,[l(s(x),{type:"default",onClick:m=>P(e)},{default:d(()=>[z(c(s(t)("View Details")),1)]),_:1},8,["onClick"]),l(s(x),{type:"error",onClick:m=>K(e)},{default:d(()=>[z(c(s(t)("Delete")),1)]),_:1},8,["onClick"])])]))),128))]),o("div",Ie,[l(s(oe),{page:h.value,"onUpdate:page":[n[2]||(n[2]=e=>h.value=e),u],"page-count":V.value,size:"large","show-size-picker":"","page-sizes":[20,50,100],"page-size":k.value,"onUpdate:pageSize":j},null,8,["page","page-count","page-size"])])])):v("",!0),b.value?(i(),r("div",Te,[l(s(ne),{size:"large"},{description:d(()=>[z(c(s(t)("Loading nodes...")),1)]),_:1})])):v("",!0),!b.value&&_.value.length===0?(i(),r("div",$e,[l(s(le),{description:s(t)("No nodes found")},{icon:d(()=>[l(s(N),null,{default:d(()=>[l(s(y),{icon:"carbon:add-child-node"})]),_:1})]),_:1},8,["description"])])):v("",!0)])]))}});const Ve=ie(Be,[["__scopeId","data-v-229066e3"]]);export{Ve as default}; diff --git a/apps/jingrow/frontend/dist/assets/MyPublishedTools-78554321.js b/apps/jingrow/frontend/dist/assets/MyPublishedTools-08cb28bd.js similarity index 98% rename from apps/jingrow/frontend/dist/assets/MyPublishedTools-78554321.js rename to apps/jingrow/frontend/dist/assets/MyPublishedTools-08cb28bd.js index 1a9fefc..daa454d 100644 --- a/apps/jingrow/frontend/dist/assets/MyPublishedTools-78554321.js +++ b/apps/jingrow/frontend/dist/assets/MyPublishedTools-08cb28bd.js @@ -1 +1 @@ -import{d as Y,u as Q,X,r as g,c as F,o as G,M as x,e as c,f as n,g as r,j as s,h as l,w as i,i as H,F as J,C as ee,y as m,k as te,a0 as L,t as a,l as u,$ as y,p as f,n as w,m as se,Z as ae,Y as oe,_ as le,as as ne,aA as ie}from"./index-b37e64ca.js";import{I as b}from"./iconify-b5ab1212.js";import{_ as re}from"./_plugin-vue_export-helper-c27b6911.js";const ce={class:"my-published-tools"},ue={class:"page-header"},de={class:"header-content"},pe={class:"header-text"},_e={class:"content"},he={class:"search-container"},ve={class:"search-bar"},ge={key:0,class:"tools-section"},me={class:"tools-header"},ye={class:"sort-controls"},fe={class:"tools-grid"},be=["onClick"],ke=["src","alt"],Ce={key:1,class:"tool-image-placeholder"},Te={class:"tool-content"},we={class:"tool-header"},Se={class:"tool-title-section"},Pe=["onClick"],Ne={class:"tool-meta"},ze={key:0,class:"tool-team"},Me={key:0,class:"tool-name"},xe={key:0,class:"tool-subtitle"},Ie={class:"tool-actions"},$e={class:"pagination-container"},De={key:1,class:"loading"},Be={key:2,class:"empty"},Ee=Y({__name:"MyPublishedTools",setup(Fe){const k=Q(),j=X(),I=te(),S=g(""),C=g(!1),h=g([]),P=g(0),v=g(1),T=g(parseInt(localStorage.getItem("itemsPerPage")||"20")),N=g("creation desc"),A=F(()=>[{label:a("Latest"),value:"creation desc"},{label:a("Oldest"),value:"creation asc"},{label:a("Name A-Z"),value:"tool_name asc"},{label:a("Name Z-A"),value:"tool_name desc"},{label:a("Most Popular"),value:"modified desc"}]),U=F(()=>Math.max(1,Math.ceil(P.value/T.value)));async function d(){C.value=!0;try{const t=new URLSearchParams({page:v.value.toString(),page_size:T.value.toString(),search:S.value,sort_by:N.value}),e=(await L.get(`/jingrow/my-published-tools?${t}`)).data;e.items?(h.value=e.items,P.value=e.total||0):(h.value=e||[],P.value=h.value.length)}catch(t){console.error("Failed to load tools:",t),k.error(a("Failed to load tools")),h.value=[],P.value=0}finally{C.value=!1}}function $(){I.push("/publish-tool")}function V(t){T.value=t,v.value=1,localStorage.setItem("itemsPerPage",t.toString()),d()}function z(t){I.push({path:`/tool-marketplace/${t.name}`,query:{returnTo:"/my-published-tools"}})}function Z(t){return t?t.startsWith("http")?t:`https://cloud.jingrow.com${t.startsWith("/")?"":"/"}${t}`:""}function q(t){var e,_;const o=t.target;o.style.display="none",(_=(e=o.parentElement)==null?void 0:e.querySelector(".tool-image-placeholder"))==null||_.classList.add("show")}function K(t,o){return t?t.length<=o?t:t.substring(0,o)+"...":""}function O(t){return t?t.toLowerCase().replace(/\s+/g,"-"):""}async function R(t){const o=t.name;if(!o){k.error(a("Tool name does not exist"));return}const e=t.title||t.tool_name||o;j.warning({title:a("确认删除"),content:a('Are you sure you want to delete tool "{0}"? This action cannot be undone.').replace("{0}",e),positiveText:a("确认删除"),negativeText:a("取消"),onPositiveClick:async()=>{await W(o)}})}async function W(t){var o,e,_,D,B,E;try{const p=await L.post("/jingrow/delete-published-tool",{name:t},{withCredentials:!0});if(p.data&&p.data.success)k.success(p.data.message||a("Tool deleted successfully")),d();else{const M=((o=p.data)==null?void 0:o.message)||((e=p.data)==null?void 0:e.error)||a("删除失败");k.error(M)}}catch(p){console.error("Delete tool error:",p);const M=((D=(_=p.response)==null?void 0:_.data)==null?void 0:D.detail)||((E=(B=p.response)==null?void 0:B.data)==null?void 0:E.message)||p.message||a("删除失败");k.error(M)}}return G(()=>{d()}),x([S,N],()=>{v.value=1,d()},{deep:!0}),x([v],()=>{d()}),x(()=>localStorage.getItem("itemsPerPage"),t=>{t&&(T.value=parseInt(t),v.value=1,d())}),(t,o)=>(u(),c("div",ce,[n("div",ue,[n("div",de,[n("div",pe,[n("h1",null,r(s(a)("My Published Tools")),1),n("p",null,r(s(a)("Manage your published tools in the marketplace")),1)]),l(s(w),{type:"primary",onClick:$},{icon:i(()=>[l(s(y),null,{default:i(()=>[l(s(b),{icon:"tabler:plus"})]),_:1})]),default:i(()=>[f(" "+r(s(a)("Publish Tool")),1)]),_:1})])]),n("div",_e,[n("div",he,[n("div",ve,[l(s(se),{value:S.value,"onUpdate:value":o[0]||(o[0]=e=>S.value=e),placeholder:s(a)("Search tools..."),clearable:"",size:"large",onKeyup:H(d,["enter"]),class:"search-input"},{prefix:i(()=>[l(s(y),null,{default:i(()=>[l(s(b),{icon:"tabler:search"})]),_:1})]),_:1},8,["value","placeholder"]),l(s(w),{type:"primary",size:"large",onClick:d,class:"search-button"},{icon:i(()=>[l(s(y),null,{default:i(()=>[l(s(b),{icon:"tabler:search"})]),_:1})]),default:i(()=>[f(" "+r(s(a)("Search")),1)]),_:1})])]),!C.value&&h.value.length>0?(u(),c("div",ge,[n("div",me,[o[3]||(o[3]=n("div",{class:"tools-title"},null,-1)),n("div",ye,[l(s(ae),{value:N.value,"onUpdate:value":[o[1]||(o[1]=e=>N.value=e),d],options:A.value,placeholder:s(a)("Sort by"),style:{width:"150px"}},null,8,["value","options","placeholder"])])]),n("div",fe,[(u(!0),c(J,null,ee(h.value,e=>(u(),c("div",{key:e.name,class:"tool-card"},[n("div",{class:"tool-image",onClick:_=>z(e)},[e.tool_image?(u(),c("img",{key:0,src:Z(e.tool_image),alt:e.title||e.name,onError:q},null,40,ke)):(u(),c("div",Ce,[l(s(y),{size:"48"},{default:i(()=>[l(s(b),{icon:"tabler:tool"})]),_:1})]))],8,be),n("div",Te,[n("div",we,[n("div",Se,[n("h3",{onClick:_=>z(e),class:"clickable-title"},r(e.title||e.name),9,Pe),n("div",Ne,[e.team?(u(),c("div",ze,[l(s(y),null,{default:i(()=>[l(s(b),{icon:"tabler:users"})]),_:1}),n("span",null,r(e.team),1)])):m("",!0),e.status?(u(),c("span",{key:1,class:oe(["status-badge",O(e.status)])},r(s(a)(e.status)),3)):m("",!0)])]),e.tool_name?(u(),c("div",Me,r(e.tool_name),1)):m("",!0)]),e.subtitle?(u(),c("div",xe,r(K(e.subtitle,60)),1)):m("",!0)]),n("div",Ie,[l(s(w),{type:"default",onClick:_=>z(e)},{default:i(()=>[f(r(s(a)("View Details")),1)]),_:1},8,["onClick"]),l(s(w),{type:"error",onClick:_=>R(e)},{default:i(()=>[f(r(s(a)("Delete")),1)]),_:1},8,["onClick"])])]))),128))]),n("div",$e,[l(s(le),{page:v.value,"onUpdate:page":[o[2]||(o[2]=e=>v.value=e),d],"page-count":U.value,size:"large","show-size-picker":"","page-sizes":[20,50,100],"page-size":T.value,"onUpdate:pageSize":V},null,8,["page","page-count","page-size"])])])):m("",!0),C.value?(u(),c("div",De,[l(s(ne),{size:"large"},{description:i(()=>[f(r(s(a)("Loading tools...")),1)]),_:1})])):m("",!0),!C.value&&h.value.length===0?(u(),c("div",Be,[l(s(ie),{description:s(a)("No tools found")},{icon:i(()=>[l(s(y),null,{default:i(()=>[l(s(b),{icon:"tabler:tool"})]),_:1})]),extra:i(()=>[l(s(w),{type:"primary",onClick:$},{default:i(()=>[f(r(s(a)("Publish Your First Tool")),1)]),_:1})]),_:1},8,["description"])])):m("",!0)])]))}});const Ue=re(Ee,[["__scopeId","data-v-9dc5b1f9"]]);export{Ue as default}; +import{d as Y,u as Q,X,r as g,c as F,o as G,M as x,e as c,f as n,g as r,j as s,h as l,w as i,i as H,F as J,C as ee,y as m,k as te,a0 as L,t as a,l as u,$ as y,p as f,n as w,m as se,Z as ae,Y as oe,_ as le,as as ne,aA as ie}from"./index-7b482730.js";import{I as b}from"./iconify-30ae5ba5.js";import{_ as re}from"./_plugin-vue_export-helper-c27b6911.js";const ce={class:"my-published-tools"},ue={class:"page-header"},de={class:"header-content"},pe={class:"header-text"},_e={class:"content"},he={class:"search-container"},ve={class:"search-bar"},ge={key:0,class:"tools-section"},me={class:"tools-header"},ye={class:"sort-controls"},fe={class:"tools-grid"},be=["onClick"],ke=["src","alt"],Ce={key:1,class:"tool-image-placeholder"},Te={class:"tool-content"},we={class:"tool-header"},Se={class:"tool-title-section"},Pe=["onClick"],Ne={class:"tool-meta"},ze={key:0,class:"tool-team"},Me={key:0,class:"tool-name"},xe={key:0,class:"tool-subtitle"},Ie={class:"tool-actions"},$e={class:"pagination-container"},De={key:1,class:"loading"},Be={key:2,class:"empty"},Ee=Y({__name:"MyPublishedTools",setup(Fe){const k=Q(),j=X(),I=te(),S=g(""),C=g(!1),h=g([]),P=g(0),v=g(1),T=g(parseInt(localStorage.getItem("itemsPerPage")||"20")),N=g("creation desc"),A=F(()=>[{label:a("Latest"),value:"creation desc"},{label:a("Oldest"),value:"creation asc"},{label:a("Name A-Z"),value:"tool_name asc"},{label:a("Name Z-A"),value:"tool_name desc"},{label:a("Most Popular"),value:"modified desc"}]),U=F(()=>Math.max(1,Math.ceil(P.value/T.value)));async function d(){C.value=!0;try{const t=new URLSearchParams({page:v.value.toString(),page_size:T.value.toString(),search:S.value,sort_by:N.value}),e=(await L.get(`/jingrow/my-published-tools?${t}`)).data;e.items?(h.value=e.items,P.value=e.total||0):(h.value=e||[],P.value=h.value.length)}catch(t){console.error("Failed to load tools:",t),k.error(a("Failed to load tools")),h.value=[],P.value=0}finally{C.value=!1}}function $(){I.push("/publish-tool")}function V(t){T.value=t,v.value=1,localStorage.setItem("itemsPerPage",t.toString()),d()}function z(t){I.push({path:`/tool-marketplace/${t.name}`,query:{returnTo:"/my-published-tools"}})}function Z(t){return t?t.startsWith("http")?t:`https://cloud.jingrow.com${t.startsWith("/")?"":"/"}${t}`:""}function q(t){var e,_;const o=t.target;o.style.display="none",(_=(e=o.parentElement)==null?void 0:e.querySelector(".tool-image-placeholder"))==null||_.classList.add("show")}function K(t,o){return t?t.length<=o?t:t.substring(0,o)+"...":""}function O(t){return t?t.toLowerCase().replace(/\s+/g,"-"):""}async function R(t){const o=t.name;if(!o){k.error(a("Tool name does not exist"));return}const e=t.title||t.tool_name||o;j.warning({title:a("确认删除"),content:a('Are you sure you want to delete tool "{0}"? This action cannot be undone.').replace("{0}",e),positiveText:a("确认删除"),negativeText:a("取消"),onPositiveClick:async()=>{await W(o)}})}async function W(t){var o,e,_,D,B,E;try{const p=await L.post("/jingrow/delete-published-tool",{name:t},{withCredentials:!0});if(p.data&&p.data.success)k.success(p.data.message||a("Tool deleted successfully")),d();else{const M=((o=p.data)==null?void 0:o.message)||((e=p.data)==null?void 0:e.error)||a("删除失败");k.error(M)}}catch(p){console.error("Delete tool error:",p);const M=((D=(_=p.response)==null?void 0:_.data)==null?void 0:D.detail)||((E=(B=p.response)==null?void 0:B.data)==null?void 0:E.message)||p.message||a("删除失败");k.error(M)}}return G(()=>{d()}),x([S,N],()=>{v.value=1,d()},{deep:!0}),x([v],()=>{d()}),x(()=>localStorage.getItem("itemsPerPage"),t=>{t&&(T.value=parseInt(t),v.value=1,d())}),(t,o)=>(u(),c("div",ce,[n("div",ue,[n("div",de,[n("div",pe,[n("h1",null,r(s(a)("My Published Tools")),1),n("p",null,r(s(a)("Manage your published tools in the marketplace")),1)]),l(s(w),{type:"primary",onClick:$},{icon:i(()=>[l(s(y),null,{default:i(()=>[l(s(b),{icon:"tabler:plus"})]),_:1})]),default:i(()=>[f(" "+r(s(a)("Publish Tool")),1)]),_:1})])]),n("div",_e,[n("div",he,[n("div",ve,[l(s(se),{value:S.value,"onUpdate:value":o[0]||(o[0]=e=>S.value=e),placeholder:s(a)("Search tools..."),clearable:"",size:"large",onKeyup:H(d,["enter"]),class:"search-input"},{prefix:i(()=>[l(s(y),null,{default:i(()=>[l(s(b),{icon:"tabler:search"})]),_:1})]),_:1},8,["value","placeholder"]),l(s(w),{type:"primary",size:"large",onClick:d,class:"search-button"},{icon:i(()=>[l(s(y),null,{default:i(()=>[l(s(b),{icon:"tabler:search"})]),_:1})]),default:i(()=>[f(" "+r(s(a)("Search")),1)]),_:1})])]),!C.value&&h.value.length>0?(u(),c("div",ge,[n("div",me,[o[3]||(o[3]=n("div",{class:"tools-title"},null,-1)),n("div",ye,[l(s(ae),{value:N.value,"onUpdate:value":[o[1]||(o[1]=e=>N.value=e),d],options:A.value,placeholder:s(a)("Sort by"),style:{width:"150px"}},null,8,["value","options","placeholder"])])]),n("div",fe,[(u(!0),c(J,null,ee(h.value,e=>(u(),c("div",{key:e.name,class:"tool-card"},[n("div",{class:"tool-image",onClick:_=>z(e)},[e.tool_image?(u(),c("img",{key:0,src:Z(e.tool_image),alt:e.title||e.name,onError:q},null,40,ke)):(u(),c("div",Ce,[l(s(y),{size:"48"},{default:i(()=>[l(s(b),{icon:"tabler:tool"})]),_:1})]))],8,be),n("div",Te,[n("div",we,[n("div",Se,[n("h3",{onClick:_=>z(e),class:"clickable-title"},r(e.title||e.name),9,Pe),n("div",Ne,[e.team?(u(),c("div",ze,[l(s(y),null,{default:i(()=>[l(s(b),{icon:"tabler:users"})]),_:1}),n("span",null,r(e.team),1)])):m("",!0),e.status?(u(),c("span",{key:1,class:oe(["status-badge",O(e.status)])},r(s(a)(e.status)),3)):m("",!0)])]),e.tool_name?(u(),c("div",Me,r(e.tool_name),1)):m("",!0)]),e.subtitle?(u(),c("div",xe,r(K(e.subtitle,60)),1)):m("",!0)]),n("div",Ie,[l(s(w),{type:"default",onClick:_=>z(e)},{default:i(()=>[f(r(s(a)("View Details")),1)]),_:1},8,["onClick"]),l(s(w),{type:"error",onClick:_=>R(e)},{default:i(()=>[f(r(s(a)("Delete")),1)]),_:1},8,["onClick"])])]))),128))]),n("div",$e,[l(s(le),{page:v.value,"onUpdate:page":[o[2]||(o[2]=e=>v.value=e),d],"page-count":U.value,size:"large","show-size-picker":"","page-sizes":[20,50,100],"page-size":T.value,"onUpdate:pageSize":V},null,8,["page","page-count","page-size"])])])):m("",!0),C.value?(u(),c("div",De,[l(s(ne),{size:"large"},{description:i(()=>[f(r(s(a)("Loading tools...")),1)]),_:1})])):m("",!0),!C.value&&h.value.length===0?(u(),c("div",Be,[l(s(ie),{description:s(a)("No tools found")},{icon:i(()=>[l(s(y),null,{default:i(()=>[l(s(b),{icon:"tabler:tool"})]),_:1})]),extra:i(()=>[l(s(w),{type:"primary",onClick:$},{default:i(()=>[f(r(s(a)("Publish Your First Tool")),1)]),_:1})]),_:1},8,["description"])])):m("",!0)])]))}});const Ue=re(Ee,[["__scopeId","data-v-9dc5b1f9"]]);export{Ue as default}; diff --git a/apps/jingrow/frontend/dist/assets/NodeDetail-35657f13.js b/apps/jingrow/frontend/dist/assets/NodeDetail-7cfd7dab.js similarity index 98% rename from apps/jingrow/frontend/dist/assets/NodeDetail-35657f13.js rename to apps/jingrow/frontend/dist/assets/NodeDetail-7cfd7dab.js index b1dc810..9342cec 100644 --- a/apps/jingrow/frontend/dist/assets/NodeDetail-35657f13.js +++ b/apps/jingrow/frontend/dist/assets/NodeDetail-7cfd7dab.js @@ -1 +1 @@ -import{d as G,u as O,X,r as v,c as P,o as Y,e as d,f as t,g as l,j as a,h as c,w as _,a1 as J,y as p,v as K,k as Q,a0 as g,t as s,a2 as V,l as u,$ as I,p as S,n as j,as as W,aA as Z}from"./index-b37e64ca.js";import{I as w}from"./iconify-b5ab1212.js";import{I as ee}from"./InstallProgressModal-8a22be9b.js";import{_ as se}from"./_plugin-vue_export-helper-c27b6911.js";const te={class:"node-detail"},ae={class:"page-header"},oe={class:"header-content"},ne={class:"header-text"},le={class:"header-actions"},ie={key:0,class:"loading-container"},re={key:1,class:"error-container"},de={key:2,class:"node-content"},ce={class:"node-card"},ue={class:"node-info-section"},_e={class:"node-content-layout"},ve={class:"node-image-section"},pe={class:"node-image"},fe={key:0,class:"node-icon-container"},he={key:1,class:"placeholder-image"},ye={class:"node-info-content"},me={class:"node-header"},ge={class:"node-title"},we={key:0,class:"node-subtitle"},ke={class:"info-list"},Ne={key:0,class:"info-item"},be={class:"label"},Ie={class:"value"},xe={key:1,class:"info-item"},Ce={class:"label"},Te={class:"value"},Le={key:2,class:"info-item"},De={class:"label"},Se=["href"],Ue={key:3,class:"info-item"},Re={class:"label"},Me=["href"],Ee={key:4,class:"info-item"},Pe={class:"label"},Ve={class:"value"},je={key:5,class:"info-item"},Be={class:"label"},$e={class:"value"},ze={key:0,class:"description-section"},Fe=["innerHTML"],He=G({__name:"NodeDetail",setup(qe){const U=K(),x=Q(),C=O(),B=X(),T=v(!0),k=v(""),e=v(null),N=v(!1),y=v(0),f=v(""),b=v("info"),m=v(!1),R=v(new Set),$=P(()=>U.params.name),L=P(()=>e.value?q(e.value.node_type||e.value.name||""):!1);async function z(){var o,i;T.value=!0,k.value="";try{const n=await g.get(`/jingrow/node-marketplace/${$.value}`);e.value=n.data}catch(n){console.error("Failed to load node detail:",n),k.value=((i=(o=n.response)==null?void 0:o.data)==null?void 0:i.detail)||s("Failed to load node details")}finally{T.value=!1}}function M(o){if(!o)return"";const i=new Date(o),n=i.getFullYear(),h=String(i.getMonth()+1).padStart(2,"0"),r=String(i.getDate()).padStart(2,"0");return`${n}-${h}-${r}`}function F(){const o=U.query.returnTo;if(o){x.push(o);return}window.history.length>1?x.back():x.push("/node-marketplace")}async function H(){var o,i;if(!((o=e.value)!=null&&o.file_url)&&!((i=e.value)!=null&&i.repository_url)){C.error(s("Node file URL or repository address does not exist"));return}try{const n=e.value.node_type||e.value.name;if(n&&(await g.get(`/jingrow/check-node/${n}`)).data.exists){B.warning({title:s("Node already exists"),content:s('Node "{0}" is already installed, do you want to overwrite?').replace("{0}",n),positiveText:s("Confirm Overwrite"),negativeText:s("Cancel"),onPositiveClick:()=>{E()}});return}}catch(n){console.error("Check node exists error:",n)}E()}async function E(){var o,i,n,h;try{N.value=!0,y.value=0,f.value=s("Preparing installation..."),b.value="info",m.value=!0;let r;if(e.value.file_url)f.value=s("Downloading node package..."),y.value=20,f.value=s("Installing node..."),y.value=30,r=await g.post("/jingrow/install-node-from-url",new URLSearchParams({url:e.value.file_url}),{headers:{...V(),"Content-Type":"application/x-www-form-urlencoded"}});else if(e.value.repository_url){f.value=s("Cloning repository..."),y.value=20,f.value=s("Installing node..."),y.value=30;const A=new URLSearchParams({repo_url:e.value.repository_url});r=await g.post("/jingrow/install-node-from-git",A,{headers:{...V(),"Content-Type":"application/x-www-form-urlencoded"}})}if(!r)throw new Error(s("Unable to determine installation method"));if(y.value=100,r.data.success)N.value=!1,b.value="success",f.value=s("Node installed successfully!"),C.success(s("Node installed successfully")),D(),typeof window<"u"&&window.dispatchEvent(new Event("nodeMetadataUpdated")),setTimeout(()=>{m.value=!1},2e3);else throw new Error(r.data.error||s("Installation failed"))}catch(r){console.error("Install node error:",r),N.value=!1,b.value="error",f.value=((i=(o=r.response)==null?void 0:o.data)==null?void 0:i.detail)||r.message||s("Installation failed"),C.error(((h=(n=r.response)==null?void 0:n.data)==null?void 0:h.detail)||s("Installation failed")),setTimeout(()=>{m.value=!1},3e3)}}async function D(){try{const o=await g.get("/jingrow/installed-node-types");if(o.data.success){const i=o.data.node_types||[];R.value=new Set(i.map(n=>n.toLowerCase()))}}catch(o){console.error("Load installed nodes error:",o)}}function q(o){return o?R.value.has(o.toLowerCase()):!1}return Y(()=>{z(),D(),window.addEventListener("installedNodesUpdated",()=>{D()})}),(o,i)=>{var n,h;return u(),d("div",te,[t("div",ae,[t("div",oe,[t("div",ne,[t("h1",null,l(((n=e.value)==null?void 0:n.title)||((h=e.value)==null?void 0:h.node_type)||a(s)("Node Details")),1)]),t("div",le,[c(a(j),{onClick:F,size:"medium"},{icon:_(()=>[c(a(I),null,{default:_(()=>[c(a(w),{icon:"tabler:arrow-left"})]),_:1})]),default:_(()=>[S(" "+l(a(s)("Back")),1)]),_:1}),c(a(j),{type:L.value?"warning":"primary",onClick:H,size:"medium"},{icon:_(()=>[c(a(I),null,{default:_(()=>[c(a(w),{icon:L.value?"tabler:check":"tabler:download"},null,8,["icon"])]),_:1})]),default:_(()=>[S(" "+l(L.value?a(s)("Installed"):a(s)("Install")),1)]),_:1},8,["type"])])])]),T.value?(u(),d("div",ie,[c(a(W),{size:"large"},{description:_(()=>[S(l(a(s)("Loading node details...")),1)]),_:1})])):k.value?(u(),d("div",re,[c(a(Z),{description:k.value},{icon:_(()=>[c(a(I),null,{default:_(()=>[c(a(w),{icon:"tabler:alert-circle"})]),_:1})]),_:1},8,["description"])])):e.value?(u(),d("div",de,[t("div",ce,[t("div",ue,[t("div",_e,[t("div",ve,[t("div",pe,[e.value.icon||e.value.node_icon?(u(),d("div",fe,[c(a(w),{icon:e.value.icon||e.value.node_icon,width:120,height:120,style:J({color:e.value.color||e.value.node_color||"#6b7280"})},null,8,["icon","style"])])):(u(),d("div",he,[c(a(I),{size:"80"},{default:_(()=>[c(a(w),{icon:"tabler:cube"})]),_:1})]))])]),t("div",ye,[t("div",me,[t("h2",ge,l(e.value.title||e.value.node_type||a(s)("Untitled Node")),1),e.value.subtitle?(u(),d("div",we,l(e.value.subtitle),1)):p("",!0)]),t("div",ke,[e.value.node_type?(u(),d("div",Ne,[t("span",be,l(a(s)("Node Type"))+":",1),t("span",Ie,l(e.value.node_type),1)])):p("",!0),e.value.group||e.value.node_group?(u(),d("div",xe,[t("span",Ce,l(a(s)("Group"))+":",1),t("span",Te,l(e.value.group||e.value.node_group),1)])):p("",!0),e.value.repository_url?(u(),d("div",Le,[t("span",De,l(a(s)("Repository URL"))+":",1),t("a",{href:e.value.repository_url,target:"_blank",class:"link"},l(e.value.repository_url),9,Se)])):p("",!0),e.value.file_url?(u(),d("div",Ue,[t("span",Re,l(a(s)("File URL"))+":",1),t("a",{href:e.value.file_url,target:"_blank",class:"link"},l(e.value.file_url),9,Me)])):p("",!0),e.value.creation?(u(),d("div",Ee,[t("span",Pe,l(a(s)("Created"))+":",1),t("span",Ve,l(M(e.value.creation)),1)])):p("",!0),e.value.modified?(u(),d("div",je,[t("span",Be,l(a(s)("Last Updated"))+":",1),t("span",$e,l(M(e.value.modified)),1)])):p("",!0)])])])]),e.value.description||e.value.node_description?(u(),d("div",ze,[t("h3",null,l(a(s)("Description")),1),t("div",{class:"description-content",innerHTML:e.value.description||e.value.node_description},null,8,Fe)])):p("",!0)])])):p("",!0),c(ee,{modelValue:m.value,"onUpdate:modelValue":i[0]||(i[0]=r=>m.value=r),progress:y.value,message:f.value,status:b.value,installing:N.value,title:a(s)("Installing Node")},null,8,["modelValue","progress","message","status","installing","title"])])}}});const Ye=se(He,[["__scopeId","data-v-f0d29b4a"]]);export{Ye as default}; +import{d as G,u as O,X,r as v,c as P,o as Y,e as d,f as t,g as l,j as a,h as c,w as _,a1 as J,y as p,v as K,k as Q,a0 as g,t as s,a2 as V,l as u,$ as I,p as S,n as j,as as W,aA as Z}from"./index-7b482730.js";import{I as w}from"./iconify-30ae5ba5.js";import{I as ee}from"./InstallProgressModal-1ec0a6fc.js";import{_ as se}from"./_plugin-vue_export-helper-c27b6911.js";const te={class:"node-detail"},ae={class:"page-header"},oe={class:"header-content"},ne={class:"header-text"},le={class:"header-actions"},ie={key:0,class:"loading-container"},re={key:1,class:"error-container"},de={key:2,class:"node-content"},ce={class:"node-card"},ue={class:"node-info-section"},_e={class:"node-content-layout"},ve={class:"node-image-section"},pe={class:"node-image"},fe={key:0,class:"node-icon-container"},he={key:1,class:"placeholder-image"},ye={class:"node-info-content"},me={class:"node-header"},ge={class:"node-title"},we={key:0,class:"node-subtitle"},ke={class:"info-list"},Ne={key:0,class:"info-item"},be={class:"label"},Ie={class:"value"},xe={key:1,class:"info-item"},Ce={class:"label"},Te={class:"value"},Le={key:2,class:"info-item"},De={class:"label"},Se=["href"],Ue={key:3,class:"info-item"},Re={class:"label"},Me=["href"],Ee={key:4,class:"info-item"},Pe={class:"label"},Ve={class:"value"},je={key:5,class:"info-item"},Be={class:"label"},$e={class:"value"},ze={key:0,class:"description-section"},Fe=["innerHTML"],He=G({__name:"NodeDetail",setup(qe){const U=K(),x=Q(),C=O(),B=X(),T=v(!0),k=v(""),e=v(null),N=v(!1),y=v(0),f=v(""),b=v("info"),m=v(!1),R=v(new Set),$=P(()=>U.params.name),L=P(()=>e.value?q(e.value.node_type||e.value.name||""):!1);async function z(){var o,i;T.value=!0,k.value="";try{const n=await g.get(`/jingrow/node-marketplace/${$.value}`);e.value=n.data}catch(n){console.error("Failed to load node detail:",n),k.value=((i=(o=n.response)==null?void 0:o.data)==null?void 0:i.detail)||s("Failed to load node details")}finally{T.value=!1}}function M(o){if(!o)return"";const i=new Date(o),n=i.getFullYear(),h=String(i.getMonth()+1).padStart(2,"0"),r=String(i.getDate()).padStart(2,"0");return`${n}-${h}-${r}`}function F(){const o=U.query.returnTo;if(o){x.push(o);return}window.history.length>1?x.back():x.push("/node-marketplace")}async function H(){var o,i;if(!((o=e.value)!=null&&o.file_url)&&!((i=e.value)!=null&&i.repository_url)){C.error(s("Node file URL or repository address does not exist"));return}try{const n=e.value.node_type||e.value.name;if(n&&(await g.get(`/jingrow/check-node/${n}`)).data.exists){B.warning({title:s("Node already exists"),content:s('Node "{0}" is already installed, do you want to overwrite?').replace("{0}",n),positiveText:s("Confirm Overwrite"),negativeText:s("Cancel"),onPositiveClick:()=>{E()}});return}}catch(n){console.error("Check node exists error:",n)}E()}async function E(){var o,i,n,h;try{N.value=!0,y.value=0,f.value=s("Preparing installation..."),b.value="info",m.value=!0;let r;if(e.value.file_url)f.value=s("Downloading node package..."),y.value=20,f.value=s("Installing node..."),y.value=30,r=await g.post("/jingrow/install-node-from-url",new URLSearchParams({url:e.value.file_url}),{headers:{...V(),"Content-Type":"application/x-www-form-urlencoded"}});else if(e.value.repository_url){f.value=s("Cloning repository..."),y.value=20,f.value=s("Installing node..."),y.value=30;const A=new URLSearchParams({repo_url:e.value.repository_url});r=await g.post("/jingrow/install-node-from-git",A,{headers:{...V(),"Content-Type":"application/x-www-form-urlencoded"}})}if(!r)throw new Error(s("Unable to determine installation method"));if(y.value=100,r.data.success)N.value=!1,b.value="success",f.value=s("Node installed successfully!"),C.success(s("Node installed successfully")),D(),typeof window<"u"&&window.dispatchEvent(new Event("nodeMetadataUpdated")),setTimeout(()=>{m.value=!1},2e3);else throw new Error(r.data.error||s("Installation failed"))}catch(r){console.error("Install node error:",r),N.value=!1,b.value="error",f.value=((i=(o=r.response)==null?void 0:o.data)==null?void 0:i.detail)||r.message||s("Installation failed"),C.error(((h=(n=r.response)==null?void 0:n.data)==null?void 0:h.detail)||s("Installation failed")),setTimeout(()=>{m.value=!1},3e3)}}async function D(){try{const o=await g.get("/jingrow/installed-node-types");if(o.data.success){const i=o.data.node_types||[];R.value=new Set(i.map(n=>n.toLowerCase()))}}catch(o){console.error("Load installed nodes error:",o)}}function q(o){return o?R.value.has(o.toLowerCase()):!1}return Y(()=>{z(),D(),window.addEventListener("installedNodesUpdated",()=>{D()})}),(o,i)=>{var n,h;return u(),d("div",te,[t("div",ae,[t("div",oe,[t("div",ne,[t("h1",null,l(((n=e.value)==null?void 0:n.title)||((h=e.value)==null?void 0:h.node_type)||a(s)("Node Details")),1)]),t("div",le,[c(a(j),{onClick:F,size:"medium"},{icon:_(()=>[c(a(I),null,{default:_(()=>[c(a(w),{icon:"tabler:arrow-left"})]),_:1})]),default:_(()=>[S(" "+l(a(s)("Back")),1)]),_:1}),c(a(j),{type:L.value?"warning":"primary",onClick:H,size:"medium"},{icon:_(()=>[c(a(I),null,{default:_(()=>[c(a(w),{icon:L.value?"tabler:check":"tabler:download"},null,8,["icon"])]),_:1})]),default:_(()=>[S(" "+l(L.value?a(s)("Installed"):a(s)("Install")),1)]),_:1},8,["type"])])])]),T.value?(u(),d("div",ie,[c(a(W),{size:"large"},{description:_(()=>[S(l(a(s)("Loading node details...")),1)]),_:1})])):k.value?(u(),d("div",re,[c(a(Z),{description:k.value},{icon:_(()=>[c(a(I),null,{default:_(()=>[c(a(w),{icon:"tabler:alert-circle"})]),_:1})]),_:1},8,["description"])])):e.value?(u(),d("div",de,[t("div",ce,[t("div",ue,[t("div",_e,[t("div",ve,[t("div",pe,[e.value.icon||e.value.node_icon?(u(),d("div",fe,[c(a(w),{icon:e.value.icon||e.value.node_icon,width:120,height:120,style:J({color:e.value.color||e.value.node_color||"#6b7280"})},null,8,["icon","style"])])):(u(),d("div",he,[c(a(I),{size:"80"},{default:_(()=>[c(a(w),{icon:"tabler:cube"})]),_:1})]))])]),t("div",ye,[t("div",me,[t("h2",ge,l(e.value.title||e.value.node_type||a(s)("Untitled Node")),1),e.value.subtitle?(u(),d("div",we,l(e.value.subtitle),1)):p("",!0)]),t("div",ke,[e.value.node_type?(u(),d("div",Ne,[t("span",be,l(a(s)("Node Type"))+":",1),t("span",Ie,l(e.value.node_type),1)])):p("",!0),e.value.group||e.value.node_group?(u(),d("div",xe,[t("span",Ce,l(a(s)("Group"))+":",1),t("span",Te,l(e.value.group||e.value.node_group),1)])):p("",!0),e.value.repository_url?(u(),d("div",Le,[t("span",De,l(a(s)("Repository URL"))+":",1),t("a",{href:e.value.repository_url,target:"_blank",class:"link"},l(e.value.repository_url),9,Se)])):p("",!0),e.value.file_url?(u(),d("div",Ue,[t("span",Re,l(a(s)("File URL"))+":",1),t("a",{href:e.value.file_url,target:"_blank",class:"link"},l(e.value.file_url),9,Me)])):p("",!0),e.value.creation?(u(),d("div",Ee,[t("span",Pe,l(a(s)("Created"))+":",1),t("span",Ve,l(M(e.value.creation)),1)])):p("",!0),e.value.modified?(u(),d("div",je,[t("span",Be,l(a(s)("Last Updated"))+":",1),t("span",$e,l(M(e.value.modified)),1)])):p("",!0)])])])]),e.value.description||e.value.node_description?(u(),d("div",ze,[t("h3",null,l(a(s)("Description")),1),t("div",{class:"description-content",innerHTML:e.value.description||e.value.node_description},null,8,Fe)])):p("",!0)])])):p("",!0),c(ee,{modelValue:m.value,"onUpdate:modelValue":i[0]||(i[0]=r=>m.value=r),progress:y.value,message:f.value,status:b.value,installing:N.value,title:a(s)("Installing Node")},null,8,["modelValue","progress","message","status","installing","title"])])}}});const Ye=se(He,[["__scopeId","data-v-f0d29b4a"]]);export{Ye as default}; diff --git a/apps/jingrow/frontend/dist/assets/NodeMarketplace-1e9a22c1.js b/apps/jingrow/frontend/dist/assets/NodeMarketplace-4d50c853.js similarity index 97% rename from apps/jingrow/frontend/dist/assets/NodeMarketplace-1e9a22c1.js rename to apps/jingrow/frontend/dist/assets/NodeMarketplace-4d50c853.js index 4a2c87e..af54c51 100644 --- a/apps/jingrow/frontend/dist/assets/NodeMarketplace-1e9a22c1.js +++ b/apps/jingrow/frontend/dist/assets/NodeMarketplace-4d50c853.js @@ -1 +1 @@ -import{d as W,u as Y,X as ee,r,c as A,o as ae,M as E,e as p,f as l,g as d,j as s,h as n,w as i,i as te,F as se,C as oe,y as m,k as le,a0 as I,t,l as c,$ as b,m as ne,p as S,n as T,Z as re,D as R,a1 as ie,_ as ce,as as de,aA as ue,a2 as O}from"./index-b37e64ca.js";import{I as w}from"./iconify-b5ab1212.js";import{I as pe}from"./InstallProgressModal-8a22be9b.js";import{_ as ve}from"./_plugin-vue_export-helper-c27b6911.js";const _e={class:"node-marketplace"},ge={class:"page-header"},fe={class:"header-content"},he={class:"header-text"},ye={class:"content"},me={class:"search-container"},we={class:"search-bar"},ke={key:0,class:"nodes-section"},Ne={class:"nodes-header"},Ce={class:"sort-controls"},Ie={class:"nodes-grid"},be=["onClick"],Se={key:1,class:"node-icon-placeholder"},xe={class:"node-content"},Pe={class:"node-header"},Me={class:"node-title-section"},ze=["onClick"],Ue={key:0,class:"node-type"},Te={key:0,class:"node-description"},Le={key:1,class:"node-meta"},$e={class:"node-actions"},Be={class:"pagination-container"},Ee={key:1,class:"loading"},Re={key:2,class:"empty"},Ve=W({__name:"NodeMarketplace",setup(je){const x=Y(),Z=ee(),K=le(),L=r(""),k=r(!1),g=r([]),P=r(0),f=r(1),N=r(parseInt(localStorage.getItem("itemsPerPage")||"20")),M=r("creation desc"),z=r(!1),h=r(0),_=r(""),U=r("info"),C=r(!1),V=r(new Set),q=A(()=>[{label:t("Latest"),value:"creation desc"},{label:t("Oldest"),value:"creation asc"},{label:t("Name A-Z"),value:"node_type asc"},{label:t("Name Z-A"),value:"node_type desc"},{label:t("Most Popular"),value:"modified desc"}]),J=A(()=>Math.max(1,Math.ceil(P.value/N.value)));async function v(){k.value=!0;try{const a=new URLSearchParams({page:f.value.toString(),page_size:N.value.toString(),search:L.value,sort_by:M.value}),e=(await I.get(`/jingrow/node-marketplace?${a}`)).data;e.items?(g.value=e.items,P.value=e.total||0):(g.value=e||[],P.value=g.value.length)}catch(a){console.error("Failed to load nodes:",a),x.error(t("Failed to load nodes")),g.value=[],P.value=0}finally{k.value=!1}}function Q(a){N.value=a,f.value=1,localStorage.setItem("itemsPerPage",a.toString()),v()}function $(a){K.push({path:`/node-marketplace/${a.name}`,query:{returnTo:"/node-marketplace"}})}async function j(a){if(!a.file_url&&!a.repository_url){x.error(t("Node file URL or repository address does not exist"));return}try{const o=a.node_type||a.name;if(o&&(await I.get(`/jingrow/check-node/${o}`)).data.exists){Z.warning({title:t("Node already exists"),content:t('Node "{0}" is already installed, do you want to overwrite?').replace("{0}",o),positiveText:t("Confirm Overwrite"),negativeText:t("Cancel"),onPositiveClick:()=>{D(a)}});return}}catch(o){console.error("Check node exists error:",o)}D(a)}async function D(a){var o,e,y,F;try{z.value=!0,h.value=0,_.value=t("Preparing installation..."),U.value="info",C.value=!0;let u;if(a.file_url)_.value=t("Downloading node package..."),h.value=20,_.value=t("Installing node..."),h.value=30,u=await I.post("/jingrow/install-node-from-url",new URLSearchParams({url:a.file_url}),{headers:{...O(),"Content-Type":"application/x-www-form-urlencoded"}});else if(a.repository_url){_.value=t("Cloning repository..."),h.value=20,_.value=t("Installing node..."),h.value=30;const H=new URLSearchParams({repo_url:a.repository_url});u=await I.post("/jingrow/install-node-from-git",H,{headers:{...O(),"Content-Type":"application/x-www-form-urlencoded"}})}if(!u)throw new Error(t("Unable to determine installation method"));if(h.value=100,u.data.success)z.value=!1,U.value="success",_.value=t("Node installed successfully!"),x.success(t("Node installed successfully")),B(),typeof window<"u"&&window.dispatchEvent(new Event("nodeMetadataUpdated")),setTimeout(()=>{C.value=!1},2e3);else throw new Error(u.data.error||t("Installation failed"))}catch(u){console.error("Install node error:",u),z.value=!1,U.value="error",_.value=((e=(o=u.response)==null?void 0:o.data)==null?void 0:e.detail)||u.message||t("Installation failed"),x.error(((F=(y=u.response)==null?void 0:y.data)==null?void 0:F.detail)||t("Installation failed")),setTimeout(()=>{C.value=!1},3e3)}}function X(a,o){return a?a.length<=o?a:a.substring(0,o)+"...":""}async function B(){try{const a=await I.get("/jingrow/installed-node-types");if(a.data.success){const o=a.data.node_types||[];V.value=new Set(o.map(e=>e.toLowerCase()))}}catch(a){console.error("Load installed nodes error:",a)}}function G(a){return a?V.value.has(a.toLowerCase()):!1}return ae(()=>{v(),B(),window.addEventListener("installedNodesUpdated",()=>{B()})}),E([M],()=>{f.value=1,v()},{deep:!0}),E([f],()=>{v()}),E(()=>localStorage.getItem("itemsPerPage"),a=>{a&&(N.value=parseInt(a),f.value=1,v())}),(a,o)=>(c(),p("div",_e,[l("div",ge,[l("div",fe,[l("div",he,[l("h1",null,d(s(t)("Node Marketplace")),1),l("p",null,d(s(t)("Browse and install nodes from Jingrow Node Marketplace")),1)])])]),l("div",ye,[l("div",me,[l("div",we,[n(s(ne),{value:L.value,"onUpdate:value":o[0]||(o[0]=e=>L.value=e),placeholder:s(t)("Search nodes..."),clearable:"",size:"large",onKeyup:te(v,["enter"]),class:"search-input"},{prefix:i(()=>[n(s(b),null,{default:i(()=>[n(s(w),{icon:"tabler:search"})]),_:1})]),_:1},8,["value","placeholder"]),n(s(T),{type:"primary",size:"large",onClick:v,class:"search-button"},{icon:i(()=>[n(s(b),null,{default:i(()=>[n(s(w),{icon:"tabler:search"})]),_:1})]),default:i(()=>[S(" "+d(s(t)("Search")),1)]),_:1})])]),!k.value&&g.value.length>0?(c(),p("div",ke,[l("div",Ne,[o[4]||(o[4]=l("div",{class:"nodes-title"},null,-1)),l("div",Ce,[n(s(re),{value:M.value,"onUpdate:value":[o[1]||(o[1]=e=>M.value=e),v],options:q.value,placeholder:s(t)("Sort by"),style:{width:"150px"}},null,8,["value","options","placeholder"])])]),l("div",Ie,[(c(!0),p(se,null,oe(g.value,e=>(c(),p("div",{key:e.name,class:"node-card"},[l("div",{class:"node-icon",onClick:y=>$(e)},[e.icon?(c(),R(s(w),{key:0,icon:e.icon,width:48,height:48,style:ie({color:e.color||"#6b7280"})},null,8,["icon","style"])):(c(),p("div",Se,[n(s(b),{size:"48"},{default:i(()=>[n(s(w),{icon:"tabler:cube"})]),_:1})]))],8,be),l("div",xe,[l("div",Pe,[l("div",Me,[l("h3",{onClick:y=>$(e),class:"clickable-title"},d(e.title||e.name),9,ze),e.node_type?(c(),p("div",Ue,d(e.node_type),1)):m("",!0)])]),e.description?(c(),p("div",Te,d(X(e.description,80)),1)):m("",!0),e.group?(c(),p("div",Le,[n(s(b),null,{default:i(()=>[n(s(w),{icon:"tabler:category"})]),_:1}),l("span",null,d(e.group),1)])):m("",!0)]),l("div",$e,[n(s(T),{type:"default",onClick:y=>$(e)},{default:i(()=>[S(d(s(t)("View Details")),1)]),_:1},8,["onClick"]),G(e.node_type||e.name)?(c(),R(s(T),{key:0,type:"warning",onClick:y=>j(e)},{default:i(()=>[S(d(s(t)("Installed")),1)]),_:1},8,["onClick"])):(c(),R(s(T),{key:1,type:"primary",onClick:y=>j(e)},{default:i(()=>[S(d(s(t)("Install")),1)]),_:1},8,["onClick"]))])]))),128))]),l("div",Be,[n(s(ce),{page:f.value,"onUpdate:page":[o[2]||(o[2]=e=>f.value=e),v],"page-count":J.value,size:"large","show-size-picker":"","page-sizes":[20,50,100],"page-size":N.value,"onUpdate:pageSize":Q},null,8,["page","page-count","page-size"])])])):m("",!0),k.value?(c(),p("div",Ee,[n(s(de),{size:"large"},{description:i(()=>[S(d(s(t)("Loading nodes...")),1)]),_:1})])):m("",!0),!k.value&&g.value.length===0?(c(),p("div",Re,[n(s(ue),{description:s(t)("No nodes found")},{icon:i(()=>[n(s(b),null,{default:i(()=>[n(s(w),{icon:"tabler:cube"})]),_:1})]),_:1},8,["description"])])):m("",!0)]),n(pe,{modelValue:C.value,"onUpdate:modelValue":o[3]||(o[3]=e=>C.value=e),progress:h.value,message:_.value,status:U.value,installing:z.value,title:s(t)("Installing Node")},null,8,["modelValue","progress","message","status","installing","title"])]))}});const Ze=ve(Ve,[["__scopeId","data-v-34ff93b1"]]);export{Ze as default}; +import{d as W,u as Y,X as ee,r,c as A,o as ae,M as E,e as p,f as l,g as d,j as s,h as n,w as i,i as te,F as se,C as oe,y as m,k as le,a0 as I,t,l as c,$ as b,m as ne,p as S,n as T,Z as re,D as R,a1 as ie,_ as ce,as as de,aA as ue,a2 as O}from"./index-7b482730.js";import{I as w}from"./iconify-30ae5ba5.js";import{I as pe}from"./InstallProgressModal-1ec0a6fc.js";import{_ as ve}from"./_plugin-vue_export-helper-c27b6911.js";const _e={class:"node-marketplace"},ge={class:"page-header"},fe={class:"header-content"},he={class:"header-text"},ye={class:"content"},me={class:"search-container"},we={class:"search-bar"},ke={key:0,class:"nodes-section"},Ne={class:"nodes-header"},Ce={class:"sort-controls"},Ie={class:"nodes-grid"},be=["onClick"],Se={key:1,class:"node-icon-placeholder"},xe={class:"node-content"},Pe={class:"node-header"},Me={class:"node-title-section"},ze=["onClick"],Ue={key:0,class:"node-type"},Te={key:0,class:"node-description"},Le={key:1,class:"node-meta"},$e={class:"node-actions"},Be={class:"pagination-container"},Ee={key:1,class:"loading"},Re={key:2,class:"empty"},Ve=W({__name:"NodeMarketplace",setup(je){const x=Y(),Z=ee(),K=le(),L=r(""),k=r(!1),g=r([]),P=r(0),f=r(1),N=r(parseInt(localStorage.getItem("itemsPerPage")||"20")),M=r("creation desc"),z=r(!1),h=r(0),_=r(""),U=r("info"),C=r(!1),V=r(new Set),q=A(()=>[{label:t("Latest"),value:"creation desc"},{label:t("Oldest"),value:"creation asc"},{label:t("Name A-Z"),value:"node_type asc"},{label:t("Name Z-A"),value:"node_type desc"},{label:t("Most Popular"),value:"modified desc"}]),J=A(()=>Math.max(1,Math.ceil(P.value/N.value)));async function v(){k.value=!0;try{const a=new URLSearchParams({page:f.value.toString(),page_size:N.value.toString(),search:L.value,sort_by:M.value}),e=(await I.get(`/jingrow/node-marketplace?${a}`)).data;e.items?(g.value=e.items,P.value=e.total||0):(g.value=e||[],P.value=g.value.length)}catch(a){console.error("Failed to load nodes:",a),x.error(t("Failed to load nodes")),g.value=[],P.value=0}finally{k.value=!1}}function Q(a){N.value=a,f.value=1,localStorage.setItem("itemsPerPage",a.toString()),v()}function $(a){K.push({path:`/node-marketplace/${a.name}`,query:{returnTo:"/node-marketplace"}})}async function j(a){if(!a.file_url&&!a.repository_url){x.error(t("Node file URL or repository address does not exist"));return}try{const o=a.node_type||a.name;if(o&&(await I.get(`/jingrow/check-node/${o}`)).data.exists){Z.warning({title:t("Node already exists"),content:t('Node "{0}" is already installed, do you want to overwrite?').replace("{0}",o),positiveText:t("Confirm Overwrite"),negativeText:t("Cancel"),onPositiveClick:()=>{D(a)}});return}}catch(o){console.error("Check node exists error:",o)}D(a)}async function D(a){var o,e,y,F;try{z.value=!0,h.value=0,_.value=t("Preparing installation..."),U.value="info",C.value=!0;let u;if(a.file_url)_.value=t("Downloading node package..."),h.value=20,_.value=t("Installing node..."),h.value=30,u=await I.post("/jingrow/install-node-from-url",new URLSearchParams({url:a.file_url}),{headers:{...O(),"Content-Type":"application/x-www-form-urlencoded"}});else if(a.repository_url){_.value=t("Cloning repository..."),h.value=20,_.value=t("Installing node..."),h.value=30;const H=new URLSearchParams({repo_url:a.repository_url});u=await I.post("/jingrow/install-node-from-git",H,{headers:{...O(),"Content-Type":"application/x-www-form-urlencoded"}})}if(!u)throw new Error(t("Unable to determine installation method"));if(h.value=100,u.data.success)z.value=!1,U.value="success",_.value=t("Node installed successfully!"),x.success(t("Node installed successfully")),B(),typeof window<"u"&&window.dispatchEvent(new Event("nodeMetadataUpdated")),setTimeout(()=>{C.value=!1},2e3);else throw new Error(u.data.error||t("Installation failed"))}catch(u){console.error("Install node error:",u),z.value=!1,U.value="error",_.value=((e=(o=u.response)==null?void 0:o.data)==null?void 0:e.detail)||u.message||t("Installation failed"),x.error(((F=(y=u.response)==null?void 0:y.data)==null?void 0:F.detail)||t("Installation failed")),setTimeout(()=>{C.value=!1},3e3)}}function X(a,o){return a?a.length<=o?a:a.substring(0,o)+"...":""}async function B(){try{const a=await I.get("/jingrow/installed-node-types");if(a.data.success){const o=a.data.node_types||[];V.value=new Set(o.map(e=>e.toLowerCase()))}}catch(a){console.error("Load installed nodes error:",a)}}function G(a){return a?V.value.has(a.toLowerCase()):!1}return ae(()=>{v(),B(),window.addEventListener("installedNodesUpdated",()=>{B()})}),E([M],()=>{f.value=1,v()},{deep:!0}),E([f],()=>{v()}),E(()=>localStorage.getItem("itemsPerPage"),a=>{a&&(N.value=parseInt(a),f.value=1,v())}),(a,o)=>(c(),p("div",_e,[l("div",ge,[l("div",fe,[l("div",he,[l("h1",null,d(s(t)("Node Marketplace")),1),l("p",null,d(s(t)("Browse and install nodes from Jingrow Node Marketplace")),1)])])]),l("div",ye,[l("div",me,[l("div",we,[n(s(ne),{value:L.value,"onUpdate:value":o[0]||(o[0]=e=>L.value=e),placeholder:s(t)("Search nodes..."),clearable:"",size:"large",onKeyup:te(v,["enter"]),class:"search-input"},{prefix:i(()=>[n(s(b),null,{default:i(()=>[n(s(w),{icon:"tabler:search"})]),_:1})]),_:1},8,["value","placeholder"]),n(s(T),{type:"primary",size:"large",onClick:v,class:"search-button"},{icon:i(()=>[n(s(b),null,{default:i(()=>[n(s(w),{icon:"tabler:search"})]),_:1})]),default:i(()=>[S(" "+d(s(t)("Search")),1)]),_:1})])]),!k.value&&g.value.length>0?(c(),p("div",ke,[l("div",Ne,[o[4]||(o[4]=l("div",{class:"nodes-title"},null,-1)),l("div",Ce,[n(s(re),{value:M.value,"onUpdate:value":[o[1]||(o[1]=e=>M.value=e),v],options:q.value,placeholder:s(t)("Sort by"),style:{width:"150px"}},null,8,["value","options","placeholder"])])]),l("div",Ie,[(c(!0),p(se,null,oe(g.value,e=>(c(),p("div",{key:e.name,class:"node-card"},[l("div",{class:"node-icon",onClick:y=>$(e)},[e.icon?(c(),R(s(w),{key:0,icon:e.icon,width:48,height:48,style:ie({color:e.color||"#6b7280"})},null,8,["icon","style"])):(c(),p("div",Se,[n(s(b),{size:"48"},{default:i(()=>[n(s(w),{icon:"tabler:cube"})]),_:1})]))],8,be),l("div",xe,[l("div",Pe,[l("div",Me,[l("h3",{onClick:y=>$(e),class:"clickable-title"},d(e.title||e.name),9,ze),e.node_type?(c(),p("div",Ue,d(e.node_type),1)):m("",!0)])]),e.description?(c(),p("div",Te,d(X(e.description,80)),1)):m("",!0),e.group?(c(),p("div",Le,[n(s(b),null,{default:i(()=>[n(s(w),{icon:"tabler:category"})]),_:1}),l("span",null,d(e.group),1)])):m("",!0)]),l("div",$e,[n(s(T),{type:"default",onClick:y=>$(e)},{default:i(()=>[S(d(s(t)("View Details")),1)]),_:1},8,["onClick"]),G(e.node_type||e.name)?(c(),R(s(T),{key:0,type:"warning",onClick:y=>j(e)},{default:i(()=>[S(d(s(t)("Installed")),1)]),_:1},8,["onClick"])):(c(),R(s(T),{key:1,type:"primary",onClick:y=>j(e)},{default:i(()=>[S(d(s(t)("Install")),1)]),_:1},8,["onClick"]))])]))),128))]),l("div",Be,[n(s(ce),{page:f.value,"onUpdate:page":[o[2]||(o[2]=e=>f.value=e),v],"page-count":J.value,size:"large","show-size-picker":"","page-sizes":[20,50,100],"page-size":N.value,"onUpdate:pageSize":Q},null,8,["page","page-count","page-size"])])])):m("",!0),k.value?(c(),p("div",Ee,[n(s(de),{size:"large"},{description:i(()=>[S(d(s(t)("Loading nodes...")),1)]),_:1})])):m("",!0),!k.value&&g.value.length===0?(c(),p("div",Re,[n(s(ue),{description:s(t)("No nodes found")},{icon:i(()=>[n(s(b),null,{default:i(()=>[n(s(w),{icon:"tabler:cube"})]),_:1})]),_:1},8,["description"])])):m("",!0)]),n(pe,{modelValue:C.value,"onUpdate:modelValue":o[3]||(o[3]=e=>C.value=e),progress:h.value,message:_.value,status:U.value,installing:z.value,title:s(t)("Installing Node")},null,8,["modelValue","progress","message","status","installing","title"])]))}});const Ze=ve(Ve,[["__scopeId","data-v-34ff93b1"]]);export{Ze as default}; diff --git a/apps/jingrow/frontend/dist/assets/NodePalette-0bf3e03c.js b/apps/jingrow/frontend/dist/assets/NodePalette-e0efb88f.js similarity index 95% rename from apps/jingrow/frontend/dist/assets/NodePalette-0bf3e03c.js rename to apps/jingrow/frontend/dist/assets/NodePalette-e0efb88f.js index 2661c63..c204c7f 100644 --- a/apps/jingrow/frontend/dist/assets/NodePalette-0bf3e03c.js +++ b/apps/jingrow/frontend/dist/assets/NodePalette-e0efb88f.js @@ -1 +1 @@ -import{r as m,o as ee,K as te,c as k,l as n,e as s,f as l,Y as g,g as u,j as v,t as c,a4 as oe,a5 as ae,F as h,C as S,L as A,a1 as $,p as j,y as w,h as le,w as ne,T as se}from"./index-b37e64ca.js";import{u as ie,p as re,b as ue,N as q}from"./nodeMetadata-868a0a07.js";import{_ as ce}from"./_plugin-vue_export-helper-c27b6911.js";import"./vue-flow-core-e20a6f7d.js";import"./NodePropertyModal-c7168bd0.js";import"./SchemaFormRenderer-0384437a.js";import"./nodes-db5c425b.js";const de={class:"palette-header"},ve={class:"palette-tabs"},pe=["placeholder"],fe={class:"palette-content"},ge={class:"group-label"},me={class:"node-types-grid"},he=["onDragstart","onDblclick","onContextmenu","onMouseenter"],we={class:"node-type-label"},ye={key:0,class:"node-count"},_e={key:1,class:"fa fa-star favorite-icon",style:{color:"#f59e0b","margin-left":"2px","font-size":"13px"}},be={key:0,class:"empty-tip"},xe={class:"group-label"},Ne={class:"node-types-grid"},ke=["onDragstart","onDblclick","onContextmenu","onMouseenter"],Se={class:"node-type-label"},Ce={key:0,class:"node-count"},De={key:1,class:"fa fa-star favorite-icon",style:{color:"#f59e0b","margin-left":"2px","font-size":"13px"}},Le={key:0,class:"empty-tip"},Ee={class:"palette-tips"},Fe={class:"tip-item"},Me={class:"tip-item"},Oe={class:"tip-item"},$e={__name:"NodePalette",props:{class:{type:String,default:""}},setup(H){const W=H,C=m([]),D=ie(),x=m(null),y=m(""),f=m("all"),p=m(JSON.parse(localStorage.getItem("ai-agent-node-favorites")||"[]")),_=m(JSON.parse(localStorage.getItem("ai-agent-node-recent")||"[]")),d=m({show:!1,text:"",x:0,y:0,width:200,direction:"left"}),G=m(!1);let L=null;async function E(){await re(),C.value=ue()}ee(async()=>{await E(),typeof window<"u"&&window.addEventListener("nodeMetadataUpdated",E)}),te(()=>{typeof window<"u"&&window.removeEventListener("nodeMetadataUpdated",E)}),typeof window<"u"&&(window.addEventListener("recent-node-updated",()=>{_.value=JSON.parse(localStorage.getItem("ai-agent-node-recent")||"[]")}),window.addEventListener("fullscreenchange",()=>{G.value=!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}));const I=(t,e)=>{x.value=e,t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("application/vueflow",e.type),t.dataTransfer.setData("text/plain",e.type)},R=()=>{x.value=null};function K(){const t=document.querySelector(".vue-flow-container");if(!t)return{x:200,y:200};const e=t.getBoundingClientRect(),o=e.width/2+t.scrollLeft,a=e.height/2+t.scrollTop;if(window.vueFlowInstance&&typeof window.vueFlowInstance.project=="function"){const r=window.vueFlowInstance.project({x:o,y:a});return r.x+=Math.random()*20-10,r.y+=Math.random()*20-10,r}return{x:o,y:a}}const B=t=>{const e=K(),o={id:`${t.type}-${Date.now()}`,type:t.type,position:e,data:{}};D.addNode(o),D.selectNode(o.id),Z(t.type)};function X(t){p.value.includes(t)||(p.value.push(t),localStorage.setItem("ai-agent-node-favorites",JSON.stringify(p.value)))}function Q(t){p.value=p.value.filter(e=>e!==t),localStorage.setItem("ai-agent-node-favorites",JSON.stringify(p.value))}function J(t){p.value.includes(t)?Q(t):X(t)}function Z(t){_.value=[t,..._.value.filter(e=>e!==t)].slice(0,12),localStorage.setItem("ai-agent-node-recent",JSON.stringify(_.value))}const N=k(()=>{const t={};return D.nodes.forEach(e=>{t[e.type]=(t[e.type]||0)+1}),t});k(()=>{let t=C.value;if(y.value.trim()){const e=y.value.trim().toLowerCase();t=t.filter(o=>o.label.toLowerCase().includes(e)||o.type.toLowerCase().includes(e))}return t});const F=k(()=>{let t=C.value;if(y.value.trim()){const e=y.value.trim().toLowerCase();t=t.filter(o=>o.label.toLowerCase().includes(e)||o.type.toLowerCase().includes(e))}return f.value==="favorite"?t=t.filter(e=>p.value.includes(e.type)):f.value==="recent"&&(t=_.value.map(e=>t.find(o=>o.type===e)).filter(Boolean)),t}),M=k(()=>{const t=[];q.forEach(o=>{const a=F.value.filter(r=>r.group===o.group||!r.group&&o.group==="Other");a.length&&t.push({...o,nodes:a})});const e=F.value.filter(o=>!o.group||!q.some(a=>a.group===o.group));return e.length&&!t.some(o=>o.group==="Other")&&t.push({group:"Other",label:c("Other"),nodes:e}),t});function T(t,e){d.value.show=!0,d.value.text=e;const o=t.target.getBoundingClientRect(),a=200,r=38,i=8;let O=o.left-a-i,b=o.top+o.height/2-r/2,U="left";O<8&&(O=o.right+i,U="right");const V=8,Y=window.innerHeight-r-8;bY&&(b=Y),d.value.x=O,d.value.y=b,d.value.width=a,d.value.direction=U}function z(t,e){clearTimeout(L),L=setTimeout(()=>T(t,e),200)}function P(){clearTimeout(L),d.value.show=!1}return(t,e)=>(n(),s(h,null,[l("div",{class:g(["node-palette",W.class])},[l("div",de,[l("div",ve,[l("button",{class:g(["tab-btn",{active:f.value==="all"}]),onClick:e[0]||(e[0]=o=>f.value="all")},u(v(c)("All")),3),l("button",{class:g(["tab-btn",{active:f.value==="recent"}]),onClick:e[1]||(e[1]=o=>f.value="recent")},u(v(c)("Recent")),3),l("button",{class:g(["tab-btn",{active:f.value==="favorite"}]),onClick:e[2]||(e[2]=o=>f.value="favorite")},u(v(c)("Favorites")),3)]),oe(l("input",{"onUpdate:modelValue":e[3]||(e[3]=o=>y.value=o),class:"palette-search",placeholder:v(c)("Search node type/name...")},null,8,pe),[[ae,y.value]])]),l("div",fe,[f.value==="all"?(n(),s(h,{key:0},[(n(!0),s(h,null,S(M.value,o=>(n(),s("div",{key:o.group,class:"node-group"},[l("div",ge,u(v(c)(o.label)),1),l("div",me,[(n(!0),s(h,null,S(o.nodes,a=>{var r;return n(),s("div",{key:a.type,class:g(["node-type-item",{dragging:((r=x.value)==null?void 0:r.type)===a.type,"is-favorite":p.value.includes(a.type)}]),draggable:"true",onDragstart:i=>I(i,a),onDragend:R,onDblclick:i=>B(a),onContextmenu:A(i=>J(a.type),["right","prevent"]),onMouseenter:i=>z(i,a.description),onMouseleave:e[4]||(e[4]=i=>P())},[l("div",{class:"node-type-icon",style:$({color:a.color})},[l("i",{class:g(`fa ${a.icon}`)},null,2)],4),l("div",we,[j(u(v(c)(a.label))+" ",1),N.value[a.type]?(n(),s("span",ye,"("+u(N.value[a.type])+")",1)):w("",!0),p.value.includes(a.type)?(n(),s("i",_e)):w("",!0)])],42,he)}),128))])]))),128)),M.value.length===0?(n(),s("div",be,u(v(c)("No matching nodes")),1)):w("",!0)],64)):(n(),s(h,{key:1},[(n(!0),s(h,null,S(M.value,o=>(n(),s("div",{key:o.group,class:"node-group"},[l("div",xe,u(v(c)(o.label)),1),l("div",Ne,[(n(!0),s(h,null,S(o.nodes,a=>{var r;return n(),s("div",{key:a.type,class:g(["node-type-item",{dragging:((r=x.value)==null?void 0:r.type)===a.type,"is-favorite":p.value.includes(a.type)}]),draggable:"true",onDragstart:i=>I(i,a),onDragend:R,onDblclick:i=>B(a),onContextmenu:A(i=>J(a.type),["right","prevent"]),onMouseenter:i=>z(i,a.description),onMouseleave:e[5]||(e[5]=i=>P())},[l("div",{class:"node-type-icon",style:$({color:a.color})},[l("i",{class:g(`fa ${a.icon}`)},null,2)],4),l("div",Se,[j(u(v(c)(a.label))+" ",1),N.value[a.type]?(n(),s("span",Ce,"("+u(N.value[a.type])+")",1)):w("",!0),p.value.includes(a.type)?(n(),s("i",De)):w("",!0)])],42,ke)}),128))])]))),128)),F.value.length===0?(n(),s("div",Le,u(v(c)("No matching nodes")),1)):w("",!0)],64)),l("div",Ee,[l("div",Fe,[e[6]||(e[6]=l("i",{class:"fa fa-info-circle"},null,-1)),l("span",null,u(v(c)("Drag nodes to canvas to add")),1)]),l("div",Me,[e[7]||(e[7]=l("i",{class:"fa fa-mouse-pointer"},null,-1)),l("span",null,u(v(c)("Double click node to add quickly")),1)]),l("div",Oe,[e[8]||(e[8]=l("i",{class:"fa fa-star"},null,-1)),l("span",null,u(v(c)("Right click node to favorite/unfavorite")),1)])])])],2),le(se,{name:"fade"},{default:ne(()=>[d.value.show?(n(),s("div",{key:0,class:g(["custom-tooltip",d.value.direction]),style:$({left:d.value.x+"px",top:d.value.y+"px",width:d.value.width+"px"})},u(d.value.text),7)):w("",!0)]),_:1})],64))}},Ve=ce($e,[["__scopeId","data-v-0b159d3d"]]);export{Ve as default}; +import{r as m,o as ee,K as te,c as k,l as n,e as s,f as l,Y as g,g as u,j as v,t as c,a4 as oe,a5 as ae,F as h,C as S,L as A,a1 as $,p as j,y as w,h as le,w as ne,T as se}from"./index-7b482730.js";import{u as ie,p as re,b as ue,N as q}from"./nodeMetadata-55f4474f.js";import{_ as ce}from"./_plugin-vue_export-helper-c27b6911.js";import"./vue-flow-core-41a1e515.js";import"./NodePropertyModal-94ca3f6a.js";import"./SchemaFormRenderer-f7be2793.js";import"./nodes-1118f3b4.js";const de={class:"palette-header"},ve={class:"palette-tabs"},pe=["placeholder"],fe={class:"palette-content"},ge={class:"group-label"},me={class:"node-types-grid"},he=["onDragstart","onDblclick","onContextmenu","onMouseenter"],we={class:"node-type-label"},ye={key:0,class:"node-count"},_e={key:1,class:"fa fa-star favorite-icon",style:{color:"#f59e0b","margin-left":"2px","font-size":"13px"}},be={key:0,class:"empty-tip"},xe={class:"group-label"},Ne={class:"node-types-grid"},ke=["onDragstart","onDblclick","onContextmenu","onMouseenter"],Se={class:"node-type-label"},Ce={key:0,class:"node-count"},De={key:1,class:"fa fa-star favorite-icon",style:{color:"#f59e0b","margin-left":"2px","font-size":"13px"}},Le={key:0,class:"empty-tip"},Ee={class:"palette-tips"},Fe={class:"tip-item"},Me={class:"tip-item"},Oe={class:"tip-item"},$e={__name:"NodePalette",props:{class:{type:String,default:""}},setup(H){const W=H,C=m([]),D=ie(),x=m(null),y=m(""),f=m("all"),p=m(JSON.parse(localStorage.getItem("ai-agent-node-favorites")||"[]")),_=m(JSON.parse(localStorage.getItem("ai-agent-node-recent")||"[]")),d=m({show:!1,text:"",x:0,y:0,width:200,direction:"left"}),G=m(!1);let L=null;async function E(){await re(),C.value=ue()}ee(async()=>{await E(),typeof window<"u"&&window.addEventListener("nodeMetadataUpdated",E)}),te(()=>{typeof window<"u"&&window.removeEventListener("nodeMetadataUpdated",E)}),typeof window<"u"&&(window.addEventListener("recent-node-updated",()=>{_.value=JSON.parse(localStorage.getItem("ai-agent-node-recent")||"[]")}),window.addEventListener("fullscreenchange",()=>{G.value=!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}));const I=(t,e)=>{x.value=e,t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("application/vueflow",e.type),t.dataTransfer.setData("text/plain",e.type)},R=()=>{x.value=null};function K(){const t=document.querySelector(".vue-flow-container");if(!t)return{x:200,y:200};const e=t.getBoundingClientRect(),o=e.width/2+t.scrollLeft,a=e.height/2+t.scrollTop;if(window.vueFlowInstance&&typeof window.vueFlowInstance.project=="function"){const r=window.vueFlowInstance.project({x:o,y:a});return r.x+=Math.random()*20-10,r.y+=Math.random()*20-10,r}return{x:o,y:a}}const B=t=>{const e=K(),o={id:`${t.type}-${Date.now()}`,type:t.type,position:e,data:{}};D.addNode(o),D.selectNode(o.id),Z(t.type)};function X(t){p.value.includes(t)||(p.value.push(t),localStorage.setItem("ai-agent-node-favorites",JSON.stringify(p.value)))}function Q(t){p.value=p.value.filter(e=>e!==t),localStorage.setItem("ai-agent-node-favorites",JSON.stringify(p.value))}function J(t){p.value.includes(t)?Q(t):X(t)}function Z(t){_.value=[t,..._.value.filter(e=>e!==t)].slice(0,12),localStorage.setItem("ai-agent-node-recent",JSON.stringify(_.value))}const N=k(()=>{const t={};return D.nodes.forEach(e=>{t[e.type]=(t[e.type]||0)+1}),t});k(()=>{let t=C.value;if(y.value.trim()){const e=y.value.trim().toLowerCase();t=t.filter(o=>o.label.toLowerCase().includes(e)||o.type.toLowerCase().includes(e))}return t});const F=k(()=>{let t=C.value;if(y.value.trim()){const e=y.value.trim().toLowerCase();t=t.filter(o=>o.label.toLowerCase().includes(e)||o.type.toLowerCase().includes(e))}return f.value==="favorite"?t=t.filter(e=>p.value.includes(e.type)):f.value==="recent"&&(t=_.value.map(e=>t.find(o=>o.type===e)).filter(Boolean)),t}),M=k(()=>{const t=[];q.forEach(o=>{const a=F.value.filter(r=>r.group===o.group||!r.group&&o.group==="Other");a.length&&t.push({...o,nodes:a})});const e=F.value.filter(o=>!o.group||!q.some(a=>a.group===o.group));return e.length&&!t.some(o=>o.group==="Other")&&t.push({group:"Other",label:c("Other"),nodes:e}),t});function T(t,e){d.value.show=!0,d.value.text=e;const o=t.target.getBoundingClientRect(),a=200,r=38,i=8;let O=o.left-a-i,b=o.top+o.height/2-r/2,U="left";O<8&&(O=o.right+i,U="right");const V=8,Y=window.innerHeight-r-8;bY&&(b=Y),d.value.x=O,d.value.y=b,d.value.width=a,d.value.direction=U}function z(t,e){clearTimeout(L),L=setTimeout(()=>T(t,e),200)}function P(){clearTimeout(L),d.value.show=!1}return(t,e)=>(n(),s(h,null,[l("div",{class:g(["node-palette",W.class])},[l("div",de,[l("div",ve,[l("button",{class:g(["tab-btn",{active:f.value==="all"}]),onClick:e[0]||(e[0]=o=>f.value="all")},u(v(c)("All")),3),l("button",{class:g(["tab-btn",{active:f.value==="recent"}]),onClick:e[1]||(e[1]=o=>f.value="recent")},u(v(c)("Recent")),3),l("button",{class:g(["tab-btn",{active:f.value==="favorite"}]),onClick:e[2]||(e[2]=o=>f.value="favorite")},u(v(c)("Favorites")),3)]),oe(l("input",{"onUpdate:modelValue":e[3]||(e[3]=o=>y.value=o),class:"palette-search",placeholder:v(c)("Search node type/name...")},null,8,pe),[[ae,y.value]])]),l("div",fe,[f.value==="all"?(n(),s(h,{key:0},[(n(!0),s(h,null,S(M.value,o=>(n(),s("div",{key:o.group,class:"node-group"},[l("div",ge,u(v(c)(o.label)),1),l("div",me,[(n(!0),s(h,null,S(o.nodes,a=>{var r;return n(),s("div",{key:a.type,class:g(["node-type-item",{dragging:((r=x.value)==null?void 0:r.type)===a.type,"is-favorite":p.value.includes(a.type)}]),draggable:"true",onDragstart:i=>I(i,a),onDragend:R,onDblclick:i=>B(a),onContextmenu:A(i=>J(a.type),["right","prevent"]),onMouseenter:i=>z(i,a.description),onMouseleave:e[4]||(e[4]=i=>P())},[l("div",{class:"node-type-icon",style:$({color:a.color})},[l("i",{class:g(`fa ${a.icon}`)},null,2)],4),l("div",we,[j(u(v(c)(a.label))+" ",1),N.value[a.type]?(n(),s("span",ye,"("+u(N.value[a.type])+")",1)):w("",!0),p.value.includes(a.type)?(n(),s("i",_e)):w("",!0)])],42,he)}),128))])]))),128)),M.value.length===0?(n(),s("div",be,u(v(c)("No matching nodes")),1)):w("",!0)],64)):(n(),s(h,{key:1},[(n(!0),s(h,null,S(M.value,o=>(n(),s("div",{key:o.group,class:"node-group"},[l("div",xe,u(v(c)(o.label)),1),l("div",Ne,[(n(!0),s(h,null,S(o.nodes,a=>{var r;return n(),s("div",{key:a.type,class:g(["node-type-item",{dragging:((r=x.value)==null?void 0:r.type)===a.type,"is-favorite":p.value.includes(a.type)}]),draggable:"true",onDragstart:i=>I(i,a),onDragend:R,onDblclick:i=>B(a),onContextmenu:A(i=>J(a.type),["right","prevent"]),onMouseenter:i=>z(i,a.description),onMouseleave:e[5]||(e[5]=i=>P())},[l("div",{class:"node-type-icon",style:$({color:a.color})},[l("i",{class:g(`fa ${a.icon}`)},null,2)],4),l("div",Se,[j(u(v(c)(a.label))+" ",1),N.value[a.type]?(n(),s("span",Ce,"("+u(N.value[a.type])+")",1)):w("",!0),p.value.includes(a.type)?(n(),s("i",De)):w("",!0)])],42,ke)}),128))])]))),128)),F.value.length===0?(n(),s("div",Le,u(v(c)("No matching nodes")),1)):w("",!0)],64)),l("div",Ee,[l("div",Fe,[e[6]||(e[6]=l("i",{class:"fa fa-info-circle"},null,-1)),l("span",null,u(v(c)("Drag nodes to canvas to add")),1)]),l("div",Me,[e[7]||(e[7]=l("i",{class:"fa fa-mouse-pointer"},null,-1)),l("span",null,u(v(c)("Double click node to add quickly")),1)]),l("div",Oe,[e[8]||(e[8]=l("i",{class:"fa fa-star"},null,-1)),l("span",null,u(v(c)("Right click node to favorite/unfavorite")),1)])])])],2),le(se,{name:"fade"},{default:ne(()=>[d.value.show?(n(),s("div",{key:0,class:g(["custom-tooltip",d.value.direction]),style:$({left:d.value.x+"px",top:d.value.y+"px",width:d.value.width+"px"})},u(d.value.text),7)):w("",!0)]),_:1})],64))}},Ve=ce($e,[["__scopeId","data-v-0b159d3d"]]);export{Ve as default}; diff --git a/apps/jingrow/frontend/dist/assets/NodePropertyModal-c7168bd0.js b/apps/jingrow/frontend/dist/assets/NodePropertyModal-94ca3f6a.js similarity index 96% rename from apps/jingrow/frontend/dist/assets/NodePropertyModal-c7168bd0.js rename to apps/jingrow/frontend/dist/assets/NodePropertyModal-94ca3f6a.js index ebec932..c1d778f 100644 --- a/apps/jingrow/frontend/dist/assets/NodePropertyModal-c7168bd0.js +++ b/apps/jingrow/frontend/dist/assets/NodePropertyModal-94ca3f6a.js @@ -1 +1 @@ -import{c as l,l as u,D as h,e as g,f as t,aC as d,g as n,j as c,t as a,a1 as v,L as _,y as w,aN as x}from"./index-b37e64ca.js";import{_ as S}from"./_plugin-vue_export-helper-c27b6911.js";const T={class:"node-property-modal-header"},k={class:"node-property-modal-body"},N={class:"node-property-modal-footer"},C={__name:"NodePropertyModal",props:{modelValue:Boolean,title:{type:String,default:""},nodeLabel:{type:String,default:""},width:{type:[String,Number],default:900},maxHeight:{type:[String,Number],default:"90vh"},teleportTo:{type:[String,Object],default:null}},emits:["update:modelValue","close","save"],setup(s,{emit:m}){const e=s,i=m,y=l(()=>e.title?e.title:`${a("Node Properties")}-${e.nodeLabel||a("Node")}`),f=l(()=>e.teleportTo?e.teleportTo:window.nodePropertyTeleportTarget?window.nodePropertyTeleportTarget.value:"#ai-agent-flow-builder-container"),r=()=>{i("update:modelValue",!1),i("close")},b=l(()=>({width:typeof e.width=="number"?e.width+"px":e.width,maxWidth:"98vw",maxHeight:typeof e.maxHeight=="number"?e.maxHeight+"px":e.maxHeight,background:"white",borderRadius:"10px",boxShadow:"0 8px 32px rgba(0,0,0,0.18)",display:"flex",flexDirection:"column"}));return(o,p)=>(u(),h(x,{to:f.value},[s.modelValue?(u(),g("div",{key:0,class:"node-property-modal-mask",onClick:_(r,["self"])},[t("div",{class:"node-property-modal-content",style:v(b.value)},[t("div",T,[d(o.$slots,"header",{},()=>[t("h4",null,n(y.value),1)],!0),t("button",{class:"modal-close",onClick:r},"×")]),t("div",k,[d(o.$slots,"default",{},void 0,!0)]),t("div",N,[d(o.$slots,"footer",{},()=>[t("button",{class:"btn btn-secondary",onClick:r},n(c(a)("Cancel")),1),t("button",{class:"btn btn-primary",onClick:p[0]||(p[0]=$=>o.$emit("save"))},n(c(a)("Save")),1)],!0)])],4)])):w("",!0)],8,["to"]))}},B=S(C,[["__scopeId","data-v-6c76d832"]]);export{B as default}; +import{c as l,l as u,D as h,e as g,f as t,aC as d,g as n,j as c,t as a,a1 as v,L as _,y as w,aN as x}from"./index-7b482730.js";import{_ as S}from"./_plugin-vue_export-helper-c27b6911.js";const T={class:"node-property-modal-header"},k={class:"node-property-modal-body"},N={class:"node-property-modal-footer"},C={__name:"NodePropertyModal",props:{modelValue:Boolean,title:{type:String,default:""},nodeLabel:{type:String,default:""},width:{type:[String,Number],default:900},maxHeight:{type:[String,Number],default:"90vh"},teleportTo:{type:[String,Object],default:null}},emits:["update:modelValue","close","save"],setup(s,{emit:m}){const e=s,i=m,y=l(()=>e.title?e.title:`${a("Node Properties")}-${e.nodeLabel||a("Node")}`),f=l(()=>e.teleportTo?e.teleportTo:window.nodePropertyTeleportTarget?window.nodePropertyTeleportTarget.value:"#ai-agent-flow-builder-container"),r=()=>{i("update:modelValue",!1),i("close")},b=l(()=>({width:typeof e.width=="number"?e.width+"px":e.width,maxWidth:"98vw",maxHeight:typeof e.maxHeight=="number"?e.maxHeight+"px":e.maxHeight,background:"white",borderRadius:"10px",boxShadow:"0 8px 32px rgba(0,0,0,0.18)",display:"flex",flexDirection:"column"}));return(o,p)=>(u(),h(x,{to:f.value},[s.modelValue?(u(),g("div",{key:0,class:"node-property-modal-mask",onClick:_(r,["self"])},[t("div",{class:"node-property-modal-content",style:v(b.value)},[t("div",T,[d(o.$slots,"header",{},()=>[t("h4",null,n(y.value),1)],!0),t("button",{class:"modal-close",onClick:r},"×")]),t("div",k,[d(o.$slots,"default",{},void 0,!0)]),t("div",N,[d(o.$slots,"footer",{},()=>[t("button",{class:"btn btn-secondary",onClick:r},n(c(a)("Cancel")),1),t("button",{class:"btn btn-primary",onClick:p[0]||(p[0]=$=>o.$emit("save"))},n(c(a)("Save")),1)],!0)])],4)])):w("",!0)],8,["to"]))}},B=S(C,[["__scopeId","data-v-6c76d832"]]);export{B as default}; diff --git a/apps/jingrow/frontend/dist/assets/Password-9db4e189.js b/apps/jingrow/frontend/dist/assets/Password-1628507d.js similarity index 93% rename from apps/jingrow/frontend/dist/assets/Password-9db4e189.js rename to apps/jingrow/frontend/dist/assets/Password-1628507d.js index 2ed6350..59a4305 100644 --- a/apps/jingrow/frontend/dist/assets/Password-9db4e189.js +++ b/apps/jingrow/frontend/dist/assets/Password-1628507d.js @@ -1 +1 @@ -import{d as n,c as p,e as o,f as c,p as f,g as i,y as u,h as _,j as m,Y as b,l as s,m as y}from"./index-b37e64ca.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},w={key:0,class:"required"},N=n({__name:"Password",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(l){const d=l,t=p(()=>d.df.label_layout||"vertical");return(e,a)=>(s(),o("div",{class:b(["field-wrapper",`layout-${t.value}`])},[c("label",g,[f(i(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(s(),o("span",w,"*")):u("",!0)]),_(m(y),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=r=>e.record[e.df.fieldname]=r),type:"password",placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const h=v(N,[["__scopeId","data-v-f8b62ec1"]]),V=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{V as _}; +import{d as n,c as p,e as o,f as c,p as f,g as i,y as u,h as _,j as m,Y as b,l as s,m as y}from"./index-7b482730.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},w={key:0,class:"required"},N=n({__name:"Password",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(l){const d=l,t=p(()=>d.df.label_layout||"vertical");return(e,a)=>(s(),o("div",{class:b(["field-wrapper",`layout-${t.value}`])},[c("label",g,[f(i(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(s(),o("span",w,"*")):u("",!0)]),_(m(y),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=r=>e.record[e.df.fieldname]=r),type:"password",placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const h=v(N,[["__scopeId","data-v-f8b62ec1"]]),V=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"}));export{V as _}; diff --git a/apps/jingrow/frontend/dist/assets/Percent-2e2456c4.js b/apps/jingrow/frontend/dist/assets/Percent-7a55d50d.js similarity index 92% rename from apps/jingrow/frontend/dist/assets/Percent-2e2456c4.js rename to apps/jingrow/frontend/dist/assets/Percent-7a55d50d.js index c797467..4e5beb8 100644 --- a/apps/jingrow/frontend/dist/assets/Percent-2e2456c4.js +++ b/apps/jingrow/frontend/dist/assets/Percent-7a55d50d.js @@ -1 +1 @@ -import{d as l,c as n,e as a,f as c,p as d,g as _,y as p,h as i,j as f,Y as u,l as t,az as m}from"./index-b37e64ca.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const b={class:"field-label"},g={key:0,class:"required"},v=l({__name:"Percent",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(o){const r=o,s=n(()=>r.df.label_layout||"vertical");return(e,h)=>(t(),a("div",{class:u(["field-wrapper",`layout-${s.value}`])},[c("label",b,[d(_(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(t(),a("span",g,"*")):p("",!0)]),i(f(m),{type:"line",percentage:Number(e.record[e.df.fieldname])||0,"show-indicator":!0},null,8,["percentage"])],2))}});const N=y(v,[["__scopeId","data-v-90ae1ce6"]]),V=Object.freeze(Object.defineProperty({__proto__:null,default:N},Symbol.toStringTag,{value:"Module"}));export{V as _}; +import{d as l,c as n,e as a,f as c,p as d,g as _,y as p,h as i,j as f,Y as u,l as t,az as m}from"./index-7b482730.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const b={class:"field-label"},g={key:0,class:"required"},v=l({__name:"Percent",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(o){const r=o,s=n(()=>r.df.label_layout||"vertical");return(e,h)=>(t(),a("div",{class:u(["field-wrapper",`layout-${s.value}`])},[c("label",b,[d(_(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(t(),a("span",g,"*")):p("",!0)]),i(f(m),{type:"line",percentage:Number(e.record[e.df.fieldname])||0,"show-indicator":!0},null,8,["percentage"])],2))}});const N=y(v,[["__scopeId","data-v-90ae1ce6"]]),V=Object.freeze(Object.defineProperty({__proto__:null,default:N},Symbol.toStringTag,{value:"Module"}));export{V as _}; diff --git a/apps/jingrow/frontend/dist/assets/Phone-5865a10d.js b/apps/jingrow/frontend/dist/assets/Phone-183c9dac.js similarity index 93% rename from apps/jingrow/frontend/dist/assets/Phone-5865a10d.js rename to apps/jingrow/frontend/dist/assets/Phone-183c9dac.js index e117893..3c9004a 100644 --- a/apps/jingrow/frontend/dist/assets/Phone-5865a10d.js +++ b/apps/jingrow/frontend/dist/assets/Phone-183c9dac.js @@ -1 +1 @@ -import{d as r,c as p,e as o,f as c,p as i,g as f,y as u,h as _,j as m,Y as b,l,m as y}from"./index-b37e64ca.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const h={class:"field-label"},g={key:0,class:"required"},N=r({__name:"Phone",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(t){const d=t,s=p(()=>d.df.label_layout||"vertical");return(e,a)=>(l(),o("div",{class:b(["field-wrapper",`layout-${s.value}`])},[c("label",h,[i(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),o("span",g,"*")):u("",!0)]),_(m(y),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=n=>e.record[e.df.fieldname]=n),type:"text",placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const B=v(N,[["__scopeId","data-v-78ca8db2"]]),j=Object.freeze(Object.defineProperty({__proto__:null,default:B},Symbol.toStringTag,{value:"Module"}));export{j as _}; +import{d as r,c as p,e as o,f as c,p as i,g as f,y as u,h as _,j as m,Y as b,l,m as y}from"./index-7b482730.js";import{_ as v}from"./_plugin-vue_export-helper-c27b6911.js";const h={class:"field-label"},g={key:0,class:"required"},N=r({__name:"Phone",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(t){const d=t,s=p(()=>d.df.label_layout||"vertical");return(e,a)=>(l(),o("div",{class:b(["field-wrapper",`layout-${s.value}`])},[c("label",h,[i(f(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(l(),o("span",g,"*")):u("",!0)]),_(m(y),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=n=>e.record[e.df.fieldname]=n),type:"text",placeholder:e.ctx.t(e.df.fieldname),disabled:!e.canEdit},null,8,["value","placeholder","disabled"])],2))}});const B=v(N,[["__scopeId","data-v-78ca8db2"]]),j=Object.freeze(Object.defineProperty({__proto__:null,default:B},Symbol.toStringTag,{value:"Module"}));export{j as _}; diff --git a/apps/jingrow/frontend/dist/assets/PublishApp-6a75806b.js b/apps/jingrow/frontend/dist/assets/PublishApp-2a667051.js similarity index 95% rename from apps/jingrow/frontend/dist/assets/PublishApp-6a75806b.js rename to apps/jingrow/frontend/dist/assets/PublishApp-2a667051.js index b3c77df..03bb23d 100644 --- a/apps/jingrow/frontend/dist/assets/PublishApp-6a75806b.js +++ b/apps/jingrow/frontend/dist/assets/PublishApp-2a667051.js @@ -1 +1 @@ -import{d as Y,u as G,r as v,e as g,f as s,g as c,j as e,h as o,w as d,Y as H,L as y,y as T,p as x,k as K,a0 as V,l as b,t as i,$ as D,n as C,m as k}from"./index-b37e64ca.js";import{I as w}from"./iconify-b5ab1212.js";import{_ as Q}from"./Jeditor.vue_vue_type_style_index_0_lang-27957db9.js";import{_ as X}from"./_plugin-vue_export-helper-c27b6911.js";import"./common-0beb20f4.js";const Z={class:"app-detail"},ee={class:"page-header"},ae={class:"header-content"},se={class:"header-text"},le={class:"header-actions"},te={class:"app-content"},oe={class:"app-card"},ie={class:"app-info-section"},ne={class:"app-content-layout"},re={class:"app-image-section"},ce=["src"],de={key:1,class:"image-actions"},pe={key:2,class:"placeholder-image"},ue={class:"upload-hint"},fe={key:3,class:"drag-overlay"},ve={class:"app-info-content"},_e={class:"info-list"},me={class:"info-item"},he={class:"label"},ge={class:"info-item"},ye={class:"label"},be={class:"info-item"},De={class:"label"},ke={class:"info-item"},we={class:"label"},Fe={class:"info-item"},Ee={class:"label"},Ue={class:"app-description-section"},xe={class:"description-content"},Ie=Y({__name:"PublishApp",setup(Ce){const A=K(),u=G(),I=v(!1),_=v(""),F=v(""),m=v(!1),E=v(null),n=v({title:"",app_name:"",subtitle:"",repository_url:"",file_url:"",description:""}),z=()=>{A.push("/app-marketplace")},j=async l=>{var t;m.value=!1;const a=(t=l.dataTransfer)==null?void 0:t.files;if(a&&a.length>0){const r=a[0];r.type.startsWith("image/")?await L({file:{file:r}}):u.error("请选择图片文件")}},M=l=>{l.preventDefault()},O=l=>{l.preventDefault(),m.value=!0},S=l=>{l.preventDefault();const a=l.currentTarget,t=l.relatedTarget;a.contains(t)||(m.value=!1)},q=()=>{var l;(l=E.value)==null||l.click()},$=async l=>{var r;const t=(r=l.target.files)==null?void 0:r[0];t&&await L({file:{file:t}})},J=()=>{_.value="",F.value="",E.value&&(E.value.value="")},L=async l=>{var h,R,N,B;const{file:a,onFinish:t,onError:r}=(h=l.file)!=null&&h.file?{file:l.file.file,onFinish:l.onFinish,onError:l.onError}:(R=l.fileList)!=null&&R.length?{file:l.fileList[0].file,onFinish:l.onFinish,onError:l.onError}:l instanceof File?{file:l,onFinish:null,onError:null}:{file:null,onFinish:null,onError:null};if(!a||!(a instanceof File)){r&&r(new Error("无效的文件"));return}const U=new FileReader;U.onload=f=>{var p;_.value=(p=f.target)==null?void 0:p.result},U.readAsDataURL(a);try{const f=new FormData;f.append("file",a);const p=await V.post("/jingrow/upload-image",f,{timeout:3e4});if(p.data.success)F.value=p.data.url,u.success("图片上传成功"),t&&t();else{const P=p.data.error||"图片上传失败";u.error(P),r&&r(new Error(P))}}catch(f){const p=((B=(N=f.response)==null?void 0:N.data)==null?void 0:B.detail)||f.message||"图片上传失败";u.error("图片上传失败: "+p),r&&r(new Error(p))}},W=async()=>{var l,a;if(!n.value.title||!n.value.app_name){u.error("请填写应用标题和应用名称");return}I.value=!0;try{const t=new FormData;Object.entries(n.value).forEach(([U,h])=>{h&&t.append(U,h)}),F.value&&t.append("app_image",F.value),(await V.post("/jingrow/create-app",t)).data.success?(u.success("应用发布成功"),A.push("/app-marketplace")):u.error("应用发布失败")}catch(t){u.error(((a=(l=t.response)==null?void 0:l.data)==null?void 0:a.detail)||"应用发布失败")}finally{I.value=!1}};return(l,a)=>(b(),g("div",Z,[s("div",ee,[s("div",ae,[s("div",se,[s("h1",null,c(e(i)("Publish App")),1)]),s("div",le,[o(e(C),{onClick:z,size:"medium"},{icon:d(()=>[o(e(D),null,{default:d(()=>[o(e(w),{icon:"tabler:arrow-left"})]),_:1})]),default:d(()=>[x(" "+c(e(i)("Back")),1)]),_:1}),o(e(C),{type:"primary",onClick:W,loading:I.value,size:"medium"},{icon:d(()=>[o(e(D),null,{default:d(()=>[o(e(w),{icon:"tabler:upload"})]),_:1})]),default:d(()=>[x(" "+c(e(i)("Publish")),1)]),_:1},8,["loading"])])])]),s("div",te,[s("div",oe,[s("div",ie,[s("div",ne,[s("div",re,[s("div",{class:H(["app-image",{"drag-over":m.value}]),onDragover:y(M,["prevent"]),onDragenter:y(O,["prevent"]),onDragleave:y(S,["prevent"]),onDrop:y(j,["prevent"]),onClick:q},[_.value?(b(),g("img",{key:0,src:_.value,alt:"应用图片预览"},null,8,ce)):T("",!0),_.value?(b(),g("div",de,[o(e(C),{type:"error",size:"small",circle:"",onClick:y(J,["stop"]),class:"remove-btn"},{icon:d(()=>[o(e(D),null,{default:d(()=>[o(e(w),{icon:"tabler:x"})]),_:1})]),_:1})])):(b(),g("div",pe,[o(e(D),{size:"80"},{default:d(()=>[o(e(w),{icon:"tabler:apps"})]),_:1}),s("p",ue,c(e(i)("Click or drag to upload")),1)])),m.value?(b(),g("div",fe,[o(e(D),{size:"60"},{default:d(()=>[o(e(w),{icon:"tabler:upload"})]),_:1}),s("p",null,c(e(i)("Drop image here")),1)])):T("",!0)],34),s("input",{ref_key:"fileInput",ref:E,type:"file",accept:"image/*",style:{display:"none"},onChange:$},null,544)]),s("div",ve,[a[8]||(a[8]=s("div",{class:"app-header"},null,-1)),s("div",_e,[s("div",me,[s("span",he,[x(c(e(i)("App Title"))+":",1),a[6]||(a[6]=s("span",{class:"required"},"*",-1))]),o(e(k),{value:n.value.title,"onUpdate:value":a[0]||(a[0]=t=>n.value.title=t),placeholder:e(i)("App title")},null,8,["value","placeholder"])]),s("div",ge,[s("span",ye,[x(c(e(i)("App Name"))+":",1),a[7]||(a[7]=s("span",{class:"required"},"*",-1))]),o(e(k),{value:n.value.app_name,"onUpdate:value":a[1]||(a[1]=t=>n.value.app_name=t),placeholder:e(i)("App name")},null,8,["value","placeholder"])]),s("div",be,[s("span",De,c(e(i)("Subtitle"))+":",1),o(e(k),{value:n.value.subtitle,"onUpdate:value":a[2]||(a[2]=t=>n.value.subtitle=t),type:"textarea",placeholder:e(i)("Brief description"),rows:3},null,8,["value","placeholder"])]),s("div",ke,[s("span",we,c(e(i)("Repository URL"))+":",1),o(e(k),{value:n.value.repository_url,"onUpdate:value":a[3]||(a[3]=t=>n.value.repository_url=t),placeholder:e(i)("Repository URL")},null,8,["value","placeholder"])]),s("div",Fe,[s("span",Ee,c(e(i)("File URL"))+":",1),o(e(k),{value:n.value.file_url,"onUpdate:value":a[4]||(a[4]=t=>n.value.file_url=t),placeholder:e(i)("File URL")},null,8,["value","placeholder"])])])])])]),s("div",Ue,[s("div",xe,[o(Q,{df:{fieldname:"description",label:e(i)("Description"),fieldtype:"Jeditor"},modelValue:n.value.description,"onUpdate:modelValue":a[5]||(a[5]=t=>n.value.description=t),ctx:{t:e(i)}},null,8,["df","modelValue","ctx"])])])])])]))}});const Pe=X(Ie,[["__scopeId","data-v-819d5383"]]);export{Pe as default}; +import{d as Y,u as G,r as v,e as g,f as s,g as c,j as e,h as o,w as d,Y as H,L as y,y as T,p as x,k as K,a0 as V,l as b,t as i,$ as D,n as C,m as k}from"./index-7b482730.js";import{I as w}from"./iconify-30ae5ba5.js";import{_ as Q}from"./Jeditor.vue_vue_type_style_index_0_lang-1cf7520f.js";import{_ as X}from"./_plugin-vue_export-helper-c27b6911.js";import"./common-a0065b74.js";const Z={class:"app-detail"},ee={class:"page-header"},ae={class:"header-content"},se={class:"header-text"},le={class:"header-actions"},te={class:"app-content"},oe={class:"app-card"},ie={class:"app-info-section"},ne={class:"app-content-layout"},re={class:"app-image-section"},ce=["src"],de={key:1,class:"image-actions"},pe={key:2,class:"placeholder-image"},ue={class:"upload-hint"},fe={key:3,class:"drag-overlay"},ve={class:"app-info-content"},_e={class:"info-list"},me={class:"info-item"},he={class:"label"},ge={class:"info-item"},ye={class:"label"},be={class:"info-item"},De={class:"label"},ke={class:"info-item"},we={class:"label"},Fe={class:"info-item"},Ee={class:"label"},Ue={class:"app-description-section"},xe={class:"description-content"},Ie=Y({__name:"PublishApp",setup(Ce){const A=K(),u=G(),I=v(!1),_=v(""),F=v(""),m=v(!1),E=v(null),n=v({title:"",app_name:"",subtitle:"",repository_url:"",file_url:"",description:""}),z=()=>{A.push("/app-marketplace")},j=async l=>{var t;m.value=!1;const a=(t=l.dataTransfer)==null?void 0:t.files;if(a&&a.length>0){const r=a[0];r.type.startsWith("image/")?await L({file:{file:r}}):u.error("请选择图片文件")}},M=l=>{l.preventDefault()},O=l=>{l.preventDefault(),m.value=!0},S=l=>{l.preventDefault();const a=l.currentTarget,t=l.relatedTarget;a.contains(t)||(m.value=!1)},q=()=>{var l;(l=E.value)==null||l.click()},$=async l=>{var r;const t=(r=l.target.files)==null?void 0:r[0];t&&await L({file:{file:t}})},J=()=>{_.value="",F.value="",E.value&&(E.value.value="")},L=async l=>{var h,R,N,B;const{file:a,onFinish:t,onError:r}=(h=l.file)!=null&&h.file?{file:l.file.file,onFinish:l.onFinish,onError:l.onError}:(R=l.fileList)!=null&&R.length?{file:l.fileList[0].file,onFinish:l.onFinish,onError:l.onError}:l instanceof File?{file:l,onFinish:null,onError:null}:{file:null,onFinish:null,onError:null};if(!a||!(a instanceof File)){r&&r(new Error("无效的文件"));return}const U=new FileReader;U.onload=f=>{var p;_.value=(p=f.target)==null?void 0:p.result},U.readAsDataURL(a);try{const f=new FormData;f.append("file",a);const p=await V.post("/jingrow/upload-image",f,{timeout:3e4});if(p.data.success)F.value=p.data.url,u.success("图片上传成功"),t&&t();else{const P=p.data.error||"图片上传失败";u.error(P),r&&r(new Error(P))}}catch(f){const p=((B=(N=f.response)==null?void 0:N.data)==null?void 0:B.detail)||f.message||"图片上传失败";u.error("图片上传失败: "+p),r&&r(new Error(p))}},W=async()=>{var l,a;if(!n.value.title||!n.value.app_name){u.error("请填写应用标题和应用名称");return}I.value=!0;try{const t=new FormData;Object.entries(n.value).forEach(([U,h])=>{h&&t.append(U,h)}),F.value&&t.append("app_image",F.value),(await V.post("/jingrow/create-app",t)).data.success?(u.success("应用发布成功"),A.push("/app-marketplace")):u.error("应用发布失败")}catch(t){u.error(((a=(l=t.response)==null?void 0:l.data)==null?void 0:a.detail)||"应用发布失败")}finally{I.value=!1}};return(l,a)=>(b(),g("div",Z,[s("div",ee,[s("div",ae,[s("div",se,[s("h1",null,c(e(i)("Publish App")),1)]),s("div",le,[o(e(C),{onClick:z,size:"medium"},{icon:d(()=>[o(e(D),null,{default:d(()=>[o(e(w),{icon:"tabler:arrow-left"})]),_:1})]),default:d(()=>[x(" "+c(e(i)("Back")),1)]),_:1}),o(e(C),{type:"primary",onClick:W,loading:I.value,size:"medium"},{icon:d(()=>[o(e(D),null,{default:d(()=>[o(e(w),{icon:"tabler:upload"})]),_:1})]),default:d(()=>[x(" "+c(e(i)("Publish")),1)]),_:1},8,["loading"])])])]),s("div",te,[s("div",oe,[s("div",ie,[s("div",ne,[s("div",re,[s("div",{class:H(["app-image",{"drag-over":m.value}]),onDragover:y(M,["prevent"]),onDragenter:y(O,["prevent"]),onDragleave:y(S,["prevent"]),onDrop:y(j,["prevent"]),onClick:q},[_.value?(b(),g("img",{key:0,src:_.value,alt:"应用图片预览"},null,8,ce)):T("",!0),_.value?(b(),g("div",de,[o(e(C),{type:"error",size:"small",circle:"",onClick:y(J,["stop"]),class:"remove-btn"},{icon:d(()=>[o(e(D),null,{default:d(()=>[o(e(w),{icon:"tabler:x"})]),_:1})]),_:1})])):(b(),g("div",pe,[o(e(D),{size:"80"},{default:d(()=>[o(e(w),{icon:"tabler:apps"})]),_:1}),s("p",ue,c(e(i)("Click or drag to upload")),1)])),m.value?(b(),g("div",fe,[o(e(D),{size:"60"},{default:d(()=>[o(e(w),{icon:"tabler:upload"})]),_:1}),s("p",null,c(e(i)("Drop image here")),1)])):T("",!0)],34),s("input",{ref_key:"fileInput",ref:E,type:"file",accept:"image/*",style:{display:"none"},onChange:$},null,544)]),s("div",ve,[a[8]||(a[8]=s("div",{class:"app-header"},null,-1)),s("div",_e,[s("div",me,[s("span",he,[x(c(e(i)("App Title"))+":",1),a[6]||(a[6]=s("span",{class:"required"},"*",-1))]),o(e(k),{value:n.value.title,"onUpdate:value":a[0]||(a[0]=t=>n.value.title=t),placeholder:e(i)("App title")},null,8,["value","placeholder"])]),s("div",ge,[s("span",ye,[x(c(e(i)("App Name"))+":",1),a[7]||(a[7]=s("span",{class:"required"},"*",-1))]),o(e(k),{value:n.value.app_name,"onUpdate:value":a[1]||(a[1]=t=>n.value.app_name=t),placeholder:e(i)("App name")},null,8,["value","placeholder"])]),s("div",be,[s("span",De,c(e(i)("Subtitle"))+":",1),o(e(k),{value:n.value.subtitle,"onUpdate:value":a[2]||(a[2]=t=>n.value.subtitle=t),type:"textarea",placeholder:e(i)("Brief description"),rows:3},null,8,["value","placeholder"])]),s("div",ke,[s("span",we,c(e(i)("Repository URL"))+":",1),o(e(k),{value:n.value.repository_url,"onUpdate:value":a[3]||(a[3]=t=>n.value.repository_url=t),placeholder:e(i)("Repository URL")},null,8,["value","placeholder"])]),s("div",Fe,[s("span",Ee,c(e(i)("File URL"))+":",1),o(e(k),{value:n.value.file_url,"onUpdate:value":a[4]||(a[4]=t=>n.value.file_url=t),placeholder:e(i)("File URL")},null,8,["value","placeholder"])])])])])]),s("div",Ue,[s("div",xe,[o(Q,{df:{fieldname:"description",label:e(i)("Description"),fieldtype:"Jeditor"},modelValue:n.value.description,"onUpdate:modelValue":a[5]||(a[5]=t=>n.value.description=t),ctx:{t:e(i)}},null,8,["df","modelValue","ctx"])])])])])]))}});const Pe=X(Ie,[["__scopeId","data-v-819d5383"]]);export{Pe as default}; diff --git a/apps/jingrow/frontend/dist/assets/PublishProgressModal-0ec76e49.js b/apps/jingrow/frontend/dist/assets/PublishProgressModal-f3df8eed.js similarity index 95% rename from apps/jingrow/frontend/dist/assets/PublishProgressModal-0ec76e49.js rename to apps/jingrow/frontend/dist/assets/PublishProgressModal-f3df8eed.js index e50615e..07cf40d 100644 --- a/apps/jingrow/frontend/dist/assets/PublishProgressModal-0ec76e49.js +++ b/apps/jingrow/frontend/dist/assets/PublishProgressModal-f3df8eed.js @@ -1 +1 @@ -import{I as i}from"./iconify-b5ab1212.js";import{d as B,r as M,M as g,D as r,w as o,j as e,l as a,f as c,$ as n,h as u,y as _,g as d,n as h,p as k,t as v,e as m,C as P,Y as I,F as D,af as F}from"./index-b37e64ca.js";import{_ as R}from"./_plugin-vue_export-helper-c27b6911.js";const j={style:{display:"flex","align-items":"center",gap:"8px"}},x={style:{margin:"0"}},E={class:"progress-content"},L={class:"steps-container"},S={class:"step-icon"},T={class:"step-content"},U={class:"step-title"},Y={key:0,class:"step-message"},$={key:1,class:"step-error-message"},q={class:"dialog-actions"},A=B({__name:"PublishProgressModal",props:{modelValue:{type:Boolean},title:{},steps:{},status:{}},emits:["update:modelValue","retry"],setup(b,{emit:z}){const p=b,f=z,l=M(p.modelValue);g(()=>p.modelValue,s=>{l.value=s}),g(l,s=>{f("update:modelValue",s)});function C(){p.status!=="processing"&&(l.value=!1)}function V(s){!s&&p.status!=="processing"?l.value=!1:!s&&p.status==="processing"?l.value=!0:l.value=s}function w(){f("retry")}return(s,y)=>(a(),r(e(F),{show:l.value,"onUpdate:show":[y[0]||(y[0]=t=>l.value=t),V],preset:"card",style:{width:"600px"},"mask-closable":s.status!=="processing","close-on-esc":s.status!=="processing"},{header:o(()=>[c("div",j,[s.status==="processing"?(a(),r(e(n),{key:0,size:20},{default:o(()=>[u(e(i),{icon:"tabler:hourglass"})]),_:1})):s.status==="success"?(a(),r(e(n),{key:1,size:20,color:"#10b981"},{default:o(()=>[u(e(i),{icon:"tabler:check-circle"})]),_:1})):s.status==="error"?(a(),r(e(n),{key:2,size:20,color:"#ef4444"},{default:o(()=>[u(e(i),{icon:"tabler:x-circle"})]),_:1})):_("",!0),c("h3",x,d(s.title),1)])]),action:o(()=>[c("div",q,[s.status==="error"||s.status==="success"?(a(),r(e(h),{key:0,type:"default",size:"medium",onClick:C,class:"action-btn-close"},{default:o(()=>[k(d(e(v)("Close")),1)]),_:1})):_("",!0),s.status==="error"?(a(),r(e(h),{key:1,type:"primary",size:"medium",onClick:w,class:"action-btn-retry"},{default:o(()=>[k(d(e(v)("Retry")),1)]),_:1})):_("",!0)])]),default:o(()=>[c("div",E,[c("div",L,[(a(!0),m(D,null,P(s.steps,(t,N)=>(a(),m("div",{key:N,class:I(["step-item",{"step-active":t.status==="processing","step-success":t.status==="success","step-error":t.status==="error","step-pending":t.status==="pending"}])},[c("div",S,[t.status==="processing"?(a(),r(e(n),{key:0,size:20},{default:o(()=>[u(e(i),{icon:"tabler:loader-2",class:"rotating"})]),_:1})):t.status==="success"?(a(),r(e(n),{key:1,size:20,color:"#10b981"},{default:o(()=>[u(e(i),{icon:"tabler:check"})]),_:1})):t.status==="error"?(a(),r(e(n),{key:2,size:20,color:"#ef4444"},{default:o(()=>[u(e(i),{icon:"tabler:x"})]),_:1})):(a(),r(e(n),{key:3,size:20,color:"#94a3b8"},{default:o(()=>[u(e(i),{icon:"tabler:circle"})]),_:1}))]),c("div",T,[c("div",U,d(t.title),1),t.message?(a(),m("div",Y,d(t.message),1)):_("",!0),t.error?(a(),m("div",$,d(t.error),1)):_("",!0)])],2))),128))])])]),_:1},8,["show","mask-closable","close-on-esc"]))}});const K=R(A,[["__scopeId","data-v-c97c0883"]]);export{K as default}; +import{I as i}from"./iconify-30ae5ba5.js";import{d as B,r as M,M as g,D as r,w as o,j as e,l as a,f as c,$ as n,h as u,y as _,g as d,n as h,p as k,t as v,e as m,C as P,Y as I,F as D,af as F}from"./index-7b482730.js";import{_ as R}from"./_plugin-vue_export-helper-c27b6911.js";const j={style:{display:"flex","align-items":"center",gap:"8px"}},x={style:{margin:"0"}},E={class:"progress-content"},L={class:"steps-container"},S={class:"step-icon"},T={class:"step-content"},U={class:"step-title"},Y={key:0,class:"step-message"},$={key:1,class:"step-error-message"},q={class:"dialog-actions"},A=B({__name:"PublishProgressModal",props:{modelValue:{type:Boolean},title:{},steps:{},status:{}},emits:["update:modelValue","retry"],setup(b,{emit:z}){const p=b,f=z,l=M(p.modelValue);g(()=>p.modelValue,s=>{l.value=s}),g(l,s=>{f("update:modelValue",s)});function C(){p.status!=="processing"&&(l.value=!1)}function V(s){!s&&p.status!=="processing"?l.value=!1:!s&&p.status==="processing"?l.value=!0:l.value=s}function w(){f("retry")}return(s,y)=>(a(),r(e(F),{show:l.value,"onUpdate:show":[y[0]||(y[0]=t=>l.value=t),V],preset:"card",style:{width:"600px"},"mask-closable":s.status!=="processing","close-on-esc":s.status!=="processing"},{header:o(()=>[c("div",j,[s.status==="processing"?(a(),r(e(n),{key:0,size:20},{default:o(()=>[u(e(i),{icon:"tabler:hourglass"})]),_:1})):s.status==="success"?(a(),r(e(n),{key:1,size:20,color:"#10b981"},{default:o(()=>[u(e(i),{icon:"tabler:check-circle"})]),_:1})):s.status==="error"?(a(),r(e(n),{key:2,size:20,color:"#ef4444"},{default:o(()=>[u(e(i),{icon:"tabler:x-circle"})]),_:1})):_("",!0),c("h3",x,d(s.title),1)])]),action:o(()=>[c("div",q,[s.status==="error"||s.status==="success"?(a(),r(e(h),{key:0,type:"default",size:"medium",onClick:C,class:"action-btn-close"},{default:o(()=>[k(d(e(v)("Close")),1)]),_:1})):_("",!0),s.status==="error"?(a(),r(e(h),{key:1,type:"primary",size:"medium",onClick:w,class:"action-btn-retry"},{default:o(()=>[k(d(e(v)("Retry")),1)]),_:1})):_("",!0)])]),default:o(()=>[c("div",E,[c("div",L,[(a(!0),m(D,null,P(s.steps,(t,N)=>(a(),m("div",{key:N,class:I(["step-item",{"step-active":t.status==="processing","step-success":t.status==="success","step-error":t.status==="error","step-pending":t.status==="pending"}])},[c("div",S,[t.status==="processing"?(a(),r(e(n),{key:0,size:20},{default:o(()=>[u(e(i),{icon:"tabler:loader-2",class:"rotating"})]),_:1})):t.status==="success"?(a(),r(e(n),{key:1,size:20,color:"#10b981"},{default:o(()=>[u(e(i),{icon:"tabler:check"})]),_:1})):t.status==="error"?(a(),r(e(n),{key:2,size:20,color:"#ef4444"},{default:o(()=>[u(e(i),{icon:"tabler:x"})]),_:1})):(a(),r(e(n),{key:3,size:20,color:"#94a3b8"},{default:o(()=>[u(e(i),{icon:"tabler:circle"})]),_:1}))]),c("div",T,[c("div",U,d(t.title),1),t.message?(a(),m("div",Y,d(t.message),1)):_("",!0),t.error?(a(),m("div",$,d(t.error),1)):_("",!0)])],2))),128))])])]),_:1},8,["show","mask-closable","close-on-esc"]))}});const K=R(A,[["__scopeId","data-v-c97c0883"]]);export{K as default}; diff --git a/apps/jingrow/frontend/dist/assets/PublishTool-5a439f8d.js b/apps/jingrow/frontend/dist/assets/PublishTool-ad247867.js similarity index 94% rename from apps/jingrow/frontend/dist/assets/PublishTool-5a439f8d.js rename to apps/jingrow/frontend/dist/assets/PublishTool-ad247867.js index 5b8db9d..543e75e 100644 --- a/apps/jingrow/frontend/dist/assets/PublishTool-5a439f8d.js +++ b/apps/jingrow/frontend/dist/assets/PublishTool-ad247867.js @@ -1 +1 @@ -import{d as Y,u as G,r as v,e as g,f as o,g as c,j as l,h as s,w as d,Y as H,L as y,y as z,p as I,k as K,a0 as R,l as b,t as i,$ as k,n as x,m as C,ap as Q}from"./index-b37e64ca.js";import{I as D}from"./iconify-b5ab1212.js";import{_ as X}from"./Jeditor.vue_vue_type_style_index_0_lang-27957db9.js";import Z from"./IconPicker-5c7938fe.js";import{_ as ee}from"./_plugin-vue_export-helper-c27b6911.js";import"./common-0beb20f4.js";import"./index-73986d31.js";const le={class:"tool-detail"},oe={class:"page-header"},ae={class:"header-content"},te={class:"header-text"},se={class:"header-actions"},ne={class:"tool-content"},ie={class:"tool-card"},re={class:"tool-info-section"},ce={class:"tool-content-layout"},de={class:"tool-image-section"},ue=["src"],pe={key:1,class:"image-actions"},fe={key:2,class:"placeholder-image"},ve={class:"upload-hint"},_e={key:3,class:"drag-overlay"},me={class:"tool-info-content"},he={class:"info-list"},ge={class:"info-item"},ye={class:"label"},be={class:"info-item"},ke={class:"label"},De={class:"info-item"},we={class:"label"},Fe={class:"info-item"},Te={class:"label"},Ie={class:"info-item"},Ce={class:"label"},Ee={class:"info-item"},xe={class:"label"},Ue={class:"tool-description-section"},Ve={class:"description-content"},Ne=Y({__name:"PublishTool",setup(Pe){const U=K(),p=G(),E=v(!1),_=v(""),w=v(""),m=v(!1),F=v(null),n=v({title:"",tool_name:"",subtitle:"",file_url:"",description:"",icon:"",color:""}),j=()=>{U.push("/tool-marketplace")},M=async t=>{var a;m.value=!1;const e=(a=t.dataTransfer)==null?void 0:a.files;if(e&&e.length>0){const r=e[0];r.type.startsWith("image/")?await V({file:{file:r}}):p.error("请选择图片文件")}},O=t=>{t.preventDefault()},S=t=>{t.preventDefault(),m.value=!0},q=t=>{t.preventDefault();const e=t.currentTarget,a=t.relatedTarget;e.contains(a)||(m.value=!1)},$=()=>{var t;(t=F.value)==null||t.click()},A=async t=>{var r;const a=(r=t.target.files)==null?void 0:r[0];a&&await V({file:{file:a}})},J=()=>{_.value="",w.value="",F.value&&(F.value.value="")},V=async t=>{var h,N,P,B;const{file:e,onFinish:a,onError:r}=(h=t.file)!=null&&h.file?{file:t.file.file,onFinish:t.onFinish,onError:t.onError}:(N=t.fileList)!=null&&N.length?{file:t.fileList[0].file,onFinish:t.onFinish,onError:t.onError}:t instanceof File?{file:t,onFinish:null,onError:null}:{file:null,onFinish:null,onError:null};if(!e||!(e instanceof File)){r&&r(new Error("无效的文件"));return}const T=new FileReader;T.onload=f=>{var u;_.value=(u=f.target)==null?void 0:u.result},T.readAsDataURL(e);try{const f=new FormData;f.append("file",e);const u=await R.post("/jingrow/upload-image",f,{timeout:3e4});if(u.data.success)w.value=u.data.url,p.success("图片上传成功"),a&&a();else{const L=u.data.error||"图片上传失败";p.error(L),r&&r(new Error(L))}}catch(f){const u=((B=(P=f.response)==null?void 0:P.data)==null?void 0:B.detail)||f.message||"图片上传失败";p.error("图片上传失败: "+u),r&&r(new Error(u))}},W=async()=>{var t,e;if(!n.value.title||!n.value.tool_name){p.error("请填写工具标题和工具名称");return}E.value=!0;try{const a=new FormData;Object.entries(n.value).forEach(([T,h])=>{h&&a.append(T,h)}),w.value&&a.append("tool_image",w.value),(await R.post("/jingrow/tool/publish",a)).data.success?(p.success("工具发布成功"),U.push("/tool-marketplace")):p.error("工具发布失败")}catch(a){p.error(((e=(t=a.response)==null?void 0:t.data)==null?void 0:e.detail)||"工具发布失败")}finally{E.value=!1}};return(t,e)=>(b(),g("div",le,[o("div",oe,[o("div",ae,[o("div",te,[o("h1",null,c(l(i)("Publish Tool")),1)]),o("div",se,[s(l(x),{onClick:j,size:"medium"},{icon:d(()=>[s(l(k),null,{default:d(()=>[s(l(D),{icon:"tabler:arrow-left"})]),_:1})]),default:d(()=>[I(" "+c(l(i)("Back")),1)]),_:1}),s(l(x),{type:"primary",onClick:W,loading:E.value,size:"medium"},{icon:d(()=>[s(l(k),null,{default:d(()=>[s(l(D),{icon:"tabler:upload"})]),_:1})]),default:d(()=>[I(" "+c(l(i)("Publish")),1)]),_:1},8,["loading"])])])]),o("div",ne,[o("div",ie,[o("div",re,[o("div",ce,[o("div",de,[o("div",{class:H(["tool-image",{"drag-over":m.value}]),onDragover:y(O,["prevent"]),onDragenter:y(S,["prevent"]),onDragleave:y(q,["prevent"]),onDrop:y(M,["prevent"]),onClick:$},[_.value?(b(),g("img",{key:0,src:_.value,alt:"工具图片预览"},null,8,ue)):z("",!0),_.value?(b(),g("div",pe,[s(l(x),{type:"error",size:"small",circle:"",onClick:y(J,["stop"]),class:"remove-btn"},{icon:d(()=>[s(l(k),null,{default:d(()=>[s(l(D),{icon:"tabler:x"})]),_:1})]),_:1})])):(b(),g("div",fe,[s(l(k),{size:"80"},{default:d(()=>[s(l(D),{icon:"tabler:tool"})]),_:1}),o("p",ve,c(l(i)("Click or drag to upload")),1)])),m.value?(b(),g("div",_e,[s(l(k),{size:"60"},{default:d(()=>[s(l(D),{icon:"tabler:upload"})]),_:1}),o("p",null,c(l(i)("Drop image here")),1)])):z("",!0)],34),o("input",{ref_key:"fileInput",ref:F,type:"file",accept:"image/*",style:{display:"none"},onChange:A},null,544)]),o("div",me,[e[9]||(e[9]=o("div",{class:"tool-header"},null,-1)),o("div",he,[o("div",ge,[o("span",ye,[I(c(l(i)("Title"))+":",1),e[7]||(e[7]=o("span",{class:"required"},"*",-1))]),s(l(C),{value:n.value.title,"onUpdate:value":e[0]||(e[0]=a=>n.value.title=a),placeholder:l(i)("Title")},null,8,["value","placeholder"])]),o("div",be,[o("span",ke,[I(c(l(i)("Tool Name"))+":",1),e[8]||(e[8]=o("span",{class:"required"},"*",-1))]),s(l(C),{value:n.value.tool_name,"onUpdate:value":e[1]||(e[1]=a=>n.value.tool_name=a),placeholder:l(i)("Tool name")},null,8,["value","placeholder"])]),o("div",De,[o("span",we,c(l(i)("Subtitle"))+":",1),s(l(C),{value:n.value.subtitle,"onUpdate:value":e[2]||(e[2]=a=>n.value.subtitle=a),type:"textarea",placeholder:l(i)("Brief description"),rows:3},null,8,["value","placeholder"])]),o("div",Fe,[o("span",Te,c(l(i)("File URL"))+":",1),s(l(C),{value:n.value.file_url,"onUpdate:value":e[3]||(e[3]=a=>n.value.file_url=a),placeholder:l(i)("File URL")},null,8,["value","placeholder"])]),o("div",Ie,[o("span",Ce,c(l(i)("Icon"))+":",1),s(Z,{modelValue:n.value.icon,"onUpdate:modelValue":e[4]||(e[4]=a=>n.value.icon=a)},null,8,["modelValue"])]),o("div",Ee,[o("span",xe,c(l(i)("Color"))+":",1),s(l(Q),{value:n.value.color,"onUpdate:value":e[5]||(e[5]=a=>n.value.color=a)},null,8,["value"])])])])])]),o("div",Ue,[o("div",Ve,[s(X,{df:{fieldname:"description",label:l(i)("Description"),fieldtype:"Jeditor"},modelValue:n.value.description,"onUpdate:modelValue":e[6]||(e[6]=a=>n.value.description=a),ctx:{t:l(i)}},null,8,["df","modelValue","ctx"])])])])])]))}});const Se=ee(Ne,[["__scopeId","data-v-5333a9e5"]]);export{Se as default}; +import{d as Y,u as G,r as v,e as g,f as o,g as c,j as l,h as s,w as d,Y as H,L as y,y as z,p as I,k as K,a0 as R,l as b,t as i,$ as k,n as x,m as C,ap as Q}from"./index-7b482730.js";import{I as D}from"./iconify-30ae5ba5.js";import{_ as X}from"./Jeditor.vue_vue_type_style_index_0_lang-1cf7520f.js";import Z from"./IconPicker-2d07cad1.js";import{_ as ee}from"./_plugin-vue_export-helper-c27b6911.js";import"./common-a0065b74.js";import"./index-2fe8616a.js";const le={class:"tool-detail"},oe={class:"page-header"},ae={class:"header-content"},te={class:"header-text"},se={class:"header-actions"},ne={class:"tool-content"},ie={class:"tool-card"},re={class:"tool-info-section"},ce={class:"tool-content-layout"},de={class:"tool-image-section"},ue=["src"],pe={key:1,class:"image-actions"},fe={key:2,class:"placeholder-image"},ve={class:"upload-hint"},_e={key:3,class:"drag-overlay"},me={class:"tool-info-content"},he={class:"info-list"},ge={class:"info-item"},ye={class:"label"},be={class:"info-item"},ke={class:"label"},De={class:"info-item"},we={class:"label"},Fe={class:"info-item"},Te={class:"label"},Ie={class:"info-item"},Ce={class:"label"},Ee={class:"info-item"},xe={class:"label"},Ue={class:"tool-description-section"},Ve={class:"description-content"},Ne=Y({__name:"PublishTool",setup(Pe){const U=K(),p=G(),E=v(!1),_=v(""),w=v(""),m=v(!1),F=v(null),n=v({title:"",tool_name:"",subtitle:"",file_url:"",description:"",icon:"",color:""}),j=()=>{U.push("/tool-marketplace")},M=async t=>{var a;m.value=!1;const e=(a=t.dataTransfer)==null?void 0:a.files;if(e&&e.length>0){const r=e[0];r.type.startsWith("image/")?await V({file:{file:r}}):p.error("请选择图片文件")}},O=t=>{t.preventDefault()},S=t=>{t.preventDefault(),m.value=!0},q=t=>{t.preventDefault();const e=t.currentTarget,a=t.relatedTarget;e.contains(a)||(m.value=!1)},$=()=>{var t;(t=F.value)==null||t.click()},A=async t=>{var r;const a=(r=t.target.files)==null?void 0:r[0];a&&await V({file:{file:a}})},J=()=>{_.value="",w.value="",F.value&&(F.value.value="")},V=async t=>{var h,N,P,B;const{file:e,onFinish:a,onError:r}=(h=t.file)!=null&&h.file?{file:t.file.file,onFinish:t.onFinish,onError:t.onError}:(N=t.fileList)!=null&&N.length?{file:t.fileList[0].file,onFinish:t.onFinish,onError:t.onError}:t instanceof File?{file:t,onFinish:null,onError:null}:{file:null,onFinish:null,onError:null};if(!e||!(e instanceof File)){r&&r(new Error("无效的文件"));return}const T=new FileReader;T.onload=f=>{var u;_.value=(u=f.target)==null?void 0:u.result},T.readAsDataURL(e);try{const f=new FormData;f.append("file",e);const u=await R.post("/jingrow/upload-image",f,{timeout:3e4});if(u.data.success)w.value=u.data.url,p.success("图片上传成功"),a&&a();else{const L=u.data.error||"图片上传失败";p.error(L),r&&r(new Error(L))}}catch(f){const u=((B=(P=f.response)==null?void 0:P.data)==null?void 0:B.detail)||f.message||"图片上传失败";p.error("图片上传失败: "+u),r&&r(new Error(u))}},W=async()=>{var t,e;if(!n.value.title||!n.value.tool_name){p.error("请填写工具标题和工具名称");return}E.value=!0;try{const a=new FormData;Object.entries(n.value).forEach(([T,h])=>{h&&a.append(T,h)}),w.value&&a.append("tool_image",w.value),(await R.post("/jingrow/tool/publish",a)).data.success?(p.success("工具发布成功"),U.push("/tool-marketplace")):p.error("工具发布失败")}catch(a){p.error(((e=(t=a.response)==null?void 0:t.data)==null?void 0:e.detail)||"工具发布失败")}finally{E.value=!1}};return(t,e)=>(b(),g("div",le,[o("div",oe,[o("div",ae,[o("div",te,[o("h1",null,c(l(i)("Publish Tool")),1)]),o("div",se,[s(l(x),{onClick:j,size:"medium"},{icon:d(()=>[s(l(k),null,{default:d(()=>[s(l(D),{icon:"tabler:arrow-left"})]),_:1})]),default:d(()=>[I(" "+c(l(i)("Back")),1)]),_:1}),s(l(x),{type:"primary",onClick:W,loading:E.value,size:"medium"},{icon:d(()=>[s(l(k),null,{default:d(()=>[s(l(D),{icon:"tabler:upload"})]),_:1})]),default:d(()=>[I(" "+c(l(i)("Publish")),1)]),_:1},8,["loading"])])])]),o("div",ne,[o("div",ie,[o("div",re,[o("div",ce,[o("div",de,[o("div",{class:H(["tool-image",{"drag-over":m.value}]),onDragover:y(O,["prevent"]),onDragenter:y(S,["prevent"]),onDragleave:y(q,["prevent"]),onDrop:y(M,["prevent"]),onClick:$},[_.value?(b(),g("img",{key:0,src:_.value,alt:"工具图片预览"},null,8,ue)):z("",!0),_.value?(b(),g("div",pe,[s(l(x),{type:"error",size:"small",circle:"",onClick:y(J,["stop"]),class:"remove-btn"},{icon:d(()=>[s(l(k),null,{default:d(()=>[s(l(D),{icon:"tabler:x"})]),_:1})]),_:1})])):(b(),g("div",fe,[s(l(k),{size:"80"},{default:d(()=>[s(l(D),{icon:"tabler:tool"})]),_:1}),o("p",ve,c(l(i)("Click or drag to upload")),1)])),m.value?(b(),g("div",_e,[s(l(k),{size:"60"},{default:d(()=>[s(l(D),{icon:"tabler:upload"})]),_:1}),o("p",null,c(l(i)("Drop image here")),1)])):z("",!0)],34),o("input",{ref_key:"fileInput",ref:F,type:"file",accept:"image/*",style:{display:"none"},onChange:A},null,544)]),o("div",me,[e[9]||(e[9]=o("div",{class:"tool-header"},null,-1)),o("div",he,[o("div",ge,[o("span",ye,[I(c(l(i)("Title"))+":",1),e[7]||(e[7]=o("span",{class:"required"},"*",-1))]),s(l(C),{value:n.value.title,"onUpdate:value":e[0]||(e[0]=a=>n.value.title=a),placeholder:l(i)("Title")},null,8,["value","placeholder"])]),o("div",be,[o("span",ke,[I(c(l(i)("Tool Name"))+":",1),e[8]||(e[8]=o("span",{class:"required"},"*",-1))]),s(l(C),{value:n.value.tool_name,"onUpdate:value":e[1]||(e[1]=a=>n.value.tool_name=a),placeholder:l(i)("Tool name")},null,8,["value","placeholder"])]),o("div",De,[o("span",we,c(l(i)("Subtitle"))+":",1),s(l(C),{value:n.value.subtitle,"onUpdate:value":e[2]||(e[2]=a=>n.value.subtitle=a),type:"textarea",placeholder:l(i)("Brief description"),rows:3},null,8,["value","placeholder"])]),o("div",Fe,[o("span",Te,c(l(i)("File URL"))+":",1),s(l(C),{value:n.value.file_url,"onUpdate:value":e[3]||(e[3]=a=>n.value.file_url=a),placeholder:l(i)("File URL")},null,8,["value","placeholder"])]),o("div",Ie,[o("span",Ce,c(l(i)("Icon"))+":",1),s(Z,{modelValue:n.value.icon,"onUpdate:modelValue":e[4]||(e[4]=a=>n.value.icon=a)},null,8,["modelValue"])]),o("div",Ee,[o("span",xe,c(l(i)("Color"))+":",1),s(l(Q),{value:n.value.color,"onUpdate:value":e[5]||(e[5]=a=>n.value.color=a)},null,8,["value"])])])])])]),o("div",Ue,[o("div",Ve,[s(X,{df:{fieldname:"description",label:l(i)("Description"),fieldtype:"Jeditor"},modelValue:n.value.description,"onUpdate:modelValue":e[6]||(e[6]=a=>n.value.description=a),ctx:{t:l(i)}},null,8,["df","modelValue","ctx"])])])])])]))}});const Se=ee(Ne,[["__scopeId","data-v-5333a9e5"]]);export{Se as default}; diff --git a/apps/jingrow/frontend/dist/assets/Rating-a567e4d3.js b/apps/jingrow/frontend/dist/assets/Rating-c3e83385.js similarity index 92% rename from apps/jingrow/frontend/dist/assets/Rating-a567e4d3.js rename to apps/jingrow/frontend/dist/assets/Rating-c3e83385.js index 6f4f5b6..8a090fe 100644 --- a/apps/jingrow/frontend/dist/assets/Rating-a567e4d3.js +++ b/apps/jingrow/frontend/dist/assets/Rating-c3e83385.js @@ -1 +1 @@ -import{d as r,c as i,e as o,f,p as _,g as c,y as p,h as u,j as m,Y as b,l as t,a_ as v}from"./index-b37e64ca.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},N={key:0,class:"required"},B=r({__name:"Rating",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(l){const s=l,d=i(()=>s.df.label_layout||"vertical");return(e,a)=>(t(),o("div",{class:b(["field-wrapper",`layout-${d.value}`])},[f("label",g,[_(c(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(t(),o("span",N,"*")):p("",!0)]),u(m(v),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=n=>e.record[e.df.fieldname]=n),disabled:!e.canEdit},null,8,["value","disabled"])],2))}});const R=y(B,[["__scopeId","data-v-22f5fa71"]]),k=Object.freeze(Object.defineProperty({__proto__:null,default:R},Symbol.toStringTag,{value:"Module"}));export{k as _}; +import{d as r,c as i,e as o,f,p as _,g as c,y as p,h as u,j as m,Y as b,l as t,a_ as v}from"./index-7b482730.js";import{_ as y}from"./_plugin-vue_export-helper-c27b6911.js";const g={class:"field-label"},N={key:0,class:"required"},B=r({__name:"Rating",props:{df:{},record:{},canEdit:{type:Boolean},ctx:{}},setup(l){const s=l,d=i(()=>s.df.label_layout||"vertical");return(e,a)=>(t(),o("div",{class:b(["field-wrapper",`layout-${d.value}`])},[f("label",g,[_(c(e.ctx.t(e.df.label||e.df.fieldname))+" ",1),e.df.reqd?(t(),o("span",N,"*")):p("",!0)]),u(m(v),{value:e.record[e.df.fieldname],"onUpdate:value":a[0]||(a[0]=n=>e.record[e.df.fieldname]=n),disabled:!e.canEdit},null,8,["value","disabled"])],2))}});const R=y(B,[["__scopeId","data-v-22f5fa71"]]),k=Object.freeze(Object.defineProperty({__proto__:null,default:R},Symbol.toStringTag,{value:"Module"}));export{k as _}; diff --git a/apps/jingrow/frontend/dist/assets/ScheduledJobDetail-54e52778.js b/apps/jingrow/frontend/dist/assets/ScheduledJobDetail-04a73e38.js similarity index 97% rename from apps/jingrow/frontend/dist/assets/ScheduledJobDetail-54e52778.js rename to apps/jingrow/frontend/dist/assets/ScheduledJobDetail-04a73e38.js index 01120fc..830b8d5 100644 --- a/apps/jingrow/frontend/dist/assets/ScheduledJobDetail-54e52778.js +++ b/apps/jingrow/frontend/dist/assets/ScheduledJobDetail-04a73e38.js @@ -1,4 +1,4 @@ -import{d as L,u as T,r as x,c as q,o as z,e as i,f as e,h as c,w as r,j as t,p as f,g as l,D as h,y as J,v as M,k as A,t as o,l as u,I as j,$ as C,Y as D,n as N,a4 as _,a5 as v,a3 as R,U as g}from"./index-b37e64ca.js";import{I as k}from"./iconify-b5ab1212.js";import{a as H,t as w}from"./scheduledJobs-e59ba30c.js";import{_ as Y}from"./_plugin-vue_export-helper-c27b6911.js";import"./common-0beb20f4.js";const $={class:"job-detail-page"},G={class:"page-header"},K={class:"page-title"},O={key:0,class:"loading"},P={key:1,class:"job-content"},Q={class:"properties-grid"},W={class:"property-group"},X={class:"property-item"},Z={class:"property-item"},ee={class:"property-item"},te={class:"status-display"},se={class:"property-item"},oe={class:"status-display"},ae={key:0,class:"status-badge enabled"},le={key:1,class:"status-badge disabled"},ne={class:"property-group"},de={class:"property-item"},ue={class:"property-item"},ie={class:"property-item"},re={class:"property-item"},ce={class:"cron-section"},pe={class:"cron-display"},_e={class:"cron-code"},ve={class:"cron-description"},ye={class:"execution-section"},me={class:"execution-item"},be={class:"execution-value"},fe={key:0,class:"datetime-text"},he={key:1,class:"text-muted"},xe={class:"execution-item"},ge={class:"execution-value"},ke={key:0,class:"datetime-text next-execution"},Se={key:1,class:"text-muted"},Je={key:2,class:"text-muted"},je={key:2,class:"error"},Ce=`* * * * * +import{d as L,u as T,r as x,c as q,o as z,e as i,f as e,h as c,w as r,j as t,p as f,g as l,D as h,y as J,v as M,k as A,t as o,l as u,I as j,$ as C,Y as D,n as N,a4 as _,a5 as v,a3 as R,U as g}from"./index-7b482730.js";import{I as k}from"./iconify-30ae5ba5.js";import{a as H,t as w}from"./scheduledJobs-af63a2c9.js";import{_ as Y}from"./_plugin-vue_export-helper-c27b6911.js";import"./common-a0065b74.js";const $={class:"job-detail-page"},G={class:"page-header"},K={class:"page-title"},O={key:0,class:"loading"},P={key:1,class:"job-content"},Q={class:"properties-grid"},W={class:"property-group"},X={class:"property-item"},Z={class:"property-item"},ee={class:"property-item"},te={class:"status-display"},se={class:"property-item"},oe={class:"status-display"},ae={key:0,class:"status-badge enabled"},le={key:1,class:"status-badge disabled"},ne={class:"property-group"},de={class:"property-item"},ue={class:"property-item"},ie={class:"property-item"},re={class:"property-item"},ce={class:"cron-section"},pe={class:"cron-display"},_e={class:"cron-code"},ve={class:"cron-description"},ye={class:"execution-section"},me={class:"execution-item"},be={class:"execution-value"},fe={key:0,class:"datetime-text"},he={key:1,class:"text-muted"},xe={class:"execution-item"},ge={class:"execution-value"},ke={key:0,class:"datetime-text next-execution"},Se={key:1,class:"text-muted"},Je={key:2,class:"text-muted"},je={key:2,class:"error"},Ce=`* * * * * ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ │ │ │ │ └ day of week (0 - 6) (0 is Sunday) diff --git a/apps/jingrow/frontend/dist/assets/ScheduledJobList-7e1a74a1.js b/apps/jingrow/frontend/dist/assets/ScheduledJobList-701bc4cd.js similarity index 97% rename from apps/jingrow/frontend/dist/assets/ScheduledJobList-7e1a74a1.js rename to apps/jingrow/frontend/dist/assets/ScheduledJobList-701bc4cd.js index bb64b94..0bb954b 100644 --- a/apps/jingrow/frontend/dist/assets/ScheduledJobList-7e1a74a1.js +++ b/apps/jingrow/frontend/dist/assets/ScheduledJobList-701bc4cd.js @@ -1,2 +1,2 @@ -import{d as X,u as j,r as u,c as V,M as N,o as ee,e as o,f as n,g as d,j as i,h as b,Y as m,p as te,a1 as O,F as w,C as $,k as ae,t as l,a0 as se,a2 as le,l as r,m as ne,Z as z,L as I,a3 as oe,y as A,_ as ie}from"./index-b37e64ca.js";import{g as re,t as R}from"./scheduledJobs-e59ba30c.js";import{_ as ue}from"./_plugin-vue_export-helper-c27b6911.js";import"./common-0beb20f4.js";const ce={class:"page"},de={class:"page-header"},pe={class:"header-left"},me={class:"header-right"},fe={class:"filters"},ve=["disabled"],he={class:"page-content"},ye={key:0,class:"loading"},_e={key:1},ge={class:"job-list"},xe={class:"col-actions"},ke={class:"list-body"},Se=["onClick"],Ce={key:0,class:"col-name-wrapper"},be={class:"name"},we={key:0,class:"description"},Fe={key:1,class:"badge"},De={key:2,class:"cron-text"},Je={class:"col-actions"},qe=["onClick","title"],Le=["onClick","title"],Te={class:"list-pagination"},Me=X({__name:"ScheduledJobList",setup(Ne){const E=ae(),f=j(),S=u(!1),F=u([]),D=u([]),J=u(0),v=u(""),h=u("all"),y=u("all"),g=u(1),q=u(parseInt(localStorage.getItem("itemsPerPage")||"10")),L=u([]),_=u([]),U=u([]),G=V(()=>[{label:l("All"),value:"all"},{label:l("Running"),value:"running"},{label:l("Stopped"),value:"stopped"}]),Q=V(()=>Math.max(1,Math.ceil(J.value/q.value)));async function x(){S.value=!0;try{const a=[];if(v.value&&a.push(["method","like",`%${v.value}%`]),h.value!=="all"&&a.push(["frequency","=",h.value]),y.value!=="all"){const e=y.value==="stopped";a.push(["stopped","=",e?1:0])}const t=await re(g.value,q.value,a);D.value=t.items||[],Y(),J.value=t.total||0}catch(a){console.error("获取任务列表失败:",a),f.error(l("Failed to load jobs")),F.value=[],D.value=[],J.value=0}finally{S.value=!1}}async function Y(){let a=[...D.value];if(a=a.map(t=>({...t,stopped:!!t.stopped})),v.value){const t=v.value.toLowerCase();a=a.filter(e=>{var s,c;return((s=e.method)==null?void 0:s.toLowerCase().includes(t))||((c=e.name)==null?void 0:c.toLowerCase().includes(t))})}if(h.value!=="all"&&(a=a.filter(t=>t.frequency===h.value)),y.value!=="all"){const t=y.value==="stopped";a=a.filter(e=>!!e.stopped===t)}F.value=a}function Z(){x()}function B(a){E.push({name:"ScheduledJobDetail",params:{id:a}})}async function H(a){try{const t=await R(a.name);t.success?f.success(t.message||l("Job status updated successfully")):(f.error(t.message||l("Failed to update job status")),a.stopped=!a.stopped)}catch(t){console.error("Toggle job status error:",t),f.error(l("Failed to update job status")),a.stopped=!a.stopped}}async function K(a){try{const t=await R(a);t.success?(f.success(t.message||l("Job status updated successfully")),await x()):f.error(t.message||l("Failed to update job status"))}catch(t){console.error("Toggle job status error:",t),f.error(l("Failed to update job status"))}}function P(){if(_.value.length===0)return"1fr 120px 150px 100px 180px 120px";const a=_.value.map(t=>t.fieldname==="method"||t.fieldname==="name"?"1fr":t.fieldname==="frequency"?"120px":t.fieldname==="cron_format"?"150px":t.fieldname==="stopped"?"120px":t.fieldtype==="Datetime"||t.fieldtype==="Date"?"180px":t.fieldtype==="Check"?"100px":"120px");return a.push("120px"),a.join(" ")}async function W(){var a;try{const e=((a=(await se.get(`/api/data/PageType/${encodeURIComponent("Local Scheduled Job")}`,{headers:le(),withCredentials:!0})).data)==null?void 0:a.data)||{};L.value=e.fields||[],_.value=L.value.filter(p=>p.in_list_view===1||["method","frequency","cron_format","stopped","last_execution"].includes(p.fieldname));const s=e.field_order||[];_.value.sort((p,k)=>{const T=s.indexOf(p.fieldname),M=s.indexOf(k.fieldname);return T===-1&&M===-1?0:T===-1?1:M===-1?-1:T-M});const c=L.value.find(p=>p.fieldname==="frequency");if(c&&c.options){const p=typeof c.options=="string"?c.options.split(` +import{d as X,u as j,r as u,c as V,M as N,o as ee,e as o,f as n,g as d,j as i,h as b,Y as m,p as te,a1 as O,F as w,C as $,k as ae,t as l,a0 as se,a2 as le,l as r,m as ne,Z as z,L as I,a3 as oe,y as A,_ as ie}from"./index-7b482730.js";import{g as re,t as R}from"./scheduledJobs-af63a2c9.js";import{_ as ue}from"./_plugin-vue_export-helper-c27b6911.js";import"./common-a0065b74.js";const ce={class:"page"},de={class:"page-header"},pe={class:"header-left"},me={class:"header-right"},fe={class:"filters"},ve=["disabled"],he={class:"page-content"},ye={key:0,class:"loading"},_e={key:1},ge={class:"job-list"},xe={class:"col-actions"},ke={class:"list-body"},Se=["onClick"],Ce={key:0,class:"col-name-wrapper"},be={class:"name"},we={key:0,class:"description"},Fe={key:1,class:"badge"},De={key:2,class:"cron-text"},Je={class:"col-actions"},qe=["onClick","title"],Le=["onClick","title"],Te={class:"list-pagination"},Me=X({__name:"ScheduledJobList",setup(Ne){const E=ae(),f=j(),S=u(!1),F=u([]),D=u([]),J=u(0),v=u(""),h=u("all"),y=u("all"),g=u(1),q=u(parseInt(localStorage.getItem("itemsPerPage")||"10")),L=u([]),_=u([]),U=u([]),G=V(()=>[{label:l("All"),value:"all"},{label:l("Running"),value:"running"},{label:l("Stopped"),value:"stopped"}]),Q=V(()=>Math.max(1,Math.ceil(J.value/q.value)));async function x(){S.value=!0;try{const a=[];if(v.value&&a.push(["method","like",`%${v.value}%`]),h.value!=="all"&&a.push(["frequency","=",h.value]),y.value!=="all"){const e=y.value==="stopped";a.push(["stopped","=",e?1:0])}const t=await re(g.value,q.value,a);D.value=t.items||[],Y(),J.value=t.total||0}catch(a){console.error("获取任务列表失败:",a),f.error(l("Failed to load jobs")),F.value=[],D.value=[],J.value=0}finally{S.value=!1}}async function Y(){let a=[...D.value];if(a=a.map(t=>({...t,stopped:!!t.stopped})),v.value){const t=v.value.toLowerCase();a=a.filter(e=>{var s,c;return((s=e.method)==null?void 0:s.toLowerCase().includes(t))||((c=e.name)==null?void 0:c.toLowerCase().includes(t))})}if(h.value!=="all"&&(a=a.filter(t=>t.frequency===h.value)),y.value!=="all"){const t=y.value==="stopped";a=a.filter(e=>!!e.stopped===t)}F.value=a}function Z(){x()}function B(a){E.push({name:"ScheduledJobDetail",params:{id:a}})}async function H(a){try{const t=await R(a.name);t.success?f.success(t.message||l("Job status updated successfully")):(f.error(t.message||l("Failed to update job status")),a.stopped=!a.stopped)}catch(t){console.error("Toggle job status error:",t),f.error(l("Failed to update job status")),a.stopped=!a.stopped}}async function K(a){try{const t=await R(a);t.success?(f.success(t.message||l("Job status updated successfully")),await x()):f.error(t.message||l("Failed to update job status"))}catch(t){console.error("Toggle job status error:",t),f.error(l("Failed to update job status"))}}function P(){if(_.value.length===0)return"1fr 120px 150px 100px 180px 120px";const a=_.value.map(t=>t.fieldname==="method"||t.fieldname==="name"?"1fr":t.fieldname==="frequency"?"120px":t.fieldname==="cron_format"?"150px":t.fieldname==="stopped"?"120px":t.fieldtype==="Datetime"||t.fieldtype==="Date"?"180px":t.fieldtype==="Check"?"100px":"120px");return a.push("120px"),a.join(" ")}async function W(){var a;try{const e=((a=(await se.get(`/api/data/PageType/${encodeURIComponent("Local Scheduled Job")}`,{headers:le(),withCredentials:!0})).data)==null?void 0:a.data)||{};L.value=e.fields||[],_.value=L.value.filter(p=>p.in_list_view===1||["method","frequency","cron_format","stopped","last_execution"].includes(p.fieldname));const s=e.field_order||[];_.value.sort((p,k)=>{const T=s.indexOf(p.fieldname),M=s.indexOf(k.fieldname);return T===-1&&M===-1?0:T===-1?1:M===-1?-1:T-M});const c=L.value.find(p=>p.fieldname==="frequency");if(c&&c.options){const p=typeof c.options=="string"?c.options.split(` `).filter(k=>k.trim()):[];U.value=[{label:l("All"),value:"all"},...p.map(k=>({label:l(k.trim()),value:k.trim()}))]}}catch(t){console.error("Failed to load meta fields:",t),_.value=[{fieldname:"method",label:"Method",fieldtype:"Data"},{fieldname:"frequency",label:"Frequency",fieldtype:"Select"},{fieldname:"cron_format",label:"Cron Format",fieldtype:"Data"},{fieldname:"stopped",label:"Status",fieldtype:"Check"},{fieldname:"last_execution",label:"Last Execution",fieldtype:"Datetime"}]}}function C(a,t){const e=t[a.fieldname];switch(a.fieldtype||"Data"){case"Check":return{type:"checkbox",value:!!e};case"Datetime":case"Date":if(!e)return{type:"text",value:"—"};try{return{type:"text",value:new Date(e).toLocaleString()}}catch{return{type:"text",value:e}}case"Select":return{type:"text",value:e||"—"};case"Link":return{type:"text",value:e||"—"};case"Data":case"Small Text":case"Text":default:return{type:"text",value:e||"—"}}}return N([v,h,y],()=>{g.value=1,x()},{deep:!0}),N([g],()=>{x()}),N(()=>localStorage.getItem("itemsPerPage"),a=>{a&&(q.value=parseInt(a),g.value=1,x())}),ee(()=>{W(),x()}),(a,t)=>(r(),o("div",ce,[n("div",de,[n("div",pe,[n("h2",null,d(i(l)("Scheduled Jobs")),1)]),n("div",me,[n("div",fe,[b(i(ne),{value:v.value,"onUpdate:value":t[0]||(t[0]=e=>v.value=e),placeholder:i(l)("Search jobs..."),clearable:"",style:{width:"200px"}},null,8,["value","placeholder"]),b(i(z),{value:h.value,"onUpdate:value":t[1]||(t[1]=e=>h.value=e),options:U.value,placeholder:i(l)("Frequency"),style:{width:"120px"}},null,8,["value","options","placeholder"]),b(i(z),{value:y.value,"onUpdate:value":t[2]||(t[2]=e=>y.value=e),options:G.value,placeholder:i(l)("Status"),style:{width:"120px"}},null,8,["value","options","placeholder"])]),n("button",{class:"refresh-btn",onClick:Z,disabled:S.value},[n("i",{class:m(S.value?"fa fa-spinner fa-spin":"fa fa-refresh")},null,2)],8,ve)])]),n("div",he,[S.value?(r(),o("div",ye,[t[5]||(t[5]=n("i",{class:"fa fa-spinner fa-spin"},null,-1)),te(" "+d(i(l)("Loading...")),1)])):(r(),o("div",_e,[n("div",ge,[n("div",{class:"list-header",style:O({gridTemplateColumns:P()})},[(r(!0),o(w,null,$(_.value,e=>(r(),o("div",{key:e.fieldname,class:m(["col-header",`col-${e.fieldname}`])},d(i(l)(e.label||e.fieldname)),3))),128)),n("div",xe,d(i(l)("Actions")),1)],4),n("div",ke,[(r(!0),o(w,null,$(F.value,e=>(r(),o("div",{key:e.name,class:"list-item",style:O({gridTemplateColumns:P()}),onClick:s=>B(e.name)},[(r(!0),o(w,null,$(_.value,s=>(r(),o("div",{key:s.fieldname,class:m(["col-field",`col-${s.fieldname}`])},[s.fieldtype==="Check"?(r(),o(w,{key:0},[b(i(oe),{checked:e[s.fieldname],"onUpdate:checked":[c=>e[s.fieldname]=c,c=>s.fieldname==="stopped"?()=>H(e):void 0],onClick:t[3]||(t[3]=I(()=>{},["stop"]))},null,8,["checked","onUpdate:checked"]),s.fieldname==="stopped"?(r(),o("span",{key:0,class:m(["status-badge",e[s.fieldname]?"stopped":"running"])},d(e[s.fieldname]?i(l)("Stopped"):i(l)("Running")),3)):A("",!0)],64)):(r(),o(w,{key:1},[s.fieldname==="method"||s.fieldname==="name"?(r(),o("div",Ce,[n("div",be,d(C(s,e).value),1),s.fieldname==="method"&&e.name!==e.method?(r(),o("div",we,d(e.name),1)):A("",!0)])):s.fieldtype==="Select"&&s.fieldname==="frequency"?(r(),o("span",Fe,d(i(l)(C(s,e).value)),1)):s.fieldname==="cron_format"&&e.cron_format?(r(),o("span",De,d(C(s,e).value),1)):s.fieldtype==="Datetime"||s.fieldtype==="Date"?(r(),o("span",{key:3,class:m(e[s.fieldname]?"datetime-text":"text-muted")},d(C(s,e).value),3)):(r(),o("span",{key:4,class:m(e[s.fieldname]?"":"text-muted")},d(C(s,e).value),3))],64))],2))),128)),n("div",Je,[n("button",{class:m(["action-btn",e.stopped?"start-btn":"stop-btn"]),onClick:I(s=>K(e.name),["stop"]),title:e.stopped?i(l)("Start"):i(l)("Stop")},[n("i",{class:m(e.stopped?"fa fa-play":"fa fa-pause")},null,2)],10,qe),n("button",{class:"action-btn",onClick:I(s=>B(e.name),["stop"]),title:i(l)("View Details")},[...t[6]||(t[6]=[n("i",{class:"fa fa-eye"},null,-1)])],8,Le)])],12,Se))),128))]),n("div",Te,[b(i(ie),{page:g.value,"onUpdate:page":t[4]||(t[4]=e=>g.value=e),"page-count":Q.value,size:"small"},null,8,["page","page-count"])])])]))])]))}});const Pe=ue(Me,[["__scopeId","data-v-2dfcd234"]]);export{Pe as default}; diff --git a/apps/jingrow/frontend/dist/assets/SchemaBuilder-5cd9fb38.js b/apps/jingrow/frontend/dist/assets/SchemaBuilder-2d5c17c9.js similarity index 80% rename from apps/jingrow/frontend/dist/assets/SchemaBuilder-5cd9fb38.js rename to apps/jingrow/frontend/dist/assets/SchemaBuilder-2d5c17c9.js index 675a912..f71a416 100644 --- a/apps/jingrow/frontend/dist/assets/SchemaBuilder-5cd9fb38.js +++ b/apps/jingrow/frontend/dist/assets/SchemaBuilder-2d5c17c9.js @@ -1 +1 @@ -import{u as x}from"./store-c4ca15da.js";import w from"./SchemaCanvas-f9c37971.js";import z from"./SchemaSidebar-b54eef1a.js";import{_ as B}from"./_plugin-vue_export-helper-c27b6911.js";import{r as t,o as C,M,D,w as _,j as c,l as R,h as l,f as s,Y as W,a1 as k,bt as E,bu as L}from"./index-b37e64ca.js";import"./SchemaTabs-ab485280.js";import"./EditableInput-0f0815cf.js";import"./SchemaSections-4d2e1c5b.js";import"./_commonjsHelpers-de833af9.js";import"./index-73986d31.js";const N=300,X=700,j={__name:"SchemaBuilder",props:{initialSchema:{type:Object,default:()=>({})},onSave:{type:Function,default:null}},setup(S,{expose:y}){const a=S;y({getSchemaData:()=>o.schema});const o=x(),n=t(300),i=t(!1),b=t(null),u=t(null),d=t(null),m=t(0),v=t(300);function g(e){e.preventDefault(),e.stopPropagation(),m.value=e.clientX,v.value=n.value,i.value=!0,document.body.style.cursor="col-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",p),document.addEventListener("mouseup",h)}function p(e){if(!i.value)return;const f=m.value-e.clientX,r=v.value+f;r>=N&&r<=X&&(n.value=r)}function h(){i.value=!1,document.body.style.cursor="",document.body.style.userSelect="",document.removeEventListener("mousemove",p),document.removeEventListener("mouseup",h)}return C(()=>{u.value=document.body,d.value=document.body,a.initialSchema&&Object.keys(a.initialSchema).length>0&&o.loadSchema(a.initialSchema)}),M(()=>o.schema,e=>{a.onSave&&e&&a.onSave(e)},{deep:!0}),(e,f)=>(R(),D(c(L),{to:d.value},{default:_(()=>[l(c(E),{to:u.value},{default:_(()=>[s("div",{class:"schema-builder-container",ref_key:"containerRef",ref:b},[s("div",{class:W(["schema-main",[c(o).preview?"preview":""]])},[l(w)],2),s("div",{class:"resize-handle",onMousedown:g},null,32),s("div",{class:"schema-sidebar",style:k({width:n.value+"px"})},[l(z)],4)],512)]),_:1},8,["to"])]),_:1},8,["to"]))}},K=B(j,[["__scopeId","data-v-aa1da059"]]);export{K as default}; +import{u as x}from"./store-28c0e441.js";import w from"./SchemaCanvas-a841f26c.js";import z from"./SchemaSidebar-9a869d8a.js";import{_ as B}from"./_plugin-vue_export-helper-c27b6911.js";import{r as t,o as C,M,D,w as _,j as c,l as R,h as l,f as s,Y as W,a1 as k,bt as E,bu as L}from"./index-7b482730.js";import"./SchemaTabs-a065312d.js";import"./EditableInput-9b4a13c6.js";import"./SchemaSections-e3f0b1d4.js";import"./_commonjsHelpers-de833af9.js";import"./index-2fe8616a.js";const N=300,X=700,j={__name:"SchemaBuilder",props:{initialSchema:{type:Object,default:()=>({})},onSave:{type:Function,default:null}},setup(S,{expose:y}){const a=S;y({getSchemaData:()=>o.schema});const o=x(),n=t(300),i=t(!1),b=t(null),u=t(null),d=t(null),m=t(0),v=t(300);function g(e){e.preventDefault(),e.stopPropagation(),m.value=e.clientX,v.value=n.value,i.value=!0,document.body.style.cursor="col-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",p),document.addEventListener("mouseup",h)}function p(e){if(!i.value)return;const f=m.value-e.clientX,r=v.value+f;r>=N&&r<=X&&(n.value=r)}function h(){i.value=!1,document.body.style.cursor="",document.body.style.userSelect="",document.removeEventListener("mousemove",p),document.removeEventListener("mouseup",h)}return C(()=>{u.value=document.body,d.value=document.body,a.initialSchema&&Object.keys(a.initialSchema).length>0&&o.loadSchema(a.initialSchema)}),M(()=>o.schema,e=>{a.onSave&&e&&a.onSave(e)},{deep:!0}),(e,f)=>(R(),D(c(L),{to:d.value},{default:_(()=>[l(c(E),{to:u.value},{default:_(()=>[s("div",{class:"schema-builder-container",ref_key:"containerRef",ref:b},[s("div",{class:W(["schema-main",[c(o).preview?"preview":""]])},[l(w)],2),s("div",{class:"resize-handle",onMousedown:g},null,32),s("div",{class:"schema-sidebar",style:k({width:n.value+"px"})},[l(z)],4)],512)]),_:1},8,["to"])]),_:1},8,["to"]))}},K=B(j,[["__scopeId","data-v-aa1da059"]]);export{K as default}; diff --git a/apps/jingrow/frontend/dist/assets/SchemaCanvas-f9c37971.js b/apps/jingrow/frontend/dist/assets/SchemaCanvas-a841f26c.js similarity index 89% rename from apps/jingrow/frontend/dist/assets/SchemaCanvas-f9c37971.js rename to apps/jingrow/frontend/dist/assets/SchemaCanvas-a841f26c.js index 3f7e0b3..ecc84f7 100644 --- a/apps/jingrow/frontend/dist/assets/SchemaCanvas-f9c37971.js +++ b/apps/jingrow/frontend/dist/assets/SchemaCanvas-a841f26c.js @@ -1 +1 @@ -import V from"./SchemaTabs-ab485280.js";import{u as W}from"./store-c4ca15da.js";import"./EditableInput-0f0815cf.js";import{_ as J}from"./_plugin-vue_export-helper-c27b6911.js";import"./SchemaSections-4d2e1c5b.js";import{b as O,c as I,a6 as T,aW as y,j as m,e as A,f as _,g as x,D as U,y as F,l as D,t as B}from"./index-b37e64ca.js";import{n as $,i as q,t as L,w as z,a as G,b as H,c as Q}from"./index-73986d31.js";import"./_commonjsHelpers-de833af9.js";const N=q?window:void 0;function X(i){var e;const r=y(i);return(e=r==null?void 0:r.$el)!=null?e:r}function k(...i){const e=[],r=()=>{e.forEach(o=>o()),e.length=0},h=(o,s,a,u)=>(o.addEventListener(s,a,u),()=>o.removeEventListener(s,a,u)),f=I(()=>{const o=L(y(i[0])).filter(s=>s!=null);return o.every(s=>typeof s!="string")?o:void 0}),d=z(()=>{var o,s;return[(s=(o=f.value)==null?void 0:o.map(a=>X(a)))!=null?s:[N].filter(a=>a!=null),L(y(f.value?i[1]:i[0])),L(m(f.value?i[2]:i[1])),y(f.value?i[3]:i[2])]},([o,s,a,u])=>{if(r(),!(o!=null&&o.length)||!(s!=null&&s.length)||!(a!=null&&a.length))return;const g=H(u)?{...u}:u;e.push(...o.flatMap(p=>s.flatMap(E=>a.map(b=>h(p,E,b,g)))))},{flush:"post"}),c=()=>{d(),r()};return G(r),c}const Y={ctrl:"control",command:"meta",cmd:"meta",option:"alt",up:"arrowup",down:"arrowdown",left:"arrowleft",right:"arrowright"};function Z(i={}){const{reactive:e=!1,target:r=N,aliasMap:h=Y,passive:f=!0,onEventFired:d=$}=i,c=O(new Set),o={toJSON(){return{}},current:c},s=e?O(o):o,a=new Set,u=new Set,g=new Set;function p(n,t){n in s&&(e?s[n]=t:s[n].value=t)}function E(){c.clear();for(const n of g)p(n,!1)}function b(n,t){var w,S;const v=(w=n.key)==null?void 0:w.toLowerCase(),M=[(S=n.code)==null?void 0:S.toLowerCase(),v].filter(Boolean);v&&(t?c.add(v):c.delete(v));for(const l of M)g.add(l),p(l,t);if(v==="shift"&&!t){const l=Array.from(u),j=l.indexOf("shift");l.forEach((R,K)=>{K>=j&&(c.delete(R),p(R,!1))}),u.clear()}else typeof n.getModifierState=="function"&&n.getModifierState("Shift")&&t&&[...c,...M].forEach(l=>u.add(l));v==="meta"&&!t?(a.forEach(l=>{c.delete(l),p(l,!1)}),a.clear()):typeof n.getModifierState=="function"&&n.getModifierState("Meta")&&t&&[...c,...M].forEach(l=>a.add(l))}k(r,"keydown",n=>(b(n,!0),d(n)),{passive:f}),k(r,"keyup",n=>(b(n,!1),d(n)),{passive:f}),k("blur",E,{passive:f}),k("focus",E,{passive:f});const P=new Proxy(s,{get(n,t,w){if(typeof t!="string")return Reflect.get(n,t,w);if(t=t.toLowerCase(),t in h&&(t=h[t]),!(t in s))if(/[+_-]/.test(t)){const v=t.split(/[+_-]/g).map(C=>C.trim());s[t]=I(()=>v.map(C=>y(P[C])).every(Boolean))}else s[t]=T(!1);const S=Reflect.get(n,t,w);return e?y(S):S}});return P}const ee={class:"schema-canvas"},te={class:"schema-header"},se={class:"schema-actions"},ne={class:"schema-content"},oe={key:0,class:"schema-preview"},ae={__name:"SchemaCanvas",setup(i){const e=W(),{Backspace:r}=Z();Q(r,d=>{d&&e.selectedField&&e.notUsingInput&&h(e.selectedField)});function h(d){e.removeProperty(d)}function f(){e.updateSchema();const d=new CustomEvent("schema-save",{detail:{schemaData:e.schema}});document.dispatchEvent(d)}return(d,c)=>(D(),A("div",ee,[_("div",te,[_("div",se,[_("button",{class:"preview-btn",onClick:c[0]||(c[0]=(...o)=>m(e).togglePreview&&m(e).togglePreview(...o))},x(m(e).preview?m(B)("Edit"):m(B)("Preview")),1),_("button",{class:"save-btn",onClick:f},x(m(B)("Save")),1)])]),m(e).preview?F("",!0):(D(),U(V,{key:0})),_("div",ne,[m(e).preview?(D(),A("div",oe,[_("pre",null,x(JSON.stringify(m(e).schema,null,2)),1)])):F("",!0)])]))}},ve=J(ae,[["__scopeId","data-v-a6a159d7"]]);export{ve as default}; +import V from"./SchemaTabs-a065312d.js";import{u as W}from"./store-28c0e441.js";import"./EditableInput-9b4a13c6.js";import{_ as J}from"./_plugin-vue_export-helper-c27b6911.js";import"./SchemaSections-e3f0b1d4.js";import{b as O,c as I,a6 as T,aW as y,j as m,e as A,f as _,g as x,D as U,y as F,l as D,t as B}from"./index-7b482730.js";import{n as $,i as q,t as L,w as z,a as G,b as H,c as Q}from"./index-2fe8616a.js";import"./_commonjsHelpers-de833af9.js";const N=q?window:void 0;function X(i){var e;const r=y(i);return(e=r==null?void 0:r.$el)!=null?e:r}function k(...i){const e=[],r=()=>{e.forEach(o=>o()),e.length=0},h=(o,s,a,u)=>(o.addEventListener(s,a,u),()=>o.removeEventListener(s,a,u)),f=I(()=>{const o=L(y(i[0])).filter(s=>s!=null);return o.every(s=>typeof s!="string")?o:void 0}),d=z(()=>{var o,s;return[(s=(o=f.value)==null?void 0:o.map(a=>X(a)))!=null?s:[N].filter(a=>a!=null),L(y(f.value?i[1]:i[0])),L(m(f.value?i[2]:i[1])),y(f.value?i[3]:i[2])]},([o,s,a,u])=>{if(r(),!(o!=null&&o.length)||!(s!=null&&s.length)||!(a!=null&&a.length))return;const g=H(u)?{...u}:u;e.push(...o.flatMap(p=>s.flatMap(E=>a.map(b=>h(p,E,b,g)))))},{flush:"post"}),c=()=>{d(),r()};return G(r),c}const Y={ctrl:"control",command:"meta",cmd:"meta",option:"alt",up:"arrowup",down:"arrowdown",left:"arrowleft",right:"arrowright"};function Z(i={}){const{reactive:e=!1,target:r=N,aliasMap:h=Y,passive:f=!0,onEventFired:d=$}=i,c=O(new Set),o={toJSON(){return{}},current:c},s=e?O(o):o,a=new Set,u=new Set,g=new Set;function p(n,t){n in s&&(e?s[n]=t:s[n].value=t)}function E(){c.clear();for(const n of g)p(n,!1)}function b(n,t){var w,S;const v=(w=n.key)==null?void 0:w.toLowerCase(),M=[(S=n.code)==null?void 0:S.toLowerCase(),v].filter(Boolean);v&&(t?c.add(v):c.delete(v));for(const l of M)g.add(l),p(l,t);if(v==="shift"&&!t){const l=Array.from(u),j=l.indexOf("shift");l.forEach((R,K)=>{K>=j&&(c.delete(R),p(R,!1))}),u.clear()}else typeof n.getModifierState=="function"&&n.getModifierState("Shift")&&t&&[...c,...M].forEach(l=>u.add(l));v==="meta"&&!t?(a.forEach(l=>{c.delete(l),p(l,!1)}),a.clear()):typeof n.getModifierState=="function"&&n.getModifierState("Meta")&&t&&[...c,...M].forEach(l=>a.add(l))}k(r,"keydown",n=>(b(n,!0),d(n)),{passive:f}),k(r,"keyup",n=>(b(n,!1),d(n)),{passive:f}),k("blur",E,{passive:f}),k("focus",E,{passive:f});const P=new Proxy(s,{get(n,t,w){if(typeof t!="string")return Reflect.get(n,t,w);if(t=t.toLowerCase(),t in h&&(t=h[t]),!(t in s))if(/[+_-]/.test(t)){const v=t.split(/[+_-]/g).map(C=>C.trim());s[t]=I(()=>v.map(C=>y(P[C])).every(Boolean))}else s[t]=T(!1);const S=Reflect.get(n,t,w);return e?y(S):S}});return P}const ee={class:"schema-canvas"},te={class:"schema-header"},se={class:"schema-actions"},ne={class:"schema-content"},oe={key:0,class:"schema-preview"},ae={__name:"SchemaCanvas",setup(i){const e=W(),{Backspace:r}=Z();Q(r,d=>{d&&e.selectedField&&e.notUsingInput&&h(e.selectedField)});function h(d){e.removeProperty(d)}function f(){e.updateSchema();const d=new CustomEvent("schema-save",{detail:{schemaData:e.schema}});document.dispatchEvent(d)}return(d,c)=>(D(),A("div",ee,[_("div",te,[_("div",se,[_("button",{class:"preview-btn",onClick:c[0]||(c[0]=(...o)=>m(e).togglePreview&&m(e).togglePreview(...o))},x(m(e).preview?m(B)("Edit"):m(B)("Preview")),1),_("button",{class:"save-btn",onClick:f},x(m(B)("Save")),1)])]),m(e).preview?F("",!0):(D(),U(V,{key:0})),_("div",ne,[m(e).preview?(D(),A("div",oe,[_("pre",null,x(JSON.stringify(m(e).schema,null,2)),1)])):F("",!0)])]))}},ve=J(ae,[["__scopeId","data-v-a6a159d7"]]);export{ve as default}; diff --git a/apps/jingrow/frontend/dist/assets/SchemaEditorModal-42c9d9f8.js b/apps/jingrow/frontend/dist/assets/SchemaEditorModal-3018ed0e.js similarity index 99% rename from apps/jingrow/frontend/dist/assets/SchemaEditorModal-42c9d9f8.js rename to apps/jingrow/frontend/dist/assets/SchemaEditorModal-3018ed0e.js index 599c6dd..d9e8502 100644 --- a/apps/jingrow/frontend/dist/assets/SchemaEditorModal-42c9d9f8.js +++ b/apps/jingrow/frontend/dist/assets/SchemaEditorModal-3018ed0e.js @@ -1,4 +1,4 @@ -import{d as Br,u as $r,r as zr,c as Ur,M as Vr,K as Xr,e as Gr,f as Le,g as Qr,L as Yr,y as Jr,t as $t,l as Kr,J as Zr,a8 as ei}from"./index-b37e64ca.js";import{c as ti,g as ni}from"./_commonjsHelpers-de833af9.js";import{_ as ri}from"./_plugin-vue_export-helper-c27b6911.js";var Hn={exports:{}};/*! +import{d as Br,u as $r,r as zr,c as Ur,M as Vr,K as Xr,e as Gr,f as Le,g as Qr,L as Yr,y as Jr,t as $t,l as Kr,J as Zr,a8 as ei}from"./index-7b482730.js";import{c as ti,g as ni}from"./_commonjsHelpers-de833af9.js";import{_ as ri}from"./_plugin-vue_export-helper-c27b6911.js";var Hn={exports:{}};/*! * jQuery JavaScript Library v3.7.1 * https://jquery.com/ * @@ -10,4 +10,4 @@ import{d as Br,u as $r,r as zr,c as Ur,M as Vr,K as Xr,e as Gr,f as Le,g as Qr,L */(function(vt){(function(j,ie){vt.exports=j.document?ie(j,!0):function(z){if(!z.document)throw new Error("jQuery requires a window with a document");return ie(z)}})(typeof window<"u"?window:ti,function(j,ie){var z=[],ze=Object.getPrototypeOf,V=z.slice,ot=z.flat?function(e){return z.flat.call(e)}:function(e){return z.concat.apply([],e)},qe=z.push,oe=z.indexOf,we={},Ue=we.toString,Se=we.hasOwnProperty,Ve=Se.toString,X=Ve.call(Object),E={},L=function(t){return typeof t=="function"&&typeof t.nodeType!="number"&&typeof t.item!="function"},Ee=function(t){return t!=null&&t===t.window},q=j.document,On={type:!0,src:!0,nonce:!0,noModule:!0};function zt(e,t,n){n=n||q;var r,o,a=n.createElement("script");if(a.text=e,t)for(r in On)o=t[r]||t.getAttribute&&t.getAttribute(r),o&&a.setAttribute(r,o);n.head.appendChild(a).parentNode.removeChild(a)}function He(e){return e==null?e+"":typeof e=="object"||typeof e=="function"?we[Ue.call(e)]||"object":typeof e}var Ut="3.7.1",Pn=/HTML$/i,i=function(e,t){return new i.fn.init(e,t)};i.fn=i.prototype={jquery:Ut,constructor:i,length:0,toArray:function(){return V.call(this)},get:function(e){return e==null?V.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=i.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return i.each(this,e)},map:function(e){return this.pushStack(i.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(V.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(i.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(i.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n0&&t-1 in e}function B(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var _n=z.pop,Mn=z.sort,Rn=z.splice,F="[\\x20\\t\\r\\n\\f]",Xe=new RegExp("^"+F+"+|((?:^|[^\\\\])(?:\\\\.)*)"+F+"+$","g");i.contains=function(e,t){var n=t&&t.parentNode;return e===n||!!(n&&n.nodeType===1&&(e.contains?e.contains(n):e.compareDocumentPosition&&e.compareDocumentPosition(n)&16))};var In=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;function Fn(e,t){return t?e==="\0"?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e}i.escapeSelector=function(e){return(e+"").replace(In,Fn)};var ge=q,bt=qe;(function(){var e,t,n,r,o,a=bt,u,c,f,d,y,m=i.expando,h=0,b=0,A=pt(),M=pt(),H=pt(),G=pt(),U=function(s,l){return s===l&&(o=!0),0},ce="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",le="(?:\\\\[\\da-fA-F]{1,6}"+F+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",_="\\["+F+"*("+le+")(?:"+F+"*([*^$|!~]?=)"+F+`*(?:'((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)"|(`+le+"))|)"+F+"*\\]",Ne=":("+le+`)(?:\\((('((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|`+_+")*)|.*)\\)|)",R=new RegExp(F+"+","g"),$=new RegExp("^"+F+"*,"+F+"*"),nt=new RegExp("^"+F+"*([>+~]|"+F+")"+F+"*"),_t=new RegExp(F+"|>"),de=new RegExp(Ne),rt=new RegExp("^"+le+"$"),pe={ID:new RegExp("^#("+le+")"),CLASS:new RegExp("^\\.("+le+")"),TAG:new RegExp("^("+le+"|[*])"),ATTR:new RegExp("^"+_),PSEUDO:new RegExp("^"+Ne),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+F+"*(even|odd|(([+-]|)(\\d*)n|)"+F+"*(?:([+-]|)"+F+"*(\\d+)|))"+F+"*\\)|)","i"),bool:new RegExp("^(?:"+ce+")$","i"),needsContext:new RegExp("^"+F+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+F+"*((?:-\\d)?\\d*)"+F+"*\\)|)(?=[^-]|$)","i")},xe=/^(?:input|select|textarea|button)$/i,Te=/^h\d$/i,ne=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Mt=/[+~]/,me=new RegExp("\\\\[\\da-fA-F]{1,6}"+F+"?|\\\\([^\\r\\n\\f])","g"),be=function(s,l){var p="0x"+s.slice(1)-65536;return l||(p<0?String.fromCharCode(p+65536):String.fromCharCode(p>>10|55296,p&1023|56320))},Pr=function(){Ce()},_r=gt(function(s){return s.disabled===!0&&B(s,"fieldset")},{dir:"parentNode",next:"legend"});function Mr(){try{return u.activeElement}catch{}}try{a.apply(z=V.call(ge.childNodes),ge.childNodes),z[ge.childNodes.length].nodeType}catch{a={apply:function(l,p){bt.apply(l,V.call(p))},call:function(l){bt.apply(l,V.call(arguments,1))}}}function I(s,l,p,g){var v,x,T,w,C,O,k,N=l&&l.ownerDocument,P=l?l.nodeType:9;if(p=p||[],typeof s!="string"||!s||P!==1&&P!==9&&P!==11)return p;if(!g&&(Ce(l),l=l||u,f)){if(P!==11&&(C=ne.exec(s)))if(v=C[1]){if(P===9)if(T=l.getElementById(v)){if(T.id===v)return a.call(p,T),p}else return p;else if(N&&(T=N.getElementById(v))&&I.contains(l,T)&&T.id===v)return a.call(p,T),p}else{if(C[2])return a.apply(p,l.getElementsByTagName(s)),p;if((v=C[3])&&l.getElementsByClassName)return a.apply(p,l.getElementsByClassName(v)),p}if(!G[s+" "]&&(!d||!d.test(s))){if(k=s,N=l,P===1&&(_t.test(s)||nt.test(s))){for(N=Mt.test(s)&&Rt(l.parentNode)||l,(N!=l||!E.scope)&&((w=l.getAttribute("id"))?w=i.escapeSelector(w):l.setAttribute("id",w=m)),O=it(s),x=O.length;x--;)O[x]=(w?"#"+w:":scope")+" "+ht(O[x]);k=O.join(",")}try{return a.apply(p,N.querySelectorAll(k)),p}catch{G(s,!0)}finally{w===m&&l.removeAttribute("id")}}}return qn(s.replace(Xe,"$1"),l,p,g)}function pt(){var s=[];function l(p,g){return s.push(p+" ")>t.cacheLength&&delete l[s.shift()],l[p+" "]=g}return l}function ue(s){return s[m]=!0,s}function Be(s){var l=u.createElement("fieldset");try{return!!s(l)}catch{return!1}finally{l.parentNode&&l.parentNode.removeChild(l),l=null}}function Rr(s){return function(l){return B(l,"input")&&l.type===s}}function Ir(s){return function(l){return(B(l,"input")||B(l,"button"))&&l.type===s}}function jn(s){return function(l){return"form"in l?l.parentNode&&l.disabled===!1?"label"in l?"label"in l.parentNode?l.parentNode.disabled===s:l.disabled===s:l.isDisabled===s||l.isDisabled!==!s&&_r(l)===s:l.disabled===s:"label"in l?l.disabled===s:!1}}function je(s){return ue(function(l){return l=+l,ue(function(p,g){for(var v,x=s([],p.length,l),T=x.length;T--;)p[v=x[T]]&&(p[v]=!(g[v]=p[v]))})})}function Rt(s){return s&&typeof s.getElementsByTagName<"u"&&s}function Ce(s){var l,p=s?s.ownerDocument||s:ge;return p==u||p.nodeType!==9||!p.documentElement||(u=p,c=u.documentElement,f=!i.isXMLDoc(u),y=c.matches||c.webkitMatchesSelector||c.msMatchesSelector,c.msMatchesSelector&&ge!=u&&(l=u.defaultView)&&l.top!==l&&l.addEventListener("unload",Pr),E.getById=Be(function(g){return c.appendChild(g).id=i.expando,!u.getElementsByName||!u.getElementsByName(i.expando).length}),E.disconnectedMatch=Be(function(g){return y.call(g,"*")}),E.scope=Be(function(){return u.querySelectorAll(":scope")}),E.cssHas=Be(function(){try{return u.querySelector(":has(*,:jqfake)"),!1}catch{return!0}}),E.getById?(t.filter.ID=function(g){var v=g.replace(me,be);return function(x){return x.getAttribute("id")===v}},t.find.ID=function(g,v){if(typeof v.getElementById<"u"&&f){var x=v.getElementById(g);return x?[x]:[]}}):(t.filter.ID=function(g){var v=g.replace(me,be);return function(x){var T=typeof x.getAttributeNode<"u"&&x.getAttributeNode("id");return T&&T.value===v}},t.find.ID=function(g,v){if(typeof v.getElementById<"u"&&f){var x,T,w,C=v.getElementById(g);if(C){if(x=C.getAttributeNode("id"),x&&x.value===g)return[C];for(w=v.getElementsByName(g),T=0;C=w[T++];)if(x=C.getAttributeNode("id"),x&&x.value===g)return[C]}return[]}}),t.find.TAG=function(g,v){return typeof v.getElementsByTagName<"u"?v.getElementsByTagName(g):v.querySelectorAll(g)},t.find.CLASS=function(g,v){if(typeof v.getElementsByClassName<"u"&&f)return v.getElementsByClassName(g)},d=[],Be(function(g){var v;c.appendChild(g).innerHTML="",g.querySelectorAll("[selected]").length||d.push("\\["+F+"*(?:value|"+ce+")"),g.querySelectorAll("[id~="+m+"-]").length||d.push("~="),g.querySelectorAll("a#"+m+"+*").length||d.push(".#.+[+~]"),g.querySelectorAll(":checked").length||d.push(":checked"),v=u.createElement("input"),v.setAttribute("type","hidden"),g.appendChild(v).setAttribute("name","D"),c.appendChild(g).disabled=!0,g.querySelectorAll(":disabled").length!==2&&d.push(":enabled",":disabled"),v=u.createElement("input"),v.setAttribute("name",""),g.appendChild(v),g.querySelectorAll("[name='']").length||d.push("\\["+F+"*name"+F+"*="+F+`*(?:''|"")`)}),E.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),U=function(g,v){if(g===v)return o=!0,0;var x=!g.compareDocumentPosition-!v.compareDocumentPosition;return x||(x=(g.ownerDocument||g)==(v.ownerDocument||v)?g.compareDocumentPosition(v):1,x&1||!E.sortDetached&&v.compareDocumentPosition(g)===x?g===u||g.ownerDocument==ge&&I.contains(ge,g)?-1:v===u||v.ownerDocument==ge&&I.contains(ge,v)?1:r?oe.call(r,g)-oe.call(r,v):0:x&4?-1:1)}),u}I.matches=function(s,l){return I(s,null,null,l)},I.matchesSelector=function(s,l){if(Ce(s),f&&!G[l+" "]&&(!d||!d.test(l)))try{var p=y.call(s,l);if(p||E.disconnectedMatch||s.document&&s.document.nodeType!==11)return p}catch{G(l,!0)}return I(l,u,null,[s]).length>0},I.contains=function(s,l){return(s.ownerDocument||s)!=u&&Ce(s),i.contains(s,l)},I.attr=function(s,l){(s.ownerDocument||s)!=u&&Ce(s);var p=t.attrHandle[l.toLowerCase()],g=p&&Se.call(t.attrHandle,l.toLowerCase())?p(s,l,!f):void 0;return g!==void 0?g:s.getAttribute(l)},I.error=function(s){throw new Error("Syntax error, unrecognized expression: "+s)},i.uniqueSort=function(s){var l,p=[],g=0,v=0;if(o=!E.sortStable,r=!E.sortStable&&V.call(s,0),Mn.call(s,U),o){for(;l=s[v++];)l===s[v]&&(g=p.push(v));for(;g--;)Rn.call(s,p[g],1)}return r=null,s},i.fn.uniqueSort=function(){return this.pushStack(i.uniqueSort(V.apply(this)))},t=i.expr={cacheLength:50,createPseudo:ue,match:pe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(s){return s[1]=s[1].replace(me,be),s[3]=(s[3]||s[4]||s[5]||"").replace(me,be),s[2]==="~="&&(s[3]=" "+s[3]+" "),s.slice(0,4)},CHILD:function(s){return s[1]=s[1].toLowerCase(),s[1].slice(0,3)==="nth"?(s[3]||I.error(s[0]),s[4]=+(s[4]?s[5]+(s[6]||1):2*(s[3]==="even"||s[3]==="odd")),s[5]=+(s[7]+s[8]||s[3]==="odd")):s[3]&&I.error(s[0]),s},PSEUDO:function(s){var l,p=!s[6]&&s[2];return pe.CHILD.test(s[0])?null:(s[3]?s[2]=s[4]||s[5]||"":p&&de.test(p)&&(l=it(p,!0))&&(l=p.indexOf(")",p.length-l)-p.length)&&(s[0]=s[0].slice(0,l),s[2]=p.slice(0,l)),s.slice(0,3))}},filter:{TAG:function(s){var l=s.replace(me,be).toLowerCase();return s==="*"?function(){return!0}:function(p){return B(p,l)}},CLASS:function(s){var l=A[s+" "];return l||(l=new RegExp("(^|"+F+")"+s+"("+F+"|$)"))&&A(s,function(p){return l.test(typeof p.className=="string"&&p.className||typeof p.getAttribute<"u"&&p.getAttribute("class")||"")})},ATTR:function(s,l,p){return function(g){var v=I.attr(g,s);return v==null?l==="!=":l?(v+="",l==="="?v===p:l==="!="?v!==p:l==="^="?p&&v.indexOf(p)===0:l==="*="?p&&v.indexOf(p)>-1:l==="$="?p&&v.slice(-p.length)===p:l==="~="?(" "+v.replace(R," ")+" ").indexOf(p)>-1:l==="|="?v===p||v.slice(0,p.length+1)===p+"-":!1):!0}},CHILD:function(s,l,p,g,v){var x=s.slice(0,3)!=="nth",T=s.slice(-4)!=="last",w=l==="of-type";return g===1&&v===0?function(C){return!!C.parentNode}:function(C,O,k){var N,P,D,W,ee,Q=x!==T?"nextSibling":"previousSibling",re=C.parentNode,he=w&&C.nodeName.toLowerCase(),$e=!k&&!w,Y=!1;if(re){if(x){for(;Q;){for(D=C;D=D[Q];)if(w?B(D,he):D.nodeType===1)return!1;ee=Q=s==="only"&&!ee&&"nextSibling"}return!0}if(ee=[T?re.firstChild:re.lastChild],T&&$e){for(P=re[m]||(re[m]={}),N=P[s]||[],W=N[0]===h&&N[1],Y=W&&N[2],D=W&&re.childNodes[W];D=++W&&D&&D[Q]||(Y=W=0)||ee.pop();)if(D.nodeType===1&&++Y&&D===C){P[s]=[h,W,Y];break}}else if($e&&(P=C[m]||(C[m]={}),N=P[s]||[],W=N[0]===h&&N[1],Y=W),Y===!1)for(;(D=++W&&D&&D[Q]||(Y=W=0)||ee.pop())&&!((w?B(D,he):D.nodeType===1)&&++Y&&($e&&(P=D[m]||(D[m]={}),P[s]=[h,Y]),D===C)););return Y-=v,Y===g||Y%g===0&&Y/g>=0}}},PSEUDO:function(s,l){var p,g=t.pseudos[s]||t.setFilters[s.toLowerCase()]||I.error("unsupported pseudo: "+s);return g[m]?g(l):g.length>1?(p=[s,s,"",l],t.setFilters.hasOwnProperty(s.toLowerCase())?ue(function(v,x){for(var T,w=g(v,l),C=w.length;C--;)T=oe.call(v,w[C]),v[T]=!(x[T]=w[C])}):function(v){return g(v,0,p)}):g}},pseudos:{not:ue(function(s){var l=[],p=[],g=Bt(s.replace(Xe,"$1"));return g[m]?ue(function(v,x,T,w){for(var C,O=g(v,null,w,[]),k=v.length;k--;)(C=O[k])&&(v[k]=!(x[k]=C))}):function(v,x,T){return l[0]=v,g(l,null,T,p),l[0]=null,!p.pop()}}),has:ue(function(s){return function(l){return I(s,l).length>0}}),contains:ue(function(s){return s=s.replace(me,be),function(l){return(l.textContent||i.text(l)).indexOf(s)>-1}}),lang:ue(function(s){return rt.test(s||"")||I.error("unsupported lang: "+s),s=s.replace(me,be).toLowerCase(),function(l){var p;do if(p=f?l.lang:l.getAttribute("xml:lang")||l.getAttribute("lang"))return p=p.toLowerCase(),p===s||p.indexOf(s+"-")===0;while((l=l.parentNode)&&l.nodeType===1);return!1}}),target:function(s){var l=j.location&&j.location.hash;return l&&l.slice(1)===s.id},root:function(s){return s===c},focus:function(s){return s===Mr()&&u.hasFocus()&&!!(s.type||s.href||~s.tabIndex)},enabled:jn(!1),disabled:jn(!0),checked:function(s){return B(s,"input")&&!!s.checked||B(s,"option")&&!!s.selected},selected:function(s){return s.parentNode&&s.parentNode.selectedIndex,s.selected===!0},empty:function(s){for(s=s.firstChild;s;s=s.nextSibling)if(s.nodeType<6)return!1;return!0},parent:function(s){return!t.pseudos.empty(s)},header:function(s){return Te.test(s.nodeName)},input:function(s){return xe.test(s.nodeName)},button:function(s){return B(s,"input")&&s.type==="button"||B(s,"button")},text:function(s){var l;return B(s,"input")&&s.type==="text"&&((l=s.getAttribute("type"))==null||l.toLowerCase()==="text")},first:je(function(){return[0]}),last:je(function(s,l){return[l-1]}),eq:je(function(s,l,p){return[p<0?p+l:p]}),even:je(function(s,l){for(var p=0;pl?g=l:g=p;--g>=0;)s.push(g);return s}),gt:je(function(s,l,p){for(var g=p<0?p+l:p;++g1?function(l,p,g){for(var v=s.length;v--;)if(!s[v](l,p,g))return!1;return!0}:s[0]}function Fr(s,l,p){for(var g=0,v=l.length;g-1&&(T[k]=!(w[k]=P))}}else D=yt(D===w?D.splice(Q,D.length):D),v?v(null,w,D,O):a.apply(w,D)})}function Wt(s){for(var l,p,g,v=s.length,x=t.relative[s[0].type],T=x||t.relative[" "],w=x?1:0,C=gt(function(N){return N===l},T,!0),O=gt(function(N){return oe.call(l,N)>-1},T,!0),k=[function(N,P,D){var W=!x&&(D||P!=n)||((l=P).nodeType?C(N,P,D):O(N,P,D));return l=null,W}];w1&&It(k),w>1&&ht(s.slice(0,w-1).concat({value:s[w-2].type===" "?"*":""})).replace(Xe,"$1"),p,w0,g=s.length>0,v=function(x,T,w,C,O){var k,N,P,D=0,W="0",ee=x&&[],Q=[],re=n,he=x||g&&t.find.TAG("*",O),$e=h+=re==null?1:Math.random()||.1,Y=he.length;for(O&&(n=T==u||T||O);W!==Y&&(k=he[W])!=null;W++){if(g&&k){for(N=0,!T&&k.ownerDocument!=u&&(Ce(k),w=!f);P=s[N++];)if(P(k,T||u,w)){a.call(C,k);break}O&&(h=$e)}p&&((k=!P&&k)&&D--,x&&ee.push(k))}if(D+=W,p&&W!==D){for(N=0;P=l[N++];)P(ee,Q,T,w);if(x){if(D>0)for(;W--;)ee[W]||Q[W]||(Q[W]=_n.call(C));Q=yt(Q)}a.apply(C,Q),O&&!x&&Q.length>0&&D+l.length>1&&i.uniqueSort(C)}return O&&(h=$e,n=re),ee};return p?ue(v):v}function Bt(s,l){var p,g=[],v=[],x=H[s+" "];if(!x){for(l||(l=it(s)),p=l.length;p--;)x=Wt(l[p]),x[m]?g.push(x):v.push(x);x=H(s,Wr(v,g)),x.selector=s}return x}function qn(s,l,p,g){var v,x,T,w,C,O=typeof s=="function"&&s,k=!g&&it(s=O.selector||s);if(p=p||[],k.length===1){if(x=k[0]=k[0].slice(0),x.length>2&&(T=x[0]).type==="ID"&&l.nodeType===9&&f&&t.relative[x[1].type]){if(l=(t.find.ID(T.matches[0].replace(me,be),l)||[])[0],l)O&&(l=l.parentNode);else return p;s=s.slice(x.shift().value.length)}for(v=pe.needsContext.test(s)?0:x.length;v--&&(T=x[v],!t.relative[w=T.type]);)if((C=t.find[w])&&(g=C(T.matches[0].replace(me,be),Mt.test(x[0].type)&&Rt(l.parentNode)||l))){if(x.splice(v,1),s=g.length&&ht(x),!s)return a.apply(p,g),p;break}}return(O||Bt(s,k))(g,l,!f,p,!l||Mt.test(s)&&Rt(l.parentNode)||l),p}E.sortStable=m.split("").sort(U).join("")===m,Ce(),E.sortDetached=Be(function(s){return s.compareDocumentPosition(u.createElement("fieldset"))&1}),i.find=I,i.expr[":"]=i.expr.pseudos,i.unique=i.uniqueSort,I.compile=Bt,I.select=qn,I.setDocument=Ce,I.tokenize=it,I.escape=i.escapeSelector,I.getText=i.text,I.isXML=i.isXMLDoc,I.selectors=i.expr,I.support=i.support,I.uniqueSort=i.uniqueSort})();var Oe=function(e,t,n){for(var r=[],o=n!==void 0;(e=e[t])&&e.nodeType!==9;)if(e.nodeType===1){if(o&&i(e).is(n))break;r.push(e)}return r},Vt=function(e,t){for(var n=[];e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n},Xt=i.expr.match.needsContext,Gt=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function xt(e,t,n){return L(t)?i.grep(e,function(r,o){return!!t.call(r,o,r)!==n}):t.nodeType?i.grep(e,function(r){return r===t!==n}):typeof t!="string"?i.grep(e,function(r){return oe.call(t,r)>-1!==n}):i.filter(t,e,n)}i.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),t.length===1&&r.nodeType===1?i.find.matchesSelector(r,e)?[r]:[]:i.find.matches(e,i.grep(t,function(o){return o.nodeType===1}))},i.fn.extend({find:function(e){var t,n,r=this.length,o=this;if(typeof e!="string")return this.pushStack(i(e).filter(function(){for(t=0;t1?i.uniqueSort(n):n},filter:function(e){return this.pushStack(xt(this,e||[],!1))},not:function(e){return this.pushStack(xt(this,e||[],!0))},is:function(e){return!!xt(this,typeof e=="string"&&Xt.test(e)?i(e):e||[],!1).length}});var Qt,Wn=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,Bn=i.fn.init=function(e,t,n){var r,o;if(!e)return this;if(n=n||Qt,typeof e=="string")if(e[0]==="<"&&e[e.length-1]===">"&&e.length>=3?r=[null,e,null]:r=Wn.exec(e),r&&(r[1]||!t))if(r[1]){if(t=t instanceof i?t[0]:t,i.merge(this,i.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:q,!0)),Gt.test(r[1])&&i.isPlainObject(t))for(r in t)L(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}else return o=q.getElementById(r[2]),o&&(this[0]=o,this.length=1),this;else return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);else{if(e.nodeType)return this[0]=e,this.length=1,this;if(L(e))return n.ready!==void 0?n.ready(e):e(i)}return i.makeArray(e,this)};Bn.prototype=i.fn,Qt=i(q);var $n=/^(?:parents|prev(?:Until|All))/,zn={children:!0,contents:!0,next:!0,prev:!0};i.fn.extend({has:function(e){var t=i(e,this),n=t.length;return this.filter(function(){for(var r=0;r-1:n.nodeType===1&&i.find.matchesSelector(n,e))){a.push(n);break}}return this.pushStack(a.length>1?i.uniqueSort(a):a)},index:function(e){return e?typeof e=="string"?oe.call(i(e),this[0]):oe.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(i.uniqueSort(i.merge(this.get(),i(e,t))))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}});function Yt(e,t){for(;(e=e[t])&&e.nodeType!==1;);return e}i.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return Oe(e,"parentNode")},parentsUntil:function(e,t,n){return Oe(e,"parentNode",n)},next:function(e){return Yt(e,"nextSibling")},prev:function(e){return Yt(e,"previousSibling")},nextAll:function(e){return Oe(e,"nextSibling")},prevAll:function(e){return Oe(e,"previousSibling")},nextUntil:function(e,t,n){return Oe(e,"nextSibling",n)},prevUntil:function(e,t,n){return Oe(e,"previousSibling",n)},siblings:function(e){return Vt((e.parentNode||{}).firstChild,e)},children:function(e){return Vt(e.firstChild)},contents:function(e){return e.contentDocument!=null&&ze(e.contentDocument)?e.contentDocument:(B(e,"template")&&(e=e.content||e),i.merge([],e.childNodes))}},function(e,t){i.fn[e]=function(n,r){var o=i.map(this,t,n);return e.slice(-5)!=="Until"&&(r=n),r&&typeof r=="string"&&(o=i.filter(r,o)),this.length>1&&(zn[e]||i.uniqueSort(o),$n.test(e)&&o.reverse()),this.pushStack(o)}});var se=/[^\x20\t\r\n\f]+/g;function Un(e){var t={};return i.each(e.match(se)||[],function(n,r){t[r]=!0}),t}i.Callbacks=function(e){e=typeof e=="string"?Un(e):i.extend({},e);var t,n,r,o,a=[],u=[],c=-1,f=function(){for(o=o||e.once,r=t=!0;u.length;c=-1)for(n=u.shift();++c-1;)a.splice(h,1),h<=c&&c--}),this},has:function(y){return y?i.inArray(y,a)>-1:a.length>0},empty:function(){return a&&(a=[]),this},disable:function(){return o=u=[],a=n="",this},disabled:function(){return!a},lock:function(){return o=u=[],!n&&!t&&(a=n=""),this},locked:function(){return!!o},fireWith:function(y,m){return o||(m=m||[],m=[y,m.slice?m.slice():m],u.push(m),t||f()),this},fire:function(){return d.fireWith(this,arguments),this},fired:function(){return!!r}};return d};function Pe(e){return e}function at(e){throw e}function Jt(e,t,n,r){var o;try{e&&L(o=e.promise)?o.call(e).done(t).fail(n):e&&L(o=e.then)?o.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(a){n.apply(void 0,[a])}}i.extend({Deferred:function(e){var t=[["notify","progress",i.Callbacks("memory"),i.Callbacks("memory"),2],["resolve","done",i.Callbacks("once memory"),i.Callbacks("once memory"),0,"resolved"],["reject","fail",i.Callbacks("once memory"),i.Callbacks("once memory"),1,"rejected"]],n="pending",r={state:function(){return n},always:function(){return o.done(arguments).fail(arguments),this},catch:function(a){return r.then(null,a)},pipe:function(){var a=arguments;return i.Deferred(function(u){i.each(t,function(c,f){var d=L(a[f[4]])&&a[f[4]];o[f[1]](function(){var y=d&&d.apply(this,arguments);y&&L(y.promise)?y.promise().progress(u.notify).done(u.resolve).fail(u.reject):u[f[0]+"With"](this,d?[y]:arguments)})}),a=null}).promise()},then:function(a,u,c){var f=0;function d(y,m,h,b){return function(){var A=this,M=arguments,H=function(){var U,ce;if(!(y=f&&(h!==at&&(A=void 0,M=[U]),m.rejectWith(A,M))}};y?G():(i.Deferred.getErrorHook?G.error=i.Deferred.getErrorHook():i.Deferred.getStackHook&&(G.error=i.Deferred.getStackHook()),j.setTimeout(G))}}return i.Deferred(function(y){t[0][3].add(d(0,y,L(c)?c:Pe,y.notifyWith)),t[1][3].add(d(0,y,L(a)?a:Pe)),t[2][3].add(d(0,y,L(u)?u:at))}).promise()},promise:function(a){return a!=null?i.extend(a,r):r}},o={};return i.each(t,function(a,u){var c=u[2],f=u[5];r[u[1]]=c.add,f&&c.add(function(){n=f},t[3-a][2].disable,t[3-a][3].disable,t[0][2].lock,t[0][3].lock),c.add(u[3].fire),o[u[0]]=function(){return o[u[0]+"With"](this===o?void 0:this,arguments),this},o[u[0]+"With"]=c.fireWith}),r.promise(o),e&&e.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),o=V.call(arguments),a=i.Deferred(),u=function(c){return function(f){r[c]=this,o[c]=arguments.length>1?V.call(arguments):f,--t||a.resolveWith(r,o)}};if(t<=1&&(Jt(e,a.done(u(n)).resolve,a.reject,!t),a.state()==="pending"||L(o[n]&&o[n].then)))return a.then();for(;n--;)Jt(o[n],u(n),a.reject);return a.promise()}});var Vn=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;i.Deferred.exceptionHook=function(e,t){j.console&&j.console.warn&&e&&Vn.test(e.name)&&j.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},i.readyException=function(e){j.setTimeout(function(){throw e})};var Tt=i.Deferred();i.fn.ready=function(e){return Tt.then(e).catch(function(t){i.readyException(t)}),this},i.extend({isReady:!1,readyWait:1,ready:function(e){(e===!0?--i.readyWait:i.isReady)||(i.isReady=!0,!(e!==!0&&--i.readyWait>0)&&Tt.resolveWith(q,[i]))}}),i.ready.then=Tt.then;function ut(){q.removeEventListener("DOMContentLoaded",ut),j.removeEventListener("load",ut),i.ready()}q.readyState==="complete"||q.readyState!=="loading"&&!q.documentElement.doScroll?j.setTimeout(i.ready):(q.addEventListener("DOMContentLoaded",ut),j.addEventListener("load",ut));var ye=function(e,t,n,r,o,a,u){var c=0,f=e.length,d=n==null;if(He(n)==="object"){o=!0;for(c in n)ye(e,t,c,n[c],!0,a,u)}else if(r!==void 0&&(o=!0,L(r)||(u=!0),d&&(u?(t.call(e,r),t=null):(d=t,t=function(y,m,h){return d.call(i(y),h)})),t))for(;c1,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),i.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=S.get(e,t),n&&(!r||Array.isArray(n)?r=S.access(e,t,i.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=i.queue(e,t),r=n.length,o=n.shift(),a=i._queueHooks(e,t),u=function(){i.dequeue(e,t)};o==="inprogress"&&(o=n.shift(),r--),o&&(t==="fx"&&n.unshift("inprogress"),delete a.stop,o.call(e,u,a)),!r&&a&&a.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return S.get(e,n)||S.access(e,n,{empty:i.Callbacks("once memory").add(function(){S.remove(e,[t+"queue",n])})})}}),i.fn.extend({queue:function(e,t){var n=2;return typeof e!="string"&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]*)/i,rn=/^$|^module$|\/(?:java|ecma)script/i;(function(){var e=q.createDocumentFragment(),t=e.appendChild(q.createElement("div")),n=q.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),t.appendChild(n),E.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML="",E.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue,t.innerHTML="",E.option=!!t.lastChild})();var te={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};te.tbody=te.tfoot=te.colgroup=te.caption=te.thead,te.th=te.td,E.option||(te.optgroup=te.option=[1,""]);function K(e,t){var n;return typeof e.getElementsByTagName<"u"?n=e.getElementsByTagName(t||"*"):typeof e.querySelectorAll<"u"?n=e.querySelectorAll(t||"*"):n=[],t===void 0||t&&B(e,t)?i.merge([e],n):n}function Ct(e,t){for(var n=0,r=e.length;n-1){o&&o.push(a);continue}if(d=_e(a),u=K(m.appendChild(a),"script"),d&&Ct(u),n)for(y=0;a=u[y++];)rn.test(a.type||"")&&n.push(a)}return m}var an=/^([^.]*)(?:\.(.+)|)/;function Re(){return!0}function Ie(){return!1}function wt(e,t,n,r,o,a){var u,c;if(typeof t=="object"){typeof n!="string"&&(r=r||n,n=void 0);for(c in t)wt(e,c,n,r,t[c],a);return e}if(r==null&&o==null?(o=n,r=n=void 0):o==null&&(typeof n=="string"?(o=r,r=void 0):(o=r,r=n,n=void 0)),o===!1)o=Ie;else if(!o)return e;return a===1&&(u=o,o=function(f){return i().off(f),u.apply(this,arguments)},o.guid=u.guid||(u.guid=i.guid++)),e.each(function(){i.event.add(this,t,o,r,n)})}i.event={global:{},add:function(e,t,n,r,o){var a,u,c,f,d,y,m,h,b,A,M,H=S.get(e);if(Ge(e))for(n.handler&&(a=n,n=a.handler,o=a.selector),o&&i.find.matchesSelector(De,o),n.guid||(n.guid=i.guid++),(f=H.events)||(f=H.events=Object.create(null)),(u=H.handle)||(u=H.handle=function(G){return typeof i<"u"&&i.event.triggered!==G.type?i.event.dispatch.apply(e,arguments):void 0}),t=(t||"").match(se)||[""],d=t.length;d--;)c=an.exec(t[d])||[],b=M=c[1],A=(c[2]||"").split(".").sort(),b&&(m=i.event.special[b]||{},b=(o?m.delegateType:m.bindType)||b,m=i.event.special[b]||{},y=i.extend({type:b,origType:M,data:r,handler:n,guid:n.guid,selector:o,needsContext:o&&i.expr.match.needsContext.test(o),namespace:A.join(".")},a),(h=f[b])||(h=f[b]=[],h.delegateCount=0,(!m.setup||m.setup.call(e,r,A,u)===!1)&&e.addEventListener&&e.addEventListener(b,u)),m.add&&(m.add.call(e,y),y.handler.guid||(y.handler.guid=n.guid)),o?h.splice(h.delegateCount++,0,y):h.push(y),i.event.global[b]=!0)},remove:function(e,t,n,r,o){var a,u,c,f,d,y,m,h,b,A,M,H=S.hasData(e)&&S.get(e);if(!(!H||!(f=H.events))){for(t=(t||"").match(se)||[""],d=t.length;d--;){if(c=an.exec(t[d])||[],b=M=c[1],A=(c[2]||"").split(".").sort(),!b){for(b in f)i.event.remove(e,b+t[d],n,r,!0);continue}for(m=i.event.special[b]||{},b=(r?m.delegateType:m.bindType)||b,h=f[b]||[],c=c[2]&&new RegExp("(^|\\.)"+A.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=a=h.length;a--;)y=h[a],(o||M===y.origType)&&(!n||n.guid===y.guid)&&(!c||c.test(y.namespace))&&(!r||r===y.selector||r==="**"&&y.selector)&&(h.splice(a,1),y.selector&&h.delegateCount--,m.remove&&m.remove.call(e,y));u&&!h.length&&((!m.teardown||m.teardown.call(e,A,H.handle)===!1)&&i.removeEvent(e,b,H.handle),delete f[b])}i.isEmptyObject(f)&&S.remove(e,"handle events")}},dispatch:function(e){var t,n,r,o,a,u,c=new Array(arguments.length),f=i.event.fix(e),d=(S.get(this,"events")||Object.create(null))[f.type]||[],y=i.event.special[f.type]||{};for(c[0]=f,t=1;t=1)){for(;d!==this;d=d.parentNode||this)if(d.nodeType===1&&!(e.type==="click"&&d.disabled===!0)){for(a=[],u={},n=0;n-1:i.find(o,this,null,[d]).length),u[o]&&a.push(r);a.length&&c.push({elem:d,handlers:a})}}return d=this,f\s*$/g;function un(e,t){return B(e,"table")&&B(t.nodeType!==11?t:t.firstChild,"tr")&&i(e).children("tbody")[0]||e}function or(e){return e.type=(e.getAttribute("type")!==null)+"/"+e.type,e}function ar(e){return(e.type||"").slice(0,5)==="true/"?e.type=e.type.slice(5):e.removeAttribute("type"),e}function sn(e,t){var n,r,o,a,u,c,f;if(t.nodeType===1){if(S.hasData(e)&&(a=S.get(e),f=a.events,f)){S.remove(t,"handle events");for(o in f)for(n=0,r=f[o].length;n1&&typeof b=="string"&&!E.checkClone&&rr.test(b))return e.each(function(M){var H=e.eq(M);A&&(t[0]=b.call(this,M,H.html())),Fe(H,t,n,r)});if(m&&(o=on(t,e[0].ownerDocument,!1,e,r),a=o.firstChild,o.childNodes.length===1&&(o=a),a||r)){for(u=i.map(K(o,"script"),or),c=u.length;y0&&Ct(u,!f&&K(e,"script")),c},cleanData:function(e){for(var t,n,r,o=i.event.special,a=0;(n=e[a])!==void 0;a++)if(Ge(n)){if(t=n[S.expando]){if(t.events)for(r in t.events)o[r]?i.event.remove(n,r):i.removeEvent(n,r,t.handle);n[S.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),i.fn.extend({detach:function(e){return fn(this,e,!0)},remove:function(e){return fn(this,e)},text:function(e){return ye(this,function(t){return t===void 0?i.text(this):this.empty().each(function(){(this.nodeType===1||this.nodeType===11||this.nodeType===9)&&(this.textContent=t)})},null,e,arguments.length)},append:function(){return Fe(this,arguments,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var t=un(this,e);t.appendChild(e)}})},prepend:function(){return Fe(this,arguments,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var t=un(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Fe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Fe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;(e=this[t])!=null;t++)e.nodeType===1&&(i.cleanData(K(e,!1)),e.textContent="");return this},clone:function(e,t){return e=e??!1,t=t??e,this.map(function(){return i.clone(this,e,t)})},html:function(e){return ye(this,function(t){var n=this[0]||{},r=0,o=this.length;if(t===void 0&&n.nodeType===1)return n.innerHTML;if(typeof t=="string"&&!nr.test(t)&&!te[(nn.exec(t)||["",""])[1].toLowerCase()]){t=i.htmlPrefilter(t);try{for(;r=0&&(f+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-a-f-c-.5))||0),f+d}function vn(e,t,n){var r=ct(e),o=!E.boxSizingReliable()||n,a=o&&i.css(e,"boxSizing",!1,r)==="border-box",u=a,c=Ke(e,t,r),f="offset"+t[0].toUpperCase()+t.slice(1);if(St.test(c)){if(!n)return c;c="auto"}return(!E.boxSizingReliable()&&a||!E.reliableTrDimensions()&&B(e,"tr")||c==="auto"||!parseFloat(c)&&i.css(e,"display",!1,r)==="inline")&&e.getClientRects().length&&(a=i.css(e,"boxSizing",!1,r)==="border-box",u=f in e,u&&(c=e[f])),c=parseFloat(c)||0,c+kt(e,t,n||(a?"border":"content"),u,r,c)+"px"}i.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ke(e,"opacity");return n===""?"1":n}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(e,t,n,r){if(!(!e||e.nodeType===3||e.nodeType===8||!e.style)){var o,a,u,c=fe(t),f=Et.test(t),d=e.style;if(f||(t=Dt(c)),u=i.cssHooks[t]||i.cssHooks[c],n!==void 0){if(a=typeof n,a==="string"&&(o=Ye.exec(n))&&o[1]&&(n=en(e,t,o),a="number"),n==null||n!==n)return;a==="number"&&!f&&(n+=o&&o[3]||(i.cssNumber[c]?"":"px")),!E.clearCloneStyle&&n===""&&t.indexOf("background")===0&&(d[t]="inherit"),(!u||!("set"in u)||(n=u.set(e,n,r))!==void 0)&&(f?d.setProperty(t,n):d[t]=n)}else return u&&"get"in u&&(o=u.get(e,!1,r))!==void 0?o:d[t]}},css:function(e,t,n,r){var o,a,u,c=fe(t),f=Et.test(t);return f||(t=Dt(c)),u=i.cssHooks[t]||i.cssHooks[c],u&&"get"in u&&(o=u.get(e,!0,n)),o===void 0&&(o=Ke(e,t,r)),o==="normal"&&t in gn&&(o=gn[t]),n===""||n?(a=parseFloat(o),n===!0||isFinite(a)?a||0:o):o}}),i.each(["height","width"],function(e,t){i.cssHooks[t]={get:function(n,r,o){if(r)return cr.test(i.css(n,"display"))&&(!n.getClientRects().length||!n.getBoundingClientRect().width)?cn(n,lr,function(){return vn(n,t,o)}):vn(n,t,o)},set:function(n,r,o){var a,u=ct(n),c=!E.scrollboxSize()&&u.position==="absolute",f=c||o,d=f&&i.css(n,"boxSizing",!1,u)==="border-box",y=o?kt(n,t,o,d,u):0;return d&&c&&(y-=Math.ceil(n["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(u[t])-kt(n,t,"border",!1,u)-.5)),y&&(a=Ye.exec(r))&&(a[3]||"px")!=="px"&&(n.style[t]=r,r=i.css(n,t)),yn(n,r,y)}}}),i.cssHooks.marginLeft=ln(E.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Ke(e,"marginLeft"))||e.getBoundingClientRect().left-cn(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),i.each({margin:"",padding:"",border:"Width"},function(e,t){i.cssHooks[e+t]={expand:function(n){for(var r=0,o={},a=typeof n=="string"?n.split(" "):[n];r<4;r++)o[e+ve[r]+t]=a[r]||a[r-2]||a[0];return o}},e!=="margin"&&(i.cssHooks[e+t].set=yn)}),i.fn.extend({css:function(e,t){return ye(this,function(n,r,o){var a,u,c={},f=0;if(Array.isArray(r)){for(a=ct(n),u=r.length;f1)}});function Z(e,t,n,r,o){return new Z.prototype.init(e,t,n,r,o)}i.Tween=Z,Z.prototype={constructor:Z,init:function(e,t,n,r,o,a){this.elem=e,this.prop=n,this.easing=o||i.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=a||(i.cssNumber[n]?"":"px")},cur:function(){var e=Z.propHooks[this.prop];return e&&e.get?e.get(this):Z.propHooks._default.get(this)},run:function(e){var t,n=Z.propHooks[this.prop];return this.options.duration?this.pos=t=i.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Z.propHooks._default.set(this),this}},Z.prototype.init.prototype=Z.prototype,Z.propHooks={_default:{get:function(e){var t;return e.elem.nodeType!==1||e.elem[e.prop]!=null&&e.elem.style[e.prop]==null?e.elem[e.prop]:(t=i.css(e.elem,e.prop,""),!t||t==="auto"?0:t)},set:function(e){i.fx.step[e.prop]?i.fx.step[e.prop](e):e.elem.nodeType===1&&(i.cssHooks[e.prop]||e.elem.style[Dt(e.prop)]!=null)?i.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Z.propHooks.scrollTop=Z.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},i.easing={linear:function(e){return e},swing:function(e){return .5-Math.cos(e*Math.PI)/2},_default:"swing"},i.fx=Z.prototype.init,i.fx.step={};var We,lt,dr=/^(?:toggle|show|hide)$/,pr=/queueHooks$/;function At(){lt&&(q.hidden===!1&&j.requestAnimationFrame?j.requestAnimationFrame(At):j.setTimeout(At,i.fx.interval),i.fx.tick())}function mn(){return j.setTimeout(function(){We=void 0}),We=Date.now()}function dt(e,t){var n,r=0,o={height:e};for(t=t?1:0;r<4;r+=2-t)n=ve[r],o["margin"+n]=o["padding"+n]=e;return t&&(o.opacity=o.width=e),o}function bn(e,t,n){for(var r,o=(ae.tweeners[t]||[]).concat(ae.tweeners["*"]),a=0,u=o.length;a1)},removeAttr:function(e){return this.each(function(){i.removeAttr(this,e)})}}),i.extend({attr:function(e,t,n){var r,o,a=e.nodeType;if(!(a===3||a===8||a===2)){if(typeof e.getAttribute>"u")return i.prop(e,t,n);if((a!==1||!i.isXMLDoc(e))&&(o=i.attrHooks[t.toLowerCase()]||(i.expr.match.bool.test(t)?xn:void 0)),n!==void 0){if(n===null){i.removeAttr(e,t);return}return o&&"set"in o&&(r=o.set(e,n,t))!==void 0?r:(e.setAttribute(t,n+""),n)}return o&&"get"in o&&(r=o.get(e,t))!==null?r:(r=i.find.attr(e,t),r??void 0)}},attrHooks:{type:{set:function(e,t){if(!E.radioValue&&t==="radio"&&B(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,o=t&&t.match(se);if(o&&e.nodeType===1)for(;n=o[r++];)e.removeAttribute(n)}}),xn={set:function(e,t,n){return t===!1?i.removeAttr(e,n):e.setAttribute(n,n),n}},i.each(i.expr.match.bool.source.match(/\w+/g),function(e,t){var n=Ze[t]||i.find.attr;Ze[t]=function(r,o,a){var u,c,f=o.toLowerCase();return a||(c=Ze[f],Ze[f]=u,u=n(r,o,a)!=null?f:null,Ze[f]=c),u}});var yr=/^(?:input|select|textarea|button)$/i,vr=/^(?:a|area)$/i;i.fn.extend({prop:function(e,t){return ye(this,i.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[i.propFix[e]||e]})}}),i.extend({prop:function(e,t,n){var r,o,a=e.nodeType;if(!(a===3||a===8||a===2))return(a!==1||!i.isXMLDoc(e))&&(t=i.propFix[t]||t,o=i.propHooks[t]),n!==void 0?o&&"set"in o&&(r=o.set(e,n,t))!==void 0?r:e[t]=n:o&&"get"in o&&(r=o.get(e,t))!==null?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=i.find.attr(e,"tabindex");return t?parseInt(t,10):yr.test(e.nodeName)||vr.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),E.optSelected||(i.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),i.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){i.propFix[this.toLowerCase()]=this});function ke(e){var t=e.match(se)||[];return t.join(" ")}function Ae(e){return e.getAttribute&&e.getAttribute("class")||""}function Nt(e){return Array.isArray(e)?e:typeof e=="string"?e.match(se)||[]:[]}i.fn.extend({addClass:function(e){var t,n,r,o,a,u;return L(e)?this.each(function(c){i(this).addClass(e.call(this,c,Ae(this)))}):(t=Nt(e),t.length?this.each(function(){if(r=Ae(this),n=this.nodeType===1&&" "+ke(r)+" ",n){for(a=0;a-1;)n=n.replace(" "+o+" "," ");u=ke(n),r!==u&&this.setAttribute("class",u)}}):this):this.attr("class","")},toggleClass:function(e,t){var n,r,o,a,u=typeof e,c=u==="string"||Array.isArray(e);return L(e)?this.each(function(f){i(this).toggleClass(e.call(this,f,Ae(this),t),t)}):typeof t=="boolean"&&c?t?this.addClass(e):this.removeClass(e):(n=Nt(e),this.each(function(){if(c)for(a=i(this),o=0;o-1)return!0;return!1}});var mr=/\r/g;i.fn.extend({val:function(e){var t,n,r,o=this[0];return arguments.length?(r=L(e),this.each(function(a){var u;this.nodeType===1&&(r?u=e.call(this,a,i(this).val()):u=e,u==null?u="":typeof u=="number"?u+="":Array.isArray(u)&&(u=i.map(u,function(c){return c==null?"":c+""})),t=i.valHooks[this.type]||i.valHooks[this.nodeName.toLowerCase()],(!t||!("set"in t)||t.set(this,u,"value")===void 0)&&(this.value=u))})):o?(t=i.valHooks[o.type]||i.valHooks[o.nodeName.toLowerCase()],t&&"get"in t&&(n=t.get(o,"value"))!==void 0?n:(n=o.value,typeof n=="string"?n.replace(mr,""):n??"")):void 0}}),i.extend({valHooks:{option:{get:function(e){var t=i.find.attr(e,"value");return t??ke(i.text(e))}},select:{get:function(e){var t,n,r,o=e.options,a=e.selectedIndex,u=e.type==="select-one",c=u?null:[],f=u?a+1:o.length;for(a<0?r=f:r=u?a:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),a}}}}),i.each(["radio","checkbox"],function(){i.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=i.inArray(i(e).val(),t)>-1}},E.checkOn||(i.valHooks[this].get=function(e){return e.getAttribute("value")===null?"on":e.value})});var et=j.location,Tn={guid:Date.now()},jt=/\?/;i.parseXML=function(e){var t,n;if(!e||typeof e!="string")return null;try{t=new j.DOMParser().parseFromString(e,"text/xml")}catch{}return n=t&&t.getElementsByTagName("parsererror")[0],(!t||n)&&i.error("Invalid XML: "+(n?i.map(n.childNodes,function(r){return r.textContent}).join(` `):e)),t};var Cn=/^(?:focusinfocus|focusoutblur)$/,wn=function(e){e.stopPropagation()};i.extend(i.event,{trigger:function(e,t,n,r){var o,a,u,c,f,d,y,m,h=[n||q],b=Se.call(e,"type")?e.type:e,A=Se.call(e,"namespace")?e.namespace.split("."):[];if(a=m=u=n=n||q,!(n.nodeType===3||n.nodeType===8)&&!Cn.test(b+i.event.triggered)&&(b.indexOf(".")>-1&&(A=b.split("."),b=A.shift(),A.sort()),f=b.indexOf(":")<0&&"on"+b,e=e[i.expando]?e:new i.Event(b,typeof e=="object"&&e),e.isTrigger=r?2:3,e.namespace=A.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+A.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=t==null?[e]:i.makeArray(t,[e]),y=i.event.special[b]||{},!(!r&&y.trigger&&y.trigger.apply(n,t)===!1))){if(!r&&!y.noBubble&&!Ee(n)){for(c=y.delegateType||b,Cn.test(c+b)||(a=a.parentNode);a;a=a.parentNode)h.push(a),u=a;u===(n.ownerDocument||q)&&h.push(u.defaultView||u.parentWindow||j)}for(o=0;(a=h[o++])&&!e.isPropagationStopped();)m=a,e.type=o>1?c:y.bindType||b,d=(S.get(a,"events")||Object.create(null))[e.type]&&S.get(a,"handle"),d&&d.apply(a,t),d=f&&a[f],d&&d.apply&&Ge(a)&&(e.result=d.apply(a,t),e.result===!1&&e.preventDefault());return e.type=b,!r&&!e.isDefaultPrevented()&&(!y._default||y._default.apply(h.pop(),t)===!1)&&Ge(n)&&f&&L(n[b])&&!Ee(n)&&(u=n[f],u&&(n[f]=null),i.event.triggered=b,e.isPropagationStopped()&&m.addEventListener(b,wn),n[b](),e.isPropagationStopped()&&m.removeEventListener(b,wn),i.event.triggered=void 0,u&&(n[f]=u)),e.result}},simulate:function(e,t,n){var r=i.extend(new i.Event,n,{type:e,isSimulated:!0});i.event.trigger(r,null,t)}}),i.fn.extend({trigger:function(e,t){return this.each(function(){i.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return i.event.trigger(e,t,n,!0)}});var br=/\[\]$/,Sn=/\r?\n/g,xr=/^(?:submit|button|image|reset|file)$/i,Tr=/^(?:input|select|textarea|keygen)/i;function Lt(e,t,n,r){var o;if(Array.isArray(t))i.each(t,function(a,u){n||br.test(e)?r(e,u):Lt(e+"["+(typeof u=="object"&&u!=null?a:"")+"]",u,n,r)});else if(!n&&He(t)==="object")for(o in t)Lt(e+"["+o+"]",t[o],n,r);else r(e,t)}i.param=function(e,t){var n,r=[],o=function(a,u){var c=L(u)?u():u;r[r.length]=encodeURIComponent(a)+"="+encodeURIComponent(c??"")};if(e==null)return"";if(Array.isArray(e)||e.jquery&&!i.isPlainObject(e))i.each(e,function(){o(this.name,this.value)});else for(n in e)Lt(n,e[n],t,o);return r.join("&")},i.fn.extend({serialize:function(){return i.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=i.prop(this,"elements");return e?i.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!i(this).is(":disabled")&&Tr.test(this.nodeName)&&!xr.test(e)&&(this.checked||!Je.test(e))}).map(function(e,t){var n=i(this).val();return n==null?null:Array.isArray(n)?i.map(n,function(r){return{name:t.name,value:r.replace(Sn,`\r `)}}):{name:t.name,value:n.replace(Sn,`\r -`)}}).get()}});var Cr=/%20/g,wr=/#.*$/,Sr=/([?&])_=[^&]*/,Er=/^(.*?):[ \t]*([^\r\n]*)$/mg,Dr=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,kr=/^(?:GET|HEAD)$/,Ar=/^\/\//,En={},qt={},Dn="*/".concat("*"),Ht=q.createElement("a");Ht.href=et.href;function kn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,o=0,a=t.toLowerCase().match(se)||[];if(L(n))for(;r=a[o++];)r[0]==="+"?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function An(e,t,n,r){var o={},a=e===qt;function u(c){var f;return o[c]=!0,i.each(e[c]||[],function(d,y){var m=y(t,n,r);if(typeof m=="string"&&!a&&!o[m])return t.dataTypes.unshift(m),u(m),!1;if(a)return!(f=m)}),f}return u(t.dataTypes[0])||!o["*"]&&u("*")}function Ot(e,t){var n,r,o=i.ajaxSettings.flatOptions||{};for(n in t)t[n]!==void 0&&((o[n]?e:r||(r={}))[n]=t[n]);return r&&i.extend(!0,e,r),e}function Nr(e,t,n){for(var r,o,a,u,c=e.contents,f=e.dataTypes;f[0]==="*";)f.shift(),r===void 0&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r){for(o in c)if(c[o]&&c[o].test(r)){f.unshift(o);break}}if(f[0]in n)a=f[0];else{for(o in n){if(!f[0]||e.converters[o+" "+f[0]]){a=o;break}u||(u=o)}a=a||u}if(a)return a!==f[0]&&f.unshift(a),n[a]}function jr(e,t,n,r){var o,a,u,c,f,d={},y=e.dataTypes.slice();if(y[1])for(u in e.converters)d[u.toLowerCase()]=e.converters[u];for(a=y.shift();a;)if(e.responseFields[a]&&(n[e.responseFields[a]]=t),!f&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),f=a,a=y.shift(),a){if(a==="*")a=f;else if(f!=="*"&&f!==a){if(u=d[f+" "+a]||d["* "+a],!u){for(o in d)if(c=o.split(" "),c[1]===a&&(u=d[f+" "+c[0]]||d["* "+c[0]],u)){u===!0?u=d[o]:d[o]!==!0&&(a=c[0],y.unshift(c[1]));break}}if(u!==!0)if(u&&e.throws)t=u(t);else try{t=u(t)}catch(m){return{state:"parsererror",error:u?m:"No conversion from "+f+" to "+a}}}}return{state:"success",data:t}}i.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:et.href,type:"GET",isLocal:Dr.test(et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":i.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ot(Ot(e,i.ajaxSettings),t):Ot(i.ajaxSettings,e)},ajaxPrefilter:kn(En),ajaxTransport:kn(qt),ajax:function(e,t){typeof e=="object"&&(t=e,e=void 0),t=t||{};var n,r,o,a,u,c,f,d,y,m,h=i.ajaxSetup({},t),b=h.context||h,A=h.context&&(b.nodeType||b.jquery)?i(b):i.event,M=i.Deferred(),H=i.Callbacks("once memory"),G=h.statusCode||{},U={},ce={},le="canceled",_={readyState:0,getResponseHeader:function(R){var $;if(f){if(!a)for(a={};$=Er.exec(o);)a[$[1].toLowerCase()+" "]=(a[$[1].toLowerCase()+" "]||[]).concat($[2]);$=a[R.toLowerCase()+" "]}return $==null?null:$.join(", ")},getAllResponseHeaders:function(){return f?o:null},setRequestHeader:function(R,$){return f==null&&(R=ce[R.toLowerCase()]=ce[R.toLowerCase()]||R,U[R]=$),this},overrideMimeType:function(R){return f==null&&(h.mimeType=R),this},statusCode:function(R){var $;if(R)if(f)_.always(R[_.status]);else for($ in R)G[$]=[G[$],R[$]];return this},abort:function(R){var $=R||le;return n&&n.abort($),Ne(0,$),this}};if(M.promise(_),h.url=((e||h.url||et.href)+"").replace(Ar,et.protocol+"//"),h.type=t.method||t.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(se)||[""],h.crossDomain==null){c=q.createElement("a");try{c.href=h.url,c.href=c.href,h.crossDomain=Ht.protocol+"//"+Ht.host!=c.protocol+"//"+c.host}catch{h.crossDomain=!0}}if(h.data&&h.processData&&typeof h.data!="string"&&(h.data=i.param(h.data,h.traditional)),An(En,h,t,_),f)return _;d=i.event&&h.global,d&&i.active++===0&&i.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!kr.test(h.type),r=h.url.replace(wr,""),h.hasContent?h.data&&h.processData&&(h.contentType||"").indexOf("application/x-www-form-urlencoded")===0&&(h.data=h.data.replace(Cr,"+")):(m=h.url.slice(r.length),h.data&&(h.processData||typeof h.data=="string")&&(r+=(jt.test(r)?"&":"?")+h.data,delete h.data),h.cache===!1&&(r=r.replace(Sr,"$1"),m=(jt.test(r)?"&":"?")+"_="+Tn.guid+++m),h.url=r+m),h.ifModified&&(i.lastModified[r]&&_.setRequestHeader("If-Modified-Since",i.lastModified[r]),i.etag[r]&&_.setRequestHeader("If-None-Match",i.etag[r])),(h.data&&h.hasContent&&h.contentType!==!1||t.contentType)&&_.setRequestHeader("Content-Type",h.contentType),_.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+(h.dataTypes[0]!=="*"?", "+Dn+"; q=0.01":""):h.accepts["*"]);for(y in h.headers)_.setRequestHeader(y,h.headers[y]);if(h.beforeSend&&(h.beforeSend.call(b,_,h)===!1||f))return _.abort();if(le="abort",H.add(h.complete),_.done(h.success),_.fail(h.error),n=An(qt,h,t,_),!n)Ne(-1,"No Transport");else{if(_.readyState=1,d&&A.trigger("ajaxSend",[_,h]),f)return _;h.async&&h.timeout>0&&(u=j.setTimeout(function(){_.abort("timeout")},h.timeout));try{f=!1,n.send(U,Ne)}catch(R){if(f)throw R;Ne(-1,R)}}function Ne(R,$,nt,_t){var de,rt,pe,xe,Te,ne=$;f||(f=!0,u&&j.clearTimeout(u),n=void 0,o=_t||"",_.readyState=R>0?4:0,de=R>=200&&R<300||R===304,nt&&(xe=Nr(h,_,nt)),!de&&i.inArray("script",h.dataTypes)>-1&&i.inArray("json",h.dataTypes)<0&&(h.converters["text script"]=function(){}),xe=jr(h,xe,_,de),de?(h.ifModified&&(Te=_.getResponseHeader("Last-Modified"),Te&&(i.lastModified[r]=Te),Te=_.getResponseHeader("etag"),Te&&(i.etag[r]=Te)),R===204||h.type==="HEAD"?ne="nocontent":R===304?ne="notmodified":(ne=xe.state,rt=xe.data,pe=xe.error,de=!pe)):(pe=ne,(R||!ne)&&(ne="error",R<0&&(R=0))),_.status=R,_.statusText=($||ne)+"",de?M.resolveWith(b,[rt,ne,_]):M.rejectWith(b,[_,ne,pe]),_.statusCode(G),G=void 0,d&&A.trigger(de?"ajaxSuccess":"ajaxError",[_,h,de?rt:pe]),H.fireWith(b,[_,ne]),d&&(A.trigger("ajaxComplete",[_,h]),--i.active||i.event.trigger("ajaxStop")))}return _},getJSON:function(e,t,n){return i.get(e,t,n,"json")},getScript:function(e,t){return i.get(e,void 0,t,"script")}}),i.each(["get","post"],function(e,t){i[t]=function(n,r,o,a){return L(r)&&(a=a||o,o=r,r=void 0),i.ajax(i.extend({url:n,type:t,dataType:a,data:r,success:o},i.isPlainObject(n)&&n))}}),i.ajaxPrefilter(function(e){var t;for(t in e.headers)t.toLowerCase()==="content-type"&&(e.contentType=e.headers[t]||"")}),i._evalUrl=function(e,t,n){return i.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(r){i.globalEval(r,t,n)}})},i.fn.extend({wrapAll:function(e){var t;return this[0]&&(L(e)&&(e=e.call(this[0])),t=i(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var n=this;n.firstElementChild;)n=n.firstElementChild;return n}).append(this)),this},wrapInner:function(e){return L(e)?this.each(function(t){i(this).wrapInner(e.call(this,t))}):this.each(function(){var t=i(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=L(e);return this.each(function(n){i(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){i(this).replaceWith(this.childNodes)}),this}}),i.expr.pseudos.hidden=function(e){return!i.expr.pseudos.visible(e)},i.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},i.ajaxSettings.xhr=function(){try{return new j.XMLHttpRequest}catch{}};var Lr={0:200,1223:204},tt=i.ajaxSettings.xhr();E.cors=!!tt&&"withCredentials"in tt,E.ajax=tt=!!tt,i.ajaxTransport(function(e){var t,n;if(E.cors||tt&&!e.crossDomain)return{send:function(r,o){var a,u=e.xhr();if(u.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(a in e.xhrFields)u[a]=e.xhrFields[a];e.mimeType&&u.overrideMimeType&&u.overrideMimeType(e.mimeType),!e.crossDomain&&!r["X-Requested-With"]&&(r["X-Requested-With"]="XMLHttpRequest");for(a in r)u.setRequestHeader(a,r[a]);t=function(c){return function(){t&&(t=n=u.onload=u.onerror=u.onabort=u.ontimeout=u.onreadystatechange=null,c==="abort"?u.abort():c==="error"?typeof u.status!="number"?o(0,"error"):o(u.status,u.statusText):o(Lr[u.status]||u.status,u.statusText,(u.responseType||"text")!=="text"||typeof u.responseText!="string"?{binary:u.response}:{text:u.responseText},u.getAllResponseHeaders()))}},u.onload=t(),n=u.onerror=u.ontimeout=t("error"),u.onabort!==void 0?u.onabort=n:u.onreadystatechange=function(){u.readyState===4&&j.setTimeout(function(){t&&n()})},t=t("abort");try{u.send(e.hasContent&&e.data||null)}catch(c){if(t)throw c}},abort:function(){t&&t()}}}),i.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),i.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return i.globalEval(e),e}}}),i.ajaxPrefilter("script",function(e){e.cache===void 0&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),i.ajaxTransport("script",function(e){if(e.crossDomain||e.scriptAttrs){var t,n;return{send:function(r,o){t=i(" + diff --git a/apps/jingrow/frontend/src/shared/utils/dynamicRoutes.ts b/apps/jingrow/frontend/src/shared/utils/dynamicRoutes.ts index 0c4b95d..cb875f1 100644 --- a/apps/jingrow/frontend/src/shared/utils/dynamicRoutes.ts +++ b/apps/jingrow/frontend/src/shared/utils/dynamicRoutes.ts @@ -1,9 +1,7 @@ import type { Router, RouteRecordRaw } from 'vue-router' -import type { Tool } from '../stores/tools' +import type { Tool } from '@/shared/stores/tools' + -// 使用 import.meta.glob 预加载所有工具组件 -// 这是 Vite 推荐的方式,确保动态路由在生产环境下正确工作 -// eager: false 表示懒加载,只在实际需要时才加载组件 const toolComponents = import.meta.glob('@/views/tools/**/*.vue', { eager: false }) function snakeToPascal(snakeStr: string): string { @@ -60,15 +58,6 @@ export function registerToolRoute( finalComponentPath = `@/views/tools/${toolDirName}/${toolDirName}.vue` } - // import.meta.glob 返回的键可能是不同的格式,需要尝试多种匹配方式 - // 可能的格式:@/views/tools/... 或 src/views/tools/... 或 views/tools/... - const possibleKeys = [ - finalComponentPath, // @/views/tools/... - finalComponentPath.replace(/^@\//, 'src/'), // src/views/tools/... - finalComponentPath.replace(/^@\/views\//, 'views/'), // views/tools/... - finalComponentPath.replace(/^@\//, '') // views/tools/... - ] - const routePath = toolWithRoutes.routePath || (() => { const toolDirName = toolWithRoutes.toolName || toolWithRoutes.id return `tools/${toolDirName.replace(/_/g, '-')}` @@ -78,35 +67,11 @@ export function registerToolRoute( path: routePath, name: toolWithRoutes.routeName, component: () => { - // 使用 import.meta.glob 预加载的组件(Vite 推荐方式) - // 尝试多种可能的路径格式来匹配 glob 的键 - let componentLoader: (() => Promise) | undefined - - // 首先尝试精确匹配 - for (const key of possibleKeys) { - if (toolComponents[key]) { - componentLoader = toolComponents[key] - break - } - } - - // 如果精确匹配失败,尝试模糊匹配(通过文件名和目录名匹配) - if (!componentLoader) { - const fileName = finalComponentPath.split('/').pop() || '' - const toolDirName = finalComponentPath.split('/').slice(-2, -1)[0] || '' - - // 查找包含相同文件名和目录名的键 - for (const [key, loader] of Object.entries(toolComponents)) { - if (key.includes(toolDirName) && key.includes(fileName)) { - componentLoader = loader as () => Promise - break - } - } - } + const normalizedPath = finalComponentPath.replace(/^@\//, '/src/') + const componentLoader = toolComponents[normalizedPath] if (!componentLoader) { - console.error(`Tool component not found in glob. Tried:`, possibleKeys) - // 返回 Promise,包装错误组件 + console.error(`Tool component not found in glob: ${finalComponentPath} (normalized: ${normalizedPath})`) return Promise.resolve({ name: 'ToolComponentError', template: `