@dnb/eufemia 10.24.0 → 10.25.0

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 (270) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/cjs/components/accordion/style/dnb-accordion.css +6 -2
  3. package/cjs/components/accordion/style/dnb-accordion.min.css +2 -2
  4. package/cjs/components/accordion/style/dnb-accordion.scss +8 -2
  5. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +5 -4
  6. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  7. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +5 -5
  8. package/cjs/components/autocomplete/Autocomplete.d.ts +0 -15
  9. package/cjs/components/autocomplete/AutocompleteDocs.d.ts +3 -0
  10. package/cjs/components/autocomplete/AutocompleteDocs.js +293 -0
  11. package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -0
  12. package/cjs/components/dropdown/Dropdown.d.ts +0 -3
  13. package/cjs/components/input/InputDocs.js +2 -2
  14. package/cjs/components/input/InputDocs.js.map +1 -1
  15. package/cjs/extensions/forms/DataContext/At/At.js +6 -6
  16. package/cjs/extensions/forms/DataContext/At/At.js.map +1 -1
  17. package/cjs/extensions/forms/DataContext/Context.d.ts +5 -2
  18. package/cjs/extensions/forms/DataContext/Context.js +1 -0
  19. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  20. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
  21. package/cjs/extensions/forms/DataContext/Provider/Provider.js +52 -26
  22. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  23. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +4 -4
  24. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  25. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  26. package/cjs/extensions/forms/Form/Handler/Handler.js +3 -3
  27. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  28. package/cjs/extensions/forms/StepsLayout/StepsLayout.js +27 -24
  29. package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  30. package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.js +1 -1
  31. package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -1
  32. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.css +1 -1
  33. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  34. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +1 -1
  35. package/cjs/extensions/forms/hooks/useFieldProps.js +82 -58
  36. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  37. package/cjs/extensions/forms/style/dnb-forms.css +1 -1
  38. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  39. package/cjs/fragments/drawer-list/DrawerList.d.ts +95 -1
  40. package/cjs/fragments/drawer-list/DrawerListDocs.d.ts +3 -0
  41. package/cjs/fragments/drawer-list/DrawerListDocs.js +188 -0
  42. package/cjs/fragments/drawer-list/DrawerListDocs.js.map +1 -0
  43. package/cjs/shared/Eufemia.d.ts +1 -1
  44. package/cjs/shared/Eufemia.js +2 -2
  45. package/cjs/shared/Eufemia.js.map +1 -1
  46. package/cjs/shared/helpers/runCssVersionMismatchWarning.js +2 -2
  47. package/cjs/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  48. package/cjs/style/core/scopes.scss +1 -1
  49. package/cjs/style/dnb-ui-basis.css +1 -1
  50. package/cjs/style/dnb-ui-basis.min.css +1 -1
  51. package/cjs/style/dnb-ui-body.css +1 -1
  52. package/cjs/style/dnb-ui-body.min.css +1 -1
  53. package/cjs/style/dnb-ui-components.css +7 -3
  54. package/cjs/style/dnb-ui-components.min.css +2 -2
  55. package/cjs/style/dnb-ui-core.css +1 -1
  56. package/cjs/style/dnb-ui-core.min.css +1 -1
  57. package/cjs/style/dnb-ui-extensions.css +1 -1
  58. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  59. package/cjs/style/dnb-ui-forms.css +1 -1
  60. package/cjs/style/dnb-ui-forms.min.css +1 -1
  61. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +8 -4
  62. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  63. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
  64. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  65. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
  66. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  67. package/cjs/style/themes/theme-eiendom/properties.js +10 -10
  68. package/cjs/style/themes/theme-eiendom/properties.js.map +1 -1
  69. package/cjs/style/themes/theme-sbanken/properties.js +10 -10
  70. package/cjs/style/themes/theme-sbanken/properties.js.map +1 -1
  71. package/cjs/style/themes/theme-sbanken/properties.scss +10 -10
  72. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +10 -10
  73. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  74. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +13 -8
  75. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  76. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
  77. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  78. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
  79. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  80. package/cjs/style/themes/theme-ui/properties.js +10 -10
  81. package/cjs/style/themes/theme-ui/properties.js.map +1 -1
  82. package/cjs/style/themes/theme-ui/ui-theme-components.css +8 -4
  83. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  84. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +1 -1
  85. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  86. package/cjs/style/themes/theme-ui/ui-theme-forms.css +1 -1
  87. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  88. package/components/accordion/style/dnb-accordion.css +6 -2
  89. package/components/accordion/style/dnb-accordion.min.css +2 -2
  90. package/components/accordion/style/dnb-accordion.scss +8 -2
  91. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +5 -4
  92. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  93. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +5 -5
  94. package/components/autocomplete/Autocomplete.d.ts +0 -15
  95. package/components/autocomplete/AutocompleteDocs.d.ts +3 -0
  96. package/components/autocomplete/AutocompleteDocs.js +285 -0
  97. package/components/autocomplete/AutocompleteDocs.js.map +1 -0
  98. package/components/dropdown/Dropdown.d.ts +0 -3
  99. package/components/input/InputDocs.js +2 -2
  100. package/components/input/InputDocs.js.map +1 -1
  101. package/es/components/accordion/style/dnb-accordion.css +6 -2
  102. package/es/components/accordion/style/dnb-accordion.min.css +2 -2
  103. package/es/components/accordion/style/dnb-accordion.scss +8 -2
  104. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +5 -4
  105. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  106. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +5 -5
  107. package/es/components/autocomplete/Autocomplete.d.ts +0 -15
  108. package/es/components/autocomplete/AutocompleteDocs.d.ts +3 -0
  109. package/es/components/autocomplete/AutocompleteDocs.js +285 -0
  110. package/es/components/autocomplete/AutocompleteDocs.js.map +1 -0
  111. package/es/components/dropdown/Dropdown.d.ts +0 -3
  112. package/es/components/input/InputDocs.js +2 -2
  113. package/es/components/input/InputDocs.js.map +1 -1
  114. package/es/extensions/forms/DataContext/At/At.js +7 -7
  115. package/es/extensions/forms/DataContext/At/At.js.map +1 -1
  116. package/es/extensions/forms/DataContext/Context.d.ts +5 -2
  117. package/es/extensions/forms/DataContext/Context.js +1 -0
  118. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  119. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
  120. package/es/extensions/forms/DataContext/Provider/Provider.js +51 -26
  121. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  122. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +4 -4
  123. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  124. package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  125. package/es/extensions/forms/Form/Handler/Handler.js +3 -3
  126. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  127. package/es/extensions/forms/StepsLayout/StepsLayout.js +27 -24
  128. package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  129. package/es/extensions/forms/StepsLayout/StepsLayoutDocs.js +1 -1
  130. package/es/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -1
  131. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.css +1 -1
  132. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  133. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +1 -1
  134. package/es/extensions/forms/hooks/useFieldProps.js +82 -58
  135. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  136. package/es/extensions/forms/style/dnb-forms.css +1 -1
  137. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  138. package/es/fragments/drawer-list/DrawerList.d.ts +95 -1
  139. package/es/fragments/drawer-list/DrawerListDocs.d.ts +3 -0
  140. package/es/fragments/drawer-list/DrawerListDocs.js +180 -0
  141. package/es/fragments/drawer-list/DrawerListDocs.js.map +1 -0
  142. package/es/shared/Eufemia.d.ts +1 -1
  143. package/es/shared/Eufemia.js +2 -2
  144. package/es/shared/Eufemia.js.map +1 -1
  145. package/es/shared/helpers/runCssVersionMismatchWarning.js +2 -2
  146. package/es/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  147. package/es/style/core/scopes.scss +1 -1
  148. package/es/style/dnb-ui-basis.css +1 -1
  149. package/es/style/dnb-ui-basis.min.css +1 -1
  150. package/es/style/dnb-ui-body.css +1 -1
  151. package/es/style/dnb-ui-body.min.css +1 -1
  152. package/es/style/dnb-ui-components.css +7 -3
  153. package/es/style/dnb-ui-components.min.css +2 -2
  154. package/es/style/dnb-ui-core.css +1 -1
  155. package/es/style/dnb-ui-core.min.css +1 -1
  156. package/es/style/dnb-ui-extensions.css +1 -1
  157. package/es/style/dnb-ui-extensions.min.css +1 -1
  158. package/es/style/dnb-ui-forms.css +1 -1
  159. package/es/style/dnb-ui-forms.min.css +1 -1
  160. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +8 -4
  161. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  162. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
  163. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  164. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
  165. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  166. package/es/style/themes/theme-eiendom/properties.js +10 -10
  167. package/es/style/themes/theme-eiendom/properties.js.map +1 -1
  168. package/es/style/themes/theme-sbanken/properties.js +10 -10
  169. package/es/style/themes/theme-sbanken/properties.js.map +1 -1
  170. package/es/style/themes/theme-sbanken/properties.scss +10 -10
  171. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +10 -10
  172. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  173. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +13 -8
  174. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  175. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
  176. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  177. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
  178. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  179. package/es/style/themes/theme-ui/properties.js +10 -10
  180. package/es/style/themes/theme-ui/properties.js.map +1 -1
  181. package/es/style/themes/theme-ui/ui-theme-components.css +8 -4
  182. package/es/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  183. package/es/style/themes/theme-ui/ui-theme-extensions.css +1 -1
  184. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  185. package/es/style/themes/theme-ui/ui-theme-forms.css +1 -1
  186. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  187. package/esm/dnb-ui-basis.min.mjs +1 -1
  188. package/esm/dnb-ui-components.min.mjs +1 -1
  189. package/esm/dnb-ui-elements.min.mjs +1 -1
  190. package/esm/dnb-ui-extensions.min.mjs +2 -2
  191. package/esm/dnb-ui-lib.min.mjs +1 -1
  192. package/extensions/forms/DataContext/At/At.js +7 -7
  193. package/extensions/forms/DataContext/At/At.js.map +1 -1
  194. package/extensions/forms/DataContext/Context.d.ts +5 -2
  195. package/extensions/forms/DataContext/Context.js +1 -0
  196. package/extensions/forms/DataContext/Context.js.map +1 -1
  197. package/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
  198. package/extensions/forms/DataContext/Provider/Provider.js +52 -26
  199. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  200. package/extensions/forms/DataContext/Provider/ProviderDocs.js +4 -4
  201. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  202. package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  203. package/extensions/forms/Form/Handler/Handler.js +3 -3
  204. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  205. package/extensions/forms/StepsLayout/StepsLayout.js +27 -24
  206. package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  207. package/extensions/forms/StepsLayout/StepsLayoutDocs.js +1 -1
  208. package/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -1
  209. package/extensions/forms/StepsLayout/style/dnb-steps-layout.css +1 -1
  210. package/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  211. package/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +1 -1
  212. package/extensions/forms/hooks/useFieldProps.js +82 -58
  213. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  214. package/extensions/forms/style/dnb-forms.css +1 -1
  215. package/extensions/forms/style/dnb-forms.min.css +1 -1
  216. package/fragments/drawer-list/DrawerList.d.ts +95 -1
  217. package/fragments/drawer-list/DrawerListDocs.d.ts +3 -0
  218. package/fragments/drawer-list/DrawerListDocs.js +180 -0
  219. package/fragments/drawer-list/DrawerListDocs.js.map +1 -0
  220. package/package.json +1 -1
  221. package/shared/Eufemia.d.ts +1 -1
  222. package/shared/Eufemia.js +2 -2
  223. package/shared/Eufemia.js.map +1 -1
  224. package/shared/helpers/runCssVersionMismatchWarning.js +2 -2
  225. package/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  226. package/style/core/scopes.scss +1 -1
  227. package/style/dnb-ui-basis.css +1 -1
  228. package/style/dnb-ui-basis.min.css +1 -1
  229. package/style/dnb-ui-body.css +1 -1
  230. package/style/dnb-ui-body.min.css +1 -1
  231. package/style/dnb-ui-components.css +7 -3
  232. package/style/dnb-ui-components.min.css +2 -2
  233. package/style/dnb-ui-core.css +1 -1
  234. package/style/dnb-ui-core.min.css +1 -1
  235. package/style/dnb-ui-extensions.css +1 -1
  236. package/style/dnb-ui-extensions.min.css +1 -1
  237. package/style/dnb-ui-forms.css +1 -1
  238. package/style/dnb-ui-forms.min.css +1 -1
  239. package/style/themes/theme-eiendom/eiendom-theme-components.css +8 -4
  240. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  241. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
  242. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  243. package/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
  244. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  245. package/style/themes/theme-eiendom/properties.js +10 -10
  246. package/style/themes/theme-eiendom/properties.js.map +1 -1
  247. package/style/themes/theme-sbanken/properties.js +10 -10
  248. package/style/themes/theme-sbanken/properties.js.map +1 -1
  249. package/style/themes/theme-sbanken/properties.scss +10 -10
  250. package/style/themes/theme-sbanken/sbanken-theme-basis.css +10 -10
  251. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  252. package/style/themes/theme-sbanken/sbanken-theme-components.css +13 -8
  253. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  254. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
  255. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  256. package/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
  257. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  258. package/style/themes/theme-ui/properties.js +10 -10
  259. package/style/themes/theme-ui/properties.js.map +1 -1
  260. package/style/themes/theme-ui/ui-theme-components.css +8 -4
  261. package/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  262. package/style/themes/theme-ui/ui-theme-extensions.css +1 -1
  263. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  264. package/style/themes/theme-ui/ui-theme-forms.css +1 -1
  265. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  266. package/umd/dnb-ui-basis.min.js +1 -1
  267. package/umd/dnb-ui-components.min.js +1 -1
  268. package/umd/dnb-ui-elements.min.js +1 -1
  269. package/umd/dnb-ui-extensions.min.js +2 -2
  270. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"InputDocs.js","names":["inputProperties","value","doc","type","status","align","label","label_sr_only","label_direction","status_state","status_props","globalStatus","placeholder","icon","icon_position","icon_size","keep_placeholder","input_class","autocomplete","submit_button_title","suffix","size","selectall","clear","stretch","skeleton","input_attributes","input_state","submit_element","inner_ref","input_element","inner_element","exports"],"sources":["../../../../src/components/input/InputDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const inputProperties: PropertiesTableProps = {\n value: {\n doc: 'The content value of the input.',\n type: 'string',\n status: 'optional',\n },\n align: {\n doc: 'Defines the text alignment of the input. Can be `left`, `right` or `center`. Defaults to `left`.',\n type: 'string',\n status: 'optional',\n },\n label: {\n doc: 'Prepends the Form Label component. If no ID is provided, a random ID is created.',\n type: 'React.Node',\n status: 'optional',\n },\n label_sr_only: {\n doc: 'Use `true` to make the label only readable by screen readers.',\n type: 'boolean',\n status: 'optional',\n },\n label_direction: {\n doc: 'Use `label_direction=\"vertical\"` to change the label layout direction. Defaults to `horizontal`.',\n type: 'string',\n status: 'optional',\n },\n status: {\n doc: 'Text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message.',\n type: 'string',\n status: 'optional',\n },\n status_state: {\n doc: 'Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.',\n type: 'string',\n status: 'optional',\n },\n status_props: {\n doc: 'Use an object to define additional FormStatus properties.',\n type: 'object',\n status: 'optional',\n },\n globalStatus: {\n doc: 'The [configuration](/uilib/components/global-status/properties/#configuration-object) used for the target [GlobalStatus](/uilib/components/global-status).',\n type: 'object',\n status: 'optional',\n },\n placeholder: {\n doc: 'The placeholder which shows up once the input value is empty.',\n type: 'string',\n status: 'optional',\n },\n icon: {\n doc: 'Icon to show before or after the input / placeholder. Can be either a string defining a primary icon or a Component using an SVG icon of either 16px or 24px.',\n type: ['string', 'React.Component'],\n status: 'optional',\n },\n icon_position: {\n doc: 'Defines the position of icon inside the input. Set to `left` or `right`. Defaults to `left` if not set.',\n type: 'string',\n status: 'optional',\n },\n icon_size: {\n doc: 'The icon size of the icon shows. Defaults to `medium`.',\n type: 'string',\n status: 'optional',\n },\n keep_placeholder: {\n doc: 'Set to `true` in case the `placeholder` has to be kept during focus. By default, the placeholder disappears on focus.',\n type: 'boolean',\n status: 'optional',\n },\n input_class: {\n doc: 'In case we have to set a custom input class.',\n type: 'string',\n status: 'optional',\n },\n type: {\n doc: 'Choose between `text`, `number`, `email`, `password`, `url`, `tel` and `search`.',\n type: 'string',\n status: 'optional',\n },\n autocomplete: {\n doc: 'Defaults to `off`. Set to `on` or any of [allowed `attributes`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-autocomplete). Keep in mind, 1. you may have to define a `name`, 2. have the input as a descendant of a `<form>` element, 3. and have a submit button inside the form.',\n type: 'string',\n status: 'optional',\n },\n submit_button_title: {\n doc: 'Title attribute for the search icon. Only relevant if search input.',\n type: 'string',\n status: 'optional',\n },\n suffix: {\n doc: 'Text describing the content of the input more than the label. you can also send in a React component, so it gets wrapped inside the Input component.',\n type: ['string', 'React.Component'],\n status: 'optional',\n },\n size: {\n doc: 'The sizes you can choose is `default` (2rem), `medium` (2.5rem) and `large` (3rem) are supported component sizes. Defaults to `default` / `null`. Also, if you define a number like `size={2}` then it will be forwarded as the input element attribute.',\n type: ['string', 'number'],\n status: 'optional',\n },\n selectall: {\n doc: 'If set to `true`, then the whole input value gets selected on the entry focus. A second click will place the cursor on the wanted position.',\n type: 'boolean',\n status: 'optional',\n },\n clear: {\n doc: 'If set to `true`, then a clear button will be shown which lets the user clear any given input value.',\n type: 'boolean',\n status: 'optional',\n },\n stretch: {\n doc: 'If set to `true`, then the input field will be 100% in `width`.',\n type: 'boolean',\n status: 'optional',\n },\n skeleton: {\n doc: 'If set to `true`, an overlaying skeleton with animation will be shown.',\n type: 'boolean',\n status: 'optional',\n },\n input_attributes: {\n doc: 'Provide the Input element with any attributes by using an Object `input_attributes={{size:\\'2\\'}}` or a JSON Object `input_attributes=\\'{\"size\":\"2\"}\\'`. **NB:** Keep in mind, that also every not listed component property will be sent along and set as an Input element attribute.',\n type: 'object',\n status: 'optional',\n },\n input_state: {\n doc: 'Defines a custom visual state of the input. Use it only if you have to simulate a custom state. Currently are three statuses `virgin` , `focus` and `dirty`. Defaults to `null`.',\n type: 'string',\n status: 'optional',\n },\n submit_element: {\n doc: 'Accepts a React element which will show up like the \"submit button\" would do on `type=\"search\"`.',\n type: ['string', 'React.Element'],\n status: 'optional',\n },\n inner_ref: {\n doc: 'By providing a React.ref we can get the internally used input element (DOM). E.g. `inner_ref={myRef}` by using `React.createRef()` or `React.useRef()`.',\n type: 'React.Ref',\n status: 'optional',\n },\n input_element: {\n doc: 'By providing a new component we can change the internally used element. Also supports a string only, like `input_element=\"input\"`.',\n type: ['string', 'React.Element'],\n status: 'internal',\n },\n inner_element: {\n doc: 'By providing a new component to be rendered inside the \"shell\" – we can add a freely customizable internal element. Used by the Autocomplete component.',\n type: ['string', 'React.Element'],\n status: 'internal',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"InputDocs.js","names":["inputProperties","value","doc","type","status","align","label","label_sr_only","label_direction","status_state","status_props","globalStatus","placeholder","icon","icon_position","icon_size","keep_placeholder","input_class","autocomplete","submit_button_title","suffix","size","selectall","clear","stretch","skeleton","input_attributes","input_state","submit_element","inner_ref","input_element","inner_element","exports"],"sources":["../../../../src/components/input/InputDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const inputProperties: PropertiesTableProps = {\n value: {\n doc: 'The content value of the input.',\n type: 'string',\n status: 'optional',\n },\n align: {\n doc: 'Defines the text alignment of the input. Can be `left`, `right` or `center`. Defaults to `left`.',\n type: 'string',\n status: 'optional',\n },\n label: {\n doc: 'Prepends the Form Label component. If no ID is provided, a random ID is created.',\n type: 'React.Node',\n status: 'optional',\n },\n label_sr_only: {\n doc: 'Use `true` to make the label only readable by screen readers.',\n type: 'boolean',\n status: 'optional',\n },\n label_direction: {\n doc: 'Use `label_direction=\"vertical\"` to change the label layout direction. Defaults to `horizontal`.',\n type: 'string',\n status: 'optional',\n },\n status: {\n doc: 'Text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message.',\n type: 'string',\n status: 'optional',\n },\n status_state: {\n doc: 'Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.',\n type: 'string',\n status: 'optional',\n },\n status_props: {\n doc: 'Use an object to define additional FormStatus properties.',\n type: 'object',\n status: 'optional',\n },\n globalStatus: {\n doc: 'The [configuration](/uilib/components/global-status/properties/#configuration-object) used for the target [GlobalStatus](/uilib/components/global-status).',\n type: 'object',\n status: 'optional',\n },\n placeholder: {\n doc: 'The placeholder which shows up once the input value is empty.',\n type: 'string',\n status: 'optional',\n },\n icon: {\n doc: 'Icon to show before or after the input / placeholder. Can be either a string defining a primary icon or a Component using an SVG icon of either 16px or 24px.',\n type: ['string', 'React.Node'],\n status: 'optional',\n },\n icon_position: {\n doc: 'Defines the position of icon inside the input. Set to `left` or `right`. Defaults to `left` if not set.',\n type: 'string',\n status: 'optional',\n },\n icon_size: {\n doc: 'The icon size of the icon shows. Defaults to `medium`.',\n type: 'string',\n status: 'optional',\n },\n keep_placeholder: {\n doc: 'Set to `true` in case the `placeholder` has to be kept during focus. By default, the placeholder disappears on focus.',\n type: 'boolean',\n status: 'optional',\n },\n input_class: {\n doc: 'In case we have to set a custom input class.',\n type: 'string',\n status: 'optional',\n },\n type: {\n doc: 'Choose between `text`, `number`, `email`, `password`, `url`, `tel` and `search`.',\n type: 'string',\n status: 'optional',\n },\n autocomplete: {\n doc: 'Defaults to `off`. Set to `on` or any of [allowed `attributes`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-autocomplete). Keep in mind, 1. you may have to define a `name`, 2. have the input as a descendant of a `<form>` element, 3. and have a submit button inside the form.',\n type: 'string',\n status: 'optional',\n },\n submit_button_title: {\n doc: 'Title attribute for the search icon. Only relevant if search input.',\n type: 'string',\n status: 'optional',\n },\n suffix: {\n doc: 'Text describing the content of the input more than the label. you can also send in a React component, so it gets wrapped inside the Input component.',\n type: ['string', 'React.Node'],\n status: 'optional',\n },\n size: {\n doc: 'The sizes you can choose is `default` (2rem), `medium` (2.5rem) and `large` (3rem) are supported component sizes. Defaults to `default` / `null`. Also, if you define a number like `size={2}` then it will be forwarded as the input element attribute.',\n type: ['string', 'number'],\n status: 'optional',\n },\n selectall: {\n doc: 'If set to `true`, then the whole input value gets selected on the entry focus. A second click will place the cursor on the wanted position.',\n type: 'boolean',\n status: 'optional',\n },\n clear: {\n doc: 'If set to `true`, then a clear button will be shown which lets the user clear any given input value.',\n type: 'boolean',\n status: 'optional',\n },\n stretch: {\n doc: 'If set to `true`, then the input field will be 100% in `width`.',\n type: 'boolean',\n status: 'optional',\n },\n skeleton: {\n doc: 'If set to `true`, an overlaying skeleton with animation will be shown.',\n type: 'boolean',\n status: 'optional',\n },\n input_attributes: {\n doc: 'Provide the Input element with any attributes by using an Object `input_attributes={{size:\\'2\\'}}` or a JSON Object `input_attributes=\\'{\"size\":\"2\"}\\'`. **NB:** Keep in mind, that also every not listed component property will be sent along and set as an Input element attribute.',\n type: 'object',\n status: 'optional',\n },\n input_state: {\n doc: 'Defines a custom visual state of the input. Use it only if you have to simulate a custom state. Currently are three statuses `virgin` , `focus` and `dirty`. Defaults to `null`.',\n type: 'string',\n status: 'optional',\n },\n submit_element: {\n doc: 'Accepts a React element which will show up like the \"submit button\" would do on `type=\"search\"`.',\n type: ['string', 'React.Element'],\n status: 'optional',\n },\n inner_ref: {\n doc: 'By providing a React.ref we can get the internally used input element (DOM). E.g. `inner_ref={myRef}` by using `React.createRef()` or `React.useRef()`.',\n type: 'React.Ref',\n status: 'optional',\n },\n input_element: {\n doc: 'By providing a new component we can change the internally used element. Also supports a string only, like `input_element=\"input\"`.',\n type: ['string', 'React.Element'],\n status: 'internal',\n },\n inner_element: {\n doc: 'By providing a new component to be rendered inside the \"shell\" – we can add a freely customizable internal element. Used by the Autocomplete component.',\n type: ['string', 'React.Element'],\n status: 'internal',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n"],"mappings":"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"}
@@ -25,19 +25,19 @@ function At(props) {
25
25
  const dataContext = (0, _react.useContext)(_Context.default);
26
26
  const {
27
27
  data: contextData,
28
- handlePathChange: contextHandlePathChange
28
+ handlePathChange: handlePathChangeDataContext
29
29
  } = dataContext;
30
30
  const data = contextData && _jsonPointer.default.has(contextData, path) ? _jsonPointer.default.get(contextData, path) : undefined;
31
- const handlePathChange = (0, _react.useMemo)(() => contextHandlePathChange ? (changePath, value) => {
32
- contextHandlePathChange(`${path}${changePath}`, value);
33
- } : undefined, [contextHandlePathChange, path]);
31
+ const handlePathChange = (0, _react.useCallback)((changePath, value) => {
32
+ handlePathChangeDataContext(`${path}${changePath}`, value);
33
+ }, [handlePathChangeDataContext, path]);
34
34
  if (iterate) {
35
35
  if (!Array.isArray(data)) {
36
36
  return null;
37
37
  }
38
38
  return _react.default.createElement(_react.default.Fragment, null, data.map((element, i) => {
39
- const handlePathChange = contextHandlePathChange ? (changePath, value) => {
40
- contextHandlePathChange(`${path}/${i}${changePath}`, value);
39
+ const handlePathChange = handlePathChangeDataContext ? (changePath, value) => {
40
+ handlePathChangeDataContext(`${path}/${i}${changePath}`, value);
41
41
  } : undefined;
42
42
  return _react.default.createElement(_Context.default.Provider, {
43
43
  key: `element${i}`,
@@ -1 +1 @@
1
- {"version":3,"file":"At.js","names":["_react","_interopRequireWildcard","require","_jsonPointer","_interopRequireDefault","_Context","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","At","props","path","iterate","children","dataContext","useContext","Context","data","contextData","handlePathChange","contextHandlePathChange","pointer","useMemo","changePath","Array","isArray","createElement","Fragment","map","element","Provider","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/DataContext/At/At.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react'\nimport pointer from 'json-pointer'\nimport type { ComponentProps } from '../../types'\nimport Context, { ContextState } from '../Context'\n\nexport type Props = ComponentProps & {\n /** JSON Pointer for where in the source dataset to point at in sub components */\n path?: string\n iterate?: boolean\n children?: React.ReactNode\n}\n\nfunction At(props: Props) {\n const { path = '/', iterate, children } = props\n const dataContext = useContext(Context)\n const { data: contextData, handlePathChange: contextHandlePathChange } =\n dataContext\n\n const data =\n contextData && pointer.has(contextData, path)\n ? pointer.get(contextData, path)\n : undefined\n\n const handlePathChange = useMemo(\n () =>\n (contextHandlePathChange\n ? (changePath, value) => {\n contextHandlePathChange(`${path}${changePath}`, value)\n }\n : undefined) as ContextState['handlePathChange'],\n [contextHandlePathChange, path]\n )\n\n if (iterate) {\n if (!Array.isArray(data)) {\n return null\n }\n return (\n <>\n {data.map((element, i) => {\n const handlePathChange = (\n contextHandlePathChange\n ? (changePath, value) => {\n contextHandlePathChange(\n `${path}/${i}${changePath}`,\n value\n )\n }\n : undefined\n ) as ContextState['handlePathChange']\n\n return (\n <Context.Provider\n key={`element${i}`}\n value={{\n ...dataContext,\n data: element,\n handlePathChange,\n }}\n >\n {children}\n </Context.Provider>\n )\n })}\n </>\n )\n }\n\n return (\n <Context.Provider\n value={{\n ...dataContext,\n data,\n handlePathChange,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nAt._supportsSpacingProps = true\nexport default At\n"],"mappings":"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"}
1
+ {"version":3,"file":"At.js","names":["_react","_interopRequireWildcard","require","_jsonPointer","_interopRequireDefault","_Context","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","At","props","path","iterate","children","dataContext","useContext","Context","data","contextData","handlePathChange","handlePathChangeDataContext","pointer","useCallback","changePath","Array","isArray","createElement","Fragment","map","element","Provider","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/DataContext/At/At.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport pointer from 'json-pointer'\nimport type { ComponentProps } from '../../types'\nimport Context, { ContextState } from '../Context'\n\nexport type Props = ComponentProps & {\n /** JSON Pointer for where in the source dataset to point at in sub components */\n path?: string\n iterate?: boolean\n children?: React.ReactNode\n}\n\nfunction At(props: Props) {\n const { path = '/', iterate, children } = props\n const dataContext = useContext(Context)\n const {\n data: contextData,\n handlePathChange: handlePathChangeDataContext,\n } = dataContext\n\n const data =\n contextData && pointer.has(contextData, path)\n ? pointer.get(contextData, path)\n : undefined\n\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n (changePath, value) => {\n handlePathChangeDataContext(`${path}${changePath}`, value)\n },\n [handlePathChangeDataContext, path]\n )\n\n if (iterate) {\n if (!Array.isArray(data)) {\n return null\n }\n return (\n <>\n {data.map((element, i) => {\n const handlePathChange = (\n handlePathChangeDataContext\n ? (changePath, value) => {\n handlePathChangeDataContext(\n `${path}/${i}${changePath}`,\n value\n )\n }\n : undefined\n ) as ContextState['handlePathChange']\n\n return (\n <Context.Provider\n key={`element${i}`}\n value={{\n ...dataContext,\n data: element,\n handlePathChange,\n }}\n >\n {children}\n </Context.Provider>\n )\n })}\n </>\n )\n }\n\n return (\n <Context.Provider\n value={{\n ...dataContext,\n data,\n handlePathChange,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nAt._supportsSpacingProps = true\nexport default At\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,QAAA,GAAAD,sBAAA,CAAAF,OAAA;AAAkD,SAAAE,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAT,wBAAAK,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAQ,KAAA,GAAAL,wBAAA,CAAAC,WAAA,OAAAI,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,CAAAT,OAAA,GAAAF,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAAA,SAAAW,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAZ,MAAA,CAAAY,IAAA,CAAAF,MAAA,OAAAV,MAAA,CAAAa,qBAAA,QAAAC,OAAA,GAAAd,MAAA,CAAAa,qBAAA,CAAAH,MAAA,GAAAC,cAAA,KAAAG,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAhB,MAAA,CAAAE,wBAAA,CAAAQ,MAAA,EAAAM,GAAA,EAAAC,UAAA,OAAAL,IAAA,CAAAM,IAAA,CAAAC,KAAA,CAAAP,IAAA,EAAAE,OAAA,YAAAF,IAAA;AAAA,SAAAQ,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAb,OAAA,CAAAT,MAAA,CAAAyB,MAAA,OAAAC,OAAA,WAAAvB,GAAA,IAAAwB,eAAA,CAAAN,MAAA,EAAAlB,GAAA,EAAAsB,MAAA,CAAAtB,GAAA,SAAAH,MAAA,CAAA4B,yBAAA,GAAA5B,MAAA,CAAA6B,gBAAA,CAAAR,MAAA,EAAArB,MAAA,CAAA4B,yBAAA,CAAAH,MAAA,KAAAhB,OAAA,CAAAT,MAAA,CAAAyB,MAAA,GAAAC,OAAA,WAAAvB,GAAA,IAAAH,MAAA,CAAAC,cAAA,CAAAoB,MAAA,EAAAlB,GAAA,EAAAH,MAAA,CAAAE,wBAAA,CAAAuB,MAAA,EAAAtB,GAAA,iBAAAkB,MAAA;AAAA,SAAAM,gBAAAxC,GAAA,EAAAgB,GAAA,EAAA2B,KAAA,IAAA3B,GAAA,GAAA4B,cAAA,CAAA5B,GAAA,OAAAA,GAAA,IAAAhB,GAAA,IAAAa,MAAA,CAAAC,cAAA,CAAAd,GAAA,EAAAgB,GAAA,IAAA2B,KAAA,EAAAA,KAAA,EAAAb,UAAA,QAAAe,YAAA,QAAAC,QAAA,oBAAA9C,GAAA,CAAAgB,GAAA,IAAA2B,KAAA,WAAA3C,GAAA;AAAA,SAAA4C,eAAAG,GAAA,QAAA/B,GAAA,GAAAgC,YAAA,CAAAD,GAAA,2BAAA/B,GAAA,gBAAAA,GAAA,GAAAiC,MAAA,CAAAjC,GAAA;AAAA,SAAAgC,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAjC,IAAA,CAAA+B,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAC,SAAA,4DAAAN,IAAA,gBAAAF,MAAA,GAAAS,MAAA,EAAAR,KAAA;AASlD,SAASS,EAAEA,CAACC,KAAY,EAAE;EACxB,MAAM;IAAEC,IAAI,GAAG,GAAG;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAGH,KAAK;EAC/C,MAAMI,WAAW,GAAG,IAAAC,iBAAU,EAACC,gBAAO,CAAC;EACvC,MAAM;IACJC,IAAI,EAAEC,WAAW;IACjBC,gBAAgB,EAAEC;EACpB,CAAC,GAAGN,WAAW;EAEf,MAAMG,IAAI,GACRC,WAAW,IAAIG,oBAAO,CAAC9D,GAAG,CAAC2D,WAAW,EAAEP,IAAI,CAAC,GACzCU,oBAAO,CAAC7D,GAAG,CAAC0D,WAAW,EAAEP,IAAI,CAAC,GAC9BN,SAAS;EAEf,MAAMc,gBAAkD,GAAG,IAAAG,kBAAW,EACpE,CAACC,UAAU,EAAE9B,KAAK,KAAK;IACrB2B,2BAA2B,CAAE,GAAET,IAAK,GAAEY,UAAW,EAAC,EAAE9B,KAAK,CAAC;EAC5D,CAAC,EACD,CAAC2B,2BAA2B,EAAET,IAAI,CACpC,CAAC;EAED,IAAIC,OAAO,EAAE;IACX,IAAI,CAACY,KAAK,CAACC,OAAO,CAACR,IAAI,CAAC,EAAE;MACxB,OAAO,IAAI;IACb;IACA,OACEzE,MAAA,CAAAQ,OAAA,CAAA0E,aAAA,CAAAlF,MAAA,CAAAQ,OAAA,CAAA2E,QAAA,QACGV,IAAI,CAACW,GAAG,CAAC,CAACC,OAAO,EAAE5C,CAAC,KAAK;MACxB,MAAMkC,gBAAgB,GACpBC,2BAA2B,GACvB,CAACG,UAAU,EAAE9B,KAAK,KAAK;QACrB2B,2BAA2B,CACxB,GAAET,IAAK,IAAG1B,CAAE,GAAEsC,UAAW,EAAC,EAC3B9B,KACF,CAAC;MACH,CAAC,GACDY,SAC+B;MAErC,OACE7D,MAAA,CAAAQ,OAAA,CAAA0E,aAAA,CAAC7E,QAAA,CAAAG,OAAO,CAAC8E,QAAQ;QACfhE,GAAG,EAAG,UAASmB,CAAE,EAAE;QACnBQ,KAAK,EAAAV,aAAA,CAAAA,aAAA,KACA+B,WAAW;UACdG,IAAI,EAAEY,OAAO;UACbV;QAAgB;MAChB,GAEDN,QACe,CAAC;IAEvB,CAAC,CACD,CAAC;EAEP;EAEA,OACErE,MAAA,CAAAQ,OAAA,CAAA0E,aAAA,CAAC7E,QAAA,CAAAG,OAAO,CAAC8E,QAAQ;IACfrC,KAAK,EAAAV,aAAA,CAAAA,aAAA,KACA+B,WAAW;MACdG,IAAI;MACJE;IAAgB;EAChB,GAEDN,QACe,CAAC;AAEvB;AAEAJ,EAAE,CAACsB,qBAAqB,GAAG,IAAI;AAAA,IAAAC,QAAA,GAChBvB,EAAE;AAAAwB,OAAA,CAAAjF,OAAA,GAAAgF,QAAA"}
@@ -11,7 +11,9 @@ export type EventListenerCall = {
11
11
  callback: () => any;
12
12
  };
13
13
  export type FilterDataHandler<Data> = (data: Data, filter: FilterData) => Partial<Data>;
14
- export type FilterData = (path: Path, value: any, props: FieldProps) => boolean | undefined;
14
+ export type FilterData = (path: Path, value: any, props: FieldProps, internal: {
15
+ error: Error | undefined;
16
+ }) => boolean | undefined;
15
17
  export interface ContextState {
16
18
  id?: Identifier;
17
19
  hasContext: boolean;
@@ -21,7 +23,8 @@ export interface ContextState {
21
23
  errors?: Record<string, Error>;
22
24
  /** Will set autoComplete="on" on each nested Field.String and Field.Number */
23
25
  autoComplete?: boolean;
24
- handlePathChange: (path: Path, value: any) => EventReturnWithStateObject | unknown | Promise<EventReturnWithStateObject | unknown>;
26
+ handlePathChange: (path: Path, value?: any) => EventReturnWithStateObject | unknown | Promise<EventReturnWithStateObject | unknown>;
27
+ handlePathChangeUnvalidated: (path: Path, value: any) => void;
25
28
  updateDataValue: (path: Path, value: any) => void;
26
29
  setData: (data: any) => void;
27
30
  filterDataHandler: (data: any, filter: FilterData) => any;
@@ -14,6 +14,7 @@ const defaultContextState = {
14
14
  disabled: undefined,
15
15
  submitState: undefined,
16
16
  handlePathChange: () => null,
17
+ handlePathChangeUnvalidated: () => null,
17
18
  updateDataValue: () => null,
18
19
  setData: () => null,
19
20
  filterDataHandler: () => null,
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","names":["_react","_interopRequireDefault","require","_ajv","obj","__esModule","default","defaultContextState","hasContext","data","undefined","schema","disabled","submitState","handlePathChange","updateDataValue","setData","filterDataHandler","validateData","handleSubmit","scrollToTop","showAllErrors","formState","setFormState","setFieldEventListener","handleSubmitCall","setShowAllErrors","mountedFieldPaths","handleMountField","handleUnMountField","hasErrors","hasFieldState","checkFieldStateFor","setFieldState","setFieldError","setProps","ajvInstance","makeAjvInstance","contextErrorMessages","_isInsideFormElement","props","exports","Context","React","createContext","_default"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, makeAjvInstance } from '../utils/ajv'\nimport {\n AllJSONSchemaVersions,\n CustomErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n Identifier,\n FieldProps,\n FormError,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\n\ntype HandleSubmitProps = {\n formElement?: HTMLFormElement\n}\n\nexport type EventListenerCall = {\n path: Path\n type: 'onSubmit'\n callback: () => any\n}\n\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterData = (\n path: Path,\n value: any,\n props: FieldProps\n) => boolean | undefined\n\nexport interface ContextState {\n id?: Identifier\n hasContext: boolean\n /** The dataset for the form / form steps */\n data: any\n /** Should the form validate data before submitting? */\n errors?: Record<string, 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 updateDataValue: (path: Path, value: any) => void\n setData: (data: any) => void\n filterDataHandler: (data: any, filter: FilterData) => any\n validateData: () => void\n handleSubmit: (props?: HandleSubmitProps) => any\n scrollToTop: () => void\n // Error status\n showAllErrors: boolean\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n checkFieldStateFor: (path: Path, state: SubmitState) => boolean\n setFieldState: (path: Path, fieldState: SubmitState) => void\n setFieldError: (path: Path, error: Error | FormError) => void\n // Mounted fields - Components telling the provider what fields is on screen at any time\n mountedFieldPaths: string[]\n handleMountField: (path: Path) => void\n handleUnMountField: (path: Path) => void\n formState: SubmitState\n setFormState?: (state: SubmitState) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehaviour: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => void\n setFieldEventListener: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n setProps: (path: Path, props: any) => void\n ajvInstance: Ajv\n contextErrorMessages: CustomErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n disabled: boolean\n submitState: Partial<EventStateObject>\n _isInsideFormElement?: boolean\n props: ProviderProps<unknown>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n disabled: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n updateDataValue: () => null,\n setData: () => null,\n filterDataHandler: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n formState: undefined,\n setFormState: () => null,\n setFieldEventListener: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n mountedFieldPaths: [],\n handleMountField: () => null,\n handleUnMountField: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n checkFieldStateFor: () => false,\n setFieldState: () => null,\n setFieldError: () => null,\n setProps: () => null,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n _isInsideFormElement: false,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AAAmD,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAmG5C,MAAMG,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,QAAQ,EAAEF,SAAS;EACnBG,WAAW,EAAEH,SAAS;EACtBI,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,iBAAiB,EAAEA,CAAA,KAAM,IAAI;EAC7BC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,SAAS,EAAEZ,SAAS;EACpBa,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,qBAAqB,EAAEA,CAAA,KAAM,IAAI;EACjCC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,iBAAiB,EAAE,EAAE;EACrBC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,kBAAkB,EAAEA,CAAA,KAAM,IAAI;EAC9BC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,kBAAkB,EAAEA,CAAA,KAAM,KAAK;EAC/BC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,QAAQ,EAAEA,CAAA,KAAM,IAAI;EACpBC,WAAW,EAAE,IAAAC,oBAAe,EAAC,CAAC;EAC9BC,oBAAoB,EAAE5B,SAAS;EAC/B6B,oBAAoB,EAAE,KAAK;EAC3BC,KAAK,EAAE;AACT,CAAC;AAAAC,OAAA,CAAAlC,mBAAA,GAAAA,mBAAA;AAED,MAAMmC,OAAO,GAAGC,cAAK,CAACC,aAAa,CAAerC,mBAAmB,CAAC;AAAA,IAAAsC,QAAA,GAEvDH,OAAO;AAAAD,OAAA,CAAAnC,OAAA,GAAAuC,QAAA"}
1
+ {"version":3,"file":"Context.js","names":["_react","_interopRequireDefault","require","_ajv","obj","__esModule","default","defaultContextState","hasContext","data","undefined","schema","disabled","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","filterDataHandler","validateData","handleSubmit","scrollToTop","showAllErrors","formState","setFormState","setFieldEventListener","handleSubmitCall","setShowAllErrors","mountedFieldPaths","handleMountField","handleUnMountField","hasErrors","hasFieldState","checkFieldStateFor","setFieldState","setFieldError","setProps","ajvInstance","makeAjvInstance","contextErrorMessages","_isInsideFormElement","props","exports","Context","React","createContext","_default"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, makeAjvInstance } from '../utils/ajv'\nimport {\n AllJSONSchemaVersions,\n CustomErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n Identifier,\n FieldProps,\n FormError,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\n\ntype HandleSubmitProps = {\n formElement?: HTMLFormElement\n}\n\nexport type EventListenerCall = {\n path: Path\n type: 'onSubmit'\n callback: () => any\n}\n\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterData = (\n path: Path,\n value: any,\n props: FieldProps,\n internal: {\n error: Error | undefined\n }\n) => boolean | undefined\n\nexport interface ContextState {\n id?: Identifier\n hasContext: boolean\n /** The dataset for the form / form steps */\n data: any\n /** Should the form validate data before submitting? */\n errors?: Record<string, 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: (path: Path, value: any) => void\n setData: (data: any) => void\n filterDataHandler: (data: any, filter: FilterData) => any\n validateData: () => void\n handleSubmit: (props?: HandleSubmitProps) => any\n scrollToTop: () => void\n // Error status\n showAllErrors: boolean\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n checkFieldStateFor: (path: Path, state: SubmitState) => boolean\n setFieldState: (path: Path, fieldState: SubmitState) => void\n setFieldError: (path: Path, error: Error | FormError) => void\n // Mounted fields - Components telling the provider what fields is on screen at any time\n mountedFieldPaths: string[]\n handleMountField: (path: Path) => void\n handleUnMountField: (path: Path) => void\n formState: SubmitState\n setFormState?: (state: SubmitState) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehaviour: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => void\n setFieldEventListener: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n setProps: (path: Path, props: any) => void\n ajvInstance: Ajv\n contextErrorMessages: CustomErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n disabled: boolean\n submitState: Partial<EventStateObject>\n _isInsideFormElement?: boolean\n props: ProviderProps<unknown>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n disabled: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n handlePathChangeUnvalidated: () => null,\n updateDataValue: () => null,\n setData: () => null,\n filterDataHandler: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n formState: undefined,\n setFormState: () => null,\n setFieldEventListener: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n mountedFieldPaths: [],\n handleMountField: () => null,\n handleUnMountField: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n checkFieldStateFor: () => false,\n setFieldState: () => null,\n setFieldError: () => null,\n setProps: () => null,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n _isInsideFormElement: false,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AAAmD,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAuG5C,MAAMG,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,QAAQ,EAAEF,SAAS;EACnBG,WAAW,EAAEH,SAAS;EACtBI,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;EACvCC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,iBAAiB,EAAEA,CAAA,KAAM,IAAI;EAC7BC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,SAAS,EAAEb,SAAS;EACpBc,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,qBAAqB,EAAEA,CAAA,KAAM,IAAI;EACjCC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,iBAAiB,EAAE,EAAE;EACrBC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,kBAAkB,EAAEA,CAAA,KAAM,IAAI;EAC9BC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,kBAAkB,EAAEA,CAAA,KAAM,KAAK;EAC/BC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,QAAQ,EAAEA,CAAA,KAAM,IAAI;EACpBC,WAAW,EAAE,IAAAC,oBAAe,EAAC,CAAC;EAC9BC,oBAAoB,EAAE7B,SAAS;EAC/B8B,oBAAoB,EAAE,KAAK;EAC3BC,KAAK,EAAE;AACT,CAAC;AAAAC,OAAA,CAAAnC,mBAAA,GAAAA,mBAAA;AAED,MAAMoC,OAAO,GAAGC,cAAK,CAACC,aAAa,CAAetC,mBAAmB,CAAC;AAAA,IAAAuC,QAAA,GAEvDH,OAAO;AAAAD,OAAA,CAAApC,OAAA,GAAAwC,QAAA"}
@@ -58,10 +58,6 @@ export interface Props<Data extends JsonObject> {
58
58
  * The result of the onSubmit function
59
59
  */
60
60
  result: unknown) => EventReturnWithStateObject | void | Promise<EventReturnWithStateObject | void>;
61
- /**
62
- * Shows an indicator on the current label during a field change.
63
- */
64
- enableAsyncChangeBehavior?: boolean;
65
61
  /**
66
62
  * Minimum time to display the submit indicator.
67
63
  */
@@ -69,7 +65,7 @@ export interface Props<Data extends JsonObject> {
69
65
  /**
70
66
  * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.
71
67
  */
72
- asyncBehaviorTimeout?: number;
68
+ asyncSubmitTimeout?: number;
73
69
  /**
74
70
  * Scroll to top on submit
75
71
  */
@@ -15,7 +15,7 @@ var _isAsync = require("../../../../shared/helpers/isAsync");
15
15
  var _useSharedState = require("../../../../shared/helpers/useSharedState");
16
16
  var _Context = _interopRequireDefault(require("../Context"));
17
17
  var _structuredClone = _interopRequireDefault(require("@ungap/structured-clone"));
18
- const _excluded = ["id", "defaultData", "data", "schema", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "onSubmitComplete", "scrollTopOnSubmit", "minimumAsyncBehaviorTime", "asyncBehaviorTimeout", "sessionStorageId", "ajvInstance", "filterData", "errorMessages", "children"];
18
+ const _excluded = ["id", "defaultData", "data", "schema", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "onSubmitComplete", "scrollTopOnSubmit", "minimumAsyncBehaviorTime", "asyncSubmitTimeout", "sessionStorageId", "ajvInstance", "filterData", "errorMessages", "children"];
19
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
20
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
21
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -43,7 +43,7 @@ function Provider(props) {
43
43
  onSubmitComplete,
44
44
  scrollTopOnSubmit,
45
45
  minimumAsyncBehaviorTime,
46
- asyncBehaviorTimeout,
46
+ asyncSubmitTimeout,
47
47
  sessionStorageId,
48
48
  ajvInstance,
49
49
  filterData,
@@ -106,7 +106,7 @@ function Provider(props) {
106
106
  }, [executeAjvValidator]);
107
107
  const checkFieldStateFor = (0, _react.useCallback)((path, state) => {
108
108
  var _errorsRef$current;
109
- return Boolean(state === 'error' ? ((_errorsRef$current = errorsRef.current) === null || _errorsRef$current === void 0 ? void 0 : _errorsRef$current[path]) instanceof Error || fieldErrorRef.current[path] : fieldStateRef.current[path] === state);
109
+ return Boolean(state === 'error' ? ((_errorsRef$current = errorsRef.current) === null || _errorsRef$current === void 0 ? void 0 : _errorsRef$current[path]) instanceof Error || fieldErrorRef.current[path] instanceof Error : fieldStateRef.current[path] === state);
110
110
  }, []);
111
111
  const hasFieldState = (0, _react.useCallback)(state => {
112
112
  return mountedFieldPathsRef.current.some(path => {
@@ -117,7 +117,7 @@ function Provider(props) {
117
117
  return hasFieldState('error');
118
118
  }, [hasFieldState]);
119
119
  const setFieldError = (0, _react.useCallback)((path, error) => {
120
- fieldErrorRef.current[path] = Boolean(error);
120
+ fieldErrorRef.current[path] = error;
121
121
  }, []);
122
122
  const setFieldState = (0, _react.useCallback)((path, fieldState) => {
123
123
  if (fieldState !== fieldStateRef.current[path]) {
@@ -130,9 +130,12 @@ function Provider(props) {
130
130
  if (filter) {
131
131
  const filtered = _objectSpread({}, data);
132
132
  Object.entries(fieldPropsRef.current).forEach(_ref => {
133
+ var _fieldErrorRef$curren;
133
134
  let [path, props] = _ref;
134
135
  const exists = _jsonPointer.default.has(data, path);
135
- const result = filter(path, exists ? _jsonPointer.default.get(data, path) : undefined, props);
136
+ const result = filter(path, exists ? _jsonPointer.default.get(data, path) : undefined, props, {
137
+ error: (_fieldErrorRef$curren = fieldErrorRef.current) === null || _fieldErrorRef$curren === void 0 ? void 0 : _fieldErrorRef$curren[path]
138
+ });
136
139
  if (result === false && exists) {
137
140
  _jsonPointer.default.remove(filtered, path);
138
141
  }
@@ -239,23 +242,32 @@ function Provider(props) {
239
242
  internalDataRef.current = newData;
240
243
  forceUpdate();
241
244
  }, []);
242
- const handlePathChange = (0, _react.useCallback)(async (path, value) => {
245
+ const handlePathChangeUnvalidated = (0, _react.useCallback)(async (path, value) => {
243
246
  if (!path) {
244
247
  return null;
245
248
  }
249
+ updateDataValue(path, value);
246
250
  if ((0, _isAsync.isAsync)(onPathChange)) {
247
251
  await (onPathChange === null || onPathChange === void 0 ? void 0 : onPathChange(path, value));
248
252
  } else {
249
253
  onPathChange === null || onPathChange === void 0 ? void 0 : onPathChange(path, value);
250
254
  }
251
- const newData = updateDataValue(path, value);
255
+ }, [onPathChange, updateDataValue]);
256
+ const handlePathChange = (0, _react.useCallback)(async function (path) {
257
+ let value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '_undefined_';
258
+ if (!path) {
259
+ return null;
260
+ }
261
+ if (value !== '_undefined_') {
262
+ handlePathChangeUnvalidated(path, value);
263
+ }
252
264
  showAllErrorsRef.current = false;
253
265
  validateData();
254
266
  if ((0, _isAsync.isAsync)(onChange)) {
255
- return await onChange(newData);
267
+ return await onChange(internalDataRef.current);
256
268
  }
257
- return onChange === null || onChange === void 0 ? void 0 : onChange(newData);
258
- }, [onChange, onPathChange, updateDataValue, validateData]);
269
+ return onChange === null || onChange === void 0 ? void 0 : onChange(internalDataRef.current);
270
+ }, [handlePathChangeUnvalidated, onChange, validateData]);
259
271
  const handleMountField = (0, _react.useCallback)(path => {
260
272
  mountedFieldPathsRef.current = addListPath(mountedFieldPathsRef.current, path);
261
273
  }, []);
@@ -285,7 +297,7 @@ function Provider(props) {
285
297
  setSubmitState({
286
298
  error: undefined
287
299
  });
288
- const asyncBehaviorIsEnabled = !(skipErrorCheck ? false : hasErrors()) && (enableAsyncBehaviour || hasFieldWithAsyncValidator());
300
+ const asyncBehaviorIsEnabled = (skipErrorCheck ? true : !hasErrors() || hasFieldState('pending')) && (enableAsyncBehaviour || hasFieldWithAsyncValidator());
289
301
  if (asyncBehaviorIsEnabled) {
290
302
  setFormState('pending');
291
303
  }
@@ -331,15 +343,15 @@ function Provider(props) {
331
343
  window.requestAnimationFrame(() => {
332
344
  setFormState(undefined);
333
345
  });
334
- }
335
- if (!skipFieldValidation) {
336
- onSubmitContinueRef.current = () => {
337
- window.requestAnimationFrame(() => {
338
- handleSubmitCall(_objectSpread(_objectSpread({}, args), {}, {
339
- skipFieldValidation: true
340
- }));
341
- });
342
- };
346
+ if (!skipFieldValidation) {
347
+ onSubmitContinueRef.current = () => {
348
+ window.requestAnimationFrame(() => {
349
+ handleSubmitCall(_objectSpread(_objectSpread({}, args), {}, {
350
+ skipFieldValidation: true
351
+ }));
352
+ });
353
+ };
354
+ }
343
355
  }
344
356
  onSubmitRequest === null || onSubmitRequest === void 0 ? void 0 : onSubmitRequest();
345
357
  setShowAllErrors(true);
@@ -428,19 +440,29 @@ function Provider(props) {
428
440
  forceUpdate();
429
441
  }
430
442
  }, [schema, validateData, forceUpdate]);
443
+ const onTimeout = (0, _react.useCallback)(() => {
444
+ setFormState(undefined);
445
+ setSubmitState({
446
+ info: undefined,
447
+ warning: undefined,
448
+ error: undefined
449
+ });
450
+ }, [setFormState, setSubmitState]);
431
451
  const {
432
452
  bufferedFormState: formState
433
453
  } = useFormStatusBuffer({
434
454
  formState: formStateRef.current,
435
455
  waitFor: hasFieldState('pending'),
436
456
  minimumAsyncBehaviorTime,
437
- asyncBehaviorTimeout
457
+ asyncSubmitTimeout,
458
+ onTimeout
438
459
  });
439
460
  const submitState = submitStateRef.current;
440
461
  const disabled = (_rest$disabled = rest === null || rest === void 0 ? void 0 : rest['disabled']) !== null && _rest$disabled !== void 0 ? _rest$disabled : formState === 'pending';
441
462
  return _react.default.createElement(_Context.default.Provider, {
442
463
  value: _objectSpread({
443
464
  handlePathChange,
465
+ handlePathChangeUnvalidated,
444
466
  handleSubmit,
445
467
  handleMountField,
446
468
  handleUnMountField,
@@ -490,7 +512,8 @@ function useFormStatusBuffer(props) {
490
512
  formState,
491
513
  waitFor,
492
514
  minimumAsyncBehaviorTime,
493
- asyncBehaviorTimeout
515
+ asyncSubmitTimeout,
516
+ onTimeout
494
517
  } = props || {};
495
518
  const [, forceUpdate] = (0, _react.useReducer)(() => ({}), {});
496
519
  const stateRef = (0, _react.useRef)();
@@ -526,7 +549,7 @@ function useFormStatusBuffer(props) {
526
549
  if (formState === 'complete') {
527
550
  hadCompleteRef.current = true;
528
551
  }
529
- if (formState === 'pending') {
552
+ if (formState === 'pending' && stateRef.current !== 'pending') {
530
553
  clear();
531
554
  nowRef.current = Date.now();
532
555
  hadCompleteRef.current = false;
@@ -546,13 +569,16 @@ function useFormStatusBuffer(props) {
546
569
  clear();
547
570
  }, delay + minimum);
548
571
  }
572
+ }
573
+ if (stateRef.current === 'pending') {
549
574
  timeoutRef.current.timeout = setTimeout(() => {
550
- nowRef.current = 0;
575
+ clear();
551
576
  setState(undefined);
552
- }, asyncBehaviorTimeout !== null && asyncBehaviorTimeout !== void 0 ? asyncBehaviorTimeout : 30000);
577
+ onTimeout === null || onTimeout === void 0 ? void 0 : onTimeout();
578
+ }, asyncSubmitTimeout !== null && asyncSubmitTimeout !== void 0 ? asyncSubmitTimeout : 30000);
553
579
  }
554
580
  return clear;
555
- }, [clear, minimumAsyncBehaviorTime, formState, setState, waitFor, asyncBehaviorTimeout]);
581
+ }, [clear, minimumAsyncBehaviorTime, formState, setState, waitFor, asyncSubmitTimeout, onTimeout]);
556
582
  return {
557
583
  bufferedFormState: stateRef.current
558
584
  };