@multiplatform.one/frappe-ui 7.33.1 → 7.34.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -42,7 +42,7 @@ function Barcode(props) {
42
42
  disabled,
43
43
  value,
44
44
  enableScan,
45
- formats: _formats,
45
+ formats,
46
46
  ...fieldProps
47
47
  } = (0, import_tamagui.useProps)(props);
48
48
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Barcode, {
@@ -65,6 +65,7 @@ function Barcode(props) {
65
65
  onBlur,
66
66
  disabled,
67
67
  enableScan,
68
+ formats,
68
69
  barcodeIcon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.BarcodeIcon, {
69
70
  size: 18
70
71
  }),
@@ -44,7 +44,7 @@ function Barcode(props) {
44
44
  disabled,
45
45
  value,
46
46
  enableScan,
47
- formats: _formats,
47
+ formats,
48
48
  ...fieldProps
49
49
  } = (0, import_tamagui.useProps)(props);
50
50
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Barcode, {
@@ -67,6 +67,7 @@ function Barcode(props) {
67
67
  onBlur,
68
68
  disabled,
69
69
  enableScan,
70
+ formats,
70
71
  barcodeIcon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.BarcodeIcon, {
71
72
  size: 18
72
73
  }),
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","Barcode_exports","__export","Barcode","module","exports","import_jsx_runtime","require","import_forms","import_react","import_tamagui","props","defaultValue","form","mode","_mode","name","onBlur","onChange","preserveValue","_preserveValue","validators","disabled","enableScan","formats","_formats","fieldProps","useProps","jsx","label","labelProps","error","helperText","readOnly","skeleton","compact","required","id","size","barcodeIcon","BarcodeIcon","scanIcon","CameraIcon","stopIcon","XIcon"],"sources":["../../../../src/fields/Barcode/index.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,eAAA;AAAAC,QAAA,CAAAD,eAAA;EAAAE,OAAA,EAAAA,CAAA,KAAAA;AAAA;AACAC,MAAA,CAAAC,OAAA,GAAAT,YAAwC,CAAAK,eAAA;AACxC,IAAAK,kBAA+C,GAAAC,OAAA;AAE/C,IAAAC,YAAA,GAAAD,OAAyB;AA8EN,IAAAE,YAAA,GAAAF,OAAA;AAzCZ,IAAAG,cAGL,GAAAH,OAAmC;AACnC,SAAMJ,QAAAQ,KAAA;EAAA,IACJ;IAAAC,YAAA;IAAAC,IAAA;IAAAC,IAAA,EAAAC,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA;IAAAC,aAAA,EAAAC,cAAA;IAAAC,UAAA;IAAAC,QAAA;IAAAtB,KAAA;IAAAuB,UAAA;IAAAC,OAAA,EAAAC,QAAA;IAAA,GAAAC;EAAA,QAAAhB,cAAA,CAAAiB,QAAA,EAAAhB,KAAA;EAAA,OACA,mBAAAL,kBAAA,CAAAsB,GAAA,EAAApB,YAAA,CAAAL,OAAA;IACAa,IAAA;IACAH,IAAA;IACAQ,UAAA;IACAT,YAAA;IACAiB,KAAA,EAAAH,UAAe,CAAAG,KAAA;IACfC,UAAA,EAAAJ,UAAA,CAAAI,UAAA;IACAC,KAAA,EAAAL,UAAA,CAAAK,KAAA;IACAC,UAAA,EAAAN,UAAA,CAAAM,UAAA;IACAC,QAAA,EAAAP,UAAA,CAAAO,QAAA;IACAC,QAAA,EAASR,UAAA,CAAAQ,QAAA;IACTC,OAAG,EAAAT,UAAA,CAAAS,OAAA;IACLC,QAAI,EAAAV,UAAA,CAAAU,QAAA;IAEJC,EAAA,EAAAX,UACE,CAAAW,EAAA;IAACC,IAAA,EAAAZ,UAAA,CAAAY,IAAA;IAAAtC,KAAA;IAAAkB,QACC;IAAAD,MACA;IAAAK,QACA;IAAAC,UACA;IAAAgB,WACO,iBAAW,IAAAjC,kBAAA,CAAAsB,GAAA,EAAAnB,YAAA,CAAA+B,WAAA;MAClBF,IAAA;IAAuB,EACvB;IAAkBG,QAClB,iBAAuB,IAAAnC,kBAAA,CAAAsB,GAAA,EAAAnB,YAAA,CAAAiC,UAAA;MACvBJ,IAAA;IAAqB,EACrB;IAAqBK,QACrB,iBAAoB,IAAArC,kBAAA,CAAAsB,GAAA,EAAAnB,YAAA,CAAAmC,KAAA;MACpBN,IAAA;IAAqB;EACN;AACE","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","Barcode_exports","__export","Barcode","module","exports","import_jsx_runtime","require","import_forms","import_react","import_tamagui","props","defaultValue","form","mode","_mode","name","onBlur","onChange","preserveValue","_preserveValue","validators","disabled","enableScan","formats","fieldProps","useProps","jsx","label","labelProps","error","helperText","readOnly","skeleton","compact","required","id","size","barcodeIcon","BarcodeIcon","scanIcon","CameraIcon","stopIcon","XIcon"],"sources":["../../../../src/fields/Barcode/index.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,eAAA;AAAAC,QAAA,CAAAD,eAAA;EAAAE,OAAA,EAAAA,CAAA,KAAAA;AAAA;AACAC,MAAA,CAAAC,OAAA,GAAAT,YAAwC,CAAAK,eAAA;AACxC,IAAAK,kBAA+C,GAAAC,OAAA;AAE/C,IAAAC,YAAA,GAAAD,OAAyB;AA+EN,IAAAE,YAAA,GAAAF,OAAA;AA1CZ,IAAAG,cAGL,GAAAH,OAAmC;AACnC,SAAMJ,QAAAQ,KAAA;EAAA,IACJ;IAAAC,YAAA;IAAAC,IAAA;IAAAC,IAAA,EAAAC,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA;IAAAC,aAAA,EAAAC,cAAA;IAAAC,UAAA;IAAAC,QAAA;IAAAtB,KAAA;IAAAuB,UAAA;IAAAC,OAAA;IAAA,GAAAC;EAAA,QAAAf,cAAA,CAAAgB,QAAA,EAAAf,KAAA;EAAA,OACA,mBAAAL,kBAAA,CAAAqB,GAAA,EAAAnB,YAAA,CAAAL,OAAA;IACAa,IAAA;IACAH,IAAA;IACAQ,UAAA;IACAT,YAAA;IACAgB,KAAA,EAAAH,UAAe,CAAAG,KAAA;IACfC,UAAA,EAAAJ,UAAA,CAAAI,UAAA;IACAC,KAAA,EAAAL,UAAA,CAAAK,KAAA;IACAC,UAAA,EAAAN,UAAA,CAAAM,UAAA;IACAC,QAAA,EAAAP,UAAA,CAAAO,QAAA;IACAC,QAAA,EAAAR,UAAA,CAAAQ,QAAA;IACAC,OAAG,EAAAT,UAAA,CAAAS,OAAA;IACLC,QAAI,EAAAV,UAAA,CAAAU,QAAA;IAEJC,EAAA,EAAAX,UACE,CAAAW,EAAA;IAACC,IAAA,EAAAZ,UAAA,CAAAY,IAAA;IAAArC,KAAA;IAAAkB,QACC;IAAAD,MACA;IAAAK,QACA;IAAAC,UACA;IAAAC,OACA;IAAkBc,WAClB,iBAAuB,IAAAhC,kBAAA,CAAAqB,GAAA,EAAAlB,YAAA,CAAA8B,WAAA;MACvBF,IAAA;IAAkB,EAClB;IAAuBG,QACvB,iBAAqB,IAAAlC,kBAAA,CAAAqB,GAAA,EAAAlB,YAAA,CAAAgC,UAAA;MACrBJ,IAAA;IAAqB,EACrB;IAAoBK,QACpB,iBAAqB,IAAApC,kBAAA,CAAAqB,GAAA,EAAAlB,YAAA,CAAAkC,KAAA;MACrBN,IAAI;IAAW;EACE;AACjB","ignoreList":[]}
@@ -15,7 +15,7 @@ function Barcode(props) {
15
15
  disabled,
16
16
  value,
17
17
  enableScan,
18
- formats: _formats,
18
+ formats,
19
19
  ...fieldProps
20
20
  } = useProps(props);
21
21
  return /* @__PURE__ */jsx(FormsBarcode, {
@@ -38,6 +38,7 @@ function Barcode(props) {
38
38
  onBlur,
39
39
  disabled,
40
40
  enableScan,
41
+ formats,
41
42
  barcodeIcon: /* @__PURE__ */jsx(BarcodeIcon, {
42
43
  size: 18
43
44
  }),
@@ -1 +1 @@
1
- {"version":3,"names":["Barcode","FormsBarcode","BarcodeIcon","CameraIcon","XIcon","useProps","jsx","props","defaultValue","form","mode","_mode","name","onBlur","onChange","preserveValue","_preserveValue","validators","disabled","value","enableScan","formats","_formats","fieldProps","label","labelProps","error","helperText","readOnly","skeleton","compact","required","id","size","barcodeIcon","scanIcon","stopIcon"],"sources":["../../../../src/fields/Barcode/index.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,OAAA,IAAWC,YAAA,QAAoB;AACxC,SAASC,WAAA,EAAaC,UAAA,EAAYC,KAAA,QAAa;AAE/C,SAASC,QAAA,QAAgB;AA8EN,SAAAC,GAAA;AAzCZ,SAASN,QAGdO,KAAA,EAAmC;EACnC,MAAM;IACJC,YAAA;IACAC,IAAA;IACAC,IAAA,EAAMC,KAAA;IACNC,IAAA;IACAC,MAAA;IACAC,QAAA;IACAC,aAAA,EAAeC,cAAA;IACfC,UAAA;IACAC,QAAA;IACAC,KAAA;IACAC,UAAA;IACAC,OAAA,EAASC,QAAA;IACT,GAAGC;EACL,IAAIlB,QAAA,CAASE,KAAK;EAElB,OACE,eAAAD,GAAA,CAACL,YAAA;IACCW,IAAA;IACAH,IAAA;IACAQ,UAAA;IACAT,YAAA;IACAgB,KAAA,EAAOD,UAAA,CAAWC,KAAA;IAClBC,UAAA,EAAYF,UAAA,CAAWE,UAAA;IACvBC,KAAA,EAAOH,UAAA,CAAWG,KAAA;IAClBC,UAAA,EAAYJ,UAAA,CAAWI,UAAA;IACvBC,QAAA,EAAUL,UAAA,CAAWK,QAAA;IACrBC,QAAA,EAAUN,UAAA,CAAWM,QAAA;IACrBC,OAAA,EAASP,UAAA,CAAWO,OAAA;IACpBC,QAAA,EAAUR,UAAA,CAAWQ,QAAA;IACrBC,EAAA,EAAIT,UAAA,CAAWS,EAAA;IACfC,IAAA,EAAMV,UAAA,CAAWU,IAAA;IACjBd,KAAA;IACAL,QAAA;IACAD,MAAA;IACAK,QAAA;IACAE,UAAA;IACAc,WAAA,EAAa,eAAA5B,GAAA,CAACJ,WAAA;MAAY+B,IAAA,EAAM;IAAA,CAAI;IACpCE,QAAA,EAAU,eAAA7B,GAAA,CAACH,UAAA;MAAW8B,IAAA,EAAM;IAAA,CAAI;IAChCG,QAAA,EAAU,eAAA9B,GAAA,CAACF,KAAA;MAAM6B,IAAA,EAAM;IAAA,CAAI;EAAA,CAC7B;AAEJ","ignoreList":[]}
1
+ {"version":3,"names":["Barcode","FormsBarcode","BarcodeIcon","CameraIcon","XIcon","useProps","jsx","props","defaultValue","form","mode","_mode","name","onBlur","onChange","preserveValue","_preserveValue","validators","disabled","value","enableScan","formats","fieldProps","label","labelProps","error","helperText","readOnly","skeleton","compact","required","id","size","barcodeIcon","scanIcon","stopIcon"],"sources":["../../../../src/fields/Barcode/index.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,OAAA,IAAWC,YAAA,QAAoB;AACxC,SAASC,WAAA,EAAaC,UAAA,EAAYC,KAAA,QAAa;AAE/C,SAASC,QAAA,QAAgB;AA+EN,SAAAC,GAAA;AA1CZ,SAASN,QAGdO,KAAA,EAAmC;EACnC,MAAM;IACJC,YAAA;IACAC,IAAA;IACAC,IAAA,EAAMC,KAAA;IACNC,IAAA;IACAC,MAAA;IACAC,QAAA;IACAC,aAAA,EAAeC,cAAA;IACfC,UAAA;IACAC,QAAA;IACAC,KAAA;IACAC,UAAA;IACAC,OAAA;IACA,GAAGC;EACL,IAAIjB,QAAA,CAASE,KAAK;EAElB,OACE,eAAAD,GAAA,CAACL,YAAA;IACCW,IAAA;IACAH,IAAA;IACAQ,UAAA;IACAT,YAAA;IACAe,KAAA,EAAOD,UAAA,CAAWC,KAAA;IAClBC,UAAA,EAAYF,UAAA,CAAWE,UAAA;IACvBC,KAAA,EAAOH,UAAA,CAAWG,KAAA;IAClBC,UAAA,EAAYJ,UAAA,CAAWI,UAAA;IACvBC,QAAA,EAAUL,UAAA,CAAWK,QAAA;IACrBC,QAAA,EAAUN,UAAA,CAAWM,QAAA;IACrBC,OAAA,EAASP,UAAA,CAAWO,OAAA;IACpBC,QAAA,EAAUR,UAAA,CAAWQ,QAAA;IACrBC,EAAA,EAAIT,UAAA,CAAWS,EAAA;IACfC,IAAA,EAAMV,UAAA,CAAWU,IAAA;IACjBb,KAAA;IACAL,QAAA;IACAD,MAAA;IACAK,QAAA;IACAE,UAAA;IACAC,OAAA;IACAY,WAAA,EAAa,eAAA3B,GAAA,CAACJ,WAAA;MAAY8B,IAAA,EAAM;IAAA,CAAI;IACpCE,QAAA,EAAU,eAAA5B,GAAA,CAACH,UAAA;MAAW6B,IAAA,EAAM;IAAA,CAAI;IAChCG,QAAA,EAAU,eAAA7B,GAAA,CAACF,KAAA;MAAM4B,IAAA,EAAM;IAAA,CAAI;EAAA,CAC7B;AAEJ","ignoreList":[]}
@@ -15,7 +15,7 @@ function Barcode(props) {
15
15
  disabled,
16
16
  value,
17
17
  enableScan,
18
- formats: _formats,
18
+ formats,
19
19
  ...fieldProps
20
20
  } = useProps(props);
21
21
  return /* @__PURE__ */_jsx(FormsBarcode, {
@@ -38,6 +38,7 @@ function Barcode(props) {
38
38
  onBlur,
39
39
  disabled,
40
40
  enableScan,
41
+ formats,
41
42
  barcodeIcon: /* @__PURE__ */_jsx(BarcodeIcon, {
42
43
  size: 18
43
44
  }),
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","Barcode","FormsBarcode","BarcodeIcon","CameraIcon","XIcon","useProps","props","defaultValue","form","mode","_mode","name","onBlur","onChange","preserveValue","_preserveValue","validators","disabled","value","enableScan","formats","_formats","fieldProps","label","labelProps","error","helperText","readOnly","skeleton","compact","required","id","size","barcodeIcon","scanIcon","stopIcon"],"sources":["../../../../src/fields/Barcode/index.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,GAAA,IAAAC,IAAW,2BAAoB;AACxC,SAASC,OAAA,IAAAC,YAAa,QAAY,0BAAa;AAE/C,SAASC,WAAA,EAAAC,UAAgB,EAAAC,KAAA;AA8EN,SAAAC,QAAA;AAzCZ,SAASL,QAGdM,KAAA,EAAmC;EACnC;IAAMC,YAAA;IAAAC,IAAA;IAAAC,IAAA,EAAAC,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA;IAAAC,aAAA,EAAAC,cAAA;IAAAC,UAAA;IAAAC,QAAA;IAAAC,KAAA;IAAAC,UAAA;IAAAC,OAAA,EAAAC,QAAA;IAAA,GAAAC;EAAA,IAAAjB,QAAA,CAAAC,KAAA;EAAA,OACJ,eAAAP,IAAA,CAAAE,YAAA;IACAU,IAAA;IACAH,IAAA;IACAQ,UAAA;IACAT,YAAA;IACAgB,KAAA,EAAAD,UAAA,CAAAC,KAAA;IACAC,UAAA,EAAAF,UAAe,CAAAE,UAAA;IACfC,KAAA,EAAAH,UAAA,CAAAG,KAAA;IACAC,UAAA,EAAAJ,UAAA,CAAAI,UAAA;IACAC,QAAA,EAAAL,UAAA,CAAAK,QAAA;IACAC,QAAA,EAAAN,UAAA,CAAAM,QAAA;IACAC,OAAA,EAASP,UAAA,CAAAO,OAAA;IACTC,QAAG,EAAAR,UAAA,CAAAQ,QAAA;IACLC,EAAI,EAAAT,UAAS,CAAAS,EAAK;IAElBC,IAAA,EACEV,UAAA,CAAAU,IAAA;IAACd,KAAA;IAAAL,QAAA;IAAAD,MACC;IAAAK,QACA;IAAAE,UACA;IAAAc,WACA,iBAAAlC,IAAA,CAAAG,WAAA;MACA8B,IAAA;IAAkB,EAClB;IAAuBE,QACvB,EAAO,eAAWnC,IAAA,CAAAI,UAAA;MAClB6B,IAAA;IAAuB,EACvB;IAAqBG,QACrB,iBAAqBpC,IAAA,CAAAK,KAAA;MACrB4B,IAAA;IAAoB;EACC;AACN;AACE,SACjBhC,OACA","ignoreList":[]}
1
+ {"version":3,"names":["jsx","_jsx","Barcode","FormsBarcode","BarcodeIcon","CameraIcon","XIcon","useProps","props","defaultValue","form","mode","_mode","name","onBlur","onChange","preserveValue","_preserveValue","validators","disabled","value","enableScan","formats","fieldProps","label","labelProps","error","helperText","readOnly","skeleton","compact","required","id","size","barcodeIcon","scanIcon","stopIcon"],"sources":["../../../../src/fields/Barcode/index.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,GAAA,IAAAC,IAAW,2BAAoB;AACxC,SAASC,OAAA,IAAAC,YAAa,QAAY,0BAAa;AAE/C,SAASC,WAAA,EAAAC,UAAgB,EAAAC,KAAA;AA+EN,SAAAC,QAAA;AA1CZ,SAASL,QAGdM,KAAA,EAAmC;EACnC;IAAMC,YAAA;IAAAC,IAAA;IAAAC,IAAA,EAAAC,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA;IAAAC,aAAA,EAAAC,cAAA;IAAAC,UAAA;IAAAC,QAAA;IAAAC,KAAA;IAAAC,UAAA;IAAAC,OAAA;IAAA,GAAAC;EAAA,IAAAhB,QAAA,CAAAC,KAAA;EAAA,OACJ,eAAAP,IAAA,CAAAE,YAAA;IACAU,IAAA;IACAH,IAAA;IACAQ,UAAA;IACAT,YAAA;IACAe,KAAA,EAAAD,UAAA,CAAAC,KAAA;IACAC,UAAA,EAAAF,UAAe,CAAAE,UAAA;IACfC,KAAA,EAAAH,UAAA,CAAAG,KAAA;IACAC,UAAA,EAAAJ,UAAA,CAAAI,UAAA;IACAC,QAAA,EAAAL,UAAA,CAAAK,QAAA;IACAC,QAAA,EAAAN,UAAA,CAAAM,QAAA;IACAC,OAAA,EAAAP,UAAA,CAAAO,OAAA;IACAC,QAAG,EAAAR,UAAA,CAAAQ,QAAA;IACLC,EAAI,EAAAT,UAAS,CAAAS,EAAK;IAElBC,IAAA,EACEV,UAAA,CAAAU,IAAA;IAACb,KAAA;IAAAL,QAAA;IAAAD,MACC;IAAAK,QACA;IAAAE,UACA;IAAAC,OACA;IAAAY,WACO,iBAAWjC,IAAA,CAAAG,WAAA;MAClB6B,IAAA;IAAuB,EACvB;IAAkBE,QAClB,iBAAuBlC,IAAA,CAAAI,UAAA;MACvB4B,IAAA;IAAqB,EACrB;IAAqBG,QACrB,iBAAoBnC,IAAA,CAAAK,KAAA;MACpB2B,IAAA;IAAqB;EACN;AACE;AACjB,SACA/B,OACA","ignoreList":[]}
@@ -15,7 +15,7 @@ function Barcode(props) {
15
15
  disabled,
16
16
  value,
17
17
  enableScan,
18
- formats: _formats,
18
+ formats,
19
19
  ...fieldProps
20
20
  } = useProps(props);
21
21
  return /* @__PURE__ */jsx(FormsBarcode, {
@@ -38,6 +38,7 @@ function Barcode(props) {
38
38
  onBlur,
39
39
  disabled,
40
40
  enableScan,
41
+ formats,
41
42
  barcodeIcon: /* @__PURE__ */jsx(BarcodeIcon, {
42
43
  size: 18
43
44
  }),
@@ -1 +1 @@
1
- {"version":3,"names":["Barcode","FormsBarcode","BarcodeIcon","CameraIcon","XIcon","useProps","jsx","props","defaultValue","form","mode","_mode","name","onBlur","onChange","preserveValue","_preserveValue","validators","disabled","value","enableScan","formats","_formats","fieldProps","label","labelProps","error","helperText","readOnly","skeleton","compact","required","id","size","barcodeIcon","scanIcon","stopIcon"],"sources":["../../../../src/fields/Barcode/index.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,OAAA,IAAWC,YAAA,QAAoB;AACxC,SAASC,WAAA,EAAaC,UAAA,EAAYC,KAAA,QAAa;AAE/C,SAASC,QAAA,QAAgB;AA8EN,SAAAC,GAAA;AAzCZ,SAASN,QAGdO,KAAA,EAAmC;EACnC,MAAM;IACJC,YAAA;IACAC,IAAA;IACAC,IAAA,EAAMC,KAAA;IACNC,IAAA;IACAC,MAAA;IACAC,QAAA;IACAC,aAAA,EAAeC,cAAA;IACfC,UAAA;IACAC,QAAA;IACAC,KAAA;IACAC,UAAA;IACAC,OAAA,EAASC,QAAA;IACT,GAAGC;EACL,IAAIlB,QAAA,CAASE,KAAK;EAElB,OACE,eAAAD,GAAA,CAACL,YAAA;IACCW,IAAA;IACAH,IAAA;IACAQ,UAAA;IACAT,YAAA;IACAgB,KAAA,EAAOD,UAAA,CAAWC,KAAA;IAClBC,UAAA,EAAYF,UAAA,CAAWE,UAAA;IACvBC,KAAA,EAAOH,UAAA,CAAWG,KAAA;IAClBC,UAAA,EAAYJ,UAAA,CAAWI,UAAA;IACvBC,QAAA,EAAUL,UAAA,CAAWK,QAAA;IACrBC,QAAA,EAAUN,UAAA,CAAWM,QAAA;IACrBC,OAAA,EAASP,UAAA,CAAWO,OAAA;IACpBC,QAAA,EAAUR,UAAA,CAAWQ,QAAA;IACrBC,EAAA,EAAIT,UAAA,CAAWS,EAAA;IACfC,IAAA,EAAMV,UAAA,CAAWU,IAAA;IACjBd,KAAA;IACAL,QAAA;IACAD,MAAA;IACAK,QAAA;IACAE,UAAA;IACAc,WAAA,EAAa,eAAA5B,GAAA,CAACJ,WAAA;MAAY+B,IAAA,EAAM;IAAA,CAAI;IACpCE,QAAA,EAAU,eAAA7B,GAAA,CAACH,UAAA;MAAW8B,IAAA,EAAM;IAAA,CAAI;IAChCG,QAAA,EAAU,eAAA9B,GAAA,CAACF,KAAA;MAAM6B,IAAA,EAAM;IAAA,CAAI;EAAA,CAC7B;AAEJ","ignoreList":[]}
1
+ {"version":3,"names":["Barcode","FormsBarcode","BarcodeIcon","CameraIcon","XIcon","useProps","jsx","props","defaultValue","form","mode","_mode","name","onBlur","onChange","preserveValue","_preserveValue","validators","disabled","value","enableScan","formats","fieldProps","label","labelProps","error","helperText","readOnly","skeleton","compact","required","id","size","barcodeIcon","scanIcon","stopIcon"],"sources":["../../../../src/fields/Barcode/index.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,OAAA,IAAWC,YAAA,QAAoB;AACxC,SAASC,WAAA,EAAaC,UAAA,EAAYC,KAAA,QAAa;AAE/C,SAASC,QAAA,QAAgB;AA+EN,SAAAC,GAAA;AA1CZ,SAASN,QAGdO,KAAA,EAAmC;EACnC,MAAM;IACJC,YAAA;IACAC,IAAA;IACAC,IAAA,EAAMC,KAAA;IACNC,IAAA;IACAC,MAAA;IACAC,QAAA;IACAC,aAAA,EAAeC,cAAA;IACfC,UAAA;IACAC,QAAA;IACAC,KAAA;IACAC,UAAA;IACAC,OAAA;IACA,GAAGC;EACL,IAAIjB,QAAA,CAASE,KAAK;EAElB,OACE,eAAAD,GAAA,CAACL,YAAA;IACCW,IAAA;IACAH,IAAA;IACAQ,UAAA;IACAT,YAAA;IACAe,KAAA,EAAOD,UAAA,CAAWC,KAAA;IAClBC,UAAA,EAAYF,UAAA,CAAWE,UAAA;IACvBC,KAAA,EAAOH,UAAA,CAAWG,KAAA;IAClBC,UAAA,EAAYJ,UAAA,CAAWI,UAAA;IACvBC,QAAA,EAAUL,UAAA,CAAWK,QAAA;IACrBC,QAAA,EAAUN,UAAA,CAAWM,QAAA;IACrBC,OAAA,EAASP,UAAA,CAAWO,OAAA;IACpBC,QAAA,EAAUR,UAAA,CAAWQ,QAAA;IACrBC,EAAA,EAAIT,UAAA,CAAWS,EAAA;IACfC,IAAA,EAAMV,UAAA,CAAWU,IAAA;IACjBb,KAAA;IACAL,QAAA;IACAD,MAAA;IACAK,QAAA;IACAE,UAAA;IACAC,OAAA;IACAY,WAAA,EAAa,eAAA3B,GAAA,CAACJ,WAAA;MAAY8B,IAAA,EAAM;IAAA,CAAI;IACpCE,QAAA,EAAU,eAAA5B,GAAA,CAACH,UAAA;MAAW6B,IAAA,EAAM;IAAA,CAAI;IAChCG,QAAA,EAAU,eAAA7B,GAAA,CAACF,KAAA;MAAM4B,IAAA,EAAM;IAAA,CAAI;EAAA,CAC7B;AAEJ","ignoreList":[]}
@@ -44,7 +44,7 @@ function Barcode(props) {
44
44
  disabled,
45
45
  value,
46
46
  enableScan,
47
- formats: _formats,
47
+ formats,
48
48
  ...fieldProps
49
49
  } = (0, import_tamagui.useProps)(props);
50
50
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Barcode, {
@@ -67,6 +67,7 @@ function Barcode(props) {
67
67
  onBlur,
68
68
  disabled,
69
69
  enableScan,
70
+ formats,
70
71
  barcodeIcon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.BarcodeIcon, {
71
72
  size: 18
72
73
  }),
@@ -1 +1 @@
1
- {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","Barcode_exports","Barcode","module","exports","import_jsx_runtime","require","import_forms","import_react","import_tamagui","props","defaultValue","form","mode","_mode","onBlur","onChange","preserveValue","_preserveValue","validators","disabled","enableScan","formats","_formats","fieldProps","useProps","jsx","label","labelProps","error","helperText","readOnly","skeleton","compact","required","id","size"],"sources":["../../../../src/fields/Barcode/index.tsx"],"sourcesContent":[null],"mappings":"AACA,YAAS;;AACT,IAAAA,SAAS,GAAAC,MAAa,CAAAC,cAAY;AAElC,IAAAC,gBAAS,GAAAF,MAAgB,CAAAG,wBAAA;AA8EN,IAAAC,iBAAA,GAAAJ,MAAA,CAAAK,mBAAA;AAzCZ,IAAAC,YAAS,GAGdN,MAAmC,CAAAO,SAAA,CAAAC,cAAA;AACnC,IAAAC,QAAM,GAAAA,CAAAC,MAAA,EAAAC,GAAA;EAAA,KACJ,IAAAC,IAAA,IAAAD,GAAA,EACAZ,SAAA,CAAAW,MAAA,EAAAE,IAAA;IAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAAA;AACM,IACNC,WAAA,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EAAA,IACAF,IAAA,WAAAA,IAAA,wBAAAA,IAAA;IACA,SAAAG,GAAA,IAAAhB,iBAAA,CAAAa,IAAA,GACA,KAAAX,YAAe,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EACfnB,SAAA,CAAAiB,EAAA,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EAAA;EACA,OACAE,EAAA;AAAA;AACA,IACAM,YAAS,GAAAC,GAAA,IAAAR,WAAA,CAAAhB,SAAA;EAAAyB,KAAA;AAAA,IAAAD,GAAA;AAAA,IACTE,eAAG;AAAAhB,QACD,CAAAgB,eAAc;EAElBC,OACE,EAAAA,CAAA,KAAAA;AAAA;AAACC,MAAA,CAAAC,OAAA,GAAAN,YAAA,CAAAG,eAAA;AAAA,IAAAI,kBACC,GAAAC,OAAA;AAAA,IAAAC,YACA,GAAAD,OAAA;AAAA,IAAAE,YACA,GAAAF,OAAA;AAAA,IAAAG,cACA,GAAAH,OAAA;AAAA,SACAJ,OAAOA,CAAAQ,KAAA,EAAW;EAAA,IAClB;IAAAC,YAAY;IAAAC,IAAA;IAAAC,IAAW,EAAAC,KAAA;IAAA1B,IAAA;IAAA2B,MAAA;IAAAC,QAAA;IAAAC,aAAA,EAAAC,cAAA;IAAAC,UAAA;IAAAC,QAAA;IAAApB,KAAA;IAAAqB,UAAA;IAAAC,OAAA,EAAAC,QAAA;IAAA,GAAAC;EAAA,QAAAf,cAAA,CAAAgB,QAAA,EAAAf,KAAA;EAAA,OACvB,eAAkB,IAAAL,kBAAA,CAAAqB,GAAA,EAAAnB,YAAA,CAAAL,OAAA;IAAAd,IAClB;IAAuBwB,IACvB;IAAqBO,UACrB;IAAqBR,YACZ;IAAWgB,KACpB,EAAAH,UAAU,CAAAG,KAAW;IAAAC,UACjB,EAAAJ,UAAW,CAAAI,UAAA;IAAAC,KACf,EAAAL,UAAM,CAAAK,KAAW;IAAAC,UACjB,EAAAN,UAAA,CAAAM,UAAA;IAAAC,QACA,EAAAP,UAAA,CAAAO,QAAA;IAAAC,QACA,EAAAR,UAAA,CAAAQ,QAAA;IAAAC,OACA,EAAAT,UAAA,CAAAS,OAAA;IAAAC,QACA,EAAAV,UAAA,CAAAU,QAAA;IAAAC,EACA,EAAAX,UAAA,CAAaW,EAAA;IAAuBC,IACpC,EAAAZ,UAAU,CAAAY,IAAA;IAAsBpC,KAChC;IAA2BgB,QAAA;IAC7BD,MAAA;IAEJK,QAAA","ignoreList":[]}
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","Barcode_exports","Barcode","module","exports","import_jsx_runtime","require","import_forms","import_react","import_tamagui","props","defaultValue","form","mode","_mode","onBlur","onChange","preserveValue","_preserveValue","validators","disabled","enableScan","formats","fieldProps","useProps","jsx","label","labelProps","error","helperText","readOnly","skeleton","compact","required","id","size"],"sources":["../../../../src/fields/Barcode/index.tsx"],"sourcesContent":[null],"mappings":"AACA,YAAS;;AACT,IAAAA,SAAS,GAAAC,MAAa,CAAAC,cAAY;AAElC,IAAAC,gBAAS,GAAAF,MAAgB,CAAAG,wBAAA;AA+EN,IAAAC,iBAAA,GAAAJ,MAAA,CAAAK,mBAAA;AA1CZ,IAAAC,YAAS,GAGdN,MAAmC,CAAAO,SAAA,CAAAC,cAAA;AACnC,IAAAC,QAAM,GAAAA,CAAAC,MAAA,EAAAC,GAAA;EAAA,KACJ,IAAAC,IAAA,IAAAD,GAAA,EACAZ,SAAA,CAAAW,MAAA,EAAAE,IAAA;IAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAAA;AACM,IACNC,WAAA,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EAAA,IACAF,IAAA,WAAAA,IAAA,wBAAAA,IAAA;IACA,SAAAG,GAAA,IAAAhB,iBAAA,CAAAa,IAAA,GACA,KAAAX,YAAe,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EACfnB,SAAA,CAAAiB,EAAA,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EAAA;EACA,OACAE,EAAA;AAAA;AACA,IACAM,YAAA,GAAAC,GAAA,IAAAR,WAAA,CAAAhB,SAAA;EAAAyB,KAAA;AAAA,IAAAD,GAAA;AAAA,IACAE,eAAG;AAAAhB,QACD,CAAAgB,eAAc;EAElBC,OACE,EAAAA,CAAA,KAAAA;AAAA;AAACC,MAAA,CAAAC,OAAA,GAAAN,YAAA,CAAAG,eAAA;AAAA,IAAAI,kBACC,GAAAC,OAAA;AAAA,IAAAC,YACA,GAAAD,OAAA;AAAA,IAAAE,YACA,GAAAF,OAAA;AAAA,IAAAG,cACA,GAAAH,OAAA;AAAA,SACAJ,OAAOA,CAAAQ,KAAA,EAAW;EAAA,IAClB;IAAAC,YAAY;IAAAC,IAAA;IAAAC,IAAW,EAAAC,KAAA;IAAA1B,IAAA;IAAA2B,MAAA;IAAAC,QAAA;IAAAC,aAAA,EAAAC,cAAA;IAAAC,UAAA;IAAAC,QAAA;IAAApB,KAAA;IAAAqB,UAAA;IAAAC,OAAA;IAAA,GAAAC;EAAA,QAAAd,cAAA,CAAAe,QAAA,EAAAd,KAAA;EAAA,OACvB,eAAkB,IAAAL,kBAAA,CAAAoB,GAAA,EAAAlB,YAAA,CAAAL,OAAA;IAAAd,IAClB;IAAuBwB,IACvB;IAAqBO,UACrB;IAAqBR,YACZ;IAAWe,KACpB,EAAAH,UAAU,CAAAG,KAAW;IAAAC,UACjB,EAAAJ,UAAW,CAAAI,UAAA;IAAAC,KACf,EAAAL,UAAM,CAAAK,KAAW;IAAAC,UACjB,EAAAN,UAAA,CAAAM,UAAA;IAAAC,QACA,EAAAP,UAAA,CAAAO,QAAA;IAAAC,QACA,EAAAR,UAAA,CAAAQ,QAAA;IAAAC,OACA,EAAAT,UAAA,CAAAS,OAAA;IAAAC,QACA,EAAAV,UAAA,CAAAU,QAAA;IAAAC,EACA,EAAAX,UAAA,CAAAW,EAAA;IAAAC,IACA,EAAAZ,UAAa,CAAAY,IAAA;IAAuBnC,KACpC;IAAgCgB,QAChC;IAA2BD,MAAA;IAC7BK,QAAA;IAEJC,UAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multiplatform.one/frappe-ui",
3
- "version": "7.33.1",
3
+ "version": "7.34.1",
4
4
  "description": "Pre-wired Tamagui components for Frappe doctypes with live data",
5
5
  "keywords": [
6
6
  "cross-platform",
@@ -72,18 +72,18 @@
72
72
  "access": "public"
73
73
  },
74
74
  "dependencies": {
75
- "@multiplatform.one/components": "7.33.1",
76
- "@multiplatform.one/desktop": "7.33.1",
77
- "@multiplatform.one/forms": "7.33.1",
78
- "@multiplatform.one/frappe": "7.33.1",
79
- "@multiplatform.one/i18n": "7.33.1",
80
- "@multiplatform.one/markdown": "7.33.1",
81
- "@multiplatform.one/platform": "7.33.1",
82
- "@multiplatform.one/rich-text": "7.33.1",
83
- "@multiplatform.one/router": "7.33.1",
84
- "@multiplatform.one/store": "7.33.1",
85
- "@multiplatform.one/table": "7.33.1",
86
- "@multiplatform.one/theme": "7.33.1",
75
+ "@multiplatform.one/components": "7.34.1",
76
+ "@multiplatform.one/desktop": "7.34.1",
77
+ "@multiplatform.one/forms": "7.34.1",
78
+ "@multiplatform.one/frappe": "7.34.1",
79
+ "@multiplatform.one/i18n": "7.34.1",
80
+ "@multiplatform.one/markdown": "7.34.1",
81
+ "@multiplatform.one/platform": "7.34.1",
82
+ "@multiplatform.one/rich-text": "7.34.1",
83
+ "@multiplatform.one/router": "7.34.1",
84
+ "@multiplatform.one/store": "7.34.1",
85
+ "@multiplatform.one/table": "7.34.1",
86
+ "@multiplatform.one/theme": "7.34.1",
87
87
  "@phosphor-icons/react": "^2.1.10",
88
88
  "@tamagui/colors": "2.7.6",
89
89
  "@tanstack/db": "0.8.0",
@@ -100,9 +100,9 @@
100
100
  "tamagui": "2.7.6"
101
101
  },
102
102
  "devDependencies": {
103
- "@multiplatform.one/config": "7.33.1",
104
- "@multiplatform.one/storybook": "7.33.1",
105
- "@multiplatform.one/test-utils": "7.33.1",
103
+ "@multiplatform.one/config": "7.34.1",
104
+ "@multiplatform.one/storybook": "7.34.1",
105
+ "@multiplatform.one/test-utils": "7.34.1",
106
106
  "@tamagui/build": "2.7.6",
107
107
  "@testing-library/jest-dom": "^6.9.1",
108
108
  "@testing-library/react": "^16.3.2",
@@ -0,0 +1,131 @@
1
+ import { renderWithProviders } from "@multiplatform.one/test-utils";
2
+ import { cleanup, fireEvent, screen, waitFor, within } from "@testing-library/react";
3
+ import i18next from "i18next";
4
+ import { initReactI18next } from "react-i18next";
5
+ import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
6
+ import { FrappeProvider } from "../FrappeProvider";
7
+ import { DeskSidebar } from "./DeskSidebar";
8
+
9
+ const mockUseDocTypeSearch = vi.fn();
10
+ const stored = new Map<string, string>();
11
+
12
+ vi.mock("@multiplatform.one/frappe", async (importOriginal) => {
13
+ const actual = await importOriginal<Record<string, unknown>>();
14
+ return {
15
+ ...actual,
16
+ useDocTypeSearch: (...args: unknown[]) => mockUseDocTypeSearch(...args),
17
+ };
18
+ });
19
+
20
+ vi.mock("@multiplatform.one/store", async (importOriginal) => {
21
+ const actual = await importOriginal<Record<string, unknown>>();
22
+ return {
23
+ ...actual,
24
+ storage: {
25
+ getItem: (key: string) => stored.get(key) ?? null,
26
+ setItem: (key: string, value: string) => {
27
+ stored.set(key, value);
28
+ },
29
+ removeItem: (key: string) => {
30
+ stored.delete(key);
31
+ },
32
+ },
33
+ };
34
+ });
35
+
36
+ beforeAll(async () => {
37
+ await i18next.use(initReactI18next).init({
38
+ lng: "en",
39
+ interpolation: { escapeValue: false },
40
+ resources: { en: { translation: {} } },
41
+ });
42
+ });
43
+
44
+ beforeEach(() => {
45
+ vi.clearAllMocks();
46
+ stored.clear();
47
+ mockUseDocTypeSearch.mockReturnValue({
48
+ results: [
49
+ { type: "list", doctype: "Todo", label: "Todo List" },
50
+ { type: "list", doctype: "Note", label: "Note List" },
51
+ { type: "new", doctype: "Todo", label: "New Todo" },
52
+ { type: "list", doctype: "Todo", label: "Todo List" },
53
+ ],
54
+ });
55
+ });
56
+
57
+ afterEach(cleanup);
58
+
59
+ function renderSidebar(props: Parameters<typeof DeskSidebar>[0] = {}) {
60
+ return renderWithProviders(
61
+ <FrappeProvider baseURL="https://bench.example.com">
62
+ <DeskSidebar {...props} />
63
+ </FrappeProvider>,
64
+ );
65
+ }
66
+
67
+ function section(title: string): HTMLElement {
68
+ const heading = screen.getByText(title);
69
+ const group = heading.closest('[role="group"]');
70
+ expect(group, `${title} section`).not.toBeNull();
71
+ return group as HTMLElement;
72
+ }
73
+
74
+ describe("DeskSidebar (MPO-415)", () => {
75
+ it("lists every searchable DocType once, sorted, under Modules", () => {
76
+ renderSidebar();
77
+ const modules = section("Modules");
78
+ const todo = within(modules).getAllByText("Todo");
79
+ expect(todo).toHaveLength(1);
80
+ const note = within(modules).getByText("Note");
81
+ expect(note.compareDocumentPosition(todo[0]) & Node.DOCUMENT_POSITION_FOLLOWING).toBeTruthy();
82
+ expect(within(modules).queryByText("New Todo")).toBeNull();
83
+ });
84
+
85
+ it("asks the DocType search for the full list with the provider's connection", () => {
86
+ renderSidebar();
87
+ const [config, query] = mockUseDocTypeSearch.mock.calls[0] as [{ baseURL: string }, string];
88
+ expect(config.baseURL).toBe("https://bench.example.com");
89
+ expect(query).toBe(" ");
90
+ });
91
+
92
+ it("navigates to the module's desk path and marks the active one", () => {
93
+ const onNavigate = vi.fn();
94
+ renderSidebar({ onNavigate, activePath: "/app/Note", basePath: "/app" });
95
+ const modules = section("Modules");
96
+ fireEvent.click(within(modules).getByText("Todo"));
97
+ expect(onNavigate).toHaveBeenCalledWith("/app/Todo");
98
+ expect(modules.querySelector('[aria-current="page"]')?.textContent).toContain("Note");
99
+ });
100
+
101
+ it("reads Recent and Favorites from shared storage, above Modules", async () => {
102
+ stored.set(
103
+ "frappe-desk-recent",
104
+ JSON.stringify([{ label: "TODO-0001", path: "/desk/Todo/TODO-0001" }]),
105
+ );
106
+ stored.set(
107
+ "frappe-desk-favorites",
108
+ JSON.stringify([{ label: "Weekly notes", path: "/desk/Note/NOTE-7" }]),
109
+ );
110
+ const onNavigate = vi.fn();
111
+ renderSidebar({ onNavigate });
112
+ await waitFor(() => expect(screen.getByText("Recent")).toBeTruthy());
113
+ expect(within(section("Recent")).getByText("TODO-0001")).toBeTruthy();
114
+ expect(within(section("Favorites")).getByText("Weekly notes")).toBeTruthy();
115
+ const titles = ["Recent", "Favorites", "Modules"].map((title) => screen.getByText(title));
116
+ for (let i = 1; i < titles.length; i += 1) {
117
+ const order = titles[i - 1].compareDocumentPosition(titles[i]);
118
+ expect(order & Node.DOCUMENT_POSITION_FOLLOWING).toBeTruthy();
119
+ }
120
+ fireEvent.click(within(section("Favorites")).getByText("Weekly notes"));
121
+ expect(onNavigate).toHaveBeenCalledWith("/desk/Note/NOTE-7");
122
+ });
123
+
124
+ it("renders no section at all when storage is empty and the search finds nothing", () => {
125
+ mockUseDocTypeSearch.mockReturnValue({ results: [] });
126
+ renderSidebar();
127
+ expect(screen.queryByText("Modules")).toBeNull();
128
+ expect(screen.queryByText("Recent")).toBeNull();
129
+ expect(screen.queryByText("Favorites")).toBeNull();
130
+ });
131
+ });
@@ -0,0 +1,77 @@
1
+ import { renderWithProviders } from "@multiplatform.one/test-utils";
2
+ import { cleanup, fireEvent } from "@testing-library/react";
3
+ import { useState } from "react";
4
+ import { afterEach, describe, expect, it, vi } from "vitest";
5
+ import { Barcode } from "./index";
6
+
7
+ afterEach(cleanup);
8
+
9
+ function input(container: HTMLElement): HTMLInputElement {
10
+ const el = container.querySelector("input");
11
+ expect(el).not.toBeNull();
12
+ return el as HTMLInputElement;
13
+ }
14
+
15
+ function ControlledBarcode({ onChange }: { onChange: (value: string) => void }) {
16
+ const [value, setValue] = useState("5901234123457");
17
+ return (
18
+ <Barcode
19
+ label="Barcode"
20
+ value={value}
21
+ onChange={(next) => {
22
+ setValue(next);
23
+ onChange(next);
24
+ }}
25
+ />
26
+ );
27
+ }
28
+
29
+ describe("frappe-ui Barcode adapter (MPO-415)", () => {
30
+ it("round-trips a typed value through onChange back into the field", () => {
31
+ const onChange = vi.fn();
32
+ const { container } = renderWithProviders(<ControlledBarcode onChange={onChange} />);
33
+ expect(input(container).value).toBe("5901234123457");
34
+ fireEvent.change(input(container), { target: { value: "SKU-001234" } });
35
+ expect(onChange).toHaveBeenLastCalledWith("SKU-001234");
36
+ expect(input(container).value).toBe("SKU-001234");
37
+ });
38
+
39
+ it("clears to an empty string", () => {
40
+ const onChange = vi.fn();
41
+ const { container } = renderWithProviders(<ControlledBarcode onChange={onChange} />);
42
+ const clear = container.querySelector("[aria-label='Clear barcode']");
43
+ expect(clear).not.toBeNull();
44
+ fireEvent.click(clear as Element);
45
+ expect(onChange).toHaveBeenLastCalledWith("");
46
+ expect(input(container).value).toBe("");
47
+ });
48
+
49
+ it("supplies its own barcode, scan and stop glyphs", () => {
50
+ const { container } = renderWithProviders(<Barcode label="Barcode" value="" enableScan />);
51
+ const scan = container.querySelector("[aria-label='Scan barcode']");
52
+ expect(scan).not.toBeNull();
53
+ expect(scan?.querySelector("svg")).not.toBeNull();
54
+ });
55
+
56
+ it("draws a Code 128 preview for the value by default", () => {
57
+ const { container } = renderWithProviders(<Barcode label="Barcode" value="SKU-001234" />);
58
+ expect(container.querySelector('[data-testid="barcode-preview"]')).not.toBeNull();
59
+ expect(container.querySelector('[data-testid="barcode-preview-qr"]')).toBeNull();
60
+ });
61
+
62
+ it("hands formats to the forms field, so a qrcode field draws a QR matrix", () => {
63
+ const { container } = renderWithProviders(
64
+ <Barcode label="QR" value="https://multiplatform.one" formats={["qrcode"]} />,
65
+ );
66
+ expect(container.querySelector('[data-testid="barcode-preview-qr"]')).not.toBeNull();
67
+ });
68
+
69
+ it("disabled and readOnly block editing", () => {
70
+ const disabled = renderWithProviders(<Barcode label="Barcode" value="A-1" disabled />);
71
+ expect(input(disabled.container).disabled).toBe(true);
72
+ cleanup();
73
+ const readOnly = renderWithProviders(<Barcode label="Barcode" value="A-1" readOnly />);
74
+ expect(readOnly.container.querySelector("[aria-label='Clear barcode']")).toBeNull();
75
+ expect(readOnly.container.querySelector("[aria-label='Scan barcode']")).toBeNull();
76
+ });
77
+ });
@@ -55,7 +55,7 @@ export function Barcode<
55
55
  disabled,
56
56
  value,
57
57
  enableScan,
58
- formats: _formats,
58
+ formats,
59
59
  ...fieldProps
60
60
  } = useProps(props);
61
61
 
@@ -80,6 +80,7 @@ export function Barcode<
80
80
  onBlur={onBlur}
81
81
  disabled={disabled}
82
82
  enableScan={enableScan}
83
+ formats={formats}
83
84
  barcodeIcon={<BarcodeIcon size={18} />}
84
85
  scanIcon={<CameraIcon size={18} />}
85
86
  stopIcon={<XIcon size={18} />}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Barcode/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGpF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,MAAM,YAAY,CACtB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,KAAK,SAAS,MAAM,GAAG,MAAM,IAC3B,IAAI,CACN,cAAc,CACZ,KAAK,EACL,KAAK,SAAS,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,EACvD,OAAO,EACP,OAAO,EACP,MAAM,CACP,EACD,UAAU,GAAG,OAAO,CACrB,GACC,OAAO,CACL,IAAI,CACF,mBAAmB,CACjB,KAAK,EACL,KAAK,SAAS,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,EACvD,OAAO,EACP,OAAO,EACP,MAAM,CACP,EACD,UAAU,CACX,CACF,GAAG;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEJ,wBAAgB,OAAO,CACrB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,2CA2ClC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Barcode/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGpF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,MAAM,YAAY,CACtB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,KAAK,SAAS,MAAM,GAAG,MAAM,IAC3B,IAAI,CACN,cAAc,CACZ,KAAK,EACL,KAAK,SAAS,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,EACvD,OAAO,EACP,OAAO,EACP,MAAM,CACP,EACD,UAAU,GAAG,OAAO,CACrB,GACC,OAAO,CACL,IAAI,CACF,mBAAmB,CACjB,KAAK,EACL,KAAK,SAAS,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,EACvD,OAAO,EACP,OAAO,EACP,MAAM,CACP,EACD,UAAU,CACX,CACF,GAAG;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEJ,wBAAgB,OAAO,CACrB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,2CA4ClC"}