@oneclick.dev/cms-core-modules 0.0.109 → 0.0.110
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/Acquisition-DNCy8nQz.mjs +400 -0
- package/dist/Acquisition-Dt2rREU8.js +1 -0
- package/dist/AgendaOpeningHoursCard-B7ROIPWw.js +1 -0
- package/dist/AgendaOpeningHoursCard-Cp4wxUeK.mjs +172 -0
- package/dist/AppointmentDetailsCard-33WpATpV.mjs +161 -0
- package/dist/AppointmentDetailsCard-DpLM5IrB.js +1 -0
- package/dist/AppointmentEditor-BeOtYV6u.mjs +196 -0
- package/dist/AppointmentEditor-CaTfbkIf.js +1 -0
- package/dist/AppointmentListTable-DZJNmTMb.mjs +177 -0
- package/dist/AppointmentListTable-Dieu9US_.js +1 -0
- package/dist/Audience-Bs7b0TNm.js +1 -0
- package/dist/Audience-CUeMVYRy.mjs +489 -0
- package/dist/Components-C83O-xlF.mjs +623 -0
- package/dist/Components-DXbx0RLV.js +1 -0
- package/dist/Content-BHr_rPVY.js +1 -0
- package/dist/Content-CYOZKvWK.mjs +358 -0
- package/dist/ContentEditor-BprPiHMJ.js +462 -0
- package/dist/ContentEditor-D9-1SJ5F.mjs +30700 -0
- package/dist/CountryBreakdownCard-D7BK3nRD.js +1 -0
- package/dist/CountryBreakdownCard-DVxNz2DJ.mjs +196 -0
- package/dist/Create-89z41K73.js +1 -0
- package/dist/Create-BCklc_T1.mjs +1251 -0
- package/dist/DateFormatter-CYAD4GBN.js +1 -0
- package/dist/DateFormatter-DUxlo8X8.mjs +734 -0
- package/dist/Detail-BCOcP2ql.mjs +585 -0
- package/dist/Detail-Btzwo0Y3.mjs +3477 -0
- package/dist/Detail-Byk781b4.mjs +26 -0
- package/dist/Detail-C857g62L.js +1 -0
- package/dist/Detail-C8wQiDcv.js +1 -0
- package/dist/Detail-CNlljBfH.mjs +379 -0
- package/dist/Detail-CPqug27l.js +1 -0
- package/dist/Detail-CjuhjPby.js +1 -0
- package/dist/Detail-DnX7tsqN.mjs +649 -0
- package/dist/Detail-mvSGbnFU.js +1 -0
- package/dist/DeviceBreakdownCard-DRhQ9ufG.js +1 -0
- package/dist/DeviceBreakdownCard-W1frLe0L.mjs +159 -0
- package/dist/EditLayout.vue_vue_type_script_setup_true_lang-DWMqQvHl.mjs +76 -0
- package/dist/EditLayout.vue_vue_type_script_setup_true_lang-kpjbVSXg.js +1 -0
- package/dist/Entries-BdhUyJR5.mjs +728 -0
- package/dist/Entries-CEXM_SkO.js +1 -0
- package/dist/Find-D4Qa45qC.js +1 -0
- package/dist/Find-DIISO5GO.mjs +229 -0
- package/dist/GlobalStyling-C9VthHWK.mjs +1588 -0
- package/dist/GlobalStyling-CnSlXkZc.js +25 -0
- package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-Ceoje52V.js +1 -0
- package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-Dh9jzvE0.mjs +1255 -0
- package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-COrK1j0S.js +1 -0
- package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-Vb3q8EVv.mjs +330 -0
- package/dist/Overview-BCpJNiEB.mjs +190 -0
- package/dist/Overview-BDlBCUI_.js +1 -0
- package/dist/Overview-BKAti8nc.mjs +567 -0
- package/dist/Overview-BbvfH1u-.js +1 -0
- package/dist/Overview-Bn1Xx3_j.js +1 -0
- package/dist/Overview-C-Jb_BxY.mjs +860 -0
- package/dist/Overview-CIa1E-HH.mjs +178 -0
- package/dist/Overview-DAxCu9XC.js +1 -0
- package/dist/Overview-DC9io1bk.js +1 -0
- package/dist/Overview-Di84CsR5.mjs +476 -0
- package/dist/Overview-Su8ZUbMs.mjs +26 -0
- package/dist/Overview-T-lsy3UZ.js +1 -0
- package/dist/Overview-UoZHUMUz.js +1 -0
- package/dist/Overview-lWAyyenp.mjs +632 -0
- package/dist/PeakHoursCard-9-EZFZLR.mjs +182 -0
- package/dist/PeakHoursCard-BR5zmta4.js +1 -0
- package/dist/ProductDetailsCard-6nHikw4V.mjs +121 -0
- package/dist/ProductDetailsCard-Bn7qrgmc.js +1 -0
- package/dist/RealtimeCard--APfRNc8.js +1 -0
- package/dist/RealtimeCard-fvQlJcM7.mjs +126 -0
- package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-CuwREvXD.js +349 -0
- package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-GYNZ_yhD.mjs +3077 -0
- package/dist/SearchTermsCard-BsB-63aH.js +1 -0
- package/dist/SearchTermsCard-BzVrHKqQ.mjs +201 -0
- package/dist/SendPush-COns44j7.js +1 -0
- package/dist/SendPush-CPIOjVX4.mjs +184 -0
- package/dist/SeoHealth-MC3lSCOY.mjs +615 -0
- package/dist/SeoHealth-az1YuNF2.js +1 -0
- package/dist/TableView-DQW0A1oG.js +4 -0
- package/dist/TableView-DXHhJ-jm.mjs +6143 -0
- package/dist/TemplateList.vue_vue_type_script_setup_true_lang-B_AtWnHa.js +1 -0
- package/dist/TemplateList.vue_vue_type_script_setup_true_lang-Cmovy7kk.mjs +40 -0
- package/dist/TopPagesCard-BDeA997A.js +1 -0
- package/dist/TopPagesCard-CTozhOr_.mjs +159 -0
- package/dist/TrafficSourcesCard-BxtCKsqx.mjs +197 -0
- package/dist/TrafficSourcesCard-C3ziDTUL.js +1 -0
- package/dist/View-CsudjxCE.mjs +30 -0
- package/dist/View-Dw_wA6kK.js +1 -0
- package/dist/VisitorStatsCard-BmByE_Hi.js +1 -0
- package/dist/VisitorStatsCard-CXizEbVK.mjs +174 -0
- package/dist/_plugin-vue_export-helper-BHFhmbuH.js +1 -0
- package/dist/_plugin-vue_export-helper-CHgC5LLL.mjs +9 -0
- package/dist/agenda-DcatSSYQ.mjs +1165 -0
- package/dist/agenda-IOqtALWf.js +1 -0
- package/dist/array-CbATeQbk.js +1 -0
- package/dist/array-DT5pE8Gm.mjs +108 -0
- package/dist/availability-CMrRa5y2.mjs +269 -0
- package/dist/availability-Cf2YfMwM.js +1 -0
- package/dist/booking-data-DgJd0BcM.mjs +889 -0
- package/dist/booking-data-Di5GmH_8.js +1 -0
- package/dist/cms-core-modules.css +1 -2
- package/dist/countries-BTPvmrsb.mjs +4 -0
- package/dist/countries-CgZ081No.js +1 -0
- package/dist/exceptions-CI0B4xVj.js +1 -0
- package/dist/exceptions-YCQkHa6a.mjs +646 -0
- package/dist/google-CvtuJwgk.mjs +4 -0
- package/dist/google-D4N3gb01.js +1 -0
- package/dist/index-4tjmIans.js +1 -0
- package/dist/index-9HVlmvK3.js +1 -0
- package/dist/index-A2kp8Isi.js +75 -0
- package/dist/index-B5aBwdxY.js +54 -0
- package/dist/index-BFLV54kw.mjs +3843 -0
- package/dist/index-BWDwEd8D.mjs +24 -0
- package/dist/index-BfBBm9uY.mjs +24 -0
- package/dist/index-BhWvXMOp.mjs +176 -0
- package/dist/index-BiT55eU0.js +58 -0
- package/dist/index-Bkq58CeQ.mjs +22 -0
- package/dist/index-BzWmWCo5.mjs +1187 -0
- package/dist/index-CJQQBRLY.js +1 -0
- package/dist/index-CQkOH2_3.mjs +24 -0
- package/dist/index-CSxYBeVA.js +1 -0
- package/dist/index-CU-tbS5W.mjs +24 -0
- package/dist/index-CZn2nDLv.mjs +34 -0
- package/dist/index-CkiNvRzs.js +1 -0
- package/dist/index-Co4ON2Di.js +1 -0
- package/dist/index-Cpnn_Pxd.mjs +24 -0
- package/dist/index-CpzDEMeC.mjs +1443 -0
- package/dist/index-CsVeM3PA.mjs +24 -0
- package/dist/index-CwqrAU-H.js +1 -0
- package/dist/index-CxETuRsG.js +1 -0
- package/dist/index-Cz-baGax.js +1 -0
- package/dist/index-D30apIn-.mjs +110 -0
- package/dist/index-DFQGVHTs.js +1 -0
- package/dist/index-DPd3waTN.js +1 -0
- package/dist/index-DRqJOqUR.mjs +3484 -0
- package/dist/index-DjWuIBxh.js +1 -0
- package/dist/index-Dnn2SCSl.js +1 -0
- package/dist/index-Dpl9sU6a.mjs +12 -0
- package/dist/index-DrXxXB2F.mjs +138 -0
- package/dist/index-G7cIlnGN.js +158 -0
- package/dist/index-R2oUDsjx.js +1 -0
- package/dist/index-RLz1QPrf.mjs +203 -0
- package/dist/index-UtjLbLw-.js +1 -0
- package/dist/index-V78huaSJ.mjs +442 -0
- package/dist/index-cOnxXTbF.mjs +24 -0
- package/dist/index-hlylYYgy.mjs +24 -0
- package/dist/index-ijdf0d9-.js +1 -0
- package/dist/index-vHmvbEwa.js +35 -0
- package/dist/index-wjkEPsNx.mjs +2940 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.mjs +806 -1095
- package/dist/interpolation-CHn59tIC.js +1 -0
- package/dist/interpolation-w7IRDJwK.mjs +180 -0
- package/dist/orders-C65SlpJy.mjs +618 -0
- package/dist/orders-XVzWAgG1.js +1 -0
- package/dist/payment-C3ohkehF.mjs +1080 -0
- package/dist/payment-Dfr-Ro-a.js +1 -0
- package/dist/regular-1LXNPviB.js +1 -0
- package/dist/regular-_05oq5Tx.mjs +1101 -0
- package/dist/resources-CYOb5Bl6.mjs +811 -0
- package/dist/resources-CxeFd57z.js +1 -0
- package/dist/server-handlers.cjs.js +1 -1
- package/dist/server-handlers.mjs +996 -1049
- package/dist/src/appointments/chat-components/AgendaOpeningHoursCard.vue.d.ts +15 -0
- package/dist/src/appointments/chat-components/AppointmentDetailsCard.vue.d.ts +14 -0
- package/dist/src/appointments/chat-components/AppointmentEditor.vue.d.ts +14 -0
- package/dist/src/appointments/chat-components/AppointmentListTable.vue.d.ts +14 -0
- package/dist/src/appointments/components/create/StepNavigation.vue.d.ts +32 -0
- package/dist/src/appointments/components/create/regular/Step1.vue.d.ts +2 -0
- package/dist/src/appointments/components/create/regular/Step2.vue.d.ts +2 -0
- package/dist/src/appointments/components/create/regular/Step3.vue.d.ts +2 -0
- package/dist/src/appointments/components/create/regular/Step4.vue.d.ts +2 -0
- package/dist/src/appointments/components/edit/CustomerInformationFieldEditorDialog.vue.d.ts +24 -0
- package/dist/src/appointments/components/edit/EditLayout.vue.d.ts +17 -0
- package/dist/src/appointments/components/edit/Event24hSidebar.vue.d.ts +2 -0
- package/dist/src/appointments/components/edit/EventDialog/ApproveReservationDialog.vue.d.ts +8 -0
- package/dist/src/appointments/components/edit/EventDialog/BookingsList.vue.d.ts +136 -0
- package/dist/src/appointments/components/edit/EventDialog/CancelReservationDialog.vue.d.ts +8 -0
- package/dist/src/appointments/components/edit/EventDialog/EventDialog.vue.d.ts +11 -0
- package/dist/src/appointments/components/edit/EventDialog/OrderDetailDialog.vue.d.ts +55 -0
- package/dist/src/appointments/components/edit/EventDialog/RejectReservationDialog.vue.d.ts +8 -0
- package/dist/src/appointments/components/edit/EventDialog/ReservationDetailDialog.vue.d.ts +87 -0
- package/dist/src/appointments/components/edit/EventDialog/TimelineChart.vue.d.ts +24 -0
- package/dist/src/appointments/components/edit/EventDialog/TransferReservationDialog.vue.d.ts +4 -0
- package/dist/src/appointments/components/edit/EventTimeIndicator.vue.d.ts +12 -0
- package/dist/src/appointments/components/edit/EventTimeline.vue.d.ts +48 -0
- package/dist/src/appointments/components/edit/EventView.vue.d.ts +9 -0
- package/dist/src/appointments/components/edit/ExceptionDialog.vue.d.ts +29 -0
- package/dist/src/appointments/components/edit/MetadataSchemaEditorDialog.vue.d.ts +12 -0
- package/dist/src/appointments/components/edit/NewReservationDialog/CustomerInformation.vue.d.ts +10 -0
- package/dist/src/appointments/components/edit/NewReservationDialog/NewReservationDialog.vue.d.ts +26 -0
- package/dist/src/appointments/components/edit/NewReservationDialog/QuickReservationAdder.vue.d.ts +26 -0
- package/dist/src/appointments/components/edit/NewReservationDialog/ReservationLines.vue.d.ts +31 -0
- package/dist/src/appointments/components/edit/OrderMetadataDisplay.vue.d.ts +21 -0
- package/dist/src/appointments/components/edit/PaymentAddons/Addon.vue.d.ts +22 -0
- package/dist/src/appointments/components/edit/PaymentAddons/AddonList.vue.d.ts +5 -0
- package/dist/src/appointments/components/edit/PaymentAddons/index.vue.d.ts +15 -0
- package/dist/src/appointments/components/edit/ResourceEditorDialog.vue.d.ts +13 -0
- package/dist/src/appointments/components/edit/dashboard/Timeline.vue.d.ts +36 -0
- package/dist/src/appointments/components/edit/dashboard/timeline/ResourceSelector.vue.d.ts +50 -0
- package/dist/src/appointments/index.d.ts +12 -9
- package/dist/src/appointments/index.vue.d.ts +22 -0
- package/dist/src/appointments/metadata.d.ts +1 -1
- package/dist/src/appointments/pages/Overview.vue.d.ts +4 -0
- package/dist/src/appointments/pages/create/index.vue.d.ts +2 -0
- package/dist/src/appointments/pages/create/regular.vue.d.ts +6 -0
- package/dist/src/appointments/pages/edit/agenda.vue.d.ts +4 -0
- package/dist/src/appointments/pages/edit/availability.vue.d.ts +2 -0
- package/dist/src/appointments/pages/edit/booking-data.vue.d.ts +65 -0
- package/dist/src/appointments/pages/edit/index.vue.d.ts +2 -0
- package/dist/src/appointments/pages/edit/payment.vue.d.ts +2 -0
- package/dist/src/appointments/pages/edit/resources.vue.d.ts +28 -0
- package/dist/src/appointments/routes.d.ts +6 -3
- package/dist/src/contentManager/components/components/ComponentDialog.vue.d.ts +12 -0
- package/dist/src/contentManager/components/components/ComponentGridItem.vue.d.ts +16 -0
- package/dist/src/contentManager/components/content-editor/ApiDocs.vue.d.ts +2 -0
- package/dist/src/contentManager/components/content-editor/ContentLayout.vue.d.ts +49 -0
- package/dist/src/contentManager/components/content-editor/ContentSettings.vue.d.ts +24 -0
- package/dist/src/contentManager/components/content-editor/ContentStructuredContentSections.vue.d.ts +4 -0
- package/dist/src/contentManager/components/content-editor/Header.vue.d.ts +64 -0
- package/dist/src/contentManager/components/content-editor/LivePreviewWrapper.vue.d.ts +53 -0
- package/dist/src/contentManager/components/content-editor/Locales.vue.d.ts +44 -0
- package/dist/src/contentManager/components/content-editor/NewSectionDialog.vue.d.ts +21 -0
- package/dist/src/contentManager/components/content-editor/PageSettings.vue.d.ts +2 -0
- package/dist/src/contentManager/components/content-editor/SEO.vue.d.ts +14 -0
- package/dist/src/contentManager/components/content-editor/SidebarSectionWrapper.vue.d.ts +39 -0
- package/dist/src/contentManager/components/content-editor/Status.vue.d.ts +2 -0
- package/dist/src/contentManager/components/content-editor/Versions.vue.d.ts +63 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/Button.vue.d.ts +94 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/Card.vue.d.ts +92 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/Column.vue.d.ts +92 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/Container.vue.d.ts +92 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/Divider.vue.d.ts +92 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/EmptySpace.vue.d.ts +94 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/Heading.vue.d.ts +92 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/Image.vue.d.ts +92 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/LockBlocks.d.ts +0 -15
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/Map.vue.d.ts +92 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/Paragraph.vue.d.ts +92 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/Row.vue.d.ts +115 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/Stack.vue.d.ts +115 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/TrailingNodeInContainers.d.ts +1 -4
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/Video.vue.d.ts +92 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/extension-details/DetailsNodeView.vue.d.ts +92 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/helpers/NodeLabel.vue.d.ts +108 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/helpers/ResizeHandlers.vue.d.ts +20 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/helpers/TopMarginDragger.vue.d.ts +104 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/BubbleMenuClassBuilder.vue.d.ts +19 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/BubbleMenuLinkBuilder.vue.d.ts +19 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/BubbleMenuToggleButton.vue.d.ts +29 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/DefaultBubbleMenu.vue.d.ts +13 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/ElementEditorMenu.vue.d.ts +19 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/EmojiMenu.vue.d.ts +8 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/NewNodeView.vue.d.ts +47 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/SlashMenu.vue.d.ts +6 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/SlashMenuButton.vue.d.ts +17 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/ButtonMenu.vue.d.ts +13 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/CardMenu.vue.d.ts +13 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/ColumnMenu.vue.d.ts +13 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/DividerMenu.vue.d.ts +13 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/EmptySpaceMenu.vue.d.ts +13 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/HeadingMenu.vue.d.ts +13 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/ImageMenu.vue.d.ts +13 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/MapMenu.vue.d.ts +13 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/RowMenu.vue.d.ts +13 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/StackMenu.vue.d.ts +13 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/TextMenu.vue.d.ts +13 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/VideoMenu.vue.d.ts +13 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/index.d.ts +132 -12
- package/dist/src/contentManager/components/overview/CollectionDialog.vue.d.ts +30 -0
- package/dist/src/contentManager/components/overview/CollectionsGridView.vue.d.ts +18 -0
- package/dist/src/contentManager/components/overview/ContentEntryContextMenu.vue.d.ts +27 -0
- package/dist/src/contentManager/components/overview/FilterPopover.vue.d.ts +2 -0
- package/dist/src/contentManager/components/overview/ListView.vue.d.ts +12 -0
- package/dist/src/contentManager/components/styling/ButtonStyleDialog.vue.d.ts +24 -0
- package/dist/src/contentManager/components/styling/CardStyleDialog.vue.d.ts +24 -0
- package/dist/src/contentManager/components/styling/SectionStyleDialog.vue.d.ts +24 -0
- package/dist/src/contentManager/index.d.ts +14 -5
- package/dist/src/contentManager/index.vue.d.ts +22 -0
- package/dist/src/contentManager/metadata.d.ts +1 -1
- package/dist/src/contentManager/pages/Components.vue.d.ts +27 -0
- package/dist/src/contentManager/pages/ContentEditor.vue.d.ts +14 -0
- package/dist/src/contentManager/pages/Entries.vue.d.ts +16 -0
- package/dist/src/contentManager/pages/GlobalStyling.vue.d.ts +117 -0
- package/dist/src/contentManager/pages/Overview.vue.d.ts +57 -0
- package/dist/src/contentManager/routes.d.ts +12 -3
- package/dist/src/custom/index.d.ts +2 -2
- package/dist/src/custom/index.vue.d.ts +2 -0
- package/dist/src/custom/pages/View.vue.d.ts +2 -0
- package/dist/src/custom/routes.d.ts +1 -1
- package/dist/src/googleAnalytics/chat-components/CountryBreakdownCard.vue.d.ts +14 -0
- package/dist/src/googleAnalytics/chat-components/DeviceBreakdownCard.vue.d.ts +14 -0
- package/dist/src/googleAnalytics/chat-components/PeakHoursCard.vue.d.ts +14 -0
- package/dist/src/googleAnalytics/chat-components/RealtimeCard.vue.d.ts +14 -0
- package/dist/src/googleAnalytics/chat-components/SearchTermsCard.vue.d.ts +14 -0
- package/dist/src/googleAnalytics/chat-components/TopPagesCard.vue.d.ts +14 -0
- package/dist/src/googleAnalytics/chat-components/TrafficSourcesCard.vue.d.ts +14 -0
- package/dist/src/googleAnalytics/chat-components/VisitorStatsCard.vue.d.ts +14 -0
- package/dist/src/googleAnalytics/components/seo-health/SeoClicksChart.vue.d.ts +5 -0
- package/dist/src/googleAnalytics/components/seo-health/SeoImpressionsChart.vue.d.ts +5 -0
- package/dist/src/googleAnalytics/components/seo-health/SeoKeywordsTab.vue.d.ts +5 -0
- package/dist/src/googleAnalytics/components/seo-health/SeoKpiCards.vue.d.ts +10 -0
- package/dist/src/googleAnalytics/components/seo-health/SeoMappingTab.vue.d.ts +5 -0
- package/dist/src/googleAnalytics/components/seo-health/SeoPagesTab.vue.d.ts +5 -0
- package/dist/src/googleAnalytics/components/seo-health/SeoRankingDistribution.vue.d.ts +5 -0
- package/dist/src/googleAnalytics/index.d.ts +10 -10
- package/dist/src/googleAnalytics/index.vue.d.ts +2 -0
- package/dist/src/googleAnalytics/pages/Acquisition.vue.d.ts +2 -0
- package/dist/src/googleAnalytics/pages/Audience.vue.d.ts +2 -0
- package/dist/src/googleAnalytics/pages/Content.vue.d.ts +2 -0
- package/dist/src/googleAnalytics/pages/Overview.vue.d.ts +2 -0
- package/dist/src/googleAnalytics/pages/SeoHealth.vue.d.ts +2 -0
- package/dist/src/googleAnalytics/routes.d.ts +1 -1
- package/dist/src/mailTemplates/components/TemplateList.vue.d.ts +2 -0
- package/dist/src/mailTemplates/index.d.ts +3 -3
- package/dist/src/mailTemplates/index.vue.d.ts +22 -0
- package/dist/src/mailTemplates/metadata.d.ts +1 -1
- package/dist/src/mailTemplates/pages/Detail.vue.d.ts +14 -0
- package/dist/src/mailTemplates/pages/Overview.vue.d.ts +14 -0
- package/dist/src/mailTemplates/routes.d.ts +1 -1
- package/dist/src/productCollections/components/detail/Main.vue.d.ts +2 -0
- package/dist/src/productCollections/components/detail/SEO.vue.d.ts +2 -0
- package/dist/src/productCollections/components/detail/Status.vue.d.ts +2 -0
- package/dist/src/productCollections/components/overview/ListView.vue.d.ts +12 -0
- package/dist/src/productCollections/index.d.ts +3 -3
- package/dist/src/productCollections/index.vue.d.ts +22 -0
- package/dist/src/productCollections/metadata.d.ts +1 -1
- package/dist/src/productCollections/pages/Detail.vue.d.ts +14 -0
- package/dist/src/productCollections/pages/Overview.vue.d.ts +16 -0
- package/dist/src/productCollections/routes.d.ts +1 -1
- package/dist/src/products/chat-components/ProductDetailsCard.vue.d.ts +14 -0
- package/dist/src/products/components/detail/Collections.vue.d.ts +14 -0
- package/dist/src/products/components/detail/Inventory.vue.d.ts +2 -0
- package/dist/src/products/components/detail/Main.vue.d.ts +2 -0
- package/dist/src/products/components/detail/NewSection.vue.d.ts +2 -0
- package/dist/src/products/components/detail/Price.vue.d.ts +2 -0
- package/dist/src/products/components/detail/SEO.vue.d.ts +2 -0
- package/dist/src/products/components/detail/Shipping.vue.d.ts +2 -0
- package/dist/src/products/components/detail/Status.vue.d.ts +2 -0
- package/dist/src/products/components/detail/price/UnitPriceDialog.vue.d.ts +17 -0
- package/dist/src/products/components/detail/variants/Option.vue.d.ts +33 -0
- package/dist/src/products/components/detail/variants/VariantList.vue.d.ts +38 -0
- package/dist/src/products/components/overview/FilterPopover.vue.d.ts +2 -0
- package/dist/src/products/components/overview/GridView.vue.d.ts +12 -0
- package/dist/src/products/components/overview/ListView.vue.d.ts +12 -0
- package/dist/src/products/components/overview/ProductContextMenu.vue.d.ts +27 -0
- package/dist/src/products/index.d.ts +4 -4
- package/dist/src/products/index.vue.d.ts +22 -0
- package/dist/src/products/metadata.d.ts +1 -1
- package/dist/src/products/pages/Detail.vue.d.ts +14 -0
- package/dist/src/products/pages/Overview.vue.d.ts +16 -0
- package/dist/src/products/routes.d.ts +1 -1
- package/dist/src/promoCodes/components/create/DateRange.vue.d.ts +2 -0
- package/dist/src/promoCodes/components/create/MultiCodes.vue.d.ts +2 -0
- package/dist/src/promoCodes/components/create/Note.vue.d.ts +2 -0
- package/dist/src/promoCodes/components/create/SingleCode.vue.d.ts +2 -0
- package/dist/src/promoCodes/components/create/TypeAndValue/TypeDetailDialog.vue.d.ts +6 -0
- package/dist/src/promoCodes/components/create/TypeAndValue/TypeManageDialog.vue.d.ts +18 -0
- package/dist/src/promoCodes/components/create/TypeAndValue/index.vue.d.ts +2 -0
- package/dist/src/promoCodes/index.d.ts +3 -3
- package/dist/src/promoCodes/index.vue.d.ts +22 -0
- package/dist/src/promoCodes/metadata.d.ts +1 -1
- package/dist/src/promoCodes/pages/Create.vue.d.ts +16 -0
- package/dist/src/promoCodes/pages/Detail.vue.d.ts +14 -0
- package/dist/src/promoCodes/pages/Find.vue.d.ts +16 -0
- package/dist/src/promoCodes/routes.d.ts +1 -1
- package/dist/src/push-notifications/components/PreviewAndroid.vue.d.ts +28 -0
- package/dist/src/push-notifications/components/PreviewIPhone.vue.d.ts +28 -0
- package/dist/src/push-notifications/components/PushPreview.vue.d.ts +28 -0
- package/dist/src/push-notifications/index.d.ts +3 -3
- package/dist/src/push-notifications/index.vue.d.ts +22 -0
- package/dist/src/push-notifications/metadata.d.ts +1 -1
- package/dist/src/push-notifications/pages/SendPush.vue.d.ts +14 -0
- package/dist/src/push-notifications/routes.d.ts +1 -1
- package/dist/src/shared/BrandLogo.vue.d.ts +12 -0
- package/dist/src/shared/DrawerToggle.vue.d.ts +60 -0
- package/dist/src/shared/VerticalToggle.vue.d.ts +60 -0
- package/dist/src/shippingOptions/components/detail/Condition.vue.d.ts +2 -0
- package/dist/src/shippingOptions/components/detail/Countries.vue.d.ts +2 -0
- package/dist/src/shippingOptions/components/detail/Example.vue.d.ts +2 -0
- package/dist/src/shippingOptions/components/detail/Main.vue.d.ts +2 -0
- package/dist/src/shippingOptions/components/overview/ListView.vue.d.ts +12 -0
- package/dist/src/shippingOptions/index.d.ts +3 -3
- package/dist/src/shippingOptions/index.vue.d.ts +22 -0
- package/dist/src/shippingOptions/metadata.d.ts +1 -1
- package/dist/src/shippingOptions/pages/Detail.vue.d.ts +14 -0
- package/dist/src/shippingOptions/pages/Overview.vue.d.ts +16 -0
- package/dist/src/shippingOptions/routes.d.ts +1 -1
- package/dist/src/table/components/DataTable.vue.d.ts +18 -0
- package/dist/src/table/components/DataTableAction.vue.d.ts +14 -0
- package/dist/src/table/components/DataTableMobileRowActionDrawer.vue.d.ts +4 -0
- package/dist/src/table/components/DataTablePagination.vue.d.ts +6 -0
- package/dist/src/table/components/actions/ActionDialog.vue.d.ts +19 -0
- package/dist/src/table/components/actions/CtaActionDialog.vue.d.ts +4 -0
- package/dist/src/table/components/columns/ColumnDropdown.vue.d.ts +2 -0
- package/dist/src/table/components/columns/ColumnEditorDialog.vue.d.ts +34 -0
- package/dist/src/table/components/columns/DialogTableColumnItem.vue.d.ts +12 -0
- package/dist/src/table/components/date-range-filter/DateRangeFilter.vue.d.ts +2 -0
- package/dist/src/table/components/date-range-filter/DateRangeSettingsDialog.vue.d.ts +27 -0
- package/dist/src/table/components/filters/FilterDialog.vue.d.ts +12 -0
- package/dist/src/table/components/filters/Filters.vue.d.ts +27 -0
- package/dist/src/table/components/search/Search.vue.d.ts +2 -0
- package/dist/src/table/components/sort/SortMode.vue.d.ts +2 -0
- package/dist/src/table/components/sort/SortModeSettingsDialog.vue.d.ts +18 -0
- package/dist/src/table/components/stats/StatDialog.vue.d.ts +12 -0
- package/dist/src/table/components/stats/Stats.vue.d.ts +27 -0
- package/dist/src/table/flow-builder-extensions/TableRowEditor.vue.d.ts +16 -0
- package/dist/src/table/flow-builder-extensions/row-item.d.ts +17 -3
- package/dist/src/table/index.d.ts +2 -2
- package/dist/src/table/index.vue.d.ts +22 -0
- package/dist/src/table/pages/TableView.vue.d.ts +54 -0
- package/dist/src/table/routes.d.ts +1 -1
- package/dist/src/types/index.d.ts +0 -6
- package/dist/utils-CanmrIWO.mjs +47 -0
- package/dist/utils-Yd6F5mea.js +3 -0
- package/dist/vee-validate-zod-ByykgYKJ.js +1 -0
- package/dist/vee-validate-zod-DNjTLCgh.mjs +4402 -0
- package/package.json +56 -55
- package/dist/Acquisition-DypEyPSO.js +0 -1
- package/dist/Acquisition-TCNX-th6.mjs +0 -308
- package/dist/AgendaOpeningHoursCard-BIhm0vpV.js +0 -1
- package/dist/AgendaOpeningHoursCard-BKUdJxRI.mjs +0 -133
- package/dist/AppointmentDetailsCard-C5rQ5jsW.js +0 -1
- package/dist/AppointmentDetailsCard-NRHeNP2L.mjs +0 -111
- package/dist/AppointmentEditor-BcF8CiD-.mjs +0 -150
- package/dist/AppointmentEditor-BlhFtoCm.js +0 -1
- package/dist/AppointmentListTable-B-ReBVtV.js +0 -1
- package/dist/AppointmentListTable-DHmy-iid.mjs +0 -129
- package/dist/Audience-CfWHjjg8.mjs +0 -394
- package/dist/Audience-Cj4TyauW.js +0 -1
- package/dist/Components-BehelN4r.js +0 -1
- package/dist/Components-CR6zukUU.mjs +0 -468
- package/dist/Content-C5Iye3t0.mjs +0 -257
- package/dist/Content-eOfBx52Y.js +0 -1
- package/dist/ContentEditor-BgL4qEeg.mjs +0 -26835
- package/dist/ContentEditor-Tlu3w0Hu.js +0 -462
- package/dist/CountryBreakdownCard-CWVyB8be.mjs +0 -151
- package/dist/CountryBreakdownCard-Db-pMiNe.js +0 -1
- package/dist/Create-B1it8S4m.js +0 -1
- package/dist/Create-DbYi0FAI.mjs +0 -907
- package/dist/DateFormatter-DLrDYkby.mjs +0 -630
- package/dist/DateFormatter-Dni0Oq8r.js +0 -1
- package/dist/Detail-D-eahJGO.mjs +0 -21
- package/dist/Detail-D0kdPPIm.mjs +0 -2757
- package/dist/Detail-DAafePYi.mjs +0 -485
- package/dist/Detail-DYpv4fYg.js +0 -1
- package/dist/Detail-Dc_ui4LM.js +0 -1
- package/dist/Detail-DccUekl_.js +0 -1
- package/dist/Detail-Dhz0V0Vf.js +0 -1
- package/dist/Detail-DjnGY0F8.mjs +0 -282
- package/dist/Detail-DplAitHg.mjs +0 -447
- package/dist/Detail-SugyeSxb.js +0 -1
- package/dist/DeviceBreakdownCard-CzxZT6To.js +0 -1
- package/dist/DeviceBreakdownCard-eEwPjzKl.mjs +0 -115
- package/dist/EditLayout-Bnz9q_jd.js +0 -1
- package/dist/EditLayout-J_DGXb8v.mjs +0 -99
- package/dist/Entries-CgpWg6fE.js +0 -1
- package/dist/Entries-CkGTXcAq.mjs +0 -575
- package/dist/Find-Bz0TNJzk.mjs +0 -164
- package/dist/Find-D-ItTXaZ.js +0 -1
- package/dist/GlobalStyling-CSQPF7o_.mjs +0 -1162
- package/dist/GlobalStyling-DabldMZh.js +0 -15
- package/dist/NewReservationDialog-BhIiY2B9.js +0 -1
- package/dist/NewReservationDialog-CN49aGcM.mjs +0 -1002
- package/dist/OrderDetailDialog-BJ01DZFe.js +0 -1
- package/dist/OrderDetailDialog-CoVQ_rzs.mjs +0 -215
- package/dist/Overview-9FMgn5hT.mjs +0 -492
- package/dist/Overview-BOOwMQ-c.mjs +0 -636
- package/dist/Overview-Biz3h60w.js +0 -1
- package/dist/Overview-C2K2ofdS.js +0 -1
- package/dist/Overview-CFHOXP9N.mjs +0 -123
- package/dist/Overview-CTJe7J5_.js +0 -1
- package/dist/Overview-Cvj2i9eW.js +0 -1
- package/dist/Overview-D2I1F8Dm.mjs +0 -21
- package/dist/Overview-DFOc9emt.mjs +0 -345
- package/dist/Overview-Dmhfb94Y.js +0 -1
- package/dist/Overview-PPzv7weG.mjs +0 -450
- package/dist/Overview-qFKcXHVF.js +0 -1
- package/dist/Overview-xkmYYTae.mjs +0 -133
- package/dist/Overview-yPsLvR2c.js +0 -1
- package/dist/PeakHoursCard-CtgEP-ez.mjs +0 -157
- package/dist/PeakHoursCard-DPeoMyhu.js +0 -1
- package/dist/ProductDetailsCard-B0WhmzO-.mjs +0 -98
- package/dist/ProductDetailsCard-C1ROuH6l.js +0 -1
- package/dist/RealtimeCard-DQno-Okz.js +0 -1
- package/dist/RealtimeCard-dR-g1iDo.mjs +0 -92
- package/dist/ReservationDetailDialog-Cdo6h0RD.mjs +0 -2163
- package/dist/ReservationDetailDialog-DZTFD2xI.js +0 -349
- package/dist/SearchTermsCard-BXJSXz_k.js +0 -1
- package/dist/SearchTermsCard-DsaxLKwP.mjs +0 -146
- package/dist/SendPush-Bssi-OZD.mjs +0 -150
- package/dist/SendPush-BuaYboRH.js +0 -1
- package/dist/SeoHealth-CP-kL0us.js +0 -1
- package/dist/SeoHealth-Cxp_Gb3Y.mjs +0 -459
- package/dist/TableView-7iwBkQ_k.mjs +0 -4757
- package/dist/TableView-BB_oIYYZ.js +0 -4
- package/dist/TemplateList-CNcM_Kgq.mjs +0 -56
- package/dist/TemplateList-VuPcBUJO.js +0 -1
- package/dist/TopPagesCard-CvDECn3_.mjs +0 -117
- package/dist/TopPagesCard-DNdATXJE.js +0 -1
- package/dist/TrafficSourcesCard-BLpBr7u0.mjs +0 -151
- package/dist/TrafficSourcesCard-_3gRUCw3.js +0 -1
- package/dist/View-DSnUHI7h.mjs +0 -30
- package/dist/View-Dbcfpdqh.js +0 -1
- package/dist/VisitorStatsCard-CFEnXSjF.mjs +0 -185
- package/dist/VisitorStatsCard-C_jhQxDW.js +0 -1
- package/dist/_plugin-vue_export-helper-5u7tqpWC.js +0 -1
- package/dist/_plugin-vue_export-helper-BJQSo0im.mjs +0 -8
- package/dist/agenda-CzMRcQTA.mjs +0 -989
- package/dist/agenda-D4zWRYSQ.js +0 -1
- package/dist/appointments-9syR5TZE.js +0 -1
- package/dist/appointments-BBmOJMhM.mjs +0 -23
- package/dist/array-BH1uH7XT.js +0 -1
- package/dist/array-DnDL9cFz.mjs +0 -98
- package/dist/availability-CAXB7Yd6.js +0 -1
- package/dist/availability-Dp7eF-ZK.mjs +0 -215
- package/dist/booking-data-Bysf6e5x.mjs +0 -724
- package/dist/booking-data-C6SGjC2X.js +0 -1
- package/dist/chunk-DQi1bQcV.js +0 -1
- package/dist/contentManager-D7JxXCwE.js +0 -1
- package/dist/contentManager-tfy0x1LD.mjs +0 -22
- package/dist/context-AQKfnJ4t.mjs +0 -3809
- package/dist/context-ubyMq9Xe.js +0 -54
- package/dist/core-Dhgr4ctC.mjs +0 -202
- package/dist/core-_HKfBlaZ.js +0 -1
- package/dist/countries-MXLT3mVe.mjs +0 -4
- package/dist/countries-OCd5qPxG.js +0 -1
- package/dist/create-BfNc2C7N.js +0 -1
- package/dist/create-C7JlIlIh.mjs +0 -95
- package/dist/custom-BwN9-6Mb.js +0 -1
- package/dist/custom-INNwaWla.mjs +0 -13
- package/dist/dist-BCVg7FKM.js +0 -1
- package/dist/dist-DIhK9VWh.mjs +0 -3045
- package/dist/edit-BiI2VG60.js +0 -35
- package/dist/edit-DD3iFBEh.mjs +0 -1097
- package/dist/exceptions-DICMaDcH.mjs +0 -462
- package/dist/exceptions-DpWqMNuG.js +0 -1
- package/dist/google-Bcc4XZnV.mjs +0 -4
- package/dist/google-DTSRmJ51.js +0 -1
- package/dist/googleAnalytics-BSaqRR_L.js +0 -1
- package/dist/googleAnalytics-Cg-iWblZ.mjs +0 -47
- package/dist/interpolation-B8OzkMyi.mjs +0 -131
- package/dist/interpolation-DpAqtGOW.js +0 -1
- package/dist/lib-4wSi00Vr.js +0 -1
- package/dist/lib-BZgXUui5.mjs +0 -198
- package/dist/line-DJdnFNI7.js +0 -75
- package/dist/line-tYLnEDGV.mjs +0 -1500
- package/dist/mailTemplates-BNk8fhVS.mjs +0 -23
- package/dist/mailTemplates-DswHzyQe.js +0 -1
- package/dist/orders-CIc0JlKX.mjs +0 -512
- package/dist/orders-DwPSi_pD.js +0 -1
- package/dist/payment-BsNWFaDm.js +0 -1
- package/dist/payment-Ced5_dpa.mjs +0 -718
- package/dist/productCollections-Cuvw_8zC.js +0 -1
- package/dist/productCollections-D0AxRlzr.mjs +0 -23
- package/dist/products-DUD-ZMkR.mjs +0 -22
- package/dist/products-DvX9B-Ul.js +0 -1
- package/dist/promoCodes-BCWqN6w4.mjs +0 -23
- package/dist/promoCodes-CEZ4LYot.js +0 -1
- package/dist/push-notifications-BGp4XWo9.js +0 -1
- package/dist/push-notifications-C7W7KuzR.mjs +0 -23
- package/dist/regular-BCFrS6lK.mjs +0 -908
- package/dist/regular-DBqPgT8C.js +0 -1
- package/dist/resources-DwsMmWgm.mjs +0 -669
- package/dist/resources-Dz81GkHe.js +0 -1
- package/dist/shippingOptions-C3NEJff1.mjs +0 -23
- package/dist/shippingOptions-Cy040ZW1.js +0 -1
- package/dist/single-container-BJmmqq65.mjs +0 -468
- package/dist/single-container-Xoo0Xzxv.js +0 -58
- package/dist/src/vue-shim.d.ts +0 -7
- package/dist/table-DWw0fs3S.js +0 -1
- package/dist/table-LXt5DQOL.mjs +0 -23
- package/dist/utils-CVIHqQsU.js +0 -3
- package/dist/utils-h3owcMtS.mjs +0 -37
- package/dist/vee-validate-zod-BmXMJo8W.js +0 -1
- package/dist/vee-validate-zod-D9dZzbWZ.mjs +0 -4985
- package/dist/xy-container-CuQSwrtB.mjs +0 -3180
- package/dist/xy-container-_6YpscZh.js +0 -158
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oneclick.dev/cms-core-modules",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.110",
|
|
4
4
|
"main": "dist/index.cjs.js",
|
|
5
5
|
"module": "dist/index.mjs",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -26,65 +26,66 @@
|
|
|
26
26
|
"build": "vite build"
|
|
27
27
|
},
|
|
28
28
|
"peerDependencies": {
|
|
29
|
-
"@formkit/drag-and-drop": "0.5.3",
|
|
30
|
-
"@internationalized/date": "3.8.0",
|
|
31
|
-
"@oneclick.dev/cms-kit": "0.0.
|
|
32
|
-
"@tanstack/vue-table": "8.21.3",
|
|
33
|
-
"@vee-validate/zod": "4.15.0",
|
|
34
|
-
"@vue-flow/core": "1.48.
|
|
35
|
-
"@vueuse/core": "13.1.0",
|
|
36
|
-
"clsx": "2.1.1",
|
|
37
|
-
"emoji-mart-vue-fast": "15.0.5",
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
29
|
+
"@formkit/drag-and-drop": "^0.5.3",
|
|
30
|
+
"@internationalized/date": "^3.8.0",
|
|
31
|
+
"@oneclick.dev/cms-kit": "0.0.122",
|
|
32
|
+
"@tanstack/vue-table": "^8.21.3",
|
|
33
|
+
"@vee-validate/zod": "^4.15.0",
|
|
34
|
+
"@vue-flow/core": "^1.48.1",
|
|
35
|
+
"@vueuse/core": "^13.1.0",
|
|
36
|
+
"clsx": "^2.1.1",
|
|
37
|
+
"emoji-mart-vue-fast": "^15.0.5",
|
|
38
|
+
"fuse.js": "7.3.0",
|
|
39
|
+
"lucide-vue-next": "^0.554.0",
|
|
40
|
+
"h3": "^1",
|
|
41
|
+
"nuxt": "^3",
|
|
42
|
+
"pinia": "^3",
|
|
43
|
+
"reka-ui": "^2.2.1",
|
|
44
|
+
"tailwind-merge": "^3.2.0",
|
|
45
|
+
"vee-validate": "^4.15.0",
|
|
46
|
+
"vue": "^3",
|
|
46
47
|
"vue-sonner": "2.0.7",
|
|
47
|
-
"zod": "3.24.4"
|
|
48
|
+
"zod": "^3.24.4"
|
|
48
49
|
},
|
|
49
50
|
"devDependencies": {
|
|
50
|
-
"@floating-ui/dom": "1.7.
|
|
51
|
-
"@tiptap/extension-collaboration": "3.
|
|
52
|
-
"@tiptap/extension-node-range": "3.
|
|
53
|
-
"@tiptap/y-tiptap": "3.0.
|
|
54
|
-
"@vitejs/plugin-vue": "6.0.
|
|
55
|
-
"@vue-flow/core": "1.48.
|
|
56
|
-
"ofetch": "1.5.1",
|
|
57
|
-
"typescript": "
|
|
58
|
-
"vite": "
|
|
59
|
-
"vite-plugin-dts": "5.
|
|
51
|
+
"@floating-ui/dom": "^1.7.4",
|
|
52
|
+
"@tiptap/extension-collaboration": "3.20.0",
|
|
53
|
+
"@tiptap/extension-node-range": "3.20.0",
|
|
54
|
+
"@tiptap/y-tiptap": "3.0.2",
|
|
55
|
+
"@vitejs/plugin-vue": "^6.0.3",
|
|
56
|
+
"@vue-flow/core": "^1.48.1",
|
|
57
|
+
"ofetch": "^1.5.1",
|
|
58
|
+
"typescript": "^5.9.3",
|
|
59
|
+
"vite": "^7.3.0",
|
|
60
|
+
"vite-plugin-dts": "^4.5.4"
|
|
60
61
|
},
|
|
61
62
|
"dependencies": {
|
|
62
|
-
"@tiptap/core": "3.
|
|
63
|
-
"@tiptap/extension-bubble-menu": "3.
|
|
64
|
-
"@tiptap/extension-collaboration": "3.
|
|
65
|
-
"@tiptap/extension-collaboration-caret": "3.
|
|
66
|
-
"@tiptap/extension-document": "3.
|
|
67
|
-
"@tiptap/extension-link": "3.
|
|
68
|
-
"@tiptap/extension-node-range": "3.
|
|
69
|
-
"@tiptap/extension-underline": "3.
|
|
70
|
-
"@tiptap/extension-unique-id": "3.
|
|
71
|
-
"@tiptap/extensions": "3.
|
|
72
|
-
"@tiptap/pm": "3.
|
|
73
|
-
"@tiptap/starter-kit": "3.
|
|
74
|
-
"@tiptap/vue-3": "3.
|
|
75
|
-
"@tiptap/y-tiptap": "3.0.
|
|
76
|
-
"@unovis/ts": "1.
|
|
77
|
-
"@unovis/vue": "1.
|
|
78
|
-
"iso-639-1": "3.1.5",
|
|
79
|
-
"lodash-es": "4.
|
|
80
|
-
"prosemirror-model": "1.25.4",
|
|
81
|
-
"prosemirror-state": "1.4.4",
|
|
63
|
+
"@tiptap/core": "3.20.0",
|
|
64
|
+
"@tiptap/extension-bubble-menu": "3.20.0",
|
|
65
|
+
"@tiptap/extension-collaboration": "3.20.0",
|
|
66
|
+
"@tiptap/extension-collaboration-caret": "3.20.0",
|
|
67
|
+
"@tiptap/extension-document": "3.20.0",
|
|
68
|
+
"@tiptap/extension-link": "3.20.0",
|
|
69
|
+
"@tiptap/extension-node-range": "3.20.0",
|
|
70
|
+
"@tiptap/extension-underline": "3.20.0",
|
|
71
|
+
"@tiptap/extension-unique-id": "3.20.0",
|
|
72
|
+
"@tiptap/extensions": "3.20.0",
|
|
73
|
+
"@tiptap/pm": "3.20.0",
|
|
74
|
+
"@tiptap/starter-kit": "3.20.0",
|
|
75
|
+
"@tiptap/vue-3": "3.20.0",
|
|
76
|
+
"@tiptap/y-tiptap": "3.0.2",
|
|
77
|
+
"@unovis/ts": "^1.5.2",
|
|
78
|
+
"@unovis/vue": "^1.5.2",
|
|
79
|
+
"iso-639-1": "^3.1.5",
|
|
80
|
+
"lodash-es": "^4.17.22",
|
|
81
|
+
"prosemirror-model": "^1.25.4",
|
|
82
|
+
"prosemirror-state": "^1.4.4",
|
|
82
83
|
"tiptap-extension-auto-joiner": "0.1.3",
|
|
83
|
-
"unplugin-auto-import": "
|
|
84
|
-
"vue-grid-layout-v3": "3.1.2",
|
|
85
|
-
"world-countries": "5.1.0",
|
|
86
|
-
"y-webrtc": "10.3.0",
|
|
87
|
-
"y-websocket": "3.0.0",
|
|
88
|
-
"yjs": "13.6.
|
|
84
|
+
"unplugin-auto-import": "^20.3.0",
|
|
85
|
+
"vue-grid-layout-v3": "^3.1.2",
|
|
86
|
+
"world-countries": "^5.1.0",
|
|
87
|
+
"y-webrtc": "^10.3.0",
|
|
88
|
+
"y-websocket": "^3.0.0",
|
|
89
|
+
"yjs": "^13.6.28"
|
|
89
90
|
}
|
|
90
91
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`./chunk-DQi1bQcV.js`);const e=require(`./single-container-Xoo0Xzxv.js`);let t=require(`@oneclick.dev/cms-kit`),n=require(`vue`),r=require(`@lucide/vue`);var i={class:`@container/charts flex flex-col gap-6 w-full max-w-7xl mx-auto py-8`},ee={class:`flex justify-between gap-4 flex-col @lg:flex-row @lg:items-center`},te={key:0,class:`flex items-center gap-2`},ne={class:`flex items-center border rounded-lg overflow-hidden`},re=[`onClick`],ie={class:`text-sm text-destructive font-medium`},ae={key:2,class:`flex items-center justify-center py-20`},oe={class:`flex flex-col @4xl/charts:grid @4xl/charts:grid-cols-3 gap-6`},se={class:`relative`},ce={class:`absolute inset-0 flex items-center justify-center pointer-events-none`},le={class:`text-center`},ue={class:`text-2xl font-bold tabular-nums`},de={class:`mt-4 grid grid-cols-2 gap-x-4 gap-y-1.5 w-full`},fe={class:`text-xs truncate`},pe={class:`text-xs text-muted-foreground ml-auto tabular-nums`},me={class:`overflow-x-auto`},he={class:`w-full text-sm`},ge={class:`divide-y`},_e={class:`px-6 py-3`},ve={class:`flex items-center gap-2`},a={class:`font-medium`},o={class:`px-4 py-3 text-right tabular-nums`},s={class:`px-4 py-3 text-right tabular-nums`},c={class:`px-4 py-3 text-right tabular-nums`},l={class:`px-4 py-3 text-right tabular-nums`},u={class:`px-4 py-3 text-right tabular-nums`},d={key:0,class:`px-6 py-8 text-center text-muted-foreground text-sm`},f={class:`flex items-center gap-4`},p=[`onClick`],m={key:0,class:`divide-y`},h={class:`overflow-x-auto`},g={class:`w-full text-sm`},_={class:`divide-y`},v={class:`px-6 py-3 text-muted-foreground`},y={class:`px-4 py-3 font-mono text-xs`},b={class:`px-4 py-3 text-right tabular-nums`},x={class:`px-4 py-3 text-right tabular-nums`},S={class:`px-4 py-3 text-right tabular-nums`},C={class:`px-4 py-3 text-right tabular-nums`},w={key:0,class:`px-6 py-8 text-center text-muted-foreground text-sm`},T={key:1,class:`divide-y`},E={class:`flex items-center gap-3 min-w-0`},D={class:`text-muted-foreground w-5 text-right shrink-0`},O={class:`truncate font-medium`},k={class:`flex items-center gap-6 shrink-0 tabular-nums text-xs text-muted-foreground`},A={class:`w-20 text-right`},j={class:`w-16 text-right`},M={class:`w-16 text-right`},N={key:0,class:`px-6 py-8 text-center text-muted-foreground text-sm`},ye={key:2,class:`divide-y`},P={class:`flex items-center gap-3 min-w-0`},be={class:`text-muted-foreground w-5 text-right shrink-0`},xe={class:`truncate font-medium`},Se={class:`flex items-center gap-6 shrink-0 tabular-nums text-xs text-muted-foreground`},Ce={class:`w-20 text-right`},we={class:`w-16 text-right`},Te={class:`w-16 text-right`},Ee={key:0,class:`px-6 py-8 text-center text-muted-foreground text-sm`},F=(0,n.defineComponent)({__name:`Acquisition`,setup(F){let{config:I}=(0,t.useModule)(),{moduleId:L}=(0,t.useModuleRoute)();(0,t.useModuleBreadcrumbs)(()=>[{label:`Acquisition`}]);let R=(0,n.ref)(!0),z=(0,n.ref)(null),B=(0,n.ref)(`30`),V=(0,n.ref)(`sources`),H=(0,n.ref)([]),U=(0,n.ref)([]),W=(0,n.ref)([]),G=(0,n.ref)([]),K=(0,n.computed)(()=>!!(I.serviceAccount&&I.propertyId));function q(e){return`/api/v1/modules/${L}${e}`}let De=[{label:`7d`,value:`7`},{label:`14d`,value:`14`},{label:`30d`,value:`30`},{label:`90d`,value:`90`}],J=[`#3b82f6`,`#8b5cf6`,`#10b981`,`#f59e0b`,`#ef4444`,`#06b6d4`,`#ec4899`,`#84cc16`,`#f97316`,`#6366f1`,`#14b8a6`,`#e11d48`,`#a855f7`,`#22c55e`,`#eab308`],Oe=(0,n.computed)(()=>{let e={};return H.value.forEach((t,n)=>{let r=(t.sessionDefaultChannelGroup||`other`).toLowerCase().replace(/[^a-z0-9]/g,`_`);e[r]={label:t.sessionDefaultChannelGroup||`Other`,color:J[n%J.length]}}),e}),ke=(0,n.computed)(()=>H.value.map((e,t)=>({key:(e.sessionDefaultChannelGroup||`other`).toLowerCase().replace(/[^a-z0-9]/g,`_`),label:e.sessionDefaultChannelGroup||`Other`,sessions:e.sessions||0,fill:J[t%J.length]}))),Ae=(0,n.computed)(()=>H.value.reduce((e,t)=>e+(t.sessions||0),0));function Y(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:Math.round(e).toString()}function X(e){return`${(e*100).toFixed(1)}%`}function je(e){let t=Math.floor(e/60),n=Math.round(e%60);return t>0?`${t}m ${n}s`:`${n}s`}async function Z(){if(!K.value)return;R.value=!0,z.value=null;let e=`${B.value}daysAgo`;try{let[t,n,r,i]=await Promise.all([$fetch(q(`/acquisition/channels?startDate=${e}&endDate=today`)),$fetch(q(`/acquisition/source-medium?startDate=${e}&endDate=today`)),$fetch(q(`/acquisition/referrals?startDate=${e}&endDate=today`)).catch(()=>({rows:[]})),$fetch(q(`/acquisition/campaigns?startDate=${e}&endDate=today`)).catch(()=>({rows:[]}))]);H.value=t.rows||[],U.value=n.rows||[],W.value=r.rows||[],G.value=i.rows||[]}catch(e){z.value=e?.data?.statusMessage||e?.message||`Failed to load acquisition data`}finally{R.value=!1}}return(0,n.watch)(B,()=>Z()),(0,n.onMounted)(()=>{K.value?Z():R.value=!1}),(t,F)=>{let I=(0,n.resolveComponent)(`Button`),L=(0,n.resolveComponent)(`Card`),q=(0,n.resolveComponent)(`CardTitle`),Q=(0,n.resolveComponent)(`CardHeader`),Me=(0,n.resolveComponent)(`ChartContainer`),$=(0,n.resolveComponent)(`CardContent`);return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,i,[(0,n.createElementVNode)(`div`,ee,[F[0]||=(0,n.createElementVNode)(`div`,null,[(0,n.createElementVNode)(`h1`,{class:`text-2xl font-semibold`},`Acquisition`),(0,n.createElementVNode)(`p`,{class:`text-muted-foreground text-sm mt-1`},`Where your traffic comes from`)],-1),K.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,te,[(0,n.createElementVNode)(`div`,ne,[((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(De,e=>(0,n.createElementVNode)(`button`,{key:e.value,class:(0,n.normalizeClass)([`px-3 py-1.5 text-xs font-medium transition-colors`,B.value===e.value?`bg-primary text-primary-foreground`:`text-muted-foreground hover:text-foreground hover:bg-muted`]),onClick:t=>B.value=e.value},(0,n.toDisplayString)(e.label),11,re)),64))]),(0,n.createVNode)(I,{variant:`outline`,size:`icon`,onClick:Z,disabled:R.value},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.RefreshCw),{class:(0,n.normalizeClass)([`size-4`,{"animate-spin":R.value}])},null,8,[`class`])]),_:1},8,[`disabled`])])):(0,n.createCommentVNode)(``,!0)]),K.value?z.value?((0,n.openBlock)(),(0,n.createBlock)(L,{key:1,class:`p-6 border-destructive/50 bg-destructive/5`},{default:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`p`,ie,(0,n.toDisplayString)(z.value),1),(0,n.createVNode)(I,{variant:`outline`,size:`sm`,class:`mt-3`,onClick:Z},{default:(0,n.withCtx)(()=>[...F[2]||=[(0,n.createTextVNode)(`Retry`,-1)]]),_:1})]),_:1})):R.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,ae,[(0,n.createVNode)((0,n.unref)(r.Loader2),{class:`size-8 animate-spin text-muted-foreground`})])):((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,{key:3},[(0,n.createElementVNode)(`div`,oe,[(0,n.createVNode)(L,{class:`@4xl/charts:col-span-1`},{default:(0,n.withCtx)(()=>[(0,n.createVNode)(Q,{class:`pb-2`},{default:(0,n.withCtx)(()=>[(0,n.createVNode)(q,{class:`text-base`},{default:(0,n.withCtx)(()=>[...F[3]||=[(0,n.createTextVNode)(`Channel Mix`,-1)]]),_:1})]),_:1}),(0,n.createVNode)($,{class:`flex flex-col items-center`},{default:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`div`,se,[(0,n.createVNode)(Me,{config:Oe.value,class:`mx-auto aspect-square max-h-[220px]`},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(e.t),{data:ke.value,margin:{top:20,bottom:20,left:20,right:20}},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(e.n),{value:e=>e.sessions,color:e=>e.fill,arcWidth:40,padAngle:.02,cornerRadius:4},null,8,[`value`,`color`])]),_:1},8,[`data`])]),_:1},8,[`config`]),(0,n.createElementVNode)(`div`,ce,[(0,n.createElementVNode)(`div`,le,[(0,n.createElementVNode)(`p`,ue,(0,n.toDisplayString)(Y(Ae.value)),1),F[4]||=(0,n.createElementVNode)(`p`,{class:`text-xs text-muted-foreground`},`sessions`,-1)])])]),(0,n.createElementVNode)(`div`,de,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(H.value.slice(0,8),(e,t)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:e.sessionDefaultChannelGroup,class:`flex items-center gap-2`},[(0,n.createElementVNode)(`div`,{class:`size-2.5 rounded-full shrink-0`,style:(0,n.normalizeStyle)({backgroundColor:J[t%J.length]})},null,4),(0,n.createElementVNode)(`span`,fe,(0,n.toDisplayString)(e.sessionDefaultChannelGroup),1),(0,n.createElementVNode)(`span`,pe,(0,n.toDisplayString)(Y(e.sessions)),1)]))),128))])]),_:1})]),_:1}),(0,n.createVNode)(L,{class:`@4xl/charts:col-span-2`},{default:(0,n.withCtx)(()=>[(0,n.createVNode)(Q,{class:`pb-2`},{default:(0,n.withCtx)(()=>[(0,n.createVNode)(q,{class:`text-base`},{default:(0,n.withCtx)(()=>[...F[5]||=[(0,n.createTextVNode)(`Channels Performance`,-1)]]),_:1})]),_:1}),(0,n.createVNode)($,{class:`p-0`},{default:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`div`,me,[(0,n.createElementVNode)(`table`,he,[F[6]||=(0,n.createElementVNode)(`thead`,null,[(0,n.createElementVNode)(`tr`,{class:`border-b text-left`},[(0,n.createElementVNode)(`th`,{class:`px-6 py-3 font-medium text-muted-foreground`},`Channel`),(0,n.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground text-right`},`Sessions`),(0,n.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground text-right`},`Users`),(0,n.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground text-right`},`New Users`),(0,n.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground text-right`},`Engage Rate`),(0,n.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground text-right`},`Avg Duration`)])],-1),(0,n.createElementVNode)(`tbody`,ge,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(H.value,(e,t)=>((0,n.openBlock)(),(0,n.createElementBlock)(`tr`,{key:e.sessionDefaultChannelGroup,class:`hover:bg-muted/50`},[(0,n.createElementVNode)(`td`,_e,[(0,n.createElementVNode)(`div`,ve,[(0,n.createElementVNode)(`div`,{class:`size-2.5 rounded-full shrink-0`,style:(0,n.normalizeStyle)({backgroundColor:J[t%J.length]})},null,4),(0,n.createElementVNode)(`span`,a,(0,n.toDisplayString)(e.sessionDefaultChannelGroup),1)])]),(0,n.createElementVNode)(`td`,o,(0,n.toDisplayString)(Y(e.sessions)),1),(0,n.createElementVNode)(`td`,s,(0,n.toDisplayString)(Y(e.totalUsers)),1),(0,n.createElementVNode)(`td`,c,(0,n.toDisplayString)(Y(e.newUsers)),1),(0,n.createElementVNode)(`td`,l,(0,n.toDisplayString)(X(e.engagementRate||0)),1),(0,n.createElementVNode)(`td`,u,(0,n.toDisplayString)(je(e.averageSessionDuration||0)),1)]))),128))])])]),H.value.length?(0,n.createCommentVNode)(``,!0):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,d,`No channel data available`))]),_:1})]),_:1})]),(0,n.createVNode)(L,null,{default:(0,n.withCtx)(()=>[(0,n.createVNode)(Q,{class:`pb-0`},{default:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`div`,f,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)([{key:`sources`,label:`Source / Medium`,icon:(0,n.unref)(r.Share2)},{key:`referrals`,label:`Referrals`,icon:(0,n.unref)(r.ExternalLink)},{key:`campaigns`,label:`Campaigns`,icon:(0,n.unref)(r.Megaphone)}],e=>((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{key:e.key,class:(0,n.normalizeClass)([`flex items-center gap-1.5 px-3 py-2 text-sm font-medium rounded-md transition-colors`,V.value===e.key?`bg-muted text-foreground`:`text-muted-foreground hover:text-foreground`]),onClick:t=>V.value=e.key},[((0,n.openBlock)(),(0,n.createBlock)((0,n.resolveDynamicComponent)(e.icon),{class:`size-3.5`})),(0,n.createTextVNode)(` `+(0,n.toDisplayString)(e.label),1)],10,p))),128))])]),_:1}),(0,n.createVNode)($,{class:`p-0 mt-4`},{default:(0,n.withCtx)(()=>[V.value===`sources`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,m,[(0,n.createElementVNode)(`div`,h,[(0,n.createElementVNode)(`table`,g,[F[7]||=(0,n.createElementVNode)(`thead`,null,[(0,n.createElementVNode)(`tr`,{class:`border-b text-left`},[(0,n.createElementVNode)(`th`,{class:`px-6 py-3 font-medium text-muted-foreground`},`#`),(0,n.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground`},`Source / Medium`),(0,n.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground text-right`},`Sessions`),(0,n.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground text-right`},`Users`),(0,n.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground text-right`},`New Users`),(0,n.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground text-right`},`Bounce Rate`)])],-1),(0,n.createElementVNode)(`tbody`,_,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(U.value,(e,t)=>((0,n.openBlock)(),(0,n.createElementBlock)(`tr`,{key:e.sessionSourceMedium,class:`hover:bg-muted/50`},[(0,n.createElementVNode)(`td`,v,(0,n.toDisplayString)(t+1),1),(0,n.createElementVNode)(`td`,y,(0,n.toDisplayString)(e.sessionSourceMedium),1),(0,n.createElementVNode)(`td`,b,(0,n.toDisplayString)(Y(e.sessions)),1),(0,n.createElementVNode)(`td`,x,(0,n.toDisplayString)(Y(e.totalUsers)),1),(0,n.createElementVNode)(`td`,S,(0,n.toDisplayString)(Y(e.newUsers)),1),(0,n.createElementVNode)(`td`,C,(0,n.toDisplayString)(X(e.bounceRate||0)),1)]))),128))])])]),U.value.length?(0,n.createCommentVNode)(``,!0):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,w,`No data available`))])):(0,n.createCommentVNode)(``,!0),V.value===`referrals`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,T,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(W.value,(e,t)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:e.sessionSource,class:`flex items-center justify-between px-6 py-3 text-sm hover:bg-muted/50`},[(0,n.createElementVNode)(`div`,E,[(0,n.createElementVNode)(`span`,D,(0,n.toDisplayString)(t+1),1),(0,n.createVNode)((0,n.unref)(r.ExternalLink),{class:`size-3.5 text-muted-foreground shrink-0`}),(0,n.createElementVNode)(`span`,O,(0,n.toDisplayString)(e.sessionSource),1)]),(0,n.createElementVNode)(`div`,k,[(0,n.createElementVNode)(`span`,A,(0,n.toDisplayString)(Y(e.sessions))+` sessions`,1),(0,n.createElementVNode)(`span`,j,(0,n.toDisplayString)(Y(e.totalUsers))+` users`,1),(0,n.createElementVNode)(`span`,M,(0,n.toDisplayString)(X(e.engagementRate||0))+` eng.`,1)])]))),128)),W.value.length?(0,n.createCommentVNode)(``,!0):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,N,`No referral data available`))])):(0,n.createCommentVNode)(``,!0),V.value===`campaigns`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,ye,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(G.value,(e,t)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:e.sessionCampaignName,class:`flex items-center justify-between px-6 py-3 text-sm hover:bg-muted/50`},[(0,n.createElementVNode)(`div`,P,[(0,n.createElementVNode)(`span`,be,(0,n.toDisplayString)(t+1),1),(0,n.createVNode)((0,n.unref)(r.Megaphone),{class:`size-3.5 text-muted-foreground shrink-0`}),(0,n.createElementVNode)(`span`,xe,(0,n.toDisplayString)(e.sessionCampaignName),1)]),(0,n.createElementVNode)(`div`,Se,[(0,n.createElementVNode)(`span`,Ce,(0,n.toDisplayString)(Y(e.sessions))+` sessions`,1),(0,n.createElementVNode)(`span`,we,(0,n.toDisplayString)(Y(e.totalUsers))+` users`,1),(0,n.createElementVNode)(`span`,Te,(0,n.toDisplayString)(X(e.engagementRate||0))+` eng.`,1)])]))),128)),G.value.length?(0,n.createCommentVNode)(``,!0):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,Ee,`No campaign data. Use UTM parameters in your URLs to track campaigns.`))])):(0,n.createCommentVNode)(``,!0)]),_:1})]),_:1})],64)):((0,n.openBlock)(),(0,n.createBlock)(L,{key:0,class:`p-8 text-center`},{default:(0,n.withCtx)(()=>[...F[1]||=[(0,n.createElementVNode)(`p`,{class:`text-lg font-medium`},`Setup required`,-1),(0,n.createElementVNode)(`p`,{class:`text-sm text-muted-foreground mt-2`},`Configure your GA4 property in module settings.`,-1)]]),_:1}))])}}});exports.default=F;
|
|
@@ -1,308 +0,0 @@
|
|
|
1
|
-
import { n as e, t } from "./single-container-BJmmqq65.mjs";
|
|
2
|
-
import { useModule as n, useModuleBreadcrumbs as r, useModuleRoute as i } from "@oneclick.dev/cms-kit";
|
|
3
|
-
import { Fragment as a, computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, normalizeClass as m, normalizeStyle as h, onMounted as g, openBlock as _, ref as v, renderList as y, resolveComponent as b, resolveDynamicComponent as ee, toDisplayString as x, unref as S, watch as C, withCtx as w } from "vue";
|
|
4
|
-
import { ExternalLink as T, Loader2 as te, Megaphone as E, RefreshCw as ne, Share2 as re } from "@lucide/vue";
|
|
5
|
-
//#region src/googleAnalytics/pages/Acquisition.vue?vue&type=script&setup=true&lang.ts
|
|
6
|
-
var ie = { class: "@container/charts flex flex-col gap-6 w-full max-w-7xl mx-auto py-8" }, ae = { class: "flex justify-between gap-4 flex-col @lg:flex-row @lg:items-center" }, oe = {
|
|
7
|
-
key: 0,
|
|
8
|
-
class: "flex items-center gap-2"
|
|
9
|
-
}, se = { class: "flex items-center border rounded-lg overflow-hidden" }, ce = ["onClick"], le = { class: "text-sm text-destructive font-medium" }, ue = {
|
|
10
|
-
key: 2,
|
|
11
|
-
class: "flex items-center justify-center py-20"
|
|
12
|
-
}, de = { class: "flex flex-col @4xl/charts:grid @4xl/charts:grid-cols-3 gap-6" }, fe = { class: "relative" }, pe = { class: "absolute inset-0 flex items-center justify-center pointer-events-none" }, me = { class: "text-center" }, he = { class: "text-2xl font-bold tabular-nums" }, ge = { class: "mt-4 grid grid-cols-2 gap-x-4 gap-y-1.5 w-full" }, D = { class: "text-xs truncate" }, O = { class: "text-xs text-muted-foreground ml-auto tabular-nums" }, k = { class: "overflow-x-auto" }, A = { class: "w-full text-sm" }, j = { class: "divide-y" }, M = { class: "px-6 py-3" }, N = { class: "flex items-center gap-2" }, P = { class: "font-medium" }, F = { class: "px-4 py-3 text-right tabular-nums" }, I = { class: "px-4 py-3 text-right tabular-nums" }, L = { class: "px-4 py-3 text-right tabular-nums" }, _e = { class: "px-4 py-3 text-right tabular-nums" }, ve = { class: "px-4 py-3 text-right tabular-nums" }, ye = {
|
|
13
|
-
key: 0,
|
|
14
|
-
class: "px-6 py-8 text-center text-muted-foreground text-sm"
|
|
15
|
-
}, be = { class: "flex items-center gap-4" }, xe = ["onClick"], Se = {
|
|
16
|
-
key: 0,
|
|
17
|
-
class: "divide-y"
|
|
18
|
-
}, Ce = { class: "overflow-x-auto" }, we = { class: "w-full text-sm" }, Te = { class: "divide-y" }, Ee = { class: "px-6 py-3 text-muted-foreground" }, De = { class: "px-4 py-3 font-mono text-xs" }, Oe = { class: "px-4 py-3 text-right tabular-nums" }, R = { class: "px-4 py-3 text-right tabular-nums" }, ke = { class: "px-4 py-3 text-right tabular-nums" }, Ae = { class: "px-4 py-3 text-right tabular-nums" }, je = {
|
|
19
|
-
key: 0,
|
|
20
|
-
class: "px-6 py-8 text-center text-muted-foreground text-sm"
|
|
21
|
-
}, Me = {
|
|
22
|
-
key: 1,
|
|
23
|
-
class: "divide-y"
|
|
24
|
-
}, Ne = { class: "flex items-center gap-3 min-w-0" }, Pe = { class: "text-muted-foreground w-5 text-right shrink-0" }, Fe = { class: "truncate font-medium" }, Ie = { class: "flex items-center gap-6 shrink-0 tabular-nums text-xs text-muted-foreground" }, Le = { class: "w-20 text-right" }, Re = { class: "w-16 text-right" }, ze = { class: "w-16 text-right" }, Be = {
|
|
25
|
-
key: 0,
|
|
26
|
-
class: "px-6 py-8 text-center text-muted-foreground text-sm"
|
|
27
|
-
}, Ve = {
|
|
28
|
-
key: 2,
|
|
29
|
-
class: "divide-y"
|
|
30
|
-
}, He = { class: "flex items-center gap-3 min-w-0" }, Ue = { class: "text-muted-foreground w-5 text-right shrink-0" }, We = { class: "truncate font-medium" }, Ge = { class: "flex items-center gap-6 shrink-0 tabular-nums text-xs text-muted-foreground" }, Ke = { class: "w-20 text-right" }, qe = { class: "w-16 text-right" }, Je = { class: "w-16 text-right" }, Ye = {
|
|
31
|
-
key: 0,
|
|
32
|
-
class: "px-6 py-8 text-center text-muted-foreground text-sm"
|
|
33
|
-
}, z = /* @__PURE__ */ p({
|
|
34
|
-
__name: "Acquisition",
|
|
35
|
-
setup(p) {
|
|
36
|
-
let { config: z } = n(), { moduleId: Xe } = i();
|
|
37
|
-
r(() => [{ label: "Acquisition" }]);
|
|
38
|
-
let B = v(!0), V = v(null), H = v("30"), U = v("sources"), W = v([]), G = v([]), K = v([]), q = v([]), J = o(() => !!(z.serviceAccount && z.propertyId));
|
|
39
|
-
function Y(e) {
|
|
40
|
-
return `/api/v1/modules/${Xe}${e}`;
|
|
41
|
-
}
|
|
42
|
-
let Ze = [
|
|
43
|
-
{
|
|
44
|
-
label: "7d",
|
|
45
|
-
value: "7"
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
label: "14d",
|
|
49
|
-
value: "14"
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
label: "30d",
|
|
53
|
-
value: "30"
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
label: "90d",
|
|
57
|
-
value: "90"
|
|
58
|
-
}
|
|
59
|
-
], X = [
|
|
60
|
-
"#3b82f6",
|
|
61
|
-
"#8b5cf6",
|
|
62
|
-
"#10b981",
|
|
63
|
-
"#f59e0b",
|
|
64
|
-
"#ef4444",
|
|
65
|
-
"#06b6d4",
|
|
66
|
-
"#ec4899",
|
|
67
|
-
"#84cc16",
|
|
68
|
-
"#f97316",
|
|
69
|
-
"#6366f1",
|
|
70
|
-
"#14b8a6",
|
|
71
|
-
"#e11d48",
|
|
72
|
-
"#a855f7",
|
|
73
|
-
"#22c55e",
|
|
74
|
-
"#eab308"
|
|
75
|
-
], Qe = o(() => {
|
|
76
|
-
let e = {};
|
|
77
|
-
return W.value.forEach((t, n) => {
|
|
78
|
-
let r = (t.sessionDefaultChannelGroup || "other").toLowerCase().replace(/[^a-z0-9]/g, "_");
|
|
79
|
-
e[r] = {
|
|
80
|
-
label: t.sessionDefaultChannelGroup || "Other",
|
|
81
|
-
color: X[n % X.length]
|
|
82
|
-
};
|
|
83
|
-
}), e;
|
|
84
|
-
}), $e = o(() => W.value.map((e, t) => ({
|
|
85
|
-
key: (e.sessionDefaultChannelGroup || "other").toLowerCase().replace(/[^a-z0-9]/g, "_"),
|
|
86
|
-
label: e.sessionDefaultChannelGroup || "Other",
|
|
87
|
-
sessions: e.sessions || 0,
|
|
88
|
-
fill: X[t % X.length]
|
|
89
|
-
}))), et = o(() => W.value.reduce((e, t) => e + (t.sessions || 0), 0));
|
|
90
|
-
function Z(e) {
|
|
91
|
-
return e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).toFixed(1)}K` : Math.round(e).toString();
|
|
92
|
-
}
|
|
93
|
-
function Q(e) {
|
|
94
|
-
return `${(e * 100).toFixed(1)}%`;
|
|
95
|
-
}
|
|
96
|
-
function tt(e) {
|
|
97
|
-
let t = Math.floor(e / 60), n = Math.round(e % 60);
|
|
98
|
-
return t > 0 ? `${t}m ${n}s` : `${n}s`;
|
|
99
|
-
}
|
|
100
|
-
async function $() {
|
|
101
|
-
if (!J.value) return;
|
|
102
|
-
B.value = !0, V.value = null;
|
|
103
|
-
let e = `${H.value}daysAgo`;
|
|
104
|
-
try {
|
|
105
|
-
let [t, n, r, i] = await Promise.all([
|
|
106
|
-
$fetch(Y(`/acquisition/channels?startDate=${e}&endDate=today`)),
|
|
107
|
-
$fetch(Y(`/acquisition/source-medium?startDate=${e}&endDate=today`)),
|
|
108
|
-
$fetch(Y(`/acquisition/referrals?startDate=${e}&endDate=today`)).catch(() => ({ rows: [] })),
|
|
109
|
-
$fetch(Y(`/acquisition/campaigns?startDate=${e}&endDate=today`)).catch(() => ({ rows: [] }))
|
|
110
|
-
]);
|
|
111
|
-
W.value = t.rows || [], G.value = n.rows || [], K.value = r.rows || [], q.value = i.rows || [];
|
|
112
|
-
} catch (e) {
|
|
113
|
-
V.value = e?.data?.statusMessage || e?.message || "Failed to load acquisition data";
|
|
114
|
-
} finally {
|
|
115
|
-
B.value = !1;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
return C(H, () => $()), g(() => {
|
|
119
|
-
J.value ? $() : B.value = !1;
|
|
120
|
-
}), (n, r) => {
|
|
121
|
-
let i = b("Button"), o = b("Card"), p = b("CardTitle"), g = b("CardHeader"), v = b("ChartContainer"), C = b("CardContent");
|
|
122
|
-
return _(), l("div", ie, [u("div", ae, [r[0] ||= u("div", null, [u("h1", { class: "text-2xl font-semibold" }, "Acquisition"), u("p", { class: "text-muted-foreground text-sm mt-1" }, "Where your traffic comes from")], -1), J.value ? (_(), l("div", oe, [u("div", se, [(_(), l(a, null, y(Ze, (e) => u("button", {
|
|
123
|
-
key: e.value,
|
|
124
|
-
class: m(["px-3 py-1.5 text-xs font-medium transition-colors", H.value === e.value ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:text-foreground hover:bg-muted"]),
|
|
125
|
-
onClick: (t) => H.value = e.value
|
|
126
|
-
}, x(e.label), 11, ce)), 64))]), f(i, {
|
|
127
|
-
variant: "outline",
|
|
128
|
-
size: "icon",
|
|
129
|
-
onClick: $,
|
|
130
|
-
disabled: B.value
|
|
131
|
-
}, {
|
|
132
|
-
default: w(() => [f(S(ne), { class: m(["size-4", { "animate-spin": B.value }]) }, null, 8, ["class"])]),
|
|
133
|
-
_: 1
|
|
134
|
-
}, 8, ["disabled"])])) : c("", !0)]), J.value ? V.value ? (_(), s(o, {
|
|
135
|
-
key: 1,
|
|
136
|
-
class: "p-6 border-destructive/50 bg-destructive/5"
|
|
137
|
-
}, {
|
|
138
|
-
default: w(() => [u("p", le, x(V.value), 1), f(i, {
|
|
139
|
-
variant: "outline",
|
|
140
|
-
size: "sm",
|
|
141
|
-
class: "mt-3",
|
|
142
|
-
onClick: $
|
|
143
|
-
}, {
|
|
144
|
-
default: w(() => [...r[2] ||= [d("Retry", -1)]]),
|
|
145
|
-
_: 1
|
|
146
|
-
})]),
|
|
147
|
-
_: 1
|
|
148
|
-
})) : B.value ? (_(), l("div", ue, [f(S(te), { class: "size-8 animate-spin text-muted-foreground" })])) : (_(), l(a, { key: 3 }, [u("div", de, [f(o, { class: "@4xl/charts:col-span-1" }, {
|
|
149
|
-
default: w(() => [f(g, { class: "pb-2" }, {
|
|
150
|
-
default: w(() => [f(p, { class: "text-base" }, {
|
|
151
|
-
default: w(() => [...r[3] ||= [d("Channel Mix", -1)]]),
|
|
152
|
-
_: 1
|
|
153
|
-
})]),
|
|
154
|
-
_: 1
|
|
155
|
-
}), f(C, { class: "flex flex-col items-center" }, {
|
|
156
|
-
default: w(() => [u("div", fe, [f(v, {
|
|
157
|
-
config: Qe.value,
|
|
158
|
-
class: "mx-auto aspect-square max-h-[220px]"
|
|
159
|
-
}, {
|
|
160
|
-
default: w(() => [f(S(t), {
|
|
161
|
-
data: $e.value,
|
|
162
|
-
margin: {
|
|
163
|
-
top: 20,
|
|
164
|
-
bottom: 20,
|
|
165
|
-
left: 20,
|
|
166
|
-
right: 20
|
|
167
|
-
}
|
|
168
|
-
}, {
|
|
169
|
-
default: w(() => [f(S(e), {
|
|
170
|
-
value: (e) => e.sessions,
|
|
171
|
-
color: (e) => e.fill,
|
|
172
|
-
arcWidth: 40,
|
|
173
|
-
padAngle: .02,
|
|
174
|
-
cornerRadius: 4
|
|
175
|
-
}, null, 8, ["value", "color"])]),
|
|
176
|
-
_: 1
|
|
177
|
-
}, 8, ["data"])]),
|
|
178
|
-
_: 1
|
|
179
|
-
}, 8, ["config"]), u("div", pe, [u("div", me, [u("p", he, x(Z(et.value)), 1), r[4] ||= u("p", { class: "text-xs text-muted-foreground" }, "sessions", -1)])])]), u("div", ge, [(_(!0), l(a, null, y(W.value.slice(0, 8), (e, t) => (_(), l("div", {
|
|
180
|
-
key: e.sessionDefaultChannelGroup,
|
|
181
|
-
class: "flex items-center gap-2"
|
|
182
|
-
}, [
|
|
183
|
-
u("div", {
|
|
184
|
-
class: "size-2.5 rounded-full shrink-0",
|
|
185
|
-
style: h({ backgroundColor: X[t % X.length] })
|
|
186
|
-
}, null, 4),
|
|
187
|
-
u("span", D, x(e.sessionDefaultChannelGroup), 1),
|
|
188
|
-
u("span", O, x(Z(e.sessions)), 1)
|
|
189
|
-
]))), 128))])]),
|
|
190
|
-
_: 1
|
|
191
|
-
})]),
|
|
192
|
-
_: 1
|
|
193
|
-
}), f(o, { class: "@4xl/charts:col-span-2" }, {
|
|
194
|
-
default: w(() => [f(g, { class: "pb-2" }, {
|
|
195
|
-
default: w(() => [f(p, { class: "text-base" }, {
|
|
196
|
-
default: w(() => [...r[5] ||= [d("Channels Performance", -1)]]),
|
|
197
|
-
_: 1
|
|
198
|
-
})]),
|
|
199
|
-
_: 1
|
|
200
|
-
}), f(C, { class: "p-0" }, {
|
|
201
|
-
default: w(() => [u("div", k, [u("table", A, [r[6] ||= u("thead", null, [u("tr", { class: "border-b text-left" }, [
|
|
202
|
-
u("th", { class: "px-6 py-3 font-medium text-muted-foreground" }, "Channel"),
|
|
203
|
-
u("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "Sessions"),
|
|
204
|
-
u("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "Users"),
|
|
205
|
-
u("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "New Users"),
|
|
206
|
-
u("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "Engage Rate"),
|
|
207
|
-
u("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "Avg Duration")
|
|
208
|
-
])], -1), u("tbody", j, [(_(!0), l(a, null, y(W.value, (e, t) => (_(), l("tr", {
|
|
209
|
-
key: e.sessionDefaultChannelGroup,
|
|
210
|
-
class: "hover:bg-muted/50"
|
|
211
|
-
}, [
|
|
212
|
-
u("td", M, [u("div", N, [u("div", {
|
|
213
|
-
class: "size-2.5 rounded-full shrink-0",
|
|
214
|
-
style: h({ backgroundColor: X[t % X.length] })
|
|
215
|
-
}, null, 4), u("span", P, x(e.sessionDefaultChannelGroup), 1)])]),
|
|
216
|
-
u("td", F, x(Z(e.sessions)), 1),
|
|
217
|
-
u("td", I, x(Z(e.totalUsers)), 1),
|
|
218
|
-
u("td", L, x(Z(e.newUsers)), 1),
|
|
219
|
-
u("td", _e, x(Q(e.engagementRate || 0)), 1),
|
|
220
|
-
u("td", ve, x(tt(e.averageSessionDuration || 0)), 1)
|
|
221
|
-
]))), 128))])])]), W.value.length ? c("", !0) : (_(), l("div", ye, "No channel data available"))]),
|
|
222
|
-
_: 1
|
|
223
|
-
})]),
|
|
224
|
-
_: 1
|
|
225
|
-
})]), f(o, null, {
|
|
226
|
-
default: w(() => [f(g, { class: "pb-0" }, {
|
|
227
|
-
default: w(() => [u("div", be, [(_(!0), l(a, null, y([
|
|
228
|
-
{
|
|
229
|
-
key: "sources",
|
|
230
|
-
label: "Source / Medium",
|
|
231
|
-
icon: S(re)
|
|
232
|
-
},
|
|
233
|
-
{
|
|
234
|
-
key: "referrals",
|
|
235
|
-
label: "Referrals",
|
|
236
|
-
icon: S(T)
|
|
237
|
-
},
|
|
238
|
-
{
|
|
239
|
-
key: "campaigns",
|
|
240
|
-
label: "Campaigns",
|
|
241
|
-
icon: S(E)
|
|
242
|
-
}
|
|
243
|
-
], (e) => (_(), l("button", {
|
|
244
|
-
key: e.key,
|
|
245
|
-
class: m(["flex items-center gap-1.5 px-3 py-2 text-sm font-medium rounded-md transition-colors", U.value === e.key ? "bg-muted text-foreground" : "text-muted-foreground hover:text-foreground"]),
|
|
246
|
-
onClick: (t) => U.value = e.key
|
|
247
|
-
}, [(_(), s(ee(e.icon), { class: "size-3.5" })), d(" " + x(e.label), 1)], 10, xe))), 128))])]),
|
|
248
|
-
_: 1
|
|
249
|
-
}), f(C, { class: "p-0 mt-4" }, {
|
|
250
|
-
default: w(() => [
|
|
251
|
-
U.value === "sources" ? (_(), l("div", Se, [u("div", Ce, [u("table", we, [r[7] ||= u("thead", null, [u("tr", { class: "border-b text-left" }, [
|
|
252
|
-
u("th", { class: "px-6 py-3 font-medium text-muted-foreground" }, "#"),
|
|
253
|
-
u("th", { class: "px-4 py-3 font-medium text-muted-foreground" }, "Source / Medium"),
|
|
254
|
-
u("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "Sessions"),
|
|
255
|
-
u("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "Users"),
|
|
256
|
-
u("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "New Users"),
|
|
257
|
-
u("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "Bounce Rate")
|
|
258
|
-
])], -1), u("tbody", Te, [(_(!0), l(a, null, y(G.value, (e, t) => (_(), l("tr", {
|
|
259
|
-
key: e.sessionSourceMedium,
|
|
260
|
-
class: "hover:bg-muted/50"
|
|
261
|
-
}, [
|
|
262
|
-
u("td", Ee, x(t + 1), 1),
|
|
263
|
-
u("td", De, x(e.sessionSourceMedium), 1),
|
|
264
|
-
u("td", Oe, x(Z(e.sessions)), 1),
|
|
265
|
-
u("td", R, x(Z(e.totalUsers)), 1),
|
|
266
|
-
u("td", ke, x(Z(e.newUsers)), 1),
|
|
267
|
-
u("td", Ae, x(Q(e.bounceRate || 0)), 1)
|
|
268
|
-
]))), 128))])])]), G.value.length ? c("", !0) : (_(), l("div", je, "No data available"))])) : c("", !0),
|
|
269
|
-
U.value === "referrals" ? (_(), l("div", Me, [(_(!0), l(a, null, y(K.value, (e, t) => (_(), l("div", {
|
|
270
|
-
key: e.sessionSource,
|
|
271
|
-
class: "flex items-center justify-between px-6 py-3 text-sm hover:bg-muted/50"
|
|
272
|
-
}, [u("div", Ne, [
|
|
273
|
-
u("span", Pe, x(t + 1), 1),
|
|
274
|
-
f(S(T), { class: "size-3.5 text-muted-foreground shrink-0" }),
|
|
275
|
-
u("span", Fe, x(e.sessionSource), 1)
|
|
276
|
-
]), u("div", Ie, [
|
|
277
|
-
u("span", Le, x(Z(e.sessions)) + " sessions", 1),
|
|
278
|
-
u("span", Re, x(Z(e.totalUsers)) + " users", 1),
|
|
279
|
-
u("span", ze, x(Q(e.engagementRate || 0)) + " eng.", 1)
|
|
280
|
-
])]))), 128)), K.value.length ? c("", !0) : (_(), l("div", Be, "No referral data available"))])) : c("", !0),
|
|
281
|
-
U.value === "campaigns" ? (_(), l("div", Ve, [(_(!0), l(a, null, y(q.value, (e, t) => (_(), l("div", {
|
|
282
|
-
key: e.sessionCampaignName,
|
|
283
|
-
class: "flex items-center justify-between px-6 py-3 text-sm hover:bg-muted/50"
|
|
284
|
-
}, [u("div", He, [
|
|
285
|
-
u("span", Ue, x(t + 1), 1),
|
|
286
|
-
f(S(E), { class: "size-3.5 text-muted-foreground shrink-0" }),
|
|
287
|
-
u("span", We, x(e.sessionCampaignName), 1)
|
|
288
|
-
]), u("div", Ge, [
|
|
289
|
-
u("span", Ke, x(Z(e.sessions)) + " sessions", 1),
|
|
290
|
-
u("span", qe, x(Z(e.totalUsers)) + " users", 1),
|
|
291
|
-
u("span", Je, x(Q(e.engagementRate || 0)) + " eng.", 1)
|
|
292
|
-
])]))), 128)), q.value.length ? c("", !0) : (_(), l("div", Ye, "No campaign data. Use UTM parameters in your URLs to track campaigns."))])) : c("", !0)
|
|
293
|
-
]),
|
|
294
|
-
_: 1
|
|
295
|
-
})]),
|
|
296
|
-
_: 1
|
|
297
|
-
})], 64)) : (_(), s(o, {
|
|
298
|
-
key: 0,
|
|
299
|
-
class: "p-8 text-center"
|
|
300
|
-
}, {
|
|
301
|
-
default: w(() => [...r[1] ||= [u("p", { class: "text-lg font-medium" }, "Setup required", -1), u("p", { class: "text-sm text-muted-foreground mt-2" }, "Configure your GA4 property in module settings.", -1)]]),
|
|
302
|
-
_: 1
|
|
303
|
-
}))]);
|
|
304
|
-
};
|
|
305
|
-
}
|
|
306
|
-
});
|
|
307
|
-
//#endregion
|
|
308
|
-
export { z as default };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`./chunk-DQi1bQcV.js`);let e=require(`vue`),t=require(`@lucide/vue`);var n={class:`w-full`},r={key:0,class:`flex items-center gap-2 py-3`},i={key:1,class:`text-xs text-destructive py-2`},a={key:2,class:`rounded-xl border bg-background p-3 space-y-3`},o={class:`relative flex items-start gap-3`},s={class:`shrink-0 size-10 rounded-lg bg-primary/10 flex items-center justify-center`},c={class:`flex-1 min-w-0 pr-10`},l={class:`text-sm font-semibold truncate`},u={class:`text-xs text-muted-foreground`},d={key:0,class:`text-xs text-muted-foreground text-center py-2`},f={key:1,class:`space-y-2`},p={class:`flex items-center justify-between`},m={class:`text-xs font-medium`},h={key:0,class:`text-[10px] font-medium px-1.5 py-0.5 rounded-full bg-amber-50 dark:bg-amber-900/20 text-amber-600 dark:text-amber-400 uppercase`},g={key:0,class:`flex items-center gap-1.5 text-xs text-red-500`},_={key:1,class:`space-y-0.5`},v={key:2,class:`text-xs text-muted-foreground`},y=(0,e.defineComponent)({__name:`AgendaOpeningHoursCard`,props:{toolName:{},projectSlug:{},instanceId:{},instanceName:{},moduleType:{},resolvedArgs:{},status:{}},emits:[`submit`],setup(y,{emit:b}){let{$useModuleApi:x}=useNuxtApp(),S=y,C=b,w=x(S.instanceId),T=(0,e.ref)(!0),E=(0,e.ref)(null),D=(0,e.ref)(null),O=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`];async function k(){let{agendaId:e,date:t}=S.resolvedArgs||{};if(!e||!t){E.value=`Agenda ID and date are required`,T.value=!1,A(`Error: ${E.value}`);return}T.value=!0,E.value=null;try{let n=await w.get(`/agendas/${e}/opening-hours?date=${t}`);D.value=n,A({agendaId:n.agendaId,serviceName:n.serviceName,date:n.date,resources:n.resources.map(e=>({resourceId:e.resourceId,resourceName:e.resourceName,isClosed:e.isClosed,hours:e.hours,isException:e.isException}))})}catch(e){E.value=e?.data?.statusMessage||e?.message||`Failed to load opening hours`,A(`Error loading opening hours: ${E.value}`)}finally{T.value=!1}}(0,e.onMounted)(()=>{k()});function A(e){S.status!==`completed`&&C(`submit`,e)}let j=(0,e.computed)(()=>{if(!D.value?.date)return``;let e=new Date(D.value.date+`T00:00:00`);return`${O[e.getDay()]}, ${e.toLocaleDateString(`en-US`,{month:`long`,day:`numeric`,year:`numeric`})}`});return(b,x)=>{let S=(0,e.resolveComponent)(`DropdownMenuTrigger`),C=(0,e.resolveComponent)(`NuxtLink`),w=(0,e.resolveComponent)(`DropdownMenuItem`),O=(0,e.resolveComponent)(`DropdownMenuContent`),k=(0,e.resolveComponent)(`DropdownMenu`);return(0,e.openBlock)(),(0,e.createElementBlock)(`div`,n,[(0,e.unref)(T)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,r,[(0,e.createVNode)((0,e.unref)(t.Loader2),{class:`size-4 animate-spin text-muted-foreground`}),x[0]||=(0,e.createElementVNode)(`span`,{class:`text-xs text-muted-foreground`},`Loading opening hours…`,-1)])):(0,e.unref)(E)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,i,(0,e.toDisplayString)((0,e.unref)(E)),1)):(0,e.unref)(D)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,a,[(0,e.createElementVNode)(`div`,o,[(0,e.createElementVNode)(`div`,s,[(0,e.createVNode)((0,e.unref)(t.CalendarDays),{class:`size-5 text-primary`})]),(0,e.createElementVNode)(`div`,c,[(0,e.createElementVNode)(`p`,l,(0,e.toDisplayString)((0,e.unref)(D).serviceName),1),(0,e.createElementVNode)(`p`,u,(0,e.toDisplayString)((0,e.unref)(j)),1)]),(0,e.createVNode)(k,null,{default:(0,e.withCtx)(()=>[(0,e.createVNode)(S,{class:`absolute top-2 right-2`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(t.Settings),{class:`size-4 text-muted-foreground hover:text-foreground transition-colors`})]),_:1}),(0,e.createVNode)(O,{align:`end`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)(w,{"as-child":``},{default:(0,e.withCtx)(()=>[(0,e.createVNode)(C,{to:`/projects/${y.projectSlug}/modules/${y.instanceId}/edit/${y.resolvedArgs.agendaId}/resources`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(t.CalendarCog),{class:`size-4`}),x[1]||=(0,e.createTextVNode)(` Regular hours `,-1)]),_:1},8,[`to`])]),_:1}),(0,e.createVNode)(w,{"as-child":``},{default:(0,e.withCtx)(()=>[(0,e.createVNode)(C,{to:`/projects/${y.projectSlug}/modules/${y.instanceId}/edit/${y.resolvedArgs.agendaId}/exceptions`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(t.CalendarCog),{class:`size-4`}),x[2]||=(0,e.createTextVNode)(` Closures & exceptions `,-1)]),_:1},8,[`to`])]),_:1})]),_:1})]),_:1})]),(0,e.unref)(D).resources.length===0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,d,` No active resources found for this agenda. `)):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,f,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)((0,e.unref)(D).resources,n=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:n.resourceId,class:`rounded-lg border px-3 py-2 space-y-1`},[(0,e.createElementVNode)(`div`,p,[(0,e.createElementVNode)(`span`,m,(0,e.toDisplayString)(n.resourceName),1),n.isException?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,h,` Exception `)):(0,e.createCommentVNode)(``,!0)]),n.isClosed?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,g,[(0,e.createVNode)((0,e.unref)(t.BanIcon),{class:`size-3`}),x[3]||=(0,e.createElementVNode)(`span`,null,`Closed`,-1)])):n.hours.length>0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,_,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(n.hours,(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:r,class:`flex items-center gap-1.5 text-xs text-muted-foreground`},[(0,e.createVNode)((0,e.unref)(t.Clock),{class:`size-3`}),(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)(n.start)+` – `+(0,e.toDisplayString)(n.end),1)]))),128))])):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,v,` No hours set `))]))),128))]))])):(0,e.createCommentVNode)(``,!0)])}}});exports.default=y;
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { Fragment as e, computed as t, createCommentVNode as n, createElementBlock as r, createElementVNode as i, createTextVNode as a, createVNode as o, defineComponent as s, onMounted as c, openBlock as l, ref as u, renderList as d, resolveComponent as f, toDisplayString as p, unref as m, withCtx as h } from "vue";
|
|
2
|
-
import { BanIcon as g, CalendarCog as _, CalendarDays as v, Clock as y, Loader2 as b, Settings as x } from "@lucide/vue";
|
|
3
|
-
//#region src/appointments/chat-components/AgendaOpeningHoursCard.vue?vue&type=script&setup=true&lang.ts
|
|
4
|
-
var S = { class: "w-full" }, C = {
|
|
5
|
-
key: 0,
|
|
6
|
-
class: "flex items-center gap-2 py-3"
|
|
7
|
-
}, w = {
|
|
8
|
-
key: 1,
|
|
9
|
-
class: "text-xs text-destructive py-2"
|
|
10
|
-
}, T = {
|
|
11
|
-
key: 2,
|
|
12
|
-
class: "rounded-xl border bg-background p-3 space-y-3"
|
|
13
|
-
}, E = { class: "relative flex items-start gap-3" }, D = { class: "shrink-0 size-10 rounded-lg bg-primary/10 flex items-center justify-center" }, O = { class: "flex-1 min-w-0 pr-10" }, k = { class: "text-sm font-semibold truncate" }, A = { class: "text-xs text-muted-foreground" }, j = {
|
|
14
|
-
key: 0,
|
|
15
|
-
class: "text-xs text-muted-foreground text-center py-2"
|
|
16
|
-
}, M = {
|
|
17
|
-
key: 1,
|
|
18
|
-
class: "space-y-2"
|
|
19
|
-
}, N = { class: "flex items-center justify-between" }, P = { class: "text-xs font-medium" }, F = {
|
|
20
|
-
key: 0,
|
|
21
|
-
class: "text-[10px] font-medium px-1.5 py-0.5 rounded-full bg-amber-50 dark:bg-amber-900/20 text-amber-600 dark:text-amber-400 uppercase"
|
|
22
|
-
}, I = {
|
|
23
|
-
key: 0,
|
|
24
|
-
class: "flex items-center gap-1.5 text-xs text-red-500"
|
|
25
|
-
}, L = {
|
|
26
|
-
key: 1,
|
|
27
|
-
class: "space-y-0.5"
|
|
28
|
-
}, R = {
|
|
29
|
-
key: 2,
|
|
30
|
-
class: "text-xs text-muted-foreground"
|
|
31
|
-
}, z = /* @__PURE__ */ s({
|
|
32
|
-
__name: "AgendaOpeningHoursCard",
|
|
33
|
-
props: {
|
|
34
|
-
toolName: {},
|
|
35
|
-
projectSlug: {},
|
|
36
|
-
instanceId: {},
|
|
37
|
-
instanceName: {},
|
|
38
|
-
moduleType: {},
|
|
39
|
-
resolvedArgs: {},
|
|
40
|
-
status: {}
|
|
41
|
-
},
|
|
42
|
-
emits: ["submit"],
|
|
43
|
-
setup(s, { emit: z }) {
|
|
44
|
-
let { $useModuleApi: B } = useNuxtApp(), V = s, H = z, U = B(V.instanceId), W = u(!0), G = u(null), K = u(null), q = [
|
|
45
|
-
"Sunday",
|
|
46
|
-
"Monday",
|
|
47
|
-
"Tuesday",
|
|
48
|
-
"Wednesday",
|
|
49
|
-
"Thursday",
|
|
50
|
-
"Friday",
|
|
51
|
-
"Saturday"
|
|
52
|
-
];
|
|
53
|
-
async function J() {
|
|
54
|
-
let { agendaId: e, date: t } = V.resolvedArgs || {};
|
|
55
|
-
if (!e || !t) {
|
|
56
|
-
G.value = "Agenda ID and date are required", W.value = !1, Y(`Error: ${G.value}`);
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
W.value = !0, G.value = null;
|
|
60
|
-
try {
|
|
61
|
-
let n = await U.get(`/agendas/${e}/opening-hours?date=${t}`);
|
|
62
|
-
K.value = n, Y({
|
|
63
|
-
agendaId: n.agendaId,
|
|
64
|
-
serviceName: n.serviceName,
|
|
65
|
-
date: n.date,
|
|
66
|
-
resources: n.resources.map((e) => ({
|
|
67
|
-
resourceId: e.resourceId,
|
|
68
|
-
resourceName: e.resourceName,
|
|
69
|
-
isClosed: e.isClosed,
|
|
70
|
-
hours: e.hours,
|
|
71
|
-
isException: e.isException
|
|
72
|
-
}))
|
|
73
|
-
});
|
|
74
|
-
} catch (e) {
|
|
75
|
-
G.value = e?.data?.statusMessage || e?.message || "Failed to load opening hours", Y(`Error loading opening hours: ${G.value}`);
|
|
76
|
-
} finally {
|
|
77
|
-
W.value = !1;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
c(() => {
|
|
81
|
-
J();
|
|
82
|
-
});
|
|
83
|
-
function Y(e) {
|
|
84
|
-
V.status !== "completed" && H("submit", e);
|
|
85
|
-
}
|
|
86
|
-
let X = t(() => {
|
|
87
|
-
if (!K.value?.date) return "";
|
|
88
|
-
let e = /* @__PURE__ */ new Date(K.value.date + "T00:00:00");
|
|
89
|
-
return `${q[e.getDay()]}, ${e.toLocaleDateString("en-US", {
|
|
90
|
-
month: "long",
|
|
91
|
-
day: "numeric",
|
|
92
|
-
year: "numeric"
|
|
93
|
-
})}`;
|
|
94
|
-
});
|
|
95
|
-
return (t, c) => {
|
|
96
|
-
let u = f("DropdownMenuTrigger"), z = f("NuxtLink"), B = f("DropdownMenuItem"), V = f("DropdownMenuContent"), H = f("DropdownMenu");
|
|
97
|
-
return l(), r("div", S, [m(W) ? (l(), r("div", C, [o(m(b), { class: "size-4 animate-spin text-muted-foreground" }), c[0] ||= i("span", { class: "text-xs text-muted-foreground" }, "Loading opening hours…", -1)])) : m(G) ? (l(), r("div", w, p(m(G)), 1)) : m(K) ? (l(), r("div", T, [i("div", E, [
|
|
98
|
-
i("div", D, [o(m(v), { class: "size-5 text-primary" })]),
|
|
99
|
-
i("div", O, [i("p", k, p(m(K).serviceName), 1), i("p", A, p(m(X)), 1)]),
|
|
100
|
-
o(H, null, {
|
|
101
|
-
default: h(() => [o(u, { class: "absolute top-2 right-2" }, {
|
|
102
|
-
default: h(() => [o(m(x), { class: "size-4 text-muted-foreground hover:text-foreground transition-colors" })]),
|
|
103
|
-
_: 1
|
|
104
|
-
}), o(V, { align: "end" }, {
|
|
105
|
-
default: h(() => [o(B, { "as-child": "" }, {
|
|
106
|
-
default: h(() => [o(z, { to: `/projects/${s.projectSlug}/modules/${s.instanceId}/edit/${s.resolvedArgs.agendaId}/resources` }, {
|
|
107
|
-
default: h(() => [o(m(_), { class: "size-4" }), c[1] ||= a(" Regular hours ", -1)]),
|
|
108
|
-
_: 1
|
|
109
|
-
}, 8, ["to"])]),
|
|
110
|
-
_: 1
|
|
111
|
-
}), o(B, { "as-child": "" }, {
|
|
112
|
-
default: h(() => [o(z, { to: `/projects/${s.projectSlug}/modules/${s.instanceId}/edit/${s.resolvedArgs.agendaId}/exceptions` }, {
|
|
113
|
-
default: h(() => [o(m(_), { class: "size-4" }), c[2] ||= a(" Closures & exceptions ", -1)]),
|
|
114
|
-
_: 1
|
|
115
|
-
}, 8, ["to"])]),
|
|
116
|
-
_: 1
|
|
117
|
-
})]),
|
|
118
|
-
_: 1
|
|
119
|
-
})]),
|
|
120
|
-
_: 1
|
|
121
|
-
})
|
|
122
|
-
]), m(K).resources.length === 0 ? (l(), r("div", j, " No active resources found for this agenda. ")) : (l(), r("div", M, [(l(!0), r(e, null, d(m(K).resources, (t) => (l(), r("div", {
|
|
123
|
-
key: t.resourceId,
|
|
124
|
-
class: "rounded-lg border px-3 py-2 space-y-1"
|
|
125
|
-
}, [i("div", N, [i("span", P, p(t.resourceName), 1), t.isException ? (l(), r("span", F, " Exception ")) : n("", !0)]), t.isClosed ? (l(), r("div", I, [o(m(g), { class: "size-3" }), c[3] ||= i("span", null, "Closed", -1)])) : t.hours.length > 0 ? (l(), r("div", L, [(l(!0), r(e, null, d(t.hours, (e, t) => (l(), r("div", {
|
|
126
|
-
key: t,
|
|
127
|
-
class: "flex items-center gap-1.5 text-xs text-muted-foreground"
|
|
128
|
-
}, [o(m(y), { class: "size-3" }), i("span", null, p(e.start) + " – " + p(e.end), 1)]))), 128))])) : (l(), r("div", R, " No hours set "))]))), 128))]))])) : n("", !0)]);
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
//#endregion
|
|
133
|
-
export { z as default };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`./chunk-DQi1bQcV.js`);let e=require(`vue`),t=require(`@lucide/vue`);var n={class:`w-full`},r={key:0,class:`flex items-center gap-2 py-3`},i={key:1,class:`text-xs text-destructive py-2`},a={key:2,class:`rounded-xl border bg-background p-4 text-center`},o={key:3,class:`space-y-3`},s={class:`flex items-start gap-3`},c={class:`shrink-0 size-10 rounded-lg bg-primary/10 flex items-center justify-center`},l={class:`flex-1 min-w-0`},u={class:`text-sm font-semibold truncate`},d={class:`flex items-center gap-2 mt-1 flex-wrap`},f={key:0,class:`text-xs font-medium`},p={class:`grid grid-cols-2 gap-2 text-xs text-muted-foreground`},m={class:`flex items-center gap-1.5`},h={class:`truncate`},g={class:`flex items-center gap-1.5`},_={class:`flex items-center gap-1.5`},v={class:`flex items-center gap-1.5`},y=(0,e.defineComponent)({__name:`AppointmentDetailsCard`,props:{toolName:{},instanceId:{},instanceName:{},moduleType:{},resolvedArgs:{},status:{}},emits:[`submit`],setup(y,{emit:b}){let{$useRoute:x,$useModuleApi:S}=useNuxtApp(),C=y,w=b,T=x(),E=(0,e.computed)(()=>T.params.slug),D=S(C.instanceId),O=(0,e.ref)(!0),k=(0,e.ref)(null),A=(0,e.ref)([]);async function j(){let{name:e,email:t,date:n}=C.resolvedArgs||{};if(!n){k.value=`No date provided`,O.value=!1;return}O.value=!0,k.value=null;try{let r=new URLSearchParams;e&&r.set(`name`,e),t&&r.set(`email`,t),n&&r.set(`date`,n),A.value=(await D.get(`/appointments/find?${r.toString()}`)).appointments||[],M({count:A.value.length,appointments:A.value.map(e=>({orderId:e.orderId,reservationId:e.reservationId,customerName:`${e.customerInfo?.firstName||``} ${e.customerInfo?.lastName||``}`.trim(),email:e.customerInfo?.email,date:e.date,startTime:e.startTime,endTime:e.endTime,spots:e.spots,status:e.reservationStatus||e.status,price:e.reservationPrice}))})}catch(e){k.value=e?.data?.statusMessage||e?.message||`Failed to find appointment`,M(`Error finding appointment: ${k.value}`)}finally{O.value=!1}}(0,e.onMounted)(()=>{j()});function M(e){C.status!==`completed`&&w(`submit`,e)}let N=e=>{switch(e){case`approved`:return`text-emerald-600 dark:text-emerald-400 bg-emerald-50 dark:bg-emerald-900/20`;case`needs_approval`:return`text-blue-600 dark:text-blue-400 bg-blue-50 dark:bg-blue-900/20`;case`rejected`:case`cancelled`:return`text-red-600 dark:text-red-400 bg-red-50 dark:bg-red-900/20`;default:return`text-amber-600 dark:text-amber-400 bg-amber-50 dark:bg-amber-900/20`}},P=e=>{switch(e){case`approved`:return`Approved`;case`needs_approval`:return`Needs Approval`;case`rejected`:return`Rejected`;case`cancelled`:return`Cancelled`;case`confirmed`:return`Confirmed`;default:return e||`Pending`}},F=e=>e==null?``:`€${e.toFixed(2)}`;return(b,x)=>{let S=(0,e.resolveComponent)(`NuxtLink`);return(0,e.openBlock)(),(0,e.createElementBlock)(`div`,n,[(0,e.unref)(O)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,r,[(0,e.createVNode)((0,e.unref)(t.Loader2),{class:`size-4 animate-spin text-muted-foreground`}),x[0]||=(0,e.createElementVNode)(`span`,{class:`text-xs text-muted-foreground`},`Searching appointments…`,-1)])):(0,e.unref)(k)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,i,(0,e.toDisplayString)((0,e.unref)(k)),1)):(0,e.unref)(A).length===0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,a,[(0,e.createVNode)((0,e.unref)(t.CalendarDays),{class:`size-8 text-muted-foreground mx-auto mb-2`}),x[1]||=(0,e.createElementVNode)(`p`,{class:`text-sm text-muted-foreground`},`No appointments found for the given criteria.`,-1)])):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,o,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)((0,e.unref)(A),n=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:n.reservationId||n.orderId,class:`rounded-xl border bg-background p-3 space-y-3`},[(0,e.createElementVNode)(`div`,s,[(0,e.createElementVNode)(`div`,c,[(0,e.createVNode)((0,e.unref)(t.CalendarDays),{class:`size-5 text-primary`})]),(0,e.createElementVNode)(`div`,l,[(0,e.createElementVNode)(`p`,u,(0,e.toDisplayString)(n.customerInfo?.firstName)+` `+(0,e.toDisplayString)(n.customerInfo?.lastName),1),(0,e.createElementVNode)(`div`,d,[(0,e.createElementVNode)(`span`,{class:(0,e.normalizeClass)([`text-[10px] font-medium px-1.5 py-0.5 rounded-full uppercase`,N(n.reservationStatus||n.status)])},(0,e.toDisplayString)(P(n.reservationStatus||n.status)),3),n.reservationPrice==null?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(`span`,f,(0,e.toDisplayString)(F(n.reservationPrice)),1))])])]),(0,e.createElementVNode)(`div`,p,[(0,e.createElementVNode)(`div`,m,[(0,e.createVNode)((0,e.unref)(t.Mail),{class:`size-3`}),(0,e.createElementVNode)(`span`,h,(0,e.toDisplayString)(n.customerInfo?.email||`—`),1)]),(0,e.createElementVNode)(`div`,g,[(0,e.createVNode)((0,e.unref)(t.CalendarDays),{class:`size-3`}),(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)(n.date),1)]),(0,e.createElementVNode)(`div`,_,[(0,e.createVNode)((0,e.unref)(t.Clock),{class:`size-3`}),(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)(n.startTime)+` – `+(0,e.toDisplayString)(n.endTime),1)]),(0,e.createElementVNode)(`div`,v,[(0,e.createVNode)((0,e.unref)(t.Users),{class:`size-3`}),(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)(n.spots||1)+` `+(0,e.toDisplayString)((n.spots||1)===1?`spot`:`spots`),1)])]),(0,e.createVNode)(S,{to:`/projects/${(0,e.unref)(E)}/modules/${y.instanceId}`,class:`inline-flex items-center gap-1.5 text-xs text-primary hover:underline`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(t.ExternalLink),{class:`size-3`}),x[2]||=(0,e.createTextVNode)(` Open in agenda `,-1)]),_:1},8,[`to`])]))),128))]))])}}});exports.default=y;
|