@wavemaker/app-rn-runtime 11.5.2-rc.5436 → 11.5.2-rc.5461
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.
- app-rn-runtime/components/data/list/list.component.js +53 -1
- app-rn-runtime/components/data/list/list.component.js.map +1 -1
- app-rn-runtime/components/input/basenumber/basenumber.component.js +3 -3
- app-rn-runtime/components/input/basenumber/basenumber.component.js.map +1 -1
- app-rn-runtime/components/input/currency/currency.component.js +17 -2
- app-rn-runtime/components/input/currency/currency.component.js.map +1 -1
- app-rn-runtime/components/input/currency/currency.props.js +1 -0
- app-rn-runtime/components/input/currency/currency.props.js.map +1 -1
- app-rn-runtime/components/input/currency/currency.styles.js +19 -1
- app-rn-runtime/components/input/currency/currency.styles.js.map +1 -1
- app-rn-runtime/components/input/epoch/base-datetime.component.js +10 -2
- app-rn-runtime/components/input/epoch/base-datetime.component.js.map +1 -1
- app-rn-runtime/components/input/epoch/date/date.component.js +8 -0
- app-rn-runtime/components/input/epoch/date/date.component.js.map +1 -1
- app-rn-runtime/components/input/epoch/date/date.styles.js +16 -0
- app-rn-runtime/components/input/epoch/date/date.styles.js.map +1 -1
- app-rn-runtime/components/input/epoch/datetime/datetime.component.js +8 -0
- app-rn-runtime/components/input/epoch/datetime/datetime.component.js.map +1 -1
- app-rn-runtime/components/input/epoch/datetime/datetime.props.js +1 -0
- app-rn-runtime/components/input/epoch/datetime/datetime.props.js.map +1 -1
- app-rn-runtime/components/input/epoch/datetime/datetime.styles.js +21 -1
- app-rn-runtime/components/input/epoch/datetime/datetime.styles.js.map +1 -1
- app-rn-runtime/components/input/epoch/time/time.component.js +8 -0
- app-rn-runtime/components/input/epoch/time/time.component.js.map +1 -1
- app-rn-runtime/components/input/epoch/time/time.styles.js +16 -0
- app-rn-runtime/components/input/epoch/time/time.styles.js.map +1 -1
- app-rn-runtime/components/input/number/number.component.js +11 -0
- app-rn-runtime/components/input/number/number.component.js.map +1 -1
- app-rn-runtime/components/input/number/number.props.js +1 -0
- app-rn-runtime/components/input/number/number.props.js.map +1 -1
- app-rn-runtime/components/input/number/number.styles.js +17 -0
- app-rn-runtime/components/input/number/number.styles.js.map +1 -1
- app-rn-runtime/components/input/text/text.component.js +11 -0
- app-rn-runtime/components/input/text/text.component.js.map +1 -1
- app-rn-runtime/components/input/text/text.props.js +1 -0
- app-rn-runtime/components/input/text/text.props.js.map +1 -1
- app-rn-runtime/components/input/text/text.styles.js +17 -0
- app-rn-runtime/components/input/text/text.styles.js.map +1 -1
- app-rn-runtime/components/input/textarea/textarea.component.js +11 -0
- app-rn-runtime/components/input/textarea/textarea.component.js.map +1 -1
- app-rn-runtime/components/input/textarea/textarea.props.js +1 -0
- app-rn-runtime/components/input/textarea/textarea.props.js.map +1 -1
- app-rn-runtime/components/input/textarea/textarea.styles.js +17 -0
- app-rn-runtime/components/input/textarea/textarea.styles.js.map +1 -1
- app-rn-runtime/components/page/tabbar/curve.js +84 -0
- app-rn-runtime/components/page/tabbar/curve.js.map +1 -0
- app-rn-runtime/components/page/tabbar/tabbar.component.js +43 -9
- app-rn-runtime/components/page/tabbar/tabbar.component.js.map +1 -1
- app-rn-runtime/components/page/tabbar/tabbar.styles.js +54 -1
- app-rn-runtime/components/page/tabbar/tabbar.styles.js.map +1 -1
- app-rn-runtime/core/base.component.js +5 -1
- app-rn-runtime/core/base.component.js.map +1 -1
- app-rn-runtime/core/components/floatinglabel.component.js +45 -0
- app-rn-runtime/core/components/floatinglabel.component.js.map +1 -0
- app-rn-runtime/core/components/textinput.component.js +25 -2
- app-rn-runtime/core/components/textinput.component.js.map +1 -1
- app-rn-runtime/package.json +5 -3
- app-rn-runtime/styles/theme.js +36 -0
- app-rn-runtime/styles/theme.js.map +1 -1
- app-rn-runtime/styles/theme.variables.js +7 -0
- app-rn-runtime/styles/theme.variables.js.map +1 -1
|
@@ -4,7 +4,7 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typ
|
|
|
4
4
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import { SectionList, Text, View, FlatList } from 'react-native';
|
|
7
|
-
import { isArray, isEmpty, isNil, round } from 'lodash-es';
|
|
7
|
+
import { isArray, isEmpty, isNil, isNumber, round } from 'lodash-es';
|
|
8
8
|
import { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';
|
|
9
9
|
import { getGroupedData, isDefined } from "@wavemaker/app-rn-runtime/core/utils";
|
|
10
10
|
import { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';
|
|
@@ -78,6 +78,52 @@ export default class WmList extends BaseComponent {
|
|
|
78
78
|
this.onSelect(props.dataset[0], index);
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
|
+
clear() {
|
|
82
|
+
this.updateState({
|
|
83
|
+
groupedData: {}
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
selectItem(item) {
|
|
87
|
+
const dataset = this.state.props.dataset;
|
|
88
|
+
if (isNumber(item)) {
|
|
89
|
+
this.onSelect(dataset[item], item);
|
|
90
|
+
} else {
|
|
91
|
+
let index = dataset.indexOf(item);
|
|
92
|
+
this.onSelect(dataset[index], index);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
getItem(index) {
|
|
96
|
+
const props = this.state.props;
|
|
97
|
+
return this.props.dataset[index];
|
|
98
|
+
}
|
|
99
|
+
deselect(item) {
|
|
100
|
+
const props = this.state.props;
|
|
101
|
+
let selectedItem = null;
|
|
102
|
+
let index = isNumber(item) ? item : props.dataset.indexOf(item);
|
|
103
|
+
if (props.multiselect && index >= 0) {
|
|
104
|
+
selectedItem = [...(props.selecteditem || [])];
|
|
105
|
+
let selectedItemIndex = selectedItem.indexOf(props.dataset[index]);
|
|
106
|
+
if (selectedItemIndex >= 0) {
|
|
107
|
+
selectedItem.splice(selectedItemIndex, 1);
|
|
108
|
+
}
|
|
109
|
+
} else {
|
|
110
|
+
if (props.selecteditem === props.dataset[index]) {
|
|
111
|
+
selectedItem = null;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
this.updateState({
|
|
115
|
+
props: {
|
|
116
|
+
selecteditem: selectedItem
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
getWidgets(widgetname, index) {
|
|
121
|
+
if (index >= 0 && index < this.itemWidgets.length) {
|
|
122
|
+
return this.itemWidgets[index][widgetname];
|
|
123
|
+
} else {
|
|
124
|
+
return this.itemWidgets.map(item => item[widgetname]).filter(widget => widget !== undefined);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
81
127
|
deselectAll() {
|
|
82
128
|
this.updateState({
|
|
83
129
|
props: {
|
|
@@ -142,6 +188,12 @@ export default class WmList extends BaseComponent {
|
|
|
142
188
|
} else if (isArray(this.state.props.selecteditem)) {
|
|
143
189
|
this.state.props.selecteditem = this.state.props.selecteditem.pop();
|
|
144
190
|
}
|
|
191
|
+
break;
|
|
192
|
+
case 'selecteditem':
|
|
193
|
+
if ($new != $old && isNumber($new)) {
|
|
194
|
+
this.selectItem(this.state.props.dataset[$new]);
|
|
195
|
+
}
|
|
196
|
+
break;
|
|
145
197
|
}
|
|
146
198
|
}
|
|
147
199
|
componentDidMount() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","SectionList","Text","View","FlatList","isArray","isEmpty","isNil","round","BaseComponent","BaseComponentState","getGroupedData","isDefined","Tappable","DefaultKeyExtractor","WmLabel","WmIcon","WmListProps","DEFAULT_CLASS","WmListState","constructor","arguments","_defineProperty","WmList","props","isSelected","$item","selectedItem","state","selecteditem","indexOf","onSelect","$index","triggerTapEvent","length","undefined","disableitem","multiselect","index","selectionlimit","push","invokeEventCallback","splice","selectedItemWidgets","itemWidgets","updateState","selectedindex","proxy","selectFirstItem","initialized","dataset","groupby","deselectAll","setGroupData","items","dataItems","groupedData","match","orderby","dateformat","_this$keyExtractor","keyExtractor","clear","onPropertyChange","name","$new","$old","data","direction","key","_this$keyExtractor2","selectfirstitem","pop","componentDidMount","_props$dataset","setTimeout","componentDidUpdate","prevProps","prevState","snapshot","getDefaultStyles","isHorizontal","theme","getStyle","defaultClass","getIndex","item","generateItemKey","itemkey","_showSkeleton","getKey","renderItem","cols","getNoOfColumns","createElement","_extends","getTestPropsForAction","onTap","onLongTap","onDoubleTap","styles","width","paddingRight","marginRight","margin","style","itemclass","id","getTestId","iconclass","selectedIcon","renderHeader","title","groupHeading","subheading","heading","flex","flexDirection","listIcon","caption","renderEmptyMessage","emptyMessage","nodatamessage","renderLoadingIcon","loadingIcon","loadingicon","loadingdatamsg","itemsperrow","xs","renderWithFlatList","root","map","v","i","marginBottom","horizontal","ListEmptyComponent","itemInfo","numColumns","getSectionListData","renderWithSectionList","onEndReached","_ref","distanceFromEnd","setState","currentPage","contentContainerStyle","onEndReachedThreshold","sections","renderSectionHeader","_ref2","section","renderSectionFooter","loadingdata","renderWidget","_background"],"sources":["list.component.tsx"],"sourcesContent":["import React from 'react';\nimport { SectionList, Text, View, TouchableWithoutFeedback, FlatList } from 'react-native';\nimport { isArray, isEmpty, isNil, round } from 'lodash-es';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport {getGroupedData, isDefined} from \"@wavemaker/app-rn-runtime/core/utils\";\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport { DefaultKeyExtractor } from '@wavemaker/app-rn-runtime/core/key.extractor';\nimport WmLabel from '@wavemaker/app-rn-runtime/components/basic/label/label.component';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\n\nimport WmListProps from './list.props';\nimport { DEFAULT_CLASS, WmListStyles } from './list.styles';\n\n\nexport class WmListState extends BaseComponentState<WmListProps> {\n public selectedindex: any;\n groupedData: Array<any> = [];\n currentPage: number = 1;\n}\n\nexport default class WmList extends BaseComponent<WmListProps, WmListState, WmListStyles> {\n\n private itemWidgets = [] as any[];\n private selectedItemWidgets = {} as any;\n private keyExtractor = new DefaultKeyExtractor();\n \n constructor(props: WmListProps) {\n super(props, DEFAULT_CLASS, new WmListProps(), new WmListState());\n }\n\n private isSelected($item: any) {\n const selectedItem = this.state.props.selecteditem;\n if (isArray(selectedItem)) {\n return selectedItem.indexOf($item) >= 0;\n }\n return selectedItem === $item;\n }\n\n private onSelect($item: any, $index: number | string, triggerTapEvent = false) {\n const props = this.state.props;\n let selectedItem = null as any;\n if (props.disableitem !== true \n && (typeof props.disableitem !== 'function' || !props.disableitem($item, $index))) {\n if (props.multiselect) {\n selectedItem = [...(props.selecteditem || [])];\n const index = selectedItem.indexOf($item);\n if (index < 0) {\n if ((!props.selectionlimit)\n || props.selectionlimit < 0\n || selectedItem.length < props.selectionlimit) {\n selectedItem.push($item);\n } else {\n this.invokeEventCallback('onSelectionlimitexceed', [null, this]);\n }\n } else {\n selectedItem.splice(index, 1);\n }\n } else {\n if (props.selecteditem === $item) {\n selectedItem = null;\n } else {\n selectedItem = $item;\n }\n }\n this.selectedItemWidgets = this.itemWidgets[$index as number];\n this.updateState({\n props: { selecteditem: selectedItem },\n selectedindex: $index\n } as WmListState, () => {\n this.invokeEventCallback('onSelect', [this.proxy, $item]);\n triggerTapEvent && this.invokeEventCallback('onTap', [null, this.proxy]);\n });\n }\n }\n\n private selectFirstItem() {\n const props = this.state.props;\n if (this.initialized\n && props.dataset\n && props.dataset.length) {\n const index = props.groupby ? '00': 0;\n this.onSelect(props.dataset[0], index);\n }\n }\n\n private deselectAll() {\n this.updateState({\n props: { selecteditem: null },\n selectedindex: -1\n } as WmListState);\n }\n\n setGroupData(items: any) {\n const dataItems = items;\n const props = this.state.props;\n if (props.groupby) {\n const groupedData = dataItems && getGroupedData(dataItems, props.groupby, props.match, props.orderby, props.dateformat, this);\n this.updateState({\n groupedData: groupedData\n } as WmListState, () => {\n this.keyExtractor?.clear();\n });\n }\n }\n\n public onPropertyChange(name: string, $new: any, $old: any) {\n super.onPropertyChange(name, $new, $old);\n const props = this.state.props;\n switch(name) {\n case 'selectfirstitem':\n if ($new) {\n this.selectFirstItem();\n }\n break;\n case 'dataset':\n if (this.state.props.groupby) {\n this.setGroupData($new);\n } else {\n const data = isArray($new) ? $new : (!isEmpty($new) && isDefined($new) ? [$new] : []);\n this.updateState({\n groupedData: (data[0] || props.direction === 'horizontal' ? [{\n key: '',\n data: data\n }] : [])\n } as WmListState, () => {\n this.keyExtractor?.clear();\n });\n }\n this.itemWidgets = [];\n if (props.selectfirstitem) {\n this.selectFirstItem();\n } else {\n this.deselectAll();\n }\n break;\n case 'groupby':\n case 'match':\n this.setGroupData(this.state.props.dataset);\n break;\n case 'multiselect':\n if ($new) {\n if (!isArray(this.state.props.selecteditem)) {\n this.state.props.selecteditem = this.state.props.selecteditem ? \n [this.state.props.selecteditem] : [];\n }\n } else if (isArray(this.state.props.selecteditem)) {\n this.state.props.selecteditem = this.state.props.selecteditem.pop();\n }\n }\n }\n\n componentDidMount() {\n const props = this.state.props;\n if (this.state.props.selectfirstitem && props.dataset?.length) {\n setTimeout(() => {\n this.onSelect(props.dataset[0], 0);\n });\n }\n super.componentDidMount();\n }\n\n componentDidUpdate(prevProps: WmListProps, prevState: WmListState, snapshot?: any) {\n super.componentDidUpdate && super.componentDidUpdate(prevProps, prevState, snapshot);\n this.invokeEventCallback('onRender', [this, this.state.props.dataset]);\n }\n\n getDefaultStyles() {\n const isHorizontal = this.state.props.direction === 'horizontal';\n return this.theme.getStyle(`${this.defaultClass} ${isHorizontal ? 'app-horizontal-list' : 'app-vertical-list'}`);\n }\n\n getIndex(item: any) {\n return this.state.props.dataset.indexOf(item);\n }\n\n private generateItemKey(item: any, index: number, props: WmListProps) {\n if (props.itemkey && item && !this._showSkeleton) {\n return props.itemkey(item, index);\n }\n return 'list_item_' + this.keyExtractor.getKey(item, true);\n }\n\n private renderItem(item: any, index: number, props: WmListProps) {\n const cols = this. getNoOfColumns();\n const isHorizontal = (props.direction === 'horizontal');\n return ( \n <Tappable\n {...this.getTestPropsForAction(`item${index}`)}\n onTap={() => this.onSelect(item, index, true)}\n onLongTap={() => this.invokeEventCallback('onLongtap', [null, this.proxy])}\n onDoubleTap={() => this.invokeEventCallback('onDoubletap', [null, this.proxy])}\n styles={\n [\n cols ? {\n width: round(100/cols, 2) + '%'\n } : null,\n cols || isHorizontal? {\n paddingRight: (isNil(this.styles.item.marginRight) \n ? this.styles.item.margin : this.styles.item.marginRight) || 4\n }: null\n ]\n }>\n <View style={[\n this.styles.item,\n props.itemclass ? this.theme.getStyle(props.itemclass(item, index)) : null,\n this.isSelected(item) ? this.styles.selectedItem : {}]}>\n { props.renderItem(item, index, this)}\n { this.isSelected(item) ? (\n <WmIcon id={this.getTestId('icon' + index)}iconclass='wi wi-check-circle' styles={this.styles.selectedIcon} />\n ) : null}\n </View>\n </Tappable>\n );\n }\n\n private renderHeader(props: WmListProps, title: string) {\n return props.groupby ? (\n <Text style={this.styles.groupHeading}>{title}</Text>\n ) : (props.iconclass || props.title || props.subheading) ? (\n <View style={this.styles.heading}>\n <View style={{flex: 1, flexDirection: 'row'}}>\n <WmIcon id={this.getTestId('icon')} styles={this.styles.listIcon} iconclass={props.iconclass}></WmIcon>\n <View>\n <WmLabel id={this.getTestId('title')} styles={this.styles.title} caption={props.title}></WmLabel>\n <WmLabel id={this.getTestId('subheading')} styles={this.styles.subheading} caption={props.subheading}></WmLabel>\n </View>\n </View>\n </View>) : null;\n }\n\n private renderEmptyMessage(isHorizontal: boolean, item: any, index: any, props: WmListProps) {\n return (<WmLabel id={this.getTestId('emptymsg')} styles={this.styles.emptyMessage} caption={props.nodatamessage}></WmLabel>);\n }\n\n private renderLoadingIcon(props: WmListProps) {\n return (<WmIcon\n id={this.getTestId('loadingicon')}\n styles={this.styles.loadingIcon}\n iconclass={props.loadingicon}\n caption={props.loadingdatamsg}></WmIcon>)\n }\n\n public getNoOfColumns() {\n const props = this.state.props;\n if(props.direction === 'vertical') {\n return props.itemsperrow.xs;\n }\n return 0;\n }\n\n private renderWithFlatList(props: WmListProps, isHorizontal = false) {\n return (\n <View style={this.styles.root}>\n {!isEmpty(this.state.groupedData) ? this.state.groupedData.map((v: any, i) => ((\n <View style={{marginBottom: 16}} key={v.key || this.keyExtractor.getKey(v, true)}>\n {this.renderHeader(props, v.key)}\n <FlatList\n key={props.name + '_' + (isHorizontal ? 'H' : 'V') + props.itemsperrow.xs}\n keyExtractor={(item, i) => this.generateItemKey(item, i, props)}\n horizontal = {isHorizontal}\n data={v.data || []}\n ListEmptyComponent = {(itemInfo) => this.renderEmptyMessage(isHorizontal, itemInfo.item, itemInfo.index, props)}\n renderItem={(itemInfo) => this.renderItem(itemInfo.item, itemInfo.index, props)} \n {...(isHorizontal ? {} : {numColumns : this.getNoOfColumns()})}> \n </FlatList>\n </View>\n ))) : this.renderEmptyMessage(isHorizontal, null, null,props)\n }\n </View>);\n }\n\n private getSectionListData() {\n if (this._showSkeleton) {\n return [{\n key: '',\n data: [{}, {}, {}]\n }];\n } else if (this.state.groupedData \n && this.state.groupedData[0] \n && this.state.groupedData[0]['data'].length) {\n return this.state.groupedData;\n }\n return [];\n }\n\n private renderWithSectionList(props: WmListProps, isHorizontal = false) { \n return (\n <SectionList\n keyExtractor={(item, i) => this.generateItemKey(item, i, props)}\n horizontal = {isHorizontal}\n onEndReached={({distanceFromEnd}) => {\n this.setState({ currentPage: this.state.currentPage + 1 } as WmListState);\n this.invokeEventCallback('onEndReached', [null, this]);\n }}\n contentContainerStyle={this.styles.root}\n onEndReachedThreshold={0.3}\n sections={this.getSectionListData()}\n renderSectionHeader={({ section: {key, data}}) => {\n return this.renderHeader(props, key);\n }}\n renderSectionFooter={() => props.loadingdata ? this.renderLoadingIcon(props) : null}\n ListEmptyComponent = {(itemInfo) => this.renderEmptyMessage(isHorizontal, itemInfo.item, itemInfo.index, props)}\n renderItem={(itemInfo) => this.renderItem(itemInfo.item, itemInfo.index, props)}>\n </SectionList>\n );\n }\n\n renderWidget(props: WmListProps) {\n this.invokeEventCallback('onBeforedatarender', [this, this.state.props.dataset]);\n const isHorizontal = (props.direction === 'horizontal');\n return (\n <View style={isHorizontal ? null : { width: '100%' }}>\n {this._background}\n {(isHorizontal || !props.groupby) ?\n this.renderWithFlatList(props, isHorizontal)\n : this.renderWithSectionList(props, isHorizontal)}\n </View>);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","SectionList","Text","View","FlatList","isArray","isEmpty","isNil","isNumber","round","BaseComponent","BaseComponentState","getGroupedData","isDefined","Tappable","DefaultKeyExtractor","WmLabel","WmIcon","WmListProps","DEFAULT_CLASS","WmListState","constructor","arguments","_defineProperty","WmList","props","isSelected","$item","selectedItem","state","selecteditem","indexOf","onSelect","$index","triggerTapEvent","length","undefined","disableitem","multiselect","index","selectionlimit","push","invokeEventCallback","splice","selectedItemWidgets","itemWidgets","updateState","selectedindex","proxy","selectFirstItem","initialized","dataset","groupby","clear","groupedData","selectItem","item","getItem","deselect","selectedItemIndex","getWidgets","widgetname","map","filter","widget","deselectAll","setGroupData","items","dataItems","match","orderby","dateformat","_this$keyExtractor","keyExtractor","onPropertyChange","name","$new","$old","data","direction","key","_this$keyExtractor2","selectfirstitem","pop","componentDidMount","_props$dataset","setTimeout","componentDidUpdate","prevProps","prevState","snapshot","getDefaultStyles","isHorizontal","theme","getStyle","defaultClass","getIndex","generateItemKey","itemkey","_showSkeleton","getKey","renderItem","cols","getNoOfColumns","createElement","_extends","getTestPropsForAction","onTap","onLongTap","onDoubleTap","styles","width","paddingRight","marginRight","margin","style","itemclass","id","getTestId","iconclass","selectedIcon","renderHeader","title","groupHeading","subheading","heading","flex","flexDirection","listIcon","caption","renderEmptyMessage","emptyMessage","nodatamessage","renderLoadingIcon","loadingIcon","loadingicon","loadingdatamsg","itemsperrow","xs","renderWithFlatList","root","v","i","marginBottom","horizontal","ListEmptyComponent","itemInfo","numColumns","getSectionListData","renderWithSectionList","onEndReached","_ref","distanceFromEnd","setState","currentPage","contentContainerStyle","onEndReachedThreshold","sections","renderSectionHeader","_ref2","section","renderSectionFooter","loadingdata","renderWidget","_background"],"sources":["list.component.tsx"],"sourcesContent":["import React from 'react';\nimport { SectionList, Text, View, TouchableWithoutFeedback, FlatList } from 'react-native';\nimport { isArray, isEmpty, isNil, isNumber, round } from 'lodash-es';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport {getGroupedData, isDefined} from \"@wavemaker/app-rn-runtime/core/utils\";\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport { DefaultKeyExtractor } from '@wavemaker/app-rn-runtime/core/key.extractor';\nimport WmLabel from '@wavemaker/app-rn-runtime/components/basic/label/label.component';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\n\nimport WmListProps from './list.props';\nimport { DEFAULT_CLASS, WmListStyles } from './list.styles';\n\n\nexport class WmListState extends BaseComponentState<WmListProps> {\n public selectedindex: any;\n groupedData: Array<any> = [];\n currentPage: number = 1;\n}\n\nexport default class WmList extends BaseComponent<WmListProps, WmListState, WmListStyles> {\n\n private itemWidgets = [] as any[];\n private selectedItemWidgets = {} as any;\n private keyExtractor = new DefaultKeyExtractor();\n \n constructor(props: WmListProps) {\n super(props, DEFAULT_CLASS, new WmListProps(), new WmListState());\n }\n\n private isSelected($item: any) {\n const selectedItem = this.state.props.selecteditem;\n if (isArray(selectedItem)) {\n return selectedItem.indexOf($item) >= 0;\n }\n return selectedItem === $item;\n }\n\n private onSelect($item: any, $index: number | string, triggerTapEvent = false) {\n const props = this.state.props;\n let selectedItem = null as any;\n if (props.disableitem !== true \n && (typeof props.disableitem !== 'function' || !props.disableitem($item, $index))) {\n if (props.multiselect) {\n selectedItem = [...(props.selecteditem || [])];\n const index = selectedItem.indexOf($item);\n if (index < 0) {\n if ((!props.selectionlimit)\n || props.selectionlimit < 0\n || selectedItem.length < props.selectionlimit) {\n selectedItem.push($item);\n } else {\n this.invokeEventCallback('onSelectionlimitexceed', [null, this]);\n }\n } else {\n selectedItem.splice(index, 1);\n }\n } else {\n if (props.selecteditem === $item) {\n selectedItem = null;\n } else {\n selectedItem = $item;\n }\n }\n this.selectedItemWidgets = this.itemWidgets[$index as number];\n this.updateState({\n props: { selecteditem: selectedItem },\n selectedindex: $index\n } as WmListState, () => {\n this.invokeEventCallback('onSelect', [this.proxy, $item]);\n triggerTapEvent && this.invokeEventCallback('onTap', [null, this.proxy]);\n });\n }\n }\n\n private selectFirstItem() {\n const props = this.state.props;\n if (this.initialized\n && props.dataset\n && props.dataset.length) {\n const index = props.groupby ? '00': 0;\n this.onSelect(props.dataset[0], index);\n }\n }\n \n clear(){\n this.updateState({\n groupedData: {},\n } as WmListState);\n }\n\n selectItem(item: any){\n const dataset = this.state.props.dataset;\n if(isNumber(item)){\n this.onSelect(dataset[item], item);\n }\n else{\n let index = dataset.indexOf(item);\n this.onSelect(dataset[index], index);\n }\n }\n\n getItem(index: number){\n const props = this.state.props;\n return this.props.dataset[index]\n }\n\n deselect(item: any){\n const props = this.state.props;\n let selectedItem = null as any;\n let index = isNumber(item)?item:props.dataset.indexOf(item);\n if(props.multiselect && index >= 0){\n selectedItem = [...(props.selecteditem || [])];\n let selectedItemIndex = selectedItem.indexOf(props.dataset[index])\n if(selectedItemIndex >= 0){\n selectedItem.splice(selectedItemIndex, 1);\n }\n }\n else{\n if (props.selecteditem === props.dataset[index]) {\n selectedItem = null;\n }\n }\n this.updateState({\n props: { selecteditem: selectedItem },\n \n } as WmListState);\n }\n \n getWidgets(widgetname: string, index: number){\n if(index >= 0 && index < this.itemWidgets.length){\n return this.itemWidgets[index][widgetname]\n }\n else{\n return this.itemWidgets.map(item => item[widgetname]).filter(widget => widget !== undefined);\n }\n }\n\n private deselectAll() {\n this.updateState({\n props: { selecteditem: null },\n selectedindex: -1\n } as WmListState);\n }\n\n setGroupData(items: any) {\n const dataItems = items;\n const props = this.state.props;\n if (props.groupby) {\n const groupedData = dataItems && getGroupedData(dataItems, props.groupby, props.match, props.orderby, props.dateformat, this);\n this.updateState({\n groupedData: groupedData\n } as WmListState, () => {\n this.keyExtractor?.clear();\n });\n }\n }\n\n public onPropertyChange(name: string, $new: any, $old: any) {\n super.onPropertyChange(name, $new, $old);\n const props = this.state.props;\n switch(name) {\n case 'selectfirstitem':\n if ($new) {\n this.selectFirstItem();\n }\n break;\n case 'dataset':\n if (this.state.props.groupby) {\n this.setGroupData($new);\n } else {\n const data = isArray($new) ? $new : (!isEmpty($new) && isDefined($new) ? [$new] : []);\n this.updateState({\n groupedData: (data[0] || props.direction === 'horizontal' ? [{\n key: '',\n data: data\n }] : [])\n } as WmListState, () => {\n this.keyExtractor?.clear();\n });\n }\n this.itemWidgets = [];\n if (props.selectfirstitem) {\n this.selectFirstItem();\n } else {\n this.deselectAll();\n }\n break;\n case 'groupby':\n case 'match':\n this.setGroupData(this.state.props.dataset);\n break;\n case 'multiselect':\n if ($new) {\n if (!isArray(this.state.props.selecteditem)) {\n this.state.props.selecteditem = this.state.props.selecteditem ? \n [this.state.props.selecteditem] : [];\n }\n } else if (isArray(this.state.props.selecteditem)) {\n this.state.props.selecteditem = this.state.props.selecteditem.pop();\n }\n break;\n case 'selecteditem':\n if($new != $old && isNumber($new)) {\n this.selectItem(this.state.props.dataset[$new])\n }\n break;\n }\n }\n\n componentDidMount() {\n const props = this.state.props;\n if (this.state.props.selectfirstitem && props.dataset?.length) {\n setTimeout(() => {\n this.onSelect(props.dataset[0], 0);\n });\n }\n super.componentDidMount();\n }\n\n componentDidUpdate(prevProps: WmListProps, prevState: WmListState, snapshot?: any) {\n super.componentDidUpdate && super.componentDidUpdate(prevProps, prevState, snapshot);\n this.invokeEventCallback('onRender', [this, this.state.props.dataset]);\n }\n\n getDefaultStyles() {\n const isHorizontal = this.state.props.direction === 'horizontal';\n return this.theme.getStyle(`${this.defaultClass} ${isHorizontal ? 'app-horizontal-list' : 'app-vertical-list'}`);\n }\n\n getIndex(item: any) {\n return this.state.props.dataset.indexOf(item);\n }\n\n private generateItemKey(item: any, index: number, props: WmListProps) {\n if (props.itemkey && item && !this._showSkeleton) {\n return props.itemkey(item, index);\n }\n return 'list_item_' + this.keyExtractor.getKey(item, true);\n }\n\n private renderItem(item: any, index: number, props: WmListProps) {\n const cols = this. getNoOfColumns();\n const isHorizontal = (props.direction === 'horizontal');\n return ( \n <Tappable\n {...this.getTestPropsForAction(`item${index}`)}\n onTap={() => this.onSelect(item, index, true)}\n onLongTap={() => this.invokeEventCallback('onLongtap', [null, this.proxy])}\n onDoubleTap={() => this.invokeEventCallback('onDoubletap', [null, this.proxy])}\n styles={\n [\n cols ? {\n width: round(100/cols, 2) + '%'\n } : null,\n cols || isHorizontal? {\n paddingRight: (isNil(this.styles.item.marginRight) \n ? this.styles.item.margin : this.styles.item.marginRight) || 4\n }: null\n ]\n }>\n <View style={[\n this.styles.item,\n props.itemclass ? this.theme.getStyle(props.itemclass(item, index)) : null,\n this.isSelected(item) ? this.styles.selectedItem : {}]}>\n { props.renderItem(item, index, this)}\n { this.isSelected(item) ? (\n <WmIcon id={this.getTestId('icon' + index)}iconclass='wi wi-check-circle' styles={this.styles.selectedIcon} />\n ) : null}\n </View>\n </Tappable>\n );\n }\n\n private renderHeader(props: WmListProps, title: string) {\n return props.groupby ? (\n <Text style={this.styles.groupHeading}>{title}</Text>\n ) : (props.iconclass || props.title || props.subheading) ? (\n <View style={this.styles.heading}>\n <View style={{flex: 1, flexDirection: 'row'}}>\n <WmIcon id={this.getTestId('icon')} styles={this.styles.listIcon} iconclass={props.iconclass}></WmIcon>\n <View>\n <WmLabel id={this.getTestId('title')} styles={this.styles.title} caption={props.title}></WmLabel>\n <WmLabel id={this.getTestId('subheading')} styles={this.styles.subheading} caption={props.subheading}></WmLabel>\n </View>\n </View>\n </View>) : null;\n }\n\n private renderEmptyMessage(isHorizontal: boolean, item: any, index: any, props: WmListProps) {\n return (<WmLabel id={this.getTestId('emptymsg')} styles={this.styles.emptyMessage} caption={props.nodatamessage}></WmLabel>);\n }\n\n private renderLoadingIcon(props: WmListProps) {\n return (<WmIcon\n id={this.getTestId('loadingicon')}\n styles={this.styles.loadingIcon}\n iconclass={props.loadingicon}\n caption={props.loadingdatamsg}></WmIcon>)\n }\n\n public getNoOfColumns() {\n const props = this.state.props;\n if(props.direction === 'vertical') {\n return props.itemsperrow.xs;\n }\n return 0;\n }\n\n private renderWithFlatList(props: WmListProps, isHorizontal = false) {\n return (\n <View style={this.styles.root}>\n {!isEmpty(this.state.groupedData) ? this.state.groupedData.map((v: any, i) => ((\n <View style={{marginBottom: 16}} key={v.key || this.keyExtractor.getKey(v, true)}>\n {this.renderHeader(props, v.key)}\n <FlatList\n key={props.name + '_' + (isHorizontal ? 'H' : 'V') + props.itemsperrow.xs}\n keyExtractor={(item, i) => this.generateItemKey(item, i, props)}\n horizontal = {isHorizontal}\n data={v.data || []}\n ListEmptyComponent = {(itemInfo) => this.renderEmptyMessage(isHorizontal, itemInfo.item, itemInfo.index, props)}\n renderItem={(itemInfo) => this.renderItem(itemInfo.item, itemInfo.index, props)} \n {...(isHorizontal ? {} : {numColumns : this.getNoOfColumns()})}> \n </FlatList>\n </View>\n ))) : this.renderEmptyMessage(isHorizontal, null, null,props)\n }\n </View>);\n }\n\n private getSectionListData() {\n if (this._showSkeleton) {\n return [{\n key: '',\n data: [{}, {}, {}]\n }];\n } else if (this.state.groupedData \n && this.state.groupedData[0] \n && this.state.groupedData[0]['data'].length) {\n return this.state.groupedData;\n }\n return [];\n }\n\n private renderWithSectionList(props: WmListProps, isHorizontal = false) { \n return (\n <SectionList\n keyExtractor={(item, i) => this.generateItemKey(item, i, props)}\n horizontal = {isHorizontal}\n onEndReached={({distanceFromEnd}) => {\n this.setState({ currentPage: this.state.currentPage + 1 } as WmListState);\n this.invokeEventCallback('onEndReached', [null, this]);\n }}\n contentContainerStyle={this.styles.root}\n onEndReachedThreshold={0.3}\n sections={this.getSectionListData()}\n renderSectionHeader={({ section: {key, data}}) => {\n return this.renderHeader(props, key);\n }}\n renderSectionFooter={() => props.loadingdata ? this.renderLoadingIcon(props) : null}\n ListEmptyComponent = {(itemInfo) => this.renderEmptyMessage(isHorizontal, itemInfo.item, itemInfo.index, props)}\n renderItem={(itemInfo) => this.renderItem(itemInfo.item, itemInfo.index, props)}>\n </SectionList>\n );\n }\n\n renderWidget(props: WmListProps) {\n this.invokeEventCallback('onBeforedatarender', [this, this.state.props.dataset]);\n const isHorizontal = (props.direction === 'horizontal');\n return (\n <View style={isHorizontal ? null : { width: '100%' }}>\n {this._background}\n {(isHorizontal || !props.groupby) ?\n this.renderWithFlatList(props, isHorizontal)\n : this.renderWithSectionList(props, isHorizontal)}\n </View>);\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
2
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
3
3
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
4
|
-
import { includes, intersection, isNaN, isFinite, toArray } from 'lodash';
|
|
4
|
+
import { includes, intersection, isNaN, isFinite, toArray, isNil } from 'lodash';
|
|
5
5
|
import { BaseComponent, BaseComponentState } from "@wavemaker/app-rn-runtime/core/base.component";
|
|
6
6
|
import { DEFAULT_CLASS } from "@wavemaker/app-rn-runtime/components/navigation/basenav/basenav.styles";
|
|
7
7
|
import { Platform } from 'react-native';
|
|
@@ -234,13 +234,13 @@ export class BaseNumberComponent extends BaseComponent {
|
|
|
234
234
|
*/
|
|
235
235
|
getValueInRange(value) {
|
|
236
236
|
const props = this.state.props;
|
|
237
|
-
if (!isNaN(props.minvalue) && value < props.minvalue) {
|
|
237
|
+
if (!isNil(null) && !isNaN(props.minvalue) && value < props.minvalue) {
|
|
238
238
|
this.updateState({
|
|
239
239
|
errorType: 'minvalue'
|
|
240
240
|
});
|
|
241
241
|
return props.minvalue;
|
|
242
242
|
}
|
|
243
|
-
if (!isNaN(props.maxvalue) && value > props.maxvalue) {
|
|
243
|
+
if (!isNil(null) && !isNaN(props.maxvalue) && value > props.maxvalue) {
|
|
244
244
|
this.updateState({
|
|
245
245
|
errorType: 'maxvalue'
|
|
246
246
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["includes","intersection","isNaN","isFinite","toArray","BaseComponent","BaseComponentState","DEFAULT_CLASS","Platform","countDecimalDigits","validateField","BaseNumberState","constructor","arguments","_defineProperty","BaseNumberComponent","props","defaultClass","length","undefined","defaultProps","defaultState","DECIMAL","GROUP","onChange","event","state","updateon","updateDatavalue","target","value","focus","_this$widgetRef","widgetRef","validateOnDevice","type","isCurrencyField","isValidText","test","Number","onChangeText","isValidTextOnDevice","decimalPlacesInNumber","decimalPlaces","updateState","textValue","validate","invokeChange","e","OS","cursor","selectionStart","setState","validationObj","isValid","errorType","handleValidation","regexp","condition","RegExp","parseNumber","val","parts","split","NaN","number","join","decimal","sum","parseFloat","toFixed","Object","is","source","model","toString","oldValue","datavalue","validNumber","isValidNumber","invokeEventCallback","proxy","onFieldChange","onBlur","newVal","setTimeout","triggerValidation","oldVal","onFocus","countDecimals","decimalValue","validateInputEntry","$event","ctrlKey","key","validity","inputValue","step","preventDefault","getValueInRange","minvalue","maxvalue","required","isInteger","resetValidations","onPropertyChange","name","$new","$old","isDefault","bind"],"sources":["basenumber.component.ts"],"sourcesContent":["import { includes, intersection, isNaN, isFinite, toArray } from 'lodash';\nimport BaseNumberProps from '@wavemaker/app-rn-runtime/components/input/basenumber/basenumber.props';\nimport { BaseComponent, BaseComponentState } from \"@wavemaker/app-rn-runtime/core/base.component\";\nimport { BaseNumberStyles } from '@wavemaker/app-rn-runtime/components/input/basenumber/basenumber.styles';\nimport { DEFAULT_CLASS } from \"@wavemaker/app-rn-runtime/components/navigation/basenav/basenav.styles\";\nimport { Platform, TextInput } from 'react-native';\nimport { countDecimalDigits, validateField } from '@wavemaker/app-rn-runtime/core/utils';\n\nexport class BaseNumberState <T extends BaseNumberProps> extends BaseComponentState<T> {\n isValid: boolean = true;\n textValue: string = '';\n isDefault = false;\n errorType = '';\n}\n\nexport abstract class BaseNumberComponent< T extends BaseNumberProps, S extends BaseNumberState<T>, L extends BaseNumberStyles> extends BaseComponent<T, S, L> {\n private DECIMAL;\n private GROUP;\n public widgetRef: TextInput | null = null;\n private cursor: any = 0;\n constructor(props: T, public defaultClass: string = DEFAULT_CLASS, defaultProps?: T, defaultState?: S) {\n super(props, defaultClass, defaultProps, defaultState);\n this.DECIMAL = '.';\n this.GROUP = ',';\n }\n\n onChange(event: any) {\n if (this.state.props.updateon === 'default') {\n this.updateDatavalue(event.target.value, event);\n }\n }\n\n focus() {\n this?.widgetRef?.focus();\n }\n\n validateOnDevice(value: string, type: 'number' | 'currency') {\n const isCurrencyField = type === 'currency';\n let isValidText = true;\n\n // * check for alphabets\n if (/[a-zA-Z]/.test(value)) {\n isValidText = false;\n }\n\n // * currency only: check for negative number\n if (isCurrencyField && (Number(value) < 0 || /-/g.test(value))) {\n isValidText = false;\n }\n\n // * check for more than one decimal point\n if (/^\\d*\\.\\d*\\..*$/.test(value)) {\n isValidText = false;\n }\n\n // * check for spaces and comma\n if (/[\\s,]/.test(value)) {\n isValidText = false;\n }\n\n return isValidText;\n }\n\n onChangeText(value: string, type: 'number' | 'currency') {\n const isValidTextOnDevice = this.validateOnDevice(value, type);\n if (!isValidTextOnDevice) {\n return;\n }\n\n const decimalPlacesInNumber = countDecimalDigits(value);\n\n if (this.props.decimalPlaces < decimalPlacesInNumber) {\n return;\n }\n\n this.updateState({\n textValue: value\n } as S, () => {\n if (this.state.props.updateon === 'default') {\n this.validate(value);\n this.updateDatavalue(value, null);\n }\n }\n );\n }\n\n invokeChange(e: any) {\n if (Platform.OS === 'web') {\n this.cursor = e.target.selectionStart;\n this.setState({ textValue: e.target.value });\n }\n }\n\n validate(value: any) {\n const validationObj = validateField(this.state.props, value);\n this.updateState({\n isValid: validationObj.isValid,\n errorType: validationObj.errorType\n } as S);\n\n }\n\n handleValidation(value: any) {\n const props = this.state.props;\n if (props.regexp) {\n const condition = new RegExp(props.regexp, 'g');\n return condition.test(value);\n }\n return true;\n }\n\n /**\n * Method parses the Localized number(string) to a valid number.\n * if the string dose not result to a valid number then returns NaN.\n * @param {string} val Localized number.\n * @returns {number}\n */\n private parseNumber(val: string): any {\n // splits string into two parts. decimal and number.\n const parts = val.split(this.DECIMAL);\n if (!parts.length) {\n return;\n }\n if (parts.length > 2) {\n return NaN;\n }\n // If number have decimal point and not have a decimal value then return.\n if (parts[1] === '') {\n return NaN;\n }\n // replaces all group separators form the number.\n const number = Number(parts[0].split(this.GROUP).join(''));\n const decimal = Number(`0.${parts[1] || 0}`);\n if (Number.isNaN(number) || Number.isNaN(decimal)) {\n return NaN;\n }\n const sum = parts.length > 1 ? parseFloat((number + decimal).toFixed(parts[1].length)) : number + decimal;\n // if the number is negative then calculate the number as number - decimal\n // Ex: number = -123 and decimal = 0.45 then number - decimal = -123-045 = -123.45\n // If entered number is -0.1 to -0.9 then the number is -0 and decimal is 0.1 to 0.9. Now calaculate the number as number-decimal\n // Ex: number = -0 and decimal = 0.1 then number-decimal = -0-0.1 = -0.1\n if (number === 0) {\n return Object.is(0, number) ? sum : number - decimal;\n }\n return number > 0 ? sum : number - decimal;\n }\n\n updateDatavalue(value: any, event?: any, source?: any) {\n const model = value && this.parseNumber(value.toString());\n const props = this.state.props;\n const oldValue = props.datavalue;\n if (value === oldValue) {\n return;\n }\n const validNumber = this.isValidNumber(model);\n if (!validNumber) {\n this.invokeEventCallback('onError', [ event, this.proxy, value, oldValue ]);\n return;\n }\n\n this.updateState({\n props: {\n datavalue: model\n }\n } as S, () => {\n !this.props.onFieldChange && value !== oldValue && this.invokeEventCallback('onChange', [event, this.proxy, value, oldValue]);\n if (source === 'blur') {\n this.invokeEventCallback('onBlur', [event, this.proxy]);\n }\n });\n }\n\n onBlur(event: any) {\n let newVal = event.target.value || this.state.textValue;\n this.validate(newVal);\n if (newVal === '') {\n setTimeout(() => {\n this.props.triggerValidation && this.props.triggerValidation();\n })\n }\n if (this.state.props.updateon === 'blur') {\n let oldVal = this.state.props.datavalue || '';\n if (oldVal !== newVal) {\n this.updateDatavalue(newVal, event, 'blur');\n } else {\n this.invokeEventCallback('onBlur', [event, this.proxy]);\n }\n }\n }\n\n onFocus(event: any) {\n this.invokeEventCallback('onFocus', [ event, this.proxy]);\n }\n\n /**\n * returns the number of decimal places a number have.\n * @param value: number\n * @returns {number}\n */\n private countDecimals(value: any) {\n if (value && ((value % 1) !== 0)) {\n const decimalValue = value.toString().split('.')[1];\n return decimalValue && decimalValue.length;\n }\n return 0;\n }\n\n public validateInputEntry($event: any) {\n const props = this.state.props;\n\n // allow actions if control key is pressed or if backspace is pressed. (for Mozilla).\n if ($event.ctrlKey || includes(['Backspace', 'ArrowRight', 'ArrowLeft', 'Tab', 'Enter', 'Delete'], $event.key)) {\n return;\n }\n\n const validity = new RegExp(`^[\\\\d\\\\s-,.e+${this.GROUP}${this.DECIMAL}]$`, 'i');\n const inputValue = $event.target.value;\n // validates entering of decimal values only when user provides decimal limit(i.e step contains decimal values).\n if (inputValue && this.countDecimals(props.step) && (this.countDecimals(inputValue) >= this.countDecimals(props.step))) {\n $event.preventDefault();\n }\n // validates if user entered an invalid character.\n if (!validity.test($event.key)) {\n $event.preventDefault();\n }\n // a decimal value can be entered only once in the input.\n if (includes(inputValue, this.DECIMAL) && $event.key === this.DECIMAL) {\n $event.preventDefault();\n }\n // 'e' can be entered only once in the input.\n if (intersection(toArray(inputValue), ['e', 'E']).length && includes('eE', $event.key)) {\n $event.preventDefault();\n }\n if ((includes(inputValue, '+') || includes(inputValue, '-')) && ($event.key === '+' || $event.key === '-')) {\n $event.preventDefault();\n }\n this.invokeEventCallback('onKeypress', [ $event, this.proxy]);\n }\n\n /**\n * returns a valid number by validating the minimum and maximum values.\n * @param {number} value\n * @returns {number}\n */\n private getValueInRange(value: number): number {\n const props = this.state.props;\n if (!isNaN(props.minvalue) && value < props.minvalue) {\n this.updateState({ errorType: 'minvalue'} as S);\n return props.minvalue;\n\n }\n if (!isNaN(props.maxvalue) && value > props.maxvalue) {\n this.updateState({ errorType: 'maxvalue'} as S);\n return props.maxvalue;\n }\n return value;\n }\n\n /**\n * Adds validations for the number before updating the widget model. like validating min and max value for the widget.\n * @param {number} val number to be validated\n * @returns {number}\n */\n private isValidNumber(val: number): boolean {\n const props = this.state.props;\n\n //empty number widget should not show validation error when required is false\n // @ts-ignore\n if (this.state.props.required === false && val === '') {\n return true;\n }\n // id number is infinite then consider it as invalid value\n if (isNaN(val) || !isFinite(val) || (!Number.isInteger(props.step) &&\n this.countDecimals(val) > this.countDecimals(props.step))) {\n this.updateState({\n isValid: false,\n } as S);\n return false;\n }\n if (val !== this.getValueInRange(val)) {\n this.updateState({\n isValid: false,\n } as S);\n return true;\n }\n this.resetValidations();\n return true;\n }\n\n // resets all the flags related to the widget's validation.\n protected resetValidations() {\n this.updateState({\n isValid: true,\n } as S);\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n switch (name) {\n case 'minvalue':\n case 'maxvalue':\n if ($new|| $old) {\n this.isValidNumber($new);\n }\n break;\n case 'datavalue':\n this.updateState({\n textValue: $new,\n } as S);\n const isDefault = this.state.isDefault;\n if (isDefault) {\n this.updateState({ isDefault: false } as S, this.props.onFieldChange && this.props.onFieldChange.bind(this, 'datavalue', $new, $old, isDefault));\n } else {\n this.props.onFieldChange && this.props.onFieldChange('datavalue', $new, $old, isDefault);\n }\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["includes","intersection","isNaN","isFinite","toArray","isNil","BaseComponent","BaseComponentState","DEFAULT_CLASS","Platform","countDecimalDigits","validateField","BaseNumberState","constructor","arguments","_defineProperty","BaseNumberComponent","props","defaultClass","length","undefined","defaultProps","defaultState","DECIMAL","GROUP","onChange","event","state","updateon","updateDatavalue","target","value","focus","_this$widgetRef","widgetRef","validateOnDevice","type","isCurrencyField","isValidText","test","Number","onChangeText","isValidTextOnDevice","decimalPlacesInNumber","decimalPlaces","updateState","textValue","validate","invokeChange","e","OS","cursor","selectionStart","setState","validationObj","isValid","errorType","handleValidation","regexp","condition","RegExp","parseNumber","val","parts","split","NaN","number","join","decimal","sum","parseFloat","toFixed","Object","is","source","model","toString","oldValue","datavalue","validNumber","isValidNumber","invokeEventCallback","proxy","onFieldChange","onBlur","newVal","setTimeout","triggerValidation","oldVal","onFocus","countDecimals","decimalValue","validateInputEntry","$event","ctrlKey","key","validity","inputValue","step","preventDefault","getValueInRange","minvalue","maxvalue","required","isInteger","resetValidations","onPropertyChange","name","$new","$old","isDefault","bind"],"sources":["basenumber.component.ts"],"sourcesContent":["import { includes, intersection, isNaN, isFinite, toArray, isNil } from 'lodash';\nimport BaseNumberProps from '@wavemaker/app-rn-runtime/components/input/basenumber/basenumber.props';\nimport { BaseComponent, BaseComponentState } from \"@wavemaker/app-rn-runtime/core/base.component\";\nimport { BaseNumberStyles } from '@wavemaker/app-rn-runtime/components/input/basenumber/basenumber.styles';\nimport { DEFAULT_CLASS } from \"@wavemaker/app-rn-runtime/components/navigation/basenav/basenav.styles\";\nimport { Platform, TextInput } from 'react-native';\nimport { countDecimalDigits, validateField } from '@wavemaker/app-rn-runtime/core/utils';\n\nexport class BaseNumberState <T extends BaseNumberProps> extends BaseComponentState<T> {\n isValid: boolean = true;\n textValue: string = '';\n isDefault = false;\n errorType = '';\n}\n\nexport abstract class BaseNumberComponent< T extends BaseNumberProps, S extends BaseNumberState<T>, L extends BaseNumberStyles> extends BaseComponent<T, S, L> {\n private DECIMAL;\n private GROUP;\n public widgetRef: TextInput | null = null;\n private cursor: any = 0;\n constructor(props: T, public defaultClass: string = DEFAULT_CLASS, defaultProps?: T, defaultState?: S) {\n super(props, defaultClass, defaultProps, defaultState);\n this.DECIMAL = '.';\n this.GROUP = ',';\n }\n\n onChange(event: any) {\n if (this.state.props.updateon === 'default') {\n this.updateDatavalue(event.target.value, event);\n }\n }\n\n focus() {\n this?.widgetRef?.focus();\n }\n\n validateOnDevice(value: string, type: 'number' | 'currency') {\n const isCurrencyField = type === 'currency';\n let isValidText = true;\n\n // * check for alphabets\n if (/[a-zA-Z]/.test(value)) {\n isValidText = false;\n }\n\n // * currency only: check for negative number\n if (isCurrencyField && (Number(value) < 0 || /-/g.test(value))) {\n isValidText = false;\n }\n\n // * check for more than one decimal point\n if (/^\\d*\\.\\d*\\..*$/.test(value)) {\n isValidText = false;\n }\n\n // * check for spaces and comma\n if (/[\\s,]/.test(value)) {\n isValidText = false;\n }\n\n return isValidText;\n }\n\n onChangeText(value: string, type: 'number' | 'currency') {\n const isValidTextOnDevice = this.validateOnDevice(value, type);\n if (!isValidTextOnDevice) {\n return;\n }\n\n const decimalPlacesInNumber = countDecimalDigits(value);\n\n if (this.props.decimalPlaces < decimalPlacesInNumber) {\n return;\n }\n\n this.updateState({\n textValue: value\n } as S, () => {\n if (this.state.props.updateon === 'default') {\n this.validate(value);\n this.updateDatavalue(value, null);\n }\n }\n );\n }\n\n invokeChange(e: any) {\n if (Platform.OS === 'web') {\n this.cursor = e.target.selectionStart;\n this.setState({ textValue: e.target.value });\n }\n }\n\n validate(value: any) {\n const validationObj = validateField(this.state.props, value);\n this.updateState({\n isValid: validationObj.isValid,\n errorType: validationObj.errorType\n } as S);\n\n }\n\n handleValidation(value: any) {\n const props = this.state.props;\n if (props.regexp) {\n const condition = new RegExp(props.regexp, 'g');\n return condition.test(value);\n }\n return true;\n }\n\n /**\n * Method parses the Localized number(string) to a valid number.\n * if the string dose not result to a valid number then returns NaN.\n * @param {string} val Localized number.\n * @returns {number}\n */\n private parseNumber(val: string): any {\n // splits string into two parts. decimal and number.\n const parts = val.split(this.DECIMAL);\n if (!parts.length) {\n return;\n }\n if (parts.length > 2) {\n return NaN;\n }\n // If number have decimal point and not have a decimal value then return.\n if (parts[1] === '') {\n return NaN;\n }\n // replaces all group separators form the number.\n const number = Number(parts[0].split(this.GROUP).join(''));\n const decimal = Number(`0.${parts[1] || 0}`);\n if (Number.isNaN(number) || Number.isNaN(decimal)) {\n return NaN;\n }\n const sum = parts.length > 1 ? parseFloat((number + decimal).toFixed(parts[1].length)) : number + decimal;\n // if the number is negative then calculate the number as number - decimal\n // Ex: number = -123 and decimal = 0.45 then number - decimal = -123-045 = -123.45\n // If entered number is -0.1 to -0.9 then the number is -0 and decimal is 0.1 to 0.9. Now calaculate the number as number-decimal\n // Ex: number = -0 and decimal = 0.1 then number-decimal = -0-0.1 = -0.1\n if (number === 0) {\n return Object.is(0, number) ? sum : number - decimal;\n }\n return number > 0 ? sum : number - decimal;\n }\n\n updateDatavalue(value: any, event?: any, source?: any) {\n const model = value && this.parseNumber(value.toString());\n const props = this.state.props;\n const oldValue = props.datavalue;\n if (value === oldValue) {\n return;\n }\n const validNumber = this.isValidNumber(model);\n if (!validNumber) {\n this.invokeEventCallback('onError', [ event, this.proxy, value, oldValue ]);\n return;\n }\n\n this.updateState({\n props: {\n datavalue: model\n }\n } as S, () => {\n !this.props.onFieldChange && value !== oldValue && this.invokeEventCallback('onChange', [event, this.proxy, value, oldValue]);\n if (source === 'blur') {\n this.invokeEventCallback('onBlur', [event, this.proxy]);\n }\n });\n }\n\n onBlur(event: any) {\n let newVal = event.target.value || this.state.textValue;\n this.validate(newVal);\n if (newVal === '') {\n setTimeout(() => {\n this.props.triggerValidation && this.props.triggerValidation();\n })\n }\n if (this.state.props.updateon === 'blur') {\n let oldVal = this.state.props.datavalue || '';\n if (oldVal !== newVal) {\n this.updateDatavalue(newVal, event, 'blur');\n } else {\n this.invokeEventCallback('onBlur', [event, this.proxy]);\n }\n }\n }\n\n onFocus(event: any) {\n this.invokeEventCallback('onFocus', [ event, this.proxy]);\n }\n\n /**\n * returns the number of decimal places a number have.\n * @param value: number\n * @returns {number}\n */\n private countDecimals(value: any) {\n if (value && ((value % 1) !== 0)) {\n const decimalValue = value.toString().split('.')[1];\n return decimalValue && decimalValue.length;\n }\n return 0;\n }\n\n public validateInputEntry($event: any) {\n const props = this.state.props;\n\n // allow actions if control key is pressed or if backspace is pressed. (for Mozilla).\n if ($event.ctrlKey || includes(['Backspace', 'ArrowRight', 'ArrowLeft', 'Tab', 'Enter', 'Delete'], $event.key)) {\n return;\n }\n\n const validity = new RegExp(`^[\\\\d\\\\s-,.e+${this.GROUP}${this.DECIMAL}]$`, 'i');\n const inputValue = $event.target.value;\n // validates entering of decimal values only when user provides decimal limit(i.e step contains decimal values).\n if (inputValue && this.countDecimals(props.step) && (this.countDecimals(inputValue) >= this.countDecimals(props.step))) {\n $event.preventDefault();\n }\n // validates if user entered an invalid character.\n if (!validity.test($event.key)) {\n $event.preventDefault();\n }\n // a decimal value can be entered only once in the input.\n if (includes(inputValue, this.DECIMAL) && $event.key === this.DECIMAL) {\n $event.preventDefault();\n }\n // 'e' can be entered only once in the input.\n if (intersection(toArray(inputValue), ['e', 'E']).length && includes('eE', $event.key)) {\n $event.preventDefault();\n }\n if ((includes(inputValue, '+') || includes(inputValue, '-')) && ($event.key === '+' || $event.key === '-')) {\n $event.preventDefault();\n }\n this.invokeEventCallback('onKeypress', [ $event, this.proxy]);\n }\n\n /**\n * returns a valid number by validating the minimum and maximum values.\n * @param {number} value\n * @returns {number}\n */\n private getValueInRange(value: number): number {\n const props = this.state.props;\n if (!isNil(null) && !isNaN(props.minvalue) && value < props.minvalue) {\n this.updateState({ errorType: 'minvalue'} as S);\n return props.minvalue;\n\n }\n if (!isNil(null) && !isNaN(props.maxvalue) && value > props.maxvalue) {\n this.updateState({ errorType: 'maxvalue'} as S);\n return props.maxvalue;\n }\n return value;\n }\n\n /**\n * Adds validations for the number before updating the widget model. like validating min and max value for the widget.\n * @param {number} val number to be validated\n * @returns {number}\n */\n private isValidNumber(val: number): boolean {\n const props = this.state.props;\n\n //empty number widget should not show validation error when required is false\n // @ts-ignore\n if (this.state.props.required === false && val === '') {\n return true;\n }\n // id number is infinite then consider it as invalid value\n if (isNaN(val) || !isFinite(val) || (!Number.isInteger(props.step) &&\n this.countDecimals(val) > this.countDecimals(props.step))) {\n this.updateState({\n isValid: false,\n } as S);\n return false;\n }\n if (val !== this.getValueInRange(val)) {\n this.updateState({\n isValid: false,\n } as S);\n return true;\n }\n this.resetValidations();\n return true;\n }\n\n // resets all the flags related to the widget's validation.\n protected resetValidations() {\n this.updateState({\n isValid: true,\n } as S);\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n switch (name) {\n case 'minvalue':\n case 'maxvalue':\n if ($new|| $old) {\n this.isValidNumber($new);\n }\n break;\n case 'datavalue':\n this.updateState({\n textValue: $new,\n } as S);\n const isDefault = this.state.isDefault;\n if (isDefault) {\n this.updateState({ isDefault: false } as S, this.props.onFieldChange && this.props.onFieldChange.bind(this, 'datavalue', $new, $old, isDefault));\n } else {\n this.props.onFieldChange && this.props.onFieldChange('datavalue', $new, $old, isDefault);\n }\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -32,6 +32,14 @@ export default class WmCurrency extends BaseNumberComponent {
|
|
|
32
32
|
break;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
+
getStyleClassName() {
|
|
36
|
+
const classes = [];
|
|
37
|
+
if (this.state.props.floatinglabel) {
|
|
38
|
+
classes.push('app-currency-with-label');
|
|
39
|
+
}
|
|
40
|
+
classes.push(super.getStyleClassName());
|
|
41
|
+
return classes.join(' ');
|
|
42
|
+
}
|
|
35
43
|
renderWidget(props) {
|
|
36
44
|
var _this$state$textValue;
|
|
37
45
|
let opts = {};
|
|
@@ -43,7 +51,11 @@ export default class WmCurrency extends BaseNumberComponent {
|
|
|
43
51
|
style: this.styles.labelWrapper
|
|
44
52
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
45
53
|
style: this.styles.label
|
|
46
|
-
}, this.state.currencySymbol)), /*#__PURE__*/React.createElement(
|
|
54
|
+
}, this.state.currencySymbol)), /*#__PURE__*/React.createElement(View, {
|
|
55
|
+
style: {
|
|
56
|
+
flex: 1
|
|
57
|
+
}
|
|
58
|
+
}, /*#__PURE__*/React.createElement(WMTextInput, _extends({}, this.getTestPropsForInput(), {
|
|
47
59
|
ref: ref => {
|
|
48
60
|
this.widgetRef = ref;
|
|
49
61
|
// @ts-ignore
|
|
@@ -56,6 +68,9 @@ export default class WmCurrency extends BaseNumberComponent {
|
|
|
56
68
|
placeholderTextColor: this.styles.placeholderText.color,
|
|
57
69
|
style: [this.styles.input, this.styles.text, this.state.isValid ? {} : this.styles.invalid]
|
|
58
70
|
}, opts, {
|
|
71
|
+
floatingLabel: props.floatinglabel,
|
|
72
|
+
floatingLabelStyle: this.styles.floatingLabel,
|
|
73
|
+
activeFloatingLabelStyle: this.styles.activeFloatingLabel,
|
|
59
74
|
editable: props.disabled || props.readonly ? false : true,
|
|
60
75
|
placeholder: props.placeholder,
|
|
61
76
|
value: this.state.textValue,
|
|
@@ -67,7 +82,7 @@ export default class WmCurrency extends BaseNumberComponent {
|
|
|
67
82
|
},
|
|
68
83
|
onChange: this.invokeChange.bind(this),
|
|
69
84
|
allowContentSelection: this.styles.text.userSelect === 'text'
|
|
70
|
-
})));
|
|
85
|
+
}))));
|
|
71
86
|
}
|
|
72
87
|
}
|
|
73
88
|
//# sourceMappingURL=currency.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","Text","Platform","WmCurrencyProps","CURRENCY_INFO","WMTextInput","DEFAULT_CLASS","BaseNumberComponent","BaseNumberState","isNull","WmCurrencyState","constructor","arguments","_defineProperty","WmCurrency","props","onPropertyChange","name","$new","$old","updateState","currencySymbol","symbol","renderWidget","_this$state$textValue","opts","valueExpr","OS","
|
|
1
|
+
{"version":3,"names":["React","View","Text","Platform","WmCurrencyProps","CURRENCY_INFO","WMTextInput","DEFAULT_CLASS","BaseNumberComponent","BaseNumberState","isNull","WmCurrencyState","constructor","arguments","_defineProperty","WmCurrency","props","onPropertyChange","name","$new","$old","updateState","currencySymbol","symbol","getStyleClassName","classes","state","floatinglabel","push","join","renderWidget","_this$state$textValue","opts","valueExpr","OS","textValue","toString","createElement","style","styles","root","labelWrapper","label","flex","_extends","getTestPropsForInput","ref","widgetRef","selectionStart","selectionEnd","cursor","keyboardType","placeholderTextColor","placeholderText","color","input","text","isValid","invalid","floatingLabel","floatingLabelStyle","activeFloatingLabelStyle","activeFloatingLabel","editable","disabled","readonly","placeholder","value","onBlur","bind","onFocus","onKeyPress","validateInputEntry","onChangeText","onChange","invokeChange","allowContentSelection","userSelect"],"sources":["currency.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Text, Platform } from 'react-native';\n\nimport WmCurrencyProps from './currency.props';\nimport { CURRENCY_INFO } from '@wavemaker/app-rn-runtime/core/currency-constants';\nimport { WMTextInput } from '@wavemaker/app-rn-runtime/core/components/textinput.component';\nimport { DEFAULT_CLASS, WmCurrencyStyles } from './currency.styles';\nimport {\n BaseNumberComponent,\n BaseNumberState\n} from '@wavemaker/app-rn-runtime/components/input/basenumber/basenumber.component';\nimport { isNull } from \"lodash\";\nexport class WmCurrencyState extends BaseNumberState<WmCurrencyProps> {\n currencySymbol: any;\n}\n\nexport default class WmCurrency extends BaseNumberComponent<WmCurrencyProps, WmCurrencyState, WmCurrencyStyles> {\n\n constructor(props: WmCurrencyProps) {\n super(props, DEFAULT_CLASS, new WmCurrencyProps(), new WmCurrencyState());\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n super.onPropertyChange(name, $new, $old);\n switch (name) {\n case 'currency':\n if ($new) {\n this.updateState({\n currencySymbol: CURRENCY_INFO[$new].symbol,\n } as WmCurrencyState);\n }\n break;\n\n }\n }\n\n public getStyleClassName(): string | undefined {\n const classes = [];\n if (this.state.props.floatinglabel) {\n classes.push('app-currency-with-label'); \n }\n classes.push(super.getStyleClassName());\n return classes.join(' ');\n }\n\n renderWidget(props: WmCurrencyProps) {\n let opts: any = {};\n const valueExpr = Platform.OS === 'web' ? 'value' : 'defaultValue';\n opts[valueExpr] = this.state.textValue?.toString() || '';\n return (<View style={this.styles.root}>\n <View style={this.styles.labelWrapper}>\n <Text style={this.styles.label}>{this.state.currencySymbol}</Text>\n </View>\n <View style={{flex: 1}}>\n <WMTextInput\n {...this.getTestPropsForInput()}\n ref={(ref: any) => {\n this.widgetRef = ref;\n // @ts-ignore\n if (ref && !isNull(ref.selectionStart) && !isNull(ref.selectionEnd)) {\n // @ts-ignore\n ref.selectionStart = ref.selectionEnd = this.cursor;\n }\n }}\n keyboardType=\"numeric\"\n placeholderTextColor={this.styles.placeholderText.color as any}\n style={[this.styles.input, this.styles.text, this.state.isValid ? {} : this.styles.invalid]}\n {...opts}\n floatingLabel={props.floatinglabel}\n floatingLabelStyle={this.styles.floatingLabel}\n activeFloatingLabelStyle={this.styles.activeFloatingLabel}\n editable={props.disabled || props.readonly ? false : true}\n placeholder={props.placeholder}\n value={this.state.textValue}\n onBlur={this.onBlur.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onKeyPress={this.validateInputEntry.bind(this)}\n onChangeText={(text) => {\n this.onChangeText.bind(this)(text, 'currency');\n }}\n onChange={this.invokeChange.bind(this)}\n allowContentSelection={this.styles.text.userSelect === 'text'}\n />\n </View>\n </View>);\n }\n}\n"],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export default class WmCurrencyProps extends BaseNumberProps {
|
|
|
7
7
|
super(...arguments);
|
|
8
8
|
_defineProperty(this, "currency", void 0);
|
|
9
9
|
_defineProperty(this, "placeholder", '');
|
|
10
|
+
_defineProperty(this, "floatinglabel", void 0);
|
|
10
11
|
}
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=currency.props.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseNumberProps","WmCurrencyProps","constructor","arguments","_defineProperty"],"sources":["currency.props.ts"],"sourcesContent":["import BaseNumberProps from '@wavemaker/app-rn-runtime/components/input/basenumber/basenumber.props';\n\nexport default class WmCurrencyProps extends BaseNumberProps {\n currency: any;\n placeholder: string = '';\n}\n"],"mappings":";;;AAAA,OAAOA,eAAe,MAAM,wEAAwE;AAEpG,eAAe,MAAMC,eAAe,SAASD,eAAe,CAAC;EAAAE,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA;IAAAA,eAAA,sBAErC,EAAE;EAAA;
|
|
1
|
+
{"version":3,"names":["BaseNumberProps","WmCurrencyProps","constructor","arguments","_defineProperty"],"sources":["currency.props.ts"],"sourcesContent":["import BaseNumberProps from '@wavemaker/app-rn-runtime/components/input/basenumber/basenumber.props';\n\nexport default class WmCurrencyProps extends BaseNumberProps {\n currency: any;\n placeholder: string = '';\n floatinglabel?: string;\n}\n"],"mappings":";;;AAAA,OAAOA,eAAe,MAAM,wEAAwE;AAEpG,eAAe,MAAMC,eAAe,SAASD,eAAe,CAAC;EAAAE,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA;IAAAA,eAAA,sBAErC,EAAE;IAAAA,eAAA;EAAA;AAE1B"}
|
|
@@ -52,7 +52,9 @@ BASE_THEME.registerStyle((themeVariables, addStyle) => {
|
|
|
52
52
|
},
|
|
53
53
|
placeholderText: {
|
|
54
54
|
color: themeVariables.inputPlaceholderColor
|
|
55
|
-
}
|
|
55
|
+
},
|
|
56
|
+
floatingLabel: {},
|
|
57
|
+
activeFloatingLabel: {}
|
|
56
58
|
});
|
|
57
59
|
addStyle(DEFAULT_CLASS, '', defaultStyles);
|
|
58
60
|
addStyle(DEFAULT_CLASS + '-rtl', '', Platform.OS == "web" ? {
|
|
@@ -68,5 +70,21 @@ BASE_THEME.registerStyle((themeVariables, addStyle) => {
|
|
|
68
70
|
backgroundColor: themeVariables.inputDisabledBgColor
|
|
69
71
|
}
|
|
70
72
|
});
|
|
73
|
+
addStyle(DEFAULT_CLASS + '-with-label', '', {
|
|
74
|
+
root: {
|
|
75
|
+
minHeight: 48
|
|
76
|
+
},
|
|
77
|
+
floatingLabel: {
|
|
78
|
+
position: 'absolute',
|
|
79
|
+
top: 12,
|
|
80
|
+
left: 16,
|
|
81
|
+
fontSize: 14,
|
|
82
|
+
textAlign: 'left',
|
|
83
|
+
color: themeVariables.floatingLabelColor
|
|
84
|
+
},
|
|
85
|
+
activeFloatingLabel: {
|
|
86
|
+
color: themeVariables.activeFloatingLabelColor
|
|
87
|
+
}
|
|
88
|
+
});
|
|
71
89
|
});
|
|
72
90
|
//# sourceMappingURL=currency.styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BASE_THEME","defineStyles","Platform","DEFAULT_CLASS","registerStyle","themeVariables","addStyle","defaultStyles","root","minHeight","borderWidth","borderStyle","borderColor","inputBorderColor","backgroundColor","inputBackgroundColor","borderRadius","flexDirection","text","fontSize","input","paddingTop","paddingBottom","paddingLeft","paddingRight","flex","transparent","labelWrapper","primaryColor","borderTopLeftRadius","borderBottomLeftRadius","width","label","marginVertical","color","primaryContrastColor","textAlignVertical","textAlign","fontWeight","fontFamily","baseFont","invalid","borderBottomColor","inputInvalidBorderColor","placeholderText","inputPlaceholderColor","OS","borderTopRightRadius","borderBottomRightRadius","inputDisabledBgColor"],"sources":["currency.styles.ts"],"sourcesContent":["import BASE_THEME, { AllStyle } from '@wavemaker/app-rn-runtime/styles/theme';\nimport { BaseStyles, defineStyles } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { Platform } from 'react-native';\n\nexport type WmCurrencyStyles = BaseStyles & {\n label: AllStyle;\n invalid: AllStyle;\n placeholderText: AllStyle;\n};\n\nexport const DEFAULT_CLASS = 'app-currency';\nBASE_THEME.registerStyle((themeVariables, addStyle) => {\n const defaultStyles: WmCurrencyStyles = defineStyles({\n root: {\n minHeight: 42,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: themeVariables.inputBorderColor,\n backgroundColor: themeVariables.inputBackgroundColor,\n borderRadius: 6,\n flexDirection: 'row'\n },\n text: {\n fontSize: 16\n },\n input : {\n minHeight: 42,\n paddingTop: 8,\n paddingBottom: 8,\n paddingLeft: 16,\n paddingRight: 16,\n flex: 1,\n borderWidth: 1,\n borderColor: themeVariables.transparent,\n borderStyle: 'solid'\n },\n labelWrapper: {\n minHeight: 42,\n backgroundColor: themeVariables.primaryColor,\n borderTopLeftRadius: 6,\n borderBottomLeftRadius: 6,\n width: 48,\n paddingTop: 8,\n paddingBottom: 8,\n paddingLeft: 16,\n paddingRight: 16\n },\n label: {\n marginVertical: 0.7,\n color: themeVariables.primaryContrastColor,\n textAlignVertical: 'center',\n textAlign: 'center',\n fontWeight: 'bold',\n fontFamily: themeVariables.baseFont,\n fontSize: 16\n },\n invalid: {\n borderBottomColor: themeVariables.inputInvalidBorderColor\n },\n placeholderText: {\n color: themeVariables.inputPlaceholderColor\n }\n });\n\n addStyle(DEFAULT_CLASS, '', defaultStyles);\n addStyle(DEFAULT_CLASS + '-rtl', '', Platform.OS==\"web\"?{\n labelWrapper:{\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n borderTopRightRadius: 6,\n borderBottomRightRadius: 6,\n }\n }:{});\n addStyle(DEFAULT_CLASS + '-disabled', '', {\n root : {\n backgroundColor: themeVariables.inputDisabledBgColor\n }\n });\n});"],"mappings":"AAAA,OAAOA,UAAU,MAAoB,wCAAwC;AAC7E,SAAqBC,YAAY,QAAQ,+CAA+C;AACxF,SAASC,QAAQ,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["BASE_THEME","defineStyles","Platform","DEFAULT_CLASS","registerStyle","themeVariables","addStyle","defaultStyles","root","minHeight","borderWidth","borderStyle","borderColor","inputBorderColor","backgroundColor","inputBackgroundColor","borderRadius","flexDirection","text","fontSize","input","paddingTop","paddingBottom","paddingLeft","paddingRight","flex","transparent","labelWrapper","primaryColor","borderTopLeftRadius","borderBottomLeftRadius","width","label","marginVertical","color","primaryContrastColor","textAlignVertical","textAlign","fontWeight","fontFamily","baseFont","invalid","borderBottomColor","inputInvalidBorderColor","placeholderText","inputPlaceholderColor","floatingLabel","activeFloatingLabel","OS","borderTopRightRadius","borderBottomRightRadius","inputDisabledBgColor","position","top","left","floatingLabelColor","activeFloatingLabelColor"],"sources":["currency.styles.ts"],"sourcesContent":["import BASE_THEME, { AllStyle } from '@wavemaker/app-rn-runtime/styles/theme';\nimport { BaseStyles, defineStyles } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { Platform } from 'react-native';\n\nexport type WmCurrencyStyles = BaseStyles & {\n label: AllStyle;\n invalid: AllStyle;\n floatingLabel: AllStyle;\n activeFloatingLabel: AllStyle;\n placeholderText: AllStyle;\n};\n\nexport const DEFAULT_CLASS = 'app-currency';\nBASE_THEME.registerStyle((themeVariables, addStyle) => {\n const defaultStyles: WmCurrencyStyles = defineStyles({\n root: {\n minHeight: 42,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: themeVariables.inputBorderColor,\n backgroundColor: themeVariables.inputBackgroundColor,\n borderRadius: 6,\n flexDirection: 'row'\n },\n text: {\n fontSize: 16\n },\n input : {\n minHeight: 42,\n paddingTop: 8,\n paddingBottom: 8,\n paddingLeft: 16,\n paddingRight: 16,\n flex: 1,\n borderWidth: 1,\n borderColor: themeVariables.transparent,\n borderStyle: 'solid'\n },\n labelWrapper: {\n minHeight: 42,\n backgroundColor: themeVariables.primaryColor,\n borderTopLeftRadius: 6,\n borderBottomLeftRadius: 6,\n width: 48,\n paddingTop: 8,\n paddingBottom: 8,\n paddingLeft: 16,\n paddingRight: 16\n },\n label: {\n marginVertical: 0.7,\n color: themeVariables.primaryContrastColor,\n textAlignVertical: 'center',\n textAlign: 'center',\n fontWeight: 'bold',\n fontFamily: themeVariables.baseFont,\n fontSize: 16\n },\n invalid: {\n borderBottomColor: themeVariables.inputInvalidBorderColor\n },\n placeholderText: {\n color: themeVariables.inputPlaceholderColor\n },\n floatingLabel: {},\n activeFloatingLabel: {}\n });\n\n addStyle(DEFAULT_CLASS, '', defaultStyles);\n addStyle(DEFAULT_CLASS + '-rtl', '', Platform.OS==\"web\"?{\n labelWrapper:{\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n borderTopRightRadius: 6,\n borderBottomRightRadius: 6,\n }\n }:{});\n addStyle(DEFAULT_CLASS + '-disabled', '', {\n root : {\n backgroundColor: themeVariables.inputDisabledBgColor\n }\n });\n addStyle(DEFAULT_CLASS + '-with-label', '', {\n root: {\n minHeight: 48\n },\n floatingLabel: {\n position: 'absolute',\n top: 12,\n left: 16,\n fontSize: 14,\n textAlign: 'left',\n color: themeVariables.floatingLabelColor\n },\n activeFloatingLabel: {\n color: themeVariables.activeFloatingLabelColor\n }\n });\n});"],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ import WebDatePicker from './date-picker.component';
|
|
|
14
14
|
import { isNumber, isString } from 'lodash-es';
|
|
15
15
|
import { ModalConsumer } from '@wavemaker/app-rn-runtime/core/modal.service';
|
|
16
16
|
import { validateField } from '@wavemaker/app-rn-runtime/core/utils';
|
|
17
|
+
import { FloatingLabel } from '@wavemaker/app-rn-runtime/core/components/floatinglabel.component';
|
|
17
18
|
import AppI18nService from '@wavemaker/app-rn-runtime/runtime/services/app-i18n.service';
|
|
18
19
|
export class BaseDatetimeState extends BaseComponentState {
|
|
19
20
|
constructor() {
|
|
@@ -255,11 +256,18 @@ export default class BaseDatetime extends BaseComponent {
|
|
|
255
256
|
renderWidget(props) {
|
|
256
257
|
return this.addTouchableOpacity(props, /*#__PURE__*/React.createElement(View, {
|
|
257
258
|
style: [this.styles.root, this.state.isValid ? {} : this.styles.invalid, this.state.isFocused ? this.styles.focused : null]
|
|
258
|
-
}, this._background, /*#__PURE__*/React.createElement(
|
|
259
|
+
}, this._background, props.floatinglabel ? /*#__PURE__*/React.createElement(FloatingLabel, {
|
|
260
|
+
moveUp: !!(props.datavalue || this.state.isFocused),
|
|
261
|
+
label: props.floatinglabel ?? props.placeholder,
|
|
262
|
+
style: {
|
|
263
|
+
...(this.styles.floatingLabel || []),
|
|
264
|
+
...(this.state.isFocused ? this.styles.activeFloatingLabel || {} : {})
|
|
265
|
+
}
|
|
266
|
+
}) : null, /*#__PURE__*/React.createElement(View, {
|
|
259
267
|
style: this.styles.container
|
|
260
268
|
}, this.addTouchableOpacity(props, /*#__PURE__*/React.createElement(Text, _extends({
|
|
261
269
|
style: [this.styles.text, this.state.displayValue ? {} : this.styles.placeholderText]
|
|
262
|
-
}, this.getTestPropsForLabel()), this.state.displayValue || this.state.props.placeholder), [{
|
|
270
|
+
}, this.getTestPropsForLabel()), this.state.displayValue || (props.floatinglabel ? '' : this.state.props.placeholder)), [{
|
|
263
271
|
flex: 1
|
|
264
272
|
}, this.isRTL ? {
|
|
265
273
|
flexDirection: 'row',
|