@bolttech/form-engine 0.5.2 → 0.5.3

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asFormField-d85104b4.js","sources":["../../../libs/form-engine/src/core/constants/observer.ts","../../../libs/form-engine/src/core/constants/events.ts","../../../libs/form-engine/src/core/constants/index.ts","../../../libs/form-engine/src/adapters/react/useForceUpdate.ts","../../../libs/form-engine/src/core/managers/Base.ts","../../../libs/form-engine/src/core/managers/Scope.ts","../../../libs/form-engine/src/core/utils/object.ts","../../../libs/form-engine/src/core/utils/credit-card.ts","../../../libs/form-engine/src/core/utils/string.ts","../../../libs/form-engine/src/core/apis/formatters.ts","../../../libs/form-engine/src/core/apis/masks.ts","../../../libs/form-engine/src/core/apis/validations.ts","../../../libs/form-engine/src/core/apis/varOps.ts","../../../libs/form-engine/src/core/handlers/field/change.ts","../../../libs/form-engine/src/core/handlers/field/mount.ts","../../../libs/form-engine/src/core/handlers/field/blur.ts","../../../libs/form-engine/src/core/handlers/field/focus.ts","../../../libs/form-engine/src/core/handlers/common/templating.ts","../../../libs/form-engine/src/core/handlers/field/api.ts","../../../libs/form-engine/src/core/handlers/field/data.ts","../../../libs/form-engine/src/core/handlers/field/clearFields.ts","../../../libs/form-engine/src/core/handlers/field/visibilityConditions.ts","../../../libs/form-engine/src/core/handlers/field/htmlEventParser.ts","../../../libs/form-engine/src/core/handlers/field/formatters.ts","../../../libs/form-engine/src/core/events/ObserverError.ts","../../../libs/form-engine/src/core/handlers/field/filter.ts","../../../libs/form-engine/src/core/handlers/field/masks.ts","../../../libs/form-engine/src/core/handlers/field/validations.ts","../../../libs/form-engine/src/core/handlers/form/hooks.ts","../../../libs/form-engine/src/core/handlers/form/steps.ts","../../../libs/form-engine/src/core/handlers/form/validate.ts","../../../libs/form-engine/src/core/handlers/form/visibilityConditions.ts","../../../libs/form-engine/src/core/handlers/form/templating.ts","../../../libs/form-engine/src/core/handlers/flows.ts","../../../libs/form-engine/src/core/managers/Field.ts","../../../libs/form-engine/src/core/managers/Form.ts","../../../libs/form-engine/src/core/events/events.types.ts","../../../libs/form-engine/src/core/managers/Factory.ts","../../../libs/form-engine/src/adapters/react/Field.tsx","../../../libs/form-engine/src/adapters/react/Submit.tsx","../../../libs/form-engine/src/adapters/react/context.tsx","../../../libs/form-engine/src/adapters/react/Form.tsx","../../../libs/form-engine/src/adapters/react/asFormField.tsx","../../../libs/form-engine/src/adapters/react/useForm.tsx"],"sourcesContent":["import { TEventsKeys } from '@core';\nimport { EEVents } from '@core/constants';\n\nconst EXTRACT_EVENT_NAMESPACE = (event: TEventsKeys): EEVents =>\n (event.split('/')[1] as EEVents) || ('' as EEVents);\n\nconst BUILD_EVENT = (\n event: EEVents,\n namespace?: string,\n key?: string,\n): EEVents => {\n if (!namespace) return event;\n\n return (event + '/' + namespace + (key ? '/' + key : '')) as EEVents;\n};\n\nconst ALL_NAMESPACE_EVENTS = (event: TEventsKeys) =>\n new RegExp(`^(${event}).*$`, 'g') as unknown as EEVents;\n\nconst EXTRACT_CORE_NAMESPACE = (event: TEventsKeys): EEVents =>\n Array.isArray(event.split('/'))\n ? (event.split('/')[0] as EEVents)\n : (event as EEVents);\n\nexport {\n ALL_NAMESPACE_EVENTS,\n BUILD_EVENT,\n EXTRACT_EVENT_NAMESPACE,\n EXTRACT_CORE_NAMESPACE,\n};\n","import { TEventsKeys } from '@core/types';\n\nexport const enum EEVents {\n ON_FIELD_VALIDATION_TOGGLE = 'ON_FIELD_VALIDATION_TOGGLE',\n ON_FIELD_MOUNT = 'ON_FIELD_MOUNT',\n ON_FIELD_CHANGE = 'ON_FIELD_CHANGE',\n ON_FIELD_BLUR = 'ON_FIELD_BLUR',\n ON_FIELD_FOCUS = 'ON_FIELD_FOCUS',\n ON_FIELD_REHYDRATE = 'ON_FIELD_REHYDRATE',\n ON_FIELD_CLICK = 'ON_FIELD_CLICK',\n\n RUN_FIELD_VALIDATIONS = 'RUN_FIELD_VALIDATIONS',\n RUN_FIELD_MASKS = 'RUN_FIELD_MASKS',\n RUN_FIELD_FORMATTERS = 'RUN_FIELD_FORMATTERS',\n\n ON_SCOPE_CHANGE = 'ON_SCOPE_CHANGE',\n\n ON_FORM_REHYDRATE = 'ON_FORM_REHYDRATE',\n ON_FORM_SUBMIT = 'ON_FORM_SUBMIT',\n ON_FORM_MOUNT = 'ON_FORM_MOUNT',\n ON_FORM_UN_MOUNT = 'ON_FORM_UN_MOUNT',\n ON_FORM_DATA = 'ON_FORM_DATA',\n\n NAVIGATE_STEP = 'NAVIGATE_STEP',\n NAVIGATE_STEP_FORWARD = 'NAVIGATE_STEP_FORWARD',\n NAVIGATE_STEP_BACK = 'NAVIGATE_STEP_BACK',\n\n VALIDATE_FORM = 'VALIDATE_FORM',\n LOG = 'LOG',\n}\n\nexport const CoreEvents: Record<TEventsKeys, TEventsKeys> = {\n ON_FIELD_VALIDATION_TOGGLE: 'ON_FIELD_VALIDATION_TOGGLE',\n ON_FIELD_MOUNT: 'ON_FIELD_MOUNT',\n ON_FIELD_CHANGE: 'ON_FIELD_CHANGE',\n ON_FIELD_BLUR: 'ON_FIELD_BLUR',\n ON_FIELD_FOCUS: 'ON_FIELD_FOCUS',\n ON_FIELD_REHYDRATE: 'ON_FIELD_REHYDRATE',\n ON_FIELD_CLICK: 'ON_FIELD_CLICK',\n RUN_FIELD_VALIDATIONS: 'RUN_FIELD_VALIDATIONS',\n RUN_FIELD_FORMATTERS: 'RUN_FIELD_FORMATTERS',\n\n RUN_FIELD_MASKS: 'RUN_FIELD_MASKS',\n ON_SCOPE_CHANGE: 'ON_SCOPE_CHANGE',\n\n ON_FORM_REHYDRATE: 'ON_FORM_REHYDRATE',\n ON_FORM_SUBMIT: 'ON_FORM_SUBMIT',\n ON_FORM_MOUNT: 'ON_FORM_MOUNT',\n ON_FORM_UN_MOUNT: 'ON_FORM_UN_MOUNT',\n ON_FORM_DATA: 'ON_FORM_DATA',\n\n NAVIGATE_STEP: 'NAVIGATE_STEP',\n NAVIGATE_STEP_FORWARD: 'NAVIGATE_STEP_FORWARD',\n NAVIGATE_STEP_BACK: 'NAVIGATE_STEP_BACK',\n\n VALIDATE_FORM: 'VALIDATE_FORM',\n\n LOG: 'LOG',\n};\n","const DEFAULT_FORM_ID = 'default_form_id';\nconst DEFAULT_FORM_HOOK_ID = 'default_form_hook_id';\n\nexport {\n ALL_NAMESPACE_EVENTS,\n BUILD_EVENT,\n EXTRACT_EVENT_NAMESPACE,\n EXTRACT_CORE_NAMESPACE,\n} from '@core/constants/observer';\nexport { CoreEvents, EEVents } from '@core/constants/events';\nexport { DEFAULT_FORM_ID, DEFAULT_FORM_HOOK_ID };\n","import { useState } from 'react';\n\ntype TProps = [value: unknown, dispatch: () => void];\n\nconst useForceUpdate = (): TProps => {\n const [value, setValue] = useState(0); // integer state\n return [value, () => setValue((value) => value + 1)];\n // An function that increment 👆🏻 the previous state like here\n // is better than directly setting `value + 1`\n};\n\nexport { useForceUpdate };\n","import { Observer } from '@core/events';\nimport { EFlowLogging, TEventPublishPayload } from '@core/events/events.types';\nimport { TEventsKeys } from '@core';\n\nclass Base {\n #observer: Observer;\n #debounceQueue: Record<string, NodeJS.Timer> = {};\n subscriptions: { [x in TEventsKeys]?: () => void };\n debounceTime = 50;\n\n constructor(observer: Observer) {\n this.#observer = observer;\n\n this.publish = this.publish.bind(this);\n this.subscribe = this.subscribe.bind(this);\n this.debounce = this.debounce.bind(this);\n this.subscribeBulk = this.subscribeBulk.bind(this);\n this.subscriptions = {};\n }\n\n subscribe(event: TEventsKeys, cb: (...data: any) => void) {\n if (this.subscriptions[event]) {\n this.subscriptions[event]!();\n }\n this.subscriptions[event] = this.#observer.subscribe(event, cb);\n }\n\n subscribeBulk(events: TEventsKeys[], cb: (...data: any) => void) {\n events.forEach((event) => this.subscribe(event, cb));\n }\n\n publish(events: TEventsKeys, data?: TEventPublishPayload) {\n this.#observer.publish(events, data);\n }\n publishFor(events: TEventsKeys): any {\n return async (data = {}) => {\n return await this.#observer.publish(events, data);\n };\n }\n\n debounce = async (\n fn: any,\n debounceTime = this.debounceTime,\n ): Promise<unknown> => {\n return new Promise((resolve) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n if (this.#debounceQueue[fn]) [clearTimeout(this.#debounceQueue[fn])];\n\n this.#debounceQueue[fn] = setTimeout(() => {\n clearTimeout(this.#debounceQueue[fn]);\n resolve(fn());\n }, debounceTime);\n });\n };\n\n logError(file: EFlowLogging, event: string, method: string, error: unknown) {\n this.#observer.logError(file, event, method, error);\n }\n\n logInfo(\n file: EFlowLogging,\n event: string,\n method: string,\n extraData?: unknown,\n ) {\n this.#observer.logInfo(file, event, method, extraData);\n }\n}\n\nexport default Base;\n","import { TScope, TSetGlobalScope } from '@core/types';\nimport { Observer } from '@core/events';\nimport Base from '@core/managers/Base';\nimport { ALL_NAMESPACE_EVENTS, BUILD_EVENT } from '@core';\nimport { EEVents } from '@core/constants';\n\nclass Scope extends Base {\n #scope: TScope = {\n global: {},\n api: {},\n hooks: {},\n configs: {},\n fields: {},\n };\n\n constructor(observer: Observer) {\n super(observer);\n }\n\n get scope() {\n return this.#scope || {};\n }\n\n getGlobalScope<T extends TScope>(namespace?: string, key?: string): T {\n if (namespace && !key && this.scope[namespace])\n return this.scope[namespace];\n if (namespace && key && this.scope[namespace])\n return this.scope[namespace][key];\n\n return this.#scope as T;\n }\n\n set initialScope(data: TScope) {\n this.#scope = data || this.#scope;\n }\n\n set globalScope({ namespace, key, data }: TSetGlobalScope) {\n if (!key) {\n this.#scope[namespace] = data;\n }\n\n if (key && !this.#scope[namespace]) {\n this.#scope[namespace] = {\n [key]: data,\n };\n }\n if (this.#scope[namespace] && key) {\n this.#scope[namespace] = {\n ...this.#scope[namespace],\n [key]: data,\n };\n }\n\n // If no key is given, we will build one event based on regex to match all keys for a given namespace\n const eventName = key\n ? BUILD_EVENT(EEVents.ON_SCOPE_CHANGE, namespace, key)\n : ALL_NAMESPACE_EVENTS(\n BUILD_EVENT(EEVents.ON_SCOPE_CHANGE, namespace, key),\n );\n this.publish(eventName, { scope: this.scope, namespace, key });\n\n this.publish(EEVents.ON_SCOPE_CHANGE);\n }\n}\n\nexport default Scope;\n","/**\n * Encapsulates in a given object, at a given path the provided value\n *\n * @example\n * ORIGINAL object\n *\n * encapsulateIn({maintain: 'spread_me'}, 'a.b.c','test')\n *\n * RESULT\n *\n * {\n * maintain: 'spread_me',\n * c: 'test\n * }\n * }\n *\n * @param origin - The original object where the new value will be appended\n * @param path - The path at which the new value will be placed\n * @param value - The new value\n * @returns One new object with the new value at the provided path merged with the given object\n */\nconst encapsulateIn = (origin: Record<string, unknown>, path: string, value: string): Record<string, unknown> => {\n const parts = path.split('.');\n if (parts.length === 1) {\n return { ...origin, [path]: value };\n }\n const getNewPart = (parts: string[], subObject: Record<string, unknown>): Record<string, unknown> => {\n const clonedParts = [...parts];\n clonedParts.splice(0, 1);\n const part =\n parts.length !== 1\n ? getNewPart(clonedParts, subObject ? (subObject[parts[0]] as Record<string, unknown>) : {})\n : value;\n return {\n ...subObject,\n [parts[0]]: part,\n };\n };\n return getNewPart(parts, origin);\n};\n\nconst getValueByPath = (\n object: Record<string, any> = {},\n path = '',\n): string | number | boolean | Record<string, unknown> => {\n const parts = path.split('.');\n return parts.reduce((acc, part): any => (acc || {})[part], object);\n};\n\nexport { encapsulateIn, getValueByPath };\n","import creditCardType from 'credit-card-type';\n\nexport interface ICreditCardType {\n niceType: string;\n type: string;\n patterns: number[] | [number[]];\n gaps: number[];\n lengths: number[];\n code: {\n size: number;\n name: string;\n };\n matchStrength?: number;\n}\n\ntype TGetTypeCard = [ICreditCardType, string];\n\nexport const getTypeCard = (value: string, availableOptions?: string[]): TGetTypeCard => {\n const rawValue = removeGaps(value.toString());\n const types = creditCardType(rawValue);\n const selected = availableOptions?.length\n ? types?.filter(({ type: id1 }) => availableOptions.some((id2) => id2 === id1))[0]\n : types[0];\n\n return [selected, rawValue];\n};\n\nconst removeGaps = (value: string): string => value?.replace(/ /g, '');\n\nconst addGaps = (value: string, gaps = []): string => {\n const [regexString, replaceString] = gaps.reduce(\n ([regexString, replaceString], offset, i) => {\n const lastOffset = gaps[i - 1] || 0;\n const digitNumber = offset - lastOffset;\n\n return [`${regexString}([0-9]{0,${digitNumber}})`, `${replaceString}$${i + 1} `];\n },\n ['', ''],\n );\n\n return value.replace(new RegExp(regexString), replaceString).trim();\n};\n\nexport const formatValue = (value: string, type: ICreditCardType): string => {\n const DEFAULT_LENGTH = 19;\n\n return type ? addGaps(value.slice(0, type?.lengths[0]), type.gaps as []) : value.slice(0, DEFAULT_LENGTH);\n};\n","function hasJsonStructure(str) {\n if (typeof str !== 'string') return false;\n try {\n const result = JSON.parse(str);\n const type = Object.prototype.toString.call(result);\n return type === '[object Object]' || type === '[object Array]';\n } catch (err) {\n return false;\n }\n}\n\nconst hasTemplate = (value: string) => {\n return /\\$\\{(.*)\\}.*/g.test(value);\n};\n\nexport { hasJsonStructure, hasTemplate };\n","/**\n *\n * This file will allow to expose functions to be used as formatters in schema and HOC\n *\n * Since it is a formatter, you can also expose its \"undo\" function that will allow form to make logic on the value without the\n * formatter applied\n *\n * EG:\n * splitter -> 22/33/4444\n * undo_splitter -> 22334444\n *\n * This undo will be called when the form is filtering the data on the input if it has formatters configured\n */\nimport { TSplitterFormatterValue, TSchemaFormatters } from '@core/types';\nimport * as utils from '@core/utils';\n\ntype TFormatterFunction = (data: {\n value: string | number;\n formatterValue: unknown;\n onBlur?: boolean;\n}) => string;\n\nconst splitter = ({\n value,\n formatterValue,\n}: {\n value: string;\n formatterValue: TSplitterFormatterValue;\n}): string => {\n if (!value) return value;\n\n let formattedValue = undo_splitter({ value, formatterValue });\n formatterValue.forEach((formatter): void => {\n if (formatter.position >= value.length) {\n return;\n }\n\n formattedValue =\n formattedValue.slice(0, formatter.position) +\n formatter.value +\n formattedValue.slice(formatter.position, formattedValue?.length);\n });\n return formattedValue;\n};\n\nconst undo_splitter = ({\n value,\n formatterValue,\n}: {\n value: string;\n formatterValue: TSplitterFormatterValue;\n}): string => {\n if (!value) return value;\n let originalValue = '';\n let formattersApplied = 0;\n formatterValue.forEach((formatter, i) => {\n const nextStartingIndex = i === 0 ? i : formatterValue[i - 1].position + 1;\n if (value[formatter.position] == formatter.value) {\n formattersApplied++;\n }\n originalValue += value.slice(nextStartingIndex, formatter.position);\n });\n originalValue += value.slice(originalValue.length + formattersApplied);\n\n return originalValue;\n};\n\nconst capitalize = ({ value }: { value: string }): string => {\n if (!value) return value;\n\n return value.charAt(0).toUpperCase() + value.slice(1);\n};\n\nconst upperCase = ({ value }: { value: string }): string => {\n if (!value) return value;\n\n return value.toUpperCase();\n};\n\nconst gapsCreditCard = ({\n value,\n formatterValue,\n}: {\n value: string;\n formatterValue: string[];\n}): string | undefined => {\n if (!value) return;\n\n const [type, rawValue] = utils.creditCard.getTypeCard(value, formatterValue);\n return utils.creditCard.formatValue(rawValue, type);\n};\n\nconst onlyNumbers = ({ value }: { value: string }) => {\n return value.replace(/([^\\d])+/gim, '');\n};\n\nconst onlyLetters = ({ value }: { value: string }) => {\n return value.replace(/([0-9:\\s/-])+/g, '');\n};\n\nconst formatters: Record<string, unknown> = {\n splitter,\n undo_splitter,\n capitalize,\n upperCase,\n gapsCreditCard,\n onlyNumbers,\n onlyLetters,\n};\n\nconst run = (\n value: any,\n componentFormatters: TSchemaFormatters,\n undo?: boolean,\n): string | number => {\n let newValue = value;\n\n Object.keys(componentFormatters).forEach((key: string): void => {\n const formatterValue = (componentFormatters as Record<string, unknown>)[\n key\n ];\n const formatterFn = formatters[undo ? `undo_${key}` : key];\n if (!formatterFn) return;\n\n newValue = (formatterFn as TFormatterFunction)({\n value: newValue,\n formatterValue,\n });\n });\n return newValue;\n};\n\nexport { run };\n","import { TComponentMasks } from '@core/types';\n\ntype TMaskGeneric = {\n to: number;\n from: number;\n mask: string;\n}[];\n\ntype TCurrencyMask = {\n locale: string;\n currency: string;\n};\n\ntype TMaskFunction = (data: {\n value: string | number;\n maskValue: unknown;\n}) => string;\n\nconst hideCardNumber = ({ value }: { value: string }) => {\n const maskValue: TMaskGeneric = [\n {\n from: 1,\n to: 4,\n mask: 'x',\n },\n {\n from: 6,\n to: 9,\n mask: 'x',\n },\n {\n from: 11,\n to: 14,\n mask: 'x',\n },\n {\n from: 16,\n to: 19,\n mask: 'x',\n },\n ];\n return generic({ value, maskValue });\n};\n\nconst cardMask = ({ value }: { value: string }) => {\n return value\n .replace(/[^\\dA-Z]/g, '')\n .replace(/(.{4})/g, '$1 ')\n .trim();\n};\n\nconst cardDate = ({ value }: { value: string }) => {\n const fixedValue = value.replace(/\\D/g, '');\n const valZeroTwo = fixedValue.slice(0, 2);\n\n return fixedValue.length >= 5\n ? `${valZeroTwo}/${fixedValue.slice(2, 4)}`\n : fixedValue.length >= 3\n ? `${valZeroTwo}/${fixedValue.slice(2)}`\n : fixedValue;\n};\n\nconst feinMask = ({ value }: { value: string }) => {\n const fixedValue = value.replace(/\\D/g, '');\n const valZeroTwo = fixedValue.slice(0, 2);\n\n return fixedValue.length >= 5\n ? `${valZeroTwo}-${fixedValue.slice(2, 9)}`\n : fixedValue.length >= 3\n ? `${valZeroTwo}-${fixedValue.slice(2)}`\n : fixedValue;\n};\n\nconst currencyMask = ({\n value = '',\n maskValue,\n}: {\n value: string;\n maskValue: TCurrencyMask;\n}) => {\n const replacedValue = value.replace(/[^0-9]/g, '');\n\n return new Intl.NumberFormat(maskValue.locale, {\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n style: 'currency',\n currency: maskValue.currency,\n }).format(+replacedValue);\n};\n\nconst cardNumber = ({ value }: { value: string }) => {\n const maskValue: TMaskGeneric = [\n {\n from: 1,\n to: 4,\n mask: 'x',\n },\n {\n from: 6,\n to: 9,\n mask: 'x',\n },\n {\n from: 11,\n to: 14,\n mask: 'x',\n },\n {\n from: 16,\n to: 19,\n mask: 'x',\n },\n ];\n return generic({ value, maskValue });\n};\n\nconst generic = ({\n value = '',\n maskValue,\n}: {\n value: string;\n maskValue: TMaskGeneric;\n}) => {\n let masked = value;\n\n maskValue.forEach((item) => {\n const { to = masked.length, mask } = item;\n let { from } = item;\n\n if (to > value.length - 1) return;\n if (from === 0) {\n from = 1;\n }\n\n const maskedPortion = new Array(to - from + 2).join(mask);\n masked = masked.slice(0, from - 1) + maskedPortion + masked.slice(to);\n });\n\n return masked;\n};\n\ntype TReplaceProps = {\n value: string;\n maskValue: string | number;\n};\n\nconst replaceAll = ({ value = '', maskValue }: TReplaceProps) => {\n let targetReplaceMask = maskValue;\n if (!targetReplaceMask || typeof value !== 'string') return value;\n\n if (typeof targetReplaceMask === 'number') {\n targetReplaceMask = targetReplaceMask?.toString();\n }\n return new Array(value.length + 1).join(targetReplaceMask);\n};\n\nconst masks: Record<string, unknown> = {\n generic,\n cardNumber,\n hideCardNumber,\n cardMask,\n cardDate,\n currencyMask,\n feinMask,\n replaceAll,\n};\n\nconst run = (value: any, componentMasks: TComponentMasks): string => {\n let newValue = value;\n\n Object.keys(componentMasks).forEach((key: string): void => {\n const maskValue = (componentMasks as Record<string, unknown>)[key];\n const formatterFn = masks[key];\n if (!formatterFn) return;\n\n newValue = (formatterFn as TMaskFunction)({\n value: newValue,\n maskValue,\n });\n });\n return newValue;\n};\n\nexport { run };\n","import {\n TError,\n TErrorMessages,\n TErrors,\n TFieldData,\n TGenericValidationRule,\n TValidationDateFormats,\n TValidationDateOperators,\n TVAvailableValidations,\n} from '@core/types';\nimport * as utils from '@core/utils';\n\ntype TRuleValue = string | number | boolean | undefined;\ntype TValidationValue = string | number | boolean | (() => boolean);\ntype TRuleFunction = (data: TErrorArgumentsGeneric) => TError;\n\ntype TValidationArguments<T, I> = {\n value: T;\n values?: Record<string, unknown>;\n validationValue: I;\n errorMessage?: string;\n};\n\ntype TErrorArgumentsGeneric = {\n value: TRuleValue;\n values?: Record<string, unknown>;\n validationValue: TValidationValue;\n errorMessage: string;\n};\n\ninterface TCallback {\n value: string;\n validationValue: (value: string | number) => {\n errorMessage: string;\n fail: boolean;\n };\n}\n\ninterface IValidationCreditCard {\n value: string;\n validationValue: string[];\n}\n\nexport interface ICustomValidationValue {\n from: number;\n to: number;\n validations: Record<string, any>;\n}\n\ntype TErrorReturn = {\n fail: boolean;\n message?: string;\n metadata?: Record<string, unknown>;\n};\n// ERROR HELPERS\nconst searchFailedError = (errors: TErrors) => {\n const defaultResponse = { fail: false };\n\n if (!errors) return defaultResponse;\n return Object.keys(errors).reduce((acc, key) => {\n return errors[key].fail ? errors[key] : acc;\n }, defaultResponse);\n};\n\n// VALIDATIONS\n\nconst length = ({\n value,\n validationValue,\n}: TErrorArgumentsGeneric): TErrorReturn => {\n let targetValue = value;\n // We want length even if it is a numeric\n if (typeof targetValue !== 'string') {\n targetValue = value?.toString();\n }\n\n return { fail: !value || targetValue?.length === validationValue };\n};\n\nconst greaterThan = ({\n value,\n validationValue,\n}: TValidationArguments<string, string>): TErrorReturn => {\n return { fail: !value || parseInt(value) <= parseInt(validationValue) };\n};\n\nconst lessThan = ({\n value,\n validationValue,\n}: TValidationArguments<string, string>): TErrorReturn => {\n return { fail: !value || parseInt(value) >= parseInt(validationValue) };\n};\n\nconst maxLength = ({\n value = '',\n validationValue,\n}: TValidationArguments<string, number>): TErrorReturn => {\n let targetValue = value;\n // We want length even if it is a numeric\n if (Number.isInteger(targetValue)) {\n targetValue = value.toString();\n }\n\n return {\n fail: targetValue.length > validationValue,\n };\n};\n\nconst minLength = ({\n value = '',\n validationValue,\n}: TValidationArguments<string, number>): TErrorReturn => {\n let targetValue = value;\n // We want length even if it is a numeric\n if (Number.isInteger(targetValue)) {\n targetValue = value.toString();\n }\n\n return {\n fail: targetValue.length < validationValue,\n };\n};\n\nconst required = ({\n value,\n validationValue,\n}: TValidationArguments<string, boolean>): TErrorReturn => {\n return {\n fail: validationValue && !value,\n };\n};\n\nconst value = ({\n value,\n validationValue,\n}: TValidationArguments<TRuleValue, TValidationValue>): TErrorReturn => {\n return { fail: value !== validationValue };\n};\n\nconst regex = ({\n value,\n validationValue,\n}: TValidationArguments<string, string>): TErrorReturn => {\n const regex = new RegExp(validationValue);\n const fail = !regex.test(value);\n\n return { fail };\n};\n\nconst email = ({\n value,\n}: TValidationArguments<string, string>): TErrorReturn => {\n const regex =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n const fail = !regex.test(value as string);\n\n return { fail };\n};\n\nconst isCreditCard = ({\n value,\n validationValue,\n}: IValidationCreditCard): TErrorReturn => {\n if (!value) return { fail: true };\n\n const [type] = utils.creditCard.getTypeCard(value, validationValue);\n\n return {\n fail: !type,\n metadata: {\n typeCard: type?.type,\n creditCardCC: type?.code?.name,\n creditCardCCSize: type?.code?.size,\n },\n };\n};\n\nconst isCreditCodeMatch = ({\n value,\n validationValue,\n}: TValidationArguments<\n string,\n { numberCard: string; availableOptions: string[] }\n>): TErrorReturn => {\n if (!value) return { fail: true };\n const [type] = utils.creditCard.getTypeCard(\n validationValue.numberCard,\n validationValue.availableOptions,\n );\n return { fail: type?.code?.size !== value.length };\n};\n\nconst isCreditCardAndLength = ({\n value,\n validationValue,\n}: IValidationCreditCard): TErrorReturn => {\n if (!value) return { fail: true };\n\n const [type, rawValue] = utils.creditCard.getTypeCard(value, validationValue);\n const fail = type && !type.lengths.includes(rawValue.length);\n return { fail };\n};\n\nconst url = ({ value }: TValidationArguments<string, string>): TErrorReturn => {\n const regex =\n /[(http(s)?)://(www.)?a-zA-Z0-9@:%._+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_+.~#?&//=]*)/gi;\n const fail = !regex.test(value as string);\n\n return { fail };\n};\n\nconst onlyLetters = ({\n value,\n}: TValidationArguments<string, string>): TErrorReturn => {\n const fail = !/^[a-zA-Z\\s]*$/.test(value);\n\n return { fail };\n};\n\nconst customValidation = ({\n value,\n validationValue,\n}: TValidationArguments<string, ICustomValidationValue[]>): TErrorReturn =>\n generic({ value, validationValue });\n\n/* - Allow to use specific validations for specific position caracters\n *\n * customValidation: [\n * {\n * from: 0,\n * to: 2,\n * validations: {\n * greaterThan: date.getMonth(),\n * lessThan: '13',\n * }\n * },\n * {\n * from: 3,\n * to: 5,\n * validations: {\n * greaterThan: date.getFullYear().toString().substr(-2) - 1,\n * }\n * },\n * ],\n */\n\nconst generic = ({\n value = '',\n validationValue,\n}: TValidationArguments<string, ICustomValidationValue[]>): TErrorReturn => {\n const fail = validationValue.some((item) => {\n const { to, from, validations } = item;\n\n const substring = value.substring(to, from);\n return hasError(run(substring, validations));\n });\n return { fail };\n};\n\nconst notAllowSpaces = ({\n value,\n}: TValidationArguments<string, boolean>): TErrorReturn => {\n const fail = /\\s/.test(value);\n return { fail };\n};\n\nconst callback = ({ value, validationValue }: TCallback): TErrorReturn => {\n const result = validationValue(value);\n\n return {\n message: result.errorMessage,\n fail: result.fail,\n };\n};\n\nconst isNumber = ({\n value,\n}: TValidationArguments<string, boolean>): TErrorReturn => {\n const fail = !!value && !/^[0-9\\s]*$/.test(value);\n return { fail };\n};\n\nconst notEmpty = ({\n value,\n}: TValidationArguments<string, boolean>): TErrorReturn => {\n return { fail: !value.trim().length };\n};\n\n/**\n * Check if has tralling/landing spaces.\n */\nconst hasNoExtraSpaces = ({\n value,\n}: TValidationArguments<string, boolean>): TErrorReturn => {\n const regexToCheckTrailingSpaces = '^[A-Za-z0-9.-]+(?: +[A-Za-z0-9.-]+)*$';\n\n const { fail } = regex({\n value,\n validationValue: regexToCheckTrailingSpaces,\n errorMessage: '',\n });\n\n return { fail };\n};\n\nconst numericRange = ({\n value,\n validationValue,\n}: TValidationArguments<\n number,\n { start: number; end: number }\n>): TErrorReturn => {\n const replacedValue = String(value).replace(/[^0-9]/g, '');\n const fail =\n !replacedValue ||\n !Number.isInteger(parseInt(replacedValue.toString())) ||\n +replacedValue > validationValue.end ||\n +replacedValue < validationValue.start;\n\n return {\n fail,\n };\n};\n\nconst isInTheList = ({\n value,\n validationValue,\n}: TValidationArguments<\n string | number,\n string[] | number[]\n>): TErrorReturn => {\n if (!value || !Array.isArray(validationValue)) return { fail: true };\n return {\n fail: !validationValue.some(\n (code) => code === value || JSON.stringify(code) === value,\n ),\n };\n};\n\nconst sequentialNumber = ({\n value,\n}: TValidationArguments<TRuleValue, boolean>) => {\n const numbers = '0123456789';\n const numbersRev = '9876543210';\n const replacedValue = String(value).replace(/[^0-9]/g, '');\n const fail = !(\n numbers.indexOf(replacedValue) === -1 &&\n numbersRev.indexOf(replacedValue) === -1\n );\n\n return { fail };\n};\n\nconst repeatedNumbers = ({\n value,\n}: TValidationArguments<TRuleValue, boolean>) => {\n const replacedValue = String(value).replace(/[^0-9]/g, '');\n const regex = /\\b(\\d)\\1+\\b/gm;\n const fail = regex.test(replacedValue);\n\n return { fail };\n};\n\nconst path = ({\n value,\n validationValue,\n}: TValidationArguments<\n Record<string, unknown>,\n Record<string, unknown>\n>): TErrorReturn => {\n const searchErrorInPath = (path: string) => {\n const valueForPath = utils.object.getValueByPath(value, path as string);\n if (validationValue.preventUnMountValidation && !(path in value)) {\n return { fail: false };\n }\n\n const validationsResult = run(valueForPath as string, validationValue);\n\n return searchFailedError(validationsResult);\n };\n if (Array.isArray(validationValue.paths)) {\n return validationValue.paths.reduce((acc, path) => {\n const res = searchErrorInPath(path);\n if (res.fail) {\n return res;\n }\n return acc;\n }, {});\n }\n\n return searchErrorInPath(validationValue.path as string);\n};\n\nconst fields = ({\n values,\n validationValue,\n}: {\n validationValue: Pick<TVAvailableValidations, 'fields'>['fields'];\n values: TFieldData;\n}) => ({\n fail: validationValue?.set[validationValue.rule]((validation) => {\n return hasError(\n run(\n values[validation.fieldName]?.value as string,\n validation.validations,\n ),\n );\n }),\n});\n\nconst customNameRule = ({\n value,\n validationValue,\n}: TValidationArguments<TRuleValue, TGenericValidationRule>) => {\n if (typeof validationValue !== 'object') return { fail: false };\n return {\n fail: hasError(run(value, validationValue)),\n };\n};\n\nconst between = ({\n value,\n validationValue,\n}: TValidationArguments<\n string,\n Pick<TVAvailableValidations, 'between'>['between']\n>) => {\n let fail = false;\n\n if (\n validationValue?.dates?.length != 2 &&\n (!validationValue?.start || !validationValue?.end)\n ) {\n return {\n fail: false,\n };\n }\n\n if (validationValue.dates) {\n for (const validation of validationValue.dates) {\n const result = date({ value, validationValue: validation });\n\n if (result.fail) {\n fail = true;\n break;\n }\n }\n } else {\n const parsedValue = parseInt(value);\n\n if (validationValue.isIncludedBoundaries) {\n if (\n parsedValue < validationValue.start ||\n parsedValue > validationValue.end\n ) {\n fail = true;\n }\n } else {\n if (\n parsedValue <= validationValue.start ||\n parsedValue >= validationValue.end\n ) {\n fail = true;\n }\n }\n }\n\n return { fail };\n};\n\nconst date = ({\n value = '',\n validationValue,\n}: TValidationArguments<\n string,\n Pick<TVAvailableValidations, 'date'>['date']\n>): TErrorReturn => {\n if (!validationValue?.target?.value && !validationValue?.origin?.intervals) {\n return {\n fail: false,\n };\n }\n const dateRearangeMapper: Record<\n TValidationDateFormats,\n (value: string) => string\n > = {\n DDMMYYYY: (value: string) => {\n const dateParts = value.split(value.includes('/') ? '/' : '-');\n return `${dateParts[1]}/${dateParts[0]}/${dateParts[2]}`;\n },\n YYYYMMDD: (value: string) => {\n const dateParts = value.split(value.includes('/') ? '/' : '-');\n return `${dateParts[1]}/${dateParts[2]}/${dateParts[0]}`;\n },\n YYYYDDMM: (value: string) => {\n const dateParts = value.split(value.includes('/') ? '/' : '-');\n return `${dateParts[2]}/${dateParts[1]}/${dateParts[0]}`;\n },\n MMDDYYYY: (value: string) => value,\n timestamp: (value: string) => new Date(value).toString(),\n };\n\n const getIntervalsDate = (date, intervals: any) => {\n const intervalsMapper = {\n years: (date: Date, value: number) =>\n new Date(date.setUTCFullYear(date.getUTCFullYear() + value)),\n months: (date: Date, value: number) =>\n new Date(date.setUTCMonth(date.getUTCMonth() + value)),\n days: (date: Date, value: number) =>\n new Date(date.setDate(date.getUTCDate() + value)),\n };\n return Object.keys(intervals).reduce(\n (acc, interval) => intervalsMapper[interval](acc, intervals[interval]),\n new Date(date),\n );\n };\n\n const originValue = (validationValue.origin.value || value) as string;\n let originDate = new Date(\n dateRearangeMapper[validationValue?.origin.format](originValue).toString(),\n );\n\n let targetDate = new Date();\n let target: Date;\n\n if (validationValue?.target?.format) {\n target = new Date(\n dateRearangeMapper[validationValue?.target?.format](\n validationValue.target.value as string,\n ).toString(),\n );\n targetDate = target;\n }\n\n if (validationValue.origin.intervals) {\n targetDate = getIntervalsDate(originDate, validationValue.origin.intervals);\n const date = new Date();\n\n if (validationValue.target?.value && target) {\n date.setDate(target.getDate());\n date.setMonth(target.getMonth());\n }\n\n originDate = new Date(\n `${date.getUTCMonth() + 1}/${date.getUTCDate()}/${date.getUTCFullYear()}`,\n );\n }\n\n if (\n validationValue.onlyValidDate &&\n (!(\n targetDate instanceof Date && isFinite(targetDate as unknown as number)\n ) ||\n !(\n targetDate instanceof Date && isFinite(originDate as unknown as number)\n ) ||\n originValue.length < 8)\n ) {\n return {\n fail: true,\n };\n }\n\n const originTimestamp = originDate.getTime();\n const targetTimestamp = targetDate.getTime();\n\n const operationsMapper: Record<TValidationDateOperators, boolean> = {\n '>': originTimestamp > targetTimestamp,\n '>=': originTimestamp >= targetTimestamp,\n '<': originTimestamp < targetTimestamp,\n '<=': originTimestamp <= targetTimestamp,\n '===': originTimestamp === targetTimestamp,\n '!==': originTimestamp !== targetTimestamp,\n };\n\n return {\n fail: operationsMapper[validationValue?.operator as string],\n };\n};\n\nconst conditions = ({\n value = '',\n validationValue,\n}: TValidationArguments<\n string,\n Pick<TVAvailableValidations, 'conditions'>['conditions']\n>) => {\n if (!validationValue) return { fail: false };\n\n const conditionResult = (rule) => {\n if (\n (rule.forceDefinedOrigin && rule.origin === undefined) ||\n (rule.forceDefinedTarget && rule.target === undefined)\n )\n return { fail: false };\n\n const origin = rule.origin === undefined ? value : rule.origin;\n const target = rule.target === undefined ? value : rule.target;\n const conditionMapper = {\n '!==': (origin || value) !== (target || value),\n '===': (origin || value) === (target || value),\n '<': (origin || value) < (target || value),\n '>': (origin || value) > (target || value),\n '<=': (origin || value) <= (target || value),\n '>=': (origin || value) >= (target || value),\n };\n\n return conditionMapper[rule.condition];\n };\n\n const rulesMapper = {\n and: () => !!validationValue.set.every(conditionResult),\n or: () => !!validationValue.set.some(conditionResult),\n };\n\n let result = rulesMapper[validationValue.rule]();\n\n if (validationValue.conditions) {\n if (validationValue.rule === 'and') {\n result =\n result &&\n conditions({\n value,\n validationValue: validationValue.conditions,\n }).fail;\n } else {\n result =\n result ||\n conditions({\n value,\n validationValue: validationValue.conditions,\n }).fail;\n }\n }\n\n return {\n fail: result,\n };\n};\n\nconst bool = ({\n validationValue,\n}: TValidationArguments<TRuleValue, TValidationValue>): TErrorReturn => {\n let fail = false;\n\n if (typeof validationValue === 'boolean') {\n fail = validationValue;\n }\n\n return { fail };\n};\n\nconst validations: Record<string, unknown> = {\n between,\n conditions,\n date,\n length,\n greaterThan,\n maxLength,\n minLength,\n required,\n value,\n bool,\n regex,\n hasNoExtraSpaces,\n isCreditCard,\n isCreditCardAndLength,\n isCreditCodeMatch,\n onlyLetters,\n notAllowSpaces,\n callback,\n isNumber,\n customValidation,\n notEmpty,\n numericRange,\n email,\n lessThan,\n sequentialNumber,\n repeatedNumbers,\n url,\n path,\n isInTheList,\n fields,\n customNameRule,\n};\n\nconst run = (\n value: TRuleValue,\n rules: TVAvailableValidations,\n errorMessages: TErrorMessages = {},\n formData: TFieldData = {},\n): TErrors => {\n let result = {};\n Object.keys(rules).forEach((key): void => {\n const validationValue = rules[key] as TValidationValue;\n let validationFN = validations[key] as TRuleFunction;\n if (!validationFN) {\n validationFN = validations.customNameRule as TRuleFunction;\n }\n\n const errorMessage = errorMessages[key] || errorMessages.default;\n const ruleResult = validationFN({\n value,\n validationValue,\n errorMessage: errorMessage,\n values: formData,\n });\n result = {\n ...result,\n [key]: { ...ruleResult, validationValue, message: errorMessage },\n };\n });\n return result;\n};\n\nconst generateCustomError = (name: string, message: string): TErrors => {\n return {\n [name]: {\n fail: true,\n message,\n value: undefined,\n },\n };\n};\n\nconst hasError = (errors?: TErrors) => {\n if (!errors) {\n return false;\n }\n return !!Object.keys(errors).find((key) => errors && errors[key].fail, []);\n};\n\nexport { generateCustomError, hasError, run };\n","export const concatenate = (a, b) => {\n return a + b;\n};\n\nexport const add = (a, b) => {\n return ((parseInt(a) || 0) + (parseInt(b) || 0)).toString();\n};\n\nexport const subtract = (a, b) => {\n return parseInt(a) - parseInt(b);\n};\n\nexport const replaceAll = (value: string, searchValue: string, replaceValue: string) => {\n return value.replace(new RegExp(searchValue, 'g'), replaceValue);\n};\n","import * as Events from '@core/events';\n\nexport const handler = ({\n field,\n data,\n}: Pick<Events.TEventInformation, 'field' | 'data'>) => {\n field.data.changed = true;\n field.data.metadata = data.metadata;\n field.value = data.parsedEventValue;\n};\n","import * as Events from '@core/events';\nimport * as utils from '@core/utils';\nimport { BUILD_EVENT } from '@core';\nimport { EEVents } from '@core/constants';\n\nexport const handler = ({\n form,\n field,\n}: Pick<Events.TEventInformation, 'form' | 'field'>) => {\n field.subscribe(\n BUILD_EVENT(EEVents.ON_SCOPE_CHANGE, 'configs', 'disable'),\n () => field.rehydrate(),\n );\n\n const { props = {} } = field.component;\n const staticInitialSchemaValue = props[field.mappings?.setValue] as\n | string\n | number;\n\n const groupValue =\n field.component.group &&\n utils.object.getValueByPath(form.initialValues, field.component.group);\n const initialValue =\n utils.object.getValueByPath(\n form.initialValues,\n groupValue === field.component.props?.value && !!groupValue\n ? field.component.group\n : field.component.name,\n ) || staticInitialSchemaValue;\n\n field.value =\n form.formData.form?.steps?.data[form.formData?.form?.steps?.index]\n ?.formatted[field.component.name] ||\n (!field.data.mounted ? initialValue : undefined);\n field.data.mounted = true;\n};\n","import * as Events from '@core/events';\n\nexport const handler = ({\n field,\n}: Pick<Events.TEventInformation, 'field' | 'eventReducedSchema'>) => {\n field.data.blured = true;\n};\n","import * as Events from '@core/events';\n\nexport const handler = ({ field }: Pick<Events.TEventInformation, 'field'>) => {\n field.data = {\n ...field.data,\n focused: true,\n };\n};\n","import * as utils from '@core/utils';\nimport * as Events from '@core/events';\nimport * as apis from '@core/apis';\n\nimport { BUILD_EVENT, TSchema } from '@core';\nimport { EEVents } from '@core/constants';\n\nexport const template = {\n BEGIN: '${',\n END: '}',\n DEFAULT_SPLITTER: '||',\n};\n\nconst hasTemplateString = (value: string) => {\n return /\\$\\{(.*)\\}.*/g.test(value);\n};\n\nconst varOps = {\n PREFIX: 'varOps.',\n FUNCTION_SUFFIX: ')',\n FUNCTION_PREFIX: '(',\n FUNCTION_ARGUMENTS_SPLITTER: ',',\n};\n\nconst isVarOps = (value: string) => value.includes(varOps.PREFIX);\n\nconst extractVarOpsArgs = (value: string) =>\n value\n .split(varOps.PREFIX)[1]\n .split(varOps.FUNCTION_PREFIX)[1]\n .split(varOps.FUNCTION_SUFFIX)[0]\n .split(varOps.FUNCTION_ARGUMENTS_SPLITTER);\n\nconst getVarOpsOp = (value: string) =>\n apis.varOps[value.split(varOps.PREFIX)[1].split(varOps.FUNCTION_PREFIX)[0]];\n\nexport const extractTargetString = (\n target: string,\n form: any,\n field?: any,\n): string | number | boolean | Record<string, unknown> => {\n target = target.toString();\n const lastIndex = target.lastIndexOf(template.BEGIN);\n if (lastIndex === -1) return target;\n\n const substringTemplate = target.substring(\n lastIndex + template.BEGIN.length,\n target.length,\n );\n let match = substringTemplate.substring(\n 0,\n substringTemplate.indexOf(template.END),\n );\n const originalMatchLength = match.length;\n\n let defaultValue = '';\n const parts = match.split(template.DEFAULT_SPLITTER);\n if (parts.length > 1) {\n match = parts[0];\n defaultValue =\n (utils.object.getValueByPath(\n field.scope.getGlobalScope(),\n parts[1],\n ) as string) || parts[1];\n }\n\n const scopedTemplateValue = utils.object.getValueByPath(\n form.scope.getGlobalScope(),\n match,\n );\n\n let value =\n typeof scopedTemplateValue === 'undefined'\n ? defaultValue\n : scopedTemplateValue;\n\n if (typeof value !== 'string' && lastIndex === 0) {\n return value;\n }\n\n try {\n value = JSON.stringify(value).replace(/^\"(.*)\"$/, '$1');\n // eslint-disable-next-line no-empty\n } catch (e) {}\n\n return (\n target.substring(0, lastIndex) +\n value +\n target.substring(\n lastIndex +\n originalMatchLength +\n template.BEGIN.length +\n template.END.length,\n target.length,\n )\n );\n};\n\nexport const handler = ({\n field,\n form,\n}: Pick<Events.TEventInformation, 'form' | 'field'>) => {\n const scopeComponent = () => {\n if (!field) return;\n const { children, wrapper, ...rest } = field.component;\n const scopedComponent = {\n ...inObject(rest as any),\n };\n\n field.scopedComponent = {\n ...rest,\n ...scopedComponent,\n children,\n wrapper,\n };\n };\n\n const scopeForm = () => {\n const { components, ...rest } = form.schema || ({} as TSchema);\n const newScopedForm = inObject<any>(rest);\n\n form.scopedSchema = newScopedForm as TSchema;\n form.rehydrate();\n };\n\n const subscribeFieldToScopeChange = (parts) => {\n const isFieldExcludedObservable =\n !field.scope.scope.configs?.observables?.templates?.exclude?.includes(\n field.component.name,\n );\n const matchingParts = parts[0].split('.');\n isFieldExcludedObservable &&\n field.subscribe(\n BUILD_EVENT(\n EEVents.ON_SCOPE_CHANGE,\n matchingParts[0],\n matchingParts[1],\n ),\n () => {\n scopeComponent();\n field.rehydrate();\n },\n );\n };\n\n const replaceTemplateString = (targetString: string): any => {\n targetString = targetString.toString();\n const lastIndex = targetString.lastIndexOf(template.BEGIN);\n if (lastIndex === -1) return targetString;\n\n const substringTemplate = targetString.substring(\n lastIndex + template.BEGIN.length,\n targetString.length,\n );\n let match = substringTemplate.substring(\n 0,\n substringTemplate.indexOf(template.END),\n );\n const originalMatchLength = match.length;\n\n let defaultValue = '';\n const parts = match.split(template.DEFAULT_SPLITTER);\n if (parts.length > 1) {\n match = parts[0];\n defaultValue =\n (utils.object.getValueByPath(\n field.scope.getGlobalScope(),\n parts[1],\n ) as string) || parts[1];\n }\n\n field && subscribeFieldToScopeChange(parts);\n\n const scopedTemplateValue = utils.object.getValueByPath(\n form.scope.getGlobalScope(),\n match,\n );\n\n let value =\n typeof scopedTemplateValue === 'undefined'\n ? defaultValue\n : scopedTemplateValue;\n\n // If we are interested in other data than string and its the only data we have in the template, we just return it\n if (typeof value !== 'string' && lastIndex === 0) {\n return value;\n } else if (!value && targetString.includes('http')) {\n // If it has no value and the replacing its from api call, rollback.\n return (\n targetString.substring(0, lastIndex) +\n targetString.substring(\n targetString.indexOf(template.BEGIN),\n targetString.lastIndexOf(template.END) + 1,\n )\n );\n }\n\n // Otherwise, we just stringify it and ussume the client will use as string\n try {\n value = JSON.stringify(value).replace(/^\"(.*)\"$/, '$1');\n // eslint-disable-next-line no-empty\n } catch (e) {}\n\n const scopedString =\n targetString.substring(0, lastIndex) +\n value +\n targetString.substring(\n lastIndex +\n originalMatchLength +\n template.BEGIN.length +\n template.END.length,\n targetString.length,\n );\n\n if (isVarOps(scopedString) && !hasTemplateString(scopedString)) {\n return scopedString.replace(/([^\\s]+)/g, (match) => {\n if (!isVarOps(match)) return match;\n\n const fn = getVarOpsOp(match);\n if (fn) {\n return fn(...extractVarOpsArgs(match));\n }\n });\n }\n return replaceTemplateString(scopedString);\n };\n\n const inObject = <T extends Record<string, unknown>>(\n obj: T,\n recursionLevel = 0,\n ): Record<string, unknown> => {\n if (typeof obj === 'string') {\n return replaceTemplateString(obj);\n }\n if (typeof obj === 'number') {\n return obj;\n }\n\n const object = { ...obj };\n return Object.keys(object).reduce((acc, key): Record<string, string> => {\n if (object[key] === null) {\n return acc;\n }\n\n if (Array.isArray(object[key])) {\n return {\n ...acc,\n [key]: (object[key] as unknown[]).map(inObject),\n };\n }\n\n if (typeof object[key] === 'object') {\n return {\n ...acc,\n [key]: {\n ...inObject(\n { ...(object[key] as Record<string, unknown>) },\n recursionLevel + 1,\n ),\n },\n };\n }\n\n if (typeof object[key] !== 'string') {\n return {\n ...acc,\n [key]: object[key],\n };\n }\n\n if (!hasTemplateString(object[key] as string)) {\n return { ...acc, [key]: object[key] };\n }\n let value = replaceTemplateString(object[key] as string);\n\n try {\n if (utils.string.hasJsonStructure(value)) {\n value = JSON.parse(value);\n }\n // eslint-disable-next-line no-empty\n } catch (e) {}\n\n return {\n ...acc,\n [key]: value,\n };\n }, {});\n };\n\n scopeComponent();\n scopeForm();\n};\n","import { TComponent } from '@core';\nimport { validations } from '@core/apis';\nimport * as Events from '@core/events';\nimport {\n extractTargetString,\n template,\n} from '@core/handlers/common/templating';\n\nconst DEFAULT_DEBOUNCE_MS = 200;\n\nexport const handler = ({\n field,\n form,\n eventReducedSchema: { api },\n}: Pick<Events.TEventInformation, 'form' | 'field' | 'eventReducedSchema'>) =>\n api.forEach((apiCall) => {\n const { scope } = field;\n const meetsRunningCondition = validations.run(\n field.data.value,\n apiCall.preConditions || {},\n field.scopedComponent.errorMessages,\n form?.formData?.fields,\n );\n if (\n field.fieldHasError(meetsRunningCondition) ||\n (apiCall.blockRequestWhenInvalid &&\n field.fieldValidationsHaveError(false))\n ) {\n return;\n } else if (apiCall.url.includes(template.BEGIN)) {\n apiCall.url = extractTargetString(apiCall.url, form, field) as string;\n }\n\n scope.globalScope = {\n namespace: 'api',\n key: apiCall.scope,\n data: {\n loading: true,\n },\n };\n field.debounce(() => {\n return fetch(apiCall.url, {\n method: apiCall.method,\n ...(apiCall.body && { body: JSON.stringify(apiCall.body) }),\n headers: apiCall.headers || {\n 'Content-type': 'application/json; charset=UTF-8',\n },\n })\n .then((res) => {\n const parsedResponse = res.json();\n if (res.status >= 400) throw parsedResponse;\n\n return parsedResponse;\n })\n .then((res) => {\n scope.globalScope = {\n namespace: 'api',\n key: apiCall.scope,\n data: {\n loading: false,\n response: res,\n ...(res as any),\n },\n };\n })\n .catch(async (err) => {\n const jsonErr = await err;\n scope.globalScope = {\n namespace: 'api',\n key: apiCall.scope,\n data: {\n loading: false,\n error: true,\n err: jsonErr,\n },\n };\n });\n }, apiCall.debounceTime || DEFAULT_DEBOUNCE_MS);\n });\n\nexport const events = (component: TComponent) =>\n Object.keys(component.api || {});\n","import { TFormValues } from '@core';\nimport * as utils from '@core/utils';\nimport { TEventInformation } from '@core/events';\n\nexport const handler = ({\n form,\n field: eventField,\n}: Pick<TEventInformation, 'form' | 'field'>): TFormValues => {\n const buildFormMessages = (data: Record<string, any>) => {\n if (!form.schema?.messages) {\n return [];\n }\n return Object.keys(form.schema.messages).reduce((acc: string[], key) => {\n const fieldValue = utils.object.getValueByPath(data, key);\n\n if (!form.schema?.messages || !form.schema?.messages[key]) return acc;\n if (\n form.schema.messages[key].values?.includes(fieldValue as string) ||\n form.schema.messages[key].value === fieldValue ||\n (form.schema.messages[key].required && !fieldValue)\n ) {\n return [...acc, form.schema.messages[key].name];\n }\n\n return acc;\n }, []);\n };\n\n const fieldsData = (fields) =>\n Object.keys(fields).reduce(\n (acc: TFormValues, key) => {\n const field = form.fields[key];\n const fieldValues = field.data;\n if (!field || !field.data.visible || !field.data.name) return acc;\n\n let group = '';\n if (\n field.component?.group &&\n ((eventField && eventField.component.name === field.component.name) ||\n (!eventField && !form.formData.formatted[field.component.group]))\n ) {\n group = field.component.group;\n }\n\n const mergedKey = group || key;\n const value =\n typeof fieldValues.value === 'undefined'\n ? form.initialValues[key] ||\n (form.schema?.formattedDataDefaults &&\n form.schema?.formattedDataDefaults[key])\n : fieldValues.value;\n\n return {\n erroredFields: field.fieldHasError()\n ? [...acc.erroredFields, key]\n : acc.erroredFields,\n predictableErroredFields: field.fieldValidationsHaveError()\n ? [...acc.predictableErroredFields, key]\n : acc.predictableErroredFields,\n fields: {\n ...acc.fields,\n [key]: fieldValues,\n },\n filteredFields: form.schema?.filteredFields?.includes(mergedKey)\n ? {\n ...acc.filteredFields,\n ...(typeof value === 'undefined' ? {} : { [mergedKey]: value }),\n ...(group\n ? { [group]: value ? value : acc.formatted[group] }\n : {}),\n }\n : acc.filteredFields,\n formatted: {\n ...acc.formatted,\n ...(typeof fieldValues?.value === 'undefined' || fieldValues.ignore\n ? {}\n : utils.object.encapsulateIn(\n acc.formatted,\n key,\n fieldValues?.value as string,\n ) || { [key]: value }),\n ...(group ? { [group]: value ? value : acc.formatted[group] } : {}),\n },\n };\n },\n {\n predictableErroredFields: [],\n erroredFields: [],\n fields: {},\n formatted: {\n ...form.schema?.formattedDataDefaults,\n },\n filteredFields: {},\n },\n );\n\n const formData = fieldsData(form.fields);\n const stepData = fieldsData(form.steps[form.step.index] || {});\n const result = {\n ...formData,\n form: {\n scope: form.scope.getGlobalScope(),\n steps: {\n ...form.step,\n data: { [form.step.index]: stepData },\n isValid: !stepData.predictableErroredFields.length,\n },\n isValid: !formData.predictableErroredFields.length,\n messages: buildFormMessages({\n ...form.initialValues,\n ...formData.formatted,\n }),\n },\n };\n\n form.formData = result;\n return result;\n};\n","import * as Events from '@core/events';\nimport * as apis from '@core/apis';\nimport { TComponent } from '@core';\n\nexport const handler = ({\n form,\n eventReducedSchema,\n}: Pick<Events.TEventInformation, 'form' | 'eventReducedSchema' | 'field'>) => {\n eventReducedSchema?.clearFields.forEach((clearField) => {\n clearField.fields.forEach((fieldName) => {\n const targetField = form.fields[fieldName];\n if (!targetField) return;\n if (!clearField.validations) {\n targetField.value = clearField.clearedValue;\n targetField.rehydrate();\n\n return;\n }\n\n const errors = apis.validations.run(\n targetField.value,\n clearField.validations,\n );\n\n if (!targetField.fieldHasError(errors)) return;\n targetField.value = clearField.clearedValue;\n targetField.rehydrate();\n });\n });\n};\n\nexport const events = (component: TComponent) =>\n Object.keys(component.clearFields || {});\n","import { BUILD_EVENT, TComponent } from '@core';\nimport * as apis from '@core/apis';\nimport { EEVents } from '@core/constants';\nimport * as Events from '@core/events';\n\nexport const handler = ({\n form,\n field,\n eventReducedSchema,\n}: Pick<Events.TEventInformation, 'form' | 'field' | 'eventReducedSchema'>) => {\n eventReducedSchema.visibilityConditions?.forEach((condition) => {\n const fieldNames = [...(condition.fieldNames || [condition.fieldName])];\n\n fieldNames.forEach((targetFieldName) => {\n if (!targetFieldName) return;\n const hasError = field.fieldHasError(\n apis.validations.run(field.value, condition.validations),\n );\n // IF ITS NOT INITIALIZED, SUBSCRIBE TO ITS MOUNT\n if (!form.fields[targetFieldName]) {\n field.subscribe(\n BUILD_EVENT(EEVents.ON_FIELD_MOUNT, targetFieldName),\n () => {\n form.fields[targetFieldName].visibility = !hasError;\n form.fields[targetFieldName].rehydrate();\n\n if (!form.fields[targetFieldName].visibility)\n form.fields[targetFieldName].errors = {};\n },\n );\n return;\n }\n\n form.fields[targetFieldName].visibility = !hasError;\n form.fields[targetFieldName].rehydrate();\n\n if (!form.fields[targetFieldName].visibility)\n form.fields[targetFieldName].errors = {};\n });\n });\n};\n\nexport const events = (component: TComponent) =>\n Object.keys(component.visibilityConditions || {});\n","import { TEventInformation } from '@core/events';\n\nexport const handler = ({ field, data: { event } }: TEventInformation) => {\n let parsedEventValue = undefined;\n let metadata = undefined;\n\n //HTML event values here\n const eventMapper: Record<string, () => void> = {\n number: () => parseInt(event?.target?.value),\n checkbox: () => !!event?.target?.checked,\n };\n\n parsedEventValue = eventMapper[event?.target?.type]\n ? eventMapper[event?.target?.type]()\n : event?.target?.value;\n\n if (\n Array.isArray(event) ||\n typeof event !== 'object' ||\n typeof event === 'string' ||\n typeof event === 'number'\n ) {\n parsedEventValue = event;\n }\n\n if (event?.id) {\n parsedEventValue = event?.id;\n metadata = event;\n }\n\n if (event?.options) {\n parsedEventValue = event?.options;\n }\n\n const isDeletingValue =\n (parsedEventValue as any)?.toString().length <\n (field.data?.value?.toString()?.length || 0);\n\n return {\n parsedEventValue,\n metadata,\n isDeletingValue,\n };\n};\n","import * as apis from '@core/apis';\nimport { TComponent } from '@core';\nimport { TEventInformation } from '@core/events';\n\nexport const handler = ({\n data,\n field,\n eventReducedSchema: { formatters },\n}: TEventInformation) => {\n if (!formatters || data.isDeletingValue) return;\n\n field.data.value = apis.formatters.run(field.data.value, formatters);\n};\n\nexport const events = (component: TComponent) =>\n Object.keys(component?.formatters || []);\n","class ObserverError extends Error {\n breaksObservingChain = false;\n\n constructor(message, { breaksObservingChain }) {\n super();\n this.message = message;\n this.breaksObservingChain = breaksObservingChain;\n }\n}\n\nexport { ObserverError };\n","import * as apis from '@core/apis';\nimport * as Events from '@core/events';\nimport { ObserverError } from '@core/events/ObserverError';\n\nexport const handler = ({\n field,\n data,\n eventReducedSchema: { formatters },\n}: Events.TEventInformation) => {\n const { errorMessages, filter } = field.scopedComponent;\n\n if (!filter || !data.parsedEventValue || data.isDeletingValue) return;\n\n // If field has formatted data lets try to undo it and then apply the filter\n const dataToFilter = formatters\n ? apis.formatters.run(data.parsedEventValue, formatters, true) ||\n data.parsedEventValue\n : data.parsedEventValue;\n const error = apis.validations.run(dataToFilter, filter, errorMessages);\n\n if (field.fieldHasError(error)) {\n throw new ObserverError(`Filter applied ${JSON.stringify(filter)}`, {\n breaksObservingChain: true,\n });\n }\n};\n","import { TComponent } from '@core';\nimport * as apis from '@core/apis';\nimport * as Events from '@core/events';\n\nexport const handler = ({\n field,\n eventReducedSchema: { masks },\n}: Events.TEventInformation) => {\n if (!masks) return;\n\n field.data.mask = masks?.cleanMask\n ? undefined\n : apis.masks.run(field.data.value, masks);\n};\n\nexport const events = (component: TComponent) =>\n Object.keys(component.masks || {});\n","import { TComponent } from '@core';\nimport * as apis from '@core/apis';\nimport { EEVents } from '@core/constants';\nimport * as Events from '@core/events';\n\nexport const handler = ({\n field,\n eventReducedSchema: { validations },\n form,\n}: Pick<Events.TEventInformation, 'field' | 'eventReducedSchema' | 'form'>) => {\n if (!validations) return;\n\n const error = apis.validations.run(\n field.data.value,\n validations,\n field.scopedComponent.errorMessages,\n form.formData.fields,\n );\n\n // Publish on validation toggle topic if needed\n if (field.fieldHasError(error) !== field.fieldHasError()) {\n field.publish(EEVents.ON_FIELD_VALIDATION_TOGGLE, {\n field: field.data,\n });\n }\n\n field.errors = field.data.visible ? error : {};\n form.formData.form.isValid = !field.fieldValidationsHaveError(true);\n field.data.failedErrorMessages = field.getFieldErrorMessages(field.data);\n};\n\nexport const events = (component: TComponent) =>\n Object.keys(component.validations || {});\n","import { TEventInformation } from '@core/events';\nimport { THookPayload, TSetGlobalScope } from '@core/types';\n\nexport const handler = ({\n form,\n}: Pick<TEventInformation, 'form'>): THookPayload => {\n return {\n setScope: (data: TSetGlobalScope) => (form.scope.globalScope = data),\n };\n};\n","import * as Events from '@core/events';\nimport { CoreEvents } from '@core';\n\nexport const handler = ({\n form,\n event,\n payload,\n}: Pick<Events.TEventInformation, 'form' | 'event' | 'payload'>) => {\n const mapperNextStepIndex = {\n [CoreEvents.NAVIGATE_STEP_BACK]: form.step.index - 1,\n [CoreEvents.NAVIGATE_STEP_FORWARD]: form.step.index + 1,\n };\n const steps = form.schema.components;\n\n let nextStepIndex = mapperNextStepIndex[event];\n\n const nextStep = () => {\n if (payload.constructor === Object) {\n return steps[mapperNextStepIndex[event]];\n } else if (typeof payload === 'string') {\n nextStepIndex = steps.findIndex((item) => item.name === payload);\n return steps.find((item) => item.name === payload);\n }\n\n nextStepIndex = payload;\n return steps[payload];\n };\n\n const step = nextStep();\n\n if (!step) {\n form.step = {\n ...form.step,\n navigated: false,\n };\n return;\n }\n\n form.step = {\n ...form.step,\n numSteps: steps.length,\n navigated: !!step,\n index: step ? nextStepIndex : form.step.index,\n currentStepSchema: step ? step : form.step.currentStepSchema,\n };\n};\n","import * as Events from '@core/events';\nimport { TChildrenOptions } from '@core/types';\n\nexport const handler = ({\n form,\n payload,\n}: Pick<Events.TEventInformation, 'form' | 'payload'>) => {\n const extractScopedChildrenFromOptions = (\n opts?: TChildrenOptions,\n ): string[] | undefined => {\n if (\n !opts ||\n !Object.keys(opts).length ||\n (!opts.scopeBlurredChildren &&\n !opts.scopeChangedChildren &&\n !opts.childrenScope)\n )\n return undefined;\n\n return Object.keys(form.fields).filter((key) => {\n return (\n (opts?.scopeBlurredChildren && form.fields[key].data.blured) ||\n (opts?.scopeChangedChildren && form.fields[key].data.changed) ||\n opts?.childrenScope?.includes(key)\n );\n });\n };\n\n const getScopedField = (childrenScope?: string[]) => {\n if (!childrenScope) return form.fields;\n return Object.keys(form.fields).reduce((acc, key) => {\n if (!childrenScope.includes(key)) return acc;\n return {\n ...acc,\n [key]: form.fields[key],\n };\n }, {});\n };\n\n const fields = getScopedField(extractScopedChildrenFromOptions(payload));\n Object.keys(fields).forEach((key) => {\n if (fields[key].fieldValidationsHaveError(true)) {\n fields[key].rehydrate();\n }\n });\n};\n","import { TSchema } from '@core';\nimport { TEventInformation } from '@core/events';\nimport * as apis from '@core/apis';\n\nexport const handler = ({\n form,\n formEventDirectives,\n}: Pick<TEventInformation, 'form' | 'formEventDirectives'>) => {\n formEventDirectives?.visibilityConditions?.forEach((condition) => {\n const fieldNames = [...(condition.fieldNames || [condition.fieldName])];\n\n fieldNames.forEach((targetFieldName) => {\n if (!targetFieldName) return;\n\n const field = form.fields[targetFieldName];\n\n form.fields[targetFieldName].visibility = field?.fieldHasError(\n apis.validations.run(field.value, condition.validations),\n );\n form.fields[targetFieldName].rehydrate();\n });\n });\n};\n\nexport const events = (schema: TSchema) =>\n Object.keys(schema?.visibilityConditions || {});\n","import * as utils from '@core/utils';\nimport * as Events from '@core/events';\n\nimport { TSchema } from '@core';\n\nconst template = {\n BEGIN: '${',\n END: '}',\n DEFAULT_SPLITTER: '||',\n};\n\nconst hasTemplateString = (value: string) => {\n return /\\$\\{(.*)\\}.*/g.test(value);\n};\n\nexport const handler = ({ form }: Pick<Events.TEventInformation, 'form'>) => {\n const replaceTemplateString = (targetString: string): any => {\n targetString = targetString.toString();\n const lastIndex = targetString.lastIndexOf(template.BEGIN);\n if (lastIndex === -1) return targetString;\n\n const substringTemplate = targetString.substring(\n lastIndex + template.BEGIN.length,\n targetString.length,\n );\n let match = substringTemplate.substring(\n 0,\n substringTemplate.indexOf(template.END),\n );\n const originalMatchLength = match.length;\n\n let defaultValue = '';\n const parts = match.split(template.DEFAULT_SPLITTER);\n if (parts.length > 1) {\n match = parts[0];\n defaultValue =\n (utils.object.getValueByPath(\n form.scope.getGlobalScope(),\n parts[1],\n ) as string) || parts[1];\n }\n\n const scopedTemplateValue = utils.object.getValueByPath(\n form.scope.getGlobalScope(),\n match,\n );\n\n let value =\n typeof scopedTemplateValue === 'undefined'\n ? defaultValue\n : scopedTemplateValue;\n\n // If we are interested in other data than string and its the only data we have in the template, we just return it\n if (typeof value !== 'string' && lastIndex === 0) {\n return value;\n }\n\n // Otherwise, we just stringify it and ussume the client will use as string\n try {\n value = JSON.stringify(value).replace(/^\"(.*)\"$/, '$1');\n // eslint-disable-next-line no-empty\n } catch (e) {}\n\n const scopedString =\n targetString.substring(0, lastIndex) +\n value +\n targetString.substring(\n lastIndex +\n originalMatchLength +\n template.BEGIN.length +\n template.END.length,\n targetString.length,\n );\n\n return replaceTemplateString(scopedString);\n };\n\n const inObject = <T extends Record<string, unknown>>(\n obj: T,\n recursionLevel = 0,\n ): Record<string, unknown> => {\n if (typeof obj === 'string') {\n return replaceTemplateString(obj);\n }\n if (typeof obj === 'number') {\n return obj;\n }\n\n const object = { ...obj };\n return Object.keys(object).reduce((acc, key): Record<string, string> => {\n if (object[key] === null) {\n return acc;\n }\n\n if (Array.isArray(object[key])) {\n return {\n ...acc,\n [key]: (object[key] as unknown[]).map(inObject),\n } as Record<string, string>;\n }\n\n if (typeof object[key] === 'object') {\n return {\n ...acc,\n [key]: {\n ...inObject(\n { ...(object[key] as Record<string, unknown>) },\n recursionLevel + 1,\n ),\n },\n } as Record<string, string>;\n }\n\n if (typeof object[key] !== 'string') {\n return {\n ...acc,\n [key]: object[key],\n } as Record<string, string>;\n }\n\n if (!hasTemplateString(object[key] as string)) {\n return { ...acc, [key]: object[key] } as Record<string, string>;\n }\n let value = replaceTemplateString(object[key] as string);\n\n try {\n if (utils.string.hasJsonStructure(value)) {\n value = JSON.parse(value);\n }\n // eslint-disable-next-line no-empty\n } catch (e) {}\n\n return {\n ...acc,\n [key]: value,\n } as Record<string, string>;\n }, {} as Record<string, string>);\n };\n\n form.scopedSchema = {\n ...form.schema,\n ...inObject({\n visibilityConditions: form?.schema?.visibilityConditions,\n } as Partial<TSchema>),\n };\n};\n","import { ALL_NAMESPACE_EVENTS, BUILD_EVENT, TSchema } from '@core';\nimport * as Events from '@core/events';\nimport { EEVents } from '@core/constants';\nimport { TFlowType } from '@core/types';\n\n//Field handlers\nimport * as change from '@core/handlers/field/change';\nimport * as mount from '@core/handlers/field/mount';\nimport * as blur from '@core/handlers/field/blur';\nimport * as focus from '@core/handlers/field/focus';\nimport * as templating from './common/templating';\nimport * as api from '@core/handlers/field/api';\nimport * as data from '@core/handlers/field/data';\nimport * as clearFields from '@core/handlers/field/clearFields';\nimport * as visibilityConditions from '@core/handlers/field/visibilityConditions';\nimport * as htmlEventParser from '@core/handlers/field/htmlEventParser';\nimport * as formatters from '@core/handlers/field/formatters';\nimport * as filter from '@core/handlers/field/filter';\nimport * as masks from '@core/handlers/field/masks';\nimport * as validations from '@core/handlers/field/validations';\n\n//Form handlers\nimport * as hooks from '@core/handlers/form/hooks';\nimport * as steps from '@core/handlers/form/steps';\nimport * as validate from '@core/handlers/form/validate';\nimport * as formLevelVisibilityConditions from '@core/handlers/form/visibilityConditions';\nimport * as formTemplating from '@core/handlers/form/templating';\n\nconst register = (\n observer: Events.Observer,\n flows: any,\n component?: any | TSchema,\n) => {\n const flow = flows() as TFlowType;\n Object.keys(flow).forEach((event: EEVents) => {\n flow[event].forEach((handler) => {\n if (handler.events) {\n const events = handler.events(component);\n if (Array.isArray(events) && !events.includes(event)) return;\n }\n observer.subscribe(BUILD_EVENT(event, component?.name), handler.handler);\n });\n });\n};\n\nconst fieldFlows = () => ({\n [EEVents.ON_FIELD_MOUNT]: [\n templating,\n mount,\n api,\n validations,\n formatters,\n visibilityConditions,\n clearFields,\n masks,\n data,\n ],\n [EEVents.ON_FIELD_CHANGE]: [\n htmlEventParser,\n filter,\n change,\n validations,\n formatters,\n api,\n visibilityConditions,\n clearFields,\n data,\n masks,\n ],\n [EEVents.ON_FIELD_REHYDRATE]: [validations],\n [EEVents.ON_FIELD_BLUR]: [\n blur,\n formatters,\n masks,\n validations,\n api,\n visibilityConditions,\n clearFields,\n data,\n ],\n [EEVents.ON_FIELD_FOCUS]: [focus, masks],\n});\n\nconst formFlows = () => ({\n [EEVents.ON_SCOPE_CHANGE]: [formTemplating, formLevelVisibilityConditions],\n [EEVents.ON_FORM_MOUNT]: [\n templating,\n hooks,\n steps,\n formLevelVisibilityConditions,\n ],\n [EEVents.VALIDATE_FORM]: [validate],\n [EEVents.ON_FORM_SUBMIT]: [hooks],\n [EEVents.ON_FORM_UN_MOUNT]: [hooks],\n [EEVents.NAVIGATE_STEP]: [steps],\n [EEVents.NAVIGATE_STEP_BACK]: [steps],\n [EEVents.NAVIGATE_STEP_FORWARD]: [steps],\n [ALL_NAMESPACE_EVENTS(EEVents.ON_SCOPE_CHANGE)]: [\n formLevelVisibilityConditions,\n templating,\n ],\n [EEVents.ON_FORM_REHYDRATE]: [formLevelVisibilityConditions],\n [EEVents.ON_FIELD_CHANGE]: [formLevelVisibilityConditions],\n});\n\nexport { register, fieldFlows, formFlows };\n","import { SyntheticEvent } from 'react';\n\nimport * as apis from '@core/apis';\nimport * as Events from '@core/events';\n\nimport { fieldFlows, register } from '@core/handlers/flows';\nimport {\n TComponent,\n TComponentPropsMapping,\n TErrors,\n TEventReducedSchema,\n TEventsKeys,\n TField,\n} from '@core/types';\n\nimport { BUILD_EVENT } from '@core';\nimport { EEVents } from '@core/constants';\nimport Base from '@core/managers/Base';\nimport Scope from '@core/managers/Scope';\n\nclass Field extends Base {\n #fieldData: TField;\n #component: TComponent;\n #scopedComponent: TComponent;\n #propsMapping: TComponentPropsMapping;\n scope: Scope;\n constructor(\n observer: Events.Observer,\n component: TComponent,\n propsMapping: TComponentPropsMapping,\n scope: Scope,\n ) {\n super(observer);\n\n this.scopedComponent = component;\n this.#component = component;\n this.#propsMapping = propsMapping;\n this.scope = scope;\n this.#fieldData = {\n blured: false,\n changed: false,\n mounted: false,\n focused: false,\n errors: {},\n failedErrorMessages: [],\n visible: !component.state?.hidden,\n ignore: component.state?.ignoreValue,\n name: component.name,\n };\n\n register(observer, fieldFlows, component);\n }\n\n get value() {\n if (\n this.#propsMapping.setValue &&\n this.#component.props &&\n this.scopedComponent.props &&\n typeof this.scopedComponent.props[this.#propsMapping.setValue] !==\n 'undefined' &&\n this.scopedComponent.props[this.#propsMapping.setValue] !==\n this.#component.props[this.#propsMapping.setValue]\n ) {\n return this.scopedComponent.props[this.#propsMapping.setValue];\n }\n\n return this.#fieldData.mask || this.#fieldData.value;\n }\n\n set value(value: any) {\n this.#fieldData.value = value;\n\n this.scope.globalScope = {\n namespace: 'fields',\n key: this.#component.name,\n data: this.#fieldData,\n };\n }\n\n get component() {\n return this.#component;\n }\n\n get data() {\n return this.#fieldData;\n }\n\n set data(data: TField) {\n this.#fieldData = {\n ...this.#fieldData,\n ...data,\n };\n\n this.scope.globalScope = {\n namespace: 'fields',\n key: this.#component.name,\n data: this.#fieldData,\n };\n }\n\n set visibility(visible: boolean) {\n this.#fieldData.visible = visible;\n }\n\n get scopedComponent() {\n return this.#scopedComponent;\n }\n\n set scopedComponent(component: TComponent) {\n this.#scopedComponent = component;\n }\n\n get errors() {\n return this.#fieldData.errors;\n }\n\n set errors(errors: TErrors) {\n this.#fieldData.errors = errors;\n this.scope.globalScope = {\n namespace: 'fields',\n key: this.#component.name,\n data: this.#fieldData,\n };\n }\n\n get props() {\n if (!this.scopedComponent.name || !this.#propsMapping)\n return this.scopedComponent.props;\n\n const propsActionsMapping: Record<string, unknown> = {\n getValue: (event: SyntheticEvent) => {\n this.publish(\n BUILD_EVENT(EEVents.ON_FIELD_CHANGE, this.component.name),\n { event },\n );\n this.publish(EEVents.ON_FIELD_CHANGE, {\n component: this.component.name,\n event,\n });\n },\n onBlur: (event: SyntheticEvent) =>\n this.publish(BUILD_EVENT(EEVents.ON_FIELD_BLUR, this.component.name), {\n event,\n }),\n onClick: (event: SyntheticEvent) =>\n this.publish(BUILD_EVENT(EEVents.ON_FIELD_CLICK, this.component.name), {\n event,\n }),\n onFocus: (event: SyntheticEvent) =>\n this.publish(BUILD_EVENT(EEVents.ON_FIELD_FOCUS, this.component.name), {\n event,\n }),\n setValue: this.value,\n setErrorMessage: this.getFieldErrorMessages()[0],\n setErrorState: this.fieldHasError(),\n };\n\n return Object.keys(this.#propsMapping).reduce(\n (acc, key) => {\n if (typeof propsActionsMapping[key] === 'undefined') return acc;\n\n return {\n ...acc,\n [this.#propsMapping[key]]: propsActionsMapping[key],\n };\n },\n {\n disabled: this.scope.scope.configs?.disable,\n ...this.#scopedComponent.props,\n },\n );\n }\n\n get mappings() {\n return this.#propsMapping;\n }\n\n getFieldErrorMessages(data = this.#fieldData): string[] {\n if (!data.errors) return [];\n\n return Object.keys(data.errors).reduce((acc, key) => {\n const { errors = {} } = data;\n if (!errors[key].fail) return acc;\n\n if (!this.scopedComponent.errorMessages) {\n return acc;\n }\n return [\n ...acc,\n this.scopedComponent.errorMessages[key] ||\n this.scopedComponent.errorMessages.default,\n ];\n }, [] as string[]);\n }\n\n fieldHasError(errors?: TErrors) {\n if (!errors) {\n errors = this.#fieldData.errors || {};\n }\n return !!Object.keys(errors).find((key) => errors && errors[key].fail, []);\n }\n\n fieldValidationsHaveError(setErrorMessages?: boolean): boolean {\n if (!this.#scopedComponent.validations || !this.#fieldData.visible)\n return false;\n return !!Object.keys(this.#scopedComponent.validations).find((key) => {\n const { validations = {}, errorMessages } = this\n .#scopedComponent as TComponent;\n const error = apis.validations.run(\n this.#fieldData.value,\n validations[key],\n errorMessages,\n );\n\n if (setErrorMessages) {\n this.errors = error;\n }\n\n return this.fieldHasError(error);\n });\n }\n\n /**\n *\n Calculates and returns the version of the current scoped object for a given event\n */\n eventReducedSchema(event: TEventsKeys): TEventReducedSchema {\n return {\n api: this.#scopedComponent.api && this.#scopedComponent.api[event],\n clearFields:\n this.#scopedComponent.clearFields &&\n this.#scopedComponent.clearFields[event],\n formatters:\n this.#scopedComponent.formatters &&\n this.#scopedComponent.formatters[event],\n masks: this.#scopedComponent.masks && this.#scopedComponent.masks[event],\n validations:\n this.#scopedComponent.validations &&\n this.#scopedComponent.validations[event],\n visibilityConditions:\n this.#scopedComponent.visibilityConditions &&\n this.#scopedComponent.visibilityConditions[event],\n };\n }\n\n rehydrate() {\n this.publish(\n BUILD_EVENT(EEVents.ON_FIELD_REHYDRATE, this.#component.name),\n {\n checksum:\n JSON.stringify(this.data) + JSON.stringify(this.scopedComponent),\n },\n );\n }\n}\n\nexport default Field;\n","import Field from '@core/managers/Field';\nimport Scope from '@core/managers/Scope';\nimport Base from '@core/managers/Base';\n\nimport * as Events from '@core/events';\nimport {\n TComponent,\n TFormValues,\n TSchema,\n TStepData,\n TComponentPropsMapping,\n TFormEventDirectives,\n TEventsKeys,\n} from '@core/types';\nimport { formFlows, register } from '@core/handlers/flows';\nimport { EEVents } from '@core/constants';\n\nclass Form extends Base {\n #fields: { [x in string]: Field } = {};\n #observer: Events.Observer;\n formData: TFormValues;\n formId: string;\n schema: TSchema;\n scopedSchema: TSchema;\n scope: Scope;\n initialValues: Record<string, unknown>;\n #step: TStepData;\n steps: Record<number, { [x in string]: Field }> = {};\n group: string;\n constructor(\n formId: string,\n observer: Events.Observer,\n scope: Scope,\n schema: TSchema,\n opts: {\n initialValues: Record<string, unknown>;\n },\n group,\n ) {\n super(observer);\n this.#observer = observer;\n this.schema = schema;\n this.scopedSchema = schema;\n this.scope = scope;\n this.formId = formId;\n this.initialValues = opts?.initialValues;\n this.group = group;\n this.#step = {\n numSteps: schema?.components.length,\n navigated: false,\n index: 0,\n currentStepSchema: schema?.components[0],\n isValid: false,\n data: {},\n };\n\n this.formData = {\n predictableErroredFields: [],\n erroredFields: [],\n fields: {},\n formatted: {},\n form: {\n scope: scope.getGlobalScope(),\n steps: this.#step,\n isValid: false,\n messages: [],\n },\n };\n\n register(observer, formFlows, schema);\n }\n\n get step() {\n return this.#step;\n }\n\n set step(step: TStepData) {\n this.#step = step;\n }\n\n get fields() {\n return this.#fields || {};\n }\n\n eventReducedSchema(event: TEventsKeys): TFormEventDirectives {\n return this.scopedSchema\n ? (Object.keys(this.scopedSchema).reduce((acc, key) => {\n if (!this.scopedSchema[key]) return acc;\n return { ...acc, [key]: this.scopedSchema[key][event] };\n }, {}) as any)\n : ({} as TFormEventDirectives);\n }\n\n getFieldInstance(\n component: TComponent,\n propsMapping: TComponentPropsMapping = {},\n ) {\n component.name =\n component.name ||\n component.component + '_' + JSON.stringify(component.props);\n if (!this.steps[this.#step.index]) {\n this.steps[this.#step.index] = {};\n }\n\n if (this.fields[component.name]) {\n return this.fields[component.name];\n }\n\n this.fields[component.name] = new Field(\n this.#observer,\n component,\n propsMapping,\n this.scope,\n );\n this.steps[this.#step.index][component.name] = this.fields[component.name];\n return this.fields[component.name];\n }\n\n rehydrate() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { components, ...rest } = this.scopedSchema;\n this.publish(EEVents.ON_FORM_REHYDRATE, {\n checksum: JSON.stringify(rest),\n });\n }\n\n destroyField(field: string) {\n if (!this.#fields[field]) return;\n delete this.#fields[field];\n delete this.steps[this.#step.index][field];\n }\n}\n\nexport default Form;\nexport type { Form };\n","import Field from '@core/managers/Field';\nimport { Form } from '@core/managers/Form';\nimport {\n TEventReducedSchema,\n TEventsKeys,\n TFormEventDirectives,\n TObserverData,\n} from '@core/types';\n\nexport type TEventPublishPayload = {\n checksum?: string;\n} & {\n [key in string]?: unknown;\n};\n\nexport type TEventInformation = TObserverData & {\n eventReducedSchema: TEventReducedSchema;\n formEventDirectives: TFormEventDirectives;\n form: Form;\n field: Field;\n coreEvent: TEventsKeys;\n};\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport enum EFlowLogging {\n OBSERVER = 'OBSERVER',\n REACT_FIELD_ADAPTER = 'REACT FIELD ADAPTER',\n FIELD_HANDLER = 'FIELD HANDLER',\n}\n\nexport type TLoggingEvent = {\n level: 'error' | 'info';\n data?: any;\n flow: EFlowLogging;\n action: string;\n error?: any;\n};\n","import Scope from '@core/managers/Scope';\nimport { TEventInformation } from '@core/events';\nimport Form from '@core/managers/Form';\n\nimport {\n IObservable,\n TEvents,\n TEventsKeys,\n TObservable,\n TObserverData,\n TSchema,\n TScope,\n} from '@core/types';\nimport {\n DEFAULT_FORM_ID,\n EEVents,\n EXTRACT_CORE_NAMESPACE,\n EXTRACT_EVENT_NAMESPACE,\n} from '@core/constants';\nimport {\n EFlowLogging,\n TEventPublishPayload,\n TLoggingEvent,\n} from '@core/events/events.types';\nimport { ObserverError } from '@core/events/ObserverError';\n\nclass Factory {\n workers: Record<string, Form> = {};\n\n constructor() {\n this.getFormInstance = this.getFormInstance.bind(this);\n this.getGroupFormsIds = this.getGroupFormsIds.bind(this);\n }\n\n getGroupFormsIds(group: string) {\n return Object.keys(this.workers || {}).filter(\n (key) => this.workers[key].group === group,\n [],\n );\n }\n\n getFormInstance(\n namespace = DEFAULT_FORM_ID,\n opts?: {\n schema?: TSchema;\n initialScope?: TScope;\n initialValues?: Record<string, any>;\n newInstance?: boolean;\n group?: string;\n },\n ) {\n if (this.workers[namespace] && !opts?.newInstance) {\n return this.workers[namespace];\n }\n\n const observer = new Observer(\n namespace,\n opts?.initialScope?.configs?.enableLogging,\n );\n const scope = new Scope(observer);\n\n scope.initialScope = { ...opts?.initialScope, ...opts?.schema?.iVars };\n this.workers[namespace] = new Form(\n namespace,\n observer,\n scope,\n opts?.schema,\n {\n initialValues: opts?.initialValues || {},\n },\n opts?.group,\n );\n return this.workers[namespace];\n }\n}\n\nclass Observer implements IObservable {\n regexBasedEvents: Record<string, { regex: RegExp; handlers: TObservable[] }> =\n {};\n events: TEvents = {};\n history: { [key in EEVents]?: string } = {};\n namespace: string;\n enableLogging: boolean;\n constructor(namespace: string, enableLogging = false) {\n this.namespace = namespace;\n this.enableLogging = enableLogging;\n }\n\n #buildEventPayload = ({\n event,\n data,\n payload,\n }: TObserverData): TEventInformation => {\n const eventFieldName = EXTRACT_EVENT_NAMESPACE(event);\n const form = getFormInstance(this.namespace, data?.opts);\n const field = form.fields[eventFieldName];\n const coreEvent = EXTRACT_CORE_NAMESPACE(event);\n\n return {\n eventReducedSchema: field && field.eventReducedSchema(coreEvent),\n formEventDirectives: form && form.eventReducedSchema(coreEvent),\n namespace: this.namespace,\n coreEvent,\n form,\n field,\n event,\n data,\n payload,\n };\n };\n\n runForRegexBasedEvent(eventName, cb: (event: TEventsKeys) => void) {\n let isMatchEvent = false;\n for (const event of Object.keys(this.events)) {\n isMatchEvent = (eventName as RegExp).test(event);\n isMatchEvent && cb(event as TEventsKeys);\n }\n\n return isMatchEvent;\n }\n\n handleRegexSubscription(eventName: any, handler: TObservable) {\n const foundEvent = this.runForRegexBasedEvent(eventName, (event) =>\n this.subscribe(event as TEventsKeys, handler),\n );\n\n if (!foundEvent) {\n this.regexBasedEvents[eventName] = {\n regex: eventName,\n handlers: Array.isArray(this.events[eventName])\n ? [...this.events[eventName], handler]\n : [handler],\n };\n }\n }\n\n /**\n * This function lets you subscribe to a given event and register one callback to be called when someone published in it\n *\n * The callback you redister will, return you the published data and one function to unregister your callback from that event\n *\n */\n subscribe(eventName: TEventsKeys, handler: TObservable) {\n if (typeof eventName === 'object') {\n this.handleRegexSubscription(eventName, handler);\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n return () => {};\n }\n\n this.events = {\n ...this.events,\n [eventName]: Array.isArray(this.events[eventName])\n ? [...this.events[eventName], handler]\n : [handler],\n };\n\n return () => {\n this.unsubscribe(eventName, handler);\n };\n }\n\n unsubscribe(eventName: TEventsKeys, handler: TObservable) {\n this.events = {\n ...this.events,\n [eventName]: (this.events as TEvents)[eventName].filter(\n (eventFn) => eventFn !== handler,\n ),\n };\n }\n\n isAsyncFunction(fn: (...data: any) => any) {\n const string = fn.toString().trim();\n return !!(\n fn[Symbol.toStringTag] === 'AsyncFunction' ||\n fn.constructor.name == 'AsyncFunction' ||\n string.match(/^async /) ||\n string.match(/return _ref[^\\\\.]*\\.apply/) ||\n fn instanceof Promise\n );\n }\n\n /**\n * Allows to publish data to a given event name\n *\n * Will iterate the subscriptions and call their handlers.\n *\n * When calling the handler, will also inject the unsubscribe function\n *\n * This methods also accepts one regex and will find the matchin events and\n * publish in them\n *\n */\n async publish(eventName: TEventsKeys, data?: TEventPublishPayload) {\n if (data?.checksum && this.history[eventName] === data?.checksum) return;\n\n this.history[eventName] = data?.checksum;\n if (typeof eventName === 'object') {\n this.runForRegexBasedEvent(eventName, (event) =>\n this.publish(event as TEventsKeys, data),\n );\n return;\n }\n\n for (const regexEvent of Object.keys(this.regexBasedEvents)) {\n const isMatchEvent = new RegExp(\n this.regexBasedEvents[regexEvent].regex,\n ).test(eventName);\n if (isMatchEvent) {\n await this.publishForEvents(eventName, data, {\n [eventName]: this.regexBasedEvents[regexEvent].handlers,\n });\n }\n }\n\n return this.publishForEvents(eventName, data, this.events);\n }\n\n async publishForEvents(eventName: TEventsKeys, data = {}, events: TEvents) {\n if (!events[eventName]) return {};\n let lastCallbackResult = {};\n\n for (const fn of events[eventName]) {\n try {\n if (!fn) return;\n const payload: TObserverData = this.#buildEventPayload({\n data: {\n ...data,\n ...lastCallbackResult,\n },\n payload: data,\n event: eventName,\n namespace: this.namespace,\n });\n const isAsync = this.isAsyncFunction(fn);\n\n const handlerRes = isAsync\n ? await fn(payload, () => this.unsubscribe(eventName, fn))\n : fn(payload, () => this.unsubscribe(eventName, fn));\n\n lastCallbackResult = {\n ...lastCallbackResult,\n ...handlerRes,\n };\n } catch (e) {\n if (e instanceof ObserverError && e.breaksObservingChain) {\n this.logError(EFlowLogging.OBSERVER, eventName, 'publish', e);\n return {};\n }\n throw e;\n }\n }\n\n return {\n ...lastCallbackResult,\n ...getFormInstance(this.namespace).formData,\n };\n }\n\n logError(\n flow: Pick<TLoggingEvent, 'flow'>['flow'],\n event: string,\n method: string,\n error: unknown,\n ) {\n if (!this.enableLogging) return;\n event !== EEVents.LOG &&\n this.publish(EEVents.LOG, {\n level: 'error',\n data: {\n event,\n error,\n },\n action: method,\n flow,\n });\n }\n\n logInfo(\n flow: Pick<TLoggingEvent, 'flow'>['flow'],\n event: string,\n method: string,\n extraData?: any,\n ) {\n if (!this.enableLogging) return;\n event !== EEVents.LOG &&\n this.publish(EEVents.LOG, {\n level: 'info',\n data: {\n event,\n ...extraData,\n },\n action: method,\n flow,\n });\n }\n}\n\nexport const { getFormInstance, getGroupFormsIds } = new Factory();\nexport { Observer };\n","import React, { ReactElement, useMemo, useEffect } from 'react';\n\nimport { TChildWrapperProps } from '@react/types';\nimport { BUILD_EVENT } from '@core';\nimport { EEVents } from '@core/constants';\nimport { useForceUpdate } from '@react/useForceUpdate';\nimport { getFormInstance } from '@core/managers';\n\nconst Field = ({\n children,\n component,\n wrapper,\n propsMapping = {},\n formId,\n onMount,\n onChange,\n onFocus,\n onBlur,\n onClick,\n onRehydrate,\n}: TChildWrapperProps): ReactElement | null => {\n const [forceChange, dispatchForceChange] = useForceUpdate();\n const [forceRehydrate, dispatchForceRehydrate] = useForceUpdate();\n const [forceBlur, dispatchForceBlur] = useForceUpdate();\n const [forceFocus, dispatchForceFocus] = useForceUpdate();\n const [forceClick, dispatchForceClick] = useForceUpdate();\n const fieldInstance = useMemo(\n () => getFormInstance(formId).getFieldInstance(component, propsMapping),\n [],\n );\n const Element = useMemo(() => wrapper, [wrapper]);\n\n useMemo(() => {\n fieldInstance.publish(BUILD_EVENT(EEVents.ON_FIELD_MOUNT, component.name));\n onMount(fieldInstance.data);\n // This dependency may cause a break change, if it do so, we can remove from here\n }, [fieldInstance.data.value]);\n\n // Effects to make the Field -> Form callback flow synchronous\n\n useEffect(() => {\n if (!forceRehydrate) return;\n onRehydrate(fieldInstance.data);\n }, [forceRehydrate]);\n\n useEffect(() => {\n if (!forceChange) return;\n onChange(fieldInstance.data);\n }, [forceChange]);\n\n useEffect(() => {\n if (!forceBlur) return;\n onBlur(fieldInstance.data);\n }, [forceBlur]);\n\n useEffect(() => {\n if (!forceFocus) return;\n onFocus(fieldInstance.data);\n }, [forceFocus]);\n\n useEffect(() => {\n if (!forceClick) return;\n onClick(fieldInstance.data);\n }, [forceClick]);\n\n //Effects to listen to form Events\n useEffect(\n () =>\n fieldInstance.subscribe(\n BUILD_EVENT(EEVents.ON_FIELD_REHYDRATE, component.name),\n () => dispatchForceRehydrate(),\n ),\n [],\n );\n\n useEffect(\n () =>\n fieldInstance.subscribe(\n BUILD_EVENT(EEVents.ON_FIELD_BLUR, component.name),\n () => dispatchForceBlur(),\n ),\n [],\n );\n\n useEffect(\n () =>\n fieldInstance.subscribe(\n BUILD_EVENT(EEVents.ON_FIELD_CHANGE, component.name),\n () => dispatchForceChange(),\n ),\n [],\n );\n\n useEffect(\n () =>\n fieldInstance.subscribe(\n BUILD_EVENT(EEVents.ON_FIELD_FOCUS, component.name),\n () => dispatchForceFocus(),\n ),\n [],\n );\n\n useEffect(\n () =>\n fieldInstance.subscribe(\n BUILD_EVENT(EEVents.ON_FIELD_CLICK, component.name),\n () => dispatchForceClick(),\n ),\n [],\n );\n\n if (!fieldInstance.data.visible || !fieldInstance.data.mounted) {\n return null;\n }\n return <Element {...fieldInstance.props}>{children}</Element>;\n};\n\nexport default Field;\n","import React, { forwardRef } from 'react';\n\nconst Submit = forwardRef<HTMLInputElement>((_, ref) => (\n <input ref={ref} type=\"submit\" style={{ display: 'none' }} />\n));\nSubmit.displayName = 'Submit';\n\nexport default Submit;\n","import React, { createContext, ReactElement } from 'react';\n\nimport * as T from '@adapters/react';\n\nconst FormContext = createContext<T.TContext>({} as T.TContext);\nFormContext.displayName = 'FormContext';\n\nconst FormProvider = ({\n children,\n mapper,\n propsMapping,\n}: T.TProvider): ReactElement => {\n return (\n <FormContext.Provider\n value={{\n mapper,\n propsMapping,\n }}\n >\n {children}\n </FormContext.Provider>\n );\n};\n\nexport { FormContext, FormProvider };\n","import React, {\n ReactElement,\n useContext,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n} from 'react';\nimport { ALL_NAMESPACE_EVENTS, CoreEvents, TFormRefActions } from '@core';\nimport { DEFAULT_FORM_ID, EEVents } from '@core/constants';\n\nimport { TComponent, TFormProps } from './types';\nimport ChildWrapper from '@react/Field';\nimport Submit from '@react/Submit';\nimport { FormContext } from '@react/context';\nimport { getFormInstance } from '@core/managers';\n\nconst Form = React.forwardRef<TFormRefActions, TFormProps>(\n (\n {\n autoComplete,\n hooks,\n iVars,\n id = DEFAULT_FORM_ID,\n submitOnValidOnly = true,\n initialValues = {},\n className,\n schema,\n group,\n onData,\n onSubmit,\n onBlur,\n onClick,\n onFormMount,\n onFieldMount,\n onStep,\n onFocus,\n onLog,\n onScopeChange,\n onFieldRehydrate,\n renderFieldWrapper,\n disable,\n },\n ref,\n ): ReactElement => {\n const [, forceUpdate] = useReducer((x) => x + 1, 0);\n const formRef = useRef<HTMLFormElement>(null);\n const submitRef = useRef<HTMLInputElement>(null);\n const { mapper: Mapper, propsMapping: PropsMapping } =\n useContext(FormContext);\n\n const formInstance = useMemo(() => {\n return getFormInstance(id, {\n group,\n schema,\n newInstance: true,\n initialScope: {\n configs: { ...schema?.configs, enableLogging: !!onLog, disable },\n global: {\n ...schema?.iVars,\n ...iVars,\n },\n },\n initialValues,\n });\n }, []);\n\n useEffect(() => {\n formInstance.publish(EEVents.ON_FORM_MOUNT);\n }, []);\n\n const StepWrapper = useMemo(\n () =>\n Mapper.step\n ? (Mapper.step.component as new () => React.Component)\n : React.Fragment,\n [],\n );\n const Children = useMemo(() => {\n if (!formInstance.step.currentStepSchema) {\n return undefined;\n }\n\n const generateComponentChildren = (\n component: TComponent,\n componentLevel = 0,\n ): any => {\n return component.children?.map((component: TComponent, i: number) => {\n const Component = Mapper[component.component as string]\n ?.component as new () => React.Component;\n\n const children = (\n <ChildWrapper\n key={`${formInstance.step.index}_${componentLevel}_${component.name}_${component.component}_${i}`}\n component={component}\n wrapper={Component}\n propsMapping={\n PropsMapping[component.component] || PropsMapping.__default__\n }\n formId={id}\n onMount={(data) => {\n onFieldMount &&\n onFieldMount(formInstance.formData, component, data);\n }}\n onRehydrate={(data) => {\n onFieldRehydrate &&\n onFieldRehydrate(formInstance.formData, component, data);\n }}\n onChange={(data) => {\n onData && onData(formInstance.formData, component, data);\n }}\n onBlur={(data) => {\n onBlur && onBlur(formInstance.formData, component, data);\n }}\n onClick={(data) => {\n onClick && onClick(formInstance.formData, data);\n }}\n onFocus={(data) => {\n onFocus &&\n onFocus(formInstance.formData, component, {\n ...data,\n schemaLocation: {\n step: formInstance.step.index,\n depth: componentLevel,\n index: i,\n },\n });\n }}\n >\n {Array.isArray(component.children)\n ? generateComponentChildren(component, componentLevel++)\n : component.children}\n </ChildWrapper>\n );\n\n if (renderFieldWrapper) {\n return renderFieldWrapper(component, children as any);\n }\n return children;\n });\n };\n return generateComponentChildren(formInstance.step.currentStepSchema);\n }, [formInstance.step.index, id]);\n\n useEffect(() => {\n formInstance.scope.globalScope = {\n namespace: 'configs',\n data: {\n disable,\n },\n };\n }, [disable]);\n\n useEffect(() => {\n onFormMount && onFormMount(formInstance.formData);\n }, []);\n\n useEffect(() => {\n formInstance.scope.globalScope = {\n namespace: 'configs',\n data: {\n disable,\n },\n };\n }, [disable]);\n\n useEffect(() => {\n formInstance.scope.globalScope = {\n namespace: 'global',\n data: {\n ...schema?.iVars,\n ...iVars,\n },\n };\n }, [JSON.stringify(iVars)]);\n\n useEffect(\n () =>\n formInstance.subscribe(EEVents.ON_FORM_REHYDRATE, () => {\n forceUpdate();\n }),\n [],\n );\n useEffect(\n () =>\n formInstance.subscribe(EEVents.LOG, ({ data }) => onLog && onLog(data)),\n [],\n );\n useMemo(\n () =>\n formInstance.subscribe(\n ALL_NAMESPACE_EVENTS(EEVents.ON_SCOPE_CHANGE),\n (data) =>\n onScopeChange &&\n onScopeChange(\n formInstance.scope.scope,\n data.data.namespace,\n data.data.key,\n ),\n ),\n [],\n );\n\n useEffect(\n () =>\n formInstance.subscribe(EEVents.ON_FORM_SUBMIT, ({ data }) => {\n const hookResult =\n hooks?.preSubmit && hooks?.preSubmit(formInstance.formData);\n if (!formInstance.formData.form.isValid && submitOnValidOnly) return;\n\n onSubmit &&\n onSubmit(data.event, {\n ...formInstance.formData,\n formatted: { ...formInstance.formData.formatted, ...hookResult },\n });\n }),\n [],\n );\n\n useEffect(\n () =>\n formInstance.subscribeBulk(\n [CoreEvents.NAVIGATE_STEP_BACK, CoreEvents.NAVIGATE_STEP_FORWARD, CoreEvents.NAVIGATE_STEP],\n () => {\n onStep && onStep(formInstance.formData);\n forceUpdate();\n },\n ),\n [],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n values: () => formInstance.formData,\n step: formInstance.publishFor(CoreEvents.NAVIGATE_STEP),\n stepForward: formInstance.publishFor(CoreEvents.NAVIGATE_STEP_FORWARD),\n stepBack: formInstance.publishFor(CoreEvents.NAVIGATE_STEP_BACK),\n validateForm: formInstance.publishFor(CoreEvents.VALIDATE_FORM),\n submit: () => submitRef.current?.click(),\n schema,\n }),\n [],\n );\n\n return (\n <form\n action={formInstance.scopedSchema.action}\n method={formInstance.scopedSchema.method}\n className={className}\n ref={formRef}\n autoComplete={autoComplete}\n onSubmit={(event) => {\n formInstance.publish(CoreEvents.ON_FORM_SUBMIT, { event });\n }}\n >\n <StepWrapper {...formInstance.step.currentStepSchema?.props}>\n {Children}\n </StepWrapper>\n {!formInstance.scopedSchema.disableFormSubmit && <Submit ref={submitRef} />}\n </form>\n );\n },\n);\n\n//If we do not have schema present loading component if defined and render only when we have schema\nconst SchemaGuard = React.forwardRef<TFormRefActions, TFormProps>(\n (props, ref): ReactElement => {\n if (!props.schema)\n return props.renderLoading ? props.renderLoading() : <></>;\n\n return <Form {...props} ref={ref} />;\n },\n);\n\nexport default SchemaGuard;\n","import React, { ReactElement, useEffect, useMemo } from 'react';\n\nimport { BUILD_EVENT, TComponent } from '@core';\nimport { DEFAULT_FORM_HOOK_ID, EEVents } from '@core/constants';\n\nimport { useForceUpdate } from '@react/useForceUpdate';\nimport { getFormInstance } from '@core/managers';\n\ninterface HocProps {\n Comp: (new () => React.Component) | any;\n propsMapping: Record<string, string>;\n}\n\ntype DecoratorProps<OriginalComponentProps = Record<string, unknown>> =\n OriginalComponentProps &\n Pick<\n TComponent,\n | 'validations'\n | 'masks'\n | 'clearFields'\n | 'api'\n | 'errorMessages'\n | 'filter'\n | 'formatters'\n | 'visibilityConditions'\n > & {\n formId?: string;\n visibility?: boolean;\n name: string;\n value?: any;\n };\n\nconst asFormField =\n <OriginalComponentProps,>({ Comp, propsMapping }: HocProps) =>\n ({\n name,\n validations,\n errorMessages,\n masks,\n filter,\n formatters,\n visibilityConditions,\n formId = DEFAULT_FORM_HOOK_ID,\n visibility = true,\n value,\n ...props\n }: DecoratorProps<OriginalComponentProps>): ReactElement => {\n const [, forceUpdate] = useForceUpdate();\n const component: TComponent = useMemo(\n () => ({\n state: {\n hidden: !visibility,\n },\n component: '',\n name: name,\n validations,\n errorMessages,\n masks,\n filter,\n visibilityConditions,\n formatters,\n }),\n [\n errorMessages,\n name,\n filter,\n formatters,\n masks,\n validations,\n visibilityConditions,\n ],\n );\n const fieldInstance = useMemo(\n () => getFormInstance(formId).getFieldInstance(component, propsMapping),\n [],\n );\n\n useMemo(() => {\n fieldInstance.subscribeBulk(\n [\n BUILD_EVENT(EEVents.ON_FIELD_MOUNT, component.name),\n BUILD_EVENT(EEVents.ON_FIELD_REHYDRATE, component.name),\n ],\n forceUpdate,\n );\n }, []);\n\n useMemo(() => {\n fieldInstance.subscribe(\n BUILD_EVENT(EEVents.ON_FIELD_CHANGE, component.name),\n ({ data }) => {\n forceUpdate();\n props[propsMapping.getValue] &&\n props[propsMapping.getValue](data.event, fieldInstance.data);\n },\n );\n }, [props[propsMapping.getValue]]);\n\n useMemo(() => {\n fieldInstance.subscribe(\n BUILD_EVENT(EEVents.ON_FIELD_BLUR, component.name),\n ({ data }) => {\n forceUpdate();\n props[propsMapping.onBlur] && props[propsMapping.onBlur](data.event);\n },\n );\n }, [props[propsMapping.onBlur]]);\n\n useMemo(() => {\n fieldInstance.subscribe(\n BUILD_EVENT(EEVents.ON_FIELD_FOCUS, component.name),\n ({ data }) => {\n forceUpdate();\n props[propsMapping.onFocus] &&\n props[propsMapping.onFocus](data.event);\n },\n );\n }, [props[propsMapping.onFocus]]);\n\n useEffect(() => {\n if (typeof value === 'undefined') return;\n fieldInstance.value = value;\n fieldInstance.rehydrate();\n }, [value]);\n\n useEffect(() => {\n fieldInstance.visibility = visibility;\n fieldInstance.rehydrate();\n }, [visibility]);\n\n useEffect(() => {\n return () => getFormInstance(formId).destroyField(name);\n }, []);\n\n if (!fieldInstance.data.visible) {\n return <></>;\n }\n\n return <Comp {...props} {...fieldInstance.props} />;\n };\n\nexport default asFormField;\n","import { useEffect, useCallback } from 'react';\n\nimport { TChildrenOptions, TFormValues } from '@react/types';\n\nimport { CoreEvents, ALL_NAMESPACE_EVENTS, TField } from '@core';\nimport { DEFAULT_FORM_HOOK_ID, EEVents } from '@core/constants';\nimport { getFormInstance } from '@core/managers';\n\ntype TProps = {\n /**\n * The if of the form you want to connect to\n */\n id?: string;\n /**\n * And array of ids of forms you want to connect to\n */\n ids?: string[];\n /**\n * Callback to be called when form validity toggled\n * @param data All the available form data\n * @param field\n */\n onValid?(data: TFormValues, field: TField): void;\n /**\n * Callback to be called when the form generates some new data\n * @param data All the available form data\n */\n onData?(data: TFormValues): void;\n /**\n * Callback to be called when the form submits\n * @param data All the available form data\n */\n onSubmit?(data: TFormValues): void;\n};\n\ntype THookReturn = {\n /**\n * A function that lets you start the form submission\n */\n submitForm(): void;\n /**\n * You can call this function to get all the updated form data\n *\n * @param opts Options to configure your form data\n */\n formData(opts?: TChildrenOptions): TFormValues;\n};\n\n/**\n * This hooks lets you connect to your form/s in anywherer in your application. Even if you are outside the <FormProvider />\n *\n * You can connect to:\n * - A specific form\n * - Several forms identified by their id's\n * - A group of forms\n *\n */\nconst useForm = ({\n onValid,\n onData,\n onSubmit,\n id = DEFAULT_FORM_HOOK_ID,\n ids,\n}: TProps): THookReturn => {\n /**\n * Subscribe to some event.\n *\n * If the hook has more than one formId, will run subscription for all of them\n *\n * @param event The event name\n * @param cb The callback to run on subscription\n */\n const subscribe = (event, cb) => {\n if (!cb) return;\n if (ids) {\n ids.map((formId) =>\n getFormInstance(formId).subscribe(event, ({ data }) =>\n cb(getFormInstance(formId).formData, { field: data.field }),\n ),\n );\n return;\n }\n\n getFormInstance(id).subscribe(event, cb);\n };\n\n /**\n * Get all the available form data\n *\n * Will return to a given form, or data to multiple form in the same data structure\n *\n * @returns form data\n */\n const extractFormsData = () => {\n if (!ids) return getFormInstance(id).formData;\n return ids.reduce(\n (acc, formId) =>\n Object.keys(acc).reduce(\n (innerAcc, key) => ({\n ...innerAcc,\n [key]: { ...acc[key], ...getFormInstance(formId).formData[key] },\n }),\n {},\n ),\n {\n formatted: {},\n erroredFields: {},\n fields: {},\n form: {},\n predictableErroredFields: {},\n filteredFields: {},\n },\n ) as TFormValues;\n };\n\n const onDataChange = useCallback(() => {\n let data = getFormInstance(id).formData;\n if (ids) {\n data = ids.reduce(\n (acc, formId) => ({\n ...acc,\n [formId]: getFormInstance(formId).formData,\n }),\n {},\n ) as TFormValues;\n }\n\n onData && onData(data);\n }, [onData, onValid]);\n\n useEffect(\n () => subscribe(EEVents.ON_FIELD_VALIDATION_TOGGLE, onValid),\n [onValid],\n );\n useEffect(\n () =>\n subscribe(ALL_NAMESPACE_EVENTS(CoreEvents.ON_FIELD_CHANGE), onDataChange),\n [onData, onValid],\n );\n useEffect(\n () =>\n subscribe(\n ALL_NAMESPACE_EVENTS(CoreEvents.ON_FIELD_REHYDRATE),\n onDataChange,\n ),\n [onData, onValid],\n );\n\n useEffect(\n () =>\n subscribe(CoreEvents.ON_FORM_SUBMIT, () => {\n onSubmit && onSubmit(extractFormsData());\n }),\n [onSubmit],\n );\n\n const submitForm = () =>\n getFormInstance(ids ? ids[0] : id).publish(CoreEvents.ON_FORM_SUBMIT);\n\n return { submitForm, formData: extractFormsData };\n};\n\nexport default useForm;\n"],"names":["BUILD_EVENT","event","namespace","key","ALL_NAMESPACE_EVENTS","RegExp","concat","CoreEvents","ON_FIELD_VALIDATION_TOGGLE","ON_FIELD_MOUNT","ON_FIELD_CHANGE","ON_FIELD_BLUR","ON_FIELD_FOCUS","ON_FIELD_REHYDRATE","ON_FIELD_CLICK","RUN_FIELD_VALIDATIONS","RUN_FIELD_FORMATTERS","RUN_FIELD_MASKS","ON_SCOPE_CHANGE","ON_FORM_REHYDRATE","ON_FORM_SUBMIT","ON_FORM_MOUNT","ON_FORM_UN_MOUNT","ON_FORM_DATA","NAVIGATE_STEP","NAVIGATE_STEP_FORWARD","NAVIGATE_STEP_BACK","VALIDATE_FORM","LOG","DEFAULT_FORM_ID","DEFAULT_FORM_HOOK_ID","useForceUpdate","_useState2","_slicedToArray","useState","value","setValue","Base","constructor","observer","_this","this","_classCallCheck","_Base_observer","set","_Base_debounceQueue","debounceTime","debounce","fn","arguments","length","undefined","__awaiter","_regeneratorRuntime","mark","_callee","_this2","wrap","_context","prev","next","abrupt","Promise","resolve","__classPrivateFieldGet","clearTimeout","setTimeout","stop","__classPrivateFieldSet","publish","bind","subscribe","subscribeBulk","subscriptions","cb","events","_this3","forEach","data","publishFor","_this4","_callee2","_context2","sent","logError","file","method","error","logInfo","extraData","Scope","_Base","_inherits","_super","_createSuper","call","_Scope_scope","_assertThisInitialized","global","api","hooks","configs","fields","get","getGlobalScope","scope","_ref","_defineProperty","Object","assign","eventName","encapsulateIn","origin","path","parts","split","getNewPart","subObject","clonedParts","_toConsumableArray","splice","part","getValueByPath","object","reduce","acc","getTypeCard","availableOptions","rawValue","removeGaps","toString","types","creditCardType","filter","id1","type","some","id2","replace","formatValue","addGaps","gaps","_gaps$reduce","_ref2","offset","i","_ref3","regexString","replaceString","digitNumber","_gaps$reduce2","trim","slice","lengths","hasJsonStructure","str","result","JSON","parse","prototype","err","undo_splitter","formatterValue","originalValue","formattersApplied","formatter","nextStartingIndex","position","formatters","splitter","formattedValue","capitalize","charAt","toUpperCase","upperCase","_ref4","gapsCreditCard","_ref5","_utils$creditCard$get2","utils","onlyNumbers","_ref6","onlyLetters","_ref7","run","componentFormatters","undo","newValue","keys","formatterFn","generic","_ref7$value","maskValue","masked","item","_item$to","to","mask","from","maskedPortion","Array","join","masks","cardNumber","hideCardNumber","cardMask","cardDate","fixedValue","valZeroTwo","currencyMask","_ref5$value","replacedValue","Intl","NumberFormat","locale","minimumFractionDigits","maximumFractionDigits","style","currency","format","feinMask","replaceAll","_ref8","_ref8$value","targetReplaceMask","regex","validationValue","fail","test","_ref16","_ref16$value","validations","substring","hasError","date","_ref30","_ref30$value","_a","target","_b","intervals","dateRearangeMapper","DDMMYYYY","dateParts","includes","YYYYMMDD","YYYYDDMM","MMDDYYYY","timestamp","Date","originValue","originDate","targetDate","_c","_d","getIntervalsDate","intervalsMapper","years","setUTCFullYear","getUTCFullYear","months","setUTCMonth","getUTCMonth","days","setDate","getUTCDate","interval","_e","getDate","setMonth","getMonth","onlyValidDate","isFinite","originTimestamp","getTime","targetTimestamp","operator","between","_ref29","dates","start","end","_step","_iterator","_createForOfIteratorHelper","s","n","done","validation","e","f","parsedValue","parseInt","isIncludedBoundaries","conditions","_ref31","_ref31$value","conditionResult","rule","forceDefinedOrigin","forceDefinedTarget","condition","and","every","or","targetValue","greaterThan","maxLength","_ref4$value","Number","isInteger","minLength","required","bool","_ref32","hasNoExtraSpaces","_ref21","errorMessage","isCreditCard","_ref10","metadata","typeCard","creditCardCC","code","name","creditCardCCSize","size","isCreditCardAndLength","_ref12","_utils$creditCard$get6","isCreditCodeMatch","_ref11","numberCard","_ref14","notAllowSpaces","_ref17","callback","_ref18","message","isNumber","_ref19","customValidation","_ref15","notEmpty","_ref20","numericRange","_ref22","String","email","_ref9","lessThan","sequentialNumber","_ref24","indexOf","repeatedNumbers","_ref25","url","_ref13","_ref26","searchErrorInPath","valueForPath","preventUnMountValidation","errors","defaultResponse","validationsResult","isArray","paths","res","isInTheList","_ref23","stringify","_ref27","values","fieldName","customNameRule","_ref28","_typeof","rules","errorMessages","formData","validationFN","ruleResult","find","concatenate","a","b","add","subtract","searchValue","replaceValue","handler","field","changed","parsedEventValue","form","rehydrate","_field$component$prop","component","props","staticInitialSchemaValue","mappings","groupValue","group","initialValues","initialValue","_h","steps","_g","_f","index","formatted","mounted","blured","focused","template","BEGIN","END","DEFAULT_SPLITTER","hasTemplateString","varOps","isVarOps","extractTargetString","lastIndex","lastIndexOf","substringTemplate","match","originalMatchLength","defaultValue","scopedTemplateValue","scopeComponent","children","wrapper","rest","__rest","scopedComponent","inObject","replaceTemplateString","targetString","isFieldExcludedObservable","observables","templates","exclude","matchingParts","subscribeFieldToScopeChange","scopedString","apis","getVarOpsOp","apply","extractVarOpsArgs","obj","map","scopeForm","schema","components","newScopedForm","scopedSchema","exports","Op","hasOwn","hasOwnProperty","defineProperty","desc","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","arg","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","reject","record","__await","then","unwrapped","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","_sent","dispatchException","methodName","TypeError","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","setPrototypeOf","__proto__","awrap","async","iter","val","reverse","pop","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","eventReducedSchema","apiCall","meetsRunningCondition","preConditions","fieldHasError","blockRequestWhenInvalid","fieldValidationsHaveError","globalScope","loading","fetch","body","headers","parsedResponse","json","status","response","jsonErr","eventField","fieldsData","fieldValues","visible","mergedKey","formattedDataDefaults","erroredFields","predictableErroredFields","filteredFields","ignore","stepData","step","isValid","messages","fieldValue","buildFormMessages","clearFields","clearField","targetField","clearedValue","visibilityConditions","fieldNames","targetFieldName","visibility","eventMapper","number","checkbox","checked","id","options","isDeletingValue","ObserverError","_Error","_wrapNativeSuper","breaksObservingChain","_field$scopedComponen","dataToFilter","cleanMask","componentMasks","failedErrorMessages","getFieldErrorMessages","setScope","_mapperNextStepIndex","payload","mapperNextStepIndex","nextStepIndex","findIndex","numSteps","navigated","currentStepSchema","childrenScope","opts","scopeBlurredChildren","scopeChangedChildren","extractScopedChildrenFromOptions","formEventDirectives","register","flows","flow","fieldFlows","templating","mount","htmlEventParser","change","blur","focus","formFlows","formTemplating","formLevelVisibilityConditions","validate","Field","propsMapping","_Field_fieldData","_Field_component","_Field_scopedComponent","_Field_propsMapping","hidden","ignoreValue","propsActionsMapping","getValue","onBlur","onClick","onFocus","setErrorMessage","setErrorState","disabled","disable","_data$errors","setErrorMessages","_classPrivateFieldGe","_classPrivateFieldGe$","checksum","EFlowLogging","Form","formId","_Form_fields","_Form_observer","_Form_step","getFieldInstance","destroyField","Factory","workers","getFormInstance","getGroupFormsIds","_createClass","newInstance","Observer","initialScope","enableLogging","iVars","regexBasedEvents","history","_Observer_buildEventPayload","eventFieldName","EXTRACT_EVENT_NAMESPACE","coreEvent","EXTRACT_CORE_NAMESPACE","runForRegexBasedEvent","isMatchEvent","_i","_Object$keys","handleRegexSubscription","handlers","unsubscribe","eventFn","isAsyncFunction","string","_this5","_i2","_Object$keys2","regexEvent","publishForEvents","_context3","lastCallbackResult","_loop","handlerRes","v","_this6","t0","t1","OBSERVER","_ret","level","action","_Factory","onMount","onChange","onRehydrate","forceChange","dispatchForceChange","forceRehydrate","dispatchForceRehydrate","forceBlur","dispatchForceBlur","forceFocus","dispatchForceFocus","forceClick","dispatchForceClick","fieldInstance","useMemo","Element","useEffect","_jsx","Submit","forwardRef","_","ref","display","FormContext","createContext","FormProvider","React","autoComplete","submitOnValidOnly","className","onData","onSubmit","onFormMount","onFieldMount","onStep","onLog","onScopeChange","onFieldRehydrate","renderFieldWrapper","forceUpdate","useReducer","x","formRef","useRef","submitRef","mapper","Mapper","PropsMapping","useContext","formInstance","StepWrapper","Fragment","Children","generateComponentChildren","componentLevel","Component","jsx","ChildWrapper","__default__","schemaLocation","depth","hookResult","preSubmit","useImperativeHandle","stepForward","stepBack","validateForm","submit","current","click","_jsxs","disableFormSubmit","SchemaGuard","renderLoading","Provider","asFormField","Comp","useForm","onValid","ids","extractFormsData","innerAcc","onDataChange","useCallback","submitForm"],"mappings":"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"}
package/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./types.js"),r=require("./asFormField-ae72733e.js");require("react"),require("react/jsx-runtime"),require("credit-card-type"),Object.defineProperty(exports,"TAvailableHooks",{enumerable:!0,get:function(){return e.TAvailableHooks}}),exports.ALL_NAMESPACE_EVENTS=r.ALL_NAMESPACE_EVENTS,exports.BUILD_EVENT=r.BUILD_EVENT,exports.CoreEvents=r.CoreEvents,exports.Form=r.SchemaGuard,exports.FormProvider=r.FormProvider,exports.asFormField=r.asFormField,exports.useForm=r.useForm;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./types.js"),r=require("./asFormField-d85104b4.js");require("react"),require("react/jsx-runtime"),require("credit-card-type"),Object.defineProperty(exports,"TAvailableHooks",{enumerable:!0,get:function(){return e.TAvailableHooks}}),exports.ALL_NAMESPACE_EVENTS=r.ALL_NAMESPACE_EVENTS,exports.BUILD_EVENT=r.BUILD_EVENT,exports.CoreEvents=r.CoreEvents,exports.Form=r.SchemaGuard,exports.FormProvider=r.FormProvider,exports.asFormField=r.asFormField,exports.useForm=r.useForm;
2
2
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bolttech/form-engine",
3
- "version": "0.5.2",
3
+ "version": "0.5.3",
4
4
  "description": "A form engine based on form events for react projects",
5
5
  "type": "commonjs",
6
6
  "exports": {
package/react.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./asFormField-ae72733e.js"),r=require("react");require("./types.js"),require("react/jsx-runtime"),require("credit-card-type");exports.Form=e.SchemaGuard,exports.FormProvider=e.FormProvider,exports.asFormField=e.asFormField,exports.useForm=e.useForm,exports.useFormGroup=({group:s,onData:t,onSubmit:o,ids:a=[]})=>{const[c,i]=r.useState(s?e.getGroupFormsIds(s):a),n=r.useCallback((()=>{const r=c.reduce(((r,s)=>Object.assign(Object.assign({},r),{[s]:e.getFormInstance(s).formData})),{});t&&t(r)}),[t]),u=r=>c.reduce(((s,t)=>(null==r?void 0:r.aggregate)?Object.keys(s).reduce(((o,a)=>Object.assign(Object.assign({},o),{[a]:Object.assign(Object.assign({},s[a]),e.getFormInstance(t,r).formData[a])})),{}):Object.assign(Object.assign({},s),{[t]:e.getFormInstance(t,r).formData})),{formatted:{},erroredFields:{},fields:{},form:{},predictableErroredFields:{},filteredFields:{}});r.useEffect((()=>{!c.length&&s&&i(e.getGroupFormsIds(s))}),[c]),r.useEffect((()=>{c.map((r=>e.getFormInstance(r).subscribe(e.ALL_NAMESPACE_EVENTS(e.CoreEvents.ON_FIELD_CHANGE),n)))}),[t,c]),r.useEffect((()=>{c.map((r=>e.getFormInstance(r).subscribe(e.ALL_NAMESPACE_EVENTS(e.CoreEvents.ON_FIELD_REHYDRATE),n)))}),[t,c]),r.useEffect((()=>{c.map((r=>e.getFormInstance(r).subscribe(e.CoreEvents.ON_FORM_SUBMIT,(()=>o&&o(u({}))))))}),[o,c]);return{submitForm:()=>c.map((r=>e.getFormInstance(r).publish(e.CoreEvents.ON_FORM_SUBMIT))),formData:u}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./asFormField-d85104b4.js"),r=require("react");require("./types.js"),require("react/jsx-runtime"),require("credit-card-type");exports.Form=e.SchemaGuard,exports.FormProvider=e.FormProvider,exports.asFormField=e.asFormField,exports.useForm=e.useForm,exports.useFormGroup=({group:s,onData:t,onSubmit:o,ids:a=[]})=>{const[c,i]=r.useState(s?e.getGroupFormsIds(s):a),n=r.useCallback((()=>{const r=c.reduce(((r,s)=>Object.assign(Object.assign({},r),{[s]:e.getFormInstance(s).formData})),{});t&&t(r)}),[t]),u=r=>c.reduce(((s,t)=>(null==r?void 0:r.aggregate)?Object.keys(s).reduce(((o,a)=>Object.assign(Object.assign({},o),{[a]:Object.assign(Object.assign({},s[a]),e.getFormInstance(t,r).formData[a])})),{}):Object.assign(Object.assign({},s),{[t]:e.getFormInstance(t,r).formData})),{formatted:{},erroredFields:{},fields:{},form:{},predictableErroredFields:{},filteredFields:{}});r.useEffect((()=>{!c.length&&s&&i(e.getGroupFormsIds(s))}),[c]),r.useEffect((()=>{c.map((r=>e.getFormInstance(r).subscribe(e.ALL_NAMESPACE_EVENTS(e.CoreEvents.ON_FIELD_CHANGE),n)))}),[t,c]),r.useEffect((()=>{c.map((r=>e.getFormInstance(r).subscribe(e.ALL_NAMESPACE_EVENTS(e.CoreEvents.ON_FIELD_REHYDRATE),n)))}),[t,c]),r.useEffect((()=>{c.map((r=>e.getFormInstance(r).subscribe(e.CoreEvents.ON_FORM_SUBMIT,(()=>o&&o(u({}))))))}),[o,c]);return{submitForm:()=>c.map((r=>e.getFormInstance(r).publish(e.CoreEvents.ON_FORM_SUBMIT))),formData:u}};
2
2
  //# sourceMappingURL=react.js.map