@bolttech/form-engine 0.10.6 → 0.10.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/README.md +36 -1
- package/asFormField-b207200a.js +2 -0
- package/asFormField-b207200a.js.map +1 -0
- package/index.js +1 -1
- package/package.json +1 -1
- package/react.js +1 -1
- package/src/core/constants/events.d.ts +1 -0
- package/src/core/events/events.types.d.ts +1 -1
- package/src/core/handlers/common/templating.d.ts +1 -1
- package/src/core/handlers/field/api.d.ts +1 -1
- package/src/core/handlers/field/blur.d.ts +1 -1
- package/src/core/handlers/field/change.d.ts +1 -1
- package/src/core/handlers/field/clearFields.d.ts +1 -1
- package/src/core/handlers/field/data.d.ts +1 -1
- package/src/core/handlers/field/filter.d.ts +1 -1
- package/src/core/handlers/field/focus.d.ts +1 -1
- package/src/core/handlers/field/formatters.d.ts +1 -1
- package/src/core/handlers/field/htmlEventParser.d.ts +1 -1
- package/src/core/handlers/field/keydown.d.ts +1 -1
- package/src/core/handlers/field/keyup.d.ts +1 -1
- package/src/core/handlers/field/masks.d.ts +1 -1
- package/src/core/handlers/field/mount.d.ts +1 -1
- package/src/core/handlers/field/validations.d.ts +1 -1
- package/src/core/handlers/field/visibilityConditions.d.ts +1 -1
- package/src/core/handlers/flows.d.ts +2 -0
- package/src/core/handlers/form/changeFields.d.ts +3 -0
- package/src/core/handlers/form/hooks.d.ts +1 -1
- package/src/core/handlers/form/steps.d.ts +1 -1
- package/src/core/handlers/form/templating.d.ts +1 -1
- package/src/core/handlers/form/validate.d.ts +1 -1
- package/src/core/handlers/form/visibilityConditions.d.ts +1 -1
- package/src/core/types/index.d.ts +8 -3
- package/types.js.map +1 -1
- package/asFormField-473eb268.js +0 -2
- package/asFormField-473eb268.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asFormField-b207200a.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/handlers/common/templating.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/field/api.ts","../../../libs/form-engine/src/core/handlers/field/data.ts","../../../libs/form-engine/src/core/handlers/field/visibilityConditions.ts","../../../libs/form-engine/src/core/handlers/field/clearFields.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/field/keyup.ts","../../../libs/form-engine/src/core/handlers/field/keydown.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/changeFields.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_CLEARED = 'ON_FIELD_CLEARED',\n ON_FIELD_CLICK = 'ON_FIELD_CLICK',\n ON_FIELD_KEYUP = 'ON_FIELD_KEYUP',\n ON_FIELD_KEYDOWN = 'ON_FIELD_KEYDOWN',\n\n AFTER_FIELD_API_CALL = 'AFTER_FIELD_API_CALL',\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\n CHANGE_FIELDS = 'CHANGE_FIELDS',\n\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_CLEARED: 'ON_FIELD_CLEARED',\n ON_FIELD_CLICK: 'ON_FIELD_CLICK',\n ON_FIELD_KEYUP: 'ON_FIELD_KEYUP',\n ON_FIELD_KEYDOWN: 'ON_FIELD_KEYDOWN',\n\n AFTER_FIELD_API_CALL: 'AFTER_FIELD_API_CALL',\n\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 CHANGE_FIELDS: 'CHANGE_FIELDS',\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","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: string | number | boolean | Record<string, unknown> = '';\n const parts = match.split(template.DEFAULT_SPLITTER);\n if (parts.length > 1) {\n match = parts[0];\n for (const part of parts) {\n if (\n part.includes('api') ||\n part.includes('global') ||\n part.includes('fields') ||\n part.includes('hooks') ||\n part.includes('configs')\n ) {\n const parse = utils.object.getValueByPath(\n field.scope.getGlobalScope(),\n part,\n );\n if (parse) {\n defaultValue = parse;\n }\n\n continue;\n }\n\n defaultValue = part;\n }\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<unknown>, '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: string | number | boolean | Record<string, unknown> = '';\n const parts = match.split(template.DEFAULT_SPLITTER);\n if (parts.length > 1) {\n match = parts[0];\n for (const part of parts) {\n if (\n part.includes('api') ||\n part.includes('global') ||\n part.includes('fields') ||\n part.includes('hooks') ||\n part.includes('configs')\n ) {\n const parse = utils.object.getValueByPath(\n field.scope.getGlobalScope(),\n part,\n );\n if (parse) {\n defaultValue = parse;\n }\n\n continue;\n }\n\n defaultValue = part;\n }\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 && !/^\\$\\{.*\\}$/.test(targetString)) {\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 { extractTargetString } from '@core/handlers/common/templating';\nimport Form from \"@core/managers/Form\";\nimport Field from \"@core/managers/Field\";\n\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 * @param form - The form instance to be used on extract string\n * @param field - The field instance to be used on extract string\n * @returns One new object with the new value at the provided path merged with the given object\n */\nconst encapsulateIn = (\n origin: Record<string, unknown>,\n path: string,\n value: string,\n form: Form,\n field: Field\n): Record<string, unknown> => {\n const getType = (v: string | number | boolean | Record<string, unknown>) => {\n if (typeof value === \"boolean\" && typeof v === 'string') {\n return (/true/).test(v);\n }\n\n return (value.constructor)(v);\n }\n const parts = path.split('.');\n if (parts.length === 1) {\n return { ...origin, [path]: getType(extractTargetString(value, form, field)) };\n }\n const getNewPart = (\n parts: string[],\n subObject: Record<string, unknown>,\n ): Record<string, unknown> => {\n const clonedParts = [...parts];\n clonedParts.splice(0, 1);\n const part =\n parts.length !== 1\n ? getNewPart(\n clonedParts,\n subObject ? (subObject[parts[0]] as Record<string, unknown>) : {},\n )\n : getType(extractTargetString(value, form, field));\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 regex = ({\n value,\n formatterValue,\n}: {\n value: string;\n formatterValue: string;\n}) => {\n return value.replace(new RegExp(formatterValue, 'g'), '');\n};\n\nconst formatters: Record<string, unknown> = {\n splitter,\n undo_splitter,\n capitalize,\n upperCase,\n gapsCreditCard,\n onlyNumbers,\n onlyLetters,\n regex,\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 exists = ({\n validationValue,\n}: TValidationArguments<TRuleValue, TValidationValue>): TErrorReturn => {\n return { fail: !validationValue };\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 exists,\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<unknown>, '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<unknown>, '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<unknown>, 'field' | 'eventReducedSchema'>) => {\n field.data.blured = true;\n};\n","import * as Events from '@core/events';\n\nexport const handler = ({ field }: Pick<Events.TEventInformation<unknown>, 'field'>) => {\n field.data = {\n ...field.data,\n focused: true,\n };\n};\n","import { BUILD_EVENT, 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';\nimport { EEVents } from '@core/constants';\n\nconst DEFAULT_DEBOUNCE_MS = 200;\n\nexport const handler = ({\n field,\n form,\n eventReducedSchema: { api },\n}: Pick<Events.TEventInformation<unknown>, '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 let paramValues = {};\n let url = apiCall.url;\n\n if (apiCall.fieldValueAsPathParams) {\n for (const param of apiCall.fieldValueAsPathParams) {\n if (Object.prototype.hasOwnProperty.call(form.fields, param)) {\n url = `${url}/${form.fields[param].data.value}`;\n }\n }\n }\n\n if (apiCall.fieldValueAsParams) {\n for (const key in apiCall.fieldValueAsParams) {\n if (Object.prototype.hasOwnProperty.call(form.fields, key)) {\n const value = apiCall.fieldValueAsParams[key] || key;\n\n paramValues = {\n ...paramValues,\n [value]: form.fields[key].data.value,\n };\n }\n }\n\n if (url.includes('?')) {\n const uri = url.split('?');\n const uriParams = uri.at(1).split('&');\n url = uri.at(0);\n\n if (uriParams.length > 1) {\n for (const uriParam of uriParams) {\n const item = uriParam.split('=');\n paramValues = {\n ...paramValues,\n [item.at(0)]: item.at(1),\n }\n }\n } else {\n const item = uriParams.at(0).split('=');\n paramValues = {\n ...paramValues,\n [item.at(0)]: item.at(1),\n }\n }\n }\n\n const params = new URLSearchParams(paramValues);\n url = `${url}?${params.toString()}`;\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(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 .finally(() =>\n field.publish(\n BUILD_EVENT(EEVents.AFTER_FIELD_API_CALL, field.component.name),\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<unknown>, '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 form,\n field,\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 { BUILD_EVENT, TComponent } from '@core';\nimport * as apis from '@core/apis';\nimport { EEVents } from '@core/constants';\nimport * as Events from '@core/events';\nimport Field from '@core/managers/Field';\nimport { TSchemaValidation } from '@core/types';\n\nenum RULES {\n AND = 'and',\n OR = 'or',\n}\n\nconst ruleMapper = {\n [RULES.OR]: (field: Field, validations: TSchemaValidation): boolean =>\n field.fieldHasError(apis.validations.run(field.value, validations)),\n [RULES.AND]: (field: Field, validations: TSchemaValidation): boolean => {\n const errors = [];\n\n for (const validation in validations) {\n errors.push(\n field.fieldHasError(\n apis.validations.run(field.value, {\n [validation]: validations[validation],\n }),\n ),\n );\n }\n\n return errors.every((val) => val);\n },\n};\n\nexport const handler = ({\n form,\n field,\n eventReducedSchema,\n}: Pick<Events.TEventInformation<unknown>, 'form' | 'field' | 'eventReducedSchema'>) => {\n eventReducedSchema.visibilityConditions?.forEach(\n ({ validations, fieldName, fieldNames, rule, showOnlyIfTrue }) => {\n const fields = [...(fieldNames || [fieldName])];\n const mapper = rule || 'or';\n\n fields.forEach((targetFieldName) => {\n if (!targetFieldName) return;\n\n const hasError = ruleMapper[mapper](field, validations);\n const visibility = showOnlyIfTrue\n ? ruleMapper[mapper](field, validations) === true\n : !hasError;\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 = visibility;\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 = visibility;\n form.fields[targetFieldName].rehydrate();\n\n if (!form.fields[targetFieldName].visibility)\n form.fields[targetFieldName].errors = {};\n });\n },\n );\n};\n\nexport const events = (component: TComponent) =>\n Object.keys(component.visibilityConditions || {});\n","import * as Events from '@core/events';\nimport * as apis from '@core/apis';\nimport { BUILD_EVENT, TComponent } from \"@core\";\nimport Field from '@core/managers/Field';\nimport { TClearField } from '@core/types';\nimport { EEVents } from \"@core/constants\";\n\nconst triggerTargetValue = (target: Field, clear: TClearField): void => {\n const cleared = clear.clearedValue !== target.data.value;\n target.value = clear.clearedValue;\n\n if (cleared) {\n target.publish(\n BUILD_EVENT(EEVents.ON_FIELD_CLEARED, target.component.name)\n );\n }\n\n target.rehydrate();\n};\n\nexport const handler = ({\n field,\n form,\n eventReducedSchema,\n}: Pick<Events.TEventInformation<unknown>, '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 return triggerTargetValue(targetField, clearField);\n }\n\n const errors = apis.validations.run(\n clearField.useCurrentFieldValidation\n ? field.data.value\n : targetField.value,\n clearField.validations,\n );\n\n if (!targetField.fieldHasError(errors)) return;\n triggerTargetValue(targetField, clearField);\n });\n });\n};\n\nexport const events = (component: TComponent) =>\n Object.keys(component.clearFields || {});\n","import { TEventInformation } from '@core/events';\n\nexport const handler = ({ field, data: { event } }: TEventInformation<unknown>) => {\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<unknown>) => {\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<unknown>) => {\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<unknown>) => {\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<unknown>, '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 field.data.failedErrorMessages = field.getFieldErrorMessages(field.data);\n};\n\nexport const events = (component: TComponent) =>\n Object.keys(component.validations || {});\n","import * as Events from '@core/events';\n\nexport const handler = ({\n field,\n data,\n}: Pick<Events.TEventInformation<unknown>, 'field' | 'data'>) => {\n field.data.keyup = true;\n field.value = data.parsedEventValue;\n};\n","import * as Events from '@core/events';\n\nexport const handler = ({\n field,\n data,\n}: Pick<Events.TEventInformation<unknown>, 'field' | 'data'>) => {\n field.data.keydown = true;\n field.value = data.parsedEventValue;\n};\n","import { TEventInformation } from '@core/events';\nimport { THookPayload, TSetGlobalScope } from '@core/types';\n\nexport const handler = ({\n form,\n}: Pick<TEventInformation<unknown>, '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<unknown>, '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 } else if (typeof payload === 'number') {\n nextStepIndex = payload;\n return steps[payload];\n }\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<unknown>, '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 { EEVents } from '@core/constants';\nimport * as Events from '@core/events';\nimport { handler as fieldHandler } from '@core/handlers/field/data';\nimport { handler as fieldValidationHandler } from '@core/handlers/field/validations';\nimport Field from '@core/managers/Field';\nimport { TEventReducedSchema, TSubmitValueData } from '@core/types';\n\nexport const handler = ({\n form,\n payload,\n}: Pick<Events.TEventInformation<TSubmitValueData>, 'form' | 'payload'>) => {\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(Object.keys(payload));\n Object.keys(fields).forEach((key) => {\n const value = payload?.[key]?.value;\n const field: Field = fields[key];\n field.value = value ? value : '';\n field.scopedComponent = {\n ...field.scopedComponent,\n props: { ...field.scopedComponent.props, ...payload[key].props },\n };\n // might need visibility conditions, clearFields, formatters, masks, etc..\n // need to check this wisely...\n const validationsEvents = Object.keys(field.scopedComponent.validations);\n const validations = validationsEvents.reduce((acc, curr: EEVents) => {\n return { ...acc, ...field.eventReducedSchema(curr).validations };\n }, {});\n fieldValidationHandler({\n field,\n eventReducedSchema: {\n validations,\n } as TEventReducedSchema,\n form,\n });\n fieldHandler({ form, field: field });\n field.rehydrate();\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<unknown>, '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<unknown>, '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: string | number | boolean | Record<string, unknown> = '';\n const parts = match.split(template.DEFAULT_SPLITTER);\n if (parts.length > 1) {\n match = parts[0];\n for (const part of parts) {\n if (\n part.includes('api') ||\n part.includes('global') ||\n part.includes('fields') ||\n part.includes('hooks') ||\n part.includes('configs')\n ) {\n const parse = utils.object.getValueByPath(\n form.scope.getGlobalScope(),\n part,\n );\n if (parse) {\n defaultValue = parse;\n }\n\n continue;\n }\n\n defaultValue = part;\n }\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';\nimport * as keyup from '@core/handlers/field/keyup';\nimport * as keydown from '@core/handlers/field/keydown';\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 changeFields from '@core/handlers/form/changeFields';\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 visibilityConditions,\n clearFields,\n api,\n data,\n masks,\n ],\n [EEVents.ON_FIELD_KEYUP]: [\n htmlEventParser,\n filter,\n keyup,\n validations,\n formatters,\n visibilityConditions,\n clearFields,\n api,\n data,\n masks,\n ],\n [EEVents.ON_FIELD_KEYDOWN]: [\n htmlEventParser,\n filter,\n keydown,\n validations,\n formatters,\n visibilityConditions,\n clearFields,\n api,\n data,\n masks,\n ],\n [EEVents.ON_FIELD_REHYDRATE]: [validations],\n [EEVents.ON_FIELD_CLEARED]: [formatters, masks, filter, validations, api],\n [EEVents.ON_FIELD_CLICK]: [\n validations,\n api,\n visibilityConditions,\n clearFields,\n ],\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 [EEVents.AFTER_FIELD_API_CALL]: [\n htmlEventParser,\n filter,\n validations,\n formatters,\n masks,\n data,\n visibilityConditions,\n clearFields,\n ],\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 [EEVents.CHANGE_FIELDS]: [changeFields],\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 if (\n typeof this.#fieldData.value !== 'undefined' &&\n this.#component.props[this.#propsMapping.setValue] !==\n this.#fieldData.value\n ) {\n return this.#fieldData.value;\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 onKeyUp: (event: SyntheticEvent) =>\n this.publish(BUILD_EVENT(EEVents.ON_FIELD_KEYUP, this.component.name), {\n event,\n }),\n onKeyDown: (event: SyntheticEvent) =>\n this.publish(\n BUILD_EVENT(EEVents.ON_FIELD_KEYDOWN, this.component.name),\n {\n event,\n },\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(\n setErrorMessages?: boolean,\n event?: TEventsKeys,\n ): 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[event || 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<T> = TObserverData<T> & {\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<unknown>): TEventInformation<unknown> => {\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<unknown> = 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 afterApiCall,\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 [forceAfterApiCall, dispatchForceAfterApiCall] = 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 }, []);\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 useEffect(() => {\n if (!forceAfterApiCall) return;\n afterApiCall(fieldInstance.data);\n }, [forceAfterApiCall]);\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 useEffect(\n () =>\n fieldInstance.subscribe(\n BUILD_EVENT(EEVents.AFTER_FIELD_API_CALL, component.name),\n () => dispatchForceAfterApiCall(),\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 afterApiCall,\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 afterApiCall={(data) => {\n afterApiCall &&\n afterApiCall(formInstance.formData, component, 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 [\n CoreEvents.NAVIGATE_STEP_BACK,\n CoreEvents.NAVIGATE_STEP_FORWARD,\n CoreEvents.NAVIGATE_STEP,\n ],\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 changeFields: formInstance.publishFor(CoreEvents.CHANGE_FIELDS),\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 && (\n <Submit ref={submitRef} />\n )}\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 useMemo(() => {\n fieldInstance.subscribe(\n BUILD_EVENT(EEVents.ON_FIELD_KEYUP, component.name),\n ({ data }) => {\n forceUpdate();\n props[propsMapping.onKeyUp] &&\n props[propsMapping.onKeyUp](data.event);\n },\n );\n }, [props[propsMapping.onKeyUp]]);\n\n useMemo(() => {\n fieldInstance.subscribe(\n BUILD_EVENT(EEVents.ON_FIELD_KEYDOWN, component.name),\n ({ data }) => {\n forceUpdate();\n props[propsMapping.onKeyDown] &&\n props[propsMapping.onKeyDown](data.event);\n },\n );\n }, [props[propsMapping.onKeyDown]]);\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_CLEARED","ON_FIELD_CLICK","ON_FIELD_KEYUP","ON_FIELD_KEYDOWN","AFTER_FIELD_API_CALL","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","CHANGE_FIELDS","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","template","BEGIN","END","DEFAULT_SPLITTER","hasTemplateString","test","varOps","isVarOps","includes","extractTargetString","target","form","field","lastIndex","toString","lastIndexOf","substringTemplate","substring","match","indexOf","originalMatchLength","defaultValue","parts","split","_step","_iterator","_createForOfIteratorHelper","s","n","done","part","parse","utils","err","e","f","scopedTemplateValue","JSON","stringify","replace","handler","scopeComponent","_a","component","children","wrapper","rest","__rest","scopedComponent","inObject","replaceTemplateString","targetString","_step2","_iterator2","isFieldExcludedObservable","_d","_c","_b","observables","templates","exclude","name","matchingParts","rehydrate","subscribeFieldToScopeChange","scopedString","apis","getVarOpsOp","apply","_toConsumableArray","extractVarOpsArgs","obj","object","keys","reduce","acc","Array","isArray","map","_typeof","scopeForm","schema","components","newScopedForm","scopedSchema","encapsulateIn","origin","path","getType","v","getNewPart","subObject","clonedParts","splice","getValueByPath","getTypeCard","availableOptions","rawValue","removeGaps","types","creditCardType","filter","id1","type","some","id2","formatValue","addGaps","gaps","_gaps$reduce","_ref2","offset","i","_ref3","regexString","replaceString","digitNumber","_gaps$reduce2","trim","slice","lengths","hasJsonStructure","str","result","prototype","undo_splitter","formatterValue","originalValue","formattersApplied","formatter","nextStartingIndex","position","formatters","splitter","formattedValue","capitalize","charAt","toUpperCase","upperCase","_ref4","gapsCreditCard","_ref5","_utils$creditCard$get2","onlyNumbers","_ref6","onlyLetters","_ref7","regex","_ref8","run","componentFormatters","undo","newValue","formatterFn","generic","_ref7$value","maskValue","masked","item","_item$to","to","mask","from","maskedPortion","join","masks","cardNumber","hideCardNumber","cardMask","cardDate","fixedValue","valZeroTwo","currencyMask","_ref5$value","replacedValue","Intl","NumberFormat","locale","minimumFractionDigits","maximumFractionDigits","style","currency","format","feinMask","replaceAll","_ref8$value","targetReplaceMask","validationValue","fail","_ref16","_ref16$value","validations","hasError","date","_ref30","_ref30$value","intervals","dateRearangeMapper","DDMMYYYY","dateParts","YYYYMMDD","YYYYDDMM","MMDDYYYY","timestamp","Date","originValue","originDate","targetDate","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","validation","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","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","repeatedNumbers","_ref25","url","_ref13","_ref26","searchErrorInPath","valueForPath","preventUnMountValidation","errors","defaultResponse","validationsResult","paths","res","isInTheList","_ref23","_ref27","values","fieldName","customNameRule","_ref28","exists","_ref33","rules","errorMessages","formData","validationFN","ruleResult","find","concatenate","a","b","add","subtract","searchValue","replaceValue","changed","parsedEventValue","_field$component$prop","props","staticInitialSchemaValue","mappings","groupValue","group","initialValues","initialValue","_h","steps","_g","_f","index","formatted","mounted","blured","focused","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","input","hint","prim","toPrimitive","_toPrimitive","_toPropertyKey","o","allowArrayLike","it","minLen","_arrayLikeToArray","_unsupportedIterableToArray","F","normalCompletion","didErr","step","_e2","arr","len","arr2","eventReducedSchema","apiCall","meetsRunningCondition","preConditions","fieldHasError","blockRequestWhenInvalid","fieldValidationsHaveError","paramValues","fieldValueAsPathParams","param","fieldValueAsParams","uri","uriParams","at","params","URLSearchParams","globalScope","loading","fetch","body","headers","parsedResponse","json","status","response","jsonErr","RULES","eventField","fieldsData","fieldValues","visible","mergedKey","formattedDataDefaults","erroredFields","predictableErroredFields","filteredFields","ignore","stepData","isValid","messages","fieldValue","buildFormMessages","triggerTargetValue","clear","cleared","clearedValue","clearFields","clearField","targetField","useCurrentFieldValidation","ruleMapper","_ruleMapper","OR","AND","visibilityConditions","fieldNames","showOnlyIfTrue","mapper","targetFieldName","visibility","eventMapper","number","checkbox","checked","id","options","isDeletingValue","ObserverError","_Error","_wrapNativeSuper","breaksObservingChain","_field$scopedComponen","dataToFilter","cleanMask","componentMasks","failedErrorMessages","getFieldErrorMessages","keyup","keydown","setScope","_mapperNextStepIndex","payload","mapperNextStepIndex","nextStepIndex","findIndex","numSteps","navigated","currentStepSchema","childrenScope","opts","scopeBlurredChildren","scopeChangedChildren","extractScopedChildrenFromOptions","curr","fieldValidationHandler","fieldHandler","formEventDirectives","register","flows","flow","fieldFlows","templating","mount","htmlEventParser","change","blur","focus","formFlows","formTemplating","formLevelVisibilityConditions","validate","changeFields","Field","propsMapping","_Field_fieldData","_Field_component","_Field_scopedComponent","_Field_propsMapping","hidden","ignoreValue","propsActionsMapping","getValue","onBlur","onClick","onFocus","onKeyUp","onKeyDown","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","_this6","t0","t1","OBSERVER","_ret","level","action","_Factory","onMount","onChange","onRehydrate","afterApiCall","forceChange","dispatchForceChange","forceRehydrate","dispatchForceRehydrate","forceBlur","dispatchForceBlur","forceFocus","dispatchForceFocus","forceClick","dispatchForceClick","forceAfterApiCall","dispatchForceAfterApiCall","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","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-
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./types.js"),r=require("./asFormField-b207200a.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
package/react.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./asFormField-
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./asFormField-b207200a.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
|
|
@@ -24,6 +24,7 @@ export declare const enum EEVents {
|
|
|
24
24
|
NAVIGATE_STEP_FORWARD = "NAVIGATE_STEP_FORWARD",
|
|
25
25
|
NAVIGATE_STEP_BACK = "NAVIGATE_STEP_BACK",
|
|
26
26
|
VALIDATE_FORM = "VALIDATE_FORM",
|
|
27
|
+
CHANGE_FIELDS = "CHANGE_FIELDS",
|
|
27
28
|
LOG = "LOG"
|
|
28
29
|
}
|
|
29
30
|
export declare const CoreEvents: Record<TEventsKeys, TEventsKeys>;
|
|
@@ -6,7 +6,7 @@ export declare type TEventPublishPayload = {
|
|
|
6
6
|
} & {
|
|
7
7
|
[key in string]?: unknown;
|
|
8
8
|
};
|
|
9
|
-
export declare type TEventInformation = TObserverData & {
|
|
9
|
+
export declare type TEventInformation<T> = TObserverData<T> & {
|
|
10
10
|
eventReducedSchema: TEventReducedSchema;
|
|
11
11
|
formEventDirectives: TFormEventDirectives;
|
|
12
12
|
form: Form;
|
|
@@ -5,4 +5,4 @@ export declare const template: {
|
|
|
5
5
|
DEFAULT_SPLITTER: string;
|
|
6
6
|
};
|
|
7
7
|
export declare const extractTargetString: (target: string, form: any, field?: any) => string | number | boolean | Record<string, unknown>;
|
|
8
|
-
export declare const handler: ({ field, form, }: Pick<Events.TEventInformation
|
|
8
|
+
export declare const handler: ({ field, form, }: Pick<Events.TEventInformation<unknown>, 'form' | 'field'>) => void;
|