@dnb/eufemia 10.57.0 → 10.58.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -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/card/style/dnb-card.css +1 -0
- package/cjs/components/card/style/dnb-card.min.css +1 -1
- package/cjs/components/card/style/dnb-card.scss +1 -0
- 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/date-picker/DatePickerContext.d.ts +1 -1
- package/cjs/components/date-picker/DatePickerContext.js.map +1 -1
- package/cjs/components/date-picker/DatePickerFooter.js +5 -5
- package/cjs/components/date-picker/DatePickerFooter.js.map +1 -1
- package/cjs/components/date-picker/DatePickerProvider.js +2 -2
- package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
- package/cjs/components/date-picker/hooks/useDates.d.ts +1 -1
- package/cjs/components/date-picker/hooks/useDates.js +94 -23
- package/cjs/components/date-picker/hooks/useDates.js.map +1 -1
- package/cjs/components/dialog/parts/DialogAction.js +18 -16
- package/cjs/components/dialog/parts/DialogAction.js.map +1 -1
- package/cjs/components/number-format/NumberUtils.js +15 -15
- package/cjs/components/number-format/NumberUtils.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +8 -5
- package/cjs/extensions/forms/DataContext/Context.js +0 -1
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +4 -3
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +2 -2
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Date/Date.js +2 -2
- package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Field/Provider/FieldProvider.d.ts +3 -2
- package/cjs/extensions/forms/Field/Provider/FieldProvider.js.map +1 -1
- package/cjs/extensions/forms/Field/Upload/Upload.js +11 -3
- package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/cjs/extensions/forms/Form/Card/Card.d.ts +3 -0
- package/cjs/extensions/forms/Form/Card/Card.js +1 -0
- package/cjs/extensions/forms/Form/Card/Card.js.map +1 -1
- package/cjs/extensions/forms/Form/Element/Element.d.ts +2 -2
- package/cjs/extensions/forms/Form/Element/Element.js +50 -11
- package/cjs/extensions/forms/Form/Element/Element.js.map +1 -1
- package/cjs/extensions/forms/Form/Handler/Handler.d.ts +7 -3
- package/cjs/extensions/forms/Form/Handler/Handler.js +23 -97
- package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +3 -3
- package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +1 -1
- package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/Section.d.ts +4 -4
- package/cjs/extensions/forms/Form/Section/Section.js +2 -1
- package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +1 -1
- package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/containers/SectionContainer.d.ts +1 -1
- package/cjs/extensions/forms/Form/Section/containers/SectionContainer.js +1 -0
- package/cjs/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/style/dnb-form-section.css +10 -6
- package/cjs/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
- package/cjs/extensions/forms/Form/Section/style/dnb-form-section.scss +13 -7
- package/cjs/extensions/forms/Form/Section/style/themes/dnb-section-theme-sbanken.css +3 -0
- package/cjs/extensions/forms/Form/Section/style/themes/dnb-section-theme-sbanken.min.css +1 -0
- package/cjs/extensions/forms/Form/Section/style/themes/dnb-section-theme-sbanken.scss +7 -0
- package/cjs/extensions/forms/Form/Section/style/themes/dnb-section-theme-ui.css +4 -0
- package/cjs/extensions/forms/Form/Section/style/themes/dnb-section-theme-ui.min.css +1 -0
- package/cjs/extensions/forms/Form/Section/style/themes/dnb-section-theme-ui.scss +8 -0
- package/cjs/extensions/forms/Form/Section/style/themes/ui.d.ts +1 -0
- package/cjs/extensions/forms/Form/Section/style/themes/ui.js +4 -0
- package/cjs/extensions/forms/Form/Section/style/themes/ui.js.map +1 -0
- package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
- package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/clearData.d.ts +2 -1
- package/cjs/extensions/forms/Form/data-context/clearData.js +1 -1
- package/cjs/extensions/forms/Form/data-context/clearData.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/getData.js +1 -1
- package/cjs/extensions/forms/Form/data-context/getData.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useData.js +1 -1
- package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useValidation.js +2 -2
- package/cjs/extensions/forms/Form/data-context/useValidation.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
- package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js +9 -5
- package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/ArrayItemAreaContext.d.ts +3 -0
- package/cjs/extensions/forms/Iterate/Array/ArrayItemAreaContext.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Count/Count.d.ts +4 -3
- package/cjs/extensions/forms/Iterate/Count/Count.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js +7 -4
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +2 -2
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.d.ts +3 -1
- package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js +27 -6
- package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButtonDocs.js +5 -0
- package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButtonDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js +8 -4
- package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/RemoveButton.d.ts +2 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/RemoveButton.js +4 -3
- package/cjs/extensions/forms/Iterate/ViewContainer/RemoveButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js +3 -2
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +2 -2
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/hooks/useItem.d.ts +5 -1
- package/cjs/extensions/forms/Iterate/hooks/useItem.js.map +1 -1
- package/cjs/extensions/forms/Tools/ListAllProps.d.ts +7 -7
- package/cjs/extensions/forms/Tools/ListAllProps.js.map +1 -1
- package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js +1 -1
- package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useStep.d.ts +2 -2
- package/cjs/extensions/forms/Wizard/hooks/useStep.js +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +2 -0
- package/cjs/extensions/forms/constants/countries.js +1 -1
- package/cjs/extensions/forms/constants/countries.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-GB.d.ts +1 -0
- package/cjs/extensions/forms/constants/locales/en-GB.js +2 -1
- package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-US.d.ts +1 -0
- package/cjs/extensions/forms/constants/locales/index.d.ts +2 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.js +2 -1
- package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/cjs/extensions/forms/hooks/useDataContext.js +1 -1
- package/cjs/extensions/forms/hooks/useDataContext.js.map +1 -1
- package/cjs/extensions/forms/hooks/useSnapshot.d.ts +3 -2
- package/cjs/extensions/forms/hooks/useSnapshot.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +10 -6
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +4 -4
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/extensions/forms/utils/json-pointer/json-pointer.d.ts +2 -2
- package/cjs/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
- 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/helpers/useSharedState.d.ts +19 -13
- package/cjs/shared/helpers/useSharedState.js +23 -11
- package/cjs/shared/helpers/useSharedState.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 +291 -278
- package/cjs/style/dnb-ui-components.min.css +2 -2
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +10 -6
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +10 -6
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +306 -284
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +15 -6
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +15 -6
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +305 -284
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +14 -6
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +14 -6
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
- package/cjs/style/themes/theme-ui/ui-theme-components.css +306 -284
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +3 -3
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +15 -6
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +15 -6
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-forms.scss +1 -0
- package/components/card/style/dnb-card.css +1 -0
- package/components/card/style/dnb-card.min.css +1 -1
- package/components/card/style/dnb-card.scss +1 -0
- 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/date-picker/DatePickerContext.d.ts +1 -1
- package/components/date-picker/DatePickerContext.js.map +1 -1
- package/components/date-picker/DatePickerFooter.js +5 -5
- package/components/date-picker/DatePickerFooter.js.map +1 -1
- package/components/date-picker/DatePickerProvider.js +2 -2
- package/components/date-picker/DatePickerProvider.js.map +1 -1
- package/components/date-picker/hooks/useDates.d.ts +1 -1
- package/components/date-picker/hooks/useDates.js +95 -24
- package/components/date-picker/hooks/useDates.js.map +1 -1
- package/components/dialog/parts/DialogAction.js +19 -17
- package/components/dialog/parts/DialogAction.js.map +1 -1
- package/components/number-format/NumberUtils.js +15 -15
- package/components/number-format/NumberUtils.js.map +1 -1
- package/es/components/card/style/dnb-card.css +1 -0
- package/es/components/card/style/dnb-card.min.css +1 -1
- package/es/components/card/style/dnb-card.scss +1 -0
- 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/date-picker/DatePickerContext.d.ts +1 -1
- package/es/components/date-picker/DatePickerContext.js.map +1 -1
- package/es/components/date-picker/DatePickerFooter.js +5 -5
- package/es/components/date-picker/DatePickerFooter.js.map +1 -1
- package/es/components/date-picker/DatePickerProvider.js +2 -2
- package/es/components/date-picker/DatePickerProvider.js.map +1 -1
- package/es/components/date-picker/hooks/useDates.d.ts +1 -1
- package/es/components/date-picker/hooks/useDates.js +87 -17
- package/es/components/date-picker/hooks/useDates.js.map +1 -1
- package/es/components/dialog/parts/DialogAction.js +19 -17
- package/es/components/dialog/parts/DialogAction.js.map +1 -1
- package/es/components/number-format/NumberUtils.js +15 -15
- package/es/components/number-format/NumberUtils.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +8 -5
- package/es/extensions/forms/DataContext/Context.js +0 -1
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +4 -3
- package/es/extensions/forms/DataContext/Provider/Provider.js +3 -3
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/es/extensions/forms/Field/Date/Date.js +2 -2
- package/es/extensions/forms/Field/Date/Date.js.map +1 -1
- package/es/extensions/forms/Field/Provider/FieldProvider.d.ts +3 -2
- package/es/extensions/forms/Field/Provider/FieldProvider.js.map +1 -1
- package/es/extensions/forms/Field/Upload/Upload.js +6 -1
- package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/es/extensions/forms/Form/Card/Card.d.ts +3 -0
- package/es/extensions/forms/Form/Card/Card.js +1 -0
- package/es/extensions/forms/Form/Card/Card.js.map +1 -1
- package/es/extensions/forms/Form/Element/Element.d.ts +2 -2
- package/es/extensions/forms/Form/Element/Element.js +45 -12
- package/es/extensions/forms/Form/Element/Element.js.map +1 -1
- package/es/extensions/forms/Form/Handler/Handler.d.ts +7 -3
- package/es/extensions/forms/Form/Handler/Handler.js +24 -93
- package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/Isolation.d.ts +3 -3
- package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +1 -1
- package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
- package/es/extensions/forms/Form/Section/Section.d.ts +4 -4
- package/es/extensions/forms/Form/Section/Section.js +2 -1
- package/es/extensions/forms/Form/Section/Section.js.map +1 -1
- package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +1 -1
- package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/es/extensions/forms/Form/Section/containers/SectionContainer.d.ts +1 -1
- package/es/extensions/forms/Form/Section/containers/SectionContainer.js +1 -0
- package/es/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
- package/es/extensions/forms/Form/Section/style/dnb-form-section.css +10 -6
- package/es/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
- package/es/extensions/forms/Form/Section/style/dnb-form-section.scss +13 -7
- package/es/extensions/forms/Form/Section/style/themes/dnb-section-theme-sbanken.css +3 -0
- package/es/extensions/forms/Form/Section/style/themes/dnb-section-theme-sbanken.min.css +1 -0
- package/es/extensions/forms/Form/Section/style/themes/dnb-section-theme-sbanken.scss +7 -0
- package/es/extensions/forms/Form/Section/style/themes/dnb-section-theme-ui.css +4 -0
- package/es/extensions/forms/Form/Section/style/themes/dnb-section-theme-ui.min.css +1 -0
- package/es/extensions/forms/Form/Section/style/themes/dnb-section-theme-ui.scss +8 -0
- package/es/extensions/forms/Form/Section/style/themes/ui.d.ts +1 -0
- package/es/extensions/forms/Form/Section/style/themes/ui.js +1 -0
- package/es/extensions/forms/Form/Section/style/themes/ui.js.map +1 -0
- package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
- package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/es/extensions/forms/Form/data-context/clearData.d.ts +2 -1
- package/es/extensions/forms/Form/data-context/clearData.js +2 -2
- package/es/extensions/forms/Form/data-context/clearData.js.map +1 -1
- package/es/extensions/forms/Form/data-context/getData.js +2 -2
- package/es/extensions/forms/Form/data-context/getData.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useData.js +2 -2
- package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useValidation.js +3 -3
- package/es/extensions/forms/Form/data-context/useValidation.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
- package/es/extensions/forms/Iterate/Array/ArrayItemArea.js +9 -5
- package/es/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/ArrayItemAreaContext.d.ts +3 -0
- package/es/extensions/forms/Iterate/Array/ArrayItemAreaContext.js.map +1 -1
- package/es/extensions/forms/Iterate/Count/Count.d.ts +4 -3
- package/es/extensions/forms/Iterate/Count/Count.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.js +7 -4
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +2 -2
- package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.d.ts +3 -1
- package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js +25 -7
- package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
- package/es/extensions/forms/Iterate/RemoveButton/RemoveButtonDocs.js +5 -0
- package/es/extensions/forms/Iterate/RemoveButton/RemoveButtonDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/Toolbar/Toolbar.js +8 -4
- package/es/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/RemoveButton.d.ts +2 -1
- package/es/extensions/forms/Iterate/ViewContainer/RemoveButton.js +4 -3
- package/es/extensions/forms/Iterate/ViewContainer/RemoveButton.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js +3 -2
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +2 -2
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/hooks/useItem.d.ts +5 -1
- package/es/extensions/forms/Iterate/hooks/useItem.js.map +1 -1
- package/es/extensions/forms/Tools/ListAllProps.d.ts +7 -7
- package/es/extensions/forms/Tools/ListAllProps.js.map +1 -1
- package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js +2 -2
- package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainer.js +2 -2
- package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/es/extensions/forms/Wizard/hooks/useStep.d.ts +2 -2
- package/es/extensions/forms/Wizard/hooks/useStep.js +2 -2
- package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +2 -0
- package/es/extensions/forms/constants/countries.js +1 -1
- package/es/extensions/forms/constants/countries.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-GB.d.ts +1 -0
- package/es/extensions/forms/constants/locales/en-GB.js +2 -1
- package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-US.d.ts +1 -0
- package/es/extensions/forms/constants/locales/index.d.ts +2 -0
- package/es/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
- package/es/extensions/forms/constants/locales/nb-NO.js +2 -1
- package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/es/extensions/forms/hooks/useDataContext.js +2 -2
- package/es/extensions/forms/hooks/useDataContext.js.map +1 -1
- package/es/extensions/forms/hooks/useSnapshot.d.ts +3 -2
- package/es/extensions/forms/hooks/useSnapshot.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +10 -6
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +4 -4
- package/es/extensions/forms/types.js.map +1 -1
- package/es/extensions/forms/utils/json-pointer/json-pointer.d.ts +2 -2
- package/es/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
- 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/helpers/useSharedState.d.ts +19 -13
- package/es/shared/helpers/useSharedState.js +22 -11
- package/es/shared/helpers/useSharedState.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 +291 -278
- package/es/style/dnb-ui-components.min.css +2 -2
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +10 -6
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +10 -6
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +306 -284
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +15 -6
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +15 -6
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +305 -284
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +14 -6
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +14 -6
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
- package/es/style/themes/theme-ui/ui-theme-components.css +306 -284
- package/es/style/themes/theme-ui/ui-theme-components.min.css +3 -3
- package/es/style/themes/theme-ui/ui-theme-extensions.css +15 -6
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
- package/es/style/themes/theme-ui/ui-theme-forms.css +15 -6
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-forms.scss +1 -0
- 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 +1 -1
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +8 -5
- package/extensions/forms/DataContext/Context.js +0 -1
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +4 -3
- package/extensions/forms/DataContext/Provider/Provider.js +3 -3
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
- package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/extensions/forms/Field/Date/Date.js +2 -2
- package/extensions/forms/Field/Date/Date.js.map +1 -1
- package/extensions/forms/Field/Provider/FieldProvider.d.ts +3 -2
- package/extensions/forms/Field/Provider/FieldProvider.js.map +1 -1
- package/extensions/forms/Field/Upload/Upload.js +11 -3
- package/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/extensions/forms/Form/Card/Card.d.ts +3 -0
- package/extensions/forms/Form/Card/Card.js +1 -0
- package/extensions/forms/Form/Card/Card.js.map +1 -1
- package/extensions/forms/Form/Element/Element.d.ts +2 -2
- package/extensions/forms/Form/Element/Element.js +50 -13
- package/extensions/forms/Form/Element/Element.js.map +1 -1
- package/extensions/forms/Form/Handler/Handler.d.ts +7 -3
- package/extensions/forms/Form/Handler/Handler.js +24 -97
- package/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/extensions/forms/Form/Isolation/Isolation.d.ts +3 -3
- package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +1 -1
- package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
- package/extensions/forms/Form/Section/Section.d.ts +4 -4
- package/extensions/forms/Form/Section/Section.js +2 -1
- package/extensions/forms/Form/Section/Section.js.map +1 -1
- package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +1 -1
- package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/extensions/forms/Form/Section/containers/SectionContainer.d.ts +1 -1
- package/extensions/forms/Form/Section/containers/SectionContainer.js +1 -0
- package/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
- package/extensions/forms/Form/Section/style/dnb-form-section.css +10 -6
- package/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
- package/extensions/forms/Form/Section/style/dnb-form-section.scss +13 -7
- package/extensions/forms/Form/Section/style/themes/dnb-section-theme-sbanken.css +3 -0
- package/extensions/forms/Form/Section/style/themes/dnb-section-theme-sbanken.min.css +1 -0
- package/extensions/forms/Form/Section/style/themes/dnb-section-theme-sbanken.scss +7 -0
- package/extensions/forms/Form/Section/style/themes/dnb-section-theme-ui.css +4 -0
- package/extensions/forms/Form/Section/style/themes/dnb-section-theme-ui.min.css +1 -0
- package/extensions/forms/Form/Section/style/themes/dnb-section-theme-ui.scss +8 -0
- package/extensions/forms/Form/Section/style/themes/ui.d.ts +1 -0
- package/extensions/forms/Form/Section/style/themes/ui.js +1 -0
- package/extensions/forms/Form/Section/style/themes/ui.js.map +1 -0
- package/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
- package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/extensions/forms/Form/data-context/clearData.d.ts +2 -1
- package/extensions/forms/Form/data-context/clearData.js +2 -2
- package/extensions/forms/Form/data-context/clearData.js.map +1 -1
- package/extensions/forms/Form/data-context/getData.js +2 -2
- package/extensions/forms/Form/data-context/getData.js.map +1 -1
- package/extensions/forms/Form/data-context/useData.js +2 -2
- package/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/extensions/forms/Form/data-context/useValidation.js +3 -3
- package/extensions/forms/Form/data-context/useValidation.js.map +1 -1
- package/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
- package/extensions/forms/Iterate/Array/ArrayItemArea.js +9 -5
- package/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
- package/extensions/forms/Iterate/Array/ArrayItemAreaContext.d.ts +3 -0
- package/extensions/forms/Iterate/Array/ArrayItemAreaContext.js.map +1 -1
- package/extensions/forms/Iterate/Count/Count.d.ts +4 -3
- package/extensions/forms/Iterate/Count/Count.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +1 -1
- package/extensions/forms/Iterate/EditContainer/EditContainer.js +7 -4
- package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +2 -2
- package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/extensions/forms/Iterate/RemoveButton/RemoveButton.d.ts +3 -1
- package/extensions/forms/Iterate/RemoveButton/RemoveButton.js +26 -7
- package/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
- package/extensions/forms/Iterate/RemoveButton/RemoveButtonDocs.js +5 -0
- package/extensions/forms/Iterate/RemoveButton/RemoveButtonDocs.js.map +1 -1
- package/extensions/forms/Iterate/Toolbar/Toolbar.js +8 -4
- package/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/RemoveButton.d.ts +2 -1
- package/extensions/forms/Iterate/ViewContainer/RemoveButton.js +4 -3
- package/extensions/forms/Iterate/ViewContainer/RemoveButton.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.js +3 -2
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +2 -2
- package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/extensions/forms/Iterate/hooks/useItem.d.ts +5 -1
- package/extensions/forms/Iterate/hooks/useItem.js.map +1 -1
- package/extensions/forms/Tools/ListAllProps.d.ts +7 -7
- package/extensions/forms/Tools/ListAllProps.js.map +1 -1
- package/extensions/forms/Value/PhoneNumber/PhoneNumber.js +2 -2
- package/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/Wizard/Container/WizardContainer.js +2 -2
- package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/extensions/forms/Wizard/hooks/useStep.d.ts +2 -2
- package/extensions/forms/Wizard/hooks/useStep.js +2 -2
- package/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +2 -0
- package/extensions/forms/constants/countries.js +1 -1
- package/extensions/forms/constants/countries.js.map +1 -1
- package/extensions/forms/constants/locales/en-GB.d.ts +1 -0
- package/extensions/forms/constants/locales/en-GB.js +2 -1
- package/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/extensions/forms/constants/locales/en-US.d.ts +1 -0
- package/extensions/forms/constants/locales/index.d.ts +2 -0
- package/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
- package/extensions/forms/constants/locales/nb-NO.js +2 -1
- package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/extensions/forms/hooks/useDataContext.js +2 -2
- package/extensions/forms/hooks/useDataContext.js.map +1 -1
- package/extensions/forms/hooks/useSnapshot.d.ts +3 -2
- package/extensions/forms/hooks/useSnapshot.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +10 -6
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +4 -4
- package/extensions/forms/types.js.map +1 -1
- package/extensions/forms/utils/json-pointer/json-pointer.d.ts +2 -2
- package/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
- 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/helpers/useSharedState.d.ts +19 -13
- package/shared/helpers/useSharedState.js +22 -11
- package/shared/helpers/useSharedState.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 +291 -278
- package/style/dnb-ui-components.min.css +2 -2
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-extensions.css +10 -6
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +10 -6
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +306 -284
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +15 -6
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
- package/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +15 -6
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
- package/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
- package/style/themes/theme-sbanken/sbanken-theme-components.css +305 -284
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +14 -6
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +14 -6
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
- package/style/themes/theme-ui/ui-theme-components.css +306 -284
- package/style/themes/theme-ui/ui-theme-components.min.css +3 -3
- package/style/themes/theme-ui/ui-theme-extensions.css +15 -6
- package/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
- package/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
- package/style/themes/theme-ui/ui-theme-forms.css +15 -6
- package/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
- package/style/themes/theme-ui/ui-theme-forms.scss +1 -0
- 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
|
@@ -86,12 +86,12 @@ function DateComponent(props) {
|
|
|
86
86
|
} = useMemo(() => {
|
|
87
87
|
if (!range || !valueProp) {
|
|
88
88
|
return {
|
|
89
|
-
value: valueProp,
|
|
89
|
+
value: valueProp !== null && valueProp !== void 0 ? valueProp : null,
|
|
90
90
|
startDate: undefined,
|
|
91
91
|
endDate: undefined
|
|
92
92
|
};
|
|
93
93
|
}
|
|
94
|
-
const [startDate, endDate] = valueProp.split('|').map(value => /(undefined|null)/.test(value) ?
|
|
94
|
+
const [startDate, endDate] = valueProp.split('|').map(value => /(undefined|null)/.test(value) ? null : value);
|
|
95
95
|
return {
|
|
96
96
|
value: undefined,
|
|
97
97
|
startDate,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Date.js","names":["React","useCallback","useContext","useMemo","DatePicker","useFieldProps","pickSpacingProps","classnames","FieldBlock","SharedContext","parseISO","isValid","useTranslation","formatDate","DateComponent","props","translations","locale","errorMessages","_objectSpread","Date","errorRequired","schema","_props$schema","type","pattern","validateRequired","value","_ref","required","error","undefined","preparedProps","fromInput","_ref2","date","start_date","end_date","range","_useFieldProps","id","path","className","label","valueProp","hasError","disabled","htmlAttributes","handleFocus","handleBlur","handleChange","setDisplayValue","showCancelButton","showResetButton","showInput","onReset","rest","_objectWithoutProperties","_excluded","datePickerProps","pickDatePickerProps","startDate","endDate","split","map","test","fieldBlockProps","forId","createElement","_extends","status","onChange","event","onFocus","onBlur","datePickerPropKeys","Object","keys","reduce","key","includes","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Date/Date.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport { DatePicker } from '../../../../components'\nimport { useFieldProps } from '../../hooks'\nimport { FieldProps, AllJSONSchemaVersions } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport classnames from 'classnames'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport SharedContext from '../../../../shared/Context'\nimport { parseISO, isValid } from 'date-fns'\nimport useTranslation from '../../hooks/useTranslation'\nimport { formatDate } from '../../Value/Date'\nimport {\n DatePickerEvent,\n DatePickerProps,\n} from '../../../../components/DatePicker'\n\n// `range`, `showInput`, `showCancelButton` and `showResetButton` are not picked from the `DatePickerProps`\n// Since they require `Field.Date` specific comments, due to them having different default values\nexport type Props = FieldProps<string, undefined | string> & {\n // Validation\n pattern?: string\n /**\n * Defines if the Date field should support a value of two dates (starting and ending date).\n * The value needs to be a string containing two dates, separated by a pipe character (`|`) i.e. (`01-09-2024|30-09-2024`) when this is set to `true`.\n * Defaults to `false`.\n */\n range?: DatePickerProps['range']\n /**\n * If the input fields with the mask should be visible. Defaults to `true`.\n */\n showInput?: DatePickerProps['showInput']\n\n /**\n * If set to `true`, a cancel button will be shown. You can change the default text by using `cancel_button_text=\"Avbryt\"` Defaults to `true`. If the `range` prop is `true`, then the cancel button is shown.\n */\n showCancelButton?: DatePickerProps['showCancelButton']\n /**\n * If set to `true`, a reset button will be shown. You can change the default text by using `reset_button_text=\"Tilbakestill\"` Defaults to `true`.\n */\n showResetButton?: DatePickerProps['showResetButton']\n} & Pick<\n DatePickerProps,\n | 'month'\n | 'startMonth'\n | 'endMonth'\n | 'minDate'\n | 'maxDate'\n | 'correctInvalidDate'\n | 'maskOrder'\n | 'maskPlaceholder'\n | 'dateFormat'\n | 'returnFormat'\n | 'hideNavigation'\n | 'hideDays'\n | 'onlyMonth'\n | 'hideLastWeek'\n | 'disableAutofocus'\n | 'showSubmitButton'\n | 'submitButtonText'\n | 'cancelButtonText'\n | 'resetButtonText'\n | 'firstDay'\n | 'link'\n | 'sync'\n | 'addonElement'\n | 'shortcuts'\n | 'opened'\n | 'direction'\n | 'alignPicker'\n | 'onDaysRender'\n | 'onType'\n | 'onShow'\n | 'onHide'\n | 'onSubmit'\n | 'onCancel'\n | 'onReset'\n >\n\nfunction DateComponent(props: Props) {\n const translations = useTranslation()\n const { locale } = useContext(SharedContext)\n\n const errorMessages = useMemo(() => {\n return {\n 'Field.errorRequired': translations.Date.errorRequired,\n 'Field.errorPattern': translations.Date.errorRequired,\n ...props.errorMessages,\n }\n }, [props.errorMessages, translations.Date.errorRequired])\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'string',\n pattern: props.pattern,\n },\n [props.schema, props.pattern]\n )\n\n const validateRequired = useCallback(\n (value: string, { required, error }) => {\n if (required && (!value || !isValid(parseISO(value)))) {\n return error\n }\n\n return undefined\n },\n []\n )\n\n const preparedProps: Props = {\n ...props,\n errorMessages,\n schema,\n fromInput: ({\n date,\n start_date,\n end_date,\n }: DatePickerEvent<React.ChangeEvent<HTMLInputElement>>) => {\n return range ? `${start_date}|${end_date}` : date\n },\n validateRequired,\n }\n\n const {\n id,\n path,\n className,\n label,\n value: valueProp,\n hasError,\n disabled,\n htmlAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n setDisplayValue,\n range,\n showCancelButton = true,\n showResetButton = true,\n showInput = true,\n onReset,\n ...rest\n } = useFieldProps(preparedProps)\n\n const datePickerProps = pickDatePickerProps(rest)\n\n const { value, startDate, endDate } = useMemo(() => {\n if (!range || !valueProp) {\n return { value: valueProp, startDate: undefined, endDate: undefined }\n }\n\n const [startDate, endDate] = valueProp\n .split('|')\n .map((value) => (/(undefined|null)/.test(value) ? undefined : value))\n\n return {\n value: undefined,\n startDate,\n endDate,\n }\n }, [range, valueProp])\n\n useMemo(() => {\n if (path && valueProp) {\n setDisplayValue(path, formatDate(valueProp, { locale }))\n }\n }, [locale, path, setDisplayValue, valueProp])\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n label: label ?? translations.Date.label,\n className: classnames('dnb-forms-field-string', className),\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <DatePicker\n id={id}\n date={value}\n disabled={disabled}\n showInput={showInput}\n showCancelButton={showCancelButton}\n showResetButton={showResetButton}\n startDate={startDate}\n endDate={endDate}\n status={hasError ? 'error' : undefined}\n range={range}\n onChange={handleChange}\n onReset={(event) => {\n handleChange(event)\n onReset?.(event)\n }}\n onFocus={handleFocus}\n onBlur={handleBlur}\n {...datePickerProps}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n}\n\n// Used to filter out DatePickerProps from the FieldProps.\n// Includes DatePickerProps that are not destructured in useFieldProps\nconst datePickerPropKeys = [\n 'month',\n 'startMonth',\n 'endMonth',\n 'minDate',\n 'maxDate',\n 'correctInvalidDate',\n 'maskOrder',\n 'maskPlaceholder',\n 'dateFormat',\n 'returnFormat',\n 'hideNavigation',\n 'hideDays',\n 'onlyMonth',\n 'hideLastWeek',\n 'disableAutofocus',\n 'showSubmitButton',\n 'submitButtonText',\n 'cancelButtonText',\n 'resetButtonText',\n 'firstDay',\n 'link',\n 'sync',\n 'addonElement',\n 'shortcuts',\n 'opened',\n 'direction',\n 'alignPicker',\n 'onDaysRender',\n 'showInput',\n 'onDaysRender',\n 'onType',\n 'onShow',\n 'onHide',\n 'onSubmit',\n 'onCancel',\n 'onReset',\n]\n\nfunction pickDatePickerProps(props: Props) {\n const datePickerProps = Object.keys(props).reduce(\n (datePickerProps, key) => {\n if (datePickerPropKeys.includes(key)) {\n datePickerProps[key] = props[key]\n }\n\n return datePickerProps\n },\n {}\n )\n\n return datePickerProps\n}\n\nDateComponent._supportsSpacingProps = true\nexport default DateComponent\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Date.js","names":["React","useCallback","useContext","useMemo","DatePicker","useFieldProps","pickSpacingProps","classnames","FieldBlock","SharedContext","parseISO","isValid","useTranslation","formatDate","DateComponent","props","translations","locale","errorMessages","_objectSpread","Date","errorRequired","schema","_props$schema","type","pattern","validateRequired","value","_ref","required","error","undefined","preparedProps","fromInput","_ref2","date","start_date","end_date","range","_useFieldProps","id","path","className","label","valueProp","hasError","disabled","htmlAttributes","handleFocus","handleBlur","handleChange","setDisplayValue","showCancelButton","showResetButton","showInput","onReset","rest","_objectWithoutProperties","_excluded","datePickerProps","pickDatePickerProps","startDate","endDate","split","map","test","fieldBlockProps","forId","createElement","_extends","status","onChange","event","onFocus","onBlur","datePickerPropKeys","Object","keys","reduce","key","includes","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Date/Date.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport { DatePicker } from '../../../../components'\nimport { useFieldProps } from '../../hooks'\nimport { FieldProps, AllJSONSchemaVersions } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport classnames from 'classnames'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport SharedContext from '../../../../shared/Context'\nimport { parseISO, isValid } from 'date-fns'\nimport useTranslation from '../../hooks/useTranslation'\nimport { formatDate } from '../../Value/Date'\nimport {\n DatePickerEvent,\n DatePickerProps,\n} from '../../../../components/DatePicker'\n\n// `range`, `showInput`, `showCancelButton` and `showResetButton` are not picked from the `DatePickerProps`\n// Since they require `Field.Date` specific comments, due to them having different default values\nexport type Props = FieldProps<string, undefined | string> & {\n // Validation\n pattern?: string\n /**\n * Defines if the Date field should support a value of two dates (starting and ending date).\n * The value needs to be a string containing two dates, separated by a pipe character (`|`) i.e. (`01-09-2024|30-09-2024`) when this is set to `true`.\n * Defaults to `false`.\n */\n range?: DatePickerProps['range']\n /**\n * If the input fields with the mask should be visible. Defaults to `true`.\n */\n showInput?: DatePickerProps['showInput']\n\n /**\n * If set to `true`, a cancel button will be shown. You can change the default text by using `cancel_button_text=\"Avbryt\"` Defaults to `true`. If the `range` prop is `true`, then the cancel button is shown.\n */\n showCancelButton?: DatePickerProps['showCancelButton']\n /**\n * If set to `true`, a reset button will be shown. You can change the default text by using `reset_button_text=\"Tilbakestill\"` Defaults to `true`.\n */\n showResetButton?: DatePickerProps['showResetButton']\n} & Pick<\n DatePickerProps,\n | 'month'\n | 'startMonth'\n | 'endMonth'\n | 'minDate'\n | 'maxDate'\n | 'correctInvalidDate'\n | 'maskOrder'\n | 'maskPlaceholder'\n | 'dateFormat'\n | 'returnFormat'\n | 'hideNavigation'\n | 'hideDays'\n | 'onlyMonth'\n | 'hideLastWeek'\n | 'disableAutofocus'\n | 'showSubmitButton'\n | 'submitButtonText'\n | 'cancelButtonText'\n | 'resetButtonText'\n | 'firstDay'\n | 'link'\n | 'sync'\n | 'addonElement'\n | 'shortcuts'\n | 'opened'\n | 'direction'\n | 'alignPicker'\n | 'onDaysRender'\n | 'onType'\n | 'onShow'\n | 'onHide'\n | 'onSubmit'\n | 'onCancel'\n | 'onReset'\n >\n\nfunction DateComponent(props: Props) {\n const translations = useTranslation()\n const { locale } = useContext(SharedContext)\n\n const errorMessages = useMemo(() => {\n return {\n 'Field.errorRequired': translations.Date.errorRequired,\n 'Field.errorPattern': translations.Date.errorRequired,\n ...props.errorMessages,\n }\n }, [props.errorMessages, translations.Date.errorRequired])\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'string',\n pattern: props.pattern,\n },\n [props.schema, props.pattern]\n )\n\n const validateRequired = useCallback(\n (value: string, { required, error }) => {\n if (required && (!value || !isValid(parseISO(value)))) {\n return error\n }\n\n return undefined\n },\n []\n )\n\n const preparedProps: Props = {\n ...props,\n errorMessages,\n schema,\n fromInput: ({\n date,\n start_date,\n end_date,\n }: DatePickerEvent<React.ChangeEvent<HTMLInputElement>>) => {\n return range ? `${start_date}|${end_date}` : date\n },\n validateRequired,\n }\n\n const {\n id,\n path,\n className,\n label,\n value: valueProp,\n hasError,\n disabled,\n htmlAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n setDisplayValue,\n range,\n showCancelButton = true,\n showResetButton = true,\n showInput = true,\n onReset,\n ...rest\n } = useFieldProps(preparedProps)\n\n const datePickerProps = pickDatePickerProps(rest)\n\n const { value, startDate, endDate } = useMemo(() => {\n if (!range || !valueProp) {\n return {\n // Assign to null if falsy value, to properly clear input values\n value: valueProp ?? null,\n startDate: undefined,\n endDate: undefined,\n }\n }\n\n const [startDate, endDate] = valueProp\n .split('|')\n // Assign to null if falsy value, to properly clear input values\n .map((value) => (/(undefined|null)/.test(value) ? null : value))\n\n return {\n value: undefined,\n startDate,\n endDate,\n }\n }, [range, valueProp])\n\n useMemo(() => {\n if (path && valueProp) {\n setDisplayValue(path, formatDate(valueProp, { locale }))\n }\n }, [locale, path, setDisplayValue, valueProp])\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n label: label ?? translations.Date.label,\n className: classnames('dnb-forms-field-string', className),\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <DatePicker\n id={id}\n date={value}\n disabled={disabled}\n showInput={showInput}\n showCancelButton={showCancelButton}\n showResetButton={showResetButton}\n startDate={startDate}\n endDate={endDate}\n status={hasError ? 'error' : undefined}\n range={range}\n onChange={handleChange}\n onReset={(event) => {\n handleChange(event)\n onReset?.(event)\n }}\n onFocus={handleFocus}\n onBlur={handleBlur}\n {...datePickerProps}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n}\n\n// Used to filter out DatePickerProps from the FieldProps.\n// Includes DatePickerProps that are not destructured in useFieldProps\nconst datePickerPropKeys = [\n 'month',\n 'startMonth',\n 'endMonth',\n 'minDate',\n 'maxDate',\n 'correctInvalidDate',\n 'maskOrder',\n 'maskPlaceholder',\n 'dateFormat',\n 'returnFormat',\n 'hideNavigation',\n 'hideDays',\n 'onlyMonth',\n 'hideLastWeek',\n 'disableAutofocus',\n 'showSubmitButton',\n 'submitButtonText',\n 'cancelButtonText',\n 'resetButtonText',\n 'firstDay',\n 'link',\n 'sync',\n 'addonElement',\n 'shortcuts',\n 'opened',\n 'direction',\n 'alignPicker',\n 'onDaysRender',\n 'showInput',\n 'onDaysRender',\n 'onType',\n 'onShow',\n 'onHide',\n 'onSubmit',\n 'onCancel',\n 'onReset',\n]\n\nfunction pickDatePickerProps(props: Props) {\n const datePickerProps = Object.keys(props).reduce(\n (datePickerProps, key) => {\n if (datePickerPropKeys.includes(key)) {\n datePickerProps[key] = props[key]\n }\n\n return datePickerProps\n },\n {}\n )\n\n return datePickerProps\n}\n\nDateComponent._supportsSpacingProps = true\nexport default DateComponent\n"],"mappings":"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"}
|
|
@@ -3,16 +3,17 @@ import { Props as DataContextProps } from '../../DataContext/Provider';
|
|
|
3
3
|
import { FormStatusProps } from '../../../../components/FormStatus';
|
|
4
4
|
import { ContextProps } from '../../../../shared/Context';
|
|
5
5
|
import { FieldProps, Path } from '../../types';
|
|
6
|
+
import { JsonObject } from '../../utils';
|
|
6
7
|
export type FieldProviderProps = FieldProps & {
|
|
7
8
|
children: React.ReactNode;
|
|
8
9
|
/**
|
|
9
10
|
* Locale to use for all nested Eufemia components
|
|
10
11
|
*/
|
|
11
|
-
locale?: DataContextProps<
|
|
12
|
+
locale?: DataContextProps<JsonObject>['locale'];
|
|
12
13
|
/**
|
|
13
14
|
* Provide your own translations. Use the same format as defined in the translation files
|
|
14
15
|
*/
|
|
15
|
-
translations?: DataContextProps<
|
|
16
|
+
translations?: DataContextProps<JsonObject>['translations'];
|
|
16
17
|
/** For internal use only */
|
|
17
18
|
overwriteProps?: {
|
|
18
19
|
[key: Path]: FieldProps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldProvider.js","names":["React","FieldProviderContext","SharedProvider","useFieldProvider","FieldProviderProvider","props","children","restProps","_objectWithoutProperties","_excluded","_useFieldProvider","sharedProviderParams","providerValue","_excluded2","createElement","Provider","value","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Provider/FieldProvider.tsx"],"sourcesContent":["import React from 'react'\nimport { Props as DataContextProps } from '../../DataContext/Provider'\nimport { FormStatusProps } from '../../../../components/FormStatus'\nimport FieldProviderContext from './FieldProviderContext'\nimport SharedProvider from '../../../../shared/Provider'\nimport { ContextProps } from '../../../../shared/Context'\nimport useFieldProvider from './useFieldProvider'\nimport { FieldProps, Path } from '../../types'\n\nexport type FieldProviderProps = FieldProps & {\n children: React.ReactNode\n\n /**\n * Locale to use for all nested Eufemia components\n */\n locale?: DataContextProps<
|
|
1
|
+
{"version":3,"file":"FieldProvider.js","names":["React","FieldProviderContext","SharedProvider","useFieldProvider","FieldProviderProvider","props","children","restProps","_objectWithoutProperties","_excluded","_useFieldProvider","sharedProviderParams","providerValue","_excluded2","createElement","Provider","value","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Provider/FieldProvider.tsx"],"sourcesContent":["import React from 'react'\nimport { Props as DataContextProps } from '../../DataContext/Provider'\nimport { FormStatusProps } from '../../../../components/FormStatus'\nimport FieldProviderContext from './FieldProviderContext'\nimport SharedProvider from '../../../../shared/Provider'\nimport { ContextProps } from '../../../../shared/Context'\nimport useFieldProvider from './useFieldProvider'\nimport { FieldProps, Path } from '../../types'\nimport { JsonObject } from '../../utils'\n\nexport type FieldProviderProps = FieldProps & {\n children: React.ReactNode\n\n /**\n * Locale to use for all nested Eufemia components\n */\n locale?: DataContextProps<JsonObject>['locale']\n\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translations?: DataContextProps<JsonObject>['translations']\n\n /** For internal use only */\n overwriteProps?: {\n [key: Path]: FieldProps\n }\n\n /** For internal use only */\n formElement?: ContextProps['formElement']\n\n /** For internal use only */\n FormStatus?: { globalStatus: FormStatusProps }\n}\n\nfunction FieldProviderProvider(props: FieldProviderProps) {\n const { children, ...restProps } = props\n const { sharedProviderParams, ...providerValue } =\n useFieldProvider(restProps)\n\n return (\n <FieldProviderContext.Provider value={providerValue}>\n <SharedProvider {...sharedProviderParams}>{children}</SharedProvider>\n </FieldProviderContext.Provider>\n )\n}\n\nFieldProviderProvider._supportsSpacingProps = 'children'\nexport default FieldProviderProvider\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AAGzB,OAAOC,oBAAoB,MAAM,wBAAwB;AACzD,OAAOC,cAAc,MAAM,6BAA6B;AAExD,OAAOC,gBAAgB,MAAM,oBAAoB;AA6BjD,SAASC,qBAAqBA,CAACC,KAAyB,EAAE;EACxD,MAAM;MAAEC;IAAuB,CAAC,GAAGD,KAAK;IAAnBE,SAAS,GAAAC,wBAAA,CAAKH,KAAK,EAAAI,SAAA;EACxC,MAAAC,iBAAA,GACEP,gBAAgB,CAACI,SAAS,CAAC;IADvB;MAAEI;IAAuC,CAAC,GAAAD,iBAAA;IAAfE,aAAa,GAAAJ,wBAAA,CAAAE,iBAAA,EAAAG,UAAA;EAG9C,OACEb,KAAA,CAAAc,aAAA,CAACb,oBAAoB,CAACc,QAAQ;IAACC,KAAK,EAAEJ;EAAc,GAClDZ,KAAA,CAAAc,aAAA,CAACZ,cAAc,EAAKS,oBAAoB,EAAGL,QAAyB,CACvC,CAAC;AAEpC;AAEAF,qBAAqB,CAACa,qBAAqB,GAAG,UAAU;AACxD,eAAeb,qBAAqB"}
|
|
@@ -84,7 +84,15 @@ function UploadComponent(props) {
|
|
|
84
84
|
setFiles
|
|
85
85
|
} = useUpload(id);
|
|
86
86
|
useEffect(() => {
|
|
87
|
-
|
|
87
|
+
const hasInvalidFiles = value === null || value === void 0 ? void 0 : value.some(_ref2 => {
|
|
88
|
+
let {
|
|
89
|
+
file
|
|
90
|
+
} = _ref2;
|
|
91
|
+
return !(file !== null && file !== void 0 && file.name);
|
|
92
|
+
});
|
|
93
|
+
if (!hasInvalidFiles) {
|
|
94
|
+
setFiles(value);
|
|
95
|
+
}
|
|
88
96
|
}, [setFiles, value]);
|
|
89
97
|
const handleChangeAsync = useCallback(async files => {
|
|
90
98
|
const existingFileIds = (fileContext === null || fileContext === void 0 ? void 0 : fileContext.map(file => file.id)) || [];
|
|
@@ -101,10 +109,10 @@ function UploadComponent(props) {
|
|
|
101
109
|
handleChange(files);
|
|
102
110
|
}
|
|
103
111
|
}, [fileContext, setFiles, fileHandler, handleChange]);
|
|
104
|
-
const changeHandler = useCallback(
|
|
112
|
+
const changeHandler = useCallback(_ref3 => {
|
|
105
113
|
let {
|
|
106
114
|
files
|
|
107
|
-
} =
|
|
115
|
+
} = _ref3;
|
|
108
116
|
handleBlur();
|
|
109
117
|
handleFocus();
|
|
110
118
|
if (fileHandler) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Upload.js","names":["React","useCallback","useEffect","useMemo","classnames","FieldBlock","useFieldProps","useTranslation","useFormsTranslation","Upload","useUpload","pickSpacingProps","HelpButtonInline","HelpButtonInlineContent","useSharedTranslation","FormError","validateRequired","value","_ref","required","isChanged","error","hasError","some","file","errorMessage","hasFiles","length","undefined","updateFileLoadingState","files","isLoading","arguments","map","_objectSpread","UploadComponent","props","sharedTr","formsTr","errorMessages","errorRequired","preparedProps","_useFieldProps","executeOnChangeRegardlessOfError","id","className","width","widthProp","label","labelDescription","help","htmlAttributes","handleChange","handleFocus","handleBlur","fileHandler","rest","_objectWithoutProperties","_excluded","title","text","acceptedFileTypes","filesAmountLimit","fileMaxSize","skeleton","onFileDelete","fileContext","setFiles","handleChangeAsync","existingFileIds","newFiles","filter","includes","uploadedFiles","changeHandler","_ref2","fieldBlockProps","forId","labelSrOnly","createElement","_extends","onChange","Fragment","contentId","left","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Upload/Upload.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo } from 'react'\nimport classnames from 'classnames'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport {\n useFieldProps,\n useTranslation as useFormsTranslation,\n} from '../../hooks'\nimport { FieldProps } from '../../types'\nimport Upload, {\n UploadFile,\n UploadFileNative,\n UploadProps,\n} from '../../../../components/Upload'\nimport useUpload from '../../../../components/upload/useUpload'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport HelpButtonInline, {\n HelpButtonInlineContent,\n} from '../../../../components/help-button/HelpButtonInline'\nimport { useTranslation as useSharedTranslation } from '../../../../shared'\nimport { SpacingProps } from '../../../../shared/types'\nimport { FormError } from '../../utils'\n\nexport type UploadValue = Array<UploadFile | UploadFileNative>\nexport type Props = Omit<\n FieldProps<UploadValue, UploadValue | undefined>,\n 'name'\n> &\n SpacingProps & {\n width?: Omit<FieldBlockWidth, 'medium' | 'small'>\n } & Pick<\n Partial<UploadProps>,\n | 'title'\n | 'text'\n | 'acceptedFileTypes'\n | 'filesAmountLimit'\n | 'fileMaxSize'\n | 'onFileDelete'\n | 'skeleton'\n > & {\n fileHandler?: (\n newFiles: UploadValue\n ) => UploadValue | Promise<UploadValue>\n }\n\nconst validateRequired = (\n value: UploadValue,\n { required, isChanged, error }\n) => {\n const hasError = value?.some((file) => file.errorMessage)\n if (hasError) {\n return new FormError('Upload.errorInvalidFiles')\n }\n\n const hasFiles = value?.length > 0\n if (required && ((!isChanged && !hasFiles) || !hasFiles)) {\n return error\n }\n\n return undefined\n}\n\nconst updateFileLoadingState = (\n files: UploadValue,\n { isLoading } = { isLoading: false }\n) => {\n return files.map((file) => ({ ...file, isLoading }))\n}\n\nfunction UploadComponent(props: Props) {\n const sharedTr = useSharedTranslation().Upload\n const formsTr = useFormsTranslation().Upload\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': formsTr.errorRequired,\n }),\n [formsTr.errorRequired]\n )\n\n const preparedProps = {\n errorMessages,\n validateRequired,\n ...props,\n }\n\n const {\n id,\n className,\n width: widthProp = 'stretch',\n value,\n label,\n labelDescription,\n help,\n htmlAttributes,\n handleChange,\n handleFocus,\n handleBlur,\n fileHandler,\n ...rest\n } = useFieldProps(preparedProps, {\n executeOnChangeRegardlessOfError: true,\n })\n\n // Upload props\n const {\n title = sharedTr.title,\n text = sharedTr.text,\n acceptedFileTypes = ['pdf', 'png', 'jpg', 'jpeg'],\n filesAmountLimit = 100,\n fileMaxSize = 5,\n skeleton,\n onFileDelete,\n } = rest\n\n const { files: fileContext, setFiles } = useUpload(id)\n\n useEffect(() => {\n setFiles(value)\n }, [setFiles, value])\n\n const handleChangeAsync = useCallback(\n async (files: UploadValue) => {\n // Filter out existing files\n const existingFileIds = fileContext?.map((file) => file.id) || []\n const newFiles = files.filter(\n (file) => !existingFileIds.includes(file.id)\n )\n\n if (newFiles.length > 0) {\n // Set loading\n setFiles([\n ...fileContext,\n ...updateFileLoadingState(newFiles, { isLoading: true }),\n ])\n\n const uploadedFiles = updateFileLoadingState(\n await fileHandler(newFiles),\n { isLoading: false }\n )\n\n // Set error, if any\n handleChange([...fileContext, ...uploadedFiles])\n } else {\n handleChange(files)\n }\n },\n [fileContext, setFiles, fileHandler, handleChange]\n )\n\n const changeHandler = useCallback(\n ({ files }: { files: UploadValue }) => {\n // Prevents the form-status from showing up\n handleBlur()\n handleFocus()\n\n if (fileHandler) {\n handleChangeAsync(files)\n } else {\n handleChange(files)\n }\n },\n [handleBlur, handleFocus, fileHandler, handleChangeAsync, handleChange]\n )\n\n const width = widthProp as FieldBlockWidth\n const fieldBlockProps: FieldBlockProps = {\n id,\n forId: `${id}-input`,\n labelSrOnly: true,\n className: classnames('dnb-forms-field-upload', className),\n width,\n help: undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Upload\n id={id}\n acceptedFileTypes={acceptedFileTypes}\n filesAmountLimit={filesAmountLimit}\n fileMaxSize={fileMaxSize}\n skeleton={skeleton}\n onChange={changeHandler}\n onFileDelete={onFileDelete}\n title={label ?? title}\n text={\n help ? (\n <>\n {labelDescription ?? text}\n <HelpButtonInline\n contentId={`${id}-help`}\n left={text ? 'x-small' : false}\n help={help}\n />\n </>\n ) : (\n labelDescription ?? text\n )\n }\n {...htmlAttributes}\n >\n {help && (\n <HelpButtonInlineContent contentId={`${id}-help`} help={help} />\n )}\n </Upload>\n </FieldBlock>\n )\n}\n\nexport default UploadComponent\n\nUploadComponent._supportsSpacingProps = true\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Upload.js","names":["React","useCallback","useEffect","useMemo","classnames","FieldBlock","useFieldProps","useTranslation","useFormsTranslation","Upload","useUpload","pickSpacingProps","HelpButtonInline","HelpButtonInlineContent","useSharedTranslation","FormError","validateRequired","value","_ref","required","isChanged","error","hasError","some","file","errorMessage","hasFiles","length","undefined","updateFileLoadingState","files","isLoading","arguments","map","_objectSpread","UploadComponent","props","sharedTr","formsTr","errorMessages","errorRequired","preparedProps","_useFieldProps","executeOnChangeRegardlessOfError","id","className","width","widthProp","label","labelDescription","help","htmlAttributes","handleChange","handleFocus","handleBlur","fileHandler","rest","_objectWithoutProperties","_excluded","title","text","acceptedFileTypes","filesAmountLimit","fileMaxSize","skeleton","onFileDelete","fileContext","setFiles","hasInvalidFiles","_ref2","name","handleChangeAsync","existingFileIds","newFiles","filter","includes","uploadedFiles","changeHandler","_ref3","fieldBlockProps","forId","labelSrOnly","createElement","_extends","onChange","Fragment","contentId","left","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Upload/Upload.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo } from 'react'\nimport classnames from 'classnames'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport {\n useFieldProps,\n useTranslation as useFormsTranslation,\n} from '../../hooks'\nimport { FieldProps } from '../../types'\nimport Upload, {\n UploadFile,\n UploadFileNative,\n UploadProps,\n} from '../../../../components/Upload'\nimport useUpload from '../../../../components/upload/useUpload'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport HelpButtonInline, {\n HelpButtonInlineContent,\n} from '../../../../components/help-button/HelpButtonInline'\nimport { useTranslation as useSharedTranslation } from '../../../../shared'\nimport { SpacingProps } from '../../../../shared/types'\nimport { FormError } from '../../utils'\n\nexport type UploadValue = Array<UploadFile | UploadFileNative>\nexport type Props = Omit<\n FieldProps<UploadValue, UploadValue | undefined>,\n 'name'\n> &\n SpacingProps & {\n width?: Omit<FieldBlockWidth, 'medium' | 'small'>\n } & Pick<\n Partial<UploadProps>,\n | 'title'\n | 'text'\n | 'acceptedFileTypes'\n | 'filesAmountLimit'\n | 'fileMaxSize'\n | 'onFileDelete'\n | 'skeleton'\n > & {\n fileHandler?: (\n newFiles: UploadValue\n ) => UploadValue | Promise<UploadValue>\n }\n\nconst validateRequired = (\n value: UploadValue,\n { required, isChanged, error }\n) => {\n const hasError = value?.some((file) => file.errorMessage)\n if (hasError) {\n return new FormError('Upload.errorInvalidFiles')\n }\n\n const hasFiles = value?.length > 0\n if (required && ((!isChanged && !hasFiles) || !hasFiles)) {\n return error\n }\n\n return undefined\n}\n\nconst updateFileLoadingState = (\n files: UploadValue,\n { isLoading } = { isLoading: false }\n) => {\n return files.map((file) => ({ ...file, isLoading }))\n}\n\nfunction UploadComponent(props: Props) {\n const sharedTr = useSharedTranslation().Upload\n const formsTr = useFormsTranslation().Upload\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': formsTr.errorRequired,\n }),\n [formsTr.errorRequired]\n )\n\n const preparedProps = {\n errorMessages,\n validateRequired,\n ...props,\n }\n\n const {\n id,\n className,\n width: widthProp = 'stretch',\n value,\n label,\n labelDescription,\n help,\n htmlAttributes,\n handleChange,\n handleFocus,\n handleBlur,\n fileHandler,\n ...rest\n } = useFieldProps(preparedProps, {\n executeOnChangeRegardlessOfError: true,\n })\n\n // Upload props\n const {\n title = sharedTr.title,\n text = sharedTr.text,\n acceptedFileTypes = ['pdf', 'png', 'jpg', 'jpeg'],\n filesAmountLimit = 100,\n fileMaxSize = 5,\n skeleton,\n onFileDelete,\n } = rest\n\n const { files: fileContext, setFiles } = useUpload(id)\n\n useEffect(() => {\n // Files stored in session storage will not have a property (due to serialization).\n const hasInvalidFiles = value?.some(({ file }) => !file?.name)\n if (!hasInvalidFiles) {\n setFiles(value)\n }\n }, [setFiles, value])\n\n const handleChangeAsync = useCallback(\n async (files: UploadValue) => {\n // Filter out existing files\n const existingFileIds = fileContext?.map((file) => file.id) || []\n const newFiles = files.filter(\n (file) => !existingFileIds.includes(file.id)\n )\n\n if (newFiles.length > 0) {\n // Set loading\n setFiles([\n ...fileContext,\n ...updateFileLoadingState(newFiles, { isLoading: true }),\n ])\n\n const uploadedFiles = updateFileLoadingState(\n await fileHandler(newFiles),\n { isLoading: false }\n )\n\n // Set error, if any\n handleChange([...fileContext, ...uploadedFiles])\n } else {\n handleChange(files)\n }\n },\n [fileContext, setFiles, fileHandler, handleChange]\n )\n\n const changeHandler = useCallback(\n ({ files }: { files: UploadValue }) => {\n // Prevents the form-status from showing up\n handleBlur()\n handleFocus()\n\n if (fileHandler) {\n handleChangeAsync(files)\n } else {\n handleChange(files)\n }\n },\n [handleBlur, handleFocus, fileHandler, handleChangeAsync, handleChange]\n )\n\n const width = widthProp as FieldBlockWidth\n const fieldBlockProps: FieldBlockProps = {\n id,\n forId: `${id}-input`,\n labelSrOnly: true,\n className: classnames('dnb-forms-field-upload', className),\n width,\n help: undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Upload\n id={id}\n acceptedFileTypes={acceptedFileTypes}\n filesAmountLimit={filesAmountLimit}\n fileMaxSize={fileMaxSize}\n skeleton={skeleton}\n onChange={changeHandler}\n onFileDelete={onFileDelete}\n title={label ?? title}\n text={\n help ? (\n <>\n {labelDescription ?? text}\n <HelpButtonInline\n contentId={`${id}-help`}\n left={text ? 'x-small' : false}\n help={help}\n />\n </>\n ) : (\n labelDescription ?? text\n )\n }\n {...htmlAttributes}\n >\n {help && (\n <HelpButtonInlineContent contentId={`${id}-help`} help={help} />\n )}\n </Upload>\n </FieldBlock>\n )\n}\n\nexport default UploadComponent\n\nUploadComponent._supportsSpacingProps = true\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card.js","names":["React","CardInstance","Card","props","createElement","_extends","stack","outset"],"sources":["../../../../../../src/extensions/forms/Form/Card/Card.tsx"],"sourcesContent":["import React from 'react'\nimport CardInstance, {\n Props as CardProps,\n} from '../../../../components/card/Card'\n\nfunction Card(props: CardProps) {\n return <CardInstance stack outset {...props} />\n}\n\nexport default Card\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,YAAY,MAEZ,kCAAkC;AAEzC,SAASC,IAAIA,CAACC,KAAgB,EAAE;EAC9B,OAAOH,KAAA,CAAAI,aAAA,CAACH,YAAY,EAAAI,QAAA;IAACC,KAAK;IAACC,MAAM;EAAA,GAAKJ,KAAK,CAAG,CAAC;AACjD;
|
|
1
|
+
{"version":3,"file":"Card.js","names":["React","CardInstance","Card","props","createElement","_extends","stack","outset","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Card/Card.tsx"],"sourcesContent":["import React from 'react'\nimport CardInstance, {\n Props as CardProps,\n} from '../../../../components/card/Card'\n\nfunction Card(props: CardProps) {\n return <CardInstance stack outset {...props} />\n}\n\nCard._supportsSpacingProps = true\n\nexport default Card\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,YAAY,MAEZ,kCAAkC;AAEzC,SAASC,IAAIA,CAACC,KAAgB,EAAE;EAC9B,OAAOH,KAAA,CAAAI,aAAA,CAACH,YAAY,EAAAI,QAAA;IAACC,KAAK;IAACC,MAAM;EAAA,GAAKJ,KAAK,CAAG,CAAC;AACjD;AAEAD,IAAI,CAACM,qBAAqB,GAAG,IAAI;AAEjC,eAAeN,IAAI"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { SpacingProps } from '../../../../shared/types';
|
|
3
|
-
export type Props = React.
|
|
4
|
-
export default function FormElement(
|
|
3
|
+
export type Props = Omit<React.HTMLProps<HTMLFormElement>, 'ref' | 'autoComplete'> & SpacingProps;
|
|
4
|
+
export default function FormElement(props: Props): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,21 +1,41 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
4
5
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
5
6
|
const _excluded = ["children", "className", "onSubmit"];
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
import
|
|
7
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
8
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
9
|
+
import React, { useCallback, useContext, useRef } from 'react';
|
|
9
10
|
import classnames from 'classnames';
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
import DataContext from '../../DataContext/Context';
|
|
12
|
+
import Space from '../../../../components/space/Space';
|
|
13
|
+
import useId from '../../../../shared/helpers/useId';
|
|
14
|
+
import { FormStatus } from '../../../../components';
|
|
15
|
+
import { combineLabelledBy } from '../../../../shared/component-helper';
|
|
16
|
+
export default function FormElement(props) {
|
|
17
|
+
const id = useId();
|
|
18
|
+
const dataContext = useContext(DataContext);
|
|
19
|
+
const {
|
|
20
|
+
submitState,
|
|
21
|
+
restHandlerProps
|
|
22
|
+
} = dataContext || {};
|
|
23
|
+
const states = Object.entries(submitState || {}).filter(_ref => {
|
|
24
|
+
let [, value] = _ref;
|
|
25
|
+
return value;
|
|
26
|
+
});
|
|
27
|
+
const _ref2 = _objectSpread(_objectSpread({}, restHandlerProps), props),
|
|
28
|
+
{
|
|
12
29
|
children,
|
|
13
|
-
className
|
|
14
|
-
onSubmit
|
|
15
|
-
} =
|
|
16
|
-
|
|
17
|
-
const
|
|
18
|
-
dataContext.
|
|
30
|
+
className,
|
|
31
|
+
onSubmit
|
|
32
|
+
} = _ref2,
|
|
33
|
+
restProps = _objectWithoutProperties(_ref2, _excluded);
|
|
34
|
+
const hasElementRef = useRef(false);
|
|
35
|
+
if (!dataContext.hasElementRef) {
|
|
36
|
+
dataContext.hasElementRef = hasElementRef;
|
|
37
|
+
}
|
|
38
|
+
dataContext.hasElementRef.current = true;
|
|
19
39
|
const onSubmitHandler = useCallback(event => {
|
|
20
40
|
event === null || event === void 0 ? void 0 : event.preventDefault();
|
|
21
41
|
const formElement = event.target;
|
|
@@ -30,7 +50,24 @@ export default function FormElement(_ref) {
|
|
|
30
50
|
return React.createElement(Space, _extends({
|
|
31
51
|
element: "form",
|
|
32
52
|
className: classnames('dnb-forms-form', className),
|
|
33
|
-
onSubmit: onSubmitHandler
|
|
34
|
-
|
|
53
|
+
onSubmit: onSubmitHandler,
|
|
54
|
+
"aria-labelledby": combineLabelledBy(restProps, states.map(_ref3 => {
|
|
55
|
+
let [key] = _ref3;
|
|
56
|
+
return `${id}-form-status-${key}`;
|
|
57
|
+
})) || undefined
|
|
58
|
+
}, restProps), children, ['error', 'warning', 'info'].map(key => {
|
|
59
|
+
const value = submitState === null || submitState === void 0 ? void 0 : submitState[key];
|
|
60
|
+
return React.createElement(FormStatus, {
|
|
61
|
+
key: key,
|
|
62
|
+
state: key,
|
|
63
|
+
id: `${id}-form-status-${key}`,
|
|
64
|
+
className: "dnb-forms-status",
|
|
65
|
+
show: Boolean(value),
|
|
66
|
+
no_animation: false,
|
|
67
|
+
shellSpace: {
|
|
68
|
+
top: 'small'
|
|
69
|
+
}
|
|
70
|
+
}, String((value === null || value === void 0 ? void 0 : value['message']) || value || ''));
|
|
71
|
+
}));
|
|
35
72
|
}
|
|
36
73
|
//# sourceMappingURL=Element.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Element.js","names":["React","useCallback","useContext","
|
|
1
|
+
{"version":3,"file":"Element.js","names":["React","useCallback","useContext","useRef","classnames","DataContext","Space","useId","FormStatus","combineLabelledBy","FormElement","props","id","dataContext","submitState","restHandlerProps","states","Object","entries","filter","_ref","value","_ref2","_objectSpread","children","className","onSubmit","restProps","_objectWithoutProperties","_excluded","hasElementRef","current","onSubmitHandler","event","preventDefault","formElement","target","hasContext","formElementRef","handleSubmit","createElement","_extends","element","map","_ref3","key","undefined","state","show","Boolean","no_animation","shellSpace","top","String"],"sources":["../../../../../../src/extensions/forms/Form/Element/Element.tsx"],"sourcesContent":["import React, { useCallback, useContext, useRef } from 'react'\nimport classnames from 'classnames'\nimport DataContext from '../../DataContext/Context'\nimport Space from '../../../../components/space/Space'\nimport useId from '../../../../shared/helpers/useId'\nimport type { SpacingProps } from '../../../../shared/types'\nimport { FormStatus } from '../../../../components'\nimport { combineLabelledBy } from '../../../../shared/component-helper'\n\nexport type Props = Omit<\n React.HTMLProps<HTMLFormElement>,\n 'ref' | 'autoComplete'\n> &\n SpacingProps\n\nexport default function FormElement(props: Props) {\n const id = useId()\n const dataContext = useContext(DataContext)\n const { submitState, restHandlerProps } = dataContext || {}\n const states = Object.entries(submitState || {}).filter(\n ([, value]) => value\n )\n\n const { children, className, onSubmit, ...restProps } = {\n ...restHandlerProps,\n ...props,\n } as Props\n\n /**\n * Set to true,\n * this way we prevent \"handleSubmit\" to be called twice when the SubmitButton is pressed.\n */\n const hasElementRef = useRef(false)\n if (!dataContext.hasElementRef) {\n dataContext.hasElementRef = hasElementRef\n }\n dataContext.hasElementRef.current = true\n\n const onSubmitHandler = useCallback(\n (event: React.SyntheticEvent<HTMLFormElement>) => {\n event?.preventDefault()\n\n const formElement = event.target as HTMLFormElement\n\n if (dataContext.hasContext) {\n dataContext.formElementRef.current = formElement\n dataContext.handleSubmit()\n }\n\n if (typeof onSubmit === 'function') {\n onSubmit(event)\n }\n },\n [dataContext, onSubmit]\n )\n\n return (\n <Space\n element=\"form\"\n className={classnames('dnb-forms-form', className)}\n onSubmit={onSubmitHandler}\n aria-labelledby={\n combineLabelledBy(\n restProps,\n states.map(([key]) => {\n return `${id}-form-status-${key}`\n })\n ) || undefined\n }\n {...restProps}\n >\n {children}\n\n {['error', 'warning', 'info'].map((key) => {\n const value = submitState?.[key]\n return (\n <FormStatus\n key={key}\n state={key}\n id={`${id}-form-status-${key}`}\n className=\"dnb-forms-status\"\n show={Boolean(value)}\n no_animation={false}\n shellSpace={{ top: 'small' }}\n >\n {String(value?.['message'] || value || '')}\n </FormStatus>\n )\n })}\n </Space>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { JsonObject } from '../../utils/json-pointer';
|
|
2
2
|
import { Props as ProviderProps } from '../../DataContext/Provider';
|
|
3
|
-
import
|
|
4
|
-
export type Props =
|
|
3
|
+
import { Props as FormElementProps } from '../Element';
|
|
4
|
+
export type Props = FormElementProps & {
|
|
5
5
|
/**
|
|
6
6
|
* Will enable autoComplete for all nested Field.String fields
|
|
7
7
|
*/
|
|
8
8
|
autoComplete?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Will decouple the form element from rendering
|
|
11
|
+
*/
|
|
12
|
+
decoupleForm?: boolean;
|
|
9
13
|
};
|
|
10
|
-
export default function FormHandler<Data extends JsonObject>(
|
|
14
|
+
export default function FormHandler<Data extends JsonObject>(props: ProviderProps<Data> & Omit<Props, keyof ProviderProps<Data>>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,105 +1,32 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
const _excluded = ["children", "defaultData", "data", "schema", "ajvInstance", "errorMessages", "globalStatusId", "filterSubmitData", "transformIn", "transformOut", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "onSubmitComplete", "onClear", "minimumAsyncBehaviorTime", "asyncSubmitTimeout", "scrollTopOnSubmit", "sessionStorageId", "autoComplete", "locale", "translations", "disabled", "required"],
|
|
6
|
-
_excluded2 = ["children"];
|
|
7
|
-
import React, { useContext } from 'react';
|
|
3
|
+
import React, { useEffect, useRef } from 'react';
|
|
4
|
+
import { warn } from '../../../../shared/helpers';
|
|
8
5
|
import DataContextProvider from '../../DataContext/Provider';
|
|
9
|
-
import DataContext from '../../DataContext/Context';
|
|
10
6
|
import FormElement from '../Element';
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
filterSubmitData,
|
|
24
|
-
transformIn,
|
|
25
|
-
transformOut,
|
|
26
|
-
onChange,
|
|
27
|
-
onPathChange,
|
|
28
|
-
onSubmit,
|
|
29
|
-
onSubmitRequest,
|
|
30
|
-
onSubmitComplete,
|
|
31
|
-
onClear,
|
|
32
|
-
minimumAsyncBehaviorTime,
|
|
33
|
-
asyncSubmitTimeout,
|
|
34
|
-
scrollTopOnSubmit,
|
|
35
|
-
sessionStorageId,
|
|
36
|
-
autoComplete,
|
|
37
|
-
locale,
|
|
38
|
-
translations,
|
|
39
|
-
disabled,
|
|
40
|
-
required
|
|
41
|
-
} = _ref,
|
|
42
|
-
rest = _objectWithoutProperties(_ref, _excluded);
|
|
7
|
+
const allowedProviderContextProps = ['id', 'defaultData', 'data', 'schema', 'ajvInstance', 'errorMessages', 'globalStatusId', 'filterSubmitData', 'transformIn', 'transformOut', 'onChange', 'onPathChange', 'onSubmit', 'onSubmitRequest', 'onSubmitComplete', 'onClear', 'minimumAsyncBehaviorTime', 'asyncSubmitTimeout', 'scrollTopOnSubmit', 'sessionStorageId', 'locale', 'translations', 'autoComplete', 'disabled', 'required', 'decoupleForm', 'restHandlerProps'];
|
|
8
|
+
export default function FormHandler(props) {
|
|
9
|
+
const {
|
|
10
|
+
decoupleForm,
|
|
11
|
+
children
|
|
12
|
+
} = props;
|
|
13
|
+
const hasElementRef = useRef(false);
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
if (decoupleForm && !hasElementRef.current) {
|
|
16
|
+
warn('Please include a Form.Element when using decoupleForm!');
|
|
17
|
+
}
|
|
18
|
+
}, [decoupleForm]);
|
|
43
19
|
const providerProps = {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
data,
|
|
47
|
-
schema,
|
|
48
|
-
ajvInstance,
|
|
49
|
-
errorMessages,
|
|
50
|
-
globalStatusId,
|
|
51
|
-
filterSubmitData,
|
|
52
|
-
transformIn,
|
|
53
|
-
transformOut,
|
|
54
|
-
onChange,
|
|
55
|
-
onPathChange,
|
|
56
|
-
onSubmit,
|
|
57
|
-
onSubmitRequest,
|
|
58
|
-
onSubmitComplete,
|
|
59
|
-
onClear,
|
|
60
|
-
minimumAsyncBehaviorTime,
|
|
61
|
-
asyncSubmitTimeout,
|
|
62
|
-
scrollTopOnSubmit,
|
|
63
|
-
sessionStorageId,
|
|
64
|
-
autoComplete,
|
|
65
|
-
locale,
|
|
66
|
-
translations,
|
|
67
|
-
disabled,
|
|
68
|
-
required
|
|
20
|
+
hasElementRef,
|
|
21
|
+
restHandlerProps: {}
|
|
69
22
|
};
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
const {
|
|
79
|
-
submitState
|
|
80
|
-
} = useContext(DataContext) || {};
|
|
81
|
-
const states = Object.entries(submitState || {}).filter(_ref3 => {
|
|
82
|
-
let [, value] = _ref3;
|
|
83
|
-
return value;
|
|
84
|
-
});
|
|
85
|
-
return React.createElement(FormElement, _extends({}, rest, {
|
|
86
|
-
"aria-labelledby": combineLabelledBy(rest, states.map(_ref4 => {
|
|
87
|
-
let [key] = _ref4;
|
|
88
|
-
return `${id}-form-status-${key}`;
|
|
89
|
-
})) || undefined
|
|
90
|
-
}), children, ['error', 'warning', 'info'].map(key => {
|
|
91
|
-
const value = submitState === null || submitState === void 0 ? void 0 : submitState[key];
|
|
92
|
-
return React.createElement(FormStatus, {
|
|
93
|
-
key: key,
|
|
94
|
-
state: key,
|
|
95
|
-
id: `${id}-form-status-${key}`,
|
|
96
|
-
className: "dnb-forms-status",
|
|
97
|
-
show: Boolean(value),
|
|
98
|
-
no_animation: false,
|
|
99
|
-
shellSpace: {
|
|
100
|
-
top: 'small'
|
|
101
|
-
}
|
|
102
|
-
}, String((value === null || value === void 0 ? void 0 : value['message']) || value || ''));
|
|
103
|
-
}));
|
|
23
|
+
for (const key in props) {
|
|
24
|
+
if (allowedProviderContextProps.includes(key)) {
|
|
25
|
+
providerProps[key] = props[key];
|
|
26
|
+
} else if (key !== 'children') {
|
|
27
|
+
providerProps.restHandlerProps[key] = props[key];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return React.createElement(DataContextProvider, providerProps, decoupleForm ? children : React.createElement(FormElement, null, children));
|
|
104
31
|
}
|
|
105
32
|
//# sourceMappingURL=Handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Handler.js","names":["React","
|
|
1
|
+
{"version":3,"file":"Handler.js","names":["React","useEffect","useRef","warn","DataContextProvider","FormElement","allowedProviderContextProps","FormHandler","props","decoupleForm","children","hasElementRef","current","providerProps","restHandlerProps","key","includes","createElement"],"sources":["../../../../../../src/extensions/forms/Form/Handler/Handler.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react'\nimport { JsonObject } from '../../utils/json-pointer'\nimport { warn } from '../../../../shared/helpers'\nimport DataContextProvider, {\n Props as ProviderProps,\n} from '../../DataContext/Provider'\nimport FormElement, { Props as FormElementProps } from '../Element'\nimport { ContextState } from '../../DataContext'\n\nexport type Props = FormElementProps & {\n /**\n * Will enable autoComplete for all nested Field.String fields\n */\n autoComplete?: boolean\n\n /**\n * Will decouple the form element from rendering\n */\n decoupleForm?: boolean\n}\n\ntype AllowedProviderContextProps = ProviderProps<JsonObject> &\n Pick<Props, 'decoupleForm' | 'autoComplete' | 'disabled'> &\n Pick<ContextState, 'restHandlerProps' | 'hasElementRef'>\n\nconst allowedProviderContextProps: Array<\n keyof AllowedProviderContextProps\n> = [\n 'id',\n 'defaultData',\n 'data',\n 'schema',\n 'ajvInstance',\n 'errorMessages',\n 'globalStatusId',\n 'filterSubmitData',\n 'transformIn',\n 'transformOut',\n 'onChange',\n 'onPathChange',\n 'onSubmit',\n 'onSubmitRequest',\n 'onSubmitComplete',\n 'onClear',\n 'minimumAsyncBehaviorTime',\n 'asyncSubmitTimeout',\n 'scrollTopOnSubmit',\n 'sessionStorageId',\n 'locale',\n 'translations',\n 'autoComplete',\n 'disabled',\n 'required',\n 'decoupleForm',\n 'restHandlerProps',\n]\n\nexport default function FormHandler<Data extends JsonObject>(\n props: ProviderProps<Data> & Omit<Props, keyof ProviderProps<Data>>\n) {\n const { decoupleForm, children } = props\n\n const hasElementRef = useRef(false)\n useEffect(() => {\n if (decoupleForm && !hasElementRef.current) {\n warn('Please include a Form.Element when using decoupleForm!')\n }\n }, [decoupleForm])\n\n const providerProps = {\n hasElementRef,\n restHandlerProps: {},\n } as AllowedProviderContextProps\n\n for (const key in props) {\n if (\n allowedProviderContextProps.includes(\n key as keyof AllowedProviderContextProps\n )\n ) {\n providerProps[key] = props[key]\n } else if (key !== 'children') {\n providerProps.restHandlerProps[key] = props[key]\n }\n }\n\n return (\n <DataContextProvider {...providerProps}>\n {decoupleForm ? children : <FormElement>{children}</FormElement>}\n </DataContextProvider>\n )\n}\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAEhD,SAASC,IAAI,QAAQ,4BAA4B;AACjD,OAAOC,mBAAmB,MAEnB,4BAA4B;AACnC,OAAOC,WAAW,MAAqC,YAAY;AAmBnE,MAAMC,2BAEL,GAAG,CACF,IAAI,EACJ,aAAa,EACb,MAAM,EACN,QAAQ,EACR,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,UAAU,EACV,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,0BAA0B,EAC1B,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,cAAc,EACd,UAAU,EACV,UAAU,EACV,cAAc,EACd,kBAAkB,CACnB;AAED,eAAe,SAASC,WAAWA,CACjCC,KAAmE,EACnE;EACA,MAAM;IAAEC,YAAY;IAAEC;EAAS,CAAC,GAAGF,KAAK;EAExC,MAAMG,aAAa,GAAGT,MAAM,CAAC,KAAK,CAAC;EACnCD,SAAS,CAAC,MAAM;IACd,IAAIQ,YAAY,IAAI,CAACE,aAAa,CAACC,OAAO,EAAE;MAC1CT,IAAI,CAAC,wDAAwD,CAAC;IAChE;EACF,CAAC,EAAE,CAACM,YAAY,CAAC,CAAC;EAElB,MAAMI,aAAa,GAAG;IACpBF,aAAa;IACbG,gBAAgB,EAAE,CAAC;EACrB,CAAgC;EAEhC,KAAK,MAAMC,GAAG,IAAIP,KAAK,EAAE;IACvB,IACEF,2BAA2B,CAACU,QAAQ,CAClCD,GACF,CAAC,EACD;MACAF,aAAa,CAACE,GAAG,CAAC,GAAGP,KAAK,CAACO,GAAG,CAAC;IACjC,CAAC,MAAM,IAAIA,GAAG,KAAK,UAAU,EAAE;MAC7BF,aAAa,CAACC,gBAAgB,CAACC,GAAG,CAAC,GAAGP,KAAK,CAACO,GAAG,CAAC;IAClD;EACF;EAEA,OACEf,KAAA,CAAAiB,aAAA,CAACb,mBAAmB,EAAKS,aAAa,EACnCJ,YAAY,GAAGC,QAAQ,GAAGV,KAAA,CAAAiB,aAAA,CAACZ,WAAW,QAAEK,QAAsB,CAC5C,CAAC;AAE1B"}
|
|
@@ -3,7 +3,7 @@ import { JsonObject } from '../../utils/json-pointer';
|
|
|
3
3
|
import IsolationCommitButton from './IsolationCommitButton';
|
|
4
4
|
import { type Props as ProviderProps } from '../../DataContext/Provider';
|
|
5
5
|
import type { OnCommit, Path } from '../../types';
|
|
6
|
-
export type IsolationProviderProps<Data> = {
|
|
6
|
+
export type IsolationProviderProps<Data extends JsonObject> = {
|
|
7
7
|
/**
|
|
8
8
|
* Form.Isolation: Will be called when the isolated context is committed.
|
|
9
9
|
*/
|
|
@@ -17,7 +17,7 @@ export type IsolationProviderProps<Data> = {
|
|
|
17
17
|
* It will receive the data from the isolated context and the data from the outer context.
|
|
18
18
|
* You can use this to transform the data before it is committed.
|
|
19
19
|
*/
|
|
20
|
-
transformOnCommit?: (isolatedData:
|
|
20
|
+
transformOnCommit?: (isolatedData: Data, handlerData: Data) => JsonObject;
|
|
21
21
|
/**
|
|
22
22
|
* Prevent the form from being submitted when there are fields with errors inside the Form.Isolation.
|
|
23
23
|
*/
|
|
@@ -31,7 +31,7 @@ export type IsolationProviderProps<Data> = {
|
|
|
31
31
|
*/
|
|
32
32
|
isolate?: boolean;
|
|
33
33
|
};
|
|
34
|
-
export type IsolationProps<Data> = Omit<ProviderProps<Data>, 'onSubmit' | 'onSubmitRequest' | 'onSubmitComplete' | 'minimumAsyncBehaviorTime' | 'asyncSubmitTimeout' | 'scrollTopOnSubmit' | 'sessionStorageId' | 'globalStatusId'> & {
|
|
34
|
+
export type IsolationProps<Data extends JsonObject> = Omit<ProviderProps<Data>, 'onSubmit' | 'onSubmitRequest' | 'onSubmitComplete' | 'minimumAsyncBehaviorTime' | 'asyncSubmitTimeout' | 'scrollTopOnSubmit' | 'sessionStorageId' | 'globalStatusId'> & {
|
|
35
35
|
/**
|
|
36
36
|
* A ref (function) that you can call in order to commit the data programmatically to the outer context.
|
|
37
37
|
*/
|