@oneclick.dev/cms-core-modules 0.0.109 → 0.0.111

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 (578) hide show
  1. package/dist/Acquisition-DgzDQH51.js +1 -0
  2. package/dist/Acquisition-FV3QpaUX.mjs +400 -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-BSgNvcVb.js +1 -0
  12. package/dist/Audience-ka0b7YPE.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-pZPfo0qN.mjs +30802 -0
  18. package/dist/ContentEditor-tYkh4vRV.js +462 -0
  19. package/dist/CountryBreakdownCard-D7BK3nRD.js +1 -0
  20. package/dist/CountryBreakdownCard-DVxNz2DJ.mjs +196 -0
  21. package/dist/Create--MOBOTA-.js +1 -0
  22. package/dist/Create-BXNLRQag.mjs +1251 -0
  23. package/dist/DateFormatter-CSAbE3BC.js +1 -0
  24. package/dist/DateFormatter-qbhRYxI_.mjs +738 -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-C8wQiDcv.js +1 -0
  29. package/dist/Detail-CPqug27l.js +1 -0
  30. package/dist/Detail-ChD5XurA.mjs +379 -0
  31. package/dist/Detail-CjuhjPby.js +1 -0
  32. package/dist/Detail-DnX7tsqN.mjs +649 -0
  33. package/dist/Detail-RISEJJab.js +1 -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-zN_dKz4p.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-Baqy-rTT.js +1 -0
  46. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-Dx4Bpa2m.mjs +1263 -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-98nkJUWN.mjs +481 -0
  50. package/dist/Overview-BCpJNiEB.mjs +190 -0
  51. package/dist/Overview-BDlBCUI_.js +1 -0
  52. package/dist/Overview-BR_y8x3W.mjs +860 -0
  53. package/dist/Overview-BbvfH1u-.js +1 -0
  54. package/dist/Overview-Bn1Xx3_j.js +1 -0
  55. package/dist/Overview-CIa1E-HH.mjs +178 -0
  56. package/dist/Overview-CX-n6W7d.js +1 -0
  57. package/dist/Overview-DAxCu9XC.js +1 -0
  58. package/dist/Overview-Dl8cMlsr.js +1 -0
  59. package/dist/Overview-MpgkLB6m.mjs +567 -0
  60. package/dist/Overview-Su8ZUbMs.mjs +26 -0
  61. package/dist/Overview-T-lsy3UZ.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-C5npw7mE.js +1 -0
  76. package/dist/SeoHealth-bVQj_Xgm.mjs +615 -0
  77. package/dist/TableView-Bf1fdJrD.mjs +6159 -0
  78. package/dist/TableView-DNcXyIMu.js +4 -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-BaJu3-1c.js +1 -0
  92. package/dist/agenda-BwVY_8oM.mjs +1165 -0
  93. package/dist/availability-CMrRa5y2.mjs +269 -0
  94. package/dist/availability-Cf2YfMwM.js +1 -0
  95. package/dist/booking-data-DgJd0BcM.mjs +889 -0
  96. package/dist/booking-data-Di5GmH_8.js +1 -0
  97. package/dist/cms-core-modules.css +1 -2
  98. package/dist/countries-BTPvmrsb.mjs +4 -0
  99. package/dist/countries-CgZ081No.js +1 -0
  100. package/dist/exceptions-B6P9UiCj.js +1 -0
  101. package/dist/exceptions-De9-FvdP.mjs +646 -0
  102. package/dist/google-CvtuJwgk.mjs +4 -0
  103. package/dist/google-D4N3gb01.js +1 -0
  104. package/dist/index-4tjmIans.js +1 -0
  105. package/dist/index-9HVlmvK3.js +1 -0
  106. package/dist/index-B8GvmAwh.mjs +1403 -0
  107. package/dist/index-BIF2RB7k.mjs +2836 -0
  108. package/dist/index-BWDwEd8D.mjs +24 -0
  109. package/dist/index-BfBBm9uY.mjs +24 -0
  110. package/dist/index-Bkq58CeQ.mjs +22 -0
  111. package/dist/index-ByRsp77L.js +70 -0
  112. package/dist/index-CFzn2Lus.mjs +172 -0
  113. package/dist/index-CJQQBRLY.js +1 -0
  114. package/dist/index-CQkOH2_3.mjs +24 -0
  115. package/dist/index-CSxYBeVA.js +1 -0
  116. package/dist/index-CU-tbS5W.mjs +24 -0
  117. package/dist/index-CZn2nDLv.mjs +34 -0
  118. package/dist/index-CkVwMqpn.mjs +3857 -0
  119. package/dist/index-CkiNvRzs.js +1 -0
  120. package/dist/index-Co4ON2Di.js +1 -0
  121. package/dist/index-Cpnn_Pxd.mjs +24 -0
  122. package/dist/index-CsVeM3PA.mjs +24 -0
  123. package/dist/index-CwqrAU-H.js +1 -0
  124. package/dist/index-CxETuRsG.js +1 -0
  125. package/dist/index-Cz-baGax.js +1 -0
  126. package/dist/index-DFQGVHTs.js +1 -0
  127. package/dist/index-DL6orwdK.js +35 -0
  128. package/dist/index-DPd3waTN.js +1 -0
  129. package/dist/index-DRqJOqUR.mjs +3484 -0
  130. package/dist/index-DUlYrnXH.js +58 -0
  131. package/dist/index-DZV720u-.mjs +439 -0
  132. package/dist/index-D_nfGegA.js +184 -0
  133. package/dist/index-DjWuIBxh.js +1 -0
  134. package/dist/index-Dnn2SCSl.js +1 -0
  135. package/dist/index-Dpl9sU6a.mjs +12 -0
  136. package/dist/index-DrXxXB2F.mjs +138 -0
  137. package/dist/index-DtSvAFLL.js +54 -0
  138. package/dist/index-L54VBzwJ.mjs +109 -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-cOnxXTbF.mjs +24 -0
  143. package/dist/index-hH3e-IYz.mjs +1187 -0
  144. package/dist/index-hlylYYgy.mjs +24 -0
  145. package/dist/index-ijdf0d9-.js +1 -0
  146. package/dist/index.cjs.js +1 -1
  147. package/dist/index.mjs +806 -1095
  148. package/dist/interpolation-CHn59tIC.js +1 -0
  149. package/dist/interpolation-w7IRDJwK.mjs +180 -0
  150. package/dist/math-BJ-oX_IM.mjs +80 -0
  151. package/dist/math-emotyaF6.js +1 -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-CxeFd57z.js +1 -0
  159. package/dist/resources-DwYxn2Vi.mjs +811 -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/ScopedSelectAll.d.ts +1 -2
  240. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Stack.vue.d.ts +115 -0
  241. package/dist/src/contentManager/components/content-editor/tiptap-extensions/TrailingNodeInContainers.d.ts +1 -4
  242. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Video.vue.d.ts +92 -0
  243. package/dist/src/contentManager/components/content-editor/tiptap-extensions/extension-details/DetailsNodeView.vue.d.ts +92 -0
  244. package/dist/src/contentManager/components/content-editor/tiptap-extensions/helpers/NodeLabel.vue.d.ts +108 -0
  245. package/dist/src/contentManager/components/content-editor/tiptap-extensions/helpers/ResizeHandlers.vue.d.ts +20 -0
  246. package/dist/src/contentManager/components/content-editor/tiptap-extensions/helpers/TopMarginDragger.vue.d.ts +104 -0
  247. package/dist/src/contentManager/components/content-editor/tiptap-extensions/helpers/useFocus.d.ts +1 -0
  248. package/dist/src/contentManager/components/content-editor/tiptap-menus/BubbleMenuClassBuilder.vue.d.ts +19 -0
  249. package/dist/src/contentManager/components/content-editor/tiptap-menus/BubbleMenuLinkBuilder.vue.d.ts +19 -0
  250. package/dist/src/contentManager/components/content-editor/tiptap-menus/BubbleMenuToggleButton.vue.d.ts +29 -0
  251. package/dist/src/contentManager/components/content-editor/tiptap-menus/DefaultBubbleMenu.vue.d.ts +13 -0
  252. package/dist/src/contentManager/components/content-editor/tiptap-menus/ElementEditorMenu.vue.d.ts +19 -0
  253. package/dist/src/contentManager/components/content-editor/tiptap-menus/EmojiMenu.vue.d.ts +8 -0
  254. package/dist/src/contentManager/components/content-editor/tiptap-menus/NewNodeView.vue.d.ts +47 -0
  255. package/dist/src/contentManager/components/content-editor/tiptap-menus/SlashMenu.vue.d.ts +6 -0
  256. package/dist/src/contentManager/components/content-editor/tiptap-menus/SlashMenuButton.vue.d.ts +17 -0
  257. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/ButtonMenu.vue.d.ts +13 -0
  258. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/CardMenu.vue.d.ts +13 -0
  259. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/ColumnMenu.vue.d.ts +13 -0
  260. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/DividerMenu.vue.d.ts +13 -0
  261. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/EmptySpaceMenu.vue.d.ts +13 -0
  262. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/HeadingMenu.vue.d.ts +13 -0
  263. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/ImageMenu.vue.d.ts +13 -0
  264. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/MapMenu.vue.d.ts +13 -0
  265. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/RowMenu.vue.d.ts +13 -0
  266. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/StackMenu.vue.d.ts +13 -0
  267. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/TextMenu.vue.d.ts +13 -0
  268. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/VideoMenu.vue.d.ts +13 -0
  269. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/index.d.ts +132 -12
  270. package/dist/src/contentManager/components/overview/CollectionDialog.vue.d.ts +30 -0
  271. package/dist/src/contentManager/components/overview/CollectionsGridView.vue.d.ts +18 -0
  272. package/dist/src/contentManager/components/overview/ContentEntryContextMenu.vue.d.ts +27 -0
  273. package/dist/src/contentManager/components/overview/FilterPopover.vue.d.ts +2 -0
  274. package/dist/src/contentManager/components/overview/ListView.vue.d.ts +12 -0
  275. package/dist/src/contentManager/components/styling/ButtonStyleDialog.vue.d.ts +24 -0
  276. package/dist/src/contentManager/components/styling/CardStyleDialog.vue.d.ts +24 -0
  277. package/dist/src/contentManager/components/styling/SectionStyleDialog.vue.d.ts +24 -0
  278. package/dist/src/contentManager/index.d.ts +14 -5
  279. package/dist/src/contentManager/index.vue.d.ts +22 -0
  280. package/dist/src/contentManager/metadata.d.ts +1 -1
  281. package/dist/src/contentManager/pages/Components.vue.d.ts +27 -0
  282. package/dist/src/contentManager/pages/ContentEditor.vue.d.ts +14 -0
  283. package/dist/src/contentManager/pages/Entries.vue.d.ts +16 -0
  284. package/dist/src/contentManager/pages/GlobalStyling.vue.d.ts +117 -0
  285. package/dist/src/contentManager/pages/Overview.vue.d.ts +57 -0
  286. package/dist/src/contentManager/routes.d.ts +12 -3
  287. package/dist/src/custom/index.d.ts +2 -2
  288. package/dist/src/custom/index.vue.d.ts +2 -0
  289. package/dist/src/custom/pages/View.vue.d.ts +2 -0
  290. package/dist/src/custom/routes.d.ts +1 -1
  291. package/dist/src/googleAnalytics/chat-components/CountryBreakdownCard.vue.d.ts +14 -0
  292. package/dist/src/googleAnalytics/chat-components/DeviceBreakdownCard.vue.d.ts +14 -0
  293. package/dist/src/googleAnalytics/chat-components/PeakHoursCard.vue.d.ts +14 -0
  294. package/dist/src/googleAnalytics/chat-components/RealtimeCard.vue.d.ts +14 -0
  295. package/dist/src/googleAnalytics/chat-components/SearchTermsCard.vue.d.ts +14 -0
  296. package/dist/src/googleAnalytics/chat-components/TopPagesCard.vue.d.ts +14 -0
  297. package/dist/src/googleAnalytics/chat-components/TrafficSourcesCard.vue.d.ts +14 -0
  298. package/dist/src/googleAnalytics/chat-components/VisitorStatsCard.vue.d.ts +14 -0
  299. package/dist/src/googleAnalytics/components/seo-health/SeoClicksChart.vue.d.ts +5 -0
  300. package/dist/src/googleAnalytics/components/seo-health/SeoImpressionsChart.vue.d.ts +5 -0
  301. package/dist/src/googleAnalytics/components/seo-health/SeoKeywordsTab.vue.d.ts +5 -0
  302. package/dist/src/googleAnalytics/components/seo-health/SeoKpiCards.vue.d.ts +10 -0
  303. package/dist/src/googleAnalytics/components/seo-health/SeoMappingTab.vue.d.ts +5 -0
  304. package/dist/src/googleAnalytics/components/seo-health/SeoPagesTab.vue.d.ts +5 -0
  305. package/dist/src/googleAnalytics/components/seo-health/SeoRankingDistribution.vue.d.ts +5 -0
  306. package/dist/src/googleAnalytics/index.d.ts +10 -10
  307. package/dist/src/googleAnalytics/index.vue.d.ts +2 -0
  308. package/dist/src/googleAnalytics/pages/Acquisition.vue.d.ts +2 -0
  309. package/dist/src/googleAnalytics/pages/Audience.vue.d.ts +2 -0
  310. package/dist/src/googleAnalytics/pages/Content.vue.d.ts +2 -0
  311. package/dist/src/googleAnalytics/pages/Overview.vue.d.ts +2 -0
  312. package/dist/src/googleAnalytics/pages/SeoHealth.vue.d.ts +2 -0
  313. package/dist/src/googleAnalytics/routes.d.ts +1 -1
  314. package/dist/src/mailTemplates/components/TemplateList.vue.d.ts +2 -0
  315. package/dist/src/mailTemplates/index.d.ts +3 -3
  316. package/dist/src/mailTemplates/index.vue.d.ts +22 -0
  317. package/dist/src/mailTemplates/metadata.d.ts +1 -1
  318. package/dist/src/mailTemplates/pages/Detail.vue.d.ts +14 -0
  319. package/dist/src/mailTemplates/pages/Overview.vue.d.ts +14 -0
  320. package/dist/src/mailTemplates/routes.d.ts +1 -1
  321. package/dist/src/productCollections/components/detail/Main.vue.d.ts +2 -0
  322. package/dist/src/productCollections/components/detail/SEO.vue.d.ts +2 -0
  323. package/dist/src/productCollections/components/detail/Status.vue.d.ts +2 -0
  324. package/dist/src/productCollections/components/overview/ListView.vue.d.ts +12 -0
  325. package/dist/src/productCollections/index.d.ts +3 -3
  326. package/dist/src/productCollections/index.vue.d.ts +22 -0
  327. package/dist/src/productCollections/metadata.d.ts +1 -1
  328. package/dist/src/productCollections/pages/Detail.vue.d.ts +14 -0
  329. package/dist/src/productCollections/pages/Overview.vue.d.ts +16 -0
  330. package/dist/src/productCollections/routes.d.ts +1 -1
  331. package/dist/src/products/chat-components/ProductDetailsCard.vue.d.ts +14 -0
  332. package/dist/src/products/components/detail/Collections.vue.d.ts +14 -0
  333. package/dist/src/products/components/detail/Inventory.vue.d.ts +2 -0
  334. package/dist/src/products/components/detail/Main.vue.d.ts +2 -0
  335. package/dist/src/products/components/detail/NewSection.vue.d.ts +2 -0
  336. package/dist/src/products/components/detail/Price.vue.d.ts +2 -0
  337. package/dist/src/products/components/detail/SEO.vue.d.ts +2 -0
  338. package/dist/src/products/components/detail/Shipping.vue.d.ts +2 -0
  339. package/dist/src/products/components/detail/Status.vue.d.ts +2 -0
  340. package/dist/src/products/components/detail/price/UnitPriceDialog.vue.d.ts +17 -0
  341. package/dist/src/products/components/detail/variants/Option.vue.d.ts +33 -0
  342. package/dist/src/products/components/detail/variants/VariantList.vue.d.ts +38 -0
  343. package/dist/src/products/components/overview/FilterPopover.vue.d.ts +2 -0
  344. package/dist/src/products/components/overview/GridView.vue.d.ts +12 -0
  345. package/dist/src/products/components/overview/ListView.vue.d.ts +12 -0
  346. package/dist/src/products/components/overview/ProductContextMenu.vue.d.ts +27 -0
  347. package/dist/src/products/index.d.ts +4 -4
  348. package/dist/src/products/index.vue.d.ts +22 -0
  349. package/dist/src/products/metadata.d.ts +1 -1
  350. package/dist/src/products/pages/Detail.vue.d.ts +14 -0
  351. package/dist/src/products/pages/Overview.vue.d.ts +16 -0
  352. package/dist/src/products/routes.d.ts +1 -1
  353. package/dist/src/promoCodes/components/create/DateRange.vue.d.ts +2 -0
  354. package/dist/src/promoCodes/components/create/MultiCodes.vue.d.ts +2 -0
  355. package/dist/src/promoCodes/components/create/Note.vue.d.ts +2 -0
  356. package/dist/src/promoCodes/components/create/SingleCode.vue.d.ts +2 -0
  357. package/dist/src/promoCodes/components/create/TypeAndValue/TypeDetailDialog.vue.d.ts +6 -0
  358. package/dist/src/promoCodes/components/create/TypeAndValue/TypeManageDialog.vue.d.ts +18 -0
  359. package/dist/src/promoCodes/components/create/TypeAndValue/index.vue.d.ts +2 -0
  360. package/dist/src/promoCodes/index.d.ts +3 -3
  361. package/dist/src/promoCodes/index.vue.d.ts +22 -0
  362. package/dist/src/promoCodes/metadata.d.ts +1 -1
  363. package/dist/src/promoCodes/pages/Create.vue.d.ts +16 -0
  364. package/dist/src/promoCodes/pages/Detail.vue.d.ts +14 -0
  365. package/dist/src/promoCodes/pages/Find.vue.d.ts +16 -0
  366. package/dist/src/promoCodes/routes.d.ts +1 -1
  367. package/dist/src/push-notifications/components/PreviewAndroid.vue.d.ts +28 -0
  368. package/dist/src/push-notifications/components/PreviewIPhone.vue.d.ts +28 -0
  369. package/dist/src/push-notifications/components/PushPreview.vue.d.ts +28 -0
  370. package/dist/src/push-notifications/index.d.ts +3 -3
  371. package/dist/src/push-notifications/index.vue.d.ts +22 -0
  372. package/dist/src/push-notifications/metadata.d.ts +1 -1
  373. package/dist/src/push-notifications/pages/SendPush.vue.d.ts +14 -0
  374. package/dist/src/push-notifications/routes.d.ts +1 -1
  375. package/dist/src/shared/BrandLogo.vue.d.ts +12 -0
  376. package/dist/src/shared/DrawerToggle.vue.d.ts +60 -0
  377. package/dist/src/shared/VerticalToggle.vue.d.ts +60 -0
  378. package/dist/src/shippingOptions/components/detail/Condition.vue.d.ts +2 -0
  379. package/dist/src/shippingOptions/components/detail/Countries.vue.d.ts +2 -0
  380. package/dist/src/shippingOptions/components/detail/Example.vue.d.ts +2 -0
  381. package/dist/src/shippingOptions/components/detail/Main.vue.d.ts +2 -0
  382. package/dist/src/shippingOptions/components/overview/ListView.vue.d.ts +12 -0
  383. package/dist/src/shippingOptions/index.d.ts +3 -3
  384. package/dist/src/shippingOptions/index.vue.d.ts +22 -0
  385. package/dist/src/shippingOptions/metadata.d.ts +1 -1
  386. package/dist/src/shippingOptions/pages/Detail.vue.d.ts +14 -0
  387. package/dist/src/shippingOptions/pages/Overview.vue.d.ts +16 -0
  388. package/dist/src/shippingOptions/routes.d.ts +1 -1
  389. package/dist/src/table/components/DataTable.vue.d.ts +18 -0
  390. package/dist/src/table/components/DataTableAction.vue.d.ts +14 -0
  391. package/dist/src/table/components/DataTableMobileRowActionDrawer.vue.d.ts +4 -0
  392. package/dist/src/table/components/DataTablePagination.vue.d.ts +6 -0
  393. package/dist/src/table/components/actions/ActionDialog.vue.d.ts +19 -0
  394. package/dist/src/table/components/actions/CtaActionDialog.vue.d.ts +4 -0
  395. package/dist/src/table/components/columns/ColumnDropdown.vue.d.ts +2 -0
  396. package/dist/src/table/components/columns/ColumnEditorDialog.vue.d.ts +34 -0
  397. package/dist/src/table/components/columns/DialogTableColumnItem.vue.d.ts +12 -0
  398. package/dist/src/table/components/date-range-filter/DateRangeFilter.vue.d.ts +2 -0
  399. package/dist/src/table/components/date-range-filter/DateRangeSettingsDialog.vue.d.ts +27 -0
  400. package/dist/src/table/components/filters/FilterDialog.vue.d.ts +12 -0
  401. package/dist/src/table/components/filters/Filters.vue.d.ts +27 -0
  402. package/dist/src/table/components/search/Search.vue.d.ts +2 -0
  403. package/dist/src/table/components/sort/SortMode.vue.d.ts +2 -0
  404. package/dist/src/table/components/sort/SortModeSettingsDialog.vue.d.ts +18 -0
  405. package/dist/src/table/components/stats/StatDialog.vue.d.ts +12 -0
  406. package/dist/src/table/components/stats/Stats.vue.d.ts +27 -0
  407. package/dist/src/table/flow-builder-extensions/TableRowEditor.vue.d.ts +16 -0
  408. package/dist/src/table/flow-builder-extensions/row-item.d.ts +17 -3
  409. package/dist/src/table/index.d.ts +2 -2
  410. package/dist/src/table/index.vue.d.ts +22 -0
  411. package/dist/src/table/pages/TableView.vue.d.ts +54 -0
  412. package/dist/src/table/routes.d.ts +1 -1
  413. package/dist/src/types/index.d.ts +0 -6
  414. package/dist/utils-CanmrIWO.mjs +47 -0
  415. package/dist/utils-Yd6F5mea.js +3 -0
  416. package/dist/vee-validate-zod-ByykgYKJ.js +1 -0
  417. package/dist/vee-validate-zod-DNjTLCgh.mjs +4402 -0
  418. package/package.json +56 -55
  419. package/dist/Acquisition-DypEyPSO.js +0 -1
  420. package/dist/Acquisition-TCNX-th6.mjs +0 -308
  421. package/dist/AgendaOpeningHoursCard-BIhm0vpV.js +0 -1
  422. package/dist/AgendaOpeningHoursCard-BKUdJxRI.mjs +0 -133
  423. package/dist/AppointmentDetailsCard-C5rQ5jsW.js +0 -1
  424. package/dist/AppointmentDetailsCard-NRHeNP2L.mjs +0 -111
  425. package/dist/AppointmentEditor-BcF8CiD-.mjs +0 -150
  426. package/dist/AppointmentEditor-BlhFtoCm.js +0 -1
  427. package/dist/AppointmentListTable-B-ReBVtV.js +0 -1
  428. package/dist/AppointmentListTable-DHmy-iid.mjs +0 -129
  429. package/dist/Audience-CfWHjjg8.mjs +0 -394
  430. package/dist/Audience-Cj4TyauW.js +0 -1
  431. package/dist/Components-BehelN4r.js +0 -1
  432. package/dist/Components-CR6zukUU.mjs +0 -468
  433. package/dist/Content-C5Iye3t0.mjs +0 -257
  434. package/dist/Content-eOfBx52Y.js +0 -1
  435. package/dist/ContentEditor-BgL4qEeg.mjs +0 -26835
  436. package/dist/ContentEditor-Tlu3w0Hu.js +0 -462
  437. package/dist/CountryBreakdownCard-CWVyB8be.mjs +0 -151
  438. package/dist/CountryBreakdownCard-Db-pMiNe.js +0 -1
  439. package/dist/Create-B1it8S4m.js +0 -1
  440. package/dist/Create-DbYi0FAI.mjs +0 -907
  441. package/dist/DateFormatter-DLrDYkby.mjs +0 -630
  442. package/dist/DateFormatter-Dni0Oq8r.js +0 -1
  443. package/dist/Detail-D-eahJGO.mjs +0 -21
  444. package/dist/Detail-D0kdPPIm.mjs +0 -2757
  445. package/dist/Detail-DAafePYi.mjs +0 -485
  446. package/dist/Detail-DYpv4fYg.js +0 -1
  447. package/dist/Detail-Dc_ui4LM.js +0 -1
  448. package/dist/Detail-DccUekl_.js +0 -1
  449. package/dist/Detail-Dhz0V0Vf.js +0 -1
  450. package/dist/Detail-DjnGY0F8.mjs +0 -282
  451. package/dist/Detail-DplAitHg.mjs +0 -447
  452. package/dist/Detail-SugyeSxb.js +0 -1
  453. package/dist/DeviceBreakdownCard-CzxZT6To.js +0 -1
  454. package/dist/DeviceBreakdownCard-eEwPjzKl.mjs +0 -115
  455. package/dist/EditLayout-Bnz9q_jd.js +0 -1
  456. package/dist/EditLayout-J_DGXb8v.mjs +0 -99
  457. package/dist/Entries-CgpWg6fE.js +0 -1
  458. package/dist/Entries-CkGTXcAq.mjs +0 -575
  459. package/dist/Find-Bz0TNJzk.mjs +0 -164
  460. package/dist/Find-D-ItTXaZ.js +0 -1
  461. package/dist/GlobalStyling-CSQPF7o_.mjs +0 -1162
  462. package/dist/GlobalStyling-DabldMZh.js +0 -15
  463. package/dist/NewReservationDialog-BhIiY2B9.js +0 -1
  464. package/dist/NewReservationDialog-CN49aGcM.mjs +0 -1002
  465. package/dist/OrderDetailDialog-BJ01DZFe.js +0 -1
  466. package/dist/OrderDetailDialog-CoVQ_rzs.mjs +0 -215
  467. package/dist/Overview-9FMgn5hT.mjs +0 -492
  468. package/dist/Overview-BOOwMQ-c.mjs +0 -636
  469. package/dist/Overview-Biz3h60w.js +0 -1
  470. package/dist/Overview-C2K2ofdS.js +0 -1
  471. package/dist/Overview-CFHOXP9N.mjs +0 -123
  472. package/dist/Overview-CTJe7J5_.js +0 -1
  473. package/dist/Overview-Cvj2i9eW.js +0 -1
  474. package/dist/Overview-D2I1F8Dm.mjs +0 -21
  475. package/dist/Overview-DFOc9emt.mjs +0 -345
  476. package/dist/Overview-Dmhfb94Y.js +0 -1
  477. package/dist/Overview-PPzv7weG.mjs +0 -450
  478. package/dist/Overview-qFKcXHVF.js +0 -1
  479. package/dist/Overview-xkmYYTae.mjs +0 -133
  480. package/dist/Overview-yPsLvR2c.js +0 -1
  481. package/dist/PeakHoursCard-CtgEP-ez.mjs +0 -157
  482. package/dist/PeakHoursCard-DPeoMyhu.js +0 -1
  483. package/dist/ProductDetailsCard-B0WhmzO-.mjs +0 -98
  484. package/dist/ProductDetailsCard-C1ROuH6l.js +0 -1
  485. package/dist/RealtimeCard-DQno-Okz.js +0 -1
  486. package/dist/RealtimeCard-dR-g1iDo.mjs +0 -92
  487. package/dist/ReservationDetailDialog-Cdo6h0RD.mjs +0 -2163
  488. package/dist/ReservationDetailDialog-DZTFD2xI.js +0 -349
  489. package/dist/SearchTermsCard-BXJSXz_k.js +0 -1
  490. package/dist/SearchTermsCard-DsaxLKwP.mjs +0 -146
  491. package/dist/SendPush-Bssi-OZD.mjs +0 -150
  492. package/dist/SendPush-BuaYboRH.js +0 -1
  493. package/dist/SeoHealth-CP-kL0us.js +0 -1
  494. package/dist/SeoHealth-Cxp_Gb3Y.mjs +0 -459
  495. package/dist/TableView-7iwBkQ_k.mjs +0 -4757
  496. package/dist/TableView-BB_oIYYZ.js +0 -4
  497. package/dist/TemplateList-CNcM_Kgq.mjs +0 -56
  498. package/dist/TemplateList-VuPcBUJO.js +0 -1
  499. package/dist/TopPagesCard-CvDECn3_.mjs +0 -117
  500. package/dist/TopPagesCard-DNdATXJE.js +0 -1
  501. package/dist/TrafficSourcesCard-BLpBr7u0.mjs +0 -151
  502. package/dist/TrafficSourcesCard-_3gRUCw3.js +0 -1
  503. package/dist/View-DSnUHI7h.mjs +0 -30
  504. package/dist/View-Dbcfpdqh.js +0 -1
  505. package/dist/VisitorStatsCard-CFEnXSjF.mjs +0 -185
  506. package/dist/VisitorStatsCard-C_jhQxDW.js +0 -1
  507. package/dist/_plugin-vue_export-helper-5u7tqpWC.js +0 -1
  508. package/dist/_plugin-vue_export-helper-BJQSo0im.mjs +0 -8
  509. package/dist/agenda-CzMRcQTA.mjs +0 -989
  510. package/dist/agenda-D4zWRYSQ.js +0 -1
  511. package/dist/appointments-9syR5TZE.js +0 -1
  512. package/dist/appointments-BBmOJMhM.mjs +0 -23
  513. package/dist/array-BH1uH7XT.js +0 -1
  514. package/dist/array-DnDL9cFz.mjs +0 -98
  515. package/dist/availability-CAXB7Yd6.js +0 -1
  516. package/dist/availability-Dp7eF-ZK.mjs +0 -215
  517. package/dist/booking-data-Bysf6e5x.mjs +0 -724
  518. package/dist/booking-data-C6SGjC2X.js +0 -1
  519. package/dist/chunk-DQi1bQcV.js +0 -1
  520. package/dist/contentManager-D7JxXCwE.js +0 -1
  521. package/dist/contentManager-tfy0x1LD.mjs +0 -22
  522. package/dist/context-AQKfnJ4t.mjs +0 -3809
  523. package/dist/context-ubyMq9Xe.js +0 -54
  524. package/dist/core-Dhgr4ctC.mjs +0 -202
  525. package/dist/core-_HKfBlaZ.js +0 -1
  526. package/dist/countries-MXLT3mVe.mjs +0 -4
  527. package/dist/countries-OCd5qPxG.js +0 -1
  528. package/dist/create-BfNc2C7N.js +0 -1
  529. package/dist/create-C7JlIlIh.mjs +0 -95
  530. package/dist/custom-BwN9-6Mb.js +0 -1
  531. package/dist/custom-INNwaWla.mjs +0 -13
  532. package/dist/dist-BCVg7FKM.js +0 -1
  533. package/dist/dist-DIhK9VWh.mjs +0 -3045
  534. package/dist/edit-BiI2VG60.js +0 -35
  535. package/dist/edit-DD3iFBEh.mjs +0 -1097
  536. package/dist/exceptions-DICMaDcH.mjs +0 -462
  537. package/dist/exceptions-DpWqMNuG.js +0 -1
  538. package/dist/google-Bcc4XZnV.mjs +0 -4
  539. package/dist/google-DTSRmJ51.js +0 -1
  540. package/dist/googleAnalytics-BSaqRR_L.js +0 -1
  541. package/dist/googleAnalytics-Cg-iWblZ.mjs +0 -47
  542. package/dist/interpolation-B8OzkMyi.mjs +0 -131
  543. package/dist/interpolation-DpAqtGOW.js +0 -1
  544. package/dist/lib-4wSi00Vr.js +0 -1
  545. package/dist/lib-BZgXUui5.mjs +0 -198
  546. package/dist/line-DJdnFNI7.js +0 -75
  547. package/dist/line-tYLnEDGV.mjs +0 -1500
  548. package/dist/mailTemplates-BNk8fhVS.mjs +0 -23
  549. package/dist/mailTemplates-DswHzyQe.js +0 -1
  550. package/dist/orders-CIc0JlKX.mjs +0 -512
  551. package/dist/orders-DwPSi_pD.js +0 -1
  552. package/dist/payment-BsNWFaDm.js +0 -1
  553. package/dist/payment-Ced5_dpa.mjs +0 -718
  554. package/dist/productCollections-Cuvw_8zC.js +0 -1
  555. package/dist/productCollections-D0AxRlzr.mjs +0 -23
  556. package/dist/products-DUD-ZMkR.mjs +0 -22
  557. package/dist/products-DvX9B-Ul.js +0 -1
  558. package/dist/promoCodes-BCWqN6w4.mjs +0 -23
  559. package/dist/promoCodes-CEZ4LYot.js +0 -1
  560. package/dist/push-notifications-BGp4XWo9.js +0 -1
  561. package/dist/push-notifications-C7W7KuzR.mjs +0 -23
  562. package/dist/regular-BCFrS6lK.mjs +0 -908
  563. package/dist/regular-DBqPgT8C.js +0 -1
  564. package/dist/resources-DwsMmWgm.mjs +0 -669
  565. package/dist/resources-Dz81GkHe.js +0 -1
  566. package/dist/shippingOptions-C3NEJff1.mjs +0 -23
  567. package/dist/shippingOptions-Cy040ZW1.js +0 -1
  568. package/dist/single-container-BJmmqq65.mjs +0 -468
  569. package/dist/single-container-Xoo0Xzxv.js +0 -58
  570. package/dist/src/vue-shim.d.ts +0 -7
  571. package/dist/table-DWw0fs3S.js +0 -1
  572. package/dist/table-LXt5DQOL.mjs +0 -23
  573. package/dist/utils-CVIHqQsU.js +0 -3
  574. package/dist/utils-h3owcMtS.mjs +0 -37
  575. package/dist/vee-validate-zod-BmXMJo8W.js +0 -1
  576. package/dist/vee-validate-zod-D9dZzbWZ.mjs +0 -4985
  577. package/dist/xy-container-CuQSwrtB.mjs +0 -3180
  578. package/dist/xy-container-_6YpscZh.js +0 -158
@@ -1,450 +0,0 @@
1
- import { i as e, n as t, r as n, t as r } from "./xy-container-CuQSwrtB.mjs";
2
- import { n as i, t as a } from "./line-tYLnEDGV.mjs";
3
- import { useModule as ee, useModuleBreadcrumbs as o, useModuleRoute as s } from "@oneclick.dev/cms-kit";
4
- import { Fragment as c, computed as l, createBlock as u, createCommentVNode as d, createElementBlock as f, createElementVNode as p, createTextVNode as m, createVNode as h, defineComponent as te, normalizeClass as g, normalizeStyle as _, onMounted as v, openBlock as y, ref as b, renderList as x, resolveComponent as S, resolveDynamicComponent as C, toDisplayString as w, unref as T, watch as E, withCtx as D } from "vue";
5
- import { Activity as O, ArrowUpRight as ne, Clock as k, Eye as re, Globe as ie, Loader2 as ae, Minus as oe, Monitor as se, MousePointerClick as ce, RefreshCw as le, Smartphone as ue, Tablet as de, TrendingDown as A, TrendingUp as j, UserPlus as fe, Users as pe, Zap as me } from "@lucide/vue";
6
- import { ChartTooltipContent as M, componentToString as N } from "@oneclick.dev/cms-kit/charts";
7
- //#region src/googleAnalytics/pages/Overview.vue?vue&type=script&setup=true&lang.ts
8
- var he = { class: "flex flex-col gap-4 w-full max-w-7xl mx-auto py-8" }, ge = { class: "flex justify-between gap-4 flex-col @lg:flex-row @lg:items-center" }, _e = { class: "text-muted-foreground text-sm mt-1" }, ve = {
9
- key: 0,
10
- class: "flex items-center gap-2"
11
- }, ye = { class: "flex items-center border rounded-lg overflow-hidden" }, be = ["onClick"], xe = { class: "text-sm text-destructive font-medium" }, Se = {
12
- key: 2,
13
- class: "flex items-center justify-center py-20"
14
- }, Ce = { class: "flex items-start justify-between" }, we = { class: "flex items-center gap-2" }, Te = { class: "text-sm font-medium" }, Ee = { class: "grid grid-cols-2 @md:grid-cols-3 @xl:grid-cols-4 gap-4" }, De = { class: "flex items-center gap-1.5 text-muted-foreground mb-2" }, Oe = { class: "text-xs font-medium uppercase tracking-wide" }, ke = { class: "text-2xl font-semibold tabular-nums" }, Ae = {
15
- key: 0,
16
- class: "flex items-center gap-1 mt-1"
17
- }, je = { class: "flex flex-col @xl:grid @xl:grid-cols-2 gap-4 max-w-full" }, Me = { class: "flex flex-col @lg:grid @lg:grid-cols-2 gap-4" }, Ne = { class: "divide-y" }, Pe = { class: "flex items-center gap-3 min-w-0" }, Fe = { class: "text-muted-foreground w-5 text-right shrink-0" }, Ie = { class: "truncate font-mono text-xs" }, Le = { class: "flex items-center gap-4 shrink-0 tabular-nums" }, Re = { class: "text-muted-foreground text-xs w-16 text-right" }, ze = { class: "text-muted-foreground text-xs w-16 text-right" }, Be = {
18
- key: 0,
19
- class: "px-6 py-8 text-center text-muted-foreground text-sm"
20
- }, Ve = { class: "divide-y" }, He = { class: "flex items-center gap-3 min-w-0" }, Ue = { class: "text-muted-foreground w-5 text-right shrink-0" }, We = { class: "truncate" }, Ge = { class: "flex items-center gap-4 shrink-0 tabular-nums" }, Ke = { class: "text-muted-foreground text-xs w-20 text-right" }, qe = {
21
- key: 0,
22
- class: "px-6 py-8 text-center text-muted-foreground text-sm"
23
- }, Je = { class: "grid @lg:grid-cols-2 gap-4" }, Ye = { class: "space-y-3" }, Xe = { class: "text-sm capitalize flex-1" }, Ze = { class: "flex-1 h-2 bg-muted rounded-full overflow-hidden" }, Qe = { class: "text-xs tabular-nums text-muted-foreground w-16 text-right" }, $e = {
24
- key: 0,
25
- class: "py-4 text-center text-muted-foreground text-sm"
26
- }, et = { class: "space-y-3" }, tt = { class: "text-sm flex-1" }, nt = { class: "flex-1 h-2 bg-muted rounded-full overflow-hidden" }, rt = { class: "text-xs tabular-nums text-muted-foreground w-16 text-right" }, it = {
27
- key: 0,
28
- class: "py-4 text-center text-muted-foreground text-sm"
29
- }, P = /* @__PURE__ */ te({
30
- __name: "Overview",
31
- setup(te) {
32
- let { config: P } = ee(), { moduleId: at } = s();
33
- o(() => [{ label: "Overview" }]);
34
- let F = b(!0), I = b(null), L = b("30"), R = b([]), z = b({}), ot = b({}), B = b({}), st = b(0), V = b([]), H = b([]), U = b([]), W = b([]), G = l(() => !!(P.serviceAccount && P.propertyId));
35
- function K(e) {
36
- return `/api/v1/modules/${at}${e}`;
37
- }
38
- let ct = [
39
- {
40
- label: "7 days",
41
- value: "7"
42
- },
43
- {
44
- label: "14 days",
45
- value: "14"
46
- },
47
- {
48
- label: "30 days",
49
- value: "30"
50
- },
51
- {
52
- label: "90 days",
53
- value: "90"
54
- }
55
- ], q = {
56
- sessions: "#3b82f6",
57
- users: "#8b5cf6",
58
- pageViews: "#10b981"
59
- }, J = {
60
- sessions: {
61
- label: "Sessions",
62
- color: q.sessions
63
- },
64
- totalUsers: {
65
- label: "Users",
66
- color: q.users
67
- }
68
- }, Y = { screenPageViews: {
69
- label: "Page Views",
70
- color: q.pageViews
71
- } }, X = (e, t) => t, lt = (e) => e.sessions || 0, ut = (e) => e.totalUsers || 0, dt = (e) => e.screenPageViews || 0, ft = (e) => {
72
- let t = R.value[Math.round(e)];
73
- if (!t) return "";
74
- let n = new Date(t.date);
75
- return `${n.getDate()}/${n.getMonth() + 1}`;
76
- }, pt = (e) => {
77
- let t = R.value[Math.round(Number(e))];
78
- return t ? new Date(t.date).toLocaleDateString(void 0, {
79
- weekday: "short",
80
- month: "short",
81
- day: "numeric"
82
- }) : "";
83
- }, mt = l(() => [
84
- {
85
- label: "Sessions",
86
- value: Z(z.value.sessions || 0),
87
- icon: ce,
88
- change: B.value.sessions
89
- },
90
- {
91
- label: "Users",
92
- value: Z(z.value.totalUsers || 0),
93
- icon: pe,
94
- change: B.value.totalUsers
95
- },
96
- {
97
- label: "Page Views",
98
- value: Z(z.value.screenPageViews || 0),
99
- icon: re,
100
- change: B.value.screenPageViews
101
- },
102
- {
103
- label: "Avg. Duration",
104
- value: ht(z.value.averageSessionDuration || 0),
105
- icon: k,
106
- change: B.value.averageSessionDuration
107
- },
108
- {
109
- label: "Engagement",
110
- value: `${((z.value.engagementRate || 0) * 100).toFixed(1)}%`,
111
- icon: me,
112
- change: B.value.engagementRate,
113
- positive: !0
114
- },
115
- {
116
- label: "Bounce Rate",
117
- value: `${((z.value.bounceRate || 0) * 100).toFixed(1)}%`,
118
- icon: (z.value.bounceRate || 0) > .5 ? A : j,
119
- change: B.value.bounceRate,
120
- positive: !1
121
- },
122
- {
123
- label: "New Users",
124
- value: Z(z.value.newUsers || 0),
125
- icon: fe,
126
- change: B.value.newUsers
127
- },
128
- {
129
- label: "Pages / Session",
130
- value: (z.value.screenPageViewsPerSession || 0).toFixed(1),
131
- icon: O,
132
- change: B.value.screenPageViewsPerSession
133
- }
134
- ]);
135
- function Z(e) {
136
- return e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).toFixed(1)}K` : Math.round(e).toString();
137
- }
138
- function ht(e) {
139
- let t = Math.floor(e / 60), n = Math.round(e % 60);
140
- return t > 0 ? `${t}m ${n}s` : `${n}s`;
141
- }
142
- function Q(e, t = !0) {
143
- if (e == null) return {
144
- text: "—",
145
- cls: "text-muted-foreground",
146
- icon: oe
147
- };
148
- let n = `${Math.abs(e).toFixed(1)}%`, r = e > 0;
149
- return {
150
- text: n,
151
- cls: (t ? r : !r) ? "text-emerald-600 dark:text-emerald-400" : "text-red-500 dark:text-red-400",
152
- icon: r ? j : A
153
- };
154
- }
155
- function gt(e) {
156
- let t = e.toLowerCase();
157
- return t === "mobile" ? ue : t === "tablet" ? de : se;
158
- }
159
- async function $() {
160
- if (!G.value) return;
161
- F.value = !0, I.value = null;
162
- let e = `${L.value}daysAgo`;
163
- try {
164
- let [t, n, r, i, a, ee] = await Promise.all([
165
- $fetch(K(`/report?startDate=${e}&endDate=today`)),
166
- $fetch(K("/realtime")).catch(() => ({ activeUsers: 0 })),
167
- $fetch(K(`/top-pages?startDate=${e}&endDate=today&limit=10`)),
168
- $fetch(K(`/top-sources?startDate=${e}&endDate=today`)),
169
- $fetch(K(`/devices?startDate=${e}&endDate=today`)),
170
- $fetch(K(`/countries?startDate=${e}&endDate=today`))
171
- ]);
172
- R.value = t.rows || [], z.value = t.totals || {}, ot.value = t.previousTotals || {}, B.value = t.changes || {}, st.value = n.activeUsers || 0, V.value = r.rows || [], H.value = i.rows || [], U.value = a.rows || [], W.value = ee.rows || [];
173
- } catch (e) {
174
- console.error("Failed to fetch analytics data:", e), I.value = e?.data?.statusMessage || e?.message || "Failed to load analytics data";
175
- } finally {
176
- F.value = !1;
177
- }
178
- }
179
- return E(L, () => $()), v(() => {
180
- G.value ? $() : F.value = !1;
181
- }), (ee, o) => {
182
- let s = S("Button"), l = S("Card"), te = S("Badge"), v = S("CardTitle"), b = S("CardHeader"), E = S("ChartLegendContent"), O = S("ChartContainer"), k = S("CardContent");
183
- return y(), f("div", he, [p("div", ge, [p("div", null, [o[0] ||= p("h1", { class: "text-2xl font-semibold" }, "Analytics Overview", -1), p("p", _e, "Property " + w(T(P).propertyId || "—"), 1)]), G.value ? (y(), f("div", ve, [p("div", ye, [(y(), f(c, null, x(ct, (e) => p("button", {
184
- key: e.value,
185
- class: g(["px-3 py-1.5 text-xs font-medium transition-colors", L.value === e.value ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:text-foreground hover:bg-muted"]),
186
- onClick: (t) => L.value = e.value
187
- }, w(e.label), 11, be)), 64))]), h(s, {
188
- variant: "outline",
189
- size: "icon",
190
- onClick: $,
191
- disabled: F.value
192
- }, {
193
- default: D(() => [h(T(le), { class: g(["size-4", { "animate-spin": F.value }]) }, null, 8, ["class"])]),
194
- _: 1
195
- }, 8, ["disabled"])])) : d("", !0)]), G.value ? I.value ? (y(), u(l, {
196
- key: 1,
197
- class: "p-6 border-destructive/50 bg-destructive/5"
198
- }, {
199
- default: D(() => [p("p", xe, w(I.value), 1), h(s, {
200
- variant: "outline",
201
- size: "sm",
202
- class: "mt-3",
203
- onClick: $
204
- }, {
205
- default: D(() => [...o[2] ||= [m("Retry", -1)]]),
206
- _: 1
207
- })]),
208
- _: 1
209
- })) : F.value ? (y(), f("div", Se, [h(T(ae), { class: "size-8 animate-spin text-muted-foreground" })])) : (y(), f(c, { key: 3 }, [
210
- h(l, { class: "p-4" }, {
211
- default: D(() => [p("div", Ce, [p("div", we, [
212
- o[3] ||= p("span", { class: "relative flex h-2.5 w-2.5" }, [p("span", { class: "animate-ping absolute inline-flex h-full w-full rounded-full bg-green-400 opacity-75" }), p("span", { class: "relative inline-flex rounded-full h-2.5 w-2.5 bg-green-500" })], -1),
213
- p("span", Te, w(st.value) + " visitors", 1),
214
- o[4] ||= p("span", { class: "text-xs text-muted-foreground translate-y-0.25" }, "in the last 30 minutes", -1)
215
- ]), h(te, {
216
- variant: "outline",
217
- class: "text-xs"
218
- }, {
219
- default: D(() => [...o[5] ||= [m("Live", -1)]]),
220
- _: 1
221
- })])]),
222
- _: 1
223
- }),
224
- p("div", Ee, [(y(!0), f(c, null, x(mt.value, (e) => (y(), u(l, {
225
- key: e.label,
226
- class: "p-4"
227
- }, {
228
- default: D(() => [
229
- p("div", De, [(y(), u(C(e.icon), { class: "size-3.5" })), p("span", Oe, w(e.label), 1)]),
230
- p("p", ke, w(e.value), 1),
231
- e.change === void 0 ? d("", !0) : (y(), f("div", Ae, [
232
- (y(), u(C(Q(e.change, e.positive !== !1).icon), { class: g(["size-3", Q(e.change, e.positive !== !1).cls]) }, null, 8, ["class"])),
233
- p("span", { class: g(["text-xs font-medium", Q(e.change, e.positive !== !1).cls]) }, w(Q(e.change, e.positive !== !1).text), 3),
234
- o[6] ||= p("span", { class: "text-xs text-muted-foreground" }, "vs prev.", -1)
235
- ]))
236
- ]),
237
- _: 2
238
- }, 1024))), 128))]),
239
- p("div", je, [h(l, null, {
240
- default: D(() => [h(b, { class: "pb-2" }, {
241
- default: D(() => [h(v, { class: "text-base" }, {
242
- default: D(() => [...o[7] ||= [m("Sessions & Users", -1)]]),
243
- _: 1
244
- })]),
245
- _: 1
246
- }), h(k, null, {
247
- default: D(() => [h(O, {
248
- config: J,
249
- class: "h-[240px] w-full"
250
- }, {
251
- default: D(() => [h(T(r), {
252
- data: R.value,
253
- margin: {
254
- top: 8,
255
- right: 8,
256
- bottom: 24,
257
- left: 40
258
- }
259
- }, {
260
- default: D(() => [
261
- h(T(i), {
262
- x: X,
263
- y: lt,
264
- color: q.sessions,
265
- opacity: .1,
266
- curveType: "monotoneX"
267
- }, null, 8, ["color"]),
268
- h(T(a), {
269
- x: X,
270
- y: lt,
271
- color: q.sessions,
272
- lineWidth: 2,
273
- curveType: "monotoneX"
274
- }, null, 8, ["color"]),
275
- h(T(a), {
276
- x: X,
277
- y: ut,
278
- color: q.users,
279
- lineWidth: 2,
280
- curveType: "monotoneX"
281
- }, null, 8, ["color"]),
282
- h(T(e), {
283
- type: "x",
284
- tickFormat: ft,
285
- numTicks: 6
286
- }),
287
- h(T(e), {
288
- type: "y",
289
- numTicks: 4
290
- }),
291
- h(T(n), { template: T(N)(J, T(M), { labelFormatter: pt }) }, null, 8, ["template"]),
292
- h(T(t))
293
- ]),
294
- _: 1
295
- }, 8, ["data"]), h(E, { config: J })]),
296
- _: 1
297
- })]),
298
- _: 1
299
- })]),
300
- _: 1
301
- }), h(l, null, {
302
- default: D(() => [h(b, { class: "pb-2" }, {
303
- default: D(() => [h(v, { class: "text-base" }, {
304
- default: D(() => [...o[8] ||= [m("Page Views", -1)]]),
305
- _: 1
306
- })]),
307
- _: 1
308
- }), h(k, null, {
309
- default: D(() => [h(O, {
310
- config: Y,
311
- class: "h-[240px] w-full"
312
- }, {
313
- default: D(() => [h(T(r), {
314
- data: R.value,
315
- margin: {
316
- top: 8,
317
- right: 8,
318
- bottom: 24,
319
- left: 40
320
- }
321
- }, {
322
- default: D(() => [
323
- h(T(i), {
324
- x: X,
325
- y: dt,
326
- color: q.pageViews,
327
- opacity: .15,
328
- curveType: "monotoneX"
329
- }, null, 8, ["color"]),
330
- h(T(a), {
331
- x: X,
332
- y: dt,
333
- color: q.pageViews,
334
- lineWidth: 2,
335
- curveType: "monotoneX"
336
- }, null, 8, ["color"]),
337
- h(T(e), {
338
- type: "x",
339
- tickFormat: ft,
340
- numTicks: 6
341
- }),
342
- h(T(e), {
343
- type: "y",
344
- numTicks: 4
345
- }),
346
- h(T(n), { template: T(N)(Y, T(M), { labelFormatter: pt }) }, null, 8, ["template"]),
347
- h(T(t))
348
- ]),
349
- _: 1
350
- }, 8, ["data"]), h(E, { config: Y })]),
351
- _: 1
352
- })]),
353
- _: 1
354
- })]),
355
- _: 1
356
- })]),
357
- p("div", Me, [h(l, null, {
358
- default: D(() => [h(b, { class: "pb-2" }, {
359
- default: D(() => [h(v, { class: "text-base" }, {
360
- default: D(() => [...o[9] ||= [m("Top Pages", -1)]]),
361
- _: 1
362
- })]),
363
- _: 1
364
- }), h(k, { class: "p-0" }, {
365
- default: D(() => [p("div", Ne, [(y(!0), f(c, null, x(V.value, (e, t) => (y(), f("div", {
366
- key: e.pagePath,
367
- class: "flex items-center justify-between px-6 py-3 text-sm"
368
- }, [p("div", Pe, [p("span", Fe, w(t + 1), 1), p("span", Ie, w(e.pagePath), 1)]), p("div", Le, [p("span", Re, w(Z(e.screenPageViews)) + " views", 1), p("span", ze, w(Z(e.totalUsers)) + " users", 1)])]))), 128)), V.value.length ? d("", !0) : (y(), f("div", Be, "No data available"))])]),
369
- _: 1
370
- })]),
371
- _: 1
372
- }), h(l, null, {
373
- default: D(() => [h(b, { class: "pb-2" }, {
374
- default: D(() => [h(v, { class: "text-base" }, {
375
- default: D(() => [...o[10] ||= [m("Traffic Sources", -1)]]),
376
- _: 1
377
- })]),
378
- _: 1
379
- }), h(k, { class: "p-0" }, {
380
- default: D(() => [p("div", Ve, [(y(!0), f(c, null, x(H.value, (e, t) => (y(), f("div", {
381
- key: e.sessionSource,
382
- class: "flex items-center justify-between px-6 py-3 text-sm"
383
- }, [p("div", He, [
384
- p("span", Ue, w(t + 1), 1),
385
- h(T(ne), { class: "size-3.5 text-muted-foreground shrink-0" }),
386
- p("span", We, w(e.sessionSource || "(direct)"), 1)
387
- ]), p("div", Ge, [p("span", Ke, w(Z(e.sessions)) + " sessions", 1)])]))), 128)), H.value.length ? d("", !0) : (y(), f("div", qe, "No data available"))])]),
388
- _: 1
389
- })]),
390
- _: 1
391
- })]),
392
- p("div", Je, [h(l, null, {
393
- default: D(() => [h(b, { class: "pb-2" }, {
394
- default: D(() => [h(v, { class: "text-base" }, {
395
- default: D(() => [...o[11] ||= [m("Devices", -1)]]),
396
- _: 1
397
- })]),
398
- _: 1
399
- }), h(k, null, {
400
- default: D(() => [p("div", Ye, [(y(!0), f(c, null, x(U.value, (e) => (y(), f("div", {
401
- key: e.deviceCategory,
402
- class: "flex items-center gap-3"
403
- }, [
404
- (y(), u(C(gt(e.deviceCategory)), { class: "size-4 text-muted-foreground shrink-0" })),
405
- p("span", Xe, w(e.deviceCategory), 1),
406
- p("div", Ze, [p("div", {
407
- class: "h-full bg-primary rounded-full transition-all",
408
- style: _({ width: `${e.sessions / (U.value[0]?.sessions || 1) * 100}%` })
409
- }, null, 4)]),
410
- p("span", Qe, w(Z(e.sessions)), 1)
411
- ]))), 128)), U.value.length ? d("", !0) : (y(), f("div", $e, "No data available"))])]),
412
- _: 1
413
- })]),
414
- _: 1
415
- }), h(l, null, {
416
- default: D(() => [h(b, { class: "pb-2" }, {
417
- default: D(() => [h(v, { class: "text-base" }, {
418
- default: D(() => [...o[12] ||= [m("Top Countries", -1)]]),
419
- _: 1
420
- })]),
421
- _: 1
422
- }), h(k, null, {
423
- default: D(() => [p("div", et, [(y(!0), f(c, null, x(W.value, (e) => (y(), f("div", {
424
- key: e.country,
425
- class: "flex items-center gap-3"
426
- }, [
427
- h(T(ie), { class: "size-4 text-muted-foreground shrink-0" }),
428
- p("span", tt, w(e.country), 1),
429
- p("div", nt, [p("div", {
430
- class: "h-full bg-primary rounded-full transition-all",
431
- style: _({ width: `${e.sessions / (W.value[0]?.sessions || 1) * 100}%` })
432
- }, null, 4)]),
433
- p("span", rt, w(Z(e.sessions)), 1)
434
- ]))), 128)), W.value.length ? d("", !0) : (y(), f("div", it, "No data available"))])]),
435
- _: 1
436
- })]),
437
- _: 1
438
- })])
439
- ], 64)) : (y(), u(l, {
440
- key: 0,
441
- class: "p-8 text-center"
442
- }, {
443
- default: D(() => [...o[1] ||= [p("div", { class: "mx-auto max-w-md space-y-3" }, [p("p", { class: "text-lg font-medium" }, "Setup required"), p("p", { class: "text-sm text-muted-foreground" }, "Connect a Google Service Account and enter your GA4 Property ID in the module settings to start seeing analytics.")], -1)]]),
444
- _: 1
445
- }))]);
446
- };
447
- }
448
- });
449
- //#endregion
450
- export { P as default };
@@ -1 +0,0 @@
1
- require(`./chunk-DQi1bQcV.js`);const e=require(`./xy-container-_6YpscZh.js`),t=require(`./line-DJdnFNI7.js`);let n=require(`@oneclick.dev/cms-kit`),r=require(`vue`),i=require(`@lucide/vue`),a=require(`@oneclick.dev/cms-kit/charts`);var o={class:`flex flex-col gap-4 w-full max-w-7xl mx-auto py-8`},s={class:`flex justify-between gap-4 flex-col @lg:flex-row @lg:items-center`},c={class:`text-muted-foreground text-sm mt-1`},l={key:0,class:`flex items-center gap-2`},u={class:`flex items-center border rounded-lg overflow-hidden`},d=[`onClick`],ee={class:`text-sm text-destructive font-medium`},te={key:2,class:`flex items-center justify-center py-20`},ne={class:`flex items-start justify-between`},re={class:`flex items-center gap-2`},ie={class:`text-sm font-medium`},ae={class:`grid grid-cols-2 @md:grid-cols-3 @xl:grid-cols-4 gap-4`},oe={class:`flex items-center gap-1.5 text-muted-foreground mb-2`},se={class:`text-xs font-medium uppercase tracking-wide`},ce={class:`text-2xl font-semibold tabular-nums`},le={key:0,class:`flex items-center gap-1 mt-1`},ue={class:`flex flex-col @xl:grid @xl:grid-cols-2 gap-4 max-w-full`},de={class:`flex flex-col @lg:grid @lg:grid-cols-2 gap-4`},fe={class:`divide-y`},pe={class:`flex items-center gap-3 min-w-0`},me={class:`text-muted-foreground w-5 text-right shrink-0`},he={class:`truncate font-mono text-xs`},ge={class:`flex items-center gap-4 shrink-0 tabular-nums`},_e={class:`text-muted-foreground text-xs w-16 text-right`},ve={class:`text-muted-foreground text-xs w-16 text-right`},ye={key:0,class:`px-6 py-8 text-center text-muted-foreground text-sm`},be={class:`divide-y`},f={class:`flex items-center gap-3 min-w-0`},xe={class:`text-muted-foreground w-5 text-right shrink-0`},Se={class:`truncate`},Ce={class:`flex items-center gap-4 shrink-0 tabular-nums`},we={class:`text-muted-foreground text-xs w-20 text-right`},Te={key:0,class:`px-6 py-8 text-center text-muted-foreground text-sm`},Ee={class:`grid @lg:grid-cols-2 gap-4`},p={class:`space-y-3`},m={class:`text-sm capitalize flex-1`},h={class:`flex-1 h-2 bg-muted rounded-full overflow-hidden`},g={class:`text-xs tabular-nums text-muted-foreground w-16 text-right`},_={key:0,class:`py-4 text-center text-muted-foreground text-sm`},v={class:`space-y-3`},y={class:`text-sm flex-1`},b={class:`flex-1 h-2 bg-muted rounded-full overflow-hidden`},x={class:`text-xs tabular-nums text-muted-foreground w-16 text-right`},S={key:0,class:`py-4 text-center text-muted-foreground text-sm`},C=(0,r.defineComponent)({__name:`Overview`,setup(C){let{config:w}=(0,n.useModule)(),{moduleId:T}=(0,n.useModuleRoute)();(0,n.useModuleBreadcrumbs)(()=>[{label:`Overview`}]);let E=(0,r.ref)(!0),D=(0,r.ref)(null),O=(0,r.ref)(`30`),k=(0,r.ref)([]),A=(0,r.ref)({}),j=(0,r.ref)({}),M=(0,r.ref)({}),N=(0,r.ref)(0),P=(0,r.ref)([]),F=(0,r.ref)([]),I=(0,r.ref)([]),L=(0,r.ref)([]),R=(0,r.computed)(()=>!!(w.serviceAccount&&w.propertyId));function z(e){return`/api/v1/modules/${T}${e}`}let De=[{label:`7 days`,value:`7`},{label:`14 days`,value:`14`},{label:`30 days`,value:`30`},{label:`90 days`,value:`90`}],B={sessions:`#3b82f6`,users:`#8b5cf6`,pageViews:`#10b981`},V={sessions:{label:`Sessions`,color:B.sessions},totalUsers:{label:`Users`,color:B.users}},H={screenPageViews:{label:`Page Views`,color:B.pageViews}},U=(e,t)=>t,W=e=>e.sessions||0,Oe=e=>e.totalUsers||0,G=e=>e.screenPageViews||0,K=e=>{let t=k.value[Math.round(e)];if(!t)return``;let n=new Date(t.date);return`${n.getDate()}/${n.getMonth()+1}`},q=e=>{let t=k.value[Math.round(Number(e))];return t?new Date(t.date).toLocaleDateString(void 0,{weekday:`short`,month:`short`,day:`numeric`}):``},ke=(0,r.computed)(()=>[{label:`Sessions`,value:J(A.value.sessions||0),icon:i.MousePointerClick,change:M.value.sessions},{label:`Users`,value:J(A.value.totalUsers||0),icon:i.Users,change:M.value.totalUsers},{label:`Page Views`,value:J(A.value.screenPageViews||0),icon:i.Eye,change:M.value.screenPageViews},{label:`Avg. Duration`,value:Y(A.value.averageSessionDuration||0),icon:i.Clock,change:M.value.averageSessionDuration},{label:`Engagement`,value:`${((A.value.engagementRate||0)*100).toFixed(1)}%`,icon:i.Zap,change:M.value.engagementRate,positive:!0},{label:`Bounce Rate`,value:`${((A.value.bounceRate||0)*100).toFixed(1)}%`,icon:(A.value.bounceRate||0)>.5?i.TrendingDown:i.TrendingUp,change:M.value.bounceRate,positive:!1},{label:`New Users`,value:J(A.value.newUsers||0),icon:i.UserPlus,change:M.value.newUsers},{label:`Pages / Session`,value:(A.value.screenPageViewsPerSession||0).toFixed(1),icon:i.Activity,change:M.value.screenPageViewsPerSession}]);function J(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:Math.round(e).toString()}function Y(e){let t=Math.floor(e/60),n=Math.round(e%60);return t>0?`${t}m ${n}s`:`${n}s`}function X(e,t=!0){if(e==null)return{text:`—`,cls:`text-muted-foreground`,icon:i.Minus};let n=`${Math.abs(e).toFixed(1)}%`,r=e>0;return{text:n,cls:(t?r:!r)?`text-emerald-600 dark:text-emerald-400`:`text-red-500 dark:text-red-400`,icon:r?i.TrendingUp:i.TrendingDown}}function Ae(e){let t=e.toLowerCase();return t===`mobile`?i.Smartphone:t===`tablet`?i.Tablet:i.Monitor}async function Z(){if(!R.value)return;E.value=!0,D.value=null;let e=`${O.value}daysAgo`;try{let[t,n,r,i,a,o]=await Promise.all([$fetch(z(`/report?startDate=${e}&endDate=today`)),$fetch(z(`/realtime`)).catch(()=>({activeUsers:0})),$fetch(z(`/top-pages?startDate=${e}&endDate=today&limit=10`)),$fetch(z(`/top-sources?startDate=${e}&endDate=today`)),$fetch(z(`/devices?startDate=${e}&endDate=today`)),$fetch(z(`/countries?startDate=${e}&endDate=today`))]);k.value=t.rows||[],A.value=t.totals||{},j.value=t.previousTotals||{},M.value=t.changes||{},N.value=n.activeUsers||0,P.value=r.rows||[],F.value=i.rows||[],I.value=a.rows||[],L.value=o.rows||[]}catch(e){console.error(`Failed to fetch analytics data:`,e),D.value=e?.data?.statusMessage||e?.message||`Failed to load analytics data`}finally{E.value=!1}}return(0,r.watch)(O,()=>Z()),(0,r.onMounted)(()=>{R.value?Z():E.value=!1}),(n,C)=>{let T=(0,r.resolveComponent)(`Button`),A=(0,r.resolveComponent)(`Card`),j=(0,r.resolveComponent)(`Badge`),M=(0,r.resolveComponent)(`CardTitle`),z=(0,r.resolveComponent)(`CardHeader`),Y=(0,r.resolveComponent)(`ChartLegendContent`),Q=(0,r.resolveComponent)(`ChartContainer`),$=(0,r.resolveComponent)(`CardContent`);return(0,r.openBlock)(),(0,r.createElementBlock)(`div`,o,[(0,r.createElementVNode)(`div`,s,[(0,r.createElementVNode)(`div`,null,[C[0]||=(0,r.createElementVNode)(`h1`,{class:`text-2xl font-semibold`},`Analytics Overview`,-1),(0,r.createElementVNode)(`p`,c,`Property `+(0,r.toDisplayString)((0,r.unref)(w).propertyId||`—`),1)]),R.value?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,l,[(0,r.createElementVNode)(`div`,u,[((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(De,e=>(0,r.createElementVNode)(`button`,{key:e.value,class:(0,r.normalizeClass)([`px-3 py-1.5 text-xs font-medium transition-colors`,O.value===e.value?`bg-primary text-primary-foreground`:`text-muted-foreground hover:text-foreground hover:bg-muted`]),onClick:t=>O.value=e.value},(0,r.toDisplayString)(e.label),11,d)),64))]),(0,r.createVNode)(T,{variant:`outline`,size:`icon`,onClick:Z,disabled:E.value},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.RefreshCw),{class:(0,r.normalizeClass)([`size-4`,{"animate-spin":E.value}])},null,8,[`class`])]),_:1},8,[`disabled`])])):(0,r.createCommentVNode)(``,!0)]),R.value?D.value?((0,r.openBlock)(),(0,r.createBlock)(A,{key:1,class:`p-6 border-destructive/50 bg-destructive/5`},{default:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`p`,ee,(0,r.toDisplayString)(D.value),1),(0,r.createVNode)(T,{variant:`outline`,size:`sm`,class:`mt-3`,onClick:Z},{default:(0,r.withCtx)(()=>[...C[2]||=[(0,r.createTextVNode)(`Retry`,-1)]]),_:1})]),_:1})):E.value?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,te,[(0,r.createVNode)((0,r.unref)(i.Loader2),{class:`size-8 animate-spin text-muted-foreground`})])):((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:3},[(0,r.createVNode)(A,{class:`p-4`},{default:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,ne,[(0,r.createElementVNode)(`div`,re,[C[3]||=(0,r.createElementVNode)(`span`,{class:`relative flex h-2.5 w-2.5`},[(0,r.createElementVNode)(`span`,{class:`animate-ping absolute inline-flex h-full w-full rounded-full bg-green-400 opacity-75`}),(0,r.createElementVNode)(`span`,{class:`relative inline-flex rounded-full h-2.5 w-2.5 bg-green-500`})],-1),(0,r.createElementVNode)(`span`,ie,(0,r.toDisplayString)(N.value)+` visitors`,1),C[4]||=(0,r.createElementVNode)(`span`,{class:`text-xs text-muted-foreground translate-y-0.25`},`in the last 30 minutes`,-1)]),(0,r.createVNode)(j,{variant:`outline`,class:`text-xs`},{default:(0,r.withCtx)(()=>[...C[5]||=[(0,r.createTextVNode)(`Live`,-1)]]),_:1})])]),_:1}),(0,r.createElementVNode)(`div`,ae,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(ke.value,e=>((0,r.openBlock)(),(0,r.createBlock)(A,{key:e.label,class:`p-4`},{default:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,oe,[((0,r.openBlock)(),(0,r.createBlock)((0,r.resolveDynamicComponent)(e.icon),{class:`size-3.5`})),(0,r.createElementVNode)(`span`,se,(0,r.toDisplayString)(e.label),1)]),(0,r.createElementVNode)(`p`,ce,(0,r.toDisplayString)(e.value),1),e.change===void 0?(0,r.createCommentVNode)(``,!0):((0,r.openBlock)(),(0,r.createElementBlock)(`div`,le,[((0,r.openBlock)(),(0,r.createBlock)((0,r.resolveDynamicComponent)(X(e.change,e.positive!==!1).icon),{class:(0,r.normalizeClass)([`size-3`,X(e.change,e.positive!==!1).cls])},null,8,[`class`])),(0,r.createElementVNode)(`span`,{class:(0,r.normalizeClass)([`text-xs font-medium`,X(e.change,e.positive!==!1).cls])},(0,r.toDisplayString)(X(e.change,e.positive!==!1).text),3),C[6]||=(0,r.createElementVNode)(`span`,{class:`text-xs text-muted-foreground`},`vs prev.`,-1)]))]),_:2},1024))),128))]),(0,r.createElementVNode)(`div`,ue,[(0,r.createVNode)(A,null,{default:(0,r.withCtx)(()=>[(0,r.createVNode)(z,{class:`pb-2`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)(M,{class:`text-base`},{default:(0,r.withCtx)(()=>[...C[7]||=[(0,r.createTextVNode)(`Sessions & Users`,-1)]]),_:1})]),_:1}),(0,r.createVNode)($,null,{default:(0,r.withCtx)(()=>[(0,r.createVNode)(Q,{config:V,class:`h-[240px] w-full`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(e.t),{data:k.value,margin:{top:8,right:8,bottom:24,left:40}},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(t.n),{x:U,y:W,color:B.sessions,opacity:.1,curveType:`monotoneX`},null,8,[`color`]),(0,r.createVNode)((0,r.unref)(t.t),{x:U,y:W,color:B.sessions,lineWidth:2,curveType:`monotoneX`},null,8,[`color`]),(0,r.createVNode)((0,r.unref)(t.t),{x:U,y:Oe,color:B.users,lineWidth:2,curveType:`monotoneX`},null,8,[`color`]),(0,r.createVNode)((0,r.unref)(e.i),{type:`x`,tickFormat:K,numTicks:6}),(0,r.createVNode)((0,r.unref)(e.i),{type:`y`,numTicks:4}),(0,r.createVNode)((0,r.unref)(e.r),{template:(0,r.unref)(a.componentToString)(V,(0,r.unref)(a.ChartTooltipContent),{labelFormatter:q})},null,8,[`template`]),(0,r.createVNode)((0,r.unref)(e.n))]),_:1},8,[`data`]),(0,r.createVNode)(Y,{config:V})]),_:1})]),_:1})]),_:1}),(0,r.createVNode)(A,null,{default:(0,r.withCtx)(()=>[(0,r.createVNode)(z,{class:`pb-2`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)(M,{class:`text-base`},{default:(0,r.withCtx)(()=>[...C[8]||=[(0,r.createTextVNode)(`Page Views`,-1)]]),_:1})]),_:1}),(0,r.createVNode)($,null,{default:(0,r.withCtx)(()=>[(0,r.createVNode)(Q,{config:H,class:`h-[240px] w-full`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(e.t),{data:k.value,margin:{top:8,right:8,bottom:24,left:40}},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(t.n),{x:U,y:G,color:B.pageViews,opacity:.15,curveType:`monotoneX`},null,8,[`color`]),(0,r.createVNode)((0,r.unref)(t.t),{x:U,y:G,color:B.pageViews,lineWidth:2,curveType:`monotoneX`},null,8,[`color`]),(0,r.createVNode)((0,r.unref)(e.i),{type:`x`,tickFormat:K,numTicks:6}),(0,r.createVNode)((0,r.unref)(e.i),{type:`y`,numTicks:4}),(0,r.createVNode)((0,r.unref)(e.r),{template:(0,r.unref)(a.componentToString)(H,(0,r.unref)(a.ChartTooltipContent),{labelFormatter:q})},null,8,[`template`]),(0,r.createVNode)((0,r.unref)(e.n))]),_:1},8,[`data`]),(0,r.createVNode)(Y,{config:H})]),_:1})]),_:1})]),_:1})]),(0,r.createElementVNode)(`div`,de,[(0,r.createVNode)(A,null,{default:(0,r.withCtx)(()=>[(0,r.createVNode)(z,{class:`pb-2`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)(M,{class:`text-base`},{default:(0,r.withCtx)(()=>[...C[9]||=[(0,r.createTextVNode)(`Top Pages`,-1)]]),_:1})]),_:1}),(0,r.createVNode)($,{class:`p-0`},{default:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,fe,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(P.value,(e,t)=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{key:e.pagePath,class:`flex items-center justify-between px-6 py-3 text-sm`},[(0,r.createElementVNode)(`div`,pe,[(0,r.createElementVNode)(`span`,me,(0,r.toDisplayString)(t+1),1),(0,r.createElementVNode)(`span`,he,(0,r.toDisplayString)(e.pagePath),1)]),(0,r.createElementVNode)(`div`,ge,[(0,r.createElementVNode)(`span`,_e,(0,r.toDisplayString)(J(e.screenPageViews))+` views`,1),(0,r.createElementVNode)(`span`,ve,(0,r.toDisplayString)(J(e.totalUsers))+` users`,1)])]))),128)),P.value.length?(0,r.createCommentVNode)(``,!0):((0,r.openBlock)(),(0,r.createElementBlock)(`div`,ye,`No data available`))])]),_:1})]),_:1}),(0,r.createVNode)(A,null,{default:(0,r.withCtx)(()=>[(0,r.createVNode)(z,{class:`pb-2`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)(M,{class:`text-base`},{default:(0,r.withCtx)(()=>[...C[10]||=[(0,r.createTextVNode)(`Traffic Sources`,-1)]]),_:1})]),_:1}),(0,r.createVNode)($,{class:`p-0`},{default:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,be,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(F.value,(e,t)=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{key:e.sessionSource,class:`flex items-center justify-between px-6 py-3 text-sm`},[(0,r.createElementVNode)(`div`,f,[(0,r.createElementVNode)(`span`,xe,(0,r.toDisplayString)(t+1),1),(0,r.createVNode)((0,r.unref)(i.ArrowUpRight),{class:`size-3.5 text-muted-foreground shrink-0`}),(0,r.createElementVNode)(`span`,Se,(0,r.toDisplayString)(e.sessionSource||`(direct)`),1)]),(0,r.createElementVNode)(`div`,Ce,[(0,r.createElementVNode)(`span`,we,(0,r.toDisplayString)(J(e.sessions))+` sessions`,1)])]))),128)),F.value.length?(0,r.createCommentVNode)(``,!0):((0,r.openBlock)(),(0,r.createElementBlock)(`div`,Te,`No data available`))])]),_:1})]),_:1})]),(0,r.createElementVNode)(`div`,Ee,[(0,r.createVNode)(A,null,{default:(0,r.withCtx)(()=>[(0,r.createVNode)(z,{class:`pb-2`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)(M,{class:`text-base`},{default:(0,r.withCtx)(()=>[...C[11]||=[(0,r.createTextVNode)(`Devices`,-1)]]),_:1})]),_:1}),(0,r.createVNode)($,null,{default:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,p,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(I.value,e=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{key:e.deviceCategory,class:`flex items-center gap-3`},[((0,r.openBlock)(),(0,r.createBlock)((0,r.resolveDynamicComponent)(Ae(e.deviceCategory)),{class:`size-4 text-muted-foreground shrink-0`})),(0,r.createElementVNode)(`span`,m,(0,r.toDisplayString)(e.deviceCategory),1),(0,r.createElementVNode)(`div`,h,[(0,r.createElementVNode)(`div`,{class:`h-full bg-primary rounded-full transition-all`,style:(0,r.normalizeStyle)({width:`${e.sessions/(I.value[0]?.sessions||1)*100}%`})},null,4)]),(0,r.createElementVNode)(`span`,g,(0,r.toDisplayString)(J(e.sessions)),1)]))),128)),I.value.length?(0,r.createCommentVNode)(``,!0):((0,r.openBlock)(),(0,r.createElementBlock)(`div`,_,`No data available`))])]),_:1})]),_:1}),(0,r.createVNode)(A,null,{default:(0,r.withCtx)(()=>[(0,r.createVNode)(z,{class:`pb-2`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)(M,{class:`text-base`},{default:(0,r.withCtx)(()=>[...C[12]||=[(0,r.createTextVNode)(`Top Countries`,-1)]]),_:1})]),_:1}),(0,r.createVNode)($,null,{default:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,v,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(L.value,e=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{key:e.country,class:`flex items-center gap-3`},[(0,r.createVNode)((0,r.unref)(i.Globe),{class:`size-4 text-muted-foreground shrink-0`}),(0,r.createElementVNode)(`span`,y,(0,r.toDisplayString)(e.country),1),(0,r.createElementVNode)(`div`,b,[(0,r.createElementVNode)(`div`,{class:`h-full bg-primary rounded-full transition-all`,style:(0,r.normalizeStyle)({width:`${e.sessions/(L.value[0]?.sessions||1)*100}%`})},null,4)]),(0,r.createElementVNode)(`span`,x,(0,r.toDisplayString)(J(e.sessions)),1)]))),128)),L.value.length?(0,r.createCommentVNode)(``,!0):((0,r.openBlock)(),(0,r.createElementBlock)(`div`,S,`No data available`))])]),_:1})]),_:1})])],64)):((0,r.openBlock)(),(0,r.createBlock)(A,{key:0,class:`p-8 text-center`},{default:(0,r.withCtx)(()=>[...C[1]||=[(0,r.createElementVNode)(`div`,{class:`mx-auto max-w-md space-y-3`},[(0,r.createElementVNode)(`p`,{class:`text-lg font-medium`},`Setup required`),(0,r.createElementVNode)(`p`,{class:`text-sm text-muted-foreground`},`Connect a Google Service Account and enter your GA4 Property ID in the module settings to start seeing analytics.`)],-1)]]),_:1}))])}}});exports.default=C;
@@ -1,133 +0,0 @@
1
- import { useFirebaseIntegration as e, useLogs as t, useModuleBreadcrumbs as n, useModulePermissions as r, useModuleRoute as i } from "@oneclick.dev/cms-kit";
2
- 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, onMounted as m, openBlock as h, ref as g, renderList as _, resolveComponent as v, toDisplayString as y, unref as b, withCtx as x, withKeys as S } from "vue";
3
- import { Pencil as C, Plus as w, Search as T } from "@lucide/vue";
4
- //#region src/productCollections/components/overview/ListView.vue?vue&type=script&setup=true&lang.ts
5
- var E = { class: "flex items-center gap-2" }, D = {
6
- key: 0,
7
- class: "bg-green-500 text-green-950 px-2 py-1 rounded-lg text-xs"
8
- }, O = {
9
- key: 1,
10
- class: "bg-blue-500 text-blue-950 px-2 py-1 rounded-lg text-xs"
11
- }, k = /* @__PURE__ */ p({
12
- __name: "ListView",
13
- props: { collections: {
14
- type: Array,
15
- required: !0
16
- } },
17
- setup(e) {
18
- let { navigateTo: t } = i();
19
- return (n, r) => {
20
- let i = v("TableHead"), o = v("TableRow"), p = v("TableHeader"), m = v("AvatarImage"), g = v("AvatarFallback"), S = v("Avatar"), w = v("TableCell"), T = v("Button"), k = v("TableBody"), A = v("Table");
21
- return h(), s(A, null, {
22
- default: x(() => [f(p, null, {
23
- default: x(() => [f(o, null, {
24
- default: x(() => [
25
- f(i, { class: "w-[100px]" }, {
26
- default: x(() => [...r[0] ||= [d(" Title ", -1)]]),
27
- _: 1
28
- }),
29
- f(i, null, {
30
- default: x(() => [...r[1] ||= [d("Status", -1)]]),
31
- _: 1
32
- }),
33
- f(i, null, {
34
- default: x(() => [...r[2] ||= [d(" Type", -1)]]),
35
- _: 1
36
- }),
37
- f(i, { class: "text-right" }, {
38
- default: x(() => [...r[3] ||= [d(" Actions ", -1)]]),
39
- _: 1
40
- })
41
- ]),
42
- _: 1
43
- })]),
44
- _: 1
45
- }), f(k, null, {
46
- default: x(() => [(h(!0), l(a, null, _(e.collections, (e) => (h(), s(o, {
47
- key: e.id,
48
- onClick: (n) => b(t)(e.id),
49
- class: "cursor-pointer"
50
- }, {
51
- default: x(() => [
52
- f(w, { class: "font-medium" }, {
53
- default: x(() => [u("div", E, [e.thumbnail ? (h(), s(S, {
54
- key: 0,
55
- class: "size-12 rounded-xl"
56
- }, {
57
- default: x(() => [f(m, {
58
- src: e.thumbnail,
59
- class: "object-cover"
60
- }, null, 8, ["src"]), f(g, { class: "rounded-xl" })]),
61
- _: 2
62
- }, 1024)) : c("", !0), u("span", null, y(e.title), 1)])]),
63
- _: 2
64
- }, 1024),
65
- f(w, null, {
66
- default: x(() => [e.status === "published" ? (h(), l("span", D, "Published")) : e.status === "draft" ? (h(), l("span", O, "Draft")) : c("", !0)]),
67
- _: 2
68
- }, 1024),
69
- f(w, null, {
70
- default: x(() => [d(y(e.type), 1)]),
71
- _: 2
72
- }, 1024),
73
- f(w, { class: "text-right" }, {
74
- default: x(() => [f(T, {
75
- size: "icon",
76
- variant: "ghost"
77
- }, {
78
- default: x(() => [f(b(C), { class: "size-4" })]),
79
- _: 1
80
- })]),
81
- _: 1
82
- })
83
- ]),
84
- _: 2
85
- }, 1032, ["onClick"]))), 128))]),
86
- _: 1
87
- })]),
88
- _: 1
89
- });
90
- };
91
- }
92
- }), A = { class: "relative" }, j = {
93
- ref: "container",
94
- class: "flex items-center justify-between gap-4 w-full mt-12 mb-8"
95
- }, M = { class: "flex items-center gap-4" }, N = { class: "text-lg whitespace-nowrap" }, P = { class: "relative w-full max-w-sm items-center" }, F = { class: "absolute start-0 inset-y-0 flex items-center justify-center px-2" }, I = { class: "flex items-center gap-4" }, L = /* @__PURE__ */ p({
96
- __name: "Overview",
97
- props: { config: {
98
- type: Object,
99
- required: !0
100
- } },
101
- setup(a) {
102
- let p = a, { hasPermission: _ } = r(), { navigateTo: C } = i(), { log: E, logWarning: D, logError: O } = t();
103
- n(() => []);
104
- let L = e(p.config.project), R = g([]), z = g(""), B = o(() => R.value.filter((e) => e.title.toLowerCase().includes(z.value.toLowerCase()))), V = async () => (R.value = await (async () => {
105
- if (!p.config.collectionsCollection) return [];
106
- let e = p.config.collectionsCollection.split(":");
107
- return e.length === 2 && (await L.get(e[0]))?.[e[1]] || [];
108
- })(), R.value);
109
- return m(() => {
110
- V();
111
- }), (e, t) => {
112
- let n = v("Input"), r = v("Button");
113
- return h(), l("div", A, [u("div", j, [u("div", M, [u("p", N, y(R.value?.length) + " collections", 1), u("div", P, [f(n, {
114
- id: "search",
115
- type: "text",
116
- placeholder: "Search...",
117
- class: "pl-8",
118
- modelValue: z.value,
119
- "onUpdate:modelValue": t[0] ||= (e) => z.value = e,
120
- onKeydown: t[1] ||= S((e) => z.value = "", ["escape"])
121
- }, null, 8, ["modelValue"]), u("span", F, [f(b(T), { class: "size-4 text-muted-foreground" })])])]), u("div", I, [b(_)("create-collection") ? (h(), s(r, {
122
- key: 0,
123
- variant: "outline",
124
- onClick: t[2] ||= (e) => b(C)("new")
125
- }, {
126
- default: x(() => [f(b(w), { class: "size-4" }), t[3] ||= d(" New Collection ", -1)]),
127
- _: 1
128
- })) : c("", !0)])], 512), f(k, { collections: b(B) }, null, 8, ["collections"])]);
129
- };
130
- }
131
- });
132
- //#endregion
133
- export { L as default };
@@ -1 +0,0 @@
1
- require(`./chunk-DQi1bQcV.js`);let e=require(`@oneclick.dev/cms-kit`),t=require(`vue`),n=require(`@lucide/vue`);var r={class:`container @container mx-auto py-8 px-4`},i={key:0,class:`flex justify-center py-24`},a={class:`flex gap-2`},o={key:2},s={class:`flex flex-col gap-4 mb-6 @md:flex-row @md:items-end @md:justify-between`},c={class:`flex flex-wrap items-center gap-2`},l={class:`relative`},u={key:0,class:`flex flex-wrap items-center justify-between gap-3 mb-4 px-4 py-3 rounded-lg border bg-muted/40`},d={class:`flex items-center gap-3`},f={class:`text-sm font-medium`},p={class:`flex items-center gap-2`},m={key:1,class:`flex flex-col items-center justify-center py-16 text-center border border-dashed rounded-lg`},h={class:`font-medium`},g={key:2,class:`grid gap-4 @md:grid-cols-2 @3xl:grid-cols-3`},ee=[`onClick`],_=[`onClick`],te={class:`flex items-start gap-3`},ne=[`disabled`,`onClick`],re={class:`text-base font-semibold leading-tight line-clamp-1`},ie={class:`flex items-center gap-2 mt-1`},ae={key:0,class:`text-xs text-muted-foreground cursor-pointer`},oe={key:0,class:`shrink-0`},se={class:`grid grid-cols-3 gap-2 mt-5`},ce={class:`flex flex-col items-start gap-1 rounded-lg bg-muted/40 px-3 py-2`},le={class:`flex items-center gap-1 text-muted-foreground`},v={class:`text-sm font-semibold`},y={class:`flex flex-col items-start gap-1 rounded-lg bg-muted/40 px-3 py-2`},b={class:`flex items-center gap-1 text-muted-foreground`},x={class:`text-sm font-semibold`},S={class:`flex flex-col items-start gap-1 rounded-lg bg-muted/40 px-3 py-2`},C={class:`flex items-center gap-1 text-muted-foreground`},w={class:`text-sm font-semibold`},T={key:0,class:`flex items-center justify-between gap-2 px-5 py-3 border-t bg-muted/20`},E=(0,t.defineComponent)({__name:`Overview`,setup(E){let{config:D}=(0,e.useModule)(),O=(0,e.useFirebaseIntegration)(D.project),{navigateTo:k}=(0,e.useModuleRoute)(),{confirm:A}=(0,e.useConfirmation)(),{hasPermission:j}=(0,e.useModulePermissions)();(0,e.useModuleBreadcrumbs)(()=>[]);let M=(0,t.ref)(null),N=(0,t.ref)(``),P=(0,t.ref)(!1),F=(0,t.ref)([]),I=(0,t.ref)(`importAgendasInput`),L=(0,t.computed)(()=>{if(!M.value)return[];let e=N.value.trim().toLowerCase();return e?M.value.filter(t=>(t.serviceName||``).toLowerCase().includes(e)):M.value}),R=(0,t.computed)(()=>L.value.length>0&&L.value.every(e=>F.value.includes(e.id))),z=()=>{if(R.value){let e=L.value.map(e=>e.id);F.value=F.value.filter(t=>!e.includes(t))}else{let e=L.value.map(e=>e.id),t=new Set([...F.value,...e]);F.value=Array.from(t)}},B=e=>{F.value.includes(e)?F.value=F.value.filter(t=>t!==e):F.value.push(e)},V=e=>{if(!e)return`??`;let t=e.trim().split(/\s+/);return t.length===1?t[0].slice(0,2).toUpperCase():(t[0][0]+t[t.length-1][0]).toUpperCase()},H=[{fg:`#7c3aed`,bg:`rgba(124, 58, 237, 0.12)`},{fg:`#0891b2`,bg:`rgba(8, 145, 178, 0.12)`},{fg:`#ea580c`,bg:`rgba(234, 88, 12, 0.12)`},{fg:`#16a34a`,bg:`rgba(22, 163, 74, 0.12)`},{fg:`#2563eb`,bg:`rgba(37, 99, 235, 0.12)`},{fg:`#db2777`,bg:`rgba(219, 39, 119, 0.12)`},{fg:`#475569`,bg:`rgba(71, 85, 105, 0.12)`}],U=e=>{let t=(e.id||e.serviceName||``).toString(),n=0;for(let e=0;e<t.length;e++)n=n*31+t.charCodeAt(e)>>>0;return H[n%H.length]},W=e=>{let t=e?.pricingOptions?.[0];return t?.duration?`${t.duration} min`:null},ue=e=>{let t=e?.pricingOptions?.[0];return t?.price===void 0||t?.price===null||t?.price===``?null:`${e.currency===`EUR`?`€`:`$`}${t.price}`},de=e=>Array.isArray(e?.resources)?e.resources.filter(e=>e?.isActive!==!1).length:0,fe=e=>e.type===`regular`?`Regular`:e.type?e.type.charAt(0).toUpperCase()+e.type.slice(1):`Agenda`,pe=e=>{P.value=!0,F.value=[e]},G=async()=>{M.value=await O.find(D.agendaCollection)},me=async e=>{if(!j(`create-agendas`))return;let t=await O.get(D.agendaCollection,e);if(!t){alert(`Agenda not found`);return}let n=prompt(`Enter name for duplicated agenda`,t.serviceName+` (Copy)`);if(!n)return;let r={...t,serviceName:n};delete r.id,await O.add(D.agendaCollection,r),await G()},he=async e=>{j(`delete-agendas`)&&await A(`Are you sure you want to delete this agenda? This action cannot be undone.`)&&(await O.remove(D.agendaCollection,e),await G())},ge=async()=>{if(!M.value)return;let e=M.value.filter(e=>F.value.includes(e.id));e=e.map(e=>{let{id:t,...n}=e;return n});let t=`data:text/json;charset=utf-8,`+encodeURIComponent(JSON.stringify(e,null,2)),n=document.createElement(`a`);n.setAttribute(`href`,t),n.setAttribute(`download`,`agendas_export.json`),document.body.appendChild(n),n.click(),n.remove(),P.value=!1,F.value=[]},_e=async e=>{let t=e.target;if(!t.files||t.files.length===0)return;let n=await t.files[0].text(),r;try{r=JSON.parse(n)}catch{alert(`Invalid JSON file`);return}if(!Array.isArray(r)){alert(`Invalid agendas format`);return}for(let e of r)await O.add(D.agendaCollection,e);t.value=``,await G()},K=e=>{P.value||(j(`edit-agendas`)?k(`/edit/${e}`):k(`/edit/${e}/agenda`))};return G(),(e,E)=>{let D=(0,t.resolveComponent)(`Spinner`),O=(0,t.resolveComponent)(`EmptyMedia`),A=(0,t.resolveComponent)(`EmptyTitle`),H=(0,t.resolveComponent)(`EmptyDescription`),G=(0,t.resolveComponent)(`EmptyHeader`),q=(0,t.resolveComponent)(`Button`),ve=(0,t.resolveComponent)(`EmptyContent`),J=(0,t.resolveComponent)(`Empty`),ye=(0,t.resolveComponent)(`Input`),Y=(0,t.resolveComponent)(`DropdownMenuTrigger`),X=(0,t.resolveComponent)(`DropdownMenuItem`),Z=(0,t.resolveComponent)(`DropdownMenuGroup`),Q=(0,t.resolveComponent)(`DropdownMenuContent`),$=(0,t.resolveComponent)(`DropdownMenu`),be=(0,t.resolveComponent)(`ButtonGroup`),xe=(0,t.resolveComponent)(`Checkbox`),Se=(0,t.resolveComponent)(`Badge`);return(0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[(0,t.createElementVNode)(`div`,r,[M.value===null?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,i,[(0,t.createVNode)(D,{class:`mx-auto`})])):M.value.length===0?((0,t.openBlock)(),(0,t.createBlock)(J,{key:1},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(G,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(O,{variant:`icon`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(n.CalendarX),{class:`size-4-6`})]),_:1}),(0,t.createVNode)(A,null,{default:(0,t.withCtx)(()=>[...E[6]||=[(0,t.createTextVNode)(`No Agendas Yet`,-1)]]),_:1}),(0,t.createVNode)(H,null,{default:(0,t.withCtx)(()=>[...E[7]||=[(0,t.createTextVNode)(` You haven't created any agenda yet. Get started by creating your first agenda. `,-1)]]),_:1})]),_:1}),(0,t.createVNode)(ve,null,{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,a,[(0,t.createVNode)(q,{onClick:E[0]||=e=>(0,t.unref)(k)(`/create`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(n.PlusIcon)),E[8]||=(0,t.createTextVNode)(` Create Agenda `,-1)]),_:1})])]),_:1})]),_:1})):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,o,[(0,t.createElementVNode)(`div`,s,[E[11]||=(0,t.createElementVNode)(`div`,null,[(0,t.createElementVNode)(`h2`,{class:`text-3xl font-bold tracking-tight`},`Agendas`),(0,t.createElementVNode)(`p`,{class:`text-sm text-muted-foreground mt-1`},` Manage your bookable services, hours and resources. `)],-1),(0,t.createElementVNode)(`div`,c,[(0,t.createElementVNode)(`div`,l,[(0,t.createVNode)((0,t.unref)(n.Search),{class:`absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground pointer-events-none`}),(0,t.createVNode)(ye,{modelValue:N.value,"onUpdate:modelValue":E[1]||=e=>N.value=e,placeholder:`Search agendas...`,class:`pl-9 w-full @md:w-64`},null,8,[`modelValue`])]),!P.value&&(0,t.unref)(j)(`create-agendas`)?((0,t.openBlock)(),(0,t.createBlock)(be,{key:0},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(q,{onClick:E[2]||=e=>(0,t.unref)(k)(`/create`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(n.PlusIcon)),E[9]||=(0,t.createTextVNode)(` New Agenda `,-1)]),_:1}),(0,t.createVNode)($,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(Y,{"as-child":``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(q,{size:`icon`,"aria-label":`More Options`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(n.MoreHorizontalIcon))]),_:1})]),_:1}),(0,t.createVNode)(Q,{align:`end`,class:`w-52`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(Z,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(X,{onClick:E[3]||=e=>I.value.click()},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(n.ImportIcon)),E[10]||=(0,t.createTextVNode)(` Import Agendas... `,-1)]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})):(0,t.createCommentVNode)(``,!0)])]),P.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,u,[(0,t.createElementVNode)(`div`,d,[(0,t.createVNode)(xe,{modelValue:R.value,"onUpdate:modelValue":z},null,8,[`modelValue`]),(0,t.createElementVNode)(`span`,f,(0,t.toDisplayString)(F.value.length)+` of `+(0,t.toDisplayString)(L.value.length)+` selected `,1)]),(0,t.createElementVNode)(`div`,p,[(0,t.createVNode)(q,{variant:`ghost`,onClick:E[4]||=e=>{P.value=!1,F.value=[]}},{default:(0,t.withCtx)(()=>[...E[12]||=[(0,t.createTextVNode)(` Cancel `,-1)]]),_:1}),(0,t.createVNode)(q,{onClick:ge,disabled:F.value.length===0},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(n.Upload)),(0,t.createTextVNode)(` Export `+(0,t.toDisplayString)(F.value.length||``),1)]),_:1},8,[`disabled`])])])):(0,t.createCommentVNode)(``,!0),L.value.length===0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,m,[(0,t.createVNode)((0,t.unref)(n.Search),{class:`size-8 text-muted-foreground mb-3`}),(0,t.createElementVNode)(`p`,h,`No agendas match "`+(0,t.toDisplayString)(N.value)+`"`,1),E[13]||=(0,t.createElementVNode)(`p`,{class:`text-sm text-muted-foreground mt-1`},`Try a different search term.`,-1)])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,g,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(L.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,class:(0,t.normalizeClass)([`group relative flex flex-col overflow-hidden rounded-xl border bg-card shadow-sm transition-all duration-200`,{"cursor-pointer":P.value,"ring-2 ring-primary border-primary/40":P.value&&F.value.includes(e.id)}]),onClick:t=>P.value?B(e.id):null},[(0,t.createElementVNode)(`div`,{class:`h-1 w-full`,style:(0,t.normalizeStyle)({backgroundColor:U(e).fg})},null,4),(0,t.createElementVNode)(`div`,{onClick:(0,t.withModifiers)(t=>!P.value&&K(e.id),[`stop`]),class:`flex flex-col flex-1 p-5`},[(0,t.createElementVNode)(`div`,te,[(0,t.createElementVNode)(`div`,{class:`shrink-0 size-12 rounded-lg flex items-center justify-center font-semibold text-sm`,style:(0,t.normalizeStyle)({backgroundColor:U(e).bg,color:U(e).fg})},(0,t.toDisplayString)(V(e.serviceName)),5),(0,t.createElementVNode)(`button`,{type:`button`,class:`flex-1 min-w-0 text-left focus:outline-none`,disabled:P.value,onClick:t=>!P.value&&K(e.id)},[(0,t.createElementVNode)(`h3`,re,(0,t.toDisplayString)(e.serviceName||`Untitled Agenda`),1),(0,t.createElementVNode)(`div`,ie,[(0,t.createVNode)(Se,{variant:`secondary`,class:`text-[10px] font-medium px-1.5 py-0 h-4`},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(fe(e)),1)]),_:2},1024),P.value?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ae,` Click to `+(0,t.toDisplayString)((0,t.unref)(j)(`edit-agendas`)?`edit`:`view`),1))])],8,ne),P.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,oe,[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`flex items-center justify-center size-6 rounded-full border-2 transition`,F.value.includes(e.id)?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground/30`])},[F.value.includes(e.id)?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(n.CheckCircle2),{key:0,class:`size-4`})):(0,t.createCommentVNode)(``,!0)],2)])):(0,t.createCommentVNode)(``,!0)]),(0,t.createElementVNode)(`div`,se,[(0,t.createElementVNode)(`div`,ce,[(0,t.createElementVNode)(`div`,le,[(0,t.createVNode)((0,t.unref)(n.Clock),{class:`size-3.5`}),E[14]||=(0,t.createElementVNode)(`span`,{class:`text-[10px] uppercase tracking-wide font-medium`},`Duration`,-1)]),(0,t.createElementVNode)(`span`,v,(0,t.toDisplayString)(W(e)||`—`),1)]),(0,t.createElementVNode)(`div`,y,[(0,t.createElementVNode)(`div`,b,[(0,t.createVNode)((0,t.unref)(n.DollarSign),{class:`size-3.5`}),E[15]||=(0,t.createElementVNode)(`span`,{class:`text-[10px] uppercase tracking-wide font-medium`},`Price`,-1)]),(0,t.createElementVNode)(`span`,x,(0,t.toDisplayString)(ue(e)||`—`),1)]),(0,t.createElementVNode)(`div`,S,[(0,t.createElementVNode)(`div`,C,[(0,t.createVNode)((0,t.unref)(n.Users),{class:`size-3.5`}),E[16]||=(0,t.createElementVNode)(`span`,{class:`text-[10px] uppercase tracking-wide font-medium`},`Resources`,-1)]),(0,t.createElementVNode)(`span`,w,(0,t.toDisplayString)(de(e)),1)])])],8,_),P.value?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,T,[(0,t.unref)(j)(`edit-agendas`)?((0,t.openBlock)(),(0,t.createBlock)(q,{key:0,variant:`ghost`,size:`sm`,class:`gap-1.5`,onClick:(0,t.withModifiers)(n=>(0,t.unref)(k)(`/edit/${e.id}`),[`stop`])},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(n.CalendarDays),{class:`size-4`}),E[17]||=(0,t.createTextVNode)(` Edit Agenda `,-1)]),_:1},8,[`onClick`])):((0,t.openBlock)(),(0,t.createBlock)(q,{key:1,variant:`ghost`,size:`sm`,class:`gap-1.5`,onClick:(0,t.withModifiers)(n=>(0,t.unref)(k)(`/edit/${e.id}/agenda`),[`stop`])},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(n.CalendarDays),{class:`size-4`}),E[18]||=(0,t.createTextVNode)(` View Agenda `,-1)]),_:1},8,[`onClick`])),(0,t.createVNode)($,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(Y,{"as-child":``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(q,{variant:`ghost`,size:`icon`,"aria-label":`More Options`,onClick:E[5]||=(0,t.withModifiers)(()=>{},[`stop`])},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(n.MoreHorizontalIcon))]),_:1})]),_:1}),(0,t.createVNode)(Q,{align:`end`,class:`w-52`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(Z,null,{default:(0,t.withCtx)(()=>[(0,t.unref)(j)(`create-agendas`)?((0,t.openBlock)(),(0,t.createBlock)(X,{key:0,onClick:t=>me(e.id)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(n.Copy)),E[19]||=(0,t.createTextVNode)(` Duplicate Agenda `,-1)]),_:1},8,[`onClick`])):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(X,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(n.ChevronsLeftRightEllipsis)),E[20]||=(0,t.createTextVNode)(` API Set-up `,-1)]),_:1}),(0,t.createVNode)(X,{onClick:t=>pe(e.id)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(n.Upload)),E[21]||=(0,t.createTextVNode)(` Export Agenda `,-1)]),_:1},8,[`onClick`]),(0,t.unref)(j)(`delete-agendas`)?((0,t.openBlock)(),(0,t.createBlock)(X,{key:1,variant:`destructive`,onClick:t=>he(e.id)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(n.Trash2Icon)),E[22]||=(0,t.createTextVNode)(` Remove Agenda `,-1)]),_:1},8,[`onClick`])):(0,t.createCommentVNode)(``,!0)]),_:2},1024)]),_:2},1024)]),_:2},1024)]))],10,ee))),128))]))]))]),(0,t.createElementVNode)(`input`,{type:`file`,ref_key:`importAgendasInput`,ref:I,class:`hidden`,accept:`.json,application/json`,onChange:_e},null,544)],64)}}});exports.default=E;