@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.
- package/dist/cjs/fields/Barcode/index.cjs +2 -1
- package/dist/cjs/fields/Barcode/index.native.js +2 -1
- package/dist/cjs/fields/Barcode/index.native.js.map +1 -1
- package/dist/esm/fields/Barcode/index.mjs +2 -1
- package/dist/esm/fields/Barcode/index.mjs.map +1 -1
- package/dist/esm/fields/Barcode/index.native.js +2 -1
- package/dist/esm/fields/Barcode/index.native.js.map +1 -1
- package/dist/jsx/fields/Barcode/index.mjs +2 -1
- package/dist/jsx/fields/Barcode/index.mjs.map +1 -1
- package/dist/jsx/fields/Barcode/index.native.js +2 -1
- package/dist/jsx/fields/Barcode/index.native.js.map +1 -1
- package/package.json +16 -16
- package/src/desk/DeskSidebar.screen.spec.tsx +131 -0
- package/src/fields/Barcode/Barcode.adapter.spec.tsx +77 -0
- package/src/fields/Barcode/index.tsx +2 -1
- package/types/fields/Barcode/index.d.ts.map +1 -1
|
@@ -42,7 +42,7 @@ function Barcode(props) {
|
|
|
42
42
|
disabled,
|
|
43
43
|
value,
|
|
44
44
|
enableScan,
|
|
45
|
-
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
|
|
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","
|
|
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
|
|
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","
|
|
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
|
|
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","
|
|
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
|
|
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","
|
|
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
|
|
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","
|
|
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.
|
|
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.
|
|
76
|
-
"@multiplatform.one/desktop": "7.
|
|
77
|
-
"@multiplatform.one/forms": "7.
|
|
78
|
-
"@multiplatform.one/frappe": "7.
|
|
79
|
-
"@multiplatform.one/i18n": "7.
|
|
80
|
-
"@multiplatform.one/markdown": "7.
|
|
81
|
-
"@multiplatform.one/platform": "7.
|
|
82
|
-
"@multiplatform.one/rich-text": "7.
|
|
83
|
-
"@multiplatform.one/router": "7.
|
|
84
|
-
"@multiplatform.one/store": "7.
|
|
85
|
-
"@multiplatform.one/table": "7.
|
|
86
|
-
"@multiplatform.one/theme": "7.
|
|
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.
|
|
104
|
-
"@multiplatform.one/storybook": "7.
|
|
105
|
-
"@multiplatform.one/test-utils": "7.
|
|
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
|
|
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,
|
|
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"}
|