@oneclick.dev/cms-core-modules 0.0.102 → 0.0.104

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 (102) hide show
  1. package/dist/AgendaOpeningHoursCard-B7ROIPWw.js +1 -0
  2. package/dist/AgendaOpeningHoursCard-Cp4wxUeK.mjs +172 -0
  3. package/dist/AppointmentListTable-DZJNmTMb.mjs +177 -0
  4. package/dist/AppointmentListTable-Dieu9US_.js +1 -0
  5. package/dist/{ContentEditor-Cjqgb64R.mjs → ContentEditor-B1nfKG_5.mjs} +706 -677
  6. package/dist/{ContentEditor-YgOS3kxS.js → ContentEditor-DdFU8piH.js} +15 -16
  7. package/dist/{Create-6uT9HWar.mjs → Create-BRBh0xjM.mjs} +2 -2
  8. package/dist/{Create-DuZ5nZrX.js → Create-qPeQxkdl.js} +1 -1
  9. package/dist/{DateFormatter-2B0R-DY4.mjs → DateFormatter-Bw-87W31.mjs} +212 -227
  10. package/dist/DateFormatter-CYAD4GBN.js +1 -0
  11. package/dist/{Detail-BZ-iE9vf.js → Detail-C857g62L.js} +1 -1
  12. package/dist/{Detail-CJVMJDP7.mjs → Detail-CujdFApD.mjs} +2 -2
  13. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-DWMqQvHl.mjs +76 -0
  14. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-kpjbVSXg.js +1 -0
  15. package/dist/{Entries-DkRhOt95.js → Entries-BaS6H6ak.js} +1 -1
  16. package/dist/{Entries-dLlCrXXe.mjs → Entries-C8UJkrVC.mjs} +1 -1
  17. package/dist/{Find-Bd1uLqSa.mjs → Find-B24ZEhYM.mjs} +1 -1
  18. package/dist/{NewReservationDialog.vue_vue_type_script_setup_true_lang-Bc946oSc.mjs → NewReservationDialog.vue_vue_type_script_setup_true_lang-9Q7TMm4u.mjs} +37 -37
  19. package/dist/{NewReservationDialog.vue_vue_type_script_setup_true_lang-CqERfyYb.js → NewReservationDialog.vue_vue_type_script_setup_true_lang-DiNzGl-q.js} +1 -1
  20. package/dist/{Overview-DoOASlNz.mjs → Overview-3HWhsqaz.mjs} +2 -2
  21. package/dist/{Overview-37nilXzE.js → Overview-CpHhuiaV.js} +1 -1
  22. package/dist/{Overview-DeQQ0FY3.js → Overview-DAxCu9XC.js} +1 -1
  23. package/dist/{Overview-C--dq51X.mjs → Overview-D_T3K6aq.mjs} +1 -1
  24. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-Cz_22Oce.mjs +2927 -0
  25. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-DPPNc-Z5.js +349 -0
  26. package/dist/TableView-CPAw3h8g.js +4 -0
  27. package/dist/TableView-DXmEF6pY.mjs +6143 -0
  28. package/dist/agenda-BNG05SAq.js +1 -0
  29. package/dist/agenda-D1RxMxBS.mjs +1152 -0
  30. package/dist/availability-CMrRa5y2.mjs +269 -0
  31. package/dist/availability-Cf2YfMwM.js +1 -0
  32. package/dist/booking-data-DgJd0BcM.mjs +889 -0
  33. package/dist/booking-data-Di5GmH_8.js +1 -0
  34. package/dist/cms-core-modules.css +1 -1
  35. package/dist/{exceptions-Bp5BSvxO.js → exceptions-CI0B4xVj.js} +1 -1
  36. package/dist/{exceptions-C97cNZYl.mjs → exceptions-vo8SA5SE.mjs} +68 -68
  37. package/dist/index-BtujSJeg.js +35 -0
  38. package/dist/{index-CrGjxSwa.mjs → index-CrgzoTyR.mjs} +1 -1
  39. package/dist/{index-D2a6wEPh.js → index-DPd3waTN.js} +1 -1
  40. package/dist/{index-CABh6Qn6.mjs → index-DrXxXB2F.mjs} +15 -15
  41. package/dist/{index-B-lVEpFX.mjs → index-MYWjg0zi.mjs} +3 -3
  42. package/dist/index-dOdMm1pV.mjs +1105 -0
  43. package/dist/index.cjs.js +1 -1
  44. package/dist/index.mjs +196 -143
  45. package/dist/interpolation-DEDSLETn.mjs +128 -0
  46. package/dist/interpolation-DERg6Lwt.js +1 -0
  47. package/dist/orders-CzzcFQha.mjs +559 -0
  48. package/dist/orders-ETtbA4aQ.js +1 -0
  49. package/dist/{payment-Bosr0m3u.mjs → payment-C3ohkehF.mjs} +1 -1
  50. package/dist/{payment-DDnC03jb.js → payment-Dfr-Ro-a.js} +1 -1
  51. package/dist/{resources-BtF5RUUq.js → resources-CxeFd57z.js} +1 -1
  52. package/dist/{resources-B7qDBC91.mjs → resources-WI_4SO6T.mjs} +2 -2
  53. package/dist/server-handlers.cjs.js +1 -1
  54. package/dist/server-handlers.mjs +457 -387
  55. package/dist/src/appointments/chat-components/AgendaOpeningHoursCard.vue.d.ts +15 -0
  56. package/dist/src/appointments/components/edit/CustomerInformationFieldEditorDialog.vue.d.ts +17 -5
  57. package/dist/src/appointments/components/edit/EventDialog/BookingsList.vue.d.ts +8 -3
  58. package/dist/src/appointments/components/edit/EventDialog/EventDialog.vue.d.ts +1 -0
  59. package/dist/src/appointments/components/edit/EventDialog/ReservationDetailDialog.vue.d.ts +6 -3
  60. package/dist/src/appointments/components/edit/EventTimeline.vue.d.ts +3 -0
  61. package/dist/src/appointments/components/edit/EventView.vue.d.ts +6 -1
  62. package/dist/src/appointments/components/edit/MetadataSchemaEditorDialog.vue.d.ts +12 -0
  63. package/dist/src/appointments/components/edit/OrderMetadataDisplay.vue.d.ts +21 -0
  64. package/dist/src/appointments/components/edit/dashboard/BookingsList.vue.d.ts +8 -3
  65. package/dist/src/appointments/index.d.ts +53 -0
  66. package/dist/src/appointments/pages/edit/agenda.vue.d.ts +3 -1
  67. package/dist/src/appointments/pages/edit/availability.vue.d.ts +1 -26
  68. package/dist/src/appointments/pages/edit/booking-data.vue.d.ts +65 -0
  69. package/dist/src/appointments/pages/edit/orders.vue.d.ts +7 -3
  70. package/dist/src/appointments/tools.d.ts +52 -0
  71. package/dist/src/appointments/types.d.ts +12 -0
  72. package/dist/src/table/config.d.ts +200 -0
  73. package/dist/src/table/get_data_flow-DEFAULT.json.d.ts +129 -0
  74. package/dist/src/table/index.d.ts +200 -0
  75. package/dist/utils-CanmrIWO.mjs +47 -0
  76. package/dist/utils-Yd6F5mea.js +3 -0
  77. package/package.json +2 -2
  78. package/src/appointments/tools.ts +38 -0
  79. package/dist/AppointmentListTable-CQ0WIXtj.js +0 -1
  80. package/dist/AppointmentListTable-aV_UJd6j.mjs +0 -159
  81. package/dist/DateFormatter-DbtOLV0L.js +0 -1
  82. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-DXa-Xxue.mjs +0 -74
  83. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-ozYrxb2g.js +0 -1
  84. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-CL5kbDII.mjs +0 -2782
  85. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-DcyyNvf6.js +0 -349
  86. package/dist/TableView-CIJs118q.mjs +0 -5929
  87. package/dist/TableView-DzZYf34i.js +0 -4
  88. package/dist/agenda-CCOjPiwP.mjs +0 -1133
  89. package/dist/agenda-CNPQfaIQ.js +0 -1
  90. package/dist/availability-B1D4Fyzi.mjs +0 -629
  91. package/dist/availability-DxrUcYbW.js +0 -1
  92. package/dist/index-BOnqrBfY.js +0 -35
  93. package/dist/index-Bj0qaL1N.mjs +0 -1091
  94. package/dist/interpolation-BBwG_ON6.mjs +0 -65
  95. package/dist/interpolation-CsOrww73.js +0 -1
  96. package/dist/orders-BJV5vRQr.mjs +0 -397
  97. package/dist/orders-C1C5IEIP.js +0 -1
  98. package/dist/regular-slots-Cc1jmKuC.mjs +0 -222
  99. package/dist/regular-slots-DBs1XVeN.js +0 -1
  100. package/dist/src/appointments/pages/edit/regular-slots.vue.d.ts +0 -2
  101. package/dist/utils-BVKy9S2J.mjs +0 -29
  102. package/dist/utils-D6CaKJbp.js +0 -2
@@ -3,6 +3,106 @@ export declare const config: {
3
3
  readonly getItems: {
4
4
  readonly label: "Fetch items";
5
5
  readonly type: "flow";
6
+ readonly default: {
7
+ zoom: number;
8
+ edges: {
9
+ id: string;
10
+ data: {
11
+ sourceHandle: string;
12
+ };
13
+ type: string;
14
+ label: string;
15
+ source: string;
16
+ target: string;
17
+ sourceX: number;
18
+ sourceY: number;
19
+ targetX: number;
20
+ targetY: number;
21
+ animated: boolean;
22
+ sourceHandle: string;
23
+ }[];
24
+ nodes: ({
25
+ id: string;
26
+ data: {
27
+ toolbarVisible: boolean;
28
+ action?: undefined;
29
+ transform?: undefined;
30
+ returnData?: undefined;
31
+ title?: undefined;
32
+ message?: undefined;
33
+ };
34
+ type: string;
35
+ position: {
36
+ x: number;
37
+ y: number;
38
+ };
39
+ initialized: boolean;
40
+ } | {
41
+ id: string;
42
+ data: {
43
+ action: {
44
+ actionType: string;
45
+ integration: string;
46
+ serviceType: string;
47
+ integrationType: string;
48
+ actionTypeConfig: {
49
+ resource: string;
50
+ };
51
+ };
52
+ toolbarVisible: boolean;
53
+ transform?: undefined;
54
+ returnData?: undefined;
55
+ title?: undefined;
56
+ message?: undefined;
57
+ };
58
+ type: string;
59
+ position: {
60
+ x: number;
61
+ y: number;
62
+ };
63
+ initialized: boolean;
64
+ } | {
65
+ id: string;
66
+ data: {
67
+ transform: string;
68
+ returnData: boolean;
69
+ toolbarVisible: boolean;
70
+ action?: undefined;
71
+ title?: undefined;
72
+ message?: undefined;
73
+ };
74
+ type: string;
75
+ position: {
76
+ x: number;
77
+ y: number;
78
+ };
79
+ initialized: boolean;
80
+ } | {
81
+ id: string;
82
+ data: {
83
+ title: string;
84
+ message: string;
85
+ toolbarVisible: boolean;
86
+ action?: undefined;
87
+ transform?: undefined;
88
+ returnData?: undefined;
89
+ };
90
+ type: string;
91
+ position: {
92
+ x: number;
93
+ y: number;
94
+ };
95
+ initialized: boolean;
96
+ })[];
97
+ position: number[];
98
+ viewport: {
99
+ x: number;
100
+ y: number;
101
+ zoom: number;
102
+ };
103
+ variables: never[];
104
+ computedVariables: never[];
105
+ };
6
106
  };
7
107
  readonly viewable: {
8
108
  readonly label: "Viewable";
@@ -43,6 +143,106 @@ export declare const config: {
43
143
  readonly getItems: {
44
144
  readonly label: "Fetch items";
45
145
  readonly type: "flow";
146
+ readonly default: {
147
+ zoom: number;
148
+ edges: {
149
+ id: string;
150
+ data: {
151
+ sourceHandle: string;
152
+ };
153
+ type: string;
154
+ label: string;
155
+ source: string;
156
+ target: string;
157
+ sourceX: number;
158
+ sourceY: number;
159
+ targetX: number;
160
+ targetY: number;
161
+ animated: boolean;
162
+ sourceHandle: string;
163
+ }[];
164
+ nodes: ({
165
+ id: string;
166
+ data: {
167
+ toolbarVisible: boolean;
168
+ action?: undefined;
169
+ transform?: undefined;
170
+ returnData?: undefined;
171
+ title?: undefined;
172
+ message?: undefined;
173
+ };
174
+ type: string;
175
+ position: {
176
+ x: number;
177
+ y: number;
178
+ };
179
+ initialized: boolean;
180
+ } | {
181
+ id: string;
182
+ data: {
183
+ action: {
184
+ actionType: string;
185
+ integration: string;
186
+ serviceType: string;
187
+ integrationType: string;
188
+ actionTypeConfig: {
189
+ resource: string;
190
+ };
191
+ };
192
+ toolbarVisible: boolean;
193
+ transform?: undefined;
194
+ returnData?: undefined;
195
+ title?: undefined;
196
+ message?: undefined;
197
+ };
198
+ type: string;
199
+ position: {
200
+ x: number;
201
+ y: number;
202
+ };
203
+ initialized: boolean;
204
+ } | {
205
+ id: string;
206
+ data: {
207
+ transform: string;
208
+ returnData: boolean;
209
+ toolbarVisible: boolean;
210
+ action?: undefined;
211
+ title?: undefined;
212
+ message?: undefined;
213
+ };
214
+ type: string;
215
+ position: {
216
+ x: number;
217
+ y: number;
218
+ };
219
+ initialized: boolean;
220
+ } | {
221
+ id: string;
222
+ data: {
223
+ title: string;
224
+ message: string;
225
+ toolbarVisible: boolean;
226
+ action?: undefined;
227
+ transform?: undefined;
228
+ returnData?: undefined;
229
+ };
230
+ type: string;
231
+ position: {
232
+ x: number;
233
+ y: number;
234
+ };
235
+ initialized: boolean;
236
+ })[];
237
+ position: number[];
238
+ viewport: {
239
+ x: number;
240
+ y: number;
241
+ zoom: number;
242
+ };
243
+ variables: never[];
244
+ computedVariables: never[];
245
+ };
46
246
  };
47
247
  readonly viewable: {
48
248
  readonly label: "Viewable";
@@ -0,0 +1,129 @@
1
+ declare const _default: {
2
+ "zoom": 1,
3
+ "edges": [
4
+ {
5
+ "id": "eSTART->a9fd0718-6d7f-49f7-b9fd-78a00a556e70",
6
+ "data": {
7
+ "sourceHandle": "success"
8
+ },
9
+ "type": "data",
10
+ "label": "",
11
+ "source": "START",
12
+ "target": "a9fd0718-6d7f-49f7-b9fd-78a00a556e70",
13
+ "sourceX": 57.2578125,
14
+ "sourceY": 174.625,
15
+ "targetX": 148,
16
+ "targetY": 175,
17
+ "animated": true,
18
+ "sourceHandle": "success"
19
+ },
20
+ {
21
+ "id": "ea9fd0718-6d7f-49f7-b9fd-78a00a556e70->f6ae5285-bb90-4e94-bf49-307d28fd4d29",
22
+ "data": {
23
+ "sourceHandle": "success"
24
+ },
25
+ "type": "data",
26
+ "label": "",
27
+ "source": "a9fd0718-6d7f-49f7-b9fd-78a00a556e70",
28
+ "target": "f6ae5285-bb90-4e94-bf49-307d28fd4d29",
29
+ "sourceX": 399.890625,
30
+ "sourceY": 165.3984375,
31
+ "targetX": 619,
32
+ "targetY": 165.5,
33
+ "animated": true,
34
+ "sourceHandle": "success"
35
+ },
36
+ {
37
+ "id": "ea9fd0718-6d7f-49f7-b9fd-78a00a556e70->11aa689a-ba59-4332-8066-29e7902c978e",
38
+ "data": {
39
+ "sourceHandle": "error"
40
+ },
41
+ "type": "data",
42
+ "label": "",
43
+ "source": "a9fd0718-6d7f-49f7-b9fd-78a00a556e70",
44
+ "target": "11aa689a-ba59-4332-8066-29e7902c978e",
45
+ "sourceX": 399.890625,
46
+ "sourceY": 184.59375,
47
+ "targetX": 596,
48
+ "targetY": 255,
49
+ "animated": true,
50
+ "sourceHandle": "error"
51
+ }
52
+ ],
53
+ "nodes": [
54
+ {
55
+ "id": "START",
56
+ "data": {
57
+ "toolbarVisible": false
58
+ },
59
+ "type": "start",
60
+ "position": {
61
+ "x": -30,
62
+ "y": 132
63
+ },
64
+ "initialized": false
65
+ },
66
+ {
67
+ "id": "a9fd0718-6d7f-49f7-b9fd-78a00a556e70",
68
+ "data": {
69
+ "action": {
70
+ "actionType": "queryFirestore",
71
+ "integration": "c155dd0f-49ef-4191-aa40-dfca76515746",
72
+ "serviceType": "firestore",
73
+ "integrationType": "FIREBASE",
74
+ "actionTypeConfig": {
75
+ "resource": ""
76
+ }
77
+ },
78
+ "toolbarVisible": false
79
+ },
80
+ "type": "integration-action",
81
+ "position": {
82
+ "x": 150,
83
+ "y": 150
84
+ },
85
+ "initialized": false
86
+ },
87
+ {
88
+ "id": "f6ae5285-bb90-4e94-bf49-307d28fd4d29",
89
+ "data": {
90
+ "transform": "return result.data",
91
+ "returnData": true,
92
+ "toolbarVisible": false
93
+ },
94
+ "type": "finish-flow",
95
+ "position": {
96
+ "x": 621,
97
+ "y": 123
98
+ },
99
+ "initialized": false
100
+ },
101
+ {
102
+ "id": "11aa689a-ba59-4332-8066-29e7902c978e",
103
+ "data": {
104
+ "title": "Oops!",
105
+ "message": "Something went wrong",
106
+ "toolbarVisible": false
107
+ },
108
+ "type": "show-toast",
109
+ "position": {
110
+ "x": 598,
111
+ "y": 230
112
+ },
113
+ "initialized": false
114
+ }
115
+ ],
116
+ "position": [
117
+ 534.5,
118
+ 140.5
119
+ ],
120
+ "viewport": {
121
+ "x": 534.5,
122
+ "y": 140.5,
123
+ "zoom": 1
124
+ },
125
+ "variables": [],
126
+ "computedVariables": []
127
+ };
128
+
129
+ export default _default;
@@ -5,6 +5,106 @@ declare const _default: {
5
5
  readonly getItems: {
6
6
  readonly label: "Fetch items";
7
7
  readonly type: "flow";
8
+ readonly default: {
9
+ zoom: number;
10
+ edges: {
11
+ id: string;
12
+ data: {
13
+ sourceHandle: string;
14
+ };
15
+ type: string;
16
+ label: string;
17
+ source: string;
18
+ target: string;
19
+ sourceX: number;
20
+ sourceY: number;
21
+ targetX: number;
22
+ targetY: number;
23
+ animated: boolean;
24
+ sourceHandle: string;
25
+ }[];
26
+ nodes: ({
27
+ id: string;
28
+ data: {
29
+ toolbarVisible: boolean;
30
+ action?: undefined;
31
+ transform?: undefined;
32
+ returnData?: undefined;
33
+ title?: undefined;
34
+ message?: undefined;
35
+ };
36
+ type: string;
37
+ position: {
38
+ x: number;
39
+ y: number;
40
+ };
41
+ initialized: boolean;
42
+ } | {
43
+ id: string;
44
+ data: {
45
+ action: {
46
+ actionType: string;
47
+ integration: string;
48
+ serviceType: string;
49
+ integrationType: string;
50
+ actionTypeConfig: {
51
+ resource: string;
52
+ };
53
+ };
54
+ toolbarVisible: boolean;
55
+ transform?: undefined;
56
+ returnData?: undefined;
57
+ title?: undefined;
58
+ message?: undefined;
59
+ };
60
+ type: string;
61
+ position: {
62
+ x: number;
63
+ y: number;
64
+ };
65
+ initialized: boolean;
66
+ } | {
67
+ id: string;
68
+ data: {
69
+ transform: string;
70
+ returnData: boolean;
71
+ toolbarVisible: boolean;
72
+ action?: undefined;
73
+ title?: undefined;
74
+ message?: undefined;
75
+ };
76
+ type: string;
77
+ position: {
78
+ x: number;
79
+ y: number;
80
+ };
81
+ initialized: boolean;
82
+ } | {
83
+ id: string;
84
+ data: {
85
+ title: string;
86
+ message: string;
87
+ toolbarVisible: boolean;
88
+ action?: undefined;
89
+ transform?: undefined;
90
+ returnData?: undefined;
91
+ };
92
+ type: string;
93
+ position: {
94
+ x: number;
95
+ y: number;
96
+ };
97
+ initialized: boolean;
98
+ })[];
99
+ position: number[];
100
+ viewport: {
101
+ x: number;
102
+ y: number;
103
+ zoom: number;
104
+ };
105
+ variables: never[];
106
+ computedVariables: never[];
107
+ };
8
108
  };
9
109
  readonly viewable: {
10
110
  readonly label: "Viewable";
@@ -45,6 +145,106 @@ declare const _default: {
45
145
  readonly getItems: {
46
146
  readonly label: "Fetch items";
47
147
  readonly type: "flow";
148
+ readonly default: {
149
+ zoom: number;
150
+ edges: {
151
+ id: string;
152
+ data: {
153
+ sourceHandle: string;
154
+ };
155
+ type: string;
156
+ label: string;
157
+ source: string;
158
+ target: string;
159
+ sourceX: number;
160
+ sourceY: number;
161
+ targetX: number;
162
+ targetY: number;
163
+ animated: boolean;
164
+ sourceHandle: string;
165
+ }[];
166
+ nodes: ({
167
+ id: string;
168
+ data: {
169
+ toolbarVisible: boolean;
170
+ action?: undefined;
171
+ transform?: undefined;
172
+ returnData?: undefined;
173
+ title?: undefined;
174
+ message?: undefined;
175
+ };
176
+ type: string;
177
+ position: {
178
+ x: number;
179
+ y: number;
180
+ };
181
+ initialized: boolean;
182
+ } | {
183
+ id: string;
184
+ data: {
185
+ action: {
186
+ actionType: string;
187
+ integration: string;
188
+ serviceType: string;
189
+ integrationType: string;
190
+ actionTypeConfig: {
191
+ resource: string;
192
+ };
193
+ };
194
+ toolbarVisible: boolean;
195
+ transform?: undefined;
196
+ returnData?: undefined;
197
+ title?: undefined;
198
+ message?: undefined;
199
+ };
200
+ type: string;
201
+ position: {
202
+ x: number;
203
+ y: number;
204
+ };
205
+ initialized: boolean;
206
+ } | {
207
+ id: string;
208
+ data: {
209
+ transform: string;
210
+ returnData: boolean;
211
+ toolbarVisible: boolean;
212
+ action?: undefined;
213
+ title?: undefined;
214
+ message?: undefined;
215
+ };
216
+ type: string;
217
+ position: {
218
+ x: number;
219
+ y: number;
220
+ };
221
+ initialized: boolean;
222
+ } | {
223
+ id: string;
224
+ data: {
225
+ title: string;
226
+ message: string;
227
+ toolbarVisible: boolean;
228
+ action?: undefined;
229
+ transform?: undefined;
230
+ returnData?: undefined;
231
+ };
232
+ type: string;
233
+ position: {
234
+ x: number;
235
+ y: number;
236
+ };
237
+ initialized: boolean;
238
+ })[];
239
+ position: number[];
240
+ viewport: {
241
+ x: number;
242
+ y: number;
243
+ zoom: number;
244
+ };
245
+ variables: never[];
246
+ computedVariables: never[];
247
+ };
48
248
  };
49
249
  readonly viewable: {
50
250
  readonly label: "Viewable";
@@ -0,0 +1,47 @@
1
+ import { clsx as v } from "clsx";
2
+ import { twMerge as A } from "tailwind-merge";
3
+ import "vue";
4
+ function j(...n) {
5
+ return A(v(n));
6
+ }
7
+ function k(n, r) {
8
+ r.value = typeof n == "function" ? n(r.value) : n;
9
+ }
10
+ function O(n, r = "data.csv") {
11
+ const a = Array.isArray(n) ? n : [n];
12
+ if (!a.length) return;
13
+ function f(t, e = "") {
14
+ const c = {};
15
+ for (const i of Object.keys(t)) {
16
+ const y = e ? `${e}.${i}` : i, s = t[i];
17
+ s !== null && typeof s == "object" && !Array.isArray(s) ? Object.assign(c, f(s, y)) : c[y] = s;
18
+ }
19
+ return c;
20
+ }
21
+ const l = a.map((t) => f(t)), d = /* @__PURE__ */ new Set();
22
+ for (const t of l)
23
+ for (const e of Object.keys(t))
24
+ d.add(e);
25
+ const u = Array.from(d);
26
+ function m(t) {
27
+ if (t == null) return "";
28
+ const e = Array.isArray(t) ? JSON.stringify(t) : String(t);
29
+ return e.includes(",") || e.includes('"') || e.includes(`
30
+ `) ? `"${e.replace(/"/g, '""')}"` : e;
31
+ }
32
+ const b = [
33
+ u.map(m).join(","),
34
+ ...l.map((t) => u.map((e) => m(t[e])).join(","))
35
+ ].join(`
36
+ `), p = new Blob([b], { type: "text/csv;charset=utf-8;" }), o = document.createElement("a");
37
+ o.href = URL.createObjectURL(p), o.setAttribute("download", r), document.body.appendChild(o), o.click(), document.body.removeChild(o);
38
+ }
39
+ function C() {
40
+ return process.server ? !1 : /iPhone|iPad|iPod|Android|Mobile|webOS/i.test(navigator.userAgent);
41
+ }
42
+ export {
43
+ j as c,
44
+ O as d,
45
+ C as i,
46
+ k as v
47
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";const p=require("clsx"),v=require("tailwind-merge");require("vue");function w(...n){return v.twMerge(p.clsx(n))}function g(n,r){r.value=typeof n=="function"?n(r.value):n}function S(n,r="data.csv"){const a=Array.isArray(n)?n:[n];if(!a.length)return;function l(e,t=""){const c={};for(const i of Object.keys(e)){const b=t?`${t}.${i}`:i,o=e[i];o!==null&&typeof o=="object"&&!Array.isArray(o)?Object.assign(c,l(o,b)):c[b]=o}return c}const u=a.map(e=>l(e)),d=new Set;for(const e of u)for(const t of Object.keys(e))d.add(t);const f=Array.from(d);function y(e){if(e==null)return"";const t=Array.isArray(e)?JSON.stringify(e):String(e);return t.includes(",")||t.includes('"')||t.includes(`
2
+ `)?`"${t.replace(/"/g,'""')}"`:t}const m=[f.map(y).join(","),...u.map(e=>f.map(t=>y(e[t])).join(","))].join(`
3
+ `),A=new Blob([m],{type:"text/csv;charset=utf-8;"}),s=document.createElement("a");s.href=URL.createObjectURL(A),s.setAttribute("download",r),document.body.appendChild(s),s.click(),document.body.removeChild(s)}function h(){return process.server?!1:/iPhone|iPad|iPod|Android|Mobile|webOS/i.test(navigator.userAgent)}exports.classNames=w;exports.downloadJSONAsCSV=S;exports.isMobile=h;exports.valueUpdater=g;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneclick.dev/cms-core-modules",
3
- "version": "0.0.102",
3
+ "version": "0.0.104",
4
4
  "main": "dist/index.cjs.js",
5
5
  "module": "dist/index.mjs",
6
6
  "types": "dist/index.d.ts",
@@ -28,7 +28,7 @@
28
28
  "peerDependencies": {
29
29
  "@formkit/drag-and-drop": "^0.5.3",
30
30
  "@internationalized/date": "^3.8.0",
31
- "@oneclick.dev/cms-kit": "0.0.114",
31
+ "@oneclick.dev/cms-kit": "0.0.116",
32
32
  "@tanstack/vue-table": "^8.21.3",
33
33
  "@vee-validate/zod": "^4.15.0",
34
34
  "@vue-flow/core": "^1.48.1",
@@ -37,6 +37,11 @@ export const tools = [
37
37
  type: "number",
38
38
  description: "Number of appointments to load. default: 20 max: 100",
39
39
  default: 20 // TODO implement default (and min/max?)
40
+ },
41
+ status: {
42
+ type: "string",
43
+ description: "Filter appointments by status (confirmed, pending or cancelled). default: confirmed",
44
+ default: "confirmed"
40
45
  }
41
46
  },
42
47
  required: [
@@ -61,5 +66,38 @@ export const tools = [
61
66
  "orderId"
62
67
  ]
63
68
  }
69
+ },
70
+ {
71
+ name: "listAgendas",
72
+ description: 'List all agendas with their IDs and service names. Use this to find the correct agendaId before calling getAgendaOpeningHours.',
73
+ executionMode: 'api',
74
+ parameters: {
75
+ type: "object",
76
+ properties: {},
77
+ required: []
78
+ }
79
+ },
80
+ {
81
+ name: "getAgendaOpeningHours",
82
+ description: 'Show a card in chat where users can see the opening hours of an agenda for a specific date. There is also a button to instantly go to settings for agenda overrides. You can find the agendaId by calling the listAgendas tool.',
83
+ executionMode: 'component',
84
+ chatComponent: 'AgendaOpeningHoursCard',
85
+ parameters: {
86
+ type: "object",
87
+ properties: {
88
+ agendaId: {
89
+ type: "string",
90
+ description: "ID of the agenda"
91
+ },
92
+ date: {
93
+ type: "string",
94
+ description: "Date to check opening hours for (YYYY-MM-DD)"
95
+ }
96
+ },
97
+ required: [
98
+ "agendaId",
99
+ "date"
100
+ ]
101
+ }
64
102
  }
65
103
  ]
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),c=require("lucide-vue-next"),E={class:"w-full"},V={key:0,class:"flex items-center gap-2 py-3"},w={key:1,class:"text-xs text-destructive py-2"},S={key:2,class:"rounded-xl border bg-background p-4 text-center"},D={key:3,class:"rounded-xl border bg-background overflow-hidden"},I={class:"overflow-x-auto"},B={class:"w-full text-xs"},T={class:"px-3 py-2"},C={class:"font-medium truncate max-w-[160px]"},L={class:"text-muted-foreground truncate max-w-[160px]"},$={class:"px-3 py-2 whitespace-nowrap"},A={class:"px-3 py-2 whitespace-nowrap"},j={class:"px-3 py-2 text-center"},P={class:"px-3 py-2"},q={class:"px-3 py-2 text-right font-medium whitespace-nowrap"},z={class:"px-3 py-2 border-t bg-muted/20 flex items-center justify-between"},M={class:"text-xs text-muted-foreground"},F=e.defineComponent({__name:"AppointmentListTable",props:{toolName:{},instanceId:{},instanceName:{},moduleType:{},resolvedArgs:{},status:{}},emits:["submit"],setup(i,{emit:m}){const{$useRoute:p,$useModuleApi:x}=useNuxtApp(),d=i,f=m,g=p(),y=e.computed(()=>g.params.slug),b=x(d.instanceId),l=e.ref(!0),a=e.ref(null),s=e.ref([]);async function N(){const t=d.resolvedArgs?.quantity||20;l.value=!0,a.value=null;try{const o=await b.get(`/appointments?quantity=${t}`);s.value=o.appointments||[],u({count:s.value.length,appointments:s.value.map(r=>({orderId:r.orderId,reservationId:r.reservationId,customerName:`${r.customerInfo?.firstName||""} ${r.customerInfo?.lastName||""}`.trim(),email:r.customerInfo?.email,date:r.date,startTime:r.startTime,endTime:r.endTime,spots:r.spots,status:r.reservationStatus||r.status,price:r.reservationPrice}))})}catch(o){a.value=o?.data?.statusMessage||o?.message||"Failed to load appointments",u(`Error loading appointments: ${a.value}`)}finally{l.value=!1}}e.onMounted(()=>{N()});function u(t){d.status!=="completed"&&f("submit",t)}const v=t=>{switch(t){case"approved":return"text-emerald-600 dark:text-emerald-400 bg-emerald-50 dark:bg-emerald-900/20";case"needs_approval":return"text-blue-600 dark:text-blue-400 bg-blue-50 dark:bg-blue-900/20";case"rejected":case"cancelled":return"text-red-600 dark:text-red-400 bg-red-50 dark:bg-red-900/20";default:return"text-amber-600 dark:text-amber-400 bg-amber-50 dark:bg-amber-900/20"}},h=t=>{switch(t){case"approved":return"Approved";case"needs_approval":return"Needs Approval";case"rejected":return"Rejected";case"cancelled":return"Cancelled";case"confirmed":return"Confirmed";default:return t||"Pending"}},_=t=>t==null?"—":`€${t.toFixed(2)}`,k=t=>{if(!t)return"—";try{return new Date(t).toLocaleDateString("en-US",{weekday:"short",month:"short",day:"numeric"})}catch{return t}};return(t,o)=>{const r=e.resolveComponent("NuxtLink");return e.openBlock(),e.createElementBlock("div",E,[e.unref(l)?(e.openBlock(),e.createElementBlock("div",V,[e.createVNode(e.unref(c.Loader2),{class:"size-4 animate-spin text-muted-foreground"}),o[0]||(o[0]=e.createElementVNode("span",{class:"text-xs text-muted-foreground"},"Loading appointments…",-1))])):e.unref(a)?(e.openBlock(),e.createElementBlock("div",w,e.toDisplayString(e.unref(a)),1)):e.unref(s).length===0?(e.openBlock(),e.createElementBlock("div",S,[e.createVNode(e.unref(c.CalendarDays),{class:"size-8 text-muted-foreground mx-auto mb-2"}),o[1]||(o[1]=e.createElementVNode("p",{class:"text-sm text-muted-foreground"},"No recent appointments found.",-1))])):(e.openBlock(),e.createElementBlock("div",D,[e.createElementVNode("div",I,[e.createElementVNode("table",B,[o[2]||(o[2]=e.createElementVNode("thead",null,[e.createElementVNode("tr",{class:"border-b bg-muted/40"},[e.createElementVNode("th",{class:"text-left px-3 py-2 font-medium text-muted-foreground"},"Customer"),e.createElementVNode("th",{class:"text-left px-3 py-2 font-medium text-muted-foreground"},"Date"),e.createElementVNode("th",{class:"text-left px-3 py-2 font-medium text-muted-foreground"},"Time"),e.createElementVNode("th",{class:"text-center px-3 py-2 font-medium text-muted-foreground"},"Spots"),e.createElementVNode("th",{class:"text-left px-3 py-2 font-medium text-muted-foreground"},"Status"),e.createElementVNode("th",{class:"text-right px-3 py-2 font-medium text-muted-foreground"},"Price")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(s),n=>(e.openBlock(),e.createElementBlock("tr",{key:n.reservationId||n.orderId,class:"border-b last:border-b-0 hover:bg-muted/30 transition-colors"},[e.createElementVNode("td",T,[e.createElementVNode("div",C,e.toDisplayString(n.customerInfo?.firstName)+" "+e.toDisplayString(n.customerInfo?.lastName),1),e.createElementVNode("div",L,e.toDisplayString(n.customerInfo?.email),1)]),e.createElementVNode("td",$,e.toDisplayString(k(n.date)),1),e.createElementVNode("td",A,e.toDisplayString(n.startTime)+" – "+e.toDisplayString(n.endTime),1),e.createElementVNode("td",j,e.toDisplayString(n.spots||1),1),e.createElementVNode("td",P,[e.createElementVNode("span",{class:e.normalizeClass(["inline-block text-[10px] font-medium px-1.5 py-0.5 rounded-full uppercase whitespace-nowrap",v(n.reservationStatus||n.status)])},e.toDisplayString(h(n.reservationStatus||n.status)),3)]),e.createElementVNode("td",q,e.toDisplayString(_(n.reservationPrice)),1)]))),128))])])]),e.createElementVNode("div",z,[e.createElementVNode("span",M,e.toDisplayString(e.unref(s).length)+" appointment"+e.toDisplayString(e.unref(s).length===1?"":"s"),1),e.createVNode(r,{to:`/projects/${e.unref(y)}/modules/${i.instanceId}`,class:"inline-flex items-center gap-1.5 text-xs text-primary hover:underline"},{default:e.withCtx(()=>[e.createVNode(e.unref(c.ExternalLink),{class:"size-3"}),o[3]||(o[3]=e.createTextVNode(" View all ",-1))]),_:1},8,["to"])])]))])}}});exports.default=F;