@dnb/eufemia 10.56.0 → 10.57.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +41 -0
- package/assets/flags/1x1/ad.svg +148 -0
- package/assets/flags/1x1/ae.svg +6 -0
- package/assets/flags/1x1/af.svg +81 -0
- package/assets/flags/1x1/ag.svg +14 -0
- package/assets/flags/1x1/ai.svg +29 -0
- package/assets/flags/1x1/al.svg +5 -0
- package/assets/flags/1x1/am.svg +5 -0
- package/assets/flags/1x1/ao.svg +13 -0
- package/assets/flags/1x1/aq.svg +5 -0
- package/assets/flags/1x1/ar.svg +32 -0
- package/assets/flags/1x1/arab.svg +109 -0
- package/assets/flags/1x1/as.svg +73 -0
- package/assets/flags/1x1/at.svg +4 -0
- package/assets/flags/1x1/au.svg +8 -0
- package/assets/flags/1x1/aw.svg +186 -0
- package/assets/flags/1x1/ax.svg +18 -0
- package/assets/flags/1x1/az.svg +8 -0
- package/assets/flags/1x1/ba.svg +12 -0
- package/assets/flags/1x1/bb.svg +6 -0
- package/assets/flags/1x1/bd.svg +4 -0
- package/assets/flags/1x1/be.svg +7 -0
- package/assets/flags/1x1/bf.svg +7 -0
- package/assets/flags/1x1/bg.svg +5 -0
- package/assets/flags/1x1/bh.svg +4 -0
- package/assets/flags/1x1/bi.svg +15 -0
- package/assets/flags/1x1/bj.svg +14 -0
- package/assets/flags/1x1/bl.svg +7 -0
- package/assets/flags/1x1/bm.svg +97 -0
- package/assets/flags/1x1/bn.svg +36 -0
- package/assets/flags/1x1/bo.svg +674 -0
- package/assets/flags/1x1/bq.svg +5 -0
- package/assets/flags/1x1/br.svg +45 -0
- package/assets/flags/1x1/bs.svg +13 -0
- package/assets/flags/1x1/bt.svg +89 -0
- package/assets/flags/1x1/bv.svg +13 -0
- package/assets/flags/1x1/bw.svg +7 -0
- package/assets/flags/1x1/by.svg +18 -0
- package/assets/flags/1x1/bz.svg +145 -0
- package/assets/flags/1x1/ca.svg +4 -0
- package/assets/flags/1x1/cc.svg +19 -0
- package/assets/flags/1x1/cd.svg +12 -0
- package/assets/flags/1x1/cefta.svg +13 -0
- package/assets/flags/1x1/cf.svg +15 -0
- package/assets/flags/1x1/cg.svg +12 -0
- package/assets/flags/1x1/ch.svg +9 -0
- package/assets/flags/1x1/ci.svg +7 -0
- package/assets/flags/1x1/ck.svg +9 -0
- package/assets/flags/1x1/cl.svg +13 -0
- package/assets/flags/1x1/cm.svg +15 -0
- package/assets/flags/1x1/cn.svg +11 -0
- package/assets/flags/1x1/co.svg +7 -0
- package/assets/flags/1x1/cp.svg +7 -0
- package/assets/flags/1x1/cr.svg +7 -0
- package/assets/flags/1x1/cu.svg +13 -0
- package/assets/flags/1x1/cv.svg +13 -0
- package/assets/flags/1x1/cw.svg +14 -0
- package/assets/flags/1x1/cx.svg +15 -0
- package/assets/flags/1x1/cy.svg +6 -0
- package/assets/flags/1x1/cz.svg +5 -0
- package/assets/flags/1x1/de.svg +5 -0
- package/assets/flags/1x1/dg.svg +130 -0
- package/assets/flags/1x1/dj.svg +13 -0
- package/assets/flags/1x1/dk.svg +5 -0
- package/assets/flags/1x1/dm.svg +152 -0
- package/assets/flags/1x1/do.svg +123 -0
- package/assets/flags/1x1/dz.svg +5 -0
- package/assets/flags/1x1/eac.svg +48 -0
- package/assets/flags/1x1/ec.svg +138 -0
- package/assets/flags/1x1/ee.svg +5 -0
- package/assets/flags/1x1/eg.svg +38 -0
- package/assets/flags/1x1/eh.svg +11 -0
- package/assets/flags/1x1/er.svg +13 -0
- package/assets/flags/1x1/es-ct.svg +4 -0
- package/assets/flags/1x1/es-ga.svg +187 -0
- package/assets/flags/1x1/es-pv.svg +5 -0
- package/assets/flags/1x1/es.svg +547 -0
- package/assets/flags/1x1/et.svg +14 -0
- package/assets/flags/1x1/eu.svg +28 -0
- package/assets/flags/1x1/fi.svg +5 -0
- package/assets/flags/1x1/fj.svg +123 -0
- package/assets/flags/1x1/fk.svg +89 -0
- package/assets/flags/1x1/fm.svg +11 -0
- package/assets/flags/1x1/fo.svg +12 -0
- package/assets/flags/1x1/fr.svg +5 -0
- package/assets/flags/1x1/ga.svg +7 -0
- package/assets/flags/1x1/gb-eng.svg +5 -0
- package/assets/flags/1x1/gb-nir.svg +131 -0
- package/assets/flags/1x1/gb-sct.svg +4 -0
- package/assets/flags/1x1/gb-wls.svg +9 -0
- package/assets/flags/1x1/gb.svg +7 -0
- package/assets/flags/1x1/gd.svg +27 -0
- package/assets/flags/1x1/ge.svg +6 -0
- package/assets/flags/1x1/gf.svg +5 -0
- package/assets/flags/1x1/gg.svg +9 -0
- package/assets/flags/1x1/gh.svg +6 -0
- package/assets/flags/1x1/gi.svg +32 -0
- package/assets/flags/1x1/gl.svg +4 -0
- package/assets/flags/1x1/gm.svg +9 -0
- package/assets/flags/1x1/gn.svg +7 -0
- package/assets/flags/1x1/gp.svg +5 -0
- package/assets/flags/1x1/gq.svg +23 -0
- package/assets/flags/1x1/gr.svg +16 -0
- package/assets/flags/1x1/gs.svg +132 -0
- package/assets/flags/1x1/gt.svg +204 -0
- package/assets/flags/1x1/gu.svg +23 -0
- package/assets/flags/1x1/gw.svg +15 -0
- package/assets/flags/1x1/gy.svg +9 -0
- package/assets/flags/1x1/hk.svg +8 -0
- package/assets/flags/1x1/hm.svg +8 -0
- package/assets/flags/1x1/hn.svg +18 -0
- package/assets/flags/1x1/hr.svg +56 -0
- package/assets/flags/1x1/ht.svg +116 -0
- package/assets/flags/1x1/hu.svg +7 -0
- package/assets/flags/1x1/ic.svg +7 -0
- package/assets/flags/1x1/id.svg +4 -0
- package/assets/flags/1x1/ie.svg +7 -0
- package/assets/flags/1x1/il.svg +14 -0
- package/assets/flags/1x1/im.svg +36 -0
- package/assets/flags/1x1/in.svg +25 -0
- package/assets/flags/1x1/io.svg +130 -0
- package/assets/flags/1x1/iq.svg +10 -0
- package/assets/flags/1x1/ir.svg +219 -0
- package/assets/flags/1x1/is.svg +12 -0
- package/assets/flags/1x1/it.svg +7 -0
- package/assets/flags/1x1/je.svg +62 -0
- package/assets/flags/1x1/jm.svg +8 -0
- package/assets/flags/1x1/jo.svg +16 -0
- package/assets/flags/1x1/jp.svg +11 -0
- package/assets/flags/1x1/ke.svg +23 -0
- package/assets/flags/1x1/kg.svg +15 -0
- package/assets/flags/1x1/kh.svg +61 -0
- package/assets/flags/1x1/ki.svg +36 -0
- package/assets/flags/1x1/km.svg +16 -0
- package/assets/flags/1x1/kn.svg +14 -0
- package/assets/flags/1x1/kp.svg +15 -0
- package/assets/flags/1x1/kr.svg +17 -0
- package/assets/flags/1x1/kw.svg +13 -0
- package/assets/flags/1x1/ky.svg +103 -0
- package/assets/flags/1x1/kz.svg +36 -0
- package/assets/flags/1x1/la.svg +12 -0
- package/assets/flags/1x1/lb.svg +15 -0
- package/assets/flags/1x1/lc.svg +8 -0
- package/assets/flags/1x1/li.svg +43 -0
- package/assets/flags/1x1/lk.svg +22 -0
- package/assets/flags/1x1/lr.svg +14 -0
- package/assets/flags/1x1/ls.svg +8 -0
- package/assets/flags/1x1/lt.svg +7 -0
- package/assets/flags/1x1/lu.svg +5 -0
- package/assets/flags/1x1/lv.svg +6 -0
- package/assets/flags/1x1/ly.svg +13 -0
- package/assets/flags/1x1/ma.svg +4 -0
- package/assets/flags/1x1/mc.svg +6 -0
- package/assets/flags/1x1/md.svg +71 -0
- package/assets/flags/1x1/me.svg +118 -0
- package/assets/flags/1x1/mf.svg +5 -0
- package/assets/flags/1x1/mg.svg +7 -0
- package/assets/flags/1x1/mh.svg +8 -0
- package/assets/flags/1x1/mk.svg +5 -0
- package/assets/flags/1x1/ml.svg +7 -0
- package/assets/flags/1x1/mm.svg +10 -0
- package/assets/flags/1x1/mn.svg +14 -0
- package/assets/flags/1x1/mo.svg +9 -0
- package/assets/flags/1x1/mp.svg +86 -0
- package/assets/flags/1x1/mq.svg +5 -0
- package/assets/flags/1x1/mr.svg +6 -0
- package/assets/flags/1x1/ms.svg +25 -0
- package/assets/flags/1x1/mt.svg +56 -0
- package/assets/flags/1x1/mu.svg +8 -0
- package/assets/flags/1x1/mv.svg +6 -0
- package/assets/flags/1x1/mw.svg +15 -0
- package/assets/flags/1x1/mx.svg +377 -0
- package/assets/flags/1x1/my.svg +18 -0
- package/assets/flags/1x1/mz.svg +21 -0
- package/assets/flags/1x1/na.svg +16 -0
- package/assets/flags/1x1/nc.svg +12 -0
- package/assets/flags/1x1/ne.svg +6 -0
- package/assets/flags/1x1/nf.svg +11 -0
- package/assets/flags/1x1/ng.svg +6 -0
- package/assets/flags/1x1/ni.svg +129 -0
- package/assets/flags/1x1/nl.svg +5 -0
- package/assets/flags/1x1/no.svg +7 -0
- package/assets/flags/1x1/np.svg +18 -0
- package/assets/flags/1x1/nr.svg +12 -0
- package/assets/flags/1x1/nu.svg +10 -0
- package/assets/flags/1x1/nz.svg +36 -0
- package/assets/flags/1x1/om.svg +115 -0
- package/assets/flags/1x1/pa.svg +13 -0
- package/assets/flags/1x1/pc.svg +33 -0
- package/assets/flags/1x1/pe.svg +4 -0
- package/assets/flags/1x1/pf.svg +18 -0
- package/assets/flags/1x1/pg.svg +16 -0
- package/assets/flags/1x1/ph.svg +6 -0
- package/assets/flags/1x1/pk.svg +15 -0
- package/assets/flags/1x1/pl.svg +6 -0
- package/assets/flags/1x1/pm.svg +5 -0
- package/assets/flags/1x1/pn.svg +53 -0
- package/assets/flags/1x1/pr.svg +13 -0
- package/assets/flags/1x1/ps.svg +15 -0
- package/assets/flags/1x1/pt.svg +57 -0
- package/assets/flags/1x1/pw.svg +11 -0
- package/assets/flags/1x1/py.svg +156 -0
- package/assets/flags/1x1/qa.svg +4 -0
- package/assets/flags/1x1/re.svg +7 -0
- package/assets/flags/1x1/ro.svg +7 -0
- package/assets/flags/1x1/rs.svg +296 -0
- package/assets/flags/1x1/ru.svg +5 -0
- package/assets/flags/1x1/rw.svg +13 -0
- package/assets/flags/1x1/sa.svg +25 -0
- package/assets/flags/1x1/sb.svg +13 -0
- package/assets/flags/1x1/sc.svg +7 -0
- package/assets/flags/1x1/sd.svg +13 -0
- package/assets/flags/1x1/se.svg +4 -0
- package/assets/flags/1x1/sg.svg +13 -0
- package/assets/flags/1x1/sh-ac.svg +690 -0
- package/assets/flags/1x1/sh-hl.svg +164 -0
- package/assets/flags/1x1/sh-ta.svg +76 -0
- package/assets/flags/1x1/sh.svg +7 -0
- package/assets/flags/1x1/si.svg +18 -0
- package/assets/flags/1x1/sj.svg +7 -0
- package/assets/flags/1x1/sk.svg +9 -0
- package/assets/flags/1x1/sl.svg +12 -0
- package/assets/flags/1x1/sm.svg +73 -0
- package/assets/flags/1x1/sn.svg +8 -0
- package/assets/flags/1x1/so.svg +11 -0
- package/assets/flags/1x1/sr.svg +6 -0
- package/assets/flags/1x1/ss.svg +8 -0
- package/assets/flags/1x1/st.svg +16 -0
- package/assets/flags/1x1/sv.svg +594 -0
- package/assets/flags/1x1/sx.svg +56 -0
- package/assets/flags/1x1/sy.svg +6 -0
- package/assets/flags/1x1/sz.svg +34 -0
- package/assets/flags/1x1/tc.svg +50 -0
- package/assets/flags/1x1/td.svg +7 -0
- package/assets/flags/1x1/tf.svg +15 -0
- package/assets/flags/1x1/tg.svg +14 -0
- package/assets/flags/1x1/th.svg +7 -0
- package/assets/flags/1x1/tj.svg +26 -0
- package/assets/flags/1x1/tk.svg +5 -0
- package/assets/flags/1x1/tl.svg +13 -0
- package/assets/flags/1x1/tm.svg +205 -0
- package/assets/flags/1x1/tn.svg +4 -0
- package/assets/flags/1x1/to.svg +10 -0
- package/assets/flags/1x1/tr.svg +8 -0
- package/assets/flags/1x1/tt.svg +7 -0
- package/assets/flags/1x1/tv.svg +9 -0
- package/assets/flags/1x1/tw.svg +32 -0
- package/assets/flags/1x1/tz.svg +15 -0
- package/assets/flags/1x1/ua.svg +6 -0
- package/assets/flags/1x1/ug.svg +30 -0
- package/assets/flags/1x1/um.svg +9 -0
- package/assets/flags/1x1/un.svg +16 -0
- package/assets/flags/1x1/us.svg +9 -0
- package/assets/flags/1x1/uy.svg +28 -0
- package/assets/flags/1x1/uz.svg +30 -0
- package/assets/flags/1x1/va.svg +190 -0
- package/assets/flags/1x1/vc.svg +8 -0
- package/assets/flags/1x1/ve.svg +26 -0
- package/assets/flags/1x1/vg.svg +59 -0
- package/assets/flags/1x1/vi.svg +28 -0
- package/assets/flags/1x1/vn.svg +11 -0
- package/assets/flags/1x1/vu.svg +21 -0
- package/assets/flags/1x1/wf.svg +5 -0
- package/assets/flags/1x1/ws.svg +7 -0
- package/assets/flags/1x1/xk.svg +5 -0
- package/assets/flags/1x1/xx.svg +4 -0
- package/assets/flags/1x1/ye.svg +7 -0
- package/assets/flags/1x1/yt.svg +5 -0
- package/assets/flags/1x1/za.svg +17 -0
- package/assets/flags/1x1/zm.svg +27 -0
- package/assets/flags/1x1/zw.svg +21 -0
- package/assets/flags/LICENSE +23 -0
- package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/autocomplete/AutocompleteDocs.js +1 -1
- package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -1
- package/cjs/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.css +2 -2
- package/cjs/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.min.css +1 -1
- package/cjs/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.scss +2 -2
- package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +2 -2
- package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
- package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +2 -2
- package/cjs/components/card/Card.d.ts +2 -1
- package/cjs/components/card/Card.js +3 -1
- package/cjs/components/card/Card.js.map +1 -1
- package/cjs/components/card/CardDocs.js +5 -0
- package/cjs/components/card/CardDocs.js.map +1 -1
- package/cjs/components/card/style/dnb-card.css +17 -10
- package/cjs/components/card/style/dnb-card.min.css +1 -1
- package/cjs/components/card/style/dnb-card.scss +26 -7
- package/cjs/components/country-flag/style/dnb-country-flag-icons.css +280 -272
- package/cjs/components/country-flag/style/dnb-country-flag-icons.min.css +1 -1
- package/cjs/components/country-flag/style/dnb-country-flag-icons.scss +280 -272
- package/cjs/components/dropdown/Dropdown.js.map +1 -1
- package/cjs/components/help-button/HelpButtonInline.d.ts +3 -0
- package/cjs/components/help-button/HelpButtonInline.js +8 -4
- package/cjs/components/help-button/HelpButtonInline.js.map +1 -1
- package/cjs/components/help-button/style/dnb-help-button-inline.css +6 -5
- package/cjs/components/help-button/style/dnb-help-button-inline.min.css +1 -1
- package/cjs/components/help-button/style/dnb-help-button-inline.scss +6 -11
- package/cjs/components/help-button/style/dnb-help-button.css +6 -5
- package/cjs/components/help-button/style/dnb-help-button.min.css +1 -1
- package/cjs/components/icon/Icon.js +5 -0
- package/cjs/components/icon/Icon.js.map +1 -1
- package/cjs/components/modal/parts/ModalHeader.d.ts +2 -1
- package/cjs/components/modal/parts/ModalHeader.js.map +1 -1
- package/cjs/components/section/Section.d.ts +5 -0
- package/cjs/components/section/Section.js +4 -3
- package/cjs/components/section/Section.js.map +1 -1
- package/cjs/components/section/SectionDocs.d.ts +2 -0
- package/cjs/components/section/SectionDocs.js +65 -0
- package/cjs/components/section/SectionDocs.js.map +1 -0
- package/cjs/components/section/style/dnb-section.css +12 -0
- package/cjs/components/section/style/dnb-section.min.css +3 -3
- package/cjs/components/section/style/dnb-section.scss +22 -0
- package/cjs/core/jest/jestSetupScreenshots.css +11 -1
- package/cjs/elements/lib.d.ts +10 -1
- package/cjs/elements/span/Span.d.ts +13 -4
- package/cjs/elements/span/Span.js +3 -3
- package/cjs/elements/span/Span.js.map +1 -1
- package/cjs/elements/span/SpanDocs.d.ts +2 -0
- package/cjs/elements/span/SpanDocs.js +15 -0
- package/cjs/elements/span/SpanDocs.js.map +1 -0
- package/cjs/elements/typography/Ingress.js +1 -1
- package/cjs/elements/typography/Ingress.js.map +1 -1
- package/cjs/elements/typography/P.d.ts +10 -16
- package/cjs/elements/typography/P.js +54 -24
- package/cjs/elements/typography/P.js.map +1 -1
- package/cjs/elements/typography/PDocs.js +14 -23
- package/cjs/elements/typography/PDocs.js.map +1 -1
- package/cjs/elements/typography/Typography.d.ts +55 -0
- package/cjs/elements/typography/Typography.js +37 -0
- package/cjs/elements/typography/Typography.js.map +1 -0
- package/cjs/elements/typography/TypographyDocs.d.ts +2 -0
- package/cjs/elements/typography/TypographyDocs.js +55 -0
- package/cjs/elements/typography/TypographyDocs.js.map +1 -0
- package/cjs/elements/typography/style/_dnb-t.scss +93 -0
- package/cjs/elements/typography/style/dnb-typography.scss +2 -1
- package/cjs/elements/typography/style/themes/dnb-typography-theme-sbanken.scss +0 -1
- package/cjs/elements/typography/style/typography-mixins.scss +25 -15
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +2 -1
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +3 -2
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/Option/Option.js +1 -1
- package/cjs/extensions/forms/Field/Option/Option.js.map +1 -1
- package/cjs/extensions/forms/Field/Option/OptionDocs.js +9 -4
- package/cjs/extensions/forms/Field/Option/OptionDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +2 -1
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +2 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +8 -10
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +1 -0
- package/cjs/extensions/forms/Field/Selection/Selection.d.ts +12 -2
- package/cjs/extensions/forms/Field/Selection/Selection.js +9 -5
- package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/cjs/extensions/forms/Field/Upload/Upload.d.ts +1 -1
- package/cjs/extensions/forms/Field/Upload/Upload.js +17 -8
- package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/cjs/extensions/forms/Field/Upload/UploadDocs.js +7 -1
- package/cjs/extensions/forms/Field/Upload/UploadDocs.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +15 -6
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +3 -2
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +16 -6
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +32 -20
- package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +4 -6
- package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
- package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +17 -9
- package/cjs/extensions/forms/Form/Card/Card.d.ts +6 -0
- package/cjs/extensions/forms/Form/Card/Card.js +20 -0
- package/cjs/extensions/forms/Form/Card/Card.js.map +1 -0
- package/cjs/extensions/forms/Form/Card/CardDocs.d.ts +2 -0
- package/cjs/extensions/forms/Form/Card/CardDocs.js +27 -0
- package/cjs/extensions/forms/Form/Card/CardDocs.js.map +1 -0
- package/cjs/extensions/forms/Form/Card/index.d.ts +2 -0
- package/cjs/extensions/forms/Form/Card/index.js +27 -0
- package/cjs/extensions/forms/Form/Card/index.js.map +1 -0
- package/cjs/extensions/forms/Form/index.d.ts +1 -0
- package/cjs/extensions/forms/Form/index.js +7 -0
- package/cjs/extensions/forms/Form/index.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js +1 -1
- package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/types.d.ts +1 -1
- package/cjs/extensions/forms/Iterate/Array/types.js.map +1 -1
- package/cjs/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
- package/cjs/extensions/forms/Value/SummaryList/SummaryList.d.ts +1 -1
- package/cjs/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
- package/cjs/extensions/forms/Value/ValueDocs.js +5 -0
- package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -1
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js +4 -2
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css +2 -2
- package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
- package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -1
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +2 -7
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js +1 -1
- package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.js +50 -36
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +22 -14
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +4 -0
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/extensions/payment-card/style/dnb-payment-card.css +1 -1
- package/cjs/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
- package/cjs/fragments/drawer-list/DrawerList.d.ts +22 -21
- package/cjs/fragments/drawer-list/DrawerList.js +14 -5
- package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListDocs.d.ts +1 -0
- package/cjs/fragments/drawer-list/DrawerListDocs.js +39 -6
- package/cjs/fragments/drawer-list/DrawerListDocs.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListHelpers.js +13 -6
- package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListProvider.js +3 -0
- package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
- package/cjs/fragments/drawer-list/style/dnb-drawer-list.scss +11 -0
- package/cjs/fragments/drawer-list/style/themes/dnb-drawer-list-theme-sbanken.scss +26 -19
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/VisibilityByTheme.d.ts +5 -2
- package/cjs/shared/VisibilityByTheme.js +12 -0
- package/cjs/shared/VisibilityByTheme.js.map +1 -1
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/dnb-ui-basis.css +1 -1
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +1 -1
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-components.css +352 -306
- package/cjs/style/dnb-ui-components.min.css +6 -4
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-elements.css +91 -6
- package/cjs/style/dnb-ui-elements.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +23 -15
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +22 -14
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/dnb-ui-fragments.css +9 -0
- package/cjs/style/dnb-ui-fragments.min.css +3 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +92 -6
- package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +376 -322
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +8 -6
- package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +91 -6
- package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +23 -15
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +22 -14
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/properties.d.ts +2 -1
- package/cjs/style/themes/theme-eiendom/properties.js +2 -1
- package/cjs/style/themes/theme-eiendom/properties.js.map +1 -1
- package/cjs/style/themes/theme-sbanken/fonts.scss +7 -3
- package/cjs/style/themes/theme-sbanken/properties.d.ts +2 -1
- package/cjs/style/themes/theme-sbanken/properties.js +2 -1
- package/cjs/style/themes/theme-sbanken/properties.js.map +1 -1
- package/cjs/style/themes/theme-sbanken/properties.scss +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +101 -10
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +396 -339
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +9 -7
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +91 -7
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +23 -15
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +22 -14
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/theme-mapping.scss +1 -0
- package/cjs/style/themes/theme-ui/properties.d.ts +2 -1
- package/cjs/style/themes/theme-ui/properties.js +2 -1
- package/cjs/style/themes/theme-ui/properties.js.map +1 -1
- package/cjs/style/themes/theme-ui/properties.scss +1 -0
- package/cjs/style/themes/theme-ui/ui-theme-basis.css +92 -6
- package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +376 -322
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +8 -6
- package/cjs/style/themes/theme-ui/ui-theme-elements.css +91 -6
- package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +23 -15
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +22 -14
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-properties.css +1 -0
- package/cjs/style/themes/theme-ui/ui-theme-properties.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-tags.css +9 -5
- package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/components/autocomplete/Autocomplete.js.map +1 -1
- package/components/autocomplete/AutocompleteDocs.js +1 -1
- package/components/autocomplete/AutocompleteDocs.js.map +1 -1
- package/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.css +2 -2
- package/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.min.css +1 -1
- package/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.scss +2 -2
- package/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +2 -2
- package/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
- package/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +2 -2
- package/components/card/Card.d.ts +2 -1
- package/components/card/Card.js +3 -1
- package/components/card/Card.js.map +1 -1
- package/components/card/CardDocs.js +5 -0
- package/components/card/CardDocs.js.map +1 -1
- package/components/card/style/dnb-card.css +17 -10
- package/components/card/style/dnb-card.min.css +1 -1
- package/components/card/style/dnb-card.scss +26 -7
- package/components/country-flag/style/dnb-country-flag-icons.css +280 -272
- package/components/country-flag/style/dnb-country-flag-icons.min.css +1 -1
- package/components/country-flag/style/dnb-country-flag-icons.scss +280 -272
- package/components/dropdown/Dropdown.js.map +1 -1
- package/components/help-button/HelpButtonInline.d.ts +3 -0
- package/components/help-button/HelpButtonInline.js +8 -4
- package/components/help-button/HelpButtonInline.js.map +1 -1
- package/components/help-button/style/dnb-help-button-inline.css +6 -5
- package/components/help-button/style/dnb-help-button-inline.min.css +1 -1
- package/components/help-button/style/dnb-help-button-inline.scss +6 -11
- package/components/help-button/style/dnb-help-button.css +6 -5
- package/components/help-button/style/dnb-help-button.min.css +1 -1
- package/components/icon/Icon.js +5 -0
- package/components/icon/Icon.js.map +1 -1
- package/components/modal/parts/ModalHeader.d.ts +2 -1
- package/components/modal/parts/ModalHeader.js.map +1 -1
- package/components/section/Section.d.ts +5 -0
- package/components/section/Section.js +4 -3
- package/components/section/Section.js.map +1 -1
- package/components/section/SectionDocs.d.ts +2 -0
- package/components/section/SectionDocs.js +58 -0
- package/components/section/SectionDocs.js.map +1 -0
- package/components/section/style/dnb-section.css +12 -0
- package/components/section/style/dnb-section.min.css +3 -3
- package/components/section/style/dnb-section.scss +22 -0
- package/core/jest/jestSetupScreenshots.css +11 -1
- package/elements/lib.d.ts +10 -1
- package/elements/span/Span.d.ts +13 -4
- package/elements/span/Span.js +3 -3
- package/elements/span/Span.js.map +1 -1
- package/elements/span/SpanDocs.d.ts +2 -0
- package/elements/span/SpanDocs.js +6 -0
- package/elements/span/SpanDocs.js.map +1 -0
- package/elements/typography/Ingress.js +1 -1
- package/elements/typography/Ingress.js.map +1 -1
- package/elements/typography/P.d.ts +10 -16
- package/elements/typography/P.js +52 -24
- package/elements/typography/P.js.map +1 -1
- package/elements/typography/PDocs.js +12 -23
- package/elements/typography/PDocs.js.map +1 -1
- package/elements/typography/Typography.d.ts +55 -0
- package/elements/typography/Typography.js +28 -0
- package/elements/typography/Typography.js.map +1 -0
- package/elements/typography/TypographyDocs.d.ts +2 -0
- package/elements/typography/TypographyDocs.js +48 -0
- package/elements/typography/TypographyDocs.js.map +1 -0
- package/elements/typography/style/_dnb-t.scss +93 -0
- package/elements/typography/style/dnb-typography.scss +2 -1
- package/elements/typography/style/themes/dnb-typography-theme-sbanken.scss +0 -1
- package/elements/typography/style/typography-mixins.scss +25 -15
- package/es/components/autocomplete/Autocomplete.js.map +1 -1
- package/es/components/autocomplete/AutocompleteDocs.js +1 -1
- package/es/components/autocomplete/AutocompleteDocs.js.map +1 -1
- package/es/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.css +2 -2
- package/es/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.min.css +1 -1
- package/es/components/autocomplete/style/themes/dnb-autocomplete-theme-ui.scss +2 -2
- package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +2 -2
- package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
- package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +2 -2
- package/es/components/card/Card.d.ts +2 -1
- package/es/components/card/Card.js +3 -1
- package/es/components/card/Card.js.map +1 -1
- package/es/components/card/CardDocs.js +5 -0
- package/es/components/card/CardDocs.js.map +1 -1
- package/es/components/card/style/dnb-card.css +17 -10
- package/es/components/card/style/dnb-card.min.css +1 -1
- package/es/components/card/style/dnb-card.scss +26 -7
- package/es/components/country-flag/style/dnb-country-flag-icons.css +280 -272
- package/es/components/country-flag/style/dnb-country-flag-icons.min.css +1 -1
- package/es/components/country-flag/style/dnb-country-flag-icons.scss +280 -272
- package/es/components/dropdown/Dropdown.js.map +1 -1
- package/es/components/help-button/HelpButtonInline.d.ts +3 -0
- package/es/components/help-button/HelpButtonInline.js +8 -4
- package/es/components/help-button/HelpButtonInline.js.map +1 -1
- package/es/components/help-button/style/dnb-help-button-inline.css +6 -5
- package/es/components/help-button/style/dnb-help-button-inline.min.css +1 -1
- package/es/components/help-button/style/dnb-help-button-inline.scss +6 -11
- package/es/components/help-button/style/dnb-help-button.css +6 -5
- package/es/components/help-button/style/dnb-help-button.min.css +1 -1
- package/es/components/icon/Icon.js +5 -0
- package/es/components/icon/Icon.js.map +1 -1
- package/es/components/modal/parts/ModalHeader.d.ts +2 -1
- package/es/components/modal/parts/ModalHeader.js.map +1 -1
- package/es/components/section/Section.d.ts +5 -0
- package/es/components/section/Section.js +4 -3
- package/es/components/section/Section.js.map +1 -1
- package/es/components/section/SectionDocs.d.ts +2 -0
- package/es/components/section/SectionDocs.js +58 -0
- package/es/components/section/SectionDocs.js.map +1 -0
- package/es/components/section/style/dnb-section.css +12 -0
- package/es/components/section/style/dnb-section.min.css +3 -3
- package/es/components/section/style/dnb-section.scss +22 -0
- package/es/core/jest/jestSetupScreenshots.css +11 -1
- package/es/elements/lib.d.ts +10 -1
- package/es/elements/span/Span.d.ts +13 -4
- package/es/elements/span/Span.js +3 -3
- package/es/elements/span/Span.js.map +1 -1
- package/es/elements/span/SpanDocs.d.ts +2 -0
- package/es/elements/span/SpanDocs.js +6 -0
- package/es/elements/span/SpanDocs.js.map +1 -0
- package/es/elements/typography/Ingress.js +1 -1
- package/es/elements/typography/Ingress.js.map +1 -1
- package/es/elements/typography/P.d.ts +10 -16
- package/es/elements/typography/P.js +52 -24
- package/es/elements/typography/P.js.map +1 -1
- package/es/elements/typography/PDocs.js +12 -23
- package/es/elements/typography/PDocs.js.map +1 -1
- package/es/elements/typography/Typography.d.ts +55 -0
- package/es/elements/typography/Typography.js +28 -0
- package/es/elements/typography/Typography.js.map +1 -0
- package/es/elements/typography/TypographyDocs.d.ts +2 -0
- package/es/elements/typography/TypographyDocs.js +48 -0
- package/es/elements/typography/TypographyDocs.js.map +1 -0
- package/es/elements/typography/style/_dnb-t.scss +93 -0
- package/es/elements/typography/style/dnb-typography.scss +2 -1
- package/es/elements/typography/style/themes/dnb-typography-theme-sbanken.scss +0 -1
- package/es/elements/typography/style/typography-mixins.scss +25 -15
- package/es/extensions/forms/DataContext/Provider/Provider.js +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +2 -1
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +3 -2
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/es/extensions/forms/Field/Option/Option.js +1 -1
- package/es/extensions/forms/Field/Option/Option.js.map +1 -1
- package/es/extensions/forms/Field/Option/OptionDocs.js +9 -4
- package/es/extensions/forms/Field/Option/OptionDocs.js.map +1 -1
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +2 -1
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +2 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +9 -11
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +1 -0
- package/es/extensions/forms/Field/Selection/Selection.d.ts +12 -2
- package/es/extensions/forms/Field/Selection/Selection.js +9 -5
- package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/es/extensions/forms/Field/Upload/Upload.d.ts +1 -1
- package/es/extensions/forms/Field/Upload/Upload.js +16 -8
- package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/es/extensions/forms/Field/Upload/UploadDocs.js +7 -1
- package/es/extensions/forms/Field/Upload/UploadDocs.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js +15 -6
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +3 -2
- package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +16 -6
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +32 -20
- package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +4 -6
- package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
- package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +17 -9
- package/es/extensions/forms/Form/Card/Card.d.ts +6 -0
- package/es/extensions/forms/Form/Card/Card.js +12 -0
- package/es/extensions/forms/Form/Card/Card.js.map +1 -0
- package/es/extensions/forms/Form/Card/CardDocs.d.ts +2 -0
- package/es/extensions/forms/Form/Card/CardDocs.js +18 -0
- package/es/extensions/forms/Form/Card/CardDocs.js.map +1 -0
- package/es/extensions/forms/Form/Card/index.d.ts +2 -0
- package/es/extensions/forms/Form/Card/index.js +3 -0
- package/es/extensions/forms/Form/Card/index.js.map +1 -0
- package/es/extensions/forms/Form/index.d.ts +1 -0
- package/es/extensions/forms/Form/index.js +1 -0
- package/es/extensions/forms/Form/index.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/ArrayDocs.js +1 -1
- package/es/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/types.d.ts +1 -1
- package/es/extensions/forms/Iterate/Array/types.js.map +1 -1
- package/es/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
- package/es/extensions/forms/Value/SummaryList/SummaryList.d.ts +1 -1
- package/es/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
- package/es/extensions/forms/Value/ValueDocs.js +5 -0
- package/es/extensions/forms/Value/ValueDocs.js.map +1 -1
- package/es/extensions/forms/ValueBlock/ValueBlock.js +4 -2
- package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/es/extensions/forms/Wizard/style/dnb-wizard-layout.css +2 -2
- package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
- package/es/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -1
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +2 -7
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/es/extensions/forms/hooks/DataValueWritePropsDocs.js +1 -1
- package/es/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.js +50 -36
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +22 -14
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +4 -0
- package/es/extensions/forms/types.js.map +1 -1
- package/es/extensions/payment-card/style/dnb-payment-card.css +1 -1
- package/es/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
- package/es/fragments/drawer-list/DrawerList.d.ts +22 -21
- package/es/fragments/drawer-list/DrawerList.js +14 -5
- package/es/fragments/drawer-list/DrawerList.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListDocs.d.ts +1 -0
- package/es/fragments/drawer-list/DrawerListDocs.js +37 -5
- package/es/fragments/drawer-list/DrawerListDocs.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListHelpers.js +13 -6
- package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListProvider.js +3 -0
- package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
- package/es/fragments/drawer-list/style/dnb-drawer-list.scss +11 -0
- package/es/fragments/drawer-list/style/themes/dnb-drawer-list-theme-sbanken.scss +26 -19
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/VisibilityByTheme.d.ts +5 -2
- package/es/shared/VisibilityByTheme.js +12 -0
- package/es/shared/VisibilityByTheme.js.map +1 -1
- package/es/style/core/scopes.scss +1 -1
- package/es/style/dnb-ui-basis.css +1 -1
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +1 -1
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-components.css +352 -306
- package/es/style/dnb-ui-components.min.css +6 -4
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-elements.css +91 -6
- package/es/style/dnb-ui-elements.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +23 -15
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +22 -14
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/dnb-ui-fragments.css +9 -0
- package/es/style/dnb-ui-fragments.min.css +3 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +92 -6
- package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +376 -322
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +8 -6
- package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +91 -6
- package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +23 -15
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +22 -14
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/properties.d.ts +2 -1
- package/es/style/themes/theme-eiendom/properties.js +2 -1
- package/es/style/themes/theme-eiendom/properties.js.map +1 -1
- package/es/style/themes/theme-sbanken/fonts.scss +7 -3
- package/es/style/themes/theme-sbanken/properties.d.ts +2 -1
- package/es/style/themes/theme-sbanken/properties.js +2 -1
- package/es/style/themes/theme-sbanken/properties.js.map +1 -1
- package/es/style/themes/theme-sbanken/properties.scss +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +101 -10
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +396 -339
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +9 -7
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +91 -7
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +23 -15
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +22 -14
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-sbanken/theme-mapping.scss +1 -0
- package/es/style/themes/theme-ui/properties.d.ts +2 -1
- package/es/style/themes/theme-ui/properties.js +2 -1
- package/es/style/themes/theme-ui/properties.js.map +1 -1
- package/es/style/themes/theme-ui/properties.scss +1 -0
- package/es/style/themes/theme-ui/ui-theme-basis.css +92 -6
- package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +376 -322
- package/es/style/themes/theme-ui/ui-theme-components.min.css +8 -6
- package/es/style/themes/theme-ui/ui-theme-elements.css +91 -6
- package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-extensions.css +23 -15
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +22 -14
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-properties.css +1 -0
- package/es/style/themes/theme-ui/ui-theme-properties.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-tags.css +9 -5
- package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +3 -3
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Provider/Provider.js +1 -1
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +2 -1
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +3 -2
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/extensions/forms/Field/Option/Option.js +1 -1
- package/extensions/forms/Field/Option/Option.js.map +1 -1
- package/extensions/forms/Field/Option/OptionDocs.js +9 -4
- package/extensions/forms/Field/Option/OptionDocs.js.map +1 -1
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +2 -1
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +2 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +9 -11
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/extensions/forms/Field/Provider/useFieldProvider.d.ts +1 -0
- package/extensions/forms/Field/Selection/Selection.d.ts +12 -2
- package/extensions/forms/Field/Selection/Selection.js +9 -5
- package/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/extensions/forms/Field/Upload/Upload.d.ts +1 -1
- package/extensions/forms/Field/Upload/Upload.js +17 -8
- package/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/extensions/forms/Field/Upload/UploadDocs.js +7 -1
- package/extensions/forms/Field/Upload/UploadDocs.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.js +15 -6
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +3 -2
- package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.css +16 -6
- package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.scss +32 -20
- package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +4 -6
- package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
- package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +17 -9
- package/extensions/forms/Form/Card/Card.d.ts +6 -0
- package/extensions/forms/Form/Card/Card.js +12 -0
- package/extensions/forms/Form/Card/Card.js.map +1 -0
- package/extensions/forms/Form/Card/CardDocs.d.ts +2 -0
- package/extensions/forms/Form/Card/CardDocs.js +18 -0
- package/extensions/forms/Form/Card/CardDocs.js.map +1 -0
- package/extensions/forms/Form/Card/index.d.ts +2 -0
- package/extensions/forms/Form/Card/index.js +3 -0
- package/extensions/forms/Form/Card/index.js.map +1 -0
- package/extensions/forms/Form/index.d.ts +1 -0
- package/extensions/forms/Form/index.js +1 -0
- package/extensions/forms/Form/index.js.map +1 -1
- package/extensions/forms/Iterate/Array/ArrayDocs.js +1 -1
- package/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
- package/extensions/forms/Iterate/Array/types.d.ts +1 -1
- package/extensions/forms/Iterate/Array/types.js.map +1 -1
- package/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
- package/extensions/forms/Value/SummaryList/SummaryList.d.ts +1 -1
- package/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
- package/extensions/forms/Value/ValueDocs.js +5 -0
- package/extensions/forms/Value/ValueDocs.js.map +1 -1
- package/extensions/forms/ValueBlock/ValueBlock.js +4 -2
- package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/extensions/forms/Wizard/style/dnb-wizard-layout.css +2 -2
- package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
- package/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -1
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +2 -7
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/extensions/forms/hooks/DataValueWritePropsDocs.js +1 -1
- package/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.js +50 -36
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +22 -14
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +4 -0
- package/extensions/forms/types.js.map +1 -1
- package/extensions/payment-card/style/dnb-payment-card.css +1 -1
- package/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
- package/fragments/drawer-list/DrawerList.d.ts +22 -21
- package/fragments/drawer-list/DrawerList.js +14 -5
- package/fragments/drawer-list/DrawerList.js.map +1 -1
- package/fragments/drawer-list/DrawerListDocs.d.ts +1 -0
- package/fragments/drawer-list/DrawerListDocs.js +37 -5
- package/fragments/drawer-list/DrawerListDocs.js.map +1 -1
- package/fragments/drawer-list/DrawerListHelpers.js +13 -6
- package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/fragments/drawer-list/DrawerListProvider.js +3 -0
- package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
- package/fragments/drawer-list/style/dnb-drawer-list.scss +11 -0
- package/fragments/drawer-list/style/themes/dnb-drawer-list-theme-sbanken.scss +26 -19
- package/package.json +1 -2
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/VisibilityByTheme.d.ts +5 -2
- package/shared/VisibilityByTheme.js +12 -0
- package/shared/VisibilityByTheme.js.map +1 -1
- package/style/core/scopes.scss +1 -1
- package/style/dnb-ui-basis.css +1 -1
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +1 -1
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-components.css +352 -306
- package/style/dnb-ui-components.min.css +6 -4
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-elements.css +91 -6
- package/style/dnb-ui-elements.min.css +1 -1
- package/style/dnb-ui-extensions.css +23 -15
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +22 -14
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/dnb-ui-fragments.css +9 -0
- package/style/dnb-ui-fragments.min.css +3 -1
- package/style/themes/theme-eiendom/eiendom-theme-basis.css +92 -6
- package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +376 -322
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +8 -6
- package/style/themes/theme-eiendom/eiendom-theme-elements.css +91 -6
- package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +23 -15
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +22 -14
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-eiendom/properties.d.ts +2 -1
- package/style/themes/theme-eiendom/properties.js +2 -1
- package/style/themes/theme-eiendom/properties.js.map +1 -1
- package/style/themes/theme-sbanken/fonts.scss +7 -3
- package/style/themes/theme-sbanken/properties.d.ts +2 -1
- package/style/themes/theme-sbanken/properties.js +2 -1
- package/style/themes/theme-sbanken/properties.js.map +1 -1
- package/style/themes/theme-sbanken/properties.scss +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-basis.css +101 -10
- package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-components.css +396 -339
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +9 -7
- package/style/themes/theme-sbanken/sbanken-theme-elements.css +91 -7
- package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +23 -15
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +22 -14
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-sbanken/theme-mapping.scss +1 -0
- package/style/themes/theme-ui/properties.d.ts +2 -1
- package/style/themes/theme-ui/properties.js +2 -1
- package/style/themes/theme-ui/properties.js.map +1 -1
- package/style/themes/theme-ui/properties.scss +1 -0
- package/style/themes/theme-ui/ui-theme-basis.css +92 -6
- package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +376 -322
- package/style/themes/theme-ui/ui-theme-components.min.css +8 -6
- package/style/themes/theme-ui/ui-theme-elements.css +91 -6
- package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-extensions.css +23 -15
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +22 -14
- package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-properties.css +1 -0
- package/style/themes/theme-ui/ui-theme-properties.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-tags.css +9 -5
- package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +1 -1
- package/umd/dnb-ui-lib.min.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","useEffect","useContext","pointer","makeAjvInstance","ajvErrorsToFormErrors","debounce","FieldPropsProvider","useUpdateEffect","isAsync","useSharedState","SharedContext","useTranslation","DataContext","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","forceUpdate","id","globalStatusId","defaultData","emptyData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onCommit","onClear","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","locale","translations","required","errorMessages","isolate","children","rest","_objectWithoutProperties","_excluded","undefined","Error","hasContext","formElementRef","sharedLocale","translation","Field","ajvRef","mountedFieldsRef","snapshotsRef","Map","existingFieldsRef","hasVisibleErrorRef","errorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","setVisibleError","path","hasError","submitStateRef","setSubmitState","state","_objectSpread","formStateRef","keepPending","setFormState","formState","options","fieldErrorRef","fieldStateRef","initialData","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","isEmptyDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","call","errors","validateData","checkFieldStateFor","_errorsRef$current","Boolean","hasFieldState","item","isMounted","hasFieldError","p","hasErrors","setFieldError","error","setFieldState","fieldState","mutateDataHandler","handler","remove","mutate","result","set","Object","entries","fieldPropsRef","forEach","exists","has","_fieldErrorRef$curren","value","get","displayValue","fieldDisplayValueRef","internal","label","runFilter","condition","_fieldErrorRef$curren2","wildcardPaths","includes","parts","split","traverse","subData","subPath","idx","length","push","list","Array","isArray","_","i","visibleDataHandler","keepPaths","removePaths","visibleData","isVisible","isPreMounted","wasStepChange","filterDataHandler","filter","filterData","fieldConnectionsRef","setFieldConnection","connections","setFieldProps","valuePropsRef","setValueProps","hasFieldWithAsyncValidator","_mountedFieldsRef$cur","validator","onBlurValidator","sharedData","sharedAttachments","sharedDataContext","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","clearedData","clearData","_ref","_requestAnimationFram","requestAnimationFrame","storeInSession","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","setData","newData","preventUpdate","updateDataValue","_internalDataRef$curr","givenData","match","e","handlePathChangeUnvalidated","itm","fieldEventListenersRef","type","callback","handlePathChange","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","some","setMountedFieldState","assign","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmitCall","args","enableAsyncBehavior","skipFieldValidation","skipErrorCheck","customStatus","asyncBehaviorIsEnabled","_mountedFieldsRef$cur2","_result2","_result4","_result5","_result6","_result7","submitResult","_result","_result3","warning","info","onSubmitContinueRef","handleSubmitListenersRef","setHandleSubmit","listeners","handleSubmitListeners","stop","preventSubmit","getSubmitData","mutatedData","filteredData","getSubmitParams","reduceToVisibleFields","transformData","formElement","params","resetForm","_formElement$reset","reset","removeItem","handleSubmit","completeResult","keys","setFieldEventListener","t","c","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","contextErrorMessages","contextValue","hasVisibleError","createElement","FormStatus","globalStatus","title","errorSummaryTitle","show","stateRef","nowRef","timeoutRef","setState","clear","key","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","Date","now","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout","freeze"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n useContext,\n} from 'react'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n FormError,\n} from '../../utils'\nimport {\n GlobalErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n FieldProps,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n ValueProps,\n OnSubmitParams,\n OnSubmitReturn,\n} from '../../types'\nimport type { IsolationProviderProps } from '../../Form/Isolation/Isolation'\nimport { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Field/Provider'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport { useSharedState } from '../../../../shared/helpers/useSharedState'\nimport SharedContext, { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport DataContext, {\n ContextState,\n EventListenerCall,\n FilterData,\n FilterDataHandler,\n HandleSubmitCallback,\n MountState,\n TransformData,\n VisibleDataHandler,\n} from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type SharedAttachments<Data = unknown> = {\n visibleDataHandler?: VisibleDataHandler<Data>\n filterDataHandler?: FilterDataHandler<Data>\n hasErrors?: ContextState['hasErrors']\n hasFieldError?: ContextState['hasFieldError']\n setShowAllErrors?: ContextState['setShowAllErrors']\n setSubmitState?: ContextState['setSubmitState']\n rerenderUseDataHook?: () => void\n clearData?: () => void\n fieldConnectionsRef?: ContextState['fieldConnectionsRef']\n}\n\nexport interface Props<Data extends JsonObject>\n extends IsolationProviderProps<Data> {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: string\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Data\n /**\n * Empty data, used to clear the data set.\n */\n emptyData?: unknown\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions<Data>\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: GlobalErrorMessagesWithPaths\n /**\n * @deprecated Use the `filterData` in the second event parameter in the `onSubmit` or `onChange` events.\n */\n filterSubmitData?: FilterData\n /**\n * Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformIn?: TransformData\n /**\n * Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformOut?: TransformData\n /**\n * Change handler for the whole data set.\n * You can provide an async function to show an indicator on the current label during a field change.\n */\n onChange?: OnChange<Data>\n /**\n * Change handler for each value\n */\n onPathChange?: (\n path: Path,\n value: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will emit on a form submit – if validation has passed.\n * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.\n */\n onSubmit?: OnSubmit<Data>\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: () => void\n /**\n * Will be called when the onSubmit is finished and had not errors\n */\n onSubmitComplete?: (\n data: Data,\n /**\n * The result of the onSubmit function\n */\n result: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Minimum time to display the submit indicator.\n */\n minimumAsyncBehaviorTime?: number\n /**\n * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.\n */\n asyncSubmitTimeout?: number\n /**\n * Scroll to top on submit\n */\n scrollTopOnSubmit?: boolean\n /**\n * Key for caching the data in session storage\n */\n sessionStorageId?: string\n /**\n * Locale to use for all nested Eufemia components\n */\n locale?: ContextProps['locale']\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translations?: ContextProps['translations']\n /**\n * Make all fields required\n */\n required?: boolean\n /**\n * The children of the context provider\n */\n children: React.ReactNode\n}\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>(\n props: Props<Data>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n id,\n globalStatusId = 'main',\n defaultData,\n emptyData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onCommit,\n onClear,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n locale,\n translations,\n required,\n errorMessages,\n isolate,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n throw new Error(\n 'Use \"defaultData\" instead of \"data\" when using sessionStorageId'\n )\n }\n\n const { hasContext } = useContext(DataContext) || {}\n\n if (hasContext && !isolate) {\n throw new Error('DataContext (Form.Handler) can not be nested')\n }\n\n // - Element\n const formElementRef = useRef<HTMLFormElement>(null)\n\n // - Locale\n const { locale: sharedLocale } = useContext(SharedContext) || {}\n const translation = useTranslation().Field\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldsRef: ContextState['mountedFieldsRef'] = useRef({})\n\n // - Snapshots\n const snapshotsRef: ContextState['snapshotsRef'] = useRef(new Map())\n const existingFieldsRef: ContextState['existingFieldsRef'] = useRef(\n new Map()\n )\n\n // - Errors from provider validation (the whole data set)\n const hasVisibleErrorRef = useRef<Record<Path, boolean>>({})\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const showAllErrorsRef = useRef<boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors\n forceUpdate()\n }, [])\n const setVisibleError = useCallback((path: Path, hasError: boolean) => {\n if (hasError) {\n hasVisibleErrorRef.current[path] = hasError\n } else {\n delete hasVisibleErrorRef.current[path]\n }\n forceUpdate() // Will rerender the whole form initially\n }, [])\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n submitStateRef.current = { ...submitStateRef.current, ...state }\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const keepPending = useRef(false)\n const setFormState = useCallback<ContextState['setFormState']>(\n (formState: SubmitState, options = {}) => {\n if (typeof options?.keepPending === 'boolean') {\n keepPending.current = options?.keepPending\n }\n formStateRef.current = formState\n forceUpdate()\n },\n []\n )\n\n // - States (e.g. error) reported by fields, based on their direct validation rules\n const fieldErrorRef = useRef<Record<Path, Error>>({})\n const fieldStateRef = useRef<Record<Path, SubmitState>>({})\n\n // - Data\n const initialData = useMemo<Data>(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Data>(initialData)\n const isEmptyDataRef = useRef(false)\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const executeAjvValidator = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors,\n internalDataRef.current\n )\n } else {\n errorsRef.current = undefined\n }\n }, [])\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n executeAjvValidator()\n forceUpdate()\n }, [executeAjvValidator])\n\n // - Error handling\n const checkFieldStateFor = useCallback(\n (path: Path, state: SubmitState) => {\n return Boolean(\n state === 'error'\n ? errorsRef.current?.[path] instanceof Error ||\n fieldErrorRef.current[path] instanceof Error\n : fieldStateRef.current[path] === state\n )\n },\n []\n )\n const hasFieldState = useCallback(\n (state: SubmitState) => {\n for (const path in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (item.isMounted && checkFieldStateFor(path, state)) {\n return true\n }\n }\n\n return false\n },\n [checkFieldStateFor]\n )\n const hasFieldError = useCallback(\n (path: Path) => {\n for (const p in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (\n item.isMounted &&\n p === path &&\n checkFieldStateFor(path, 'error')\n ) {\n return true\n }\n }\n\n return false\n },\n [checkFieldStateFor]\n )\n const hasErrors = useCallback(() => {\n return hasFieldState('error')\n }, [hasFieldState])\n\n /**\n * Sets the error state for a specific path\n */\n const setFieldError: ContextState['setFieldError'] = useCallback(\n (path, error) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState: ContextState['setFieldState'] = useCallback(\n (path, fieldState) => {\n if (fieldState !== fieldStateRef.current[path]) {\n // The state for the target value was changed\n fieldStateRef.current[path] = fieldState\n forceUpdate()\n }\n },\n []\n )\n\n /**\n * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (data: Data, handler: TransformData | FilterData, remove = false) => {\n const mutate = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n data = structuredClone(data)\n pointer.set(data, path, result)\n }\n }\n }\n\n if (typeof handler === 'function') {\n Object.entries(fieldPropsRef.current).forEach(([path, props]) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const displayValue = fieldDisplayValueRef.current[path]\n const internal = {\n error: fieldErrorRef.current?.[path],\n }\n const result = handler({\n path,\n value,\n displayValue,\n label: props.label,\n data: internalDataRef.current,\n props,\n internal,\n })\n mutate(path, result)\n }\n })\n\n return data\n } else if (handler) {\n const runFilter = ({ path, condition }) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const props = fieldPropsRef.current[path]\n const internal = { error: fieldErrorRef.current?.[path] }\n const result =\n typeof condition === 'function'\n ? condition({\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n : condition\n mutate(path, result)\n }\n }\n\n const wildcardPaths = []\n\n Object.entries(handler).forEach(([path, condition]) => {\n if (path.includes('*')) {\n const parts = path.split(/\\/\\*/g)\n const exists = pointer.has(data, parts[0])\n if (exists) {\n const traverse = (\n subData: unknown,\n subPath: string,\n idx: number\n ) => {\n if (idx === parts.length - 1) {\n wildcardPaths.push({ path: subPath, condition })\n return\n }\n const list = pointer.get(subData, subPath)\n if (Array.isArray(list)) {\n list.forEach((_, i) => {\n traverse(\n list[i],\n `${subPath}/${i}${parts[idx + 1]}`,\n idx + 1\n )\n })\n }\n }\n traverse(data, parts[0], 0)\n }\n } else {\n runFilter({ path, condition })\n }\n })\n\n wildcardPaths.forEach(runFilter)\n\n return data\n }\n\n return data\n },\n []\n )\n\n /**\n * Ensure only visible data is returned\n */\n const visibleDataHandler: VisibleDataHandler<Data> = useCallback(\n (data = internalDataRef.current, { keepPaths, removePaths } = {}) => {\n const visibleData = {} as Partial<Data>\n\n for (const path in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (\n item &&\n item.isVisible !== false &&\n (item.isPreMounted !== false || item.wasStepChange === true) &&\n (removePaths ? !removePaths.includes(path) : true) &&\n pointer.has(data, path)\n ) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n }\n\n if (keepPaths) {\n keepPaths.forEach((path) => {\n if (pointer.has(data, path)) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n })\n }\n\n return visibleData\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter: FilterData) => {\n if (filter) {\n return mutateDataHandler(data, filter, true)\n }\n\n return data\n },\n [mutateDataHandler]\n )\n\n const filterData = useCallback(\n (filter: FilterData, data = internalDataRef.current) => {\n return filterDataHandler(data, filter)\n },\n [filterDataHandler]\n )\n\n const fieldDisplayValueRef: ContextState['fieldDisplayValueRef'] =\n useRef({})\n\n const fieldConnectionsRef = useRef<\n Record<Path, Record<string, unknown>>\n >({})\n const setFieldConnection = useCallback(\n (path: Path, connections: Record<string, unknown>) => {\n fieldConnectionsRef.current[path] = connections\n },\n []\n )\n\n const fieldPropsRef = useRef<Record<Path, FieldProps>>({})\n const setFieldProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n fieldPropsRef.current[path] = props\n },\n []\n )\n\n const valuePropsRef = useRef<Record<Path, ValueProps>>({})\n const setValueProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n valuePropsRef.current[path] = props\n },\n []\n )\n\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldPropsRef.current) {\n if (mountedFieldsRef.current[path]?.isMounted) {\n const props = fieldPropsRef.current[path]\n if (isAsync(props.validator) || isAsync(props.onBlurValidator)) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<SharedAttachments<Data>>(\n id + '-attachments'\n )\n const sharedDataContext = useSharedState<ContextState>(\n id + '-data-context'\n )\n\n const setSharedData = sharedData.set\n const extendSharedData = sharedData.extend\n const extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n const internalData = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData &&\n typeof internalDataRef.current === 'object'\n ) {\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current &&\n typeof internalDataRef.current === 'object'\n ) {\n cacheRef.current.shared = sharedData.data\n\n if (isEmptyDataRef.current) {\n return (\n Array.isArray(internalDataRef.current) ? [] : clearedData\n ) as Data\n }\n\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [id, initialData, sharedData, data])\n\n internalDataRef.current =\n props.path && pointer.has(internalData, props.path)\n ? pointer.get(internalData, props.path)\n : internalData\n\n const clearData = useCallback(() => {\n isEmptyDataRef.current = true\n internalDataRef.current = ((typeof emptyData === 'function'\n ? emptyData(internalDataRef.current)\n : emptyData) ??\n (Array.isArray(internalDataRef.current) ? [] : clearedData)) as Data\n\n if (id) {\n setSharedData?.(internalDataRef.current)\n }\n\n forceUpdate()\n onClear?.()\n\n requestAnimationFrame?.(() => {\n isEmptyDataRef.current = false\n }) // Delay so the field validation error message are not shown\n }, [emptyData, id, onClear, setSharedData])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id && initialData && !sharedData.data) {\n extendSharedData?.(initialData)\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useMemo(() => {\n executeAjvValidator()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment?.({\n visibleDataHandler,\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n clearData,\n fieldConnectionsRef,\n })\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n extendAttachment,\n visibleDataHandler,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setShowAllErrors,\n setSubmitState,\n clearData,\n ])\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n const setData = useCallback(\n (newData: Data, preventUpdate = false) => {\n // - Mutate the data context\n if (transformIn) {\n newData = mutateDataHandler(newData, transformIn)\n }\n\n internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData?.(newData)\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n if (!preventUpdate) {\n forceUpdate() // Will rerender the whole form initially\n }\n },\n [\n extendSharedData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\n ]\n )\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value, { preventUpdate } = {}) => {\n if (!path) {\n return\n }\n\n const givenData = (\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n ) as Data\n\n let newData: Data = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData, path, value)\n }\n\n setData(newData, preventUpdate)\n },\n [setData]\n )\n\n /**\n * Update the data set on user interaction (unvalidated)\n */\n const handlePathChangeUnvalidated: ContextState['handlePathChange'] =\n useCallback(\n async (path, value) => {\n if (!path) {\n return null\n }\n\n updateDataValue(path, value)\n\n if (isAsync(onPathChange)) {\n await onPathChange?.(path, value)\n } else {\n onPathChange?.(path, value)\n }\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onPathChange' && itm.path === path) {\n const { callback } = itm\n if (isAsync(callback)) {\n await callback({ value })\n } else {\n callback({ value })\n }\n }\n }\n },\n [onPathChange, updateDataValue]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value = '_undefined_') => {\n if (!path) {\n return null\n }\n\n if (value !== '_undefined_') {\n handlePathChangeUnvalidated(path, value)\n }\n\n showAllErrorsRef.current = false\n\n validateData()\n\n const data = internalDataRef.current as Data\n const options = { filterData }\n const transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n for (const cb of changeHandlerStackRef.current) {\n if (isAsync(onChange)) {\n await cb(transformedData, options)\n } else {\n cb(transformedData, options)\n }\n }\n\n if (isAsync(onChange)) {\n return await onChange(transformedData, options)\n }\n\n return onChange?.(transformedData, options)\n },\n [\n filterData,\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n const changeHandlerStackRef = useRef<Array<OnChange<Data>>>([])\n const addOnChangeHandler = useCallback((callback: OnChange<Data>) => {\n const exists = changeHandlerStackRef.current.some((cb) => {\n return callback === cb\n })\n if (!exists) {\n changeHandlerStackRef.current.push(callback)\n }\n }, [])\n\n // - Mounted fields\n const setMountedFieldState = useCallback(\n (path: Path, state: MountState) => {\n if (!mountedFieldsRef.current[path]) {\n mountedFieldsRef.current[path] = { ...state }\n } else {\n Object.assign(mountedFieldsRef.current[path], state)\n }\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onMount' && itm.path === path) {\n const { callback } = itm\n callback()\n }\n }\n },\n []\n )\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined, customStatus: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behavior if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehavior || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const item of fieldEventListenersRef.current) {\n const { path, type, callback } = item\n if (\n type === 'onSubmit' &&\n mountedFieldsRef.current[path]?.isMounted\n ) {\n // Call all submit listener callbacks (e.g. to validate fields)\n if (asyncBehaviorIsEnabled) {\n await callback()\n } else {\n callback()\n }\n }\n }\n }\n\n let result: EventStateObject\n\n if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let submitResult: OnSubmitReturn\n try {\n if (isolate) {\n submitResult = await onCommit?.(internalDataRef.current, {\n clearData,\n })\n } else {\n submitResult = await onSubmit()\n }\n\n if (submitResult instanceof Error) {\n throw submitResult\n }\n } catch (error) {\n submitResult = { error }\n }\n\n result = submitResult as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n if (result?.error) {\n setFormState('abort')\n } else if (keepPending.current !== true) {\n setFormState('complete')\n }\n }\n\n // Force the state to be set by a custom status\n if (result?.['status']) {\n setFormState(result?.['status'])\n }\n\n if (\n result?.error ||\n result?.warning ||\n result?.info ||\n result?.customStatus\n ) {\n setSubmitState(result)\n }\n } else {\n if (asyncBehaviorIsEnabled) {\n window.requestAnimationFrame(() => {\n setFormState(undefined)\n })\n\n if (!skipFieldValidation) {\n // Add a event listener to continue the submit after the pending state is resolved\n onSubmitContinueRef.current = () => {\n window.requestAnimationFrame(() => {\n // Do not call the validators again,\n // because we already did it in the first call\n // If they are async, we wait for them to finish anyway\n handleSubmitCall({ ...args, skipFieldValidation: true })\n })\n }\n }\n }\n\n onSubmitRequest?.()\n\n setShowAllErrors(true)\n }\n\n return result\n },\n [\n clearData,\n hasErrors,\n hasFieldState,\n hasFieldWithAsyncValidator,\n isolate,\n onCommit,\n onSubmitRequest,\n setFormState,\n setShowAllErrors,\n setSubmitState,\n ]\n )\n\n const handleSubmitListenersRef = useRef<Array<HandleSubmitCallback>>([])\n const setHandleSubmit: ContextState['setHandleSubmit'] = useCallback(\n (callback, { remove = false } = {}) => {\n const listeners = handleSubmitListenersRef.current\n if (remove) {\n handleSubmitListenersRef.current = listeners.filter(\n (item) => item !== callback\n )\n } else if (!listeners.includes(callback)) {\n listeners.push(callback)\n }\n },\n []\n )\n const handleSubmitListeners = useCallback(() => {\n let stop = false\n const preventSubmit = () => (stop = true)\n handleSubmitListenersRef.current.forEach((cb) => {\n cb({ preventSubmit })\n })\n return stop\n }, [])\n\n const getSubmitData = useCallback(() => {\n // - Mutate the data context\n const data = internalDataRef.current\n const mutatedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n // @deprecated – can be removed in v11 (use only mutatedData instead)\n const filteredData = filterSubmitData\n ? filterDataHandler(mutatedData, filterSubmitData)\n : mutatedData\n\n return filteredData\n }, [\n filterDataHandler,\n filterSubmitData,\n mutateDataHandler,\n transformOut,\n ])\n\n const getSubmitParams = useCallback(() => {\n const reduceToVisibleFields: VisibleDataHandler<Data> = (\n data,\n options\n ) => {\n return visibleDataHandler(\n transformOut ? mutateDataHandler(data, transformOut) : data,\n options\n )\n }\n\n const transformData = (data: Data, handler: TransformData) => {\n return mutateDataHandler(data, handler) as TransformData\n }\n\n const formElement = formElementRef.current\n const params: OnSubmitParams = {\n filterData,\n reduceToVisibleFields,\n transformData,\n resetForm: () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n },\n clearData,\n }\n\n return params\n }, [\n clearData,\n filterData,\n mutateDataHandler,\n sessionStorageId,\n transformOut,\n visibleDataHandler,\n ])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<\n ContextState['handleSubmit']\n >(async () => {\n return await handleSubmitCall({\n enableAsyncBehavior: isAsync(onSubmit),\n onSubmit: async () => {\n if (handleSubmitListeners()) {\n return // stop here\n }\n\n const data = getSubmitData()\n const options = getSubmitParams()\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(data, options)\n } else {\n result = onSubmit?.(data, options)\n }\n\n const completeResult = await onSubmitComplete?.(data, result)\n if (completeResult) {\n result =\n Object.keys(result).length > 0\n ? { ...result, ...completeResult }\n : completeResult\n }\n\n if (scrollTopOnSubmit) {\n scrollToTop()\n }\n\n return result\n },\n })\n }, [\n getSubmitData,\n getSubmitParams,\n handleSubmitCall,\n handleSubmitListeners,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n ])\n\n // Collect listeners to be called during form submit\n const fieldEventListenersRef = useRef<Array<EventListenerCall>>([])\n const setFieldEventListener = useCallback(\n (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => {\n fieldEventListenersRef.current =\n fieldEventListenersRef.current.filter(\n ({ path: p, type: t, callback: c }) => {\n return !(p === path && t === type && c === callback)\n }\n )\n fieldEventListenersRef.current.push({ path, type, callback })\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n }, [schema, validateData])\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const onTimeout = useCallback(() => {\n setFormState(undefined)\n setSubmitState({\n info: undefined,\n warning: undefined,\n error: undefined,\n customStatus: undefined,\n })\n }, [setFormState, setSubmitState])\n\n const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\n const contextErrorMessages =\n errorMessages?.[locale ?? sharedLocale] || errorMessages\n\n const contextValue: ContextState = {\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n setMountedFieldState,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n setVisibleError,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldConnection,\n setFieldProps,\n setValueProps,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n clearData,\n visibleDataHandler,\n filterDataHandler,\n getSubmitData,\n getSubmitParams,\n addOnChangeHandler,\n setHandleSubmit,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n required,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n hasVisibleError: Object.keys(hasVisibleErrorRef.current).length > 0,\n fieldConnectionsRef,\n fieldDisplayValueRef,\n fieldPropsRef,\n valuePropsRef,\n mountedFieldsRef,\n snapshotsRef,\n existingFieldsRef,\n formElementRef,\n isEmptyDataRef,\n fieldErrorRef,\n ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n internalDataRef,\n props,\n ...rest,\n }\n\n if (id) {\n sharedDataContext.set(contextValue)\n }\n\n return (\n <DataContext.Provider value={contextValue}>\n <FieldPropsProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: showAllErrorsRef.current,\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldPropsProvider>\n </DataContext.Provider>\n )\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<JsonObject>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<JsonObject>['asyncSubmitTimeout']\n formState: ContextState['formState']\n waitFor: boolean\n onTimeout: () => void\n}\n\nfunction useFormStatusBuffer(props: FormStatusBufferProps) {\n const {\n formState,\n waitFor,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n } = props || {}\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const stateRef = useRef<SubmitState>()\n const nowRef = useRef<number | null>(null)\n const timeoutRef = useRef<{\n complete?: NodeJS.Timeout | null\n reset?: NodeJS.Timeout | null\n timeout?: NodeJS.Timeout | null\n }>({})\n\n const setState = useCallback(\n (state: SubmitState) => {\n stateRef.current = state\n forceUpdate()\n },\n [forceUpdate]\n )\n\n const clear = useCallback(() => {\n for (const key in timeoutRef.current) {\n clearTimeout(timeoutRef.current[key])\n }\n }, [])\n\n const hadCompleteRef = useRef(false)\n const activeElementRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n // This offset is used to calculate the delay,\n // which ensures that the form state is displayed for at least minimumAsyncBehaviorTime duration.\n // If the form was 'pending' for less than minimumAsyncBehaviorTime,\n // the delay will be the remaining time to reach minimumAsyncBehaviorTime.\n const isTest = process.env.NODE_ENV === 'test'\n const minimum =\n minimumAsyncBehaviorTime ??\n // make it testable\n (isTest ? 1 : 1000)\n\n if (stateRef.current && formState === 'error') {\n clear()\n setState(undefined)\n return\n }\n\n if (formState === 'abort') {\n clear()\n setState('abort')\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, minimum)\n return\n }\n\n if (formState === 'complete') {\n hadCompleteRef.current = true\n }\n\n if (formState === 'pending' && stateRef.current !== 'pending') {\n activeElementRef.current = document.activeElement as HTMLElement\n clear()\n nowRef.current = Date.now()\n hadCompleteRef.current = false\n setState('pending')\n } else if (stateRef.current === 'pending') {\n const offset = Math.max(Date.now() - nowRef.current)\n const delay = isTest ? minimum : Math.max(minimum - offset, 0)\n\n if (!waitFor) {\n timeoutRef.current.complete = setTimeout(() => {\n if (hadCompleteRef.current) {\n setState('complete')\n }\n window.requestAnimationFrame(() => {\n activeElementRef.current?.focus?.()\n })\n }, delay)\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n clear()\n }, delay + minimum)\n }\n }\n\n if (stateRef.current === 'pending') {\n timeoutRef.current.timeout = setTimeout(() => {\n clear()\n setState(undefined)\n onTimeout?.()\n }, asyncSubmitTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncSubmitTimeout,\n onTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n\nexport const clearedData = Object.freeze({})\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","useEffect","useContext","pointer","makeAjvInstance","ajvErrorsToFormErrors","debounce","FieldPropsProvider","useUpdateEffect","isAsync","useSharedState","SharedContext","useTranslation","DataContext","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","forceUpdate","id","globalStatusId","defaultData","emptyData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onCommit","onClear","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","locale","translations","required","errorMessages","isolate","children","rest","_objectWithoutProperties","_excluded","undefined","Error","hasContext","formElementRef","sharedLocale","translation","Field","ajvRef","mountedFieldsRef","snapshotsRef","Map","existingFieldsRef","hasVisibleErrorRef","errorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","setVisibleError","path","hasError","submitStateRef","setSubmitState","state","_objectSpread","formStateRef","keepPending","setFormState","formState","options","fieldErrorRef","fieldStateRef","initialData","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","isEmptyDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","call","errors","validateData","checkFieldStateFor","_errorsRef$current","Boolean","hasFieldState","item","isMounted","hasFieldError","p","hasErrors","setFieldError","error","setFieldState","fieldState","mutateDataHandler","handler","remove","mutate","result","set","Object","entries","fieldPropsRef","forEach","exists","has","_fieldErrorRef$curren","value","get","displayValue","fieldDisplayValueRef","internal","label","runFilter","condition","_fieldErrorRef$curren2","wildcardPaths","includes","parts","split","traverse","subData","subPath","idx","length","push","list","Array","isArray","_","i","visibleDataHandler","keepPaths","removePaths","visibleData","isVisible","isPreMounted","wasStepChange","filterDataHandler","filter","filterData","fieldConnectionsRef","setFieldConnection","connections","setFieldProps","valuePropsRef","setValueProps","hasFieldWithAsyncValidator","_mountedFieldsRef$cur","onChangeValidator","onBlurValidator","sharedData","sharedAttachments","sharedDataContext","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","clearedData","clearData","_ref","_requestAnimationFram","requestAnimationFrame","storeInSession","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","setData","newData","preventUpdate","updateDataValue","_internalDataRef$curr","givenData","match","e","handlePathChangeUnvalidated","itm","fieldEventListenersRef","type","callback","handlePathChange","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","some","setMountedFieldState","assign","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmitCall","args","enableAsyncBehavior","skipFieldValidation","skipErrorCheck","customStatus","asyncBehaviorIsEnabled","_mountedFieldsRef$cur2","_result2","_result4","_result5","_result6","_result7","submitResult","_result","_result3","warning","info","onSubmitContinueRef","handleSubmitListenersRef","setHandleSubmit","listeners","handleSubmitListeners","stop","preventSubmit","getSubmitData","mutatedData","filteredData","getSubmitParams","reduceToVisibleFields","transformData","formElement","params","resetForm","_formElement$reset","reset","removeItem","handleSubmit","completeResult","keys","setFieldEventListener","t","c","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","contextErrorMessages","contextValue","hasVisibleError","createElement","FormStatus","globalStatus","title","errorSummaryTitle","show","stateRef","nowRef","timeoutRef","setState","clear","key","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","Date","now","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout","freeze"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n useContext,\n} from 'react'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n FormError,\n} from '../../utils'\nimport {\n GlobalErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n FieldProps,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n ValueProps,\n OnSubmitParams,\n OnSubmitReturn,\n} from '../../types'\nimport type { IsolationProviderProps } from '../../Form/Isolation/Isolation'\nimport { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Field/Provider'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport { useSharedState } from '../../../../shared/helpers/useSharedState'\nimport SharedContext, { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport DataContext, {\n ContextState,\n EventListenerCall,\n FilterData,\n FilterDataHandler,\n HandleSubmitCallback,\n MountState,\n TransformData,\n VisibleDataHandler,\n} from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type SharedAttachments<Data = unknown> = {\n visibleDataHandler?: VisibleDataHandler<Data>\n filterDataHandler?: FilterDataHandler<Data>\n hasErrors?: ContextState['hasErrors']\n hasFieldError?: ContextState['hasFieldError']\n setShowAllErrors?: ContextState['setShowAllErrors']\n setSubmitState?: ContextState['setSubmitState']\n rerenderUseDataHook?: () => void\n clearData?: () => void\n fieldConnectionsRef?: ContextState['fieldConnectionsRef']\n}\n\nexport interface Props<Data extends JsonObject>\n extends IsolationProviderProps<Data> {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: string\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Data\n /**\n * Empty data, used to clear the data set.\n */\n emptyData?: unknown\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions<Data>\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: GlobalErrorMessagesWithPaths\n /**\n * @deprecated Use the `filterData` in the second event parameter in the `onSubmit` or `onChange` events.\n */\n filterSubmitData?: FilterData\n /**\n * Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformIn?: TransformData\n /**\n * Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformOut?: TransformData\n /**\n * Change handler for the whole data set.\n * You can provide an async function to show an indicator on the current label during a field change.\n */\n onChange?: OnChange<Data>\n /**\n * Change handler for each value\n */\n onPathChange?: (\n path: Path,\n value: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will emit on a form submit – if validation has passed.\n * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.\n */\n onSubmit?: OnSubmit<Data>\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: () => void\n /**\n * Will be called when the onSubmit is finished and had not errors\n */\n onSubmitComplete?: (\n data: Data,\n /**\n * The result of the onSubmit function\n */\n result: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Minimum time to display the submit indicator.\n */\n minimumAsyncBehaviorTime?: number\n /**\n * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.\n */\n asyncSubmitTimeout?: number\n /**\n * Scroll to top on submit\n */\n scrollTopOnSubmit?: boolean\n /**\n * Key for caching the data in session storage\n */\n sessionStorageId?: string\n /**\n * Locale to use for all nested Eufemia components\n */\n locale?: ContextProps['locale']\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translations?: ContextProps['translations']\n /**\n * Make all fields required\n */\n required?: boolean\n /**\n * The children of the context provider\n */\n children: React.ReactNode\n}\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>(\n props: Props<Data>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n id,\n globalStatusId = 'main',\n defaultData,\n emptyData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onCommit,\n onClear,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n locale,\n translations,\n required,\n errorMessages,\n isolate,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n throw new Error(\n 'Use \"defaultData\" instead of \"data\" when using sessionStorageId'\n )\n }\n\n const { hasContext } = useContext(DataContext) || {}\n\n if (hasContext && !isolate) {\n throw new Error('DataContext (Form.Handler) can not be nested')\n }\n\n // - Element\n const formElementRef = useRef<HTMLFormElement>(null)\n\n // - Locale\n const { locale: sharedLocale } = useContext(SharedContext) || {}\n const translation = useTranslation().Field\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldsRef: ContextState['mountedFieldsRef'] = useRef({})\n\n // - Snapshots\n const snapshotsRef: ContextState['snapshotsRef'] = useRef(new Map())\n const existingFieldsRef: ContextState['existingFieldsRef'] = useRef(\n new Map()\n )\n\n // - Errors from provider validation (the whole data set)\n const hasVisibleErrorRef = useRef<Record<Path, boolean>>({})\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const showAllErrorsRef = useRef<boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors\n forceUpdate()\n }, [])\n const setVisibleError = useCallback((path: Path, hasError: boolean) => {\n if (hasError) {\n hasVisibleErrorRef.current[path] = hasError\n } else {\n delete hasVisibleErrorRef.current[path]\n }\n forceUpdate() // Will rerender the whole form initially\n }, [])\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n submitStateRef.current = { ...submitStateRef.current, ...state }\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const keepPending = useRef(false)\n const setFormState = useCallback<ContextState['setFormState']>(\n (formState: SubmitState, options = {}) => {\n if (typeof options?.keepPending === 'boolean') {\n keepPending.current = options?.keepPending\n }\n formStateRef.current = formState\n forceUpdate()\n },\n []\n )\n\n // - States (e.g. error) reported by fields, based on their direct validation rules\n const fieldErrorRef = useRef<Record<Path, Error>>({})\n const fieldStateRef = useRef<Record<Path, SubmitState>>({})\n\n // - Data\n const initialData = useMemo<Data>(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Data>(initialData)\n const isEmptyDataRef = useRef(false)\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const executeAjvValidator = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors,\n internalDataRef.current\n )\n } else {\n errorsRef.current = undefined\n }\n }, [])\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n executeAjvValidator()\n forceUpdate()\n }, [executeAjvValidator])\n\n // - Error handling\n const checkFieldStateFor = useCallback(\n (path: Path, state: SubmitState) => {\n return Boolean(\n state === 'error'\n ? errorsRef.current?.[path] instanceof Error ||\n fieldErrorRef.current[path] instanceof Error\n : fieldStateRef.current[path] === state\n )\n },\n []\n )\n const hasFieldState = useCallback(\n (state: SubmitState) => {\n for (const path in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (item.isMounted && checkFieldStateFor(path, state)) {\n return true\n }\n }\n\n return false\n },\n [checkFieldStateFor]\n )\n const hasFieldError = useCallback(\n (path: Path) => {\n for (const p in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (\n item.isMounted &&\n p === path &&\n checkFieldStateFor(path, 'error')\n ) {\n return true\n }\n }\n\n return false\n },\n [checkFieldStateFor]\n )\n const hasErrors = useCallback(() => {\n return hasFieldState('error')\n }, [hasFieldState])\n\n /**\n * Sets the error state for a specific path\n */\n const setFieldError: ContextState['setFieldError'] = useCallback(\n (path, error) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState: ContextState['setFieldState'] = useCallback(\n (path, fieldState) => {\n if (fieldState !== fieldStateRef.current[path]) {\n // The state for the target value was changed\n fieldStateRef.current[path] = fieldState\n forceUpdate()\n }\n },\n []\n )\n\n /**\n * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (data: Data, handler: TransformData | FilterData, remove = false) => {\n const mutate = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n data = structuredClone(data)\n pointer.set(data, path, result)\n }\n }\n }\n\n if (typeof handler === 'function') {\n Object.entries(fieldPropsRef.current).forEach(([path, props]) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const displayValue = fieldDisplayValueRef.current[path]\n const internal = {\n error: fieldErrorRef.current?.[path],\n }\n const result = handler({\n path,\n value,\n displayValue,\n label: props.label,\n data: internalDataRef.current,\n props,\n internal,\n })\n mutate(path, result)\n }\n })\n\n return data\n } else if (handler) {\n const runFilter = ({ path, condition }) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const props = fieldPropsRef.current[path]\n const internal = { error: fieldErrorRef.current?.[path] }\n const result =\n typeof condition === 'function'\n ? condition({\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n : condition\n mutate(path, result)\n }\n }\n\n const wildcardPaths = []\n\n Object.entries(handler).forEach(([path, condition]) => {\n if (path.includes('*')) {\n const parts = path.split(/\\/\\*/g)\n const exists = pointer.has(data, parts[0])\n if (exists) {\n const traverse = (\n subData: unknown,\n subPath: string,\n idx: number\n ) => {\n if (idx === parts.length - 1) {\n wildcardPaths.push({ path: subPath, condition })\n return\n }\n const list = pointer.get(subData, subPath)\n if (Array.isArray(list)) {\n list.forEach((_, i) => {\n traverse(\n list[i],\n `${subPath}/${i}${parts[idx + 1]}`,\n idx + 1\n )\n })\n }\n }\n traverse(data, parts[0], 0)\n }\n } else {\n runFilter({ path, condition })\n }\n })\n\n wildcardPaths.forEach(runFilter)\n\n return data\n }\n\n return data\n },\n []\n )\n\n /**\n * Ensure only visible data is returned\n */\n const visibleDataHandler: VisibleDataHandler<Data> = useCallback(\n (data = internalDataRef.current, { keepPaths, removePaths } = {}) => {\n const visibleData = {} as Partial<Data>\n\n for (const path in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (\n item &&\n item.isVisible !== false &&\n (item.isPreMounted !== false || item.wasStepChange === true) &&\n (removePaths ? !removePaths.includes(path) : true) &&\n pointer.has(data, path)\n ) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n }\n\n if (keepPaths) {\n keepPaths.forEach((path) => {\n if (pointer.has(data, path)) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n })\n }\n\n return visibleData\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter: FilterData) => {\n if (filter) {\n return mutateDataHandler(data, filter, true)\n }\n\n return data\n },\n [mutateDataHandler]\n )\n\n const filterData = useCallback(\n (filter: FilterData, data = internalDataRef.current) => {\n return filterDataHandler(data, filter)\n },\n [filterDataHandler]\n )\n\n const fieldDisplayValueRef: ContextState['fieldDisplayValueRef'] =\n useRef({})\n\n const fieldConnectionsRef = useRef<\n Record<Path, Record<string, unknown>>\n >({})\n const setFieldConnection = useCallback(\n (path: Path, connections: Record<string, unknown>) => {\n fieldConnectionsRef.current[path] = connections\n },\n []\n )\n\n const fieldPropsRef = useRef<Record<Path, FieldProps>>({})\n const setFieldProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n fieldPropsRef.current[path] = props\n },\n []\n )\n\n const valuePropsRef = useRef<Record<Path, ValueProps>>({})\n const setValueProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n valuePropsRef.current[path] = props\n },\n []\n )\n\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldPropsRef.current) {\n if (mountedFieldsRef.current[path]?.isMounted) {\n const props = fieldPropsRef.current[path]\n if (\n isAsync(props.onChangeValidator) ||\n isAsync(props.onBlurValidator)\n ) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<SharedAttachments<Data>>(\n id + '-attachments'\n )\n const sharedDataContext = useSharedState<ContextState>(\n id + '-data-context'\n )\n\n const setSharedData = sharedData.set\n const extendSharedData = sharedData.extend\n const extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n const internalData = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData &&\n typeof internalDataRef.current === 'object'\n ) {\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current &&\n typeof internalDataRef.current === 'object'\n ) {\n cacheRef.current.shared = sharedData.data\n\n if (isEmptyDataRef.current) {\n return (\n Array.isArray(internalDataRef.current) ? [] : clearedData\n ) as Data\n }\n\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [id, initialData, sharedData, data])\n\n internalDataRef.current =\n props.path && pointer.has(internalData, props.path)\n ? pointer.get(internalData, props.path)\n : internalData\n\n const clearData = useCallback(() => {\n isEmptyDataRef.current = true\n internalDataRef.current = ((typeof emptyData === 'function'\n ? emptyData(internalDataRef.current)\n : emptyData) ??\n (Array.isArray(internalDataRef.current) ? [] : clearedData)) as Data\n\n if (id) {\n setSharedData?.(internalDataRef.current)\n }\n\n forceUpdate()\n onClear?.()\n\n requestAnimationFrame?.(() => {\n isEmptyDataRef.current = false\n }) // Delay so the field validation error message are not shown\n }, [emptyData, id, onClear, setSharedData])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id && initialData && !sharedData.data) {\n extendSharedData?.(initialData)\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useMemo(() => {\n executeAjvValidator()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment?.({\n visibleDataHandler,\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n clearData,\n fieldConnectionsRef,\n })\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n extendAttachment,\n visibleDataHandler,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setShowAllErrors,\n setSubmitState,\n clearData,\n ])\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n const setData = useCallback(\n (newData: Data, preventUpdate = false) => {\n // - Mutate the data context\n if (transformIn) {\n newData = mutateDataHandler(newData, transformIn)\n }\n\n internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData?.(newData)\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n if (!preventUpdate) {\n forceUpdate() // Will rerender the whole form initially\n }\n },\n [\n extendSharedData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\n ]\n )\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value, { preventUpdate } = {}) => {\n if (!path) {\n return\n }\n\n const givenData = (\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n ) as Data\n\n let newData: Data = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData, path, value)\n }\n\n setData(newData, preventUpdate)\n },\n [setData]\n )\n\n /**\n * Update the data set on user interaction (unvalidated)\n */\n const handlePathChangeUnvalidated: ContextState['handlePathChange'] =\n useCallback(\n async (path, value) => {\n if (!path) {\n return null\n }\n\n updateDataValue(path, value)\n\n if (isAsync(onPathChange)) {\n await onPathChange?.(path, value)\n } else {\n onPathChange?.(path, value)\n }\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onPathChange' && itm.path === path) {\n const { callback } = itm\n if (isAsync(callback)) {\n await callback({ value })\n } else {\n callback({ value })\n }\n }\n }\n },\n [onPathChange, updateDataValue]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value = '_undefined_') => {\n if (!path) {\n return null\n }\n\n if (value !== '_undefined_') {\n handlePathChangeUnvalidated(path, value)\n }\n\n showAllErrorsRef.current = false\n\n validateData()\n\n const data = internalDataRef.current as Data\n const options = { filterData }\n const transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n for (const cb of changeHandlerStackRef.current) {\n if (isAsync(onChange)) {\n await cb(transformedData, options)\n } else {\n cb(transformedData, options)\n }\n }\n\n if (isAsync(onChange)) {\n return await onChange(transformedData, options)\n }\n\n return onChange?.(transformedData, options)\n },\n [\n filterData,\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n const changeHandlerStackRef = useRef<Array<OnChange<Data>>>([])\n const addOnChangeHandler = useCallback((callback: OnChange<Data>) => {\n const exists = changeHandlerStackRef.current.some((cb) => {\n return callback === cb\n })\n if (!exists) {\n changeHandlerStackRef.current.push(callback)\n }\n }, [])\n\n // - Mounted fields\n const setMountedFieldState = useCallback(\n (path: Path, state: MountState) => {\n if (!mountedFieldsRef.current[path]) {\n mountedFieldsRef.current[path] = { ...state }\n } else {\n Object.assign(mountedFieldsRef.current[path], state)\n }\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onMount' && itm.path === path) {\n const { callback } = itm\n callback()\n }\n }\n },\n []\n )\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined, customStatus: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behavior if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehavior || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const item of fieldEventListenersRef.current) {\n const { path, type, callback } = item\n if (\n type === 'onSubmit' &&\n mountedFieldsRef.current[path]?.isMounted\n ) {\n // Call all submit listener callbacks (e.g. to validate fields)\n if (asyncBehaviorIsEnabled) {\n await callback()\n } else {\n callback()\n }\n }\n }\n }\n\n let result: EventStateObject\n\n if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let submitResult: OnSubmitReturn\n try {\n if (isolate) {\n submitResult = await onCommit?.(internalDataRef.current, {\n clearData,\n })\n } else {\n submitResult = await onSubmit()\n }\n\n if (submitResult instanceof Error) {\n throw submitResult\n }\n } catch (error) {\n submitResult = { error }\n }\n\n result = submitResult as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n if (result?.error) {\n setFormState('abort')\n } else if (keepPending.current !== true) {\n setFormState('complete')\n }\n }\n\n // Force the state to be set by a custom status\n if (result?.['status']) {\n setFormState(result?.['status'])\n }\n\n if (\n result?.error ||\n result?.warning ||\n result?.info ||\n result?.customStatus\n ) {\n setSubmitState(result)\n }\n } else {\n if (asyncBehaviorIsEnabled) {\n window.requestAnimationFrame(() => {\n setFormState(undefined)\n })\n\n if (!skipFieldValidation) {\n // Add a event listener to continue the submit after the pending state is resolved\n onSubmitContinueRef.current = () => {\n window.requestAnimationFrame(() => {\n // Do not call the validators again,\n // because we already did it in the first call\n // If they are async, we wait for them to finish anyway\n handleSubmitCall({ ...args, skipFieldValidation: true })\n })\n }\n }\n }\n\n onSubmitRequest?.()\n\n setShowAllErrors(true)\n }\n\n return result\n },\n [\n clearData,\n hasErrors,\n hasFieldState,\n hasFieldWithAsyncValidator,\n isolate,\n onCommit,\n onSubmitRequest,\n setFormState,\n setShowAllErrors,\n setSubmitState,\n ]\n )\n\n const handleSubmitListenersRef = useRef<Array<HandleSubmitCallback>>([])\n const setHandleSubmit: ContextState['setHandleSubmit'] = useCallback(\n (callback, { remove = false } = {}) => {\n const listeners = handleSubmitListenersRef.current\n if (remove) {\n handleSubmitListenersRef.current = listeners.filter(\n (item) => item !== callback\n )\n } else if (!listeners.includes(callback)) {\n listeners.push(callback)\n }\n },\n []\n )\n const handleSubmitListeners = useCallback(() => {\n let stop = false\n const preventSubmit = () => (stop = true)\n handleSubmitListenersRef.current.forEach((cb) => {\n cb({ preventSubmit })\n })\n return stop\n }, [])\n\n const getSubmitData = useCallback(() => {\n // - Mutate the data context\n const data = internalDataRef.current\n const mutatedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n // @deprecated – can be removed in v11 (use only mutatedData instead)\n const filteredData = filterSubmitData\n ? filterDataHandler(mutatedData, filterSubmitData)\n : mutatedData\n\n return filteredData\n }, [\n filterDataHandler,\n filterSubmitData,\n mutateDataHandler,\n transformOut,\n ])\n\n const getSubmitParams = useCallback(() => {\n const reduceToVisibleFields: VisibleDataHandler<Data> = (\n data,\n options\n ) => {\n return visibleDataHandler(\n transformOut ? mutateDataHandler(data, transformOut) : data,\n options\n )\n }\n\n const transformData = (data: Data, handler: TransformData) => {\n return mutateDataHandler(data, handler) as TransformData\n }\n\n const formElement = formElementRef.current\n const params: OnSubmitParams = {\n filterData,\n reduceToVisibleFields,\n transformData,\n resetForm: () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n },\n clearData,\n }\n\n return params\n }, [\n clearData,\n filterData,\n mutateDataHandler,\n sessionStorageId,\n transformOut,\n visibleDataHandler,\n ])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<\n ContextState['handleSubmit']\n >(async () => {\n return await handleSubmitCall({\n enableAsyncBehavior: isAsync(onSubmit),\n onSubmit: async () => {\n if (handleSubmitListeners()) {\n return // stop here\n }\n\n const data = getSubmitData()\n const options = getSubmitParams()\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(data, options)\n } else {\n result = onSubmit?.(data, options)\n }\n\n const completeResult = await onSubmitComplete?.(data, result)\n if (completeResult) {\n result =\n Object.keys(result).length > 0\n ? { ...result, ...completeResult }\n : completeResult\n }\n\n if (scrollTopOnSubmit) {\n scrollToTop()\n }\n\n return result\n },\n })\n }, [\n getSubmitData,\n getSubmitParams,\n handleSubmitCall,\n handleSubmitListeners,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n ])\n\n // Collect listeners to be called during form submit\n const fieldEventListenersRef = useRef<Array<EventListenerCall>>([])\n const setFieldEventListener = useCallback(\n (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => {\n fieldEventListenersRef.current =\n fieldEventListenersRef.current.filter(\n ({ path: p, type: t, callback: c }) => {\n return !(p === path && t === type && c === callback)\n }\n )\n fieldEventListenersRef.current.push({ path, type, callback })\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n }, [schema, validateData])\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const onTimeout = useCallback(() => {\n setFormState(undefined)\n setSubmitState({\n info: undefined,\n warning: undefined,\n error: undefined,\n customStatus: undefined,\n })\n }, [setFormState, setSubmitState])\n\n const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\n const contextErrorMessages =\n errorMessages?.[locale ?? sharedLocale] || errorMessages\n\n const contextValue: ContextState = {\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n setMountedFieldState,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n setVisibleError,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldConnection,\n setFieldProps,\n setValueProps,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n clearData,\n visibleDataHandler,\n filterDataHandler,\n getSubmitData,\n getSubmitParams,\n addOnChangeHandler,\n setHandleSubmit,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n required,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n hasVisibleError: Object.keys(hasVisibleErrorRef.current).length > 0,\n fieldConnectionsRef,\n fieldDisplayValueRef,\n fieldPropsRef,\n valuePropsRef,\n mountedFieldsRef,\n snapshotsRef,\n existingFieldsRef,\n formElementRef,\n isEmptyDataRef,\n fieldErrorRef,\n ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n internalDataRef,\n props,\n ...rest,\n }\n\n if (id) {\n sharedDataContext.set(contextValue)\n }\n\n return (\n <DataContext.Provider value={contextValue}>\n <FieldPropsProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: showAllErrorsRef.current,\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldPropsProvider>\n </DataContext.Provider>\n )\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<JsonObject>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<JsonObject>['asyncSubmitTimeout']\n formState: ContextState['formState']\n waitFor: boolean\n onTimeout: () => void\n}\n\nfunction useFormStatusBuffer(props: FormStatusBufferProps) {\n const {\n formState,\n waitFor,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n } = props || {}\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const stateRef = useRef<SubmitState>()\n const nowRef = useRef<number | null>(null)\n const timeoutRef = useRef<{\n complete?: NodeJS.Timeout | null\n reset?: NodeJS.Timeout | null\n timeout?: NodeJS.Timeout | null\n }>({})\n\n const setState = useCallback(\n (state: SubmitState) => {\n stateRef.current = state\n forceUpdate()\n },\n [forceUpdate]\n )\n\n const clear = useCallback(() => {\n for (const key in timeoutRef.current) {\n clearTimeout(timeoutRef.current[key])\n }\n }, [])\n\n const hadCompleteRef = useRef(false)\n const activeElementRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n // This offset is used to calculate the delay,\n // which ensures that the form state is displayed for at least minimumAsyncBehaviorTime duration.\n // If the form was 'pending' for less than minimumAsyncBehaviorTime,\n // the delay will be the remaining time to reach minimumAsyncBehaviorTime.\n const isTest = process.env.NODE_ENV === 'test'\n const minimum =\n minimumAsyncBehaviorTime ??\n // make it testable\n (isTest ? 1 : 1000)\n\n if (stateRef.current && formState === 'error') {\n clear()\n setState(undefined)\n return\n }\n\n if (formState === 'abort') {\n clear()\n setState('abort')\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, minimum)\n return\n }\n\n if (formState === 'complete') {\n hadCompleteRef.current = true\n }\n\n if (formState === 'pending' && stateRef.current !== 'pending') {\n activeElementRef.current = document.activeElement as HTMLElement\n clear()\n nowRef.current = Date.now()\n hadCompleteRef.current = false\n setState('pending')\n } else if (stateRef.current === 'pending') {\n const offset = Math.max(Date.now() - nowRef.current)\n const delay = isTest ? minimum : Math.max(minimum - offset, 0)\n\n if (!waitFor) {\n timeoutRef.current.complete = setTimeout(() => {\n if (hadCompleteRef.current) {\n setState('complete')\n }\n window.requestAnimationFrame(() => {\n activeElementRef.current?.focus?.()\n })\n }, delay)\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n clear()\n }, delay + minimum)\n }\n }\n\n if (stateRef.current === 'pending') {\n timeoutRef.current.timeout = setTimeout(() => {\n clear()\n setState(undefined)\n onTimeout?.()\n }, asyncSubmitTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncSubmitTimeout,\n onTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n\nexport const clearedData = Object.freeze({})\n"],"mappings":"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"}
|
|
@@ -32,6 +32,7 @@ function BankAccountNumber(props) {
|
|
|
32
32
|
validate = true,
|
|
33
33
|
omitMask,
|
|
34
34
|
validator,
|
|
35
|
+
onChangeValidator = validator,
|
|
35
36
|
onBlurValidator = bankAccountNumberValidator,
|
|
36
37
|
label: labelProp,
|
|
37
38
|
width
|
|
@@ -45,7 +46,7 @@ function BankAccountNumber(props) {
|
|
|
45
46
|
mask,
|
|
46
47
|
width: width !== null && width !== void 0 ? width : 'medium',
|
|
47
48
|
inputMode: 'numeric',
|
|
48
|
-
|
|
49
|
+
onChangeValidator: validate ? onChangeValidator : undefined,
|
|
49
50
|
onBlurValidator: validate ? onBlurValidatorToUse : undefined,
|
|
50
51
|
exportValidators: {
|
|
51
52
|
bankAccountNumberValidator
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BankAccountNumber.js","names":["React","useCallback","useMemo","StringField","useTranslation","BankAccountNumber","props","errorBankAccountNumber","errorBankAccountNumberLength","errorRequired","label","errorMessages","_objectSpread","bankAccountNumberValidator","value","undefined","bankAccountNoIs11Digits","length","Error","isValidAccountNumber","validate","omitMask","validator","onBlurValidator","labelProp","width","mask","onBlurValidatorToUse","StringFieldProps","className","inputMode","exportValidators","createElement","digits","checkDigit","sum","i","parseInt","charAt","result","finalCheckDigit","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/BankAccountNumber/BankAccountNumber.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\n\nimport useTranslation from '../../hooks/useTranslation'\nimport { Validator } from '../../types'\n\nexport type Props = Omit<StringFieldProps, 'onBlurValidator'> & {\n validate?: boolean\n omitMask?: boolean\n onBlurValidator?: Validator<string> | false\n}\n\nfunction BankAccountNumber(props: Props) {\n const {\n errorBankAccountNumber,\n errorBankAccountNumberLength,\n errorRequired,\n label,\n } = useTranslation().BankAccountNumber\n\n const errorMessages = useMemo(() => {\n return {\n 'Field.errorRequired': errorRequired,\n 'Field.errorPattern': errorBankAccountNumber,\n ...props.errorMessages,\n }\n }, [errorBankAccountNumber, errorRequired, props.errorMessages])\n\n const bankAccountNumberValidator = useCallback(\n (value: string) => {\n if (value !== undefined) {\n const bankAccountNoIs11Digits = value?.length === 11\n\n if (!bankAccountNoIs11Digits) {\n return Error(errorBankAccountNumberLength)\n }\n\n if (bankAccountNoIs11Digits && !isValidAccountNumber(value)) {\n return Error(errorBankAccountNumber)\n }\n }\n },\n [errorBankAccountNumber, errorBankAccountNumberLength]\n )\n\n const {\n validate = true,\n omitMask,\n validator,\n onBlurValidator = bankAccountNumberValidator,\n label: labelProp,\n width,\n } = props\n\n const mask = useMemo(\n () =>\n omitMask\n ? [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ]\n : [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ],\n [omitMask]\n )\n\n const onBlurValidatorToUse =\n onBlurValidator === false ? undefined : onBlurValidator\n\n const StringFieldProps: StringFieldProps = {\n ...props,\n className: 'dnb-forms-field-bank-account-number',\n label: labelProp ?? label,\n errorMessages,\n mask,\n width: width ?? 'medium',\n inputMode: 'numeric',\n
|
|
1
|
+
{"version":3,"file":"BankAccountNumber.js","names":["React","useCallback","useMemo","StringField","useTranslation","BankAccountNumber","props","errorBankAccountNumber","errorBankAccountNumberLength","errorRequired","label","errorMessages","_objectSpread","bankAccountNumberValidator","value","undefined","bankAccountNoIs11Digits","length","Error","isValidAccountNumber","validate","omitMask","validator","onChangeValidator","onBlurValidator","labelProp","width","mask","onBlurValidatorToUse","StringFieldProps","className","inputMode","exportValidators","createElement","digits","checkDigit","sum","i","parseInt","charAt","result","finalCheckDigit","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/BankAccountNumber/BankAccountNumber.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\n\nimport useTranslation from '../../hooks/useTranslation'\nimport { Validator } from '../../types'\n\nexport type Props = Omit<StringFieldProps, 'onBlurValidator'> & {\n validate?: boolean\n omitMask?: boolean\n onBlurValidator?: Validator<string> | false\n}\n\nfunction BankAccountNumber(props: Props) {\n const {\n errorBankAccountNumber,\n errorBankAccountNumberLength,\n errorRequired,\n label,\n } = useTranslation().BankAccountNumber\n\n const errorMessages = useMemo(() => {\n return {\n 'Field.errorRequired': errorRequired,\n 'Field.errorPattern': errorBankAccountNumber,\n ...props.errorMessages,\n }\n }, [errorBankAccountNumber, errorRequired, props.errorMessages])\n\n const bankAccountNumberValidator = useCallback(\n (value: string) => {\n if (value !== undefined) {\n const bankAccountNoIs11Digits = value?.length === 11\n\n if (!bankAccountNoIs11Digits) {\n return Error(errorBankAccountNumberLength)\n }\n\n if (bankAccountNoIs11Digits && !isValidAccountNumber(value)) {\n return Error(errorBankAccountNumber)\n }\n }\n },\n [errorBankAccountNumber, errorBankAccountNumberLength]\n )\n\n const {\n validate = true,\n omitMask,\n // Deprecated – can be removed in v11\n validator,\n onChangeValidator = validator,\n onBlurValidator = bankAccountNumberValidator,\n label: labelProp,\n width,\n } = props\n\n const mask = useMemo(\n () =>\n omitMask\n ? [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ]\n : [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ],\n [omitMask]\n )\n\n const onBlurValidatorToUse =\n onBlurValidator === false ? undefined : onBlurValidator\n\n const StringFieldProps: StringFieldProps = {\n ...props,\n className: 'dnb-forms-field-bank-account-number',\n label: labelProp ?? label,\n errorMessages,\n mask,\n width: width ?? 'medium',\n inputMode: 'numeric',\n onChangeValidator: validate ? onChangeValidator : undefined,\n onBlurValidator: validate ? onBlurValidatorToUse : undefined,\n exportValidators: { bankAccountNumberValidator },\n }\n\n return <StringField {...StringFieldProps} />\n}\n\nfunction isValidAccountNumber(digits: string) {\n let checkDigit = 2\n let sum = 0\n\n for (let i = digits.length - 2; i >= 0; --i) {\n sum += parseInt(digits.charAt(i)) * checkDigit\n\n checkDigit += 1\n\n if (checkDigit > 7) {\n checkDigit = 2\n }\n }\n\n const result = 11 - (sum % 11)\n const finalCheckDigit = result === 11 ? 0 : result\n\n return parseInt(digits.charAt(digits.length - 1), 10) === finalCheckDigit\n}\n\nBankAccountNumber._supportsSpacingProps = true\nexport default BankAccountNumber\n"],"mappings":"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"}
|
|
@@ -61,8 +61,9 @@ function NationalIdentityNumber(props) {
|
|
|
61
61
|
const {
|
|
62
62
|
validate = true,
|
|
63
63
|
omitMask,
|
|
64
|
-
onBlurValidator = dnrAndFnrValidator,
|
|
65
64
|
validator,
|
|
65
|
+
onChangeValidator = validator,
|
|
66
|
+
onBlurValidator = dnrAndFnrValidator,
|
|
66
67
|
width,
|
|
67
68
|
label: labelProp
|
|
68
69
|
} = props;
|
|
@@ -74,7 +75,7 @@ function NationalIdentityNumber(props) {
|
|
|
74
75
|
mask,
|
|
75
76
|
width: width !== null && width !== void 0 ? width : 'medium',
|
|
76
77
|
inputMode: 'numeric',
|
|
77
|
-
|
|
78
|
+
onChangeValidator: validate ? onChangeValidator : undefined,
|
|
78
79
|
onBlurValidator: validate ? onBlurValidatorToUse : undefined,
|
|
79
80
|
exportValidators: {
|
|
80
81
|
dnrValidator,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NationalIdentityNumber.js","names":["React","useCallback","useMemo","StringField","dnr","fnr","FormError","useTranslation","NationalIdentityNumber","props","translations","label","errorRequired","errorFnr","errorFnrLength","errorDnr","errorDnrLength","errorMessages","_objectSpread","identificationNumberIsOfLength","identificationNumber","length","fnrValidator","value","undefined","Number","parseInt","substring","Error","fnrIs11Digits","status","dnrValidator","dnrIs11Digits","dnrAndFnrValidator","dnrValidationPattern","RegExp","test","validate","omitMask","onBlurValidator","validator","width","labelProp","mask","Array","fill","onBlurValidatorToUse","StringFieldProps","inputMode","exportValidators","createElement","getAgeByBirthDate","birthDate","today","Date","age","getFullYear","month","getMonth","day","getDate","getBirthDateByFnrOrDnr","yearPart","centuryNumber","isBornIn20XX","year","differentiatorValue","isDnr","createMinimumAgeValidator","identificationNumberIs7DigitsOrMore","validationRule","date","messageValues","String","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport { dnr, fnr } from '@navikt/fnrvalidator'\nimport { Validator } from '../../types'\nimport { FormError } from '../../utils'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type Props = Omit<StringFieldProps, 'onBlurValidator'> & {\n omitMask?: boolean\n validate?: boolean\n onBlurValidator?: Validator<string> | false\n}\n\nfunction NationalIdentityNumber(props: Props) {\n const translations = useTranslation().NationalIdentityNumber\n const {\n label,\n errorRequired,\n errorFnr,\n errorFnrLength,\n errorDnr,\n errorDnrLength,\n } = translations\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': errorRequired,\n 'Field.errorPattern': errorFnr,\n ...props.errorMessages,\n }),\n [errorRequired, errorFnr, props.errorMessages]\n )\n\n const identificationNumberIsOfLength = (\n identificationNumber: string,\n length: number\n ) => {\n return identificationNumber?.length === length\n }\n\n const fnrValidator = useCallback(\n (value: string) => {\n if (value !== undefined) {\n if (Number.parseInt(value.substring(0, 1)) > 3) {\n return Error(errorFnr)\n }\n\n const fnrIs11Digits = identificationNumberIsOfLength(value, 11)\n\n if (!fnrIs11Digits) {\n return Error(errorFnrLength)\n }\n if (fnrIs11Digits && fnr(value).status === 'invalid') {\n return Error(errorFnr)\n }\n }\n },\n [errorFnr, errorFnrLength]\n )\n\n const dnrValidator = useCallback(\n (value: string) => {\n if (value !== undefined) {\n if (Number.parseInt(value.substring(0, 1)) < 4) {\n return Error(errorDnr)\n }\n\n const dnrIs11Digits = identificationNumberIsOfLength(value, 11)\n\n if (!dnrIs11Digits) {\n return Error(errorDnrLength)\n }\n if (dnrIs11Digits && dnr(value).status === 'invalid') {\n return Error(errorDnr)\n }\n }\n },\n [errorDnr, errorDnrLength]\n )\n\n const dnrAndFnrValidator = useCallback(\n (value: string) => {\n const dnrValidationPattern = '^[4-9].*' // 1st num is increased by 4. i.e, if 01.01.1985, D number would be 410185.\n\n if (new RegExp(dnrValidationPattern).test(value)) {\n return dnrValidator(value)\n }\n return fnrValidator(value)\n },\n [dnrValidator, fnrValidator]\n )\n\n const {\n validate = true,\n omitMask,\n onBlurValidator = dnrAndFnrValidator,\n validator,\n width,\n label: labelProp,\n } = props\n\n const mask = useMemo(\n () =>\n omitMask\n ? Array(11).fill(/\\d/)\n : [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ],\n [omitMask]\n )\n\n const onBlurValidatorToUse =\n onBlurValidator === false ? undefined : onBlurValidator\n\n const StringFieldProps: StringFieldProps = {\n ...props,\n label: labelProp ?? label,\n errorMessages,\n mask,\n width: width ?? 'medium',\n inputMode: 'numeric',\n validator: validate ? validator : undefined,\n onBlurValidator: validate ? onBlurValidatorToUse : undefined,\n exportValidators: {\n dnrValidator,\n fnrValidator,\n dnrAndFnrValidator,\n },\n }\n\n return <StringField {...StringFieldProps} />\n}\n\nexport function getAgeByBirthDate(birthDate: Date): number {\n const today = new Date()\n const age = today.getFullYear() - birthDate.getFullYear()\n const month = today.getMonth() - birthDate.getMonth()\n const day = today.getDate() - birthDate.getDate()\n\n if (month < 0 || (month === 0 && day < 0)) {\n return age - 1\n }\n\n return age\n}\n\nexport function getBirthDateByFnrOrDnr(value: string) {\n if (value === undefined) {\n return // stop here\n }\n\n const yearPart = value.substring(4, 6)\n const centuryNumber = Number.parseInt(value.substring(6, 7))\n\n const isBornIn20XX = centuryNumber >= 5\n const year = isBornIn20XX ? `20${yearPart}` : `19${yearPart}`\n const month = Number.parseInt(value.substring(2, 4))\n\n const differentiatorValue =\n value.length > 0 ? Number.parseInt(value.substring(0, 1)) : undefined\n const isDnr = differentiatorValue && differentiatorValue > 3\n\n const day = isDnr\n ? Number.parseInt(value.substring(0, 2)) - 40\n : Number.parseInt(value.substring(0, 2))\n\n return new Date(Number.parseInt(year), month - 1, day)\n}\n\nexport function createMinimumAgeValidator(age: number) {\n return (value: string) => {\n if (typeof value !== 'string') {\n return // stop here\n }\n\n const identificationNumberIs7DigitsOrMore = value?.length >= 7\n\n if (!identificationNumberIs7DigitsOrMore) {\n return new FormError(\n 'NationalIdentityNumber.errorMinimumAgeValidatorLength',\n {\n validationRule: 'errorMinimumAgeValidatorLength', // \"validationRule\" Will be removed in future PR\n }\n )\n }\n\n if (identificationNumberIs7DigitsOrMore) {\n const date = getBirthDateByFnrOrDnr(value)\n if (getAgeByBirthDate(date) >= age) {\n return // stop here\n }\n }\n\n return new FormError(\n 'NationalIdentityNumber.errorMinimumAgeValidator',\n {\n validationRule: 'errorMinimumAgeValidator', // \"validationRule\" Will be removed in future PR\n messageValues: { age: String(age) },\n }\n )\n }\n}\n\nNationalIdentityNumber._supportsSpacingProps = true\nexport default NationalIdentityNumber\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NationalIdentityNumber.js","names":["React","useCallback","useMemo","StringField","dnr","fnr","FormError","useTranslation","NationalIdentityNumber","props","translations","label","errorRequired","errorFnr","errorFnrLength","errorDnr","errorDnrLength","errorMessages","_objectSpread","identificationNumberIsOfLength","identificationNumber","length","fnrValidator","value","undefined","Number","parseInt","substring","Error","fnrIs11Digits","status","dnrValidator","dnrIs11Digits","dnrAndFnrValidator","dnrValidationPattern","RegExp","test","validate","omitMask","validator","onChangeValidator","onBlurValidator","width","labelProp","mask","Array","fill","onBlurValidatorToUse","StringFieldProps","inputMode","exportValidators","createElement","getAgeByBirthDate","birthDate","today","Date","age","getFullYear","month","getMonth","day","getDate","getBirthDateByFnrOrDnr","yearPart","centuryNumber","isBornIn20XX","year","differentiatorValue","isDnr","createMinimumAgeValidator","identificationNumberIs7DigitsOrMore","validationRule","date","messageValues","String","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport { dnr, fnr } from '@navikt/fnrvalidator'\nimport { Validator } from '../../types'\nimport { FormError } from '../../utils'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type Props = Omit<StringFieldProps, 'onBlurValidator'> & {\n omitMask?: boolean\n validate?: boolean\n onBlurValidator?: Validator<string> | false\n}\n\nfunction NationalIdentityNumber(props: Props) {\n const translations = useTranslation().NationalIdentityNumber\n const {\n label,\n errorRequired,\n errorFnr,\n errorFnrLength,\n errorDnr,\n errorDnrLength,\n } = translations\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': errorRequired,\n 'Field.errorPattern': errorFnr,\n ...props.errorMessages,\n }),\n [errorRequired, errorFnr, props.errorMessages]\n )\n\n const identificationNumberIsOfLength = (\n identificationNumber: string,\n length: number\n ) => {\n return identificationNumber?.length === length\n }\n\n const fnrValidator = useCallback(\n (value: string) => {\n if (value !== undefined) {\n if (Number.parseInt(value.substring(0, 1)) > 3) {\n return Error(errorFnr)\n }\n\n const fnrIs11Digits = identificationNumberIsOfLength(value, 11)\n\n if (!fnrIs11Digits) {\n return Error(errorFnrLength)\n }\n if (fnrIs11Digits && fnr(value).status === 'invalid') {\n return Error(errorFnr)\n }\n }\n },\n [errorFnr, errorFnrLength]\n )\n\n const dnrValidator = useCallback(\n (value: string) => {\n if (value !== undefined) {\n if (Number.parseInt(value.substring(0, 1)) < 4) {\n return Error(errorDnr)\n }\n\n const dnrIs11Digits = identificationNumberIsOfLength(value, 11)\n\n if (!dnrIs11Digits) {\n return Error(errorDnrLength)\n }\n if (dnrIs11Digits && dnr(value).status === 'invalid') {\n return Error(errorDnr)\n }\n }\n },\n [errorDnr, errorDnrLength]\n )\n\n const dnrAndFnrValidator = useCallback(\n (value: string) => {\n const dnrValidationPattern = '^[4-9].*' // 1st num is increased by 4. i.e, if 01.01.1985, D number would be 410185.\n\n if (new RegExp(dnrValidationPattern).test(value)) {\n return dnrValidator(value)\n }\n return fnrValidator(value)\n },\n [dnrValidator, fnrValidator]\n )\n\n const {\n validate = true,\n omitMask,\n // Deprecated – can be removed in v11\n validator,\n onChangeValidator = validator,\n onBlurValidator = dnrAndFnrValidator,\n width,\n label: labelProp,\n } = props\n\n const mask = useMemo(\n () =>\n omitMask\n ? Array(11).fill(/\\d/)\n : [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ],\n [omitMask]\n )\n\n const onBlurValidatorToUse =\n onBlurValidator === false ? undefined : onBlurValidator\n\n const StringFieldProps: StringFieldProps = {\n ...props,\n label: labelProp ?? label,\n errorMessages,\n mask,\n width: width ?? 'medium',\n inputMode: 'numeric',\n onChangeValidator: validate ? onChangeValidator : undefined,\n onBlurValidator: validate ? onBlurValidatorToUse : undefined,\n exportValidators: {\n dnrValidator,\n fnrValidator,\n dnrAndFnrValidator,\n },\n }\n\n return <StringField {...StringFieldProps} />\n}\n\nexport function getAgeByBirthDate(birthDate: Date): number {\n const today = new Date()\n const age = today.getFullYear() - birthDate.getFullYear()\n const month = today.getMonth() - birthDate.getMonth()\n const day = today.getDate() - birthDate.getDate()\n\n if (month < 0 || (month === 0 && day < 0)) {\n return age - 1\n }\n\n return age\n}\n\nexport function getBirthDateByFnrOrDnr(value: string) {\n if (value === undefined) {\n return // stop here\n }\n\n const yearPart = value.substring(4, 6)\n const centuryNumber = Number.parseInt(value.substring(6, 7))\n\n const isBornIn20XX = centuryNumber >= 5\n const year = isBornIn20XX ? `20${yearPart}` : `19${yearPart}`\n const month = Number.parseInt(value.substring(2, 4))\n\n const differentiatorValue =\n value.length > 0 ? Number.parseInt(value.substring(0, 1)) : undefined\n const isDnr = differentiatorValue && differentiatorValue > 3\n\n const day = isDnr\n ? Number.parseInt(value.substring(0, 2)) - 40\n : Number.parseInt(value.substring(0, 2))\n\n return new Date(Number.parseInt(year), month - 1, day)\n}\n\nexport function createMinimumAgeValidator(age: number) {\n return (value: string) => {\n if (typeof value !== 'string') {\n return // stop here\n }\n\n const identificationNumberIs7DigitsOrMore = value?.length >= 7\n\n if (!identificationNumberIs7DigitsOrMore) {\n return new FormError(\n 'NationalIdentityNumber.errorMinimumAgeValidatorLength',\n {\n validationRule: 'errorMinimumAgeValidatorLength', // \"validationRule\" Will be removed in future PR\n }\n )\n }\n\n if (identificationNumberIs7DigitsOrMore) {\n const date = getBirthDateByFnrOrDnr(value)\n if (getAgeByBirthDate(date) >= age) {\n return // stop here\n }\n }\n\n return new FormError(\n 'NationalIdentityNumber.errorMinimumAgeValidator',\n {\n validationRule: 'errorMinimumAgeValidator', // \"validationRule\" Will be removed in future PR\n messageValues: { age: String(age) },\n }\n )\n }\n}\n\nNationalIdentityNumber._supportsSpacingProps = true\nexport default NationalIdentityNumber\n"],"mappings":"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"}
|
|
@@ -9,6 +9,6 @@ export default function Option({
|
|
|
9
9
|
return React.createElement("span", {
|
|
10
10
|
className: classnames('dnb-forms-field-option', className),
|
|
11
11
|
role: "option"
|
|
12
|
-
},
|
|
12
|
+
}, title !== null && title !== void 0 ? title : children, text);
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=Option.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Option.js","names":["React","classnames","Option","className","title","text","children","createElement","role"],"sources":["../../../../../../src/extensions/forms/Field/Option/Option.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport type { FieldProps } from '../../types'\n\nexport type Props = FieldProps<number | string> & {\n title?: React.ReactNode\n text?: React.ReactNode\n children?: React.ReactNode\n}\n\nexport default function Option({\n className,\n title,\n text,\n children,\n}: Props) {\n return (\n <span\n className={classnames('dnb-forms-field-option', className)}\n // eslint-disable-next-line jsx-a11y/role-has-required-aria-props\n role=\"option\"\n >\n {
|
|
1
|
+
{"version":3,"file":"Option.js","names":["React","classnames","Option","className","title","text","children","createElement","role"],"sources":["../../../../../../src/extensions/forms/Field/Option/Option.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport type { FieldProps } from '../../types'\n\nexport type Props = FieldProps<number | string> & {\n title?: React.ReactNode\n text?: React.ReactNode\n children?: React.ReactNode\n}\n\nexport default function Option({\n className,\n title,\n text,\n children,\n}: Props) {\n return (\n <span\n className={classnames('dnb-forms-field-option', className)}\n // eslint-disable-next-line jsx-a11y/role-has-required-aria-props\n role=\"option\"\n >\n {title ?? children}\n {text}\n </span>\n )\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AASnC,eAAe,SAASC,MAAMA,CAAC;EAC7BC,SAAS;EACTC,KAAK;EACLC,IAAI;EACJC;AACK,CAAC,EAAE;EACR,OACEN,KAAA,CAAAO,aAAA;IACEJ,SAAS,EAAEF,UAAU,CAAC,wBAAwB,EAAEE,SAAS,CAAE;IAE3DK,IAAI,EAAC;EAAQ,GAEZJ,KAAK,aAALA,KAAK,cAALA,KAAK,GAAIE,QAAQ,EACjBD,IACG,CAAC;AAEX"}
|
|
@@ -6,18 +6,23 @@ export const OptionProperties = {
|
|
|
6
6
|
status: 'optional'
|
|
7
7
|
},
|
|
8
8
|
title: {
|
|
9
|
-
doc: '
|
|
10
|
-
type: 'string',
|
|
9
|
+
doc: 'Title for the option. Overrides `children`.',
|
|
10
|
+
type: ['string', 'React.Node'],
|
|
11
11
|
status: 'optional'
|
|
12
12
|
},
|
|
13
13
|
text: {
|
|
14
14
|
doc: 'Secondary text.',
|
|
15
|
-
type: 'string',
|
|
15
|
+
type: ['string', 'React.Node'],
|
|
16
|
+
status: 'optional'
|
|
17
|
+
},
|
|
18
|
+
disabled: {
|
|
19
|
+
doc: 'Will disable the option.',
|
|
20
|
+
type: 'boolean',
|
|
16
21
|
status: 'optional'
|
|
17
22
|
},
|
|
18
23
|
help: FieldProperties.help,
|
|
19
24
|
children: {
|
|
20
|
-
doc: 'Optional way to provide `title`.',
|
|
25
|
+
doc: 'Optional way to provide `title`. Will be ignored if `title` is used.',
|
|
21
26
|
type: 'React.Node',
|
|
22
27
|
status: 'optional'
|
|
23
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OptionDocs.js","names":["FieldProperties","OptionProperties","value","doc","type","status","title","text","help","children"],"sources":["../../../../../../src/extensions/forms/Field/Option/OptionDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { FieldProperties } from '../FieldDocs'\n\nexport const OptionProperties: PropertiesTableProps = {\n value: {\n doc: 'Value for this option.',\n type: ['string', 'number'],\n status: 'optional',\n },\n title: {\n doc: '
|
|
1
|
+
{"version":3,"file":"OptionDocs.js","names":["FieldProperties","OptionProperties","value","doc","type","status","title","text","disabled","help","children"],"sources":["../../../../../../src/extensions/forms/Field/Option/OptionDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { FieldProperties } from '../FieldDocs'\n\nexport const OptionProperties: PropertiesTableProps = {\n value: {\n doc: 'Value for this option.',\n type: ['string', 'number'],\n status: 'optional',\n },\n title: {\n doc: 'Title for the option. Overrides `children`.',\n type: ['string', 'React.Node'],\n status: 'optional',\n },\n text: {\n doc: 'Secondary text.',\n type: ['string', 'React.Node'],\n status: 'optional',\n },\n disabled: {\n doc: 'Will disable the option.',\n type: 'boolean',\n status: 'optional',\n },\n help: FieldProperties.help,\n children: {\n doc: 'Optional way to provide `title`. Will be ignored if `title` is used.',\n type: 'React.Node',\n status: 'optional',\n },\n}\n"],"mappings":"AACA,SAASA,eAAe,QAAQ,cAAc;AAE9C,OAAO,MAAMC,gBAAsC,GAAG;EACpDC,KAAK,EAAE;IACLC,GAAG,EAAE,wBAAwB;IAC7BC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDC,KAAK,EAAE;IACLH,GAAG,EAAE,6CAA6C;IAClDC,IAAI,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;IAC9BC,MAAM,EAAE;EACV,CAAC;EACDE,IAAI,EAAE;IACJJ,GAAG,EAAE,iBAAiB;IACtBC,IAAI,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;IAC9BC,MAAM,EAAE;EACV,CAAC;EACDG,QAAQ,EAAE;IACRL,GAAG,EAAE,0BAA0B;IAC/BC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDI,IAAI,EAAET,eAAe,CAACS,IAAI;EAC1BC,QAAQ,EAAE;IACRP,GAAG,EAAE,sEAAsE;IAC3EC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV;AACF,CAAC"}
|