@acedatacloud/nexior 3.324.28 → 3.324.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{ApiCodeButton-BbhiVJj6.js → ApiCodeButton-vGLx6VeQ.js} +1 -1
- package/dist/assets/{Artifacts-CNoSBJDG.js → Artifacts-DKwUGrtI.js} +1 -1
- package/dist/assets/{AskUserQuestionCard-BKLDf_Tk.js → AskUserQuestionCard-Bz2xCJBI.js} +2 -2
- package/dist/assets/{Auth-OMf3a3eL.js → Auth-BoCyGqV7.js} +1 -1
- package/dist/assets/{Bare-D6XCBl9M.js → Bare-D1qrR_DO.js} +1 -1
- package/dist/assets/{BotPlaceholder-Bo-qJ-OP.js → BotPlaceholder-CchvSdzg.js} +1 -1
- package/dist/assets/{BottomFooter-B70pe6Ci.js → BottomFooter-Ck0PDh1v.js} +1 -1
- package/dist/assets/{Callback-C7WVYszo.js → Callback-DWim9ZhR.js} +1 -1
- package/dist/assets/{CodeSnippet-Ban0SymM.js → CodeSnippet-WVJ6EHoS.js} +1 -1
- package/dist/assets/{Console-BgiAvmeE.js → Console-CRIiCWFJ.js} +1 -1
- package/dist/assets/{Consumption-CVOhmM8q.js → Consumption-y1G2owiZ.js} +1 -1
- package/dist/assets/{Conversation-DmC-Rfxa.css → Conversation-CAEOsUmp.css} +1 -1
- package/dist/assets/{Conversation-BMGCHP1k.js → Conversation-CoX661O5.js} +1 -1
- package/dist/assets/Conversation-hdXrtc79.js +1 -0
- package/dist/assets/{CopyToClipboard-DKGHAFZY.js → CopyToClipboard-DnPi7U0x.js} +1 -1
- package/dist/assets/Detail-GiXzNsuo.js +2 -0
- package/dist/assets/Extra-GTHqgB6P.js +1 -0
- package/dist/assets/{FilePreview-BfEv9fpM.js → FilePreview-cgEijJjX.js} +1 -1
- package/dist/assets/{Hailuo-DUgKV0_G.js → Hailuo-D-wYwQr2.js} +1 -1
- package/dist/assets/{History-DVVtOVRW.js → History-HaiH0t-P.js} +1 -1
- package/dist/assets/{ImagePreview-D_PRq4dn.js → ImagePreview-Bes_uTEl.js} +1 -1
- package/dist/assets/{ImageWrapper-fK069MmD.js → ImageWrapper-Cymsz_Th.js} +1 -1
- package/dist/assets/{Index-i6cF_znp.js → Index-8WOksYdu.js} +2 -2
- package/dist/assets/{Index-BtkLuDoR.js → Index-B4iwEpax.js} +1 -1
- package/dist/assets/Index-BHGCk-L-.js +1 -0
- package/dist/assets/{Index-D66WUi1Z.js → Index-BKwbWGF-.js} +1 -1
- package/dist/assets/Index-BSpoF_TN.js +1 -0
- package/dist/assets/{Index-Cmaw4fC9.js → Index-BeEsI3NE.js} +1 -1
- package/dist/assets/{Index-CfLVK7ck.js → Index-Bl8_bU0X.js} +1 -1
- package/dist/assets/{Index-ONIh2RVX.js → Index-BoUpc5H6.js} +1 -1
- package/dist/assets/Index-BrUSutPj.js +1 -0
- package/dist/assets/{Index-DqCTDP9V.js → Index-BwvdfGSk.js} +1 -1
- package/dist/assets/{Index-Bz1Str-a.js → Index-C-kQvmi9.js} +1 -1
- package/dist/assets/Index-C1Qy9eI8.js +1 -0
- package/dist/assets/{Index-DWI00NpN.js → Index-C9yhsWwu.js} +1 -1
- package/dist/assets/Index-CjipaBLU.js +1 -0
- package/dist/assets/{Index-BRX9CiZQ.js → Index-CjxZ5Fln.js} +1 -1
- package/dist/assets/{Index-BTCNnsF7.js → Index-DGd7r7T5.js} +1 -1
- package/dist/assets/Index-DJNQw2mo.js +1 -0
- package/dist/assets/Index-DLI3Qo7q.js +1 -0
- package/dist/assets/{Index-B_dbTmqO.js → Index-DMwityNp.js} +1 -1
- package/dist/assets/{Index-vRE0T58a.js → Index-DQCp84le.js} +1 -1
- package/dist/assets/Index-DYjSq73K.js +1 -0
- package/dist/assets/{Index-NC7ceXkW.js → Index-Dj8OIIIx.js} +1 -1
- package/dist/assets/{Index-BooKkvPP.js → Index-DjODaPcN.js} +1 -1
- package/dist/assets/{Index-uE-5JP8l.js → Index-RrE6IzIK.js} +1 -1
- package/dist/assets/Index-faNCkeF6.js +1 -0
- package/dist/assets/Index-nebAE3Fb.js +1 -0
- package/dist/assets/Index-sFGcntcj.js +1 -0
- package/dist/assets/{Index-mHdx9biD.js → Index-xKnerzJb.js} +1 -1
- package/dist/assets/{Invitees-LvmYzTMU.js → Invitees-DqrLPVV7.js} +1 -1
- package/dist/assets/List-BDctkSUi.js +1 -0
- package/dist/assets/List-D1VILiMu.js +1 -0
- package/dist/assets/{List-CHkNd9Ta.js → List-DV0Nngbr.js} +1 -1
- package/dist/assets/{LocalTools-DvC6WNpb.js → LocalTools--5hOLp5f.js} +1 -1
- package/dist/assets/LocalTools-BK9YBTe7.js +5 -0
- package/dist/assets/{Main-Dmm_sjxf.js → Main-BJ-gm_L9.js} +1 -1
- package/dist/assets/{Message-BPrZ1qI3.js → Message-Br8o2qkc.js} +2 -2
- package/dist/assets/{Model-DUByBjUS.js → Model-BUtd0Tw6.js} +1 -1
- package/dist/assets/Navigator-1yGBtpW4.js +5 -0
- package/dist/assets/Navigator-CDPcT9qX.css +1 -0
- package/dist/assets/{NoTasks-DW4De9M7.js → NoTasks-DpYnRe_p.js} +1 -1
- package/dist/assets/{NotFound-7Mlz0O4D.js → NotFound-BKDruH1e.js} +1 -1
- package/dist/assets/{Pay-BaK3wGxH.js → Pay-DOLZfukb.js} +1 -1
- package/dist/assets/{Player-CU0iBT5A.js → Player-B6Dcq2Lh.js} +1 -1
- package/dist/assets/{PromptTextarea-D0zSRe-L.js → PromptTextarea-CPdQc691.js} +1 -1
- package/dist/assets/{RealtimeCall-C3zq8b16.js → RealtimeCall-j0uclcuq.js} +1 -1
- package/dist/assets/{ScheduledTasks-BXGq-caw.js → ScheduledTasks-C-LzpyPl.js} +2 -2
- package/dist/assets/{Status-CeIU6ftu.js → Status-CqcbuONY.js} +1 -1
- package/dist/assets/{Subscribe-C_FP-oYg.js → Subscribe-tZm1o_WD.js} +1 -1
- package/dist/assets/{TabSwitcher-BvBadpF5.js → TabSwitcher-Bd4kucdH.js} +1 -1
- package/dist/assets/{Tts-Csklbqts.js → Tts-Cc9iP8T-.js} +1 -1
- package/dist/assets/{VideoPlayer-eASvfena.js → VideoPlayer-D4uzmupm.js} +1 -1
- package/dist/assets/{VideoPreview-D8iLP3My.js → VideoPreview-BVdZt4zX.js} +1 -1
- package/dist/assets/{alert-BkFyH48_.js → alert-B3mVHMj2.js} +1 -1
- package/dist/assets/avatar-DdNuOYm0.js +1 -0
- package/dist/assets/{basic-DoEiYJ9I.js → basic-C5adNeim.js} +1 -1
- package/dist/assets/{chat-9dE_t64j.js → chat-B_-2UdN1.js} +1 -1
- package/dist/assets/{codingBridge-DgLr_bZV.js → codingBridge-DlsohVAM.js} +2 -2
- package/dist/assets/{codingBridgeNotify-CgLj7CnZ.js → codingBridgeNotify-WNIAJwXT.js} +2 -2
- package/dist/assets/{collapse-CN1KH6-V.js → collapse-C0xCVZgh.js} +1 -1
- package/dist/assets/common-5nRxK5jc.js +1 -0
- package/dist/assets/common-7XEV0Ycw.js +1 -0
- package/dist/assets/{common-6S3X33_Y.js → common-BRkxKEtU.js} +1 -1
- package/dist/assets/common-BYcCCDxX.js +1 -0
- package/dist/assets/{common-DF-noLTN.js → common-Bw8ntzCv.js} +1 -1
- package/dist/assets/common-C4ApNn0b.js +1 -0
- package/dist/assets/{common-BD0DrOZF.js → common-Cb99wqr1.js} +1 -1
- package/dist/assets/{common-ClnyWfbs.js → common-CbGUBlpu.js} +1 -1
- package/dist/assets/{common-BIdJXWBx.js → common-CnIs5QDn.js} +1 -1
- package/dist/assets/{common-FSi8-XXO.js → common-D7mgwOMe.js} +1 -1
- package/dist/assets/{common-FPhJMirc.js → common-DKaKmYMx.js} +1 -1
- package/dist/assets/{common-dQF-_YHH.js → common-DPr3W-Va.js} +1 -1
- package/dist/assets/{common-DnX3atMq.js → common-DkiJvGgi.js} +1 -1
- package/dist/assets/{common-CT9YBA7v.js → common-DpPwupjz.js} +1 -1
- package/dist/assets/{common-B94K3rxe.js → common-Dy53xlOg.js} +1 -1
- package/dist/assets/{common-CcW_Am1R.js → common-Ev3R8Z9T.js} +1 -1
- package/dist/assets/common-Lt0um1cl.js +1 -0
- package/dist/assets/common-R0TK2pJS.js +1 -0
- package/dist/assets/{constants-DxuoPabX.js → constants-B_ZAjiS7.js} +1 -1
- package/dist/assets/{createTaskActions-Cikzcq44.js → createTaskActions-B-145wBt.js} +1 -1
- package/dist/assets/{date-picker-CMlARwnN.js → date-picker-BQ9amrBD.js} +1 -1
- package/dist/assets/{digitalhuman-DHkNQwCx.js → digitalhuman-CaQU-nVc.js} +1 -1
- package/dist/assets/{drawer-KWCjpcJf.js → drawer-kVVnkuEi.js} +1 -1
- package/dist/assets/{dropdown-qDpRAr__.js → dropdown-D6Hvccb2.js} +1 -1
- package/dist/assets/{dropdown-C1te6BK7.js → dropdown-DLdiofjw.js} +1 -1
- package/dist/assets/{esm-a1NjKrVj.js → esm-Ba52H2xs.js} +1 -1
- package/dist/assets/{esm-B6eTKEo1.js → esm-BfCzes_A.js} +2 -2
- package/dist/assets/esm-C1T7i4Fe.js +1 -0
- package/dist/assets/{esm-BT-bl9N0.js → esm-CneLNuD9.js} +1 -1
- package/dist/assets/{esm-CmzPJE5m.js → esm-Co7gvDX8.js} +3 -3
- package/dist/assets/{esm-Be5myAjc.js → esm-D79P0tyl.js} +1 -1
- package/dist/assets/{esm-NWGr5dze.js → esm-Da4G5vz5.js} +2 -2
- package/dist/assets/fish-DMFa1e0E.js +1 -0
- package/dist/assets/{flux-DJ8wfhdq.js → flux-O2_lRca2.js} +1 -1
- package/dist/assets/{seedance-CXMJI02j.js → grokvideo-r7KXBgJx.js} +1 -1
- package/dist/assets/{hailuo-sq5zKcla.js → hailuo-BQAYP5pp.js} +1 -1
- package/dist/assets/{qrart-CapqFZBl.js → headshots-B6TFQ2vK.js} +1 -1
- package/dist/assets/{i18n-CektUpr6.js → i18n-2vgTB-Px.js} +1 -1
- package/dist/assets/image-X_sCgt4S.js +1 -0
- package/dist/assets/{index-CqcdcBvt.js → index-Cf679Gpt.js} +15 -15
- package/dist/assets/{index.browser.esm-DPQ39Bo7.js → index.browser.esm-BenUhFMX.js} +1 -1
- package/dist/assets/{index.es-Dng16aRY.js → index.es-DqI2qm7C.js} +1 -1
- package/dist/assets/{input-number-Decechf9.js → input-number-CQcHJS_D.js} +1 -1
- package/dist/assets/{kling-Cmn42Qes.js → kling-Dl-upJhY.js} +1 -1
- package/dist/assets/{luma-Bq2UZWz9.js → luma-CZIH-f7o.js} +1 -1
- package/dist/assets/{maestro-CmXwBl-g.js → maestro-C9kYm0om.js} +1 -1
- package/dist/assets/{maestro-CBjCyEKr.js → maestro-CkRicRS1.js} +1 -1
- package/dist/assets/{midjourney-C0QWqKvA.js → midjourney-DrQ_NYaQ.js} +1 -1
- package/dist/assets/{mobileLocalExec-DHKcUALv.js → mobileLocalExec-CF5P-j35.js} +2 -2
- package/dist/assets/{nanobanana-pk6W7OIt.js → nanobanana-DJke58h2.js} +1 -1
- package/dist/assets/{openaiimage-YPlssxQ1.js → openaiimage-XwcRzbmt.js} +1 -1
- package/dist/assets/{pagination-Cf5mUKFW.js → pagination-CvQJgiqh.js} +2 -2
- package/dist/assets/{pagination-DteVctcr.js → pagination-DrBCNZpz.js} +1 -1
- package/dist/assets/{sora-CH5c0f8t.js → pika-Dr1qHEBf.js} +1 -1
- package/dist/assets/{pika-hzOEfQ5G.js → pixverse-B_s1OvwL.js} +1 -1
- package/dist/assets/{popover-DUe7QJxx.js → popover--9beFUea.js} +1 -1
- package/dist/assets/{producer-CEGylPxe.js → producer-Bnl5fUPj.js} +1 -1
- package/dist/assets/{headshots-CaeatAyN.js → qrart-wThzuN8e.js} +1 -1
- package/dist/assets/realtime-BTzMXCJ_.js +1 -0
- package/dist/assets/{row-IdR0nzdV.js → row-hkZOEMJa.js} +1 -1
- package/dist/assets/{grokvideo-DIVbgeHQ.js → seedance-D2eLWFlZ.js} +1 -1
- package/dist/assets/{seedream-CLMOPdX7.js → seedream-alyN--Je.js} +1 -1
- package/dist/assets/{select-EE8eQ9FI.js → select-CEMcZu9_.js} +1 -1
- package/dist/assets/{serp-WqdM8bvo.js → serp-C77Yf0iy.js} +1 -1
- package/dist/assets/{slider-BeU_beX5.js → slider-DMBNcoEA.js} +1 -1
- package/dist/assets/{solana-wallets-BtdP1oGX.js → solana-wallets-CpBx8jdr.js} +2 -2
- package/dist/assets/{solana-wallets-vue-Dqu0Rmwp.js → solana-wallets-vue-DutFGlU3.js} +1 -1
- package/dist/assets/{pixverse-Biv9QNjC.js → sora-Jt0p1oxa.js} +1 -1
- package/dist/assets/{suno-vxz9Yj8E.js → suno-BwFwSKEs.js} +1 -1
- package/dist/assets/{switch-D5b0pERu.js → switch-DN2pyT5S.js} +1 -1
- package/dist/assets/{table-CMPiAUut.js → table-BAjl7eSe.js} +1 -1
- package/dist/assets/{tabs-D9gl1f3u.js → tabs-BgADzPAI.js} +1 -1
- package/dist/assets/{time-picker-DoF7z8Sv.js → time-picker-CE4wIugP.js} +1 -1
- package/dist/assets/{tooltip-BbIugS3C.js → tooltip-DdlttMDs.js} +1 -1
- package/dist/assets/{upload-CozMaOHz.js → upload-DmubVEU8.js} +1 -1
- package/dist/assets/{veo-DrOBUc9Y.js → veo-1L8lIgCF.js} +1 -1
- package/dist/assets/{wan-Cu7vL8uQ.js → wan-CaklTXCH.js} +1 -1
- package/dist/assets/{web-DZUvJvhK.js → web-5Emy_WI_.js} +1 -1
- package/dist/assets/{web-3bXZwg7V.js → web-B6-vZtOc.js} +1 -1
- package/dist/assets/{web-C1nVsVTW.js → web-DcCmrcHo.js} +1 -1
- package/dist/assets/{web-BmvmAPaa.js → web-kUgk7fUX.js} +1 -1
- package/dist/assets/{web-CrnN-UgO.js → web-s7xwMs5J.js} +1 -1
- package/dist/assets/{webextrator-DMNZCYQV.js → webextrator-AewdIGvG.js} +1 -1
- package/dist/index.html +3 -3
- package/package.json +1 -1
- package/dist/assets/Conversation-C2olHACc.js +0 -1
- package/dist/assets/Detail-Bcdn0wnQ.js +0 -2
- package/dist/assets/Extra-qtx9nSp5.js +0 -1
- package/dist/assets/Index-BTE2IBhb.js +0 -1
- package/dist/assets/Index-B_rGgmVR.js +0 -1
- package/dist/assets/Index-BsC-riiv.js +0 -1
- package/dist/assets/Index-BufIj15O.js +0 -1
- package/dist/assets/Index-Bv1ppnEV.js +0 -1
- package/dist/assets/Index-Cja_jLtT.js +0 -1
- package/dist/assets/Index-CpY6Yy78.js +0 -1
- package/dist/assets/Index-D5WN6LoI.js +0 -1
- package/dist/assets/Index-aQKXa5iP.js +0 -1
- package/dist/assets/Index-lNKXfSZq.js +0 -1
- package/dist/assets/Index-yTYO4DNY.js +0 -1
- package/dist/assets/List-B0HgHDSJ.js +0 -1
- package/dist/assets/List-rM3PnjGh.js +0 -1
- package/dist/assets/LocalTools-C5ruJqvG.js +0 -5
- package/dist/assets/Navigator-BDvoxFry.css +0 -1
- package/dist/assets/Navigator-CwKeU0AX.js +0 -5
- package/dist/assets/avatar-DFrmy2L6.js +0 -1
- package/dist/assets/common-B5rFHsYy.js +0 -1
- package/dist/assets/common-BAPaJaq4.js +0 -1
- package/dist/assets/common-BcMK0ctI.js +0 -1
- package/dist/assets/common-BlB1wekm.js +0 -1
- package/dist/assets/common-C95kdV5e.js +0 -1
- package/dist/assets/common-DtgfyORZ.js +0 -1
- package/dist/assets/esm-CyIqXGhU.js +0 -1
- package/dist/assets/fish-BUU8L-ri.js +0 -1
- package/dist/assets/image-ZsPsEnY2.js +0 -1
- package/dist/assets/realtime-CPINthOJ.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.avatar[data-v-b0beddd3]{width:35px;height:35px;max-width:initial;max-height:initial;-o-object-fit:cover;object-fit:cover;cursor:pointer;border-radius:50%;transition:transform .2s,box-shadow .2s}.avatar[data-v-b0beddd3]:hover{box-shadow:0 0 0 2px var(--el-color-primary-light-5)}.hint[data-v-a058f162]{color:var(--el-text-color-secondary);margin:4px 0 0;font-size:12px;line-height:1.5}.current-key[data-v-a058f162]{color:var(--el-text-color-secondary);flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 0;font-size:12px;display:flex}.current-key code[data-v-a058f162]{color:var(--el-text-color-primary)}.w-full[data-v-a058f162]{width:100%}.provider-option[data-v-a058f162]{flex-direction:column;gap:2px;line-height:1.3;display:flex}.provider-name[data-v-a058f162]{color:var(--el-text-color-primary);font-size:14px}.provider-desc[data-v-a058f162]{color:var(--el-text-color-secondary);font-size:12px}.test-result[data-v-a058f162]{border:1px solid #0000;border-radius:6px;margin:4px 0 0;padding:12px 14px;font-size:13px;line-height:1.5}.test-result.ok[data-v-a058f162]{background:var(--el-color-success-light-9,#f0f9eb);border-color:var(--el-color-success-light-7,#b3e19d);color:var(--el-color-success-dark-2,#5daf34)}.test-result.fail[data-v-a058f162]{background:var(--el-color-danger-light-9,#fef0f0);border-color:var(--el-color-danger-light-7,#fab6b6);color:var(--el-color-danger-dark-2,#b94343)}.test-result-title[data-v-a058f162]{margin:0 0 6px;font-weight:600}.test-result-detail[data-v-a058f162]{-moz-column-gap:12px;grid-template-columns:minmax(72px,max-content) 1fr;gap:4px 12px;margin:0;display:grid}.test-result-detail dt[data-v-a058f162]{color:var(--el-text-color-regular);font-weight:500}.test-result-detail dd[data-v-a058f162]{word-break:break-all;color:var(--el-text-color-primary);margin:0}.test-result-detail code[data-v-a058f162]{background:#0000000a;border-radius:4px;padding:1px 6px;font-size:12px}.byok-provider-select-popper .el-select-dropdown__item{height:auto;padding-top:8px;padding-bottom:8px;line-height:1.4}.byok[data-v-4e5854a0]{flex-direction:column;gap:12px;display:flex}.byok-intro-tip[data-v-4e5854a0]{color:var(--el-text-color-secondary);margin:0;font-size:12px;line-height:1.6}.byok-actions[data-v-4e5854a0]{justify-content:flex-end;display:flex}.byok-table[data-v-4e5854a0]{width:100%}.byok-table[data-v-4e5854a0] .cell{word-break:break-word}.memory-setting .hint[data-v-4202ae77]{margin:0;font-size:13px;line-height:1.6}.memory-setting .muted[data-v-4202ae77]{color:var(--el-text-color-secondary,#909399)}.memory-setting .section-head[data-v-4202ae77]{justify-content:space-between;align-items:center;gap:12px;display:flex}.memory-setting .section-head h3[data-v-4202ae77]{margin:0;font-size:15px;font-weight:600}.memory-setting .rows[data-v-4202ae77]{border:1px solid var(--el-border-color-lighter,#ebeef5);border-radius:8px;margin:0;padding:0;list-style:none;overflow:hidden}.memory-setting .memory-row[data-v-4202ae77]{border-bottom:1px solid var(--el-border-color-lighter,#ebeef5);align-items:flex-start;gap:12px;padding:12px 14px;transition:background-color .15s;display:flex}.memory-setting .memory-row[data-v-4202ae77]:last-child{border-bottom:none}.memory-setting .memory-row[data-v-4202ae77]:hover{background:var(--el-fill-color-light,#f5f7fa)}.memory-setting .memory-row .row-icon[data-v-4202ae77]{color:var(--el-text-color-secondary,#909399);flex-shrink:0;margin-top:3px}.memory-setting .memory-row .memory-content[data-v-4202ae77]{overflow-wrap:break-word;flex:1;min-width:0;line-height:1.6}.memory-setting .memory-row[data-v-4202ae77] .el-button{flex-shrink:0}.edit-dialog .edit-body{justify-content:center;width:100%;display:flex}.vue-advanced-cropper{text-align:center;-webkit-user-select:none;user-select:none;direction:ltr;max-width:100%;max-height:100%;position:relative}.vue-advanced-cropper__stretcher{pointer-events:none;max-width:100%;max-height:100%;position:relative}.vue-advanced-cropper__image{-webkit-user-select:none;user-select:none;transform-origin:50%;position:absolute;max-width:none!important}.vue-advanced-cropper__background,.vue-advanced-cropper__foreground{opacity:1;background:#000;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.vue-advanced-cropper__foreground{opacity:.5}.vue-advanced-cropper__boundaries{opacity:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.vue-advanced-cropper__cropper-wrapper{width:100%;height:100%}.vue-advanced-cropper__image-wrapper{width:100%;height:100%;position:absolute;overflow:hidden}.vue-advanced-cropper__stencil-wrapper{position:absolute}.vue-simple-handler{background:#fff;width:10px;height:10px;display:block}.vue-handler-wrapper{width:30px;height:30px;position:absolute;transform:translate(-50%,-50%)}.vue-handler-wrapper__draggable{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.vue-handler-wrapper--west-north{cursor:nw-resize}.vue-handler-wrapper--north{cursor:n-resize}.vue-handler-wrapper--east-north{cursor:ne-resize}.vue-handler-wrapper--east{cursor:e-resize}.vue-handler-wrapper--east-south{cursor:se-resize}.vue-handler-wrapper--south{cursor:s-resize}.vue-handler-wrapper--west-south{cursor:sw-resize}.vue-handler-wrapper--west{cursor:w-resize}.vue-handler-wrapper--disabled{cursor:auto}.vue-line-wrapper{background:0 0;justify-content:center;align-items:center;display:flex;position:absolute}.vue-line-wrapper--north,.vue-line-wrapper--south{width:100%;height:12px;left:0;transform:translateY(-50%)}.vue-line-wrapper--north{cursor:n-resize;top:0}.vue-line-wrapper--south{cursor:s-resize;top:100%}.vue-line-wrapper--east,.vue-line-wrapper--west{width:12px;height:100%;top:0;transform:translate(-50%)}.vue-line-wrapper--east{cursor:e-resize;left:100%}.vue-line-wrapper--west{cursor:w-resize;left:0}.vue-line-wrapper--disabled{cursor:auto}.vue-bounding-box{width:100%;height:100%;position:relative}.vue-bounding-box__handler{position:absolute}.vue-bounding-box__handler--west-north{top:0;left:0}.vue-bounding-box__handler--north{top:0;left:50%}.vue-bounding-box__handler--east-north{top:0;left:100%}.vue-bounding-box__handler--east{top:50%;left:100%}.vue-bounding-box__handler--east-south{top:100%;left:100%}.vue-bounding-box__handler--south{top:100%;left:50%}.vue-bounding-box__handler--west-south{top:100%;left:0}.vue-bounding-box__handler--west{top:50%;left:0}.vue-draggable-area{position:relative}.vue-preview-result{box-sizing:border-box;width:100%;height:100%;position:absolute;overflow:hidden}.vue-preview-result__wrapper{position:absolute}.vue-preview-result__image{pointer-events:none;-webkit-user-select:none;user-select:none;transform-origin:50%;position:relative;max-width:none!important}.vue-rectangle-stencil{box-sizing:border-box;width:100%;height:100%;position:absolute}.vue-rectangle-stencil__preview{width:100%;height:100%;position:absolute}.vue-rectangle-stencil--movable{cursor:move}.vue-circle-stencil{box-sizing:content-box;cursor:move;width:100%;height:100%;position:absolute}.vue-circle-stencil__preview{border-radius:50%;width:100%;height:100%;position:absolute}.vue-circle-stencil--movable{cursor:move}.vue-preview{box-sizing:border-box;position:relative;overflow:hidden}.vue-preview--fill,.vue-preview__wrapper{width:100%;height:100%;position:absolute}.vue-preview__image{pointer-events:none;-webkit-user-select:none;user-select:none;transform-origin:50%;position:absolute;max-width:none!important}.vue-simple-line{background:0 0;border:0 solid #ffffff4d;transition:border .5s}.vue-simple-line--south,.vue-simple-line--north{width:100%;height:0}.vue-simple-line--east,.vue-simple-line--west{width:0;height:100%}.vue-simple-line--east{border-right-width:1px}.vue-simple-line--west{border-left-width:1px}.vue-simple-line--south{border-bottom-width:1px}.vue-simple-line--north{border-top-width:1px}.vue-simple-line--hover{opacity:1;border-color:#fff}.cropper-shell[data-v-457c9f79]{flex-direction:column;gap:12px;display:flex}.cropper-shell .cropper[data-v-457c9f79]{background-color:#fafafa;background-image:linear-gradient(45deg,#d8d8d8 25%,#0000 25%),linear-gradient(-45deg,#d8d8d8 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#d8d8d8 75%),linear-gradient(-45deg,#0000 75%,#d8d8d8 75%);background-position:0 0,0 8px,8px -8px,8px 0;background-size:16px 16px;border-radius:8px;width:100%;height:360px;overflow:hidden}.cropper-shell .toolbar[data-v-457c9f79]{justify-content:center;display:flex}.cropper-shell .toolbar[data-v-457c9f79] .el-button{min-width:56px;height:44px;padding:0 18px}.cropper-shell .toolbar[data-v-457c9f79] .el-button .el-icon{font-size:22px}.dropzone[data-v-457c9f79]{border:2px dashed var(--el-border-color);cursor:pointer;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:8px;height:360px;transition:border-color .2s,background .2s;display:flex}.dropzone[data-v-457c9f79]:hover{border-color:var(--el-color-primary);background:var(--el-fill-color-light)}.dropzone .dropzone-icon[data-v-457c9f79]{color:var(--el-text-color-secondary);font-size:36px}.dropzone .dropzone-text[data-v-457c9f79]{color:var(--el-text-color-primary);margin:0;font-size:14px}.dropzone .dropzone-hint[data-v-457c9f79]{color:var(--el-text-color-secondary);margin:0;font-size:12px}.edit[data-v-a74791d4]{cursor:pointer;margin-left:5px;position:relative;top:2px}.edit .icon[data-v-a74791d4]{font-size:14px}.user-chip[data-v-380498e3]{max-width:100%;color:var(--el-text-color-regular);align-items:center;gap:6px;font-size:13px;line-height:1.4;display:inline-flex}.user-chip.is-empty[data-v-380498e3]{color:var(--el-text-color-secondary)}.user-chip.is-missing[data-v-380498e3]{color:var(--el-text-color-secondary);font-style:italic}.user-chip .user-chip__avatar[data-v-380498e3]{flex-shrink:0}.user-chip .user-chip__name[data-v-380498e3]{white-space:nowrap;font-weight:500}.user-chip .user-chip__icon[data-v-380498e3]{color:var(--el-text-color-secondary);flex-shrink:0;font-size:14px}.user-chip .user-chip__contact[data-v-380498e3]{color:var(--el-text-color-secondary);font-size:12px;font-family:var(--el-font-family-mono,ui-monospace, SFMono-Regular, Menlo, monospace);white-space:nowrap}.user-chip .user-chip__id[data-v-380498e3]{font-family:var(--el-font-family-mono,ui-monospace, SFMono-Regular, Menlo, monospace);font-size:12px}.user-picker__option[data-v-9477c0da]{align-items:center;gap:10px;padding:4px 0;display:flex}.user-picker__option--empty[data-v-9477c0da]{color:var(--el-text-color-secondary);cursor:default;font-size:13px}.user-picker__option--excluded[data-v-9477c0da]{cursor:not-allowed;opacity:.6}.user-picker__empty-icon[data-v-9477c0da]{color:var(--el-color-warning);flex-shrink:0;font-size:14px}.user-picker__empty-text[data-v-9477c0da]{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.user-picker__excluded-tag[data-v-9477c0da]{background:var(--el-fill-color-light);color:var(--el-text-color-secondary);border-radius:4px;flex-shrink:0;margin-inline-start:6px;padding:2px 6px;font-size:11px;line-height:1.4}.user-picker__avatar[data-v-9477c0da]{flex-shrink:0}.user-picker__option-text[data-v-9477c0da]{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.user-picker__option-name[data-v-9477c0da]{color:var(--el-text-color-primary);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;font-size:14px;font-weight:500;display:flex;overflow:hidden}.user-picker__option-contact[data-v-9477c0da]{font-size:12px;font-family:var(--el-font-family-mono,ui-monospace, SFMono-Regular, Menlo, monospace);color:var(--el-text-color-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.user-picker__popper .el-autocomplete-suggestion__list{max-height:320px}.user-picker__popper .el-autocomplete-suggestion li{height:auto;padding:6px 12px;line-height:1.4}.edit[data-v-8e61041c]{cursor:pointer;margin-left:5px;position:relative;top:2px}.edit .icon[data-v-8e61041c]{font-size:14px}.edit-body[data-v-8e61041c]{flex-direction:column;gap:8px;width:100%;display:flex}.empty[data-v-8e61041c]{border:1px dashed var(--el-border-color);background:var(--el-fill-color-light);border-radius:6px;justify-content:center;align-items:center;min-height:36px;padding:8px;display:flex}.empty .empty-text[data-v-8e61041c]{color:var(--el-text-color-secondary);font-size:13px}.chip-list[data-v-8e61041c]{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.chip-item[data-v-8e61041c]{border:1px solid var(--el-border-color-lighter);background:var(--el-fill-color-blank);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;display:flex}.chip-item .chip-remove[data-v-8e61041c]{cursor:pointer;color:var(--el-text-color-secondary);font-size:14px}.chip-item .chip-remove[data-v-8e61041c]:hover{color:var(--el-color-danger)}.divider[data-v-8e61041c]{margin:4px 0}.tip[data-v-8e61041c]{color:var(--el-text-color-secondary);margin:0;font-size:12px}.error[data-v-8e61041c]{color:var(--el-color-danger);align-items:center;gap:6px;margin:0;font-size:12px;display:flex}.error .error-icon[data-v-8e61041c]{font-size:14px}.dialog-footer[data-v-8e61041c]{justify-content:center;gap:12px;width:100%;display:flex}.auto-translate-toggle[data-v-e08f547e]{width:26px;height:26px;margin-left:6px;padding:0}.auto-translate-toggle .icon-wrap[data-v-e08f547e]{justify-content:center;align-items:center;font-size:13px;display:inline-flex;position:relative}.auto-translate-toggle.is-off[data-v-e08f547e]{color:var(--el-text-color-secondary)}.auto-translate-toggle .dot[data-v-e08f547e]{background:var(--el-color-success);width:6px;height:6px;box-shadow:0 0 0 1px var(--el-color-white);border-radius:50%;position:absolute;top:-2px;right:-3px}.setting-notice[data-v-82101c68]{background:var(--el-color-info-light-9);border:1px solid var(--el-color-info-light-7);color:var(--el-text-color-regular);border-radius:8px;align-items:center;gap:8px;padding:8px 12px;font-size:12px;line-height:1.5;display:flex}.setting-notice .icon[data-v-82101c68]{color:var(--el-color-info);flex-shrink:0;font-size:13px}.setting-notice .text[data-v-82101c68]{word-break:break-word;flex:1}.setting-notice.admin[data-v-82101c68]{background:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-7)}.setting-notice.admin .icon[data-v-82101c68]{color:var(--el-color-primary)}.setting-notice.official[data-v-82101c68]{background:var(--el-color-success-light-9);border-color:var(--el-color-success-light-7)}.setting-notice.official .icon[data-v-82101c68]{color:var(--el-color-success)}.settings-media[data-v-93b52d3a]{background-color:var(--el-fill-color-light);border-radius:8px;max-width:120px}.settings-actions[data-v-93b52d3a]{align-items:center;gap:4px;display:inline-flex}.favicon[data-v-93b52d3a]{max-width:64px}.admins-list[data-v-93b52d3a]{flex-direction:column;align-items:flex-end;gap:4px;max-width:100%;display:flex}.admins-chip[data-v-93b52d3a]{max-width:100%}.primary-color-content[data-v-93b52d3a]{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.primary-color-content .primary-color-value[data-v-93b52d3a]{font-family:var(--el-font-family-monospace,"SFMono-Regular", Menlo, Consolas, monospace);color:var(--el-text-color-regular);text-transform:uppercase;font-size:13px}@media (width<=640px){.admins-list[data-v-93b52d3a]{align-items:flex-start}}.site-services-settings .default-price-section[data-v-93cbfc74]{border:1px solid var(--el-border-color-lighter);background:var(--el-fill-color-extra-light);border-radius:8px;justify-content:space-between;align-items:center;gap:24px;margin-top:12px;padding:16px;display:flex}.site-services-settings .default-price-section .markup-row[data-v-93cbfc74]{flex-shrink:0;align-items:center;gap:10px;display:flex}.site-services-settings .default-price-section .markup-input[data-v-93cbfc74]{width:180px}.site-services-settings .default-price-section .markup-percent[data-v-93cbfc74]{color:var(--el-color-primary);font-variant-numeric:tabular-nums;font-weight:600}.site-services-settings .header[data-v-93cbfc74]{justify-content:space-between;align-items:flex-start;gap:12px;margin:12px 0;display:flex}.site-services-settings .settings-title[data-v-93cbfc74]{font-weight:600}.site-services-settings .settings-tip[data-v-93cbfc74]{color:var(--el-text-color-secondary);margin-top:2px;font-size:12px}.site-services-settings .list-card[data-v-93cbfc74]{border:1px solid var(--el-border-color-lighter)}.site-services-settings .overrides-table[data-v-93cbfc74]{width:100%}.site-services-settings .overrides-table .service-cell[data-v-93cbfc74]{align-items:center;gap:8px;display:flex}.site-services-settings .overrides-table .service-cell .service-favicon[data-v-93cbfc74]{-o-object-fit:contain;object-fit:contain;border-radius:4px;flex-shrink:0;width:22px;height:22px}.site-services-settings .overrides-table .service-cell .service-cell-text[data-v-93cbfc74]{flex-direction:column;gap:2px;display:flex}.site-services-settings .muted[data-v-93cbfc74]{color:var(--el-text-color-secondary);font-size:12px}@media (width<=767px){.site-services-settings .default-price-section[data-v-93cbfc74]{flex-direction:column;align-items:flex-start;gap:12px}.site-services-settings .default-price-section .markup-input[data-v-93cbfc74]{width:min(180px,100vw - 96px)}.site-services-settings .header[data-v-93cbfc74]{flex-direction:column}}.site-service-override-dialog.el-dialog,.site-service-override-dialog .el-dialog{width:min(520px,100vw - 32px)!important}.site-service-override-dialog .service-override-form .el-form-item__label{white-space:normal;height:auto;color:var(--el-text-color-primary);margin-bottom:4px;font-weight:600;line-height:1.3}.site-service-override-dialog .service-override-form .field-desc{white-space:normal;width:100%;color:var(--el-text-color-secondary);margin-top:6px;font-size:12px;font-weight:400;line-height:1.4;display:block}.site-service-override-dialog .service-override-form .markup-row{align-items:center;gap:10px;display:flex}.site-service-override-dialog .service-override-form .markup-input{width:180px}.site-service-override-dialog .service-override-form .markup-percent{font-variant-numeric:tabular-nums;color:var(--el-color-primary);font-weight:600}.site-service-override-dialog .service-override-form .field-tip{color:var(--el-text-color-secondary);font-size:12px}.site-service-override-dialog .service-override-form .auto-translate-inline{align-items:center;gap:6px;margin-top:6px;display:flex}.service-catalog-select-popper .el-select-dropdown__item{height:auto;min-height:34px;line-height:1.4}.service-catalog-select-popper .service-option{align-items:center;width:100%;min-width:0;display:flex}.service-catalog-select-popper .option-favicon{-o-object-fit:contain;object-fit:contain;border-radius:4px;flex-shrink:0;width:18px;max-width:18px;height:18px;max-height:18px;margin-right:6px}.service-catalog-select-popper .option-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.service-catalog-select-popper .option-alias{color:var(--el-text-color-secondary);flex-shrink:0;margin-left:8px;font-size:12px}.edit{cursor:pointer;margin-left:5px;position:relative;top:2px}.edit .icon{font-size:14px}.tip{color:var(--el-text-color-secondary);font-size:12px}.edit-dialog .el-dialog__header{justify-content:center;padding-right:48px;display:flex;position:relative}.edit-dialog .el-dialog__title{text-align:center;width:100%;font-weight:600}.edit-dialog .el-dialog__headerbtn{position:absolute;top:50%;right:16px;transform:translateY(-50%)}.edit-dialog .el-dialog__body{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.edit-dialog .edit-body{flex-direction:column;align-items:center;width:100%;display:flex}.edit-dialog .tags{flex-wrap:wrap;justify-content:center;gap:4px;width:100%;display:flex}.edit-dialog .el-input{max-width:320px}.edit-dialog .dialog-footer{justify-content:center;gap:12px;width:100%;display:flex}.settings-actions[data-v-591c4e4a]{align-items:center;gap:4px;display:inline-flex}.edit[data-v-0a406628]{cursor:pointer;margin-left:5px;position:relative;top:2px}.edit .icon[data-v-0a406628]{font-size:14px}.edit-body[data-v-0a406628]{flex-direction:column;gap:12px;width:100%;display:flex}.tip[data-v-0a406628]{color:var(--el-text-color-secondary);margin:0;font-size:12px}.preview[data-v-0a406628]{border:1px dashed var(--el-border-color);background:var(--el-fill-color-light);border-radius:6px;align-items:center;gap:8px;min-height:32px;padding:8px 10px;display:flex}.dialog-footer[data-v-0a406628]{justify-content:center;gap:12px;width:100%;display:flex}.settings-nested[data-v-f33adf28]{flex-direction:column;align-items:flex-end;gap:12px;width:100%;display:flex}.settings-subitem[data-v-f33adf28]{justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}.settings-sub-label[data-v-f33adf28]{color:var(--el-text-color-primary);font-weight:600}.settings-media[data-v-f33adf28]{background-color:var(--el-fill-color-light);border-radius:8px;max-width:120px}@media (width<=640px){.settings-nested[data-v-f33adf28],.settings-subitem[data-v-f33adf28]{align-items:flex-start}}.subsite-settings[data-v-bf34cc89]{flex-direction:column;gap:12px;display:flex}.subsite-settings .header[data-v-bf34cc89]{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.subsite-settings .header .settings-title[data-v-bf34cc89]{margin:0 0 4px;font-size:14px;font-weight:600}.subsite-settings .header .settings-tip[data-v-bf34cc89]{color:var(--el-text-color-secondary);margin:0;font-size:12px}.subsite-settings .list-card[data-v-bf34cc89]{border:1px solid var(--el-border-color-lighter)}.subsite-settings .origin-link[data-v-bf34cc89]{color:var(--el-color-primary);word-break:break-all;text-decoration:none}.subsite-settings .origin-link[data-v-bf34cc89]:hover{text-decoration:underline}.subsite-settings .domain-list[data-v-bf34cc89]{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.subsite-settings .domain-list .origin-link.primary[data-v-bf34cc89]{font-weight:500}.subsite-settings .domain-list .custom-domain[data-v-bf34cc89]{align-items:center;gap:6px;font-size:12px;line-height:1.4;display:inline-flex}.subsite-settings .domain-list .custom-domain .hostname[data-v-bf34cc89]{word-break:break-all}.subsite-settings .domain-list .custom-domain.muted[data-v-bf34cc89]{color:var(--el-text-color-secondary)}.subsite-settings .domain-list .custom-domain.origin-link[data-v-bf34cc89]{font-weight:400}.subsite-settings .row-title[data-v-bf34cc89]{color:var(--el-text-color-secondary);margin-top:4px;font-size:12px;line-height:1.4}.subsite-settings .row-actions[data-v-bf34cc89]{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:inline-flex}.subsite-settings .subsite-table[data-v-bf34cc89] .el-button+.el-button{margin-left:0}.subsite-settings .form .hint[data-v-bf34cc89]{color:var(--el-text-color-secondary);margin-top:4px;font-size:12px;display:block}.open-dialog[data-v-bf34cc89] .el-dialog{max-width:calc(100vw - 32px)}.open-dialog[data-v-bf34cc89] .open-hint{color:var(--el-text-color-regular);margin:0 0 16px;font-size:13px;line-height:1.5}.open-dialog[data-v-bf34cc89] .open-actions{flex-direction:column;align-items:center;gap:14px;display:flex}.open-dialog[data-v-bf34cc89] .open-actions .el-button{min-width:220px;max-width:100%;margin-left:0}.open-dialog[data-v-bf34cc89] .open-actions .el-button+.el-button{margin-left:0}.custom-domain-settings[data-v-e66a20b5]{flex-direction:column;gap:12px;display:flex}.custom-domain-settings .header .settings-title[data-v-e66a20b5]{margin:0 0 4px;font-size:14px;font-weight:600}.custom-domain-settings .header .settings-tip[data-v-e66a20b5]{color:var(--el-text-color-secondary);margin:0;font-size:12px;line-height:1.6}.custom-domain-settings .domains-body[data-v-e66a20b5]{padding:4px 0 0}.custom-domain-settings[data-v-e66a20b5] .el-empty{padding:8px 0 16px}.custom-domain-settings[data-v-e66a20b5] .el-empty .el-empty__description{color:var(--el-text-color-secondary);margin-top:8px;font-size:13px}.custom-domain-settings .domain-row[data-v-e66a20b5]{border:1px solid var(--el-border-color-lighter);background:var(--el-fill-color-blank);border-radius:12px;margin-bottom:14px;padding:16px 18px;transition:border-color .15s}.custom-domain-settings .domain-row[data-v-e66a20b5]:hover{border-color:var(--el-border-color)}.custom-domain-settings .domain-row .domain-row-head[data-v-e66a20b5]{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.custom-domain-settings .domain-row .domain-row-head .hostname[data-v-e66a20b5]{word-break:break-all;flex:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px}.custom-domain-settings .domain-row .domain-row-head .status-tag[data-v-e66a20b5]{flex:none}.custom-domain-settings .domain-row .domain-row-head .row-actions[data-v-e66a20b5]{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.custom-domain-settings .domain-row .status-reason[data-v-e66a20b5]{color:var(--el-color-danger);margin-top:10px;font-size:12px}.custom-domain-settings .domain-row .dns-instructions[data-v-e66a20b5]{border-top:1px dashed var(--el-border-color-lighter);margin-top:14px;padding-top:14px}.custom-domain-settings .domain-row .dns-instructions .instructions[data-v-e66a20b5]{color:var(--el-text-color-regular);margin:0 0 10px;font-size:13px;line-height:1.6}.custom-domain-settings .domain-row .dns-instructions .dns-record[data-v-e66a20b5]{border-collapse:collapse;width:100%;font-size:12px}.custom-domain-settings .domain-row .dns-instructions .dns-record th[data-v-e66a20b5]{text-align:left;width:110px;color:var(--el-text-color-secondary);vertical-align:top;padding:6px 10px 6px 0;font-weight:400}.custom-domain-settings .domain-row .dns-instructions .dns-record td[data-v-e66a20b5]{padding:6px 0}.custom-domain-settings .domain-row .dns-instructions .dns-record td code[data-v-e66a20b5]{background:var(--el-fill-color-lighter);border-radius:6px;padding:3px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.custom-domain-settings .domain-row .dns-instructions .dns-record td code.break[data-v-e66a20b5]{word-break:break-all}.custom-domain-settings .domain-row .dns-instructions .record-name-hint[data-v-e66a20b5]{color:var(--el-text-color-secondary);margin:10px 0 0;font-size:12px;line-height:1.55}.custom-domain-settings .bind-title[data-v-e66a20b5]{color:var(--el-text-color-primary);margin:4px 0 14px;font-size:14px;font-weight:600}.custom-domain-settings .form .form-tip[data-v-e66a20b5]{color:var(--el-text-color-secondary);margin-top:6px;font-size:12px;line-height:1.5;display:block}.custom-domain-settings[data-v-e66a20b5] .el-divider{margin:20px 0}[data-v-c1299663] .settings-item .settings-label{flex:1 1 0;min-width:0}.auth-providers-content[data-v-c1299663]{flex:none;align-items:stretch}.auth-providers-list[data-v-c1299663]{flex-direction:column;min-width:220px;margin:0;padding:0;list-style:none;display:flex}.auth-providers-row[data-v-c1299663]{justify-content:space-between;align-items:center;padding:6px 0;display:flex}.auth-providers-row+.auth-providers-row[data-v-c1299663]{border-top:1px solid var(--el-border-color-lighter)}.auth-providers-row__label[data-v-c1299663]{color:var(--el-text-color-primary);font-size:14px}.auth-default-provider-select[data-v-c1299663]{min-width:240px}.about-link[data-v-f239bfa0]{color:var(--el-text-color-regular);align-items:center;gap:6px;font-size:14px;text-decoration:none;transition:color .3s;display:inline-flex}.about-link .icon[data-v-f239bfa0]{font-size:18px}.about-link[data-v-f239bfa0]:hover{color:var(--el-color-primary)}[data-v-02979ea7] .settings-list{flex-direction:column;gap:18px;display:flex}[data-v-02979ea7] .settings-menu .el-menu-item{white-space:normal;height:auto;padding-top:10px;padding-bottom:10px;line-height:1.4}[data-v-02979ea7] .settings-menu .el-menu-item .el-menu-item__content{word-break:break-word;align-items:flex-start;gap:8px;display:flex}[data-v-02979ea7] .settings-menu .el-menu-item .svg-inline--fa{margin-top:2px}[data-v-02979ea7] .settings-item{border-bottom:1px solid color-mix(in srgb, var(--el-border-color-lighter) 40%, transparent);justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:14px;display:flex}[data-v-02979ea7] .settings-item:last-child{border-bottom:none;padding-bottom:0}[data-v-02979ea7] .settings-label{color:var(--el-text-color-primary);flex-direction:column;gap:4px;display:flex}[data-v-02979ea7] .settings-title{font-size:14px;font-weight:600}[data-v-02979ea7] .settings-tip{color:var(--el-text-color-secondary);max-width:440px;font-size:12px;line-height:1.5}[data-v-02979ea7] .settings-content{text-align:right;flex-direction:column;align-items:flex-end;gap:8px;min-width:200px;display:flex}[data-v-02979ea7] .settings-value{color:var(--el-text-color-regular);word-break:break-word}@media (width<=640px){[data-v-02979ea7] .settings-item{flex-direction:column;align-items:flex-start}[data-v-02979ea7] .settings-content{text-align:left;align-items:flex-start;width:100%}}[data-v-02979ea7] .settings-dialog.is-mobile .el-dialog__body{padding:0 8px 16px}[data-v-02979ea7] .settings-menu.is-mobile{white-space:nowrap;border-bottom:none;height:auto;padding:4px 0}[data-v-02979ea7] .settings-menu.is-mobile .el-menu-item{border-radius:6px;height:36px;margin:0 4px;line-height:36px;border-bottom:none!important;padding:0 10px!important}[data-v-02979ea7] .settings-menu.is-mobile .el-menu-item.active,[data-v-02979ea7] .settings-menu.is-mobile .el-menu-item.is-active{background:var(--el-color-primary-light-9);color:var(--el-color-primary)}.delete-account-dialog .mb-3[data-v-f6c5bef8]{margin-bottom:12px}.delete-account-dialog .delete-consequences[data-v-f6c5bef8]{color:var(--el-text-color-regular);margin:12px 0;font-size:13px;line-height:1.6}.delete-account-dialog .delete-type-prompt[data-v-f6c5bef8]{margin:12px 0 4px;font-size:13px}.delete-account-dialog .delete-username[data-v-f6c5bef8]{word-break:break-all;color:var(--el-color-danger);margin:0 0 10px;font-size:15px;font-weight:700}.navigator[data-v-6381434f]{background-color:var(--app-nav-bg);border-right:1px solid var(--app-border-subtle);align-items:center;display:flex;position:relative}.navigator .top .avatar[data-v-6381434f]{cursor:pointer;border-radius:50%;flex-shrink:0;width:28px;height:28px;display:block}.navigator .category-header[data-v-6381434f]{display:none}.navigator[direction=row][data-v-6381434f]{border-right:none;border-top:1px solid var(--app-border-subtle);flex-direction:row;overflow-x:scroll}.navigator[direction=row] .brand[data-v-6381434f]{display:none}.navigator[direction=row] .top[data-v-6381434f]{flex-direction:row;justify-content:space-evenly;align-items:center;gap:10px;padding-left:10px;display:flex}.navigator[direction=row] .top .links[data-v-6381434f]{flex-direction:row;align-items:center;gap:10px;display:flex}.navigator[direction=row] .top .links .link[data-v-6381434f]{text-align:center}.navigator[direction=row] .top .links .link .description[data-v-6381434f]{margin-top:3px;font-size:10px}.navigator[direction=row] .top .links .link.active[data-v-6381434f]{color:var(--el-color-primary)}.navigator[direction=row] .bottom[data-v-6381434f]{flex:1;justify-content:flex-end;padding:0 10px;display:flex}.navigator[direction=column][data-v-6381434f]{flex-direction:column;width:60px}.navigator[direction=column] .brand[data-v-6381434f]{justify-content:center;align-items:center;width:100%;padding:10px 0;display:flex}.navigator[direction=column].is-mac .brand[data-v-6381434f]{padding-top:38px}.navigator[direction=column] .top[data-v-6381434f]{flex-direction:column;flex:1;width:100%;min-height:0;padding-top:0;display:flex;overflow:hidden}.navigator[direction=column] .top .links[data-v-6381434f]{flex-direction:column;flex:1;align-items:center;gap:15px;min-height:0;padding-bottom:10px;display:flex;overflow:hidden auto}.navigator[direction=column] .top .links[data-v-6381434f]::-webkit-scrollbar{width:4px}.navigator[direction=column] .top .links[data-v-6381434f]::-webkit-scrollbar-track{background:0 0}.navigator[direction=column] .top .links[data-v-6381434f]::-webkit-scrollbar-thumb{background:var(--el-fill-color);border-radius:4px}.navigator[direction=column] .top .link[data-v-6381434f]{cursor:pointer;color:var(--el-text-color-primary);justify-content:center;align-items:center;margin:0;padding:0;display:flex;background:0 0!important}.navigator[direction=column] .top .link .avatar[data-v-6381434f]{cursor:pointer;border-radius:50%;flex-shrink:0;width:35px;height:35px;margin:auto}.navigator[direction=column] .top .link .link-label[data-v-6381434f],.navigator[direction=column] .top .link.active[data-v-6381434f]:before{display:none}.navigator[direction=column] .top .more-button[data-v-6381434f]{background:var(--el-fill-color-light);cursor:pointer;width:35px;height:35px;box-shadow:var(--app-shadow-xs);border-radius:50%;justify-content:center;align-items:center;margin:auto;transition:border-radius .2s,background-color .2s,box-shadow .2s;display:flex}.navigator[direction=column] .top .more-button[data-v-6381434f]:hover{background:var(--el-fill-color);box-shadow:var(--app-shadow-sm);border-radius:35%}.navigator[direction=column] .top .more-button.active[data-v-6381434f]{box-shadow:0 0 0 2px var(--el-color-primary)}.navigator[direction=column] .top .more-button .folder-preview[data-v-6381434f]{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:1px;width:22px;height:22px;display:grid}.navigator[direction=column] .top .more-button .folder-preview .folder-icon[data-v-6381434f]{border-radius:50%;width:10px;height:10px}.navigator[direction=column] .bottom[data-v-6381434f]{flex-direction:column;justify-content:flex-end;align-items:center;width:100%;height:50px;padding-bottom:10px;display:flex}html.dark .navigator[data-v-6381434f]{border-right-color:var(--app-glass-border)}.navigator-overflow-popover{-webkit-backdrop-filter:blur(var(--app-glass-blur));backdrop-filter:blur(var(--app-glass-blur));border-radius:12px!important;padding:6px!important}.navigator-overflow-popover .overflow-menu{max-height:400px;overflow-y:auto}.navigator-overflow-popover .overflow-menu .overflow-item{cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:7px 8px;transition:background-color .15s;display:flex}.navigator-overflow-popover .overflow-menu .overflow-item:hover{background:var(--el-fill-color-light)}.navigator-overflow-popover .overflow-menu .overflow-item.active{background:var(--el-color-primary-light-9);color:var(--el-color-primary)}.navigator-overflow-popover .overflow-menu .overflow-item .overflow-avatar{border-radius:50%;flex-shrink:0;width:24px;height:24px}.navigator-overflow-popover .overflow-menu .overflow-item .overflow-name{color:var(--el-text-color-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as e,Jt as t,L as n,N as r,at as i,tt as a,z as o}from"./vendor-chart-Dw-P17PN.js";import{j as s}from"./index-
|
|
1
|
+
import{A as e,Jt as t,L as n,N as r,at as i,tt as a,z as o}from"./vendor-chart-Dw-P17PN.js";import{j as s}from"./index-Cf679Gpt.js";import{t as c}from"./index.es-DqI2qm7C.js";import{r as l,t as u}from"./taskDrawerMixin-DyAUhFEq.js";var d=o({name:`NoTasks`,components:{FontAwesomeIcon:c},mounted(){l.empty=!0},beforeUnmount(){l.empty=!1},methods:{onClick(){window.matchMedia(`(max-width: 767px)`).matches&&u()}}}),f={class:`text-center text-[var(--el-text-color-secondary)] py-10`},p=[`aria-label`],m={class:`mt-4 text-sm`};function h(o,s,c,l,u,d){let h=i(`font-awesome-icon`);return a(),r(`div`,f,[e(`button`,{type:`button`,class:`no-tasks-btn inline-flex items-center justify-center w-10 h-10 rounded-full border border-[var(--el-color-primary-light-5)] bg-[var(--el-color-primary-light-9)] text-[var(--el-color-primary)] cursor-pointer transition duration-200 hover:bg-[var(--el-color-primary-light-7)] hover:scale-105 active:scale-95`,"aria-label":o.$t(`common.message.noTasks`),onClick:s[0]||=(...e)=>o.onClick&&o.onClick(...e)},[n(h,{icon:`fa-solid fa-magic`,class:`text-base`})],8,p),e(`p`,m,t(o.$t(`common.message.noTasks`)),1)])}var g=s(d,[[`render`,h]]);export{g as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as e,Jt as t,L as n,M as r,N as i,at as a,tt as o,z as s}from"./vendor-chart-Dw-P17PN.js";import{j as c}from"./index-
|
|
1
|
+
import{A as e,Jt as t,L as n,M as r,N as i,at as a,tt as o,z as s}from"./vendor-chart-Dw-P17PN.js";import{j as c}from"./index-Cf679Gpt.js";import{t as l}from"./index.es-DqI2qm7C.js";var u=s({name:`NotFound`,components:{FontAwesomeIcon:l},computed:{path(){return this.$route?.fullPath||``}},mounted(){let e=document.querySelector(`meta[name="robots"]`);e||(e=document.createElement(`meta`),e.setAttribute(`name`,`robots`),document.head.appendChild(e)),e.setAttribute(`content`,`noindex, nofollow`)},beforeUnmount(){let e=document.querySelector(`meta[name="robots"]`);e&&e.setAttribute(`content`,`index, follow`)},methods:{goHome(){this.$router.push(`/`)},goBack(){window.history.length>1?this.$router.back():this.$router.push(`/`)}}}),d={class:`not-found`},f={class:`content`},p={class:`eyebrow`},m={class:`title`},h={class:`subtitle`},g={class:`actions`},_={key:0,class:`path`},v={class:`path__label`},y={class:`path__value`};function b(s,c,l,u,b,x){let S=a(`font-awesome-icon`);return o(),i(`div`,d,[c[3]||=e(`div`,{class:`glow`,"aria-hidden":`true`},null,-1),e(`main`,f,[e(`p`,p,t(s.$t(`common.message.notFoundEyebrow`)),1),c[2]||=e(`div`,{class:`code`,"aria-hidden":`true`},`404`,-1),e(`h1`,m,t(s.$t(`common.title.notFound`)),1),e(`p`,h,t(s.$t(`common.message.notFound`)),1),e(`div`,g,[e(`button`,{class:`btn btn--primary`,onClick:c[0]||=(...e)=>s.goHome&&s.goHome(...e)},[n(S,{icon:`fa-solid fa-house`}),e(`span`,null,t(s.$t(`common.button.backToHome`)),1)]),e(`button`,{class:`btn btn--ghost`,onClick:c[1]||=(...e)=>s.goBack&&s.goBack(...e)},[n(S,{icon:`fa-solid fa-arrow-left`}),e(`span`,null,t(s.$t(`common.button.goBack`)),1)])]),s.path?(o(),i(`div`,_,[e(`span`,v,t(s.$t(`common.message.notFoundPath`)),1),e(`code`,y,t(s.path),1)])):r(``,!0)])])}var x=c(u,[[`render`,b],[`__scopeId`,`data-v-41538014`]]);export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./rolldown-runtime--c01j_DQ.js";import{A as e,Gt as t,I as n,Jt as r,L as i,M as a,N as o,T as s,at as c,j as l,mt as u,tt as d,z as f}from"./vendor-chart-Dw-P17PN.js";import{t as p}from"./alert-BkFyH48_.js";import{t as ee}from"./card-D-4S-l7a.js";import{n as m,t as h}from"./row-IdR0nzdV.js";import{i as g,n as _,r as v,t as y}from"./wechat-CRgDcu8w.js";import{t as b}from"./divider-BNWJAaA2.js";import{t as x}from"./skeleton-CoheJz5x.js";import{Lt as S,Yn as C,Yt as w,Zr as T,ei as E,gi as D,j as O,qt as k,si as A,ui as j,vi as M,zr as N}from"./index-CqcdcBvt.js";import{t as te}from"./CopyToClipboard-DKGHAFZY.js";var P=f({name:`PublicWechatPayDialog`,components:{ElDialog:j,ElButton:M,QrCode:S,ElRow:h,ElCol:m},props:{order:{type:Object,required:!0},visible:{type:Boolean,required:!1,default:!1}},emits:[`hide`],data(){return{copied:!1,copiedTimer:void 0}},computed:{isMobileOutsideWechat(){return _()&&!y()},isMobileInsideWechat(){return _()&&y()},dialogWidth(){return this.isMobileOutsideWechat||this.isMobileInsideWechat?`90%`:`500px`}},unmounted(){this.copiedTimer&&clearTimeout(this.copiedTimer)},methods:{async onCopyLink(){let e=typeof window<`u`?window.location.href:``;if(!e)return;let t=!1;try{t=await w(e,{debug:!1})}catch{t=!1}t?(this.copied=!0,this.copiedTimer&&clearTimeout(this.copiedTimer),this.copiedTimer=window.setTimeout(()=>{this.copied=!1},2e3)):A.error(String(this.$t(`common.message.copyFailed`)||`Copy failed`))}}}),F={key:0,class:`wechat-pay-mobile text-center py-[20px] px-[10px]`},I={class:`text-[14px] mb-3 leading-relaxed`},L={class:`text-[12px] text-gray-500 mb-4 leading-relaxed`},R={key:1,class:`wechat-pay-longpress text-center py-[20px] px-[10px]`},z={class:`text-[14px] mb-4 leading-relaxed`},B={class:`paycode wechat`},V={class:`help-text block bg-[#00c800] text-white text-[14px] h-[35px] w-[240px] text-center leading-[35px] mt-[10px] mx-auto`};function H(t,s,f,p,ee,m){let h=c(`qr-code`),g=c(`el-button`),_=c(`el-col`),v=c(`el-row`),y=c(`el-dialog`);return d(),l(y,{"model-value":t.visible,title:t.$t(`application.title.buyService`),width:t.dialogWidth,center:``,onClose:s[0]||=e=>t.$emit(`hide`)},{default:u(()=>[t.isMobileOutsideWechat?(d(),o(`div`,F,[e(`p`,I,r(t.$t(`order.message.wechatPayMobileScanTip`)),1),t.order?.pay_url?(d(),l(h,{key:0,value:t.order?.pay_url,size:220,class:`qrcode m-auto mb-3`,type:`image/png`,color:{dark:`#000000`,light:`#ffffff`}},null,8,[`value`])):a(``,!0),e(`p`,L,r(t.$t(`order.message.wechatPayMobileHint`)),1),i(g,{size:`default`,round:``,class:`w-[220px]`,onClick:t.onCopyLink},{default:u(()=>[n(r(t.copied?t.$t(`common.message.copied`):t.$t(`order.button.copyPayLink`)),1)]),_:1},8,[`onClick`])])):t.isMobileInsideWechat?(d(),o(`div`,R,[e(`p`,z,r(t.$t(`order.message.wechatPayLongPressTip`)),1),t.order?.pay_url?(d(),l(h,{key:0,value:t.order?.pay_url,size:240,class:`qrcode mx-auto`,type:`image/png`,color:{dark:`#000000`,light:`#ffffff`}},null,8,[`value`])):a(``,!0)])):(d(),l(v,{key:2,class:`paycodes py-[30px] w-[500px] mx-auto`},{default:u(()=>[i(_,{span:12},{default:u(()=>[e(`div`,B,[t.order?.pay_url?(d(),l(h,{key:0,value:t.order?.pay_url,size:200,class:`qrcode m-auto w-[200px] h-[200px]`,type:`image/png`,color:{dark:`#000000`,light:`#ffffff`}},null,8,[`value`])):a(``,!0),e(`p`,V,r(t.$t(`order.message.wechatPayHelp`)),1)])]),_:1}),i(_,{span:12},{default:u(()=>[...s[1]||=[e(`div`,{class:`help-img`},[e(`img`,{src:`https://midas.gtimg.cn/enterprise/images/ep_sys_wx_tip.jpg`})],-1)]]),_:1})]),_:1}))]),_:1},8,[`model-value`,`title`,`width`])}var U=O(P,[[`render`,H]]),W=f({name:`PublicStripePayDialog`,components:{ElDialog:j},props:{order:{type:Object,required:!0},visible:{type:Boolean,required:!1,default:!1}},emits:[`hide`],watch:{visible:{handler(e){e&&this.order?.pay_url&&window.open(this.order.pay_url,`_blank`)}}}}),G={class:`text-center`};function K(t,n,i,a,o,s){let f=c(`el-dialog`);return d(),l(f,{"model-value":t.visible,title:t.$t(`application.title.buyService`),width:`500px`,center:``,onClose:n[0]||=e=>t.$emit(`hide`)},{default:u(()=>[e(`p`,G,r(t.$t(`order.message.buyInExternalUrl`)),1)]),_:1},8,[`model-value`,`title`])}var q=O(W,[[`render`,K]]),J=f({name:`PublicAlipayPayDialog`,components:{ElDialog:j},props:{order:{type:Object,required:!0},visible:{type:Boolean,required:!1,default:!1}},emits:[`hide`],watch:{visible:{handler(e){e&&this.order?.pay_url&&window.open(this.order.pay_url,`_blank`)}}}}),Y={class:`text-center`};function ne(t,n,i,a,o,s){let f=c(`el-dialog`);return d(),l(f,{"model-value":t.visible,title:t.$t(`application.title.buyService`),width:`500px`,center:``,onClose:n[0]||=e=>t.$emit(`hide`)},{default:u(()=>[e(`p`,Y,r(t.$t(`order.message.buyInExternalUrl`)),1)]),_:1},8,[`model-value`,`title`])}var X=O(J,[[`render`,ne]]),Z=7e3,re=2e3,Q=function(e){return e.WechatPay=`WechatPay`,e.Stripe=`Stripe`,e.AliPay=`AliPay`,e}(Q||{}),ie=f({name:`OrderPublicPay`,components:{ElButton:M,ElRow:h,ElCol:m,ElCard:ee,ElSkeleton:x,ElDivider:b,ElAlert:p,ElDescriptions:v,ElDescriptionsItem:g,ElTag:D,PublicWechatPay:U,PublicStripePay:q,PublicAlipayPay:X,CopyToClipboard:te},data(){return{PayWay:Q,OrderState:N,payWay:`WechatPay`,order:void 0,loading:!1,paying:!1,prepaying:!1}},computed:{id(){return this.$route.params?.id?.toString()??``},showPayment(){return!E()}},watch:{paying(e){e?this.startOrderPolling(re):this.stopOrderPolling()}},created(){this._orderRefreshTimer=void 0},mounted(){this.onFetchData()},beforeUnmount(){this.stopOrderPolling()},methods:{getPriceString:k,payWayLabel(e){return{WechatPay:this.$t(`order.title.wechatPay`),Stripe:this.$t(`order.title.stripe`),AliPay:this.$t(`order.title.aliPay`)}[e]||e},onFetchData(){this.id&&(this.loading=!0,C.get(this.id).then(({data:e})=>{this.order=e,e?.pay_way&&e.pay_way in Q&&(this.payWay=e.pay_way),this.loading=!1}).catch(()=>{this.order=void 0,this.loading=!1}))},startOrderPolling(e=0){this.stopOrderPolling();let t=async()=>{try{let{data:e}=await C.get(this.id);if(this.order=e,e?.state===N.PAID||e?.state===N.FINISHED||e?.state===N.FAILED||e?.state===N.EXPIRED){this.paying=!1,this.stopOrderPolling();return}}catch{}this.paying&&(this._orderRefreshTimer=window.setTimeout(t,Z))};this._orderRefreshTimer=window.setTimeout(t,e)},stopOrderPolling(){let e=this._orderRefreshTimer;e&&(clearTimeout(e),this._orderRefreshTimer=void 0)},onRepay(){this.paying=!0},onPay(){if(!this.id)return;this.prepaying=!0;let e={pay_way:this.payWay};this.payWay===`AliPay`&&(e.surface=T()),C.pay(this.id,e).then(({data:e})=>{this.prepaying=!1,e?.id&&(this.order=e),this.order&&this.order.price&&this.order.price>0&&(this.paying=!0)}).catch(()=>{this.prepaying=!1})}}}),ae={class:`title`},oe={key:0,class:`pt-5`},se={key:1,class:`pt-10 text-center`},ce={key:2,class:`order`},le={key:0,class:`price current unfree`},ue={key:1,class:`price free`},de={key:0,class:`payways mb-6`},fe={class:`payname`},pe={class:`payname`},$={class:`payname`},me={key:1},he={key:2};function ge(f,p,ee,m,h,g){let _=c(`el-col`),v=c(`el-row`),y=c(`el-skeleton`),b=c(`el-alert`),x=c(`copy-to-clipboard`),S=c(`el-descriptions-item`),C=c(`el-tag`),w=c(`el-descriptions`),T=c(`el-divider`),E=c(`el-button`),D=c(`el-card`),O=c(`public-wechat-pay`),k=c(`public-stripe-pay`),A=c(`public-alipay-pay`);return d(),o(s,null,[i(v,{class:`wrapper`},{default:u(()=>[i(_,{span:24},{default:u(()=>[i(v,null,{default:u(()=>[i(_,{span:24},{default:u(()=>[e(`h2`,ae,r(f.$t(`order.title.info`)),1)]),_:1})]),_:1}),i(v,{class:`panel`},{default:u(()=>[i(_,{span:24},{default:u(()=>[i(D,{shadow:`hover`},{default:u(()=>[i(v,null,{default:u(()=>[i(_,{xs:{span:22,offset:1},sm:{span:16,offset:4}},{default:u(()=>[f.loading?(d(),o(`div`,oe,[i(y,{animated:``})])):f.order?(d(),o(`div`,ce,[i(w,{column:1},{default:u(()=>[i(S,{label:f.$t(`order.field.id`)},{default:u(()=>[e(`span`,null,r(f.order.id),1),f.order.id?(d(),l(x,{key:0,content:f.order.id,class:`inline-block`},null,8,[`content`])):a(``,!0)]),_:1},8,[`label`]),i(S,{label:f.$t(`order.field.description`)},{default:u(()=>[n(r(f.order.description),1)]),_:1},8,[`label`]),f.order.pay_way?(d(),l(S,{key:0,label:f.$t(`order.field.payWay`)},{default:u(()=>[i(C,{type:`info`,effect:`dark`,round:``,size:`small`},{default:u(()=>[n(r(f.payWayLabel(f.order.pay_way)),1)]),_:1})]),_:1},8,[`label`])):a(``,!0),i(S,{label:f.$t(`order.field.createdAt`)},{default:u(()=>[n(r(f.$dayjs.format(f.order.created_at||``)),1)]),_:1},8,[`label`]),i(S,{label:f.$t(`order.field.price`)},{default:u(()=>[f.order.price&&f.order.price>0?(d(),o(`span`,le,r(f.getPriceString({value:f.order.price})),1)):(d(),o(`span`,ue,r(f.$t(`order.message.free`)),1))]),_:1},8,[`label`])]),_:1})])):(d(),o(`div`,se,[i(b,{title:f.$t(`order.message.publicPayNotFound`),type:`error`,"show-icon":``,closable:!1},null,8,[`title`])]))]),_:1})]),_:1}),f.order?.state===f.OrderState.PAID||f.order?.state===f.OrderState.FINISHED?(d(),l(v,{key:0,class:`mb-5`},{default:u(()=>[i(_,{xs:{span:22,offset:1},sm:{span:16,offset:4}},{default:u(()=>[i(T,{"border-style":`dashed`}),i(b,{title:f.$t(`order.message.paidSuccessfully`),type:`success`,"show-icon":``,closable:!1},null,8,[`title`])]),_:1})]),_:1})):a(``,!0),f.order?.state===f.OrderState.EXPIRED?(d(),l(v,{key:1,class:`mb-5`},{default:u(()=>[i(_,{xs:{span:22,offset:1},sm:{span:16,offset:4}},{default:u(()=>[i(T,{"border-style":`dashed`}),i(b,{title:f.$t(`order.message.orderExpired`),type:`error`,"show-icon":``,closable:!1},null,8,[`title`])]),_:1})]),_:1})):a(``,!0),f.order?.state===f.OrderState.FAILED?(d(),l(v,{key:2,class:`mb-5`},{default:u(()=>[i(_,{xs:{span:22,offset:1},sm:{span:16,offset:4}},{default:u(()=>[i(T,{"border-style":`dashed`}),i(b,{title:f.$t(`order.state.failed`),type:`error`,"show-icon":``,closable:!1},null,8,[`title`])]),_:1})]),_:1})):a(``,!0),f.order?.state===f.OrderState.PENDING&&f.showPayment?(d(),l(v,{key:3},{default:u(()=>[i(_,{xs:{span:22,offset:1},sm:{span:16,offset:4}},{default:u(()=>[i(T,{"border-style":`dashed`}),!f.order.pay_way&&f.order.price&&f.order.price>0?(d(),o(`div`,de,[e(`div`,{class:t({payway:!0,wechatpay:!0,active:f.payWay===f.PayWay.WechatPay}),onClick:p[0]||=e=>f.payWay=f.PayWay.WechatPay},[p[6]||=e(`span`,{class:`payicon wechatpay`},null,-1),e(`span`,fe,r(f.$t(`order.title.wechatPay`)),1)],2),e(`div`,{class:t({payway:!0,alipay:!0,active:f.payWay===f.PayWay.AliPay}),onClick:p[1]||=e=>f.payWay=f.PayWay.AliPay},[p[7]||=e(`span`,{class:`payicon alipay`},null,-1),e(`span`,pe,r(f.$t(`order.title.aliPay`)),1)],2),e(`div`,{class:t({payway:!0,stripe:!0,active:f.payWay===f.PayWay.Stripe}),onClick:p[2]||=e=>f.payWay=f.PayWay.Stripe},[p[8]||=e(`span`,{class:`payicon stripe`},null,-1),e(`span`,$,r(f.$t(`order.title.stripe`)),1)],2)])):a(``,!0),f.order.pay_way?(d(),o(`div`,he,[i(E,{type:`primary`,round:``,size:`large`,class:`btn-repay`,onClick:f.onRepay},{default:u(()=>[n(r(f.$t(`common.button.repay`)),1)]),_:1},8,[`onClick`])])):(d(),o(`div`,me,[i(E,{loading:f.prepaying,round:``,type:`primary`,size:`large`,class:`btn-pay`,onClick:f.onPay},{default:u(()=>[n(r(f.$t(`common.button.pay`)),1)]),_:1},8,[`loading`,`onClick`])]))]),_:1})]),_:1})):a(``,!0)]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),f.order&&f.payWay===f.PayWay.WechatPay?(d(),l(O,{key:0,order:f.order,visible:f.paying,onHide:p[3]||=e=>f.paying=!1},null,8,[`order`,`visible`])):a(``,!0),f.order&&f.payWay===f.PayWay.Stripe?(d(),l(k,{key:1,order:f.order,visible:f.paying,onHide:p[4]||=e=>f.paying=!1},null,8,[`order`,`visible`])):a(``,!0),f.order&&f.payWay===f.PayWay.AliPay?(d(),l(A,{key:2,order:f.order,visible:f.paying,onHide:p[5]||=e=>f.paying=!1},null,8,[`order`,`visible`])):a(``,!0)],64)}var _e=O(ie,[[`render`,ge],[`__scopeId`,`data-v-ffd3ba40`]]);export{_e as default};
|
|
1
|
+
import"./rolldown-runtime--c01j_DQ.js";import{A as e,Gt as t,I as n,Jt as r,L as i,M as a,N as o,T as s,at as c,j as l,mt as u,tt as d,z as f}from"./vendor-chart-Dw-P17PN.js";import{t as p}from"./alert-B3mVHMj2.js";import{t as ee}from"./card-D-4S-l7a.js";import{n as m,t as h}from"./row-hkZOEMJa.js";import{i as g,n as _,r as v,t as y}from"./wechat-CRgDcu8w.js";import{t as b}from"./divider-BNWJAaA2.js";import{t as x}from"./skeleton-CoheJz5x.js";import{$r as S,Lt as C,Vr as w,Xn as T,Yt as E,bi as D,fi as O,j as k,li as A,ni as te,qt as j,vi as M}from"./index-Cf679Gpt.js";import{t as N}from"./CopyToClipboard-DnPi7U0x.js";var P=f({name:`PublicWechatPayDialog`,components:{ElDialog:O,ElButton:D,QrCode:C,ElRow:h,ElCol:m},props:{order:{type:Object,required:!0},visible:{type:Boolean,required:!1,default:!1}},emits:[`hide`],data(){return{copied:!1,copiedTimer:void 0}},computed:{isMobileOutsideWechat(){return _()&&!y()},isMobileInsideWechat(){return _()&&y()},dialogWidth(){return this.isMobileOutsideWechat||this.isMobileInsideWechat?`90%`:`500px`}},unmounted(){this.copiedTimer&&clearTimeout(this.copiedTimer)},methods:{async onCopyLink(){let e=typeof window<`u`?window.location.href:``;if(!e)return;let t=!1;try{t=await E(e,{debug:!1})}catch{t=!1}t?(this.copied=!0,this.copiedTimer&&clearTimeout(this.copiedTimer),this.copiedTimer=window.setTimeout(()=>{this.copied=!1},2e3)):A.error(String(this.$t(`common.message.copyFailed`)||`Copy failed`))}}}),F={key:0,class:`wechat-pay-mobile text-center py-[20px] px-[10px]`},I={class:`text-[14px] mb-3 leading-relaxed`},L={class:`text-[12px] text-gray-500 mb-4 leading-relaxed`},R={key:1,class:`wechat-pay-longpress text-center py-[20px] px-[10px]`},z={class:`text-[14px] mb-4 leading-relaxed`},B={class:`paycode wechat`},V={class:`help-text block bg-[#00c800] text-white text-[14px] h-[35px] w-[240px] text-center leading-[35px] mt-[10px] mx-auto`};function H(t,s,f,p,ee,m){let h=c(`qr-code`),g=c(`el-button`),_=c(`el-col`),v=c(`el-row`),y=c(`el-dialog`);return d(),l(y,{"model-value":t.visible,title:t.$t(`application.title.buyService`),width:t.dialogWidth,center:``,onClose:s[0]||=e=>t.$emit(`hide`)},{default:u(()=>[t.isMobileOutsideWechat?(d(),o(`div`,F,[e(`p`,I,r(t.$t(`order.message.wechatPayMobileScanTip`)),1),t.order?.pay_url?(d(),l(h,{key:0,value:t.order?.pay_url,size:220,class:`qrcode m-auto mb-3`,type:`image/png`,color:{dark:`#000000`,light:`#ffffff`}},null,8,[`value`])):a(``,!0),e(`p`,L,r(t.$t(`order.message.wechatPayMobileHint`)),1),i(g,{size:`default`,round:``,class:`w-[220px]`,onClick:t.onCopyLink},{default:u(()=>[n(r(t.copied?t.$t(`common.message.copied`):t.$t(`order.button.copyPayLink`)),1)]),_:1},8,[`onClick`])])):t.isMobileInsideWechat?(d(),o(`div`,R,[e(`p`,z,r(t.$t(`order.message.wechatPayLongPressTip`)),1),t.order?.pay_url?(d(),l(h,{key:0,value:t.order?.pay_url,size:240,class:`qrcode mx-auto`,type:`image/png`,color:{dark:`#000000`,light:`#ffffff`}},null,8,[`value`])):a(``,!0)])):(d(),l(v,{key:2,class:`paycodes py-[30px] w-[500px] mx-auto`},{default:u(()=>[i(_,{span:12},{default:u(()=>[e(`div`,B,[t.order?.pay_url?(d(),l(h,{key:0,value:t.order?.pay_url,size:200,class:`qrcode m-auto w-[200px] h-[200px]`,type:`image/png`,color:{dark:`#000000`,light:`#ffffff`}},null,8,[`value`])):a(``,!0),e(`p`,V,r(t.$t(`order.message.wechatPayHelp`)),1)])]),_:1}),i(_,{span:12},{default:u(()=>[...s[1]||=[e(`div`,{class:`help-img`},[e(`img`,{src:`https://midas.gtimg.cn/enterprise/images/ep_sys_wx_tip.jpg`})],-1)]]),_:1})]),_:1}))]),_:1},8,[`model-value`,`title`,`width`])}var U=k(P,[[`render`,H]]),W=f({name:`PublicStripePayDialog`,components:{ElDialog:O},props:{order:{type:Object,required:!0},visible:{type:Boolean,required:!1,default:!1}},emits:[`hide`],watch:{visible:{handler(e){e&&this.order?.pay_url&&window.open(this.order.pay_url,`_blank`)}}}}),G={class:`text-center`};function K(t,n,i,a,o,s){let f=c(`el-dialog`);return d(),l(f,{"model-value":t.visible,title:t.$t(`application.title.buyService`),width:`500px`,center:``,onClose:n[0]||=e=>t.$emit(`hide`)},{default:u(()=>[e(`p`,G,r(t.$t(`order.message.buyInExternalUrl`)),1)]),_:1},8,[`model-value`,`title`])}var ne=k(W,[[`render`,K]]),q=f({name:`PublicAlipayPayDialog`,components:{ElDialog:O},props:{order:{type:Object,required:!0},visible:{type:Boolean,required:!1,default:!1}},emits:[`hide`],watch:{visible:{handler(e){e&&this.order?.pay_url&&window.open(this.order.pay_url,`_blank`)}}}}),J={class:`text-center`};function Y(t,n,i,a,o,s){let f=c(`el-dialog`);return d(),l(f,{"model-value":t.visible,title:t.$t(`application.title.buyService`),width:`500px`,center:``,onClose:n[0]||=e=>t.$emit(`hide`)},{default:u(()=>[e(`p`,J,r(t.$t(`order.message.buyInExternalUrl`)),1)]),_:1},8,[`model-value`,`title`])}var X=k(q,[[`render`,Y]]),Z=7e3,re=2e3,Q=function(e){return e.WechatPay=`WechatPay`,e.Stripe=`Stripe`,e.AliPay=`AliPay`,e}(Q||{}),ie=f({name:`OrderPublicPay`,components:{ElButton:D,ElRow:h,ElCol:m,ElCard:ee,ElSkeleton:x,ElDivider:b,ElAlert:p,ElDescriptions:v,ElDescriptionsItem:g,ElTag:M,PublicWechatPay:U,PublicStripePay:ne,PublicAlipayPay:X,CopyToClipboard:N},data(){return{PayWay:Q,OrderState:w,payWay:`WechatPay`,order:void 0,loading:!1,paying:!1,prepaying:!1}},computed:{id(){return this.$route.params?.id?.toString()??``},showPayment(){return!te()}},watch:{paying(e){e?this.startOrderPolling(re):this.stopOrderPolling()}},created(){this._orderRefreshTimer=void 0},mounted(){this.onFetchData()},beforeUnmount(){this.stopOrderPolling()},methods:{getPriceString:j,payWayLabel(e){return{WechatPay:this.$t(`order.title.wechatPay`),Stripe:this.$t(`order.title.stripe`),AliPay:this.$t(`order.title.aliPay`)}[e]||e},onFetchData(){this.id&&(this.loading=!0,T.get(this.id).then(({data:e})=>{this.order=e,e?.pay_way&&e.pay_way in Q&&(this.payWay=e.pay_way),this.loading=!1}).catch(()=>{this.order=void 0,this.loading=!1}))},startOrderPolling(e=0){this.stopOrderPolling();let t=async()=>{try{let{data:e}=await T.get(this.id);if(this.order=e,e?.state===w.PAID||e?.state===w.FINISHED||e?.state===w.FAILED||e?.state===w.EXPIRED){this.paying=!1,this.stopOrderPolling();return}}catch{}this.paying&&(this._orderRefreshTimer=window.setTimeout(t,Z))};this._orderRefreshTimer=window.setTimeout(t,e)},stopOrderPolling(){let e=this._orderRefreshTimer;e&&(clearTimeout(e),this._orderRefreshTimer=void 0)},onRepay(){this.paying=!0},onPay(){if(!this.id)return;this.prepaying=!0;let e={pay_way:this.payWay};this.payWay===`AliPay`&&(e.surface=S()),T.pay(this.id,e).then(({data:e})=>{this.prepaying=!1,e?.id&&(this.order=e),this.order&&this.order.price&&this.order.price>0&&(this.paying=!0)}).catch(()=>{this.prepaying=!1})}}}),ae={class:`title`},oe={key:0,class:`pt-5`},se={key:1,class:`pt-10 text-center`},ce={key:2,class:`order`},le={key:0,class:`price current unfree`},ue={key:1,class:`price free`},de={key:0,class:`payways mb-6`},fe={class:`payname`},pe={class:`payname`},$={class:`payname`},me={key:1},he={key:2};function ge(f,p,ee,m,h,g){let _=c(`el-col`),v=c(`el-row`),y=c(`el-skeleton`),b=c(`el-alert`),x=c(`copy-to-clipboard`),S=c(`el-descriptions-item`),C=c(`el-tag`),w=c(`el-descriptions`),T=c(`el-divider`),E=c(`el-button`),D=c(`el-card`),O=c(`public-wechat-pay`),k=c(`public-stripe-pay`),A=c(`public-alipay-pay`);return d(),o(s,null,[i(v,{class:`wrapper`},{default:u(()=>[i(_,{span:24},{default:u(()=>[i(v,null,{default:u(()=>[i(_,{span:24},{default:u(()=>[e(`h2`,ae,r(f.$t(`order.title.info`)),1)]),_:1})]),_:1}),i(v,{class:`panel`},{default:u(()=>[i(_,{span:24},{default:u(()=>[i(D,{shadow:`hover`},{default:u(()=>[i(v,null,{default:u(()=>[i(_,{xs:{span:22,offset:1},sm:{span:16,offset:4}},{default:u(()=>[f.loading?(d(),o(`div`,oe,[i(y,{animated:``})])):f.order?(d(),o(`div`,ce,[i(w,{column:1},{default:u(()=>[i(S,{label:f.$t(`order.field.id`)},{default:u(()=>[e(`span`,null,r(f.order.id),1),f.order.id?(d(),l(x,{key:0,content:f.order.id,class:`inline-block`},null,8,[`content`])):a(``,!0)]),_:1},8,[`label`]),i(S,{label:f.$t(`order.field.description`)},{default:u(()=>[n(r(f.order.description),1)]),_:1},8,[`label`]),f.order.pay_way?(d(),l(S,{key:0,label:f.$t(`order.field.payWay`)},{default:u(()=>[i(C,{type:`info`,effect:`dark`,round:``,size:`small`},{default:u(()=>[n(r(f.payWayLabel(f.order.pay_way)),1)]),_:1})]),_:1},8,[`label`])):a(``,!0),i(S,{label:f.$t(`order.field.createdAt`)},{default:u(()=>[n(r(f.$dayjs.format(f.order.created_at||``)),1)]),_:1},8,[`label`]),i(S,{label:f.$t(`order.field.price`)},{default:u(()=>[f.order.price&&f.order.price>0?(d(),o(`span`,le,r(f.getPriceString({value:f.order.price})),1)):(d(),o(`span`,ue,r(f.$t(`order.message.free`)),1))]),_:1},8,[`label`])]),_:1})])):(d(),o(`div`,se,[i(b,{title:f.$t(`order.message.publicPayNotFound`),type:`error`,"show-icon":``,closable:!1},null,8,[`title`])]))]),_:1})]),_:1}),f.order?.state===f.OrderState.PAID||f.order?.state===f.OrderState.FINISHED?(d(),l(v,{key:0,class:`mb-5`},{default:u(()=>[i(_,{xs:{span:22,offset:1},sm:{span:16,offset:4}},{default:u(()=>[i(T,{"border-style":`dashed`}),i(b,{title:f.$t(`order.message.paidSuccessfully`),type:`success`,"show-icon":``,closable:!1},null,8,[`title`])]),_:1})]),_:1})):a(``,!0),f.order?.state===f.OrderState.EXPIRED?(d(),l(v,{key:1,class:`mb-5`},{default:u(()=>[i(_,{xs:{span:22,offset:1},sm:{span:16,offset:4}},{default:u(()=>[i(T,{"border-style":`dashed`}),i(b,{title:f.$t(`order.message.orderExpired`),type:`error`,"show-icon":``,closable:!1},null,8,[`title`])]),_:1})]),_:1})):a(``,!0),f.order?.state===f.OrderState.FAILED?(d(),l(v,{key:2,class:`mb-5`},{default:u(()=>[i(_,{xs:{span:22,offset:1},sm:{span:16,offset:4}},{default:u(()=>[i(T,{"border-style":`dashed`}),i(b,{title:f.$t(`order.state.failed`),type:`error`,"show-icon":``,closable:!1},null,8,[`title`])]),_:1})]),_:1})):a(``,!0),f.order?.state===f.OrderState.PENDING&&f.showPayment?(d(),l(v,{key:3},{default:u(()=>[i(_,{xs:{span:22,offset:1},sm:{span:16,offset:4}},{default:u(()=>[i(T,{"border-style":`dashed`}),!f.order.pay_way&&f.order.price&&f.order.price>0?(d(),o(`div`,de,[e(`div`,{class:t({payway:!0,wechatpay:!0,active:f.payWay===f.PayWay.WechatPay}),onClick:p[0]||=e=>f.payWay=f.PayWay.WechatPay},[p[6]||=e(`span`,{class:`payicon wechatpay`},null,-1),e(`span`,fe,r(f.$t(`order.title.wechatPay`)),1)],2),e(`div`,{class:t({payway:!0,alipay:!0,active:f.payWay===f.PayWay.AliPay}),onClick:p[1]||=e=>f.payWay=f.PayWay.AliPay},[p[7]||=e(`span`,{class:`payicon alipay`},null,-1),e(`span`,pe,r(f.$t(`order.title.aliPay`)),1)],2),e(`div`,{class:t({payway:!0,stripe:!0,active:f.payWay===f.PayWay.Stripe}),onClick:p[2]||=e=>f.payWay=f.PayWay.Stripe},[p[8]||=e(`span`,{class:`payicon stripe`},null,-1),e(`span`,$,r(f.$t(`order.title.stripe`)),1)],2)])):a(``,!0),f.order.pay_way?(d(),o(`div`,he,[i(E,{type:`primary`,round:``,size:`large`,class:`btn-repay`,onClick:f.onRepay},{default:u(()=>[n(r(f.$t(`common.button.repay`)),1)]),_:1},8,[`onClick`])])):(d(),o(`div`,me,[i(E,{loading:f.prepaying,round:``,type:`primary`,size:`large`,class:`btn-pay`,onClick:f.onPay},{default:u(()=>[n(r(f.$t(`common.button.pay`)),1)]),_:1},8,[`loading`,`onClick`])]))]),_:1})]),_:1})):a(``,!0)]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),f.order&&f.payWay===f.PayWay.WechatPay?(d(),l(O,{key:0,order:f.order,visible:f.paying,onHide:p[3]||=e=>f.paying=!1},null,8,[`order`,`visible`])):a(``,!0),f.order&&f.payWay===f.PayWay.Stripe?(d(),l(k,{key:1,order:f.order,visible:f.paying,onHide:p[4]||=e=>f.paying=!1},null,8,[`order`,`visible`])):a(``,!0),f.order&&f.payWay===f.PayWay.AliPay?(d(),l(A,{key:2,order:f.order,visible:f.paying,onHide:p[5]||=e=>f.paying=!1},null,8,[`order`,`visible`])):a(``,!0)],64)}var _e=k(ie,[[`render`,ge],[`__scopeId`,`data-v-ffd3ba40`]]);export{_e as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime--c01j_DQ.js";import{A as t,Gt as n,Jt as r,L as i,M as a,Mt as o,N as s,U as c,Y as l,ft as u,j as d,k as f,mt as p,nt as m,st as h,tt as g,yt as _,z as v}from"./vendor-chart-Dw-P17PN.js";import{t as y}from"./popover-DUe7QJxx.js";import{t as b}from"./slider-BeU_beX5.js";import{Jr as x}from"./index-CqcdcBvt.js";function S(e){let t=Math.floor(e)%60;e=Math.floor(e/60);let n=e%60,r=n<10?`0${n}`:n,i=t<10?`0${t}`:t;return r+`:`+i}var C=e(((e,t)=>{(function(t,n){typeof define==`function`&&define.amd?define([],n):e===void 0?(n(),t.FileSaver={exports:{}}.exports):n()})(e,function(){function e(e,t){return t===void 0?t={autoBom:!1}:typeof t!=`object`&&(console.warn(`Deprecated: Expected third argument to be a object`),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function n(e,t,n){var r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){s(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function r(e){var t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return 200<=t.status&&299>=t.status}function i(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{var t=document.createEvent(`MouseEvents`);t.initMouseEvent(`click`,!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var a=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:void 0,o=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),s=a.saveAs||(typeof window!=`object`||window!==a?function(){}:`download`in HTMLAnchorElement.prototype&&!o?function(e,t,o){var s=a.URL||a.webkitURL,c=document.createElement(`a`);t=t||e.name||`download`,c.download=t,c.rel=`noopener`,typeof e==`string`?(c.href=e,c.origin===location.origin?i(c):r(c.href)?n(e,t,o):i(c,c.target=`_blank`)):(c.href=s.createObjectURL(e),setTimeout(function(){s.revokeObjectURL(c.href)},4e4),setTimeout(function(){i(c)},0))}:`msSaveOrOpenBlob`in navigator?function(t,a,o){if(a=a||t.name||`download`,typeof t!=`string`)navigator.msSaveOrOpenBlob(e(t,o),a);else if(r(t))n(t,a,o);else{var s=document.createElement(`a`);s.href=t,s.target=`_blank`,setTimeout(function(){i(s)})}}:function(e,t,r,i){if(i||=open(``,`_blank`),i&&(i.document.title=i.document.body.innerText=`downloading...`),typeof e==`string`)return n(e,t,r);var s=e.type===`application/octet-stream`,c=/constructor/i.test(a.HTMLElement)||a.safari,l=/CriOS\/[\d]+/.test(navigator.userAgent);if((l||s&&c||o)&&typeof FileReader<`u`){var u=new FileReader;u.onloadend=function(){var e=u.result;e=l?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),i?i.location.href=e:location=e,i=null},u.readAsDataURL(e)}else{var d=a.URL||a.webkitURL,f=d.createObjectURL(e);i?i.location=f:location.href=f,i=null,setTimeout(function(){d.revokeObjectURL(f)},4e4)}});a.saveAs=s.saveAs=s,t!==void 0&&(t.exports=s)})})),w=Symbol(`AudioNamespace`),T=Symbol(`AudioQueue`),E=()=>{let e=c(w);if(!e)throw Error(`[player] useAudioNamespace() must be called inside <Player namespace="suno|producer">`);return e},D=e=>{let t=e??E(),n=x(),r=f({get:()=>n.state[t].audio,set:e=>n.commit(`${t}/setAudio`,e)}),i=e=>{n.commit(`${t}/setAudio`,{...n.state[t].audio,...e})},a=e=>{n.dispatch(`${t}/setAudio`,{...n.state[t].audio,...e})},o=e=>f({get:()=>n.state[t].audio?.[e],set:t=>i({[e]:t})}),s=c(T,void 0),l=f(()=>{let e=s?.value;if(e&&e.length)return e;let r=n.state[t]?.tasks?.items??[],i=[];for(let e of r)for(let t of e?.response?.data??[])t?.audio_url&&i.push(t);return i}),u=f(()=>{let e=n.state[t].audio?.id;return l.value.findIndex(t=>t.id===e)});return{namespace:t,store:n,audio:r,field:o,patchAudio:i,dispatchAudio:a,tracks:l,currentIndex:u,playAdjacent:e=>{let r=u.value;if(r===-1)return;let i=l.value[r+e];i&&n.dispatch(`${t}/setAudio`,{...n.state[t].audio,...i,progress:0,state:`playing`})}}},O={class:`player-slider`},k=v({__name:`PlayerSlider`,setup(e){let{field:t,dispatchAudio:n}=D(),r=t(`progress`),a=t(`duration`),c=()=>{},l=e=>n({progress:Array.isArray(e)?e[0]:e});return(e,t)=>(g(),s(`div`,O,[i(o(b),{modelValue:o(r),"onUpdate:modelValue":t[0]||=e=>_(r)?r.value=e:null,"show-tooltip":!1,min:0,max:o(a),onChange:l,onInput:c},null,8,[`modelValue`,`max`])]))}}),A={class:`flex player-song`},j=[`src`],M={class:`ml-2 text-xs flex flex-col justify-between`},N={class:`w-52 2xl:w-96 cursor-pointer truncate`},P={class:`flex`},F={class:`ml-2 text-dc`},I=v({__name:`PlayerSong`,setup(e){let{audio:n,patchAudio:i}=D(),a=null,c=null,d=()=>{if(a){try{a.pause()}catch{}a.src=``,a=null}c&&=(c.abort(),null)};return u(n,(e,t)=>{if(e?.audio_url!==t?.audio_url){if(d(),!e?.audio_url)return;let t=new Audio(e.audio_url);a=t,c=new AbortController;let{signal:n}=c;e.state===`playing`?t.play().catch(()=>{}):t.pause(),t.addEventListener(`loadedmetadata`,()=>{t.currentTime=0},{signal:n}),t.addEventListener(`timeupdate`,()=>{i({progress:t.currentTime})},{signal:n}),i({object:t})}else e?.progress!==t?.progress&&e?.object&&Math.abs(e.progress-e.object.currentTime)>2?e.object.currentTime=e.progress:e?.state!==t?.state&&e?.object&&(e.state===`playing`?e.object.play().catch(()=>{}):e.object.pause());e?.volume!==t?.volume&&e?.object&&(e.object.volume=e.volume/100)}),l(d),(e,i)=>(g(),s(`div`,A,[t(`img`,{alt:``,class:`w-11 h-11 rounded`,src:o(n)?.image_url||o(`/assets/disk-XFRmVAfp.png`)},null,8,j),t(`div`,M,[t(`div`,N,[t(`div`,P,[t(`span`,null,r(o(n)?.title||`Music`),1),t(`span`,F,`- `+r(o(n)?.style||`SmallRuralDog`),1)])])])]))}}),L={class:`flex justify-end items-center gap-x-2.5`},R={class:`text-xs`},z=v({__name:`PlayerAction`,setup(e){let{field:n}=D(),i=n(`progress`),a=n(`duration`);return(e,n)=>(g(),s(`div`,L,[t(`span`,R,r(o(S)(o(i)))+` / `+r(o(S)(o(a))),1)]))}}),B={size:`1em`,strokeWidth:4,strokeLinecap:`round`,strokeLinejoin:`round`,rtl:!1,theme:`outline`,colors:{outline:{fill:`#333`,background:`transparent`},filled:{fill:`#333`,background:`#FFF`},twoTone:{fill:`#333`,twoTone:`#2F88FF`},multiColor:{outStrokeColor:`#333`,outFillColor:`#2F88FF`,innerStrokeColor:`#FFF`,innerFillColor:`#43CCF8`}},prefix:`i`};function V(){return`icon-`+((1+Math.random())*4294967296|0).toString(16).substring(1)}function H(e,t,n){var r=typeof t.fill==`string`?[t.fill]:t.fill||[],i=[];switch(t.theme||n.theme){case`outline`:i.push(typeof r[0]==`string`?r[0]:`currentColor`),i.push(`none`),i.push(typeof r[0]==`string`?r[0]:`currentColor`),i.push(`none`);break;case`filled`:i.push(typeof r[0]==`string`?r[0]:`currentColor`),i.push(typeof r[0]==`string`?r[0]:`currentColor`),i.push(`#FFF`),i.push(`#FFF`);break;case`two-tone`:i.push(typeof r[0]==`string`?r[0]:`currentColor`),i.push(typeof r[1]==`string`?r[1]:n.colors.twoTone.twoTone),i.push(typeof r[0]==`string`?r[0]:`currentColor`),i.push(typeof r[1]==`string`?r[1]:n.colors.twoTone.twoTone);break;case`multi-color`:i.push(typeof r[0]==`string`?r[0]:`currentColor`),i.push(typeof r[1]==`string`?r[1]:n.colors.multiColor.outFillColor),i.push(typeof r[2]==`string`?r[2]:n.colors.multiColor.innerStrokeColor),i.push(typeof r[3]==`string`?r[3]:n.colors.multiColor.innerFillColor);break}return{size:t.size||n.size,strokeWidth:t.strokeWidth||n.strokeWidth,strokeLinecap:t.strokeLinecap||n.strokeLinecap,strokeLinejoin:t.strokeLinejoin||n.strokeLinejoin,colors:i,id:e}}var ee=Symbol(`icon-context`);function U(e,t,n){return{name:`icon-`+e,props:[`size`,`strokeWidth`,`strokeLinecap`,`strokeLinejoin`,`theme`,`fill`,`spin`],setup:function(r){var a=V(),o=c(ee,B);return function(){var s=r.size,c=r.strokeWidth,l=r.strokeLinecap,u=r.strokeLinejoin,d=r.theme,f=r.fill,p=r.spin,m=H(a,{size:s,strokeWidth:c,strokeLinecap:l,strokeLinejoin:u,theme:d,fill:f},o),h=[o.prefix+`-icon`];return h.push(o.prefix+`-icon-`+e),t&&o.rtl&&h.push(o.prefix+`-icon-rtl`),p&&h.push(o.prefix+`-icon-spin`),i(`span`,{class:h.join(` `)},[n(m)])}}}}var W=U(`go-end`,!0,function(e){return i(`svg`,{width:e.size,height:e.size,viewBox:`0 0 48 48`,fill:`none`},[i(`path`,{d:`M14 12L26 24L14 36`,stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null),i(`path`,{d:`M34 12V36`,stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null)])}),G=U(`go-start`,!0,function(e){return i(`svg`,{width:e.size,height:e.size,viewBox:`0 0 48 48`,fill:`none`},[i(`path`,{d:`M34 36L22 24L34 12`,stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null),i(`path`,{d:`M14 12V36`,stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null)])}),K=U(`pause-one`,!1,function(e){return i(`svg`,{width:e.size,height:e.size,viewBox:`0 0 48 48`,fill:`none`},[i(`path`,{d:`M24 44C35.0457 44 44 35.0457 44 24C44 12.9543 35.0457 4 24 4C12.9543 4 4 12.9543 4 24C4 35.0457 12.9543 44 24 44Z`,fill:e.colors[1],stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linejoin":e.strokeLinejoin},null),i(`path`,{d:`M19 18V30`,stroke:e.colors[2],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null),i(`path`,{d:`M29 18V30`,stroke:e.colors[2],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null)])}),q=U(`play`,!0,function(e){return i(`svg`,{width:e.size,height:e.size,viewBox:`0 0 48 48`,fill:`none`},[i(`path`,{d:`M24 44C35.0457 44 44 35.0457 44 24C44 12.9543 35.0457 4 24 4C12.9543 4 4 12.9543 4 24C4 35.0457 12.9543 44 24 44Z`,fill:e.colors[1],stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linejoin":e.strokeLinejoin},null),i(`path`,{d:`M20 24V17.0718L26 20.5359L32 24L26 27.4641L20 30.9282V24Z`,fill:e.colors[3],stroke:e.colors[2],"stroke-width":e.strokeWidth,"stroke-linejoin":e.strokeLinejoin},null)])}),J=U(`volume-small`,!0,function(e){return i(`svg`,{width:e.size,height:e.size,viewBox:`0 0 48 48`,fill:`none`},[i(`path`,{d:`M24 6V42C17 42 11.7985 32.8391 11.7985 32.8391H6C4.89543 32.8391 4 31.9437 4 30.8391V17.0108C4 15.9062 4.89543 15.0108 6 15.0108H11.7985C11.7985 15.0108 17 6 24 6Z`,fill:e.colors[1],stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linejoin":e.strokeLinejoin},null),i(`path`,{d:`M32 15L32 15C32.6232 15.5565 33.1881 16.1797 33.6841 16.8588C35.1387 18.8504 36 21.3223 36 24C36 26.6545 35.1535 29.1067 33.7218 31.0893C33.2168 31.7885 32.6391 32.4293 32 33`,stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null)])}),Y=v({__name:`IconPark`,props:{icon:{type:[Object,Function]},theme:{},size:{},spin:{type:Boolean},fill:{},strokeLinecap:{},strokeLinejoin:{},strokeWidth:{}},setup(e){return(t,n)=>(g(),d(h(e.icon),{theme:e.theme,size:e.size,spin:e.spin,fill:e.fill,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin,"stroke-width":e.strokeWidth},null,8,[`theme`,`size`,`spin`,`fill`,`stroke-linecap`,`stroke-linejoin`,`stroke-width`]))}}),X={class:`player-volume flex flex-col items-center pt-2`},Z={class:`text-sm mt-3`},Q=v({__name:`PlayerVolumeSlider`,setup(e){let{namespace:n,store:a,field:c}=D(),l=c(`volume`),u=c(`muted`),d=e=>a.dispatch(`${n}/setVolume`,Array.isArray(e)?e[0]:e);return(e,n)=>(g(),s(`div`,X,[i(o(b),{modelValue:o(l),"onUpdate:modelValue":n[0]||=e=>_(l)?l.value=e:null,vertical:``,height:`100px`,"show-tooltip":!1,max:100,min:0,size:`small`,disabled:o(u),onInput:d},null,8,[`modelValue`,`disabled`]),t(`div`,Z,r(o(l)),1)]))}}),$={class:`flex items-center justify-center gap-x-3`},te=v({__name:`PlayerController`,setup(e){let{audio:t,dispatchAudio:r,tracks:c,currentIndex:l,playAdjacent:u}=D(),m=f(()=>c.value.length>1),h=f(()=>l.value>0),_=f(()=>l.value!==-1&&l.value<c.value.length-1),v=()=>r({state:t.value?.state===`playing`?`paused`:`playing`});return(e,r)=>(g(),s(`div`,$,[m.value?(g(),d(Y,{key:0,icon:o(G),size:`22`,theme:`filled`,class:n([`cursor-pointer transition-opacity`,h.value?`text-[var(--el-text-color-regular)]`:`opacity-30 cursor-not-allowed`]),onClick:r[0]||=e=>h.value&&o(u)(-1)},null,8,[`icon`,`class`])):a(``,!0),i(Y,{icon:o(t)?.state===`playing`?o(K):o(q),size:`45`,theme:`filled`,class:`text-[var(--el-color-primary)] cursor-pointer`,onClick:v},null,8,[`icon`]),m.value?(g(),d(Y,{key:1,icon:o(W),size:`22`,theme:`filled`,class:n([`cursor-pointer transition-opacity`,_.value?`text-[var(--el-text-color-regular)]`:`opacity-30 cursor-not-allowed`]),onClick:r[1]||=e=>_.value&&o(u)(1)},null,8,[`icon`,`class`])):a(``,!0),i(o(y),{placement:`top`,width:`50px`,trigger:`click`},{reference:p(()=>[i(Y,{icon:o(J),size:`20`,"stroke-width":2,class:`cursor-pointer`},null,8,[`icon`])]),default:p(()=>[i(Q)]),_:1})]))}}),ne={class:`flex flex-col items-stretch h-20`},re={class:`flex grow px-5 items-center`},ie={class:`flex-1`},ae={class:`flex-1`},oe={class:`flex-1`},se=v({__name:`Player`,props:{namespace:{},tracks:{}},setup(e){let n=e;return m(w,n.namespace),m(T,f(()=>n.tracks??[])),(e,n)=>(g(),s(`div`,ne,[i(k),t(`div`,re,[t(`div`,ie,[i(I)]),t(`div`,ae,[i(te)]),t(`div`,oe,[i(z)])])]))}});export{C as n,S as r,se as t};
|
|
1
|
+
import{t as e}from"./rolldown-runtime--c01j_DQ.js";import{A as t,Gt as n,Jt as r,L as i,M as a,Mt as o,N as s,U as c,Y as l,ft as u,j as d,k as f,mt as p,nt as m,st as h,tt as g,yt as _,z as v}from"./vendor-chart-Dw-P17PN.js";import{t as y}from"./popover--9beFUea.js";import{t as b}from"./slider-DMBNcoEA.js";import{Xr as x}from"./index-Cf679Gpt.js";function S(e){let t=Math.floor(e)%60;e=Math.floor(e/60);let n=e%60,r=n<10?`0${n}`:n,i=t<10?`0${t}`:t;return r+`:`+i}var C=e(((e,t)=>{(function(t,n){typeof define==`function`&&define.amd?define([],n):e===void 0?(n(),t.FileSaver={exports:{}}.exports):n()})(e,function(){function e(e,t){return t===void 0?t={autoBom:!1}:typeof t!=`object`&&(console.warn(`Deprecated: Expected third argument to be a object`),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function n(e,t,n){var r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){s(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function r(e){var t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return 200<=t.status&&299>=t.status}function i(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{var t=document.createEvent(`MouseEvents`);t.initMouseEvent(`click`,!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var a=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:void 0,o=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),s=a.saveAs||(typeof window!=`object`||window!==a?function(){}:`download`in HTMLAnchorElement.prototype&&!o?function(e,t,o){var s=a.URL||a.webkitURL,c=document.createElement(`a`);t=t||e.name||`download`,c.download=t,c.rel=`noopener`,typeof e==`string`?(c.href=e,c.origin===location.origin?i(c):r(c.href)?n(e,t,o):i(c,c.target=`_blank`)):(c.href=s.createObjectURL(e),setTimeout(function(){s.revokeObjectURL(c.href)},4e4),setTimeout(function(){i(c)},0))}:`msSaveOrOpenBlob`in navigator?function(t,a,o){if(a=a||t.name||`download`,typeof t!=`string`)navigator.msSaveOrOpenBlob(e(t,o),a);else if(r(t))n(t,a,o);else{var s=document.createElement(`a`);s.href=t,s.target=`_blank`,setTimeout(function(){i(s)})}}:function(e,t,r,i){if(i||=open(``,`_blank`),i&&(i.document.title=i.document.body.innerText=`downloading...`),typeof e==`string`)return n(e,t,r);var s=e.type===`application/octet-stream`,c=/constructor/i.test(a.HTMLElement)||a.safari,l=/CriOS\/[\d]+/.test(navigator.userAgent);if((l||s&&c||o)&&typeof FileReader<`u`){var u=new FileReader;u.onloadend=function(){var e=u.result;e=l?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),i?i.location.href=e:location=e,i=null},u.readAsDataURL(e)}else{var d=a.URL||a.webkitURL,f=d.createObjectURL(e);i?i.location=f:location.href=f,i=null,setTimeout(function(){d.revokeObjectURL(f)},4e4)}});a.saveAs=s.saveAs=s,t!==void 0&&(t.exports=s)})})),w=Symbol(`AudioNamespace`),T=Symbol(`AudioQueue`),E=()=>{let e=c(w);if(!e)throw Error(`[player] useAudioNamespace() must be called inside <Player namespace="suno|producer">`);return e},D=e=>{let t=e??E(),n=x(),r=f({get:()=>n.state[t].audio,set:e=>n.commit(`${t}/setAudio`,e)}),i=e=>{n.commit(`${t}/setAudio`,{...n.state[t].audio,...e})},a=e=>{n.dispatch(`${t}/setAudio`,{...n.state[t].audio,...e})},o=e=>f({get:()=>n.state[t].audio?.[e],set:t=>i({[e]:t})}),s=c(T,void 0),l=f(()=>{let e=s?.value;if(e&&e.length)return e;let r=n.state[t]?.tasks?.items??[],i=[];for(let e of r)for(let t of e?.response?.data??[])t?.audio_url&&i.push(t);return i}),u=f(()=>{let e=n.state[t].audio?.id;return l.value.findIndex(t=>t.id===e)});return{namespace:t,store:n,audio:r,field:o,patchAudio:i,dispatchAudio:a,tracks:l,currentIndex:u,playAdjacent:e=>{let r=u.value;if(r===-1)return;let i=l.value[r+e];i&&n.dispatch(`${t}/setAudio`,{...n.state[t].audio,...i,progress:0,state:`playing`})}}},O={class:`player-slider`},k=v({__name:`PlayerSlider`,setup(e){let{field:t,dispatchAudio:n}=D(),r=t(`progress`),a=t(`duration`),c=()=>{},l=e=>n({progress:Array.isArray(e)?e[0]:e});return(e,t)=>(g(),s(`div`,O,[i(o(b),{modelValue:o(r),"onUpdate:modelValue":t[0]||=e=>_(r)?r.value=e:null,"show-tooltip":!1,min:0,max:o(a),onChange:l,onInput:c},null,8,[`modelValue`,`max`])]))}}),A={class:`flex player-song`},j=[`src`],M={class:`ml-2 text-xs flex flex-col justify-between`},N={class:`w-52 2xl:w-96 cursor-pointer truncate`},P={class:`flex`},F={class:`ml-2 text-dc`},I=v({__name:`PlayerSong`,setup(e){let{audio:n,patchAudio:i}=D(),a=null,c=null,d=()=>{if(a){try{a.pause()}catch{}a.src=``,a=null}c&&=(c.abort(),null)};return u(n,(e,t)=>{if(e?.audio_url!==t?.audio_url){if(d(),!e?.audio_url)return;let t=new Audio(e.audio_url);a=t,c=new AbortController;let{signal:n}=c;e.state===`playing`?t.play().catch(()=>{}):t.pause(),t.addEventListener(`loadedmetadata`,()=>{t.currentTime=0},{signal:n}),t.addEventListener(`timeupdate`,()=>{i({progress:t.currentTime})},{signal:n}),i({object:t})}else e?.progress!==t?.progress&&e?.object&&Math.abs(e.progress-e.object.currentTime)>2?e.object.currentTime=e.progress:e?.state!==t?.state&&e?.object&&(e.state===`playing`?e.object.play().catch(()=>{}):e.object.pause());e?.volume!==t?.volume&&e?.object&&(e.object.volume=e.volume/100)}),l(d),(e,i)=>(g(),s(`div`,A,[t(`img`,{alt:``,class:`w-11 h-11 rounded`,src:o(n)?.image_url||o(`/assets/disk-XFRmVAfp.png`)},null,8,j),t(`div`,M,[t(`div`,N,[t(`div`,P,[t(`span`,null,r(o(n)?.title||`Music`),1),t(`span`,F,`- `+r(o(n)?.style||`SmallRuralDog`),1)])])])]))}}),L={class:`flex justify-end items-center gap-x-2.5`},R={class:`text-xs`},z=v({__name:`PlayerAction`,setup(e){let{field:n}=D(),i=n(`progress`),a=n(`duration`);return(e,n)=>(g(),s(`div`,L,[t(`span`,R,r(o(S)(o(i)))+` / `+r(o(S)(o(a))),1)]))}}),B={size:`1em`,strokeWidth:4,strokeLinecap:`round`,strokeLinejoin:`round`,rtl:!1,theme:`outline`,colors:{outline:{fill:`#333`,background:`transparent`},filled:{fill:`#333`,background:`#FFF`},twoTone:{fill:`#333`,twoTone:`#2F88FF`},multiColor:{outStrokeColor:`#333`,outFillColor:`#2F88FF`,innerStrokeColor:`#FFF`,innerFillColor:`#43CCF8`}},prefix:`i`};function V(){return`icon-`+((1+Math.random())*4294967296|0).toString(16).substring(1)}function H(e,t,n){var r=typeof t.fill==`string`?[t.fill]:t.fill||[],i=[];switch(t.theme||n.theme){case`outline`:i.push(typeof r[0]==`string`?r[0]:`currentColor`),i.push(`none`),i.push(typeof r[0]==`string`?r[0]:`currentColor`),i.push(`none`);break;case`filled`:i.push(typeof r[0]==`string`?r[0]:`currentColor`),i.push(typeof r[0]==`string`?r[0]:`currentColor`),i.push(`#FFF`),i.push(`#FFF`);break;case`two-tone`:i.push(typeof r[0]==`string`?r[0]:`currentColor`),i.push(typeof r[1]==`string`?r[1]:n.colors.twoTone.twoTone),i.push(typeof r[0]==`string`?r[0]:`currentColor`),i.push(typeof r[1]==`string`?r[1]:n.colors.twoTone.twoTone);break;case`multi-color`:i.push(typeof r[0]==`string`?r[0]:`currentColor`),i.push(typeof r[1]==`string`?r[1]:n.colors.multiColor.outFillColor),i.push(typeof r[2]==`string`?r[2]:n.colors.multiColor.innerStrokeColor),i.push(typeof r[3]==`string`?r[3]:n.colors.multiColor.innerFillColor);break}return{size:t.size||n.size,strokeWidth:t.strokeWidth||n.strokeWidth,strokeLinecap:t.strokeLinecap||n.strokeLinecap,strokeLinejoin:t.strokeLinejoin||n.strokeLinejoin,colors:i,id:e}}var ee=Symbol(`icon-context`);function U(e,t,n){return{name:`icon-`+e,props:[`size`,`strokeWidth`,`strokeLinecap`,`strokeLinejoin`,`theme`,`fill`,`spin`],setup:function(r){var a=V(),o=c(ee,B);return function(){var s=r.size,c=r.strokeWidth,l=r.strokeLinecap,u=r.strokeLinejoin,d=r.theme,f=r.fill,p=r.spin,m=H(a,{size:s,strokeWidth:c,strokeLinecap:l,strokeLinejoin:u,theme:d,fill:f},o),h=[o.prefix+`-icon`];return h.push(o.prefix+`-icon-`+e),t&&o.rtl&&h.push(o.prefix+`-icon-rtl`),p&&h.push(o.prefix+`-icon-spin`),i(`span`,{class:h.join(` `)},[n(m)])}}}}var W=U(`go-end`,!0,function(e){return i(`svg`,{width:e.size,height:e.size,viewBox:`0 0 48 48`,fill:`none`},[i(`path`,{d:`M14 12L26 24L14 36`,stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null),i(`path`,{d:`M34 12V36`,stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null)])}),G=U(`go-start`,!0,function(e){return i(`svg`,{width:e.size,height:e.size,viewBox:`0 0 48 48`,fill:`none`},[i(`path`,{d:`M34 36L22 24L34 12`,stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null),i(`path`,{d:`M14 12V36`,stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null)])}),K=U(`pause-one`,!1,function(e){return i(`svg`,{width:e.size,height:e.size,viewBox:`0 0 48 48`,fill:`none`},[i(`path`,{d:`M24 44C35.0457 44 44 35.0457 44 24C44 12.9543 35.0457 4 24 4C12.9543 4 4 12.9543 4 24C4 35.0457 12.9543 44 24 44Z`,fill:e.colors[1],stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linejoin":e.strokeLinejoin},null),i(`path`,{d:`M19 18V30`,stroke:e.colors[2],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null),i(`path`,{d:`M29 18V30`,stroke:e.colors[2],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null)])}),q=U(`play`,!0,function(e){return i(`svg`,{width:e.size,height:e.size,viewBox:`0 0 48 48`,fill:`none`},[i(`path`,{d:`M24 44C35.0457 44 44 35.0457 44 24C44 12.9543 35.0457 4 24 4C12.9543 4 4 12.9543 4 24C4 35.0457 12.9543 44 24 44Z`,fill:e.colors[1],stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linejoin":e.strokeLinejoin},null),i(`path`,{d:`M20 24V17.0718L26 20.5359L32 24L26 27.4641L20 30.9282V24Z`,fill:e.colors[3],stroke:e.colors[2],"stroke-width":e.strokeWidth,"stroke-linejoin":e.strokeLinejoin},null)])}),J=U(`volume-small`,!0,function(e){return i(`svg`,{width:e.size,height:e.size,viewBox:`0 0 48 48`,fill:`none`},[i(`path`,{d:`M24 6V42C17 42 11.7985 32.8391 11.7985 32.8391H6C4.89543 32.8391 4 31.9437 4 30.8391V17.0108C4 15.9062 4.89543 15.0108 6 15.0108H11.7985C11.7985 15.0108 17 6 24 6Z`,fill:e.colors[1],stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linejoin":e.strokeLinejoin},null),i(`path`,{d:`M32 15L32 15C32.6232 15.5565 33.1881 16.1797 33.6841 16.8588C35.1387 18.8504 36 21.3223 36 24C36 26.6545 35.1535 29.1067 33.7218 31.0893C33.2168 31.7885 32.6391 32.4293 32 33`,stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null)])}),Y=v({__name:`IconPark`,props:{icon:{type:[Object,Function]},theme:{},size:{},spin:{type:Boolean},fill:{},strokeLinecap:{},strokeLinejoin:{},strokeWidth:{}},setup(e){return(t,n)=>(g(),d(h(e.icon),{theme:e.theme,size:e.size,spin:e.spin,fill:e.fill,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin,"stroke-width":e.strokeWidth},null,8,[`theme`,`size`,`spin`,`fill`,`stroke-linecap`,`stroke-linejoin`,`stroke-width`]))}}),X={class:`player-volume flex flex-col items-center pt-2`},Z={class:`text-sm mt-3`},Q=v({__name:`PlayerVolumeSlider`,setup(e){let{namespace:n,store:a,field:c}=D(),l=c(`volume`),u=c(`muted`),d=e=>a.dispatch(`${n}/setVolume`,Array.isArray(e)?e[0]:e);return(e,n)=>(g(),s(`div`,X,[i(o(b),{modelValue:o(l),"onUpdate:modelValue":n[0]||=e=>_(l)?l.value=e:null,vertical:``,height:`100px`,"show-tooltip":!1,max:100,min:0,size:`small`,disabled:o(u),onInput:d},null,8,[`modelValue`,`disabled`]),t(`div`,Z,r(o(l)),1)]))}}),$={class:`flex items-center justify-center gap-x-3`},te=v({__name:`PlayerController`,setup(e){let{audio:t,dispatchAudio:r,tracks:c,currentIndex:l,playAdjacent:u}=D(),m=f(()=>c.value.length>1),h=f(()=>l.value>0),_=f(()=>l.value!==-1&&l.value<c.value.length-1),v=()=>r({state:t.value?.state===`playing`?`paused`:`playing`});return(e,r)=>(g(),s(`div`,$,[m.value?(g(),d(Y,{key:0,icon:o(G),size:`22`,theme:`filled`,class:n([`cursor-pointer transition-opacity`,h.value?`text-[var(--el-text-color-regular)]`:`opacity-30 cursor-not-allowed`]),onClick:r[0]||=e=>h.value&&o(u)(-1)},null,8,[`icon`,`class`])):a(``,!0),i(Y,{icon:o(t)?.state===`playing`?o(K):o(q),size:`45`,theme:`filled`,class:`text-[var(--el-color-primary)] cursor-pointer`,onClick:v},null,8,[`icon`]),m.value?(g(),d(Y,{key:1,icon:o(W),size:`22`,theme:`filled`,class:n([`cursor-pointer transition-opacity`,_.value?`text-[var(--el-text-color-regular)]`:`opacity-30 cursor-not-allowed`]),onClick:r[1]||=e=>_.value&&o(u)(1)},null,8,[`icon`,`class`])):a(``,!0),i(o(y),{placement:`top`,width:`50px`,trigger:`click`},{reference:p(()=>[i(Y,{icon:o(J),size:`20`,"stroke-width":2,class:`cursor-pointer`},null,8,[`icon`])]),default:p(()=>[i(Q)]),_:1})]))}}),ne={class:`flex flex-col items-stretch h-20`},re={class:`flex grow px-5 items-center`},ie={class:`flex-1`},ae={class:`flex-1`},oe={class:`flex-1`},se=v({__name:`Player`,props:{namespace:{},tracks:{}},setup(e){let n=e;return m(w,n.namespace),m(T,f(()=>n.tracks??[])),(e,n)=>(g(),s(`div`,ne,[i(k),t(`div`,re,[t(`div`,ie,[i(I)]),t(`div`,ae,[i(te)]),t(`div`,oe,[i(z)])])]))}});export{C as n,S as r,se as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./rolldown-runtime--c01j_DQ.js";import{A as e,I as t,Jt as n,L as r,M as i,N as a,at as o,it as s,j as c,mt as l,tt as u,z as d}from"./vendor-chart-Dw-P17PN.js";import{t as f}from"./tooltip-
|
|
1
|
+
import"./rolldown-runtime--c01j_DQ.js";import{A as e,I as t,Jt as n,L as r,M as i,N as a,at as o,it as s,j as c,mt as l,tt as u,z as d}from"./vendor-chart-Dw-P17PN.js";import{t as f}from"./tooltip-DdlttMDs.js";import{bi as p,fi as m,j as h,ki as g}from"./index-Cf679Gpt.js";import{t as _}from"./index.es-DqI2qm7C.js";import{i as v}from"./pagination-CvQJgiqh.js";var y=d({name:`PromptTextarea`,components:{ElInput:g,ElButton:p,ElTooltip:f,ElDialog:m,FontAwesomeIcon:_,InfoIcon:v},props:{modelValue:{type:String,default:``},title:{type:String,required:!0},info:{type:String,default:``},placeholder:{type:String,default:``},minRows:{type:Number,default:4},maxRows:{type:Number,default:12},maxlength:{type:Number,default:0},expandable:{type:Boolean,default:!0},dialogTitle:{type:String,default:``}},emits:[`update:modelValue`,`expand`],data(){return{expanded:!1}},computed:{text:{get(){return this.modelValue??``},set(e){this.$emit(`update:modelValue`,e)}},hasMaxlength(){return typeof this.maxlength==`number`&&this.maxlength>0},effectiveMaxlength(){return this.hasMaxlength?this.maxlength:void 0}},methods:{onExpand(){this.expanded=!0,this.$emit(`expand`)}}}),b={class:`prompt-textarea`},x={class:`header`},S={class:`title font-bold`},C={class:`actions`};function w(d,f,p,m,h,g){let _=o(`info-icon`),v=o(`font-awesome-icon`),y=o(`el-button`),w=o(`el-tooltip`),T=o(`el-input`),E=o(`el-dialog`);return u(),a(`div`,b,[e(`div`,x,[e(`h2`,S,n(d.title),1),e(`div`,C,[s(d.$slots,`actions`,{},void 0,!0),d.info?(u(),c(_,{key:0,content:d.info},null,8,[`content`])):i(``,!0),d.expandable?(u(),c(w,{key:1,content:d.$t(`common.button.expand`),placement:`top`},{default:l(()=>[r(y,{size:`small`,circle:``,class:`expand-btn`,onClick:d.onExpand},{default:l(()=>[r(v,{icon:`fa-solid fa-expand`})]),_:1},8,[`onClick`])]),_:1},8,[`content`])):i(``,!0)])]),s(d.$slots,`before`,{},void 0,!0),r(T,{modelValue:d.text,"onUpdate:modelValue":f[0]||=e=>d.text=e,type:`textarea`,class:`textarea`,autosize:{minRows:d.minRows,maxRows:d.maxRows},resize:`vertical`,placeholder:d.placeholder,maxlength:d.effectiveMaxlength,"show-word-limit":d.hasMaxlength},null,8,[`modelValue`,`autosize`,`placeholder`,`maxlength`,`show-word-limit`]),s(d.$slots,`after`,{},void 0,!0),d.expandable?(u(),c(E,{key:0,modelValue:d.expanded,"onUpdate:modelValue":f[3]||=e=>d.expanded=e,title:d.dialogTitle||d.title,width:`720px`,top:`5vh`,"close-on-click-modal":!1,class:`prompt-expand-dialog`,"append-to-body":``},{footer:l(()=>[r(y,{type:`primary`,onClick:f[2]||=e=>d.expanded=!1},{default:l(()=>[t(n(d.$t(`common.button.confirm`)),1)]),_:1})]),default:l(()=>[r(T,{modelValue:d.text,"onUpdate:modelValue":f[1]||=e=>d.text=e,type:`textarea`,autosize:{minRows:14,maxRows:28},placeholder:d.placeholder,maxlength:d.effectiveMaxlength,"show-word-limit":d.hasMaxlength,autofocus:``},null,8,[`modelValue`,`placeholder`,`maxlength`,`show-word-limit`])]),_:1},8,[`modelValue`,`title`])):i(``,!0)])}var T=h(y,[[`render`,w],[`__scopeId`,`data-v-8f4be1c1`]]);export{T as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as e,C as t,Gt as n,Jt as r,L as i,M as a,N as o,T as s,at as c,mt as l,p as u,qt as d,rt as f,tt as p,z as m}from"./vendor-chart-Dw-P17PN.js";import{Ji as h,_i as g,vi as _,xi as v,yi as y}from"./constants-DxuoPabX.js";import{L as b,j as x}from"./index-CqcdcBvt.js";import{t as S}from"./index.es-Dng16aRY.js";var C=class{token;model;handlers;voice;ws;audioCtx;micStream;micNode;workletNode;analyser;levelRaf=0;running=!1;playHead=0;activeSources=[];disposed=!1;suppressAudio=!1;aiResponding=!1;constructor(e,t,n,r=_){this.token=e,this.model=t,this.handlers=n,this.voice=r}get isRunning(){return this.running}async start(){this.handlers.onStatus?.(`connecting`);let e=window.AudioContext||window.webkitAudioContext;if(this.audioCtx=new e({sampleRate:y}),await this.audioCtx.audioWorklet.addModule(`/recorder-worklet.js`),this.disposed||(this.micStream=await navigator.mediaDevices.getUserMedia({audio:{channelCount:1,echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0}}),this.disposed))return this.teardownAudio();this.micNode=this.audioCtx.createMediaStreamSource(this.micStream),this.workletNode=new AudioWorkletNode(this.audioCtx,`recorder-processor`),this.micNode.connect(this.workletNode),this.analyser=this.audioCtx.createAnalyser(),this.analyser.fftSize=256,this.micNode.connect(this.analyser),this.startLevelLoop();let t=this.audioCtx.createGain();t.gain.value=0,this.workletNode.connect(t).connect(this.audioCtx.destination);let n=`${h}?model=${encodeURIComponent(this.model)}&voice=${encodeURIComponent(this.voice)}`;this.ws=new WebSocket(n,[`realtime`,`acedata-token.${this.token}`]),this.ws.onopen=()=>{if(this.disposed){this.ws?.close();return}this.running=!0,this.handlers.onStatus?.(`connected`)},this.ws.onclose=()=>{this.handlers.onStatus?.(`disconnected`),this.teardownAudio(),this.running=!1},this.ws.onerror=()=>this.handlers.onStatus?.(`error`),this.ws.onmessage=e=>this.onServerEvent(e),this.workletNode.port.onmessage=e=>{!this.ws||this.ws.readyState!==WebSocket.OPEN||this.ws.send(JSON.stringify({type:`input_audio_buffer.append`,audio:w(e.data)}))}}setMuted(e){this.micStream?.getAudioTracks().forEach(t=>t.enabled=!e)}startLevelLoop(){let e=new Uint8Array(this.analyser?this.analyser.fftSize:0),t=0,n=()=>{if(this.disposed||!this.analyser)return;this.analyser.getByteTimeDomainData(e);let r=0;for(let t=0;t<e.length;t++){let n=(e[t]-128)/128;r+=n*n}let i=Math.sqrt(r/e.length),a=Math.min(1,i*3.4);t=t*.82+a*.18,this.handlers.onAudioLevel?.(t),this.levelRaf=requestAnimationFrame(n)};this.levelRaf=requestAnimationFrame(n)}stop(){this.disposed=!0,this.ws&&(this.ws.readyState===WebSocket.OPEN||this.ws.readyState===WebSocket.CONNECTING)&&this.ws.close(),this.teardownAudio(),this.running=!1,this.handlers.onStatus?.(`disconnected`)}send(e){this.ws&&this.ws.readyState===WebSocket.OPEN&&this.ws.send(JSON.stringify(e))}onServerEvent(e){let t;try{t=JSON.parse(e.data)}catch{return}switch(t.type){case`session.created`:case`session.updated`:break;case`input_audio_buffer.speech_started`:this.stopPlayback(),this.aiResponding&&this.send({type:`response.cancel`}),this.suppressAudio=!0,this.handlers.onUserSpeechStarted?.();break;case`conversation.item.input_audio_transcription.completed`:this.handlers.onUserTranscript?.(t.transcript||``);break;case`response.created`:this.aiResponding=!0,this.suppressAudio=!1,this.handlers.onAiResponseStart?.();break;case`response.done`:this.aiResponding=!1;break;case`response.output_audio.delta`:case`response.audio.delta`:t.delta&&!this.suppressAudio&&this.enqueuePcm16(t.delta);break;case`response.output_audio_transcript.delta`:case`response.audio_transcript.delta`:t.delta&&this.handlers.onAiTranscriptDelta?.(t.delta);break;case`error`:{let e=t.error||{},n=String(e.code||``),r=String(e.message||``);if(n===`response_cancel_not_active`||/no active response/i.test(r))break;this.handlers.onError?.(r||`realtime error`);break}default:break}}enqueuePcm16(e){if(!this.audioCtx)return;let t=T(e),n=new Int16Array(t);if(n.length===0)return;let r=new Float32Array(n.length);for(let e=0;e<n.length;e++)r[e]=n[e]/32768;let i=this.audioCtx.createBuffer(1,r.length,y);i.getChannelData(0).set(r);let a=this.audioCtx.createBufferSource();a.buffer=i,a.connect(this.audioCtx.destination),this.analyser&&a.connect(this.analyser);let o=this.audioCtx.currentTime;this.playHead<o&&(this.playHead=o+.02),a.start(this.playHead),this.playHead+=i.duration,this.activeSources.push(a),a.onended=()=>{this.activeSources=this.activeSources.filter(e=>e!==a)}}stopPlayback(){for(let e of this.activeSources)try{e.onended=null,e.stop()}catch{}this.activeSources=[],this.playHead=0}teardownAudio(){try{this.levelRaf&&cancelAnimationFrame(this.levelRaf),this.workletNode&&(this.workletNode.port.onmessage=null),this.micStream&&this.micStream.getTracks().forEach(e=>e.stop()),this.stopPlayback(),this.audioCtx&&this.audioCtx.close()}catch{}this.levelRaf=0,this.handlers.onAudioLevel?.(0),this.micStream=this.micNode=this.workletNode=this.audioCtx=this.analyser=void 0}};function w(e){let t=new Uint8Array(e),n=``,r=32768;for(let e=0;e<t.length;e+=r)n+=String.fromCharCode.apply(null,Array.from(t.subarray(e,e+r)));return btoa(n)}function T(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n.buffer}var E=`nexior.realtime.voice`,D=m({name:`RealtimeCall`,components:{FontAwesomeIcon:S},data(){return{client:void 0,status:`disconnected`,connecting:!1,provisioning:!0,running:!1,aiSpeaking:!1,userText:``,aiText:``,errorMsg:``,level:0,muted:!1,captionsOn:!1,showInfo:!1,voice:_,voices:[...v],voiceMenuOpen:!1,callSeq:0}},computed:{token(){return this.$store.state.realtime?.credential?.token},canCall(){return!!this.token},modelName(){return g},orbScale(){return 1+this.level*.16},haloStyle(){let e=this.running?this.level:0;return{transform:`scale(${1+e*.7})`,opacity:`${.16+e*.5}`}},orbClass(){return{speaking:this.aiSpeaking,live:this.running,idle:!this.running}},captionText(){return this.aiText?this.aiText:this.running&&!this.userText?this.$t(`realtime.listening`):``},stageText(){return this.errorMsg?this.errorMsg:this.provisioning||this.connecting?this.$t(`realtime.status.connecting`):this.running?this.aiSpeaking?this.$t(`realtime.speaking`):this.$t(`realtime.listening`):this.$t(`realtime.start`)},voiceLabel(){return this.labelOf(this.voice)}},async mounted(){try{let e=localStorage.getItem(E);e&&this.voices.includes(e)&&(this.voice=e)}catch{}this.voices.includes(this.voice)||(this.voice=_),this.provisioning=!0;try{await this.$store.dispatch(`realtime/init`)}finally{this.provisioning=!1}this.canCall&&this.startCall()},beforeUnmount(){this.client?.stop()},methods:{async startCall(){if(!this.token||this.connecting||this.running)return;let e=++this.callSeq,t=()=>e===this.callSeq;this.errorMsg=``,this.userText=``,this.aiText=``,this.connecting=!0;let n=new C(this.token,g,{onStatus:e=>{t()&&(this.status=e,this.running=e===`connecting`||e===`connected`,(e===`connected`||e===`disconnected`||e===`error`)&&(this.connecting=!1),this.running||(this.level=0))},onUserSpeechStarted:()=>{t()&&(this.aiSpeaking=!1,this.errorMsg=``)},onUserTranscript:e=>{t()&&(this.userText=e)},onAiResponseStart:()=>{t()&&(this.aiText=``,this.aiSpeaking=!0,this.errorMsg=``)},onAiTranscriptDelta:e=>{t()&&(this.aiText+=e)},onAudioLevel:e=>{t()&&(this.level=e)},onError:e=>{t()&&(this.errorMsg=e)}},this.voice);this.client=n;try{if(await n.start(),!t()||this.client!==n)return;n.setMuted(this.muted)}catch(e){if(n.stop(),!t()||this.client!==n)return;this.connecting=!1,this.running=!1,this.errorMsg=e?.message||this.$t(`realtime.startFailed`)}},toggleMute(){this.muted=!this.muted,this.client?.setMuted(this.muted)},toggleCaptions(){this.captionsOn=!this.captionsOn},labelOf(e){let t=e||`alloy`;return t.charAt(0).toUpperCase()+t.slice(1)},selectVoice(e){if(this.voiceMenuOpen=!1,e!==this.voice){this.voice=e;try{localStorage.setItem(E,e)}catch{}(this.running||this.connecting)&&this.reconnect()}},reconnect(){let e=this.client;this.client=void 0,this.callSeq++,this.running=!1,this.connecting=!1,this.aiSpeaking=!1,this.level=0,this.userText=``,this.aiText=``,this.errorMsg=``,e?.stop(),this.$nextTick(()=>this.startCall())},onOrbTap(){!this.running&&!this.connecting&&this.startCall()},endCall(){this.client?.stop(),this.running=!1,this.aiSpeaking=!1,this.level=0,this.goBack()},goBack(){this.client?.stop(),this.$router.push({name:b})}}}),O={class:`rtc-top`},k={class:`rtc-top-left`},A=[`title`],j={class:`voice-pick`},M={class:`voice-name`},N={key:0,class:`voice-menu`},P=[`onClick`],F={class:`rtc-top-right`},I=[`title`],L=[`title`],R={class:`rtc-stage`},z={key:0,class:`rtc-info`},B={key:0,class:`rtc-captions`},V={key:0,class:`cap user`},H={class:`cap ai`},U={class:`rtc-controls`},W=[`title`],G=[`title`],K=[`title`];function q(m,h,g,_,v,y){let b=c(`font-awesome-icon`);return p(),o(`div`,{class:n([`rtc`,{"is-captions":m.captionsOn,"is-live":m.running}])},[e(`header`,O,[e(`div`,k,[e(`button`,{class:`ic`,title:m.$t(`realtime.title`),onClick:h[0]||=(...e)=>m.goBack&&m.goBack(...e)},[i(b,{icon:`fa-solid fa-chevron-down`})],8,A),e(`div`,j,[e(`button`,{class:n([`voice-chip`,{on:m.voiceMenuOpen}]),onClick:h[1]||=t(e=>m.voiceMenuOpen=!m.voiceMenuOpen,[`stop`])},[e(`span`,M,r(m.voiceLabel),1),i(b,{icon:`fa-solid fa-chevron-down`,class:`voice-caret`})],2),m.voiceMenuOpen?(p(),o(`ul`,N,[(p(!0),o(s,null,f(m.voices,e=>(p(),o(`li`,{key:e,class:n({sel:e===m.voice}),onClick:t=>m.selectVoice(e)},r(m.labelOf(e)),11,P))),128))])):a(``,!0)])]),e(`div`,F,[e(`button`,{class:n([`ic`,{on:m.showInfo}]),title:m.$t(`realtime.title`),onClick:h[2]||=e=>m.showInfo=!m.showInfo},[i(b,{icon:`fa-solid fa-circle-info`})],10,I),e(`button`,{class:n([`ic`,{on:m.captionsOn}]),title:m.$t(`realtime.captions`),onClick:h[3]||=(...e)=>m.toggleCaptions&&m.toggleCaptions(...e)},[i(b,{icon:`fa-solid fa-closed-captioning`})],10,L)])]),m.voiceMenuOpen?(p(),o(`div`,{key:0,class:`voice-backdrop`,onClick:h[4]||=e=>m.voiceMenuOpen=!1})):a(``,!0),e(`main`,R,[e(`div`,{class:`orb-stage`,onClick:h[5]||=(...e)=>m.onOrbTap&&m.onOrbTap(...e)},[e(`div`,{class:`orb-halo`,style:d(m.haloStyle)},null,4),e(`div`,{class:n([`orb-breathe`,{paused:!m.running}])},[e(`div`,{class:n([`orb`,m.orbClass]),style:d({transform:`scale(${m.orbScale})`})},[...h[9]||=[e(`span`,{class:`cloud c1`},null,-1),e(`span`,{class:`cloud c2`},null,-1),e(`span`,{class:`cloud c3`},null,-1),e(`span`,{class:`sheen`},null,-1)]],6)],2)]),i(u,{name:`fade`},{default:l(()=>[m.showInfo&&!m.captionsOn?(p(),o(`p`,z,r(m.modelName),1)):a(``,!0)]),_:1}),m.captionsOn?(p(),o(`div`,B,[m.userText?(p(),o(`p`,V,r(m.userText),1)):a(``,!0),e(`p`,H,r(m.captionText),1)])):(p(),o(`p`,{key:1,class:n([`rtc-status`,{err:!!m.errorMsg}])},r(m.stageText),3))]),e(`footer`,U,[e(`button`,{class:n([`ctl`,{active:m.muted}]),title:m.muted?m.$t(`realtime.unmute`):m.$t(`realtime.mute`),onClick:h[6]||=(...e)=>m.toggleMute&&m.toggleMute(...e)},[i(b,{icon:m.muted?`fa-solid fa-microphone-slash`:`fa-solid fa-microphone`},null,8,[`icon`])],10,W),e(`button`,{class:n([`ctl`,{active:m.captionsOn}]),title:m.$t(`realtime.captions`),onClick:h[7]||=(...e)=>m.toggleCaptions&&m.toggleCaptions(...e)},[i(b,{icon:`fa-solid fa-closed-captioning`})],10,G),e(`button`,{class:`ctl end`,title:m.$t(`realtime.end`),onClick:h[8]||=(...e)=>m.endCall&&m.endCall(...e)},[i(b,{icon:`fa-solid fa-xmark`})],8,K)])],2)}var J=x(D,[[`render`,q],[`__scopeId`,`data-v-35b8d53d`]]);export{J as default};
|
|
1
|
+
import{A as e,C as t,Gt as n,Jt as r,L as i,M as a,N as o,T as s,at as c,mt as l,p as u,qt as d,rt as f,tt as p,z as m}from"./vendor-chart-Dw-P17PN.js";import{Ji as h,_i as g,vi as _,xi as v,yi as y}from"./constants-B_ZAjiS7.js";import{L as b,j as x}from"./index-Cf679Gpt.js";import{t as S}from"./index.es-DqI2qm7C.js";var C=class{token;model;handlers;voice;ws;audioCtx;micStream;micNode;workletNode;analyser;levelRaf=0;running=!1;playHead=0;activeSources=[];disposed=!1;suppressAudio=!1;aiResponding=!1;constructor(e,t,n,r=_){this.token=e,this.model=t,this.handlers=n,this.voice=r}get isRunning(){return this.running}async start(){this.handlers.onStatus?.(`connecting`);let e=window.AudioContext||window.webkitAudioContext;if(this.audioCtx=new e({sampleRate:y}),await this.audioCtx.audioWorklet.addModule(`/recorder-worklet.js`),this.disposed||(this.micStream=await navigator.mediaDevices.getUserMedia({audio:{channelCount:1,echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0}}),this.disposed))return this.teardownAudio();this.micNode=this.audioCtx.createMediaStreamSource(this.micStream),this.workletNode=new AudioWorkletNode(this.audioCtx,`recorder-processor`),this.micNode.connect(this.workletNode),this.analyser=this.audioCtx.createAnalyser(),this.analyser.fftSize=256,this.micNode.connect(this.analyser),this.startLevelLoop();let t=this.audioCtx.createGain();t.gain.value=0,this.workletNode.connect(t).connect(this.audioCtx.destination);let n=`${h}?model=${encodeURIComponent(this.model)}&voice=${encodeURIComponent(this.voice)}`;this.ws=new WebSocket(n,[`realtime`,`acedata-token.${this.token}`]),this.ws.onopen=()=>{if(this.disposed){this.ws?.close();return}this.running=!0,this.handlers.onStatus?.(`connected`)},this.ws.onclose=()=>{this.handlers.onStatus?.(`disconnected`),this.teardownAudio(),this.running=!1},this.ws.onerror=()=>this.handlers.onStatus?.(`error`),this.ws.onmessage=e=>this.onServerEvent(e),this.workletNode.port.onmessage=e=>{!this.ws||this.ws.readyState!==WebSocket.OPEN||this.ws.send(JSON.stringify({type:`input_audio_buffer.append`,audio:w(e.data)}))}}setMuted(e){this.micStream?.getAudioTracks().forEach(t=>t.enabled=!e)}startLevelLoop(){let e=new Uint8Array(this.analyser?this.analyser.fftSize:0),t=0,n=()=>{if(this.disposed||!this.analyser)return;this.analyser.getByteTimeDomainData(e);let r=0;for(let t=0;t<e.length;t++){let n=(e[t]-128)/128;r+=n*n}let i=Math.sqrt(r/e.length),a=Math.min(1,i*3.4);t=t*.82+a*.18,this.handlers.onAudioLevel?.(t),this.levelRaf=requestAnimationFrame(n)};this.levelRaf=requestAnimationFrame(n)}stop(){this.disposed=!0,this.ws&&(this.ws.readyState===WebSocket.OPEN||this.ws.readyState===WebSocket.CONNECTING)&&this.ws.close(),this.teardownAudio(),this.running=!1,this.handlers.onStatus?.(`disconnected`)}send(e){this.ws&&this.ws.readyState===WebSocket.OPEN&&this.ws.send(JSON.stringify(e))}onServerEvent(e){let t;try{t=JSON.parse(e.data)}catch{return}switch(t.type){case`session.created`:case`session.updated`:break;case`input_audio_buffer.speech_started`:this.stopPlayback(),this.aiResponding&&this.send({type:`response.cancel`}),this.suppressAudio=!0,this.handlers.onUserSpeechStarted?.();break;case`conversation.item.input_audio_transcription.completed`:this.handlers.onUserTranscript?.(t.transcript||``);break;case`response.created`:this.aiResponding=!0,this.suppressAudio=!1,this.handlers.onAiResponseStart?.();break;case`response.done`:this.aiResponding=!1;break;case`response.output_audio.delta`:case`response.audio.delta`:t.delta&&!this.suppressAudio&&this.enqueuePcm16(t.delta);break;case`response.output_audio_transcript.delta`:case`response.audio_transcript.delta`:t.delta&&this.handlers.onAiTranscriptDelta?.(t.delta);break;case`error`:{let e=t.error||{},n=String(e.code||``),r=String(e.message||``);if(n===`response_cancel_not_active`||/no active response/i.test(r))break;this.handlers.onError?.(r||`realtime error`);break}default:break}}enqueuePcm16(e){if(!this.audioCtx)return;let t=T(e),n=new Int16Array(t);if(n.length===0)return;let r=new Float32Array(n.length);for(let e=0;e<n.length;e++)r[e]=n[e]/32768;let i=this.audioCtx.createBuffer(1,r.length,y);i.getChannelData(0).set(r);let a=this.audioCtx.createBufferSource();a.buffer=i,a.connect(this.audioCtx.destination),this.analyser&&a.connect(this.analyser);let o=this.audioCtx.currentTime;this.playHead<o&&(this.playHead=o+.02),a.start(this.playHead),this.playHead+=i.duration,this.activeSources.push(a),a.onended=()=>{this.activeSources=this.activeSources.filter(e=>e!==a)}}stopPlayback(){for(let e of this.activeSources)try{e.onended=null,e.stop()}catch{}this.activeSources=[],this.playHead=0}teardownAudio(){try{this.levelRaf&&cancelAnimationFrame(this.levelRaf),this.workletNode&&(this.workletNode.port.onmessage=null),this.micStream&&this.micStream.getTracks().forEach(e=>e.stop()),this.stopPlayback(),this.audioCtx&&this.audioCtx.close()}catch{}this.levelRaf=0,this.handlers.onAudioLevel?.(0),this.micStream=this.micNode=this.workletNode=this.audioCtx=this.analyser=void 0}};function w(e){let t=new Uint8Array(e),n=``,r=32768;for(let e=0;e<t.length;e+=r)n+=String.fromCharCode.apply(null,Array.from(t.subarray(e,e+r)));return btoa(n)}function T(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n.buffer}var E=`nexior.realtime.voice`,D=m({name:`RealtimeCall`,components:{FontAwesomeIcon:S},data(){return{client:void 0,status:`disconnected`,connecting:!1,provisioning:!0,running:!1,aiSpeaking:!1,userText:``,aiText:``,errorMsg:``,level:0,muted:!1,captionsOn:!1,showInfo:!1,voice:_,voices:[...v],voiceMenuOpen:!1,callSeq:0}},computed:{token(){return this.$store.state.realtime?.credential?.token},canCall(){return!!this.token},modelName(){return g},orbScale(){return 1+this.level*.16},haloStyle(){let e=this.running?this.level:0;return{transform:`scale(${1+e*.7})`,opacity:`${.16+e*.5}`}},orbClass(){return{speaking:this.aiSpeaking,live:this.running,idle:!this.running}},captionText(){return this.aiText?this.aiText:this.running&&!this.userText?this.$t(`realtime.listening`):``},stageText(){return this.errorMsg?this.errorMsg:this.provisioning||this.connecting?this.$t(`realtime.status.connecting`):this.running?this.aiSpeaking?this.$t(`realtime.speaking`):this.$t(`realtime.listening`):this.$t(`realtime.start`)},voiceLabel(){return this.labelOf(this.voice)}},async mounted(){try{let e=localStorage.getItem(E);e&&this.voices.includes(e)&&(this.voice=e)}catch{}this.voices.includes(this.voice)||(this.voice=_),this.provisioning=!0;try{await this.$store.dispatch(`realtime/init`)}finally{this.provisioning=!1}this.canCall&&this.startCall()},beforeUnmount(){this.client?.stop()},methods:{async startCall(){if(!this.token||this.connecting||this.running)return;let e=++this.callSeq,t=()=>e===this.callSeq;this.errorMsg=``,this.userText=``,this.aiText=``,this.connecting=!0;let n=new C(this.token,g,{onStatus:e=>{t()&&(this.status=e,this.running=e===`connecting`||e===`connected`,(e===`connected`||e===`disconnected`||e===`error`)&&(this.connecting=!1),this.running||(this.level=0))},onUserSpeechStarted:()=>{t()&&(this.aiSpeaking=!1,this.errorMsg=``)},onUserTranscript:e=>{t()&&(this.userText=e)},onAiResponseStart:()=>{t()&&(this.aiText=``,this.aiSpeaking=!0,this.errorMsg=``)},onAiTranscriptDelta:e=>{t()&&(this.aiText+=e)},onAudioLevel:e=>{t()&&(this.level=e)},onError:e=>{t()&&(this.errorMsg=e)}},this.voice);this.client=n;try{if(await n.start(),!t()||this.client!==n)return;n.setMuted(this.muted)}catch(e){if(n.stop(),!t()||this.client!==n)return;this.connecting=!1,this.running=!1,this.errorMsg=e?.message||this.$t(`realtime.startFailed`)}},toggleMute(){this.muted=!this.muted,this.client?.setMuted(this.muted)},toggleCaptions(){this.captionsOn=!this.captionsOn},labelOf(e){let t=e||`alloy`;return t.charAt(0).toUpperCase()+t.slice(1)},selectVoice(e){if(this.voiceMenuOpen=!1,e!==this.voice){this.voice=e;try{localStorage.setItem(E,e)}catch{}(this.running||this.connecting)&&this.reconnect()}},reconnect(){let e=this.client;this.client=void 0,this.callSeq++,this.running=!1,this.connecting=!1,this.aiSpeaking=!1,this.level=0,this.userText=``,this.aiText=``,this.errorMsg=``,e?.stop(),this.$nextTick(()=>this.startCall())},onOrbTap(){!this.running&&!this.connecting&&this.startCall()},endCall(){this.client?.stop(),this.running=!1,this.aiSpeaking=!1,this.level=0,this.goBack()},goBack(){this.client?.stop(),this.$router.push({name:b})}}}),O={class:`rtc-top`},k={class:`rtc-top-left`},A=[`title`],j={class:`voice-pick`},M={class:`voice-name`},N={key:0,class:`voice-menu`},P=[`onClick`],F={class:`rtc-top-right`},I=[`title`],L=[`title`],R={class:`rtc-stage`},z={key:0,class:`rtc-info`},B={key:0,class:`rtc-captions`},V={key:0,class:`cap user`},H={class:`cap ai`},U={class:`rtc-controls`},W=[`title`],G=[`title`],K=[`title`];function q(m,h,g,_,v,y){let b=c(`font-awesome-icon`);return p(),o(`div`,{class:n([`rtc`,{"is-captions":m.captionsOn,"is-live":m.running}])},[e(`header`,O,[e(`div`,k,[e(`button`,{class:`ic`,title:m.$t(`realtime.title`),onClick:h[0]||=(...e)=>m.goBack&&m.goBack(...e)},[i(b,{icon:`fa-solid fa-chevron-down`})],8,A),e(`div`,j,[e(`button`,{class:n([`voice-chip`,{on:m.voiceMenuOpen}]),onClick:h[1]||=t(e=>m.voiceMenuOpen=!m.voiceMenuOpen,[`stop`])},[e(`span`,M,r(m.voiceLabel),1),i(b,{icon:`fa-solid fa-chevron-down`,class:`voice-caret`})],2),m.voiceMenuOpen?(p(),o(`ul`,N,[(p(!0),o(s,null,f(m.voices,e=>(p(),o(`li`,{key:e,class:n({sel:e===m.voice}),onClick:t=>m.selectVoice(e)},r(m.labelOf(e)),11,P))),128))])):a(``,!0)])]),e(`div`,F,[e(`button`,{class:n([`ic`,{on:m.showInfo}]),title:m.$t(`realtime.title`),onClick:h[2]||=e=>m.showInfo=!m.showInfo},[i(b,{icon:`fa-solid fa-circle-info`})],10,I),e(`button`,{class:n([`ic`,{on:m.captionsOn}]),title:m.$t(`realtime.captions`),onClick:h[3]||=(...e)=>m.toggleCaptions&&m.toggleCaptions(...e)},[i(b,{icon:`fa-solid fa-closed-captioning`})],10,L)])]),m.voiceMenuOpen?(p(),o(`div`,{key:0,class:`voice-backdrop`,onClick:h[4]||=e=>m.voiceMenuOpen=!1})):a(``,!0),e(`main`,R,[e(`div`,{class:`orb-stage`,onClick:h[5]||=(...e)=>m.onOrbTap&&m.onOrbTap(...e)},[e(`div`,{class:`orb-halo`,style:d(m.haloStyle)},null,4),e(`div`,{class:n([`orb-breathe`,{paused:!m.running}])},[e(`div`,{class:n([`orb`,m.orbClass]),style:d({transform:`scale(${m.orbScale})`})},[...h[9]||=[e(`span`,{class:`cloud c1`},null,-1),e(`span`,{class:`cloud c2`},null,-1),e(`span`,{class:`cloud c3`},null,-1),e(`span`,{class:`sheen`},null,-1)]],6)],2)]),i(u,{name:`fade`},{default:l(()=>[m.showInfo&&!m.captionsOn?(p(),o(`p`,z,r(m.modelName),1)):a(``,!0)]),_:1}),m.captionsOn?(p(),o(`div`,B,[m.userText?(p(),o(`p`,V,r(m.userText),1)):a(``,!0),e(`p`,H,r(m.captionText),1)])):(p(),o(`p`,{key:1,class:n([`rtc-status`,{err:!!m.errorMsg}])},r(m.stageText),3))]),e(`footer`,U,[e(`button`,{class:n([`ctl`,{active:m.muted}]),title:m.muted?m.$t(`realtime.unmute`):m.$t(`realtime.mute`),onClick:h[6]||=(...e)=>m.toggleMute&&m.toggleMute(...e)},[i(b,{icon:m.muted?`fa-solid fa-microphone-slash`:`fa-solid fa-microphone`},null,8,[`icon`])],10,W),e(`button`,{class:n([`ctl`,{active:m.captionsOn}]),title:m.$t(`realtime.captions`),onClick:h[7]||=(...e)=>m.toggleCaptions&&m.toggleCaptions(...e)},[i(b,{icon:`fa-solid fa-closed-captioning`})],10,G),e(`button`,{class:`ctl end`,title:m.$t(`realtime.end`),onClick:h[8]||=(...e)=>m.endCall&&m.endCall(...e)},[i(b,{icon:`fa-solid fa-xmark`})],8,K)])],2)}var J=x(D,[[`render`,q],[`__scopeId`,`data-v-35b8d53d`]]);export{J as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,S as c,T as l,at as u,j as d,mt as f,rt as p,tt as m,z as h}from"./vendor-chart-Dw-P17PN.js";import{n as g,r as _,t as v}from"./select-
|
|
2
|
-
`)[0].trim();return t.length>40?`${t.slice(0,40)}…`:t||`Scheduled Task`},async loadTasks(){if(this.token){this.loading=!0;try{this.tasks=await K.listTasks(this.token);let e=Math.max(1,Math.ceil(this.tasks.length/this.pageSize));this.page>e&&(this.page=e)}catch{B.error(this.$t(`chat.scheduledTasks.loadError`))}finally{this.loading=!1}}},async selectTask(e){this.selectedTask=e,this.showRunHistory=!0,this.runPage=1,this.runsLoading=!0;try{this.runs=await K.listRuns(this.token,e.id)}finally{this.runsLoading=!1}},onPageChange(e){this.page=e},onRunPageChange(e){this.runPage=e},openCreate(){this.saving||(this.editingTask=null,this.form=this.emptyForm(),this.showCreateDialog=!0)},closeTaskDialog(){this.saving||(this.showCreateDialog=!1)},openEdit(e){this.editingTask=e;let t=e.schedule,n=`cron`,r=4,i=`hour`,a=0,o=`09:00`,s=`0 9 * * *`,c=1;if(t.type===`cron`){s=t.cron;let[e,r,i,l,u]=t.cron.split(/\s+/),d=e=>/^\d+$/.test(e);i===`*`&&l===`*`&&u===`*`&&r===`*`&&d(e)?(n=`hourly`,a=Number(e)):i===`*`&&l===`*`&&u===`*`&&d(r)&&d(e)?(n=`daily`,o=`${r.padStart(2,`0`)}:${e.padStart(2,`0`)}`):i===`*`&&l===`*`&&d(u)&&d(r)&&d(e)&&(n=`weekly`,c=Number(u),o=`${r.padStart(2,`0`)}:${e.padStart(2,`0`)}`)}else if(t.type===`interval`){n=`interval`;let e=t.interval_seconds;e%86400==0?(i=`day`,r=e/86400):e%3600==0?(i=`hour`,r=e/3600):(i=`minute`,r=Math.max(1,Math.round(e/60)))}this.form={name:e.name,question:e.template.question,model:e.template.model,scheduleType:n,intervalValue:r,intervalUnit:i,hourlyMinute:a,dailyTime:o,weekday:c,cronExpr:s,authorizedSkills:(e.unattended_policy?.mode===`allow_selected`||e.unattended_policy?.mode===`allow_selected_skills`)&&e.unattended_policy.allowed_skills||[],authorizedMcpServers:(e.unattended_policy?.mode===`allow_selected`||e.unattended_policy?.mode===`allow_selected_skills`)&&e.unattended_policy.allowed_mcp_servers||[],maxTurns:e.template.max_turns??J},this.showCreateDialog=!0,this.loadAuthorizableSkills()},buildSchedule(){let{scheduleType:e,intervalValue:t,intervalUnit:n,hourlyMinute:r,dailyTime:i,weekday:a,cronExpr:o}=this.form;if(e===`interval`)return{type:`interval`,interval_seconds:Math.max(60,Math.round(t)*(n===`day`?86400:n===`hour`?3600:60)),tz:q};if(e===`hourly`)return{type:`cron`,cron:`${Math.min(59,Math.max(0,Math.round(r)))} * * * *`,tz:q};if(e===`daily`){let[e,t]=i.split(`:`);return{type:`cron`,cron:`${t} ${e} * * *`,tz:q}}if(e===`weekly`){let[e,t]=i.split(`:`);return{type:`cron`,cron:`${t} ${e} * * ${a}`,tz:q}}return{type:`cron`,cron:o,tz:q}},async saveTask(){if(!this.form.question.trim()){B.warning(this.$t(`chat.scheduledTasks.form.required`));return}if(this.form.authorizedSkills.length>0||this.form.authorizedMcpServers.length>0)try{await z.confirm(this.authorizationConfirmText(),this.$t(`chat.scheduledTasks.form.skillsConfirmTitle`),{type:`warning`,confirmButtonText:this.$t(`common.button.confirm`),cancelButtonText:this.$t(`common.button.cancel`)})}catch{return}let e=[...this.form.authorizedSkills],t=[...this.form.authorizedMcpServers],n={name:this.form.name.trim()||this.deriveName(this.form.question),schedule:this.buildSchedule(),template:{model:this.form.model,question:this.form.question,skills:e,mcp_servers:t,max_turns:this.form.maxTurns},unattended_policy:e.length||t.length?{mode:`allow_selected`,allowed_skills:e,allowed_mcp_servers:t}:{mode:`deny_all`,allowed_skills:[],allowed_mcp_servers:[]}};await this.submitTask(n,!1)},async submitTask(e,t){this.saving=!0;let n=null;try{if(this.editingTask){let n=this.editingTask.id,r=await K.updateTask(this.token,n,e,t),i=this.tasks.findIndex(e=>e.id===n);i!==-1&&(this.tasks[i]=r)}else{let n=await K.createTask(this.token,e,t);this.tasks=[n,...this.tasks],this.page=1}B.success(this.$t(`chat.scheduledTasks.create`)+` OK`),this.showCreateDialog=!1,this.editingTask=null,this.form=this.emptyForm()}catch(e){n=t?null:G(e),n||B.error(this.$t(`chat.scheduledTasks.loadError`))}finally{this.saving=!1}n&&await this.confirmForceSkill(n)&&await this.submitTask(e,!0)},async confirmForceSkill(e){let t=this.capabilityLabel(e.slug);try{return await z.confirm(this.$t(`chat.scheduledTasks.form.skillNotActiveMessage`,{name:t}),this.$t(`chat.scheduledTasks.form.skillNotActiveTitle`),{type:`warning`,confirmButtonText:this.$t(`chat.scheduledTasks.form.skillNotActiveForce`),cancelButtonText:this.$t(`common.button.cancel`)}),!0}catch{return!1}},capabilityLabel(e){let t=this.authorizableSkills.find(t=>t.slug===e);if(t)return t.name||t.slug;let n=this.authorizableMcpServers.find(t=>t.slug===e);return n?n.name||n.slug:e},async loadAuthorizableSkills(e=!1){if(!(!this.token||this.skillsLoading||!e&&(this.authorizableSkills.length||this.authorizableMcpServers.length))){this.skillsLoading=!0;try{let e=await K.listAuthorizableCapabilities(this.token);this.authorizableSkills=e.skills,this.authorizableMcpServers=e.mcp_servers}catch{B.error(this.$t(`chat.scheduledTasks.loadError`))}finally{this.skillsLoading=!1}}},onSkillSelectVisible(e){e&&this.loadAuthorizableSkills(!0)},skillLabel(e){return e.name||e.slug},mcpServerLabel(e){return e.name||e.slug},authorizationConfirmText(){let e=new Set(this.form.authorizedSkills),t=new Set(this.form.authorizedMcpServers),n=this.authorizableSkills.filter(t=>e.has(t.slug)).map(e=>this.skillLabel(e)),r=this.authorizableMcpServers.filter(e=>t.has(e.slug)).map(e=>this.mcpServerLabel(e));return this.$t(`chat.scheduledTasks.form.skillsConfirm`,{count:e.size+t.size,skills:[...n,...r].length?[...n,...r].join(`, `):[...Array.from(e),...Array.from(t)].join(`, `)})},async toggleState(e,t){let n=this.tasks.findIndex(t=>t.id===e.id),r=t?`enabled`:`disabled`;n!==-1&&(this.tasks[n]={...e,state:r});try{let t=await K.updateTask(this.token,e.id,{state:r});n!==-1&&(this.tasks[n]=t)}catch{n!==-1&&(this.tasks[n]={...e,state:e.state}),B.error(this.$t(`chat.scheduledTasks.loadError`))}},async triggerNow(e){if(!this.triggeringId){this.triggeringId=e.id;try{await K.triggerTask(this.token,e.id),B.success(this.$t(`chat.scheduledTasks.triggerSuccess`)),this.showRunHistory&&this.selectedTask?.id===e.id&&(this.runs=await K.listRuns(this.token,e.id),this.runPage=1)}catch{B.error(this.$t(`chat.scheduledTasks.triggerError`))}finally{this.triggeringId=``}}},async confirmDelete(e){await z.confirm(this.$t(`chat.scheduledTasks.deleteConfirm`,{name:e.name}),{type:`warning`});try{await K.deleteTask(this.token,e.id),this.tasks=this.tasks.filter(t=>t.id!==e.id);let t=Math.max(1,Math.ceil(this.tasks.length/this.pageSize));this.page>t&&(this.page=t)}catch{B.error(this.$t(`chat.scheduledTasks.loadError`))}},openRun(e){if(!e.conversation_id)return;let t=this.modelGroups.map(e=>e.name),n=e.conversation_model_group,r=this.$store.state.chat?.modelGroup?.name||`chatgpt`,i=n&&(t.length===0||t.includes(n))?n:r;this.$router.push(`/${i}/conversations/${e.conversation_id}`)},stateTagType(e){return e===`enabled`?`success`:e===`error`?`danger`:`info`},runTagType(e){return e===`success`?`success`:e===`failed`?`danger`:`warning`},runErrorText(e){if(e.error_message)return e.error_message;let t=e.error_code;if(!t)return``;let n=`chat.scheduledTasks.run.reason.${t}`;return this.$te(n)?this.$t(n):t.replace(/_/g,` `)},humanizeSchedule(e){let t=(e,t)=>this.$t(`chat.scheduledTasks.humanize.${e}`,t??{});if(e.type===`interval`){let n=e.interval_seconds;return n%86400==0?t(`everyNDays`,{n:n/86400}):n%3600==0?t(`everyNHours`,{n:n/3600}):t(`everyNMinutes`,{n:Math.round(n/60)})}if(e.type===`cron`){let[n,r,i,a,o]=e.cron.split(/\s+/),s=e=>/^\d+$/.test(e);if(i===`*`&&a===`*`&&o===`*`&&r===`*`&&s(n))return t(`hourlyAtMinute`,{n:Number(n)});let c=s(r)&&s(n)?`${r.padStart(2,`0`)}:${n.padStart(2,`0`)}`:``;return c&&i===`*`&&a===`*`&&o===`*`?t(`dailyAt`,{time:c}):c&&i===`*`&&a===`*`&&s(o)?t(`weeklyAt`,{weekday:this.weekdays[Number(o)]??o,time:c}):t(`cronRaw`,{cron:e.cron})}return t(`once`,{time:new Date(e.at*1e3).toLocaleString()})},scheduleLabel(e){return this.humanizeSchedule(e)},formatTime(e){return new Date(e*1e3).toLocaleString()}}}),X={class:`scheduled-tasks`},Z={class:`inner`},Q={class:`header`},ne={class:`title`},re={class:`task-list`},ie={class:`task-top`},ae={class:`task-name`},oe={class:`task-meta`},se={class:`meta-chip`},ce={class:`meta-chip`},le={class:`task-prompt`},ue={key:0,class:`task-last-output`},de={class:`task-footer`},fe={class:`run-count`},pe={key:0,class:`error-hint`},me={class:`open-hint`},he={key:0,class:`pager`},ge={key:0,class:`run-context`},_e={class:`run-context-meta`},ve={class:`run-context-prompt`},ye={key:3,class:`run-list`},be=[`tabindex`,`role`,`onClick`,`onKeydown`],xe={class:`run-body`},Se={class:`run-line`},Ce={class:`run-title`},we={key:0,class:`run-preview`},Te={class:`run-sub`},Ee={class:`run-time`},De=[`title`],Oe={class:`run-action`},ke={key:1,class:`run-noconv`},Ae={key:4,class:`pager run-pager`},je={class:`hint`},Me={key:0,class:`schedule-preview`},Ne={class:`hint`},Pe={class:`hint`},$={class:`jitter-hint`},Fe={class:`hint`},Ie={class:`skill-option`},Le={class:`skill-option-name`},Re={key:0,class:`skill-option-missing`},ze={class:`hint`},Be={class:`hint`},Ve={class:`hint`};function He(h,g,_,v,y,b){let x=u(`font-awesome-icon`),S=u(`el-button`),C=u(`el-skeleton`),w=u(`el-empty`),T=u(`el-switch`),E=u(`el-tooltip`),D=u(`el-tag`),O=u(`el-card`),k=u(`pagination`),A=u(`el-drawer`),j=u(`el-input`),M=u(`el-form-item`),N=u(`el-option`),P=u(`el-option-group`),F=u(`el-select`),I=u(`el-radio`),L=u(`el-radio-group`),R=u(`el-input-number`),z=u(`el-time-picker`),B=u(`el-form`),V=u(`el-dialog`);return m(),s(`div`,X,[e(`div`,Z,[e(`div`,Q,[e(`h2`,ne,i(h.$t(`chat.scheduledTasks.title`)),1),a(S,{type:`primary`,round:``,disabled:h.saving,onClick:h.openCreate},{default:f(()=>[a(x,{icon:`fa-solid fa-plus`,class:`icon`}),r(` `+i(h.$t(`chat.scheduledTasks.create`)),1)]),_:1},8,[`disabled`,`onClick`])]),h.loading?(m(),d(C,{key:0,rows:4,animated:``,class:`loading-block`})):h.tasks.length?(m(),s(l,{key:2},[e(`div`,re,[(m(!0),s(l,null,p(h.pagedTasks,n=>(m(),d(O,{key:n.id,class:`task-card`,shadow:`hover`,onClick:e=>h.selectTask(n)},{default:f(()=>[e(`div`,ie,[e(`div`,ae,i(n.name),1),e(`div`,{class:`task-actions`,onClick:g[0]||=t(()=>{},[`stop`])},[a(T,{"model-value":n.state===`enabled`,onChange:e=>h.toggleState(n,e===!0)},null,8,[`model-value`,`onChange`]),a(E,{content:h.$t(`chat.scheduledTasks.triggerNow`),placement:`top`},{default:f(()=>[a(S,{text:``,class:`icon-action`,loading:h.triggeringId===n.id,onClick:e=>h.triggerNow(n)},{default:f(()=>[h.triggeringId===n.id?o(``,!0):(m(),d(x,{key:0,icon:`fa-solid fa-play`}))]),_:2},1032,[`loading`,`onClick`])]),_:2},1032,[`content`]),a(E,{content:h.$t(`common.button.edit`),placement:`top`},{default:f(()=>[a(S,{text:``,class:`icon-action`,onClick:e=>h.openEdit(n)},{default:f(()=>[a(x,{icon:`fa-solid fa-pen`})]),_:1},8,[`onClick`])]),_:2},1032,[`content`]),a(E,{content:h.$t(`common.button.delete`),placement:`top`},{default:f(()=>[a(S,{text:``,type:`danger`,class:`icon-action`,onClick:e=>h.confirmDelete(n)},{default:f(()=>[a(x,{icon:`fa-solid fa-trash`})]),_:1},8,[`onClick`])]),_:2},1032,[`content`])])]),e(`div`,oe,[a(D,{size:`small`,type:h.stateTagType(n.state),effect:`dark`,round:``},{default:f(()=>[r(i(h.$t(`chat.scheduledTasks.state.${n.state}`)),1)]),_:2},1032,[`type`]),e(`span`,se,[a(x,{icon:`fa-solid fa-clock`,class:`meta-icon`}),r(` `+i(h.scheduleLabel(n.schedule)),1)]),e(`span`,ce,[a(x,{icon:`fa-solid fa-brain`,class:`meta-icon`}),r(` `+i(n.template.model),1)])]),e(`div`,le,i(n.template.question),1),n.last_output_snippet?(m(),s(`div`,ue,i(n.last_output_snippet),1)):o(``,!0),e(`div`,de,[e(`span`,fe,[a(x,{icon:`fa-solid fa-arrows-rotate`,class:`footer-icon`}),r(` `+i(h.$t(`chat.scheduledTasks.runCount`,{count:n.run_count})),1)]),n.last_error?(m(),s(`span`,pe,i(n.last_error),1)):o(``,!0),e(`span`,me,[r(i(h.$t(`chat.scheduledTasks.viewRuns`))+` `,1),a(x,{icon:`fa-solid fa-chevron-right`})])])]),_:2},1032,[`onClick`]))),128))]),h.tasks.length>h.pageSize?(m(),s(`div`,he,[a(k,{"current-page":h.page,"page-size":h.pageSize,total:h.tasks.length,onChange:h.onPageChange},null,8,[`current-page`,`page-size`,`total`,`onChange`])])):o(``,!0)],64)):(m(),d(w,{key:1,description:h.$t(`chat.scheduledTasks.empty`),class:`empty`},null,8,[`description`]))]),a(A,{modelValue:h.showRunHistory,"onUpdate:modelValue":g[1]||=e=>h.showRunHistory=e,title:h.selectedTask?.name,direction:`rtl`,size:`min(560px, 92vw)`,class:`run-history-drawer`},{default:f(()=>[h.selectedTask?(m(),s(`div`,ge,[e(`div`,_e,[e(`span`,null,i(h.scheduleLabel(h.selectedTask.schedule)),1),e(`span`,null,i(h.selectedTask.template.model),1),e(`span`,null,i(h.$t(`chat.scheduledTasks.runCount`,{count:h.selectedTask.run_count})),1)]),e(`div`,ve,i(h.selectedTask.template.question),1)])):o(``,!0),h.runsLoading?(m(),d(C,{key:1,rows:3,animated:``})):h.runs.length?(m(),s(`div`,ye,[(m(!0),s(l,null,p(h.pagedRuns,l=>(m(),s(`div`,{key:l.id,class:n([`run-item`,{clickable:!!l.conversation_id}]),tabindex:l.conversation_id?0:-1,role:l.conversation_id?`button`:void 0,onClick:e=>h.openRun(l),onKeydown:[c(e=>h.openRun(l),[`enter`]),c(t(e=>h.openRun(l),[`prevent`]),[`space`])]},[e(`div`,xe,[e(`div`,Se,[e(`span`,Ce,i(l.conversation_title||h.formatTime(l.scheduled_at)),1),a(D,{size:`small`,type:h.runTagType(l.status),effect:`dark`,round:``,class:`run-tag`},{default:f(()=>[r(i(h.$t(`chat.scheduledTasks.run.${l.status}`)),1)]),_:2},1032,[`type`])]),l.conversation_preview?(m(),s(`div`,we,i(l.conversation_preview),1)):o(``,!0),e(`div`,Te,[e(`span`,Ee,i(h.formatTime(l.scheduled_at)),1),l.error_code||l.error_message?(m(),s(`span`,{key:0,class:`run-error`,title:h.runErrorText(l)},i(h.runErrorText(l)),9,De)):o(``,!0)])]),e(`div`,Oe,[l.conversation_id?(m(),d(x,{key:0,icon:`fa-solid fa-chevron-right`,class:`run-arrow`})):(m(),s(`span`,ke,i(h.$t(`chat.scheduledTasks.noConversation`)),1))])],42,be))),128))])):(m(),d(w,{key:2,description:h.$t(`chat.scheduledTasks.noRuns`)},null,8,[`description`])),!h.runsLoading&&h.runs.length>h.runPageSize?(m(),s(`div`,Ae,[a(k,{"current-page":h.runPage,"page-size":h.runPageSize,total:h.runs.length,onChange:h.onRunPageChange},null,8,[`current-page`,`page-size`,`total`,`onChange`])])):o(``,!0)]),_:1},8,[`modelValue`,`title`]),a(V,{modelValue:h.showCreateDialog,"onUpdate:modelValue":g[16]||=e=>h.showCreateDialog=e,title:h.editingTask?h.$t(`chat.scheduledTasks.edit`):h.$t(`chat.scheduledTasks.create`),width:`540px`,"close-on-click-modal":!1,"close-on-press-escape":!h.saving,"show-close":!h.saving,class:`scheduled-task-dialog`},{footer:f(()=>[a(S,{disabled:h.saving,onClick:h.closeTaskDialog},{default:f(()=>[r(i(h.$t(`common.button.cancel`)),1)]),_:1},8,[`disabled`,`onClick`]),a(S,{type:`primary`,loading:h.saving,onClick:h.saveTask},{default:f(()=>[r(i(h.$t(`common.button.confirm`)),1)]),_:1},8,[`loading`,`onClick`])]),default:f(()=>[a(B,{model:h.form,"label-width":`92px`},{default:f(()=>[a(M,{label:h.$t(`chat.scheduledTasks.form.name`)},{default:f(()=>[a(j,{modelValue:h.form.name,"onUpdate:modelValue":g[2]||=e=>h.form.name=e,placeholder:h.$t(`chat.scheduledTasks.form.namePlaceholder`),maxlength:`80`},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),a(M,{label:h.$t(`chat.scheduledTasks.form.prompt`),required:``},{default:f(()=>[a(j,{modelValue:h.form.question,"onUpdate:modelValue":g[3]||=e=>h.form.question=e,type:`textarea`,rows:6,placeholder:h.$t(`chat.scheduledTasks.form.promptPlaceholder`)},null,8,[`modelValue`,`placeholder`]),e(`div`,je,i(h.$t(`chat.scheduledTasks.form.promptHint`)),1)]),_:1},8,[`label`]),a(M,{label:h.$t(`chat.scheduledTasks.form.model`)},{default:f(()=>[a(F,{modelValue:h.form.model,"onUpdate:modelValue":g[4]||=e=>h.form.model=e,style:{width:`100%`},filterable:``},{default:f(()=>[(m(!0),s(l,null,p(h.modelGroups,e=>(m(),d(P,{key:e.name,label:e.getDisplayName()},{default:f(()=>[(m(!0),s(l,null,p(e.models,e=>(m(),d(N,{key:e.name,label:e.getDisplayName(),value:e.name},null,8,[`label`,`value`]))),128))]),_:2},1032,[`label`]))),128))]),_:1},8,[`modelValue`])]),_:1},8,[`label`]),a(M,{label:h.$t(`chat.scheduledTasks.form.schedule`)},{default:f(()=>[a(L,{modelValue:h.form.scheduleType,"onUpdate:modelValue":g[5]||=e=>h.form.scheduleType=e},{default:f(()=>[a(I,{value:`interval`},{default:f(()=>[r(i(h.$t(`chat.scheduledTasks.scheduleType.interval`)),1)]),_:1}),a(I,{value:`hourly`},{default:f(()=>[r(i(h.$t(`chat.scheduledTasks.scheduleType.hourly`)),1)]),_:1}),a(I,{value:`daily`},{default:f(()=>[r(i(h.$t(`chat.scheduledTasks.scheduleType.daily`)),1)]),_:1}),a(I,{value:`weekly`},{default:f(()=>[r(i(h.$t(`chat.scheduledTasks.scheduleType.weekly`)),1)]),_:1}),a(I,{value:`cron`},{default:f(()=>[r(i(h.$t(`chat.scheduledTasks.scheduleType.cron`)),1)]),_:1})]),_:1},8,[`modelValue`]),h.schedulePreview?(m(),s(`div`,Me,[a(x,{icon:`fa-solid fa-clock`,class:`preview-icon`}),r(` `+i(h.$t(`chat.scheduledTasks.form.schedulePreview`,{text:h.schedulePreview})),1)])):o(``,!0)]),_:1},8,[`label`]),h.form.scheduleType===`interval`?(m(),d(M,{key:0,label:h.$t(`chat.scheduledTasks.scheduleType.interval`)},{default:f(()=>[a(R,{modelValue:h.form.intervalValue,"onUpdate:modelValue":g[6]||=e=>h.form.intervalValue=e,min:1,max:h.intervalMax,step:1,"controls-position":`right`},null,8,[`modelValue`,`max`]),a(F,{modelValue:h.form.intervalUnit,"onUpdate:modelValue":g[7]||=e=>h.form.intervalUnit=e,style:{width:`110px`,"margin-left":`8px`}},{default:f(()=>[a(N,{label:h.$t(`chat.scheduledTasks.form.intervalUnit.minute`),value:`minute`},null,8,[`label`]),a(N,{label:h.$t(`chat.scheduledTasks.form.intervalUnit.hour`),value:`hour`},null,8,[`label`]),a(N,{label:h.$t(`chat.scheduledTasks.form.intervalUnit.day`),value:`day`},null,8,[`label`])]),_:1},8,[`modelValue`]),e(`div`,Ne,i(h.$t(`chat.scheduledTasks.form.intervalHint`)),1)]),_:1},8,[`label`])):o(``,!0),h.form.scheduleType===`hourly`?(m(),d(M,{key:1,label:h.$t(`chat.scheduledTasks.form.hourlyMinute`)},{default:f(()=>[a(R,{modelValue:h.form.hourlyMinute,"onUpdate:modelValue":g[8]||=e=>h.form.hourlyMinute=e,min:0,max:59,step:1,"controls-position":`right`},null,8,[`modelValue`]),e(`div`,Pe,i(h.$t(`chat.scheduledTasks.form.hourlyMinuteHint`)),1)]),_:1},8,[`label`])):o(``,!0),h.form.scheduleType===`daily`?(m(),d(M,{key:2,label:h.$t(`chat.scheduledTasks.form.time`)},{default:f(()=>[a(z,{modelValue:h.form.dailyTime,"onUpdate:modelValue":g[9]||=e=>h.form.dailyTime=e,format:`HH:mm`,"value-format":`HH:mm`},null,8,[`modelValue`]),e(`span`,$,i(h.$t(`chat.scheduledTasks.jitterHint`)),1)]),_:1},8,[`label`])):o(``,!0),h.form.scheduleType===`weekly`?(m(),d(M,{key:3,label:h.$t(`chat.scheduledTasks.form.weekday`)},{default:f(()=>[a(F,{modelValue:h.form.weekday,"onUpdate:modelValue":g[10]||=e=>h.form.weekday=e,style:{width:`120px`}},{default:f(()=>[(m(!0),s(l,null,p(h.weekdays,(e,t)=>(m(),d(N,{key:t,label:e,value:t},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`]),a(z,{modelValue:h.form.dailyTime,"onUpdate:modelValue":g[11]||=e=>h.form.dailyTime=e,format:`HH:mm`,"value-format":`HH:mm`,style:{"margin-left":`8px`}},null,8,[`modelValue`])]),_:1},8,[`label`])):o(``,!0),h.form.scheduleType===`cron`?(m(),d(M,{key:4,label:h.$t(`chat.scheduledTasks.form.cron`)},{default:f(()=>[a(j,{modelValue:h.form.cronExpr,"onUpdate:modelValue":g[12]||=e=>h.form.cronExpr=e,placeholder:`0 9 * * *`},null,8,[`modelValue`]),e(`div`,Fe,i(h.$t(`chat.scheduledTasks.form.cronHint`)),1)]),_:1},8,[`label`])):o(``,!0),a(M,{label:h.$t(`chat.scheduledTasks.form.skills`)},{default:f(()=>[a(F,{modelValue:h.form.authorizedSkills,"onUpdate:modelValue":g[13]||=e=>h.form.authorizedSkills=e,style:{width:`100%`},multiple:``,filterable:``,"collapse-tags":``,"collapse-tags-tooltip":``,loading:h.skillsLoading,placeholder:h.$t(`chat.scheduledTasks.form.skillsPlaceholder`),onVisibleChange:h.onSkillSelectVisible},{default:f(()=>[(m(!0),s(l,null,p(h.authorizableSkills,t=>(m(),d(N,{key:t.slug,label:h.skillLabel(t),value:t.slug,disabled:!t.connected},{default:f(()=>[e(`div`,Ie,[e(`span`,Le,i(h.skillLabel(t)),1),t.connected?o(``,!0):(m(),s(`span`,Re,i(h.$t(`chat.scheduledTasks.form.skillMissing`)),1))])]),_:2},1032,[`label`,`value`,`disabled`]))),128))]),_:1},8,[`modelValue`,`loading`,`placeholder`,`onVisibleChange`]),e(`div`,ze,i(h.$t(`chat.scheduledTasks.form.skillsHint`)),1)]),_:1},8,[`label`]),a(M,{label:h.$t(`chat.scheduledTasks.form.mcpServers`)},{default:f(()=>[a(F,{modelValue:h.form.authorizedMcpServers,"onUpdate:modelValue":g[14]||=e=>h.form.authorizedMcpServers=e,style:{width:`100%`},multiple:``,filterable:``,"collapse-tags":``,"collapse-tags-tooltip":``,loading:h.skillsLoading,placeholder:h.$t(`chat.scheduledTasks.form.mcpServersPlaceholder`),onVisibleChange:h.onSkillSelectVisible},{default:f(()=>[(m(!0),s(l,null,p(h.authorizableMcpServers,e=>(m(),d(N,{key:e.slug,label:h.mcpServerLabel(e),value:e.slug},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`loading`,`placeholder`,`onVisibleChange`]),e(`div`,Be,i(h.$t(`chat.scheduledTasks.form.mcpServersHint`)),1)]),_:1},8,[`label`]),a(M,{label:h.$t(`chat.scheduledTasks.form.maxTurns`)},{default:f(()=>[a(R,{modelValue:h.form.maxTurns,"onUpdate:modelValue":g[15]||=e=>h.form.maxTurns=e,min:1,max:50,step:1,"controls-position":`right`},null,8,[`modelValue`]),e(`div`,Ve,i(h.$t(`chat.scheduledTasks.form.maxTurnsHint`)),1)]),_:1},8,[`label`])]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`,`close-on-press-escape`,`show-close`])])}var Ue=R(Y,[[`render`,He],[`__scopeId`,`data-v-b5908c5d`]]);export{Ue as default};
|
|
1
|
+
import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,S as c,T as l,at as u,j as d,mt as f,rt as p,tt as m,z as h}from"./vendor-chart-Dw-P17PN.js";import{n as g,r as _,t as v}from"./select-CEMcZu9_.js";import{t as y}from"./time-picker-CE4wIugP.js";import{n as b,t as x}from"./form-C5xVtXwR.js";import{t as S}from"./tooltip-DdlttMDs.js";import{t as C}from"./card-D-4S-l7a.js";import{r as w,t as T}from"./radio-Bj0tEwH8.js";import{t as E}from"./drawer-kVVnkuEi.js";import{t as D}from"./empty-xCRn_5sX.js";import{t as O}from"./input-number-CQcHJS_D.js";import{t as k}from"./pagination-DrBCNZpz.js";import{t as A}from"./skeleton-CoheJz5x.js";import{t as j}from"./switch-DN2pyT5S.js";import{t as M}from"./vendor-axios-Ck2ffRoh.js";import{Hi as N,Li as P,wi as F}from"./constants-B_ZAjiS7.js";import{bi as I,ci as L,fi as R,j as z,ki as B,li as V,nn as H,vi as ee}from"./index-Cf679Gpt.js";import{t as te}from"./index.es-DqI2qm7C.js";function U(e){let t=H();return{Authorization:`Bearer ${e}`,"Content-Type":`application/json`,...t?{"x-site-origin":t}:{}}}var W=`${N}/aichat2/scheduled-tasks`;function G(e){let t=e?.response?.data;return t?.error===`skill_not_active`?t.detail??{kind:`skill`,slug:``,reason:`not_active`}:null}var K=new class{async listTasks(e){let{data:t}=await M.post(W,{action:`retrieve_batch`},{headers:U(e)});return t?.items??[]}async createTask(e,t,n=!1){let{data:r}=await M.post(W,{action:`create`,...t,...n?{force:!0}:{}},{headers:U(e)});return r}async updateTask(e,t,n,r=!1){let{data:i}=await M.post(W,{action:`update`,id:t,...n,...r?{force:!0}:{}},{headers:U(e)});return i}async deleteTask(e,t){await M.post(W,{action:`delete`,id:t},{headers:U(e)})}async triggerTask(e,t){let{data:n}=await M.post(W,{action:`trigger`,id:t},{headers:U(e)});return n??{}}async listRuns(e,t){let{data:n}=await M.post(W,{action:`retrieve_runs`,id:t},{headers:U(e)});return n?.items??[]}async listAuthorizableSkills(e){let{data:t}=await M.post(W,{action:`retrieve_authorizable_skills`},{headers:U(e)});return t?.items??[]}async listAuthorizableCapabilities(e){let{data:t}=await M.post(W,{action:`retrieve_authorizable_skills`},{headers:U(e)});return{skills:t?.skills??t?.items??[],mcp_servers:t?.mcp_servers??[]}}},q=Intl.DateTimeFormat().resolvedOptions().timeZone||`Asia/Shanghai`,J=50,Y=h({name:`ScheduledTasks`,components:{FontAwesomeIcon:te,ElButton:I,ElCard:C,ElSkeleton:A,ElEmpty:D,ElSwitch:j,ElTag:ee,ElTooltip:S,ElDrawer:E,ElDialog:R,ElForm:x,ElFormItem:b,ElInput:B,ElSelect:_,ElOption:v,ElOptionGroup:g,ElRadioGroup:w,ElRadio:T,ElTimePicker:y,ElInputNumber:O,Pagination:k},data(){return{tasks:[],runs:[],loading:!1,runsLoading:!1,skillsLoading:!1,saving:!1,showCreateDialog:!1,showRunHistory:!1,selectedTask:null,editingTask:null,authorizableSkills:[],authorizableMcpServers:[],triggeringId:``,weekdays:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],page:1,pageSize:6,runPage:1,runPageSize:8,form:this.emptyForm()}},computed:{token(){return this.$store.state.chat?.credential?.token},modelGroups(){let e=this.$store.state.site?.features??{};return F.filter(t=>e[t.name]?.enabled!==!1).map(e=>({...e,models:e.models.filter(e=>e.enabled!==!1)})).filter(e=>e.models.length>0)},pagedTasks(){let e=(this.page-1)*this.pageSize;return this.tasks.slice(e,e+this.pageSize)},pagedRuns(){let e=(this.runPage-1)*this.runPageSize;return this.runs.slice(e,e+this.runPageSize)},intervalMax(){return this.form.intervalUnit===`minute`?1440:this.form.intervalUnit===`hour`?720:365},schedulePreview(){try{return this.humanizeSchedule(this.buildSchedule())}catch{return``}}},async mounted(){await this.loadTasks()},methods:{emptyForm(){return{name:``,question:``,model:P,scheduleType:`daily`,intervalValue:4,intervalUnit:`hour`,hourlyMinute:0,dailyTime:`09:00`,weekday:1,cronExpr:`0 9 * * *`,authorizedSkills:[],authorizedMcpServers:[],maxTurns:J}},deriveName(e){let t=(e||``).trim().split(`
|
|
2
|
+
`)[0].trim();return t.length>40?`${t.slice(0,40)}…`:t||`Scheduled Task`},async loadTasks(){if(this.token){this.loading=!0;try{this.tasks=await K.listTasks(this.token);let e=Math.max(1,Math.ceil(this.tasks.length/this.pageSize));this.page>e&&(this.page=e)}catch{V.error(this.$t(`chat.scheduledTasks.loadError`))}finally{this.loading=!1}}},async selectTask(e){this.selectedTask=e,this.showRunHistory=!0,this.runPage=1,this.runsLoading=!0;try{this.runs=await K.listRuns(this.token,e.id)}finally{this.runsLoading=!1}},onPageChange(e){this.page=e},onRunPageChange(e){this.runPage=e},openCreate(){this.saving||(this.editingTask=null,this.form=this.emptyForm(),this.showCreateDialog=!0)},closeTaskDialog(){this.saving||(this.showCreateDialog=!1)},openEdit(e){this.editingTask=e;let t=e.schedule,n=`cron`,r=4,i=`hour`,a=0,o=`09:00`,s=`0 9 * * *`,c=1;if(t.type===`cron`){s=t.cron;let[e,r,i,l,u]=t.cron.split(/\s+/),d=e=>/^\d+$/.test(e);i===`*`&&l===`*`&&u===`*`&&r===`*`&&d(e)?(n=`hourly`,a=Number(e)):i===`*`&&l===`*`&&u===`*`&&d(r)&&d(e)?(n=`daily`,o=`${r.padStart(2,`0`)}:${e.padStart(2,`0`)}`):i===`*`&&l===`*`&&d(u)&&d(r)&&d(e)&&(n=`weekly`,c=Number(u),o=`${r.padStart(2,`0`)}:${e.padStart(2,`0`)}`)}else if(t.type===`interval`){n=`interval`;let e=t.interval_seconds;e%86400==0?(i=`day`,r=e/86400):e%3600==0?(i=`hour`,r=e/3600):(i=`minute`,r=Math.max(1,Math.round(e/60)))}this.form={name:e.name,question:e.template.question,model:e.template.model,scheduleType:n,intervalValue:r,intervalUnit:i,hourlyMinute:a,dailyTime:o,weekday:c,cronExpr:s,authorizedSkills:(e.unattended_policy?.mode===`allow_selected`||e.unattended_policy?.mode===`allow_selected_skills`)&&e.unattended_policy.allowed_skills||[],authorizedMcpServers:(e.unattended_policy?.mode===`allow_selected`||e.unattended_policy?.mode===`allow_selected_skills`)&&e.unattended_policy.allowed_mcp_servers||[],maxTurns:e.template.max_turns??J},this.showCreateDialog=!0,this.loadAuthorizableSkills()},buildSchedule(){let{scheduleType:e,intervalValue:t,intervalUnit:n,hourlyMinute:r,dailyTime:i,weekday:a,cronExpr:o}=this.form;if(e===`interval`)return{type:`interval`,interval_seconds:Math.max(60,Math.round(t)*(n===`day`?86400:n===`hour`?3600:60)),tz:q};if(e===`hourly`)return{type:`cron`,cron:`${Math.min(59,Math.max(0,Math.round(r)))} * * * *`,tz:q};if(e===`daily`){let[e,t]=i.split(`:`);return{type:`cron`,cron:`${t} ${e} * * *`,tz:q}}if(e===`weekly`){let[e,t]=i.split(`:`);return{type:`cron`,cron:`${t} ${e} * * ${a}`,tz:q}}return{type:`cron`,cron:o,tz:q}},async saveTask(){if(!this.form.question.trim()){V.warning(this.$t(`chat.scheduledTasks.form.required`));return}if(this.form.authorizedSkills.length>0||this.form.authorizedMcpServers.length>0)try{await L.confirm(this.authorizationConfirmText(),this.$t(`chat.scheduledTasks.form.skillsConfirmTitle`),{type:`warning`,confirmButtonText:this.$t(`common.button.confirm`),cancelButtonText:this.$t(`common.button.cancel`)})}catch{return}let e=[...this.form.authorizedSkills],t=[...this.form.authorizedMcpServers],n={name:this.form.name.trim()||this.deriveName(this.form.question),schedule:this.buildSchedule(),template:{model:this.form.model,question:this.form.question,skills:e,mcp_servers:t,max_turns:this.form.maxTurns},unattended_policy:e.length||t.length?{mode:`allow_selected`,allowed_skills:e,allowed_mcp_servers:t}:{mode:`deny_all`,allowed_skills:[],allowed_mcp_servers:[]}};await this.submitTask(n,!1)},async submitTask(e,t){this.saving=!0;let n=null;try{if(this.editingTask){let n=this.editingTask.id,r=await K.updateTask(this.token,n,e,t),i=this.tasks.findIndex(e=>e.id===n);i!==-1&&(this.tasks[i]=r)}else{let n=await K.createTask(this.token,e,t);this.tasks=[n,...this.tasks],this.page=1}V.success(this.$t(`chat.scheduledTasks.create`)+` OK`),this.showCreateDialog=!1,this.editingTask=null,this.form=this.emptyForm()}catch(e){n=t?null:G(e),n||V.error(this.$t(`chat.scheduledTasks.loadError`))}finally{this.saving=!1}n&&await this.confirmForceSkill(n)&&await this.submitTask(e,!0)},async confirmForceSkill(e){let t=this.capabilityLabel(e.slug);try{return await L.confirm(this.$t(`chat.scheduledTasks.form.skillNotActiveMessage`,{name:t}),this.$t(`chat.scheduledTasks.form.skillNotActiveTitle`),{type:`warning`,confirmButtonText:this.$t(`chat.scheduledTasks.form.skillNotActiveForce`),cancelButtonText:this.$t(`common.button.cancel`)}),!0}catch{return!1}},capabilityLabel(e){let t=this.authorizableSkills.find(t=>t.slug===e);if(t)return t.name||t.slug;let n=this.authorizableMcpServers.find(t=>t.slug===e);return n?n.name||n.slug:e},async loadAuthorizableSkills(e=!1){if(!(!this.token||this.skillsLoading||!e&&(this.authorizableSkills.length||this.authorizableMcpServers.length))){this.skillsLoading=!0;try{let e=await K.listAuthorizableCapabilities(this.token);this.authorizableSkills=e.skills,this.authorizableMcpServers=e.mcp_servers}catch{V.error(this.$t(`chat.scheduledTasks.loadError`))}finally{this.skillsLoading=!1}}},onSkillSelectVisible(e){e&&this.loadAuthorizableSkills(!0)},skillLabel(e){return e.name||e.slug},mcpServerLabel(e){return e.name||e.slug},authorizationConfirmText(){let e=new Set(this.form.authorizedSkills),t=new Set(this.form.authorizedMcpServers),n=this.authorizableSkills.filter(t=>e.has(t.slug)).map(e=>this.skillLabel(e)),r=this.authorizableMcpServers.filter(e=>t.has(e.slug)).map(e=>this.mcpServerLabel(e));return this.$t(`chat.scheduledTasks.form.skillsConfirm`,{count:e.size+t.size,skills:[...n,...r].length?[...n,...r].join(`, `):[...Array.from(e),...Array.from(t)].join(`, `)})},async toggleState(e,t){let n=this.tasks.findIndex(t=>t.id===e.id),r=t?`enabled`:`disabled`;n!==-1&&(this.tasks[n]={...e,state:r});try{let t=await K.updateTask(this.token,e.id,{state:r});n!==-1&&(this.tasks[n]=t)}catch{n!==-1&&(this.tasks[n]={...e,state:e.state}),V.error(this.$t(`chat.scheduledTasks.loadError`))}},async triggerNow(e){if(!this.triggeringId){this.triggeringId=e.id;try{await K.triggerTask(this.token,e.id),V.success(this.$t(`chat.scheduledTasks.triggerSuccess`)),this.showRunHistory&&this.selectedTask?.id===e.id&&(this.runs=await K.listRuns(this.token,e.id),this.runPage=1)}catch{V.error(this.$t(`chat.scheduledTasks.triggerError`))}finally{this.triggeringId=``}}},async confirmDelete(e){await L.confirm(this.$t(`chat.scheduledTasks.deleteConfirm`,{name:e.name}),{type:`warning`});try{await K.deleteTask(this.token,e.id),this.tasks=this.tasks.filter(t=>t.id!==e.id);let t=Math.max(1,Math.ceil(this.tasks.length/this.pageSize));this.page>t&&(this.page=t)}catch{V.error(this.$t(`chat.scheduledTasks.loadError`))}},openRun(e){if(!e.conversation_id)return;let t=this.modelGroups.map(e=>e.name),n=e.conversation_model_group,r=this.$store.state.chat?.modelGroup?.name||`chatgpt`,i=n&&(t.length===0||t.includes(n))?n:r;this.$router.push(`/${i}/conversations/${e.conversation_id}`)},stateTagType(e){return e===`enabled`?`success`:e===`error`?`danger`:`info`},runTagType(e){return e===`success`?`success`:e===`failed`?`danger`:`warning`},runErrorText(e){if(e.error_message)return e.error_message;let t=e.error_code;if(!t)return``;let n=`chat.scheduledTasks.run.reason.${t}`;return this.$te(n)?this.$t(n):t.replace(/_/g,` `)},humanizeSchedule(e){let t=(e,t)=>this.$t(`chat.scheduledTasks.humanize.${e}`,t??{});if(e.type===`interval`){let n=e.interval_seconds;return n%86400==0?t(`everyNDays`,{n:n/86400}):n%3600==0?t(`everyNHours`,{n:n/3600}):t(`everyNMinutes`,{n:Math.round(n/60)})}if(e.type===`cron`){let[n,r,i,a,o]=e.cron.split(/\s+/),s=e=>/^\d+$/.test(e);if(i===`*`&&a===`*`&&o===`*`&&r===`*`&&s(n))return t(`hourlyAtMinute`,{n:Number(n)});let c=s(r)&&s(n)?`${r.padStart(2,`0`)}:${n.padStart(2,`0`)}`:``;return c&&i===`*`&&a===`*`&&o===`*`?t(`dailyAt`,{time:c}):c&&i===`*`&&a===`*`&&s(o)?t(`weeklyAt`,{weekday:this.weekdays[Number(o)]??o,time:c}):t(`cronRaw`,{cron:e.cron})}return t(`once`,{time:new Date(e.at*1e3).toLocaleString()})},scheduleLabel(e){return this.humanizeSchedule(e)},formatTime(e){return new Date(e*1e3).toLocaleString()}}}),X={class:`scheduled-tasks`},Z={class:`inner`},Q={class:`header`},ne={class:`title`},re={class:`task-list`},ie={class:`task-top`},ae={class:`task-name`},oe={class:`task-meta`},se={class:`meta-chip`},ce={class:`meta-chip`},le={class:`task-prompt`},ue={key:0,class:`task-last-output`},de={class:`task-footer`},fe={class:`run-count`},pe={key:0,class:`error-hint`},me={class:`open-hint`},he={key:0,class:`pager`},ge={key:0,class:`run-context`},_e={class:`run-context-meta`},ve={class:`run-context-prompt`},ye={key:3,class:`run-list`},be=[`tabindex`,`role`,`onClick`,`onKeydown`],xe={class:`run-body`},Se={class:`run-line`},Ce={class:`run-title`},we={key:0,class:`run-preview`},Te={class:`run-sub`},Ee={class:`run-time`},De=[`title`],Oe={class:`run-action`},ke={key:1,class:`run-noconv`},Ae={key:4,class:`pager run-pager`},je={class:`hint`},Me={key:0,class:`schedule-preview`},Ne={class:`hint`},Pe={class:`hint`},$={class:`jitter-hint`},Fe={class:`hint`},Ie={class:`skill-option`},Le={class:`skill-option-name`},Re={key:0,class:`skill-option-missing`},ze={class:`hint`},Be={class:`hint`},Ve={class:`hint`};function He(h,g,_,v,y,b){let x=u(`font-awesome-icon`),S=u(`el-button`),C=u(`el-skeleton`),w=u(`el-empty`),T=u(`el-switch`),E=u(`el-tooltip`),D=u(`el-tag`),O=u(`el-card`),k=u(`pagination`),A=u(`el-drawer`),j=u(`el-input`),M=u(`el-form-item`),N=u(`el-option`),P=u(`el-option-group`),F=u(`el-select`),I=u(`el-radio`),L=u(`el-radio-group`),R=u(`el-input-number`),z=u(`el-time-picker`),B=u(`el-form`),V=u(`el-dialog`);return m(),s(`div`,X,[e(`div`,Z,[e(`div`,Q,[e(`h2`,ne,i(h.$t(`chat.scheduledTasks.title`)),1),a(S,{type:`primary`,round:``,disabled:h.saving,onClick:h.openCreate},{default:f(()=>[a(x,{icon:`fa-solid fa-plus`,class:`icon`}),r(` `+i(h.$t(`chat.scheduledTasks.create`)),1)]),_:1},8,[`disabled`,`onClick`])]),h.loading?(m(),d(C,{key:0,rows:4,animated:``,class:`loading-block`})):h.tasks.length?(m(),s(l,{key:2},[e(`div`,re,[(m(!0),s(l,null,p(h.pagedTasks,n=>(m(),d(O,{key:n.id,class:`task-card`,shadow:`hover`,onClick:e=>h.selectTask(n)},{default:f(()=>[e(`div`,ie,[e(`div`,ae,i(n.name),1),e(`div`,{class:`task-actions`,onClick:g[0]||=t(()=>{},[`stop`])},[a(T,{"model-value":n.state===`enabled`,onChange:e=>h.toggleState(n,e===!0)},null,8,[`model-value`,`onChange`]),a(E,{content:h.$t(`chat.scheduledTasks.triggerNow`),placement:`top`},{default:f(()=>[a(S,{text:``,class:`icon-action`,loading:h.triggeringId===n.id,onClick:e=>h.triggerNow(n)},{default:f(()=>[h.triggeringId===n.id?o(``,!0):(m(),d(x,{key:0,icon:`fa-solid fa-play`}))]),_:2},1032,[`loading`,`onClick`])]),_:2},1032,[`content`]),a(E,{content:h.$t(`common.button.edit`),placement:`top`},{default:f(()=>[a(S,{text:``,class:`icon-action`,onClick:e=>h.openEdit(n)},{default:f(()=>[a(x,{icon:`fa-solid fa-pen`})]),_:1},8,[`onClick`])]),_:2},1032,[`content`]),a(E,{content:h.$t(`common.button.delete`),placement:`top`},{default:f(()=>[a(S,{text:``,type:`danger`,class:`icon-action`,onClick:e=>h.confirmDelete(n)},{default:f(()=>[a(x,{icon:`fa-solid fa-trash`})]),_:1},8,[`onClick`])]),_:2},1032,[`content`])])]),e(`div`,oe,[a(D,{size:`small`,type:h.stateTagType(n.state),effect:`dark`,round:``},{default:f(()=>[r(i(h.$t(`chat.scheduledTasks.state.${n.state}`)),1)]),_:2},1032,[`type`]),e(`span`,se,[a(x,{icon:`fa-solid fa-clock`,class:`meta-icon`}),r(` `+i(h.scheduleLabel(n.schedule)),1)]),e(`span`,ce,[a(x,{icon:`fa-solid fa-brain`,class:`meta-icon`}),r(` `+i(n.template.model),1)])]),e(`div`,le,i(n.template.question),1),n.last_output_snippet?(m(),s(`div`,ue,i(n.last_output_snippet),1)):o(``,!0),e(`div`,de,[e(`span`,fe,[a(x,{icon:`fa-solid fa-arrows-rotate`,class:`footer-icon`}),r(` `+i(h.$t(`chat.scheduledTasks.runCount`,{count:n.run_count})),1)]),n.last_error?(m(),s(`span`,pe,i(n.last_error),1)):o(``,!0),e(`span`,me,[r(i(h.$t(`chat.scheduledTasks.viewRuns`))+` `,1),a(x,{icon:`fa-solid fa-chevron-right`})])])]),_:2},1032,[`onClick`]))),128))]),h.tasks.length>h.pageSize?(m(),s(`div`,he,[a(k,{"current-page":h.page,"page-size":h.pageSize,total:h.tasks.length,onChange:h.onPageChange},null,8,[`current-page`,`page-size`,`total`,`onChange`])])):o(``,!0)],64)):(m(),d(w,{key:1,description:h.$t(`chat.scheduledTasks.empty`),class:`empty`},null,8,[`description`]))]),a(A,{modelValue:h.showRunHistory,"onUpdate:modelValue":g[1]||=e=>h.showRunHistory=e,title:h.selectedTask?.name,direction:`rtl`,size:`min(560px, 92vw)`,class:`run-history-drawer`},{default:f(()=>[h.selectedTask?(m(),s(`div`,ge,[e(`div`,_e,[e(`span`,null,i(h.scheduleLabel(h.selectedTask.schedule)),1),e(`span`,null,i(h.selectedTask.template.model),1),e(`span`,null,i(h.$t(`chat.scheduledTasks.runCount`,{count:h.selectedTask.run_count})),1)]),e(`div`,ve,i(h.selectedTask.template.question),1)])):o(``,!0),h.runsLoading?(m(),d(C,{key:1,rows:3,animated:``})):h.runs.length?(m(),s(`div`,ye,[(m(!0),s(l,null,p(h.pagedRuns,l=>(m(),s(`div`,{key:l.id,class:n([`run-item`,{clickable:!!l.conversation_id}]),tabindex:l.conversation_id?0:-1,role:l.conversation_id?`button`:void 0,onClick:e=>h.openRun(l),onKeydown:[c(e=>h.openRun(l),[`enter`]),c(t(e=>h.openRun(l),[`prevent`]),[`space`])]},[e(`div`,xe,[e(`div`,Se,[e(`span`,Ce,i(l.conversation_title||h.formatTime(l.scheduled_at)),1),a(D,{size:`small`,type:h.runTagType(l.status),effect:`dark`,round:``,class:`run-tag`},{default:f(()=>[r(i(h.$t(`chat.scheduledTasks.run.${l.status}`)),1)]),_:2},1032,[`type`])]),l.conversation_preview?(m(),s(`div`,we,i(l.conversation_preview),1)):o(``,!0),e(`div`,Te,[e(`span`,Ee,i(h.formatTime(l.scheduled_at)),1),l.error_code||l.error_message?(m(),s(`span`,{key:0,class:`run-error`,title:h.runErrorText(l)},i(h.runErrorText(l)),9,De)):o(``,!0)])]),e(`div`,Oe,[l.conversation_id?(m(),d(x,{key:0,icon:`fa-solid fa-chevron-right`,class:`run-arrow`})):(m(),s(`span`,ke,i(h.$t(`chat.scheduledTasks.noConversation`)),1))])],42,be))),128))])):(m(),d(w,{key:2,description:h.$t(`chat.scheduledTasks.noRuns`)},null,8,[`description`])),!h.runsLoading&&h.runs.length>h.runPageSize?(m(),s(`div`,Ae,[a(k,{"current-page":h.runPage,"page-size":h.runPageSize,total:h.runs.length,onChange:h.onRunPageChange},null,8,[`current-page`,`page-size`,`total`,`onChange`])])):o(``,!0)]),_:1},8,[`modelValue`,`title`]),a(V,{modelValue:h.showCreateDialog,"onUpdate:modelValue":g[16]||=e=>h.showCreateDialog=e,title:h.editingTask?h.$t(`chat.scheduledTasks.edit`):h.$t(`chat.scheduledTasks.create`),width:`540px`,"close-on-click-modal":!1,"close-on-press-escape":!h.saving,"show-close":!h.saving,class:`scheduled-task-dialog`},{footer:f(()=>[a(S,{disabled:h.saving,onClick:h.closeTaskDialog},{default:f(()=>[r(i(h.$t(`common.button.cancel`)),1)]),_:1},8,[`disabled`,`onClick`]),a(S,{type:`primary`,loading:h.saving,onClick:h.saveTask},{default:f(()=>[r(i(h.$t(`common.button.confirm`)),1)]),_:1},8,[`loading`,`onClick`])]),default:f(()=>[a(B,{model:h.form,"label-width":`92px`},{default:f(()=>[a(M,{label:h.$t(`chat.scheduledTasks.form.name`)},{default:f(()=>[a(j,{modelValue:h.form.name,"onUpdate:modelValue":g[2]||=e=>h.form.name=e,placeholder:h.$t(`chat.scheduledTasks.form.namePlaceholder`),maxlength:`80`},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),a(M,{label:h.$t(`chat.scheduledTasks.form.prompt`),required:``},{default:f(()=>[a(j,{modelValue:h.form.question,"onUpdate:modelValue":g[3]||=e=>h.form.question=e,type:`textarea`,rows:6,placeholder:h.$t(`chat.scheduledTasks.form.promptPlaceholder`)},null,8,[`modelValue`,`placeholder`]),e(`div`,je,i(h.$t(`chat.scheduledTasks.form.promptHint`)),1)]),_:1},8,[`label`]),a(M,{label:h.$t(`chat.scheduledTasks.form.model`)},{default:f(()=>[a(F,{modelValue:h.form.model,"onUpdate:modelValue":g[4]||=e=>h.form.model=e,style:{width:`100%`},filterable:``},{default:f(()=>[(m(!0),s(l,null,p(h.modelGroups,e=>(m(),d(P,{key:e.name,label:e.getDisplayName()},{default:f(()=>[(m(!0),s(l,null,p(e.models,e=>(m(),d(N,{key:e.name,label:e.getDisplayName(),value:e.name},null,8,[`label`,`value`]))),128))]),_:2},1032,[`label`]))),128))]),_:1},8,[`modelValue`])]),_:1},8,[`label`]),a(M,{label:h.$t(`chat.scheduledTasks.form.schedule`)},{default:f(()=>[a(L,{modelValue:h.form.scheduleType,"onUpdate:modelValue":g[5]||=e=>h.form.scheduleType=e},{default:f(()=>[a(I,{value:`interval`},{default:f(()=>[r(i(h.$t(`chat.scheduledTasks.scheduleType.interval`)),1)]),_:1}),a(I,{value:`hourly`},{default:f(()=>[r(i(h.$t(`chat.scheduledTasks.scheduleType.hourly`)),1)]),_:1}),a(I,{value:`daily`},{default:f(()=>[r(i(h.$t(`chat.scheduledTasks.scheduleType.daily`)),1)]),_:1}),a(I,{value:`weekly`},{default:f(()=>[r(i(h.$t(`chat.scheduledTasks.scheduleType.weekly`)),1)]),_:1}),a(I,{value:`cron`},{default:f(()=>[r(i(h.$t(`chat.scheduledTasks.scheduleType.cron`)),1)]),_:1})]),_:1},8,[`modelValue`]),h.schedulePreview?(m(),s(`div`,Me,[a(x,{icon:`fa-solid fa-clock`,class:`preview-icon`}),r(` `+i(h.$t(`chat.scheduledTasks.form.schedulePreview`,{text:h.schedulePreview})),1)])):o(``,!0)]),_:1},8,[`label`]),h.form.scheduleType===`interval`?(m(),d(M,{key:0,label:h.$t(`chat.scheduledTasks.scheduleType.interval`)},{default:f(()=>[a(R,{modelValue:h.form.intervalValue,"onUpdate:modelValue":g[6]||=e=>h.form.intervalValue=e,min:1,max:h.intervalMax,step:1,"controls-position":`right`},null,8,[`modelValue`,`max`]),a(F,{modelValue:h.form.intervalUnit,"onUpdate:modelValue":g[7]||=e=>h.form.intervalUnit=e,style:{width:`110px`,"margin-left":`8px`}},{default:f(()=>[a(N,{label:h.$t(`chat.scheduledTasks.form.intervalUnit.minute`),value:`minute`},null,8,[`label`]),a(N,{label:h.$t(`chat.scheduledTasks.form.intervalUnit.hour`),value:`hour`},null,8,[`label`]),a(N,{label:h.$t(`chat.scheduledTasks.form.intervalUnit.day`),value:`day`},null,8,[`label`])]),_:1},8,[`modelValue`]),e(`div`,Ne,i(h.$t(`chat.scheduledTasks.form.intervalHint`)),1)]),_:1},8,[`label`])):o(``,!0),h.form.scheduleType===`hourly`?(m(),d(M,{key:1,label:h.$t(`chat.scheduledTasks.form.hourlyMinute`)},{default:f(()=>[a(R,{modelValue:h.form.hourlyMinute,"onUpdate:modelValue":g[8]||=e=>h.form.hourlyMinute=e,min:0,max:59,step:1,"controls-position":`right`},null,8,[`modelValue`]),e(`div`,Pe,i(h.$t(`chat.scheduledTasks.form.hourlyMinuteHint`)),1)]),_:1},8,[`label`])):o(``,!0),h.form.scheduleType===`daily`?(m(),d(M,{key:2,label:h.$t(`chat.scheduledTasks.form.time`)},{default:f(()=>[a(z,{modelValue:h.form.dailyTime,"onUpdate:modelValue":g[9]||=e=>h.form.dailyTime=e,format:`HH:mm`,"value-format":`HH:mm`},null,8,[`modelValue`]),e(`span`,$,i(h.$t(`chat.scheduledTasks.jitterHint`)),1)]),_:1},8,[`label`])):o(``,!0),h.form.scheduleType===`weekly`?(m(),d(M,{key:3,label:h.$t(`chat.scheduledTasks.form.weekday`)},{default:f(()=>[a(F,{modelValue:h.form.weekday,"onUpdate:modelValue":g[10]||=e=>h.form.weekday=e,style:{width:`120px`}},{default:f(()=>[(m(!0),s(l,null,p(h.weekdays,(e,t)=>(m(),d(N,{key:t,label:e,value:t},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`]),a(z,{modelValue:h.form.dailyTime,"onUpdate:modelValue":g[11]||=e=>h.form.dailyTime=e,format:`HH:mm`,"value-format":`HH:mm`,style:{"margin-left":`8px`}},null,8,[`modelValue`])]),_:1},8,[`label`])):o(``,!0),h.form.scheduleType===`cron`?(m(),d(M,{key:4,label:h.$t(`chat.scheduledTasks.form.cron`)},{default:f(()=>[a(j,{modelValue:h.form.cronExpr,"onUpdate:modelValue":g[12]||=e=>h.form.cronExpr=e,placeholder:`0 9 * * *`},null,8,[`modelValue`]),e(`div`,Fe,i(h.$t(`chat.scheduledTasks.form.cronHint`)),1)]),_:1},8,[`label`])):o(``,!0),a(M,{label:h.$t(`chat.scheduledTasks.form.skills`)},{default:f(()=>[a(F,{modelValue:h.form.authorizedSkills,"onUpdate:modelValue":g[13]||=e=>h.form.authorizedSkills=e,style:{width:`100%`},multiple:``,filterable:``,"collapse-tags":``,"collapse-tags-tooltip":``,loading:h.skillsLoading,placeholder:h.$t(`chat.scheduledTasks.form.skillsPlaceholder`),onVisibleChange:h.onSkillSelectVisible},{default:f(()=>[(m(!0),s(l,null,p(h.authorizableSkills,t=>(m(),d(N,{key:t.slug,label:h.skillLabel(t),value:t.slug,disabled:!t.connected},{default:f(()=>[e(`div`,Ie,[e(`span`,Le,i(h.skillLabel(t)),1),t.connected?o(``,!0):(m(),s(`span`,Re,i(h.$t(`chat.scheduledTasks.form.skillMissing`)),1))])]),_:2},1032,[`label`,`value`,`disabled`]))),128))]),_:1},8,[`modelValue`,`loading`,`placeholder`,`onVisibleChange`]),e(`div`,ze,i(h.$t(`chat.scheduledTasks.form.skillsHint`)),1)]),_:1},8,[`label`]),a(M,{label:h.$t(`chat.scheduledTasks.form.mcpServers`)},{default:f(()=>[a(F,{modelValue:h.form.authorizedMcpServers,"onUpdate:modelValue":g[14]||=e=>h.form.authorizedMcpServers=e,style:{width:`100%`},multiple:``,filterable:``,"collapse-tags":``,"collapse-tags-tooltip":``,loading:h.skillsLoading,placeholder:h.$t(`chat.scheduledTasks.form.mcpServersPlaceholder`),onVisibleChange:h.onSkillSelectVisible},{default:f(()=>[(m(!0),s(l,null,p(h.authorizableMcpServers,e=>(m(),d(N,{key:e.slug,label:h.mcpServerLabel(e),value:e.slug},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`loading`,`placeholder`,`onVisibleChange`]),e(`div`,Be,i(h.$t(`chat.scheduledTasks.form.mcpServersHint`)),1)]),_:1},8,[`label`]),a(M,{label:h.$t(`chat.scheduledTasks.form.maxTurns`)},{default:f(()=>[a(R,{modelValue:h.form.maxTurns,"onUpdate:modelValue":g[15]||=e=>h.form.maxTurns=e,min:1,max:50,step:1,"controls-position":`right`},null,8,[`modelValue`]),e(`div`,Ve,i(h.$t(`chat.scheduledTasks.form.maxTurnsHint`)),1)]),_:1},8,[`label`])]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`,`close-on-press-escape`,`show-close`])])}var Ue=z(Y,[[`render`,He],[`__scopeId`,`data-v-b5908c5d`]]);export{Ue as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,T as c,at as l,j as u,mt as d,rt as f,tt as p,z as m}from"./vendor-chart-Dw-P17PN.js";import{b as h,nt as g}from"./use-deprecated-B-uvyrTL.js";import{
|
|
1
|
+
import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,T as c,at as l,j as u,mt as d,rt as f,tt as p,z as m}from"./vendor-chart-Dw-P17PN.js";import{b as h,nt as g}from"./use-deprecated-B-uvyrTL.js";import{U as _,Y as v,ai as y,bi as b,fi as x,j as S,ni as C,qr as w}from"./index-Cf679Gpt.js";import{t as T}from"./index.es-DqI2qm7C.js";import{t as E}from"./CopyToClipboard-DnPi7U0x.js";var D=m({name:`ApplicationInfo`,components:{FontAwesomeIcon:T,ElButton:b,Check:h,ElIcon:g,CopyToClipboard:E},props:{application:{type:Object,required:!0},showType:{type:Boolean,default:!1},showId:{type:Boolean,default:!1}},emits:[`buy`,`usage`],computed:{showPayment(){return!C()||this.application?.scope===`Global`?!0:(this.application?.packages||[]).some(e=>e?.metadata?.apple_product_id)},remainingAmountText(){let e=Number(this.application?.remaining_amount??0);return!Number.isFinite(e)||e<0?`0.00`:e.toFixed(2)}}}),O={class:`flex flex-col min-w-0`},k={key:0,class:`app-id-row`},A={class:`icon !mb-0 flex-shrink-0`},j={class:`app-id-line`},M={class:`app-id-label`},N={class:`app-id-value`},P={key:1,class:`icon`},F={class:`text-left`},I={class:`description`},L={key:0},ee={key:1},R={class:`value`},z={class:`description2`},B={key:0},V={key:1},H={class:`actions`};function U(n,c,f,m,h,g){let _=l(`check`),v=l(`el-icon`),y=l(`font-awesome-icon`),b=l(`copy-to-clipboard`),x=l(`el-tag`),S=l(`el-button`);return p(),s(`div`,null,[e(`div`,O,[a(v,{class:`check`},{default:d(()=>[a(_)]),_:1}),n.showId?(p(),s(`div`,k,[e(`div`,A,[a(y,{icon:`fa-solid fa-wallet`})]),e(`div`,j,[e(`span`,M,i(n.$t(`application.field.id`))+`:`,1),e(`span`,N,i(n.application.id),1),n.application.id?(p(),u(b,{key:0,content:n.application.id,class:`copy-small`},null,8,[`content`])):o(``,!0)])])):(p(),s(`div`,P,[a(y,{icon:`fa-solid fa-wallet`})])),e(`div`,F,[e(`p`,I,[n.application.service?(p(),s(`span`,ee,i(n.$t(`application.title.applicationBalance`,{service:n.application.service?.title})),1)):(p(),s(`span`,L,i(n.$t(`application.title.globalBalance`)),1)),n.application.role===`grantee`?(p(),u(x,{key:2,class:`shared-badge`,size:`small`,type:`warning`,effect:`dark`,round:``},{default:d(()=>[r(i(n.$t(`application.badge.shared`)),1)]),_:1})):o(``,!0)]),e(`p`,R,i(n.remainingAmountText)+` `+i(n.$t(`service.unit.`+(n.application?.service?.unit||`credit`)+`s`)),1),e(`p`,z,[n.application.type===`Period`?(p(),s(`span`,B,i(n.$t(`application.field.expiredAt`))+`: `+i(n.$dayjs.format(n.application.expired_at)),1)):(p(),s(`span`,V,i(n.$t(`application.message.neverExpire`)),1))])])]),e(`div`,H,[a(S,{size:`small`,round:``,onClick:c[0]||=t(e=>n.$emit(`usage`,n.application),[`stop`])},{default:d(()=>[a(y,{icon:`fa-solid fa-chart-line`,class:`mr-1 text-[11px]`}),r(` `+i(n.$t(`application.button.usage`)),1)]),_:1}),n.showPayment?(p(),u(S,{key:0,type:`primary`,round:``,size:`small`,onClick:c[1]||=t(e=>n.$emit(`buy`,n.application),[`stop`])},{default:d(()=>[a(y,{icon:`fa-solid fa-coins`,class:`mr-1 text-[11px]`}),r(` `+i(n.$t(`application.button.buyMore`)),1)]),_:1})):o(``,!0)])])}var W=m({name:`ApplicationStatus`,components:{ElDialog:x,FontAwesomeIcon:T,ApplicationInfo:S(D,[[`render`,U],[`__scopeId`,`data-v-5b8f4a14`]])},props:{application:{type:Object,required:!0},applications:{type:Array,default:void 0},service:{type:Object,required:!0}},emits:[`select`],data(){return{visible:!1,applicationType:w}},computed:{authenticated(){return!!this.$store.state.token.access},user(){return this.$store.state.user},balanceAmount(){return Number(this.application?.remaining_amount??0)},balanceUnit(){let e=`service.unit.${this.application?.service?.unit||`credit`}`+(this.balanceAmount===1?``:`s`);return this.$t(e)},balanceText(){let e=this.balanceAmount;return Number.isFinite(e)?e>=1e3?Math.round(e).toLocaleString():e>=100?e.toFixed(1):e.toFixed(2):`0`},balanceTitle(){return`${this.balanceText} ${this.balanceUnit}`}},methods:{onGoUsage(e){let t={name:v,query:{application_id:e.id}};if(y()){this.visible=!1,this.$router.push(t);return}window.open(this.$router.resolve(t).href,`_blank`)},onBuyMore(e){let t={name:_,params:{id:e.id}};if(y()){this.visible=!1,this.$router.push(t);return}window.open(this.$router.resolve(t).href,`_blank`)},onSelectApplication(e){this.$emit(`select`,e)}}}),G={class:`status`},K={key:0},q={class:`text-center mb-4`},J={class:`flex flex-col gap-4 mb-6 overflow-y-auto`},Y=[`title`],X={class:`entry-amount`},Z={class:`entry-unit`};function Q(t,r,m,h,g,_){let v=l(`application-info`),y=l(`el-dialog`),b=l(`font-awesome-icon`);return p(),s(`div`,G,[a(y,{modelValue:t.visible,"onUpdate:modelValue":r[0]||=e=>t.visible=e,class:`mt-12`,width:`450px`},{default:d(()=>[t.application?(p(),s(`div`,K,[e(`p`,q,i(t.$t(`application.message.applicationSelection`)),1),e(`div`,J,[(p(!0),s(c,null,f(t.applications,(e,r)=>(p(),u(v,{key:r,class:n({item:!0,active:t.application?.id===e.id}),application:e,"show-id":``,onClick:n=>t.onSelectApplication(e),onUsage:n=>t.onGoUsage(e),onBuy:n=>t.onBuyMore(e)},null,8,[`class`,`application`,`onClick`,`onUsage`,`onBuy`]))),128))])])):o(``,!0)]),_:1},8,[`modelValue`]),e(`button`,{type:`button`,class:`entry`,title:t.balanceTitle,onClick:r[1]||=e=>t.visible=!0},[a(b,{icon:`fa-solid fa-wallet`,class:`entry-icon`}),e(`span`,X,i(t.balanceText),1),e(`span`,Z,i(t.balanceUnit),1)],8,Y)])}var $=S(W,[[`render`,Q],[`__scopeId`,`data-v-81732bd2`]]);export{$ as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./rolldown-runtime--c01j_DQ.js";import{A as e,Gt as t,I as n,Jt as r,L as i,M as a,N as o,T as s,at as c,j as l,mt as u,rt as d,tt as f,z as p}from"./vendor-chart-Dw-P17PN.js";import{t as m}from"./card-D-4S-l7a.js";import{n as h,t as g}from"./row-
|
|
1
|
+
import"./rolldown-runtime--c01j_DQ.js";import{A as e,Gt as t,I as n,Jt as r,L as i,M as a,N as o,T as s,at as c,j as l,mt as u,rt as d,tt as f,z as p}from"./vendor-chart-Dw-P17PN.js";import{t as m}from"./card-D-4S-l7a.js";import{n as h,t as g}from"./row-hkZOEMJa.js";import{t as _}from"./empty-xCRn_5sX.js";import{t as v}from"./skeleton-CoheJz5x.js";import{Gn as y,Jr as b,K as x,U as S,Xn as C,bi as w,cn as T,j as E,li as D,ni as O,qr as k,qt as A,rr as j,un as M,ur as N,vi as P}from"./index-Cf679Gpt.js";import{t as F}from"./index.es-DqI2qm7C.js";var I=p({name:`ConsoleSubscriptionBuy`,components:{ElSkeleton:v,ElRow:g,ElTag:P,ElCol:h,ElCard:m,ElEmpty:_,FontAwesomeIcon:F,ElButton:w},data(){return{application:void 0,application2:void 0,type:k.PERIOD,services:[],loading:!1,loadFailed:!1,creating:!1,subscription:void 0}},computed:{site(){return this.$store.getters.site},applicationId(){return this.$route.params?.id?.toString()},showPayment(){return!O()},effectiveMarkupRatio(){return M(this.application2,this.site)},pricingAvailable(){return this.effectiveMarkupRatio!==void 0},subscriptions(){let e=[{name:`WEEK`,label:this.$t(`console.subscription.weekly`),description:this.$t(`console.subscription.weekly.description`),duration:10080*60},{name:`MONTH`,label:this.$t(`console.subscription.monthly`),description:this.$t(`console.subscription.monthly.description`),duration:720*60*60},{name:`YEAR`,tag:this.$t(`console.button.suggested`),label:this.$t(`console.subscription.yearly`),description:this.$t(`console.subscription.yearly.description`),duration:365*24*60*60}];for(let t of e){console.log(`item`,t);let e=this.getPackages(t.duration);console.log(`pkgs`,e),t.available=e.length>0&&this.effectiveMarkupRatio!==void 0,t.available&&(t.price=T(e.reduce((e,t)=>e+t.price,0),this.effectiveMarkupRatio));for(let n of e)t.benefits||=[],t.benefits.push({enabled:!0,content:`${n?.service?.title} - ${n.amount} `+this.$t(`service.unit.`+n?.service?.unit+`s`)});t.benefits?.push({enabled:t.name!==`WEEK`,content:this.$t(`console.message.benefit1`)}),t.benefits?.push({enabled:t.name!==`WEEK`,content:this.$t(`console.message.benefit2`)})}return e},service(){return this.application?.service},serviceIds(){return!this.application||!this.application.service?[]:[this.application.service.id]}},async mounted(){await this.onInitialize()},methods:{async onInitialize(){this.loading=!0,this.loadFailed=!1;try{await this.onFetchApplication(),await this.onFetchApplication2(),await this.onCreateApplications(),this.subscription=this.subscriptions.find(e=>e.available)}catch{this.loadFailed=!0}finally{this.loading=!1}},getPriceString:A,onBuyExtra(){this.$router.push({name:S,params:{id:this.applicationId}})},getPackages(e){let t=[];if(!this.service)return[];let n=[this.service].sort((e,t)=>this.serviceIds.indexOf(e.id)-this.serviceIds.indexOf(t.id));for(let r of n){let n=r.packages?.find(t=>t.type===b.PERIOD&&t.duration===e);n&&t.push({...n,service:r})}return t},async onCreateApplications(){let e=[];if(this.application2||e.push(this.application?.service?.id),e.length>0){for(let t of e)await j.create({service_id:t,type:k.PERIOD});await this.onFetchApplication2()}},onChangeType(){console.log(`onChangeType`,this.type),this.$router.push({name:S,params:this.$route.params})},async onFetchServices(){let{data:e}=await y.getAll({id:this.serviceIds});this.services=e.items,console.debug(`services`,this.services)},async onFetchApplication(){let{data:e}=await j.get(this.applicationId);this.application=e,console.debug(`application`,this.application)},async onFetchApplication2(){let{data:e}=await j.getAll({limit:100,offset:0,user_id:this.$store.getters.user.id,ordering:`-created_at`,service_id:this.serviceIds,type:k.PERIOD});this.application2=e.items?.[0],console.debug(`application2`,this.application2)},onCreateOrder(e){let t=this.getPackages(e.duration);if(!(!this.pricingAvailable||!e.available||t.length===0)){if(this.subscription=e,this.creating=!0,!this.application2||!this.application2.id){D.error(this.$t(`console.message.applicationNotFound`)),this.creating=!1;return}N(`payment_initiated`,{service:this.service?.alias,action:`subscribe`,duration:e.duration}),C.create({application_ids:[this.application2.id],package_ids:t.map(e=>e.id),description:this.service?.title+` - `+e.label}).then(({data:e})=>{this.creating=!1,this.$router.push({name:x,params:{id:e.id}})}).catch(e=>{D.error(this.$t(`order.message.createFailed`)),this.creating=!1,N(`payment_failed`,{service:this.service?.alias,action:`subscribe`,error:e?.response?.data?.error?.message??String(e)})})}}}}),L={class:`title`},R={class:`introduction`},z={key:1,class:`text-center`},B={class:`name`},V={class:`price`},H={key:1,class:`text-[var(--el-text-color-secondary)]`},U={class:`description`},W={class:`benefits`},G={class:`operations`},K={key:3,class:`extra`};function q(p,m,h,g,_,v){let y=c(`el-col`),b=c(`el-row`),x=c(`el-empty`),S=c(`el-skeleton`),C=c(`el-button`),w=c(`el-tag`),T=c(`font-awesome-icon`),E=c(`el-card`);return f(),l(b,{class:`panel`},{default:u(()=>[i(y,{span:24},{default:u(()=>[i(b,null,{default:u(()=>[i(y,{span:24},{default:u(()=>[e(`h2`,L,r(p.$t(`common.title.buyMore`)),1)]),_:1})]),_:1}),i(b,null,{default:u(()=>[i(y,{span:24},{default:u(()=>[i(E,{shadow:`hover`,class:`card`},{default:u(()=>[i(b,null,{default:u(()=>[p.showPayment?(f(),l(y,{key:1,class:`max-w-4xl mx-auto`},{default:u(()=>[e(`p`,R,r(p.$t(`console.subscription.title`)),1),p.loading?(f(),l(S,{key:0})):p.loadFailed?(f(),o(`div`,z,[i(x,{description:p.$t(`common.message.noData`)},null,8,[`description`]),i(C,{type:`primary`,round:``,onClick:p.onInitialize},{default:u(()=>[n(r(p.$t(`common.button.refresh`)),1)]),_:1},8,[`onClick`])])):(f(),l(b,{key:2,gutter:15,class:`subscriptions`},{default:u(()=>[(f(!0),o(s,null,d(p.subscriptions,(c,m)=>(f(),l(y,{key:m,xs:24,md:24/(p.subscriptions?.length||4)},{default:u(()=>[i(E,{shadow:`hover`,class:t({subscription:!0,active:p.subscription?.name===c.name,disabled:!c.available}),onClick:e=>c.available&&(p.subscription=c)},{default:u(()=>[e(`h4`,B,[n(r(c.label)+` `,1),c.tag?(f(),l(w,{key:0,type:`warning`},{default:u(()=>[n(r(c.tag),1)]),_:2},1024)):a(``,!0)]),e(`h2`,V,[c.price===void 0?(f(),o(`span`,H,r(p.$t(`common.message.noData`)),1)):(f(),o(s,{key:0},[n(r(p.getPriceString({value:c.price})),1)],64))]),e(`p`,U,r(c.description),1),e(`div`,W,[(f(!0),o(s,null,d(c.benefits,(t,n)=>(f(),o(`div`,{key:n,class:`benefit`},[t.enabled?(f(),l(T,{key:0,icon:`fa-solid fa-check`,class:`icon icon-check`})):(f(),l(T,{key:1,icon:`fa-solid fa-xmark`,class:`icon icon-xmark`})),e(`span`,null,r(t.content),1)]))),128))]),e(`div`,G,[p.showPayment?(f(),l(C,{key:0,class:`btn btn-subscribe`,type:p.subscription?.name===c?.name?`primary`:``,disabled:!c.available,round:``,onClick:e=>p.onCreateOrder(c)},{default:u(()=>[n(r(p.$t(`common.button.buy`)),1)]),_:1},8,[`type`,`disabled`,`onClick`])):a(``,!0)])]),_:2},1032,[`class`,`onClick`])]),_:2},1032,[`md`]))),128))]),_:1})),!p.loading&&!p.loadFailed&&p.showPayment?(f(),o(`div`,K,[e(`span`,null,r(p.$t(`console.message.doNotWantSubscribe`)),1),i(C,{type:`primary`,class:`btn btn-extra`,round:``,size:`small`,onClick:p.onBuyExtra},{default:u(()=>[n(r(p.$t(`console.message.buyExtra`)),1)]),_:1},8,[`onClick`])])):a(``,!0)]),_:1})):(f(),l(y,{key:0,class:`max-w-4xl mx-auto`},{default:u(()=>[i(x,{description:p.$t(`common.message.noData`)},null,8,[`description`])]),_:1}))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})}var J=E(I,[[`render`,q],[`__scopeId`,`data-v-70ed2f52`]]);export{J as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./rolldown-runtime--c01j_DQ.js";import{L as e,at as t,j as n,mt as r,tt as i,z as a}from"./vendor-chart-Dw-P17PN.js";import{n as o,t as s}from"./tabs-
|
|
1
|
+
import"./rolldown-runtime--c01j_DQ.js";import{L as e,at as t,j as n,mt as r,tt as i,z as a}from"./vendor-chart-Dw-P17PN.js";import{n as o,t as s}from"./tabs-BgADzPAI.js";import{it as c,j as l,rt as u}from"./index-Cf679Gpt.js";var d=a({name:`FishTabSwitcher`,components:{ElTabs:o,ElTabPane:s},data(){return{ROUTE_FISH_TTS_INDEX:c,ROUTE_FISH_MODEL_INDEX:u}},computed:{active(){return(this.$route?.name||``)===`fish-model-index`?u:c}},methods:{onUpdate(e){let t=String(e);t!==this.active&&this.$router.push({name:t})}}});function f(a,o,s,c,l,u){let d=t(`el-tab-pane`),f=t(`el-tabs`);return i(),n(f,{"model-value":a.active,class:`fish-tabs`,stretch:``,"onUpdate:modelValue":a.onUpdate},{default:r(()=>[e(d,{label:a.$t(`fish.tab.tts`),name:a.ROUTE_FISH_TTS_INDEX},null,8,[`label`,`name`]),e(d,{label:a.$t(`fish.tab.model`),name:a.ROUTE_FISH_MODEL_INDEX},null,8,[`label`,`name`])]),_:1},8,[`model-value`,`onUpdate:modelValue`])}var p=l(d,[[`render`,f],[`__scopeId`,`data-v-11790655`]]);export{p as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,I as n,Jt as r,L as i,M as a,N as o,T as s,at as c,j as l,mt as u,rt as d,tt as f,z as p}from"./vendor-chart-Dw-P17PN.js";import{r as m,t as h}from"./select-EE8eQ9FI.js";import{t as g}from"./image-ZsPsEnY2.js";import{t as _}from"./alert-BkFyH48_.js";import{t as v}from"./slider-BeU_beX5.js";import{ct as y,dt as b}from"./constants-DxuoPabX.js";import{Kt as x,Ut as S,Vt as ee,en as te,gn as C,j as w,qr as T,si as E,sr as D,vi as O}from"./index-CqcdcBvt.js";import{t as k}from"./index.es-Dng16aRY.js";import{t as A}from"./CopyToClipboard-DKGHAFZY.js";import{t as j}from"./Consumption-CVOhmM8q.js";import{n as M,t as N}from"./pagination-Cf5mUKFW.js";import{t as P}from"./ApiCodeButton-BbhiVJj6.js";import{t as F}from"./BotPlaceholder-Bo-qJ-OP.js";import{t as I}from"./NoTasks-DW4De9M7.js";import{t as L}from"./Hailuo-DUgKV0_G.js";import{t as R}from"./TabSwitcher-BvBadpF5.js";import{t as z}from"./PromptTextarea-D0zSRe-L.js";var B=p({name:`FishTextInput`,components:{PromptTextarea:z},computed:{text:{get(){return this.$store.state.fish?.config?.text},set(e){this.$store.commit(`fish/setConfig`,{...this.$store.state.fish?.config,text:e})}}}});function V(e,t,n,r,i,a){let o=c(`prompt-textarea`);return f(),l(o,{modelValue:e.text,"onUpdate:modelValue":t[0]||=t=>e.text=t,title:e.$t(`fish.name.text`),info:e.$t(`fish.description.text`),placeholder:e.$t(`fish.placeholder.text`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var H=w(B,[[`render`,V]]),U=p({name:`FishModelSelector`,components:{ElSelect:m,ElOption:h},computed:{options(){return[{value:b,label:this.$t(`fish.button.modelS2Pro`)},{value:`s1`,label:this.$t(`fish.button.modelS1`)}]},value:{get(){return this.$store.state.fish?.config?.model},set(e){this.$store.commit(`fish/setConfig`,{...this.$store.state.fish?.config,model:e})}}},mounted(){this.value||=y}}),W={class:`field`},G={class:`title font-bold`};function K(t,n,a,p,m,h){let g=c(`el-option`),_=c(`el-select`);return f(),o(`div`,W,[e(`h2`,G,r(t.$t(`fish.name.model`)),1),i(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`fish.placeholder.select`)},{default:u(()=>[(f(!0),o(s,null,d(t.options,e=>(f(),l(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var q=w(U,[[`render`,K],[`__scopeId`,`data-v-9702e6d3`]]),J=p({name:`FishVoicePicker`,components:{ElSelect:m,ElOption:h},computed:{loading(){return this.$store.state.fish?.status?.getApplications===T.Request},options(){return this.$store.state.fish?.voices??[]},displayOptions(){return this.options.map(e=>{let t=e,n=(t.id||t._id||t.reference_id||``).toString();return{value:n,label:t.title||n}}).filter(e=>!!e.value)},credential(){return this.$store.state.fish?.credential},value:{get(){return this.$store.state.fish?.config?.reference_id},set(e){this.$store.commit(`fish/setConfig`,{...this.$store.state.fish?.config,reference_id:e||void 0})}}},watch:{credential:{immediate:!0,handler(e){if(!e?.token)return;let t=this.$store.state.fish?.voices;(t===void 0||t.length===0)&&this.$store.dispatch(`fish/getVoices`)}}}}),Y={class:`field`},X={class:`title font-bold`};function Z(t,n,a,p,m,h){let g=c(`el-option`),_=c(`el-select`);return f(),o(`div`,Y,[e(`h2`,X,r(t.$t(`fish.name.voice`)),1),i(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`fish.placeholder.voice`),clearable:``,filterable:``,loading:t.loading,"no-data-text":t.$t(`fish.message.noVoices`)},{default:u(()=>[(f(!0),o(s,null,d(t.displayOptions,e=>(f(),l(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`loading`,`no-data-text`])])}var Q=p({name:`FishConfigPanel`,components:{ElButton:O,ElSlider:v,FontAwesomeIcon:k,TextInput:H,ModelSelector:q,VoicePicker:w(J,[[`render`,Z],[`__scopeId`,`data-v-ac9e3a92`]]),Consumption:j},emits:[`generate`],computed:{config(){return this.$store.state.fish?.config},consumption(){return x(this.config,this.service?.cost)},service(){return this.$store.state.fish?.service},canGenerate(){let e=this.config?.text;return typeof e==`string`&&e.trim().length>0},speed:{get(){return this.config?.prosody?.speed??1},set(e){this.$store.commit(`fish/setConfig`,{...this.config,prosody:{...this.config?.prosody??{},speed:e}})}}},methods:{onGenerate(){this.$emit(`generate`)}}}),ne={class:`flex flex-col h-full`},re={class:`flex-1 overflow-y-auto p-5`},ie={class:`field mb-2`},ae={class:`title font-bold`},oe={class:`flex flex-col items-center justify-center px-5 pb-5`};function se(t,a,s,l,d,p){let m=c(`text-input`),h=c(`model-selector`),g=c(`voice-picker`),_=c(`el-slider`),v=c(`consumption`),y=c(`font-awesome-icon`),b=c(`el-button`);return f(),o(`div`,ne,[e(`div`,re,[i(m,{class:`mb-4`}),i(h,{class:`mb-4`}),i(g,{class:`mb-4`}),e(`div`,ie,[e(`h2`,ae,r(t.$t(`fish.name.speed`)),1),i(_,{modelValue:t.speed,"onUpdate:modelValue":a[0]||=e=>t.speed=e,min:.5,max:2,step:.1,class:`value`,"show-input":``},null,8,[`modelValue`])])]),e(`div`,oe,[i(v,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),i(b,{type:`primary`,class:`btn w-full`,round:``,disabled:!t.canGenerate,onClick:t.onGenerate},{default:u(()=>[i(y,{icon:`fa-solid fa-magic`,class:`mr-2`}),n(` `+r(t.$t(`fish.button.generate`)),1)]),_:1},8,[`disabled`,`onClick`])])])}var ce=w(Q,[[`render`,se],[`__scopeId`,`data-v-1ccd36ba`]]),le=p({name:`FishTaskPreview`,components:{ElImage:g,CopyToClipboard:A,FontAwesomeIcon:k,ElAlert:_,ElButton:O,ApiCodeButton:P},props:{modelValue:{type:Object,required:!0}},computed:{prompt(){return this.modelValue?.request?.text},audioUrl(){return this.modelValue?.response?.audio_url}},methods:{onDownload(e){window.open(e,`_blank`)}}}),ue={class:`preview`},de={class:`left`},fe={class:`main`},pe={class:`bot`},me={class:`datetime`},he={class:`info`},ge={key:0,class:`prompt mt-2`},_e={key:0},ve={key:0,class:`content`},ye=[`src`],be={class:`operations mt-2`},xe={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Se={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Ce={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},we={key:2,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Te={key:1,class:`content`},Ee={class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function De(s,l,d,p,m,h){let g=c(`el-image`),_=c(`el-button`),v=c(`api-code-button`),y=c(`font-awesome-icon`),b=c(`copy-to-clipboard`),x=c(`el-alert`);return f(),o(`div`,ue,[e(`div`,de,[i(g,{src:`https://cdn.acedata.cloud/e40fccc727.png`,class:`avatar`})]),e(`div`,fe,[e(`div`,pe,[n(r(s.$t(`fish.name.fishBot`))+` `,1),e(`span`,me,r(s.$dayjs.format(``+new Date(parseFloat((s.modelValue?.created_at||``).toString())*1e3))),1)]),e(`div`,he,[s.prompt?(f(),o(`p`,ge,[n(r(s.prompt)+` `,1),s.modelValue?.response?a(``,!0):(f(),o(`span`,_e,` - (`+r(s.$t(`fish.status.pending`))+`) `,1))])):a(``,!0)]),s.audioUrl?(f(),o(`div`,ve,[e(`audio`,{src:s.audioUrl,controls:``,preload:`metadata`,class:`w-full mb-3`},null,8,ye),e(`div`,be,[i(_,{type:`info`,size:`small`,class:`mb-2`,onClick:l[0]||=t(e=>s.onDownload(s.audioUrl),[`stop`])},{default:u(()=>[n(r(s.$t(`fish.button.download`)),1)]),_:1}),i(v,{path:`/fish/tts`,body:s.modelValue?.request},null,8,[`body`])]),i(x,{closable:!1,class:`mt-2 success`},{default:u(()=>[s.modelValue?.request?.model?(f(),o(`p`,xe,[i(y,{icon:`fa-solid fa-microchip`,class:`mr-1`}),n(` `+r(s.$t(`fish.name.model`))+`: `+r(s.modelValue?.request?.model),1)])):a(``,!0),s.modelValue?.request?.reference_id?(f(),o(`p`,Se,[i(y,{icon:`fa-solid fa-microphone`,class:`mr-1`}),n(` `+r(s.$t(`fish.name.referenceId`))+`: `+r(s.modelValue?.request?.reference_id)+` `,1),i(b,{content:s.modelValue?.request?.reference_id},null,8,[`content`])])):a(``,!0),e(`p`,Ce,[i(y,{icon:`fa-solid fa-magic`,class:`mr-1`}),n(` `+r(s.$t(`fish.name.taskId`))+`: `+r(s.modelValue?.id)+` `,1),i(b,{content:s.modelValue?.id},null,8,[`content`])]),s.modelValue?.elapsed?(f(),o(`p`,we,[i(y,{icon:`fa-solid fa-clock`,class:`mr-1`}),n(` `+r(s.$t(`fish.name.elapsed`))+`: `+r(s.modelValue?.elapsed?.toFixed(2))+`s `,1)])):a(``,!0)]),_:1})])):(f(),o(`div`,Te,[i(x,{closable:!1,class:`info`},{default:u(()=>[e(`p`,Ee,[i(y,{icon:`fa-solid fa-magic`,class:`mr-1`}),n(` `+r(s.$t(`fish.name.taskId`))+`: `+r(s.modelValue?.id)+` `,1),i(b,{content:s.modelValue?.id},null,8,[`content`])])]),_:1})]))])])}var $=p({name:`FishRecentPanel`,components:{TaskPreview:w(le,[[`render`,De],[`__scopeId`,`data-v-754753f2`]]),BotPlaceholder:F,NoTasks:I,ScrollList:M},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],computed:{tasks(){return{...this.$store.state.fish?.tasks,items:this.$store.state.fish?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Oe={key:0},ke={key:2,class:`w-full h-full flex items-center justify-center`};function Ae(e,t,n,r,p,m){let h=c(`bot-placeholder`),g=c(`task-preview`),_=c(`scroll-list`),v=c(`no-tasks`);return f(),o(s,null,[e.tasks?.items===void 0?(f(),o(`div`,Oe,[i(h)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(f(),l(_,{key:1,ref:`scrollList`,class:`tasks w-full h-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:u(()=>[(f(!0),o(s,null,d(e.tasks?.items,e=>(f(),l(g,{key:e.id,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):a(``,!0),e.tasks?.items?.length===0?(f(),o(`div`,ke,[i(v)])):a(``,!0)],64)}var je=p({name:`FishTtsIndex`,components:{ConfigPanel:ce,Layout:L,RecentPanel:w($,[[`render`,Ae]]),TabSwitcher:R},mixins:[S],inject:[`initialized`],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.fish?.status?.getApplications===T.Request},tasksLoading(){return this.$store.state.fish?.status?.getTasks===T.Request||this.fetchingTasks},credential(){return this.$store.state.fish?.credential},config(){return this.$store.state.fish?.config},application(){return this.$store.state.fish?.application},tasks(){return this.$store.state.fish?.tasks}},watch:{initialized:{async handler(e){e&&(await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService(),await this.$store.dispatch(`fish/getVoices`)},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await N({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){await this.$store.dispatch(`fish/getService`)},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks)return;let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};this.fetchingTasks=!0;try{await this.$store.dispatch(`fish/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!ee(this.uploadTracker,e=>this.$t(e),e=>E.warning(e)))return;let e=this.config??{},t=e.text?.trim();if(!t){E.warning(this.$t(`fish.message.textRequired`));return}if(!te())return;let n=this.credential?.token;if(!n){console.error(`no token specified`);return}let r=e.model||`s2-pro`,i={text:t,async:!0};e.reference_id&&(i.reference_id=e.reference_id),e.format&&(i.format=e.format),e.prosody&&Object.keys(e.prosody).length>0&&(i.prosody=e.prosody),E.info(this.$t(`fish.message.startingTask`)),D(`fish`,C.generateTts(i,{token:n,model:r})).then(()=>{E.success(this.$t(`fish.message.startTaskSuccess`))}).catch(e=>{(e?.response?.data)?.error?.code===`used_up`?E.error(this.$t(`fish.message.usedUp`)):E.error(this.$t(`fish.message.startTaskFailed`))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}}),Me={class:`flex flex-col h-full`},Ne={class:`flex-1 min-h-0`};function Pe(t,n,r,a,o,s){let d=c(`tab-switcher`),p=c(`config-panel`),m=c(`recent-panel`),h=c(`layout`);return f(),l(h,null,{config:u(()=>[e(`div`,Me,[i(d),e(`div`,Ne,[i(p,{onGenerate:t.onGenerate},null,8,[`onGenerate`])])])]),result:u(()=>[i(m,{ref:`recentPanel`,loading:t.loadingMore,onReachTop:t.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var Fe=w(je,[[`render`,Pe]]);export{Fe as default};
|
|
1
|
+
import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,I as n,Jt as r,L as i,M as a,N as o,T as s,at as c,j as l,mt as u,rt as d,tt as f,z as p}from"./vendor-chart-Dw-P17PN.js";import{r as m,t as h}from"./select-CEMcZu9_.js";import{t as g}from"./image-X_sCgt4S.js";import{t as _}from"./alert-B3mVHMj2.js";import{t as v}from"./slider-DMBNcoEA.js";import{ct as y,dt as b}from"./constants-B_ZAjiS7.js";import{Kt as x,Ut as ee,Vt as S,Yr as C,_n as te,bi as w,j as T,li as E,lr as D,tn as O}from"./index-Cf679Gpt.js";import{t as k}from"./index.es-DqI2qm7C.js";import{t as A}from"./CopyToClipboard-DnPi7U0x.js";import{t as j}from"./Consumption-y1G2owiZ.js";import{n as M,t as N}from"./pagination-CvQJgiqh.js";import{t as P}from"./ApiCodeButton-vGLx6VeQ.js";import{t as F}from"./BotPlaceholder-CchvSdzg.js";import{t as I}from"./NoTasks-DpYnRe_p.js";import{t as L}from"./Hailuo-D-wYwQr2.js";import{t as R}from"./TabSwitcher-Bd4kucdH.js";import{t as z}from"./PromptTextarea-CPdQc691.js";var B=p({name:`FishTextInput`,components:{PromptTextarea:z},computed:{text:{get(){return this.$store.state.fish?.config?.text},set(e){this.$store.commit(`fish/setConfig`,{...this.$store.state.fish?.config,text:e})}}}});function V(e,t,n,r,i,a){let o=c(`prompt-textarea`);return f(),l(o,{modelValue:e.text,"onUpdate:modelValue":t[0]||=t=>e.text=t,title:e.$t(`fish.name.text`),info:e.$t(`fish.description.text`),placeholder:e.$t(`fish.placeholder.text`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var H=T(B,[[`render`,V]]),U=p({name:`FishModelSelector`,components:{ElSelect:m,ElOption:h},computed:{options(){return[{value:b,label:this.$t(`fish.button.modelS2Pro`)},{value:`s1`,label:this.$t(`fish.button.modelS1`)}]},value:{get(){return this.$store.state.fish?.config?.model},set(e){this.$store.commit(`fish/setConfig`,{...this.$store.state.fish?.config,model:e})}}},mounted(){this.value||=y}}),W={class:`field`},G={class:`title font-bold`};function K(t,n,a,p,m,h){let g=c(`el-option`),_=c(`el-select`);return f(),o(`div`,W,[e(`h2`,G,r(t.$t(`fish.name.model`)),1),i(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`fish.placeholder.select`)},{default:u(()=>[(f(!0),o(s,null,d(t.options,e=>(f(),l(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var q=T(U,[[`render`,K],[`__scopeId`,`data-v-9702e6d3`]]),J=p({name:`FishVoicePicker`,components:{ElSelect:m,ElOption:h},computed:{loading(){return this.$store.state.fish?.status?.getApplications===C.Request},options(){return this.$store.state.fish?.voices??[]},displayOptions(){return this.options.map(e=>{let t=e,n=(t.id||t._id||t.reference_id||``).toString();return{value:n,label:t.title||n}}).filter(e=>!!e.value)},credential(){return this.$store.state.fish?.credential},value:{get(){return this.$store.state.fish?.config?.reference_id},set(e){this.$store.commit(`fish/setConfig`,{...this.$store.state.fish?.config,reference_id:e||void 0})}}},watch:{credential:{immediate:!0,handler(e){if(!e?.token)return;let t=this.$store.state.fish?.voices;(t===void 0||t.length===0)&&this.$store.dispatch(`fish/getVoices`)}}}}),Y={class:`field`},X={class:`title font-bold`};function Z(t,n,a,p,m,h){let g=c(`el-option`),_=c(`el-select`);return f(),o(`div`,Y,[e(`h2`,X,r(t.$t(`fish.name.voice`)),1),i(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`fish.placeholder.voice`),clearable:``,filterable:``,loading:t.loading,"no-data-text":t.$t(`fish.message.noVoices`)},{default:u(()=>[(f(!0),o(s,null,d(t.displayOptions,e=>(f(),l(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`loading`,`no-data-text`])])}var Q=p({name:`FishConfigPanel`,components:{ElButton:w,ElSlider:v,FontAwesomeIcon:k,TextInput:H,ModelSelector:q,VoicePicker:T(J,[[`render`,Z],[`__scopeId`,`data-v-ac9e3a92`]]),Consumption:j},emits:[`generate`],computed:{config(){return this.$store.state.fish?.config},consumption(){return x(this.config,this.service?.cost)},service(){return this.$store.state.fish?.service},canGenerate(){let e=this.config?.text;return typeof e==`string`&&e.trim().length>0},speed:{get(){return this.config?.prosody?.speed??1},set(e){this.$store.commit(`fish/setConfig`,{...this.config,prosody:{...this.config?.prosody??{},speed:e}})}}},methods:{onGenerate(){this.$emit(`generate`)}}}),ne={class:`flex flex-col h-full`},re={class:`flex-1 overflow-y-auto p-5`},ie={class:`field mb-2`},ae={class:`title font-bold`},oe={class:`flex flex-col items-center justify-center px-5 pb-5`};function se(t,a,s,l,d,p){let m=c(`text-input`),h=c(`model-selector`),g=c(`voice-picker`),_=c(`el-slider`),v=c(`consumption`),y=c(`font-awesome-icon`),b=c(`el-button`);return f(),o(`div`,ne,[e(`div`,re,[i(m,{class:`mb-4`}),i(h,{class:`mb-4`}),i(g,{class:`mb-4`}),e(`div`,ie,[e(`h2`,ae,r(t.$t(`fish.name.speed`)),1),i(_,{modelValue:t.speed,"onUpdate:modelValue":a[0]||=e=>t.speed=e,min:.5,max:2,step:.1,class:`value`,"show-input":``},null,8,[`modelValue`])])]),e(`div`,oe,[i(v,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),i(b,{type:`primary`,class:`btn w-full`,round:``,disabled:!t.canGenerate,onClick:t.onGenerate},{default:u(()=>[i(y,{icon:`fa-solid fa-magic`,class:`mr-2`}),n(` `+r(t.$t(`fish.button.generate`)),1)]),_:1},8,[`disabled`,`onClick`])])])}var ce=T(Q,[[`render`,se],[`__scopeId`,`data-v-1ccd36ba`]]),le=p({name:`FishTaskPreview`,components:{ElImage:g,CopyToClipboard:A,FontAwesomeIcon:k,ElAlert:_,ElButton:w,ApiCodeButton:P},props:{modelValue:{type:Object,required:!0}},computed:{prompt(){return this.modelValue?.request?.text},audioUrl(){return this.modelValue?.response?.audio_url}},methods:{onDownload(e){window.open(e,`_blank`)}}}),ue={class:`preview`},de={class:`left`},fe={class:`main`},pe={class:`bot`},me={class:`datetime`},he={class:`info`},ge={key:0,class:`prompt mt-2`},_e={key:0},ve={key:0,class:`content`},ye=[`src`],be={class:`operations mt-2`},xe={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Se={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Ce={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},we={key:2,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Te={key:1,class:`content`},Ee={class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function De(s,l,d,p,m,h){let g=c(`el-image`),_=c(`el-button`),v=c(`api-code-button`),y=c(`font-awesome-icon`),b=c(`copy-to-clipboard`),x=c(`el-alert`);return f(),o(`div`,ue,[e(`div`,de,[i(g,{src:`https://cdn.acedata.cloud/e40fccc727.png`,class:`avatar`})]),e(`div`,fe,[e(`div`,pe,[n(r(s.$t(`fish.name.fishBot`))+` `,1),e(`span`,me,r(s.$dayjs.format(``+new Date(parseFloat((s.modelValue?.created_at||``).toString())*1e3))),1)]),e(`div`,he,[s.prompt?(f(),o(`p`,ge,[n(r(s.prompt)+` `,1),s.modelValue?.response?a(``,!0):(f(),o(`span`,_e,` - (`+r(s.$t(`fish.status.pending`))+`) `,1))])):a(``,!0)]),s.audioUrl?(f(),o(`div`,ve,[e(`audio`,{src:s.audioUrl,controls:``,preload:`metadata`,class:`w-full mb-3`},null,8,ye),e(`div`,be,[i(_,{type:`info`,size:`small`,class:`mb-2`,onClick:l[0]||=t(e=>s.onDownload(s.audioUrl),[`stop`])},{default:u(()=>[n(r(s.$t(`fish.button.download`)),1)]),_:1}),i(v,{path:`/fish/tts`,body:s.modelValue?.request},null,8,[`body`])]),i(x,{closable:!1,class:`mt-2 success`},{default:u(()=>[s.modelValue?.request?.model?(f(),o(`p`,xe,[i(y,{icon:`fa-solid fa-microchip`,class:`mr-1`}),n(` `+r(s.$t(`fish.name.model`))+`: `+r(s.modelValue?.request?.model),1)])):a(``,!0),s.modelValue?.request?.reference_id?(f(),o(`p`,Se,[i(y,{icon:`fa-solid fa-microphone`,class:`mr-1`}),n(` `+r(s.$t(`fish.name.referenceId`))+`: `+r(s.modelValue?.request?.reference_id)+` `,1),i(b,{content:s.modelValue?.request?.reference_id},null,8,[`content`])])):a(``,!0),e(`p`,Ce,[i(y,{icon:`fa-solid fa-magic`,class:`mr-1`}),n(` `+r(s.$t(`fish.name.taskId`))+`: `+r(s.modelValue?.id)+` `,1),i(b,{content:s.modelValue?.id},null,8,[`content`])]),s.modelValue?.elapsed?(f(),o(`p`,we,[i(y,{icon:`fa-solid fa-clock`,class:`mr-1`}),n(` `+r(s.$t(`fish.name.elapsed`))+`: `+r(s.modelValue?.elapsed?.toFixed(2))+`s `,1)])):a(``,!0)]),_:1})])):(f(),o(`div`,Te,[i(x,{closable:!1,class:`info`},{default:u(()=>[e(`p`,Ee,[i(y,{icon:`fa-solid fa-magic`,class:`mr-1`}),n(` `+r(s.$t(`fish.name.taskId`))+`: `+r(s.modelValue?.id)+` `,1),i(b,{content:s.modelValue?.id},null,8,[`content`])])]),_:1})]))])])}var $=p({name:`FishRecentPanel`,components:{TaskPreview:T(le,[[`render`,De],[`__scopeId`,`data-v-754753f2`]]),BotPlaceholder:F,NoTasks:I,ScrollList:M},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],computed:{tasks(){return{...this.$store.state.fish?.tasks,items:this.$store.state.fish?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Oe={key:0},ke={key:2,class:`w-full h-full flex items-center justify-center`};function Ae(e,t,n,r,p,m){let h=c(`bot-placeholder`),g=c(`task-preview`),_=c(`scroll-list`),v=c(`no-tasks`);return f(),o(s,null,[e.tasks?.items===void 0?(f(),o(`div`,Oe,[i(h)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(f(),l(_,{key:1,ref:`scrollList`,class:`tasks w-full h-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:u(()=>[(f(!0),o(s,null,d(e.tasks?.items,e=>(f(),l(g,{key:e.id,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):a(``,!0),e.tasks?.items?.length===0?(f(),o(`div`,ke,[i(v)])):a(``,!0)],64)}var je=p({name:`FishTtsIndex`,components:{ConfigPanel:ce,Layout:L,RecentPanel:T($,[[`render`,Ae]]),TabSwitcher:R},mixins:[ee],inject:[`initialized`],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.fish?.status?.getApplications===C.Request},tasksLoading(){return this.$store.state.fish?.status?.getTasks===C.Request||this.fetchingTasks},credential(){return this.$store.state.fish?.credential},config(){return this.$store.state.fish?.config},application(){return this.$store.state.fish?.application},tasks(){return this.$store.state.fish?.tasks}},watch:{initialized:{async handler(e){e&&(await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService(),await this.$store.dispatch(`fish/getVoices`)},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await N({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){await this.$store.dispatch(`fish/getService`)},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks)return;let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};this.fetchingTasks=!0;try{await this.$store.dispatch(`fish/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!S(this.uploadTracker,e=>this.$t(e),e=>E.warning(e)))return;let e=this.config??{},t=e.text?.trim();if(!t){E.warning(this.$t(`fish.message.textRequired`));return}if(!O())return;let n=this.credential?.token;if(!n){console.error(`no token specified`);return}let r=e.model||`s2-pro`,i={text:t,async:!0};e.reference_id&&(i.reference_id=e.reference_id),e.format&&(i.format=e.format),e.prosody&&Object.keys(e.prosody).length>0&&(i.prosody=e.prosody),E.info(this.$t(`fish.message.startingTask`)),D(`fish`,te.generateTts(i,{token:n,model:r})).then(()=>{E.success(this.$t(`fish.message.startTaskSuccess`))}).catch(e=>{(e?.response?.data)?.error?.code===`used_up`?E.error(this.$t(`fish.message.usedUp`)):E.error(this.$t(`fish.message.startTaskFailed`))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}}),Me={class:`flex flex-col h-full`},Ne={class:`flex-1 min-h-0`};function Pe(t,n,r,a,o,s){let d=c(`tab-switcher`),p=c(`config-panel`),m=c(`recent-panel`),h=c(`layout`);return f(),l(h,null,{config:u(()=>[e(`div`,Me,[i(d),e(`div`,Ne,[i(p,{onGenerate:t.onGenerate},null,8,[`onGenerate`])])])]),result:u(()=>[i(m,{ref:`recentPanel`,loading:t.loadingMore,onReachTop:t.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var Fe=T(je,[[`render`,Pe]]);export{Fe as default};
|