@arquimedes.co/eureka-forms 3.0.71-test → 3.0.72
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/README +33 -1
- package/dist/@Types/AvailabilityFormStep.d.ts +48 -0
- package/dist/@Types/AvailabilityFormStep.js +24 -0
- package/dist/@Types/BankAccountFormStep.d.ts +67 -0
- package/dist/@Types/BankAccountFormStep.js +14 -0
- package/dist/@Types/BookingFormStep.d.ts +249 -0
- package/dist/@Types/BookingFormStep.js +65 -0
- package/dist/@Types/CalendarFormStep.d.ts +209 -0
- package/dist/@Types/CalendarFormStep.js +55 -0
- package/dist/@Types/CommunicationChannelFormStep.d.ts +51 -0
- package/dist/@Types/CommunicationChannelFormStep.js +15 -0
- package/dist/@Types/ConsentFormStep.d.ts +36 -0
- package/dist/@Types/ConsentFormStep.js +8 -0
- package/dist/@Types/EntityFormFormStep.d.ts +66 -0
- package/dist/@Types/EntityFormFormStep.js +20 -0
- package/dist/@Types/EventFormStep.d.ts +52 -0
- package/dist/@Types/EventFormStep.js +13 -0
- package/dist/@Types/ExternalReferenceFormStep.d.ts +74 -0
- package/dist/@Types/ExternalReferenceFormStep.js +20 -0
- package/dist/@Types/FormStep.d.ts +7 -2
- package/dist/@Types/FormStep.js +2 -1
- package/dist/@Types/LocationFormStep.d.ts +159 -0
- package/dist/@Types/LocationFormStep.js +46 -0
- package/dist/@Types/NumericFormSteps.d.ts +108 -0
- package/dist/@Types/NumericFormSteps.js +20 -0
- package/dist/@Types/PredefinedSelectorFormStep.d.ts +51 -0
- package/dist/@Types/PredefinedSelectorFormStep.js +39 -0
- package/dist/@Types/StepRef.d.ts +135 -0
- package/dist/@Types/StepRef.js +49 -0
- package/dist/App/App.stories.d.ts +10 -0
- package/dist/App/App.stories.js +189 -0
- package/dist/App/App.submitError.test.d.ts +1 -0
- package/dist/App/App.submitError.test.js +53 -0
- package/dist/App/AppHooks.js +8 -0
- package/dist/App/AppHooks.test.js +8 -0
- package/dist/BookingManage/AppointmentText.d.ts +5 -0
- package/dist/BookingManage/AppointmentText.js +20 -0
- package/dist/BookingManage/BookingManagePage.d.ts +17 -0
- package/dist/BookingManage/BookingManagePage.js +177 -0
- package/dist/BookingManage/BookingManagePage.module.css +115 -0
- package/dist/BookingManage/BookingManagePage.test.d.ts +1 -0
- package/dist/BookingManage/BookingManagePage.test.js +149 -0
- package/dist/Form/ConfirmationDialog/ConfirmationDialog.d.ts +14 -5
- package/dist/Form/ConfirmationDialog/ConfirmationDialog.js +8 -1
- package/dist/Form/ConfirmationDialog/ConfirmationDialog.module.css +12 -0
- package/dist/Form/ConfirmationDialog/ConfirmationDialog.test.d.ts +1 -0
- package/dist/Form/ConfirmationDialog/ConfirmationDialog.test.js +21 -0
- package/dist/Form/Form.d.ts +3 -0
- package/dist/Form/Form.js +16 -8
- package/dist/Form/FormFunctions.d.ts +17 -0
- package/dist/Form/FormFunctions.js +22 -0
- package/dist/Form/FormFunctions.test.js +28 -1
- package/dist/Form/FormTypes/ColumnForm/ColumnForm.d.ts +1 -1
- package/dist/Form/FormTypes/ColumnForm/ColumnForm.js +3 -2
- package/dist/Form/FormTypes/StepperForm/StepperForm.d.ts +1 -1
- package/dist/Form/FormTypes/StepperForm/StepperForm.js +3 -2
- package/dist/Form/SubmitError/SubmitError.d.ts +11 -0
- package/dist/Form/SubmitError/SubmitError.js +9 -0
- package/dist/Form/SubmitError/SubmitError.module.css +25 -0
- package/dist/Form/SubmitError/SubmitError.test.d.ts +1 -0
- package/dist/Form/SubmitError/SubmitError.test.js +34 -0
- package/dist/Form/SubmitError/SubmitErrorReason.d.ts +13 -0
- package/dist/Form/SubmitError/SubmitErrorReason.js +20 -0
- package/dist/FormSteps/AvailabilityStep/AvailabilityStep.d.ts +7 -0
- package/dist/FormSteps/AvailabilityStep/AvailabilityStep.js +14 -0
- package/dist/FormSteps/AvailabilityStep/MaterialAvailabilityStep/MaterialAvailabilityStep.d.ts +8 -0
- package/dist/FormSteps/AvailabilityStep/MaterialAvailabilityStep/MaterialAvailabilityStep.js +32 -0
- package/dist/FormSteps/BookingStep/BookingStep.d.ts +17 -0
- package/dist/FormSteps/BookingStep/BookingStep.js +14 -0
- package/dist/FormSteps/BookingStep/MaterialBookingStep/MaterialBookingStep.d.ts +21 -0
- package/dist/FormSteps/BookingStep/MaterialBookingStep/MaterialBookingStep.js +289 -0
- package/dist/FormSteps/BookingStep/MaterialBookingStep/MaterialBookingStep.test.d.ts +1 -0
- package/dist/FormSteps/BookingStep/MaterialBookingStep/MaterialBookingStep.test.js +275 -0
- package/dist/FormSteps/CheckBoxStep/CheckBoxStep.mobileLabel.test.js +20 -12
- package/dist/FormSteps/CheckBoxStep/MaterialCheckBoxStep/MaterialCheckBoxStep.js +6 -13
- package/dist/FormSteps/CheckBoxStep/MaterialCheckBoxStep/MaterialCheckBoxStep.module.css +2 -13
- package/dist/FormSteps/ClassifierSelectorStep/ClassifierSelectorStep.lateClassifiers.test.d.ts +1 -0
- package/dist/FormSteps/ClassifierSelectorStep/ClassifierSelectorStep.lateClassifiers.test.js +70 -0
- package/dist/FormSteps/ClassifierSelectorStep/MaterialClassifierSelectorStep/MaterialClassifierSelectorStep.js +3 -1
- package/dist/FormSteps/EntityValueStep/MaterialEntityValuePickerStep/MaterialEntityValuePickerStep.js +26 -26
- package/dist/FormSteps/EntityValueStep/entityValueDependencyValue.d.ts +12 -0
- package/dist/FormSteps/EntityValueStep/entityValueDependencyValue.js +35 -0
- package/dist/FormSteps/EntityValueStep/entityValueDependencyValue.test.d.ts +1 -0
- package/dist/FormSteps/EntityValueStep/entityValueDependencyValue.test.js +31 -0
- package/dist/FormSteps/EntityValueStep/entityValuePickerWatchedSteps.d.ts +27 -0
- package/dist/FormSteps/EntityValueStep/entityValuePickerWatchedSteps.js +64 -0
- package/dist/FormSteps/EntityValueStep/entityValuePickerWatchedSteps.test.d.ts +1 -0
- package/dist/FormSteps/EntityValueStep/entityValuePickerWatchedSteps.test.js +95 -0
- package/dist/FormSteps/LocationStep/LocationStep.d.ts +10 -0
- package/dist/FormSteps/LocationStep/LocationStep.js +14 -0
- package/dist/FormSteps/LocationStep/MaterialLocationStep/MaterialLocationStep.d.ts +3 -0
- package/dist/FormSteps/LocationStep/MaterialLocationStep/MaterialLocationStep.js +54 -0
- package/dist/FormSteps/LocationStep/MaterialLocationStep/MaterialLocationStep.module.css +18 -0
- package/dist/FormSteps/NumberStep/MaterialNumberStep/MaterialNumberStep.d.ts +3 -0
- package/dist/FormSteps/NumberStep/MaterialNumberStep/MaterialNumberStep.js +170 -0
- package/dist/FormSteps/NumberStep/MaterialNumberStep/MaterialNumberStep.module.css +96 -0
- package/dist/FormSteps/NumberStep/NumberStep.d.ts +10 -0
- package/dist/FormSteps/NumberStep/NumberStep.js +14 -0
- package/dist/FormSteps/Step.js +16 -0
- package/dist/FormSteps/StepFunctions.js +14 -0
- package/dist/FormSteps/StepFunctions.test.js +54 -0
- package/dist/FormSteps/StepHooks.d.ts +21 -0
- package/dist/FormSteps/StepHooks.js +55 -8
- package/dist/FormSteps/StepHooks.test.d.ts +1 -0
- package/dist/FormSteps/StepHooks.test.js +92 -0
- package/dist/FormSteps/isStepHiddenByCondition.test.d.ts +1 -0
- package/dist/FormSteps/isStepHiddenByCondition.test.js +42 -0
- package/dist/Icons/AddIcon.d.ts +3 -0
- package/dist/Icons/AddIcon.js +7 -0
- package/dist/Icons/EditIcon.d.ts +3 -0
- package/dist/Icons/EditIcon.js +7 -0
- package/dist/Icons/RemoveIcon.d.ts +3 -0
- package/dist/Icons/RemoveIcon.js +7 -0
- package/dist/Icons/ViewDayIcon.d.ts +3 -0
- package/dist/Icons/ViewDayIcon.js +7 -0
- package/dist/Icons/ViewWeekIcon.d.ts +3 -0
- package/dist/Icons/ViewWeekIcon.js +7 -0
- package/dist/Services/BookingService.d.ts +226 -0
- package/dist/Services/BookingService.js +264 -0
- package/dist/Services/BookingService.test.d.ts +1 -0
- package/dist/Services/BookingService.test.js +178 -0
- package/dist/Shared/ErkAddressAutocomplete/ErkAddressAutocomplete.d.ts +19 -0
- package/dist/Shared/ErkAddressAutocomplete/ErkAddressAutocomplete.js +80 -0
- package/dist/Shared/ErkAddressAutocomplete/ErkAddressAutocomplete.module.css +88 -0
- package/dist/Shared/ErkAddressAutocomplete/googlePlaces.d.ts +29 -0
- package/dist/Shared/ErkAddressAutocomplete/googlePlaces.js +139 -0
- package/dist/Shared/ErkAvailabilityPicker/ErkAvailabilityPicker.d.ts +25 -0
- package/dist/Shared/ErkAvailabilityPicker/ErkAvailabilityPicker.js +112 -0
- package/dist/Shared/ErkAvailabilityPicker/ErkAvailabilityPicker.module.css +88 -0
- package/dist/Shared/ErkAvailabilityPicker/ErkAvailabilityPicker.test.d.ts +1 -0
- package/dist/Shared/ErkAvailabilityPicker/ErkAvailabilityPicker.test.js +73 -0
- package/dist/Shared/ErkBookingPicker/ErkBookingPicker.d.ts +105 -0
- package/dist/Shared/ErkBookingPicker/ErkBookingPicker.js +399 -0
- package/dist/Shared/ErkBookingPicker/ErkBookingPicker.module.css +646 -0
- package/dist/Shared/ErkBookingPicker/ErkBookingPicker.stories.d.ts +36 -0
- package/dist/Shared/ErkBookingPicker/ErkBookingPicker.stories.js +177 -0
- package/dist/Shared/ErkBookingPicker/ErkBookingPicker.stories.test.d.ts +1 -0
- package/dist/Shared/ErkBookingPicker/ErkBookingPicker.stories.test.js +47 -0
- package/dist/Shared/ErkBookingPicker/ErkBookingPicker.test.d.ts +1 -0
- package/dist/Shared/ErkBookingPicker/ErkBookingPicker.test.js +440 -0
- package/dist/Shared/ErkDatePicker/ErkDatePicker.js +1 -3
- package/dist/Shared/ErkDateRangePicker/ErkDateRangePicker.d.ts +2 -3
- package/dist/Shared/ErkDateRangePicker/ErkDateRangePicker.js +1 -2
- package/dist/Shared/ErkIconButton/ErkIconButton.d.ts +17 -0
- package/dist/Shared/ErkIconButton/ErkIconButton.js +11 -0
- package/dist/Shared/ErkIconButton/ErkIconButton.module.css +41 -0
- package/dist/Shared/ErkLocationField/ErkLocationField.d.ts +24 -0
- package/dist/Shared/ErkLocationField/ErkLocationField.js +128 -0
- package/dist/Shared/ErkLocationField/ErkLocationField.module.css +164 -0
- package/dist/Shared/ErkLocationField/ErkLocationField.test.d.ts +1 -0
- package/dist/Shared/ErkLocationField/ErkLocationField.test.js +82 -0
- package/dist/Shared/ErkLocationField/addressFields.d.ts +12 -0
- package/dist/Shared/ErkLocationField/addressFields.js +34 -0
- package/dist/Shared/ErkLocationField/locationRestrictions.d.ts +6 -0
- package/dist/Shared/ErkLocationField/locationRestrictions.js +51 -0
- package/dist/Shared/ErkLocationInput/ErkLocationInput.d.ts +15 -0
- package/dist/Shared/ErkLocationInput/ErkLocationInput.js +502 -0
- package/dist/Shared/ErkLocationInput/ErkLocationInput.module.css +128 -0
- package/dist/Shared/ErkNumberField/ErkNumberField.d.ts +42 -0
- package/dist/Shared/ErkNumberField/ErkNumberField.js +169 -0
- package/dist/Utils/AxiosWidget.js +9 -1
- package/dist/constants/FormStepTypes.d.ts +5 -1
- package/dist/constants/FormStepTypes.js +4 -0
- package/dist/index.lib.d.ts +4 -2
- package/dist/index.lib.js +3 -1
- package/dist/main.js +4 -1
- package/package.json +2 -1
package/README
CHANGED
|
@@ -1,4 +1,36 @@
|
|
|
1
1
|
# E2E
|
|
2
2
|
Se prueban los 3 casos:
|
|
3
3
|
Standalone, desplegando la app buildeada
|
|
4
|
-
Widget y Libreria con el TestApp,
|
|
4
|
+
Widget y Libreria con el TestApp,
|
|
5
|
+
|
|
6
|
+
# Desarrollo contra lambdas locales
|
|
7
|
+
|
|
8
|
+
Por defecto `/api` va a la API desplegada del dominio que diga `VITE_REACT_APP_DOMAIN` en `.env`
|
|
9
|
+
(`api.forms.eureka-test.click`). Con la variable `LOCAL_LAMBDAS` va al dev server de serverless, que
|
|
10
|
+
corre las lambdas desde el código de tu máquina — sin desplegar nada.
|
|
11
|
+
|
|
12
|
+
Primero levantá el dev server en el repo de serverless (`npm start` en `serverless/devserver`), y después:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
LOCAL_LAMBDAS=1 npm start # la app en :3003
|
|
16
|
+
LOCAL_LAMBDAS=1 npm run storybook # las stories en :6006
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
La organización sale del subdominio, igual que desplegada: entrá por `http://arquimedes.localhost:3003`
|
|
20
|
+
y las lambdas atienden a esa org (los navegadores resuelven cualquier subdominio de `localhost` a
|
|
21
|
+
127.0.0.1). Para Storybook, o si preferís entrar por `localhost` pelado, hay que decirla:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
LOCAL_LAMBDAS=1 LOCAL_ORG=arquimedes npm run storybook
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Ambos comandos anuncian a dónde apuntan al arrancar.
|
|
28
|
+
|
|
29
|
+
Variables:
|
|
30
|
+
|
|
31
|
+
| variable | para qué |
|
|
32
|
+
| --- | --- |
|
|
33
|
+
| `LOCAL_LAMBDAS=1` | usar las lambdas locales en vez de la API desplegada |
|
|
34
|
+
| `LOCAL_ORG` | la organización, si no entrás por `<org>.localhost` |
|
|
35
|
+
| `DEVSERVER_PORT` | puerto del dev server, si no es 3100 |
|
|
36
|
+
| `FORMS_API_TARGET` | apuntar a otro lado (un túnel, otro stage) e ignorar todo lo anterior |
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated Renombrado a CalendarFormStep.
|
|
3
|
+
* Este archivo existe solo para compatibilidad retroactiva.
|
|
4
|
+
* Usar `CalendarFormStep.ts` directamente.
|
|
5
|
+
*/
|
|
6
|
+
export type { AvailabilityStep } from './CalendarFormStep';
|
|
7
|
+
export type { CalendarValue as AvailabilityValue } from './CalendarFormStep';
|
|
8
|
+
export { CalendarEventCategory as AvailabilityEventCategory } from './CalendarFormStep';
|
|
9
|
+
export { CalendarDefaultView } from './CalendarFormStep';
|
|
10
|
+
export type { CalendarEventTemplate } from './CalendarFormStep';
|
|
11
|
+
export type { CalendarEvent } from './CalendarFormStep';
|
|
12
|
+
export declare enum AvailabilityMode {
|
|
13
|
+
WEEKLY = "WEEKLY",
|
|
14
|
+
SPECIFIC_DATES = "SPECIFIC_DATES",
|
|
15
|
+
COMBINED = "COMBINED"
|
|
16
|
+
}
|
|
17
|
+
export declare enum AvailabilityDayOfWeek {
|
|
18
|
+
MONDAY = 1,
|
|
19
|
+
TUESDAY = 2,
|
|
20
|
+
WEDNESDAY = 3,
|
|
21
|
+
THURSDAY = 4,
|
|
22
|
+
FRIDAY = 5,
|
|
23
|
+
SATURDAY = 6,
|
|
24
|
+
SUNDAY = 7
|
|
25
|
+
}
|
|
26
|
+
export interface AvailabilitySlot {
|
|
27
|
+
start: string;
|
|
28
|
+
end: string;
|
|
29
|
+
}
|
|
30
|
+
export interface AvailabilityDay {
|
|
31
|
+
day: AvailabilityDayOfWeek;
|
|
32
|
+
slots: AvailabilitySlot[];
|
|
33
|
+
recurrence?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface AvailabilitySpecificDate {
|
|
36
|
+
date: string;
|
|
37
|
+
slots: AvailabilitySlot[];
|
|
38
|
+
}
|
|
39
|
+
export interface AvailabilityExclusion {
|
|
40
|
+
date?: string;
|
|
41
|
+
dateRange?: {
|
|
42
|
+
start: string;
|
|
43
|
+
end: string;
|
|
44
|
+
};
|
|
45
|
+
dayOfWeek?: AvailabilityDayOfWeek;
|
|
46
|
+
slots?: AvailabilitySlot[];
|
|
47
|
+
reason?: string;
|
|
48
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated Renombrado a CalendarFormStep.
|
|
3
|
+
* Este archivo existe solo para compatibilidad retroactiva.
|
|
4
|
+
* Usar `CalendarFormStep.ts` directamente.
|
|
5
|
+
*/
|
|
6
|
+
export { CalendarEventCategory as AvailabilityEventCategory } from './CalendarFormStep';
|
|
7
|
+
export { CalendarDefaultView } from './CalendarFormStep';
|
|
8
|
+
// Tipos del draft original mantenidos para no romper código existente.
|
|
9
|
+
export var AvailabilityMode;
|
|
10
|
+
(function (AvailabilityMode) {
|
|
11
|
+
AvailabilityMode["WEEKLY"] = "WEEKLY";
|
|
12
|
+
AvailabilityMode["SPECIFIC_DATES"] = "SPECIFIC_DATES";
|
|
13
|
+
AvailabilityMode["COMBINED"] = "COMBINED";
|
|
14
|
+
})(AvailabilityMode || (AvailabilityMode = {}));
|
|
15
|
+
export var AvailabilityDayOfWeek;
|
|
16
|
+
(function (AvailabilityDayOfWeek) {
|
|
17
|
+
AvailabilityDayOfWeek[AvailabilityDayOfWeek["MONDAY"] = 1] = "MONDAY";
|
|
18
|
+
AvailabilityDayOfWeek[AvailabilityDayOfWeek["TUESDAY"] = 2] = "TUESDAY";
|
|
19
|
+
AvailabilityDayOfWeek[AvailabilityDayOfWeek["WEDNESDAY"] = 3] = "WEDNESDAY";
|
|
20
|
+
AvailabilityDayOfWeek[AvailabilityDayOfWeek["THURSDAY"] = 4] = "THURSDAY";
|
|
21
|
+
AvailabilityDayOfWeek[AvailabilityDayOfWeek["FRIDAY"] = 5] = "FRIDAY";
|
|
22
|
+
AvailabilityDayOfWeek[AvailabilityDayOfWeek["SATURDAY"] = 6] = "SATURDAY";
|
|
23
|
+
AvailabilityDayOfWeek[AvailabilityDayOfWeek["SUNDAY"] = 7] = "SUNDAY";
|
|
24
|
+
})(AvailabilityDayOfWeek || (AvailabilityDayOfWeek = {}));
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DRAFT — BankAccountFormStep types
|
|
3
|
+
*
|
|
4
|
+
* Paso para capturar información de una cuenta bancaria.
|
|
5
|
+
* Incluye banco, tipo de cuenta, número, país, moneda y titular opcional.
|
|
6
|
+
*/
|
|
7
|
+
import { GBaseStep } from './GenericFormSteps';
|
|
8
|
+
export declare enum BankAccountType {
|
|
9
|
+
SAVINGS = "SAVINGS",
|
|
10
|
+
CHECKING = "CHECKING"
|
|
11
|
+
}
|
|
12
|
+
export interface BankAccountStep extends GBaseStep {
|
|
13
|
+
type: 'BANK_ACCOUNT';
|
|
14
|
+
label: string;
|
|
15
|
+
description: string | null;
|
|
16
|
+
required: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* País predeterminado para filtrar la lista de bancos.
|
|
19
|
+
* Código ISO 3166-1 alpha-2 (ej: "CO", "US", "MX").
|
|
20
|
+
* El usuario puede cambiarlo si no se restringe.
|
|
21
|
+
*/
|
|
22
|
+
defaultCountry?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Si se define, solo se muestran bancos de estos países.
|
|
25
|
+
* Si no se define, se permite cualquier país.
|
|
26
|
+
*/
|
|
27
|
+
allowedCountries?: string[];
|
|
28
|
+
/**
|
|
29
|
+
* Si se define, solo se muestran estas monedas.
|
|
30
|
+
* Códigos ISO 4217 (ej: ["COP", "USD"]).
|
|
31
|
+
*/
|
|
32
|
+
allowedCurrencies?: string[];
|
|
33
|
+
/**
|
|
34
|
+
* Si true, se solicita información del titular de la cuenta
|
|
35
|
+
* (nombre / identificación).
|
|
36
|
+
*/
|
|
37
|
+
requireHolder: boolean;
|
|
38
|
+
size: 1 | 2 | 3 | 4;
|
|
39
|
+
}
|
|
40
|
+
export interface BankAccountHolder {
|
|
41
|
+
/** Nombre completo del titular */
|
|
42
|
+
name?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Referencia a un registro de identidad en Capta.
|
|
45
|
+
* Puede ser el id del contacto o el número de documento.
|
|
46
|
+
*/
|
|
47
|
+
identityRef?: string;
|
|
48
|
+
}
|
|
49
|
+
export interface BankValue {
|
|
50
|
+
bank: {
|
|
51
|
+
/** Id interno del banco en el catálogo de Capta */
|
|
52
|
+
id: string;
|
|
53
|
+
/** Nombre display del banco */
|
|
54
|
+
label: string;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Tipo de cuenta. Se acepta string para bancos con tipos no estándar
|
|
58
|
+
* (ej: "NEQUI", "DAVIPLATA", "CORRIENTE_EXTERIOR").
|
|
59
|
+
*/
|
|
60
|
+
accountType: BankAccountType | string;
|
|
61
|
+
accountNumber: string;
|
|
62
|
+
/** Código ISO 3166-1 alpha-2 del país */
|
|
63
|
+
country: string;
|
|
64
|
+
/** Código ISO 4217 de la moneda */
|
|
65
|
+
currency: string;
|
|
66
|
+
holder?: BankAccountHolder;
|
|
67
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DRAFT — BankAccountFormStep types
|
|
3
|
+
*
|
|
4
|
+
* Paso para capturar información de una cuenta bancaria.
|
|
5
|
+
* Incluye banco, tipo de cuenta, número, país, moneda y titular opcional.
|
|
6
|
+
*/
|
|
7
|
+
// ===========================================================================
|
|
8
|
+
// Enums
|
|
9
|
+
// ===========================================================================
|
|
10
|
+
export var BankAccountType;
|
|
11
|
+
(function (BankAccountType) {
|
|
12
|
+
BankAccountType["SAVINGS"] = "SAVINGS";
|
|
13
|
+
BankAccountType["CHECKING"] = "CHECKING";
|
|
14
|
+
})(BankAccountType || (BankAccountType = {}));
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BookingFormStep — paso de agendamiento (flujo ligero).
|
|
3
|
+
*
|
|
4
|
+
* Permite que alguien externo agende en el calendario de una o varias personas.
|
|
5
|
+
* Flujo: (seleccionar persona) → seleccionar día → seleccionar hora.
|
|
6
|
+
*
|
|
7
|
+
* A diferencia del paso CALENDAR, este NO usa MUI X Scheduler:
|
|
8
|
+
* presenta una UI ligera de date-picker + lista de slots disponibles.
|
|
9
|
+
* La disponibilidad real la calcula el backend leyendo los calendarios referenciados.
|
|
10
|
+
*/
|
|
11
|
+
import { GBaseStep } from './GenericFormSteps';
|
|
12
|
+
import FormStepTypes from '../constants/FormStepTypes';
|
|
13
|
+
/**
|
|
14
|
+
* Modalidad de la cita.
|
|
15
|
+
*/
|
|
16
|
+
export declare enum BookingMode {
|
|
17
|
+
/** Presencial — requiere ubicación física. */
|
|
18
|
+
IN_PERSON = "IN_PERSON",
|
|
19
|
+
/** Virtual / remota (Meet, Teams, Zoom, etc.). */
|
|
20
|
+
VIRTUAL = "VIRTUAL",
|
|
21
|
+
/** Híbrida — se acuerda entre las partes. */
|
|
22
|
+
HYBRID = "HYBRID"
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Cómo se maneja la selección de la persona a agendar.
|
|
26
|
+
*/
|
|
27
|
+
export declare enum PersonSelectionMode {
|
|
28
|
+
/**
|
|
29
|
+
* Un único calendario destino, sin selector de persona visible.
|
|
30
|
+
* El backend asigna automáticamente el slot disponible.
|
|
31
|
+
*/
|
|
32
|
+
NONE = "NONE",
|
|
33
|
+
/**
|
|
34
|
+
* El usuario puede elegir una persona específica o dejar que el sistema asigne.
|
|
35
|
+
*/
|
|
36
|
+
OPTIONAL = "OPTIONAL",
|
|
37
|
+
/**
|
|
38
|
+
* El usuario debe elegir una persona antes de ver los horarios disponibles.
|
|
39
|
+
*/
|
|
40
|
+
REQUIRED = "REQUIRED"
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* De dónde sale el correo al que se envía la confirmación de la cita.
|
|
44
|
+
*/
|
|
45
|
+
export declare enum BookingContactEmailSourceTypes {
|
|
46
|
+
/** Un paso de correo anterior del formulario: el picker lo lee y no pide el correo. */
|
|
47
|
+
STEP = "STEP",
|
|
48
|
+
/** El picker pide el correo en el agendamiento, validado y obligatorio. */
|
|
49
|
+
FIELD = "FIELD"
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* El correo de confirmación del paso. `stepId` es obligatorio cuando `source === STEP`.
|
|
53
|
+
*/
|
|
54
|
+
export interface BookingContactEmail {
|
|
55
|
+
source: BookingContactEmailSourceTypes;
|
|
56
|
+
stepId?: string;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Whose mailbox organizes the meeting of a confirmed appointment. The backend resolves it; forms only
|
|
60
|
+
* mirrors the field.
|
|
61
|
+
*/
|
|
62
|
+
export declare enum BookingOrganizerSourceTypes {
|
|
63
|
+
/** The mailbox of the agent who takes the appointment. */
|
|
64
|
+
AGENT = "AGENT",
|
|
65
|
+
/** A fixed mailbox, `email`. */
|
|
66
|
+
MAILBOX = "MAILBOX"
|
|
67
|
+
}
|
|
68
|
+
/** The organizer of the step's meetings. `email` is required when `source === MAILBOX`. */
|
|
69
|
+
export interface BookingOrganizer {
|
|
70
|
+
source: BookingOrganizerSourceTypes;
|
|
71
|
+
email?: string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Perfil de una persona cuyo calendario se puede agendar.
|
|
75
|
+
*/
|
|
76
|
+
export interface BookablePerson {
|
|
77
|
+
/** Identificador único de la persona en el sistema. */
|
|
78
|
+
id: string;
|
|
79
|
+
/** Nombre visible en la UI de selección. */
|
|
80
|
+
name: string;
|
|
81
|
+
/** URL del avatar / foto de perfil. */
|
|
82
|
+
avatarUrl?: string;
|
|
83
|
+
/** Rol o cargo visible al usuario (ej: "Técnico", "Asesor comercial"). */
|
|
84
|
+
role?: string;
|
|
85
|
+
/** Descripción breve opcional. */
|
|
86
|
+
description?: string;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Paso de tipo `BOOKING`.
|
|
90
|
+
* UI ligera: persona → día → slot de hora.
|
|
91
|
+
*/
|
|
92
|
+
export interface BookingStep extends GBaseStep {
|
|
93
|
+
type: FormStepTypes.BOOKING;
|
|
94
|
+
label: string;
|
|
95
|
+
description: string | null;
|
|
96
|
+
required: boolean;
|
|
97
|
+
/** Modalidad de la cita (presencial, virtual, híbrida). */
|
|
98
|
+
bookingMode: BookingMode;
|
|
99
|
+
/**
|
|
100
|
+
* Tipo de atención sobre el que se agenda (plantilla de evento de la organización).
|
|
101
|
+
*
|
|
102
|
+
* Cuando está definido, solo se ofrecen las franjas que el agente abrió para
|
|
103
|
+
* ese mismo tipo de atención; las franjas generales (jornada laboral, presencial
|
|
104
|
+
* o virtual) quedan fuera de la oferta. La precedencia es absoluta: mientras
|
|
105
|
+
* exista al menos una franja de este tipo en el horizonte consultado, no se
|
|
106
|
+
* ofrece ninguna franja general.
|
|
107
|
+
*/
|
|
108
|
+
idEventTemplate?: string;
|
|
109
|
+
/**
|
|
110
|
+
* Permite caer a las franjas generales cuando nadie abrió una franja para el
|
|
111
|
+
* `idEventTemplate` pedido.
|
|
112
|
+
*
|
|
113
|
+
* Solo entra en juego cuando no existe ninguna franja de ese tipo de atención en
|
|
114
|
+
* todo el horizonte; si existe aunque sea una, las generales siguen sin ofrecerse.
|
|
115
|
+
* Al caer a las generales se vuelve a aplicar la regla de `bookingMode`.
|
|
116
|
+
* No tiene efecto si no se definió `idEventTemplate`.
|
|
117
|
+
* @default false
|
|
118
|
+
*/
|
|
119
|
+
fallbackToGeneral?: boolean;
|
|
120
|
+
/**
|
|
121
|
+
* With several event templates on offer, the requester picks one before the day and the hour.
|
|
122
|
+
* With a single template there is nothing to pick.
|
|
123
|
+
* @default true
|
|
124
|
+
*/
|
|
125
|
+
requesterPicksType?: boolean;
|
|
126
|
+
/** Whose mailbox organizes the meeting; absent means the agent's. */
|
|
127
|
+
organizer?: BookingOrganizer;
|
|
128
|
+
/**
|
|
129
|
+
* Cómo se presenta la selección de persona al usuario.
|
|
130
|
+
* @default PersonSelectionMode.NONE
|
|
131
|
+
*/
|
|
132
|
+
personSelectionMode?: PersonSelectionMode;
|
|
133
|
+
/**
|
|
134
|
+
* Lista de personas agendables.
|
|
135
|
+
* Requerido si `personSelectionMode` es `OPTIONAL` o `REQUIRED`.
|
|
136
|
+
*/
|
|
137
|
+
persons?: BookablePerson[];
|
|
138
|
+
/**
|
|
139
|
+
* De dónde sale el correo de confirmación. El nombre del que agenda se pide siempre (o se reutiliza
|
|
140
|
+
* de un paso de nombre ya diligenciado); el correo lo lee de un paso anterior o lo pide el picker.
|
|
141
|
+
*/
|
|
142
|
+
contactEmail: BookingContactEmail;
|
|
143
|
+
/** Duración en minutos de cada slot de cita. */
|
|
144
|
+
durationMinutes: number;
|
|
145
|
+
/**
|
|
146
|
+
* Buffer en minutos entre citas consecutivas.
|
|
147
|
+
* @default 0
|
|
148
|
+
*/
|
|
149
|
+
bufferMinutes?: number;
|
|
150
|
+
/**
|
|
151
|
+
* Mínimo de horas de anticipación para agendar (ej: no se puede agendar con menos de 2h).
|
|
152
|
+
* @default 0
|
|
153
|
+
*/
|
|
154
|
+
minNoticeHours?: number;
|
|
155
|
+
/**
|
|
156
|
+
* Máximo de días hacia el futuro en los que se pueden ver slots disponibles.
|
|
157
|
+
* @default 30
|
|
158
|
+
*/
|
|
159
|
+
maxAdvanceDays?: number;
|
|
160
|
+
/**
|
|
161
|
+
* Minutos que se bloquea el slot mientras el usuario termina el formulario.
|
|
162
|
+
* Si no confirma a tiempo, el slot vuelve a estar disponible.
|
|
163
|
+
* @default 15
|
|
164
|
+
*/
|
|
165
|
+
temporaryLockMinutes?: number;
|
|
166
|
+
/**
|
|
167
|
+
* Separación entre las horas de inicio ofrecidas, anclada al reloj; divisor de 60.
|
|
168
|
+
* @default 15
|
|
169
|
+
*/
|
|
170
|
+
slotIntervalMinutes?: number;
|
|
171
|
+
/**
|
|
172
|
+
* Ofrece también el inicio de cada hueco que deja una reunión o una cita. Ausente cuenta como `true`.
|
|
173
|
+
* @default true
|
|
174
|
+
*/
|
|
175
|
+
fillGaps?: boolean;
|
|
176
|
+
size: 1 | 2 | 3 | 4;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* An event template the requester can pick, as the picker shows it. `id` is the offer's signed handle,
|
|
180
|
+
* never the template's id.
|
|
181
|
+
*/
|
|
182
|
+
export interface BookingEventTemplateOption {
|
|
183
|
+
id: string;
|
|
184
|
+
name: string;
|
|
185
|
+
description?: string;
|
|
186
|
+
durationMinutes: number;
|
|
187
|
+
bookingMode?: BookingMode;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Un slot de tiempo disponible para agendamiento.
|
|
191
|
+
* El backend calcula esto cruzando el calendario del profesional con el horario configurado.
|
|
192
|
+
*/
|
|
193
|
+
export interface BookingSlot {
|
|
194
|
+
/** ID único del slot (puede incluir personId, fecha y hora). */
|
|
195
|
+
id: string;
|
|
196
|
+
/** Hora de inicio en formato 24h `HH:mm`. */
|
|
197
|
+
startTime: string;
|
|
198
|
+
/** Hora de fin en formato 24h `HH:mm`. */
|
|
199
|
+
endTime: string;
|
|
200
|
+
/** Si el slot sigue disponible para ser reservado. */
|
|
201
|
+
available: boolean;
|
|
202
|
+
/** Instante ISO de inicio, cuando el host lo conoce; permite mostrar la hora en el reloj de quien agenda. */
|
|
203
|
+
start?: string;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Valor que se guarda tras completar un paso de tipo `BOOKING`.
|
|
207
|
+
*/
|
|
208
|
+
export interface BookingValue {
|
|
209
|
+
type: 'BOOKING_VALUE';
|
|
210
|
+
/** ID generado por el backend al bloquear el slot. */
|
|
211
|
+
slotId?: string;
|
|
212
|
+
/** Fecha de la cita en formato ISO `YYYY-MM-DD`. */
|
|
213
|
+
date: string;
|
|
214
|
+
/** Hora de inicio en formato 24h `HH:mm`. */
|
|
215
|
+
startTime: string;
|
|
216
|
+
/** Hora de fin en formato 24h `HH:mm`. */
|
|
217
|
+
endTime: string;
|
|
218
|
+
/** ID de la persona seleccionada o asignada. */
|
|
219
|
+
personId?: string;
|
|
220
|
+
/** Nombre de la persona (incluido si `personSelectionMode !== NONE`). */
|
|
221
|
+
personName?: string;
|
|
222
|
+
/** The event template the requester picked, as the hold answered it. */
|
|
223
|
+
eventTemplate?: {
|
|
224
|
+
name: string;
|
|
225
|
+
durationMinutes: number;
|
|
226
|
+
};
|
|
227
|
+
/** Nombre de contacto del que agenda (escrito en el picker o tomado de un paso de nombre). */
|
|
228
|
+
contactName?: string;
|
|
229
|
+
/** Correo de contacto del que agenda (escrito en el picker o tomado del paso de correo). */
|
|
230
|
+
contactEmail?: string;
|
|
231
|
+
/**
|
|
232
|
+
* Estado del slot en el ciclo de vida del formulario.
|
|
233
|
+
* - `PENDING`: bloqueado temporalmente, formulario sin enviar.
|
|
234
|
+
* - `CONFIRMED`: reserva en firme, formulario enviado.
|
|
235
|
+
*/
|
|
236
|
+
status: 'PENDING' | 'CONFIRMED';
|
|
237
|
+
/** Timestamp ISO hasta el que está bloqueado el slot (cuando `status === 'PENDING'`). */
|
|
238
|
+
lockedUntil?: string;
|
|
239
|
+
/**
|
|
240
|
+
* La cita que el backend creó al bloquear el slot. Junto con `hold`, es lo que el envío del
|
|
241
|
+
* formulario necesita para convertir el bloqueo en una cita en firme.
|
|
242
|
+
*/
|
|
243
|
+
appointment?: string;
|
|
244
|
+
/**
|
|
245
|
+
* Secreto que identifica al dueño del bloqueo. Solo quien lo tiene puede renovarlo, liberarlo o
|
|
246
|
+
* confirmarlo; viaja con el envío y el backend no lo conserva en el ticket.
|
|
247
|
+
*/
|
|
248
|
+
hold?: string;
|
|
249
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BookingFormStep — paso de agendamiento (flujo ligero).
|
|
3
|
+
*
|
|
4
|
+
* Permite que alguien externo agende en el calendario de una o varias personas.
|
|
5
|
+
* Flujo: (seleccionar persona) → seleccionar día → seleccionar hora.
|
|
6
|
+
*
|
|
7
|
+
* A diferencia del paso CALENDAR, este NO usa MUI X Scheduler:
|
|
8
|
+
* presenta una UI ligera de date-picker + lista de slots disponibles.
|
|
9
|
+
* La disponibilidad real la calcula el backend leyendo los calendarios referenciados.
|
|
10
|
+
*/
|
|
11
|
+
// ===========================================================================
|
|
12
|
+
// Enums
|
|
13
|
+
// ===========================================================================
|
|
14
|
+
/**
|
|
15
|
+
* Modalidad de la cita.
|
|
16
|
+
*/
|
|
17
|
+
export var BookingMode;
|
|
18
|
+
(function (BookingMode) {
|
|
19
|
+
/** Presencial — requiere ubicación física. */
|
|
20
|
+
BookingMode["IN_PERSON"] = "IN_PERSON";
|
|
21
|
+
/** Virtual / remota (Meet, Teams, Zoom, etc.). */
|
|
22
|
+
BookingMode["VIRTUAL"] = "VIRTUAL";
|
|
23
|
+
/** Híbrida — se acuerda entre las partes. */
|
|
24
|
+
BookingMode["HYBRID"] = "HYBRID";
|
|
25
|
+
})(BookingMode || (BookingMode = {}));
|
|
26
|
+
/**
|
|
27
|
+
* Cómo se maneja la selección de la persona a agendar.
|
|
28
|
+
*/
|
|
29
|
+
export var PersonSelectionMode;
|
|
30
|
+
(function (PersonSelectionMode) {
|
|
31
|
+
/**
|
|
32
|
+
* Un único calendario destino, sin selector de persona visible.
|
|
33
|
+
* El backend asigna automáticamente el slot disponible.
|
|
34
|
+
*/
|
|
35
|
+
PersonSelectionMode["NONE"] = "NONE";
|
|
36
|
+
/**
|
|
37
|
+
* El usuario puede elegir una persona específica o dejar que el sistema asigne.
|
|
38
|
+
*/
|
|
39
|
+
PersonSelectionMode["OPTIONAL"] = "OPTIONAL";
|
|
40
|
+
/**
|
|
41
|
+
* El usuario debe elegir una persona antes de ver los horarios disponibles.
|
|
42
|
+
*/
|
|
43
|
+
PersonSelectionMode["REQUIRED"] = "REQUIRED";
|
|
44
|
+
})(PersonSelectionMode || (PersonSelectionMode = {}));
|
|
45
|
+
/**
|
|
46
|
+
* De dónde sale el correo al que se envía la confirmación de la cita.
|
|
47
|
+
*/
|
|
48
|
+
export var BookingContactEmailSourceTypes;
|
|
49
|
+
(function (BookingContactEmailSourceTypes) {
|
|
50
|
+
/** Un paso de correo anterior del formulario: el picker lo lee y no pide el correo. */
|
|
51
|
+
BookingContactEmailSourceTypes["STEP"] = "STEP";
|
|
52
|
+
/** El picker pide el correo en el agendamiento, validado y obligatorio. */
|
|
53
|
+
BookingContactEmailSourceTypes["FIELD"] = "FIELD";
|
|
54
|
+
})(BookingContactEmailSourceTypes || (BookingContactEmailSourceTypes = {}));
|
|
55
|
+
/**
|
|
56
|
+
* Whose mailbox organizes the meeting of a confirmed appointment. The backend resolves it; forms only
|
|
57
|
+
* mirrors the field.
|
|
58
|
+
*/
|
|
59
|
+
export var BookingOrganizerSourceTypes;
|
|
60
|
+
(function (BookingOrganizerSourceTypes) {
|
|
61
|
+
/** The mailbox of the agent who takes the appointment. */
|
|
62
|
+
BookingOrganizerSourceTypes["AGENT"] = "AGENT";
|
|
63
|
+
/** A fixed mailbox, `email`. */
|
|
64
|
+
BookingOrganizerSourceTypes["MAILBOX"] = "MAILBOX";
|
|
65
|
+
})(BookingOrganizerSourceTypes || (BookingOrganizerSourceTypes = {}));
|