@8wave/ai-elements 0.110.0-beta.4 → 0.111.0-beta.11
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/README.md +1 -0
- package/dist/_chunks/{Agent-Su_LDF9_.js → Agent-tE7ZJPxG.js} +80 -78
- package/dist/_chunks/Agent-tE7ZJPxG.js.map +1 -0
- package/dist/_chunks/{Document-DecVclEe.js → Document-Bmx6774B.js} +33 -21
- package/dist/_chunks/Document-Bmx6774B.js.map +1 -0
- package/dist/_chunks/Media-Cft7Pwrh.js +108 -0
- package/dist/_chunks/Media-Cft7Pwrh.js.map +1 -0
- package/dist/_chunks/{PkLazyImg-ClL4nr95.js → PkLazyImg-Dbj2dDXA.js} +2 -2
- package/dist/_chunks/{PkLazyImg-ClL4nr95.js.map → PkLazyImg-Dbj2dDXA.js.map} +1 -1
- package/dist/_chunks/{PkStreamingMarkdown-CwqsJnJJ.js → PkStreamingMarkdown-CNI8aV8t.js} +636 -427
- package/dist/_chunks/PkStreamingMarkdown-CNI8aV8t.js.map +1 -0
- package/dist/_chunks/{PkToolRequestGeolocation-CEVpl50q.js → PkToolRequestGeolocation-Bzy4IYSp.js} +4 -4
- package/dist/_chunks/PkToolRequestGeolocation-Bzy4IYSp.js.map +1 -0
- package/dist/_chunks/{PkToolRequestOAuthConnection-CncDU-Kl.js → PkToolRequestOAuthConnection-13CQH07t.js} +5 -5
- package/dist/_chunks/PkToolRequestOAuthConnection-13CQH07t.js.map +1 -0
- package/dist/_chunks/{PkToolShowArtifact-M6jlSmyJ.js → PkToolShowArtifact-CGbHDEie.js} +4 -4
- package/dist/_chunks/{PkToolShowArtifact-M6jlSmyJ.js.map → PkToolShowArtifact-CGbHDEie.js.map} +1 -1
- package/dist/_chunks/{PkToolShowCalendarEvent-C41JgOUA.js → PkToolShowCalendarEvent-DIFX_rUz.js} +3 -3
- package/dist/_chunks/{PkToolShowCalendarEvent-C41JgOUA.js.map → PkToolShowCalendarEvent-DIFX_rUz.js.map} +1 -1
- package/dist/_chunks/{PkToolShowComparison-DbbUD9pg.js → PkToolShowComparison-CWLFWT9h.js} +7 -7
- package/dist/_chunks/PkToolShowComparison-CWLFWT9h.js.map +1 -0
- package/dist/_chunks/{PkToolShowContactForm-D_dW59Dl.js → PkToolShowContactForm-CYxgatUA.js} +5 -5
- package/dist/_chunks/PkToolShowContactForm-CYxgatUA.js.map +1 -0
- package/dist/_chunks/{PkToolShowDiagram-Hy9qh68O.js → PkToolShowDiagram-Dx1Ba0PG.js} +4 -4
- package/dist/_chunks/PkToolShowDiagram-Dx1Ba0PG.js.map +1 -0
- package/dist/_chunks/{PkToolShowEmail-Dn3JHYIR.js → PkToolShowEmail-DnFFgzom.js} +3 -3
- package/dist/_chunks/{PkToolShowEmail-Dn3JHYIR.js.map → PkToolShowEmail-DnFFgzom.js.map} +1 -1
- package/dist/_chunks/{PkToolShowForm-DbJHMDbt.js → PkToolShowForm-B6x3Lp2i.js} +7 -8
- package/dist/_chunks/PkToolShowForm-B6x3Lp2i.js.map +1 -0
- package/dist/_chunks/{PkToolShowImageGallery-C1lzlO0y.js → PkToolShowImageGallery-D99N_Plf.js} +2 -2
- package/dist/_chunks/{PkToolShowImageGallery-C1lzlO0y.js.map → PkToolShowImageGallery-D99N_Plf.js.map} +1 -1
- package/dist/_chunks/{PkToolShowLocation-CKhPxKFA.js → PkToolShowLocation-AfnrtFVJ.js} +3 -3
- package/dist/_chunks/{PkToolShowLocation-CKhPxKFA.js.map → PkToolShowLocation-AfnrtFVJ.js.map} +1 -1
- package/dist/_chunks/{PkToolShowMessage-U9CCU7eG.js → PkToolShowMessage-DUo2c-im.js} +3 -3
- package/dist/_chunks/{PkToolShowMessage-U9CCU7eG.js.map → PkToolShowMessage-DUo2c-im.js.map} +1 -1
- package/dist/_chunks/{PkToolShowProductList-UeiRMLHu.js → PkToolShowProductList-BN6Qk1_y.js} +3 -3
- package/dist/_chunks/{PkToolShowProductList-UeiRMLHu.js.map → PkToolShowProductList-BN6Qk1_y.js.map} +1 -1
- package/dist/_chunks/{PkToolShowQrCode-CypLrfh5.js → PkToolShowQrCode-BLqeBecX.js} +3 -3
- package/dist/_chunks/{PkToolShowQrCode-CypLrfh5.js.map → PkToolShowQrCode-BLqeBecX.js.map} +1 -1
- package/dist/_chunks/{PkToolShowSources-B69JmwbZ.js → PkToolShowSources-DpZb5FUP.js} +5 -5
- package/dist/_chunks/PkToolShowSources-DpZb5FUP.js.map +1 -0
- package/dist/_chunks/{PkToolShowSuggestedReply-CKxSH0Y9.js → PkToolShowSuggestedReply-C10nNgBs.js} +3 -3
- package/dist/_chunks/{PkToolShowSuggestedReply-CKxSH0Y9.js.map → PkToolShowSuggestedReply-C10nNgBs.js.map} +1 -1
- package/dist/_chunks/{PkToolShowVideo-BgKxdBcC.js → PkToolShowVideo-S9b4QHUj.js} +2 -2
- package/dist/_chunks/{PkToolShowVideo-BgKxdBcC.js.map → PkToolShowVideo-S9b4QHUj.js.map} +1 -1
- package/dist/_chunks/{PkToolShowWeather-LPd3tC77.js → PkToolShowWeather-CqhG430w.js} +2 -2
- package/dist/_chunks/PkToolShowWeather-CqhG430w.js.map +1 -0
- package/dist/_chunks/{PkToolShowWebPages-ep_erFF0.js → PkToolShowWebPages-txAZi_iG.js} +3 -3
- package/dist/_chunks/{PkToolShowWebPages-ep_erFF0.js.map → PkToolShowWebPages-txAZi_iG.js.map} +1 -1
- package/dist/_chunks/PkUrl-BPbjZJ1A.js.map +1 -1
- package/dist/_chunks/{VvCheckboxGroup.es-Bdu2gFLN.js → VvCheckboxGroup.es-CTrF3pue.js} +2 -2
- package/dist/_chunks/{VvCheckboxGroup.es-Bdu2gFLN.js.map → VvCheckboxGroup.es-CTrF3pue.js.map} +1 -1
- package/dist/_chunks/{VvCombobox.es-C0wpJIr_.js → VvCombobox.es-BWiXmQ_S.js} +10 -10
- package/dist/_chunks/{VvCombobox.es-C0wpJIr_.js.map → VvCombobox.es-BWiXmQ_S.js.map} +1 -1
- package/dist/_chunks/{VvInputText.es-Zgtw2YNw.js → VvInputText.es-Bo9I6g8H.js} +6 -6
- package/dist/_chunks/{VvInputText.es-Zgtw2YNw.js.map → VvInputText.es-Bo9I6g8H.js.map} +1 -1
- package/dist/_chunks/{VvRadioGroup.es-DZLL19SC.js → VvRadioGroup.es-9ooHCuik.js} +2 -2
- package/dist/_chunks/{VvRadioGroup.es-DZLL19SC.js.map → VvRadioGroup.es-9ooHCuik.js.map} +1 -1
- package/dist/_chunks/{VvSelect.es-ovnZRHG5.js → VvSelect.es-DG0VuWtP.js} +2 -2
- package/dist/_chunks/{VvSelect.es-ovnZRHG5.js.map → VvSelect.es-DG0VuWtP.js.map} +1 -1
- package/dist/_chunks/{VvTextarea.es-DbP5Lt2T.js → VvTextarea.es-Dg3pxdZy.js} +6 -6
- package/dist/_chunks/{VvTextarea.es-DbP5Lt2T.js.map → VvTextarea.es-Dg3pxdZy.js.map} +1 -1
- package/dist/_chunks/{browser-NgY6LXg-.js → browser-B0Xnbqi7.js} +726 -751
- package/dist/_chunks/browser-B0Xnbqi7.js.map +1 -0
- package/dist/_chunks/{dist-n5iFNYf-.js → dist-QdjZA6MJ.js} +143 -133
- package/dist/_chunks/{dist-n5iFNYf-.js.map → dist-QdjZA6MJ.js.map} +1 -1
- package/dist/_chunks/{index.es-dtdl3VFG.js → index.es-0YpCa4c5.js} +6 -6
- package/dist/_chunks/{index.es-dtdl3VFG.js.map → index.es-0YpCa4c5.js.map} +1 -1
- package/dist/_chunks/{index.es-BJnUA_36.js → index.es-CHkJ2TMJ.js} +10 -10
- package/dist/_chunks/{index.es-BJnUA_36.js.map → index.es-CHkJ2TMJ.js.map} +1 -1
- package/dist/_chunks/text-DbSEK8si.js.map +1 -1
- package/dist/ai-elements.es.js +3077 -3134
- package/dist/ai-elements.es.js.map +1 -1
- package/dist-vue/PkChatbot.js +1 -1
- package/dist-vue/PkChatbotEmptyState.js +1 -1
- package/dist-vue/PkChatbotError.js +1 -1
- package/dist-vue/PkChatbotFeedbackForm.js +1 -1
- package/dist-vue/PkChatbotFilePreview.js +1 -1
- package/dist-vue/PkChatbotInput.js +1 -1
- package/dist-vue/PkChatbotMessages.js +1 -1
- package/dist-vue/PkChatbotStepPayload.js +1 -1
- package/dist-vue/PkChatbotStepToolDetail.js +1 -1
- package/dist-vue/PkChatbotSteps.js +1 -1
- package/dist-vue/PkChatbotViewChat.js +1 -1
- package/dist-vue/PkChatbotViewConversations.js +1 -1
- package/dist-vue/PkChatbotViewFiles.js +1 -1
- package/dist-vue/PkChatbotViewProfile.js +1 -1
- package/dist-vue/_chunks/{Agent-C8BsTAxk.js → Agent-De2gFNjR.js} +165 -176
- package/dist-vue/_chunks/Agent-De2gFNjR.js.map +1 -0
- package/dist-vue/_chunks/{Document-CaUfI_SZ.js → Document-8umjeTVS.js} +84 -72
- package/dist-vue/_chunks/Document-8umjeTVS.js.map +1 -0
- package/dist-vue/_chunks/Media-_HfFLHGD.js.map +1 -1
- package/dist-vue/_chunks/{PkChatbot-o7k7d-fj.js → PkChatbot-CMajc7tE.js} +61 -61
- package/dist-vue/_chunks/PkChatbot-CMajc7tE.js.map +1 -0
- package/dist-vue/_chunks/{PkChatbotEmptyState-BvaeBxhx.js → PkChatbotEmptyState-BtzBYOHJ.js} +2 -2
- package/dist-vue/_chunks/{PkChatbotEmptyState-BvaeBxhx.js.map → PkChatbotEmptyState-BtzBYOHJ.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotError-CBP2mf-n.js → PkChatbotError-gvDpRcEz.js} +21 -19
- package/dist-vue/_chunks/PkChatbotError-gvDpRcEz.js.map +1 -0
- package/dist-vue/_chunks/{PkChatbotFeedbackForm-DO1QIgmo.js → PkChatbotFeedbackForm-CxLOdwkm.js} +2 -2
- package/dist-vue/_chunks/PkChatbotFeedbackForm-CxLOdwkm.js.map +1 -0
- package/dist-vue/_chunks/{PkChatbotFilePreview-DO1wZPPj.js → PkChatbotFilePreview-CwiVQDF2.js} +3 -3
- package/dist-vue/_chunks/PkChatbotFilePreview-CwiVQDF2.js.map +1 -0
- package/dist-vue/_chunks/{PkChatbotInput-D8x52cVm.js → PkChatbotInput-MSpF6SB6.js} +140 -125
- package/dist-vue/_chunks/PkChatbotInput-MSpF6SB6.js.map +1 -0
- package/dist-vue/_chunks/PkChatbotMessages-Bz5q8EtT.js +776 -0
- package/dist-vue/_chunks/PkChatbotMessages-Bz5q8EtT.js.map +1 -0
- package/dist-vue/_chunks/{PkChatbotStepPayload-BH6piqOi.js → PkChatbotStepPayload-XW4gT9AZ.js} +2 -2
- package/dist-vue/_chunks/{PkChatbotStepPayload-BH6piqOi.js.map → PkChatbotStepPayload-XW4gT9AZ.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotStepToolDetail-BJ7xUvgi.js → PkChatbotStepToolDetail-C4-K6Glw.js} +3 -3
- package/dist-vue/_chunks/{PkChatbotStepToolDetail-BJ7xUvgi.js.map → PkChatbotStepToolDetail-C4-K6Glw.js.map} +1 -1
- package/dist-vue/_chunks/PkChatbotSteps-CrqjWpv0.js +190 -0
- package/dist-vue/_chunks/PkChatbotSteps-CrqjWpv0.js.map +1 -0
- package/dist-vue/_chunks/{PkChatbotViewChat-CNH_glPI.js → PkChatbotViewChat-DXu5ncaU.js} +10 -10
- package/dist-vue/_chunks/{PkChatbotViewChat-CNH_glPI.js.map → PkChatbotViewChat-DXu5ncaU.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotViewConversations-BENvHLZt.js → PkChatbotViewConversations-3LaZPFyw.js} +2 -2
- package/dist-vue/_chunks/{PkChatbotViewConversations-BENvHLZt.js.map → PkChatbotViewConversations-3LaZPFyw.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotViewFiles-qmLESi1V.js → PkChatbotViewFiles-CTqnbsCj.js} +3 -3
- package/dist-vue/_chunks/{PkChatbotViewFiles-qmLESi1V.js.map → PkChatbotViewFiles-CTqnbsCj.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotViewProfile-DzfZnitQ.js → PkChatbotViewProfile-B-Mp1jGQ.js} +2 -2
- package/dist-vue/_chunks/{PkChatbotViewProfile-DzfZnitQ.js.map → PkChatbotViewProfile-B-Mp1jGQ.js.map} +1 -1
- package/dist-vue/_chunks/PkRelativeTime--1cIphlA.js.map +1 -1
- package/dist-vue/_chunks/{PkStreamingMarkdown-D8_LwZMR.js → PkStreamingMarkdown-D0IOaETI.js} +432 -419
- package/dist-vue/_chunks/PkStreamingMarkdown-D0IOaETI.js.map +1 -0
- package/dist-vue/_chunks/{PkSvgViewer-DPpE9fiz.js → PkSvgViewer-D-0M5bqg.js} +2 -2
- package/dist-vue/_chunks/PkSvgViewer-D-0M5bqg.js.map +1 -0
- package/dist-vue/_chunks/{PkToolRequestGeolocation-D1ZPmWiB.js → PkToolRequestGeolocation-Q3N3jlO8.js} +3 -3
- package/dist-vue/_chunks/PkToolRequestGeolocation-Q3N3jlO8.js.map +1 -0
- package/dist-vue/_chunks/{PkToolRequestOAuthConnection-CoJyKEE6.js → PkToolRequestOAuthConnection-lYoTJIF_.js} +4 -4
- package/dist-vue/_chunks/PkToolRequestOAuthConnection-lYoTJIF_.js.map +1 -0
- package/dist-vue/_chunks/{PkToolShowArtifact-CEXdfOGG.js → PkToolShowArtifact-DHdJuzDi.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowArtifact-CEXdfOGG.js.map → PkToolShowArtifact-DHdJuzDi.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowComparison-DMSjIpCR.js → PkToolShowComparison-BLn4pkno.js} +5 -5
- package/dist-vue/_chunks/PkToolShowComparison-BLn4pkno.js.map +1 -0
- package/dist-vue/_chunks/{PkToolShowContactForm-DHmzAIVF.js → PkToolShowContactForm-DceSyuX8.js} +3 -3
- package/dist-vue/_chunks/PkToolShowContactForm-DceSyuX8.js.map +1 -0
- package/dist-vue/_chunks/{PkToolShowDiagram-DuDp5EHd.js → PkToolShowDiagram-pwc0wpNo.js} +4 -4
- package/dist-vue/_chunks/PkToolShowDiagram-pwc0wpNo.js.map +1 -0
- package/dist-vue/_chunks/{PkToolShowEmail-CavhsPvi.js → PkToolShowEmail-DF__nKpR.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowEmail-CavhsPvi.js.map → PkToolShowEmail-DF__nKpR.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowForm-CO5A_j9L.js → PkToolShowForm-Dx10jOXm.js} +7 -7
- package/dist-vue/_chunks/PkToolShowForm-Dx10jOXm.js.map +1 -0
- package/dist-vue/_chunks/{PkToolShowImageGallery-V9U3LJfF.js → PkToolShowImageGallery-DudQzBx4.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowImageGallery-V9U3LJfF.js.map → PkToolShowImageGallery-DudQzBx4.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowMessage-DQojxDiV.js → PkToolShowMessage-Ck6VP-gw.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowMessage-DQojxDiV.js.map → PkToolShowMessage-Ck6VP-gw.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowProductList-Cn0yewM3.js → PkToolShowProductList-zfM8cx-l.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowProductList-Cn0yewM3.js.map → PkToolShowProductList-zfM8cx-l.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowSources-BvWOzVkQ.js → PkToolShowSources-Dlaz2Y77.js} +5 -5
- package/dist-vue/_chunks/PkToolShowSources-Dlaz2Y77.js.map +1 -0
- package/dist-vue/_chunks/{PkToolShowSuggestedReply-DQFOVonE.js → PkToolShowSuggestedReply-DWLkUh2L.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowSuggestedReply-DQFOVonE.js.map → PkToolShowSuggestedReply-DWLkUh2L.js.map} +1 -1
- package/dist-vue/_chunks/PkToolShowWeather-Bzqalzh8.js.map +1 -1
- package/dist-vue/_chunks/{PkToolShowWebPages-Bzkkn9GV.js → PkToolShowWebPages-CosBYLrE.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowWebPages-Bzkkn9GV.js.map → PkToolShowWebPages-CosBYLrE.js.map} +1 -1
- package/dist-vue/_chunks/{PkUrl-xUBKVJCv.js → PkUrl-B5CNTQj9.js} +2 -2
- package/dist-vue/_chunks/PkUrl-B5CNTQj9.js.map +1 -0
- package/dist-vue/_chunks/{createChatbotApiClient-CJ_5_3IT.js → createChatbotApiClient-MkaPbGWB.js} +6 -3
- package/dist-vue/_chunks/createChatbotApiClient-MkaPbGWB.js.map +1 -0
- package/dist-vue/_chunks/{useChatbotStore-CiRAuq7v.js → useChatbotStore-BzfqjiYz.js} +6 -3
- package/dist-vue/_chunks/useChatbotStore-BzfqjiYz.js.map +1 -0
- package/dist-vue/_chunks/useDialogConfirm-KWz0ohCQ.js.map +1 -1
- package/dist-vue/_chunks/{utils-Coqik0XI.js → utils-C1666_6C.js} +58 -43
- package/dist-vue/_chunks/utils-C1666_6C.js.map +1 -0
- package/dist-vue/api.js +1 -1
- package/dist-vue/composables.js +3 -3
- package/dist-vue/index.js +3867 -3488
- package/dist-vue/index.js.map +1 -1
- package/dist-vue/locales.js +36 -8
- package/dist-vue/packages/components/src/chat/PkAgentSettingsPanel.d.ts +20 -3
- package/dist-vue/packages/components/src/chat/PkChatButton.d.ts +3 -2
- package/dist-vue/packages/components/src/chat/PkLanguageModel.d.ts +26 -2
- package/dist-vue/packages/components/src/chat/PkLanguageModelCombobox.d.ts +53 -1
- package/dist-vue/packages/components/src/chat/PkModelOption.d.ts +19 -0
- package/dist-vue/packages/components/src/chat/PkReasoningSettings.d.ts +6 -0
- package/dist-vue/packages/components/src/chat/PkStreamingMarkdown.d.ts +6 -0
- package/dist-vue/packages/components/src/chat/PkStreamingMarkdownAutoscroll.d.ts +1 -0
- package/dist-vue/packages/components/src/chat/constants.d.ts +5 -18
- package/dist-vue/packages/components/src/chat/index.d.ts +3 -1
- package/dist-vue/packages/components/src/chat/modelCatalog.d.ts +46 -0
- package/dist-vue/packages/components/src/chat/utils.d.ts +16 -0
- package/dist-vue/packages/components/src/table/PkTableSortable.d.ts +13 -1
- package/dist-vue/packages/composable/src/chatbot/useChatbotStore.d.ts +18 -0
- package/dist-vue/packages/composable/src/useChatbotError.d.ts +2 -0
- package/dist-vue/packages/models/src/schema/Agent.d.ts +70 -10
- package/dist-vue/packages/models/src/schema/Chat.d.ts +31 -0
- package/dist-vue/packages/models/src/schema/ModelProvider.d.ts +316 -0
- package/dist-vue/packages/models/src/schema/Organization.d.ts +142 -2
- package/dist-vue/packages/models/src/schema/ReasoningChat.d.ts +20 -0
- package/dist-vue/packages/models/src/schema/SubAgent.d.ts +20 -0
- package/dist-vue/packages/models/src/schema/UserOverview.d.ts +41 -0
- package/dist-vue/packages/models/src/schema/constants.d.ts +56 -91
- package/dist-vue/packages/models/src/schema/index.d.ts +1 -0
- package/dist-vue/style.css +1 -1
- package/package.json +1 -1
- package/dist/_chunks/Agent-Su_LDF9_.js.map +0 -1
- package/dist/_chunks/Document-DecVclEe.js.map +0 -1
- package/dist/_chunks/Media-C6SOQfJZ.js +0 -122
- package/dist/_chunks/Media-C6SOQfJZ.js.map +0 -1
- package/dist/_chunks/PkStreamingMarkdown-CwqsJnJJ.js.map +0 -1
- package/dist/_chunks/PkToolRequestGeolocation-CEVpl50q.js.map +0 -1
- package/dist/_chunks/PkToolRequestOAuthConnection-CncDU-Kl.js.map +0 -1
- package/dist/_chunks/PkToolShowComparison-DbbUD9pg.js.map +0 -1
- package/dist/_chunks/PkToolShowContactForm-D_dW59Dl.js.map +0 -1
- package/dist/_chunks/PkToolShowDiagram-Hy9qh68O.js.map +0 -1
- package/dist/_chunks/PkToolShowForm-DbJHMDbt.js.map +0 -1
- package/dist/_chunks/PkToolShowSources-B69JmwbZ.js.map +0 -1
- package/dist/_chunks/PkToolShowWeather-LPd3tC77.js.map +0 -1
- package/dist/_chunks/browser-NgY6LXg-.js.map +0 -1
- package/dist/_chunks/utils-YJ0ZOLDG.js +0 -185
- package/dist/_chunks/utils-YJ0ZOLDG.js.map +0 -1
- package/dist-vue/_chunks/Agent-C8BsTAxk.js.map +0 -1
- package/dist-vue/_chunks/Document-CaUfI_SZ.js.map +0 -1
- package/dist-vue/_chunks/PkChatbot-o7k7d-fj.js.map +0 -1
- package/dist-vue/_chunks/PkChatbotError-CBP2mf-n.js.map +0 -1
- package/dist-vue/_chunks/PkChatbotFeedbackForm-DO1QIgmo.js.map +0 -1
- package/dist-vue/_chunks/PkChatbotFilePreview-DO1wZPPj.js.map +0 -1
- package/dist-vue/_chunks/PkChatbotInput-D8x52cVm.js.map +0 -1
- package/dist-vue/_chunks/PkChatbotMessages-BFlU046I.js +0 -771
- package/dist-vue/_chunks/PkChatbotMessages-BFlU046I.js.map +0 -1
- package/dist-vue/_chunks/PkChatbotSteps-DtV1beDc.js +0 -180
- package/dist-vue/_chunks/PkChatbotSteps-DtV1beDc.js.map +0 -1
- package/dist-vue/_chunks/PkStreamingMarkdown-D8_LwZMR.js.map +0 -1
- package/dist-vue/_chunks/PkSvgViewer-DPpE9fiz.js.map +0 -1
- package/dist-vue/_chunks/PkToolRequestGeolocation-D1ZPmWiB.js.map +0 -1
- package/dist-vue/_chunks/PkToolRequestOAuthConnection-CoJyKEE6.js.map +0 -1
- package/dist-vue/_chunks/PkToolShowComparison-DMSjIpCR.js.map +0 -1
- package/dist-vue/_chunks/PkToolShowContactForm-DHmzAIVF.js.map +0 -1
- package/dist-vue/_chunks/PkToolShowDiagram-DuDp5EHd.js.map +0 -1
- package/dist-vue/_chunks/PkToolShowForm-CO5A_j9L.js.map +0 -1
- package/dist-vue/_chunks/PkToolShowSources-BvWOzVkQ.js.map +0 -1
- package/dist-vue/_chunks/PkUrl-xUBKVJCv.js.map +0 -1
- package/dist-vue/_chunks/createChatbotApiClient-CJ_5_3IT.js.map +0 -1
- package/dist-vue/_chunks/useChatbotStore-CiRAuq7v.js.map +0 -1
- package/dist-vue/_chunks/utils-Coqik0XI.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PkToolShowWeather-CqhG430w.js","names":[],"sources":["../../../../packages/utils/src/weather.ts","../../../../packages/components/src/chat/PkToolShowWeather.vue","../../../../packages/components/src/chat/PkToolShowWeather.vue"],"sourcesContent":["/**\n * Framework-agnostic weather presentation primitives. They classify raw\n * open-meteo values into canonical categories; each consumer (web widget,\n * platform card renderer) maps a category to its own representation (an\n * Iconify name, an emoji, a CSS class, an i18n key). Keeping the classification\n * here means the WMO code bands and AQI thresholds live in exactly one place.\n */\n\n/** Canonical WMO weather-code category (resolution matches the web widget). */\nexport type WmoCategory =\n | 'clear'\n | 'mainlyClear'\n | 'partlyCloudy'\n | 'overcast'\n | 'fog'\n | 'drizzle'\n | 'freezingDrizzle'\n | 'rain'\n | 'freezingRain'\n | 'snow'\n | 'rainShowers'\n | 'snowShowers'\n | 'thunderstorm'\n | 'thunderstormHail'\n | 'unknown'\n\n/** Map a WMO weather interpretation code to a canonical category. */\nexport function wmoCategory(code: number | undefined): WmoCategory {\n if (code === undefined) {\n return 'unknown'\n }\n if (code === 0) {\n return 'clear'\n }\n if (code === 1) {\n return 'mainlyClear'\n }\n if (code === 2) {\n return 'partlyCloudy'\n }\n if (code === 3) {\n return 'overcast'\n }\n if (code === 45 || code === 48) {\n return 'fog'\n }\n if (code >= 51 && code <= 55) {\n return 'drizzle'\n }\n if (code === 56 || code === 57) {\n return 'freezingDrizzle'\n }\n if (code >= 61 && code <= 65) {\n return 'rain'\n }\n if (code === 66 || code === 67) {\n return 'freezingRain'\n }\n if (code >= 71 && code <= 77) {\n return 'snow'\n }\n if (code >= 80 && code <= 82) {\n return 'rainShowers'\n }\n if (code === 85 || code === 86) {\n return 'snowShowers'\n }\n if (code === 95) {\n return 'thunderstorm'\n }\n if (code === 96 || code === 99) {\n return 'thunderstormHail'\n }\n return 'unknown'\n}\n\n/** Emoji per category (used by the language-neutral platform card renderer). */\nconst WMO_EMOJI: Record<WmoCategory, string> = {\n clear: '☀️',\n mainlyClear: '⛅',\n partlyCloudy: '⛅',\n overcast: '⛅',\n fog: '🌫️',\n drizzle: '🌦️',\n freezingDrizzle: '🌦️',\n rain: '🌧️',\n freezingRain: '🌧️',\n snow: '❄️',\n rainShowers: '🌧️',\n snowShowers: '🌨️',\n thunderstorm: '⛈️',\n thunderstormHail: '⛈️',\n unknown: '🌡️',\n}\n\n/** WMO code → emoji (convenience for non-UI consumers). */\nexport function wmoEmoji(code: number | undefined): string {\n return WMO_EMOJI[wmoCategory(code)]\n}\n\n/** Canonical European-AQI band, ordered best → worst. */\nexport type AqiBandKey =\n 'good' | 'fair' | 'moderate' | 'poor' | 'veryPoor' | 'hazardous'\n\n/** Classify a European AQI value into a band (index + canonical key). */\nexport function aqiBand(aqi: number): { index: number; key: AqiBandKey } {\n if (aqi <= 20) {\n return { index: 0, key: 'good' }\n }\n if (aqi <= 40) {\n return { index: 1, key: 'fair' }\n }\n if (aqi <= 60) {\n return { index: 2, key: 'moderate' }\n }\n if (aqi <= 80) {\n return { index: 3, key: 'poor' }\n }\n if (aqi <= 100) {\n return { index: 4, key: 'veryPoor' }\n }\n return { index: 5, key: 'hazardous' }\n}\n\n/** Colored dot per AQI band index (used by the platform card renderer). */\nconst AQI_DOTS = ['🟢', '🟡', '🟠', '🔴', '🟣', '⚫']\n\n/** AQI value → colored dot (convenience for non-UI consumers). */\nexport function aqiDot(aqi: number): string {\n return AQI_DOTS[aqiBand(aqi).index]\n}\n","<script setup lang=\"ts\">\n import { computed, ref, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n import type { WeatherData } from 'models'\n import {\n aqiBand,\n wmoCategory,\n type AqiBandKey,\n type WmoCategory,\n } from 'utils'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const { t: $t, d: $d, n: $n } = useI18n({ useScope: 'global' })\n\n const toolPart = computed(() => {\n return props.part as { input?: WeatherData; output?: WeatherData }\n })\n\n const data = computed(\n () => toolPart.value.output ?? toolPart.value.input ?? null,\n )\n\n const selectedDayIndex = ref(0)\n\n const dailyOpen = ref(!data.value?.current)\n\n watch(selectedDayIndex, (index) => {\n if (index > 0) {\n dailyOpen.value = true\n }\n })\n\n const selectedDay = computed(\n () => data.value?.daily?.[selectedDayIndex.value],\n )\n\n /** Hourly entries filtered to the selected day's date */\n const filteredHourly = computed(() => {\n if (!data.value?.hourly?.length || !selectedDay.value) {\n return data.value?.hourly ?? []\n }\n const dayDate = selectedDay.value.date\n return data.value.hourly.filter((h) => h.time.startsWith(dayDate))\n })\n\n /**\n * Parses a date/time string in various formats the LLM might produce.\n * Tries ISO, space-separated, time-only, and common human-readable formats.\n */\n function safeDate(value: string): Date {\n // 1. Try native parsing (works for ISO 8601 and many standard formats)\n const direct = new Date(value)\n if (!Number.isNaN(direct.getTime())) {\n return direct\n }\n\n // 2. Replace space separator → T (\"2024-04-15 14:00\" → \"2024-04-15T14:00\")\n if (/^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}/.test(value)) {\n const withT = new Date(value.replace(' ', 'T'))\n if (!Number.isNaN(withT.getTime())) {\n return withT\n }\n }\n\n // 3. Time-only (\"14:00\" or \"14:00:00\") → today at that hour\n const timeOnly = value.match(/^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?$/)\n if (timeOnly) {\n const today = new Date()\n today.setHours(\n Number(timeOnly[1]),\n Number(timeOnly[2]),\n Number(timeOnly[3] ?? 0),\n 0,\n )\n return today\n }\n\n // 4. Date-only (\"2024-04-15\") → noon to avoid timezone edge\n if (/^\\d{4}-\\d{2}-\\d{2}$/.test(value)) {\n const noon = new Date(value + 'T12:00:00')\n if (!Number.isNaN(noon.getTime())) {\n return noon\n }\n }\n\n // Last resort: return an obviously invalid sentinel so callers can handle it\n return new Date(NaN)\n }\n\n /** Iconify `wi:` icon per canonical WMO category. */\n const WMO_ICON: Record<WmoCategory, string> = {\n clear: 'wi:day-sunny',\n mainlyClear: 'wi:day-sunny-overcast',\n partlyCloudy: 'wi:day-cloudy',\n overcast: 'wi:cloudy',\n fog: 'wi:fog',\n drizzle: 'wi:sprinkle',\n freezingDrizzle: 'wi:sleet',\n rain: 'wi:rain',\n freezingRain: 'wi:rain-mix',\n snow: 'wi:snow',\n rainShowers: 'wi:showers',\n snowShowers: 'wi:snow-wind',\n thunderstorm: 'wi:thunderstorm',\n thunderstormHail: 'wi:storm-showers',\n unknown: 'wi:na',\n }\n\n /** Maps WMO weather code to an Iconify wi: icon name */\n function wmoToIcon(code: number): string {\n return WMO_ICON[wmoCategory(code)]\n }\n\n /**\n * Returns a formatted day label for daily forecast.\n * When daily has 1-2 entries, use the date string directly.\n * Otherwise, use index-based computation from today.\n */\n function formatDay(isoDate: string, index: number, total: number): string {\n const parsed = safeDate(isoDate + 'T12:00:00')\n if (!Number.isNaN(parsed.getTime())) {\n const today = new Date()\n today.setHours(12, 0, 0, 0)\n const diffDays = Math.round(\n (parsed.getTime() - today.getTime()) / 86_400_000,\n )\n if (diffDays === 0) {\n return $t('weather.today')\n }\n return $d(parsed, 'weekday-day')\n }\n if (index === 0 && total <= 7) {\n return $t('weather.today')\n }\n const fallback = new Date()\n fallback.setDate(fallback.getDate() + index)\n return $d(fallback, 'weekday-day')\n }\n\n const headerDate = computed(() => {\n if (selectedDay.value) {\n const parsed = safeDate(selectedDay.value.date + 'T12:00:00')\n if (!Number.isNaN(parsed.getTime())) {\n return formatDay(\n selectedDay.value.date,\n selectedDayIndex.value,\n data.value?.daily?.length ?? 1,\n )\n }\n }\n return formatDay(new Date().toISOString().slice(0, 10), 0, 1)\n })\n\n /** i18n label key + CSS class per canonical AQI band. */\n const AQI_PRESENTATION: Record<\n AqiBandKey,\n { labelKey: string; class: string }\n > = {\n good: {\n labelKey: 'weather.aqiGood',\n class: 'text-green-600 bg-green-50',\n },\n fair: {\n labelKey: 'weather.aqiFair',\n class: 'text-lime-600 bg-lime-50',\n },\n moderate: {\n labelKey: 'weather.aqiModerate',\n class: 'text-yellow-600 bg-yellow-50',\n },\n poor: {\n labelKey: 'weather.aqiPoor',\n class: 'text-orange-600 bg-orange-50',\n },\n veryPoor: {\n labelKey: 'weather.aqiVeryPoor',\n class: 'text-red-600 bg-red-50',\n },\n hazardous: {\n labelKey: 'weather.aqiHazardous',\n class: 'text-purple-700 bg-purple-50',\n },\n }\n\n /** Returns AQI label and CSS class for European AQI */\n function aqiInfo(aqi: number): { label: string; class: string } {\n const { labelKey, class: cssClass } = AQI_PRESENTATION[aqiBand(aqi).key]\n return { label: $t(labelKey), class: cssClass }\n }\n\n /** Formats wind direction degrees to compass label */\n function windDirectionLabel(deg: number): string {\n const dirs = ['N', 'NE', 'E', 'SE', 'S', 'SO', 'O', 'NO']\n return dirs[Math.round(deg / 45) % 8]\n }\n</script>\n\n<template>\n <div\n v-if=\"data\"\n class=\"border border-surface-3 rounded-xl w-full overflow-hidden bg-surface\">\n <!-- Header -->\n <div\n class=\"px-sm py-6 bg-surface-1 min-h-40 text-12 border-b border-surface-3 text-word-3 flex items-center gap-8 min-h-40\">\n <VvIcon name=\"ri:temp-cold-line\" class=\"text-16\" />\n <strong class=\"font-bold truncate\">\n {{ data.locationName }}\n </strong>\n <span class=\"ml-auto shrink-0 capitalize\">\n {{ headerDate }}\n </span>\n </div>\n\n <!-- Current conditions (only when real-time current is available AND first day is selected) -->\n <div\n v-if=\"data.current && selectedDayIndex === 0\"\n class=\"px-sm py-md flex items-center gap-md flex-wrap\">\n <div class=\"flex items-center gap-8\">\n <VvIcon\n :name=\"wmoToIcon(data.current.weatherCode)\"\n class=\"text-48 text-word-2 shrink-0\" />\n <span class=\"text-48 font-light leading-none text-word-1\">\n {{ $n(data.current.temperature, 'integer') }}°\n </span>\n </div>\n <div class=\"flex flex-col gap-4 text-12 text-word-3\">\n <div class=\"flex items-center gap-6\">\n {{ $t('weather.feelsLike') }}\n {{ $n(data.current.feelsLike, 'integer') }}°\n </div>\n <div class=\"flex items-center gap-6\">\n <VvIcon name=\"ri:water-percent-line\" class=\"text-14\" />\n {{ data.current.humidity }}%\n </div>\n <div class=\"flex items-center gap-6\">\n <VvIcon name=\"ri:windy-line\" class=\"text-14\" />\n {{ $n(data.current.windSpeed, 'integer') }} km/h\n {{ windDirectionLabel(data.current.windDirection) }}\n </div>\n <div\n v-if=\"data.current.uvIndex > 0\"\n class=\"flex items-center gap-6\">\n <VvIcon name=\"ri:sun-line\" class=\"text-14\" />\n UV {{ $n(data.current.uvIndex, 'integer') }}\n </div>\n </div>\n </div>\n\n <!-- Day summary (when no real-time current, or a non-today day is selected) -->\n <div\n v-else-if=\"selectedDay\"\n class=\"px-sm py-md flex items-center gap-md flex-wrap\">\n <div class=\"flex items-center gap-8\">\n <VvIcon\n :name=\"wmoToIcon(selectedDay.weatherCode)\"\n class=\"text-48 text-word-2 shrink-0\" />\n <div class=\"flex flex-col leading-none\">\n <span class=\"text-48 font-light text-word-1\">\n {{ $n(selectedDay.maxTemp, 'integer') }}°\n </span>\n <span class=\"text-20 text-word-3\">\n {{ $n(selectedDay.minTemp, 'integer') }}°\n </span>\n </div>\n </div>\n <div class=\"flex flex-col gap-4 text-12 text-word-3\">\n <div\n v-if=\"selectedDay.precipitationProbabilityMax > 0\"\n class=\"flex items-center gap-6\">\n <VvIcon name=\"ri:drop-line\" class=\"text-14\" />\n {{ selectedDay.precipitationProbabilityMax }}% ({{\n selectedDay.precipitationSum\n }}\n mm)\n </div>\n <div\n v-if=\"selectedDay.uvIndexMax > 0\"\n class=\"flex items-center gap-6\">\n <VvIcon name=\"ri:sun-line\" class=\"text-14\" />\n UV {{ $n(selectedDay.uvIndexMax, 'integer') }}\n </div>\n <div class=\"flex items-center gap-6\">\n <VvIcon name=\"ri:sun-foggy-line\" class=\"text-14\" />\n {{ $d(safeDate(selectedDay.sunrise), 'time') }}\n –\n {{ $d(safeDate(selectedDay.sunset), 'time') }}\n </div>\n </div>\n </div>\n\n <!-- Hourly forecast (filtered to selected day) -->\n <transition>\n <div\n v-if=\"filteredHourly.length > 0\"\n class=\"border-t border-surface-3\">\n <div\n class=\"flex overflow-x-auto gap-2 px-sm py-8 light-scrollbar\">\n <div\n v-for=\"hour in filteredHourly\"\n :key=\"hour.time\"\n class=\"flex flex-col items-center gap-4 min-w-48 px-4 py-6 rounded-xl text-11 text-word-3 shrink-0\">\n <span class=\"text-word-3\">{{\n Number.isNaN(safeDate(hour.time).getTime())\n ? hour.time\n : $d(safeDate(hour.time), 'time')\n }}</span>\n <VvIcon\n :name=\"wmoToIcon(hour.weatherCode)\"\n class=\"text-20 text-word-2\" />\n <span class=\"font-medium text-word-1\">\n {{ $n(hour.temperature, 'integer') }}°\n </span>\n <span\n v-if=\"hour.precipitationProbability > 0\"\n class=\"text-word-5 text-smaller\">\n {{ hour.precipitationProbability }}%\n </span>\n </div>\n </div>\n </div>\n </transition>\n\n <!-- Daily forecast (clickable, inside accordion) -->\n <transition>\n <VvAccordion\n v-if=\"data.daily?.length > 1\"\n v-model=\"dailyOpen\"\n modifiers=\"details no-padding\"\n :title=\"$t('weather.dailyForecast')\"\n class=\"border-t border-surface-3\">\n <button\n v-for=\"(day, index) in data.daily\"\n :key=\"day.date\"\n type=\"button\"\n class=\"flex items-center gap-sm px-sm py-8 text-12 w-full text-left transition-colors cursor-pointer border-t border-surface-3\"\n :class=\"\n index === selectedDayIndex\n ? 'bg-surface-2'\n : 'hover:bg-surface-1'\n \"\n @click=\"selectedDayIndex = index\">\n <span class=\"w-48 shrink-0 text-word-3 capitalize\">\n {{ formatDay(day.date, index, data.daily.length) }}\n </span>\n <VvIcon\n :name=\"wmoToIcon(day.weatherCode)\"\n class=\"text-18 text-word-2 shrink-0\" />\n <span\n v-if=\"day.precipitationProbabilityMax > 0\"\n class=\"text-word-5 text-11 w-32 shrink-0\">\n {{ day.precipitationProbabilityMax }}%\n </span>\n <span v-else class=\"w-32 shrink-0\" />\n <div class=\"ml-auto flex items-center gap-8 text-word-3\">\n <span class=\"text-word-1 font-semibold\">\n {{ $n(day.maxTemp, 'integer') }}°\n </span>\n <span>{{ $n(day.minTemp, 'integer') }}°</span>\n </div>\n </button>\n </VvAccordion>\n </transition>\n\n <!-- Air quality -->\n <div\n v-if=\"data.airQuality\"\n class=\"border-t border-surface-3 px-sm py-8 flex items-center gap-8 text-12\">\n <VvIcon name=\"ri:windy-line\" class=\"text-14 text-word-3\" />\n <span class=\"text-word-3\">{{ $t('weather.airQuality') }}</span>\n <span\n :class=\"[\n 'ml-auto px-8 py-2 text-11 font-semibold',\n aqiInfo(data.airQuality.aqi).class,\n ]\">\n {{ aqiInfo(data.airQuality.aqi).label }}\n ({{ data.airQuality.aqi }})\n </span>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import { computed, ref, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n import type { WeatherData } from 'models'\n import {\n aqiBand,\n wmoCategory,\n type AqiBandKey,\n type WmoCategory,\n } from 'utils'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const { t: $t, d: $d, n: $n } = useI18n({ useScope: 'global' })\n\n const toolPart = computed(() => {\n return props.part as { input?: WeatherData; output?: WeatherData }\n })\n\n const data = computed(\n () => toolPart.value.output ?? toolPart.value.input ?? null,\n )\n\n const selectedDayIndex = ref(0)\n\n const dailyOpen = ref(!data.value?.current)\n\n watch(selectedDayIndex, (index) => {\n if (index > 0) {\n dailyOpen.value = true\n }\n })\n\n const selectedDay = computed(\n () => data.value?.daily?.[selectedDayIndex.value],\n )\n\n /** Hourly entries filtered to the selected day's date */\n const filteredHourly = computed(() => {\n if (!data.value?.hourly?.length || !selectedDay.value) {\n return data.value?.hourly ?? []\n }\n const dayDate = selectedDay.value.date\n return data.value.hourly.filter((h) => h.time.startsWith(dayDate))\n })\n\n /**\n * Parses a date/time string in various formats the LLM might produce.\n * Tries ISO, space-separated, time-only, and common human-readable formats.\n */\n function safeDate(value: string): Date {\n // 1. Try native parsing (works for ISO 8601 and many standard formats)\n const direct = new Date(value)\n if (!Number.isNaN(direct.getTime())) {\n return direct\n }\n\n // 2. Replace space separator → T (\"2024-04-15 14:00\" → \"2024-04-15T14:00\")\n if (/^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}/.test(value)) {\n const withT = new Date(value.replace(' ', 'T'))\n if (!Number.isNaN(withT.getTime())) {\n return withT\n }\n }\n\n // 3. Time-only (\"14:00\" or \"14:00:00\") → today at that hour\n const timeOnly = value.match(/^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?$/)\n if (timeOnly) {\n const today = new Date()\n today.setHours(\n Number(timeOnly[1]),\n Number(timeOnly[2]),\n Number(timeOnly[3] ?? 0),\n 0,\n )\n return today\n }\n\n // 4. Date-only (\"2024-04-15\") → noon to avoid timezone edge\n if (/^\\d{4}-\\d{2}-\\d{2}$/.test(value)) {\n const noon = new Date(value + 'T12:00:00')\n if (!Number.isNaN(noon.getTime())) {\n return noon\n }\n }\n\n // Last resort: return an obviously invalid sentinel so callers can handle it\n return new Date(NaN)\n }\n\n /** Iconify `wi:` icon per canonical WMO category. */\n const WMO_ICON: Record<WmoCategory, string> = {\n clear: 'wi:day-sunny',\n mainlyClear: 'wi:day-sunny-overcast',\n partlyCloudy: 'wi:day-cloudy',\n overcast: 'wi:cloudy',\n fog: 'wi:fog',\n drizzle: 'wi:sprinkle',\n freezingDrizzle: 'wi:sleet',\n rain: 'wi:rain',\n freezingRain: 'wi:rain-mix',\n snow: 'wi:snow',\n rainShowers: 'wi:showers',\n snowShowers: 'wi:snow-wind',\n thunderstorm: 'wi:thunderstorm',\n thunderstormHail: 'wi:storm-showers',\n unknown: 'wi:na',\n }\n\n /** Maps WMO weather code to an Iconify wi: icon name */\n function wmoToIcon(code: number): string {\n return WMO_ICON[wmoCategory(code)]\n }\n\n /**\n * Returns a formatted day label for daily forecast.\n * When daily has 1-2 entries, use the date string directly.\n * Otherwise, use index-based computation from today.\n */\n function formatDay(isoDate: string, index: number, total: number): string {\n const parsed = safeDate(isoDate + 'T12:00:00')\n if (!Number.isNaN(parsed.getTime())) {\n const today = new Date()\n today.setHours(12, 0, 0, 0)\n const diffDays = Math.round(\n (parsed.getTime() - today.getTime()) / 86_400_000,\n )\n if (diffDays === 0) {\n return $t('weather.today')\n }\n return $d(parsed, 'weekday-day')\n }\n if (index === 0 && total <= 7) {\n return $t('weather.today')\n }\n const fallback = new Date()\n fallback.setDate(fallback.getDate() + index)\n return $d(fallback, 'weekday-day')\n }\n\n const headerDate = computed(() => {\n if (selectedDay.value) {\n const parsed = safeDate(selectedDay.value.date + 'T12:00:00')\n if (!Number.isNaN(parsed.getTime())) {\n return formatDay(\n selectedDay.value.date,\n selectedDayIndex.value,\n data.value?.daily?.length ?? 1,\n )\n }\n }\n return formatDay(new Date().toISOString().slice(0, 10), 0, 1)\n })\n\n /** i18n label key + CSS class per canonical AQI band. */\n const AQI_PRESENTATION: Record<\n AqiBandKey,\n { labelKey: string; class: string }\n > = {\n good: {\n labelKey: 'weather.aqiGood',\n class: 'text-green-600 bg-green-50',\n },\n fair: {\n labelKey: 'weather.aqiFair',\n class: 'text-lime-600 bg-lime-50',\n },\n moderate: {\n labelKey: 'weather.aqiModerate',\n class: 'text-yellow-600 bg-yellow-50',\n },\n poor: {\n labelKey: 'weather.aqiPoor',\n class: 'text-orange-600 bg-orange-50',\n },\n veryPoor: {\n labelKey: 'weather.aqiVeryPoor',\n class: 'text-red-600 bg-red-50',\n },\n hazardous: {\n labelKey: 'weather.aqiHazardous',\n class: 'text-purple-700 bg-purple-50',\n },\n }\n\n /** Returns AQI label and CSS class for European AQI */\n function aqiInfo(aqi: number): { label: string; class: string } {\n const { labelKey, class: cssClass } = AQI_PRESENTATION[aqiBand(aqi).key]\n return { label: $t(labelKey), class: cssClass }\n }\n\n /** Formats wind direction degrees to compass label */\n function windDirectionLabel(deg: number): string {\n const dirs = ['N', 'NE', 'E', 'SE', 'S', 'SO', 'O', 'NO']\n return dirs[Math.round(deg / 45) % 8]\n }\n</script>\n\n<template>\n <div\n v-if=\"data\"\n class=\"border border-surface-3 rounded-xl w-full overflow-hidden bg-surface\">\n <!-- Header -->\n <div\n class=\"px-sm py-6 bg-surface-1 min-h-40 text-12 border-b border-surface-3 text-word-3 flex items-center gap-8 min-h-40\">\n <VvIcon name=\"ri:temp-cold-line\" class=\"text-16\" />\n <strong class=\"font-bold truncate\">\n {{ data.locationName }}\n </strong>\n <span class=\"ml-auto shrink-0 capitalize\">\n {{ headerDate }}\n </span>\n </div>\n\n <!-- Current conditions (only when real-time current is available AND first day is selected) -->\n <div\n v-if=\"data.current && selectedDayIndex === 0\"\n class=\"px-sm py-md flex items-center gap-md flex-wrap\">\n <div class=\"flex items-center gap-8\">\n <VvIcon\n :name=\"wmoToIcon(data.current.weatherCode)\"\n class=\"text-48 text-word-2 shrink-0\" />\n <span class=\"text-48 font-light leading-none text-word-1\">\n {{ $n(data.current.temperature, 'integer') }}°\n </span>\n </div>\n <div class=\"flex flex-col gap-4 text-12 text-word-3\">\n <div class=\"flex items-center gap-6\">\n {{ $t('weather.feelsLike') }}\n {{ $n(data.current.feelsLike, 'integer') }}°\n </div>\n <div class=\"flex items-center gap-6\">\n <VvIcon name=\"ri:water-percent-line\" class=\"text-14\" />\n {{ data.current.humidity }}%\n </div>\n <div class=\"flex items-center gap-6\">\n <VvIcon name=\"ri:windy-line\" class=\"text-14\" />\n {{ $n(data.current.windSpeed, 'integer') }} km/h\n {{ windDirectionLabel(data.current.windDirection) }}\n </div>\n <div\n v-if=\"data.current.uvIndex > 0\"\n class=\"flex items-center gap-6\">\n <VvIcon name=\"ri:sun-line\" class=\"text-14\" />\n UV {{ $n(data.current.uvIndex, 'integer') }}\n </div>\n </div>\n </div>\n\n <!-- Day summary (when no real-time current, or a non-today day is selected) -->\n <div\n v-else-if=\"selectedDay\"\n class=\"px-sm py-md flex items-center gap-md flex-wrap\">\n <div class=\"flex items-center gap-8\">\n <VvIcon\n :name=\"wmoToIcon(selectedDay.weatherCode)\"\n class=\"text-48 text-word-2 shrink-0\" />\n <div class=\"flex flex-col leading-none\">\n <span class=\"text-48 font-light text-word-1\">\n {{ $n(selectedDay.maxTemp, 'integer') }}°\n </span>\n <span class=\"text-20 text-word-3\">\n {{ $n(selectedDay.minTemp, 'integer') }}°\n </span>\n </div>\n </div>\n <div class=\"flex flex-col gap-4 text-12 text-word-3\">\n <div\n v-if=\"selectedDay.precipitationProbabilityMax > 0\"\n class=\"flex items-center gap-6\">\n <VvIcon name=\"ri:drop-line\" class=\"text-14\" />\n {{ selectedDay.precipitationProbabilityMax }}% ({{\n selectedDay.precipitationSum\n }}\n mm)\n </div>\n <div\n v-if=\"selectedDay.uvIndexMax > 0\"\n class=\"flex items-center gap-6\">\n <VvIcon name=\"ri:sun-line\" class=\"text-14\" />\n UV {{ $n(selectedDay.uvIndexMax, 'integer') }}\n </div>\n <div class=\"flex items-center gap-6\">\n <VvIcon name=\"ri:sun-foggy-line\" class=\"text-14\" />\n {{ $d(safeDate(selectedDay.sunrise), 'time') }}\n –\n {{ $d(safeDate(selectedDay.sunset), 'time') }}\n </div>\n </div>\n </div>\n\n <!-- Hourly forecast (filtered to selected day) -->\n <transition>\n <div\n v-if=\"filteredHourly.length > 0\"\n class=\"border-t border-surface-3\">\n <div\n class=\"flex overflow-x-auto gap-2 px-sm py-8 light-scrollbar\">\n <div\n v-for=\"hour in filteredHourly\"\n :key=\"hour.time\"\n class=\"flex flex-col items-center gap-4 min-w-48 px-4 py-6 rounded-xl text-11 text-word-3 shrink-0\">\n <span class=\"text-word-3\">{{\n Number.isNaN(safeDate(hour.time).getTime())\n ? hour.time\n : $d(safeDate(hour.time), 'time')\n }}</span>\n <VvIcon\n :name=\"wmoToIcon(hour.weatherCode)\"\n class=\"text-20 text-word-2\" />\n <span class=\"font-medium text-word-1\">\n {{ $n(hour.temperature, 'integer') }}°\n </span>\n <span\n v-if=\"hour.precipitationProbability > 0\"\n class=\"text-word-5 text-smaller\">\n {{ hour.precipitationProbability }}%\n </span>\n </div>\n </div>\n </div>\n </transition>\n\n <!-- Daily forecast (clickable, inside accordion) -->\n <transition>\n <VvAccordion\n v-if=\"data.daily?.length > 1\"\n v-model=\"dailyOpen\"\n modifiers=\"details no-padding\"\n :title=\"$t('weather.dailyForecast')\"\n class=\"border-t border-surface-3\">\n <button\n v-for=\"(day, index) in data.daily\"\n :key=\"day.date\"\n type=\"button\"\n class=\"flex items-center gap-sm px-sm py-8 text-12 w-full text-left transition-colors cursor-pointer border-t border-surface-3\"\n :class=\"\n index === selectedDayIndex\n ? 'bg-surface-2'\n : 'hover:bg-surface-1'\n \"\n @click=\"selectedDayIndex = index\">\n <span class=\"w-48 shrink-0 text-word-3 capitalize\">\n {{ formatDay(day.date, index, data.daily.length) }}\n </span>\n <VvIcon\n :name=\"wmoToIcon(day.weatherCode)\"\n class=\"text-18 text-word-2 shrink-0\" />\n <span\n v-if=\"day.precipitationProbabilityMax > 0\"\n class=\"text-word-5 text-11 w-32 shrink-0\">\n {{ day.precipitationProbabilityMax }}%\n </span>\n <span v-else class=\"w-32 shrink-0\" />\n <div class=\"ml-auto flex items-center gap-8 text-word-3\">\n <span class=\"text-word-1 font-semibold\">\n {{ $n(day.maxTemp, 'integer') }}°\n </span>\n <span>{{ $n(day.minTemp, 'integer') }}°</span>\n </div>\n </button>\n </VvAccordion>\n </transition>\n\n <!-- Air quality -->\n <div\n v-if=\"data.airQuality\"\n class=\"border-t border-surface-3 px-sm py-8 flex items-center gap-8 text-12\">\n <VvIcon name=\"ri:windy-line\" class=\"text-14 text-word-3\" />\n <span class=\"text-word-3\">{{ $t('weather.airQuality') }}</span>\n <span\n :class=\"[\n 'ml-auto px-8 py-2 text-11 font-semibold',\n aqiInfo(data.airQuality.aqi).class,\n ]\">\n {{ aqiInfo(data.airQuality.aqi).label }}\n ({{ data.airQuality.aqi }})\n </span>\n </div>\n </div>\n</template>\n"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { C as e, L as t, O as n, Tt as r, _ as i, b as a, bt as o, d as s, g as c, h as l, it as u, m as d, pt as f, v as p, x as m, xt as h, z as g } from "./vue.runtime.esm-bundler-CIT_Sbqw.js";
|
|
2
2
|
import "./src-BQHP1-Xs.js";
|
|
3
3
|
import { n as _ } from "./url-validation-uLMZ5-AU.js";
|
|
4
|
-
import { n as v } from "./index.es-
|
|
5
|
-
import { t as y } from "./PkLazyImg-
|
|
4
|
+
import { n as v } from "./index.es-0YpCa4c5.js";
|
|
5
|
+
import { t as y } from "./PkLazyImg-Dbj2dDXA.js";
|
|
6
6
|
import { t as b } from "./PkUrl-BPbjZJ1A.js";
|
|
7
7
|
n(), u(), h();
|
|
8
8
|
var x = {
|
|
@@ -75,4 +75,4 @@ var x = {
|
|
|
75
75
|
//#endregion
|
|
76
76
|
export { O as default };
|
|
77
77
|
|
|
78
|
-
//# sourceMappingURL=PkToolShowWebPages-
|
|
78
|
+
//# sourceMappingURL=PkToolShowWebPages-txAZi_iG.js.map
|
package/dist/_chunks/{PkToolShowWebPages-ep_erFF0.js.map → PkToolShowWebPages-txAZi_iG.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PkToolShowWebPages-ep_erFF0.js","names":["$t"],"sources":["../../../../packages/components/src/chat/PkToolShowWebPages.vue","../../../../packages/components/src/chat/PkToolShowWebPages.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed, ref } from 'vue'\n import { isSameSite } from 'utils'\n import PkLazyImg from '../PkLazyImg.vue'\n import PkUrl from '../PkUrl.vue'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n pages: Array<{\n title: string\n url: string\n image?: string\n description?: string\n }>\n }\n }\n return part\n })\n\n // The model often passes the same URL several times (e.g. multiple KB\n // chunks from one page), so collapse duplicates, keeping the first (richest)\n // entry. Normalize by dropping the hash and any trailing slash.\n const normalizeUrl = (url: string) => {\n try {\n const u = new URL(url)\n u.hash = ''\n return u.toString().replace(/\\/$/, '')\n } catch {\n return url.trim().replace(/\\/$/, '')\n }\n }\n const uniquePages = computed(() => {\n const seen = new Set<string>()\n const result: NonNullable<typeof toolPart.value.input>['pages'] = []\n for (const page of toolPart.value.input?.pages || []) {\n const key = normalizeUrl(page.url)\n if (seen.has(key)) {\n continue\n }\n seen.add(key)\n result.push(page)\n }\n return result\n })\n\n const showMore = ref(false)\n const pages = computed(() => {\n if (showMore.value) {\n return uniquePages.value\n }\n return uniquePages.value.slice(0, 2)\n })\n const hasMore = computed(() => uniquePages.value.length > 2)\n</script>\n\n<template>\n <ul v-if=\"pages?.length\" class=\"u-pick-list w-full shrink-0\">\n <li\n v-for=\"(page, index) in pages\"\n :key=\"index\"\n class=\"u-pick-list__row\">\n <a\n :href=\"page.url\"\n :title=\"$t('action.open')\"\n :target=\"isSameSite(page.url) ? undefined : '_blank'\"\n :rel=\"isSameSite(page.url) ? undefined : 'noopener noreferrer'\"\n class=\"u-pick-list__entry u-pick-list__entry--roomy u-pick-list__entry--top\">\n <!-- og:images the model scraped are third-party urls: a dead one\n degrades to an icon instead of breaking the card layout -->\n <PkLazyImg\n v-if=\"page.image\"\n :src=\"page.image\"\n :alt=\"page.title\"\n fallback-icon=\"ri:image-off-line\"\n class=\"w-48 h-48 object-contain rounded-lg shrink-0 border border-surface-3 bg-surface\" />\n <div class=\"flex flex-col gap-4 min-w-0 flex-1\">\n <strong\n class=\"u-pick-list__label font-medium text-12 text-word-1\">\n {{ page.title }}\n </strong>\n <span\n class=\"text-10 text-word-4 truncate flex items-center gap-4\">\n <VvIcon name=\"ri:link\" class=\"shrink-0 text-12\" />\n <PkUrl :url=\"page.url\" />\n </span>\n <p\n v-if=\"page.description\"\n class=\"text-12 text-word-3 line-clamp-2\">\n {{ page.description }}\n </p>\n </div>\n </a>\n </li>\n <li v-if=\"hasMore\" class=\"u-pick-list__row\">\n <button\n class=\"u-pick-list__entry text-12 text-word-3 justify-center cursor-pointer\"\n @click=\"showMore = !showMore\">\n <VvIcon\n :name=\"\n showMore ? 'ri:arrow-up-s-line' : 'ri:arrow-down-s-line'\n \"\n class=\"text-16\" />\n {{\n showMore\n ? $t('action.showLess')\n : $t('action.showMore', {\n count: uniquePages.length - 2,\n })\n }}\n </button>\n </li>\n </ul>\n</template>\n","<script setup lang=\"ts\">\n import { computed, ref } from 'vue'\n import { isSameSite } from 'utils'\n import PkLazyImg from '../PkLazyImg.vue'\n import PkUrl from '../PkUrl.vue'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n pages: Array<{\n title: string\n url: string\n image?: string\n description?: string\n }>\n }\n }\n return part\n })\n\n // The model often passes the same URL several times (e.g. multiple KB\n // chunks from one page), so collapse duplicates, keeping the first (richest)\n // entry. Normalize by dropping the hash and any trailing slash.\n const normalizeUrl = (url: string) => {\n try {\n const u = new URL(url)\n u.hash = ''\n return u.toString().replace(/\\/$/, '')\n } catch {\n return url.trim().replace(/\\/$/, '')\n }\n }\n const uniquePages = computed(() => {\n const seen = new Set<string>()\n const result: NonNullable<typeof toolPart.value.input>['pages'] = []\n for (const page of toolPart.value.input?.pages || []) {\n const key = normalizeUrl(page.url)\n if (seen.has(key)) {\n continue\n }\n seen.add(key)\n result.push(page)\n }\n return result\n })\n\n const showMore = ref(false)\n const pages = computed(() => {\n if (showMore.value) {\n return uniquePages.value\n }\n return uniquePages.value.slice(0, 2)\n })\n const hasMore = computed(() => uniquePages.value.length > 2)\n</script>\n\n<template>\n <ul v-if=\"pages?.length\" class=\"u-pick-list w-full shrink-0\">\n <li\n v-for=\"(page, index) in pages\"\n :key=\"index\"\n class=\"u-pick-list__row\">\n <a\n :href=\"page.url\"\n :title=\"$t('action.open')\"\n :target=\"isSameSite(page.url) ? undefined : '_blank'\"\n :rel=\"isSameSite(page.url) ? undefined : 'noopener noreferrer'\"\n class=\"u-pick-list__entry u-pick-list__entry--roomy u-pick-list__entry--top\">\n <!-- og:images the model scraped are third-party urls: a dead one\n degrades to an icon instead of breaking the card layout -->\n <PkLazyImg\n v-if=\"page.image\"\n :src=\"page.image\"\n :alt=\"page.title\"\n fallback-icon=\"ri:image-off-line\"\n class=\"w-48 h-48 object-contain rounded-lg shrink-0 border border-surface-3 bg-surface\" />\n <div class=\"flex flex-col gap-4 min-w-0 flex-1\">\n <strong\n class=\"u-pick-list__label font-medium text-12 text-word-1\">\n {{ page.title }}\n </strong>\n <span\n class=\"text-10 text-word-4 truncate flex items-center gap-4\">\n <VvIcon name=\"ri:link\" class=\"shrink-0 text-12\" />\n <PkUrl :url=\"page.url\" />\n </span>\n <p\n v-if=\"page.description\"\n class=\"text-12 text-word-3 line-clamp-2\">\n {{ page.description }}\n </p>\n </div>\n </a>\n </li>\n <li v-if=\"hasMore\" class=\"u-pick-list__row\">\n <button\n class=\"u-pick-list__entry text-12 text-word-3 justify-center cursor-pointer\"\n @click=\"showMore = !showMore\">\n <VvIcon\n :name=\"\n showMore ? 'ri:arrow-up-s-line' : 'ri:arrow-down-s-line'\n \"\n class=\"text-16\" />\n {{\n showMore\n ? $t('action.showLess')\n : $t('action.showMore', {\n count: uniquePages.length - 2,\n })\n }}\n </button>\n </li>\n </ul>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EAMI,IAAM,IAAQ,GAIR,IAAW,QACA,EAAM,IAWtB,GAKK,KAAgB,MAAgB;GAClC,IAAI;IACA,IAAM,IAAI,IAAI,IAAI,CAAG;IAErB,OADA,EAAE,OAAO,IACF,EAAE,SAAS,CAAC,CAAC,QAAQ,OAAO,EAAE;GACzC,QAAQ;IACJ,OAAO,EAAI,KAAK,CAAC,CAAC,QAAQ,OAAO,EAAE;GACvC;EACJ,GACM,IAAc,QAAe;GAC/B,IAAM,oBAAO,IAAI,IAAY,GACvB,IAA4D,CAAC;GACnE,KAAK,IAAM,KAAQ,EAAS,MAAM,OAAO,SAAS,CAAC,GAAG;IAClD,IAAM,IAAM,EAAa,EAAK,GAAG;IAC7B,EAAK,IAAI,CAAG,MAGhB,EAAK,IAAI,CAAG,GACZ,EAAO,KAAK,CAAI;GACpB;GACA,OAAO;EACX,CAAC,GAEK,IAAW,EAAI,EAAK,GACpB,IAAQ,QACN,EAAS,QACF,EAAY,QAEhB,EAAY,MAAM,MAAM,GAAG,CAAC,CACtC,GACK,IAAU,QAAe,EAAY,MAAM,SAAS,CAAC;;;GAIjD,OAAA,EAAA,OAAO,UAAjB,EAAA,GAAA,EAuDK,MAvDL,GAuDK,EAtDD,EAAA,EAAA,GAAA,EAmCK,GAAA,MAAA,EAlCuB,EAAA,QAAhB,GAAM,OADlB,EAAA,GAAA,EAmCK,MAAA;IAjCA,KAAK;IACN,OAAM;GACN,GAAA,CAAA,EA8BI,KAAA;IA7BC,MAAM,EAAK;IACX,OAAOA,EAAAA,GAAE,aAAA;IACT,QAAQ,EAAA,CAAA,CAAU,CAAC,EAAK,GAAG,IAAI,KAAA,IAAS;IACxC,KAAK,EAAA,CAAA,CAAU,CAAC,EAAK,GAAG,IAAI,KAAA,IAAS;IACtC,OAAM;GAII,GAAA,CAAA,EAAK,SADf,EAAA,GAAA,EAK8F,GAAA;;IAHzF,KAAK,EAAK;IACV,KAAK,EAAK;IACX,iBAAc;IACd,OAAM;GACV,GAAA,MAAA,GAAA,CAAA,OAAA,KAAA,CAAA,KAAA,EAAA,IAAA,EAAA,GAAA,EAeM,OAfN,GAeM;IAdF,EAGS,UAHT,GAGS,EADF,EAAK,KAAK,GAAA,CAAA;IAEjB,EAIO,QAJP,GAIO,CAFH,EAAkD,GAAA;KAA1C,MAAK;KAAU,OAAM;IAC7B,CAAA,GAAA,EAAyB,GAAA,EAAjB,KAAK,EAAK,IAAA,GAAA,MAAA,GAAA,CAAA,KAAA,CAAA,CAAA,CAAA;IAGZ,EAAK,eADf,EAAA,GAAA,EAII,KAJJ,GAII,EADG,EAAK,WAAW,GAAA,CAAA,KAAA,EAAA,IAAA,EAAA;gBAKzB,GAAA,GAAA,IAAA,EAAA,SAAV,EAAA,GAAA,EAiBK,MAjBL,GAiBK,CAhBD,EAeS,UAAA;IAdL,OAAM;IACL,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,QAAQ,CAAI,EAAA;GACpB,GAAA,CAAA,EAIsB,GAAA;IAHjB,MAA+B,EAAA,QAAQ,uBAAA;IAGxC,OAAM;GAAY,GAAA,MAAA,GAAA,CAAA,MAAA,CAAA,GAAA,EAAA,MACtB,EACI,EAAA,QAAmCA,EAAAA,GAAE,iBAAA,IAA8CA,EAAAA,GAAE,mBAAA,EAA2D,OAAA,EAAA,MAAY,SAAM,EAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,CAAA,KAAA,EAAA,IAAA,EAAA"}
|
|
1
|
+
{"version":3,"file":"PkToolShowWebPages-txAZi_iG.js","names":["$t"],"sources":["../../../../packages/components/src/chat/PkToolShowWebPages.vue","../../../../packages/components/src/chat/PkToolShowWebPages.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed, ref } from 'vue'\n import { isSameSite } from 'utils'\n import PkLazyImg from '../PkLazyImg.vue'\n import PkUrl from '../PkUrl.vue'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n pages: Array<{\n title: string\n url: string\n image?: string\n description?: string\n }>\n }\n }\n return part\n })\n\n // The model often passes the same URL several times (e.g. multiple KB\n // chunks from one page), so collapse duplicates, keeping the first (richest)\n // entry. Normalize by dropping the hash and any trailing slash.\n const normalizeUrl = (url: string) => {\n try {\n const u = new URL(url)\n u.hash = ''\n return u.toString().replace(/\\/$/, '')\n } catch {\n return url.trim().replace(/\\/$/, '')\n }\n }\n const uniquePages = computed(() => {\n const seen = new Set<string>()\n const result: NonNullable<typeof toolPart.value.input>['pages'] = []\n for (const page of toolPart.value.input?.pages || []) {\n const key = normalizeUrl(page.url)\n if (seen.has(key)) {\n continue\n }\n seen.add(key)\n result.push(page)\n }\n return result\n })\n\n const showMore = ref(false)\n const pages = computed(() => {\n if (showMore.value) {\n return uniquePages.value\n }\n return uniquePages.value.slice(0, 2)\n })\n const hasMore = computed(() => uniquePages.value.length > 2)\n</script>\n\n<template>\n <ul v-if=\"pages?.length\" class=\"u-pick-list w-full shrink-0\">\n <li\n v-for=\"(page, index) in pages\"\n :key=\"index\"\n class=\"u-pick-list__row\">\n <a\n :href=\"page.url\"\n :title=\"$t('action.open')\"\n :target=\"isSameSite(page.url) ? undefined : '_blank'\"\n :rel=\"isSameSite(page.url) ? undefined : 'noopener noreferrer'\"\n class=\"u-pick-list__entry u-pick-list__entry--roomy u-pick-list__entry--top\">\n <!-- og:images the model scraped are third-party urls: a dead one\n degrades to an icon instead of breaking the card layout -->\n <PkLazyImg\n v-if=\"page.image\"\n :src=\"page.image\"\n :alt=\"page.title\"\n fallback-icon=\"ri:image-off-line\"\n class=\"w-48 h-48 object-contain rounded-lg shrink-0 border border-surface-3 bg-surface\" />\n <div class=\"flex flex-col gap-4 min-w-0 flex-1\">\n <strong\n class=\"u-pick-list__label font-medium text-12 text-word-1\">\n {{ page.title }}\n </strong>\n <span\n class=\"text-10 text-word-4 truncate flex items-center gap-4\">\n <VvIcon name=\"ri:link\" class=\"shrink-0 text-12\" />\n <PkUrl :url=\"page.url\" />\n </span>\n <p\n v-if=\"page.description\"\n class=\"text-12 text-word-3 line-clamp-2\">\n {{ page.description }}\n </p>\n </div>\n </a>\n </li>\n <li v-if=\"hasMore\" class=\"u-pick-list__row\">\n <button\n class=\"u-pick-list__entry text-12 text-word-3 justify-center cursor-pointer\"\n @click=\"showMore = !showMore\">\n <VvIcon\n :name=\"\n showMore ? 'ri:arrow-up-s-line' : 'ri:arrow-down-s-line'\n \"\n class=\"text-16\" />\n {{\n showMore\n ? $t('action.showLess')\n : $t('action.showMore', {\n count: uniquePages.length - 2,\n })\n }}\n </button>\n </li>\n </ul>\n</template>\n","<script setup lang=\"ts\">\n import { computed, ref } from 'vue'\n import { isSameSite } from 'utils'\n import PkLazyImg from '../PkLazyImg.vue'\n import PkUrl from '../PkUrl.vue'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n pages: Array<{\n title: string\n url: string\n image?: string\n description?: string\n }>\n }\n }\n return part\n })\n\n // The model often passes the same URL several times (e.g. multiple KB\n // chunks from one page), so collapse duplicates, keeping the first (richest)\n // entry. Normalize by dropping the hash and any trailing slash.\n const normalizeUrl = (url: string) => {\n try {\n const u = new URL(url)\n u.hash = ''\n return u.toString().replace(/\\/$/, '')\n } catch {\n return url.trim().replace(/\\/$/, '')\n }\n }\n const uniquePages = computed(() => {\n const seen = new Set<string>()\n const result: NonNullable<typeof toolPart.value.input>['pages'] = []\n for (const page of toolPart.value.input?.pages || []) {\n const key = normalizeUrl(page.url)\n if (seen.has(key)) {\n continue\n }\n seen.add(key)\n result.push(page)\n }\n return result\n })\n\n const showMore = ref(false)\n const pages = computed(() => {\n if (showMore.value) {\n return uniquePages.value\n }\n return uniquePages.value.slice(0, 2)\n })\n const hasMore = computed(() => uniquePages.value.length > 2)\n</script>\n\n<template>\n <ul v-if=\"pages?.length\" class=\"u-pick-list w-full shrink-0\">\n <li\n v-for=\"(page, index) in pages\"\n :key=\"index\"\n class=\"u-pick-list__row\">\n <a\n :href=\"page.url\"\n :title=\"$t('action.open')\"\n :target=\"isSameSite(page.url) ? undefined : '_blank'\"\n :rel=\"isSameSite(page.url) ? undefined : 'noopener noreferrer'\"\n class=\"u-pick-list__entry u-pick-list__entry--roomy u-pick-list__entry--top\">\n <!-- og:images the model scraped are third-party urls: a dead one\n degrades to an icon instead of breaking the card layout -->\n <PkLazyImg\n v-if=\"page.image\"\n :src=\"page.image\"\n :alt=\"page.title\"\n fallback-icon=\"ri:image-off-line\"\n class=\"w-48 h-48 object-contain rounded-lg shrink-0 border border-surface-3 bg-surface\" />\n <div class=\"flex flex-col gap-4 min-w-0 flex-1\">\n <strong\n class=\"u-pick-list__label font-medium text-12 text-word-1\">\n {{ page.title }}\n </strong>\n <span\n class=\"text-10 text-word-4 truncate flex items-center gap-4\">\n <VvIcon name=\"ri:link\" class=\"shrink-0 text-12\" />\n <PkUrl :url=\"page.url\" />\n </span>\n <p\n v-if=\"page.description\"\n class=\"text-12 text-word-3 line-clamp-2\">\n {{ page.description }}\n </p>\n </div>\n </a>\n </li>\n <li v-if=\"hasMore\" class=\"u-pick-list__row\">\n <button\n class=\"u-pick-list__entry text-12 text-word-3 justify-center cursor-pointer\"\n @click=\"showMore = !showMore\">\n <VvIcon\n :name=\"\n showMore ? 'ri:arrow-up-s-line' : 'ri:arrow-down-s-line'\n \"\n class=\"text-16\" />\n {{\n showMore\n ? $t('action.showLess')\n : $t('action.showMore', {\n count: uniquePages.length - 2,\n })\n }}\n </button>\n </li>\n </ul>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EAMI,IAAM,IAAQ,GAIR,IAAW,QACA,EAAM,IAWtB,GAKK,KAAgB,MAAgB;GAClC,IAAI;IACA,IAAM,IAAI,IAAI,IAAI,CAAG;IAErB,OADA,EAAE,OAAO,IACF,EAAE,SAAS,CAAC,CAAC,QAAQ,OAAO,EAAE;GACzC,QAAQ;IACJ,OAAO,EAAI,KAAK,CAAC,CAAC,QAAQ,OAAO,EAAE;GACvC;EACJ,GACM,IAAc,QAAe;GAC/B,IAAM,oBAAO,IAAI,IAAY,GACvB,IAA4D,CAAC;GACnE,KAAK,IAAM,KAAQ,EAAS,MAAM,OAAO,SAAS,CAAC,GAAG;IAClD,IAAM,IAAM,EAAa,EAAK,GAAG;IAC7B,EAAK,IAAI,CAAG,MAGhB,EAAK,IAAI,CAAG,GACZ,EAAO,KAAK,CAAI;GACpB;GACA,OAAO;EACX,CAAC,GAEK,IAAW,EAAI,EAAK,GACpB,IAAQ,QACN,EAAS,QACF,EAAY,QAEhB,EAAY,MAAM,MAAM,GAAG,CAAC,CACtC,GACK,IAAU,QAAe,EAAY,MAAM,SAAS,CAAC;;;GAIjD,OAAA,EAAA,OAAO,UAAjB,EAAA,GAAA,EAuDK,MAvDL,GAuDK,EAtDD,EAAA,EAAA,GAAA,EAmCK,GAAA,MAAA,EAlCuB,EAAA,QAAhB,GAAM,OADlB,EAAA,GAAA,EAmCK,MAAA;IAjCA,KAAK;IACN,OAAM;GACN,GAAA,CAAA,EA8BI,KAAA;IA7BC,MAAM,EAAK;IACX,OAAOA,EAAAA,GAAE,aAAA;IACT,QAAQ,EAAA,CAAA,CAAU,CAAC,EAAK,GAAG,IAAI,KAAA,IAAS;IACxC,KAAK,EAAA,CAAA,CAAU,CAAC,EAAK,GAAG,IAAI,KAAA,IAAS;IACtC,OAAM;GAII,GAAA,CAAA,EAAK,SADf,EAAA,GAAA,EAK8F,GAAA;;IAHzF,KAAK,EAAK;IACV,KAAK,EAAK;IACX,iBAAc;IACd,OAAM;GACV,GAAA,MAAA,GAAA,CAAA,OAAA,KAAA,CAAA,KAAA,EAAA,IAAA,EAAA,GAAA,EAeM,OAfN,GAeM;IAdF,EAGS,UAHT,GAGS,EADF,EAAK,KAAK,GAAA,CAAA;IAEjB,EAIO,QAJP,GAIO,CAFH,EAAkD,GAAA;KAA1C,MAAK;KAAU,OAAM;IAC7B,CAAA,GAAA,EAAyB,GAAA,EAAjB,KAAK,EAAK,IAAA,GAAA,MAAA,GAAA,CAAA,KAAA,CAAA,CAAA,CAAA;IAGZ,EAAK,eADf,EAAA,GAAA,EAII,KAJJ,GAII,EADG,EAAK,WAAW,GAAA,CAAA,KAAA,EAAA,IAAA,EAAA;gBAKzB,GAAA,GAAA,IAAA,EAAA,SAAV,EAAA,GAAA,EAiBK,MAjBL,GAiBK,CAhBD,EAeS,UAAA;IAdL,OAAM;IACL,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,QAAQ,CAAI,EAAA;GACpB,GAAA,CAAA,EAIsB,GAAA;IAHjB,MAA+B,EAAA,QAAQ,uBAAA;IAGxC,OAAM;GAAY,GAAA,MAAA,GAAA,CAAA,MAAA,CAAA,GAAA,EAAA,MACtB,EACI,EAAA,QAAmCA,EAAAA,GAAE,iBAAA,IAA8CA,EAAAA,GAAE,mBAAA,EAA2D,OAAA,EAAA,MAAY,SAAM,EAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,CAAA,KAAA,EAAA,IAAA,EAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PkUrl-BPbjZJ1A.js","names":[],"sources":["../../../../packages/components/src/PkUrl.vue","../../../../packages/components/src/PkUrl.vue","../../../../packages/components/src/PkUrl.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useShortUrlResolver } from 'composables'\n\n interface Props {\n url: string\n maxLength?: number\n domainClass?: string\n target?: '_blank' | '_self' | '_parent' | '_top'\n rel?: string\n muted?: boolean\n }\n\n const props = withDefaults(defineProps<Props>(), {\n maxLength: 60,\n domainClass: undefined,\n target: '_blank',\n rel: 'noopener noreferrer',\n muted: false,\n })\n\n // Only the displayed URL text is resolved to its real target; the href is\n // kept as the short url so the redirect endpoint still handles tracking.\n const { resolve } = useShortUrlResolver()\n const resolved = resolve(() => props.url)\n const displayUrl = computed(() => resolved.value.url)\n const isResolving = computed(() => resolved.value.loading)\n\n const parsedUrl = computed(() => {\n try {\n const urlObj = new URL(displayUrl.value ?? props.url)\n let hostname = urlObj.hostname\n\n // Remove www. prefix\n if (hostname.startsWith('www.')) hostname = hostname.substring(4)\n\n // Get pathname and remove trailing slash\n let pathname = urlObj.pathname\n if (pathname === '/') pathname = ''\n\n // Split pathname into segments\n const segments = pathname\n .split('/')\n .filter((segment) => segment.length > 0)\n\n return {\n domain: hostname,\n segments,\n fullPath: hostname + pathname,\n }\n } catch {\n // If URL parsing fails, return the original URL\n const fallback = displayUrl.value ?? props.url\n return {\n domain: fallback,\n segments: [],\n fullPath: fallback,\n }\n }\n })\n\n const truncatedUrl = computed(() => {\n if (parsedUrl.value.fullPath.length <= props.maxLength)\n return parsedUrl.value\n\n // If too long, truncate segments from the beginning\n const domain = parsedUrl.value.domain\n const allSegments = parsedUrl.value.segments\n\n // Always show at least the last segment\n if (allSegments.length === 0) {\n return {\n domain,\n segments: [],\n fullPath: domain,\n }\n }\n\n const segments: string[] = []\n\n // Calculate from the end\n let currentLength = domain.length\n\n // Try to fit segments from the end\n for (let i = allSegments.length - 1; i >= 0; i--) {\n const segment = allSegments[i]\n\n // Always include at least the last segment\n if (segments.length === 0) {\n currentLength += segment.length + 1\n segments.unshift(segment)\n } else if (currentLength + segment.length + 1 <= props.maxLength) {\n currentLength += segment.length + 1\n segments.unshift(segment)\n } else {\n segments.unshift('...')\n break\n }\n }\n\n return {\n domain,\n segments,\n fullPath: domain + '/' + segments.join('/'),\n }\n })\n</script>\n\n<template>\n <Component\n :is=\"muted ? 'span' : 'a'\"\n class=\"pk-url\"\n :href=\"muted ? undefined : props.url\"\n :target=\"muted ? undefined : props.target\"\n :rel=\"muted ? undefined : props.rel\">\n <span v-if=\"isResolving\" class=\"pk-url__skeleton vv-skeleton\">\n <span class=\"vv-skeleton__item\" />\n </span>\n <template v-else>\n <span :class=\"['pk-url__domain', domainClass]\">{{\n truncatedUrl.domain\n }}</span>\n <template\n v-for=\"(segment, index) in truncatedUrl.segments\"\n :key=\"index\">\n <span class=\"pk-url__separator\">›</span>\n <span class=\"pk-url__segment\">{{ segment }}</span>\n </template>\n </template>\n </Component>\n</template>\n\n<style lang=\"scss\">\n @layer volver.components {\n .pk-url {\n display: inline-flex;\n align-items: center;\n gap: 0.5ch;\n }\n\n .pk-url__skeleton {\n display: inline-flex;\n width: 12ch;\n max-width: 100%;\n\n .vv-skeleton__item {\n width: 100%;\n height: 1em;\n border-radius: 0.25em;\n }\n }\n }\n</style>\n","<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useShortUrlResolver } from 'composables'\n\n interface Props {\n url: string\n maxLength?: number\n domainClass?: string\n target?: '_blank' | '_self' | '_parent' | '_top'\n rel?: string\n muted?: boolean\n }\n\n const props = withDefaults(defineProps<Props>(), {\n maxLength: 60,\n domainClass: undefined,\n target: '_blank',\n rel: 'noopener noreferrer',\n muted: false,\n })\n\n // Only the displayed URL text is resolved to its real target; the href is\n // kept as the short url so the redirect endpoint still handles tracking.\n const { resolve } = useShortUrlResolver()\n const resolved = resolve(() => props.url)\n const displayUrl = computed(() => resolved.value.url)\n const isResolving = computed(() => resolved.value.loading)\n\n const parsedUrl = computed(() => {\n try {\n const urlObj = new URL(displayUrl.value ?? props.url)\n let hostname = urlObj.hostname\n\n // Remove www. prefix\n if (hostname.startsWith('www.')) hostname = hostname.substring(4)\n\n // Get pathname and remove trailing slash\n let pathname = urlObj.pathname\n if (pathname === '/') pathname = ''\n\n // Split pathname into segments\n const segments = pathname\n .split('/')\n .filter((segment) => segment.length > 0)\n\n return {\n domain: hostname,\n segments,\n fullPath: hostname + pathname,\n }\n } catch {\n // If URL parsing fails, return the original URL\n const fallback = displayUrl.value ?? props.url\n return {\n domain: fallback,\n segments: [],\n fullPath: fallback,\n }\n }\n })\n\n const truncatedUrl = computed(() => {\n if (parsedUrl.value.fullPath.length <= props.maxLength)\n return parsedUrl.value\n\n // If too long, truncate segments from the beginning\n const domain = parsedUrl.value.domain\n const allSegments = parsedUrl.value.segments\n\n // Always show at least the last segment\n if (allSegments.length === 0) {\n return {\n domain,\n segments: [],\n fullPath: domain,\n }\n }\n\n const segments: string[] = []\n\n // Calculate from the end\n let currentLength = domain.length\n\n // Try to fit segments from the end\n for (let i = allSegments.length - 1; i >= 0; i--) {\n const segment = allSegments[i]\n\n // Always include at least the last segment\n if (segments.length === 0) {\n currentLength += segment.length + 1\n segments.unshift(segment)\n } else if (currentLength + segment.length + 1 <= props.maxLength) {\n currentLength += segment.length + 1\n segments.unshift(segment)\n } else {\n segments.unshift('...')\n break\n }\n }\n\n return {\n domain,\n segments,\n fullPath: domain + '/' + segments.join('/'),\n }\n })\n</script>\n\n<template>\n <Component\n :is=\"muted ? 'span' : 'a'\"\n class=\"pk-url\"\n :href=\"muted ? undefined : props.url\"\n :target=\"muted ? undefined : props.target\"\n :rel=\"muted ? undefined : props.rel\">\n <span v-if=\"isResolving\" class=\"pk-url__skeleton vv-skeleton\">\n <span class=\"vv-skeleton__item\" />\n </span>\n <template v-else>\n <span :class=\"['pk-url__domain', domainClass]\">{{\n truncatedUrl.domain\n }}</span>\n <template\n v-for=\"(segment, index) in truncatedUrl.segments\"\n :key=\"index\">\n <span class=\"pk-url__separator\">›</span>\n <span class=\"pk-url__segment\">{{ segment }}</span>\n </template>\n </template>\n </Component>\n</template>\n\n<style lang=\"scss\">\n @layer volver.components {\n .pk-url {\n display: inline-flex;\n align-items: center;\n gap: 0.5ch;\n }\n\n .pk-url__skeleton {\n display: inline-flex;\n width: 12ch;\n max-width: 100%;\n\n .vv-skeleton__item {\n width: 100%;\n height: 1em;\n border-radius: 0.25em;\n }\n }\n }\n</style>\n","<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useShortUrlResolver } from 'composables'\n\n interface Props {\n url: string\n maxLength?: number\n domainClass?: string\n target?: '_blank' | '_self' | '_parent' | '_top'\n rel?: string\n muted?: boolean\n }\n\n const props = withDefaults(defineProps<Props>(), {\n maxLength: 60,\n domainClass: undefined,\n target: '_blank',\n rel: 'noopener noreferrer',\n muted: false,\n })\n\n // Only the displayed URL text is resolved to its real target; the href is\n // kept as the short url so the redirect endpoint still handles tracking.\n const { resolve } = useShortUrlResolver()\n const resolved = resolve(() => props.url)\n const displayUrl = computed(() => resolved.value.url)\n const isResolving = computed(() => resolved.value.loading)\n\n const parsedUrl = computed(() => {\n try {\n const urlObj = new URL(displayUrl.value ?? props.url)\n let hostname = urlObj.hostname\n\n // Remove www. prefix\n if (hostname.startsWith('www.')) hostname = hostname.substring(4)\n\n // Get pathname and remove trailing slash\n let pathname = urlObj.pathname\n if (pathname === '/') pathname = ''\n\n // Split pathname into segments\n const segments = pathname\n .split('/')\n .filter((segment) => segment.length > 0)\n\n return {\n domain: hostname,\n segments,\n fullPath: hostname + pathname,\n }\n } catch {\n // If URL parsing fails, return the original URL\n const fallback = displayUrl.value ?? props.url\n return {\n domain: fallback,\n segments: [],\n fullPath: fallback,\n }\n }\n })\n\n const truncatedUrl = computed(() => {\n if (parsedUrl.value.fullPath.length <= props.maxLength)\n return parsedUrl.value\n\n // If too long, truncate segments from the beginning\n const domain = parsedUrl.value.domain\n const allSegments = parsedUrl.value.segments\n\n // Always show at least the last segment\n if (allSegments.length === 0) {\n return {\n domain,\n segments: [],\n fullPath: domain,\n }\n }\n\n const segments: string[] = []\n\n // Calculate from the end\n let currentLength = domain.length\n\n // Try to fit segments from the end\n for (let i = allSegments.length - 1; i >= 0; i--) {\n const segment = allSegments[i]\n\n // Always include at least the last segment\n if (segments.length === 0) {\n currentLength += segment.length + 1\n segments.unshift(segment)\n } else if (currentLength + segment.length + 1 <= props.maxLength) {\n currentLength += segment.length + 1\n segments.unshift(segment)\n } else {\n segments.unshift('...')\n break\n }\n }\n\n return {\n domain,\n segments,\n fullPath: domain + '/' + segments.join('/'),\n }\n })\n</script>\n\n<template>\n <Component\n :is=\"muted ? 'span' : 'a'\"\n class=\"pk-url\"\n :href=\"muted ? undefined : props.url\"\n :target=\"muted ? undefined : props.target\"\n :rel=\"muted ? undefined : props.rel\">\n <span v-if=\"isResolving\" class=\"pk-url__skeleton vv-skeleton\">\n <span class=\"vv-skeleton__item\" />\n </span>\n <template v-else>\n <span :class=\"['pk-url__domain', domainClass]\">{{\n truncatedUrl.domain\n }}</span>\n <template\n v-for=\"(segment, index) in truncatedUrl.segments\"\n :key=\"index\">\n <span class=\"pk-url__separator\">›</span>\n <span class=\"pk-url__segment\">{{ segment }}</span>\n </template>\n </template>\n </Component>\n</template>\n\n<style lang=\"scss\">\n @layer volver.components {\n .pk-url {\n display: inline-flex;\n align-items: center;\n gap: 0.5ch;\n }\n\n .pk-url__skeleton {\n display: inline-flex;\n width: 12ch;\n max-width: 100%;\n\n .vv-skeleton__item {\n width: 100%;\n height: 1em;\n border-radius: 0.25em;\n }\n }\n }\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAaI,IAAM,IAAQ,GAUR,EAAE,eAAY,EAAoB,GAClC,IAAW,QAAc,EAAM,GAAG,GAClC,IAAa,QAAe,EAAS,MAAM,GAAG,GAC9C,IAAc,QAAe,EAAS,MAAM,OAAO,GAEnD,IAAY,QAAe;GAC7B,IAAI;IACA,IAAM,IAAS,IAAI,IAAI,EAAW,SAAS,EAAM,GAAG,GAChD,IAAW,EAAO;IAGtB,AAAI,EAAS,WAAW,MAAM,MAAG,IAAW,EAAS,UAAU,CAAC;IAGhE,IAAI,IAAW,EAAO;IACtB,AAAI,MAAa,QAAK,IAAW;IAGjC,IAAM,IAAW,EACZ,MAAM,GAAG,CAAA,CACT,QAAQ,MAAY,EAAQ,SAAS,CAAC;IAE3C,OAAO;KACH,QAAQ;KACR;KACA,UAAU,IAAW;IACzB;GACJ,QAAQ;IAEJ,IAAM,IAAW,EAAW,SAAS,EAAM;IAC3C,OAAO;KACH,QAAQ;KACR,UAAU,CAAC;KACX,UAAU;IACd;GACJ;EACJ,CAAC,GAEK,IAAe,QAAe;GAChC,IAAI,EAAU,MAAM,SAAS,UAAU,EAAM,WACzC,OAAO,EAAU;GAGrB,IAAM,IAAS,EAAU,MAAM,QACzB,IAAc,EAAU,MAAM;GAGpC,IAAI,EAAY,WAAW,GACvB,OAAO;IACH;IACA,UAAU,CAAC;IACX,UAAU;GACd;GAGJ,IAAM,IAAqB,CAAC,GAGxB,IAAgB,EAAO;GAG3B,KAAK,IAAI,IAAI,EAAY,SAAS,GAAG,KAAK,GAAG,KAAK;IAC9C,IAAM,IAAU,EAAY;IAG5B,IAAI,EAAS,WAAW,GAEpB,AADA,KAAiB,EAAQ,SAAS,GAClC,EAAS,QAAQ,CAAO;SACrB,IAAI,IAAgB,EAAQ,SAAS,KAAK,EAAM,WAEnD,AADA,KAAiB,EAAQ,SAAS,GAClC,EAAS,QAAQ,CAAO;SACrB;KACH,EAAS,QAAQ,KAAK;KACtB;IACJ;GACJ;GAEA,OAAO;IACH;IACA;IACA,UAAU,IAAS,MAAM,EAAS,KAAK,GAAG;GAC9C;EACJ,CAAC;oBAID,EAAA,GAAA,EAoBY,EAnBH,EAAA,QAAK,SAAA,GAAA,GAAA;GACV,OAAM;GACL,MAAM,EAAA,QAAQ,KAAA,IAAY,EAAM;GAChC,QAAQ,EAAA,QAAQ,KAAA,IAAY,EAAM;GAClC,KAAK,EAAA,QAAQ,KAAA,IAAY,EAAM;;GAChC,SAAA,QAEO,CAFK,EAAA,SAAZ,EAAA,GAAA,EAEO,QAFP,GAEO,CAAA,GAAA,AAAA,EAAA,OAAA,CADH,EAAkC,QAAA,EAA5B,OAAM,oBAAmB,GAAA,MAAA,EAAA,CAAA,CAAA,CAAA,MAEnC,EAAA,GAAA,EAUW,GAAA,EAAA,KAAA,EAAA,GAAA,CATP,EAES,QAAA,EAFF,OAAK,EAAA,CAAA,kBAAqB,EAAA,WAAW,CAAA,EACxC,GAAA,EAAA,EAAA,MAAa,MAAM,GAAA,CAAA,IAEvB,EAAA,EAAA,GAAA,EAKW,GAAA,MAAA,EAJoB,EAAA,MAAa,WAAhC,GAAS,OACX,EAAA,GAAA,EAAA,GAAA,EAAA,KAAA,EAAK,GAAA,CACX,AAAA,EAAA,OAAA,EAAwC,QAAA,EAAlC,OAAM,oBAAmB,GAAC,KAAC,EAAA,GACjC,EAAkD,QAAlD,GAAkD,EAAjB,CAAO,GAAA,CAAA,CAAA,GAAA,EAAA"}
|
|
1
|
+
{"version":3,"file":"PkUrl-BPbjZJ1A.js","names":[],"sources":["../../../../packages/components/src/PkUrl.vue","../../../../packages/components/src/PkUrl.vue","../../../../packages/components/src/PkUrl.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useShortUrlResolver } from 'composables'\n\n interface Props {\n url: string\n maxLength?: number\n domainClass?: string\n target?: '_blank' | '_self' | '_parent' | '_top'\n rel?: string\n muted?: boolean\n }\n\n const props = withDefaults(defineProps<Props>(), {\n maxLength: 60,\n domainClass: undefined,\n target: '_blank',\n rel: 'noopener noreferrer',\n muted: false,\n })\n\n // Only the displayed URL text is resolved to its real target; the href is\n // kept as the short url so the redirect endpoint still handles tracking.\n const { resolve } = useShortUrlResolver()\n const resolved = resolve(() => props.url)\n const displayUrl = computed(() => resolved.value.url)\n const isResolving = computed(() => resolved.value.loading)\n\n const parsedUrl = computed(() => {\n try {\n const urlObj = new URL(displayUrl.value ?? props.url)\n let hostname = urlObj.hostname\n\n // Remove www. prefix\n if (hostname.startsWith('www.')) {\n hostname = hostname.substring(4)\n }\n\n // Get pathname and remove trailing slash\n let pathname = urlObj.pathname\n if (pathname === '/') {\n pathname = ''\n }\n\n // Split pathname into segments\n const segments = pathname\n .split('/')\n .filter((segment) => segment.length > 0)\n\n return {\n domain: hostname,\n segments,\n fullPath: hostname + pathname,\n }\n } catch {\n // If URL parsing fails, return the original URL\n const fallback = displayUrl.value ?? props.url\n return {\n domain: fallback,\n segments: [],\n fullPath: fallback,\n }\n }\n })\n\n const truncatedUrl = computed(() => {\n if (parsedUrl.value.fullPath.length <= props.maxLength) {\n return parsedUrl.value\n }\n\n // If too long, truncate segments from the beginning\n const domain = parsedUrl.value.domain\n const allSegments = parsedUrl.value.segments\n\n // Always show at least the last segment\n if (allSegments.length === 0) {\n return {\n domain,\n segments: [],\n fullPath: domain,\n }\n }\n\n const segments: string[] = []\n\n // Calculate from the end\n let currentLength = domain.length\n\n // Try to fit segments from the end\n for (let i = allSegments.length - 1; i >= 0; i--) {\n const segment = allSegments[i]\n\n // Always include at least the last segment\n if (segments.length === 0) {\n currentLength += segment.length + 1\n segments.unshift(segment)\n } else if (currentLength + segment.length + 1 <= props.maxLength) {\n currentLength += segment.length + 1\n segments.unshift(segment)\n } else {\n segments.unshift('...')\n break\n }\n }\n\n return {\n domain,\n segments,\n fullPath: domain + '/' + segments.join('/'),\n }\n })\n</script>\n\n<template>\n <Component\n :is=\"muted ? 'span' : 'a'\"\n class=\"pk-url\"\n :href=\"muted ? undefined : props.url\"\n :target=\"muted ? undefined : props.target\"\n :rel=\"muted ? undefined : props.rel\">\n <span v-if=\"isResolving\" class=\"pk-url__skeleton vv-skeleton\">\n <span class=\"vv-skeleton__item\" />\n </span>\n <template v-else>\n <span :class=\"['pk-url__domain', domainClass]\">{{\n truncatedUrl.domain\n }}</span>\n <template\n v-for=\"(segment, index) in truncatedUrl.segments\"\n :key=\"index\">\n <span class=\"pk-url__separator\">›</span>\n <span class=\"pk-url__segment\">{{ segment }}</span>\n </template>\n </template>\n </Component>\n</template>\n\n<style lang=\"scss\">\n @layer volver.components {\n .pk-url {\n display: inline-flex;\n align-items: center;\n gap: 0.5ch;\n }\n\n .pk-url__skeleton {\n display: inline-flex;\n width: 12ch;\n max-width: 100%;\n\n .vv-skeleton__item {\n width: 100%;\n height: 1em;\n border-radius: 0.25em;\n }\n }\n }\n</style>\n","<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useShortUrlResolver } from 'composables'\n\n interface Props {\n url: string\n maxLength?: number\n domainClass?: string\n target?: '_blank' | '_self' | '_parent' | '_top'\n rel?: string\n muted?: boolean\n }\n\n const props = withDefaults(defineProps<Props>(), {\n maxLength: 60,\n domainClass: undefined,\n target: '_blank',\n rel: 'noopener noreferrer',\n muted: false,\n })\n\n // Only the displayed URL text is resolved to its real target; the href is\n // kept as the short url so the redirect endpoint still handles tracking.\n const { resolve } = useShortUrlResolver()\n const resolved = resolve(() => props.url)\n const displayUrl = computed(() => resolved.value.url)\n const isResolving = computed(() => resolved.value.loading)\n\n const parsedUrl = computed(() => {\n try {\n const urlObj = new URL(displayUrl.value ?? props.url)\n let hostname = urlObj.hostname\n\n // Remove www. prefix\n if (hostname.startsWith('www.')) {\n hostname = hostname.substring(4)\n }\n\n // Get pathname and remove trailing slash\n let pathname = urlObj.pathname\n if (pathname === '/') {\n pathname = ''\n }\n\n // Split pathname into segments\n const segments = pathname\n .split('/')\n .filter((segment) => segment.length > 0)\n\n return {\n domain: hostname,\n segments,\n fullPath: hostname + pathname,\n }\n } catch {\n // If URL parsing fails, return the original URL\n const fallback = displayUrl.value ?? props.url\n return {\n domain: fallback,\n segments: [],\n fullPath: fallback,\n }\n }\n })\n\n const truncatedUrl = computed(() => {\n if (parsedUrl.value.fullPath.length <= props.maxLength) {\n return parsedUrl.value\n }\n\n // If too long, truncate segments from the beginning\n const domain = parsedUrl.value.domain\n const allSegments = parsedUrl.value.segments\n\n // Always show at least the last segment\n if (allSegments.length === 0) {\n return {\n domain,\n segments: [],\n fullPath: domain,\n }\n }\n\n const segments: string[] = []\n\n // Calculate from the end\n let currentLength = domain.length\n\n // Try to fit segments from the end\n for (let i = allSegments.length - 1; i >= 0; i--) {\n const segment = allSegments[i]\n\n // Always include at least the last segment\n if (segments.length === 0) {\n currentLength += segment.length + 1\n segments.unshift(segment)\n } else if (currentLength + segment.length + 1 <= props.maxLength) {\n currentLength += segment.length + 1\n segments.unshift(segment)\n } else {\n segments.unshift('...')\n break\n }\n }\n\n return {\n domain,\n segments,\n fullPath: domain + '/' + segments.join('/'),\n }\n })\n</script>\n\n<template>\n <Component\n :is=\"muted ? 'span' : 'a'\"\n class=\"pk-url\"\n :href=\"muted ? undefined : props.url\"\n :target=\"muted ? undefined : props.target\"\n :rel=\"muted ? undefined : props.rel\">\n <span v-if=\"isResolving\" class=\"pk-url__skeleton vv-skeleton\">\n <span class=\"vv-skeleton__item\" />\n </span>\n <template v-else>\n <span :class=\"['pk-url__domain', domainClass]\">{{\n truncatedUrl.domain\n }}</span>\n <template\n v-for=\"(segment, index) in truncatedUrl.segments\"\n :key=\"index\">\n <span class=\"pk-url__separator\">›</span>\n <span class=\"pk-url__segment\">{{ segment }}</span>\n </template>\n </template>\n </Component>\n</template>\n\n<style lang=\"scss\">\n @layer volver.components {\n .pk-url {\n display: inline-flex;\n align-items: center;\n gap: 0.5ch;\n }\n\n .pk-url__skeleton {\n display: inline-flex;\n width: 12ch;\n max-width: 100%;\n\n .vv-skeleton__item {\n width: 100%;\n height: 1em;\n border-radius: 0.25em;\n }\n }\n }\n</style>\n","<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useShortUrlResolver } from 'composables'\n\n interface Props {\n url: string\n maxLength?: number\n domainClass?: string\n target?: '_blank' | '_self' | '_parent' | '_top'\n rel?: string\n muted?: boolean\n }\n\n const props = withDefaults(defineProps<Props>(), {\n maxLength: 60,\n domainClass: undefined,\n target: '_blank',\n rel: 'noopener noreferrer',\n muted: false,\n })\n\n // Only the displayed URL text is resolved to its real target; the href is\n // kept as the short url so the redirect endpoint still handles tracking.\n const { resolve } = useShortUrlResolver()\n const resolved = resolve(() => props.url)\n const displayUrl = computed(() => resolved.value.url)\n const isResolving = computed(() => resolved.value.loading)\n\n const parsedUrl = computed(() => {\n try {\n const urlObj = new URL(displayUrl.value ?? props.url)\n let hostname = urlObj.hostname\n\n // Remove www. prefix\n if (hostname.startsWith('www.')) {\n hostname = hostname.substring(4)\n }\n\n // Get pathname and remove trailing slash\n let pathname = urlObj.pathname\n if (pathname === '/') {\n pathname = ''\n }\n\n // Split pathname into segments\n const segments = pathname\n .split('/')\n .filter((segment) => segment.length > 0)\n\n return {\n domain: hostname,\n segments,\n fullPath: hostname + pathname,\n }\n } catch {\n // If URL parsing fails, return the original URL\n const fallback = displayUrl.value ?? props.url\n return {\n domain: fallback,\n segments: [],\n fullPath: fallback,\n }\n }\n })\n\n const truncatedUrl = computed(() => {\n if (parsedUrl.value.fullPath.length <= props.maxLength) {\n return parsedUrl.value\n }\n\n // If too long, truncate segments from the beginning\n const domain = parsedUrl.value.domain\n const allSegments = parsedUrl.value.segments\n\n // Always show at least the last segment\n if (allSegments.length === 0) {\n return {\n domain,\n segments: [],\n fullPath: domain,\n }\n }\n\n const segments: string[] = []\n\n // Calculate from the end\n let currentLength = domain.length\n\n // Try to fit segments from the end\n for (let i = allSegments.length - 1; i >= 0; i--) {\n const segment = allSegments[i]\n\n // Always include at least the last segment\n if (segments.length === 0) {\n currentLength += segment.length + 1\n segments.unshift(segment)\n } else if (currentLength + segment.length + 1 <= props.maxLength) {\n currentLength += segment.length + 1\n segments.unshift(segment)\n } else {\n segments.unshift('...')\n break\n }\n }\n\n return {\n domain,\n segments,\n fullPath: domain + '/' + segments.join('/'),\n }\n })\n</script>\n\n<template>\n <Component\n :is=\"muted ? 'span' : 'a'\"\n class=\"pk-url\"\n :href=\"muted ? undefined : props.url\"\n :target=\"muted ? undefined : props.target\"\n :rel=\"muted ? undefined : props.rel\">\n <span v-if=\"isResolving\" class=\"pk-url__skeleton vv-skeleton\">\n <span class=\"vv-skeleton__item\" />\n </span>\n <template v-else>\n <span :class=\"['pk-url__domain', domainClass]\">{{\n truncatedUrl.domain\n }}</span>\n <template\n v-for=\"(segment, index) in truncatedUrl.segments\"\n :key=\"index\">\n <span class=\"pk-url__separator\">›</span>\n <span class=\"pk-url__segment\">{{ segment }}</span>\n </template>\n </template>\n </Component>\n</template>\n\n<style lang=\"scss\">\n @layer volver.components {\n .pk-url {\n display: inline-flex;\n align-items: center;\n gap: 0.5ch;\n }\n\n .pk-url__skeleton {\n display: inline-flex;\n width: 12ch;\n max-width: 100%;\n\n .vv-skeleton__item {\n width: 100%;\n height: 1em;\n border-radius: 0.25em;\n }\n }\n }\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAaI,IAAM,IAAQ,GAUR,EAAE,eAAY,EAAoB,GAClC,IAAW,QAAc,EAAM,GAAG,GAClC,IAAa,QAAe,EAAS,MAAM,GAAG,GAC9C,IAAc,QAAe,EAAS,MAAM,OAAO,GAEnD,IAAY,QAAe;GAC7B,IAAI;IACA,IAAM,IAAS,IAAI,IAAI,EAAW,SAAS,EAAM,GAAG,GAChD,IAAW,EAAO;IAGtB,AAAI,EAAS,WAAW,MAAM,MAC1B,IAAW,EAAS,UAAU,CAAC;IAInC,IAAI,IAAW,EAAO;IACtB,AAAI,MAAa,QACb,IAAW;IAIf,IAAM,IAAW,EACZ,MAAM,GAAG,CAAA,CACT,QAAQ,MAAY,EAAQ,SAAS,CAAC;IAE3C,OAAO;KACH,QAAQ;KACR;KACA,UAAU,IAAW;IACzB;GACJ,QAAQ;IAEJ,IAAM,IAAW,EAAW,SAAS,EAAM;IAC3C,OAAO;KACH,QAAQ;KACR,UAAU,CAAC;KACX,UAAU;IACd;GACJ;EACJ,CAAC,GAEK,IAAe,QAAe;GAChC,IAAI,EAAU,MAAM,SAAS,UAAU,EAAM,WACzC,OAAO,EAAU;GAIrB,IAAM,IAAS,EAAU,MAAM,QACzB,IAAc,EAAU,MAAM;GAGpC,IAAI,EAAY,WAAW,GACvB,OAAO;IACH;IACA,UAAU,CAAC;IACX,UAAU;GACd;GAGJ,IAAM,IAAqB,CAAC,GAGxB,IAAgB,EAAO;GAG3B,KAAK,IAAI,IAAI,EAAY,SAAS,GAAG,KAAK,GAAG,KAAK;IAC9C,IAAM,IAAU,EAAY;IAG5B,IAAI,EAAS,WAAW,GAEpB,AADA,KAAiB,EAAQ,SAAS,GAClC,EAAS,QAAQ,CAAO;SACrB,IAAI,IAAgB,EAAQ,SAAS,KAAK,EAAM,WAEnD,AADA,KAAiB,EAAQ,SAAS,GAClC,EAAS,QAAQ,CAAO;SACrB;KACH,EAAS,QAAQ,KAAK;KACtB;IACJ;GACJ;GAEA,OAAO;IACH;IACA;IACA,UAAU,IAAS,MAAM,EAAS,KAAK,GAAG;GAC9C;EACJ,CAAC;oBAID,EAAA,GAAA,EAoBY,EAnBH,EAAA,QAAK,SAAA,GAAA,GAAA;GACV,OAAM;GACL,MAAM,EAAA,QAAQ,KAAA,IAAY,EAAM;GAChC,QAAQ,EAAA,QAAQ,KAAA,IAAY,EAAM;GAClC,KAAK,EAAA,QAAQ,KAAA,IAAY,EAAM;;GAChC,SAAA,QAEO,CAFK,EAAA,SAAZ,EAAA,GAAA,EAEO,QAFP,GAEO,CAAA,GAAA,AAAA,EAAA,OAAA,CADH,EAAkC,QAAA,EAA5B,OAAM,oBAAmB,GAAA,MAAA,EAAA,CAAA,CAAA,CAAA,MAEnC,EAAA,GAAA,EAUW,GAAA,EAAA,KAAA,EAAA,GAAA,CATP,EAES,QAAA,EAFF,OAAK,EAAA,CAAA,kBAAqB,EAAA,WAAW,CAAA,EACxC,GAAA,EAAA,EAAA,MAAa,MAAM,GAAA,CAAA,IAEvB,EAAA,EAAA,GAAA,EAKW,GAAA,MAAA,EAJoB,EAAA,MAAa,WAAhC,GAAS,OACX,EAAA,GAAA,EAAA,GAAA,EAAA,KAAA,EAAK,GAAA,CACX,AAAA,EAAA,OAAA,EAAwC,QAAA,EAAlC,OAAM,oBAAmB,GAAC,KAAC,EAAA,GACjC,EAAkD,QAAlD,GAAkD,EAAjB,CAAO,GAAA,CAAA,CAAA,GAAA,EAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { $ as e, B as t, C as n, Ct as r, E as i, F as a, G as o, L as s, M as c, O as l, R as u, St as d, T as f, Tt as p, X as ee, Z as m, _ as te, _t as h, b as ne, bt as g, ct as _, d as v, et as y, g as b, h as x, i as re, it as S, k as C, m as w, pt as T, q as E, r as D, v as O, vt as k, x as ie, xt as A, y as ae, z as j } from "./vue.runtime.esm-bundler-CIT_Sbqw.js";
|
|
2
|
-
import {
|
|
2
|
+
import { g as M } from "./dist-QdjZA6MJ.js";
|
|
3
3
|
import { t as N } from "./dot-prop-BEIkPL0b.js";
|
|
4
4
|
//#region ../../node_modules/.pnpm/@volverjs+ui-vue@0.0.22_@json-render+core@0.19.0_zod@4.6.5__@volverjs+style@0.1.28_@vue_83209f08cf1ab5b5efaebe6577fda1e4/node_modules/@volverjs/ui-vue/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js
|
|
5
5
|
l(), S(), A(), D();
|
|
@@ -621,4 +621,4 @@ var Ge = ["textContent"], Ke = { class: "vv-checkbox-group__wrapper" }, qe = /*
|
|
|
621
621
|
//#endregion
|
|
622
622
|
export { qe as default };
|
|
623
623
|
|
|
624
|
-
//# sourceMappingURL=VvCheckboxGroup.es-
|
|
624
|
+
//# sourceMappingURL=VvCheckboxGroup.es-CTrF3pue.js.map
|
package/dist/_chunks/{VvCheckboxGroup.es-Bdu2gFLN.js.map → VvCheckboxGroup.es-CTrF3pue.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VvCheckboxGroup.es-Bdu2gFLN.js","names":["o","ue","M","w","ie","Ee","x","xe","u","ve","Ie","Ge","je","_","E","se","qe","F","De","g","$e","de","oe","ne","S","m","h","K","He","_e","Be","we","Ce","Ae"],"sources":["../../../../node_modules/.pnpm/@volverjs+ui-vue@0.0.22_@json-render+core@0.19.0_zod@4.6.5__@volverjs+style@0.1.28_@vue_83209f08cf1ab5b5efaebe6577fda1e4/node_modules/@volverjs/ui-vue/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js"],"sourcesContent":["import { Fragment as Be, computed as o, createBlock as Ce, createCommentVNode as _e, createElementBlock as E, createElementVNode as F, createSlots as ne, createTextVNode as $e, createVNode as oe, defineComponent as M, guardReactiveProps as h, h as w, inject as ie, isRef as ue, mergeProps as Ae, normalizeClass as se, normalizeProps as m, onMounted as je, openBlock as _, provide as Ne, ref as Ie, renderList as we, renderSlot as g, toDisplayString as de, toRef as Ee, toRefs as x, unref as u, useId as xe, useSlots as ve, vModelCheckbox as De, watch as Ge, watchEffect as Re, withCtx as S, withDirectives as qe } from \"vue\";\nimport { useVModel as He } from \"@vueuse/core\";\nimport { getProperty as K } from \"dot-prop\";\nvar Ke = {\n showPassword: \"eye-on\",\n hidePassword: \"eye-off\",\n showDatePicker: \"calendar\",\n showTimePicker: \"time\",\n showColorPicker: \"color\",\n clear: \"close\",\n add: \"add\",\n remove: \"trash\",\n edit: \"edit\",\n download: \"download\"\n}, Q = /* @__PURE__ */ (function(e) {\n return e.local = \"local\", e.session = \"session\", e;\n})({}), Fe = /* @__PURE__ */ (function(e) {\n return e.absolute = \"absolute\", e.fixed = \"fixed\", e;\n})({}), X = /* @__PURE__ */ (function(e) {\n return e.left = \"left\", e.right = \"right\", e.top = \"top\", e.bottom = \"bottom\", e;\n})({}), Me = /* @__PURE__ */ (function(e) {\n return e.topStart = \"top-start\", e.topEnd = \"top-end\", e.bottomStart = \"bottom-start\", e.bottomEnd = \"bottom-end\", e.leftStart = \"left-start\", e.leftEnd = \"left-end\", e.rightStart = \"right-start\", e.rightEnd = \"right-end\", e;\n})({}), Z = /* @__PURE__ */ (function(e) {\n return e.before = \"before\", e.after = \"after\", e;\n})({}), ee = /* @__PURE__ */ (function(e) {\n return e.button = \"button\", e.submit = \"submit\", e.reset = \"reset\", e;\n})({}), Te = /* @__PURE__ */ (function(e) {\n return e.nuxtLink = \"nuxt-link\", e.routerLink = \"router-link\", e.a = \"a\", e.button = \"button\", e;\n})({}), ze = /* @__PURE__ */ Symbol.for(\"volver\"), fe = /* @__PURE__ */ Symbol.for(\"checkGroup\"), Je = {\n to: { type: [String, Object] },\n href: String,\n target: String,\n rel: {\n type: String,\n default: \"noopener noreferrer\"\n }\n}, T = {\n valid: {\n type: Boolean,\n default: !1\n },\n validLabel: {\n type: [String, Array],\n default: void 0\n }\n}, z = {\n invalid: {\n type: Boolean,\n default: !1\n },\n invalidLabel: {\n type: [String, Array],\n default: void 0\n }\n}, J = {\n loading: {\n type: Boolean,\n default: !1\n },\n loadingLabel: {\n type: String,\n default: \"Loading...\"\n }\n}, D = { disabled: {\n type: Boolean,\n default: !1\n} }, ce = { required: {\n type: Boolean,\n default: !1\n} }, Ue = { active: {\n type: Boolean,\n default: !1\n} }, Ye = { current: {\n type: Boolean,\n default: !1\n} }, It = {\n showClearAction: {\n type: Boolean,\n default: !1\n },\n iconClear: {\n type: [String, Object],\n default: Ke.clear\n },\n labelClear: {\n type: String,\n default: \"Clear\"\n }\n}, We = { pressed: {\n type: Boolean,\n default: !1\n} }, G = { label: {\n type: [String, Number],\n default: void 0\n} }, Qe = {\n ariaLabel: {\n type: String,\n default: void 0\n },\n ariaLabelledby: {\n type: String,\n default: void 0\n },\n ariaDescribedby: {\n type: String,\n default: void 0\n }\n}, U = { readonly: {\n type: Boolean,\n default: !1\n} }, R = { modifiers: {\n type: [String, Array],\n default: void 0\n} }, Y = { hintLabel: {\n type: String,\n default: \"\"\n} }, Xe = {\n options: {\n type: Array,\n default: () => []\n },\n labelKey: {\n type: [String, Function],\n default: \"label\"\n },\n valueKey: {\n type: [String, Function],\n default: \"value\"\n },\n disabledKey: {\n type: [String, Function],\n default: \"disabled\"\n }\n}, Ze = { count: {\n type: [Boolean, String],\n default: !1,\n validator: (e) => [\n !0,\n !1,\n \"limit\",\n \"countdown\"\n ].includes(e)\n} }, et = { debounce: {\n type: [Number, String],\n default: void 0\n} }, tt = {\n icon: {\n type: [String, Object],\n default: void 0\n },\n iconPosition: {\n type: String,\n default: Z.before,\n validation: (e) => Object.values(Z).includes(e)\n }\n}, pe = { tabindex: {\n type: [String, Number],\n default: 0\n} }, at = { floating: {\n type: Boolean,\n default: !1\n} }, rt = { id: [String, Number] }, wt = {\n placement: {\n type: String,\n default: X.bottom,\n validator: (e) => Object.values(X).includes(e) || Object.values(Me).includes(e)\n },\n strategy: {\n type: String,\n default: void 0,\n validator: (e) => Object.values(Fe).includes(e)\n },\n transitionName: {\n type: String,\n default: void 0\n },\n offset: {\n type: [\n Number,\n String,\n Object\n ],\n default: 0\n },\n shift: {\n type: [Boolean, Object],\n default: !1\n },\n flip: {\n type: [Boolean, Object],\n default: !0\n },\n size: {\n type: [Boolean, Object],\n default: () => ({ padding: 10 })\n },\n autoPlacement: {\n type: [Boolean, Object],\n default: !1\n },\n arrow: {\n type: Boolean,\n default: !1\n },\n keepOpen: {\n type: Boolean,\n default: !1\n },\n autofocusFirst: {\n type: Boolean,\n default: !0\n },\n triggerWidth: {\n type: Boolean,\n default: !1\n },\n topLayer: {\n type: Boolean,\n default: !1\n }\n}, be = {\n ...rt,\n name: {\n type: String,\n required: !0\n }\n}, lt = { autofocus: {\n type: Boolean,\n default: !1\n} }, nt = { autocomplete: {\n type: String,\n default: \"off\"\n} }, Et = {\n ...be,\n ...lt,\n ...nt,\n ...pe,\n ...D,\n ...U,\n ...T,\n ...z,\n ...Y,\n ...J,\n ...R,\n ...Ze,\n ...et,\n ...tt,\n ...at,\n ...G,\n ...Qe,\n minlength: {\n type: [String, Number],\n default: void 0\n },\n maxlength: {\n type: [String, Number],\n default: void 0\n },\n placeholder: {\n type: String,\n default: void 0\n },\n ...ce\n}, ot = {\n ...be,\n ...pe,\n ...T,\n ...z,\n ...Y,\n ...D,\n ...U,\n ...R,\n ...G,\n ...J,\n value: {\n type: [\n String,\n Number,\n Boolean\n ],\n default: void 0\n },\n modelValue: {\n type: [\n Object,\n Number,\n Boolean,\n String\n ],\n default: void 0\n }\n}, te = {\n ...T,\n ...z,\n ...Xe,\n ...Y,\n ...D,\n ...U,\n ...R,\n ...G,\n ...J,\n ...ce,\n modelValue: {\n type: [\n String,\n Array,\n Boolean,\n Number,\n Symbol\n ],\n default: void 0\n },\n name: {\n type: String,\n required: !0\n },\n vertical: {\n type: Boolean,\n default: !1\n }\n}, xt = {\n ...D,\n ...G,\n ...We,\n ...Ue,\n ...Ye,\n ...Je,\n type: {\n type: String,\n default: ee.button,\n validator: (e) => Object.values(ee).includes(e)\n },\n ariaLabel: {\n type: String,\n default: void 0\n },\n defaultTag: {\n type: String,\n default: Te.button\n }\n}, Dt = {\n storageType: {\n type: String,\n default: Q.local,\n validator: (e) => Object.values(Q).includes(e)\n },\n storageKey: String\n}, it = [\"update:modelValue\", \"change\"];\nfunction ye(e, a, t) {\n return t ? ae(e, t) === ae(a, t) : W(e, a);\n}\nfunction ut(e, a) {\n if (e.length !== a.length) return !1;\n for (let t = e.length; t-- !== 0; ) if (!W(e[t], a[t])) return !1;\n return !0;\n}\nfunction st(e, a) {\n const t = Object.keys(e), { length: n } = t;\n if (n !== Object.keys(a).length) return !1;\n for (let r = n; r-- !== 0; ) if (!Object.hasOwn(a, t[r])) return !1;\n for (let r = n; r-- !== 0; ) {\n const i = t[r];\n if (!W(e[i], a[i])) return !1;\n }\n return !0;\n}\nfunction W(e, a) {\n if (e === a) return !0;\n if (!e || !a || typeof e != \"object\" || typeof a != \"object\") return Number.isNaN(e) && Number.isNaN(a);\n const t = Array.isArray(e), n = Array.isArray(a);\n if (t !== n) return !1;\n if (t && n) return ut(e, a);\n const r = e instanceof Date, i = a instanceof Date;\n if (r !== i) return !1;\n if (r && i) return e.getTime() === a.getTime();\n const f = e instanceof RegExp, s = a instanceof RegExp;\n return f !== s ? !1 : f && s ? e.toString() === a.toString() : st(e, a);\n}\nfunction ae(e, a) {\n if (e && Object.keys(e).length && a) {\n if (!a.includes(\".\")) return e[a];\n const t = a.split(\".\");\n let n = e;\n for (let r = 0, i = t.length; r < i; ++r) {\n if (n == null) return null;\n n = n[t[r]];\n }\n return n;\n } else return null;\n}\nfunction dt(e, a) {\n if (e != null && a?.length) {\n for (const t of a) if (ye(e, t)) return !0;\n }\n return !1;\n}\nfunction vt(e) {\n return typeof e == \"string\";\n}\nfunction re(e) {\n return Array.isArray(e) ? e.filter((a) => vt(a)).join(\" \") : e;\n}\nfunction ge(e, a) {\n const t = o(() => ue(e) ? e.value : e), n = o(() => re(t.value.invalidLabel)), r = o(() => re(t.value.validLabel)), i = o(() => t.value.loadingLabel), f = o(() => t.value.hintLabel), s = o(() => !!(t.value.loading && (a.loading || i.value))), p = o(() => !s.value && !!(t.value.invalid && (a.invalid || n.value))), l = o(() => !s.value && !p.value && !!(t.value.valid && (a.valid || r.value))), b = o(() => !s.value && !p.value && !l.value && !!(a.hint || f.value)), O = o(() => p.value || l.value || s.value || b.value);\n return {\n hasInvalidLabelOrSlot: p,\n hasHintLabelOrSlot: b,\n hasValidLabelOrSlot: l,\n hasLoadingLabelOrSlot: s,\n hintSlotScope: o(() => ({\n modelValue: t.value.modelValue,\n valid: t.value.valid,\n invalid: t.value.invalid,\n loading: t.value.loading\n })),\n HintSlot: M({\n name: \"HintSlot\",\n props: { tag: {\n type: String,\n default: \"small\"\n } },\n setup() {\n return {\n isVisible: O,\n invalidLabel: n,\n validLabel: r,\n loadingLabel: i,\n hintLabel: f,\n hasInvalidLabelOrSlot: p,\n hasValidLabelOrSlot: l,\n hasLoadingLabelOrSlot: s,\n hasHintLabelOrSlot: b\n };\n },\n render() {\n if (this.isVisible) {\n let d;\n return this.hasInvalidLabelOrSlot && (d = \"alert\"), this.hasValidLabelOrSlot && (d = \"status\"), this.hasLoadingLabelOrSlot ? w(this.tag, { role: d }, this.$slots.loading?.() ?? this.loadingLabel) : this.hasInvalidLabelOrSlot ? w(this.tag, { role: d }, this.$slots.invalid?.() ?? this.$slots.invalid ?? this.invalidLabel) : this.hasValidLabelOrSlot ? w(this.tag, { role: d }, this.$slots.valid?.() ?? this.validLabel) : w(this.tag, { role: d }, this.$slots.hint?.() ?? this.$slots.hint ?? this.hintLabel);\n }\n return null;\n }\n })\n };\n}\nfunction ft(e) {\n const a = ie(e, void 0), t = o(() => a !== void 0);\n function n(r, i, f) {\n const s = a?.[r];\n if (s) return o({\n get() {\n return s.value;\n },\n set(l) {\n s.value = l;\n }\n });\n const p = Ee(i, r);\n return o({\n get() {\n return p.value;\n },\n set(l) {\n f && f(`update:${r}`, l);\n }\n });\n }\n return {\n group: a,\n isInGroup: t,\n getGroupOrLocalRef: n\n };\n}\nvar le = {\n ...ot,\n ...R,\n indeterminate: Boolean,\n uncheckedValue: [\n String,\n Number,\n Boolean\n ],\n switch: Boolean\n}, ct = [\n \"click\",\n \"update:modelValue\",\n \"change\",\n \"blur\"\n];\nfunction pt(e, a) {\n const { group: t, isInGroup: n, getGroupOrLocalRef: r } = ft(fe), { id: i, switch: f, indeterminate: s } = x(e);\n return {\n id: i,\n propsSwitch: f,\n indeterminate: s,\n group: t,\n isInGroup: n,\n modelValue: r(\"modelValue\", e, a),\n valid: r(\"valid\", e),\n invalid: r(\"invalid\", e),\n readonly: o(() => !!(e.readonly || t?.readonly.value)),\n disabled: o(() => !!(e.disabled || t?.disabled.value))\n };\n}\nfunction bt() {\n return ie(ze, void 0);\n}\nfunction yt(e, a, t) {\n let n = a;\n if (Array.isArray(e) && e.length) {\n const r = e[0];\n r() === a && (n = t);\n }\n if (typeof e == \"function\" && e() === a && (n = t), typeof e == \"object\") {\n let r = e.default;\n typeof r == \"function\" && (r = r()), (typeof r == \"object\" ? JSON.stringify(r) === JSON.stringify(a) : r === a) && (n = t);\n }\n return n;\n}\nfunction he(e, a, t) {\n const n = bt(), r = o(() => {\n if (n?.defaults.value?.[e])\n return n.defaults.value[e];\n });\n return o(() => {\n if (r.value === void 0) return t;\n const i = r.value, f = a, s = t;\n return Object.keys(f).reduce((p, l) => {\n const b = s[l];\n return p[l] = l in i ? yt(f[l], b, i[l]) : b, p;\n }, {});\n });\n}\nfunction gt(e) {\n return o(() => String(e?.value || xe()));\n}\nfunction me(e, a, t) {\n return o(() => {\n const n = { [e]: !0 }, r = typeof a?.value == \"string\" ? a.value.split(\" \") : a?.value;\n return r && Array.isArray(r) && r.forEach((i) => {\n i && (n[`${e}--${i}`] = !0);\n }), t && Object.keys(t.value).forEach((i) => {\n n[`${e}--${i}`] = u(t.value[i]);\n }), n;\n });\n}\nvar ht = [\"for\"], mt = [\n \"id\",\n \"name\",\n \"disabled\",\n \"value\",\n \"tabindex\",\n \"aria-invalid\",\n \"aria-describedby\",\n \"aria-errormessage\"\n], St = { class: \"vv-checkbox__label\" }, Ot = { name: \"VvCheckbox\" }, kt = /* @__PURE__ */ M({\n ...Ot,\n props: le,\n emits: ct,\n setup(e, { emit: a }) {\n const t = e, n = a, r = ve(), i = he(\"VvCheckbox\", le, t), { id: f, disabled: s, readonly: p, valid: l, invalid: b, propsSwitch: O, modelValue: d, indeterminate: $, isInGroup: A } = pt(t, n), P = gt(f), V = o(() => `${P.value}-hint`), q = o(() => v.value ? -1 : t.tabindex), k = Ie(), y = o(() => t.uncheckedValue !== void 0 && !A.value), v = o(() => s.value || p.value), j = o(() => {\n if (b.value === !0) return !0;\n if (l.value === !0) return !1;\n }), N = o(() => y.value ? d.value === t.value : Array.isArray(d.value) ? dt(t.value, d.value) : ye(t.value, d.value)), B = o(() => !!($.value || !N.value && y.value && t.uncheckedValue !== d.value)), Se = o(() => {\n if (!y.value)\n return [\n \"string\",\n \"number\",\n \"boolean\"\n ].includes(typeof t.value) ? t.value : !0;\n }), H = o({\n get() {\n return N.value;\n },\n set(c) {\n if (y.value) d.value = c ? t.value : t.uncheckedValue;\n else if (Array.isArray(d.value) || A.value) {\n const L = d.value ?? [], C = new Set(Array.isArray(L) ? L : [L]);\n c ? C.add(t.value) : C.delete(t.value), d.value = [...C];\n } else d.value = c ? t.value : void 0;\n n(\"change\", c);\n }\n }), { modifiers: Oe } = x(t), ke = me(\"vv-checkbox\", Oe, o(() => ({\n switch: O.value,\n valid: l.value,\n invalid: b.value,\n disabled: s.value,\n readonly: p.value,\n indeterminate: $.value\n })));\n Re(() => {\n y.value && Array.isArray(d.value) && console.warn(\"[VvCheckbox] The model value is an array but the component is in binary mode.\");\n }), Ge(() => B.value, (c) => {\n c ? k.value.indeterminate = !0 : k.value.indeterminate = !1;\n }), je(() => {\n B.value && (k.value.indeterminate = !0);\n });\n const { HintSlot: Le, hasHintLabelOrSlot: Pe, hasInvalidLabelOrSlot: Ve, hintSlotScope: I } = ge(i, r);\n return (c, L) => (_(), E(\"label\", {\n class: se(u(ke)),\n for: u(P)\n }, [\n qe(F(\"input\", {\n id: u(P),\n ref_key: \"input\",\n ref: k,\n \"onUpdate:modelValue\": L[0] || (L[0] = (C) => ue(H) ? H.value = C : null),\n type: \"checkbox\",\n class: \"vv-checkbox__input\",\n name: c.name,\n disabled: u(v),\n value: u(Se),\n tabindex: u(q),\n \"aria-invalid\": u(j),\n \"aria-describedby\": u(Pe) ? u(V) : void 0,\n \"aria-errormessage\": u(Ve) ? u(V) : void 0\n }, null, 8, mt), [[De, u(H)]]),\n F(\"span\", St, [g(c.$slots, \"default\", { value: u(d) }, () => [$e(de(c.label), 1)])]),\n oe(u(Le), {\n id: u(V),\n class: \"vv-checkbox__hint\"\n }, ne({ _: 2 }, [\n c.$slots.hint ? {\n name: \"hint\",\n fn: S(() => [g(c.$slots, \"hint\", m(h(u(I))))]),\n key: \"0\"\n } : void 0,\n c.$slots.loading ? {\n name: \"loading\",\n fn: S(() => [g(c.$slots, \"loading\", m(h(u(I))))]),\n key: \"1\"\n } : void 0,\n c.$slots.valid ? {\n name: \"valid\",\n fn: S(() => [g(c.$slots, \"valid\", m(h(u(I))))]),\n key: \"2\"\n } : void 0,\n c.$slots.invalid ? {\n name: \"invalid\",\n fn: S(() => [g(c.$slots, \"invalid\", m(h(u(I))))]),\n key: \"3\"\n } : void 0\n ]), 1032, [\"id\"])\n ], 10, ht));\n }\n}), Lt = kt;\nfunction Pt(e, a) {\n Ne(e, a);\n}\nfunction Vt(e) {\n const { options: a, labelKey: t, valueKey: n, disabledKey: r } = x(e);\n return {\n options: a,\n getOptionLabel: (l) => typeof l == \"string\" ? l : typeof t.value == \"function\" ? t.value(l) : String(t.value ? K(l, t.value) : l),\n getOptionValue: (l) => typeof l == \"string\" ? l : typeof n.value == \"function\" ? n.value(l) : n.value ? K(l, n.value) : l,\n isOptionDisabled: (l) => typeof l == \"string\" ? !1 : typeof r.value == \"function\" ? r.value(l) : r.value ? !!K(l, r.value) : !1,\n getOptionGrouped: (l) => typeof l == \"string\" ? [] : typeof l == \"object\" && l && \"options\" in l ? l.options : []\n };\n}\nvar Bt = [\"textContent\"], Ct = { class: \"vv-checkbox-group__wrapper\" }, _t = { name: \"VvCheckboxGroup\" }, $t = /* @__PURE__ */ M({\n ..._t,\n props: te,\n emits: it,\n setup(e, { emit: a }) {\n const t = e, n = a, r = ve(), i = he(\"VvCheckboxGroup\", te, t), f = He(t, \"modelValue\", n), { disabled: s, readonly: p, vertical: l, valid: b, invalid: O, modifiers: d } = x(t);\n Pt(fe, {\n modelValue: f,\n disabled: s,\n readonly: p,\n valid: b,\n invalid: O\n });\n const { getOptionLabel: $, getOptionValue: A, isOptionDisabled: P } = Vt(t), V = me(\"vv-checkbox-group\", d, o(() => ({\n disabled: s.value,\n readonly: p.value,\n required: t.required,\n horizontal: !l.value,\n valid: b.value,\n invalid: O.value\n })));\n function q(v, j) {\n return {\n id: `${t.name}_opt${j}`,\n name: t.name,\n label: $(v),\n value: A(v),\n required: t.required,\n disabled: P(v)\n };\n }\n const { HintSlot: k, hintSlotScope: y } = ge(i, r);\n return (v, j) => (_(), E(\"fieldset\", { class: se(u(V)) }, [\n v.label ? (_(), E(\"legend\", {\n key: 0,\n textContent: de(v.label)\n }, null, 8, Bt)) : _e(\"v-if\", !0),\n F(\"div\", Ct, [v.options.length > 0 ? (_(!0), E(Be, { key: 0 }, we(v.options, (N, B) => (_(), Ce(Lt, Ae({ key: B }, { ref_for: !0 }, q(N, B)), null, 16))), 128)) : g(v.$slots, \"default\", {}, void 0, void 0, 1)]),\n oe(u(k), { class: \"vv-checkbox-group__hint\" }, ne({ _: 2 }, [\n v.$slots.hint ? {\n name: \"hint\",\n fn: S(() => [g(v.$slots, \"hint\", m(h(u(y))))]),\n key: \"0\"\n } : void 0,\n v.$slots.loading ? {\n name: \"loading\",\n fn: S(() => [g(v.$slots, \"loading\", m(h(u(y))))]),\n key: \"1\"\n } : void 0,\n v.$slots.valid ? {\n name: \"valid\",\n fn: S(() => [g(v.$slots, \"valid\", m(h(u(y))))]),\n key: \"2\"\n } : void 0,\n v.$slots.invalid ? {\n name: \"invalid\",\n fn: S(() => [g(v.$slots, \"invalid\", m(h(u(y))))]),\n key: \"3\"\n } : void 0\n ]), 1024)\n ], 2));\n }\n}), Gt = $t;\nexport {\n Gt as default\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VvCheckboxGroup.es-CTrF3pue.js","names":["o","ue","M","w","ie","Ee","x","xe","u","ve","Ie","Ge","je","_","E","se","qe","F","De","g","$e","de","oe","ne","S","m","h","K","He","_e","Be","we","Ce","Ae"],"sources":["../../../../node_modules/.pnpm/@volverjs+ui-vue@0.0.22_@json-render+core@0.19.0_zod@4.6.5__@volverjs+style@0.1.28_@vue_83209f08cf1ab5b5efaebe6577fda1e4/node_modules/@volverjs/ui-vue/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js"],"sourcesContent":["import { Fragment as Be, computed as o, createBlock as Ce, createCommentVNode as _e, createElementBlock as E, createElementVNode as F, createSlots as ne, createTextVNode as $e, createVNode as oe, defineComponent as M, guardReactiveProps as h, h as w, inject as ie, isRef as ue, mergeProps as Ae, normalizeClass as se, normalizeProps as m, onMounted as je, openBlock as _, provide as Ne, ref as Ie, renderList as we, renderSlot as g, toDisplayString as de, toRef as Ee, toRefs as x, unref as u, useId as xe, useSlots as ve, vModelCheckbox as De, watch as Ge, watchEffect as Re, withCtx as S, withDirectives as qe } from \"vue\";\nimport { useVModel as He } from \"@vueuse/core\";\nimport { getProperty as K } from \"dot-prop\";\nvar Ke = {\n showPassword: \"eye-on\",\n hidePassword: \"eye-off\",\n showDatePicker: \"calendar\",\n showTimePicker: \"time\",\n showColorPicker: \"color\",\n clear: \"close\",\n add: \"add\",\n remove: \"trash\",\n edit: \"edit\",\n download: \"download\"\n}, Q = /* @__PURE__ */ (function(e) {\n return e.local = \"local\", e.session = \"session\", e;\n})({}), Fe = /* @__PURE__ */ (function(e) {\n return e.absolute = \"absolute\", e.fixed = \"fixed\", e;\n})({}), X = /* @__PURE__ */ (function(e) {\n return e.left = \"left\", e.right = \"right\", e.top = \"top\", e.bottom = \"bottom\", e;\n})({}), Me = /* @__PURE__ */ (function(e) {\n return e.topStart = \"top-start\", e.topEnd = \"top-end\", e.bottomStart = \"bottom-start\", e.bottomEnd = \"bottom-end\", e.leftStart = \"left-start\", e.leftEnd = \"left-end\", e.rightStart = \"right-start\", e.rightEnd = \"right-end\", e;\n})({}), Z = /* @__PURE__ */ (function(e) {\n return e.before = \"before\", e.after = \"after\", e;\n})({}), ee = /* @__PURE__ */ (function(e) {\n return e.button = \"button\", e.submit = \"submit\", e.reset = \"reset\", e;\n})({}), Te = /* @__PURE__ */ (function(e) {\n return e.nuxtLink = \"nuxt-link\", e.routerLink = \"router-link\", e.a = \"a\", e.button = \"button\", e;\n})({}), ze = /* @__PURE__ */ Symbol.for(\"volver\"), fe = /* @__PURE__ */ Symbol.for(\"checkGroup\"), Je = {\n to: { type: [String, Object] },\n href: String,\n target: String,\n rel: {\n type: String,\n default: \"noopener noreferrer\"\n }\n}, T = {\n valid: {\n type: Boolean,\n default: !1\n },\n validLabel: {\n type: [String, Array],\n default: void 0\n }\n}, z = {\n invalid: {\n type: Boolean,\n default: !1\n },\n invalidLabel: {\n type: [String, Array],\n default: void 0\n }\n}, J = {\n loading: {\n type: Boolean,\n default: !1\n },\n loadingLabel: {\n type: String,\n default: \"Loading...\"\n }\n}, D = { disabled: {\n type: Boolean,\n default: !1\n} }, ce = { required: {\n type: Boolean,\n default: !1\n} }, Ue = { active: {\n type: Boolean,\n default: !1\n} }, Ye = { current: {\n type: Boolean,\n default: !1\n} }, It = {\n showClearAction: {\n type: Boolean,\n default: !1\n },\n iconClear: {\n type: [String, Object],\n default: Ke.clear\n },\n labelClear: {\n type: String,\n default: \"Clear\"\n }\n}, We = { pressed: {\n type: Boolean,\n default: !1\n} }, G = { label: {\n type: [String, Number],\n default: void 0\n} }, Qe = {\n ariaLabel: {\n type: String,\n default: void 0\n },\n ariaLabelledby: {\n type: String,\n default: void 0\n },\n ariaDescribedby: {\n type: String,\n default: void 0\n }\n}, U = { readonly: {\n type: Boolean,\n default: !1\n} }, R = { modifiers: {\n type: [String, Array],\n default: void 0\n} }, Y = { hintLabel: {\n type: String,\n default: \"\"\n} }, Xe = {\n options: {\n type: Array,\n default: () => []\n },\n labelKey: {\n type: [String, Function],\n default: \"label\"\n },\n valueKey: {\n type: [String, Function],\n default: \"value\"\n },\n disabledKey: {\n type: [String, Function],\n default: \"disabled\"\n }\n}, Ze = { count: {\n type: [Boolean, String],\n default: !1,\n validator: (e) => [\n !0,\n !1,\n \"limit\",\n \"countdown\"\n ].includes(e)\n} }, et = { debounce: {\n type: [Number, String],\n default: void 0\n} }, tt = {\n icon: {\n type: [String, Object],\n default: void 0\n },\n iconPosition: {\n type: String,\n default: Z.before,\n validation: (e) => Object.values(Z).includes(e)\n }\n}, pe = { tabindex: {\n type: [String, Number],\n default: 0\n} }, at = { floating: {\n type: Boolean,\n default: !1\n} }, rt = { id: [String, Number] }, wt = {\n placement: {\n type: String,\n default: X.bottom,\n validator: (e) => Object.values(X).includes(e) || Object.values(Me).includes(e)\n },\n strategy: {\n type: String,\n default: void 0,\n validator: (e) => Object.values(Fe).includes(e)\n },\n transitionName: {\n type: String,\n default: void 0\n },\n offset: {\n type: [\n Number,\n String,\n Object\n ],\n default: 0\n },\n shift: {\n type: [Boolean, Object],\n default: !1\n },\n flip: {\n type: [Boolean, Object],\n default: !0\n },\n size: {\n type: [Boolean, Object],\n default: () => ({ padding: 10 })\n },\n autoPlacement: {\n type: [Boolean, Object],\n default: !1\n },\n arrow: {\n type: Boolean,\n default: !1\n },\n keepOpen: {\n type: Boolean,\n default: !1\n },\n autofocusFirst: {\n type: Boolean,\n default: !0\n },\n triggerWidth: {\n type: Boolean,\n default: !1\n },\n topLayer: {\n type: Boolean,\n default: !1\n }\n}, be = {\n ...rt,\n name: {\n type: String,\n required: !0\n }\n}, lt = { autofocus: {\n type: Boolean,\n default: !1\n} }, nt = { autocomplete: {\n type: String,\n default: \"off\"\n} }, Et = {\n ...be,\n ...lt,\n ...nt,\n ...pe,\n ...D,\n ...U,\n ...T,\n ...z,\n ...Y,\n ...J,\n ...R,\n ...Ze,\n ...et,\n ...tt,\n ...at,\n ...G,\n ...Qe,\n minlength: {\n type: [String, Number],\n default: void 0\n },\n maxlength: {\n type: [String, Number],\n default: void 0\n },\n placeholder: {\n type: String,\n default: void 0\n },\n ...ce\n}, ot = {\n ...be,\n ...pe,\n ...T,\n ...z,\n ...Y,\n ...D,\n ...U,\n ...R,\n ...G,\n ...J,\n value: {\n type: [\n String,\n Number,\n Boolean\n ],\n default: void 0\n },\n modelValue: {\n type: [\n Object,\n Number,\n Boolean,\n String\n ],\n default: void 0\n }\n}, te = {\n ...T,\n ...z,\n ...Xe,\n ...Y,\n ...D,\n ...U,\n ...R,\n ...G,\n ...J,\n ...ce,\n modelValue: {\n type: [\n String,\n Array,\n Boolean,\n Number,\n Symbol\n ],\n default: void 0\n },\n name: {\n type: String,\n required: !0\n },\n vertical: {\n type: Boolean,\n default: !1\n }\n}, xt = {\n ...D,\n ...G,\n ...We,\n ...Ue,\n ...Ye,\n ...Je,\n type: {\n type: String,\n default: ee.button,\n validator: (e) => Object.values(ee).includes(e)\n },\n ariaLabel: {\n type: String,\n default: void 0\n },\n defaultTag: {\n type: String,\n default: Te.button\n }\n}, Dt = {\n storageType: {\n type: String,\n default: Q.local,\n validator: (e) => Object.values(Q).includes(e)\n },\n storageKey: String\n}, it = [\"update:modelValue\", \"change\"];\nfunction ye(e, a, t) {\n return t ? ae(e, t) === ae(a, t) : W(e, a);\n}\nfunction ut(e, a) {\n if (e.length !== a.length) return !1;\n for (let t = e.length; t-- !== 0; ) if (!W(e[t], a[t])) return !1;\n return !0;\n}\nfunction st(e, a) {\n const t = Object.keys(e), { length: n } = t;\n if (n !== Object.keys(a).length) return !1;\n for (let r = n; r-- !== 0; ) if (!Object.hasOwn(a, t[r])) return !1;\n for (let r = n; r-- !== 0; ) {\n const i = t[r];\n if (!W(e[i], a[i])) return !1;\n }\n return !0;\n}\nfunction W(e, a) {\n if (e === a) return !0;\n if (!e || !a || typeof e != \"object\" || typeof a != \"object\") return Number.isNaN(e) && Number.isNaN(a);\n const t = Array.isArray(e), n = Array.isArray(a);\n if (t !== n) return !1;\n if (t && n) return ut(e, a);\n const r = e instanceof Date, i = a instanceof Date;\n if (r !== i) return !1;\n if (r && i) return e.getTime() === a.getTime();\n const f = e instanceof RegExp, s = a instanceof RegExp;\n return f !== s ? !1 : f && s ? e.toString() === a.toString() : st(e, a);\n}\nfunction ae(e, a) {\n if (e && Object.keys(e).length && a) {\n if (!a.includes(\".\")) return e[a];\n const t = a.split(\".\");\n let n = e;\n for (let r = 0, i = t.length; r < i; ++r) {\n if (n == null) return null;\n n = n[t[r]];\n }\n return n;\n } else return null;\n}\nfunction dt(e, a) {\n if (e != null && a?.length) {\n for (const t of a) if (ye(e, t)) return !0;\n }\n return !1;\n}\nfunction vt(e) {\n return typeof e == \"string\";\n}\nfunction re(e) {\n return Array.isArray(e) ? e.filter((a) => vt(a)).join(\" \") : e;\n}\nfunction ge(e, a) {\n const t = o(() => ue(e) ? e.value : e), n = o(() => re(t.value.invalidLabel)), r = o(() => re(t.value.validLabel)), i = o(() => t.value.loadingLabel), f = o(() => t.value.hintLabel), s = o(() => !!(t.value.loading && (a.loading || i.value))), p = o(() => !s.value && !!(t.value.invalid && (a.invalid || n.value))), l = o(() => !s.value && !p.value && !!(t.value.valid && (a.valid || r.value))), b = o(() => !s.value && !p.value && !l.value && !!(a.hint || f.value)), O = o(() => p.value || l.value || s.value || b.value);\n return {\n hasInvalidLabelOrSlot: p,\n hasHintLabelOrSlot: b,\n hasValidLabelOrSlot: l,\n hasLoadingLabelOrSlot: s,\n hintSlotScope: o(() => ({\n modelValue: t.value.modelValue,\n valid: t.value.valid,\n invalid: t.value.invalid,\n loading: t.value.loading\n })),\n HintSlot: M({\n name: \"HintSlot\",\n props: { tag: {\n type: String,\n default: \"small\"\n } },\n setup() {\n return {\n isVisible: O,\n invalidLabel: n,\n validLabel: r,\n loadingLabel: i,\n hintLabel: f,\n hasInvalidLabelOrSlot: p,\n hasValidLabelOrSlot: l,\n hasLoadingLabelOrSlot: s,\n hasHintLabelOrSlot: b\n };\n },\n render() {\n if (this.isVisible) {\n let d;\n return this.hasInvalidLabelOrSlot && (d = \"alert\"), this.hasValidLabelOrSlot && (d = \"status\"), this.hasLoadingLabelOrSlot ? w(this.tag, { role: d }, this.$slots.loading?.() ?? this.loadingLabel) : this.hasInvalidLabelOrSlot ? w(this.tag, { role: d }, this.$slots.invalid?.() ?? this.$slots.invalid ?? this.invalidLabel) : this.hasValidLabelOrSlot ? w(this.tag, { role: d }, this.$slots.valid?.() ?? this.validLabel) : w(this.tag, { role: d }, this.$slots.hint?.() ?? this.$slots.hint ?? this.hintLabel);\n }\n return null;\n }\n })\n };\n}\nfunction ft(e) {\n const a = ie(e, void 0), t = o(() => a !== void 0);\n function n(r, i, f) {\n const s = a?.[r];\n if (s) return o({\n get() {\n return s.value;\n },\n set(l) {\n s.value = l;\n }\n });\n const p = Ee(i, r);\n return o({\n get() {\n return p.value;\n },\n set(l) {\n f && f(`update:${r}`, l);\n }\n });\n }\n return {\n group: a,\n isInGroup: t,\n getGroupOrLocalRef: n\n };\n}\nvar le = {\n ...ot,\n ...R,\n indeterminate: Boolean,\n uncheckedValue: [\n String,\n Number,\n Boolean\n ],\n switch: Boolean\n}, ct = [\n \"click\",\n \"update:modelValue\",\n \"change\",\n \"blur\"\n];\nfunction pt(e, a) {\n const { group: t, isInGroup: n, getGroupOrLocalRef: r } = ft(fe), { id: i, switch: f, indeterminate: s } = x(e);\n return {\n id: i,\n propsSwitch: f,\n indeterminate: s,\n group: t,\n isInGroup: n,\n modelValue: r(\"modelValue\", e, a),\n valid: r(\"valid\", e),\n invalid: r(\"invalid\", e),\n readonly: o(() => !!(e.readonly || t?.readonly.value)),\n disabled: o(() => !!(e.disabled || t?.disabled.value))\n };\n}\nfunction bt() {\n return ie(ze, void 0);\n}\nfunction yt(e, a, t) {\n let n = a;\n if (Array.isArray(e) && e.length) {\n const r = e[0];\n r() === a && (n = t);\n }\n if (typeof e == \"function\" && e() === a && (n = t), typeof e == \"object\") {\n let r = e.default;\n typeof r == \"function\" && (r = r()), (typeof r == \"object\" ? JSON.stringify(r) === JSON.stringify(a) : r === a) && (n = t);\n }\n return n;\n}\nfunction he(e, a, t) {\n const n = bt(), r = o(() => {\n if (n?.defaults.value?.[e])\n return n.defaults.value[e];\n });\n return o(() => {\n if (r.value === void 0) return t;\n const i = r.value, f = a, s = t;\n return Object.keys(f).reduce((p, l) => {\n const b = s[l];\n return p[l] = l in i ? yt(f[l], b, i[l]) : b, p;\n }, {});\n });\n}\nfunction gt(e) {\n return o(() => String(e?.value || xe()));\n}\nfunction me(e, a, t) {\n return o(() => {\n const n = { [e]: !0 }, r = typeof a?.value == \"string\" ? a.value.split(\" \") : a?.value;\n return r && Array.isArray(r) && r.forEach((i) => {\n i && (n[`${e}--${i}`] = !0);\n }), t && Object.keys(t.value).forEach((i) => {\n n[`${e}--${i}`] = u(t.value[i]);\n }), n;\n });\n}\nvar ht = [\"for\"], mt = [\n \"id\",\n \"name\",\n \"disabled\",\n \"value\",\n \"tabindex\",\n \"aria-invalid\",\n \"aria-describedby\",\n \"aria-errormessage\"\n], St = { class: \"vv-checkbox__label\" }, Ot = { name: \"VvCheckbox\" }, kt = /* @__PURE__ */ M({\n ...Ot,\n props: le,\n emits: ct,\n setup(e, { emit: a }) {\n const t = e, n = a, r = ve(), i = he(\"VvCheckbox\", le, t), { id: f, disabled: s, readonly: p, valid: l, invalid: b, propsSwitch: O, modelValue: d, indeterminate: $, isInGroup: A } = pt(t, n), P = gt(f), V = o(() => `${P.value}-hint`), q = o(() => v.value ? -1 : t.tabindex), k = Ie(), y = o(() => t.uncheckedValue !== void 0 && !A.value), v = o(() => s.value || p.value), j = o(() => {\n if (b.value === !0) return !0;\n if (l.value === !0) return !1;\n }), N = o(() => y.value ? d.value === t.value : Array.isArray(d.value) ? dt(t.value, d.value) : ye(t.value, d.value)), B = o(() => !!($.value || !N.value && y.value && t.uncheckedValue !== d.value)), Se = o(() => {\n if (!y.value)\n return [\n \"string\",\n \"number\",\n \"boolean\"\n ].includes(typeof t.value) ? t.value : !0;\n }), H = o({\n get() {\n return N.value;\n },\n set(c) {\n if (y.value) d.value = c ? t.value : t.uncheckedValue;\n else if (Array.isArray(d.value) || A.value) {\n const L = d.value ?? [], C = new Set(Array.isArray(L) ? L : [L]);\n c ? C.add(t.value) : C.delete(t.value), d.value = [...C];\n } else d.value = c ? t.value : void 0;\n n(\"change\", c);\n }\n }), { modifiers: Oe } = x(t), ke = me(\"vv-checkbox\", Oe, o(() => ({\n switch: O.value,\n valid: l.value,\n invalid: b.value,\n disabled: s.value,\n readonly: p.value,\n indeterminate: $.value\n })));\n Re(() => {\n y.value && Array.isArray(d.value) && console.warn(\"[VvCheckbox] The model value is an array but the component is in binary mode.\");\n }), Ge(() => B.value, (c) => {\n c ? k.value.indeterminate = !0 : k.value.indeterminate = !1;\n }), je(() => {\n B.value && (k.value.indeterminate = !0);\n });\n const { HintSlot: Le, hasHintLabelOrSlot: Pe, hasInvalidLabelOrSlot: Ve, hintSlotScope: I } = ge(i, r);\n return (c, L) => (_(), E(\"label\", {\n class: se(u(ke)),\n for: u(P)\n }, [\n qe(F(\"input\", {\n id: u(P),\n ref_key: \"input\",\n ref: k,\n \"onUpdate:modelValue\": L[0] || (L[0] = (C) => ue(H) ? H.value = C : null),\n type: \"checkbox\",\n class: \"vv-checkbox__input\",\n name: c.name,\n disabled: u(v),\n value: u(Se),\n tabindex: u(q),\n \"aria-invalid\": u(j),\n \"aria-describedby\": u(Pe) ? u(V) : void 0,\n \"aria-errormessage\": u(Ve) ? u(V) : void 0\n }, null, 8, mt), [[De, u(H)]]),\n F(\"span\", St, [g(c.$slots, \"default\", { value: u(d) }, () => [$e(de(c.label), 1)])]),\n oe(u(Le), {\n id: u(V),\n class: \"vv-checkbox__hint\"\n }, ne({ _: 2 }, [\n c.$slots.hint ? {\n name: \"hint\",\n fn: S(() => [g(c.$slots, \"hint\", m(h(u(I))))]),\n key: \"0\"\n } : void 0,\n c.$slots.loading ? {\n name: \"loading\",\n fn: S(() => [g(c.$slots, \"loading\", m(h(u(I))))]),\n key: \"1\"\n } : void 0,\n c.$slots.valid ? {\n name: \"valid\",\n fn: S(() => [g(c.$slots, \"valid\", m(h(u(I))))]),\n key: \"2\"\n } : void 0,\n c.$slots.invalid ? {\n name: \"invalid\",\n fn: S(() => [g(c.$slots, \"invalid\", m(h(u(I))))]),\n key: \"3\"\n } : void 0\n ]), 1032, [\"id\"])\n ], 10, ht));\n }\n}), Lt = kt;\nfunction Pt(e, a) {\n Ne(e, a);\n}\nfunction Vt(e) {\n const { options: a, labelKey: t, valueKey: n, disabledKey: r } = x(e);\n return {\n options: a,\n getOptionLabel: (l) => typeof l == \"string\" ? l : typeof t.value == \"function\" ? t.value(l) : String(t.value ? K(l, t.value) : l),\n getOptionValue: (l) => typeof l == \"string\" ? l : typeof n.value == \"function\" ? n.value(l) : n.value ? K(l, n.value) : l,\n isOptionDisabled: (l) => typeof l == \"string\" ? !1 : typeof r.value == \"function\" ? r.value(l) : r.value ? !!K(l, r.value) : !1,\n getOptionGrouped: (l) => typeof l == \"string\" ? [] : typeof l == \"object\" && l && \"options\" in l ? l.options : []\n };\n}\nvar Bt = [\"textContent\"], Ct = { class: \"vv-checkbox-group__wrapper\" }, _t = { name: \"VvCheckboxGroup\" }, $t = /* @__PURE__ */ M({\n ..._t,\n props: te,\n emits: it,\n setup(e, { emit: a }) {\n const t = e, n = a, r = ve(), i = he(\"VvCheckboxGroup\", te, t), f = He(t, \"modelValue\", n), { disabled: s, readonly: p, vertical: l, valid: b, invalid: O, modifiers: d } = x(t);\n Pt(fe, {\n modelValue: f,\n disabled: s,\n readonly: p,\n valid: b,\n invalid: O\n });\n const { getOptionLabel: $, getOptionValue: A, isOptionDisabled: P } = Vt(t), V = me(\"vv-checkbox-group\", d, o(() => ({\n disabled: s.value,\n readonly: p.value,\n required: t.required,\n horizontal: !l.value,\n valid: b.value,\n invalid: O.value\n })));\n function q(v, j) {\n return {\n id: `${t.name}_opt${j}`,\n name: t.name,\n label: $(v),\n value: A(v),\n required: t.required,\n disabled: P(v)\n };\n }\n const { HintSlot: k, hintSlotScope: y } = ge(i, r);\n return (v, j) => (_(), E(\"fieldset\", { class: se(u(V)) }, [\n v.label ? (_(), E(\"legend\", {\n key: 0,\n textContent: de(v.label)\n }, null, 8, Bt)) : _e(\"v-if\", !0),\n F(\"div\", Ct, [v.options.length > 0 ? (_(!0), E(Be, { key: 0 }, we(v.options, (N, B) => (_(), Ce(Lt, Ae({ key: B }, { ref_for: !0 }, q(N, B)), null, 16))), 128)) : g(v.$slots, \"default\", {}, void 0, void 0, 1)]),\n oe(u(k), { class: \"vv-checkbox-group__hint\" }, ne({ _: 2 }, [\n v.$slots.hint ? {\n name: \"hint\",\n fn: S(() => [g(v.$slots, \"hint\", m(h(u(y))))]),\n key: \"0\"\n } : void 0,\n v.$slots.loading ? {\n name: \"loading\",\n fn: S(() => [g(v.$slots, \"loading\", m(h(u(y))))]),\n key: \"1\"\n } : void 0,\n v.$slots.valid ? {\n name: \"valid\",\n fn: S(() => [g(v.$slots, \"valid\", m(h(u(y))))]),\n key: \"2\"\n } : void 0,\n v.$slots.invalid ? {\n name: \"invalid\",\n fn: S(() => [g(v.$slots, \"invalid\", m(h(u(y))))]),\n key: \"3\"\n } : void 0\n ]), 1024)\n ], 2));\n }\n}), Gt = $t;\nexport {\n Gt as default\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { $ as e, A as t, B as n, C as r, Ct as i, E as a, F as o, G as s, H as c, K as l, L as u, M as d, N as f, O as p, P as ee, Q as m, R as h, St as g, T as _, Tt as v, U as te, V as ne, W as re, X as y, _ as b, _t as x, b as S, bt as C, c as w, ct as ie, d as T, et as ae, g as E, h as D, it as oe, j as O, k, l as se, m as A, o as j, pt as M, q as ce, r as N, s as le, t as P, u as ue, v as F, vt as I, w as de, wt as fe, x as pe, xt as L, y as me, yt as he, z as ge } from "./vue.runtime.esm-bundler-CIT_Sbqw.js";
|
|
2
2
|
import { a as _e, i as R, t as z } from "./iconify-CDwuCpbE.js";
|
|
3
|
-
import {
|
|
3
|
+
import { _ as ve, c as B, f as ye, g as be, l as V, n as xe, o as Se, r as Ce, t as we, u as Te } from "./dist-QdjZA6MJ.js";
|
|
4
4
|
import { a as Ee, c as De, i as Oe, l as ke, n as Ae, o as je, r as Me, s as Ne, t as Pe } from "./floating-ui.vue-xWX6nxAS.js";
|
|
5
5
|
import { t as Fe } from "./dot-prop-BEIkPL0b.js";
|
|
6
6
|
//#region ../../node_modules/.pnpm/@volverjs+ui-vue@0.0.22_@json-render+core@0.19.0_zod@4.6.5__@volverjs+style@0.1.28_@vue_83209f08cf1ab5b5efaebe6577fda1e4/node_modules/@volverjs/ui-vue/dist/components/VvCombobox/VvCombobox.es.js
|
|
@@ -1499,11 +1499,11 @@ var hn = ["for"], gn = { class: "vv-select__wrapper" }, _n = {
|
|
|
1499
1499
|
}
|
|
1500
1500
|
o("update:modelValue", e);
|
|
1501
1501
|
}
|
|
1502
|
-
}), he = A(() => Array.isArray(L.value) ? L.value.length > 0 : L.value !== void 0 && L.value !== null), _e = A(() => !de.value && a.unselectable), R =
|
|
1502
|
+
}), he = A(() => Array.isArray(L.value) ? L.value.length > 0 : L.value !== void 0 && L.value !== null), _e = A(() => !de.value && a.unselectable), R = B(l);
|
|
1503
1503
|
y(R, (e) => {
|
|
1504
1504
|
e && a.autofocus && (h.value = !0);
|
|
1505
1505
|
});
|
|
1506
|
-
let { hasIconBefore: z, hasIconAfter:
|
|
1506
|
+
let { hasIconBefore: z, hasIconAfter: ve } = At(oe, O), ye = A(() => {
|
|
1507
1507
|
if (a.invalid === !0) return !0;
|
|
1508
1508
|
if (a.valid === !0) return !1;
|
|
1509
1509
|
}), be = kt("vv-select", re, A(() => ({
|
|
@@ -1513,7 +1513,7 @@ var hn = ["for"], gn = { class: "vv-select__wrapper" }, _n = {
|
|
|
1513
1513
|
disabled: x.value,
|
|
1514
1514
|
readonly: S.value,
|
|
1515
1515
|
"icon-before": z.value !== void 0,
|
|
1516
|
-
"icon-after":
|
|
1516
|
+
"icon-after": ve.value !== void 0,
|
|
1517
1517
|
dirty: he.value,
|
|
1518
1518
|
focus: h.value && !de.value,
|
|
1519
1519
|
floating: N.value,
|
|
@@ -1538,7 +1538,7 @@ var hn = ["for"], gn = { class: "vv-select__wrapper" }, _n = {
|
|
|
1538
1538
|
multiple: a.multiple,
|
|
1539
1539
|
"aria-label": a.ariaLabel || void 0,
|
|
1540
1540
|
"aria-labelledby": a.ariaLabelledby || void 0,
|
|
1541
|
-
"aria-invalid":
|
|
1541
|
+
"aria-invalid": ye.value,
|
|
1542
1542
|
"aria-describedby": [a.ariaDescribedby, p.value ? ue.value : void 0].filter(Boolean).join(" ") || void 0,
|
|
1543
1543
|
"aria-errormessage": ee.value ? ue.value : void 0
|
|
1544
1544
|
})), Ee = A(() => ({
|
|
@@ -1577,7 +1577,7 @@ var hn = ["for"], gn = { class: "vv-select__wrapper" }, _n = {
|
|
|
1577
1577
|
disabled: C(Se)(e),
|
|
1578
1578
|
value: C(xe)(e)
|
|
1579
1579
|
}, v(C(V)(e)), 9, xn))], 64))), 256))], 16, yn), [[j, C(L)]]),
|
|
1580
|
-
C(
|
|
1580
|
+
C(ve) ? (u(), E($, d({ key: 1 }, C(ve), { class: "vv-select__icon vv-select__icon-after" }), null, 16)) : b("v-if", !0)
|
|
1581
1581
|
]),
|
|
1582
1582
|
C(_e) && C(c).showClearAction ? (u(), E(C(jt), {
|
|
1583
1583
|
key: 1,
|
|
@@ -1688,7 +1688,7 @@ var hn = ["for"], gn = { class: "vv-select__wrapper" }, _n = {
|
|
|
1688
1688
|
}
|
|
1689
1689
|
!w.value && P.value && k();
|
|
1690
1690
|
});
|
|
1691
|
-
let j = l(t, "search"), N =
|
|
1691
|
+
let j = l(t, "search"), N = ve(j, A(() => Number(a.debounceSearch)));
|
|
1692
1692
|
y(N, () => {
|
|
1693
1693
|
o("update:search", N.value), o("change:search", N.value);
|
|
1694
1694
|
});
|
|
@@ -1711,12 +1711,12 @@ var hn = ["for"], gn = { class: "vv-select__wrapper" }, _n = {
|
|
|
1711
1711
|
function R(e) {
|
|
1712
1712
|
return typeof e != "string" && e.options?.length;
|
|
1713
1713
|
}
|
|
1714
|
-
let { id: z, icon:
|
|
1714
|
+
let { id: z, icon: B, iconPosition: ye, modifiers: be, disabled: V, required: xe, readonly: Se, loading: Ee, valid: De, invalid: Oe, floating: ke } = I(a), Ae = Ut(z), je = A(() => `${Ae.value}-hint`), Me = A(() => `${Ae.value}-dropdown`), Ne = A(() => `${Ae.value}-search`), Pe = A(() => `${Ae.value}-label`), Fe = A(() => [a.ariaDescribedby, ne.value ? je.value : void 0].filter(Boolean).join(" ") || void 0), H = A(() => a.disabled || a.readonly), Ie = A(() => H.value ? -1 : a.tabindex), U = A({
|
|
1715
1715
|
get: () => Array.isArray(a.modelValue) ? a.modelValue : a.modelValue !== void 0 && a.modelValue !== null ? [a.modelValue] : [],
|
|
1716
1716
|
set: (e) => {
|
|
1717
1717
|
o("update:modelValue", a.multiple || Array.isArray(a.modelValue) ? e : e.pop());
|
|
1718
1718
|
}
|
|
1719
|
-
}), Le = A(() => U.value.length), W = A(() => Le.value > 0), Re = A(() => a.multiple ? a.maxValues === void 0 ? 1 / 0 : Number(a.maxValues) : 1), G = A(() => H.value || !a.unselectable ? !1 : Number(a.minValues) === 0 || Le.value > Number(a.minValues)), ze = A(() => H.value ? !1 : !a.multiple || Le.value < Re.value), K = M(!1), q = A(() => K.value || Ee.value), { hasIconBefore: Ve, hasIconAfter: He } = At(
|
|
1719
|
+
}), Le = A(() => U.value.length), W = A(() => Le.value > 0), Re = A(() => a.multiple ? a.maxValues === void 0 ? 1 / 0 : Number(a.maxValues) : 1), G = A(() => H.value || !a.unselectable ? !1 : Number(a.minValues) === 0 || Le.value > Number(a.minValues)), ze = A(() => H.value ? !1 : !a.multiple || Le.value < Re.value), K = M(!1), q = A(() => K.value || Ee.value), { hasIconBefore: Ve, hasIconAfter: He } = At(B, ye), Ue = kt("vv-select", be, A(() => ({
|
|
1720
1720
|
disabled: V.value,
|
|
1721
1721
|
required: xe.value,
|
|
1722
1722
|
loading: q.value,
|
|
@@ -2064,4 +2064,4 @@ var hn = ["for"], gn = { class: "vv-select__wrapper" }, _n = {
|
|
|
2064
2064
|
//#endregion
|
|
2065
2065
|
export { Fn as default };
|
|
2066
2066
|
|
|
2067
|
-
//# sourceMappingURL=VvCombobox.es-
|
|
2067
|
+
//# sourceMappingURL=VvCombobox.es-BWiXmQ_S.js.map
|