@fayz-ai/plugin-agenda 0.27.11 → 0.27.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AgendaGeneralSettings-YBI43RB6.js +96 -0
- package/dist/AgendaGeneralSettings-YBI43RB6.js.map +1 -0
- package/dist/AgendaMessageTemplates-46ZLTFLM.js +31 -0
- package/dist/AgendaMessageTemplates-46ZLTFLM.js.map +1 -0
- package/dist/AgendaPage-43OXQDZE.js +3174 -0
- package/dist/AgendaPage-43OXQDZE.js.map +1 -0
- package/dist/CheckinPage-SGWK2TQZ.js +904 -0
- package/dist/CheckinPage-SGWK2TQZ.js.map +1 -0
- package/dist/ConfirmationsView-DZJSYBXA.js +361 -0
- package/dist/ConfirmationsView-DZJSYBXA.js.map +1 -0
- package/dist/MyClientsTodayWidget-ZGTXJJKN.js +127 -0
- package/dist/MyClientsTodayWidget-ZGTXJJKN.js.map +1 -0
- package/dist/PersonAttendanceBlock-PHZVHFQ4.js +105 -0
- package/dist/PersonAttendanceBlock-PHZVHFQ4.js.map +1 -0
- package/dist/PersonAttendancesWidget-3NTWBGCU.js +1278 -0
- package/dist/PersonAttendancesWidget-3NTWBGCU.js.map +1 -0
- package/dist/PersonServicesWidget-4RJGKX3K.js +80 -0
- package/dist/PersonServicesWidget-4RJGKX3K.js.map +1 -0
- package/dist/chunk-37INOUNW.js +20 -0
- package/dist/chunk-37INOUNW.js.map +1 -0
- package/dist/chunk-A2VD5DVN.js +12 -0
- package/dist/chunk-A2VD5DVN.js.map +1 -0
- package/dist/chunk-HGJI2JR6.js +169 -0
- package/dist/chunk-HGJI2JR6.js.map +1 -0
- package/dist/chunk-VFQPXKXP.js +11 -0
- package/dist/chunk-VFQPXKXP.js.map +1 -0
- package/dist/chunk-WNANVT4F.js +2386 -0
- package/dist/chunk-WNANVT4F.js.map +1 -0
- package/dist/chunk-X7PKHXT6.js +18 -0
- package/dist/chunk-X7PKHXT6.js.map +1 -0
- package/dist/chunk-XTNSK4RJ.js +12 -0
- package/dist/chunk-XTNSK4RJ.js.map +1 -0
- package/dist/components/PersonAttendanceBlock.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2530 -19553
- package/dist/index.js.map +1 -1
- package/dist/migrations/integrations-google-calendar.browser.js +15 -0
- package/dist/migrations/integrations-google-calendar.browser.js.map +1 -0
- package/dist/migrations/integrations-google-calendar.js +1992 -0
- package/dist/migrations/integrations-google-calendar.js.map +1 -0
- package/dist/migrations/main.browser.js +29 -0
- package/dist/migrations/main.browser.js.map +1 -0
- package/dist/migrations/main.js +6440 -0
- package/dist/migrations/main.js.map +1 -0
- package/package.json +13 -7
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { useAgendaSettings } from './chunk-37INOUNW.js';
|
|
2
|
+
import { useTenantPluginSettings, SettingsGroup, ToggleRow, SelectRow } from '@fayz-ai/admin';
|
|
3
|
+
import { useTranslation } from '@fayz-ai/core';
|
|
4
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
var HOUR_OPTIONS = Array.from({ length: 18 }, (_, i) => {
|
|
7
|
+
const h = (5 + i).toString().padStart(2, "0");
|
|
8
|
+
return { value: `${h}:00`, label: `${h}:00` };
|
|
9
|
+
});
|
|
10
|
+
var AGENDA_TOGGLE_DEFAULTS = {
|
|
11
|
+
conflictDetection: true,
|
|
12
|
+
dragDrop: true,
|
|
13
|
+
autoCreateOrder: true,
|
|
14
|
+
// Consumed by AppointmentModal: the V1 "Interesses" block on evaluation
|
|
15
|
+
// services. On by default — it only surfaces when an evaluation-kind
|
|
16
|
+
// service is selected, so tenants without evaluations never see it.
|
|
17
|
+
interestsOnBooking: true,
|
|
18
|
+
// "Repetir" no agendamento. LIGADO: fechada, a linha é uma frase de 11px sob
|
|
19
|
+
// o horário — quem nunca marca retorno fixo lê "Não se repete" e segue. Um
|
|
20
|
+
// padrão desligado esconderia a função de quem não sabe que ela existe, que
|
|
21
|
+
// é justamente quem precisaria achá-la. Quem não a quer desliga aqui.
|
|
22
|
+
recurringBookings: true,
|
|
23
|
+
// Off: most houses read the day by status. A clinic reads it by kind of visit (FAY-1613).
|
|
24
|
+
cardColorByServiceKind: false,
|
|
25
|
+
enableLocation: false,
|
|
26
|
+
enableWorkingHours: true,
|
|
27
|
+
blockOutside: false,
|
|
28
|
+
enableConfirmations: true,
|
|
29
|
+
autoConfirm: false,
|
|
30
|
+
reminder: true,
|
|
31
|
+
showCancelled: false,
|
|
32
|
+
showNoShow: true,
|
|
33
|
+
compact: false,
|
|
34
|
+
newBookingNotif: true,
|
|
35
|
+
cancelAlerts: true,
|
|
36
|
+
noShowTracking: false
|
|
37
|
+
};
|
|
38
|
+
function AgendaGeneralSettings() {
|
|
39
|
+
const t = useTranslation();
|
|
40
|
+
const { startTime, endTime, setStartTime, setEndTime } = useAgendaSettings();
|
|
41
|
+
const s = useTenantPluginSettings("agenda", AGENDA_TOGGLE_DEFAULTS);
|
|
42
|
+
return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
43
|
+
/* @__PURE__ */ jsxs(SettingsGroup, { title: t("agenda.settings.scheduling"), description: t("agenda.settings.schedulingDesc"), children: [
|
|
44
|
+
/* @__PURE__ */ jsx(ToggleRow, { pending: true, label: t("agenda.settings.conflictDetection"), description: t("agenda.settings.conflictDetectionDesc"), checked: s.get("conflictDetection"), onChange: (v) => s.set("conflictDetection", v) }),
|
|
45
|
+
/* @__PURE__ */ jsx(ToggleRow, { pending: true, label: t("agenda.settings.dragDrop"), description: t("agenda.settings.dragDropDesc"), checked: s.get("dragDrop"), onChange: (v) => s.set("dragDrop", v) }),
|
|
46
|
+
/* @__PURE__ */ jsx(ToggleRow, { pending: true, label: t("agenda.settings.autoCreateOrder"), description: t("agenda.settings.autoCreateOrderDesc"), checked: s.get("autoCreateOrder"), onChange: (v) => s.set("autoCreateOrder", v) }),
|
|
47
|
+
/* @__PURE__ */ jsx(ToggleRow, { label: t("agenda.settings.interestsOnBooking"), description: t("agenda.settings.interestsOnBookingDesc"), checked: s.get("interestsOnBooking"), onChange: (v) => s.set("interestsOnBooking", v) }),
|
|
48
|
+
/* @__PURE__ */ jsx(ToggleRow, { label: t("agenda.settings.recurringBookings"), description: t("agenda.settings.recurringBookingsDesc"), checked: s.get("recurringBookings"), onChange: (v) => s.set("recurringBookings", v) })
|
|
49
|
+
] }),
|
|
50
|
+
/* @__PURE__ */ jsx(SettingsGroup, { title: t("agenda.settings.locations"), description: t("agenda.settings.locationsDesc"), children: /* @__PURE__ */ jsx(ToggleRow, { pending: true, label: t("agenda.settings.enableLocation"), description: t("agenda.settings.enableLocationDesc"), checked: s.get("enableLocation"), onChange: (v) => s.set("enableLocation", v) }) }),
|
|
51
|
+
/* @__PURE__ */ jsxs(SettingsGroup, { title: t("agenda.settings.workingHours"), description: t("agenda.settings.workingHoursDesc"), children: [
|
|
52
|
+
/* @__PURE__ */ jsx(ToggleRow, { pending: true, label: t("agenda.settings.enableWorkingHours"), description: t("agenda.settings.enableWorkingHoursDesc"), checked: s.get("enableWorkingHours"), onChange: (v) => s.set("enableWorkingHours", v) }),
|
|
53
|
+
/* @__PURE__ */ jsx(ToggleRow, { pending: true, label: t("agenda.settings.blockOutside"), description: t("agenda.settings.blockOutsideDesc"), checked: s.get("blockOutside"), onChange: (v) => s.set("blockOutside", v) })
|
|
54
|
+
] }),
|
|
55
|
+
/* @__PURE__ */ jsxs(SettingsGroup, { title: t("agenda.settings.confirmations"), description: t("agenda.settings.confirmationsDesc"), children: [
|
|
56
|
+
/* @__PURE__ */ jsx(ToggleRow, { pending: true, label: t("agenda.settings.enableConfirmations"), description: t("agenda.settings.enableConfirmationsDesc"), checked: s.get("enableConfirmations"), onChange: (v) => s.set("enableConfirmations", v) }),
|
|
57
|
+
/* @__PURE__ */ jsx(ToggleRow, { pending: true, label: t("agenda.settings.autoConfirm"), description: t("agenda.settings.autoConfirmDesc"), checked: s.get("autoConfirm"), onChange: (v) => s.set("autoConfirm", v) }),
|
|
58
|
+
/* @__PURE__ */ jsx(ToggleRow, { pending: true, label: t("agenda.settings.reminder"), description: t("agenda.settings.reminderDesc"), checked: s.get("reminder"), onChange: (v) => s.set("reminder", v) })
|
|
59
|
+
] }),
|
|
60
|
+
/* @__PURE__ */ jsxs(SettingsGroup, { title: t("agenda.settings.calendarDisplay"), description: t("agenda.settings.calendarDisplayDesc"), children: [
|
|
61
|
+
/* @__PURE__ */ jsx(ToggleRow, { label: t("agenda.settings.cardColorByServiceKind"), description: t("agenda.settings.cardColorByServiceKindDesc"), checked: s.get("cardColorByServiceKind"), onChange: (v) => s.set("cardColorByServiceKind", v) }),
|
|
62
|
+
/* @__PURE__ */ jsx(
|
|
63
|
+
SelectRow,
|
|
64
|
+
{
|
|
65
|
+
label: t("agenda.settings.dayStartTime"),
|
|
66
|
+
description: t("agenda.settings.dayStartTimeDesc"),
|
|
67
|
+
value: startTime,
|
|
68
|
+
options: HOUR_OPTIONS,
|
|
69
|
+
onChange: setStartTime
|
|
70
|
+
}
|
|
71
|
+
),
|
|
72
|
+
/* @__PURE__ */ jsx(
|
|
73
|
+
SelectRow,
|
|
74
|
+
{
|
|
75
|
+
label: t("agenda.settings.dayEndTime"),
|
|
76
|
+
description: t("agenda.settings.dayEndTimeDesc"),
|
|
77
|
+
value: endTime,
|
|
78
|
+
options: HOUR_OPTIONS,
|
|
79
|
+
onChange: setEndTime
|
|
80
|
+
}
|
|
81
|
+
),
|
|
82
|
+
/* @__PURE__ */ jsx(ToggleRow, { pending: true, label: t("agenda.settings.showCancelled"), description: t("agenda.settings.showCancelledDesc"), checked: s.get("showCancelled"), onChange: (v) => s.set("showCancelled", v) }),
|
|
83
|
+
/* @__PURE__ */ jsx(ToggleRow, { pending: true, label: t("agenda.settings.showNoShow"), description: t("agenda.settings.showNoShowDesc"), checked: s.get("showNoShow"), onChange: (v) => s.set("showNoShow", v) }),
|
|
84
|
+
/* @__PURE__ */ jsx(ToggleRow, { pending: true, label: t("agenda.settings.compact"), description: t("agenda.settings.compactDesc"), checked: s.get("compact"), onChange: (v) => s.set("compact", v) })
|
|
85
|
+
] }),
|
|
86
|
+
/* @__PURE__ */ jsxs(SettingsGroup, { title: t("agenda.settings.notifications"), description: t("agenda.settings.notificationsDesc"), children: [
|
|
87
|
+
/* @__PURE__ */ jsx(ToggleRow, { pending: true, label: t("agenda.settings.newBookingNotif"), description: t("agenda.settings.newBookingNotifDesc"), checked: s.get("newBookingNotif"), onChange: (v) => s.set("newBookingNotif", v) }),
|
|
88
|
+
/* @__PURE__ */ jsx(ToggleRow, { pending: true, label: t("agenda.settings.cancelAlerts"), description: t("agenda.settings.cancelAlertsDesc"), checked: s.get("cancelAlerts"), onChange: (v) => s.set("cancelAlerts", v) }),
|
|
89
|
+
/* @__PURE__ */ jsx(ToggleRow, { pending: true, label: t("agenda.settings.noShowTracking"), description: t("agenda.settings.noShowTrackingDesc"), checked: s.get("noShowTracking"), onChange: (v) => s.set("noShowTracking", v) })
|
|
90
|
+
] })
|
|
91
|
+
] });
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export { AgendaGeneralSettings };
|
|
95
|
+
//# sourceMappingURL=AgendaGeneralSettings-YBI43RB6.js.map
|
|
96
|
+
//# sourceMappingURL=AgendaGeneralSettings-YBI43RB6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/AgendaGeneralSettings.tsx"],"names":[],"mappings":"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","file":"AgendaGeneralSettings-YBI43RB6.js","sourcesContent":["import React from 'react'\nimport { SettingsGroup, ToggleRow, SelectRow, useTenantPluginSettings } from '@fayz-ai/admin'\nimport { useTranslation } from '@fayz-ai/core'\nimport { useAgendaSettings } from '../hooks/useAgendaSettings'\n\nconst HOUR_OPTIONS = Array.from({ length: 18 }, (_, i) => {\n const h = (5 + i).toString().padStart(2, '0')\n return { value: `${h}:00`, label: `${h}:00` }\n})\n\n// Per-tenant toggle defaults. Rows marked `pending` save but nothing reads them\n// yet (docs/status/SETTINGS-AUDIT.md).\nconst AGENDA_TOGGLE_DEFAULTS = {\n conflictDetection: true,\n dragDrop: true,\n autoCreateOrder: true,\n // Consumed by AppointmentModal: the V1 \"Interesses\" block on evaluation\n // services. On by default — it only surfaces when an evaluation-kind\n // service is selected, so tenants without evaluations never see it.\n interestsOnBooking: true,\n // \"Repetir\" no agendamento. LIGADO: fechada, a linha é uma frase de 11px sob\n // o horário — quem nunca marca retorno fixo lê \"Não se repete\" e segue. Um\n // padrão desligado esconderia a função de quem não sabe que ela existe, que\n // é justamente quem precisaria achá-la. Quem não a quer desliga aqui.\n recurringBookings: true,\n // Off: most houses read the day by status. A clinic reads it by kind of visit (FAY-1613).\n cardColorByServiceKind: false,\n enableLocation: false,\n enableWorkingHours: true,\n blockOutside: false,\n enableConfirmations: true,\n autoConfirm: false,\n reminder: true,\n showCancelled: false,\n showNoShow: true,\n compact: false,\n newBookingNotif: true,\n cancelAlerts: true,\n noShowTracking: false,\n}\n\nexport function AgendaGeneralSettings() {\n const t = useTranslation()\n const { startTime, endTime, setStartTime, setEndTime } = useAgendaSettings()\n const s = useTenantPluginSettings('agenda', AGENDA_TOGGLE_DEFAULTS)\n return (\n <div className=\"space-y-4\">\n <SettingsGroup title={t('agenda.settings.scheduling')} description={t('agenda.settings.schedulingDesc')}>\n <ToggleRow pending label={t('agenda.settings.conflictDetection')} description={t('agenda.settings.conflictDetectionDesc')} checked={s.get('conflictDetection')} onChange={(v) => s.set('conflictDetection', v)} />\n <ToggleRow pending label={t('agenda.settings.dragDrop')} description={t('agenda.settings.dragDropDesc')} checked={s.get('dragDrop')} onChange={(v) => s.set('dragDrop', v)} />\n <ToggleRow pending label={t('agenda.settings.autoCreateOrder')} description={t('agenda.settings.autoCreateOrderDesc')} checked={s.get('autoCreateOrder')} onChange={(v) => s.set('autoCreateOrder', v)} />\n <ToggleRow label={t('agenda.settings.interestsOnBooking')} description={t('agenda.settings.interestsOnBookingDesc')} checked={s.get('interestsOnBooking')} onChange={(v) => s.set('interestsOnBooking', v)} />\n <ToggleRow label={t('agenda.settings.recurringBookings')} description={t('agenda.settings.recurringBookingsDesc')} checked={s.get('recurringBookings')} onChange={(v) => s.set('recurringBookings', v)} />\n </SettingsGroup>\n\n <SettingsGroup title={t('agenda.settings.locations')} description={t('agenda.settings.locationsDesc')}>\n <ToggleRow pending label={t('agenda.settings.enableLocation')} description={t('agenda.settings.enableLocationDesc')} checked={s.get('enableLocation')} onChange={(v) => s.set('enableLocation', v)} />\n </SettingsGroup>\n\n <SettingsGroup title={t('agenda.settings.workingHours')} description={t('agenda.settings.workingHoursDesc')}>\n <ToggleRow pending label={t('agenda.settings.enableWorkingHours')} description={t('agenda.settings.enableWorkingHoursDesc')} checked={s.get('enableWorkingHours')} onChange={(v) => s.set('enableWorkingHours', v)} />\n <ToggleRow pending label={t('agenda.settings.blockOutside')} description={t('agenda.settings.blockOutsideDesc')} checked={s.get('blockOutside')} onChange={(v) => s.set('blockOutside', v)} />\n </SettingsGroup>\n\n <SettingsGroup title={t('agenda.settings.confirmations')} description={t('agenda.settings.confirmationsDesc')}>\n <ToggleRow pending label={t('agenda.settings.enableConfirmations')} description={t('agenda.settings.enableConfirmationsDesc')} checked={s.get('enableConfirmations')} onChange={(v) => s.set('enableConfirmations', v)} />\n <ToggleRow pending label={t('agenda.settings.autoConfirm')} description={t('agenda.settings.autoConfirmDesc')} checked={s.get('autoConfirm')} onChange={(v) => s.set('autoConfirm', v)} />\n <ToggleRow pending label={t('agenda.settings.reminder')} description={t('agenda.settings.reminderDesc')} checked={s.get('reminder')} onChange={(v) => s.set('reminder', v)} />\n </SettingsGroup>\n\n <SettingsGroup title={t('agenda.settings.calendarDisplay')} description={t('agenda.settings.calendarDisplayDesc')}>\n <ToggleRow label={t('agenda.settings.cardColorByServiceKind')} description={t('agenda.settings.cardColorByServiceKindDesc')} checked={s.get('cardColorByServiceKind')} onChange={(v) => s.set('cardColorByServiceKind', v)} />\n <SelectRow\n label={t('agenda.settings.dayStartTime')}\n description={t('agenda.settings.dayStartTimeDesc')}\n value={startTime}\n options={HOUR_OPTIONS}\n onChange={setStartTime}\n />\n <SelectRow\n label={t('agenda.settings.dayEndTime')}\n description={t('agenda.settings.dayEndTimeDesc')}\n value={endTime}\n options={HOUR_OPTIONS}\n onChange={setEndTime}\n />\n <ToggleRow pending label={t('agenda.settings.showCancelled')} description={t('agenda.settings.showCancelledDesc')} checked={s.get('showCancelled')} onChange={(v) => s.set('showCancelled', v)} />\n <ToggleRow pending label={t('agenda.settings.showNoShow')} description={t('agenda.settings.showNoShowDesc')} checked={s.get('showNoShow')} onChange={(v) => s.set('showNoShow', v)} />\n <ToggleRow pending label={t('agenda.settings.compact')} description={t('agenda.settings.compactDesc')} checked={s.get('compact')} onChange={(v) => s.set('compact', v)} />\n </SettingsGroup>\n\n <SettingsGroup title={t('agenda.settings.notifications')} description={t('agenda.settings.notificationsDesc')}>\n <ToggleRow pending label={t('agenda.settings.newBookingNotif')} description={t('agenda.settings.newBookingNotifDesc')} checked={s.get('newBookingNotif')} onChange={(v) => s.set('newBookingNotif', v)} />\n <ToggleRow pending label={t('agenda.settings.cancelAlerts')} description={t('agenda.settings.cancelAlertsDesc')} checked={s.get('cancelAlerts')} onChange={(v) => s.set('cancelAlerts', v)} />\n <ToggleRow pending label={t('agenda.settings.noShowTracking')} description={t('agenda.settings.noShowTrackingDesc')} checked={s.get('noShowTracking')} onChange={(v) => s.set('noShowTracking', v)} />\n </SettingsGroup>\n </div>\n )\n}\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { SettingsGroup, MessageTemplateRow } from '@fayz-ai/admin';
|
|
2
|
+
import { tl } from '@fayz-ai/core';
|
|
3
|
+
import { jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
// src/components/AgendaMessageTemplates.tsx
|
|
6
|
+
var MESSAGES = [
|
|
7
|
+
{ eventKey: "agenda.confirmation_requested", label: ["Manual confirmation", "Confirma\xE7\xE3o manual"], pending: true },
|
|
8
|
+
{ eventKey: "agenda.booking_created", label: ["Booking created", "Agendamento criado"] },
|
|
9
|
+
{ eventKey: "agenda.booking_reminder", label: ["Reminder", "Lembrete de v\xE9spera"] },
|
|
10
|
+
{ eventKey: "agenda.booking_rescheduled", label: ["Rescheduled", "Hor\xE1rio remarcado"] },
|
|
11
|
+
{ eventKey: "agenda.booking_cancelled", label: ["Cancelled", "Agendamento cancelado"] },
|
|
12
|
+
{ eventKey: "agenda.booking_completed", label: ["After the visit", "Depois do atendimento"] },
|
|
13
|
+
{ eventKey: "agenda.booking_no_show", label: ["No-show", "Falta"] }
|
|
14
|
+
];
|
|
15
|
+
function AgendaMessageTemplates() {
|
|
16
|
+
return /* @__PURE__ */ jsx(
|
|
17
|
+
SettingsGroup,
|
|
18
|
+
{
|
|
19
|
+
title: tl("Message templates", "Templates de mensagem"),
|
|
20
|
+
description: tl(
|
|
21
|
+
"Each text is edited once, in Automations \u203A Messages, and used wherever it is sent.",
|
|
22
|
+
"Cada texto \xE9 editado uma vez, em Automa\xE7\xF5es \u203A Mensagens, e vale onde ele for enviado."
|
|
23
|
+
),
|
|
24
|
+
children: MESSAGES.map((m) => /* @__PURE__ */ jsx(MessageTemplateRow, { eventKey: m.eventKey, label: tl(...m.label), pending: m.pending }, m.eventKey))
|
|
25
|
+
}
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export { AgendaMessageTemplates };
|
|
30
|
+
//# sourceMappingURL=AgendaMessageTemplates-46ZLTFLM.js.map
|
|
31
|
+
//# sourceMappingURL=AgendaMessageTemplates-46ZLTFLM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/AgendaMessageTemplates.tsx"],"names":[],"mappings":";;;;;AAMA,IAAM,QAAA,GAA6F;AAAA,EACjG,EAAE,UAAU,+BAAA,EAAiC,KAAA,EAAO,CAAC,qBAAA,EAAuB,0BAAoB,CAAA,EAAG,OAAA,EAAS,IAAA,EAAK;AAAA,EACjH,EAAE,QAAA,EAAU,wBAAA,EAA0B,OAAO,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,EAAE;AAAA,EACvF,EAAE,QAAA,EAAU,yBAAA,EAA2B,OAAO,CAAC,UAAA,EAAY,wBAAqB,CAAA,EAAE;AAAA,EAClF,EAAE,QAAA,EAAU,4BAAA,EAA8B,OAAO,CAAC,aAAA,EAAe,sBAAmB,CAAA,EAAE;AAAA,EACtF,EAAE,QAAA,EAAU,0BAAA,EAA4B,OAAO,CAAC,WAAA,EAAa,uBAAuB,CAAA,EAAE;AAAA,EACtF,EAAE,QAAA,EAAU,0BAAA,EAA4B,OAAO,CAAC,iBAAA,EAAmB,uBAAuB,CAAA,EAAE;AAAA,EAC5F,EAAE,QAAA,EAAU,wBAAA,EAA0B,OAAO,CAAC,SAAA,EAAW,OAAO,CAAA;AAClE,CAAA;AAEO,SAAS,sBAAA,GAAyB;AACvC,EAAA,uBACE,GAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MAAc,KAAA,EAAO,EAAA,CAAG,mBAAA,EAAqB,uBAAuB,CAAA;AAAA,MACnE,WAAA,EAAa,EAAA;AAAA,QAAG,yFAAA;AAAA,QACd;AAAA,OAAuF;AAAA,MACxF,QAAA,EAAA,QAAA,CAAS,IAAI,CAAC,CAAA,yBACZ,kBAAA,EAAA,EAAoC,QAAA,EAAU,EAAE,QAAA,EAAU,KAAA,EAAO,GAAG,GAAG,CAAA,CAAE,KAAK,CAAA,EAAG,OAAA,EAAS,EAAE,OAAA,EAAA,EAApE,CAAA,CAAE,QAA2E,CACvG;AAAA;AAAA,GACH;AAEJ","file":"AgendaMessageTemplates-46ZLTFLM.js","sourcesContent":["import React from 'react'\nimport { MessageTemplateRow, SettingsGroup } from '@fayz-ai/admin'\nimport { tl } from '@fayz-ai/core'\n\n// The agenda's messages, each one record of the shared catalog (Automações ›\n// Mensagens). V1's \"Confirmação manual\" lives here, first.\nconst MESSAGES: Array<{ eventKey: string; label: readonly [string, string]; pending?: boolean }> = [\n { eventKey: 'agenda.confirmation_requested', label: ['Manual confirmation', 'Confirmação manual'], pending: true },\n { eventKey: 'agenda.booking_created', label: ['Booking created', 'Agendamento criado'] },\n { eventKey: 'agenda.booking_reminder', label: ['Reminder', 'Lembrete de véspera'] },\n { eventKey: 'agenda.booking_rescheduled', label: ['Rescheduled', 'Horário remarcado'] },\n { eventKey: 'agenda.booking_cancelled', label: ['Cancelled', 'Agendamento cancelado'] },\n { eventKey: 'agenda.booking_completed', label: ['After the visit', 'Depois do atendimento'] },\n { eventKey: 'agenda.booking_no_show', label: ['No-show', 'Falta'] },\n]\n\nexport function AgendaMessageTemplates() {\n return (\n <SettingsGroup title={tl('Message templates', 'Templates de mensagem')}\n description={tl('Each text is edited once, in Automations › Messages, and used wherever it is sent.',\n 'Cada texto é editado uma vez, em Automações › Mensagens, e vale onde ele for enviado.')}>\n {MESSAGES.map((m) => (\n <MessageTemplateRow key={m.eventKey} eventKey={m.eventKey} label={tl(...m.label)} pending={m.pending} />\n ))}\n </SettingsGroup>\n )\n}\n"]}
|