@draftbit/core 43.4.7 → 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.
- package/lib/commonjs/components/Accordion/AccordionItem.js +21 -5
- package/lib/commonjs/components/Accordion/AccordionItem.js.map +1 -1
- package/lib/commonjs/components/Accordion/index.js.map +1 -1
- package/lib/commonjs/components/FAB.js +5 -19
- package/lib/commonjs/components/FAB.js.map +1 -1
- package/lib/commonjs/components/NumberInput.js +26 -10
- package/lib/commonjs/components/NumberInput.js.map +1 -1
- package/lib/commonjs/mappings/ActionSheetCancel.js.map +1 -1
- package/lib/commonjs/mappings/IconButton.js.map +1 -1
- package/lib/commonjs/mappings/TextArea.js.map +1 -1
- package/lib/module/components/NumberInput.js +27 -11
- package/lib/module/components/NumberInput.js.map +1 -1
- package/package.json +2 -2
- package/src/components/NumberInput.js +21 -7
- package/src/components/NumberInput.tsx +47 -24
|
@@ -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,
|
|
41
|
-
style: [styles.container, viewStyles]
|
|
42
|
-
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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"]}
|
|
@@ -24,7 +24,8 @@ const NumberInput = _ref => {
|
|
|
24
24
|
defaultValue,
|
|
25
25
|
...props
|
|
26
26
|
} = _ref;
|
|
27
|
-
|
|
27
|
+
|
|
28
|
+
const formatValueToStringNumber = (valueToFormat, currentStringNumberValue) => {
|
|
28
29
|
if (valueToFormat != null) {
|
|
29
30
|
if ((0, _lodash.isString)(valueToFormat) && valueToFormat !== "") {
|
|
30
31
|
if (/^0[1-9]$/.test(valueToFormat)) {
|
|
@@ -40,23 +41,38 @@ const NumberInput = _ref => {
|
|
|
40
41
|
}
|
|
41
42
|
|
|
42
43
|
return "0";
|
|
43
|
-
}
|
|
44
|
-
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const [currentStringNumberValue, setCurrentStringNumberValue] = (0, _react.useState)(formatValueToStringNumber(value));
|
|
45
47
|
|
|
46
48
|
const handleChangeText = newValue => {
|
|
47
|
-
const newStringNumberValue = formatValueToStringNumber(newValue,
|
|
49
|
+
const newStringNumberValue = formatValueToStringNumber(newValue, currentStringNumberValue);
|
|
48
50
|
const number = parseFloat(newStringNumberValue);
|
|
49
|
-
|
|
51
|
+
setCurrentStringNumberValue(newStringNumberValue);
|
|
50
52
|
onChangeText === null || onChangeText === void 0 ? void 0 : onChangeText(number);
|
|
51
53
|
};
|
|
52
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]);
|
|
53
71
|
return /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, _extends({
|
|
54
|
-
keyboardType: "numeric"
|
|
55
|
-
|
|
56
|
-
value: stringNumberValue,
|
|
57
|
-
defaultValue: formatValueToStringNumber(defaultValue),
|
|
72
|
+
keyboardType: "numeric",
|
|
73
|
+
value: currentStringNumberValue,
|
|
58
74
|
onChangeText: handleChangeText
|
|
59
|
-
}));
|
|
75
|
+
}, props));
|
|
60
76
|
};
|
|
61
77
|
|
|
62
78
|
var _default = NumberInput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["NumberInput.tsx"],"names":["NumberInput","onChangeText","value","defaultValue","props","formatValueToStringNumber","valueToFormat","currentStringNumberValue","test","slice","toString","
|
|
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":["ActionSheetCancel.
|
|
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.
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["TextArea.
|
|
1
|
+
{"version":3,"sources":["TextArea.ts"],"names":["SEED_DATA","name","tag","description","category","COMPONENT_TYPES","input","layout","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","borderColor","paddingLeft","paddingRight","paddingTop","paddingBottom","borderRadius","triggers","Triggers","OnChangeText","props","TEXT_INPUT_PROPS","placeholder","defaultValue","multiline","label","group","GROUPS","uncategorized","formType","FORM_TYPES","boolean","propType","PROP_TYPES","BOOLEAN","editable","required","numberOfLines","basic","number","NUMBER","fieldName","FIELD_NAME","handlerPropName"],"mappings":";;;;;;;AAAA;;AAUO,MAAMA,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,WADiB;AAEvBC,EAAAA,GAAG,EAAE,WAFkB;AAGvBC,EAAAA,WAAW,EAAE,gDAHU;AAIvBC,EAAAA,QAAQ,EAAEC,uBAAgBC,KAJH;AAKvBC,EAAAA,MAAM,EAAE;AACNC,IAAAA,eAAe,EAAE,CADX;AAENC,IAAAA,gBAAgB,EAAE,CAFZ;AAGNC,IAAAA,cAAc,EAAE,CAHV;AAINC,IAAAA,iBAAiB,EAAE,CAJb;AAKNC,IAAAA,WAAW,EAAE,SALP;AAMNC,IAAAA,WAAW,EAAE,CANP;AAONC,IAAAA,YAAY,EAAE,CAPR;AAQNC,IAAAA,UAAU,EAAE,CARN;AASNC,IAAAA,aAAa,EAAE,CATT;AAUNC,IAAAA,YAAY,EAAE;AAVR,GALe;AAiBvBC,EAAAA,QAAQ,EAAE,CAACC,gBAASC,YAAV,CAjBa;AAkBvBC,EAAAA,KAAK,EAAE,EACL,GAAGC,uBADE;AAELC,IAAAA,WAAW,EAAE,EACX,GAAGD,wBAAiBC,WADT;AAEXC,MAAAA,YAAY,EACV;AAHS,KAFR;AAOLC,IAAAA,SAAS,EAAE;AACTC,MAAAA,KAAK,EAAE,WADE;AAETvB,MAAAA,WAAW,EAAE,WAFJ;AAGTwB,MAAAA,KAAK,EAAEC,cAAOC,aAHL;AAITC,MAAAA,QAAQ,EAAEC,kBAAWC,OAJZ;AAKTC,MAAAA,QAAQ,EAAEC,kBAAWC,OALZ;AAMTX,MAAAA,YAAY,EAAE,IANL;AAOTY,MAAAA,QAAQ,EAAE,IAPD;AAQTC,MAAAA,QAAQ,EAAE;AARD,KAPN;AAiBLC,IAAAA,aAAa,EAAE;AACbZ,MAAAA,KAAK,EAAE,iBADM;AAEbvB,MAAAA,WAAW,EAAE,iBAFA;AAGbwB,MAAAA,KAAK,EAAEC,cAAOW,KAHD;AAIbT,MAAAA,QAAQ,EAAEC,kBAAWS,MAJR;AAKbP,MAAAA,QAAQ,EAAEC,kBAAWO,MALR;AAMbjB,MAAAA,YAAY,EAAE,CAND;AAObY,MAAAA,QAAQ,EAAE,IAPG;AAQbC,MAAAA,QAAQ,EAAE;AARG,KAjBV;AA2BLK,IAAAA,SAAS,EAAE,EACT,GAAGC,iBADM;AAETnB,MAAAA,YAAY,EAAE,gBAFL;AAGToB,MAAAA,eAAe,EAAE;AAHR;AA3BN;AAlBgB,CAAlB","sourcesContent":["import {\n GROUPS,\n COMPONENT_TYPES,\n FORM_TYPES,\n PROP_TYPES,\n FIELD_NAME,\n TEXT_INPUT_PROPS,\n Triggers,\n} from \"@draftbit/types\";\n\nexport const SEED_DATA = {\n name: \"Text Area\",\n tag: \"TextInput\",\n description: \"An input field that allows for multiple lines.\",\n category: COMPONENT_TYPES.input,\n layout: {\n borderLeftWidth: 1,\n borderRightWidth: 1,\n borderTopWidth: 1,\n borderBottomWidth: 1,\n borderColor: \"divider\",\n paddingLeft: 8,\n paddingRight: 8,\n paddingTop: 8,\n paddingBottom: 8,\n borderRadius: 8,\n },\n triggers: [Triggers.OnChangeText],\n props: {\n ...TEXT_INPUT_PROPS,\n placeholder: {\n ...TEXT_INPUT_PROPS.placeholder,\n defaultValue:\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.\",\n },\n multiline: {\n label: \"Multiline\",\n description: \"Multiline\",\n group: GROUPS.uncategorized,\n formType: FORM_TYPES.boolean,\n propType: PROP_TYPES.BOOLEAN,\n defaultValue: true,\n editable: true,\n required: false,\n },\n numberOfLines: {\n label: \"Number Of Lines\",\n description: \"Number Of Lines\",\n group: GROUPS.basic,\n formType: FORM_TYPES.number,\n propType: PROP_TYPES.NUMBER,\n defaultValue: 4,\n editable: true,\n required: false,\n },\n fieldName: {\n ...FIELD_NAME,\n defaultValue: \"textInputValue\",\n handlerPropName: \"onChangeText\",\n },\n },\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
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, {
|
|
3
|
+
import React, { useEffect, useState } from "react";
|
|
4
4
|
import { TextInput } from "react-native";
|
|
5
5
|
import { isString, isNumber, isNaN } from "lodash";
|
|
6
6
|
|
|
@@ -11,7 +11,8 @@ const NumberInput = _ref => {
|
|
|
11
11
|
defaultValue,
|
|
12
12
|
...props
|
|
13
13
|
} = _ref;
|
|
14
|
-
|
|
14
|
+
|
|
15
|
+
const formatValueToStringNumber = (valueToFormat, currentStringNumberValue) => {
|
|
15
16
|
if (valueToFormat != null) {
|
|
16
17
|
if (isString(valueToFormat) && valueToFormat !== "") {
|
|
17
18
|
if (/^0[1-9]$/.test(valueToFormat)) {
|
|
@@ -27,23 +28,38 @@ const NumberInput = _ref => {
|
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
return "0";
|
|
30
|
-
}
|
|
31
|
-
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const [currentStringNumberValue, setCurrentStringNumberValue] = useState(formatValueToStringNumber(value));
|
|
32
34
|
|
|
33
35
|
const handleChangeText = newValue => {
|
|
34
|
-
const newStringNumberValue = formatValueToStringNumber(newValue,
|
|
36
|
+
const newStringNumberValue = formatValueToStringNumber(newValue, currentStringNumberValue);
|
|
35
37
|
const number = parseFloat(newStringNumberValue);
|
|
36
|
-
|
|
38
|
+
setCurrentStringNumberValue(newStringNumberValue);
|
|
37
39
|
onChangeText === null || onChangeText === void 0 ? void 0 : onChangeText(number);
|
|
38
40
|
};
|
|
39
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]);
|
|
40
58
|
return /*#__PURE__*/React.createElement(TextInput, _extends({
|
|
41
|
-
keyboardType: "numeric"
|
|
42
|
-
|
|
43
|
-
value: stringNumberValue,
|
|
44
|
-
defaultValue: formatValueToStringNumber(defaultValue),
|
|
59
|
+
keyboardType: "numeric",
|
|
60
|
+
value: currentStringNumberValue,
|
|
45
61
|
onChangeText: handleChangeText
|
|
46
|
-
}));
|
|
62
|
+
}, props));
|
|
47
63
|
};
|
|
48
64
|
|
|
49
65
|
export default NumberInput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["NumberInput.tsx"],"names":["React","
|
|
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"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@draftbit/core",
|
|
3
|
-
"version": "43.4.
|
|
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": "
|
|
83
|
+
"gitHead": "cae1e2fda8058d1ff0374350a4b07f6278285a67"
|
|
84
84
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { useEffect, useState } from "react";
|
|
2
2
|
import { TextInput } from "react-native";
|
|
3
3
|
import { isString, isNumber, isNaN } from "lodash";
|
|
4
4
|
const NumberInput = ({ onChangeText, value, defaultValue, ...props }) => {
|
|
5
|
-
const formatValueToStringNumber =
|
|
5
|
+
const formatValueToStringNumber = (valueToFormat, currentStringNumberValue) => {
|
|
6
6
|
if (valueToFormat != null) {
|
|
7
7
|
if (isString(valueToFormat) && valueToFormat !== "") {
|
|
8
8
|
if (/^0[1-9]$/.test(valueToFormat)) {
|
|
@@ -20,14 +20,28 @@ const NumberInput = ({ onChangeText, value, defaultValue, ...props }) => {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
return "0";
|
|
23
|
-
}
|
|
24
|
-
const [
|
|
23
|
+
};
|
|
24
|
+
const [currentStringNumberValue, setCurrentStringNumberValue] = useState(formatValueToStringNumber(value));
|
|
25
25
|
const handleChangeText = (newValue) => {
|
|
26
|
-
const newStringNumberValue = formatValueToStringNumber(newValue,
|
|
26
|
+
const newStringNumberValue = formatValueToStringNumber(newValue, currentStringNumberValue);
|
|
27
27
|
const number = parseFloat(newStringNumberValue);
|
|
28
|
-
|
|
28
|
+
setCurrentStringNumberValue(newStringNumberValue);
|
|
29
29
|
onChangeText?.(number);
|
|
30
30
|
};
|
|
31
|
-
|
|
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 }));
|
|
32
46
|
};
|
|
33
47
|
export default NumberInput;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { FC,
|
|
1
|
+
import React, { FC, useEffect, useState } from "react";
|
|
2
2
|
import { TextInput } from "react-native";
|
|
3
3
|
import { isString, isNumber, isNaN } from "lodash";
|
|
4
4
|
|
|
@@ -14,49 +14,72 @@ const NumberInput: FC<Props> = ({
|
|
|
14
14
|
defaultValue,
|
|
15
15
|
...props
|
|
16
16
|
}) => {
|
|
17
|
-
const formatValueToStringNumber =
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return valueToFormat.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
|
}
|
|
33
|
+
}
|
|
32
34
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
[]
|
|
36
|
-
);
|
|
35
|
+
return "0";
|
|
36
|
+
};
|
|
37
37
|
|
|
38
|
-
const [
|
|
38
|
+
const [currentStringNumberValue, setCurrentStringNumberValue] = useState(
|
|
39
39
|
formatValueToStringNumber(value)
|
|
40
40
|
);
|
|
41
41
|
|
|
42
42
|
const handleChangeText = (newValue: string) => {
|
|
43
43
|
const newStringNumberValue = formatValueToStringNumber(
|
|
44
44
|
newValue,
|
|
45
|
-
|
|
45
|
+
currentStringNumberValue
|
|
46
46
|
);
|
|
47
47
|
const number = parseFloat(newStringNumberValue);
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
setCurrentStringNumberValue(newStringNumberValue);
|
|
50
50
|
onChangeText?.(number);
|
|
51
51
|
};
|
|
52
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
|
+
|
|
53
77
|
return (
|
|
54
78
|
<TextInput
|
|
55
79
|
keyboardType="numeric"
|
|
56
|
-
{
|
|
57
|
-
value={stringNumberValue}
|
|
58
|
-
defaultValue={formatValueToStringNumber(defaultValue)}
|
|
80
|
+
value={currentStringNumberValue}
|
|
59
81
|
onChangeText={handleChangeText}
|
|
82
|
+
{...props}
|
|
60
83
|
/>
|
|
61
84
|
);
|
|
62
85
|
};
|