@oneclick.dev/cms-core-modules 0.0.62 → 0.0.63

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.
@@ -1,24 +1,24 @@
1
- import { defineComponent as q, ref as D, resolveComponent as s, openBlock as o, createElementBlock as f, Fragment as V, createElementVNode as p, createVNode as t, createBlock as g, withCtx as n, unref as l, createTextVNode as i, toDisplayString as O, createCommentVNode as E, renderList as K, normalizeClass as Q } from "vue";
2
- import { useModule as W, useFirebaseIntegration as Z, useModuleRoute as ee, useConfirmation as te, useModulePermissions as ne, useModuleBreadcrumbs as oe } from "@oneclick.dev/cms-kit";
3
- import { CalendarX as ae, MoreHorizontalIcon as z, Copy as le, ChevronsLeftRightEllipsis as se, Upload as ie, Trash2Icon as de, ImportIcon as re } from "lucide-vue-next";
4
- const ue = { class: "container mx-auto p-8" }, ce = { key: 0 }, pe = { class: "flex gap-2" }, fe = { key: 2 }, me = { class: "flex justify-between items-center gap-4 mb-4" }, ge = {
1
+ import { defineComponent as K, ref as D, resolveComponent as i, openBlock as o, createElementBlock as f, Fragment as V, createElementVNode as p, createVNode as t, createBlock as v, withCtx as n, unref as a, createTextVNode as d, toDisplayString as O, createCommentVNode as M, renderList as Q, normalizeClass as W } from "vue";
2
+ import { useModule as Z, useFirebaseIntegration as ee, useModuleRoute as te, useConfirmation as ne, useModulePermissions as oe, useModuleBreadcrumbs as le } from "@oneclick.dev/cms-kit";
3
+ import { CalendarX as ae, MoreHorizontalIcon as z, Copy as se, ChevronsLeftRightEllipsis as ie, Upload as de, Trash2Icon as re, ImportIcon as ue } from "lucide-vue-next";
4
+ const ce = { class: "container mx-auto p-8" }, pe = { key: 0 }, fe = { class: "flex gap-2" }, me = { key: 2 }, ge = { class: "flex justify-between items-center gap-4 mb-4" }, ve = {
5
5
  key: 0,
6
6
  class: "flex items-center gap-2"
7
- }, ve = { class: "mr-2" }, _e = ["onClick"], ye = { class: "flex justify-between items-center mb-2" }, Ce = { class: "flex flex-col items-start" }, ke = { class: "text-lg font-medium" }, we = { class: "text-sm text-muted-foreground" }, xe = { key: 0 }, be = { key: 1 }, Ae = {
7
+ }, _e = { class: "mr-2" }, ye = ["onClick"], Ce = { class: "flex justify-between items-center mb-2" }, ke = { class: "text-lg font-medium" }, we = { class: "text-sm text-muted-foreground" }, xe = { key: 0 }, be = { key: 1 }, Ae = {
8
8
  key: 0,
9
9
  class: "flex justify-end mt-8"
10
- }, Ne = /* @__PURE__ */ q({
10
+ }, Ie = /* @__PURE__ */ K({
11
11
  __name: "Overview",
12
12
  setup(Ee) {
13
- const { config: _ } = W(), w = Z(_.project), { navigateTo: M } = ee(), { confirm: G } = te(), { hasPermission: y } = ne();
14
- oe(() => []);
15
- const x = D(null), v = D(!1), r = D([]), N = D("importAgendasInput"), R = (d) => {
16
- v.value = !0, r.value = [d];
17
- }, I = async () => {
18
- x.value = await w.find(_.agendaCollection);
19
- }, H = async (d) => {
20
- if (!y("create-agendas")) return;
21
- const e = await w.get(_.agendaCollection, d);
13
+ const { config: y } = Z(), x = ee(y.project), { navigateTo: C } = te(), { confirm: G } = ne(), { hasPermission: _ } = oe();
14
+ le(() => []);
15
+ const b = D(null), m = D(!1), r = D([]), I = D("importAgendasInput"), R = (s) => {
16
+ m.value = !0, r.value = [s];
17
+ }, $ = async () => {
18
+ b.value = await x.find(y.agendaCollection);
19
+ }, H = async (s) => {
20
+ if (!_("create-agendas")) return;
21
+ const e = await x.get(y.agendaCollection, s);
22
22
  if (!e) {
23
23
  alert("Agenda not found");
24
24
  return;
@@ -27,76 +27,78 @@ const ue = { class: "container mx-auto p-8" }, ce = { key: 0 }, pe = { class: "f
27
27
  if (!u)
28
28
  return;
29
29
  const c = { ...e, serviceName: u };
30
- delete c.id, await w.add(_.agendaCollection, c), await I();
31
- }, J = async (d) => {
32
- !y("delete-agendas") || !await G("Are you sure you want to delete this agenda? This action cannot be undone.") || (await w.remove(_.agendaCollection, d), await I());
30
+ delete c.id, await x.add(y.agendaCollection, c), await $();
31
+ }, J = async (s) => {
32
+ !_("delete-agendas") || !await G("Are you sure you want to delete this agenda? This action cannot be undone.") || (await x.remove(y.agendaCollection, s), await $());
33
33
  }, P = async () => {
34
- let d = x.value.filter((c) => r.value.includes(c.id));
35
- d = d.map((c) => {
36
- const { id: C, ...k } = c;
37
- return k;
34
+ let s = b.value.filter((c) => r.value.includes(c.id));
35
+ s = s.map((c) => {
36
+ const { id: k, ...w } = c;
37
+ return w;
38
38
  });
39
- const e = "data:text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(d, null, 2)), u = document.createElement("a");
40
- u.setAttribute("href", e), u.setAttribute("download", "agendas_export.json"), document.body.appendChild(u), u.click(), u.remove(), v.value = !1, r.value = [];
41
- }, F = async (d) => {
42
- const e = d.target;
39
+ const e = "data:text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(s, null, 2)), u = document.createElement("a");
40
+ u.setAttribute("href", e), u.setAttribute("download", "agendas_export.json"), document.body.appendChild(u), u.click(), u.remove(), m.value = !1, r.value = [];
41
+ }, F = async (s) => {
42
+ const e = s.target;
43
43
  if (!e.files || e.files.length === 0)
44
44
  return;
45
45
  const c = await e.files[0].text();
46
- let C;
46
+ let k;
47
47
  try {
48
- C = JSON.parse(c);
48
+ k = JSON.parse(c);
49
49
  } catch {
50
50
  alert("Invalid JSON file");
51
51
  return;
52
52
  }
53
- if (!Array.isArray(C)) {
53
+ if (!Array.isArray(k)) {
54
54
  alert("Invalid agendas format");
55
55
  return;
56
56
  }
57
- for (const k of C)
58
- await w.add(_.agendaCollection, k);
59
- e.value = "", await I();
57
+ for (const w of k)
58
+ await x.add(y.agendaCollection, w);
59
+ e.value = "", await $();
60
+ }, L = (s) => {
61
+ m.value || (_("edit-agendas") ? C(`/edit/${s}`) : C(`/edit/${s}/agenda`));
60
62
  };
61
- return I(), (d, e) => {
62
- const u = s("Spinner"), c = s("EmptyMedia"), C = s("EmptyTitle"), k = s("EmptyDescription"), L = s("EmptyHeader"), m = s("Button"), U = s("EmptyContent"), Y = s("Empty"), $ = s("DropdownMenuTrigger"), b = s("DropdownMenuItem"), j = s("DropdownMenuGroup"), B = s("DropdownMenuContent"), S = s("DropdownMenu"), T = s("ButtonGroup"), h = s("Checkbox");
63
+ return $(), (s, e) => {
64
+ const u = i("Spinner"), c = i("EmptyMedia"), k = i("EmptyTitle"), w = i("EmptyDescription"), U = i("EmptyHeader"), g = i("Button"), Y = i("EmptyContent"), X = i("Empty"), N = i("DropdownMenuTrigger"), A = i("DropdownMenuItem"), T = i("DropdownMenuGroup"), j = i("DropdownMenuContent"), B = i("DropdownMenu"), S = i("ButtonGroup"), h = i("Checkbox");
63
65
  return o(), f(V, null, [
64
- p("div", ue, [
65
- x.value === null ? (o(), f("div", ce, [
66
+ p("div", ce, [
67
+ b.value === null ? (o(), f("div", pe, [
66
68
  t(u, { class: "mx-auto" })
67
- ])) : x.value.length === 0 ? (o(), g(Y, { key: 1 }, {
69
+ ])) : b.value.length === 0 ? (o(), v(X, { key: 1 }, {
68
70
  default: n(() => [
69
- t(L, null, {
71
+ t(U, null, {
70
72
  default: n(() => [
71
73
  t(c, { variant: "icon" }, {
72
74
  default: n(() => [
73
- t(l(ae), { class: "size-4-6" })
75
+ t(a(ae), { class: "size-4-6" })
74
76
  ]),
75
77
  _: 1
76
78
  }),
77
- t(C, null, {
79
+ t(k, null, {
78
80
  default: n(() => [...e[4] || (e[4] = [
79
- i("No Agendas Yet", -1)
81
+ d("No Agendas Yet", -1)
80
82
  ])]),
81
83
  _: 1
82
84
  }),
83
- t(k, null, {
85
+ t(w, null, {
84
86
  default: n(() => [...e[5] || (e[5] = [
85
- i(" You haven't created any agenda yet. Get started by creating your first agenda. ", -1)
87
+ d(" You haven't created any agenda yet. Get started by creating your first agenda. ", -1)
86
88
  ])]),
87
89
  _: 1
88
90
  })
89
91
  ]),
90
92
  _: 1
91
93
  }),
92
- t(U, null, {
94
+ t(Y, null, {
93
95
  default: n(() => [
94
- p("div", pe, [
95
- t(m, {
96
- onClick: e[0] || (e[0] = (a) => l(M)("/create"))
96
+ p("div", fe, [
97
+ t(g, {
98
+ onClick: e[0] || (e[0] = (l) => a(C)("/create"))
97
99
  }, {
98
100
  default: n(() => [...e[6] || (e[6] = [
99
- i("Create Agenda", -1)
101
+ d("Create Agenda", -1)
100
102
  ])]),
101
103
  _: 1
102
104
  })
@@ -106,137 +108,140 @@ const ue = { class: "container mx-auto p-8" }, ce = { key: 0 }, pe = { class: "f
106
108
  })
107
109
  ]),
108
110
  _: 1
109
- })) : (o(), f("div", fe, [
110
- p("div", me, [
111
+ })) : (o(), f("div", me, [
112
+ p("div", ge, [
111
113
  e[9] || (e[9] = p("h2", { class: "text-2xl font-bold" }, "Agendas", -1)),
112
- v.value ? (o(), f("div", ge, [
113
- p("span", ve, O(r.value.length) + " selected", 1),
114
- t(m, {
114
+ m.value ? (o(), f("div", ve, [
115
+ p("span", _e, O(r.value.length) + " selected", 1),
116
+ t(g, {
115
117
  variant: "outline",
116
- onClick: e[1] || (e[1] = (a) => {
117
- v.value = !1, r.value = [];
118
+ onClick: e[1] || (e[1] = (l) => {
119
+ m.value = !1, r.value = [];
118
120
  })
119
121
  }, {
120
122
  default: n(() => [...e[7] || (e[7] = [
121
- i(" Cancel ", -1)
123
+ d(" Cancel ", -1)
122
124
  ])]),
123
125
  _: 1
124
126
  }),
125
- t(m, {
127
+ t(g, {
126
128
  onClick: P,
127
129
  disabled: r.value.length === 0
128
130
  }, {
129
131
  default: n(() => [...e[8] || (e[8] = [
130
- i(" Export ", -1)
132
+ d(" Export ", -1)
131
133
  ])]),
132
134
  _: 1
133
135
  }, 8, ["disabled"])
134
- ])) : E("", !0)
136
+ ])) : M("", !0)
135
137
  ]),
136
- (o(!0), f(V, null, K(x.value, (a) => (o(), f("button", {
137
- key: a.id,
138
- class: Q(["block w-full mb-4 p-4 border rounded-md bg-background", { "cursor-pointer hover:bg-accent focus-visible:outline-0 focus:ring-2 ring-ring/50": v.value }]),
139
- onClick: (A) => v.value ? r.value.includes(a.id) ? r.value = r.value.filter((X) => X !== a.id) : r.value.push(a.id) : null
138
+ (o(!0), f(V, null, Q(b.value, (l) => (o(), f("button", {
139
+ key: l.id,
140
+ class: W(["block w-full mb-4 p-4 border rounded-md bg-background", { "cursor-pointer hover:bg-accent focus-visible:outline-0 focus:ring-2 ring-ring/50": m.value }]),
141
+ onClick: (E) => m.value ? r.value.includes(l.id) ? r.value = r.value.filter((q) => q !== l.id) : r.value.push(l.id) : null
140
142
  }, [
141
- p("div", ye, [
142
- p("div", Ce, [
143
- p("h3", ke, O(a.serviceName), 1),
143
+ p("div", Ce, [
144
+ p("div", {
145
+ class: "flex flex-col items-start",
146
+ onClick: L
147
+ }, [
148
+ p("h3", ke, O(l.serviceName), 1),
144
149
  p("p", we, [
145
- a.type === "regular" ? (o(), f("span", xe, "Regular Agenda")) : E("", !0)
150
+ l.type === "regular" ? (o(), f("span", xe, "Regular Agenda")) : M("", !0)
146
151
  ])
147
152
  ]),
148
- v.value ? (o(), f("div", be, [
149
- r.value.includes(a.id) ? (o(), g(h, {
153
+ m.value ? (o(), f("div", be, [
154
+ r.value.includes(l.id) ? (o(), v(h, {
150
155
  key: 0,
151
156
  tabindex: "-1",
152
157
  defaultValue: !0
153
- })) : (o(), g(h, {
158
+ })) : (o(), v(h, {
154
159
  key: 1,
155
160
  tabindex: "-1",
156
161
  defaultValue: !1
157
162
  }))
158
- ])) : (o(), g(T, { key: 0 }, {
163
+ ])) : (o(), v(S, { key: 0 }, {
159
164
  default: n(() => [
160
- l(y)("edit-agendas") ? (o(), g(m, {
165
+ a(_)("edit-agendas") ? (o(), v(g, {
161
166
  key: 0,
162
167
  variant: "outline",
163
- onClick: (A) => l(M)(`/edit/${a.id}`)
168
+ onClick: (E) => a(C)(`/edit/${l.id}`)
164
169
  }, {
165
170
  default: n(() => [...e[10] || (e[10] = [
166
- i(" Edit Agenda ", -1)
171
+ d(" Edit Agenda ", -1)
167
172
  ])]),
168
173
  _: 1
169
- }, 8, ["onClick"])) : (o(), g(m, {
174
+ }, 8, ["onClick"])) : (o(), v(g, {
170
175
  key: 1,
171
176
  variant: "outline",
172
- onClick: (A) => l(M)(`/edit/${a.id}/agenda`)
177
+ onClick: (E) => a(C)(`/edit/${l.id}/agenda`)
173
178
  }, {
174
179
  default: n(() => [...e[11] || (e[11] = [
175
- i(" View Agenda ", -1)
180
+ d(" View Agenda ", -1)
176
181
  ])]),
177
182
  _: 1
178
183
  }, 8, ["onClick"])),
179
- t(S, null, {
184
+ t(B, null, {
180
185
  default: n(() => [
181
- t($, { "as-child": "" }, {
186
+ t(N, { "as-child": "" }, {
182
187
  default: n(() => [
183
- t(m, {
188
+ t(g, {
184
189
  variant: "outline",
185
190
  size: "icon",
186
191
  "aria-label": "More Options"
187
192
  }, {
188
193
  default: n(() => [
189
- t(l(z))
194
+ t(a(z))
190
195
  ]),
191
196
  _: 1
192
197
  })
193
198
  ]),
194
199
  _: 1
195
200
  }),
196
- t(B, {
201
+ t(j, {
197
202
  align: "end",
198
203
  class: "w-52"
199
204
  }, {
200
205
  default: n(() => [
201
- t(j, null, {
206
+ t(T, null, {
202
207
  default: n(() => [
203
- l(y)("create-agendas") ? (o(), g(b, {
208
+ a(_)("create-agendas") ? (o(), v(A, {
204
209
  key: 0,
205
- onClick: (A) => H(a.id)
210
+ onClick: (E) => H(l.id)
206
211
  }, {
207
212
  default: n(() => [
208
- t(l(le)),
209
- e[12] || (e[12] = i(" Duplicate Agenda ", -1))
213
+ t(a(se)),
214
+ e[12] || (e[12] = d(" Duplicate Agenda ", -1))
210
215
  ]),
211
216
  _: 1
212
- }, 8, ["onClick"])) : E("", !0),
213
- t(b, null, {
217
+ }, 8, ["onClick"])) : M("", !0),
218
+ t(A, null, {
214
219
  default: n(() => [
215
- t(l(se)),
216
- e[13] || (e[13] = i(" API Set-up ", -1))
220
+ t(a(ie)),
221
+ e[13] || (e[13] = d(" API Set-up ", -1))
217
222
  ]),
218
223
  _: 1
219
224
  }),
220
- t(b, {
221
- onClick: (A) => R(a.id)
225
+ t(A, {
226
+ onClick: (E) => R(l.id)
222
227
  }, {
223
228
  default: n(() => [
224
- t(l(ie)),
225
- e[14] || (e[14] = i(" Export Agenda ", -1))
229
+ t(a(de)),
230
+ e[14] || (e[14] = d(" Export Agenda ", -1))
226
231
  ]),
227
232
  _: 1
228
233
  }, 8, ["onClick"]),
229
- l(y)("delete-agendas") ? (o(), g(b, {
234
+ a(_)("delete-agendas") ? (o(), v(A, {
230
235
  key: 1,
231
236
  variant: "destructive",
232
- onClick: (A) => J(a.id)
237
+ onClick: (E) => J(l.id)
233
238
  }, {
234
239
  default: n(() => [
235
- t(l(de)),
236
- e[15] || (e[15] = i(" Remove Agenda ", -1))
240
+ t(a(re)),
241
+ e[15] || (e[15] = d(" Remove Agenda ", -1))
237
242
  ]),
238
243
  _: 1
239
- }, 8, ["onClick"])) : E("", !0)
244
+ }, 8, ["onClick"])) : M("", !0)
240
245
  ]),
241
246
  _: 2
242
247
  }, 1024)
@@ -250,48 +255,48 @@ const ue = { class: "container mx-auto p-8" }, ce = { key: 0 }, pe = { class: "f
250
255
  _: 2
251
256
  }, 1024))
252
257
  ])
253
- ], 10, _e))), 128)),
254
- l(y)("create-agendas") ? (o(), f("div", Ae, [
255
- t(T, null, {
258
+ ], 10, ye))), 128)),
259
+ a(_)("create-agendas") ? (o(), f("div", Ae, [
260
+ t(S, null, {
256
261
  default: n(() => [
257
- t(m, {
258
- onClick: e[2] || (e[2] = (a) => l(M)("/create")),
262
+ t(g, {
263
+ onClick: e[2] || (e[2] = (l) => a(C)("/create")),
259
264
  class: "border-r"
260
265
  }, {
261
266
  default: n(() => [...e[16] || (e[16] = [
262
- i("New Agenda", -1)
267
+ d("New Agenda", -1)
263
268
  ])]),
264
269
  _: 1
265
270
  }),
266
- t(S, null, {
271
+ t(B, null, {
267
272
  default: n(() => [
268
- t($, { "as-child": "" }, {
273
+ t(N, { "as-child": "" }, {
269
274
  default: n(() => [
270
- t(m, {
275
+ t(g, {
271
276
  size: "icon",
272
277
  "aria-label": "More Options"
273
278
  }, {
274
279
  default: n(() => [
275
- t(l(z))
280
+ t(a(z))
276
281
  ]),
277
282
  _: 1
278
283
  })
279
284
  ]),
280
285
  _: 1
281
286
  }),
282
- t(B, {
287
+ t(j, {
283
288
  align: "end",
284
289
  class: "w-52"
285
290
  }, {
286
291
  default: n(() => [
287
- t(j, null, {
292
+ t(T, null, {
288
293
  default: n(() => [
289
- t(b, {
290
- onClick: e[3] || (e[3] = (a) => N.value.click())
294
+ t(A, {
295
+ onClick: e[3] || (e[3] = (l) => I.value.click())
291
296
  }, {
292
297
  default: n(() => [
293
- t(l(re)),
294
- e[17] || (e[17] = i(" Import Agendas... ", -1))
298
+ t(a(ue)),
299
+ e[17] || (e[17] = d(" Import Agendas... ", -1))
295
300
  ]),
296
301
  _: 1
297
302
  })
@@ -307,13 +312,13 @@ const ue = { class: "container mx-auto p-8" }, ce = { key: 0 }, pe = { class: "f
307
312
  ]),
308
313
  _: 1
309
314
  })
310
- ])) : E("", !0)
315
+ ])) : M("", !0)
311
316
  ]))
312
317
  ]),
313
318
  p("input", {
314
319
  type: "file",
315
320
  ref_key: "importAgendasInput",
316
- ref: N,
321
+ ref: I,
317
322
  class: "hidden",
318
323
  accept: ".json,application/json",
319
324
  onChange: F
@@ -323,5 +328,5 @@ const ue = { class: "container mx-auto p-8" }, ce = { key: 0 }, pe = { class: "f
323
328
  }
324
329
  });
325
330
  export {
326
- Ne as default
331
+ Ie as default
327
332
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),C=require("@oneclick.dev/cms-kit"),s=require("lucide-vue-next"),G={class:"container mx-auto p-8"},R={key:0},H={class:"flex gap-2"},P={key:2},q={class:"flex justify-between items-center gap-4 mb-4"},F={key:0,class:"flex items-center gap-2"},J={class:"mr-2"},L=["onClick"],U={class:"flex justify-between items-center mb-2"},Y={class:"text-lg font-medium"},K={class:"text-sm text-muted-foreground"},X={key:0},Q={key:1},W={key:0,class:"flex justify-end mt-8"},Z=e.defineComponent({__name:"Overview",setup(ee){const{config:u}=C.useModule(),v=C.useFirebaseIntegration(u.project),{navigateTo:p}=C.useModuleRoute(),{confirm:b}=C.useConfirmation(),{hasPermission:c}=C.useModulePermissions();C.useModuleBreadcrumbs(()=>[]);const k=e.ref(null),d=e.ref(!1),a=e.ref([]),V=e.ref("importAgendasInput"),A=n=>{d.value=!0,a.value=[n]},N=async()=>{k.value=await v.find(u.agendaCollection)},M=async n=>{if(!c("create-agendas"))return;const t=await v.get(u.agendaCollection,n);if(!t){alert("Agenda not found");return}const l=prompt("Enter name for duplicated agenda",t.serviceName+" (Copy)");if(!l)return;const r={...t,serviceName:l};delete r.id,await v.add(u.agendaCollection,r),await N()},T=async n=>{!c("delete-agendas")||!await b("Are you sure you want to delete this agenda? This action cannot be undone.")||(await v.remove(u.agendaCollection,n),await N())},D=async()=>{let n=k.value.filter(r=>a.value.includes(r.id));n=n.map(r=>{const{id:m,...f}=r;return f});const t="data:text/json;charset=utf-8,"+encodeURIComponent(JSON.stringify(n,null,2)),l=document.createElement("a");l.setAttribute("href",t),l.setAttribute("download","agendas_export.json"),document.body.appendChild(l),l.click(),l.remove(),d.value=!1,a.value=[]},I=async n=>{const t=n.target;if(!t.files||t.files.length===0)return;const r=await t.files[0].text();let m;try{m=JSON.parse(r)}catch{alert("Invalid JSON file");return}if(!Array.isArray(m)){alert("Invalid agendas format");return}for(const f of m)await v.add(u.agendaCollection,f);t.value="",await N()},$=n=>{d.value||(c("edit-agendas")?p(`/edit/${n}`):p(`/edit/${n}/agenda`))};return N(),(n,t)=>{const l=e.resolveComponent("Spinner"),r=e.resolveComponent("EmptyMedia"),m=e.resolveComponent("EmptyTitle"),f=e.resolveComponent("EmptyDescription"),S=e.resolveComponent("EmptyHeader"),i=e.resolveComponent("Button"),j=e.resolveComponent("EmptyContent"),O=e.resolveComponent("Empty"),w=e.resolveComponent("DropdownMenuTrigger"),g=e.resolveComponent("DropdownMenuItem"),_=e.resolveComponent("DropdownMenuGroup"),y=e.resolveComponent("DropdownMenuContent"),B=e.resolveComponent("DropdownMenu"),E=e.resolveComponent("ButtonGroup"),h=e.resolveComponent("Checkbox");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",G,[k.value===null?(e.openBlock(),e.createElementBlock("div",R,[e.createVNode(l,{class:"mx-auto"})])):k.value.length===0?(e.openBlock(),e.createBlock(O,{key:1},{default:e.withCtx(()=>[e.createVNode(S,null,{default:e.withCtx(()=>[e.createVNode(r,{variant:"icon"},{default:e.withCtx(()=>[e.createVNode(e.unref(s.CalendarX),{class:"size-4-6"})]),_:1}),e.createVNode(m,null,{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode("No Agendas Yet",-1)])]),_:1}),e.createVNode(f,null,{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode(" You haven't created any agenda yet. Get started by creating your first agenda. ",-1)])]),_:1})]),_:1}),e.createVNode(j,null,{default:e.withCtx(()=>[e.createElementVNode("div",H,[e.createVNode(i,{onClick:t[0]||(t[0]=o=>e.unref(p)("/create"))},{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode("Create Agenda",-1)])]),_:1})])]),_:1})]),_:1})):(e.openBlock(),e.createElementBlock("div",P,[e.createElementVNode("div",q,[t[9]||(t[9]=e.createElementVNode("h2",{class:"text-2xl font-bold"},"Agendas",-1)),d.value?(e.openBlock(),e.createElementBlock("div",F,[e.createElementVNode("span",J,e.toDisplayString(a.value.length)+" selected",1),e.createVNode(i,{variant:"outline",onClick:t[1]||(t[1]=o=>{d.value=!1,a.value=[]})},{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createTextVNode(" Cancel ",-1)])]),_:1}),e.createVNode(i,{onClick:D,disabled:a.value.length===0},{default:e.withCtx(()=>[...t[8]||(t[8]=[e.createTextVNode(" Export ",-1)])]),_:1},8,["disabled"])])):e.createCommentVNode("",!0)]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,o=>(e.openBlock(),e.createElementBlock("button",{key:o.id,class:e.normalizeClass(["block w-full mb-4 p-4 border rounded-md bg-background",{"cursor-pointer hover:bg-accent focus-visible:outline-0 focus:ring-2 ring-ring/50":d.value}]),onClick:x=>d.value?a.value.includes(o.id)?a.value=a.value.filter(z=>z!==o.id):a.value.push(o.id):null},[e.createElementVNode("div",U,[e.createElementVNode("div",{class:"flex flex-col items-start",onClick:$},[e.createElementVNode("h3",Y,e.toDisplayString(o.serviceName),1),e.createElementVNode("p",K,[o.type==="regular"?(e.openBlock(),e.createElementBlock("span",X,"Regular Agenda")):e.createCommentVNode("",!0)])]),d.value?(e.openBlock(),e.createElementBlock("div",Q,[a.value.includes(o.id)?(e.openBlock(),e.createBlock(h,{key:0,tabindex:"-1",defaultValue:!0})):(e.openBlock(),e.createBlock(h,{key:1,tabindex:"-1",defaultValue:!1}))])):(e.openBlock(),e.createBlock(E,{key:0},{default:e.withCtx(()=>[e.unref(c)("edit-agendas")?(e.openBlock(),e.createBlock(i,{key:0,variant:"outline",onClick:x=>e.unref(p)(`/edit/${o.id}`)},{default:e.withCtx(()=>[...t[10]||(t[10]=[e.createTextVNode(" Edit Agenda ",-1)])]),_:1},8,["onClick"])):(e.openBlock(),e.createBlock(i,{key:1,variant:"outline",onClick:x=>e.unref(p)(`/edit/${o.id}/agenda`)},{default:e.withCtx(()=>[...t[11]||(t[11]=[e.createTextVNode(" View Agenda ",-1)])]),_:1},8,["onClick"])),e.createVNode(B,null,{default:e.withCtx(()=>[e.createVNode(w,{"as-child":""},{default:e.withCtx(()=>[e.createVNode(i,{variant:"outline",size:"icon","aria-label":"More Options"},{default:e.withCtx(()=>[e.createVNode(e.unref(s.MoreHorizontalIcon))]),_:1})]),_:1}),e.createVNode(y,{align:"end",class:"w-52"},{default:e.withCtx(()=>[e.createVNode(_,null,{default:e.withCtx(()=>[e.unref(c)("create-agendas")?(e.openBlock(),e.createBlock(g,{key:0,onClick:x=>M(o.id)},{default:e.withCtx(()=>[e.createVNode(e.unref(s.Copy)),t[12]||(t[12]=e.createTextVNode(" Duplicate Agenda ",-1))]),_:1},8,["onClick"])):e.createCommentVNode("",!0),e.createVNode(g,null,{default:e.withCtx(()=>[e.createVNode(e.unref(s.ChevronsLeftRightEllipsis)),t[13]||(t[13]=e.createTextVNode(" API Set-up ",-1))]),_:1}),e.createVNode(g,{onClick:x=>A(o.id)},{default:e.withCtx(()=>[e.createVNode(e.unref(s.Upload)),t[14]||(t[14]=e.createTextVNode(" Export Agenda ",-1))]),_:1},8,["onClick"]),e.unref(c)("delete-agendas")?(e.openBlock(),e.createBlock(g,{key:1,variant:"destructive",onClick:x=>T(o.id)},{default:e.withCtx(()=>[e.createVNode(e.unref(s.Trash2Icon)),t[15]||(t[15]=e.createTextVNode(" Remove Agenda ",-1))]),_:1},8,["onClick"])):e.createCommentVNode("",!0)]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024))])],10,L))),128)),e.unref(c)("create-agendas")?(e.openBlock(),e.createElementBlock("div",W,[e.createVNode(E,null,{default:e.withCtx(()=>[e.createVNode(i,{onClick:t[2]||(t[2]=o=>e.unref(p)("/create")),class:"border-r"},{default:e.withCtx(()=>[...t[16]||(t[16]=[e.createTextVNode("New Agenda",-1)])]),_:1}),e.createVNode(B,null,{default:e.withCtx(()=>[e.createVNode(w,{"as-child":""},{default:e.withCtx(()=>[e.createVNode(i,{size:"icon","aria-label":"More Options"},{default:e.withCtx(()=>[e.createVNode(e.unref(s.MoreHorizontalIcon))]),_:1})]),_:1}),e.createVNode(y,{align:"end",class:"w-52"},{default:e.withCtx(()=>[e.createVNode(_,null,{default:e.withCtx(()=>[e.createVNode(g,{onClick:t[3]||(t[3]=o=>V.value.click())},{default:e.withCtx(()=>[e.createVNode(e.unref(s.ImportIcon)),t[17]||(t[17]=e.createTextVNode(" Import Agendas... ",-1))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})])):e.createCommentVNode("",!0)]))]),e.createElementVNode("input",{type:"file",ref_key:"importAgendasInput",ref:V,class:"hidden",accept:".json,application/json",onChange:I},null,544)],64)}}});exports.default=Z;
package/dist/index.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@oneclick.dev/cms-kit"),o={name:"Table",description:"Manage tables and structured data.",icon:"mdi-table",version:"1.0.0"},t=e.defineModuleConfig({getItems:{label:"Fetch items",type:"flow"},viewable:{label:"Viewable",type:"checkbox",default:!1},editable:{label:"Editable",type:"checkbox",default:!1},deletable:{label:"Deletable",type:"checkbox",default:!1},addable:{label:"Addable",type:"checkbox",default:!1},searchable:{label:"Searchable",type:"checkbox",default:!1},downloadable:{label:"Downloadable",type:"checkbox",default:!1},allowBulkActions:{label:"Allow Bulk Actions",type:"checkbox",default:!1}}),n=[{path:"",component:()=>Promise.resolve().then(()=>require("./TableView-BqhL_P45.js"))}],i=[],a={component:()=>Promise.resolve().then(()=>require("./index-DFQGVHTs.js")),metadata:o,config:t,routes:n,permissions:i},r={name:"Products",description:"Manage products",icon:"mdi-table",version:"1.0.0"},c=e.defineModuleConfig({project:{label:"Database",type:"resource",accept:["FIREBASE"]},productCollection:{label:"Product Collection",type:"input",default:"products"},collectionsCollection:{label:"Collections Collection",type:"input",default:"public/e-commerce:collections"},allowedMediaSources:{label:"Allowed Media Sources",type:"mediaSource",multiple:!0},defaultUploadMediaSource:{label:"Default Upload Media Source",type:"mediaSource",multiple:!1},previewUrl:{label:"Preview URL",type:"input",default:"https://preview.com/shop/{{slug}}"}}),l=[{path:"",component:()=>Promise.resolve().then(()=>require("./Overview-B-8TLLjh.js"))},{path:"/:productId",component:()=>Promise.resolve().then(()=>require("./Detail-Cxd2VMOl.js"))},{path:"/new",component:()=>Promise.resolve().then(()=>require("./Detail-Cxd2VMOl.js"))}],s=[{key:"create-product",name:"Create product",description:"Team member can create a new product"},{key:"edit-product",name:"Edit product",description:"Team member can edit a product"},{key:"delete-product",name:"Delete product",description:"Team member can delete a product"}],p={component:()=>Promise.resolve().then(()=>require("./index-R2oUDsjx.js")),metadata:r,config:c,routes:l,permissions:s},m={name:"Custom",description:"Custom module",icon:"mdi-table",version:"1.0.0"},d=e.defineModuleConfig({formLayout:{label:"Design View",type:"form"}}),u=[{path:"",component:()=>Promise.resolve().then(()=>require("./View-DfzaVOzS.js"))}],b=[],h={component:()=>Promise.resolve().then(()=>require("./index-CSxYBeVA.js")),metadata:m,config:d,routes:u,permissions:b},g={name:"Promo Codes",description:"Create and manage promo codes",icon:"mdi-table",version:"1.0.0"},f=e.defineModuleConfig({project:{label:"Project",type:"resource",accept:["FIREBASE"]},promoCodeCollection:{label:"Promo Code Collection",type:"input",default:"promo-codes"}}),v=[{path:"",component:()=>Promise.resolve().then(()=>require("./Create-Bh4g6QW4.js"))},{path:"/promo-codes",component:()=>Promise.resolve().then(()=>require("./Find-Ds6OvuH6.js"))},{path:"/promo-codes/:promoCodeId",component:()=>Promise.resolve().then(()=>require("./Detail-CtbWzq-R.js"))}],y=[{key:"create-promo-codes",name:"Create promo codes",description:"Team member can create promo codes"},{key:"view-promo-codes",name:"View promo codes",description:"Team member can view promo codes"},{key:"delete-promo-codes",name:"Delete promo codes",description:"Team member can delete promo codes"}],C={component:()=>Promise.resolve().then(()=>require("./index-CkiNvRzs.js")),metadata:g,config:f,routes:v,permissions:y},P={name:"Product Collections",description:"Manage product collections",icon:"mdi-table",version:"1.0.0"},q=e.defineModuleConfig({project:{label:"Project",type:"resource",accept:["FIREBASE"]},collectionsCollection:{label:"Collections Collection",type:"input",default:"public/e-commerce:collections"},allowedMediaSources:{label:"Allowed Media Sources",type:"mediaSource",multiple:!0},defaultUploadMediaSource:{label:"Default Upload Media Source",type:"mediaSource",multiple:!1}}),$=[{path:"",component:()=>Promise.resolve().then(()=>require("./Overview-T-lsy3UZ.js"))},{path:"/:collectionId",component:()=>Promise.resolve().then(()=>require("./Detail-CnK-qbhE.js"))},{path:"/new",component:()=>Promise.resolve().then(()=>require("./Detail-CnK-qbhE.js"))}],k=[{key:"create-collection",name:"Create product collection",description:"Team member can create a new product collection"},{key:"edit-collection",name:"Edit product collection",description:"Team member can edit a product collection"},{key:"delete-collection",name:"Delete product collection",description:"Team member can delete a product collection"}],M={component:()=>Promise.resolve().then(()=>require("./index-CwqrAU-H.js")),metadata:P,config:q,routes:$,permissions:k},S={name:"Shipping Options",description:"Manage shipping options",icon:"mdi-table",version:"1.0.0"},w=e.defineModuleConfig({project:{label:"Project",type:"resource",accept:["FIREBASE"]},shippingOptionsCollection:{label:"Shipping Options Collection",type:"input",default:"public/e-commerce:shipping-options"}}),T=[{path:"",component:()=>Promise.resolve().then(()=>require("./Overview-BbvfH1u-.js"))},{path:"/:optionId",component:()=>Promise.resolve().then(()=>require("./Detail-BayNaAg9.js"))},{path:"/new",component:()=>Promise.resolve().then(()=>require("./Detail-BayNaAg9.js"))}],E=[{key:"create-option",name:"Create shipping option",description:"Team member can create a new shipping option"},{key:"edit-option",name:"Edit shipping option",description:"Team member can edit a shipping option"},{key:"delete-option",name:"Delete shipping option",description:"Team member can delete a shipping option"}],A={component:()=>Promise.resolve().then(()=>require("./index-Co4ON2Di.js")),metadata:S,config:w,routes:T,permissions:E},x={name:"Content Manager",description:"Create and manage content",icon:"mdi-table",version:"1.0.0"},D=e.defineModuleConfig({project:{label:"Database",type:"resource",accept:["FIREBASE"]},domain:{label:"Domain",type:"input",default:"https://domain.com"},collectionsCollection:{label:"Collections Collection",type:"input",default:"content_collections"},contentCollection:{label:"Content Collection",type:"input",default:"content"},allowedMediaSources:{label:"Allowed Media Sources",type:"mediaSource",multiple:!0},defaultUploadMediaSource:{label:"Default Upload Media Source",type:"mediaSource",multiple:!1},supportedLanguages:{label:"Supported Languages",type:"select",predefinedOptions:"languages",multiple:!0},defaultLanguage:{label:"Default Language",type:"select",predefinedOptions:"languages"}}),I=[{path:"",component:()=>Promise.resolve().then(()=>require("./Overview-CwCAeBnX.js"))},{path:"/collections",component:()=>Promise.resolve().then(()=>require("./Overview-CwCAeBnX.js"))},{path:"/collections/:collectionId",component:()=>Promise.resolve().then(()=>require("./Entries-DlFiZ8EU.js"))},{path:"/collections/:collectionId/:entryId",component:()=>Promise.resolve().then(()=>require("./ContentEditor-DKFCmfOs.js"))},{path:"/components",component:()=>Promise.resolve().then(()=>require("./Components-DXbx0RLV.js"))},{path:"/global-styling",component:()=>Promise.resolve().then(()=>require("./GlobalStyling-CnSlXkZc.js"))}],j=[{key:"create-content",name:"Create content",description:"Team member can create content"},{key:"edit-content",name:"Edit content",description:"Team member can edit content"},{key:"delete-content",name:"Delete content",description:"Team member can delete content"}],B={component:()=>Promise.resolve().then(()=>require("./index-UtjLbLw-.js")),metadata:x,config:D,routes:I,permissions:j},R={name:"Mail Templates",description:"Build templates for your transactional emails.",icon:"mdi-table",version:"1.0.0"},F=e.defineModuleConfig({project:{label:"Project",type:"resource",accept:["FIREBASE"]},templateCollection:{label:"Mail Templates Collection",type:"input",default:"mail-templates"}}),U=[{path:"",component:()=>Promise.resolve().then(()=>require("./Overview-BDlBCUI_.js"))},{path:"/:optionId",component:()=>Promise.resolve().then(()=>require("./Detail-mvSGbnFU.js"))},{path:"/new",component:()=>Promise.resolve().then(()=>require("./Detail-mvSGbnFU.js"))}],L=[{key:"create-template",name:"Create mail template",description:"Team member can create a new mail template"},{key:"edit-template",name:"Edit mail template",description:"Team member can edit a mail template"},{key:"delete-template",name:"Delete mail template",description:"Team member can delete a mail template"}],O={component:()=>Promise.resolve().then(()=>require("./index-Cz-baGax.js")),metadata:R,config:F,routes:U,permissions:L},V={name:"Appointments",description:"Create and manage agendas for booking appointments.",icon:"mdi-table",version:"1.0.0"},_=e.defineModuleConfig({project:{label:"Project",type:"resource",accept:["FIREBASE"]},mailAccount:{label:"Mail account",type:"resource",accept:["GMAIL"]},agendaCollection:{label:"Agenda Collection",type:"input",default:"agendas"},reservationsCollection:{label:"Reservations Collection",type:"input",default:"bookings_orders"},reservedSpotsCollection:{label:"Reserved Spots Collection",type:"input",default:"reserved_spots"}}),G=[{path:"",component:()=>Promise.resolve().then(()=>require("./Overview-B_99j5eA.js"))},{path:"/create",component:()=>Promise.resolve().then(()=>require("./index-D2a6wEPh.js"))},{path:"/create/regular",component:()=>Promise.resolve().then(()=>require("./regular-1LXNPviB.js"))},{path:"/edit/:id",component:()=>Promise.resolve().then(()=>require("./index-DBDq-h4j.js"))},{path:"/edit/:id/agenda",component:()=>Promise.resolve().then(()=>require("./agenda-MjkwV63A.js"))},{path:"/edit/:id/regular-slots",component:()=>Promise.resolve().then(()=>require("./regular-slots-Bs3WJB3U.js"))},{path:"/edit/:id/exceptions",component:()=>Promise.resolve().then(()=>require("./exceptions-C-DPRNQa.js"))},{path:"/edit/:id/availability",component:()=>Promise.resolve().then(()=>require("./availability-BiBbzEIM.js"))},{path:"/edit/:id/payment",component:()=>Promise.resolve().then(()=>require("./payment-BQaAqQ5q.js"))},{path:"/edit/:id/resources",component:()=>Promise.resolve().then(()=>require("./resources-eb0pivDL.js"))},{path:"/edit/:id/orders",component:()=>Promise.resolve().then(()=>require("./orders-D5GJOZXN.js"))}],K=[{key:"create-agendas",name:"Create agendas",description:"Team member can create agendas"},{key:"edit-agendas",name:"Edit agendas",description:"Team member can edit agendas"},{key:"delete-agendas",name:"Delete agendas",description:"Team member can delete agendas"},{key:"manage-reservations",name:"Manage reservations",description:"Team member can create, edit, and delete reservations"}],z={component:()=>Promise.resolve().then(()=>require("./index-9HVlmvK3.js")),metadata:V,config:_,routes:G,permissions:K};exports.appointments=z;exports.contentManager=B;exports.custom=h;exports.mailTemplates=O;exports.productCollections=M;exports.products=p;exports.promoCodes=C;exports.shippingOptions=A;exports.table=a;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@oneclick.dev/cms-kit"),o={name:"Table",description:"Manage tables and structured data.",icon:"mdi-table",version:"1.0.0"},t=e.defineModuleConfig({getItems:{label:"Fetch items",type:"flow"},viewable:{label:"Viewable",type:"checkbox",default:!1},editable:{label:"Editable",type:"checkbox",default:!1},deletable:{label:"Deletable",type:"checkbox",default:!1},addable:{label:"Addable",type:"checkbox",default:!1},searchable:{label:"Searchable",type:"checkbox",default:!1},downloadable:{label:"Downloadable",type:"checkbox",default:!1},allowBulkActions:{label:"Allow Bulk Actions",type:"checkbox",default:!1}}),n=[{path:"",component:()=>Promise.resolve().then(()=>require("./TableView-BqhL_P45.js"))}],i=[],a={component:()=>Promise.resolve().then(()=>require("./index-DFQGVHTs.js")),metadata:o,config:t,routes:n,permissions:i},r={name:"Products",description:"Manage products",icon:"mdi-table",version:"1.0.0"},c=e.defineModuleConfig({project:{label:"Database",type:"resource",accept:["FIREBASE"]},productCollection:{label:"Product Collection",type:"input",default:"products"},collectionsCollection:{label:"Collections Collection",type:"input",default:"public/e-commerce:collections"},allowedMediaSources:{label:"Allowed Media Sources",type:"mediaSource",multiple:!0},defaultUploadMediaSource:{label:"Default Upload Media Source",type:"mediaSource",multiple:!1},previewUrl:{label:"Preview URL",type:"input",default:"https://preview.com/shop/{{slug}}"}}),l=[{path:"",component:()=>Promise.resolve().then(()=>require("./Overview-B-8TLLjh.js"))},{path:"/:productId",component:()=>Promise.resolve().then(()=>require("./Detail-Cxd2VMOl.js"))},{path:"/new",component:()=>Promise.resolve().then(()=>require("./Detail-Cxd2VMOl.js"))}],s=[{key:"create-product",name:"Create product",description:"Team member can create a new product"},{key:"edit-product",name:"Edit product",description:"Team member can edit a product"},{key:"delete-product",name:"Delete product",description:"Team member can delete a product"}],p={component:()=>Promise.resolve().then(()=>require("./index-R2oUDsjx.js")),metadata:r,config:c,routes:l,permissions:s},m={name:"Custom",description:"Custom module",icon:"mdi-table",version:"1.0.0"},d=e.defineModuleConfig({formLayout:{label:"Design View",type:"form"}}),u=[{path:"",component:()=>Promise.resolve().then(()=>require("./View-DfzaVOzS.js"))}],b=[],h={component:()=>Promise.resolve().then(()=>require("./index-CSxYBeVA.js")),metadata:m,config:d,routes:u,permissions:b},g={name:"Promo Codes",description:"Create and manage promo codes",icon:"mdi-table",version:"1.0.0"},f=e.defineModuleConfig({project:{label:"Project",type:"resource",accept:["FIREBASE"]},promoCodeCollection:{label:"Promo Code Collection",type:"input",default:"promo-codes"}}),v=[{path:"",component:()=>Promise.resolve().then(()=>require("./Create-Bh4g6QW4.js"))},{path:"/promo-codes",component:()=>Promise.resolve().then(()=>require("./Find-Ds6OvuH6.js"))},{path:"/promo-codes/:promoCodeId",component:()=>Promise.resolve().then(()=>require("./Detail-CtbWzq-R.js"))}],y=[{key:"create-promo-codes",name:"Create promo codes",description:"Team member can create promo codes"},{key:"view-promo-codes",name:"View promo codes",description:"Team member can view promo codes"},{key:"delete-promo-codes",name:"Delete promo codes",description:"Team member can delete promo codes"}],C={component:()=>Promise.resolve().then(()=>require("./index-CkiNvRzs.js")),metadata:g,config:f,routes:v,permissions:y},P={name:"Product Collections",description:"Manage product collections",icon:"mdi-table",version:"1.0.0"},q=e.defineModuleConfig({project:{label:"Project",type:"resource",accept:["FIREBASE"]},collectionsCollection:{label:"Collections Collection",type:"input",default:"public/e-commerce:collections"},allowedMediaSources:{label:"Allowed Media Sources",type:"mediaSource",multiple:!0},defaultUploadMediaSource:{label:"Default Upload Media Source",type:"mediaSource",multiple:!1}}),$=[{path:"",component:()=>Promise.resolve().then(()=>require("./Overview-T-lsy3UZ.js"))},{path:"/:collectionId",component:()=>Promise.resolve().then(()=>require("./Detail-CnK-qbhE.js"))},{path:"/new",component:()=>Promise.resolve().then(()=>require("./Detail-CnK-qbhE.js"))}],k=[{key:"create-collection",name:"Create product collection",description:"Team member can create a new product collection"},{key:"edit-collection",name:"Edit product collection",description:"Team member can edit a product collection"},{key:"delete-collection",name:"Delete product collection",description:"Team member can delete a product collection"}],M={component:()=>Promise.resolve().then(()=>require("./index-CwqrAU-H.js")),metadata:P,config:q,routes:$,permissions:k},S={name:"Shipping Options",description:"Manage shipping options",icon:"mdi-table",version:"1.0.0"},w=e.defineModuleConfig({project:{label:"Project",type:"resource",accept:["FIREBASE"]},shippingOptionsCollection:{label:"Shipping Options Collection",type:"input",default:"public/e-commerce:shipping-options"}}),T=[{path:"",component:()=>Promise.resolve().then(()=>require("./Overview-BbvfH1u-.js"))},{path:"/:optionId",component:()=>Promise.resolve().then(()=>require("./Detail-BayNaAg9.js"))},{path:"/new",component:()=>Promise.resolve().then(()=>require("./Detail-BayNaAg9.js"))}],E=[{key:"create-option",name:"Create shipping option",description:"Team member can create a new shipping option"},{key:"edit-option",name:"Edit shipping option",description:"Team member can edit a shipping option"},{key:"delete-option",name:"Delete shipping option",description:"Team member can delete a shipping option"}],A={component:()=>Promise.resolve().then(()=>require("./index-Co4ON2Di.js")),metadata:S,config:w,routes:T,permissions:E},x={name:"Content Manager",description:"Create and manage content",icon:"mdi-table",version:"1.0.0"},D=e.defineModuleConfig({project:{label:"Database",type:"resource",accept:["FIREBASE"]},domain:{label:"Domain",type:"input",default:"https://domain.com"},collectionsCollection:{label:"Collections Collection",type:"input",default:"content_collections"},contentCollection:{label:"Content Collection",type:"input",default:"content"},allowedMediaSources:{label:"Allowed Media Sources",type:"mediaSource",multiple:!0},defaultUploadMediaSource:{label:"Default Upload Media Source",type:"mediaSource",multiple:!1},supportedLanguages:{label:"Supported Languages",type:"select",predefinedOptions:"languages",multiple:!0},defaultLanguage:{label:"Default Language",type:"select",predefinedOptions:"languages"}}),I=[{path:"",component:()=>Promise.resolve().then(()=>require("./Overview-CwCAeBnX.js"))},{path:"/collections",component:()=>Promise.resolve().then(()=>require("./Overview-CwCAeBnX.js"))},{path:"/collections/:collectionId",component:()=>Promise.resolve().then(()=>require("./Entries-DlFiZ8EU.js"))},{path:"/collections/:collectionId/:entryId",component:()=>Promise.resolve().then(()=>require("./ContentEditor-DKFCmfOs.js"))},{path:"/components",component:()=>Promise.resolve().then(()=>require("./Components-DXbx0RLV.js"))},{path:"/global-styling",component:()=>Promise.resolve().then(()=>require("./GlobalStyling-CnSlXkZc.js"))}],j=[{key:"create-content",name:"Create content",description:"Team member can create content"},{key:"edit-content",name:"Edit content",description:"Team member can edit content"},{key:"delete-content",name:"Delete content",description:"Team member can delete content"}],B={component:()=>Promise.resolve().then(()=>require("./index-UtjLbLw-.js")),metadata:x,config:D,routes:I,permissions:j},R={name:"Mail Templates",description:"Build templates for your transactional emails.",icon:"mdi-table",version:"1.0.0"},F=e.defineModuleConfig({project:{label:"Project",type:"resource",accept:["FIREBASE"]},templateCollection:{label:"Mail Templates Collection",type:"input",default:"mail-templates"}}),U=[{path:"",component:()=>Promise.resolve().then(()=>require("./Overview-BDlBCUI_.js"))},{path:"/:optionId",component:()=>Promise.resolve().then(()=>require("./Detail-mvSGbnFU.js"))},{path:"/new",component:()=>Promise.resolve().then(()=>require("./Detail-mvSGbnFU.js"))}],L=[{key:"create-template",name:"Create mail template",description:"Team member can create a new mail template"},{key:"edit-template",name:"Edit mail template",description:"Team member can edit a mail template"},{key:"delete-template",name:"Delete mail template",description:"Team member can delete a mail template"}],O={component:()=>Promise.resolve().then(()=>require("./index-Cz-baGax.js")),metadata:R,config:F,routes:U,permissions:L},V={name:"Appointments",description:"Create and manage agendas for booking appointments.",icon:"mdi-table",version:"1.0.0"},_=e.defineModuleConfig({project:{label:"Project",type:"resource",accept:["FIREBASE"]},mailAccount:{label:"Mail account",type:"resource",accept:["GMAIL"]},agendaCollection:{label:"Agenda Collection",type:"input",default:"agendas"},reservationsCollection:{label:"Reservations Collection",type:"input",default:"bookings_orders"},reservedSpotsCollection:{label:"Reserved Spots Collection",type:"input",default:"reserved_spots"}}),G=[{path:"",component:()=>Promise.resolve().then(()=>require("./Overview-qP1guKjx.js"))},{path:"/create",component:()=>Promise.resolve().then(()=>require("./index-D2a6wEPh.js"))},{path:"/create/regular",component:()=>Promise.resolve().then(()=>require("./regular-1LXNPviB.js"))},{path:"/edit/:id",component:()=>Promise.resolve().then(()=>require("./index-DBDq-h4j.js"))},{path:"/edit/:id/agenda",component:()=>Promise.resolve().then(()=>require("./agenda-MjkwV63A.js"))},{path:"/edit/:id/regular-slots",component:()=>Promise.resolve().then(()=>require("./regular-slots-Bs3WJB3U.js"))},{path:"/edit/:id/exceptions",component:()=>Promise.resolve().then(()=>require("./exceptions-C-DPRNQa.js"))},{path:"/edit/:id/availability",component:()=>Promise.resolve().then(()=>require("./availability-BiBbzEIM.js"))},{path:"/edit/:id/payment",component:()=>Promise.resolve().then(()=>require("./payment-BQaAqQ5q.js"))},{path:"/edit/:id/resources",component:()=>Promise.resolve().then(()=>require("./resources-eb0pivDL.js"))},{path:"/edit/:id/orders",component:()=>Promise.resolve().then(()=>require("./orders-D5GJOZXN.js"))}],K=[{key:"create-agendas",name:"Create agendas",description:"Team member can create agendas"},{key:"edit-agendas",name:"Edit agendas",description:"Team member can edit agendas"},{key:"delete-agendas",name:"Delete agendas",description:"Team member can delete agendas"},{key:"manage-reservations",name:"Manage reservations",description:"Team member can create, edit, and delete reservations"}],z={component:()=>Promise.resolve().then(()=>require("./index-9HVlmvK3.js")),metadata:V,config:_,routes:G,permissions:K};exports.appointments=z;exports.contentManager=B;exports.custom=h;exports.mailTemplates=O;exports.productCollections=M;exports.products=p;exports.promoCodes=C;exports.shippingOptions=A;exports.table=a;
package/dist/index.mjs CHANGED
@@ -346,7 +346,7 @@ const t = {
346
346
  default: "reserved_spots"
347
347
  }
348
348
  }), R = [
349
- { path: "", component: () => import("./Overview-DtWvKB3W.mjs") },
349
+ { path: "", component: () => import("./Overview-DiBYtvEX.mjs") },
350
350
  { path: "/create", component: () => import("./index-CABh6Qn6.mjs") },
351
351
  { path: "/create/regular", component: () => import("./regular-_05oq5Tx.mjs") },
352
352
  // { path: '/create/full-day', component: () => import('./pages/create/full-day.vue') },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneclick.dev/cms-core-modules",
3
- "version": "0.0.62",
3
+ "version": "0.0.63",
4
4
  "main": "dist/index.cjs.js",
5
5
  "module": "dist/index.mjs",
6
6
  "types": "dist/index.d.ts",
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),f=require("@oneclick.dev/cms-kit"),i=require("lucide-vue-next"),z={class:"container mx-auto p-8"},G={key:0},R={class:"flex gap-2"},H={key:2},P={class:"flex justify-between items-center gap-4 mb-4"},q={key:0,class:"flex items-center gap-2"},F={class:"mr-2"},J=["onClick"],L={class:"flex justify-between items-center mb-2"},U={class:"flex flex-col items-start"},Y={class:"text-lg font-medium"},K={class:"text-sm text-muted-foreground"},X={key:0},Q={key:1},W={key:0,class:"flex justify-end mt-8"},Z=e.defineComponent({__name:"Overview",setup(ee){const{config:c}=f.useModule(),C=f.useFirebaseIntegration(c.project),{navigateTo:x}=f.useModuleRoute(),{confirm:b}=f.useConfirmation(),{hasPermission:u}=f.useModulePermissions();f.useModuleBreadcrumbs(()=>[]);const v=e.ref(null),s=e.ref(!1),a=e.ref([]),V=e.ref("importAgendasInput"),A=n=>{s.value=!0,a.value=[n]},N=async()=>{v.value=await C.find(c.agendaCollection)},M=async n=>{if(!u("create-agendas"))return;const t=await C.get(c.agendaCollection,n);if(!t){alert("Agenda not found");return}const r=prompt("Enter name for duplicated agenda",t.serviceName+" (Copy)");if(!r)return;const l={...t,serviceName:r};delete l.id,await C.add(c.agendaCollection,l),await N()},T=async n=>{!u("delete-agendas")||!await b("Are you sure you want to delete this agenda? This action cannot be undone.")||(await C.remove(c.agendaCollection,n),await N())},I=async()=>{let n=v.value.filter(l=>a.value.includes(l.id));n=n.map(l=>{const{id:p,...m}=l;return m});const t="data:text/json;charset=utf-8,"+encodeURIComponent(JSON.stringify(n,null,2)),r=document.createElement("a");r.setAttribute("href",t),r.setAttribute("download","agendas_export.json"),document.body.appendChild(r),r.click(),r.remove(),s.value=!1,a.value=[]},D=async n=>{const t=n.target;if(!t.files||t.files.length===0)return;const l=await t.files[0].text();let p;try{p=JSON.parse(l)}catch{alert("Invalid JSON file");return}if(!Array.isArray(p)){alert("Invalid agendas format");return}for(const m of p)await C.add(c.agendaCollection,m);t.value="",await N()};return N(),(n,t)=>{const r=e.resolveComponent("Spinner"),l=e.resolveComponent("EmptyMedia"),p=e.resolveComponent("EmptyTitle"),m=e.resolveComponent("EmptyDescription"),$=e.resolveComponent("EmptyHeader"),d=e.resolveComponent("Button"),S=e.resolveComponent("EmptyContent"),j=e.resolveComponent("Empty"),_=e.resolveComponent("DropdownMenuTrigger"),g=e.resolveComponent("DropdownMenuItem"),w=e.resolveComponent("DropdownMenuGroup"),y=e.resolveComponent("DropdownMenuContent"),B=e.resolveComponent("DropdownMenu"),E=e.resolveComponent("ButtonGroup"),h=e.resolveComponent("Checkbox");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",z,[v.value===null?(e.openBlock(),e.createElementBlock("div",G,[e.createVNode(r,{class:"mx-auto"})])):v.value.length===0?(e.openBlock(),e.createBlock(j,{key:1},{default:e.withCtx(()=>[e.createVNode($,null,{default:e.withCtx(()=>[e.createVNode(l,{variant:"icon"},{default:e.withCtx(()=>[e.createVNode(e.unref(i.CalendarX),{class:"size-4-6"})]),_:1}),e.createVNode(p,null,{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode("No Agendas Yet",-1)])]),_:1}),e.createVNode(m,null,{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode(" You haven't created any agenda yet. Get started by creating your first agenda. ",-1)])]),_:1})]),_:1}),e.createVNode(S,null,{default:e.withCtx(()=>[e.createElementVNode("div",R,[e.createVNode(d,{onClick:t[0]||(t[0]=o=>e.unref(x)("/create"))},{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode("Create Agenda",-1)])]),_:1})])]),_:1})]),_:1})):(e.openBlock(),e.createElementBlock("div",H,[e.createElementVNode("div",P,[t[9]||(t[9]=e.createElementVNode("h2",{class:"text-2xl font-bold"},"Agendas",-1)),s.value?(e.openBlock(),e.createElementBlock("div",q,[e.createElementVNode("span",F,e.toDisplayString(a.value.length)+" selected",1),e.createVNode(d,{variant:"outline",onClick:t[1]||(t[1]=o=>{s.value=!1,a.value=[]})},{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createTextVNode(" Cancel ",-1)])]),_:1}),e.createVNode(d,{onClick:I,disabled:a.value.length===0},{default:e.withCtx(()=>[...t[8]||(t[8]=[e.createTextVNode(" Export ",-1)])]),_:1},8,["disabled"])])):e.createCommentVNode("",!0)]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,o=>(e.openBlock(),e.createElementBlock("button",{key:o.id,class:e.normalizeClass(["block w-full mb-4 p-4 border rounded-md bg-background",{"cursor-pointer hover:bg-accent focus-visible:outline-0 focus:ring-2 ring-ring/50":s.value}]),onClick:k=>s.value?a.value.includes(o.id)?a.value=a.value.filter(O=>O!==o.id):a.value.push(o.id):null},[e.createElementVNode("div",L,[e.createElementVNode("div",U,[e.createElementVNode("h3",Y,e.toDisplayString(o.serviceName),1),e.createElementVNode("p",K,[o.type==="regular"?(e.openBlock(),e.createElementBlock("span",X,"Regular Agenda")):e.createCommentVNode("",!0)])]),s.value?(e.openBlock(),e.createElementBlock("div",Q,[a.value.includes(o.id)?(e.openBlock(),e.createBlock(h,{key:0,tabindex:"-1",defaultValue:!0})):(e.openBlock(),e.createBlock(h,{key:1,tabindex:"-1",defaultValue:!1}))])):(e.openBlock(),e.createBlock(E,{key:0},{default:e.withCtx(()=>[e.unref(u)("edit-agendas")?(e.openBlock(),e.createBlock(d,{key:0,variant:"outline",onClick:k=>e.unref(x)(`/edit/${o.id}`)},{default:e.withCtx(()=>[...t[10]||(t[10]=[e.createTextVNode(" Edit Agenda ",-1)])]),_:1},8,["onClick"])):(e.openBlock(),e.createBlock(d,{key:1,variant:"outline",onClick:k=>e.unref(x)(`/edit/${o.id}/agenda`)},{default:e.withCtx(()=>[...t[11]||(t[11]=[e.createTextVNode(" View Agenda ",-1)])]),_:1},8,["onClick"])),e.createVNode(B,null,{default:e.withCtx(()=>[e.createVNode(_,{"as-child":""},{default:e.withCtx(()=>[e.createVNode(d,{variant:"outline",size:"icon","aria-label":"More Options"},{default:e.withCtx(()=>[e.createVNode(e.unref(i.MoreHorizontalIcon))]),_:1})]),_:1}),e.createVNode(y,{align:"end",class:"w-52"},{default:e.withCtx(()=>[e.createVNode(w,null,{default:e.withCtx(()=>[e.unref(u)("create-agendas")?(e.openBlock(),e.createBlock(g,{key:0,onClick:k=>M(o.id)},{default:e.withCtx(()=>[e.createVNode(e.unref(i.Copy)),t[12]||(t[12]=e.createTextVNode(" Duplicate Agenda ",-1))]),_:1},8,["onClick"])):e.createCommentVNode("",!0),e.createVNode(g,null,{default:e.withCtx(()=>[e.createVNode(e.unref(i.ChevronsLeftRightEllipsis)),t[13]||(t[13]=e.createTextVNode(" API Set-up ",-1))]),_:1}),e.createVNode(g,{onClick:k=>A(o.id)},{default:e.withCtx(()=>[e.createVNode(e.unref(i.Upload)),t[14]||(t[14]=e.createTextVNode(" Export Agenda ",-1))]),_:1},8,["onClick"]),e.unref(u)("delete-agendas")?(e.openBlock(),e.createBlock(g,{key:1,variant:"destructive",onClick:k=>T(o.id)},{default:e.withCtx(()=>[e.createVNode(e.unref(i.Trash2Icon)),t[15]||(t[15]=e.createTextVNode(" Remove Agenda ",-1))]),_:1},8,["onClick"])):e.createCommentVNode("",!0)]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024))])],10,J))),128)),e.unref(u)("create-agendas")?(e.openBlock(),e.createElementBlock("div",W,[e.createVNode(E,null,{default:e.withCtx(()=>[e.createVNode(d,{onClick:t[2]||(t[2]=o=>e.unref(x)("/create")),class:"border-r"},{default:e.withCtx(()=>[...t[16]||(t[16]=[e.createTextVNode("New Agenda",-1)])]),_:1}),e.createVNode(B,null,{default:e.withCtx(()=>[e.createVNode(_,{"as-child":""},{default:e.withCtx(()=>[e.createVNode(d,{size:"icon","aria-label":"More Options"},{default:e.withCtx(()=>[e.createVNode(e.unref(i.MoreHorizontalIcon))]),_:1})]),_:1}),e.createVNode(y,{align:"end",class:"w-52"},{default:e.withCtx(()=>[e.createVNode(w,null,{default:e.withCtx(()=>[e.createVNode(g,{onClick:t[3]||(t[3]=o=>V.value.click())},{default:e.withCtx(()=>[e.createVNode(e.unref(i.ImportIcon)),t[17]||(t[17]=e.createTextVNode(" Import Agendas... ",-1))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})])):e.createCommentVNode("",!0)]))]),e.createElementVNode("input",{type:"file",ref_key:"importAgendasInput",ref:V,class:"hidden",accept:".json,application/json",onChange:D},null,544)],64)}}});exports.default=Z;