@8wave/ai-elements 0.103.0-beta.3 → 0.103.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/PkLazyImg-CyeqD59M.js +34 -0
- package/dist/_chunks/{PkLazyImg-_389yCnQ.js.map → PkLazyImg-CyeqD59M.js.map} +1 -1
- package/dist/_chunks/{PkStreamingMarkdown-YJDdYD0E.js → PkStreamingMarkdown-DIkusrTI.js} +28 -28
- package/dist/_chunks/{PkStreamingMarkdown-YJDdYD0E.js.map → PkStreamingMarkdown-DIkusrTI.js.map} +1 -1
- package/dist/_chunks/PkToolRequestGeolocation-Cgus94KF.js +69 -0
- package/dist/_chunks/{PkToolRequestGeolocation-T16QI-Uv.js.map → PkToolRequestGeolocation-Cgus94KF.js.map} +1 -1
- package/dist/_chunks/{PkToolRequestOAuthConnection-C8e5np2q.js → PkToolRequestOAuthConnection-DsUpUh97.js} +21 -21
- package/dist/_chunks/{PkToolRequestOAuthConnection-C8e5np2q.js.map → PkToolRequestOAuthConnection-DsUpUh97.js.map} +1 -1
- package/dist/_chunks/PkToolShowArtifact-griVx9w3.js +93 -0
- package/dist/_chunks/{PkToolShowArtifact-D15GjBm6.js.map → PkToolShowArtifact-griVx9w3.js.map} +1 -1
- package/dist/_chunks/{PkToolShowCalendarEvent-D_GjXl2_.js → PkToolShowCalendarEvent-DyiNmqqo.js} +43 -43
- package/dist/_chunks/{PkToolShowCalendarEvent-D_GjXl2_.js.map → PkToolShowCalendarEvent-DyiNmqqo.js.map} +1 -1
- package/dist/_chunks/PkToolShowComparison-RA72YL7R.js +66 -0
- package/dist/_chunks/{PkToolShowComparison-Bp2rP2Hx.js.map → PkToolShowComparison-RA72YL7R.js.map} +1 -1
- package/dist/_chunks/{PkToolShowContactForm-NVzIu2t0.js → PkToolShowContactForm-BzDhv2yd.js} +41 -41
- package/dist/_chunks/{PkToolShowContactForm-NVzIu2t0.js.map → PkToolShowContactForm-BzDhv2yd.js.map} +1 -1
- package/dist/_chunks/{PkToolShowDiagram-BnZrDPVC.js → PkToolShowDiagram-DhXe8IPm.js} +79 -79
- package/dist/_chunks/{PkToolShowDiagram-BnZrDPVC.js.map → PkToolShowDiagram-DhXe8IPm.js.map} +1 -1
- package/dist/_chunks/{PkToolShowEmail-DCSj4328.js → PkToolShowEmail-CBmfy_I9.js} +34 -34
- package/dist/_chunks/{PkToolShowEmail-DCSj4328.js.map → PkToolShowEmail-CBmfy_I9.js.map} +1 -1
- package/dist/_chunks/PkToolShowForm-CzIfm5de.js +365 -0
- package/dist/_chunks/{PkToolShowForm-ztQFyFd9.js.map → PkToolShowForm-CzIfm5de.js.map} +1 -1
- package/dist/_chunks/PkToolShowImageGallery-CSIiRuSC.js +74 -0
- package/dist/_chunks/{PkToolShowImageGallery-DiOR0vYa.js.map → PkToolShowImageGallery-CSIiRuSC.js.map} +1 -1
- package/dist/_chunks/{PkToolShowLocation-CQmgakEo.js → PkToolShowLocation-BHoUqpx4.js} +4079 -4079
- package/dist/_chunks/{PkToolShowLocation-CQmgakEo.js.map → PkToolShowLocation-BHoUqpx4.js.map} +1 -1
- package/dist/_chunks/PkToolShowMessage-CpDmPfCG.js +77 -0
- package/dist/_chunks/{PkToolShowMessage-BysjJ1oS.js.map → PkToolShowMessage-CpDmPfCG.js.map} +1 -1
- package/dist/_chunks/{PkToolShowProductList-D-JXSRmA.js → PkToolShowProductList-B8uuIvGo.js} +28 -28
- package/dist/_chunks/{PkToolShowProductList-D-JXSRmA.js.map → PkToolShowProductList-B8uuIvGo.js.map} +1 -1
- package/dist/_chunks/{PkToolShowQrCode-BcIwuGqm.js → PkToolShowQrCode-CD2lo3O0.js} +23 -23
- package/dist/_chunks/{PkToolShowQrCode-BcIwuGqm.js.map → PkToolShowQrCode-CD2lo3O0.js.map} +1 -1
- package/dist/_chunks/{PkToolShowSources-U7etupUP.js → PkToolShowSources-JxaTAEpc.js} +98 -98
- package/dist/_chunks/{PkToolShowSources-U7etupUP.js.map → PkToolShowSources-JxaTAEpc.js.map} +1 -1
- package/dist/_chunks/{PkToolShowSuggestedReply-Dqe4gtEY.js → PkToolShowSuggestedReply-BTxqEwEm.js} +18 -18
- package/dist/_chunks/{PkToolShowSuggestedReply-Dqe4gtEY.js.map → PkToolShowSuggestedReply-BTxqEwEm.js.map} +1 -1
- package/dist/_chunks/{PkToolShowVideo-DYMhfXKH.js → PkToolShowVideo-CVksKdPD.js} +17 -17
- package/dist/_chunks/{PkToolShowVideo-DYMhfXKH.js.map → PkToolShowVideo-CVksKdPD.js.map} +1 -1
- package/dist/_chunks/{PkToolShowWeather-D_pJe5DI.js → PkToolShowWeather-IDwTDozU.js} +68 -68
- package/dist/_chunks/{PkToolShowWeather-D_pJe5DI.js.map → PkToolShowWeather-IDwTDozU.js.map} +1 -1
- package/dist/_chunks/PkToolShowWebPages-D9Yst_2O.js +78 -0
- package/dist/_chunks/{PkToolShowWebPages-CPNgXzrS.js.map → PkToolShowWebPages-D9Yst_2O.js.map} +1 -1
- package/dist/_chunks/{PkUrl-C3gMPCjz.js → PkUrl-B3FTSURr.js} +19 -19
- package/dist/_chunks/{PkUrl-C3gMPCjz.js.map → PkUrl-B3FTSURr.js.map} +1 -1
- package/dist/_chunks/{VvCheckbox.es-CEfwI84M.js → VvCheckbox.es-C_dlDzrr.js} +78 -78
- package/dist/_chunks/{VvCheckbox.es-CEfwI84M.js.map → VvCheckbox.es-C_dlDzrr.js.map} +1 -1
- package/dist/_chunks/{VvCheckboxGroup.es-B-eWqe8G.js → VvCheckboxGroup.es-hY0kWpC2.js} +197 -197
- package/dist/_chunks/{VvCheckboxGroup.es-B-eWqe8G.js.map → VvCheckboxGroup.es-hY0kWpC2.js.map} +1 -1
- package/dist/_chunks/VvCombobox.es-DxhDF7ab.js +2044 -0
- package/dist/_chunks/{VvCombobox.es-CfRJtWOd.js.map → VvCombobox.es-DxhDF7ab.js.map} +1 -1
- package/dist/_chunks/{VvInputText.es-B0HHD6Th.js → VvInputText.es-CdpU8kvP.js} +460 -460
- package/dist/_chunks/{VvInputText.es-B0HHD6Th.js.map → VvInputText.es-CdpU8kvP.js.map} +1 -1
- package/dist/_chunks/{VvRadio.es-B3u8JJFF.js → VvRadio.es-BruZ5FHR.js} +144 -144
- package/dist/_chunks/{VvRadio.es-B3u8JJFF.js.map → VvRadio.es-BruZ5FHR.js.map} +1 -1
- package/dist/_chunks/{VvRadioGroup.es--AMV1wAw.js → VvRadioGroup.es-DSv6UdEy.js} +148 -148
- package/dist/_chunks/{VvRadioGroup.es--AMV1wAw.js.map → VvRadioGroup.es-DSv6UdEy.js.map} +1 -1
- package/dist/_chunks/{VvSelect.es-BfrDID0e.js → VvSelect.es-C244CAei.js} +155 -155
- package/dist/_chunks/{VvSelect.es-BfrDID0e.js.map → VvSelect.es-C244CAei.js.map} +1 -1
- package/dist/_chunks/VvTextarea.es-DbaPIcWl.js +1166 -0
- package/dist/_chunks/{VvTextarea.es-CAzFW944.js.map → VvTextarea.es-DbaPIcWl.js.map} +1 -1
- package/dist/_chunks/{dist-BvSGMyWS.js → dist-BgJVX4FG.js} +12 -12
- package/dist/_chunks/{dist-BvSGMyWS.js.map → dist-BgJVX4FG.js.map} +1 -1
- package/dist/_chunks/{dist-TFHdNK0W.js → dist-C5Y-NI3i.js} +230 -230
- package/dist/_chunks/{dist-TFHdNK0W.js.map → dist-C5Y-NI3i.js.map} +1 -1
- package/dist/_chunks/{esm-CUYQMpeA.js → esm-BTbGj6W3.js} +25 -25
- package/dist/_chunks/{esm-CUYQMpeA.js.map → esm-BTbGj6W3.js.map} +1 -1
- package/dist/_chunks/{floating-ui.vue-Br_zOLJv.js → floating-ui.vue-CoA4oagI.js} +16 -16
- package/dist/_chunks/{floating-ui.vue-Br_zOLJv.js.map → floating-ui.vue-CoA4oagI.js.map} +1 -1
- package/dist/_chunks/{iconify-BGSTR7vH.js → iconify-6ObncgfH.js} +36 -36
- package/dist/_chunks/{iconify-BGSTR7vH.js.map → iconify-6ObncgfH.js.map} +1 -1
- package/dist/_chunks/{index.es-B9rhQl9Z.js → index.es-BbyodRh9.js} +258 -258
- package/dist/_chunks/{index.es-B9rhQl9Z.js.map → index.es-BbyodRh9.js.map} +1 -1
- package/dist/_chunks/index.es-gbmOq0Nu.js +3124 -0
- package/dist/_chunks/index.es-gbmOq0Nu.js.map +1 -0
- package/dist/_chunks/{rolldown-runtime-CEFd7nDs.js → rolldown-runtime-CoeuCKPe.js} +4 -11
- package/dist/_chunks/{src-BjFv9Ag8.js → src-CIEdKLKO.js} +2 -2
- package/dist/_chunks/{src-BjFv9Ag8.js.map → src-CIEdKLKO.js.map} +1 -1
- package/dist/_chunks/useImageFallback-BAsLRsyg.js +19 -0
- package/dist/_chunks/{useImageFallback-8kfLDjXm.js.map → useImageFallback-BAsLRsyg.js.map} +1 -1
- package/dist/_chunks/{useLightbox-Bq6k-Wlt.js → useLightbox-Epg2fN87.js} +7 -7
- package/dist/_chunks/{useLightbox-Bq6k-Wlt.js.map → useLightbox-Epg2fN87.js.map} +1 -1
- package/dist/_chunks/useShortUrlResolver--HRa6Od3.js +72 -0
- package/dist/_chunks/{useShortUrlResolver-BTJM8XRw.js.map → useShortUrlResolver--HRa6Od3.js.map} +1 -1
- package/dist/_chunks/{vue-i18n-BJ7nxwO3.js → vue-i18n-t25g63Be.js} +81 -81
- package/dist/_chunks/{vue-i18n-BJ7nxwO3.js.map → vue-i18n-t25g63Be.js.map} +1 -1
- package/dist/_chunks/vue.runtime.esm-bundler-B3bThTaf.js +3747 -0
- package/dist/_chunks/vue.runtime.esm-bundler-B3bThTaf.js.map +1 -0
- package/dist/ai-elements.es.js +1861 -1861
- package/dist/ai-elements.es.js.map +1 -1
- package/dist-vue/PkChatbot.js +1 -1
- package/dist-vue/PkChatbotAuth.js +1 -1
- package/dist-vue/PkChatbotFeedbackForm.js +1 -1
- package/dist-vue/PkChatbotMessages.js +1 -1
- package/dist-vue/PkChatbotViewChat.js +1 -1
- package/dist-vue/_chunks/{PkChatbot-DZ6TaZHh.js → PkChatbot-Ch8FlZjC.js} +2 -2
- package/dist-vue/_chunks/{PkChatbot-DZ6TaZHh.js.map → PkChatbot-Ch8FlZjC.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotAuth-CqwTN8ih.js → PkChatbotAuth-DvnmIukc.js} +2 -2
- package/dist-vue/_chunks/{PkChatbotAuth-CqwTN8ih.js.map → PkChatbotAuth-DvnmIukc.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotFeedbackForm-nEevDHmI.js → PkChatbotFeedbackForm-D0RNa7bE.js} +2 -2
- package/dist-vue/_chunks/{PkChatbotFeedbackForm-nEevDHmI.js.map → PkChatbotFeedbackForm-D0RNa7bE.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotMessages-BgsyN-mB.js → PkChatbotMessages-DGO0WIqx.js} +4 -4
- package/dist-vue/_chunks/{PkChatbotMessages-BgsyN-mB.js.map → PkChatbotMessages-DGO0WIqx.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotViewChat-0g30_sQH.js → PkChatbotViewChat-Dkz8dq8N.js} +3 -3
- package/dist-vue/_chunks/{PkChatbotViewChat-0g30_sQH.js.map → PkChatbotViewChat-Dkz8dq8N.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowContactForm-CMK4zR2J.js → PkToolShowContactForm-CkkWxSSz.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowContactForm-CMK4zR2J.js.map → PkToolShowContactForm-CkkWxSSz.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowDiagram-DoklcF3f.js → PkToolShowDiagram-D0NBG-Gy.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowDiagram-DoklcF3f.js.map → PkToolShowDiagram-D0NBG-Gy.js.map} +1 -1
- package/dist-vue/_chunks/{index.es-BT6Jr2yi.js → index.es-BKxzs6Sh.js} +2 -2
- package/dist-vue/_chunks/{index.es-BT6Jr2yi.js.map → index.es-BKxzs6Sh.js.map} +1 -1
- package/dist-vue/index.js +10 -10
- package/package.json +2 -2
- package/dist/_chunks/PkLazyImg-_389yCnQ.js +0 -34
- package/dist/_chunks/PkToolRequestGeolocation-T16QI-Uv.js +0 -69
- package/dist/_chunks/PkToolShowArtifact-D15GjBm6.js +0 -93
- package/dist/_chunks/PkToolShowComparison-Bp2rP2Hx.js +0 -66
- package/dist/_chunks/PkToolShowForm-ztQFyFd9.js +0 -365
- package/dist/_chunks/PkToolShowImageGallery-DiOR0vYa.js +0 -74
- package/dist/_chunks/PkToolShowMessage-BysjJ1oS.js +0 -77
- package/dist/_chunks/PkToolShowWebPages-CPNgXzrS.js +0 -78
- package/dist/_chunks/VvCombobox.es-CfRJtWOd.js +0 -2044
- package/dist/_chunks/VvTextarea.es-CAzFW944.js +0 -1166
- package/dist/_chunks/index.es-DvV0VhDa.js +0 -9832
- package/dist/_chunks/index.es-DvV0VhDa.js.map +0 -1
- package/dist/_chunks/useImageFallback-8kfLDjXm.js +0 -19
- package/dist/_chunks/useShortUrlResolver-BTJM8XRw.js +0 -72
- package/dist/_chunks/vue.runtime.esm-bundler-DF2of3lp.js +0 -5007
- package/dist/_chunks/vue.runtime.esm-bundler-DF2of3lp.js.map +0 -1
package/dist/_chunks/{PkToolShowContactForm-NVzIu2t0.js.map → PkToolShowContactForm-BzDhv2yd.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PkToolShowContactForm-NVzIu2t0.js","names":[],"sources":["../../../../packages/components/src/chat/PkToolShowContactForm.vue","../../../../packages/components/src/chat/PkToolShowContactForm.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { useForm } from '@volverjs/form-vue'\n import * as z from 'zod'\n import { useSafeLocalStorage, useLocalizedString } from 'composables'\n import type { LocalizedString } from 'models'\n import PkStreamingMarkdown from './PkStreamingMarkdown.vue'\n\n const { t: $t } = useI18n({ useScope: 'global' })\n\n const props = defineProps<{\n part: unknown\n submitted?: boolean\n loading?: boolean\n error?: string\n readonly?: boolean\n privacyPolicyNotice?: LocalizedString\n }>()\n\n const toolPart = computed(() => {\n const part = props.part as {\n type: string\n toolCallId: string\n input?: {\n name: string\n email: string\n phone?: string\n conversationContext?: Record<string, unknown>\n }\n }\n return part\n })\n\n const input = computed(() => toolPart.value.input)\n\n const localSubmitted = useSafeLocalStorage<boolean>(\n computed(\n () =>\n `${toolPart.value.toolCallId}-${toolPart.value.type}-submitted`,\n ),\n false,\n )\n\n const LeadFormSchema = z.object({\n name: z.string().min(1).max(255).default(''),\n email: z.email().max(255).default(''),\n phone: z\n .string()\n .max(50)\n .regex(/^[+0-9\\s\\-.()]*$/, $t('validation.invalidPhoneNumber'))\n .optional(),\n })\n\n const emit = defineEmits<{\n submit: [data: Record<string, unknown>]\n }>()\n\n const { VvForm, VvFormField, formData } = useForm(LeadFormSchema, {\n lazyLoad: true,\n })\n\n // Pre-populate form with input values\n watch(\n input,\n (newInput) => {\n formData.value = {\n name: newInput?.name || '',\n email: newInput?.email || '',\n phone: newInput?.phone || '',\n }\n },\n { immediate: true },\n )\n\n watch(\n () => props.submitted,\n (submitted) => {\n if (submitted) {\n localSubmitted.value = true\n }\n },\n { immediate: true },\n )\n\n const isSubmitted = computed(() => {\n return props.submitted || localSubmitted.value\n })\n\n const submitLead = async (data: Record<string, unknown>): Promise<void> => {\n emit('submit', { ...data, metadata: input.value?.conversationContext })\n }\n\n const privacyNotice = useLocalizedString(\n () => props.privacyPolicyNotice,\n 'message.defaultPrivacyPolicyNotice',\n )\n</script>\n\n<template>\n <div\n class=\"border border-surface-3 rounded-xl w-full overflow-hidden bg-surface\">\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:send-plane-2-line\" class=\"text-16\" />\n <strong class=\"font-bold\">{{ $t('label.contactUs') }}</strong>\n </div>\n\n <Transition mode=\"out-in\">\n <div v-if=\"!isSubmitted\" class=\"p-sm\">\n <VvForm v-model=\"formData\" :readonly @submit=\"submitLead\">\n <VvFormField\n name=\"name\"\n type=\"text\"\n :label=\"$t('label.name')\"\n :placeholder=\"$t('placeholder.name')\"\n icon=\"ri:user-line\"\n modifiers=\"compact no-label\"\n class=\"mb-md\" />\n <VvFormField\n name=\"email\"\n type=\"email\"\n :label=\"$t('label.email')\"\n :placeholder=\"$t('placeholder.email')\"\n icon=\"ri:mail-line\"\n modifiers=\"compact no-label\"\n class=\"mb-md\" />\n <VvFormField\n name=\"phone\"\n type=\"tel\"\n :label=\"$t('label.phone')\"\n :placeholder=\"$t('placeholder.phone')\"\n icon=\"ri:phone-line\"\n class=\"mb-md\"\n modifiers=\"compact no-label\" />\n\n <div class=\"flex justify-between items-center gap-16 mt-xs\">\n <div\n class=\"text-smaller text-word-3 flex items-center gap-8\">\n <VvIcon\n name=\"ri:shield-check-line\"\n class=\"text-16 shrink-0\" />\n <PkStreamingMarkdown\n :markdown=\"privacyNotice\"\n class=\"wysiwyg\" />\n </div>\n <VvButton\n type=\"submit\"\n modifiers=\"primary\"\n :loading\n :disabled=\"loading || readonly\"\n icon-position=\"right\"\n class=\"shrink-0\"\n :label=\"$t('action.submit')\" />\n </div>\n </VvForm>\n </div>\n <div v-else class=\"p-sm\">\n <div class=\"flex items-center gap-sm\">\n <VvIcon\n name=\"ri:mail-check-line\"\n class=\"text-24 text-success\" />\n <div>\n <strong class=\"font-semibold block text-success\">\n {{ $t('message.leadSubmittedTitle') }}\n </strong>\n <p class=\"text-word-3\">\n {{ $t('message.leadSubmittedMessage') }}\n </p>\n </div>\n </div>\n </div>\n </Transition>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import { computed, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { useForm } from '@volverjs/form-vue'\n import * as z from 'zod'\n import { useSafeLocalStorage, useLocalizedString } from 'composables'\n import type { LocalizedString } from 'models'\n import PkStreamingMarkdown from './PkStreamingMarkdown.vue'\n\n const { t: $t } = useI18n({ useScope: 'global' })\n\n const props = defineProps<{\n part: unknown\n submitted?: boolean\n loading?: boolean\n error?: string\n readonly?: boolean\n privacyPolicyNotice?: LocalizedString\n }>()\n\n const toolPart = computed(() => {\n const part = props.part as {\n type: string\n toolCallId: string\n input?: {\n name: string\n email: string\n phone?: string\n conversationContext?: Record<string, unknown>\n }\n }\n return part\n })\n\n const input = computed(() => toolPart.value.input)\n\n const localSubmitted = useSafeLocalStorage<boolean>(\n computed(\n () =>\n `${toolPart.value.toolCallId}-${toolPart.value.type}-submitted`,\n ),\n false,\n )\n\n const LeadFormSchema = z.object({\n name: z.string().min(1).max(255).default(''),\n email: z.email().max(255).default(''),\n phone: z\n .string()\n .max(50)\n .regex(/^[+0-9\\s\\-.()]*$/, $t('validation.invalidPhoneNumber'))\n .optional(),\n })\n\n const emit = defineEmits<{\n submit: [data: Record<string, unknown>]\n }>()\n\n const { VvForm, VvFormField, formData } = useForm(LeadFormSchema, {\n lazyLoad: true,\n })\n\n // Pre-populate form with input values\n watch(\n input,\n (newInput) => {\n formData.value = {\n name: newInput?.name || '',\n email: newInput?.email || '',\n phone: newInput?.phone || '',\n }\n },\n { immediate: true },\n )\n\n watch(\n () => props.submitted,\n (submitted) => {\n if (submitted) {\n localSubmitted.value = true\n }\n },\n { immediate: true },\n )\n\n const isSubmitted = computed(() => {\n return props.submitted || localSubmitted.value\n })\n\n const submitLead = async (data: Record<string, unknown>): Promise<void> => {\n emit('submit', { ...data, metadata: input.value?.conversationContext })\n }\n\n const privacyNotice = useLocalizedString(\n () => props.privacyPolicyNotice,\n 'message.defaultPrivacyPolicyNotice',\n )\n</script>\n\n<template>\n <div\n class=\"border border-surface-3 rounded-xl w-full overflow-hidden bg-surface\">\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:send-plane-2-line\" class=\"text-16\" />\n <strong class=\"font-bold\">{{ $t('label.contactUs') }}</strong>\n </div>\n\n <Transition mode=\"out-in\">\n <div v-if=\"!isSubmitted\" class=\"p-sm\">\n <VvForm v-model=\"formData\" :readonly @submit=\"submitLead\">\n <VvFormField\n name=\"name\"\n type=\"text\"\n :label=\"$t('label.name')\"\n :placeholder=\"$t('placeholder.name')\"\n icon=\"ri:user-line\"\n modifiers=\"compact no-label\"\n class=\"mb-md\" />\n <VvFormField\n name=\"email\"\n type=\"email\"\n :label=\"$t('label.email')\"\n :placeholder=\"$t('placeholder.email')\"\n icon=\"ri:mail-line\"\n modifiers=\"compact no-label\"\n class=\"mb-md\" />\n <VvFormField\n name=\"phone\"\n type=\"tel\"\n :label=\"$t('label.phone')\"\n :placeholder=\"$t('placeholder.phone')\"\n icon=\"ri:phone-line\"\n class=\"mb-md\"\n modifiers=\"compact no-label\" />\n\n <div class=\"flex justify-between items-center gap-16 mt-xs\">\n <div\n class=\"text-smaller text-word-3 flex items-center gap-8\">\n <VvIcon\n name=\"ri:shield-check-line\"\n class=\"text-16 shrink-0\" />\n <PkStreamingMarkdown\n :markdown=\"privacyNotice\"\n class=\"wysiwyg\" />\n </div>\n <VvButton\n type=\"submit\"\n modifiers=\"primary\"\n :loading\n :disabled=\"loading || readonly\"\n icon-position=\"right\"\n class=\"shrink-0\"\n :label=\"$t('action.submit')\" />\n </div>\n </VvForm>\n </div>\n <div v-else class=\"p-sm\">\n <div class=\"flex items-center gap-sm\">\n <VvIcon\n name=\"ri:mail-check-line\"\n class=\"text-24 text-success\" />\n <div>\n <strong class=\"font-semibold block text-success\">\n {{ $t('message.leadSubmittedTitle') }}\n </strong>\n <p class=\"text-word-3\">\n {{ $t('message.leadSubmittedMessage') }}\n </p>\n </div>\n </div>\n </div>\n </Transition>\n </div>\n</template>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PkToolShowContactForm-BzDhv2yd.js","names":[],"sources":["../../../../packages/components/src/chat/PkToolShowContactForm.vue","../../../../packages/components/src/chat/PkToolShowContactForm.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { useForm } from '@volverjs/form-vue'\n import * as z from 'zod'\n import { useSafeLocalStorage, useLocalizedString } from 'composables'\n import type { LocalizedString } from 'models'\n import PkStreamingMarkdown from './PkStreamingMarkdown.vue'\n\n const { t: $t } = useI18n({ useScope: 'global' })\n\n const props = defineProps<{\n part: unknown\n submitted?: boolean\n loading?: boolean\n error?: string\n readonly?: boolean\n privacyPolicyNotice?: LocalizedString\n }>()\n\n const toolPart = computed(() => {\n const part = props.part as {\n type: string\n toolCallId: string\n input?: {\n name: string\n email: string\n phone?: string\n conversationContext?: Record<string, unknown>\n }\n }\n return part\n })\n\n const input = computed(() => toolPart.value.input)\n\n const localSubmitted = useSafeLocalStorage<boolean>(\n computed(\n () =>\n `${toolPart.value.toolCallId}-${toolPart.value.type}-submitted`,\n ),\n false,\n )\n\n const LeadFormSchema = z.object({\n name: z.string().min(1).max(255).default(''),\n email: z.email().max(255).default(''),\n phone: z\n .string()\n .max(50)\n .regex(/^[+0-9\\s\\-.()]*$/, $t('validation.invalidPhoneNumber'))\n .optional(),\n })\n\n const emit = defineEmits<{\n submit: [data: Record<string, unknown>]\n }>()\n\n const { VvForm, VvFormField, formData } = useForm(LeadFormSchema, {\n lazyLoad: true,\n })\n\n // Pre-populate form with input values\n watch(\n input,\n (newInput) => {\n formData.value = {\n name: newInput?.name || '',\n email: newInput?.email || '',\n phone: newInput?.phone || '',\n }\n },\n { immediate: true },\n )\n\n watch(\n () => props.submitted,\n (submitted) => {\n if (submitted) {\n localSubmitted.value = true\n }\n },\n { immediate: true },\n )\n\n const isSubmitted = computed(() => {\n return props.submitted || localSubmitted.value\n })\n\n const submitLead = async (data: Record<string, unknown>): Promise<void> => {\n emit('submit', { ...data, metadata: input.value?.conversationContext })\n }\n\n const privacyNotice = useLocalizedString(\n () => props.privacyPolicyNotice,\n 'message.defaultPrivacyPolicyNotice',\n )\n</script>\n\n<template>\n <div\n class=\"border border-surface-3 rounded-xl w-full overflow-hidden bg-surface\">\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:send-plane-2-line\" class=\"text-16\" />\n <strong class=\"font-bold\">{{ $t('label.contactUs') }}</strong>\n </div>\n\n <Transition mode=\"out-in\">\n <div v-if=\"!isSubmitted\" class=\"p-sm\">\n <VvForm v-model=\"formData\" :readonly @submit=\"submitLead\">\n <VvFormField\n name=\"name\"\n type=\"text\"\n :label=\"$t('label.name')\"\n :placeholder=\"$t('placeholder.name')\"\n icon=\"ri:user-line\"\n modifiers=\"compact no-label\"\n class=\"mb-md\" />\n <VvFormField\n name=\"email\"\n type=\"email\"\n :label=\"$t('label.email')\"\n :placeholder=\"$t('placeholder.email')\"\n icon=\"ri:mail-line\"\n modifiers=\"compact no-label\"\n class=\"mb-md\" />\n <VvFormField\n name=\"phone\"\n type=\"tel\"\n :label=\"$t('label.phone')\"\n :placeholder=\"$t('placeholder.phone')\"\n icon=\"ri:phone-line\"\n class=\"mb-md\"\n modifiers=\"compact no-label\" />\n\n <div class=\"flex justify-between items-center gap-16 mt-xs\">\n <div\n class=\"text-smaller text-word-3 flex items-center gap-8\">\n <VvIcon\n name=\"ri:shield-check-line\"\n class=\"text-16 shrink-0\" />\n <PkStreamingMarkdown\n :markdown=\"privacyNotice\"\n class=\"wysiwyg\" />\n </div>\n <VvButton\n type=\"submit\"\n modifiers=\"primary\"\n :loading\n :disabled=\"loading || readonly\"\n icon-position=\"right\"\n class=\"shrink-0\"\n :label=\"$t('action.submit')\" />\n </div>\n </VvForm>\n </div>\n <div v-else class=\"p-sm\">\n <div class=\"flex items-center gap-sm\">\n <VvIcon\n name=\"ri:mail-check-line\"\n class=\"text-24 text-success\" />\n <div>\n <strong class=\"font-semibold block text-success\">\n {{ $t('message.leadSubmittedTitle') }}\n </strong>\n <p class=\"text-word-3\">\n {{ $t('message.leadSubmittedMessage') }}\n </p>\n </div>\n </div>\n </div>\n </Transition>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import { computed, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { useForm } from '@volverjs/form-vue'\n import * as z from 'zod'\n import { useSafeLocalStorage, useLocalizedString } from 'composables'\n import type { LocalizedString } from 'models'\n import PkStreamingMarkdown from './PkStreamingMarkdown.vue'\n\n const { t: $t } = useI18n({ useScope: 'global' })\n\n const props = defineProps<{\n part: unknown\n submitted?: boolean\n loading?: boolean\n error?: string\n readonly?: boolean\n privacyPolicyNotice?: LocalizedString\n }>()\n\n const toolPart = computed(() => {\n const part = props.part as {\n type: string\n toolCallId: string\n input?: {\n name: string\n email: string\n phone?: string\n conversationContext?: Record<string, unknown>\n }\n }\n return part\n })\n\n const input = computed(() => toolPart.value.input)\n\n const localSubmitted = useSafeLocalStorage<boolean>(\n computed(\n () =>\n `${toolPart.value.toolCallId}-${toolPart.value.type}-submitted`,\n ),\n false,\n )\n\n const LeadFormSchema = z.object({\n name: z.string().min(1).max(255).default(''),\n email: z.email().max(255).default(''),\n phone: z\n .string()\n .max(50)\n .regex(/^[+0-9\\s\\-.()]*$/, $t('validation.invalidPhoneNumber'))\n .optional(),\n })\n\n const emit = defineEmits<{\n submit: [data: Record<string, unknown>]\n }>()\n\n const { VvForm, VvFormField, formData } = useForm(LeadFormSchema, {\n lazyLoad: true,\n })\n\n // Pre-populate form with input values\n watch(\n input,\n (newInput) => {\n formData.value = {\n name: newInput?.name || '',\n email: newInput?.email || '',\n phone: newInput?.phone || '',\n }\n },\n { immediate: true },\n )\n\n watch(\n () => props.submitted,\n (submitted) => {\n if (submitted) {\n localSubmitted.value = true\n }\n },\n { immediate: true },\n )\n\n const isSubmitted = computed(() => {\n return props.submitted || localSubmitted.value\n })\n\n const submitLead = async (data: Record<string, unknown>): Promise<void> => {\n emit('submit', { ...data, metadata: input.value?.conversationContext })\n }\n\n const privacyNotice = useLocalizedString(\n () => props.privacyPolicyNotice,\n 'message.defaultPrivacyPolicyNotice',\n )\n</script>\n\n<template>\n <div\n class=\"border border-surface-3 rounded-xl w-full overflow-hidden bg-surface\">\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:send-plane-2-line\" class=\"text-16\" />\n <strong class=\"font-bold\">{{ $t('label.contactUs') }}</strong>\n </div>\n\n <Transition mode=\"out-in\">\n <div v-if=\"!isSubmitted\" class=\"p-sm\">\n <VvForm v-model=\"formData\" :readonly @submit=\"submitLead\">\n <VvFormField\n name=\"name\"\n type=\"text\"\n :label=\"$t('label.name')\"\n :placeholder=\"$t('placeholder.name')\"\n icon=\"ri:user-line\"\n modifiers=\"compact no-label\"\n class=\"mb-md\" />\n <VvFormField\n name=\"email\"\n type=\"email\"\n :label=\"$t('label.email')\"\n :placeholder=\"$t('placeholder.email')\"\n icon=\"ri:mail-line\"\n modifiers=\"compact no-label\"\n class=\"mb-md\" />\n <VvFormField\n name=\"phone\"\n type=\"tel\"\n :label=\"$t('label.phone')\"\n :placeholder=\"$t('placeholder.phone')\"\n icon=\"ri:phone-line\"\n class=\"mb-md\"\n modifiers=\"compact no-label\" />\n\n <div class=\"flex justify-between items-center gap-16 mt-xs\">\n <div\n class=\"text-smaller text-word-3 flex items-center gap-8\">\n <VvIcon\n name=\"ri:shield-check-line\"\n class=\"text-16 shrink-0\" />\n <PkStreamingMarkdown\n :markdown=\"privacyNotice\"\n class=\"wysiwyg\" />\n </div>\n <VvButton\n type=\"submit\"\n modifiers=\"primary\"\n :loading\n :disabled=\"loading || readonly\"\n icon-position=\"right\"\n class=\"shrink-0\"\n :label=\"$t('action.submit')\" />\n </div>\n </VvForm>\n </div>\n <div v-else class=\"p-sm\">\n <div class=\"flex items-center gap-sm\">\n <VvIcon\n name=\"ri:mail-check-line\"\n class=\"text-24 text-success\" />\n <div>\n <strong class=\"font-semibold block text-success\">\n {{ $t('message.leadSubmittedTitle') }}\n </strong>\n <p class=\"text-word-3\">\n {{ $t('message.leadSubmittedMessage') }}\n </p>\n </div>\n </div>\n </div>\n </Transition>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EASI,IAAM,EAAE,GAAG,MAAO,EAAQ,EAAE,UAAU,SAAS,CAAC,GAE1C,IAAQ,GASR,IAAW,QACA,EAAM,IAWtB,GAEK,IAAQ,QAAe,EAAS,MAAM,KAAK,GAE3C,IAAiB,EACnB,QAEQ,GAAG,EAAS,MAAM,WAAW,GAAG,EAAS,MAAM,KAAK,WAC5D,GACA,EACJ,GAEM,IAAiB,EAAS;GAC5B,MAAM,EAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE;GAC3C,OAAO,EAAQ,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE;GACpC,OAAO,EACK,CAAA,CACP,IAAI,EAAE,CAAA,CACN,MAAM,oBAAoB,EAAG,+BAA+B,CAAC,CAAA,CAC7D,SAAS;EAClB,CAAC,GAEK,IAAO,GAIP,EAAE,WAAQ,gBAAa,gBAAa,EAAQ,GAAgB,EAC9D,UAAU,GACd,CAAC;EAeD,AAZA,EACI,IACC,MAAa;GACV,EAAS,QAAQ;IACb,MAAM,GAAU,QAAQ;IACxB,OAAO,GAAU,SAAS;IAC1B,OAAO,GAAU,SAAS;GAC9B;EACJ,GACA,EAAE,WAAW,GAAK,CACtB,GAEA,QACU,EAAM,YACX,MAAc;GACX,AAAI,MACA,EAAe,QAAQ;EAE/B,GACA,EAAE,WAAW,GAAK,CACtB;EAEA,IAAM,IAAc,QACT,EAAM,aAAa,EAAe,KAC5C,GAEK,IAAa,OAAO,MAAiD;GACvE,EAAK,UAAU;IAAE,GAAG;IAAM,UAAU,EAAM,OAAO;GAAoB,CAAC;EAC1E,GAEM,IAAgB,QACZ,EAAM,qBACZ,oCACJ;;;GAIA,OAAA,EAAA,GAAA,EAyEM,OAzEN,GAyEM,CAvEF,EAIM,OAJN,GAIM,CAFF,EAAsD,GAAA;IAA9C,MAAK;IAAuB,OAAM;GAC1C,CAAA,GAAA,EAA8D,UAA9D,GAA8D,EAAjC,EAAA,CAAA,CAAE,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAGnC,EAgEa,GAAA,EAhED,MAAK,SAAQ,GAAA;IACrB,SAAA,QA+CM,CA/CM,EAAA,SAgDZ,EAAA,GAAA,EAcM,OAdN,GAcM,CAbF,EAYM,OAZN,GAYM,CAXF,EAEmC,GAAA;KAD/B,MAAK;KACL,OAAM;IACV,CAAA,GAAA,EAOM,OAAA,MAAA,CANF,EAES,UAFT,GAES,EADF,EAAA,CAAA,CAAE,CAAA,4BAAA,CAAA,GAAA,CAAA,GAET,EAEI,KAFJ,GAEI,EADG,EAAA,CAAA,CAAE,CAAA,8BAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MA1DrB,EAAA,GAAA,EA+CM,OA/CN,GA+CM,CA9CF,EA6CS,EAAA,CAAA,GAAA;KA7CQ,YAAA,EAAA,CAAA;KAAA,uBAAA,AAAA,EAAA,QAAA,MAAA,EAAA,CAAA,IAAA,EAAQ,QAAA,IAAA;KAAG,UAAA,EAAA;KAAU,UAAQ;;KAC1C,SAAA,QAOoB;MAPpB,EAOoB,EAAA,CAAA,GAAA;OANhB,MAAK;OACL,MAAK;OACJ,OAAO,EAAA,CAAA,CAAE,CAAA,YAAA;OACT,aAAa,EAAA,CAAA,CAAE,CAAA,kBAAA;OAChB,MAAK;OACL,WAAU;OACV,OAAM;;MACV,EAOoB,EAAA,CAAA,GAAA;OANhB,MAAK;OACL,MAAK;OACJ,OAAO,EAAA,CAAA,CAAE,CAAA,aAAA;OACT,aAAa,EAAA,CAAA,CAAE,CAAA,mBAAA;OAChB,MAAK;OACL,WAAU;OACV,OAAM;;MACV,EAOmC,EAAA,CAAA,GAAA;OAN/B,MAAK;OACL,MAAK;OACJ,OAAO,EAAA,CAAA,CAAE,CAAA,aAAA;OACT,aAAa,EAAA,CAAA,CAAE,CAAA,mBAAA;OAChB,MAAK;OACL,OAAM;OACN,WAAU;;MAEd,EAkBM,OAlBN,GAkBM,CAjBF,EAQM,OARN,GAQM,CANF,EAE+B,GAAA;OAD3B,MAAK;OACL,OAAM;MACV,CAAA,GAAA,EAEsB,GAAA;OADjB,UAAU,EAAA,CAAA;OACX,OAAM;MAEd,GAAA,MAAA,GAAA,CAAA,UAAA,CAAA,CAAA,CAAA,GAAA,EAOmC,GAAA;OAN/B,MAAK;OACL,WAAU;OACT,SAAA,EAAA;OACA,UAAU,EAAA,WAAW,EAAA;OACtB,iBAAc;OACd,OAAM;OACL,OAAO,EAAA,CAAA,CAAE,CAAA,eAAA;;;;;;;;IAI1B,GAAA,GAAA,CAAA,cAAA,UAAA,CAAA,CAAA,CAAA,EAUqB,CAAA"}
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { r as x } from "./vue-i18n-
|
|
3
|
-
import "./src-
|
|
1
|
+
import { $ as e, C as t, F as n, L as r, O as i, St as a, Tt as o, X as s, _ as c, bt as l, g as u, h as d, it as f, m as p, pt as m, r as h, t as g, v as _, wt as v, x as y, xt as b } from "./vue.runtime.esm-bundler-B3bThTaf.js";
|
|
2
|
+
import { r as x } from "./vue-i18n-t25g63Be.js";
|
|
3
|
+
import "./src-CIEdKLKO.js";
|
|
4
4
|
import { n as S } from "./text-DbSEK8si.js";
|
|
5
|
-
import { i as C } from "./dist-
|
|
6
|
-
import {
|
|
5
|
+
import { i as C } from "./dist-C5Y-NI3i.js";
|
|
6
|
+
import { i as w, o as T, p as E } from "./index.es-gbmOq0Nu.js";
|
|
7
7
|
import { t as D } from "./_plugin-vue_export-helper-B3ysoDQm.js";
|
|
8
|
-
import { n as O } from "./useLightbox-
|
|
9
|
-
|
|
8
|
+
import { n as O } from "./useLightbox-Epg2fN87.js";
|
|
9
|
+
i(), b(), f(), h();
|
|
10
10
|
var k = [
|
|
11
11
|
"href",
|
|
12
12
|
"data-pswp-src",
|
|
13
13
|
"data-pswp-width",
|
|
14
14
|
"data-pswp-height",
|
|
15
15
|
"title"
|
|
16
|
-
], A = { class: "pk-svg-viewer__toolbar" }, j = /*#__PURE__*/ D(/* @__PURE__ */
|
|
16
|
+
], A = { class: "pk-svg-viewer__toolbar" }, j = /*#__PURE__*/ D(/* @__PURE__ */ t({
|
|
17
17
|
__name: "PkSvgViewer",
|
|
18
18
|
props: {
|
|
19
19
|
svg: { type: String },
|
|
20
20
|
title: { type: String }
|
|
21
21
|
},
|
|
22
|
-
setup(
|
|
23
|
-
let
|
|
22
|
+
setup(t) {
|
|
23
|
+
let i = t, { t: o } = x(), f = m(null), h = m(), b = m(1), S = m(0), C = m(0), E = m(0), D = m(0), j = m(""), M = m(0), N = m(0), { lightbox: P, init: F } = O({
|
|
24
24
|
gallery: h,
|
|
25
25
|
downloadable: !0,
|
|
26
26
|
openInNewTab: !1
|
|
27
|
-
}), I =
|
|
28
|
-
|
|
27
|
+
}), I = p(() => ({ transform: `translate(${S.value}px, ${C.value}px) scale(${b.value})` })), L = () => {
|
|
28
|
+
b.value = Math.min(b.value * 1.2, 10);
|
|
29
29
|
}, R = () => {
|
|
30
|
-
|
|
30
|
+
b.value = Math.max(b.value / 1.2, .1);
|
|
31
31
|
}, z = () => {
|
|
32
|
-
|
|
32
|
+
b.value = 1, S.value = 0, C.value = 0;
|
|
33
33
|
}, B = () => {
|
|
34
34
|
j.value && P.value?.loadAndOpen(0);
|
|
35
|
-
}, V =
|
|
35
|
+
}, V = m(!1), H = (e) => {
|
|
36
36
|
e.preventDefault(), V.value = !0, E.value = e.clientX - S.value, D.value = e.clientY - C.value;
|
|
37
37
|
}, U = (e) => {
|
|
38
38
|
V.value && (S.value = e.clientX - E.value, C.value = e.clientY - D.value);
|
|
@@ -40,82 +40,82 @@ var k = [
|
|
|
40
40
|
V.value = !1;
|
|
41
41
|
};
|
|
42
42
|
function G() {
|
|
43
|
-
let e =
|
|
43
|
+
let e = f.value?.querySelector("svg");
|
|
44
44
|
return e ? new XMLSerializer().serializeToString(e) : null;
|
|
45
45
|
}
|
|
46
46
|
function K() {
|
|
47
|
-
let e =
|
|
47
|
+
let e = f.value?.querySelector("svg"), t = G();
|
|
48
48
|
if (!e || !t) return;
|
|
49
49
|
let n = e.viewBox?.baseVal;
|
|
50
50
|
M.value = n?.width || e.getBoundingClientRect().width || 1200, N.value = n?.height || e.getBoundingClientRect().height || 800, j.value = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(t)}`;
|
|
51
51
|
}
|
|
52
|
-
return
|
|
53
|
-
|
|
54
|
-
}),
|
|
55
|
-
|
|
56
|
-
}), (
|
|
57
|
-
let
|
|
58
|
-
return
|
|
59
|
-
|
|
52
|
+
return s(() => i.svg, () => {
|
|
53
|
+
i.svg && f.value && (f.value.innerHTML = i.svg, K());
|
|
54
|
+
}), n(async () => {
|
|
55
|
+
i.svg && f.value && (f.value.innerHTML = i.svg, K()), await F();
|
|
56
|
+
}), (n, i) => {
|
|
57
|
+
let s = T, p = w;
|
|
58
|
+
return r(), _("div", { class: a(["pk-svg-viewer", { "pk-svg-viewer--dragging": V.value }]) }, [
|
|
59
|
+
d("div", {
|
|
60
60
|
ref_key: "galleryRef",
|
|
61
61
|
ref: h,
|
|
62
62
|
class: "hidden"
|
|
63
|
-
}, [j.value ? (
|
|
63
|
+
}, [j.value ? (r(), _("a", {
|
|
64
64
|
key: 0,
|
|
65
65
|
href: j.value,
|
|
66
66
|
"data-pswp-src": j.value,
|
|
67
67
|
"data-pswp-width": M.value,
|
|
68
68
|
"data-pswp-height": N.value,
|
|
69
|
-
title:
|
|
70
|
-
}, null, 8, k)) :
|
|
71
|
-
|
|
69
|
+
title: t.title
|
|
70
|
+
}, null, 8, k)) : c("", !0)], 512),
|
|
71
|
+
d("div", {
|
|
72
72
|
class: "pk-svg-viewer__stage",
|
|
73
73
|
onMousedown: H,
|
|
74
74
|
onMousemove: U,
|
|
75
75
|
onMouseup: W,
|
|
76
76
|
onMouseleave: W
|
|
77
|
-
}, [
|
|
77
|
+
}, [d("div", {
|
|
78
78
|
ref_key: "svgRef",
|
|
79
|
-
ref:
|
|
80
|
-
style:
|
|
79
|
+
ref: f,
|
|
80
|
+
style: v(I.value),
|
|
81
81
|
class: "pk-svg-viewer__content"
|
|
82
82
|
}, null, 4)], 32),
|
|
83
|
-
|
|
83
|
+
d("div", A, [y(p, {
|
|
84
84
|
modifiers: "compact",
|
|
85
85
|
class: "bg-surface-1 shadow-md overflow-hidden"
|
|
86
86
|
}, {
|
|
87
|
-
default:
|
|
88
|
-
|
|
89
|
-
default:
|
|
87
|
+
default: e(() => [
|
|
88
|
+
y(g, { name: "fade" }, {
|
|
89
|
+
default: e(() => [y(s, {
|
|
90
90
|
key: "reset",
|
|
91
91
|
modifiers: "action-small",
|
|
92
|
-
disabled:
|
|
92
|
+
disabled: b.value === 1 && S.value === 0 && C.value === 0,
|
|
93
93
|
icon: "ri:aspect-ratio-line",
|
|
94
|
-
title:
|
|
94
|
+
title: l(o)("action.reset"),
|
|
95
95
|
onClick: z
|
|
96
96
|
}, null, 8, ["disabled", "title"])]),
|
|
97
97
|
_: 1
|
|
98
98
|
}),
|
|
99
|
-
j.value ? (
|
|
99
|
+
j.value ? (r(), u(s, {
|
|
100
100
|
key: 0,
|
|
101
101
|
modifiers: "action-small",
|
|
102
102
|
icon: "ri:zoom-out-line",
|
|
103
|
-
title:
|
|
103
|
+
title: l(o)("action.zoomOut"),
|
|
104
104
|
onClick: R
|
|
105
|
-
}, null, 8, ["title"])) :
|
|
106
|
-
|
|
105
|
+
}, null, 8, ["title"])) : c("", !0),
|
|
106
|
+
y(s, {
|
|
107
107
|
modifiers: "action-small",
|
|
108
108
|
icon: "ri:zoom-in-line",
|
|
109
|
-
title:
|
|
109
|
+
title: l(o)("action.zoomIn"),
|
|
110
110
|
onClick: L
|
|
111
111
|
}, null, 8, ["title"]),
|
|
112
|
-
j.value ? (
|
|
112
|
+
j.value ? (r(), u(s, {
|
|
113
113
|
key: 1,
|
|
114
114
|
modifiers: "action-small",
|
|
115
115
|
icon: "ri:fullscreen-line",
|
|
116
|
-
title:
|
|
116
|
+
title: l(o)("action.expand"),
|
|
117
117
|
onClick: B
|
|
118
|
-
}, null, 8, ["title"])) :
|
|
118
|
+
}, null, 8, ["title"])) : c("", !0)
|
|
119
119
|
]),
|
|
120
120
|
_: 1
|
|
121
121
|
})])
|
|
@@ -123,7 +123,7 @@ var k = [
|
|
|
123
123
|
};
|
|
124
124
|
}
|
|
125
125
|
}), [["styles", [".pk-svg-viewer{background-color:var(--color-surface-2);justify-content:center;align-items:center;width:100%;height:auto;display:flex;position:relative;overflow:hidden}.pk-svg-viewer__content{cursor:grab;transform-origin:50%;justify-content:center;align-items:center;transition:transform .3s ease-out;display:flex}.pk-svg-viewer__content svg{width:auto;max-width:100%;height:auto;max-height:100%}.pk-svg-viewer__toolbar{top:var(--spacing-8);right:var(--spacing-8);z-index:var(--z-dropdown);opacity:0;transition:var(--transition-opacity);position:absolute}.pk-svg-viewer__stage{-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;width:100%;height:auto;display:flex}.pk-svg-viewer:hover .pk-svg-viewer__toolbar{opacity:1}.pk-svg-viewer--dragging .pk-svg-viewer__toolbar{pointer-events:none;opacity:.5!important}.pk-svg-viewer--dragging .pk-svg-viewer__toolbar *{pointer-events:none}.pk-svg-viewer--dragging .pk-svg-viewer__content{cursor:grabbing!important}"]]]);
|
|
126
|
-
|
|
126
|
+
i(), f(), b();
|
|
127
127
|
var M = {
|
|
128
128
|
key: 0,
|
|
129
129
|
class: "border border-surface-3 rounded-xl w-full overflow-hidden"
|
|
@@ -138,15 +138,15 @@ var M = {
|
|
|
138
138
|
class: "px-sm py-6 bg-surface-1 min-h-40 text-12 border-t border-surface-3 text-word-3"
|
|
139
139
|
}, z = /* @__PURE__ */ function(e) {
|
|
140
140
|
return e.Sequence = "sequenceDiagram", e.Class = "classDiagram", e.State = "stateDiagram", e.ER = "erDiagram", e.XYChart = "xychart", e.Flowchart = "flowchart", e.Graph = "graph", e;
|
|
141
|
-
}(z || {}), B = /*#__PURE__*/ D(/* @__PURE__ */
|
|
141
|
+
}(z || {}), B = /*#__PURE__*/ D(/* @__PURE__ */ t({
|
|
142
142
|
__name: "PkToolShowDiagram",
|
|
143
143
|
props: {
|
|
144
144
|
part: { type: null },
|
|
145
145
|
isDark: { type: Boolean }
|
|
146
146
|
},
|
|
147
|
-
setup(
|
|
148
|
-
let i =
|
|
149
|
-
let e =
|
|
147
|
+
setup(t) {
|
|
148
|
+
let i = t, { t: a, te: f } = x({ useScope: "global" }), { copy: h, copied: g } = C(), v = p(() => i.part), b = m(!1), D = m(""), O = p(() => {
|
|
149
|
+
let e = v.value.input?.code?.trimStart();
|
|
150
150
|
if (e) switch (e.match(/^[A-Za-z-]+/)?.[0]) {
|
|
151
151
|
case "sequenceDiagram": return z.Sequence;
|
|
152
152
|
case "classDiagram": return z.Class;
|
|
@@ -157,7 +157,7 @@ var M = {
|
|
|
157
157
|
case "graph": return z.Graph;
|
|
158
158
|
default: return;
|
|
159
159
|
}
|
|
160
|
-
}), k =
|
|
160
|
+
}), k = p(() => O.value ? f(`diagram.${O.value}`) ? a(`diagram.${O.value}`) : O.value : ""), A = p(() => {
|
|
161
161
|
switch (O.value) {
|
|
162
162
|
case z.Sequence: return "ri:timeline-view";
|
|
163
163
|
case z.Class: return "ri:organization-chart";
|
|
@@ -170,71 +170,71 @@ var M = {
|
|
|
170
170
|
}
|
|
171
171
|
});
|
|
172
172
|
async function B() {
|
|
173
|
-
let e =
|
|
173
|
+
let e = v.value.input?.code;
|
|
174
174
|
if (e) {
|
|
175
|
-
|
|
175
|
+
b.value = !1;
|
|
176
176
|
try {
|
|
177
|
-
let { renderMermaidSVG: t, THEMES: n } = await import("./dist-
|
|
177
|
+
let { renderMermaidSVG: t, THEMES: n } = await import("./dist-BgJVX4FG.js"), r = i.isDark ? n["github-dark"] : n["github-light"];
|
|
178
178
|
D.value = t(e, r);
|
|
179
179
|
} catch {
|
|
180
|
-
|
|
180
|
+
b.value = !0;
|
|
181
181
|
}
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
|
-
|
|
184
|
+
s([() => v.value.input?.code, () => i.isDark], B), n(async () => {
|
|
185
185
|
await B();
|
|
186
186
|
});
|
|
187
187
|
let V = () => {
|
|
188
188
|
if (!D.value) return;
|
|
189
189
|
let e = new Blob([D.value], { type: "image/svg+xml;charset=utf-8" }), t = URL.createObjectURL(e), n = document.createElement("a");
|
|
190
|
-
n.href = t, n.download = `${S(
|
|
190
|
+
n.href = t, n.download = `${S(v.value.input?.title || "diagram")}.svg`, document.body.appendChild(n), n.click(), document.body.removeChild(n), URL.revokeObjectURL(t);
|
|
191
191
|
}, H = () => {
|
|
192
|
-
let e =
|
|
193
|
-
e &&
|
|
192
|
+
let e = v.value.input?.code;
|
|
193
|
+
e && h(e);
|
|
194
194
|
};
|
|
195
|
-
return (
|
|
196
|
-
let i = E,
|
|
197
|
-
return
|
|
198
|
-
|
|
199
|
-
|
|
195
|
+
return (t, n) => {
|
|
196
|
+
let i = E, s = T, f = w;
|
|
197
|
+
return v.value?.input?.code ? (r(), _("div", M, [
|
|
198
|
+
d("div", N, [
|
|
199
|
+
y(i, {
|
|
200
200
|
name: A.value,
|
|
201
201
|
class: "text-16"
|
|
202
202
|
}, null, 8, ["name"]),
|
|
203
|
-
|
|
204
|
-
|
|
203
|
+
d("div", P, [d("strong", F, o(k.value ?? l(a)("label.diagram")), 1)]),
|
|
204
|
+
y(f, {
|
|
205
205
|
modifiers: "compact",
|
|
206
206
|
class: "ml-auto shrink-0"
|
|
207
207
|
}, {
|
|
208
|
-
default:
|
|
208
|
+
default: e(() => [y(s, {
|
|
209
209
|
modifiers: "action-quiet-small",
|
|
210
|
-
icon:
|
|
211
|
-
label:
|
|
210
|
+
icon: l(g) ? "ri:check-line" : "ri:file-copy-line",
|
|
211
|
+
label: l(g) ? l(a)("action.copied") : l(a)("action.copy"),
|
|
212
212
|
onClick: H
|
|
213
|
-
}, null, 8, ["icon", "label"]), D.value ? (
|
|
213
|
+
}, null, 8, ["icon", "label"]), D.value ? (r(), u(s, {
|
|
214
214
|
key: 0,
|
|
215
215
|
modifiers: "action-quiet-small",
|
|
216
216
|
icon: "ri:download-line",
|
|
217
|
-
label:
|
|
217
|
+
label: l(a)("action.download"),
|
|
218
218
|
onClick: V
|
|
219
|
-
}, null, 8, ["label"])) :
|
|
219
|
+
}, null, 8, ["label"])) : c("", !0)]),
|
|
220
220
|
_: 1
|
|
221
221
|
})
|
|
222
222
|
]),
|
|
223
|
-
|
|
223
|
+
b.value ? (r(), _("div", I, o(l(a)("message.diagramRenderError")), 1)) : D.value ? (r(), u(j, {
|
|
224
224
|
key: 1,
|
|
225
225
|
class: "pk-tool-show-diagram__stage",
|
|
226
226
|
svg: D.value,
|
|
227
|
-
title:
|
|
228
|
-
}, null, 8, ["svg", "title"])) : (
|
|
227
|
+
title: v.value.input?.title
|
|
228
|
+
}, null, 8, ["svg", "title"])) : (r(), _("div", L, [y(i, {
|
|
229
229
|
name: "line-md:loading-loop",
|
|
230
230
|
class: "w-24 h-24 text-word-5"
|
|
231
231
|
})])),
|
|
232
|
-
|
|
233
|
-
])) :
|
|
232
|
+
v.value.input.caption ? (r(), _("div", R, o(v.value.input.caption), 1)) : c("", !0)
|
|
233
|
+
])) : c("", !0);
|
|
234
234
|
};
|
|
235
235
|
}
|
|
236
236
|
}), [["styles", [".pk-tool-show-diagram__stage{height:384px}.pk-tool-show-diagram__stage .pk-svg-viewer__stage,.pk-tool-show-diagram__stage .pk-svg-viewer__content{height:100%}"]]]);
|
|
237
237
|
//#endregion
|
|
238
238
|
export { B as default };
|
|
239
239
|
|
|
240
|
-
//# sourceMappingURL=PkToolShowDiagram-
|
|
240
|
+
//# sourceMappingURL=PkToolShowDiagram-DhXe8IPm.js.map
|