@oneclick.dev/cms-core-modules 0.0.108 → 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.
Files changed (576) hide show
  1. package/dist/Acquisition-DNCy8nQz.mjs +400 -0
  2. package/dist/Acquisition-Dt2rREU8.js +1 -0
  3. package/dist/AgendaOpeningHoursCard-B7ROIPWw.js +1 -0
  4. package/dist/AgendaOpeningHoursCard-Cp4wxUeK.mjs +172 -0
  5. package/dist/AppointmentDetailsCard-33WpATpV.mjs +161 -0
  6. package/dist/AppointmentDetailsCard-DpLM5IrB.js +1 -0
  7. package/dist/AppointmentEditor-BeOtYV6u.mjs +196 -0
  8. package/dist/AppointmentEditor-CaTfbkIf.js +1 -0
  9. package/dist/AppointmentListTable-DZJNmTMb.mjs +177 -0
  10. package/dist/AppointmentListTable-Dieu9US_.js +1 -0
  11. package/dist/Audience-Bs7b0TNm.js +1 -0
  12. package/dist/Audience-CUeMVYRy.mjs +489 -0
  13. package/dist/Components-C83O-xlF.mjs +623 -0
  14. package/dist/Components-DXbx0RLV.js +1 -0
  15. package/dist/Content-BHr_rPVY.js +1 -0
  16. package/dist/Content-CYOZKvWK.mjs +358 -0
  17. package/dist/ContentEditor-BprPiHMJ.js +462 -0
  18. package/dist/ContentEditor-D9-1SJ5F.mjs +30700 -0
  19. package/dist/CountryBreakdownCard-D7BK3nRD.js +1 -0
  20. package/dist/CountryBreakdownCard-DVxNz2DJ.mjs +196 -0
  21. package/dist/Create-89z41K73.js +1 -0
  22. package/dist/Create-BCklc_T1.mjs +1251 -0
  23. package/dist/DateFormatter-CYAD4GBN.js +1 -0
  24. package/dist/DateFormatter-DUxlo8X8.mjs +734 -0
  25. package/dist/Detail-BCOcP2ql.mjs +585 -0
  26. package/dist/Detail-Btzwo0Y3.mjs +3477 -0
  27. package/dist/Detail-Byk781b4.mjs +26 -0
  28. package/dist/Detail-C857g62L.js +1 -0
  29. package/dist/Detail-C8wQiDcv.js +1 -0
  30. package/dist/Detail-CNlljBfH.mjs +379 -0
  31. package/dist/Detail-CPqug27l.js +1 -0
  32. package/dist/Detail-CjuhjPby.js +1 -0
  33. package/dist/Detail-DnX7tsqN.mjs +649 -0
  34. package/dist/Detail-mvSGbnFU.js +1 -0
  35. package/dist/DeviceBreakdownCard-DRhQ9ufG.js +1 -0
  36. package/dist/DeviceBreakdownCard-W1frLe0L.mjs +159 -0
  37. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-DWMqQvHl.mjs +76 -0
  38. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-kpjbVSXg.js +1 -0
  39. package/dist/Entries-BdhUyJR5.mjs +728 -0
  40. package/dist/Entries-CEXM_SkO.js +1 -0
  41. package/dist/Find-D4Qa45qC.js +1 -0
  42. package/dist/Find-DIISO5GO.mjs +229 -0
  43. package/dist/GlobalStyling-C9VthHWK.mjs +1588 -0
  44. package/dist/GlobalStyling-CnSlXkZc.js +25 -0
  45. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-Ceoje52V.js +1 -0
  46. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-Dh9jzvE0.mjs +1255 -0
  47. package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-COrK1j0S.js +1 -0
  48. package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-Vb3q8EVv.mjs +330 -0
  49. package/dist/Overview-BCpJNiEB.mjs +190 -0
  50. package/dist/Overview-BDlBCUI_.js +1 -0
  51. package/dist/Overview-BKAti8nc.mjs +567 -0
  52. package/dist/Overview-BbvfH1u-.js +1 -0
  53. package/dist/Overview-Bn1Xx3_j.js +1 -0
  54. package/dist/Overview-C-Jb_BxY.mjs +860 -0
  55. package/dist/Overview-CIa1E-HH.mjs +178 -0
  56. package/dist/Overview-DAxCu9XC.js +1 -0
  57. package/dist/Overview-DC9io1bk.js +1 -0
  58. package/dist/Overview-Di84CsR5.mjs +476 -0
  59. package/dist/Overview-Su8ZUbMs.mjs +26 -0
  60. package/dist/Overview-T-lsy3UZ.js +1 -0
  61. package/dist/Overview-UoZHUMUz.js +1 -0
  62. package/dist/Overview-lWAyyenp.mjs +632 -0
  63. package/dist/PeakHoursCard-9-EZFZLR.mjs +182 -0
  64. package/dist/PeakHoursCard-BR5zmta4.js +1 -0
  65. package/dist/ProductDetailsCard-6nHikw4V.mjs +121 -0
  66. package/dist/ProductDetailsCard-Bn7qrgmc.js +1 -0
  67. package/dist/RealtimeCard--APfRNc8.js +1 -0
  68. package/dist/RealtimeCard-fvQlJcM7.mjs +126 -0
  69. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-CuwREvXD.js +349 -0
  70. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-GYNZ_yhD.mjs +3077 -0
  71. package/dist/SearchTermsCard-BsB-63aH.js +1 -0
  72. package/dist/SearchTermsCard-BzVrHKqQ.mjs +201 -0
  73. package/dist/SendPush-COns44j7.js +1 -0
  74. package/dist/SendPush-CPIOjVX4.mjs +184 -0
  75. package/dist/SeoHealth-MC3lSCOY.mjs +615 -0
  76. package/dist/SeoHealth-az1YuNF2.js +1 -0
  77. package/dist/TableView-DQW0A1oG.js +4 -0
  78. package/dist/TableView-DXHhJ-jm.mjs +6143 -0
  79. package/dist/TemplateList.vue_vue_type_script_setup_true_lang-B_AtWnHa.js +1 -0
  80. package/dist/TemplateList.vue_vue_type_script_setup_true_lang-Cmovy7kk.mjs +40 -0
  81. package/dist/TopPagesCard-BDeA997A.js +1 -0
  82. package/dist/TopPagesCard-CTozhOr_.mjs +159 -0
  83. package/dist/TrafficSourcesCard-BxtCKsqx.mjs +197 -0
  84. package/dist/TrafficSourcesCard-C3ziDTUL.js +1 -0
  85. package/dist/View-CsudjxCE.mjs +30 -0
  86. package/dist/View-Dw_wA6kK.js +1 -0
  87. package/dist/VisitorStatsCard-BmByE_Hi.js +1 -0
  88. package/dist/VisitorStatsCard-CXizEbVK.mjs +174 -0
  89. package/dist/_plugin-vue_export-helper-BHFhmbuH.js +1 -0
  90. package/dist/_plugin-vue_export-helper-CHgC5LLL.mjs +9 -0
  91. package/dist/agenda-DcatSSYQ.mjs +1165 -0
  92. package/dist/agenda-IOqtALWf.js +1 -0
  93. package/dist/array-CbATeQbk.js +1 -0
  94. package/dist/array-DT5pE8Gm.mjs +108 -0
  95. package/dist/availability-CMrRa5y2.mjs +269 -0
  96. package/dist/availability-Cf2YfMwM.js +1 -0
  97. package/dist/booking-data-DgJd0BcM.mjs +889 -0
  98. package/dist/booking-data-Di5GmH_8.js +1 -0
  99. package/dist/cms-core-modules.css +1 -2
  100. package/dist/countries-BTPvmrsb.mjs +4 -0
  101. package/dist/countries-CgZ081No.js +1 -0
  102. package/dist/exceptions-CI0B4xVj.js +1 -0
  103. package/dist/exceptions-YCQkHa6a.mjs +646 -0
  104. package/dist/google-CvtuJwgk.mjs +4 -0
  105. package/dist/google-D4N3gb01.js +1 -0
  106. package/dist/index-4tjmIans.js +1 -0
  107. package/dist/index-9HVlmvK3.js +1 -0
  108. package/dist/index-A2kp8Isi.js +75 -0
  109. package/dist/index-B5aBwdxY.js +54 -0
  110. package/dist/index-BFLV54kw.mjs +3843 -0
  111. package/dist/index-BWDwEd8D.mjs +24 -0
  112. package/dist/index-BfBBm9uY.mjs +24 -0
  113. package/dist/index-BhWvXMOp.mjs +176 -0
  114. package/dist/index-BiT55eU0.js +58 -0
  115. package/dist/index-Bkq58CeQ.mjs +22 -0
  116. package/dist/index-BzWmWCo5.mjs +1187 -0
  117. package/dist/index-CJQQBRLY.js +1 -0
  118. package/dist/index-CQkOH2_3.mjs +24 -0
  119. package/dist/index-CSxYBeVA.js +1 -0
  120. package/dist/index-CU-tbS5W.mjs +24 -0
  121. package/dist/index-CZn2nDLv.mjs +34 -0
  122. package/dist/index-CkiNvRzs.js +1 -0
  123. package/dist/index-Co4ON2Di.js +1 -0
  124. package/dist/index-Cpnn_Pxd.mjs +24 -0
  125. package/dist/index-CpzDEMeC.mjs +1443 -0
  126. package/dist/index-CsVeM3PA.mjs +24 -0
  127. package/dist/index-CwqrAU-H.js +1 -0
  128. package/dist/index-CxETuRsG.js +1 -0
  129. package/dist/index-Cz-baGax.js +1 -0
  130. package/dist/index-D30apIn-.mjs +110 -0
  131. package/dist/index-DFQGVHTs.js +1 -0
  132. package/dist/index-DPd3waTN.js +1 -0
  133. package/dist/index-DRqJOqUR.mjs +3484 -0
  134. package/dist/index-DjWuIBxh.js +1 -0
  135. package/dist/index-Dnn2SCSl.js +1 -0
  136. package/dist/index-Dpl9sU6a.mjs +12 -0
  137. package/dist/index-DrXxXB2F.mjs +138 -0
  138. package/dist/index-G7cIlnGN.js +158 -0
  139. package/dist/index-R2oUDsjx.js +1 -0
  140. package/dist/index-RLz1QPrf.mjs +203 -0
  141. package/dist/index-UtjLbLw-.js +1 -0
  142. package/dist/index-V78huaSJ.mjs +442 -0
  143. package/dist/index-cOnxXTbF.mjs +24 -0
  144. package/dist/index-hlylYYgy.mjs +24 -0
  145. package/dist/index-ijdf0d9-.js +1 -0
  146. package/dist/index-vHmvbEwa.js +35 -0
  147. package/dist/index-wjkEPsNx.mjs +2940 -0
  148. package/dist/index.cjs.js +1 -1
  149. package/dist/index.mjs +806 -1095
  150. package/dist/interpolation-CHn59tIC.js +1 -0
  151. package/dist/interpolation-w7IRDJwK.mjs +180 -0
  152. package/dist/orders-C65SlpJy.mjs +618 -0
  153. package/dist/orders-XVzWAgG1.js +1 -0
  154. package/dist/payment-C3ohkehF.mjs +1080 -0
  155. package/dist/payment-Dfr-Ro-a.js +1 -0
  156. package/dist/regular-1LXNPviB.js +1 -0
  157. package/dist/regular-_05oq5Tx.mjs +1101 -0
  158. package/dist/resources-CYOb5Bl6.mjs +811 -0
  159. package/dist/resources-CxeFd57z.js +1 -0
  160. package/dist/server-handlers.cjs.js +1 -1
  161. package/dist/server-handlers.mjs +996 -1049
  162. package/dist/src/appointments/chat-components/AgendaOpeningHoursCard.vue.d.ts +15 -0
  163. package/dist/src/appointments/chat-components/AppointmentDetailsCard.vue.d.ts +14 -0
  164. package/dist/src/appointments/chat-components/AppointmentEditor.vue.d.ts +14 -0
  165. package/dist/src/appointments/chat-components/AppointmentListTable.vue.d.ts +14 -0
  166. package/dist/src/appointments/components/create/StepNavigation.vue.d.ts +32 -0
  167. package/dist/src/appointments/components/create/regular/Step1.vue.d.ts +2 -0
  168. package/dist/src/appointments/components/create/regular/Step2.vue.d.ts +2 -0
  169. package/dist/src/appointments/components/create/regular/Step3.vue.d.ts +2 -0
  170. package/dist/src/appointments/components/create/regular/Step4.vue.d.ts +2 -0
  171. package/dist/src/appointments/components/edit/CustomerInformationFieldEditorDialog.vue.d.ts +24 -0
  172. package/dist/src/appointments/components/edit/EditLayout.vue.d.ts +17 -0
  173. package/dist/src/appointments/components/edit/Event24hSidebar.vue.d.ts +2 -0
  174. package/dist/src/appointments/components/edit/EventDialog/ApproveReservationDialog.vue.d.ts +8 -0
  175. package/dist/src/appointments/components/edit/EventDialog/BookingsList.vue.d.ts +136 -0
  176. package/dist/src/appointments/components/edit/EventDialog/CancelReservationDialog.vue.d.ts +8 -0
  177. package/dist/src/appointments/components/edit/EventDialog/EventDialog.vue.d.ts +11 -0
  178. package/dist/src/appointments/components/edit/EventDialog/OrderDetailDialog.vue.d.ts +55 -0
  179. package/dist/src/appointments/components/edit/EventDialog/RejectReservationDialog.vue.d.ts +8 -0
  180. package/dist/src/appointments/components/edit/EventDialog/ReservationDetailDialog.vue.d.ts +87 -0
  181. package/dist/src/appointments/components/edit/EventDialog/TimelineChart.vue.d.ts +24 -0
  182. package/dist/src/appointments/components/edit/EventDialog/TransferReservationDialog.vue.d.ts +4 -0
  183. package/dist/src/appointments/components/edit/EventTimeIndicator.vue.d.ts +12 -0
  184. package/dist/src/appointments/components/edit/EventTimeline.vue.d.ts +48 -0
  185. package/dist/src/appointments/components/edit/EventView.vue.d.ts +9 -0
  186. package/dist/src/appointments/components/edit/ExceptionDialog.vue.d.ts +29 -0
  187. package/dist/src/appointments/components/edit/MetadataSchemaEditorDialog.vue.d.ts +12 -0
  188. package/dist/src/appointments/components/edit/NewReservationDialog/CustomerInformation.vue.d.ts +10 -0
  189. package/dist/src/appointments/components/edit/NewReservationDialog/NewReservationDialog.vue.d.ts +26 -0
  190. package/dist/src/appointments/components/edit/NewReservationDialog/QuickReservationAdder.vue.d.ts +26 -0
  191. package/dist/src/appointments/components/edit/NewReservationDialog/ReservationLines.vue.d.ts +31 -0
  192. package/dist/src/appointments/components/edit/OrderMetadataDisplay.vue.d.ts +21 -0
  193. package/dist/src/appointments/components/edit/PaymentAddons/Addon.vue.d.ts +22 -0
  194. package/dist/src/appointments/components/edit/PaymentAddons/AddonList.vue.d.ts +5 -0
  195. package/dist/src/appointments/components/edit/PaymentAddons/index.vue.d.ts +15 -0
  196. package/dist/src/appointments/components/edit/ResourceEditorDialog.vue.d.ts +13 -0
  197. package/dist/src/appointments/components/edit/dashboard/Timeline.vue.d.ts +36 -0
  198. package/dist/src/appointments/components/edit/dashboard/timeline/ResourceSelector.vue.d.ts +50 -0
  199. package/dist/src/appointments/index.d.ts +12 -9
  200. package/dist/src/appointments/index.vue.d.ts +22 -0
  201. package/dist/src/appointments/metadata.d.ts +1 -1
  202. package/dist/src/appointments/pages/Overview.vue.d.ts +4 -0
  203. package/dist/src/appointments/pages/create/index.vue.d.ts +2 -0
  204. package/dist/src/appointments/pages/create/regular.vue.d.ts +6 -0
  205. package/dist/src/appointments/pages/edit/agenda.vue.d.ts +4 -0
  206. package/dist/src/appointments/pages/edit/availability.vue.d.ts +2 -0
  207. package/dist/src/appointments/pages/edit/booking-data.vue.d.ts +65 -0
  208. package/dist/src/appointments/pages/edit/index.vue.d.ts +2 -0
  209. package/dist/src/appointments/pages/edit/payment.vue.d.ts +2 -0
  210. package/dist/src/appointments/pages/edit/resources.vue.d.ts +28 -0
  211. package/dist/src/appointments/routes.d.ts +6 -3
  212. package/dist/src/contentManager/components/components/ComponentDialog.vue.d.ts +12 -0
  213. package/dist/src/contentManager/components/components/ComponentGridItem.vue.d.ts +16 -0
  214. package/dist/src/contentManager/components/content-editor/ApiDocs.vue.d.ts +2 -0
  215. package/dist/src/contentManager/components/content-editor/ContentLayout.vue.d.ts +49 -0
  216. package/dist/src/contentManager/components/content-editor/ContentSettings.vue.d.ts +24 -0
  217. package/dist/src/contentManager/components/content-editor/ContentStructuredContentSections.vue.d.ts +4 -0
  218. package/dist/src/contentManager/components/content-editor/Header.vue.d.ts +64 -0
  219. package/dist/src/contentManager/components/content-editor/LivePreviewWrapper.vue.d.ts +53 -0
  220. package/dist/src/contentManager/components/content-editor/Locales.vue.d.ts +44 -0
  221. package/dist/src/contentManager/components/content-editor/NewSectionDialog.vue.d.ts +21 -0
  222. package/dist/src/contentManager/components/content-editor/PageSettings.vue.d.ts +2 -0
  223. package/dist/src/contentManager/components/content-editor/SEO.vue.d.ts +14 -0
  224. package/dist/src/contentManager/components/content-editor/SidebarSectionWrapper.vue.d.ts +39 -0
  225. package/dist/src/contentManager/components/content-editor/Status.vue.d.ts +2 -0
  226. package/dist/src/contentManager/components/content-editor/Versions.vue.d.ts +63 -0
  227. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Button.vue.d.ts +94 -0
  228. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Card.vue.d.ts +92 -0
  229. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Column.vue.d.ts +92 -0
  230. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Container.vue.d.ts +92 -0
  231. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Divider.vue.d.ts +92 -0
  232. package/dist/src/contentManager/components/content-editor/tiptap-extensions/EmptySpace.vue.d.ts +94 -0
  233. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Heading.vue.d.ts +92 -0
  234. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Image.vue.d.ts +92 -0
  235. package/dist/src/contentManager/components/content-editor/tiptap-extensions/LockBlocks.d.ts +0 -15
  236. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Map.vue.d.ts +92 -0
  237. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Paragraph.vue.d.ts +92 -0
  238. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Row.vue.d.ts +115 -0
  239. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Stack.vue.d.ts +115 -0
  240. package/dist/src/contentManager/components/content-editor/tiptap-extensions/TrailingNodeInContainers.d.ts +1 -4
  241. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Video.vue.d.ts +92 -0
  242. package/dist/src/contentManager/components/content-editor/tiptap-extensions/extension-details/DetailsNodeView.vue.d.ts +92 -0
  243. package/dist/src/contentManager/components/content-editor/tiptap-extensions/helpers/NodeLabel.vue.d.ts +108 -0
  244. package/dist/src/contentManager/components/content-editor/tiptap-extensions/helpers/ResizeHandlers.vue.d.ts +20 -0
  245. package/dist/src/contentManager/components/content-editor/tiptap-extensions/helpers/TopMarginDragger.vue.d.ts +104 -0
  246. package/dist/src/contentManager/components/content-editor/tiptap-menus/BubbleMenuClassBuilder.vue.d.ts +19 -0
  247. package/dist/src/contentManager/components/content-editor/tiptap-menus/BubbleMenuLinkBuilder.vue.d.ts +19 -0
  248. package/dist/src/contentManager/components/content-editor/tiptap-menus/BubbleMenuToggleButton.vue.d.ts +29 -0
  249. package/dist/src/contentManager/components/content-editor/tiptap-menus/DefaultBubbleMenu.vue.d.ts +13 -0
  250. package/dist/src/contentManager/components/content-editor/tiptap-menus/ElementEditorMenu.vue.d.ts +19 -0
  251. package/dist/src/contentManager/components/content-editor/tiptap-menus/EmojiMenu.vue.d.ts +8 -0
  252. package/dist/src/contentManager/components/content-editor/tiptap-menus/NewNodeView.vue.d.ts +47 -0
  253. package/dist/src/contentManager/components/content-editor/tiptap-menus/SlashMenu.vue.d.ts +6 -0
  254. package/dist/src/contentManager/components/content-editor/tiptap-menus/SlashMenuButton.vue.d.ts +17 -0
  255. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/ButtonMenu.vue.d.ts +13 -0
  256. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/CardMenu.vue.d.ts +13 -0
  257. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/ColumnMenu.vue.d.ts +13 -0
  258. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/DividerMenu.vue.d.ts +13 -0
  259. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/EmptySpaceMenu.vue.d.ts +13 -0
  260. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/HeadingMenu.vue.d.ts +13 -0
  261. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/ImageMenu.vue.d.ts +13 -0
  262. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/MapMenu.vue.d.ts +13 -0
  263. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/RowMenu.vue.d.ts +13 -0
  264. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/StackMenu.vue.d.ts +13 -0
  265. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/TextMenu.vue.d.ts +13 -0
  266. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/VideoMenu.vue.d.ts +13 -0
  267. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/index.d.ts +132 -12
  268. package/dist/src/contentManager/components/overview/CollectionDialog.vue.d.ts +30 -0
  269. package/dist/src/contentManager/components/overview/CollectionsGridView.vue.d.ts +18 -0
  270. package/dist/src/contentManager/components/overview/ContentEntryContextMenu.vue.d.ts +27 -0
  271. package/dist/src/contentManager/components/overview/FilterPopover.vue.d.ts +2 -0
  272. package/dist/src/contentManager/components/overview/ListView.vue.d.ts +12 -0
  273. package/dist/src/contentManager/components/styling/ButtonStyleDialog.vue.d.ts +24 -0
  274. package/dist/src/contentManager/components/styling/CardStyleDialog.vue.d.ts +24 -0
  275. package/dist/src/contentManager/components/styling/SectionStyleDialog.vue.d.ts +24 -0
  276. package/dist/src/contentManager/index.d.ts +14 -5
  277. package/dist/src/contentManager/index.vue.d.ts +22 -0
  278. package/dist/src/contentManager/metadata.d.ts +1 -1
  279. package/dist/src/contentManager/pages/Components.vue.d.ts +27 -0
  280. package/dist/src/contentManager/pages/ContentEditor.vue.d.ts +14 -0
  281. package/dist/src/contentManager/pages/Entries.vue.d.ts +16 -0
  282. package/dist/src/contentManager/pages/GlobalStyling.vue.d.ts +117 -0
  283. package/dist/src/contentManager/pages/Overview.vue.d.ts +57 -0
  284. package/dist/src/contentManager/routes.d.ts +12 -3
  285. package/dist/src/custom/index.d.ts +2 -2
  286. package/dist/src/custom/index.vue.d.ts +2 -0
  287. package/dist/src/custom/pages/View.vue.d.ts +2 -0
  288. package/dist/src/custom/routes.d.ts +1 -1
  289. package/dist/src/googleAnalytics/chat-components/CountryBreakdownCard.vue.d.ts +14 -0
  290. package/dist/src/googleAnalytics/chat-components/DeviceBreakdownCard.vue.d.ts +14 -0
  291. package/dist/src/googleAnalytics/chat-components/PeakHoursCard.vue.d.ts +14 -0
  292. package/dist/src/googleAnalytics/chat-components/RealtimeCard.vue.d.ts +14 -0
  293. package/dist/src/googleAnalytics/chat-components/SearchTermsCard.vue.d.ts +14 -0
  294. package/dist/src/googleAnalytics/chat-components/TopPagesCard.vue.d.ts +14 -0
  295. package/dist/src/googleAnalytics/chat-components/TrafficSourcesCard.vue.d.ts +14 -0
  296. package/dist/src/googleAnalytics/chat-components/VisitorStatsCard.vue.d.ts +14 -0
  297. package/dist/src/googleAnalytics/components/seo-health/SeoClicksChart.vue.d.ts +5 -0
  298. package/dist/src/googleAnalytics/components/seo-health/SeoImpressionsChart.vue.d.ts +5 -0
  299. package/dist/src/googleAnalytics/components/seo-health/SeoKeywordsTab.vue.d.ts +5 -0
  300. package/dist/src/googleAnalytics/components/seo-health/SeoKpiCards.vue.d.ts +10 -0
  301. package/dist/src/googleAnalytics/components/seo-health/SeoMappingTab.vue.d.ts +5 -0
  302. package/dist/src/googleAnalytics/components/seo-health/SeoPagesTab.vue.d.ts +5 -0
  303. package/dist/src/googleAnalytics/components/seo-health/SeoRankingDistribution.vue.d.ts +5 -0
  304. package/dist/src/googleAnalytics/index.d.ts +10 -10
  305. package/dist/src/googleAnalytics/index.vue.d.ts +2 -0
  306. package/dist/src/googleAnalytics/pages/Acquisition.vue.d.ts +2 -0
  307. package/dist/src/googleAnalytics/pages/Audience.vue.d.ts +2 -0
  308. package/dist/src/googleAnalytics/pages/Content.vue.d.ts +2 -0
  309. package/dist/src/googleAnalytics/pages/Overview.vue.d.ts +2 -0
  310. package/dist/src/googleAnalytics/pages/SeoHealth.vue.d.ts +2 -0
  311. package/dist/src/googleAnalytics/routes.d.ts +1 -1
  312. package/dist/src/mailTemplates/components/TemplateList.vue.d.ts +2 -0
  313. package/dist/src/mailTemplates/index.d.ts +3 -3
  314. package/dist/src/mailTemplates/index.vue.d.ts +22 -0
  315. package/dist/src/mailTemplates/metadata.d.ts +1 -1
  316. package/dist/src/mailTemplates/pages/Detail.vue.d.ts +14 -0
  317. package/dist/src/mailTemplates/pages/Overview.vue.d.ts +14 -0
  318. package/dist/src/mailTemplates/routes.d.ts +1 -1
  319. package/dist/src/productCollections/components/detail/Main.vue.d.ts +2 -0
  320. package/dist/src/productCollections/components/detail/SEO.vue.d.ts +2 -0
  321. package/dist/src/productCollections/components/detail/Status.vue.d.ts +2 -0
  322. package/dist/src/productCollections/components/overview/ListView.vue.d.ts +12 -0
  323. package/dist/src/productCollections/index.d.ts +3 -3
  324. package/dist/src/productCollections/index.vue.d.ts +22 -0
  325. package/dist/src/productCollections/metadata.d.ts +1 -1
  326. package/dist/src/productCollections/pages/Detail.vue.d.ts +14 -0
  327. package/dist/src/productCollections/pages/Overview.vue.d.ts +16 -0
  328. package/dist/src/productCollections/routes.d.ts +1 -1
  329. package/dist/src/products/chat-components/ProductDetailsCard.vue.d.ts +14 -0
  330. package/dist/src/products/components/detail/Collections.vue.d.ts +14 -0
  331. package/dist/src/products/components/detail/Inventory.vue.d.ts +2 -0
  332. package/dist/src/products/components/detail/Main.vue.d.ts +2 -0
  333. package/dist/src/products/components/detail/NewSection.vue.d.ts +2 -0
  334. package/dist/src/products/components/detail/Price.vue.d.ts +2 -0
  335. package/dist/src/products/components/detail/SEO.vue.d.ts +2 -0
  336. package/dist/src/products/components/detail/Shipping.vue.d.ts +2 -0
  337. package/dist/src/products/components/detail/Status.vue.d.ts +2 -0
  338. package/dist/src/products/components/detail/price/UnitPriceDialog.vue.d.ts +17 -0
  339. package/dist/src/products/components/detail/variants/Option.vue.d.ts +33 -0
  340. package/dist/src/products/components/detail/variants/VariantList.vue.d.ts +38 -0
  341. package/dist/src/products/components/overview/FilterPopover.vue.d.ts +2 -0
  342. package/dist/src/products/components/overview/GridView.vue.d.ts +12 -0
  343. package/dist/src/products/components/overview/ListView.vue.d.ts +12 -0
  344. package/dist/src/products/components/overview/ProductContextMenu.vue.d.ts +27 -0
  345. package/dist/src/products/index.d.ts +4 -4
  346. package/dist/src/products/index.vue.d.ts +22 -0
  347. package/dist/src/products/metadata.d.ts +1 -1
  348. package/dist/src/products/pages/Detail.vue.d.ts +14 -0
  349. package/dist/src/products/pages/Overview.vue.d.ts +16 -0
  350. package/dist/src/products/routes.d.ts +1 -1
  351. package/dist/src/promoCodes/components/create/DateRange.vue.d.ts +2 -0
  352. package/dist/src/promoCodes/components/create/MultiCodes.vue.d.ts +2 -0
  353. package/dist/src/promoCodes/components/create/Note.vue.d.ts +2 -0
  354. package/dist/src/promoCodes/components/create/SingleCode.vue.d.ts +2 -0
  355. package/dist/src/promoCodes/components/create/TypeAndValue/TypeDetailDialog.vue.d.ts +6 -0
  356. package/dist/src/promoCodes/components/create/TypeAndValue/TypeManageDialog.vue.d.ts +18 -0
  357. package/dist/src/promoCodes/components/create/TypeAndValue/index.vue.d.ts +2 -0
  358. package/dist/src/promoCodes/index.d.ts +3 -3
  359. package/dist/src/promoCodes/index.vue.d.ts +22 -0
  360. package/dist/src/promoCodes/metadata.d.ts +1 -1
  361. package/dist/src/promoCodes/pages/Create.vue.d.ts +16 -0
  362. package/dist/src/promoCodes/pages/Detail.vue.d.ts +14 -0
  363. package/dist/src/promoCodes/pages/Find.vue.d.ts +16 -0
  364. package/dist/src/promoCodes/routes.d.ts +1 -1
  365. package/dist/src/push-notifications/components/PreviewAndroid.vue.d.ts +28 -0
  366. package/dist/src/push-notifications/components/PreviewIPhone.vue.d.ts +28 -0
  367. package/dist/src/push-notifications/components/PushPreview.vue.d.ts +28 -0
  368. package/dist/src/push-notifications/index.d.ts +3 -3
  369. package/dist/src/push-notifications/index.vue.d.ts +22 -0
  370. package/dist/src/push-notifications/metadata.d.ts +1 -1
  371. package/dist/src/push-notifications/pages/SendPush.vue.d.ts +14 -0
  372. package/dist/src/push-notifications/routes.d.ts +1 -1
  373. package/dist/src/shared/BrandLogo.vue.d.ts +12 -0
  374. package/dist/src/shared/DrawerToggle.vue.d.ts +60 -0
  375. package/dist/src/shared/VerticalToggle.vue.d.ts +60 -0
  376. package/dist/src/shippingOptions/components/detail/Condition.vue.d.ts +2 -0
  377. package/dist/src/shippingOptions/components/detail/Countries.vue.d.ts +2 -0
  378. package/dist/src/shippingOptions/components/detail/Example.vue.d.ts +2 -0
  379. package/dist/src/shippingOptions/components/detail/Main.vue.d.ts +2 -0
  380. package/dist/src/shippingOptions/components/overview/ListView.vue.d.ts +12 -0
  381. package/dist/src/shippingOptions/index.d.ts +3 -3
  382. package/dist/src/shippingOptions/index.vue.d.ts +22 -0
  383. package/dist/src/shippingOptions/metadata.d.ts +1 -1
  384. package/dist/src/shippingOptions/pages/Detail.vue.d.ts +14 -0
  385. package/dist/src/shippingOptions/pages/Overview.vue.d.ts +16 -0
  386. package/dist/src/shippingOptions/routes.d.ts +1 -1
  387. package/dist/src/table/components/DataTable.vue.d.ts +18 -0
  388. package/dist/src/table/components/DataTableAction.vue.d.ts +14 -0
  389. package/dist/src/table/components/DataTableMobileRowActionDrawer.vue.d.ts +4 -0
  390. package/dist/src/table/components/DataTablePagination.vue.d.ts +6 -0
  391. package/dist/src/table/components/actions/ActionDialog.vue.d.ts +19 -0
  392. package/dist/src/table/components/actions/CtaActionDialog.vue.d.ts +4 -0
  393. package/dist/src/table/components/columns/ColumnDropdown.vue.d.ts +2 -0
  394. package/dist/src/table/components/columns/ColumnEditorDialog.vue.d.ts +34 -0
  395. package/dist/src/table/components/columns/DialogTableColumnItem.vue.d.ts +12 -0
  396. package/dist/src/table/components/date-range-filter/DateRangeFilter.vue.d.ts +2 -0
  397. package/dist/src/table/components/date-range-filter/DateRangeSettingsDialog.vue.d.ts +27 -0
  398. package/dist/src/table/components/filters/FilterDialog.vue.d.ts +12 -0
  399. package/dist/src/table/components/filters/Filters.vue.d.ts +27 -0
  400. package/dist/src/table/components/search/Search.vue.d.ts +2 -0
  401. package/dist/src/table/components/sort/SortMode.vue.d.ts +2 -0
  402. package/dist/src/table/components/sort/SortModeSettingsDialog.vue.d.ts +18 -0
  403. package/dist/src/table/components/stats/StatDialog.vue.d.ts +12 -0
  404. package/dist/src/table/components/stats/Stats.vue.d.ts +27 -0
  405. package/dist/src/table/flow-builder-extensions/TableRowEditor.vue.d.ts +16 -0
  406. package/dist/src/table/flow-builder-extensions/row-item.d.ts +17 -3
  407. package/dist/src/table/index.d.ts +2 -2
  408. package/dist/src/table/index.vue.d.ts +22 -0
  409. package/dist/src/table/pages/TableView.vue.d.ts +54 -0
  410. package/dist/src/table/routes.d.ts +1 -1
  411. package/dist/src/types/index.d.ts +0 -6
  412. package/dist/utils-CanmrIWO.mjs +47 -0
  413. package/dist/utils-Yd6F5mea.js +3 -0
  414. package/dist/vee-validate-zod-ByykgYKJ.js +1 -0
  415. package/dist/vee-validate-zod-DNjTLCgh.mjs +4402 -0
  416. package/package.json +56 -55
  417. package/dist/Acquisition-DypEyPSO.js +0 -1
  418. package/dist/Acquisition-TCNX-th6.mjs +0 -308
  419. package/dist/AgendaOpeningHoursCard-BIhm0vpV.js +0 -1
  420. package/dist/AgendaOpeningHoursCard-BKUdJxRI.mjs +0 -133
  421. package/dist/AppointmentDetailsCard-C5rQ5jsW.js +0 -1
  422. package/dist/AppointmentDetailsCard-NRHeNP2L.mjs +0 -111
  423. package/dist/AppointmentEditor-BcF8CiD-.mjs +0 -150
  424. package/dist/AppointmentEditor-BlhFtoCm.js +0 -1
  425. package/dist/AppointmentListTable-B-ReBVtV.js +0 -1
  426. package/dist/AppointmentListTable-DHmy-iid.mjs +0 -129
  427. package/dist/Audience-CfWHjjg8.mjs +0 -394
  428. package/dist/Audience-Cj4TyauW.js +0 -1
  429. package/dist/Components-BehelN4r.js +0 -1
  430. package/dist/Components-CR6zukUU.mjs +0 -468
  431. package/dist/Content-C5Iye3t0.mjs +0 -257
  432. package/dist/Content-eOfBx52Y.js +0 -1
  433. package/dist/ContentEditor-BgL4qEeg.mjs +0 -26835
  434. package/dist/ContentEditor-Tlu3w0Hu.js +0 -462
  435. package/dist/CountryBreakdownCard-CWVyB8be.mjs +0 -151
  436. package/dist/CountryBreakdownCard-Db-pMiNe.js +0 -1
  437. package/dist/Create-B1it8S4m.js +0 -1
  438. package/dist/Create-DbYi0FAI.mjs +0 -907
  439. package/dist/DateFormatter-DLrDYkby.mjs +0 -630
  440. package/dist/DateFormatter-Dni0Oq8r.js +0 -1
  441. package/dist/Detail-D-eahJGO.mjs +0 -21
  442. package/dist/Detail-D0kdPPIm.mjs +0 -2757
  443. package/dist/Detail-DAafePYi.mjs +0 -485
  444. package/dist/Detail-DYpv4fYg.js +0 -1
  445. package/dist/Detail-Dc_ui4LM.js +0 -1
  446. package/dist/Detail-DccUekl_.js +0 -1
  447. package/dist/Detail-Dhz0V0Vf.js +0 -1
  448. package/dist/Detail-DjnGY0F8.mjs +0 -282
  449. package/dist/Detail-DplAitHg.mjs +0 -447
  450. package/dist/Detail-SugyeSxb.js +0 -1
  451. package/dist/DeviceBreakdownCard-CzxZT6To.js +0 -1
  452. package/dist/DeviceBreakdownCard-eEwPjzKl.mjs +0 -115
  453. package/dist/EditLayout-Bnz9q_jd.js +0 -1
  454. package/dist/EditLayout-J_DGXb8v.mjs +0 -99
  455. package/dist/Entries-CgpWg6fE.js +0 -1
  456. package/dist/Entries-CkGTXcAq.mjs +0 -575
  457. package/dist/Find-Bz0TNJzk.mjs +0 -164
  458. package/dist/Find-D-ItTXaZ.js +0 -1
  459. package/dist/GlobalStyling-CSQPF7o_.mjs +0 -1162
  460. package/dist/GlobalStyling-DabldMZh.js +0 -15
  461. package/dist/NewReservationDialog-BhIiY2B9.js +0 -1
  462. package/dist/NewReservationDialog-CN49aGcM.mjs +0 -1002
  463. package/dist/OrderDetailDialog-BJ01DZFe.js +0 -1
  464. package/dist/OrderDetailDialog-CoVQ_rzs.mjs +0 -215
  465. package/dist/Overview-9FMgn5hT.mjs +0 -492
  466. package/dist/Overview-BOOwMQ-c.mjs +0 -636
  467. package/dist/Overview-Biz3h60w.js +0 -1
  468. package/dist/Overview-C2K2ofdS.js +0 -1
  469. package/dist/Overview-CFHOXP9N.mjs +0 -123
  470. package/dist/Overview-CTJe7J5_.js +0 -1
  471. package/dist/Overview-Cvj2i9eW.js +0 -1
  472. package/dist/Overview-D2I1F8Dm.mjs +0 -21
  473. package/dist/Overview-DFOc9emt.mjs +0 -345
  474. package/dist/Overview-Dmhfb94Y.js +0 -1
  475. package/dist/Overview-PPzv7weG.mjs +0 -450
  476. package/dist/Overview-qFKcXHVF.js +0 -1
  477. package/dist/Overview-xkmYYTae.mjs +0 -133
  478. package/dist/Overview-yPsLvR2c.js +0 -1
  479. package/dist/PeakHoursCard-CtgEP-ez.mjs +0 -157
  480. package/dist/PeakHoursCard-DPeoMyhu.js +0 -1
  481. package/dist/ProductDetailsCard-B0WhmzO-.mjs +0 -98
  482. package/dist/ProductDetailsCard-C1ROuH6l.js +0 -1
  483. package/dist/RealtimeCard-DQno-Okz.js +0 -1
  484. package/dist/RealtimeCard-dR-g1iDo.mjs +0 -92
  485. package/dist/ReservationDetailDialog-Cdo6h0RD.mjs +0 -2163
  486. package/dist/ReservationDetailDialog-DZTFD2xI.js +0 -349
  487. package/dist/SearchTermsCard-BXJSXz_k.js +0 -1
  488. package/dist/SearchTermsCard-DsaxLKwP.mjs +0 -146
  489. package/dist/SendPush-Bssi-OZD.mjs +0 -150
  490. package/dist/SendPush-BuaYboRH.js +0 -1
  491. package/dist/SeoHealth-CP-kL0us.js +0 -1
  492. package/dist/SeoHealth-Cxp_Gb3Y.mjs +0 -459
  493. package/dist/TableView-7iwBkQ_k.mjs +0 -4757
  494. package/dist/TableView-BB_oIYYZ.js +0 -4
  495. package/dist/TemplateList-CNcM_Kgq.mjs +0 -56
  496. package/dist/TemplateList-VuPcBUJO.js +0 -1
  497. package/dist/TopPagesCard-CvDECn3_.mjs +0 -117
  498. package/dist/TopPagesCard-DNdATXJE.js +0 -1
  499. package/dist/TrafficSourcesCard-BLpBr7u0.mjs +0 -151
  500. package/dist/TrafficSourcesCard-_3gRUCw3.js +0 -1
  501. package/dist/View-DSnUHI7h.mjs +0 -30
  502. package/dist/View-Dbcfpdqh.js +0 -1
  503. package/dist/VisitorStatsCard-CFEnXSjF.mjs +0 -185
  504. package/dist/VisitorStatsCard-C_jhQxDW.js +0 -1
  505. package/dist/_plugin-vue_export-helper-5u7tqpWC.js +0 -1
  506. package/dist/_plugin-vue_export-helper-BJQSo0im.mjs +0 -8
  507. package/dist/agenda-CzMRcQTA.mjs +0 -989
  508. package/dist/agenda-D4zWRYSQ.js +0 -1
  509. package/dist/appointments-9syR5TZE.js +0 -1
  510. package/dist/appointments-BBmOJMhM.mjs +0 -23
  511. package/dist/array-BH1uH7XT.js +0 -1
  512. package/dist/array-DnDL9cFz.mjs +0 -98
  513. package/dist/availability-CAXB7Yd6.js +0 -1
  514. package/dist/availability-Dp7eF-ZK.mjs +0 -215
  515. package/dist/booking-data-Bysf6e5x.mjs +0 -724
  516. package/dist/booking-data-C6SGjC2X.js +0 -1
  517. package/dist/chunk-DQi1bQcV.js +0 -1
  518. package/dist/contentManager-D7JxXCwE.js +0 -1
  519. package/dist/contentManager-tfy0x1LD.mjs +0 -22
  520. package/dist/context-AQKfnJ4t.mjs +0 -3809
  521. package/dist/context-ubyMq9Xe.js +0 -54
  522. package/dist/core-Dhgr4ctC.mjs +0 -202
  523. package/dist/core-_HKfBlaZ.js +0 -1
  524. package/dist/countries-MXLT3mVe.mjs +0 -4
  525. package/dist/countries-OCd5qPxG.js +0 -1
  526. package/dist/create-BfNc2C7N.js +0 -1
  527. package/dist/create-C7JlIlIh.mjs +0 -95
  528. package/dist/custom-BwN9-6Mb.js +0 -1
  529. package/dist/custom-INNwaWla.mjs +0 -13
  530. package/dist/dist-BCVg7FKM.js +0 -1
  531. package/dist/dist-DIhK9VWh.mjs +0 -3045
  532. package/dist/edit-BiI2VG60.js +0 -35
  533. package/dist/edit-DD3iFBEh.mjs +0 -1097
  534. package/dist/exceptions-DICMaDcH.mjs +0 -462
  535. package/dist/exceptions-DpWqMNuG.js +0 -1
  536. package/dist/google-Bcc4XZnV.mjs +0 -4
  537. package/dist/google-DTSRmJ51.js +0 -1
  538. package/dist/googleAnalytics-BSaqRR_L.js +0 -1
  539. package/dist/googleAnalytics-Cg-iWblZ.mjs +0 -47
  540. package/dist/interpolation-B8OzkMyi.mjs +0 -131
  541. package/dist/interpolation-DpAqtGOW.js +0 -1
  542. package/dist/lib-4wSi00Vr.js +0 -1
  543. package/dist/lib-BZgXUui5.mjs +0 -198
  544. package/dist/line-DJdnFNI7.js +0 -75
  545. package/dist/line-tYLnEDGV.mjs +0 -1500
  546. package/dist/mailTemplates-BNk8fhVS.mjs +0 -23
  547. package/dist/mailTemplates-DswHzyQe.js +0 -1
  548. package/dist/orders-CIc0JlKX.mjs +0 -512
  549. package/dist/orders-DwPSi_pD.js +0 -1
  550. package/dist/payment-BsNWFaDm.js +0 -1
  551. package/dist/payment-Ced5_dpa.mjs +0 -718
  552. package/dist/productCollections-Cuvw_8zC.js +0 -1
  553. package/dist/productCollections-D0AxRlzr.mjs +0 -23
  554. package/dist/products-DUD-ZMkR.mjs +0 -22
  555. package/dist/products-DvX9B-Ul.js +0 -1
  556. package/dist/promoCodes-BCWqN6w4.mjs +0 -23
  557. package/dist/promoCodes-CEZ4LYot.js +0 -1
  558. package/dist/push-notifications-BGp4XWo9.js +0 -1
  559. package/dist/push-notifications-C7W7KuzR.mjs +0 -23
  560. package/dist/regular-BCFrS6lK.mjs +0 -908
  561. package/dist/regular-DBqPgT8C.js +0 -1
  562. package/dist/resources-DwsMmWgm.mjs +0 -669
  563. package/dist/resources-Dz81GkHe.js +0 -1
  564. package/dist/shippingOptions-C3NEJff1.mjs +0 -23
  565. package/dist/shippingOptions-Cy040ZW1.js +0 -1
  566. package/dist/single-container-BJmmqq65.mjs +0 -468
  567. package/dist/single-container-Xoo0Xzxv.js +0 -58
  568. package/dist/src/vue-shim.d.ts +0 -7
  569. package/dist/table-DWw0fs3S.js +0 -1
  570. package/dist/table-LXt5DQOL.mjs +0 -23
  571. package/dist/utils-CVIHqQsU.js +0 -3
  572. package/dist/utils-h3owcMtS.mjs +0 -37
  573. package/dist/vee-validate-zod-BmXMJo8W.js +0 -1
  574. package/dist/vee-validate-zod-D9dZzbWZ.mjs +0 -4985
  575. package/dist/xy-container-CuQSwrtB.mjs +0 -3180
  576. package/dist/xy-container-_6YpscZh.js +0 -158
@@ -0,0 +1,400 @@
1
+ import { defineComponent as Q, ref as p, computed as U, watch as X, onMounted as Y, resolveComponent as b, openBlock as a, createElementBlock as l, createElementVNode as e, Fragment as h, renderList as v, normalizeClass as L, toDisplayString as o, createVNode as r, withCtx as i, unref as x, createCommentVNode as g, createBlock as E, createTextVNode as z, normalizeStyle as F, resolveDynamicComponent as Z } from "vue";
2
+ import { useModule as ee, useModuleRoute as te, useModuleBreadcrumbs as se } from "@oneclick.dev/cms-kit";
3
+ import "./index-BFLV54kw.mjs";
4
+ import { RefreshCw as oe, Loader2 as ne, Share2 as ae, ExternalLink as T, Megaphone as V } from "lucide-vue-next";
5
+ import { S as le, E as re } from "./index-V78huaSJ.mjs";
6
+ const ie = { class: "@container/charts flex flex-col gap-6 w-full max-w-7xl mx-auto py-8" }, ue = { class: "flex justify-between gap-4 flex-col @lg:flex-row @lg:items-center" }, de = {
7
+ key: 0,
8
+ class: "flex items-center gap-2"
9
+ }, ce = { class: "flex items-center border rounded-lg overflow-hidden" }, me = ["onClick"], xe = { class: "text-sm text-destructive font-medium" }, fe = {
10
+ key: 2,
11
+ class: "flex items-center justify-center py-20"
12
+ }, pe = { class: "flex flex-col @4xl/charts:grid @4xl/charts:grid-cols-3 gap-6" }, he = { class: "relative" }, ge = { class: "absolute inset-0 flex items-center justify-center pointer-events-none" }, _e = { class: "text-center" }, ve = { class: "text-2xl font-bold tabular-nums" }, ye = { class: "mt-4 grid grid-cols-2 gap-x-4 gap-y-1.5 w-full" }, be = { class: "text-xs truncate" }, Ce = { class: "text-xs text-muted-foreground ml-auto tabular-nums" }, ke = { class: "overflow-x-auto" }, we = { class: "w-full text-sm" }, De = { class: "divide-y" }, $e = { class: "px-6 py-3" }, Re = { class: "flex items-center gap-2" }, Me = { class: "font-medium" }, Se = { class: "px-4 py-3 text-right tabular-nums" }, Ue = { class: "px-4 py-3 text-right tabular-nums" }, ze = { class: "px-4 py-3 text-right tabular-nums" }, Ne = { class: "px-4 py-3 text-right tabular-nums" }, qe = { class: "px-4 py-3 text-right tabular-nums" }, Ae = {
13
+ key: 0,
14
+ class: "px-6 py-8 text-center text-muted-foreground text-sm"
15
+ }, Ge = { class: "flex items-center gap-4" }, Be = ["onClick"], Le = {
16
+ key: 0,
17
+ class: "divide-y"
18
+ }, Ee = { class: "overflow-x-auto" }, je = { class: "w-full text-sm" }, Fe = { class: "divide-y" }, Te = { class: "px-6 py-3 text-muted-foreground" }, Ve = { class: "px-4 py-3 font-mono text-xs" }, Oe = { class: "px-4 py-3 text-right tabular-nums" }, Pe = { class: "px-4 py-3 text-right tabular-nums" }, He = { class: "px-4 py-3 text-right tabular-nums" }, Ie = { class: "px-4 py-3 text-right tabular-nums" }, We = {
19
+ key: 0,
20
+ class: "px-6 py-8 text-center text-muted-foreground text-sm"
21
+ }, Ke = {
22
+ key: 1,
23
+ class: "divide-y"
24
+ }, Je = { class: "flex items-center gap-3 min-w-0" }, Qe = { class: "text-muted-foreground w-5 text-right shrink-0" }, Xe = { class: "truncate font-medium" }, Ye = { class: "flex items-center gap-6 shrink-0 tabular-nums text-xs text-muted-foreground" }, Ze = { class: "w-20 text-right" }, et = { class: "w-16 text-right" }, tt = { class: "w-16 text-right" }, st = {
25
+ key: 0,
26
+ class: "px-6 py-8 text-center text-muted-foreground text-sm"
27
+ }, ot = {
28
+ key: 2,
29
+ class: "divide-y"
30
+ }, nt = { class: "flex items-center gap-3 min-w-0" }, at = { class: "text-muted-foreground w-5 text-right shrink-0" }, lt = { class: "truncate font-medium" }, rt = { class: "flex items-center gap-6 shrink-0 tabular-nums text-xs text-muted-foreground" }, it = { class: "w-20 text-right" }, ut = { class: "w-16 text-right" }, dt = { class: "w-16 text-right" }, ct = {
31
+ key: 0,
32
+ class: "px-6 py-8 text-center text-muted-foreground text-sm"
33
+ }, _t = /* @__PURE__ */ Q({
34
+ __name: "Acquisition",
35
+ setup(mt) {
36
+ const { config: j } = ee(), { moduleId: O } = te();
37
+ se(() => [{ label: "Acquisition" }]);
38
+ const y = p(!0), k = p(null), w = p("30"), C = p("sources"), _ = p([]), N = p([]), q = p([]), A = p([]), D = U(() => !!(j.serviceAccount && j.propertyId));
39
+ function $(n) {
40
+ return `/api/v1/modules/${O}${n}`;
41
+ }
42
+ const P = [
43
+ { label: "7d", value: "7" },
44
+ { label: "14d", value: "14" },
45
+ { label: "30d", value: "30" },
46
+ { label: "90d", value: "90" }
47
+ ], f = [
48
+ "#3b82f6",
49
+ "#8b5cf6",
50
+ "#10b981",
51
+ "#f59e0b",
52
+ "#ef4444",
53
+ "#06b6d4",
54
+ "#ec4899",
55
+ "#84cc16",
56
+ "#f97316",
57
+ "#6366f1",
58
+ "#14b8a6",
59
+ "#e11d48",
60
+ "#a855f7",
61
+ "#22c55e",
62
+ "#eab308"
63
+ ], H = U(() => {
64
+ const n = {};
65
+ return _.value.forEach((s, c) => {
66
+ const m = (s.sessionDefaultChannelGroup || "other").toLowerCase().replace(/[^a-z0-9]/g, "_");
67
+ n[m] = {
68
+ label: s.sessionDefaultChannelGroup || "Other",
69
+ color: f[c % f.length]
70
+ };
71
+ }), n;
72
+ }), I = U(
73
+ () => _.value.map((n, s) => ({
74
+ key: (n.sessionDefaultChannelGroup || "other").toLowerCase().replace(/[^a-z0-9]/g, "_"),
75
+ label: n.sessionDefaultChannelGroup || "Other",
76
+ sessions: n.sessions || 0,
77
+ fill: f[s % f.length]
78
+ }))
79
+ ), W = U(
80
+ () => _.value.reduce((n, s) => n + (s.sessions || 0), 0)
81
+ );
82
+ function u(n) {
83
+ return n >= 1e6 ? `${(n / 1e6).toFixed(1)}M` : n >= 1e3 ? `${(n / 1e3).toFixed(1)}K` : Math.round(n).toString();
84
+ }
85
+ function R(n) {
86
+ return `${(n * 100).toFixed(1)}%`;
87
+ }
88
+ function K(n) {
89
+ const s = Math.floor(n / 60), c = Math.round(n % 60);
90
+ return s > 0 ? `${s}m ${c}s` : `${c}s`;
91
+ }
92
+ async function M() {
93
+ if (!D.value) return;
94
+ y.value = !0, k.value = null;
95
+ const n = `${w.value}daysAgo`;
96
+ try {
97
+ const [s, c, m, S] = await Promise.all([
98
+ $fetch($(`/acquisition/channels?startDate=${n}&endDate=today`)),
99
+ $fetch($(`/acquisition/source-medium?startDate=${n}&endDate=today`)),
100
+ $fetch($(`/acquisition/referrals?startDate=${n}&endDate=today`)).catch(() => ({ rows: [] })),
101
+ $fetch($(`/acquisition/campaigns?startDate=${n}&endDate=today`)).catch(() => ({ rows: [] }))
102
+ ]);
103
+ _.value = s.rows || [], N.value = c.rows || [], q.value = m.rows || [], A.value = S.rows || [];
104
+ } catch (s) {
105
+ k.value = s?.data?.statusMessage || s?.message || "Failed to load acquisition data";
106
+ } finally {
107
+ y.value = !1;
108
+ }
109
+ }
110
+ return X(w, () => M()), Y(() => {
111
+ D.value ? M() : y.value = !1;
112
+ }), (n, s) => {
113
+ const c = b("Button"), m = b("Card"), S = b("CardTitle"), G = b("CardHeader"), J = b("ChartContainer"), B = b("CardContent");
114
+ return a(), l("div", ie, [
115
+ e("div", ue, [
116
+ s[0] || (s[0] = e("div", null, [
117
+ e("h1", { class: "text-2xl font-semibold" }, "Acquisition"),
118
+ e("p", { class: "text-muted-foreground text-sm mt-1" }, "Where your traffic comes from")
119
+ ], -1)),
120
+ D.value ? (a(), l("div", de, [
121
+ e("div", ce, [
122
+ (a(), l(h, null, v(P, (t) => e("button", {
123
+ key: t.value,
124
+ class: L(["px-3 py-1.5 text-xs font-medium transition-colors", w.value === t.value ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:text-foreground hover:bg-muted"]),
125
+ onClick: (d) => w.value = t.value
126
+ }, o(t.label), 11, me)), 64))
127
+ ]),
128
+ r(c, {
129
+ variant: "outline",
130
+ size: "icon",
131
+ onClick: M,
132
+ disabled: y.value
133
+ }, {
134
+ default: i(() => [
135
+ r(x(oe), {
136
+ class: L(["size-4", { "animate-spin": y.value }])
137
+ }, null, 8, ["class"])
138
+ ]),
139
+ _: 1
140
+ }, 8, ["disabled"])
141
+ ])) : g("", !0)
142
+ ]),
143
+ D.value ? k.value ? (a(), E(m, {
144
+ key: 1,
145
+ class: "p-6 border-destructive/50 bg-destructive/5"
146
+ }, {
147
+ default: i(() => [
148
+ e("p", xe, o(k.value), 1),
149
+ r(c, {
150
+ variant: "outline",
151
+ size: "sm",
152
+ class: "mt-3",
153
+ onClick: M
154
+ }, {
155
+ default: i(() => [...s[2] || (s[2] = [
156
+ z("Retry", -1)
157
+ ])]),
158
+ _: 1
159
+ })
160
+ ]),
161
+ _: 1
162
+ })) : y.value ? (a(), l("div", fe, [
163
+ r(x(ne), { class: "size-8 animate-spin text-muted-foreground" })
164
+ ])) : (a(), l(h, { key: 3 }, [
165
+ e("div", pe, [
166
+ r(m, { class: "@4xl/charts:col-span-1" }, {
167
+ default: i(() => [
168
+ r(G, { class: "pb-2" }, {
169
+ default: i(() => [
170
+ r(S, { class: "text-base" }, {
171
+ default: i(() => [...s[3] || (s[3] = [
172
+ z("Channel Mix", -1)
173
+ ])]),
174
+ _: 1
175
+ })
176
+ ]),
177
+ _: 1
178
+ }),
179
+ r(B, { class: "flex flex-col items-center" }, {
180
+ default: i(() => [
181
+ e("div", he, [
182
+ r(J, {
183
+ config: H.value,
184
+ class: "mx-auto aspect-square max-h-[220px]"
185
+ }, {
186
+ default: i(() => [
187
+ r(x(le), {
188
+ data: I.value,
189
+ margin: { top: 20, bottom: 20, left: 20, right: 20 }
190
+ }, {
191
+ default: i(() => [
192
+ r(x(re), {
193
+ value: (t) => t.sessions,
194
+ color: (t) => t.fill,
195
+ arcWidth: 40,
196
+ padAngle: 0.02,
197
+ cornerRadius: 4
198
+ }, null, 8, ["value", "color"])
199
+ ]),
200
+ _: 1
201
+ }, 8, ["data"])
202
+ ]),
203
+ _: 1
204
+ }, 8, ["config"]),
205
+ e("div", ge, [
206
+ e("div", _e, [
207
+ e("p", ve, o(u(W.value)), 1),
208
+ s[4] || (s[4] = e("p", { class: "text-xs text-muted-foreground" }, "sessions", -1))
209
+ ])
210
+ ])
211
+ ]),
212
+ e("div", ye, [
213
+ (a(!0), l(h, null, v(_.value.slice(0, 8), (t, d) => (a(), l("div", {
214
+ key: t.sessionDefaultChannelGroup,
215
+ class: "flex items-center gap-2"
216
+ }, [
217
+ e("div", {
218
+ class: "size-2.5 rounded-full shrink-0",
219
+ style: F({ backgroundColor: f[d % f.length] })
220
+ }, null, 4),
221
+ e("span", be, o(t.sessionDefaultChannelGroup), 1),
222
+ e("span", Ce, o(u(t.sessions)), 1)
223
+ ]))), 128))
224
+ ])
225
+ ]),
226
+ _: 1
227
+ })
228
+ ]),
229
+ _: 1
230
+ }),
231
+ r(m, { class: "@4xl/charts:col-span-2" }, {
232
+ default: i(() => [
233
+ r(G, { class: "pb-2" }, {
234
+ default: i(() => [
235
+ r(S, { class: "text-base" }, {
236
+ default: i(() => [...s[5] || (s[5] = [
237
+ z("Channels Performance", -1)
238
+ ])]),
239
+ _: 1
240
+ })
241
+ ]),
242
+ _: 1
243
+ }),
244
+ r(B, { class: "p-0" }, {
245
+ default: i(() => [
246
+ e("div", ke, [
247
+ e("table", we, [
248
+ s[6] || (s[6] = e("thead", null, [
249
+ e("tr", { class: "border-b text-left" }, [
250
+ e("th", { class: "px-6 py-3 font-medium text-muted-foreground" }, "Channel"),
251
+ e("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "Sessions"),
252
+ e("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "Users"),
253
+ e("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "New Users"),
254
+ e("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "Engage Rate"),
255
+ e("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "Avg Duration")
256
+ ])
257
+ ], -1)),
258
+ e("tbody", De, [
259
+ (a(!0), l(h, null, v(_.value, (t, d) => (a(), l("tr", {
260
+ key: t.sessionDefaultChannelGroup,
261
+ class: "hover:bg-muted/50"
262
+ }, [
263
+ e("td", $e, [
264
+ e("div", Re, [
265
+ e("div", {
266
+ class: "size-2.5 rounded-full shrink-0",
267
+ style: F({ backgroundColor: f[d % f.length] })
268
+ }, null, 4),
269
+ e("span", Me, o(t.sessionDefaultChannelGroup), 1)
270
+ ])
271
+ ]),
272
+ e("td", Se, o(u(t.sessions)), 1),
273
+ e("td", Ue, o(u(t.totalUsers)), 1),
274
+ e("td", ze, o(u(t.newUsers)), 1),
275
+ e("td", Ne, o(R(t.engagementRate || 0)), 1),
276
+ e("td", qe, o(K(t.averageSessionDuration || 0)), 1)
277
+ ]))), 128))
278
+ ])
279
+ ])
280
+ ]),
281
+ _.value.length ? g("", !0) : (a(), l("div", Ae, "No channel data available"))
282
+ ]),
283
+ _: 1
284
+ })
285
+ ]),
286
+ _: 1
287
+ })
288
+ ]),
289
+ r(m, null, {
290
+ default: i(() => [
291
+ r(G, { class: "pb-0" }, {
292
+ default: i(() => [
293
+ e("div", Ge, [
294
+ (a(!0), l(h, null, v([
295
+ { key: "sources", label: "Source / Medium", icon: x(ae) },
296
+ { key: "referrals", label: "Referrals", icon: x(T) },
297
+ { key: "campaigns", label: "Campaigns", icon: x(V) }
298
+ ], (t) => (a(), l("button", {
299
+ key: t.key,
300
+ class: L(["flex items-center gap-1.5 px-3 py-2 text-sm font-medium rounded-md transition-colors", C.value === t.key ? "bg-muted text-foreground" : "text-muted-foreground hover:text-foreground"]),
301
+ onClick: (d) => C.value = t.key
302
+ }, [
303
+ (a(), E(Z(t.icon), { class: "size-3.5" })),
304
+ z(" " + o(t.label), 1)
305
+ ], 10, Be))), 128))
306
+ ])
307
+ ]),
308
+ _: 1
309
+ }),
310
+ r(B, { class: "p-0 mt-4" }, {
311
+ default: i(() => [
312
+ C.value === "sources" ? (a(), l("div", Le, [
313
+ e("div", Ee, [
314
+ e("table", je, [
315
+ s[7] || (s[7] = e("thead", null, [
316
+ e("tr", { class: "border-b text-left" }, [
317
+ e("th", { class: "px-6 py-3 font-medium text-muted-foreground" }, "#"),
318
+ e("th", { class: "px-4 py-3 font-medium text-muted-foreground" }, "Source / Medium"),
319
+ e("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "Sessions"),
320
+ e("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "Users"),
321
+ e("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "New Users"),
322
+ e("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "Bounce Rate")
323
+ ])
324
+ ], -1)),
325
+ e("tbody", Fe, [
326
+ (a(!0), l(h, null, v(N.value, (t, d) => (a(), l("tr", {
327
+ key: t.sessionSourceMedium,
328
+ class: "hover:bg-muted/50"
329
+ }, [
330
+ e("td", Te, o(d + 1), 1),
331
+ e("td", Ve, o(t.sessionSourceMedium), 1),
332
+ e("td", Oe, o(u(t.sessions)), 1),
333
+ e("td", Pe, o(u(t.totalUsers)), 1),
334
+ e("td", He, o(u(t.newUsers)), 1),
335
+ e("td", Ie, o(R(t.bounceRate || 0)), 1)
336
+ ]))), 128))
337
+ ])
338
+ ])
339
+ ]),
340
+ N.value.length ? g("", !0) : (a(), l("div", We, "No data available"))
341
+ ])) : g("", !0),
342
+ C.value === "referrals" ? (a(), l("div", Ke, [
343
+ (a(!0), l(h, null, v(q.value, (t, d) => (a(), l("div", {
344
+ key: t.sessionSource,
345
+ class: "flex items-center justify-between px-6 py-3 text-sm hover:bg-muted/50"
346
+ }, [
347
+ e("div", Je, [
348
+ e("span", Qe, o(d + 1), 1),
349
+ r(x(T), { class: "size-3.5 text-muted-foreground shrink-0" }),
350
+ e("span", Xe, o(t.sessionSource), 1)
351
+ ]),
352
+ e("div", Ye, [
353
+ e("span", Ze, o(u(t.sessions)) + " sessions", 1),
354
+ e("span", et, o(u(t.totalUsers)) + " users", 1),
355
+ e("span", tt, o(R(t.engagementRate || 0)) + " eng.", 1)
356
+ ])
357
+ ]))), 128)),
358
+ q.value.length ? g("", !0) : (a(), l("div", st, "No referral data available"))
359
+ ])) : g("", !0),
360
+ C.value === "campaigns" ? (a(), l("div", ot, [
361
+ (a(!0), l(h, null, v(A.value, (t, d) => (a(), l("div", {
362
+ key: t.sessionCampaignName,
363
+ class: "flex items-center justify-between px-6 py-3 text-sm hover:bg-muted/50"
364
+ }, [
365
+ e("div", nt, [
366
+ e("span", at, o(d + 1), 1),
367
+ r(x(V), { class: "size-3.5 text-muted-foreground shrink-0" }),
368
+ e("span", lt, o(t.sessionCampaignName), 1)
369
+ ]),
370
+ e("div", rt, [
371
+ e("span", it, o(u(t.sessions)) + " sessions", 1),
372
+ e("span", ut, o(u(t.totalUsers)) + " users", 1),
373
+ e("span", dt, o(R(t.engagementRate || 0)) + " eng.", 1)
374
+ ])
375
+ ]))), 128)),
376
+ A.value.length ? g("", !0) : (a(), l("div", ct, "No campaign data. Use UTM parameters in your URLs to track campaigns."))
377
+ ])) : g("", !0)
378
+ ]),
379
+ _: 1
380
+ })
381
+ ]),
382
+ _: 1
383
+ })
384
+ ], 64)) : (a(), E(m, {
385
+ key: 0,
386
+ class: "p-8 text-center"
387
+ }, {
388
+ default: i(() => [...s[1] || (s[1] = [
389
+ e("p", { class: "text-lg font-medium" }, "Setup required", -1),
390
+ e("p", { class: "text-sm text-muted-foreground mt-2" }, "Configure your GA4 property in module settings.", -1)
391
+ ])]),
392
+ _: 1
393
+ }))
394
+ ]);
395
+ };
396
+ }
397
+ });
398
+ export {
399
+ _t as default
400
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),C=require("@oneclick.dev/cms-kit");require("./index-B5aBwdxY.js");const d=require("lucide-vue-next"),B=require("./index-BiT55eU0.js"),q={class:"@container/charts flex flex-col gap-6 w-full max-w-7xl mx-auto py-8"},L={class:"flex justify-between gap-4 flex-col @lg:flex-row @lg:items-center"},U={key:0,class:"flex items-center gap-2"},F={class:"flex items-center border rounded-lg overflow-hidden"},A=["onClick"],G={class:"text-sm text-destructive font-medium"},T={key:2,class:"flex items-center justify-center py-20"},j={class:"flex flex-col @4xl/charts:grid @4xl/charts:grid-cols-3 gap-6"},O={class:"relative"},P={class:"absolute inset-0 flex items-center justify-center pointer-events-none"},H={class:"text-center"},I={class:"text-2xl font-bold tabular-nums"},K={class:"mt-4 grid grid-cols-2 gap-x-4 gap-y-1.5 w-full"},W={class:"text-xs truncate"},J={class:"text-xs text-muted-foreground ml-auto tabular-nums"},Q={class:"overflow-x-auto"},X={class:"w-full text-sm"},Y={class:"divide-y"},Z={class:"px-6 py-3"},ee={class:"flex items-center gap-2"},te={class:"font-medium"},oe={class:"px-4 py-3 text-right tabular-nums"},se={class:"px-4 py-3 text-right tabular-nums"},ne={class:"px-4 py-3 text-right tabular-nums"},ae={class:"px-4 py-3 text-right tabular-nums"},le={class:"px-4 py-3 text-right tabular-nums"},re={key:0,class:"px-6 py-8 text-center text-muted-foreground text-sm"},ce={class:"flex items-center gap-4"},ie=["onClick"],de={key:0,class:"divide-y"},ue={class:"overflow-x-auto"},me={class:"w-full text-sm"},pe={class:"divide-y"},xe={class:"px-6 py-3 text-muted-foreground"},fe={class:"px-4 py-3 font-mono text-xs"},ge={class:"px-4 py-3 text-right tabular-nums"},he={class:"px-4 py-3 text-right tabular-nums"},_e={class:"px-4 py-3 text-right tabular-nums"},ye={class:"px-4 py-3 text-right tabular-nums"},ve={key:0,class:"px-6 py-8 text-center text-muted-foreground text-sm"},Ne={key:1,class:"divide-y"},Ve={class:"flex items-center gap-3 min-w-0"},ke={class:"text-muted-foreground w-5 text-right shrink-0"},Ee={class:"truncate font-medium"},Ce={class:"flex items-center gap-6 shrink-0 tabular-nums text-xs text-muted-foreground"},be={class:"w-20 text-right"},Be={class:"w-16 text-right"},we={class:"w-16 text-right"},De={key:0,class:"px-6 py-8 text-center text-muted-foreground text-sm"},Se={key:2,class:"divide-y"},Me={class:"flex items-center gap-3 min-w-0"},$e={class:"text-muted-foreground w-5 text-right shrink-0"},Re={class:"truncate font-medium"},ze={class:"flex items-center gap-6 shrink-0 tabular-nums text-xs text-muted-foreground"},qe={class:"w-20 text-right"},Le={class:"w-16 text-right"},Ue={class:"w-16 text-right"},Fe={key:0,class:"px-6 py-8 text-center text-muted-foreground text-sm"},Ae=e.defineComponent({__name:"Acquisition",setup(Ge){const{config:b}=C.useModule(),{moduleId:w}=C.useModuleRoute();C.useModuleBreadcrumbs(()=>[{label:"Acquisition"}]);const u=e.ref(!0),p=e.ref(null),x=e.ref("30"),m=e.ref("sources"),i=e.ref([]),v=e.ref([]),N=e.ref([]),V=e.ref([]),f=e.computed(()=>!!(b.serviceAccount&&b.propertyId));function g(s){return`/api/v1/modules/${w}${s}`}const D=[{label:"7d",value:"7"},{label:"14d",value:"14"},{label:"30d",value:"30"},{label:"90d",value:"90"}],c=["#3b82f6","#8b5cf6","#10b981","#f59e0b","#ef4444","#06b6d4","#ec4899","#84cc16","#f97316","#6366f1","#14b8a6","#e11d48","#a855f7","#22c55e","#eab308"],S=e.computed(()=>{const s={};return i.value.forEach((o,l)=>{const r=(o.sessionDefaultChannelGroup||"other").toLowerCase().replace(/[^a-z0-9]/g,"_");s[r]={label:o.sessionDefaultChannelGroup||"Other",color:c[l%c.length]}}),s}),M=e.computed(()=>i.value.map((s,o)=>({key:(s.sessionDefaultChannelGroup||"other").toLowerCase().replace(/[^a-z0-9]/g,"_"),label:s.sessionDefaultChannelGroup||"Other",sessions:s.sessions||0,fill:c[o%c.length]}))),$=e.computed(()=>i.value.reduce((s,o)=>s+(o.sessions||0),0));function n(s){return s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:Math.round(s).toString()}function h(s){return`${(s*100).toFixed(1)}%`}function R(s){const o=Math.floor(s/60),l=Math.round(s%60);return o>0?`${o}m ${l}s`:`${l}s`}async function _(){if(!f.value)return;u.value=!0,p.value=null;const s=`${x.value}daysAgo`;try{const[o,l,r,y]=await Promise.all([$fetch(g(`/acquisition/channels?startDate=${s}&endDate=today`)),$fetch(g(`/acquisition/source-medium?startDate=${s}&endDate=today`)),$fetch(g(`/acquisition/referrals?startDate=${s}&endDate=today`)).catch(()=>({rows:[]})),$fetch(g(`/acquisition/campaigns?startDate=${s}&endDate=today`)).catch(()=>({rows:[]}))]);i.value=o.rows||[],v.value=l.rows||[],N.value=r.rows||[],V.value=y.rows||[]}catch(o){p.value=o?.data?.statusMessage||o?.message||"Failed to load acquisition data"}finally{u.value=!1}}return e.watch(x,()=>_()),e.onMounted(()=>{f.value?_():u.value=!1}),(s,o)=>{const l=e.resolveComponent("Button"),r=e.resolveComponent("Card"),y=e.resolveComponent("CardTitle"),k=e.resolveComponent("CardHeader"),z=e.resolveComponent("ChartContainer"),E=e.resolveComponent("CardContent");return e.openBlock(),e.createElementBlock("div",q,[e.createElementVNode("div",L,[o[0]||(o[0]=e.createElementVNode("div",null,[e.createElementVNode("h1",{class:"text-2xl font-semibold"},"Acquisition"),e.createElementVNode("p",{class:"text-muted-foreground text-sm mt-1"},"Where your traffic comes from")],-1)),f.value?(e.openBlock(),e.createElementBlock("div",U,[e.createElementVNode("div",F,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(D,t=>e.createElementVNode("button",{key:t.value,class:e.normalizeClass(["px-3 py-1.5 text-xs font-medium transition-colors",x.value===t.value?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground hover:bg-muted"]),onClick:a=>x.value=t.value},e.toDisplayString(t.label),11,A)),64))]),e.createVNode(l,{variant:"outline",size:"icon",onClick:_,disabled:u.value},{default:e.withCtx(()=>[e.createVNode(e.unref(d.RefreshCw),{class:e.normalizeClass(["size-4",{"animate-spin":u.value}])},null,8,["class"])]),_:1},8,["disabled"])])):e.createCommentVNode("",!0)]),f.value?p.value?(e.openBlock(),e.createBlock(r,{key:1,class:"p-6 border-destructive/50 bg-destructive/5"},{default:e.withCtx(()=>[e.createElementVNode("p",G,e.toDisplayString(p.value),1),e.createVNode(l,{variant:"outline",size:"sm",class:"mt-3",onClick:_},{default:e.withCtx(()=>[...o[2]||(o[2]=[e.createTextVNode("Retry",-1)])]),_:1})]),_:1})):u.value?(e.openBlock(),e.createElementBlock("div",T,[e.createVNode(e.unref(d.Loader2),{class:"size-8 animate-spin text-muted-foreground"})])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createElementVNode("div",j,[e.createVNode(r,{class:"@4xl/charts:col-span-1"},{default:e.withCtx(()=>[e.createVNode(k,{class:"pb-2"},{default:e.withCtx(()=>[e.createVNode(y,{class:"text-base"},{default:e.withCtx(()=>[...o[3]||(o[3]=[e.createTextVNode("Channel Mix",-1)])]),_:1})]),_:1}),e.createVNode(E,{class:"flex flex-col items-center"},{default:e.withCtx(()=>[e.createElementVNode("div",O,[e.createVNode(z,{config:S.value,class:"mx-auto aspect-square max-h-[220px]"},{default:e.withCtx(()=>[e.createVNode(e.unref(B.S),{data:M.value,margin:{top:20,bottom:20,left:20,right:20}},{default:e.withCtx(()=>[e.createVNode(e.unref(B.E),{value:t=>t.sessions,color:t=>t.fill,arcWidth:40,padAngle:.02,cornerRadius:4},null,8,["value","color"])]),_:1},8,["data"])]),_:1},8,["config"]),e.createElementVNode("div",P,[e.createElementVNode("div",H,[e.createElementVNode("p",I,e.toDisplayString(n($.value)),1),o[4]||(o[4]=e.createElementVNode("p",{class:"text-xs text-muted-foreground"},"sessions",-1))])])]),e.createElementVNode("div",K,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value.slice(0,8),(t,a)=>(e.openBlock(),e.createElementBlock("div",{key:t.sessionDefaultChannelGroup,class:"flex items-center gap-2"},[e.createElementVNode("div",{class:"size-2.5 rounded-full shrink-0",style:e.normalizeStyle({backgroundColor:c[a%c.length]})},null,4),e.createElementVNode("span",W,e.toDisplayString(t.sessionDefaultChannelGroup),1),e.createElementVNode("span",J,e.toDisplayString(n(t.sessions)),1)]))),128))])]),_:1})]),_:1}),e.createVNode(r,{class:"@4xl/charts:col-span-2"},{default:e.withCtx(()=>[e.createVNode(k,{class:"pb-2"},{default:e.withCtx(()=>[e.createVNode(y,{class:"text-base"},{default:e.withCtx(()=>[...o[5]||(o[5]=[e.createTextVNode("Channels Performance",-1)])]),_:1})]),_:1}),e.createVNode(E,{class:"p-0"},{default:e.withCtx(()=>[e.createElementVNode("div",Q,[e.createElementVNode("table",X,[o[6]||(o[6]=e.createElementVNode("thead",null,[e.createElementVNode("tr",{class:"border-b text-left"},[e.createElementVNode("th",{class:"px-6 py-3 font-medium text-muted-foreground"},"Channel"),e.createElementVNode("th",{class:"px-4 py-3 font-medium text-muted-foreground text-right"},"Sessions"),e.createElementVNode("th",{class:"px-4 py-3 font-medium text-muted-foreground text-right"},"Users"),e.createElementVNode("th",{class:"px-4 py-3 font-medium text-muted-foreground text-right"},"New Users"),e.createElementVNode("th",{class:"px-4 py-3 font-medium text-muted-foreground text-right"},"Engage Rate"),e.createElementVNode("th",{class:"px-4 py-3 font-medium text-muted-foreground text-right"},"Avg Duration")])],-1)),e.createElementVNode("tbody",Y,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(t,a)=>(e.openBlock(),e.createElementBlock("tr",{key:t.sessionDefaultChannelGroup,class:"hover:bg-muted/50"},[e.createElementVNode("td",Z,[e.createElementVNode("div",ee,[e.createElementVNode("div",{class:"size-2.5 rounded-full shrink-0",style:e.normalizeStyle({backgroundColor:c[a%c.length]})},null,4),e.createElementVNode("span",te,e.toDisplayString(t.sessionDefaultChannelGroup),1)])]),e.createElementVNode("td",oe,e.toDisplayString(n(t.sessions)),1),e.createElementVNode("td",se,e.toDisplayString(n(t.totalUsers)),1),e.createElementVNode("td",ne,e.toDisplayString(n(t.newUsers)),1),e.createElementVNode("td",ae,e.toDisplayString(h(t.engagementRate||0)),1),e.createElementVNode("td",le,e.toDisplayString(R(t.averageSessionDuration||0)),1)]))),128))])])]),i.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",re,"No channel data available"))]),_:1})]),_:1})]),e.createVNode(r,null,{default:e.withCtx(()=>[e.createVNode(k,{class:"pb-0"},{default:e.withCtx(()=>[e.createElementVNode("div",ce,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList([{key:"sources",label:"Source / Medium",icon:e.unref(d.Share2)},{key:"referrals",label:"Referrals",icon:e.unref(d.ExternalLink)},{key:"campaigns",label:"Campaigns",icon:e.unref(d.Megaphone)}],t=>(e.openBlock(),e.createElementBlock("button",{key:t.key,class:e.normalizeClass(["flex items-center gap-1.5 px-3 py-2 text-sm font-medium rounded-md transition-colors",m.value===t.key?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"]),onClick:a=>m.value=t.key},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.icon),{class:"size-3.5"})),e.createTextVNode(" "+e.toDisplayString(t.label),1)],10,ie))),128))])]),_:1}),e.createVNode(E,{class:"p-0 mt-4"},{default:e.withCtx(()=>[m.value==="sources"?(e.openBlock(),e.createElementBlock("div",de,[e.createElementVNode("div",ue,[e.createElementVNode("table",me,[o[7]||(o[7]=e.createElementVNode("thead",null,[e.createElementVNode("tr",{class:"border-b text-left"},[e.createElementVNode("th",{class:"px-6 py-3 font-medium text-muted-foreground"},"#"),e.createElementVNode("th",{class:"px-4 py-3 font-medium text-muted-foreground"},"Source / Medium"),e.createElementVNode("th",{class:"px-4 py-3 font-medium text-muted-foreground text-right"},"Sessions"),e.createElementVNode("th",{class:"px-4 py-3 font-medium text-muted-foreground text-right"},"Users"),e.createElementVNode("th",{class:"px-4 py-3 font-medium text-muted-foreground text-right"},"New Users"),e.createElementVNode("th",{class:"px-4 py-3 font-medium text-muted-foreground text-right"},"Bounce Rate")])],-1)),e.createElementVNode("tbody",pe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,(t,a)=>(e.openBlock(),e.createElementBlock("tr",{key:t.sessionSourceMedium,class:"hover:bg-muted/50"},[e.createElementVNode("td",xe,e.toDisplayString(a+1),1),e.createElementVNode("td",fe,e.toDisplayString(t.sessionSourceMedium),1),e.createElementVNode("td",ge,e.toDisplayString(n(t.sessions)),1),e.createElementVNode("td",he,e.toDisplayString(n(t.totalUsers)),1),e.createElementVNode("td",_e,e.toDisplayString(n(t.newUsers)),1),e.createElementVNode("td",ye,e.toDisplayString(h(t.bounceRate||0)),1)]))),128))])])]),v.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",ve,"No data available"))])):e.createCommentVNode("",!0),m.value==="referrals"?(e.openBlock(),e.createElementBlock("div",Ne,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,(t,a)=>(e.openBlock(),e.createElementBlock("div",{key:t.sessionSource,class:"flex items-center justify-between px-6 py-3 text-sm hover:bg-muted/50"},[e.createElementVNode("div",Ve,[e.createElementVNode("span",ke,e.toDisplayString(a+1),1),e.createVNode(e.unref(d.ExternalLink),{class:"size-3.5 text-muted-foreground shrink-0"}),e.createElementVNode("span",Ee,e.toDisplayString(t.sessionSource),1)]),e.createElementVNode("div",Ce,[e.createElementVNode("span",be,e.toDisplayString(n(t.sessions))+" sessions",1),e.createElementVNode("span",Be,e.toDisplayString(n(t.totalUsers))+" users",1),e.createElementVNode("span",we,e.toDisplayString(h(t.engagementRate||0))+" eng.",1)])]))),128)),N.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",De,"No referral data available"))])):e.createCommentVNode("",!0),m.value==="campaigns"?(e.openBlock(),e.createElementBlock("div",Se,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.value,(t,a)=>(e.openBlock(),e.createElementBlock("div",{key:t.sessionCampaignName,class:"flex items-center justify-between px-6 py-3 text-sm hover:bg-muted/50"},[e.createElementVNode("div",Me,[e.createElementVNode("span",$e,e.toDisplayString(a+1),1),e.createVNode(e.unref(d.Megaphone),{class:"size-3.5 text-muted-foreground shrink-0"}),e.createElementVNode("span",Re,e.toDisplayString(t.sessionCampaignName),1)]),e.createElementVNode("div",ze,[e.createElementVNode("span",qe,e.toDisplayString(n(t.sessions))+" sessions",1),e.createElementVNode("span",Le,e.toDisplayString(n(t.totalUsers))+" users",1),e.createElementVNode("span",Ue,e.toDisplayString(h(t.engagementRate||0))+" eng.",1)])]))),128)),V.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Fe,"No campaign data. Use UTM parameters in your URLs to track campaigns."))])):e.createCommentVNode("",!0)]),_:1})]),_:1})],64)):(e.openBlock(),e.createBlock(r,{key:0,class:"p-8 text-center"},{default:e.withCtx(()=>[...o[1]||(o[1]=[e.createElementVNode("p",{class:"text-lg font-medium"},"Setup required",-1),e.createElementVNode("p",{class:"text-sm text-muted-foreground mt-2"},"Configure your GA4 property in module settings.",-1)])]),_:1}))])}}});exports.default=Ae;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),c=require("lucide-vue-next"),C={class:"w-full"},V={key:0,class:"flex items-center gap-2 py-3"},b={key:1,class:"text-xs text-destructive py-2"},w={key:2,class:"rounded-xl border bg-background p-3 space-y-3"},D={class:"relative flex items-start gap-3"},S={class:"shrink-0 size-10 rounded-lg bg-primary/10 flex items-center justify-center"},I={class:"flex-1 min-w-0 pr-10"},M={class:"text-sm font-semibold truncate"},$={class:"text-xs text-muted-foreground"},T={key:0,class:"text-xs text-muted-foreground text-center py-2"},j={key:1,class:"space-y-2"},z={class:"flex items-center justify-between"},A={class:"text-xs font-medium"},L={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"},F={key:0,class:"flex items-center gap-1.5 text-xs text-red-500"},q={key:1,class:"space-y-0.5"},O={key:2,class:"text-xs text-muted-foreground"},H=e.defineComponent({__name:"AgendaOpeningHoursCard",props:{toolName:{},projectSlug:{},instanceId:{},instanceName:{},moduleType:{},resolvedArgs:{},status:{}},emits:["submit"],setup(r,{emit:f}){const{$useModuleApi:x}=useNuxtApp(),i=r,y=f,k=x(i.instanceId),u=e.ref(!0),a=e.ref(null),d=e.ref(null),v=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];async function N(){const{agendaId:n,date:t}=i.resolvedArgs||{};if(!n||!t){a.value="Agenda ID and date are required",u.value=!1,m(`Error: ${a.value}`);return}u.value=!0,a.value=null;try{const o=await k.get(`/agendas/${n}/opening-hours?date=${t}`);d.value=o,m({agendaId:o.agendaId,serviceName:o.serviceName,date:o.date,resources:o.resources.map(s=>({resourceId:s.resourceId,resourceName:s.resourceName,isClosed:s.isClosed,hours:s.hours,isException:s.isException}))})}catch(o){a.value=o?.data?.statusMessage||o?.message||"Failed to load opening hours",m(`Error loading opening hours: ${a.value}`)}finally{u.value=!1}}e.onMounted(()=>{N()});function m(n){i.status!=="completed"&&y("submit",n)}const h=e.computed(()=>{if(!d.value?.date)return"";const n=new Date(d.value.date+"T00:00:00");return`${v[n.getDay()]}, ${n.toLocaleDateString("en-US",{month:"long",day:"numeric",year:"numeric"})}`});return(n,t)=>{const o=e.resolveComponent("DropdownMenuTrigger"),s=e.resolveComponent("NuxtLink"),p=e.resolveComponent("DropdownMenuItem"),_=e.resolveComponent("DropdownMenuContent"),E=e.resolveComponent("DropdownMenu");return e.openBlock(),e.createElementBlock("div",C,[e.unref(u)?(e.openBlock(),e.createElementBlock("div",V,[e.createVNode(e.unref(c.Loader2),{class:"size-4 animate-spin text-muted-foreground"}),t[0]||(t[0]=e.createElementVNode("span",{class:"text-xs text-muted-foreground"},"Loading opening hours…",-1))])):e.unref(a)?(e.openBlock(),e.createElementBlock("div",b,e.toDisplayString(e.unref(a)),1)):e.unref(d)?(e.openBlock(),e.createElementBlock("div",w,[e.createElementVNode("div",D,[e.createElementVNode("div",S,[e.createVNode(e.unref(c.CalendarDays),{class:"size-5 text-primary"})]),e.createElementVNode("div",I,[e.createElementVNode("p",M,e.toDisplayString(e.unref(d).serviceName),1),e.createElementVNode("p",$,e.toDisplayString(e.unref(h)),1)]),e.createVNode(E,null,{default:e.withCtx(()=>[e.createVNode(o,{class:"absolute top-2 right-2"},{default:e.withCtx(()=>[e.createVNode(e.unref(c.Settings),{class:"size-4 text-muted-foreground hover:text-foreground transition-colors"})]),_:1}),e.createVNode(_,{align:"end"},{default:e.withCtx(()=>[e.createVNode(p,{"as-child":""},{default:e.withCtx(()=>[e.createVNode(s,{to:`/projects/${r.projectSlug}/modules/${r.instanceId}/edit/${r.resolvedArgs.agendaId}/resources`},{default:e.withCtx(()=>[e.createVNode(e.unref(c.CalendarCog),{class:"size-4"}),t[1]||(t[1]=e.createTextVNode(" Regular hours ",-1))]),_:1},8,["to"])]),_:1}),e.createVNode(p,{"as-child":""},{default:e.withCtx(()=>[e.createVNode(s,{to:`/projects/${r.projectSlug}/modules/${r.instanceId}/edit/${r.resolvedArgs.agendaId}/exceptions`},{default:e.withCtx(()=>[e.createVNode(e.unref(c.CalendarCog),{class:"size-4"}),t[2]||(t[2]=e.createTextVNode(" Closures & exceptions ",-1))]),_:1},8,["to"])]),_:1})]),_:1})]),_:1})]),e.unref(d).resources.length===0?(e.openBlock(),e.createElementBlock("div",T," No active resources found for this agenda. ")):(e.openBlock(),e.createElementBlock("div",j,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(d).resources,l=>(e.openBlock(),e.createElementBlock("div",{key:l.resourceId,class:"rounded-lg border px-3 py-2 space-y-1"},[e.createElementVNode("div",z,[e.createElementVNode("span",A,e.toDisplayString(l.resourceName),1),l.isException?(e.openBlock(),e.createElementBlock("span",L," Exception ")):e.createCommentVNode("",!0)]),l.isClosed?(e.openBlock(),e.createElementBlock("div",F,[e.createVNode(e.unref(c.BanIcon),{class:"size-3"}),t[3]||(t[3]=e.createElementVNode("span",null,"Closed",-1))])):l.hours.length>0?(e.openBlock(),e.createElementBlock("div",q,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.hours,(g,B)=>(e.openBlock(),e.createElementBlock("div",{key:B,class:"flex items-center gap-1.5 text-xs text-muted-foreground"},[e.createVNode(e.unref(c.Clock),{class:"size-3"}),e.createElementVNode("span",null,e.toDisplayString(g.start)+" – "+e.toDisplayString(g.end),1)]))),128))])):(e.openBlock(),e.createElementBlock("div",O," No hours set "))]))),128))]))])):e.createCommentVNode("",!0)])}}});exports.default=H;
@@ -0,0 +1,172 @@
1
+ import { defineComponent as V, ref as _, onMounted as B, computed as F, resolveComponent as x, openBlock as t, createElementBlock as s, unref as e, createVNode as o, createElementVNode as r, toDisplayString as g, withCtx as m, createTextVNode as b, Fragment as N, renderList as C, createCommentVNode as I } from "vue";
2
+ import { Loader2 as H, CalendarDays as O, Settings as q, CalendarCog as D, BanIcon as R, Clock as U } from "lucide-vue-next";
3
+ const W = { class: "w-full" }, G = {
4
+ key: 0,
5
+ class: "flex items-center gap-2 py-3"
6
+ }, J = {
7
+ key: 1,
8
+ class: "text-xs text-destructive py-2"
9
+ }, K = {
10
+ key: 2,
11
+ class: "rounded-xl border bg-background p-3 space-y-3"
12
+ }, P = { class: "relative flex items-start gap-3" }, Q = { class: "shrink-0 size-10 rounded-lg bg-primary/10 flex items-center justify-center" }, X = { class: "flex-1 min-w-0 pr-10" }, Y = { class: "text-sm font-semibold truncate" }, Z = { class: "text-xs text-muted-foreground" }, ee = {
13
+ key: 0,
14
+ class: "text-xs text-muted-foreground text-center py-2"
15
+ }, te = {
16
+ key: 1,
17
+ class: "space-y-2"
18
+ }, se = { class: "flex items-center justify-between" }, oe = { class: "text-xs font-medium" }, ne = {
19
+ key: 0,
20
+ 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"
21
+ }, ae = {
22
+ key: 0,
23
+ class: "flex items-center gap-1.5 text-xs text-red-500"
24
+ }, re = {
25
+ key: 1,
26
+ class: "space-y-0.5"
27
+ }, de = {
28
+ key: 2,
29
+ class: "text-xs text-muted-foreground"
30
+ }, le = /* @__PURE__ */ V({
31
+ __name: "AgendaOpeningHoursCard",
32
+ props: {
33
+ toolName: {},
34
+ projectSlug: {},
35
+ instanceId: {},
36
+ instanceName: {},
37
+ moduleType: {},
38
+ resolvedArgs: {},
39
+ status: {}
40
+ },
41
+ emits: ["submit"],
42
+ setup(u, { emit: w }) {
43
+ const { $useModuleApi: $ } = useNuxtApp(), y = u, M = w, S = $(y.instanceId), f = _(!0), l = _(null), c = _(null), z = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
44
+ async function A() {
45
+ const { agendaId: d, date: n } = y.resolvedArgs || {};
46
+ if (!d || !n) {
47
+ l.value = "Agenda ID and date are required", f.value = !1, v(`Error: ${l.value}`);
48
+ return;
49
+ }
50
+ f.value = !0, l.value = null;
51
+ try {
52
+ const a = await S.get(`/agendas/${d}/opening-hours?date=${n}`);
53
+ c.value = a, v({
54
+ agendaId: a.agendaId,
55
+ serviceName: a.serviceName,
56
+ date: a.date,
57
+ resources: a.resources.map((i) => ({
58
+ resourceId: i.resourceId,
59
+ resourceName: i.resourceName,
60
+ isClosed: i.isClosed,
61
+ hours: i.hours,
62
+ isException: i.isException
63
+ }))
64
+ });
65
+ } catch (a) {
66
+ l.value = a?.data?.statusMessage || a?.message || "Failed to load opening hours", v(`Error loading opening hours: ${l.value}`);
67
+ } finally {
68
+ f.value = !1;
69
+ }
70
+ }
71
+ B(() => {
72
+ A();
73
+ });
74
+ function v(d) {
75
+ y.status !== "completed" && M("submit", d);
76
+ }
77
+ const E = F(() => {
78
+ if (!c.value?.date) return "";
79
+ const d = /* @__PURE__ */ new Date(c.value.date + "T00:00:00");
80
+ return `${z[d.getDay()]}, ${d.toLocaleDateString("en-US", { month: "long", day: "numeric", year: "numeric" })}`;
81
+ });
82
+ return (d, n) => {
83
+ const a = x("DropdownMenuTrigger"), i = x("NuxtLink"), h = x("DropdownMenuItem"), j = x("DropdownMenuContent"), T = x("DropdownMenu");
84
+ return t(), s("div", W, [
85
+ e(f) ? (t(), s("div", G, [
86
+ o(e(H), { class: "size-4 animate-spin text-muted-foreground" }),
87
+ n[0] || (n[0] = r("span", { class: "text-xs text-muted-foreground" }, "Loading opening hours…", -1))
88
+ ])) : e(l) ? (t(), s("div", J, g(e(l)), 1)) : e(c) ? (t(), s("div", K, [
89
+ r("div", P, [
90
+ r("div", Q, [
91
+ o(e(O), { class: "size-5 text-primary" })
92
+ ]),
93
+ r("div", X, [
94
+ r("p", Y, g(e(c).serviceName), 1),
95
+ r("p", Z, g(e(E)), 1)
96
+ ]),
97
+ o(T, null, {
98
+ default: m(() => [
99
+ o(a, { class: "absolute top-2 right-2" }, {
100
+ default: m(() => [
101
+ o(e(q), { class: "size-4 text-muted-foreground hover:text-foreground transition-colors" })
102
+ ]),
103
+ _: 1
104
+ }),
105
+ o(j, { align: "end" }, {
106
+ default: m(() => [
107
+ o(h, { "as-child": "" }, {
108
+ default: m(() => [
109
+ o(i, {
110
+ to: `/projects/${u.projectSlug}/modules/${u.instanceId}/edit/${u.resolvedArgs.agendaId}/resources`
111
+ }, {
112
+ default: m(() => [
113
+ o(e(D), { class: "size-4" }),
114
+ n[1] || (n[1] = b(" Regular hours ", -1))
115
+ ]),
116
+ _: 1
117
+ }, 8, ["to"])
118
+ ]),
119
+ _: 1
120
+ }),
121
+ o(h, { "as-child": "" }, {
122
+ default: m(() => [
123
+ o(i, {
124
+ to: `/projects/${u.projectSlug}/modules/${u.instanceId}/edit/${u.resolvedArgs.agendaId}/exceptions`
125
+ }, {
126
+ default: m(() => [
127
+ o(e(D), { class: "size-4" }),
128
+ n[2] || (n[2] = b(" Closures & exceptions ", -1))
129
+ ]),
130
+ _: 1
131
+ }, 8, ["to"])
132
+ ]),
133
+ _: 1
134
+ })
135
+ ]),
136
+ _: 1
137
+ })
138
+ ]),
139
+ _: 1
140
+ })
141
+ ]),
142
+ e(c).resources.length === 0 ? (t(), s("div", ee, " No active resources found for this agenda. ")) : (t(), s("div", te, [
143
+ (t(!0), s(N, null, C(e(c).resources, (p) => (t(), s("div", {
144
+ key: p.resourceId,
145
+ class: "rounded-lg border px-3 py-2 space-y-1"
146
+ }, [
147
+ r("div", se, [
148
+ r("span", oe, g(p.resourceName), 1),
149
+ p.isException ? (t(), s("span", ne, " Exception ")) : I("", !0)
150
+ ]),
151
+ p.isClosed ? (t(), s("div", ae, [
152
+ o(e(R), { class: "size-3" }),
153
+ n[3] || (n[3] = r("span", null, "Closed", -1))
154
+ ])) : p.hours.length > 0 ? (t(), s("div", re, [
155
+ (t(!0), s(N, null, C(p.hours, (k, L) => (t(), s("div", {
156
+ key: L,
157
+ class: "flex items-center gap-1.5 text-xs text-muted-foreground"
158
+ }, [
159
+ o(e(U), { class: "size-3" }),
160
+ r("span", null, g(k.start) + " – " + g(k.end), 1)
161
+ ]))), 128))
162
+ ])) : (t(), s("div", de, " No hours set "))
163
+ ]))), 128))
164
+ ]))
165
+ ])) : I("", !0)
166
+ ]);
167
+ };
168
+ }
169
+ });
170
+ export {
171
+ le as default
172
+ };