diff --git a/src/core/event-name.enum.ts b/src/core/event-name.enum.ts index e11322e..ea4937c 100644 --- a/src/core/event-name.enum.ts +++ b/src/core/event-name.enum.ts @@ -1,6 +1,7 @@ export const enum EventName { error = 'error', initPayment = 'initPayment', + initForm = 'initForm', getPaymentMethodsList = 'getPaymentMethodsList', getPaymentQuickMethods = 'getPaymentQuickMethods', getSavedMethods = 'getSavedMethods', diff --git a/src/core/form/field.interface.ts b/src/core/form/field.interface.ts new file mode 100644 index 0000000..51dae48 --- /dev/null +++ b/src/core/form/field.interface.ts @@ -0,0 +1,24 @@ +import { XpsBoolean } from '../xps-boolean.enum'; + +export interface Field { + name: string; + type: string; + value: string; + title: string; + example: string; + options?: unknown[]; + isMandatory: XpsBoolean; + isReadonly?: XpsBoolean; + isVisible: XpsBoolean; + tooltip?: string; + regex?: string; + validation_error_msg?: string; + label_hint?: string; + javascript: { + change: { + mutableFields: string[]; + staticParams: { [key: string]: string }; + params: string[]; + }; + }; +} diff --git a/src/core/form/form-configuration.interface.ts b/src/core/form/form-configuration.interface.ts new file mode 100644 index 0000000..145b02d --- /dev/null +++ b/src/core/form/form-configuration.interface.ts @@ -0,0 +1,5 @@ +export interface FormConfiguration { + paymentMethodId: number; + returnUrl: string; + country?: string; +} diff --git a/src/core/form/form.interface.ts b/src/core/form/form.interface.ts new file mode 100644 index 0000000..33569c6 --- /dev/null +++ b/src/core/form/form.interface.ts @@ -0,0 +1,5 @@ +import { Field } from './field.interface'; + +export interface Form { + fields: Field[]; +} diff --git a/src/core/guards/init-form-event-message.guard.ts b/src/core/guards/init-form-event-message.guard.ts new file mode 100644 index 0000000..6ab8ab7 --- /dev/null +++ b/src/core/guards/init-form-event-message.guard.ts @@ -0,0 +1,14 @@ +import { EventName } from '../../core/event-name.enum'; +import { Message } from '../../core/message.interface'; +import { Form } from '../form/form.interface'; +import { isEventMessage } from './event-message.guard'; + +export const isInitFormEventMessage = ( + messageData: unknown +): messageData is Message