@draftbit/core 43.4.6-f4bf57.2 → 43.4.8-cae1e2.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.
@@ -21,8 +21,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
21
21
 
22
22
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
23
 
24
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
25
-
26
24
  const AccordionItem = _ref => {
27
25
  let {
28
26
  Icon,
@@ -37,9 +35,10 @@ const AccordionItem = _ref => {
37
35
  textStyles,
38
36
  viewStyles
39
37
  } = (0, _utilities.extractStyles)(style);
40
- return /*#__PURE__*/React.createElement(_reactNative.Pressable, _extends({
41
- style: [styles.container, viewStyles]
42
- }, rest), /*#__PURE__*/React.createElement(_reactNative.View, {
38
+ return /*#__PURE__*/React.createElement(_reactNative.Pressable, {
39
+ style: [styles.container, viewStyles],
40
+ ...rest
41
+ }, /*#__PURE__*/React.createElement(_reactNative.View, {
43
42
  style: styles.row
44
43
  }, icon ? /*#__PURE__*/React.createElement(Icon, {
45
44
  name: icon,
@@ -74,5 +73,22 @@ const styles = _reactNative.StyleSheet.create({
74
73
 
75
74
  var _default = (0, _theming.withTheme)(AccordionItem);
76
75
 
76
+ exports.default = _default;
77
+ //# sourceMappingURL=AccordionItem.js.map flexDirection: "row",
78
+ alignItems: "center",
79
+ paddingLeft: 8
80
+ },
81
+ item: {
82
+ marginVertical: 6,
83
+ paddingLeft: 8
84
+ },
85
+ content: {
86
+ flex: 1,
87
+ justifyContent: "center"
88
+ }
89
+ });
90
+
91
+ var _default = (0, _theming.withTheme)(AccordionItem);
92
+
77
93
  exports.default = _default;
78
94
  //# sourceMappingURL=AccordionItem.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["AccordionItem.tsx"],"names":["AccordionItem","Icon","icon","label","style","iconColor","theme","rest","textStyles","viewStyles","styles","container","row","colors","primary","item","content","StyleSheet","create","padding","flexDirection","alignItems","paddingLeft","marginVertical","flex","justifyContent"],"mappings":";;;;;;;AAAA;;AACA;;AAQA;;AAEA;;AACA;;;;;;;;;;AAWA,MAAMA,aAAa,GAAG,QAQT;AAAA,MARU;AACrBC,IAAAA,IADqB;AAErBC,IAAAA,IAFqB;AAGrBC,IAAAA,KAHqB;AAIrBC,IAAAA,KAJqB;AAKrBC,IAAAA,SALqB;AAMrBC,IAAAA,KANqB;AAOrB,OAAGC;AAPkB,GAQV;AACX,QAAM;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,MAA6B,8BAAcL,KAAd,CAAnC;AACA,sBACE,oBAAC,sBAAD;AAAW,IAAA,KAAK,EAAE,CAACM,MAAM,CAACC,SAAR,EAAmBF,UAAnB;AAAlB,KAAsDF,IAAtD,gBACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAEG,MAAM,CAACE;AAApB,KACGV,IAAI,gBACH,oBAAC,IAAD;AACE,IAAA,IAAI,EAAEA,IADR;AAEE,IAAA,IAAI,EAAE,EAFR;AAGE,IAAA,KAAK,EAAEG,SAAS,IAAIC,KAAK,CAACO,MAAN,CAAaC;AAHnC,IADG,GAMD,IAPN,eAQE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACJ,MAAM,CAACK,IAAR,EAAcL,MAAM,CAACM,OAArB;AAAb,kBACE,oBAAC,aAAD;AAAM,IAAA,UAAU,EAAE,KAAlB;AAAyB,IAAA,KAAK,EAAER;AAAhC,KACGL,KADH,CADF,CARF,CADF,CADF;AAkBD,CA5BD;;AA8BA,MAAMO,MAAM,GAAGO,wBAAWC,MAAX,CAAkB;AAC/BP,EAAAA,SAAS,EAAE;AACTQ,IAAAA,OAAO,EAAE;AADA,GADoB;AAI/BP,EAAAA,GAAG,EAAE;AACHQ,IAAAA,aAAa,EAAE,KADZ;AAEHC,IAAAA,UAAU,EAAE,QAFT;AAGHC,IAAAA,WAAW,EAAE;AAHV,GAJ0B;AAS/BP,EAAAA,IAAI,EAAE;AACJQ,IAAAA,cAAc,EAAE,CADZ;AAEJD,IAAAA,WAAW,EAAE;AAFT,GATyB;AAa/BN,EAAAA,OAAO,EAAE;AACPQ,IAAAA,IAAI,EAAE,CADC;AAEPC,IAAAA,cAAc,EAAE;AAFT;AAbsB,CAAlB,CAAf;;eAmBe,wBAAUzB,aAAV,C","sourcesContent":["import * as React from \"react\";\nimport {\n Pressable,\n StyleSheet,\n View,\n StyleProp,\n ViewStyle,\n} from \"react-native\";\n\nimport Text from \"../Text\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport { extractStyles } from \"../../utilities\";\nimport { withTheme } from \"../../theming\";\nimport type { Theme } from \"../../styles/DefaultTheme\";\n\ntype Props = {\n icon?: string;\n label: string;\n iconColor?: string;\n style?: StyleProp<ViewStyle>;\n theme: Theme;\n} & IconSlot;\n\nconst AccordionItem = ({\n Icon,\n icon,\n label,\n style,\n iconColor,\n theme,\n ...rest\n}: Props) => {\n const { textStyles, viewStyles } = extractStyles(style);\n return (\n <Pressable style={[styles.container, viewStyles]} {...rest}>\n <View style={styles.row}>\n {icon ? (\n <Icon\n name={icon}\n size={24}\n color={iconColor || theme.colors.primary}\n />\n ) : null}\n <View style={[styles.item, styles.content]}>\n <Text selectable={false} style={textStyles}>\n {label}\n </Text>\n </View>\n </View>\n </Pressable>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n padding: 8,\n },\n row: {\n flexDirection: \"row\",\n alignItems: \"center\",\n paddingLeft: 8,\n },\n item: {\n marginVertical: 6,\n paddingLeft: 8,\n },\n content: {\n flex: 1,\n justifyContent: \"center\",\n },\n});\n\nexport default withTheme(AccordionItem);\n"]}
1
+ {"version":3,"sources":["AccordionItem.js"],"names":["AccordionItem","Icon","icon","label","style","iconColor","theme","rest","textStyles","viewStyles","React","createElement","Pressable","styles","container","View","row","name","size","color","colors","primary","item","content","Text","selectable","StyleSheet","create","padding","flexDirection","alignItems","paddingLeft","marginVertical","flex","justifyContent"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AACA,MAAMA,aAAa,GAAG,QAA6D;AAAA,MAA5D;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,IAAR;AAAcC,IAAAA,KAAd;AAAqBC,IAAAA,KAArB;AAA4BC,IAAAA,SAA5B;AAAuCC,IAAAA,KAAvC;AAA8C,OAAGC;AAAjD,GAA4D;AAC/E,QAAM;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,MAA6B,8BAAcL,KAAd,CAAnC;AACA,sBAAQM,KAAK,CAACC,aAAN,CAAoBC,sBAApB,EAA+B;AAAER,IAAAA,KAAK,EAAE,CAACS,MAAM,CAACC,SAAR,EAAmBL,UAAnB,CAAT;AAAyC,OAAGF;AAA5C,GAA/B,eACJG,KAAK,CAACC,aAAN,CAAoBI,iBAApB,EAA0B;AAAEX,IAAAA,KAAK,EAAES,MAAM,CAACG;AAAhB,GAA1B,EACId,IAAI,gBAAIQ,KAAK,CAACC,aAAN,CAAoBV,IAApB,EAA0B;AAAEgB,IAAAA,IAAI,EAAEf,IAAR;AAAcgB,IAAAA,IAAI,EAAE,EAApB;AAAwBC,IAAAA,KAAK,EAAEd,SAAS,IAAIC,KAAK,CAACc,MAAN,CAAaC;AAAzD,GAA1B,CAAJ,GAAqG,IAD7G,eAEIX,KAAK,CAACC,aAAN,CAAoBI,iBAApB,EAA0B;AAAEX,IAAAA,KAAK,EAAE,CAACS,MAAM,CAACS,IAAR,EAAcT,MAAM,CAACU,OAArB;AAAT,GAA1B,eACIb,KAAK,CAACC,aAAN,CAAoBa,aAApB,EAA0B;AAAEC,IAAAA,UAAU,EAAE,KAAd;AAAqBrB,IAAAA,KAAK,EAAEI;AAA5B,GAA1B,EAAoEL,KAApE,CADJ,CAFJ,CADI,CAAR;AAKH,CAPD;;AAQA,MAAMU,MAAM,GAAGa,wBAAWC,MAAX,CAAkB;AAC7Bb,EAAAA,SAAS,EAAE;AACPc,IAAAA,OAAO,EAAE;AADF,GADkB;AAI7BZ,EAAAA,GAAG,EAAE;AACDa,IAAAA,aAAa,EAAE,KADd;AAEDC,IAAAA,UAAU,EAAE,QAFX;AAGDC,IAAAA,WAAW,EAAE;AAHZ,GAJwB;AAS7BT,EAAAA,IAAI,EAAE;AACFU,IAAAA,cAAc,EAAE,CADd;AAEFD,IAAAA,WAAW,EAAE;AAFX,GATuB;AAa7BR,EAAAA,OAAO,EAAE;AACLU,IAAAA,IAAI,EAAE,CADD;AAELC,IAAAA,cAAc,EAAE;AAFX;AAboB,CAAlB,CAAf;;eAkBe,wBAAUlC,aAAV,C","sourcesContent":["import * as React from \"react\";\nimport { Pressable, StyleSheet, View, } from \"react-native\";\nimport Text from \"../Text\";\nimport { extractStyles } from \"../../utilities\";\nimport { withTheme } from \"../../theming\";\nconst AccordionItem = ({ Icon, icon, label, style, iconColor, theme, ...rest }) => {\n const { textStyles, viewStyles } = extractStyles(style);\n return (React.createElement(Pressable, { style: [styles.container, viewStyles], ...rest },\n React.createElement(View, { style: styles.row },\n icon ? (React.createElement(Icon, { name: icon, size: 24, color: iconColor || theme.colors.primary })) : null,\n React.createElement(View, { style: [styles.item, styles.content] },\n React.createElement(Text, { selectable: false, style: textStyles }, label)))));\n};\nconst styles = StyleSheet.create({\n container: {\n padding: 8,\n },\n row: {\n flexDirection: \"row\",\n alignItems: \"center\",\n paddingLeft: 8,\n },\n item: {\n marginVertical: 6,\n paddingLeft: 8,\n },\n content: {\n flex: 1,\n justifyContent: \"center\",\n },\n});\nexport default withTheme(AccordionItem);\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;AACA","sourcesContent":["export { default as AccordionGroup } from \"./AccordionGroup\";\nexport { default as AccordionItem } from \"./AccordionItem\";\n"]}
1
+ {"version":3,"sources":["index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;AACA","sourcesContent":["export { default as AccordionGroup } from \"./AccordionGroup\";\nexport { default as AccordionItem } from \"./AccordionItem\";\n"]}
@@ -15,6 +15,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
15
15
 
16
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
17
 
18
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
19
+
18
20
  const FAB = _ref => {
19
21
  let {
20
22
  onPress,
@@ -38,7 +40,7 @@ const FAB = _ref => {
38
40
  borderRadius: size / 2,
39
41
  overflow: "hidden"
40
42
  }, style]
41
- }, /*#__PURE__*/React.createElement(_reactNative.Pressable, {
43
+ }, /*#__PURE__*/React.createElement(_reactNative.Pressable, _extends({
42
44
  onPress: onPress,
43
45
  disabled: loading || disabled,
44
46
  android_ripple: {
@@ -56,9 +58,8 @@ const FAB = _ref => {
56
58
  borderRadius: size / 2,
57
59
  backgroundColor
58
60
  }];
59
- },
60
- ...props
61
- }, /*#__PURE__*/React.createElement(_reactNative.View, null, loading ? /*#__PURE__*/React.createElement(_reactNative.ActivityIndicator, {
61
+ }
62
+ }, props), /*#__PURE__*/React.createElement(_reactNative.View, null, loading ? /*#__PURE__*/React.createElement(_reactNative.ActivityIndicator, {
62
63
  style: size > 50 ? {
63
64
  marginTop: 2,
64
65
  marginLeft: 2
@@ -88,20 +89,5 @@ const styles = _reactNative.StyleSheet.create({
88
89
 
89
90
  var _default = (0, _theming.withTheme)(FAB);
90
91
 
91
- exports.default = _default;
92
- //# sourceMappingURL=FAB.js.map backgroundColor: "#5a45ff",
93
- justifyContent: "center",
94
- alignItems: "center",
95
- ..._reactNative.Platform.select({
96
- web: {
97
- cursor: "pointer",
98
- userSelect: "none"
99
- }
100
- })
101
- }
102
- });
103
-
104
- var _default = (0, _theming.withTheme)(FAB);
105
-
106
92
  exports.default = _default;
107
93
  //# sourceMappingURL=FAB.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["FAB.js"],"names":["FAB","onPress","disabled","loading","iconName","style","theme","iconColor","bgColor","size","Icon","props","backgroundColor","colors","primary","color","React","createElement","View","width","height","borderRadius","overflow","Pressable","android_ripple","radius","pressed","styles","button","opacity","ActivityIndicator","marginTop","marginLeft","undefined","name","StyleSheet","create","justifyContent","alignItems","Platform","select","web","cursor","userSelect"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;AACA,MAAMA,GAAG,GAAG,QAAiI;AAAA,MAAhI;AAAEC,IAAAA,OAAF;AAAWC,IAAAA,QAAX;AAAqBC,IAAAA,OAArB;AAA8BC,IAAAA,QAAQ,GAAG,mBAAzC;AAA8DC,IAAAA,KAA9D;AAAqEC,IAAAA,KAArE;AAA4EC,IAAAA,SAA5E;AAAuFC,IAAAA,OAAvF;AAAgGC,IAAAA,IAAI,GAAG,EAAvG;AAA2GC,IAAAA,IAA3G;AAAiH,OAAGC;AAApH,GAAgI;AACzI,QAAMC,eAAe,GAAGJ,OAAO,IAAIF,KAAK,CAACO,MAAN,CAAaC,OAAhD;AACA,QAAMC,KAAK,GAAGR,SAAS,IAAI,MAA3B;AACA,sBAAQS,KAAK,CAACC,aAAN,CAAoBC,iBAApB,EAA0B;AAAEb,IAAAA,KAAK,EAAE,CACnC;AACIc,MAAAA,KAAK,EAAEV,IADX;AAEIW,MAAAA,MAAM,EAAEX,IAFZ;AAGIY,MAAAA,YAAY,EAAEZ,IAAI,GAAG,CAHzB;AAIIa,MAAAA,QAAQ,EAAE;AAJd,KADmC,EAOnCjB,KAPmC;AAAT,GAA1B,eASJW,KAAK,CAACC,aAAN,CAAoBM,sBAApB,EAA+B;AAAEtB,IAAAA,OAAO,EAAEA,OAAX;AAAoBC,IAAAA,QAAQ,EAAEC,OAAO,IAAID,QAAzC;AAAmDsB,IAAAA,cAAc,EAAE;AAC1FT,MAAAA,KAAK,EAAE,MADmF;AAE1FU,MAAAA,MAAM,EAAEhB,IAAI,GAAG;AAF2E,KAAnE;AAGxBJ,IAAAA,KAAK,EAAE,SAAiB;AAAA,UAAhB;AAAEqB,QAAAA;AAAF,OAAgB;AACvB,aAAO,CACHC,MAAM,CAACC,MADJ,EAEH;AACIC,QAAAA,OAAO,EAAEH,OAAO,IAAIxB,QAAX,GAAsB,IAAtB,GAA6B,CAD1C;AAEIiB,QAAAA,KAAK,EAAEV,IAFX;AAGIW,QAAAA,MAAM,EAAEX,IAHZ;AAIIY,QAAAA,YAAY,EAAEZ,IAAI,GAAG,CAJzB;AAKIG,QAAAA;AALJ,OAFG,CAAP;AAUH,KAd0B;AAcxB,OAAGD;AAdqB,GAA/B,eAeIK,KAAK,CAACC,aAAN,CAAoBC,iBAApB,EAA0B,IAA1B,EAAgCf,OAAO,gBAAIa,KAAK,CAACC,aAAN,CAAoBa,8BAApB,EAAuC;AAAEzB,IAAAA,KAAK,EAAEI,IAAI,GAAG,EAAP,GAAY;AAAEsB,MAAAA,SAAS,EAAE,CAAb;AAAgBC,MAAAA,UAAU,EAAE;AAA5B,KAAZ,GAA8CC,SAAvD;AAAkExB,IAAAA,IAAI,EAAEA,IAAI,IAAI,EAAR,GAAa,OAAb,GAAuB,OAA/F;AAAwGM,IAAAA,KAAK,EAAEA;AAA/G,GAAvC,CAAJ,gBAAuKC,KAAK,CAACC,aAAN,CAAoBP,IAApB,EAA0B;AAAEwB,IAAAA,IAAI,EAAE9B,QAAR;AAAkBK,IAAAA,IAAI,EAAEA,IAAxB;AAA8BM,IAAAA,KAAK,EAAEA;AAArC,GAA1B,CAA9M,CAfJ,CATI,CAAR;AAyBH,CA5BD;;AA6BA,MAAMY,MAAM,GAAGQ,wBAAWC,MAAX,CAAkB;AAC7BR,EAAAA,MAAM,EAAE;AACJhB,IAAAA,eAAe,EAAE,SADb;AAEJyB,IAAAA,cAAc,EAAE,QAFZ;AAGJC,IAAAA,UAAU,EAAE,QAHR;AAIJ,OAAGC,sBAASC,MAAT,CAAgB;AACfC,MAAAA,GAAG,EAAE;AACDC,QAAAA,MAAM,EAAE,SADP;AAEDC,QAAAA,UAAU,EAAE;AAFX;AADU,KAAhB;AAJC;AADqB,CAAlB,CAAf;;eAae,wBAAU3C,GAAV,C","sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet, Pressable, ActivityIndicator, Platform, } from \"react-native\";\nimport { withTheme } from \"../theming\";\nconst FAB = ({ onPress, disabled, loading, iconName = \"MaterialIcons/add\", style, theme, iconColor, bgColor, size = 50, Icon, ...props }) => {\n const backgroundColor = bgColor || theme.colors.primary;\n const color = iconColor || \"#FFF\";\n return (React.createElement(View, { style: [\n {\n width: size,\n height: size,\n borderRadius: size / 2,\n overflow: \"hidden\",\n },\n style,\n ] },\n React.createElement(Pressable, { onPress: onPress, disabled: loading || disabled, android_ripple: {\n color: \"#333\",\n radius: size / 4,\n }, style: ({ pressed }) => {\n return [\n styles.button,\n {\n opacity: pressed || disabled ? 0.75 : 1,\n width: size,\n height: size,\n borderRadius: size / 2,\n backgroundColor,\n },\n ];\n }, ...props },\n React.createElement(View, null, loading ? (React.createElement(ActivityIndicator, { style: size > 50 ? { marginTop: 2, marginLeft: 2 } : undefined, size: size <= 50 ? \"small\" : \"large\", color: color })) : (React.createElement(Icon, { name: iconName, size: size, color: color }))))));\n};\nconst styles = StyleSheet.create({\n button: {\n backgroundColor: \"#5a45ff\",\n justifyContent: \"center\",\n alignItems: \"center\",\n ...Platform.select({\n web: {\n cursor: \"pointer\",\n userSelect: \"none\",\n },\n }),\n },\n});\nexport default withTheme(FAB);\n"]}
1
+ {"version":3,"sources":["FAB.tsx"],"names":["FAB","onPress","disabled","loading","iconName","style","theme","iconColor","bgColor","size","Icon","props","backgroundColor","colors","primary","color","width","height","borderRadius","overflow","radius","pressed","styles","button","opacity","marginTop","marginLeft","undefined","StyleSheet","create","justifyContent","alignItems","Platform","select","web","cursor","userSelect"],"mappings":";;;;;;;AAAA;;AACA;;AAUA;;;;;;;;AAiBA,MAAMA,GAAoB,GAAG,QAYvB;AAAA,MAZwB;AAC5BC,IAAAA,OAD4B;AAE5BC,IAAAA,QAF4B;AAG5BC,IAAAA,OAH4B;AAI5BC,IAAAA,QAAQ,GAAG,mBAJiB;AAK5BC,IAAAA,KAL4B;AAM5BC,IAAAA,KAN4B;AAO5BC,IAAAA,SAP4B;AAQ5BC,IAAAA,OAR4B;AAS5BC,IAAAA,IAAI,GAAG,EATqB;AAU5BC,IAAAA,IAV4B;AAW5B,OAAGC;AAXyB,GAYxB;AACJ,QAAMC,eAAe,GAAGJ,OAAO,IAAIF,KAAK,CAACO,MAAN,CAAaC,OAAhD;AACA,QAAMC,KAAK,GAAGR,SAAS,IAAI,MAA3B;AAEA,sBACE,oBAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACL;AACES,MAAAA,KAAK,EAAEP,IADT;AAEEQ,MAAAA,MAAM,EAAER,IAFV;AAGES,MAAAA,YAAY,EAAET,IAAI,GAAG,CAHvB;AAIEU,MAAAA,QAAQ,EAAE;AAJZ,KADK,EAOLd,KAPK;AADT,kBAWE,oBAAC,sBAAD;AACE,IAAA,OAAO,EAAEJ,OADX;AAEE,IAAA,QAAQ,EAAEE,OAAO,IAAID,QAFvB;AAGE,IAAA,cAAc,EAAE;AACda,MAAAA,KAAK,EAAE,MADO;AAEdK,MAAAA,MAAM,EAAEX,IAAI,GAAG;AAFD,KAHlB;AAOE,IAAA,KAAK,EAAE,SAAiB;AAAA,UAAhB;AAAEY,QAAAA;AAAF,OAAgB;AACtB,aAAO,CACLC,MAAM,CAACC,MADF,EAEL;AACEC,QAAAA,OAAO,EAAEH,OAAO,IAAInB,QAAX,GAAsB,IAAtB,GAA6B,CADxC;AAEEc,QAAAA,KAAK,EAAEP,IAFT;AAGEQ,QAAAA,MAAM,EAAER,IAHV;AAIES,QAAAA,YAAY,EAAET,IAAI,GAAG,CAJvB;AAKEG,QAAAA;AALF,OAFK,CAAP;AAUD;AAlBH,KAmBMD,KAnBN,gBAqBE,oBAAC,iBAAD,QACGR,OAAO,gBACN,oBAAC,8BAAD;AACE,IAAA,KAAK,EAAEM,IAAI,GAAG,EAAP,GAAY;AAAEgB,MAAAA,SAAS,EAAE,CAAb;AAAgBC,MAAAA,UAAU,EAAE;AAA5B,KAAZ,GAA8CC,SADvD;AAEE,IAAA,IAAI,EAAElB,IAAI,IAAI,EAAR,GAAa,OAAb,GAAuB,OAF/B;AAGE,IAAA,KAAK,EAAEM;AAHT,IADM,gBAON,oBAAC,IAAD;AAAM,IAAA,IAAI,EAAEX,QAAZ;AAAsB,IAAA,IAAI,EAAEK,IAA5B;AAAkC,IAAA,KAAK,EAAEM;AAAzC,IARJ,CArBF,CAXF,CADF;AA+CD,CA/DD;;AAiEA,MAAMO,MAAM,GAAGM,wBAAWC,MAAX,CAAkB;AAC/BN,EAAAA,MAAM,EAAE;AACNX,IAAAA,eAAe,EAAE,SADX;AAENkB,IAAAA,cAAc,EAAE,QAFV;AAGNC,IAAAA,UAAU,EAAE,QAHN;AAIN,OAAGC,sBAASC,MAAT,CAAgB;AACjBC,MAAAA,GAAG,EAAE;AACHC,QAAAA,MAAM,EAAE,SADL;AAEHC,QAAAA,UAAU,EAAE;AAFT;AADY,KAAhB;AAJG;AADuB,CAAlB,CAAf;;eAce,wBAAUpC,GAAV,C","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n StyleSheet,\n Pressable,\n ActivityIndicator,\n StyleProp,\n ViewStyle,\n PressableProps,\n Platform,\n} from \"react-native\";\nimport { withTheme } from \"../theming\";\nimport type { Theme } from \"../styles/DefaultTheme\";\nimport type { IconSlot } from \"../interfaces/Icon\";\n\ntype Props = {\n disabled?: boolean;\n loading?: boolean;\n size?: number;\n bgColor?: string;\n iconColor?: string;\n iconName?: string;\n onPress: () => void;\n theme: Theme;\n style?: StyleProp<ViewStyle>;\n} & PressableProps &\n IconSlot;\n\nconst FAB: React.FC<Props> = ({\n onPress,\n disabled,\n loading,\n iconName = \"MaterialIcons/add\",\n style,\n theme,\n iconColor,\n bgColor,\n size = 50,\n Icon,\n ...props\n}) => {\n const backgroundColor = bgColor || theme.colors.primary;\n const color = iconColor || \"#FFF\";\n\n return (\n <View\n style={[\n {\n width: size,\n height: size,\n borderRadius: size / 2,\n overflow: \"hidden\",\n },\n style,\n ]}\n >\n <Pressable\n onPress={onPress}\n disabled={loading || disabled}\n android_ripple={{\n color: \"#333\",\n radius: size / 4,\n }}\n style={({ pressed }) => {\n return [\n styles.button,\n {\n opacity: pressed || disabled ? 0.75 : 1,\n width: size,\n height: size,\n borderRadius: size / 2,\n backgroundColor,\n },\n ];\n }}\n {...props}\n >\n <View>\n {loading ? (\n <ActivityIndicator\n style={size > 50 ? { marginTop: 2, marginLeft: 2 } : undefined}\n size={size <= 50 ? \"small\" : \"large\"}\n color={color}\n />\n ) : (\n <Icon name={iconName} size={size} color={color} />\n )}\n </View>\n </Pressable>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n button: {\n backgroundColor: \"#5a45ff\",\n justifyContent: \"center\",\n alignItems: \"center\",\n ...Platform.select({\n web: {\n cursor: \"pointer\",\n userSelect: \"none\",\n },\n }),\n },\n});\n\nexport default withTheme(FAB);\n"]}
@@ -20,53 +20,59 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
20
20
  const NumberInput = _ref => {
21
21
  let {
22
22
  onChangeText,
23
- value = "",
24
- defaultValue = "",
23
+ value,
24
+ defaultValue,
25
25
  ...props
26
26
  } = _ref;
27
- const [isDecimal, setIsDecimal] = (0, _react.useState)(value && !Number.isInteger(value));
28
- const formatValueToString = (0, _react.useCallback)(valueToStringify => {
29
- if (valueToStringify != null) {
30
- if ((0, _lodash.isString)(valueToStringify) && /^[+-]?([0-9]+\.?[0-9]*|\.[0-9]+)$/.test(valueToStringify)) {
31
- console.log("is string", value);
32
- return valueToStringify;
33
- } else if ((0, _lodash.isNumber)(valueToStringify)) {
34
- return valueToStringify.toString();
35
- }
36
- }
37
-
38
- return "";
39
- }, [value]);
40
- (0, _react.useEffect)(() => {
41
- if (value) {
42
- setIsDecimal(formatValueToString(value).includes("."));
43
- }
44
- }, [value, formatValueToString]);
45
27
 
46
- const makeFinalValue = valueToMakeFinal => {
47
- let stringValue = formatValueToString(valueToMakeFinal);
48
-
49
- if (isDecimal && !stringValue.includes(".")) {
50
- stringValue = `${stringValue}.`;
28
+ const formatValueToStringNumber = (valueToFormat, currentStringNumberValue) => {
29
+ if (valueToFormat != null) {
30
+ if ((0, _lodash.isString)(valueToFormat) && valueToFormat !== "") {
31
+ if (/^0[1-9]$/.test(valueToFormat)) {
32
+ return valueToFormat.slice(1);
33
+ } else if (/^[+-]?([0-9]+\.?[0-9]*|\.[0-9]+)$/.test(valueToFormat)) {
34
+ return valueToFormat;
35
+ } else if (currentStringNumberValue) {
36
+ return currentStringNumberValue;
37
+ }
38
+ } else if ((0, _lodash.isNumber)(valueToFormat) && !(0, _lodash.isNaN)(valueToFormat)) {
39
+ return valueToFormat.toString();
40
+ }
51
41
  }
52
42
 
53
- return stringValue;
43
+ return "0";
54
44
  };
55
45
 
46
+ const [currentStringNumberValue, setCurrentStringNumberValue] = (0, _react.useState)(formatValueToStringNumber(value));
47
+
56
48
  const handleChangeText = newValue => {
57
- const parsedNumber = parseFloat(newValue);
58
- const number = isNaN(parsedNumber) ? 0 : parsedNumber;
59
- setIsDecimal(newValue.includes("."));
49
+ const newStringNumberValue = formatValueToStringNumber(newValue, currentStringNumberValue);
50
+ const number = parseFloat(newStringNumberValue);
51
+ setCurrentStringNumberValue(newStringNumberValue);
60
52
  onChangeText === null || onChangeText === void 0 ? void 0 : onChangeText(number);
61
53
  };
62
54
 
55
+ (0, _react.useEffect)(() => {
56
+ const defaultStringNumberValue = formatValueToStringNumber(defaultValue, currentStringNumberValue);
57
+
58
+ if (currentStringNumberValue !== defaultStringNumberValue) {
59
+ setCurrentStringNumberValue(defaultStringNumberValue);
60
+ } // eslint-disable-next-line react-hooks/exhaustive-deps
61
+
62
+ }, []);
63
+ (0, _react.useEffect)(() => {
64
+ const nextStringNumberValue = formatValueToStringNumber(value, currentStringNumberValue);
65
+
66
+ if (currentStringNumberValue !== nextStringNumberValue) {
67
+ handleChangeText(nextStringNumberValue);
68
+ } // eslint-disable-next-line react-hooks/exhaustive-deps
69
+
70
+ }, [value]);
63
71
  return /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, _extends({
64
- keyboardType: "numeric"
65
- }, props, {
66
- value: makeFinalValue(value),
67
- defaultValue: makeFinalValue(defaultValue),
72
+ keyboardType: "numeric",
73
+ value: currentStringNumberValue,
68
74
  onChangeText: handleChangeText
69
- }));
75
+ }, props));
70
76
  };
71
77
 
72
78
  var _default = NumberInput;
@@ -1 +1 @@
1
- {"version":3,"sources":["NumberInput.tsx"],"names":["NumberInput","onChangeText","value","defaultValue","props","isDecimal","setIsDecimal","Number","isInteger","formatValueToString","valueToStringify","test","console","log","toString","includes","makeFinalValue","valueToMakeFinal","stringValue","handleChangeText","newValue","parsedNumber","parseFloat","number","isNaN"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AAQA,MAAMA,WAA4B,GAAG,QAK/B;AAAA,MALgC;AACpCC,IAAAA,YADoC;AAEpCC,IAAAA,KAAK,GAAG,EAF4B;AAGpCC,IAAAA,YAAY,GAAG,EAHqB;AAIpC,OAAGC;AAJiC,GAKhC;AACJ,QAAM,CAACC,SAAD,EAAYC,YAAZ,IAA4B,qBAASJ,KAAK,IAAI,CAACK,MAAM,CAACC,SAAP,CAAiBN,KAAjB,CAAnB,CAAlC;AAEA,QAAMO,mBAAmB,GAAG,wBACzBC,gBAAD,IAAwC;AACtC,QAAIA,gBAAgB,IAAI,IAAxB,EAA8B;AAC5B,UACE,sBAASA,gBAAT,KACA,oCAAoCC,IAApC,CAAyCD,gBAAzC,CAFF,EAGE;AACAE,QAAAA,OAAO,CAACC,GAAR,CAAY,WAAZ,EAAyBX,KAAzB;AACA,eAAOQ,gBAAP;AACD,OAND,MAMO,IAAI,sBAASA,gBAAT,CAAJ,EAAgC;AACrC,eAAOA,gBAAgB,CAACI,QAAjB,EAAP;AACD;AACF;;AAED,WAAO,EAAP;AACD,GAfyB,EAgB1B,CAACZ,KAAD,CAhB0B,CAA5B;AAmBA,wBAAU,MAAM;AACd,QAAIA,KAAJ,EAAW;AACTI,MAAAA,YAAY,CAACG,mBAAmB,CAACP,KAAD,CAAnB,CAA2Ba,QAA3B,CAAoC,GAApC,CAAD,CAAZ;AACD;AACF,GAJD,EAIG,CAACb,KAAD,EAAQO,mBAAR,CAJH;;AAMA,QAAMO,cAAc,GAAIC,gBAAD,IAAwC;AAC7D,QAAIC,WAAW,GAAGT,mBAAmB,CAACQ,gBAAD,CAArC;;AAEA,QAAIZ,SAAS,IAAI,CAACa,WAAW,CAACH,QAAZ,CAAqB,GAArB,CAAlB,EAA6C;AAC3CG,MAAAA,WAAW,GAAI,GAAEA,WAAY,GAA7B;AACD;;AAED,WAAOA,WAAP;AACD,GARD;;AAUA,QAAMC,gBAAgB,GAAIC,QAAD,IAAsB;AAC7C,UAAMC,YAAY,GAAGC,UAAU,CAACF,QAAD,CAA/B;AACA,UAAMG,MAAM,GAAGC,KAAK,CAACH,YAAD,CAAL,GAAsB,CAAtB,GAA0BA,YAAzC;AAEAf,IAAAA,YAAY,CAACc,QAAQ,CAACL,QAAT,CAAkB,GAAlB,CAAD,CAAZ;AACAd,IAAAA,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAGsB,MAAH,CAAZ;AACD,GAND;;AAQA,sBACE,6BAAC,sBAAD;AACE,IAAA,YAAY,EAAC;AADf,KAEMnB,KAFN;AAGE,IAAA,KAAK,EAAEY,cAAc,CAACd,KAAD,CAHvB;AAIE,IAAA,YAAY,EAAEc,cAAc,CAACb,YAAD,CAJ9B;AAKE,IAAA,YAAY,EAAEgB;AALhB,KADF;AASD,CA5DD;;eA8DenB,W","sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\nimport { TextInput } from \"react-native\";\nimport { isString, isNumber } from \"lodash\";\n\ninterface Props {\n value?: number | string;\n defaultValue?: number | string;\n onChangeText?: (value?: number) => void;\n}\n\nconst NumberInput: React.FC<Props> = ({\n onChangeText,\n value = \"\",\n defaultValue = \"\",\n ...props\n}) => {\n const [isDecimal, setIsDecimal] = useState(value && !Number.isInteger(value));\n\n const formatValueToString = useCallback(\n (valueToStringify?: number | string) => {\n if (valueToStringify != null) {\n if (\n isString(valueToStringify) &&\n /^[+-]?([0-9]+\\.?[0-9]*|\\.[0-9]+)$/.test(valueToStringify)\n ) {\n console.log(\"is string\", value);\n return valueToStringify;\n } else if (isNumber(valueToStringify)) {\n return valueToStringify.toString();\n }\n }\n\n return \"\";\n },\n [value]\n );\n\n useEffect(() => {\n if (value) {\n setIsDecimal(formatValueToString(value).includes(\".\"));\n }\n }, [value, formatValueToString]);\n\n const makeFinalValue = (valueToMakeFinal?: number | string) => {\n let stringValue = formatValueToString(valueToMakeFinal);\n\n if (isDecimal && !stringValue.includes(\".\")) {\n stringValue = `${stringValue}.`;\n }\n\n return stringValue;\n };\n\n const handleChangeText = (newValue: string) => {\n const parsedNumber = parseFloat(newValue);\n const number = isNaN(parsedNumber) ? 0 : parsedNumber;\n\n setIsDecimal(newValue.includes(\".\"));\n onChangeText?.(number);\n };\n\n return (\n <TextInput\n keyboardType=\"numeric\"\n {...props}\n value={makeFinalValue(value)}\n defaultValue={makeFinalValue(defaultValue)}\n onChangeText={handleChangeText}\n />\n );\n};\n\nexport default NumberInput;\n"]}
1
+ {"version":3,"sources":["NumberInput.tsx"],"names":["NumberInput","onChangeText","value","defaultValue","props","formatValueToStringNumber","valueToFormat","currentStringNumberValue","test","slice","toString","setCurrentStringNumberValue","handleChangeText","newValue","newStringNumberValue","number","parseFloat","defaultStringNumberValue","nextStringNumberValue"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AAQA,MAAMA,WAAsB,GAAG,QAKzB;AAAA,MAL0B;AAC9BC,IAAAA,YAD8B;AAE9BC,IAAAA,KAF8B;AAG9BC,IAAAA,YAH8B;AAI9B,OAAGC;AAJ2B,GAK1B;;AACJ,QAAMC,yBAAyB,GAAG,CAChCC,aADgC,EAEhCC,wBAFgC,KAG7B;AACH,QAAID,aAAa,IAAI,IAArB,EAA2B;AACzB,UAAI,sBAASA,aAAT,KAA2BA,aAAa,KAAK,EAAjD,EAAqD;AACnD,YAAI,WAAWE,IAAX,CAAgBF,aAAhB,CAAJ,EAAoC;AAClC,iBAAOA,aAAa,CAACG,KAAd,CAAoB,CAApB,CAAP;AACD,SAFD,MAEO,IAAI,oCAAoCD,IAApC,CAAyCF,aAAzC,CAAJ,EAA6D;AAClE,iBAAOA,aAAP;AACD,SAFM,MAEA,IAAIC,wBAAJ,EAA8B;AACnC,iBAAOA,wBAAP;AACD;AACF,OARD,MAQO,IAAI,sBAASD,aAAT,KAA2B,CAAC,mBAAMA,aAAN,CAAhC,EAAsD;AAC3D,eAAOA,aAAa,CAACI,QAAd,EAAP;AACD;AACF;;AAED,WAAO,GAAP;AACD,GAnBD;;AAqBA,QAAM,CAACH,wBAAD,EAA2BI,2BAA3B,IAA0D,qBAC9DN,yBAAyB,CAACH,KAAD,CADqC,CAAhE;;AAIA,QAAMU,gBAAgB,GAAIC,QAAD,IAAsB;AAC7C,UAAMC,oBAAoB,GAAGT,yBAAyB,CACpDQ,QADoD,EAEpDN,wBAFoD,CAAtD;AAIA,UAAMQ,MAAM,GAAGC,UAAU,CAACF,oBAAD,CAAzB;AAEAH,IAAAA,2BAA2B,CAACG,oBAAD,CAA3B;AACAb,IAAAA,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAGc,MAAH,CAAZ;AACD,GATD;;AAWA,wBAAU,MAAM;AACd,UAAME,wBAAwB,GAAGZ,yBAAyB,CACxDF,YADwD,EAExDI,wBAFwD,CAA1D;;AAKA,QAAIA,wBAAwB,KAAKU,wBAAjC,EAA2D;AACzDN,MAAAA,2BAA2B,CAACM,wBAAD,CAA3B;AACD,KARa,CASd;;AACD,GAVD,EAUG,EAVH;AAYA,wBAAU,MAAM;AACd,UAAMC,qBAAqB,GAAGb,yBAAyB,CACrDH,KADqD,EAErDK,wBAFqD,CAAvD;;AAKA,QAAIA,wBAAwB,KAAKW,qBAAjC,EAAwD;AACtDN,MAAAA,gBAAgB,CAACM,qBAAD,CAAhB;AACD,KARa,CASd;;AACD,GAVD,EAUG,CAAChB,KAAD,CAVH;AAYA,sBACE,6BAAC,sBAAD;AACE,IAAA,YAAY,EAAC,SADf;AAEE,IAAA,KAAK,EAAEK,wBAFT;AAGE,IAAA,YAAY,EAAEK;AAHhB,KAIMR,KAJN,EADF;AAQD,CA1ED;;eA4EeJ,W","sourcesContent":["import React, { FC, useEffect, useState } from \"react\";\nimport { TextInput } from \"react-native\";\nimport { isString, isNumber, isNaN } from \"lodash\";\n\ninterface Props {\n value?: number | string;\n defaultValue?: number | string;\n onChangeText?: (value?: number) => void;\n}\n\nconst NumberInput: FC<Props> = ({\n onChangeText,\n value,\n defaultValue,\n ...props\n}) => {\n const formatValueToStringNumber = (\n valueToFormat?: number | string,\n currentStringNumberValue?: string\n ) => {\n if (valueToFormat != null) {\n if (isString(valueToFormat) && valueToFormat !== \"\") {\n if (/^0[1-9]$/.test(valueToFormat)) {\n return valueToFormat.slice(1);\n } else if (/^[+-]?([0-9]+\\.?[0-9]*|\\.[0-9]+)$/.test(valueToFormat)) {\n return valueToFormat;\n } else if (currentStringNumberValue) {\n return currentStringNumberValue;\n }\n } else if (isNumber(valueToFormat) && !isNaN(valueToFormat)) {\n return valueToFormat.toString();\n }\n }\n\n return \"0\";\n };\n\n const [currentStringNumberValue, setCurrentStringNumberValue] = useState(\n formatValueToStringNumber(value)\n );\n\n const handleChangeText = (newValue: string) => {\n const newStringNumberValue = formatValueToStringNumber(\n newValue,\n currentStringNumberValue\n );\n const number = parseFloat(newStringNumberValue);\n\n setCurrentStringNumberValue(newStringNumberValue);\n onChangeText?.(number);\n };\n\n useEffect(() => {\n const defaultStringNumberValue = formatValueToStringNumber(\n defaultValue,\n currentStringNumberValue\n );\n\n if (currentStringNumberValue !== defaultStringNumberValue) {\n setCurrentStringNumberValue(defaultStringNumberValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const nextStringNumberValue = formatValueToStringNumber(\n value,\n currentStringNumberValue\n );\n\n if (currentStringNumberValue !== nextStringNumberValue) {\n handleChangeText(nextStringNumberValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value]);\n\n return (\n <TextInput\n keyboardType=\"numeric\"\n value={currentStringNumberValue}\n onChangeText={handleChangeText}\n {...props}\n />\n );\n};\n\nexport default NumberInput;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["PortalManager.js"],"names":["PortalManager","React","PureComponent","portals","key","children","setState","state","map","item","filter","render","createElement","View","collapsable","pointerEvents","style","StyleSheet","absoluteFill"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;AACA;AACA;AACA;AACe,MAAMA,aAAN,SAA4BC,KAAK,CAACC,aAAlC,CAAgD;AAAA;AAAA;;AAAA,mCACnD;AACJC,MAAAA,OAAO,EAAE;AADL,KADmD;;AAAA,mCAInD,CAACC,GAAD,EAAMC,QAAN,KAAmB;AACvB,WAAKC,QAAL,CAAeC,KAAD,KAAY;AACtBJ,QAAAA,OAAO,EAAE,CAAC,GAAGI,KAAK,CAACJ,OAAV,EAAmB;AAAEC,UAAAA,GAAF;AAAOC,UAAAA;AAAP,SAAnB;AADa,OAAZ,CAAd;AAGH,KAR0D;;AAAA,oCASlD,CAACD,GAAD,EAAMC,QAAN,KAAmB,KAAKC,QAAL,CAAeC,KAAD,KAAY;AAClDJ,MAAAA,OAAO,EAAEI,KAAK,CAACJ,OAAN,CAAcK,GAAd,CAAmBC,IAAD,IAAU;AACjC,YAAIA,IAAI,CAACL,GAAL,KAAaA,GAAjB,EAAsB;AAClB,iBAAO,EAAE,GAAGK,IAAL;AAAWJ,YAAAA;AAAX,WAAP;AACH;;AACD,eAAOI,IAAP;AACH,OALQ;AADyC,KAAZ,CAAd,CAT+B;;AAAA,qCAiBhDL,GAAD,IAAS,KAAKE,QAAL,CAAeC,KAAD,KAAY;AACzCJ,MAAAA,OAAO,EAAEI,KAAK,CAACJ,OAAN,CAAcO,MAAd,CAAsBD,IAAD,IAAUA,IAAI,CAACL,GAAL,KAAaA,GAA5C;AADgC,KAAZ,CAAd,CAjBwC;AAAA;;AAoB3DO,EAAAA,MAAM,GAAG;AACL,WAAO,KAAKJ,KAAL,CAAWJ,OAAX,CAAmBK,GAAnB,CAAuB;AAAA,UAAC;AAAEJ,QAAAA,GAAF;AAAOC,QAAAA;AAAP,OAAD;AAAA,0BAAwBJ,KAAK,CAACW,aAAN,CAAoBC,iBAApB,EAA0B;AAAET,QAAAA,GAAG,EAAEA,GAAP;AAAYU,QAAAA,WAAW,EAAE;AAAM;AAA/B;AAAyIC,QAAAA,aAAa,EAAE,UAAxJ;AAAoKC,QAAAA,KAAK,EAAEC,wBAAWC;AAAtL,OAA1B,EAAgOb,QAAhO,CAAxB;AAAA,KAAvB,CAAP;AACH;;AAtB0D","sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet } from \"react-native\";\n/**\n * Portal host is the component which actually renders all Portals.\n */\nexport default class PortalManager extends React.PureComponent {\n state = {\n portals: [],\n };\n mount = (key, children) => {\n this.setState((state) => ({\n portals: [...state.portals, { key, children }],\n }));\n };\n update = (key, children) => this.setState((state) => ({\n portals: state.portals.map((item) => {\n if (item.key === key) {\n return { ...item, children };\n }\n return item;\n }),\n }));\n unmount = (key) => this.setState((state) => ({\n portals: state.portals.filter((item) => item.key !== key),\n }));\n render() {\n return this.state.portals.map(({ key, children }) => (React.createElement(View, { key: key, collapsable: false /* Need collapsable=false here to clip the elevations, otherwise they appear above sibling components */, pointerEvents: \"box-none\", style: StyleSheet.absoluteFill }, children)));\n }\n}\n"]}
1
+ {"version":3,"sources":["PortalManager.tsx"],"names":["PortalManager","React","PureComponent","portals","key","children","setState","state","map","item","filter","render","StyleSheet","absoluteFill"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;AASA;AACA;AACA;AACe,MAAMA,aAAN,SAA4BC,KAAK,CAACC,aAAlC,CAA2D;AAAA;AAAA;;AAAA,mCACzD;AACbC,MAAAA,OAAO,EAAE;AADI,KADyD;;AAAA,mCAKhE,CAACC,GAAD,EAAcC,QAAd,KAA4C;AAClD,WAAKC,QAAL,CAAeC,KAAD,KAAY;AACxBJ,QAAAA,OAAO,EAAE,CAAC,GAAGI,KAAK,CAACJ,OAAV,EAAmB;AAAEC,UAAAA,GAAF;AAAOC,UAAAA;AAAP,SAAnB;AADe,OAAZ,CAAd;AAGD,KATuE;;AAAA,oCAW/D,CAACD,GAAD,EAAcC,QAAd,KACP,KAAKC,QAAL,CAAeC,KAAD,KAAY;AACxBJ,MAAAA,OAAO,EAAEI,KAAK,CAACJ,OAAN,CAAcK,GAAd,CAAmBC,IAAD,IAAU;AACnC,YAAIA,IAAI,CAACL,GAAL,KAAaA,GAAjB,EAAsB;AACpB,iBAAO,EAAE,GAAGK,IAAL;AAAWJ,YAAAA;AAAX,WAAP;AACD;;AACD,eAAOI,IAAP;AACD,OALQ;AADe,KAAZ,CAAd,CAZsE;;AAAA,qCAqB7DL,GAAD,IACR,KAAKE,QAAL,CAAeC,KAAD,KAAY;AACxBJ,MAAAA,OAAO,EAAEI,KAAK,CAACJ,OAAN,CAAcO,MAAd,CAAsBD,IAAD,IAAUA,IAAI,CAACL,GAAL,KAAaA,GAA5C;AADe,KAAZ,CAAd,CAtBsE;AAAA;;AA0BxEO,EAAAA,MAAM,GAAG;AACP,WAAO,KAAKJ,KAAL,CAAWJ,OAAX,CAAmBK,GAAnB,CAAuB;AAAA,UAAC;AAAEJ,QAAAA,GAAF;AAAOC,QAAAA;AAAP,OAAD;AAAA,0BAC5B,oBAAC,iBAAD;AACE,QAAA,GAAG,EAAED,GADP;AAEE,QAAA,WAAW,EACT;AAAM;AAHV;AAKE,QAAA,aAAa,EAAC,UALhB;AAME,QAAA,KAAK,EAAEQ,wBAAWC;AANpB,SAQGR,QARH,CAD4B;AAAA,KAAvB,CAAP;AAYD;;AAvCuE","sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet } from \"react-native\";\n\ntype State = {\n portals: Array<{\n key: number;\n children: React.ReactNode;\n }>;\n};\n\n/**\n * Portal host is the component which actually renders all Portals.\n */\nexport default class PortalManager extends React.PureComponent<{}, State> {\n state: State = {\n portals: [],\n };\n\n mount = (key: number, children: React.ReactNode) => {\n this.setState((state) => ({\n portals: [...state.portals, { key, children }],\n }));\n };\n\n update = (key: number, children: React.ReactNode) =>\n this.setState((state) => ({\n portals: state.portals.map((item) => {\n if (item.key === key) {\n return { ...item, children };\n }\n return item;\n }),\n }));\n\n unmount = (key: number) =>\n this.setState((state) => ({\n portals: state.portals.filter((item) => item.key !== key),\n }));\n\n render() {\n return this.state.portals.map(({ key, children }) => (\n <View\n key={key}\n collapsable={\n false /* Need collapsable=false here to clip the elevations, otherwise they appear above sibling components */\n }\n pointerEvents=\"box-none\"\n style={StyleSheet.absoluteFill}\n >\n {children}\n </View>\n ));\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["ActionSheetCancel.ts"],"names":["SEED_DATA","name","tag","description","category","COMPONENT_TYPES","button","triggers","Triggers","OnPress","props","onPress","label","group","GROUPS","basic","defaultValue","color"],"mappings":";;;;;;;AAAA;;AASO,MAAMA,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,qBADiB;AAEvBC,EAAAA,GAAG,EAAE,mBAFkB;AAGvBC,EAAAA,WAAW,EAAE,qBAHU;AAIvBC,EAAAA,QAAQ,EAAEC,uBAAgBC,MAJH;AAKvBC,EAAAA,QAAQ,EAAE,CAACC,gBAASC,OAAV,CALa;AAMvBC,EAAAA,KAAK,EAAE;AACLC,IAAAA,OAAO,EAAE,8BADJ;AAELC,IAAAA,KAAK,EAAE,2BAAe;AACpBC,MAAAA,KAAK,EAAEC,cAAOC,KADM;AAEpBH,MAAAA,KAAK,EAAE,OAFa;AAGpBI,MAAAA,YAAY,EAAE;AAHM,KAAf,CAFF;AAOLC,IAAAA,KAAK,EAAE,4BAAgB;AACrBL,MAAAA,KAAK,EAAE;AADc,KAAhB;AAPF;AANgB,CAAlB","sourcesContent":["import {\n COMPONENT_TYPES,\n createActionProp,\n createColorProp,\n createTextProp,\n GROUPS,\n Triggers,\n} from \"@draftbit/types\";\n\nexport const SEED_DATA = {\n name: \"Action Sheet Cancel\",\n tag: \"ActionSheetCancel\",\n description: \"Action Sheet cancel\",\n category: COMPONENT_TYPES.button,\n triggers: [Triggers.OnPress],\n props: {\n onPress: createActionProp(),\n label: createTextProp({\n group: GROUPS.basic,\n label: \"Label\",\n defaultValue: \"Cancel\",\n }),\n color: createColorProp({\n label: \"Font Color\",\n }),\n },\n};\n"]}
1
+ {"version":3,"sources":["ActionSheetCancel.js"],"names":["SEED_DATA","name","tag","description","category","COMPONENT_TYPES","button","triggers","Triggers","OnPress","props","onPress","label","group","GROUPS","basic","defaultValue","color"],"mappings":";;;;;;;AAAA;;AACO,MAAMA,SAAS,GAAG;AACrBC,EAAAA,IAAI,EAAE,qBADe;AAErBC,EAAAA,GAAG,EAAE,mBAFgB;AAGrBC,EAAAA,WAAW,EAAE,qBAHQ;AAIrBC,EAAAA,QAAQ,EAAEC,uBAAgBC,MAJL;AAKrBC,EAAAA,QAAQ,EAAE,CAACC,gBAASC,OAAV,CALW;AAMrBC,EAAAA,KAAK,EAAE;AACHC,IAAAA,OAAO,EAAE,8BADN;AAEHC,IAAAA,KAAK,EAAE,2BAAe;AAClBC,MAAAA,KAAK,EAAEC,cAAOC,KADI;AAElBH,MAAAA,KAAK,EAAE,OAFW;AAGlBI,MAAAA,YAAY,EAAE;AAHI,KAAf,CAFJ;AAOHC,IAAAA,KAAK,EAAE,4BAAgB;AACnBL,MAAAA,KAAK,EAAE;AADY,KAAhB;AAPJ;AANc,CAAlB","sourcesContent":["import { COMPONENT_TYPES, createActionProp, createColorProp, createTextProp, GROUPS, Triggers, } from \"@draftbit/types\";\nexport const SEED_DATA = {\n name: \"Action Sheet Cancel\",\n tag: \"ActionSheetCancel\",\n description: \"Action Sheet cancel\",\n category: COMPONENT_TYPES.button,\n triggers: [Triggers.OnPress],\n props: {\n onPress: createActionProp(),\n label: createTextProp({\n group: GROUPS.basic,\n label: \"Label\",\n defaultValue: \"Cancel\",\n }),\n color: createColorProp({\n label: \"Font Color\",\n }),\n },\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["IconButton.ts"],"names":["SEED_DATA","name","tag","category","COMPONENT_TYPES","button","layout","triggers","Triggers","OnPress","props","onPress","icon","color","label","group","GROUPS","basic","disabled","size","description","defaultValue","min","max","step","precision"],"mappings":";;;;;;;AAAA;;AAWO,MAAMA,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,aADiB;AAEvBC,EAAAA,GAAG,EAAE,YAFkB;AAGvBC,EAAAA,QAAQ,EAAEC,uBAAgBC,MAHH;AAIvBC,EAAAA,MAAM,EAAE,EAJe;AAKvBC,EAAAA,QAAQ,EAAE,CAACC,gBAASC,OAAV,CALa;AAMvBC,EAAAA,KAAK,EAAE;AACLC,IAAAA,OAAO,EAAE,8BADJ;AAELC,IAAAA,IAAI,EAAE,4BAFD;AAGLC,IAAAA,KAAK,EAAE,4BAAgB;AACrBC,MAAAA,KAAK,EAAE,OADc;AAErBC,MAAAA,KAAK,EAAEC,cAAOC;AAFO,KAAhB,CAHF;AAOLC,IAAAA,QAAQ,EAAE,2BAAe;AACvBJ,MAAAA,KAAK,EAAE,UADgB;AAEvBC,MAAAA,KAAK,EAAEC,cAAOC;AAFS,KAAf,CAPL;AAWLE,IAAAA,IAAI,EAAE,6BAAiB;AACrBJ,MAAAA,KAAK,EAAEC,cAAOC,KADO;AAErBH,MAAAA,KAAK,EAAE,MAFc;AAGrBM,MAAAA,WAAW,EAAE,+BAHQ;AAIrBC,MAAAA,YAAY,EAAE,EAJO;AAKrBC,MAAAA,GAAG,EAAE,EALgB;AAMrBC,MAAAA,GAAG,EAAE,GANgB;AAOrBC,MAAAA,IAAI,EAAE,CAPe;AAQrBC,MAAAA,SAAS,EAAE;AARU,KAAjB;AAXD;AANgB,CAAlB","sourcesContent":["import {\n COMPONENT_TYPES,\n GROUPS,\n createIconProp,\n createColorProp,\n createNumberProp,\n createBoolProp,\n createActionProp,\n Triggers,\n} from \"@draftbit/types\";\n\nexport const SEED_DATA = {\n name: \"Icon Button\",\n tag: \"IconButton\",\n category: COMPONENT_TYPES.button,\n layout: {},\n triggers: [Triggers.OnPress],\n props: {\n onPress: createActionProp(),\n icon: createIconProp(),\n color: createColorProp({\n label: \"Color\",\n group: GROUPS.basic,\n }),\n disabled: createBoolProp({\n label: \"Disabled\",\n group: GROUPS.basic,\n }),\n size: createNumberProp({\n group: GROUPS.basic,\n label: \"Size\",\n description: \"Width and height of your icon\",\n defaultValue: 32,\n min: 16,\n max: 128,\n step: 1,\n precision: 0,\n }),\n },\n};\n"]}
1
+ {"version":3,"sources":["IconButton.js"],"names":["SEED_DATA","name","tag","category","COMPONENT_TYPES","button","layout","triggers","Triggers","OnPress","props","onPress","icon","color","label","group","GROUPS","basic","disabled","size","description","defaultValue","min","max","step","precision"],"mappings":";;;;;;;AAAA;;AACO,MAAMA,SAAS,GAAG;AACrBC,EAAAA,IAAI,EAAE,aADe;AAErBC,EAAAA,GAAG,EAAE,YAFgB;AAGrBC,EAAAA,QAAQ,EAAEC,uBAAgBC,MAHL;AAIrBC,EAAAA,MAAM,EAAE,EAJa;AAKrBC,EAAAA,QAAQ,EAAE,CAACC,gBAASC,OAAV,CALW;AAMrBC,EAAAA,KAAK,EAAE;AACHC,IAAAA,OAAO,EAAE,8BADN;AAEHC,IAAAA,IAAI,EAAE,4BAFH;AAGHC,IAAAA,KAAK,EAAE,4BAAgB;AACnBC,MAAAA,KAAK,EAAE,OADY;AAEnBC,MAAAA,KAAK,EAAEC,cAAOC;AAFK,KAAhB,CAHJ;AAOHC,IAAAA,QAAQ,EAAE,2BAAe;AACrBJ,MAAAA,KAAK,EAAE,UADc;AAErBC,MAAAA,KAAK,EAAEC,cAAOC;AAFO,KAAf,CAPP;AAWHE,IAAAA,IAAI,EAAE,6BAAiB;AACnBJ,MAAAA,KAAK,EAAEC,cAAOC,KADK;AAEnBH,MAAAA,KAAK,EAAE,MAFY;AAGnBM,MAAAA,WAAW,EAAE,+BAHM;AAInBC,MAAAA,YAAY,EAAE,EAJK;AAKnBC,MAAAA,GAAG,EAAE,EALc;AAMnBC,MAAAA,GAAG,EAAE,GANc;AAOnBC,MAAAA,IAAI,EAAE,CAPa;AAQnBC,MAAAA,SAAS,EAAE;AARQ,KAAjB;AAXH;AANc,CAAlB","sourcesContent":["import { COMPONENT_TYPES, GROUPS, createIconProp, createColorProp, createNumberProp, createBoolProp, createActionProp, Triggers, } from \"@draftbit/types\";\nexport const SEED_DATA = {\n name: \"Icon Button\",\n tag: \"IconButton\",\n category: COMPONENT_TYPES.button,\n layout: {},\n triggers: [Triggers.OnPress],\n props: {\n onPress: createActionProp(),\n icon: createIconProp(),\n color: createColorProp({\n label: \"Color\",\n group: GROUPS.basic,\n }),\n disabled: createBoolProp({\n label: \"Disabled\",\n group: GROUPS.basic,\n }),\n size: createNumberProp({\n group: GROUPS.basic,\n label: \"Size\",\n description: \"Width and height of your icon\",\n defaultValue: 32,\n min: 16,\n max: 128,\n step: 1,\n precision: 0,\n }),\n },\n};\n"]}
@@ -1,9 +1,11 @@
1
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
1
3
  import * as React from "react";
2
4
  import { Animated, StyleSheet, View } from "react-native";
3
5
  import shadow from "../styles/shadow";
4
6
  import { withTheme } from "../theming";
5
- /* directly copied from https://github.com/callstack/react-native-paper/blob/main/src/components/Surface.tsx#L62 */
6
7
 
8
+ /* directly copied from https://github.com/callstack/react-native-paper/blob/main/src/components/Surface.tsx#L62 */
7
9
  const Elevation = _ref => {
8
10
  let {
9
11
  style,
@@ -19,24 +21,11 @@ const Elevation = _ref => {
19
21
  colors
20
22
  } = theme;
21
23
  const borderRadius = radius;
22
- return /*#__PURE__*/React.createElement(Animated.View, { ...rest,
24
+ return /*#__PURE__*/React.createElement(Animated.View, _extends({}, rest, {
23
25
  style: [{
24
26
  borderRadius,
25
27
  backgroundColor: colors.surface
26
28
  }, elevation ? shadow(elevation) : null, style]
27
- }, /*#__PURE__*/React.createElement(View, {
28
- style: {
29
- overflow: "hidden",
30
- borderRadius
31
- }
32
- }, children));
33
- };
34
-
35
- export default withTheme(Elevation);
36
- //# sourceMappingURL=Elevation.js.map style: [{
37
- borderRadius,
38
- backgroundColor: colors.surface
39
- }, elevation ? shadow(elevation) : null, style]
40
29
  }), /*#__PURE__*/React.createElement(View, {
41
30
  style: {
42
31
  overflow: "hidden",
@@ -1 +1 @@
1
- {"version":3,"sources":["Elevation.js"],"names":["React","Animated","StyleSheet","View","shadow","withTheme","Elevation","style","theme","children","rest","elevation","borderRadius","radius","flatten","colors","createElement","backgroundColor","surface","overflow"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,QAAT,EAAmBC,UAAnB,EAA+BC,IAA/B,QAA4C,cAA5C;AACA,OAAOC,MAAP,MAAmB,kBAAnB;AACA,SAASC,SAAT,QAA0B,YAA1B;AACA;;AACA,MAAMC,SAAS,GAAG,QAAyC;AAAA,MAAxC;AAAEC,IAAAA,KAAF;AAASC,IAAAA,KAAT;AAAgBC,IAAAA,QAAhB;AAA0B,OAAGC;AAA7B,GAAwC;AACvD,QAAM;AAAEC,IAAAA,SAAS,GAAG,CAAd;AAAiBC,IAAAA,YAAY,EAAEC;AAA/B,MAA0CX,UAAU,CAACY,OAAX,CAAmBP,KAAnB,KAA6B,EAA7E;AACA,QAAM;AAAEQ,IAAAA;AAAF,MAAaP,KAAnB;AACA,QAAMI,YAAY,GAAGC,MAArB;AACA,sBAAQb,KAAK,CAACgB,aAAN,CAAoBf,QAAQ,CAACE,IAA7B,EAAmC,EAAE,GAAGO,IAAL;AAAWH,IAAAA,KAAK,EAAE,CACrD;AACIK,MAAAA,YADJ;AAEIK,MAAAA,eAAe,EAAEF,MAAM,CAACG;AAF5B,KADqD,EAKrDP,SAAS,GAAGP,MAAM,CAACO,SAAD,CAAT,GAAuB,IALqB,EAMrDJ,KANqD;AAAlB,GAAnC,eAQJP,KAAK,CAACgB,aAAN,CAAoBb,IAApB,EAA0B;AAAEI,IAAAA,KAAK,EAAE;AAAEY,MAAAA,QAAQ,EAAE,QAAZ;AAAsBP,MAAAA;AAAtB;AAAT,GAA1B,EAA2EH,QAA3E,CARI,CAAR;AASH,CAbD;;AAcA,eAAeJ,SAAS,CAACC,SAAD,CAAxB","sourcesContent":["import * as React from \"react\";\nimport { Animated, StyleSheet, View, } from \"react-native\";\nimport shadow from \"../styles/shadow\";\nimport { withTheme } from \"../theming\";\n/* directly copied from https://github.com/callstack/react-native-paper/blob/main/src/components/Surface.tsx#L62 */\nconst Elevation = ({ style, theme, children, ...rest }) => {\n const { elevation = 4, borderRadius: radius } = StyleSheet.flatten(style) || {};\n const { colors } = theme;\n const borderRadius = radius;\n return (React.createElement(Animated.View, { ...rest, style: [\n {\n borderRadius,\n backgroundColor: colors.surface,\n },\n elevation ? shadow(elevation) : null,\n style,\n ] },\n React.createElement(View, { style: { overflow: \"hidden\", borderRadius } }, children)));\n};\nexport default withTheme(Elevation);\n"]}
1
+ {"version":3,"sources":["Elevation.tsx"],"names":["React","Animated","StyleSheet","View","shadow","withTheme","Elevation","style","theme","children","rest","elevation","borderRadius","radius","flatten","colors","backgroundColor","surface","overflow"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SACEC,QADF,EAEEC,UAFF,EAMEC,IANF,QAOO,cAPP;AAQA,OAAOC,MAAP,MAAmB,kBAAnB;AACA,SAASC,SAAT,QAA0B,YAA1B;;AAQA;AACA,MAAMC,SAA0B,GAAG,QAAyC;AAAA,MAAxC;AAAEC,IAAAA,KAAF;AAASC,IAAAA,KAAT;AAAgBC,IAAAA,QAAhB;AAA0B,OAAGC;AAA7B,GAAwC;AAC1E,QAAM;AAAEC,IAAAA,SAAS,GAAG,CAAd;AAAiBC,IAAAA,YAAY,EAAEC;AAA/B,MACJX,UAAU,CAACY,OAAX,CAAmBP,KAAnB,KAA6B,EAD/B;AAEA,QAAM;AAAEQ,IAAAA;AAAF,MAAaP,KAAnB;AACA,QAAMI,YAAY,GAAGC,MAArB;AAEA,sBACE,oBAAC,QAAD,CAAU,IAAV,eACMH,IADN;AAEE,IAAA,KAAK,EAAE,CACL;AACEE,MAAAA,YADF;AAEEI,MAAAA,eAAe,EAAED,MAAM,CAACE;AAF1B,KADK,EAKLN,SAAS,GAAGP,MAAM,CAACO,SAAD,CAAT,GAAuB,IAL3B,EAMLJ,KANK;AAFT,mBAWE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAE;AAAEW,MAAAA,QAAQ,EAAE,QAAZ;AAAsBN,MAAAA;AAAtB;AAAb,KAAoDH,QAApD,CAXF,CADF;AAeD,CArBD;;AAuBA,eAAeJ,SAAS,CAACC,SAAD,CAAxB","sourcesContent":["import * as React from \"react\";\nimport {\n Animated,\n StyleSheet,\n ViewProps,\n StyleProp,\n ViewStyle,\n View,\n} from \"react-native\";\nimport shadow from \"../styles/shadow\";\nimport { withTheme } from \"../theming\";\nimport type { Theme } from \"../styles/DefaultTheme\";\n\ntype Props = {\n style?: StyleProp<ViewStyle>;\n theme: Theme;\n} & ViewProps;\n\n/* directly copied from https://github.com/callstack/react-native-paper/blob/main/src/components/Surface.tsx#L62 */\nconst Elevation: React.FC<Props> = ({ style, theme, children, ...rest }) => {\n const { elevation = 4, borderRadius: radius } =\n StyleSheet.flatten(style) || {};\n const { colors } = theme;\n const borderRadius = radius;\n\n return (\n <Animated.View\n {...rest}\n style={[\n {\n borderRadius,\n backgroundColor: colors.surface,\n },\n elevation ? shadow(elevation) : null,\n style,\n ]}\n >\n <View style={{ overflow: \"hidden\", borderRadius }}>{children}</View>\n </Animated.View>\n );\n};\n\nexport default withTheme(Elevation);\n"]}
@@ -1,59 +1,65 @@
1
1
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
2
 
3
- import React, { useCallback, useEffect, useState } from "react";
3
+ import React, { useEffect, useState } from "react";
4
4
  import { TextInput } from "react-native";
5
- import { isString, isNumber } from "lodash";
5
+ import { isString, isNumber, isNaN } from "lodash";
6
6
 
7
7
  const NumberInput = _ref => {
8
8
  let {
9
9
  onChangeText,
10
- value = "",
11
- defaultValue = "",
10
+ value,
11
+ defaultValue,
12
12
  ...props
13
13
  } = _ref;
14
- const [isDecimal, setIsDecimal] = useState(value && !Number.isInteger(value));
15
- const formatValueToString = useCallback(valueToStringify => {
16
- if (valueToStringify != null) {
17
- if (isString(valueToStringify) && /^[+-]?([0-9]+\.?[0-9]*|\.[0-9]+)$/.test(valueToStringify)) {
18
- console.log("is string", value);
19
- return valueToStringify;
20
- } else if (isNumber(valueToStringify)) {
21
- return valueToStringify.toString();
22
- }
23
- }
24
-
25
- return "";
26
- }, [value]);
27
- useEffect(() => {
28
- if (value) {
29
- setIsDecimal(formatValueToString(value).includes("."));
30
- }
31
- }, [value, formatValueToString]);
32
14
 
33
- const makeFinalValue = valueToMakeFinal => {
34
- let stringValue = formatValueToString(valueToMakeFinal);
35
-
36
- if (isDecimal && !stringValue.includes(".")) {
37
- stringValue = `${stringValue}.`;
15
+ const formatValueToStringNumber = (valueToFormat, currentStringNumberValue) => {
16
+ if (valueToFormat != null) {
17
+ if (isString(valueToFormat) && valueToFormat !== "") {
18
+ if (/^0[1-9]$/.test(valueToFormat)) {
19
+ return valueToFormat.slice(1);
20
+ } else if (/^[+-]?([0-9]+\.?[0-9]*|\.[0-9]+)$/.test(valueToFormat)) {
21
+ return valueToFormat;
22
+ } else if (currentStringNumberValue) {
23
+ return currentStringNumberValue;
24
+ }
25
+ } else if (isNumber(valueToFormat) && !isNaN(valueToFormat)) {
26
+ return valueToFormat.toString();
27
+ }
38
28
  }
39
29
 
40
- return stringValue;
30
+ return "0";
41
31
  };
42
32
 
33
+ const [currentStringNumberValue, setCurrentStringNumberValue] = useState(formatValueToStringNumber(value));
34
+
43
35
  const handleChangeText = newValue => {
44
- const parsedNumber = parseFloat(newValue);
45
- const number = isNaN(parsedNumber) ? 0 : parsedNumber;
46
- setIsDecimal(newValue.includes("."));
36
+ const newStringNumberValue = formatValueToStringNumber(newValue, currentStringNumberValue);
37
+ const number = parseFloat(newStringNumberValue);
38
+ setCurrentStringNumberValue(newStringNumberValue);
47
39
  onChangeText === null || onChangeText === void 0 ? void 0 : onChangeText(number);
48
40
  };
49
41
 
42
+ useEffect(() => {
43
+ const defaultStringNumberValue = formatValueToStringNumber(defaultValue, currentStringNumberValue);
44
+
45
+ if (currentStringNumberValue !== defaultStringNumberValue) {
46
+ setCurrentStringNumberValue(defaultStringNumberValue);
47
+ } // eslint-disable-next-line react-hooks/exhaustive-deps
48
+
49
+ }, []);
50
+ useEffect(() => {
51
+ const nextStringNumberValue = formatValueToStringNumber(value, currentStringNumberValue);
52
+
53
+ if (currentStringNumberValue !== nextStringNumberValue) {
54
+ handleChangeText(nextStringNumberValue);
55
+ } // eslint-disable-next-line react-hooks/exhaustive-deps
56
+
57
+ }, [value]);
50
58
  return /*#__PURE__*/React.createElement(TextInput, _extends({
51
- keyboardType: "numeric"
52
- }, props, {
53
- value: makeFinalValue(value),
54
- defaultValue: makeFinalValue(defaultValue),
59
+ keyboardType: "numeric",
60
+ value: currentStringNumberValue,
55
61
  onChangeText: handleChangeText
56
- }));
62
+ }, props));
57
63
  };
58
64
 
59
65
  export default NumberInput;
@@ -1 +1 @@
1
- {"version":3,"sources":["NumberInput.tsx"],"names":["React","useCallback","useEffect","useState","TextInput","isString","isNumber","NumberInput","onChangeText","value","defaultValue","props","isDecimal","setIsDecimal","Number","isInteger","formatValueToString","valueToStringify","test","console","log","toString","includes","makeFinalValue","valueToMakeFinal","stringValue","handleChangeText","newValue","parsedNumber","parseFloat","number","isNaN"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,WAAhB,EAA6BC,SAA7B,EAAwCC,QAAxC,QAAwD,OAAxD;AACA,SAASC,SAAT,QAA0B,cAA1B;AACA,SAASC,QAAT,EAAmBC,QAAnB,QAAmC,QAAnC;;AAQA,MAAMC,WAA4B,GAAG,QAK/B;AAAA,MALgC;AACpCC,IAAAA,YADoC;AAEpCC,IAAAA,KAAK,GAAG,EAF4B;AAGpCC,IAAAA,YAAY,GAAG,EAHqB;AAIpC,OAAGC;AAJiC,GAKhC;AACJ,QAAM,CAACC,SAAD,EAAYC,YAAZ,IAA4BV,QAAQ,CAACM,KAAK,IAAI,CAACK,MAAM,CAACC,SAAP,CAAiBN,KAAjB,CAAX,CAA1C;AAEA,QAAMO,mBAAmB,GAAGf,WAAW,CACpCgB,gBAAD,IAAwC;AACtC,QAAIA,gBAAgB,IAAI,IAAxB,EAA8B;AAC5B,UACEZ,QAAQ,CAACY,gBAAD,CAAR,IACA,oCAAoCC,IAApC,CAAyCD,gBAAzC,CAFF,EAGE;AACAE,QAAAA,OAAO,CAACC,GAAR,CAAY,WAAZ,EAAyBX,KAAzB;AACA,eAAOQ,gBAAP;AACD,OAND,MAMO,IAAIX,QAAQ,CAACW,gBAAD,CAAZ,EAAgC;AACrC,eAAOA,gBAAgB,CAACI,QAAjB,EAAP;AACD;AACF;;AAED,WAAO,EAAP;AACD,GAfoC,EAgBrC,CAACZ,KAAD,CAhBqC,CAAvC;AAmBAP,EAAAA,SAAS,CAAC,MAAM;AACd,QAAIO,KAAJ,EAAW;AACTI,MAAAA,YAAY,CAACG,mBAAmB,CAACP,KAAD,CAAnB,CAA2Ba,QAA3B,CAAoC,GAApC,CAAD,CAAZ;AACD;AACF,GAJQ,EAIN,CAACb,KAAD,EAAQO,mBAAR,CAJM,CAAT;;AAMA,QAAMO,cAAc,GAAIC,gBAAD,IAAwC;AAC7D,QAAIC,WAAW,GAAGT,mBAAmB,CAACQ,gBAAD,CAArC;;AAEA,QAAIZ,SAAS,IAAI,CAACa,WAAW,CAACH,QAAZ,CAAqB,GAArB,CAAlB,EAA6C;AAC3CG,MAAAA,WAAW,GAAI,GAAEA,WAAY,GAA7B;AACD;;AAED,WAAOA,WAAP;AACD,GARD;;AAUA,QAAMC,gBAAgB,GAAIC,QAAD,IAAsB;AAC7C,UAAMC,YAAY,GAAGC,UAAU,CAACF,QAAD,CAA/B;AACA,UAAMG,MAAM,GAAGC,KAAK,CAACH,YAAD,CAAL,GAAsB,CAAtB,GAA0BA,YAAzC;AAEAf,IAAAA,YAAY,CAACc,QAAQ,CAACL,QAAT,CAAkB,GAAlB,CAAD,CAAZ;AACAd,IAAAA,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAGsB,MAAH,CAAZ;AACD,GAND;;AAQA,sBACE,oBAAC,SAAD;AACE,IAAA,YAAY,EAAC;AADf,KAEMnB,KAFN;AAGE,IAAA,KAAK,EAAEY,cAAc,CAACd,KAAD,CAHvB;AAIE,IAAA,YAAY,EAAEc,cAAc,CAACb,YAAD,CAJ9B;AAKE,IAAA,YAAY,EAAEgB;AALhB,KADF;AASD,CA5DD;;AA8DA,eAAenB,WAAf","sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\nimport { TextInput } from \"react-native\";\nimport { isString, isNumber } from \"lodash\";\n\ninterface Props {\n value?: number | string;\n defaultValue?: number | string;\n onChangeText?: (value?: number) => void;\n}\n\nconst NumberInput: React.FC<Props> = ({\n onChangeText,\n value = \"\",\n defaultValue = \"\",\n ...props\n}) => {\n const [isDecimal, setIsDecimal] = useState(value && !Number.isInteger(value));\n\n const formatValueToString = useCallback(\n (valueToStringify?: number | string) => {\n if (valueToStringify != null) {\n if (\n isString(valueToStringify) &&\n /^[+-]?([0-9]+\\.?[0-9]*|\\.[0-9]+)$/.test(valueToStringify)\n ) {\n console.log(\"is string\", value);\n return valueToStringify;\n } else if (isNumber(valueToStringify)) {\n return valueToStringify.toString();\n }\n }\n\n return \"\";\n },\n [value]\n );\n\n useEffect(() => {\n if (value) {\n setIsDecimal(formatValueToString(value).includes(\".\"));\n }\n }, [value, formatValueToString]);\n\n const makeFinalValue = (valueToMakeFinal?: number | string) => {\n let stringValue = formatValueToString(valueToMakeFinal);\n\n if (isDecimal && !stringValue.includes(\".\")) {\n stringValue = `${stringValue}.`;\n }\n\n return stringValue;\n };\n\n const handleChangeText = (newValue: string) => {\n const parsedNumber = parseFloat(newValue);\n const number = isNaN(parsedNumber) ? 0 : parsedNumber;\n\n setIsDecimal(newValue.includes(\".\"));\n onChangeText?.(number);\n };\n\n return (\n <TextInput\n keyboardType=\"numeric\"\n {...props}\n value={makeFinalValue(value)}\n defaultValue={makeFinalValue(defaultValue)}\n onChangeText={handleChangeText}\n />\n );\n};\n\nexport default NumberInput;\n"]}
1
+ {"version":3,"sources":["NumberInput.tsx"],"names":["React","useEffect","useState","TextInput","isString","isNumber","isNaN","NumberInput","onChangeText","value","defaultValue","props","formatValueToStringNumber","valueToFormat","currentStringNumberValue","test","slice","toString","setCurrentStringNumberValue","handleChangeText","newValue","newStringNumberValue","number","parseFloat","defaultStringNumberValue","nextStringNumberValue"],"mappings":";;AAAA,OAAOA,KAAP,IAAoBC,SAApB,EAA+BC,QAA/B,QAA+C,OAA/C;AACA,SAASC,SAAT,QAA0B,cAA1B;AACA,SAASC,QAAT,EAAmBC,QAAnB,EAA6BC,KAA7B,QAA0C,QAA1C;;AAQA,MAAMC,WAAsB,GAAG,QAKzB;AAAA,MAL0B;AAC9BC,IAAAA,YAD8B;AAE9BC,IAAAA,KAF8B;AAG9BC,IAAAA,YAH8B;AAI9B,OAAGC;AAJ2B,GAK1B;;AACJ,QAAMC,yBAAyB,GAAG,CAChCC,aADgC,EAEhCC,wBAFgC,KAG7B;AACH,QAAID,aAAa,IAAI,IAArB,EAA2B;AACzB,UAAIT,QAAQ,CAACS,aAAD,CAAR,IAA2BA,aAAa,KAAK,EAAjD,EAAqD;AACnD,YAAI,WAAWE,IAAX,CAAgBF,aAAhB,CAAJ,EAAoC;AAClC,iBAAOA,aAAa,CAACG,KAAd,CAAoB,CAApB,CAAP;AACD,SAFD,MAEO,IAAI,oCAAoCD,IAApC,CAAyCF,aAAzC,CAAJ,EAA6D;AAClE,iBAAOA,aAAP;AACD,SAFM,MAEA,IAAIC,wBAAJ,EAA8B;AACnC,iBAAOA,wBAAP;AACD;AACF,OARD,MAQO,IAAIT,QAAQ,CAACQ,aAAD,CAAR,IAA2B,CAACP,KAAK,CAACO,aAAD,CAArC,EAAsD;AAC3D,eAAOA,aAAa,CAACI,QAAd,EAAP;AACD;AACF;;AAED,WAAO,GAAP;AACD,GAnBD;;AAqBA,QAAM,CAACH,wBAAD,EAA2BI,2BAA3B,IAA0DhB,QAAQ,CACtEU,yBAAyB,CAACH,KAAD,CAD6C,CAAxE;;AAIA,QAAMU,gBAAgB,GAAIC,QAAD,IAAsB;AAC7C,UAAMC,oBAAoB,GAAGT,yBAAyB,CACpDQ,QADoD,EAEpDN,wBAFoD,CAAtD;AAIA,UAAMQ,MAAM,GAAGC,UAAU,CAACF,oBAAD,CAAzB;AAEAH,IAAAA,2BAA2B,CAACG,oBAAD,CAA3B;AACAb,IAAAA,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAGc,MAAH,CAAZ;AACD,GATD;;AAWArB,EAAAA,SAAS,CAAC,MAAM;AACd,UAAMuB,wBAAwB,GAAGZ,yBAAyB,CACxDF,YADwD,EAExDI,wBAFwD,CAA1D;;AAKA,QAAIA,wBAAwB,KAAKU,wBAAjC,EAA2D;AACzDN,MAAAA,2BAA2B,CAACM,wBAAD,CAA3B;AACD,KARa,CASd;;AACD,GAVQ,EAUN,EAVM,CAAT;AAYAvB,EAAAA,SAAS,CAAC,MAAM;AACd,UAAMwB,qBAAqB,GAAGb,yBAAyB,CACrDH,KADqD,EAErDK,wBAFqD,CAAvD;;AAKA,QAAIA,wBAAwB,KAAKW,qBAAjC,EAAwD;AACtDN,MAAAA,gBAAgB,CAACM,qBAAD,CAAhB;AACD,KARa,CASd;;AACD,GAVQ,EAUN,CAAChB,KAAD,CAVM,CAAT;AAYA,sBACE,oBAAC,SAAD;AACE,IAAA,YAAY,EAAC,SADf;AAEE,IAAA,KAAK,EAAEK,wBAFT;AAGE,IAAA,YAAY,EAAEK;AAHhB,KAIMR,KAJN,EADF;AAQD,CA1ED;;AA4EA,eAAeJ,WAAf","sourcesContent":["import React, { FC, useEffect, useState } from \"react\";\nimport { TextInput } from \"react-native\";\nimport { isString, isNumber, isNaN } from \"lodash\";\n\ninterface Props {\n value?: number | string;\n defaultValue?: number | string;\n onChangeText?: (value?: number) => void;\n}\n\nconst NumberInput: FC<Props> = ({\n onChangeText,\n value,\n defaultValue,\n ...props\n}) => {\n const formatValueToStringNumber = (\n valueToFormat?: number | string,\n currentStringNumberValue?: string\n ) => {\n if (valueToFormat != null) {\n if (isString(valueToFormat) && valueToFormat !== \"\") {\n if (/^0[1-9]$/.test(valueToFormat)) {\n return valueToFormat.slice(1);\n } else if (/^[+-]?([0-9]+\\.?[0-9]*|\\.[0-9]+)$/.test(valueToFormat)) {\n return valueToFormat;\n } else if (currentStringNumberValue) {\n return currentStringNumberValue;\n }\n } else if (isNumber(valueToFormat) && !isNaN(valueToFormat)) {\n return valueToFormat.toString();\n }\n }\n\n return \"0\";\n };\n\n const [currentStringNumberValue, setCurrentStringNumberValue] = useState(\n formatValueToStringNumber(value)\n );\n\n const handleChangeText = (newValue: string) => {\n const newStringNumberValue = formatValueToStringNumber(\n newValue,\n currentStringNumberValue\n );\n const number = parseFloat(newStringNumberValue);\n\n setCurrentStringNumberValue(newStringNumberValue);\n onChangeText?.(number);\n };\n\n useEffect(() => {\n const defaultStringNumberValue = formatValueToStringNumber(\n defaultValue,\n currentStringNumberValue\n );\n\n if (currentStringNumberValue !== defaultStringNumberValue) {\n setCurrentStringNumberValue(defaultStringNumberValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const nextStringNumberValue = formatValueToStringNumber(\n value,\n currentStringNumberValue\n );\n\n if (currentStringNumberValue !== nextStringNumberValue) {\n handleChangeText(nextStringNumberValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value]);\n\n return (\n <TextInput\n keyboardType=\"numeric\"\n value={currentStringNumberValue}\n onChangeText={handleChangeText}\n {...props}\n />\n );\n};\n\nexport default NumberInput;\n"]}
@@ -1,3 +1,5 @@
1
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
1
3
  import * as React from "react";
2
4
  import { View, StyleSheet } from "react-native";
3
5
  import omit from "lodash.omit";
@@ -89,15 +91,16 @@ const Picker = _ref => {
89
91
  key: o.value
90
92
  }))), /*#__PURE__*/React.createElement(View, {
91
93
  pointerEvents: "none"
92
- }, /*#__PURE__*/React.createElement(TextField, { ...props,
94
+ }, /*#__PURE__*/React.createElement(TextField, _extends({}, props, {
93
95
  value: selectedLabel,
94
- placeholder: placeholder,
95
- // @ts-ignore
96
- ref: textField,
97
- disabled: disabled,
98
- // @ts-expect-error
96
+ placeholder: placeholder // @ts-ignore
97
+ ,
98
+ ref: textField // cannot determine if ref is of correct type due to component being wrapped in a withTheme()
99
+ ,
100
+ disabled: disabled // @ts-expect-error
101
+ ,
99
102
  style: stylesWithoutMargin
100
- }))));
103
+ })))));
101
104
  };
102
105
 
103
106
  const styles = StyleSheet.create({
@@ -1 +1 @@
1
- {"version":3,"sources":["PickerComponent.android.js"],"names":["React","View","StyleSheet","omit","withTheme","Picker","NativePicker","extractStyles","TextField","Touchable","style","options","placeholder","selectedValue","disabled","onValueChange","onValueChangeOverride","props","viewStyles","borderRadius","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderColor","backgroundColor","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","textField","useRef","undefined","itemValue","itemIndex","toggleFocus","current","stylesWithoutMargin","flatten","selectedLabel","find","o","value","label","createElement","onPress","styles","container","enabled","opacity","position","top","left","right","bottom","width","map","Item","key","pointerEvents","ref","create","alignSelf"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet } from \"react-native\";\nimport omit from \"lodash.omit\";\nimport { withTheme } from \"../../theming\";\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\nimport { extractStyles } from \"../../utilities\";\nimport TextField from \"../TextField\";\nimport Touchable from \"../Touchable\";\nconst Picker = ({ style, options, placeholder, selectedValue, disabled = false, onValueChange: onValueChangeOverride = () => { }, ...props }) => {\n const { viewStyles: { borderRadius, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderTopWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderRightWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderBottomWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderLeftWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n backgroundColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n padding, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingTop, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingRight, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingBottom, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingLeft, // eslint-disable-line @typescript-eslint/no-unused-vars\n ...viewStyles }, } = extractStyles(style);\n const textField = React.useRef(undefined);\n const onValueChange = (itemValue, itemIndex) => {\n toggleFocus();\n onValueChangeOverride(itemValue, itemIndex);\n };\n const toggleFocus = () => {\n if (!disabled) {\n // @ts-ignore\n textField.current.toggleFocus(); // cannot determine if method exists due to component being wrapped in a withTheme()\n }\n };\n const stylesWithoutMargin = style &&\n omit(StyleSheet.flatten(style), [\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n ]);\n const selectedLabel = selectedValue &&\n (options.find((o) => o.value === selectedValue)?.label ?? selectedValue);\n return (React.createElement(Touchable, { disabled: disabled, onPress: toggleFocus, style: [styles.container, viewStyles] },\n React.createElement(View, null,\n React.createElement(NativePicker, { enabled: !disabled, selectedValue: selectedValue, onValueChange: onValueChange, style: {\n opacity: 0,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: \"100%\",\n } }, options.map((o) => (React.createElement(NativePicker.Item, { label: o.label, value: o.value, key: o.value })))),\n React.createElement(View, { pointerEvents: \"none\" },\n React.createElement(TextField, { ...props, value: selectedLabel, placeholder: placeholder, \n // @ts-ignore\n ref: textField, disabled: disabled, \n // @ts-expect-error\n style: stylesWithoutMargin })))));\n};\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n});\nexport default withTheme(Picker);\n"]}
1
+ {"version":3,"sources":["PickerComponent.android.tsx"],"names":["React","View","StyleSheet","omit","withTheme","Picker","NativePicker","extractStyles","TextField","Touchable","style","options","placeholder","selectedValue","disabled","onValueChange","onValueChangeOverride","props","viewStyles","borderRadius","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderColor","backgroundColor","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","textField","useRef","undefined","itemValue","itemIndex","toggleFocus","current","stylesWithoutMargin","flatten","selectedLabel","find","o","value","label","styles","container","opacity","position","top","left","right","bottom","width","map","create","alignSelf"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet } from \"react-native\";\nimport omit from \"lodash.omit\";\nimport { withTheme } from \"../../theming\";\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\nimport { extractStyles } from \"../../utilities\";\n\nimport TextField from \"../TextField\";\nimport Touchable from \"../Touchable\";\nimport { PickerComponentProps } from \"./PickerTypes\";\n\nconst Picker: React.FC<PickerComponentProps> = ({\n style,\n options,\n placeholder,\n selectedValue,\n disabled = false,\n onValueChange: onValueChangeOverride = () => {},\n ...props\n}) => {\n const {\n viewStyles: {\n borderRadius, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderTopWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderRightWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderBottomWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderLeftWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n backgroundColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n padding, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingTop, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingRight, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingBottom, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingLeft, // eslint-disable-line @typescript-eslint/no-unused-vars\n ...viewStyles\n },\n } = extractStyles(style);\n\n const textField = React.useRef<typeof TextField | undefined>(undefined);\n\n const onValueChange = (itemValue: string, itemIndex: number) => {\n toggleFocus();\n onValueChangeOverride(itemValue, itemIndex);\n };\n\n const toggleFocus = () => {\n if (!disabled) {\n // @ts-ignore\n textField.current.toggleFocus(); // cannot determine if method exists due to component being wrapped in a withTheme()\n }\n };\n\n const stylesWithoutMargin =\n style &&\n omit(StyleSheet.flatten(style), [\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n ]);\n\n const selectedLabel =\n selectedValue &&\n (options.find((o) => o.value === selectedValue)?.label ?? selectedValue);\n\n return (\n <Touchable\n disabled={disabled}\n onPress={toggleFocus}\n style={[styles.container, viewStyles]}\n >\n <View>\n <NativePicker\n enabled={!disabled}\n selectedValue={selectedValue}\n onValueChange={onValueChange}\n style={{\n opacity: 0,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: \"100%\",\n }}\n >\n {options.map((o) => (\n <NativePicker.Item label={o.label} value={o.value} key={o.value} />\n ))}\n </NativePicker>\n <View pointerEvents=\"none\">\n <TextField\n {...props}\n value={selectedLabel}\n placeholder={placeholder}\n // @ts-ignore\n ref={textField} // cannot determine if ref is of correct type due to component being wrapped in a withTheme()\n disabled={disabled}\n // @ts-expect-error\n style={stylesWithoutMargin}\n />\n </View>\n </View>\n </Touchable>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n});\n\nexport default withTheme(Picker);\n"]}
@@ -1,8 +1,8 @@
1
- import React from "react";
1
+ import { FC } from "react";
2
2
  interface Props {
3
3
  value?: number | string;
4
4
  defaultValue?: number | string;
5
5
  onChangeText?: (value?: number) => void;
6
6
  }
7
- declare const NumberInput: React.FC<Props>;
7
+ declare const NumberInput: FC<Props>;
8
8
  export default NumberInput;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@draftbit/core",
3
- "version": "43.4.6-f4bf57.2+f4bf57c8",
3
+ "version": "43.4.8-cae1e2.0+cae1e2fd",
4
4
  "description": "Core (non-native) Components",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -80,5 +80,5 @@
80
80
  ]
81
81
  ]
82
82
  },
83
- "gitHead": "f4bf57c8d33874f42cf4357449cc6c4520e5e9c2"
83
+ "gitHead": "cae1e2fda8058d1ff0374350a4b07f6278285a67"
84
84
  }
@@ -1,39 +1,47 @@
1
- import React, { useCallback, useEffect, useState } from "react";
1
+ import React, { useEffect, useState } from "react";
2
2
  import { TextInput } from "react-native";
3
- import { isString, isNumber } from "lodash";
4
- const NumberInput = ({ onChangeText, value = "", defaultValue = "", ...props }) => {
5
- const [isDecimal, setIsDecimal] = useState(value && !Number.isInteger(value));
6
- const formatValueToString = useCallback((valueToStringify) => {
7
- if (valueToStringify != null) {
8
- if (isString(valueToStringify) &&
9
- /^[+-]?([0-9]+\.?[0-9]*|\.[0-9]+)$/.test(valueToStringify)) {
10
- console.log("is string", value);
11
- return valueToStringify;
3
+ import { isString, isNumber, isNaN } from "lodash";
4
+ const NumberInput = ({ onChangeText, value, defaultValue, ...props }) => {
5
+ const formatValueToStringNumber = (valueToFormat, currentStringNumberValue) => {
6
+ if (valueToFormat != null) {
7
+ if (isString(valueToFormat) && valueToFormat !== "") {
8
+ if (/^0[1-9]$/.test(valueToFormat)) {
9
+ return valueToFormat.slice(1);
10
+ }
11
+ else if (/^[+-]?([0-9]+\.?[0-9]*|\.[0-9]+)$/.test(valueToFormat)) {
12
+ return valueToFormat;
13
+ }
14
+ else if (currentStringNumberValue) {
15
+ return currentStringNumberValue;
16
+ }
12
17
  }
13
- else if (isNumber(valueToStringify)) {
14
- return valueToStringify.toString();
18
+ else if (isNumber(valueToFormat) && !isNaN(valueToFormat)) {
19
+ return valueToFormat.toString();
15
20
  }
16
21
  }
17
- return "";
18
- }, [value]);
19
- useEffect(() => {
20
- if (value) {
21
- setIsDecimal(formatValueToString(value).includes("."));
22
- }
23
- }, [value, formatValueToString]);
24
- const makeFinalValue = (valueToMakeFinal) => {
25
- let stringValue = formatValueToString(valueToMakeFinal);
26
- if (isDecimal && !stringValue.includes(".")) {
27
- stringValue = `${stringValue}.`;
28
- }
29
- return stringValue;
22
+ return "0";
30
23
  };
24
+ const [currentStringNumberValue, setCurrentStringNumberValue] = useState(formatValueToStringNumber(value));
31
25
  const handleChangeText = (newValue) => {
32
- const parsedNumber = parseFloat(newValue);
33
- const number = isNaN(parsedNumber) ? 0 : parsedNumber;
34
- setIsDecimal(newValue.includes("."));
26
+ const newStringNumberValue = formatValueToStringNumber(newValue, currentStringNumberValue);
27
+ const number = parseFloat(newStringNumberValue);
28
+ setCurrentStringNumberValue(newStringNumberValue);
35
29
  onChangeText?.(number);
36
30
  };
37
- return (React.createElement(TextInput, { keyboardType: "numeric", ...props, value: makeFinalValue(value), defaultValue: makeFinalValue(defaultValue), onChangeText: handleChangeText }));
31
+ useEffect(() => {
32
+ const defaultStringNumberValue = formatValueToStringNumber(defaultValue, currentStringNumberValue);
33
+ if (currentStringNumberValue !== defaultStringNumberValue) {
34
+ setCurrentStringNumberValue(defaultStringNumberValue);
35
+ }
36
+ // eslint-disable-next-line react-hooks/exhaustive-deps
37
+ }, []);
38
+ useEffect(() => {
39
+ const nextStringNumberValue = formatValueToStringNumber(value, currentStringNumberValue);
40
+ if (currentStringNumberValue !== nextStringNumberValue) {
41
+ handleChangeText(nextStringNumberValue);
42
+ }
43
+ // eslint-disable-next-line react-hooks/exhaustive-deps
44
+ }, [value]);
45
+ return (React.createElement(TextInput, { keyboardType: "numeric", value: currentStringNumberValue, onChangeText: handleChangeText, ...props }));
38
46
  };
39
47
  export default NumberInput;
@@ -1,6 +1,6 @@
1
- import React, { useCallback, useEffect, useState } from "react";
1
+ import React, { FC, useEffect, useState } from "react";
2
2
  import { TextInput } from "react-native";
3
- import { isString, isNumber } from "lodash";
3
+ import { isString, isNumber, isNaN } from "lodash";
4
4
 
5
5
  interface Props {
6
6
  value?: number | string;
@@ -8,64 +8,78 @@ interface Props {
8
8
  onChangeText?: (value?: number) => void;
9
9
  }
10
10
 
11
- const NumberInput: React.FC<Props> = ({
11
+ const NumberInput: FC<Props> = ({
12
12
  onChangeText,
13
- value = "",
14
- defaultValue = "",
13
+ value,
14
+ defaultValue,
15
15
  ...props
16
16
  }) => {
17
- const [isDecimal, setIsDecimal] = useState(value && !Number.isInteger(value));
18
-
19
- const formatValueToString = useCallback(
20
- (valueToStringify?: number | string) => {
21
- if (valueToStringify != null) {
22
- if (
23
- isString(valueToStringify) &&
24
- /^[+-]?([0-9]+\.?[0-9]*|\.[0-9]+)$/.test(valueToStringify)
25
- ) {
26
- console.log("is string", value);
27
- return valueToStringify;
28
- } else if (isNumber(valueToStringify)) {
29
- return valueToStringify.toString();
17
+ const formatValueToStringNumber = (
18
+ valueToFormat?: number | string,
19
+ currentStringNumberValue?: string
20
+ ) => {
21
+ if (valueToFormat != null) {
22
+ if (isString(valueToFormat) && valueToFormat !== "") {
23
+ if (/^0[1-9]$/.test(valueToFormat)) {
24
+ return valueToFormat.slice(1);
25
+ } else if (/^[+-]?([0-9]+\.?[0-9]*|\.[0-9]+)$/.test(valueToFormat)) {
26
+ return valueToFormat;
27
+ } else if (currentStringNumberValue) {
28
+ return currentStringNumberValue;
30
29
  }
30
+ } else if (isNumber(valueToFormat) && !isNaN(valueToFormat)) {
31
+ return valueToFormat.toString();
31
32
  }
32
-
33
- return "";
34
- },
35
- [value]
36
- );
37
-
38
- useEffect(() => {
39
- if (value) {
40
- setIsDecimal(formatValueToString(value).includes("."));
41
33
  }
42
- }, [value, formatValueToString]);
43
34
 
44
- const makeFinalValue = (valueToMakeFinal?: number | string) => {
45
- let stringValue = formatValueToString(valueToMakeFinal);
46
-
47
- if (isDecimal && !stringValue.includes(".")) {
48
- stringValue = `${stringValue}.`;
49
- }
50
-
51
- return stringValue;
35
+ return "0";
52
36
  };
53
37
 
38
+ const [currentStringNumberValue, setCurrentStringNumberValue] = useState(
39
+ formatValueToStringNumber(value)
40
+ );
41
+
54
42
  const handleChangeText = (newValue: string) => {
55
- const parsedNumber = parseFloat(newValue);
56
- const number = isNaN(parsedNumber) ? 0 : parsedNumber;
43
+ const newStringNumberValue = formatValueToStringNumber(
44
+ newValue,
45
+ currentStringNumberValue
46
+ );
47
+ const number = parseFloat(newStringNumberValue);
57
48
 
58
- setIsDecimal(newValue.includes("."));
49
+ setCurrentStringNumberValue(newStringNumberValue);
59
50
  onChangeText?.(number);
60
51
  };
61
52
 
53
+ useEffect(() => {
54
+ const defaultStringNumberValue = formatValueToStringNumber(
55
+ defaultValue,
56
+ currentStringNumberValue
57
+ );
58
+
59
+ if (currentStringNumberValue !== defaultStringNumberValue) {
60
+ setCurrentStringNumberValue(defaultStringNumberValue);
61
+ }
62
+ // eslint-disable-next-line react-hooks/exhaustive-deps
63
+ }, []);
64
+
65
+ useEffect(() => {
66
+ const nextStringNumberValue = formatValueToStringNumber(
67
+ value,
68
+ currentStringNumberValue
69
+ );
70
+
71
+ if (currentStringNumberValue !== nextStringNumberValue) {
72
+ handleChangeText(nextStringNumberValue);
73
+ }
74
+ // eslint-disable-next-line react-hooks/exhaustive-deps
75
+ }, [value]);
76
+
62
77
  return (
63
78
  <TextInput
64
79
  keyboardType="numeric"
65
- {...props}
66
- value={makeFinalValue(value)}
67
- defaultValue={makeFinalValue(defaultValue)}
80
+ value={currentStringNumberValue}
68
81
  onChangeText={handleChangeText}
82
+ {...props}
69
83
  />
70
84
  );
71
85
  };