@dnb/eufemia 10.63.2 → 10.63.4

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.
Files changed (132) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/cjs/components/avatar/Avatar.d.ts +1 -1
  3. package/cjs/components/avatar/Avatar.js.map +1 -1
  4. package/cjs/components/avatar/AvatarGroup.d.ts +1 -1
  5. package/cjs/components/avatar/AvatarGroup.js.map +1 -1
  6. package/cjs/components/badge/Badge.d.ts +1 -1
  7. package/cjs/components/badge/Badge.js.map +1 -1
  8. package/cjs/components/form-status/FormStatus.js +3 -2
  9. package/cjs/components/form-status/FormStatus.js.map +1 -1
  10. package/cjs/components/lib.d.ts +2 -2
  11. package/cjs/components/section/Section.js +1 -1
  12. package/cjs/components/section/Section.js.map +1 -1
  13. package/cjs/components/tag/Tag.d.ts +2 -2
  14. package/cjs/components/tag/Tag.js.map +1 -1
  15. package/cjs/components/tag/TagGroup.d.ts +1 -1
  16. package/cjs/components/tag/TagGroup.js.map +1 -1
  17. package/cjs/extensions/forms/DataContext/Context.d.ts +4 -1
  18. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  19. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +3 -0
  20. package/cjs/extensions/forms/DataContext/Provider/Provider.js +60 -43
  21. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  22. package/cjs/extensions/forms/Form/Visibility/useVisibility.js +6 -6
  23. package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  24. package/cjs/extensions/forms/Form/data-context/useData.js +14 -10
  25. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  26. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +4 -1
  27. package/cjs/extensions/forms/hooks/useFieldProps.js +11 -3
  28. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  29. package/cjs/shared/Eufemia.d.ts +1 -1
  30. package/cjs/shared/Eufemia.js +2 -2
  31. package/cjs/shared/Eufemia.js.map +1 -1
  32. package/cjs/shared/error-helper.d.ts +0 -6
  33. package/cjs/shared/error-helper.js +6 -3
  34. package/cjs/shared/error-helper.js.map +1 -1
  35. package/cjs/style/core/scopes.scss +1 -1
  36. package/cjs/style/dnb-ui-basis.css +1 -1
  37. package/cjs/style/dnb-ui-basis.min.css +1 -1
  38. package/cjs/style/dnb-ui-body.css +1 -1
  39. package/cjs/style/dnb-ui-body.min.css +1 -1
  40. package/cjs/style/dnb-ui-core.css +1 -1
  41. package/cjs/style/dnb-ui-core.min.css +1 -1
  42. package/components/avatar/Avatar.d.ts +1 -1
  43. package/components/avatar/Avatar.js.map +1 -1
  44. package/components/avatar/AvatarGroup.d.ts +1 -1
  45. package/components/avatar/AvatarGroup.js.map +1 -1
  46. package/components/badge/Badge.d.ts +1 -1
  47. package/components/badge/Badge.js.map +1 -1
  48. package/components/form-status/FormStatus.js +3 -2
  49. package/components/form-status/FormStatus.js.map +1 -1
  50. package/components/lib.d.ts +2 -2
  51. package/components/section/Section.js +1 -1
  52. package/components/section/Section.js.map +1 -1
  53. package/components/tag/Tag.d.ts +2 -2
  54. package/components/tag/Tag.js.map +1 -1
  55. package/components/tag/TagGroup.d.ts +1 -1
  56. package/components/tag/TagGroup.js.map +1 -1
  57. package/es/components/avatar/Avatar.d.ts +1 -1
  58. package/es/components/avatar/Avatar.js.map +1 -1
  59. package/es/components/avatar/AvatarGroup.d.ts +1 -1
  60. package/es/components/avatar/AvatarGroup.js.map +1 -1
  61. package/es/components/badge/Badge.d.ts +1 -1
  62. package/es/components/badge/Badge.js.map +1 -1
  63. package/es/components/form-status/FormStatus.js +3 -2
  64. package/es/components/form-status/FormStatus.js.map +1 -1
  65. package/es/components/lib.d.ts +2 -2
  66. package/es/components/section/Section.js +1 -1
  67. package/es/components/section/Section.js.map +1 -1
  68. package/es/components/tag/Tag.d.ts +2 -2
  69. package/es/components/tag/Tag.js.map +1 -1
  70. package/es/components/tag/TagGroup.d.ts +1 -1
  71. package/es/components/tag/TagGroup.js.map +1 -1
  72. package/es/extensions/forms/DataContext/Context.d.ts +4 -1
  73. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  74. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +3 -0
  75. package/es/extensions/forms/DataContext/Provider/Provider.js +55 -41
  76. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  77. package/es/extensions/forms/Form/Visibility/useVisibility.js +6 -6
  78. package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  79. package/es/extensions/forms/Form/data-context/useData.js +14 -10
  80. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  81. package/es/extensions/forms/hooks/useFieldProps.d.ts +4 -1
  82. package/es/extensions/forms/hooks/useFieldProps.js +11 -2
  83. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  84. package/es/shared/Eufemia.d.ts +1 -1
  85. package/es/shared/Eufemia.js +2 -2
  86. package/es/shared/Eufemia.js.map +1 -1
  87. package/es/shared/error-helper.d.ts +0 -6
  88. package/es/shared/error-helper.js +6 -3
  89. package/es/shared/error-helper.js.map +1 -1
  90. package/es/style/core/scopes.scss +1 -1
  91. package/es/style/dnb-ui-basis.css +1 -1
  92. package/es/style/dnb-ui-basis.min.css +1 -1
  93. package/es/style/dnb-ui-body.css +1 -1
  94. package/es/style/dnb-ui-body.min.css +1 -1
  95. package/es/style/dnb-ui-core.css +1 -1
  96. package/es/style/dnb-ui-core.min.css +1 -1
  97. package/esm/dnb-ui-basis.min.mjs +1 -1
  98. package/esm/dnb-ui-components.min.mjs +1 -1
  99. package/esm/dnb-ui-elements.min.mjs +1 -1
  100. package/esm/dnb-ui-extensions.min.mjs +1 -1
  101. package/esm/dnb-ui-lib.min.mjs +1 -1
  102. package/extensions/forms/DataContext/Context.d.ts +4 -1
  103. package/extensions/forms/DataContext/Context.js.map +1 -1
  104. package/extensions/forms/DataContext/Provider/Provider.d.ts +3 -0
  105. package/extensions/forms/DataContext/Provider/Provider.js +60 -43
  106. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  107. package/extensions/forms/Form/Visibility/useVisibility.js +6 -6
  108. package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  109. package/extensions/forms/Form/data-context/useData.js +14 -10
  110. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  111. package/extensions/forms/hooks/useFieldProps.d.ts +4 -1
  112. package/extensions/forms/hooks/useFieldProps.js +11 -3
  113. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  114. package/package.json +1 -1
  115. package/shared/Eufemia.d.ts +1 -1
  116. package/shared/Eufemia.js +2 -2
  117. package/shared/Eufemia.js.map +1 -1
  118. package/shared/error-helper.d.ts +0 -6
  119. package/shared/error-helper.js +6 -3
  120. package/shared/error-helper.js.map +1 -1
  121. package/style/core/scopes.scss +1 -1
  122. package/style/dnb-ui-basis.css +1 -1
  123. package/style/dnb-ui-basis.min.css +1 -1
  124. package/style/dnb-ui-body.css +1 -1
  125. package/style/dnb-ui-body.min.css +1 -1
  126. package/style/dnb-ui-core.css +1 -1
  127. package/style/dnb-ui-core.min.css +1 -1
  128. package/umd/dnb-ui-basis.min.js +1 -1
  129. package/umd/dnb-ui-components.min.js +1 -1
  130. package/umd/dnb-ui-elements.min.js +1 -1
  131. package/umd/dnb-ui-extensions.min.js +2 -2
  132. package/umd/dnb-ui-lib.min.js +1 -1
@@ -113,7 +113,10 @@ export interface ContextState {
113
113
  setFieldConnection?: (path: Path, connections: FieldConnections) => void;
114
114
  isEmptyDataRef?: React.MutableRefObject<boolean>;
115
115
  addSetShowAllErrorsRef?: React.MutableRefObject<Array<(showAllErrors: boolean) => void>>;
116
- fieldDisplayValueRef?: React.MutableRefObject<Record<Path, React.ReactNode>>;
116
+ fieldDisplayValueRef?: React.MutableRefObject<Record<Path, {
117
+ type: 'field';
118
+ value?: React.ReactNode;
119
+ }>>;
117
120
  fieldInternalsRef?: React.MutableRefObject<FieldInternalsRef>;
118
121
  valueInternalsRef?: React.MutableRefObject<ValueInternalsRef>;
119
122
  fieldConnectionsRef?: React.RefObject<Record<Path, FieldConnections>>;
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","validateData","handleSubmit","scrollToTop","showAllErrors","hasVisibleError","formState","setFormState","setSubmitState","handleSubmitCall","setShowAllErrors","setMountedFieldState","hasErrors","hasFieldState","hasFieldError","ajvInstance","contextErrorMessages","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, FormError, JsonObject, makeAjvInstance } from '../utils'\nimport {\n AllJSONSchemaVersions,\n GlobalErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n FieldProps,\n ValueProps,\n OnChange,\n OnSubmitParams,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\nimport { SnapshotName } from '../Form/Snapshot'\nimport { SharedStateId } from '../../../shared/helpers/useSharedState'\n\nexport type MountState = {\n isPreMounted?: boolean\n isMounted?: boolean\n isVisible?: boolean\n isFocused?: boolean\n wasStepChange?: boolean\n}\n\nexport type EventListenerCall = {\n path?: Path\n type?: 'onSubmit' | 'onPathChange' | 'onMount'\n callback: (params?: { value: unknown }) => void | Promise<void | Error>\n}\n\nexport type VisibleDataHandler<Data> = (\n data?: Data,\n options?: VisibleDataOptions\n) => Partial<Data>\nexport type VisibleDataOptions = {\n keepPaths?: Array<Path>\n removePaths?: Array<Path>\n}\nexport type MutateDataHandler<Data> = (\n data: Data,\n mutate: TransformData\n) => Partial<Data>\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterDataHandlerCallback<R> = (\n parameters: FilterDataHandlerParameters\n) => R\nexport type FilterDataHandlerParameters =\n FilterDataPathConditionParameters & {\n path: Path\n }\nexport type FilterDataPathCondition<Data = unknown> = (\n parameters: FilterDataPathConditionParameters<Data>\n) => boolean | undefined\nexport type FilterDataPathConditionParameters<Data = unknown> = {\n value: unknown\n displayValue: undefined | React.ReactNode | Array<React.ReactNode>\n label: React.ReactNode\n props: FieldProps\n data: Data\n internal: {\n error: Error | undefined\n }\n}\nexport type FilterDataPathObject<Data> = Record<\n Path,\n FilterDataPathCondition<Data> | boolean | undefined\n>\nexport type FilterData<Data = unknown> =\n | FilterDataPathObject<Data>\n | FilterDataHandlerCallback<boolean | undefined>\nexport type VisibleData<Data = unknown> = Partial<Data>\nexport type TransformData = FilterDataHandlerCallback<unknown>\nexport type HandleSubmitCallback = ({\n preventSubmit,\n}: {\n preventSubmit: () => void\n}) => void\nexport type FieldConnections = {\n setEventResult?: (status: EventStateObject) => void\n}\nexport type FieldInternalsRefProps =\n | (FieldProps & { children: unknown })\n | undefined\nexport type FieldInternalsRef = Record<\n Path,\n {\n props: FieldInternalsRefProps\n id: string | undefined\n }\n>\nexport type ValueInternalsRef = Record<\n Path,\n { props: ValueProps | undefined }\n>\n\nexport interface ContextState {\n id?: SharedStateId\n hasContext: boolean\n /** The dataset for the form / form wizard */\n data: any\n internalDataRef?: React.MutableRefObject<any>\n /** Should the form validate data before submitting? */\n errors?: Record<Path, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value?: any\n ) =>\n | EventReturnWithStateObject\n | unknown\n | Promise<EventReturnWithStateObject | unknown>\n handlePathChangeUnvalidated: (path: Path, value: any) => void\n updateDataValue: (\n path: Path,\n value: any,\n options?: { preventUpdate?: boolean }\n ) => void\n setData: (data: any) => void\n clearData?: () => void\n mutateDataHandler?: MutateDataHandler<unknown>\n filterDataHandler?: FilterDataHandler<unknown>\n visibleDataHandler?: VisibleDataHandler<unknown>\n validateData: () => void\n handleSubmit: () => Promise<EventStateObject | undefined>\n scrollToTop: () => void\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n hasFieldError: (path: Path) => boolean\n setFieldState?: (path: Path, fieldState: SubmitState) => void\n setFieldError?: (path: Path, error: Error | FormError) => void\n setMountedFieldState: (path: Path, options: MountState) => void\n setFormState?: (\n state: SubmitState,\n options?: { keepPending?: boolean }\n ) => void\n setSubmitState?: (state: EventStateObject) => void\n addOnChangeHandler?: (callback: OnChange) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehavior: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => Promise<EventStateObject | undefined>\n getSubmitData?: () => unknown\n getSubmitParams?: () => OnSubmitParams\n setFieldEventListener?: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n setVisibleError?: (path: Path, hasError: boolean) => void\n setFieldInternals?: (path: Path, props: unknown, id?: string) => void\n setValueInternals?: (path: Path, props: unknown) => void\n setHandleSubmit?: (\n callback: HandleSubmitCallback,\n params?: { remove?: boolean }\n ) => void\n setFieldConnection?: (path: Path, connections: FieldConnections) => void\n isEmptyDataRef?: React.MutableRefObject<boolean>\n addSetShowAllErrorsRef?: React.MutableRefObject<\n Array<(showAllErrors: boolean) => void>\n >\n fieldDisplayValueRef?: React.MutableRefObject<\n Record<Path, React.ReactNode>\n >\n fieldInternalsRef?: React.MutableRefObject<FieldInternalsRef>\n valueInternalsRef?: React.MutableRefObject<ValueInternalsRef>\n fieldConnectionsRef?: React.RefObject<Record<Path, FieldConnections>>\n mountedFieldsRef?: React.MutableRefObject<Record<Path, MountState>>\n snapshotsRef?: React.MutableRefObject<\n Map<SnapshotName, Map<Path, unknown>>\n >\n existingFieldsRef?: React.MutableRefObject<Map<Path, boolean>>\n formElementRef?: React.MutableRefObject<HTMLFormElement>\n fieldErrorRef?: React.MutableRefObject<Record<Path, Error>>\n showAllErrors: boolean | number\n hasVisibleError: boolean\n formState: SubmitState\n ajvInstance: Ajv\n contextErrorMessages: GlobalErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n path?: Path\n disabled?: boolean\n required?: boolean\n submitState: Partial<EventStateObject>\n prerenderFieldProps?: boolean\n decoupleForm?: boolean\n hasElementRef?: React.MutableRefObject<boolean>\n restHandlerProps?: Record<string, unknown>\n props: ProviderProps<JsonObject>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n handlePathChangeUnvalidated: () => null,\n updateDataValue: () => null,\n setData: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n hasVisibleError: false,\n formState: undefined,\n setFormState: () => null,\n setSubmitState: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n setMountedFieldState: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n hasFieldError: () => false,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAqCC,eAAe,QAAQ,UAAU;AA8MtE,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,WAAW,EAAEF,SAAS;EACtBG,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;EACvCC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,eAAe,EAAE,KAAK;EACtBC,SAAS,EAAEZ,SAAS;EACpBa,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,cAAc,EAAEA,CAAA,KAAM,IAAI;EAC1BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,oBAAoB,EAAEA,CAAA,KAAM,IAAI;EAChCC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,WAAW,EAAEzB,eAAe,CAAC,CAAC;EAC9B0B,oBAAoB,EAAEtB,SAAS;EAC/BuB,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,OAAO,GAAG7B,KAAK,CAAC8B,aAAa,CAAe5B,mBAAmB,CAAC;AAEtE,eAAe2B,OAAO"}
1
+ {"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","validateData","handleSubmit","scrollToTop","showAllErrors","hasVisibleError","formState","setFormState","setSubmitState","handleSubmitCall","setShowAllErrors","setMountedFieldState","hasErrors","hasFieldState","hasFieldError","ajvInstance","contextErrorMessages","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, FormError, JsonObject, makeAjvInstance } from '../utils'\nimport {\n AllJSONSchemaVersions,\n GlobalErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n FieldProps,\n ValueProps,\n OnChange,\n OnSubmitParams,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\nimport { SnapshotName } from '../Form/Snapshot'\nimport { SharedStateId } from '../../../shared/helpers/useSharedState'\n\nexport type MountState = {\n isPreMounted?: boolean\n isMounted?: boolean\n isVisible?: boolean\n isFocused?: boolean\n wasStepChange?: boolean\n}\n\nexport type EventListenerCall = {\n path?: Path\n type?: 'onSubmit' | 'onPathChange' | 'onMount'\n callback: (params?: { value: unknown }) => void | Promise<void | Error>\n}\n\nexport type VisibleDataHandler<Data> = (\n data?: Data,\n options?: VisibleDataOptions\n) => Partial<Data>\nexport type VisibleDataOptions = {\n keepPaths?: Array<Path>\n removePaths?: Array<Path>\n}\nexport type MutateDataHandler<Data> = (\n data: Data,\n mutate: TransformData\n) => Partial<Data>\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterDataHandlerCallback<R> = (\n parameters: FilterDataHandlerParameters\n) => R\nexport type FilterDataHandlerParameters =\n FilterDataPathConditionParameters & {\n path: Path\n }\nexport type FilterDataPathCondition<Data = unknown> = (\n parameters: FilterDataPathConditionParameters<Data>\n) => boolean | undefined\nexport type FilterDataPathConditionParameters<Data = unknown> = {\n value: unknown\n displayValue: undefined | React.ReactNode | Array<React.ReactNode>\n label: React.ReactNode\n props: FieldProps\n data: Data\n internal: {\n error: Error | undefined\n }\n}\nexport type FilterDataPathObject<Data> = Record<\n Path,\n FilterDataPathCondition<Data> | boolean | undefined\n>\nexport type FilterData<Data = unknown> =\n | FilterDataPathObject<Data>\n | FilterDataHandlerCallback<boolean | undefined>\nexport type VisibleData<Data = unknown> = Partial<Data>\nexport type TransformData = FilterDataHandlerCallback<unknown>\nexport type HandleSubmitCallback = ({\n preventSubmit,\n}: {\n preventSubmit: () => void\n}) => void\nexport type FieldConnections = {\n setEventResult?: (status: EventStateObject) => void\n}\nexport type FieldInternalsRefProps =\n | (FieldProps & { children: unknown })\n | undefined\nexport type FieldInternalsRef = Record<\n Path,\n {\n props: FieldInternalsRefProps\n id: string | undefined\n }\n>\nexport type ValueInternalsRef = Record<\n Path,\n { props: ValueProps | undefined }\n>\n\nexport interface ContextState {\n id?: SharedStateId\n hasContext: boolean\n /** The dataset for the form / form wizard */\n data: any\n internalDataRef?: React.MutableRefObject<any>\n /** Should the form validate data before submitting? */\n errors?: Record<Path, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value?: any\n ) =>\n | EventReturnWithStateObject\n | unknown\n | Promise<EventReturnWithStateObject | unknown>\n handlePathChangeUnvalidated: (path: Path, value: any) => void\n updateDataValue: (\n path: Path,\n value: any,\n options?: { preventUpdate?: boolean }\n ) => void\n setData: (data: any) => void\n clearData?: () => void\n mutateDataHandler?: MutateDataHandler<unknown>\n filterDataHandler?: FilterDataHandler<unknown>\n visibleDataHandler?: VisibleDataHandler<unknown>\n validateData: () => void\n handleSubmit: () => Promise<EventStateObject | undefined>\n scrollToTop: () => void\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n hasFieldError: (path: Path) => boolean\n setFieldState?: (path: Path, fieldState: SubmitState) => void\n setFieldError?: (path: Path, error: Error | FormError) => void\n setMountedFieldState: (path: Path, options: MountState) => void\n setFormState?: (\n state: SubmitState,\n options?: { keepPending?: boolean }\n ) => void\n setSubmitState?: (state: EventStateObject) => void\n addOnChangeHandler?: (callback: OnChange) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehavior: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => Promise<EventStateObject | undefined>\n getSubmitData?: () => unknown\n getSubmitParams?: () => OnSubmitParams\n setFieldEventListener?: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n setVisibleError?: (path: Path, hasError: boolean) => void\n setFieldInternals?: (path: Path, props: unknown, id?: string) => void\n setValueInternals?: (path: Path, props: unknown) => void\n setHandleSubmit?: (\n callback: HandleSubmitCallback,\n params?: { remove?: boolean }\n ) => void\n setFieldConnection?: (path: Path, connections: FieldConnections) => void\n isEmptyDataRef?: React.MutableRefObject<boolean>\n addSetShowAllErrorsRef?: React.MutableRefObject<\n Array<(showAllErrors: boolean) => void>\n >\n fieldDisplayValueRef?: React.MutableRefObject<\n Record<Path, { type: 'field'; value?: React.ReactNode }>\n >\n fieldInternalsRef?: React.MutableRefObject<FieldInternalsRef>\n valueInternalsRef?: React.MutableRefObject<ValueInternalsRef>\n fieldConnectionsRef?: React.RefObject<Record<Path, FieldConnections>>\n mountedFieldsRef?: React.MutableRefObject<Record<Path, MountState>>\n snapshotsRef?: React.MutableRefObject<\n Map<SnapshotName, Map<Path, unknown>>\n >\n existingFieldsRef?: React.MutableRefObject<Map<Path, boolean>>\n formElementRef?: React.MutableRefObject<HTMLFormElement>\n fieldErrorRef?: React.MutableRefObject<Record<Path, Error>>\n showAllErrors: boolean | number\n hasVisibleError: boolean\n formState: SubmitState\n ajvInstance: Ajv\n contextErrorMessages: GlobalErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n path?: Path\n disabled?: boolean\n required?: boolean\n submitState: Partial<EventStateObject>\n prerenderFieldProps?: boolean\n decoupleForm?: boolean\n hasElementRef?: React.MutableRefObject<boolean>\n restHandlerProps?: Record<string, unknown>\n props: ProviderProps<JsonObject>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n handlePathChangeUnvalidated: () => null,\n updateDataValue: () => null,\n setData: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n hasVisibleError: false,\n formState: undefined,\n setFormState: () => null,\n setSubmitState: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n setMountedFieldState: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n hasFieldError: () => false,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAqCC,eAAe,QAAQ,UAAU;AA8MtE,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,WAAW,EAAEF,SAAS;EACtBG,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;EACvCC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,eAAe,EAAE,KAAK;EACtBC,SAAS,EAAEZ,SAAS;EACpBa,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,cAAc,EAAEA,CAAA,KAAM,IAAI;EAC1BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,oBAAoB,EAAEA,CAAA,KAAM,IAAI;EAChCC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,WAAW,EAAEzB,eAAe,CAAC,CAAC;EAC9B0B,oBAAoB,EAAEtB,SAAS;EAC/BuB,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,OAAO,GAAG7B,KAAK,CAAC8B,aAAa,CAAe5B,mBAAmB,CAAC;AAEtE,eAAe2B,OAAO"}
@@ -14,8 +14,11 @@ export type SharedAttachments<Data = unknown> = {
14
14
  setShowAllErrors?: ContextState['setShowAllErrors'];
15
15
  setSubmitState?: ContextState['setSubmitState'];
16
16
  rerenderUseDataHook?: () => void;
17
+ updateDataValue?: ContextState['updateDataValue'];
17
18
  clearData?: () => void;
19
+ setData?: ContextState['setData'];
18
20
  fieldConnectionsRef?: ContextState['fieldConnectionsRef'];
21
+ internalDataRef?: ContextState['internalDataRef'];
19
22
  };
20
23
  export type Props<Data extends JsonObject> = IsolationProviderProps<Data> & {
21
24
  /**
@@ -172,7 +172,8 @@ export default function Provider(props) {
172
172
  const mutateDataHandler = useCallback(function (data, handler) {
173
173
  let {
174
174
  remove = false,
175
- mutate = true
175
+ mutate = true,
176
+ fireHandlerWhen = null
176
177
  } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
177
178
  const freshData = {};
178
179
  const mutateEntry = (path, result) => {
@@ -201,20 +202,27 @@ export default function Provider(props) {
201
202
  if (exists) {
202
203
  var _fieldErrorRef$curren;
203
204
  const value = pointer.get(data, path);
204
- const displayValue = fieldDisplayValueRef.current[path];
205
+ const {
206
+ value: displayValue,
207
+ type
208
+ } = fieldDisplayValueRef.current[path] || {};
205
209
  const internal = {
206
210
  error: (_fieldErrorRef$curren = fieldErrorRef.current) === null || _fieldErrorRef$curren === void 0 ? void 0 : _fieldErrorRef$curren[path]
207
211
  };
208
- const result = handler({
209
- path,
210
- value,
211
- displayValue,
212
- label: props.label,
213
- data: internalDataRef.current,
214
- props,
215
- internal
216
- });
217
- mutateEntry(path, result);
212
+ if ((fireHandlerWhen === null || fireHandlerWhen === void 0 ? void 0 : fireHandlerWhen({
213
+ type
214
+ })) !== false) {
215
+ const result = handler({
216
+ path,
217
+ value,
218
+ displayValue,
219
+ label: props.label,
220
+ data: internalDataRef.current,
221
+ props,
222
+ internal
223
+ });
224
+ mutateEntry(path, result);
225
+ }
218
226
  }
219
227
  });
220
228
  if (!mutate) {
@@ -395,34 +403,6 @@ export default function Provider(props) {
395
403
  isEmptyDataRef.current = false;
396
404
  });
397
405
  }, [emptyData, id, onClear, setSharedData]);
398
- useLayoutEffect(() => {
399
- if (id) {
400
- if (initialData && !sharedData.data) {
401
- extendSharedData(initialData, {
402
- preventSyncOfSameInstance: true
403
- });
404
- }
405
- }
406
- }, [id, initialData, extendSharedData, sharedData.data]);
407
- useLayoutEffect(() => {
408
- if (id) {
409
- extendAttachment({
410
- visibleDataHandler,
411
- filterDataHandler,
412
- hasErrors,
413
- hasFieldError,
414
- setShowAllErrors,
415
- setSubmitState,
416
- clearData,
417
- fieldConnectionsRef
418
- }, {
419
- preventSyncOfSameInstance: true
420
- });
421
- if (filterSubmitData) {
422
- rerenderUseDataHook === null || rerenderUseDataHook === void 0 ? void 0 : rerenderUseDataHook();
423
- }
424
- }
425
- }, [extendAttachment, visibleDataHandler, filterDataHandler, filterSubmitData, hasErrors, hasFieldError, id, rerenderUseDataHook, setShowAllErrors, setSubmitState, clearData, extendSharedData]);
426
406
  useMemo(() => {
427
407
  executeAjvValidator();
428
408
  }, [internalDataRef.current]);
@@ -682,7 +662,13 @@ export default function Provider(props) {
682
662
  };
683
663
  const transformData = (data, handler) => {
684
664
  return mutateDataHandler(data, handler, {
685
- mutate: false
665
+ mutate: false,
666
+ fireHandlerWhen: _ref5 => {
667
+ let {
668
+ type
669
+ } = _ref5;
670
+ return type === 'field';
671
+ }
686
672
  });
687
673
  };
688
674
  const formElement = formElementRef.current;
@@ -732,12 +718,12 @@ export default function Provider(props) {
732
718
  }, [getSubmitData, getSubmitParams, handleSubmitCall, handleSubmitListeners, onSubmit, onSubmitComplete, scrollToTop, scrollTopOnSubmit]);
733
719
  const fieldEventListenersRef = useRef([]);
734
720
  const setFieldEventListener = useCallback((path, type, callback) => {
735
- fieldEventListenersRef.current = fieldEventListenersRef.current.filter(_ref5 => {
721
+ fieldEventListenersRef.current = fieldEventListenersRef.current.filter(_ref6 => {
736
722
  let {
737
723
  path: p,
738
724
  type: t,
739
725
  callback: c
740
- } = _ref5;
726
+ } = _ref6;
741
727
  return !(p === path && t === type && c === callback);
742
728
  });
743
729
  fieldEventListenersRef.current.push({
@@ -777,6 +763,37 @@ export default function Provider(props) {
777
763
  customStatus: undefined
778
764
  });
779
765
  }, [setFormState, setSubmitState]);
766
+ useLayoutEffect(() => {
767
+ if (id) {
768
+ if (initialData && !sharedData.data) {
769
+ extendSharedData(initialData, {
770
+ preventSyncOfSameInstance: true
771
+ });
772
+ }
773
+ }
774
+ }, [id, initialData, extendSharedData, sharedData.data]);
775
+ useLayoutEffect(() => {
776
+ if (id) {
777
+ extendAttachment({
778
+ visibleDataHandler,
779
+ filterDataHandler,
780
+ hasErrors,
781
+ hasFieldError,
782
+ setShowAllErrors,
783
+ setSubmitState,
784
+ clearData,
785
+ setData,
786
+ updateDataValue,
787
+ fieldConnectionsRef,
788
+ internalDataRef
789
+ }, {
790
+ preventSyncOfSameInstance: true
791
+ });
792
+ if (filterSubmitData) {
793
+ rerenderUseDataHook === null || rerenderUseDataHook === void 0 ? void 0 : rerenderUseDataHook();
794
+ }
795
+ }
796
+ }, [clearData, extendAttachment, filterDataHandler, filterSubmitData, hasErrors, hasFieldError, id, rerenderUseDataHook, setData, setShowAllErrors, setSubmitState, updateDataValue, visibleDataHandler]);
780
797
  const {
781
798
  bufferedFormState: formState
782
799
  } = useFormStatusBuffer({