@wavemaker/app-rn-runtime 11.8.4-next.27399 → 11.8.4-next.27401

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.
@@ -227,15 +227,28 @@ export default class WmList extends BaseComponent {
227
227
  });
228
228
  }
229
229
  const data = isArray($new) ? $new : !isEmpty($new) && isDefined($new) ? [$new] : [];
230
- this.updateState({
231
- groupedData: data[0] || props.direction === 'horizontal' ? [{
232
- key: 'key',
233
- data: data
234
- }] : []
235
- }, () => {
236
- var _this$keyExtractor2;
237
- (_this$keyExtractor2 = this.keyExtractor) === null || _this$keyExtractor2 === void 0 || _this$keyExtractor2.clear();
238
- });
230
+ if (props.orderby) {
231
+ const orderbyData = data && getGroupedData(data, props.groupby, props.match, props.orderby, props.dateformat, this);
232
+ this.updateState({
233
+ groupedData: orderbyData[0] ? [{
234
+ key: 'key',
235
+ data: orderbyData[0].data
236
+ }] : []
237
+ }, () => {
238
+ var _this$keyExtractor2;
239
+ (_this$keyExtractor2 = this.keyExtractor) === null || _this$keyExtractor2 === void 0 || _this$keyExtractor2.clear();
240
+ });
241
+ } else {
242
+ this.updateState({
243
+ groupedData: data[0] || props.direction === 'horizontal' ? [{
244
+ key: 'key',
245
+ data: data
246
+ }] : []
247
+ }, () => {
248
+ var _this$keyExtractor3;
249
+ (_this$keyExtractor3 = this.keyExtractor) === null || _this$keyExtractor3 === void 0 || _this$keyExtractor3.clear();
250
+ });
251
+ }
239
252
  }
240
253
  this.itemWidgets = [];
241
254
  if (props.selectfirstitem) {
@@ -1 +1 @@
1
- {"version":3,"names":["React","ActivityIndicator","SectionList","Text","View","FlatList","isArray","isEmpty","isNil","isNumber","round","BaseComponent","BaseComponentState","getGroupedData","isDefined","Tappable","DefaultKeyExtractor","WmLabel","WmIcon","Swipeable","WmListProps","DEFAULT_CLASS","WmListState","constructor","args","_defineProperty","WmList","props","leftActionTemplate","createElement","Fragment","getTemplate","rightActionTemplate","updateState","maxRecordsToShow","state","pagesize","isSelected","$item","selectedItem","selecteditem","indexOf","onSelect","$index","$event","eventName","disableitem","multiselect","index","selectionlimit","length","push","invokeEventCallback","splice","proxy","selectedItemWidgets","itemWidgets","Promise","resolve","selectedindex","loadDataOnDemand","navigation","loadData","loadingData","dataset","setTimeout","$list","loadingdata","getNextPageData","currentPage","then","data","hasMoreData","catch","err","console","error","selectFirstItem","initialized","groupby","clear","groupedData","selectItem","item","getItem","deselect","selectedItemIndex","getWidgets","widgetname","map","filter","widget","undefined","deselectAll","setGroupData","items","dataItems","match","orderby","dateformat","_this$keyExtractor","keyExtractor","onPropertyChange","name","$new","$old","direction","key","_this$keyExtractor2","selectfirstitem","pop","componentDidMount","_props$dataset","subscribe","event","scrollPosition","nativeEvent","contentOffset","y","layoutMeasurement","height","endThreshold","componentDidUpdate","prevProps","prevState","snapshot","getDefaultStyles","isHorizontal","theme","getStyle","defaultClass","getIndex","generateItemKey","itemkey","_showSkeleton","getKey","renderItem","cols","getNoOfColumns","renderLeftActions","renderRightActions","containerStyle","width","flex","style","styles","itemclass","_extends","getTestPropsForAction","onTap","onLongTap","onDoubleTap","display","flexDirection","paddingRight","marginRight","margin","id","getTestId","iconclass","selectedIcon","renderHeader","title","groupHeading","accessibilityRole","subheading","heading","listIcon","caption","accessibilityrole","renderEmptyMessage","emptyMessage","nodatamessage","renderLoadingIcon","loadingicon","loadingIcon","loadingdatamsg","color","text","itemsperrow","xs","onLayoutChange","e","l","layout","renderWithFlatList","root","onLayout","v","i","group","scrollEnabled","horizontal","ListEmptyComponent","itemInfo","numColumns","onDemandMessage","ondemandmessage","getSectionListData","renderWithSectionList","contentContainerStyle","sections","renderSectionHeader","section","renderSectionFooter","renderWidget","_background"],"sources":["list.component.tsx"],"sourcesContent":["import React from 'react';\nimport { ActivityIndicator, SectionList, Text, View, FlatList, LayoutChangeEvent, TouchableOpacity} 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';\nimport { Swipeable } from 'react-native-gesture-handler';\nimport WmListActionTemplate from './list-action-template/list-action-template.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 = 1;\n maxRecordsToShow = 20;\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 private endThreshold = -1;\n private loadingData = false;\n private hasMoreData = true;\n public leftActionTemplate?: WmListActionTemplate;\n public rightActionTemplate?: WmListActionTemplate;\n\n constructor(props: WmListProps) {\n super(props, DEFAULT_CLASS, new WmListProps(), new WmListState());\n this.updateState({\n maxRecordsToShow: this.state.props.pagesize\n } as 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 async onSelect($item: any, $index: number | string, $event?: any) {\n const props = this.state.props;\n let selectedItem = null as any;\n let eventName = 'onSelect';\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 eventName = 'onDeselect';\n }\n } else {\n this.state.props.selecteditem && this.invokeEventCallback('onDeselect', [this.proxy, this.state.props.selecteditem]);\n selectedItem = $item;\n }\n this.selectedItemWidgets = this.itemWidgets[$index as number];\n return new Promise(resolve => {\n this.updateState({\n props: { selecteditem: selectedItem },\n selectedindex: $index\n } as WmListState, () => {\n this.invokeEventCallback(eventName, [this.proxy, $item]);\n $event && this.invokeEventCallback('onTap', [$event, this.proxy]);\n resolve(null);\n });\n });\n } else {\n return Promise.resolve(null);\n }\n }\n\n private get loadDataOnDemand() {\n const navigation = this.state.props.navigation;\n return navigation === 'Scroll' || navigation === 'On-Demand';\n }\n\n renderLeftActions = () => {\n return this.leftActionTemplate ? (\n <>\n {this.leftActionTemplate.getTemplate()}\n </>\n ) : null;\n };\n\n renderRightActions = () => {\n return this.rightActionTemplate ? (\n <>\n {this.rightActionTemplate.getTemplate()}\n </>\n ) : null;\n };\n\n private loadData() {\n if (this.loadingData) {\n return;\n }\n if (isArray(this.state.props.dataset)\n && this.state.props.dataset.length > this.state.maxRecordsToShow) {\n this.loadingData = true;\n this.updateState({\n maxRecordsToShow: this.state.maxRecordsToShow + this.state.props.pagesize\n } as WmListState);\n setTimeout(() => {\n this.loadingData = false;\n }, 100);\n } else if (this.loadDataOnDemand) {\n const $list = this.proxy as any;\n $list.loadingdata = true;\n this.loadingData = true;\n this.props.getNextPageData && this.props.getNextPageData(null, this.proxy, this.state.currentPage + 1).then((data) => {\n if (isArray(data) && data.length > 0\n && isArray(this.state.props.dataset)) {\n $list.dataset = [...this.state.props.dataset, ...data];\n this.updateState({\n currentPage : this.state.currentPage + 1,\n maxRecordsToShow: this.state.maxRecordsToShow + this.state.props.pagesize\n } as WmListState);\n this.hasMoreData = true;\n } else {\n this.hasMoreData = false;\n }\n }).catch((err) => {\n console.error(err);\n }).then(() => {\n setTimeout(() => {\n $list.loadingdata = false;\n }, 1000);\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 this.invokeEventCallback('onDeselect', [this.proxy, item]);\n });\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 if (!($old && $old.length)\n && $new && $new.length\n && this.loadDataOnDemand) {\n this.updateState({\n props: {\n dataset: [...$new]\n }\n } as WmListState);\n }\n const data = isArray($new) ? $new : (!isEmpty($new) && isDefined($new) ? [$new] : []);\n this.updateState({\n groupedData: (data[0] || props.direction === 'horizontal' ? [{\n key: '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 'loadingdata':\n this.loadingData = $new && this.loadingData;\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 this.subscribe('scroll', (event: any) => {\n const scrollPosition = event.nativeEvent.contentOffset.y + event.nativeEvent.layoutMeasurement.height;\n if (scrollPosition > this.endThreshold && this.state.props.direction === 'vertical') {\n this.loadData();\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 (index < this.state.maxRecordsToShow || isHorizontal) ? (\n <Swipeable\n renderLeftActions={() => this.renderLeftActions()}\n renderRightActions={() => this.renderRightActions()} containerStyle={ cols ? { width: round(100/cols) + \"%\" , flex: null } as any :{}}>\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 <Tappable\n {...this.getTestPropsForAction(`item${index}`)}\n onTap={($event) => this.onSelect(item, index, $event)}\n onLongTap={() => this.invokeEventCallback('onLongtap', [null, this.proxy])}\n onDoubleTap={() => this.invokeEventCallback('onDoubletap', [null, this.proxy])}\n styles={\n [{display: 'flex', flexDirection : 'row'},\n cols ? {\n width: '100%'\n } : null,\n (cols && cols > 1) || isHorizontal ? {\n paddingRight: (isNil(this.styles.item.marginRight)\n ? this.styles.item.margin : this.styles.item.marginRight) || 4\n } : null\n ]\n }>\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 </Tappable>\n </View>\n </Swipeable>\n ) : null;\n }\n\n private renderHeader(props: WmListProps, title: string) {\n return props.groupby ? (\n <Text style={this.styles.groupHeading} accessibilityRole='header'>{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} accessibilityrole='header'></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 props.loadingicon ? (<WmIcon\n id={this.getTestId('loadingicon')}\n styles={this.styles.loadingIcon}\n iconclass={props.loadingicon}\n caption={props.loadingdatamsg}></WmIcon>)\n : (\n <ActivityIndicator color={this.styles.loadingIcon.text.color}></ActivityIndicator>\n );\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 onLayoutChange(e: LayoutChangeEvent) {\n const l = e.nativeEvent.layout;\n this.endThreshold = l.height + l.y - 100;\n if (!this.endThreshold) {\n this.endThreshold = -1;\n }\n }\n\n private renderWithFlatList(props: WmListProps, isHorizontal = false) {\n return (\n <View style={this.styles.root} onLayout={e => this.onLayoutChange(e)}>\n {!isEmpty(this.state.groupedData) ? this.state.groupedData.map((v: any, i) => ((\n <View style={this.styles.group} 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 scrollEnabled={isHorizontal}\n horizontal = {isHorizontal}\n data={isEmpty(v.data[0]) ? []: 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 {this.loadDataOnDemand || (v.data.length > this.state.maxRecordsToShow) ?\n (this.loadingData ?\n this.renderLoadingIcon(props) :\n (<WmLabel id={this.getTestId('ondemandmessage')}\n styles={this.styles.onDemandMessage}\n caption={this.hasMoreData && !isHorizontal ? props.ondemandmessage : props.nodatamessage}\n onTap={() => this.loadData()}></WmLabel>))\n : null}\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 contentContainerStyle={this.styles.root}\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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","ignoreList":[]}
1
+ {"version":3,"names":["React","ActivityIndicator","SectionList","Text","View","FlatList","isArray","isEmpty","isNil","isNumber","round","BaseComponent","BaseComponentState","getGroupedData","isDefined","Tappable","DefaultKeyExtractor","WmLabel","WmIcon","Swipeable","WmListProps","DEFAULT_CLASS","WmListState","constructor","args","_defineProperty","WmList","props","leftActionTemplate","createElement","Fragment","getTemplate","rightActionTemplate","updateState","maxRecordsToShow","state","pagesize","isSelected","$item","selectedItem","selecteditem","indexOf","onSelect","$index","$event","eventName","disableitem","multiselect","index","selectionlimit","length","push","invokeEventCallback","splice","proxy","selectedItemWidgets","itemWidgets","Promise","resolve","selectedindex","loadDataOnDemand","navigation","loadData","loadingData","dataset","setTimeout","$list","loadingdata","getNextPageData","currentPage","then","data","hasMoreData","catch","err","console","error","selectFirstItem","initialized","groupby","clear","groupedData","selectItem","item","getItem","deselect","selectedItemIndex","getWidgets","widgetname","map","filter","widget","undefined","deselectAll","setGroupData","items","dataItems","match","orderby","dateformat","_this$keyExtractor","keyExtractor","onPropertyChange","name","$new","$old","orderbyData","key","_this$keyExtractor2","direction","_this$keyExtractor3","selectfirstitem","pop","componentDidMount","_props$dataset","subscribe","event","scrollPosition","nativeEvent","contentOffset","y","layoutMeasurement","height","endThreshold","componentDidUpdate","prevProps","prevState","snapshot","getDefaultStyles","isHorizontal","theme","getStyle","defaultClass","getIndex","generateItemKey","itemkey","_showSkeleton","getKey","renderItem","cols","getNoOfColumns","renderLeftActions","renderRightActions","containerStyle","width","flex","style","styles","itemclass","_extends","getTestPropsForAction","onTap","onLongTap","onDoubleTap","display","flexDirection","paddingRight","marginRight","margin","id","getTestId","iconclass","selectedIcon","renderHeader","title","groupHeading","accessibilityRole","subheading","heading","listIcon","caption","accessibilityrole","renderEmptyMessage","emptyMessage","nodatamessage","renderLoadingIcon","loadingicon","loadingIcon","loadingdatamsg","color","text","itemsperrow","xs","onLayoutChange","e","l","layout","renderWithFlatList","root","onLayout","v","i","group","scrollEnabled","horizontal","ListEmptyComponent","itemInfo","numColumns","onDemandMessage","ondemandmessage","getSectionListData","renderWithSectionList","contentContainerStyle","sections","renderSectionHeader","section","renderSectionFooter","renderWidget","_background"],"sources":["list.component.tsx"],"sourcesContent":["import React from 'react';\nimport { ActivityIndicator, SectionList, Text, View, FlatList, LayoutChangeEvent, TouchableOpacity} 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';\nimport { Swipeable } from 'react-native-gesture-handler';\nimport WmListActionTemplate from './list-action-template/list-action-template.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 = 1;\n maxRecordsToShow = 20;\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 private endThreshold = -1;\n private loadingData = false;\n private hasMoreData = true;\n public leftActionTemplate?: WmListActionTemplate;\n public rightActionTemplate?: WmListActionTemplate;\n\n constructor(props: WmListProps) {\n super(props, DEFAULT_CLASS, new WmListProps(), new WmListState());\n this.updateState({\n maxRecordsToShow: this.state.props.pagesize\n } as 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 async onSelect($item: any, $index: number | string, $event?: any) {\n const props = this.state.props;\n let selectedItem = null as any;\n let eventName = 'onSelect';\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 eventName = 'onDeselect';\n }\n } else {\n this.state.props.selecteditem && this.invokeEventCallback('onDeselect', [this.proxy, this.state.props.selecteditem]);\n selectedItem = $item;\n }\n this.selectedItemWidgets = this.itemWidgets[$index as number];\n return new Promise(resolve => {\n this.updateState({\n props: { selecteditem: selectedItem },\n selectedindex: $index\n } as WmListState, () => {\n this.invokeEventCallback(eventName, [this.proxy, $item]);\n $event && this.invokeEventCallback('onTap', [$event, this.proxy]);\n resolve(null);\n });\n });\n } else {\n return Promise.resolve(null);\n }\n }\n\n private get loadDataOnDemand() {\n const navigation = this.state.props.navigation;\n return navigation === 'Scroll' || navigation === 'On-Demand';\n }\n\n renderLeftActions = () => {\n return this.leftActionTemplate ? (\n <>\n {this.leftActionTemplate.getTemplate()}\n </>\n ) : null;\n };\n\n renderRightActions = () => {\n return this.rightActionTemplate ? (\n <>\n {this.rightActionTemplate.getTemplate()}\n </>\n ) : null;\n };\n\n private loadData() {\n if (this.loadingData) {\n return;\n }\n if (isArray(this.state.props.dataset)\n && this.state.props.dataset.length > this.state.maxRecordsToShow) {\n this.loadingData = true;\n this.updateState({\n maxRecordsToShow: this.state.maxRecordsToShow + this.state.props.pagesize\n } as WmListState);\n setTimeout(() => {\n this.loadingData = false;\n }, 100);\n } else if (this.loadDataOnDemand) {\n const $list = this.proxy as any;\n $list.loadingdata = true;\n this.loadingData = true;\n this.props.getNextPageData && this.props.getNextPageData(null, this.proxy, this.state.currentPage + 1).then((data) => {\n if (isArray(data) && data.length > 0\n && isArray(this.state.props.dataset)) {\n $list.dataset = [...this.state.props.dataset, ...data];\n this.updateState({\n currentPage : this.state.currentPage + 1,\n maxRecordsToShow: this.state.maxRecordsToShow + this.state.props.pagesize\n } as WmListState);\n this.hasMoreData = true;\n } else {\n this.hasMoreData = false;\n }\n }).catch((err) => {\n console.error(err);\n }).then(() => {\n setTimeout(() => {\n $list.loadingdata = false;\n }, 1000);\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 this.invokeEventCallback('onDeselect', [this.proxy, item]);\n });\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 if (!($old && $old.length)\n && $new && $new.length\n && this.loadDataOnDemand) {\n this.updateState({\n props: {\n dataset: [...$new]\n }\n } as WmListState);\n }\n const data = isArray($new) ? $new : (!isEmpty($new) && isDefined($new) ? [$new] : []);\n if(props.orderby) {\n const orderbyData = data && getGroupedData(data, props.groupby, props.match, props.orderby, props.dateformat, this);\n this.updateState({\n groupedData: (orderbyData[0] ? [{\n key: 'key',\n data: orderbyData[0].data\n }] : [])\n } as WmListState, () => {\n this.keyExtractor?.clear();\n });\n } else {\n this.updateState({\n groupedData: (data[0] || props.direction === 'horizontal' ? [{\n key: 'key',\n data: data\n }] : [])\n } as WmListState, () => {\n this.keyExtractor?.clear();\n });\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 'loadingdata':\n this.loadingData = $new && this.loadingData;\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 this.subscribe('scroll', (event: any) => {\n const scrollPosition = event.nativeEvent.contentOffset.y + event.nativeEvent.layoutMeasurement.height;\n if (scrollPosition > this.endThreshold && this.state.props.direction === 'vertical') {\n this.loadData();\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 (index < this.state.maxRecordsToShow || isHorizontal) ? (\n <Swipeable\n renderLeftActions={() => this.renderLeftActions()}\n renderRightActions={() => this.renderRightActions()} containerStyle={ cols ? { width: round(100/cols) + \"%\" , flex: null } as any :{}}>\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 <Tappable\n {...this.getTestPropsForAction(`item${index}`)}\n onTap={($event) => this.onSelect(item, index, $event)}\n onLongTap={() => this.invokeEventCallback('onLongtap', [null, this.proxy])}\n onDoubleTap={() => this.invokeEventCallback('onDoubletap', [null, this.proxy])}\n styles={\n [{display: 'flex', flexDirection : 'row'},\n cols ? {\n width: '100%'\n } : null,\n (cols && cols > 1) || isHorizontal ? {\n paddingRight: (isNil(this.styles.item.marginRight)\n ? this.styles.item.margin : this.styles.item.marginRight) || 4\n } : null\n ]\n }>\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 </Tappable>\n </View>\n </Swipeable>\n ) : null;\n }\n\n private renderHeader(props: WmListProps, title: string) {\n return props.groupby ? (\n <Text style={this.styles.groupHeading} accessibilityRole='header'>{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} accessibilityrole='header'></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 props.loadingicon ? (<WmIcon\n id={this.getTestId('loadingicon')}\n styles={this.styles.loadingIcon}\n iconclass={props.loadingicon}\n caption={props.loadingdatamsg}></WmIcon>)\n : (\n <ActivityIndicator color={this.styles.loadingIcon.text.color}></ActivityIndicator>\n );\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 onLayoutChange(e: LayoutChangeEvent) {\n const l = e.nativeEvent.layout;\n this.endThreshold = l.height + l.y - 100;\n if (!this.endThreshold) {\n this.endThreshold = -1;\n }\n }\n\n private renderWithFlatList(props: WmListProps, isHorizontal = false) {\n return (\n <View style={this.styles.root} onLayout={e => this.onLayoutChange(e)}>\n {!isEmpty(this.state.groupedData) ? this.state.groupedData.map((v: any, i) => ((\n <View style={this.styles.group} 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 scrollEnabled={isHorizontal}\n horizontal = {isHorizontal}\n data={isEmpty(v.data[0]) ? []: 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 {this.loadDataOnDemand || (v.data.length > this.state.maxRecordsToShow) ?\n (this.loadingData ?\n this.renderLoadingIcon(props) :\n (<WmLabel id={this.getTestId('ondemandmessage')}\n styles={this.styles.onDemandMessage}\n caption={this.hasMoreData && !isHorizontal ? props.ondemandmessage : props.nodatamessage}\n onTap={() => this.loadData()}></WmLabel>))\n : null}\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 contentContainerStyle={this.styles.root}\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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","ignoreList":[]}
@@ -8,6 +8,7 @@ import { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/cor
8
8
  import WmFileuploadProps from './fileupload.props';
9
9
  import { DEFAULT_CLASS } from './fileupload.styles';
10
10
  import WmButton from '@wavemaker/app-rn-runtime/components/basic/button/button.component';
11
+ import { getMimeType } from '@wavemaker/app-rn-runtime/core/utils';
11
12
  export class WmFileuploadState extends BaseComponentState {
12
13
  constructor(...args) {
13
14
  super(...args);
@@ -23,7 +24,8 @@ export default class WmFileupload extends BaseComponent {
23
24
  constructor(props) {
24
25
  super(props, DEFAULT_CLASS, new WmFileuploadProps());
25
26
  }
26
- onTap() {
27
+ onTap(props) {
28
+ namedParameters.type = getMimeType(props.contenttype);
27
29
  DocumentPicker.getDocumentAsync(namedParameters).then(response => {
28
30
  let selectedFile;
29
31
  if (Platform.OS !== 'web') {
@@ -51,7 +53,7 @@ export default class WmFileupload extends BaseComponent {
51
53
  caption: props.caption,
52
54
  styles: this.styles.button,
53
55
  iconsize: props.iconsize,
54
- onTap: this.onTap.bind(this)
56
+ onTap: () => this.onTap.bind(this)(props)
55
57
  }));
56
58
  }
57
59
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","Platform","View","DocumentPicker","BaseComponent","BaseComponentState","WmFileuploadProps","DEFAULT_CLASS","WmButton","WmFileuploadState","constructor","args","_defineProperty","namedParameters","copyToCacheDirectory","multiple","type","WmFileupload","props","onTap","getDocumentAsync","then","response","selectedFile","OS","assets","mimeType","file","invokeEventCallback","proxy","updateState","selectedFiles","bind","renderWidget","createElement","style","styles","root","_background","accessibilitylabel","caption","hint","id","getTestId","iconclass","button","iconsize"],"sources":["fileupload.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Platform, View } from 'react-native';\nimport * as DocumentPicker from 'expo-document-picker';\n\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmFileuploadProps from './fileupload.props';\nimport { DEFAULT_CLASS, WmFileuploadStyles } from './fileupload.styles';\nimport WmButton from '@wavemaker/app-rn-runtime/components/basic/button/button.component';\n\nexport interface SelectFileOutput {\n mimeType: string;\n name: string;\n size: number;\n type: 'cancel' | 'success';\n uri: string;\n}\n\nexport class WmFileuploadState extends BaseComponentState<WmFileuploadProps> {\n selectedFiles: any;\n}\n\nconst namedParameters = {\n copyToCacheDirectory: false,\n multiple: false,\n type: '*/*'\n};\n\nexport default class WmFileupload extends BaseComponent<WmFileuploadProps, WmFileuploadState, WmFileuploadStyles> {\n\n constructor(props: WmFileuploadProps) {\n super(props, DEFAULT_CLASS, new WmFileuploadProps());\n }\n\n onTap() {\n DocumentPicker.getDocumentAsync(namedParameters).then((response: any) => {\n let selectedFile;\n if (Platform.OS !== 'web') {\n selectedFile = response.assets[0];\n selectedFile.type = selectedFile.mimeType;\n } else {\n selectedFile = [response.assets[0].file];\n }\n this.invokeEventCallback('onBeforeselect', [null, this.proxy, selectedFile]);\n\n this.updateState({\n props: {\n selectedFiles: selectedFile\n }\n } as WmFileuploadState, this.invokeEventCallback.bind(this, 'onSelect', [null, this.proxy, selectedFile]));\n });\n }\n\n renderWidget(props: WmFileuploadProps) {\n return <View style={this.styles.root}>\n {this._background}\n <WmButton accessibilitylabel={props.accessibilitylabel || props.caption} hint = {props.hint} id={this.getTestId()} iconclass={props.iconclass} caption={props.caption} styles={this.styles.button} iconsize={props.iconsize} onTap={this.onTap.bind(this)}></WmButton>\n </View>\n }\n}\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,EAAEC,IAAI,QAAQ,cAAc;AAC7C,OAAO,KAAKC,cAAc,MAAM,sBAAsB;AAEtD,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,+CAA+C;AAEjG,OAAOC,iBAAiB,MAAM,oBAAoB;AAClD,SAASC,aAAa,QAA4B,qBAAqB;AACvE,OAAOC,QAAQ,MAAM,oEAAoE;AAUzF,OAAO,MAAMC,iBAAiB,SAASJ,kBAAkB,CAAoB;EAAAK,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA;EAAA;AAE7E;AAEA,MAAMC,eAAe,GAAG;EACtBC,oBAAoB,EAAE,KAAK;EAC3BC,QAAQ,EAAE,KAAK;EACfC,IAAI,EAAE;AACR,CAAC;AAED,eAAe,MAAMC,YAAY,SAASb,aAAa,CAA2D;EAEhHM,WAAWA,CAACQ,KAAwB,EAAE;IACpC,KAAK,CAACA,KAAK,EAAEX,aAAa,EAAE,IAAID,iBAAiB,CAAC,CAAC,CAAC;EACtD;EAEAa,KAAKA,CAAA,EAAG;IACNhB,cAAc,CAACiB,gBAAgB,CAACP,eAAe,CAAC,CAACQ,IAAI,CAAEC,QAAa,IAAK;MACvE,IAAIC,YAAY;MAChB,IAAItB,QAAQ,CAACuB,EAAE,KAAK,KAAK,EAAE;QACzBD,YAAY,GAAGD,QAAQ,CAACG,MAAM,CAAC,CAAC,CAAC;QACjCF,YAAY,CAACP,IAAI,GAAGO,YAAY,CAACG,QAAQ;MAC3C,CAAC,MAAM;QACLH,YAAY,GAAG,CAACD,QAAQ,CAACG,MAAM,CAAC,CAAC,CAAC,CAACE,IAAI,CAAC;MAC1C;MACA,IAAI,CAACC,mBAAmB,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,IAAI,CAACC,KAAK,EAAEN,YAAY,CAAC,CAAC;MAE5E,IAAI,CAACO,WAAW,CAAC;QACbZ,KAAK,EAAE;UACPa,aAAa,EAAER;QACjB;MACF,CAAC,EAAuB,IAAI,CAACK,mBAAmB,CAACI,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAACH,KAAK,EAAEN,YAAY,CAAC,CAAC,CAAC;IAC5G,CAAC,CAAC;EACJ;EAEAU,YAAYA,CAACf,KAAwB,EAAE;IACrC,oBAAOlB,KAAA,CAAAkC,aAAA,CAAChC,IAAI;MAACiC,KAAK,EAAE,IAAI,CAACC,MAAM,CAACC;IAAK,GAClC,IAAI,CAACC,WAAW,eACjBtC,KAAA,CAAAkC,aAAA,CAAC1B,QAAQ;MAAC+B,kBAAkB,EAAErB,KAAK,CAACqB,kBAAkB,IAAIrB,KAAK,CAACsB,OAAQ;MAACC,IAAI,EAAIvB,KAAK,CAACuB,IAAK;MAACC,EAAE,EAAE,IAAI,CAACC,SAAS,CAAC,CAAE;MAACC,SAAS,EAAE1B,KAAK,CAAC0B,SAAU;MAACJ,OAAO,EAAEtB,KAAK,CAACsB,OAAQ;MAACJ,MAAM,EAAE,IAAI,CAACA,MAAM,CAACS,MAAO;MAACC,QAAQ,EAAE5B,KAAK,CAAC4B,QAAS;MAAC3B,KAAK,EAAE,IAAI,CAACA,KAAK,CAACa,IAAI,CAAC,IAAI;IAAE,CAAW,CACjQ,CAAC;EACT;AACF","ignoreList":[]}
1
+ {"version":3,"names":["React","Platform","View","DocumentPicker","BaseComponent","BaseComponentState","WmFileuploadProps","DEFAULT_CLASS","WmButton","getMimeType","WmFileuploadState","constructor","args","_defineProperty","namedParameters","copyToCacheDirectory","multiple","type","WmFileupload","props","onTap","contenttype","getDocumentAsync","then","response","selectedFile","OS","assets","mimeType","file","invokeEventCallback","proxy","updateState","selectedFiles","bind","renderWidget","createElement","style","styles","root","_background","accessibilitylabel","caption","hint","id","getTestId","iconclass","button","iconsize"],"sources":["fileupload.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Platform, View } from 'react-native';\nimport * as DocumentPicker from 'expo-document-picker';\n\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmFileuploadProps from './fileupload.props';\nimport { DEFAULT_CLASS, WmFileuploadStyles } from './fileupload.styles';\nimport WmButton from '@wavemaker/app-rn-runtime/components/basic/button/button.component';\nimport { getMimeType } from '@wavemaker/app-rn-runtime/core/utils';\n\nexport interface SelectFileOutput {\n mimeType: string;\n name: string;\n size: number;\n type: 'cancel' | 'success';\n uri: string;\n}\n\nexport class WmFileuploadState extends BaseComponentState<WmFileuploadProps> {\n selectedFiles: any;\n}\n\ntype NamedParametersType = {\n copyToCacheDirectory: boolean,\n multiple: boolean,\n type: string | string[]\n};\n\nconst namedParameters: NamedParametersType = {\n copyToCacheDirectory: false,\n multiple: false,\n type: '*/*'\n};\n\nexport default class WmFileupload extends BaseComponent<WmFileuploadProps, WmFileuploadState, WmFileuploadStyles> {\n\n constructor(props: WmFileuploadProps) {\n super(props, DEFAULT_CLASS, new WmFileuploadProps());\n }\n\n onTap(props: WmFileuploadProps) {\n namedParameters.type = getMimeType(props.contenttype);\n DocumentPicker.getDocumentAsync(namedParameters).then((response: any) => {\n let selectedFile;\n if (Platform.OS !== 'web') {\n selectedFile = response.assets[0];\n selectedFile.type = selectedFile.mimeType;\n } else {\n selectedFile = [response.assets[0].file];\n }\n this.invokeEventCallback('onBeforeselect', [null, this.proxy, selectedFile]);\n\n this.updateState({\n props: {\n selectedFiles: selectedFile\n }\n } as WmFileuploadState, this.invokeEventCallback.bind(this, 'onSelect', [null, this.proxy, selectedFile]));\n });\n }\n\n renderWidget(props: WmFileuploadProps) {\n return <View style={this.styles.root}>\n {this._background}\n <WmButton accessibilitylabel={props.accessibilitylabel || props.caption} hint = {props.hint} id={this.getTestId()} iconclass={props.iconclass} caption={props.caption} styles={this.styles.button} iconsize={props.iconsize} onTap={() => this.onTap.bind(this)(props)}></WmButton>\n </View>\n }\n}\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,EAAEC,IAAI,QAAQ,cAAc;AAC7C,OAAO,KAAKC,cAAc,MAAM,sBAAsB;AAEtD,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,+CAA+C;AAEjG,OAAOC,iBAAiB,MAAM,oBAAoB;AAClD,SAASC,aAAa,QAA4B,qBAAqB;AACvE,OAAOC,QAAQ,MAAM,oEAAoE;AACzF,SAASC,WAAW,QAAQ,sCAAsC;AAUlE,OAAO,MAAMC,iBAAiB,SAASL,kBAAkB,CAAoB;EAAAM,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA;EAAA;AAE7E;AAQA,MAAMC,eAAoC,GAAG;EAC3CC,oBAAoB,EAAE,KAAK;EAC3BC,QAAQ,EAAE,KAAK;EACfC,IAAI,EAAE;AACR,CAAC;AAED,eAAe,MAAMC,YAAY,SAASd,aAAa,CAA2D;EAEhHO,WAAWA,CAACQ,KAAwB,EAAE;IACpC,KAAK,CAACA,KAAK,EAAEZ,aAAa,EAAE,IAAID,iBAAiB,CAAC,CAAC,CAAC;EACtD;EAEAc,KAAKA,CAACD,KAAwB,EAAE;IAC9BL,eAAe,CAACG,IAAI,GAAGR,WAAW,CAACU,KAAK,CAACE,WAAW,CAAC;IACrDlB,cAAc,CAACmB,gBAAgB,CAACR,eAAe,CAAC,CAACS,IAAI,CAAEC,QAAa,IAAK;MACvE,IAAIC,YAAY;MAChB,IAAIxB,QAAQ,CAACyB,EAAE,KAAK,KAAK,EAAE;QACzBD,YAAY,GAAGD,QAAQ,CAACG,MAAM,CAAC,CAAC,CAAC;QACjCF,YAAY,CAACR,IAAI,GAAGQ,YAAY,CAACG,QAAQ;MAC3C,CAAC,MAAM;QACLH,YAAY,GAAG,CAACD,QAAQ,CAACG,MAAM,CAAC,CAAC,CAAC,CAACE,IAAI,CAAC;MAC1C;MACA,IAAI,CAACC,mBAAmB,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,IAAI,CAACC,KAAK,EAAEN,YAAY,CAAC,CAAC;MAE5E,IAAI,CAACO,WAAW,CAAC;QACbb,KAAK,EAAE;UACPc,aAAa,EAAER;QACjB;MACF,CAAC,EAAuB,IAAI,CAACK,mBAAmB,CAACI,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAACH,KAAK,EAAEN,YAAY,CAAC,CAAC,CAAC;IAC5G,CAAC,CAAC;EACJ;EAEAU,YAAYA,CAAChB,KAAwB,EAAE;IACrC,oBAAOnB,KAAA,CAAAoC,aAAA,CAAClC,IAAI;MAACmC,KAAK,EAAE,IAAI,CAACC,MAAM,CAACC;IAAK,GAClC,IAAI,CAACC,WAAW,eACjBxC,KAAA,CAAAoC,aAAA,CAAC5B,QAAQ;MAACiC,kBAAkB,EAAEtB,KAAK,CAACsB,kBAAkB,IAAItB,KAAK,CAACuB,OAAQ;MAACC,IAAI,EAAIxB,KAAK,CAACwB,IAAK;MAACC,EAAE,EAAE,IAAI,CAACC,SAAS,CAAC,CAAE;MAACC,SAAS,EAAE3B,KAAK,CAAC2B,SAAU;MAACJ,OAAO,EAAEvB,KAAK,CAACuB,OAAQ;MAACJ,MAAM,EAAE,IAAI,CAACA,MAAM,CAACS,MAAO;MAACC,QAAQ,EAAE7B,KAAK,CAAC6B,QAAS;MAAC5B,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACA,KAAK,CAACc,IAAI,CAAC,IAAI,CAAC,CAACf,KAAK;IAAE,CAAW,CAC9Q,CAAC;EACT;AACF","ignoreList":[]}
@@ -9,6 +9,7 @@ export default class WmFileuploadProps extends BaseProps {
9
9
  _defineProperty(this, "iconsize", 16);
10
10
  _defineProperty(this, "caption", 'Upload');
11
11
  _defineProperty(this, "selectedFiles", void 0);
12
+ _defineProperty(this, "contenttype", void 0);
12
13
  _defineProperty(this, "accessibilitylabel", undefined);
13
14
  _defineProperty(this, "hint", undefined);
14
15
  }
@@ -1 +1 @@
1
- {"version":3,"names":["BaseProps","WmFileuploadProps","constructor","args","_defineProperty","undefined"],"sources":["fileupload.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\nimport {AccessibilityRole} from 'react-native';\n\nexport default class WmFileuploadProps extends BaseProps {\n iconclass: string = 'wm-sl-l sl-cloud-upload';\n iconsize: number = 16;\n caption: string = 'Upload';\n selectedFiles?: any;\n accessibilitylabel?: string = undefined;\n hint?: string = undefined;\n}\n"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,+CAA+C;AAGzE,eAAe,MAAMC,iBAAiB,SAASD,SAAS,CAAC;EAAAE,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,oBACnC,yBAAyB;IAAAA,eAAA,mBAC1B,EAAE;IAAAA,eAAA,kBACH,QAAQ;IAAAA,eAAA;IAAAA,eAAA,6BAEIC,SAAS;IAAAD,eAAA,eACvBC,SAAS;EAAA;AAC3B","ignoreList":[]}
1
+ {"version":3,"names":["BaseProps","WmFileuploadProps","constructor","args","_defineProperty","undefined"],"sources":["fileupload.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\nimport {AccessibilityRole} from 'react-native';\n\nexport default class WmFileuploadProps extends BaseProps {\n iconclass: string = 'wm-sl-l sl-cloud-upload';\n iconsize: number = 16;\n caption: string = 'Upload';\n selectedFiles?: any;\n contenttype?: string;\n accessibilitylabel?: string = undefined;\n hint?: string = undefined;\n}\n"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,+CAA+C;AAGzE,eAAe,MAAMC,iBAAiB,SAASD,SAAS,CAAC;EAAAE,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,oBACnC,yBAAyB;IAAAA,eAAA,mBAC1B,EAAE;IAAAA,eAAA,kBACH,QAAQ;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,6BAGIC,SAAS;IAAAD,eAAA,eACvBC,SAAS;EAAA;AAC3B","ignoreList":[]}
@@ -2,6 +2,7 @@ import { Platform } from 'react-native';
2
2
  import moment from "moment";
3
3
  import * as FileSystem from "expo-file-system";
4
4
  import { isFunction, includes, isUndefined, isNull, orderBy, groupBy, toLower, get, forEach, sortBy, cloneDeep, keys, values, isArray, isString, isNumber } from 'lodash';
5
+ import * as mime from 'react-native-mime-types';
5
6
  import ThemeVariables from '../styles/theme.variables';
6
7
  const GROUP_BY_OPTIONS = {
7
8
  ALPHABET: 'alphabet',
@@ -505,4 +506,19 @@ export const isDateFormatAsPerPattern = (datePattern, dateString) => {
505
506
  return false;
506
507
  }
507
508
  };
509
+ export const getMimeType = extensions => {
510
+ if (!extensions) return '*/*';
511
+ let hasInvalidExtension = false;
512
+ let wildCards = ['image/*', 'audio/*', 'video/*'];
513
+ let extensionList = extensions.split(' ');
514
+ let mimeType = extensionList.map(extension => {
515
+ let type = mime.lookup(extension);
516
+ let isWildCardExtension = wildCards.includes(extension);
517
+ // * invalid extension, also not in wildcards
518
+ hasInvalidExtension = !type && !isWildCardExtension;
519
+ return type ? type : isWildCardExtension ? extension : '';
520
+ }).filter(type => type);
521
+ if (hasInvalidExtension) return '*/*';
522
+ return mimeType;
523
+ };
508
524
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","moment","FileSystem","isFunction","includes","isUndefined","isNull","orderBy","groupBy","toLower","get","forEach","sortBy","cloneDeep","keys","values","isArray","isString","isNumber","ThemeVariables","GROUP_BY_OPTIONS","ALPHABET","WORD","OTHERS","TIME_ROLLUP_OPTIONS","HOUR","DAY","WEEK","MONTH","YEAR","_deepCopy","o1","o2","o","Object","k","v","deepCopy","objects","toBoolean","val","undefined","toNumber","parseFloat","e","encodeUrl","url","splits","split","hash","params","length","map","p","encodeURIComponent","join","encodeURI","isWebPreviewMode","OS","isDevMode","__DEV__","widgetsWithUndefinedValue","isAndroid","test","window","navigator","userAgent","isIos","getGroupKey","fieldDef","groupby","widgetScope","innerItem","apply","proxy","getGroupedData","fieldDefs","match","orderby","dateFormat","groupKey","groupedLiData","concatStr","toString","trim","substr","replace","format","getSortedGroupedData","getOrderedDataset","dataSet","items","fields","directions","obj","item","push","_groupedData","groupkey","index","liData","key","data","_groupIndex","isDefined","unStringify","defaultVal","number","parseInt","isNaN","retryIfFails","fn","interval","maxRetries","onBeforeRetry","Promise","resolve","retryCount","tryFn","reject","errorFn","errArgs","arguments","setTimeout","then","retry","getAbortableDefer","_defer","promise","onAbort","isAborted","abort","validateField","props","value","requiredCheck","regexCheck","required","errorType","isValid","regexp","condition","RegExp","maxchars","mindate","Date","datavalue","startOf","toDate","maxdate","endOf","countDecimalDigits","numberString","decimalMatch","decimalDigits","formatCompactNumber","isNegative","formattedNumber","toFixed","toBase64","path","readAsStringAsync","encoding","DATASET_WIDGETS","Set","isDataSetWidget","widget","has","isFullPathUrl","startsWith","removeUndefinedKeys","getDaysInMonth","month","year","getDate","getDates","startDate","endDate","getFullYear","daysInMonth","dates","Array","from","i","datesInRange","filter","date","monthNames","getMonths","startMonth","endMonth","months","name","substring","monthRange","_","getMonthIndex","monthName","shortName","monthNumber","findIndex","getYearRange","startYear","endYear","years","getDateObject","getHours","hours","hour","paddedHour","String","padStart","get24Hours","getMinutes","minutes","minute","paddedMinute","getTimeIndicators","getDateTimeObject","getGradientStartEnd","angle","angleLowerCase","toLowerCase","start","x","y","end","parseLinearGradient","gradient","color1","color2","linearGradientRegex","hasLinearGradient","matches","INSTANCE","primaryColor","validateInputOnDevice","type","_value$match","isCurrencyField","isValidText","validText","Number","isDateFormatAsPerPattern","datePattern","dateString","_date$format","toUpperCase","error"],"sources":["utils.ts"],"sourcesContent":["import { Platform } from 'react-native';\nimport moment from \"moment\";\nimport * as FileSystem from \"expo-file-system\";\nimport { isFunction, includes, isUndefined, isNull, orderBy, groupBy, toLower, get, forEach, sortBy, cloneDeep, keys, values, isArray, isString, isNumber} from 'lodash';\nimport ThemeVariables from '../styles/theme.variables';\n\ndeclare const window: any;\nconst GROUP_BY_OPTIONS = {\n ALPHABET: 'alphabet',\n WORD: 'word',\n OTHERS: 'Others'\n};\nconst TIME_ROLLUP_OPTIONS = {\n HOUR: 'hour',\n DAY: 'day',\n WEEK: 'week',\n MONTH: 'month',\n YEAR: 'year'\n};\n\nconst _deepCopy = (o1: any, ...o2: any) => {\n o2.forEach((o: any) => {\n if (o) {\n Object.keys(o).forEach(k => {\n const v = o[k];\n if (v && !isString(v) && !isArray(v) && typeof v === 'object') {\n o1[k] = _deepCopy(o1[k] || {}, o[k]);\n } else {\n o1[k] = _deepCopy(v);\n }\n });\n }\n });\n return o1;\n};\n\nexport const deepCopy = (...objects: any) => _deepCopy({}, ...objects);\n\nexport const toBoolean = (val: any) => {\n return val === true\n || val === 'true'\n || !(val === false\n || val === null\n || val === undefined\n || val === '');\n};\n\nexport const toNumber = (val: any) => {\n try {\n return parseFloat(val) || 0;\n } catch(e) {\n return 0;\n }\n};\n\n/**\n * this method encodes the url and returns the encoded string\n */\n export const encodeUrl = (url: string): string => {\n let splits = url.split('#');\n const hash = splits[1];\n splits = splits[0].split('?');\n let params = '';\n if (splits.length > 1) {\n params = splits[1].split('&')\n .map(p => p.split('='))\n .map(p => p[0] +'=' + encodeURIComponent(p[1]))\n .join('&');\n }\n return encodeURI(splits[0]) + (params ? '?' + params: '') + (hash ? '#'+ hash : '');\n};\n\nexport const isWebPreviewMode = () => Platform.OS === 'web';\n\nexport const isDevMode = () => isWebPreviewMode() || __DEV__;\n\nexport const widgetsWithUndefinedValue = ['checkbox', 'toggle'];\n\nexport const isAndroid = () => (Platform.OS === 'android' || (Platform.OS === 'web' && /android/i.test(window.navigator.userAgent)));\n\nexport const isIos = () => (Platform.OS === 'ios' || (Platform.OS === 'web' && /iPhone|iPad/i.test(window.navigator.userAgent)));\n\nconst getGroupKey = (fieldDef: any, groupby: string, widgetScope: any, innerItem?: any) => isFunction(groupby) ? groupby.apply(widgetScope.proxy, [innerItem ? fieldDef[innerItem] : fieldDef]) : get(innerItem ? fieldDef[innerItem] : fieldDef, groupby);\n\n/**\n * This method prepares the grouped data.\n *\n * @param fieldDefs array of objects i.e. dataset\n * @param groupby string groupby\n * @param match string match\n * @param orderby string orderby\n * @param dateFormat string date format\n */\nexport const getGroupedData = (fieldDefs: any, groupby: string, match: string, orderby: string, dateFormat: string, widgetScope: any, innerItem?: any) => {\n\n // handling case-in-sensitive scenario\n // ordering the data based on groupby field. If there is innerItem then apply orderby using the innerItem's containing the groupby field.\n fieldDefs = orderBy(fieldDefs, fieldDef => {\n const groupKey = getGroupKey(fieldDef, groupby, widgetScope, innerItem);\n if (groupKey) {\n return toLower(groupKey);\n }\n return '';\n });\n\n // extract the grouped data based on the field obtained from 'groupDataByField'.\n const groupedLiData = groupBy(fieldDefs, function (fieldDef) {\n let concatStr = getGroupKey(fieldDef, groupby, widgetScope, innerItem);\n // by default set the undefined groupKey as 'others'\n if (isUndefined(concatStr) || isNull(concatStr) || concatStr.toString().trim() === '') {\n return GROUP_BY_OPTIONS.OTHERS;\n }\n // if match prop is alphabetic ,get the starting alphabet of the word as key.\n if (match === GROUP_BY_OPTIONS.ALPHABET) {\n concatStr = concatStr.substr(0, 1);\n }\n\n // if match contains the time options then get the concatStr using 'getTimeRolledUpString'\n if (includes(values(TIME_ROLLUP_OPTIONS), match)) {\n dateFormat = dateFormat && dateFormat.replace(/d/g, 'D');\n dateFormat = dateFormat && dateFormat.replace(/y/g, 'Y');\n concatStr = moment(concatStr).format(dateFormat);\n }\n\n return concatStr;\n });\n\n return getSortedGroupedData(groupedLiData, groupby, orderby, innerItem);\n};\n\n/**\n * function to get the ordered dataset based on the given orderby\n */\nexport const getOrderedDataset = (dataSet: any, orderby: string, innerItem?: any) => {\n if (!orderBy) {\n return cloneDeep(dataSet);\n }\n\n // The order by only works when the dataset contains list of objects.\n const items = orderby && orderby.split(','),\n fields: any = [],\n directions: any = [];\n items && items.forEach( obj => {\n const item = obj.split(':');\n fields.push(innerItem ? innerItem + '.' + item[0] : item[0]);\n directions.push(item[1]);\n });\n return orderBy(dataSet, fields, directions);\n};\n\n\n/**\n * This method returns sorted data based to groupkey.\n * Returns a array of objects, each object containing key which is groupKey and data is the sorted data which is sorted by groupby field in the data.\n *\n * @param groupedLiData, grouped data object with key as the groupKey and its value as the array of objects grouped under the groupKey.\n * @param groupBy, string groupby property\n * @returns {any[]}\n */\nexport const getSortedGroupedData = (groupedLiData: any, groupBy: string, orderby: string, innerItem?: any) => {\n const _groupedData: any = [];\n forEach(keys(groupedLiData), (groupkey, index) => {\n const liData = getOrderedDataset(groupedLiData[groupkey], orderby, innerItem);\n _groupedData.push({\n key: groupkey,\n data: sortBy(liData, data => {\n data._groupIndex = index;\n return get(data, groupBy) || get(data[innerItem], groupBy);\n })\n });\n });\n return _groupedData;\n};\n\nexport const isDefined = (v: any) => typeof v !== 'undefined';\n\n// try to convert the chekedvalue and unchecked values to boolean/number\nexport const unStringify = (val: any, defaultVal?: boolean) => {\n if (val === null) {\n return defaultVal;\n }\n\n if (val === true || val === 'true') {\n return true;\n }\n\n if (val === false || val === 'false') {\n return false;\n }\n\n const number = parseInt(val, 10);\n if (!isNaN(number)) {\n return number;\n }\n return val;\n};\n\n/**\n * This function invokes the given the function (fn) until the function successfully executes or the maximum number\n * of retries is reached or onBeforeRetry returns false.\n *\n * @param fn - a function that is needs to be invoked. The function can also return a promise as well.\n * @param interval - minimum time gap between successive retries. This argument should be greater or equal to 0.\n * @param maxRetries - maximum number of retries. This argument should be greater than 0. For all other values,\n * maxRetries is infinity.\n * @param onBeforeRetry - a callback function that will be invoked before re-invoking again. This function can\n * return false or a promise that is resolved to false to stop further retry attempts.\n * @returns {*} a promise that is resolved when fn is success (or) maximum retry attempts reached\n * (or) onBeforeRetry returned false.\n */\nexport const retryIfFails = (fn: Function, interval: number, maxRetries: number, onBeforeRetry = () => Promise.resolve(false)) => {\n let retryCount = 0;\n const tryFn = () => {\n retryCount++;\n if (isFunction(fn)) {\n return fn();\n }\n };\n maxRetries = (isNumber(maxRetries) && maxRetries > 0 ? maxRetries : 0);\n interval = (isNumber(interval) && interval > 0 ? interval : 0);\n return new Promise((resolve, reject) => {\n const errorFn = function () {\n const errArgs = arguments;\n setTimeout(() => {\n Promise.resolve().then(() => onBeforeRetry()).then(function (retry) {\n if (retry !== false && (!maxRetries || retryCount <= maxRetries)) {\n Promise.resolve().then(() => tryFn()).then(resolve, errorFn);\n } else {\n reject(errArgs);\n }\n }, () => reject(errArgs));\n }, interval);\n };\n Promise.resolve().then(() => tryFn()).then(resolve, errorFn);\n });\n};\n\n/**\n * Promise of a defer created using this function, has abort function that will reject the defer when called.\n * @returns {*} angular defer object\n */\nexport const getAbortableDefer = () => {\n const _defer: any = {\n promise: null,\n reject: null,\n resolve: null,\n onAbort: () => { },\n isAborted: false\n };\n _defer.promise = new Promise((resolve, reject) => {\n _defer.resolve = resolve;\n _defer.reject = reject;\n });\n _defer.promise.abort = () => {\n _defer.onAbort && _defer.onAbort();\n _defer.reject('aborted');\n _defer.isAborted = true;\n };\n return _defer;\n};\n\nexport const validateField = (props: any, value: any) => {\n let requiredCheck = true, regexCheck = true;\n if (props.required) {\n if (isArray(value)) {\n requiredCheck = value.length === 0 ? false : true\n } else {\n requiredCheck = !value ? false : true\n }\n if (!requiredCheck) {\n return {\n errorType : 'required',\n isValid: false\n }\n }\n }\n if (value && props.regexp) {\n const condition = new RegExp(\"^\" + props.regexp + \"$\", 'g');\n regexCheck = condition.test(value);\n if (!regexCheck) {\n return {\n errorType : 'regexp',\n isValid: false\n }\n }\n }\n if (value && props.maxchars && value.length > props.maxchars) {\n return {\n errorType : 'maxchars',\n isValid: false\n }\n\n }\n if (value && props.mindate && new Date(props.datavalue) < moment(props.mindate).startOf('day').toDate()) {\n return {\n errorType : 'mindate',\n isValid: false\n }\n }\n if (value && props.maxdate && new Date(props.datavalue) > moment(props.maxdate).endOf('day').toDate()) {\n return {\n errorType : 'maxdate',\n isValid: false\n }\n }\n\n return {\n isValid: true\n }\n};\n\nexport const countDecimalDigits = (number: number | string) => {\n if (!number) return 0;\n\n // * convert the number to a string\n const numberString = number.toString();\n \n // * regular expression to match and count the decimal digits\n const decimalMatch = numberString.match(/\\.(\\d+)/);\n\n if (decimalMatch) {\n const decimalDigits = decimalMatch[1];\n return decimalDigits.length;\n } else {\n return 0; // * no decimal digits found\n }\n}\n\nexport const formatCompactNumber = (number: number) => {\n const isNegative = number < 0;\n number = isNegative ? number * -1 : number;\n let formattedNumber = number + '';\n if (number >= 1000 && number < 1_000_000) {\n formattedNumber = (number / 1000).toFixed(1).replace(/\\.0$/, \"\") + \"K\";\n } else if (number >= 1_000_000 && number < 1_000_000_000) {\n formattedNumber = (number / 1_000_000).toFixed(1).replace(/\\.0$/, \"\") + \"M\";\n } else if (number >= 1_000_000_000 && number < 1_000_000_000_000) {\n formattedNumber = (number / 1_000_000_000).toFixed(1).replace(/\\.0$/, \"\") + \"B\";\n } else if (number >= 1_000_000_000_000 && number < 1_000_000_000_000_000) {\n formattedNumber = (number / 1_000_000_000_000).toFixed(1).replace(/\\.0$/, \"\") + \"T\";\n }\n return (isNegative ? '-' : '') + formattedNumber;\n}\n\nexport const toBase64 = function(path: string) {\n return FileSystem.readAsStringAsync(path, { encoding: 'base64' });\n};\n\nconst DATASET_WIDGETS = new Set([ 'select', 'checkboxset', 'radioset', 'switch', 'autocomplete', 'chips', 'typeahead', 'rating']);\nexport const isDataSetWidget = (widget: any) => {\n return DATASET_WIDGETS.has(widget);\n};\nexport const isFullPathUrl = (url: string) => {\n return isString(url) &&\n (url.startsWith('data:') \n || url.startsWith('http:') \n || url.startsWith('https:') \n || url.startsWith('file:'));\n};\n\nexport function removeUndefinedKeys(obj: any) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n } else if (typeof obj[key] === 'object') {\n // * if the value is an object, recursively call the function\n removeUndefinedKeys(obj[key]);\n }\n }\n\n return obj;\n}\n// * get total number of days in a month of a year\nfunction getDaysInMonth(month: number, year: number) {\n return new Date(year, month, 0).getDate();\n}\n\nexport const getDates = (\n startDate: number,\n endDate: number,\n month = 0, // zero-based\n year = new Date().getFullYear(),\n) => {\n const daysInMonth = getDaysInMonth(month, year);\n const dates = Array.from({length: daysInMonth}, (v, i) => i + 1);\n\n const datesInRange = dates.filter(date => date >= startDate);\n\n return datesInRange;\n};\n\nexport const monthNames = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\nexport const getMonths = (startMonth: number, endMonth: number) => {\n const months = monthNames.map(name => name.substring(0, 3));\n const monthRange = months.filter((_, index) => index >= startMonth)\n\n return monthRange;\n};\n\nexport const getMonthIndex = (monthName: string, shortName: boolean = true) => {\n const months = shortName ? monthNames.map(name => name.substring(0, 3)) : monthNames;\n const monthNumber = months.findIndex((name) => name === monthName);\n\n return monthNumber;\n}\n\nexport const getYearRange = (\n startYear: number = 1950,\n endYear: number = 2060,\n) => {\n const years = [];\n for (let year = startYear; year <= endYear; ++year) {\n years.push(year);\n }\n\n return years;\n};\n\nexport const getDateObject = (date: number, month: number, year: number) => {\n // * month is zero-based\n return new Date(year, month, date);\n};\n\nexport const getHours = () => {\n const hours = [];\n for (let hour = 1; hour <= 12; ++hour) {\n const paddedHour = String(hour).padStart(2, '0');\n hours.push(paddedHour);\n }\n\n return hours;\n}\n\nexport const get24Hours = () => {\n const hours = [];\n for (let hour = 0; hour <= 23; ++hour) {\n const paddedHour = String(hour).padStart(2, '0');\n hours.push(paddedHour);\n }\n\n return hours;\n}\n\nexport const getMinutes = () => {\n const minutes = [];\n for (let minute = 0; minute <= 59; ++minute) {\n const paddedMinute = String(minute).padStart(2, '0');\n minutes.push(paddedMinute);\n }\n\n return minutes;\n}\n\nexport const getTimeIndicators = () => {\n return ['AM', 'PM'];\n}\n\nexport const getDateTimeObject = (date: number, month: number, year: number, hour: number, minute: number) => {\n // * month is zero-based\n return new Date(year, month, date, hour, minute);\n};\n\nexport const getGradientStartEnd = (angle: string) => {\n const angleLowerCase = angle?.toLowerCase();\n let start = { x: 0, y: 1 };\n let end = { x: 1, y: 1 };\n\n if (angle === '0deg' || angleLowerCase === 'to top') {\n end.x = 0;\n end.y = 0;\n } else if (angle === '90deg' || angleLowerCase === 'to right') {\n start.x = 0;\n } else if (angle === '180deg' || angleLowerCase === 'to bottom') {\n start.y = 0;\n end.x = 0;\n end.y = 1;\n } else if (angle === '270deg' || angleLowerCase === 'to left') {\n start.x = 1;\n end.x = 0;\n } else {\n // other angle\n }\n\n return {start, end}\n}\n\nexport const parseLinearGradient = (gradient: string) => {\n let angle = '', color1 = '', color2 = '';\n const linearGradientRegex = /linear-gradient\\(([^,]+),\\s*([^,]+),\\s*([^)]+)\\)/;\n const hasLinearGradient = linearGradientRegex.test(gradient);\n\n const matches = gradient?.match(linearGradientRegex);\n angle = matches?.[1] || '90deg';\n const {start, end} = getGradientStartEnd(angle)\n color1 = matches?.[2] || ThemeVariables.INSTANCE.primaryColor;\n color2 = matches?.[3] || ThemeVariables.INSTANCE.primaryColor;\n\n return {hasLinearGradient, color1, color2, start, end};\n}\n\nexport const validateInputOnDevice = (value: string, type: 'number' | 'currency') => {\n const isCurrencyField = type === 'currency';\n let isValidText = true;\n let validText = value;\n \n // * no alphabets except E, may contain E only once\n if (/[a-df-zA-DF-Z]/.test(value) || !/^[^eE]*[eE]?[^eE]*$/.test(value)) {\n isValidText = false;\n validText = validText.replace(/[a-df-zA-DF-Z]/g, '');\n validText = validText.replace(/([eE])\\1+/g, 'e');\n }\n\n // * currency only: check for negative number\n if (isCurrencyField && (Number(value) < 0 || /-/g.test(value))) {\n isValidText = false;\n validText = validText.replace(/-/g, '');\n }\n\n // * number only: not more than one minus and doesn't end with minus (-)\n if (!isCurrencyField && (Number(value.match(/-/g)?.length) > 1) || /\\w-/.test(value)) {\n isValidText = false;\n validText = validText.replace(/-/g, '');\n validText = validText.replace(/\\w-/g, '');\n }\n\n // * check for more than one decimal point\n if (/^\\d*\\.\\d*\\..*$/.test(value)) {\n isValidText = false;\n validText = validText.replace(/\\.(?=\\.*\\.)/g, '');\n }\n\n // * check for spaces and comma\n if (/[\\s,]/.test(value)) {\n isValidText = false;\n validText = validText.replace(/[\\s,]/, '');\n }\n\n return {isValidText, validText};\n}\n\nexport const isDateFormatAsPerPattern = (\n datePattern?: string,\n dateString?: string | Date\n) => {\n try {\n // * format dateString as per datePattern\n const date = moment(dateString, datePattern, true);\n\n // * check date is valid and matches the format\n return date.isValid() && typeof dateString === 'string' && dateString?.toUpperCase() === date.format(datePattern)?.toUpperCase();\n } catch (error) {\n // * if not able to parse date string\n return false;\n }\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Platform","moment","FileSystem","isFunction","includes","isUndefined","isNull","orderBy","groupBy","toLower","get","forEach","sortBy","cloneDeep","keys","values","isArray","isString","isNumber","mime","ThemeVariables","GROUP_BY_OPTIONS","ALPHABET","WORD","OTHERS","TIME_ROLLUP_OPTIONS","HOUR","DAY","WEEK","MONTH","YEAR","_deepCopy","o1","o2","o","Object","k","v","deepCopy","objects","toBoolean","val","undefined","toNumber","parseFloat","e","encodeUrl","url","splits","split","hash","params","length","map","p","encodeURIComponent","join","encodeURI","isWebPreviewMode","OS","isDevMode","__DEV__","widgetsWithUndefinedValue","isAndroid","test","window","navigator","userAgent","isIos","getGroupKey","fieldDef","groupby","widgetScope","innerItem","apply","proxy","getGroupedData","fieldDefs","match","orderby","dateFormat","groupKey","groupedLiData","concatStr","toString","trim","substr","replace","format","getSortedGroupedData","getOrderedDataset","dataSet","items","fields","directions","obj","item","push","_groupedData","groupkey","index","liData","key","data","_groupIndex","isDefined","unStringify","defaultVal","number","parseInt","isNaN","retryIfFails","fn","interval","maxRetries","onBeforeRetry","Promise","resolve","retryCount","tryFn","reject","errorFn","errArgs","arguments","setTimeout","then","retry","getAbortableDefer","_defer","promise","onAbort","isAborted","abort","validateField","props","value","requiredCheck","regexCheck","required","errorType","isValid","regexp","condition","RegExp","maxchars","mindate","Date","datavalue","startOf","toDate","maxdate","endOf","countDecimalDigits","numberString","decimalMatch","decimalDigits","formatCompactNumber","isNegative","formattedNumber","toFixed","toBase64","path","readAsStringAsync","encoding","DATASET_WIDGETS","Set","isDataSetWidget","widget","has","isFullPathUrl","startsWith","removeUndefinedKeys","getDaysInMonth","month","year","getDate","getDates","startDate","endDate","getFullYear","daysInMonth","dates","Array","from","i","datesInRange","filter","date","monthNames","getMonths","startMonth","endMonth","months","name","substring","monthRange","_","getMonthIndex","monthName","shortName","monthNumber","findIndex","getYearRange","startYear","endYear","years","getDateObject","getHours","hours","hour","paddedHour","String","padStart","get24Hours","getMinutes","minutes","minute","paddedMinute","getTimeIndicators","getDateTimeObject","getGradientStartEnd","angle","angleLowerCase","toLowerCase","start","x","y","end","parseLinearGradient","gradient","color1","color2","linearGradientRegex","hasLinearGradient","matches","INSTANCE","primaryColor","validateInputOnDevice","type","_value$match","isCurrencyField","isValidText","validText","Number","isDateFormatAsPerPattern","datePattern","dateString","_date$format","toUpperCase","error","getMimeType","extensions","hasInvalidExtension","wildCards","extensionList","mimeType","extension","lookup","isWildCardExtension"],"sources":["utils.ts"],"sourcesContent":["import { Platform } from 'react-native';\nimport moment from \"moment\";\nimport * as FileSystem from \"expo-file-system\";\nimport { isFunction, includes, isUndefined, isNull, orderBy, groupBy, toLower, get, forEach, sortBy, cloneDeep, keys, values, isArray, isString, isNumber} from 'lodash';\nimport * as mime from 'react-native-mime-types';\nimport ThemeVariables from '../styles/theme.variables';\n\ndeclare const window: any;\nconst GROUP_BY_OPTIONS = {\n ALPHABET: 'alphabet',\n WORD: 'word',\n OTHERS: 'Others'\n};\nconst TIME_ROLLUP_OPTIONS = {\n HOUR: 'hour',\n DAY: 'day',\n WEEK: 'week',\n MONTH: 'month',\n YEAR: 'year'\n};\n\nconst _deepCopy = (o1: any, ...o2: any) => {\n o2.forEach((o: any) => {\n if (o) {\n Object.keys(o).forEach(k => {\n const v = o[k];\n if (v && !isString(v) && !isArray(v) && typeof v === 'object') {\n o1[k] = _deepCopy(o1[k] || {}, o[k]);\n } else {\n o1[k] = _deepCopy(v);\n }\n });\n }\n });\n return o1;\n};\n\nexport const deepCopy = (...objects: any) => _deepCopy({}, ...objects);\n\nexport const toBoolean = (val: any) => {\n return val === true\n || val === 'true'\n || !(val === false\n || val === null\n || val === undefined\n || val === '');\n};\n\nexport const toNumber = (val: any) => {\n try {\n return parseFloat(val) || 0;\n } catch(e) {\n return 0;\n }\n};\n\n/**\n * this method encodes the url and returns the encoded string\n */\n export const encodeUrl = (url: string): string => {\n let splits = url.split('#');\n const hash = splits[1];\n splits = splits[0].split('?');\n let params = '';\n if (splits.length > 1) {\n params = splits[1].split('&')\n .map(p => p.split('='))\n .map(p => p[0] +'=' + encodeURIComponent(p[1]))\n .join('&');\n }\n return encodeURI(splits[0]) + (params ? '?' + params: '') + (hash ? '#'+ hash : '');\n};\n\nexport const isWebPreviewMode = () => Platform.OS === 'web';\n\nexport const isDevMode = () => isWebPreviewMode() || __DEV__;\n\nexport const widgetsWithUndefinedValue = ['checkbox', 'toggle'];\n\nexport const isAndroid = () => (Platform.OS === 'android' || (Platform.OS === 'web' && /android/i.test(window.navigator.userAgent)));\n\nexport const isIos = () => (Platform.OS === 'ios' || (Platform.OS === 'web' && /iPhone|iPad/i.test(window.navigator.userAgent)));\n\nconst getGroupKey = (fieldDef: any, groupby: string, widgetScope: any, innerItem?: any) => isFunction(groupby) ? groupby.apply(widgetScope.proxy, [innerItem ? fieldDef[innerItem] : fieldDef]) : get(innerItem ? fieldDef[innerItem] : fieldDef, groupby);\n\n/**\n * This method prepares the grouped data.\n *\n * @param fieldDefs array of objects i.e. dataset\n * @param groupby string groupby\n * @param match string match\n * @param orderby string orderby\n * @param dateFormat string date format\n */\nexport const getGroupedData = (fieldDefs: any, groupby: string, match: string, orderby: string, dateFormat: string, widgetScope: any, innerItem?: any) => {\n\n // handling case-in-sensitive scenario\n // ordering the data based on groupby field. If there is innerItem then apply orderby using the innerItem's containing the groupby field.\n fieldDefs = orderBy(fieldDefs, fieldDef => {\n const groupKey = getGroupKey(fieldDef, groupby, widgetScope, innerItem);\n if (groupKey) {\n return toLower(groupKey);\n }\n return '';\n });\n\n // extract the grouped data based on the field obtained from 'groupDataByField'.\n const groupedLiData = groupBy(fieldDefs, function (fieldDef) {\n let concatStr = getGroupKey(fieldDef, groupby, widgetScope, innerItem);\n // by default set the undefined groupKey as 'others'\n if (isUndefined(concatStr) || isNull(concatStr) || concatStr.toString().trim() === '') {\n return GROUP_BY_OPTIONS.OTHERS;\n }\n // if match prop is alphabetic ,get the starting alphabet of the word as key.\n if (match === GROUP_BY_OPTIONS.ALPHABET) {\n concatStr = concatStr.substr(0, 1);\n }\n\n // if match contains the time options then get the concatStr using 'getTimeRolledUpString'\n if (includes(values(TIME_ROLLUP_OPTIONS), match)) {\n dateFormat = dateFormat && dateFormat.replace(/d/g, 'D');\n dateFormat = dateFormat && dateFormat.replace(/y/g, 'Y');\n concatStr = moment(concatStr).format(dateFormat);\n }\n\n return concatStr;\n });\n\n return getSortedGroupedData(groupedLiData, groupby, orderby, innerItem);\n};\n\n/**\n * function to get the ordered dataset based on the given orderby\n */\nexport const getOrderedDataset = (dataSet: any, orderby: string, innerItem?: any) => {\n if (!orderBy) {\n return cloneDeep(dataSet);\n }\n\n // The order by only works when the dataset contains list of objects.\n const items = orderby && orderby.split(','),\n fields: any = [],\n directions: any = [];\n items && items.forEach( obj => {\n const item = obj.split(':');\n fields.push(innerItem ? innerItem + '.' + item[0] : item[0]);\n directions.push(item[1]);\n });\n return orderBy(dataSet, fields, directions);\n};\n\n\n/**\n * This method returns sorted data based to groupkey.\n * Returns a array of objects, each object containing key which is groupKey and data is the sorted data which is sorted by groupby field in the data.\n *\n * @param groupedLiData, grouped data object with key as the groupKey and its value as the array of objects grouped under the groupKey.\n * @param groupBy, string groupby property\n * @returns {any[]}\n */\nexport const getSortedGroupedData = (groupedLiData: any, groupBy: string, orderby: string, innerItem?: any) => {\n const _groupedData: any = [];\n forEach(keys(groupedLiData), (groupkey, index) => {\n const liData = getOrderedDataset(groupedLiData[groupkey], orderby, innerItem);\n _groupedData.push({\n key: groupkey,\n data: sortBy(liData, data => {\n data._groupIndex = index;\n return get(data, groupBy) || get(data[innerItem], groupBy);\n })\n });\n });\n return _groupedData;\n};\n\nexport const isDefined = (v: any) => typeof v !== 'undefined';\n\n// try to convert the chekedvalue and unchecked values to boolean/number\nexport const unStringify = (val: any, defaultVal?: boolean) => {\n if (val === null) {\n return defaultVal;\n }\n\n if (val === true || val === 'true') {\n return true;\n }\n\n if (val === false || val === 'false') {\n return false;\n }\n\n const number = parseInt(val, 10);\n if (!isNaN(number)) {\n return number;\n }\n return val;\n};\n\n/**\n * This function invokes the given the function (fn) until the function successfully executes or the maximum number\n * of retries is reached or onBeforeRetry returns false.\n *\n * @param fn - a function that is needs to be invoked. The function can also return a promise as well.\n * @param interval - minimum time gap between successive retries. This argument should be greater or equal to 0.\n * @param maxRetries - maximum number of retries. This argument should be greater than 0. For all other values,\n * maxRetries is infinity.\n * @param onBeforeRetry - a callback function that will be invoked before re-invoking again. This function can\n * return false or a promise that is resolved to false to stop further retry attempts.\n * @returns {*} a promise that is resolved when fn is success (or) maximum retry attempts reached\n * (or) onBeforeRetry returned false.\n */\nexport const retryIfFails = (fn: Function, interval: number, maxRetries: number, onBeforeRetry = () => Promise.resolve(false)) => {\n let retryCount = 0;\n const tryFn = () => {\n retryCount++;\n if (isFunction(fn)) {\n return fn();\n }\n };\n maxRetries = (isNumber(maxRetries) && maxRetries > 0 ? maxRetries : 0);\n interval = (isNumber(interval) && interval > 0 ? interval : 0);\n return new Promise((resolve, reject) => {\n const errorFn = function () {\n const errArgs = arguments;\n setTimeout(() => {\n Promise.resolve().then(() => onBeforeRetry()).then(function (retry) {\n if (retry !== false && (!maxRetries || retryCount <= maxRetries)) {\n Promise.resolve().then(() => tryFn()).then(resolve, errorFn);\n } else {\n reject(errArgs);\n }\n }, () => reject(errArgs));\n }, interval);\n };\n Promise.resolve().then(() => tryFn()).then(resolve, errorFn);\n });\n};\n\n/**\n * Promise of a defer created using this function, has abort function that will reject the defer when called.\n * @returns {*} angular defer object\n */\nexport const getAbortableDefer = () => {\n const _defer: any = {\n promise: null,\n reject: null,\n resolve: null,\n onAbort: () => { },\n isAborted: false\n };\n _defer.promise = new Promise((resolve, reject) => {\n _defer.resolve = resolve;\n _defer.reject = reject;\n });\n _defer.promise.abort = () => {\n _defer.onAbort && _defer.onAbort();\n _defer.reject('aborted');\n _defer.isAborted = true;\n };\n return _defer;\n};\n\nexport const validateField = (props: any, value: any) => {\n let requiredCheck = true, regexCheck = true;\n if (props.required) {\n if (isArray(value)) {\n requiredCheck = value.length === 0 ? false : true\n } else {\n requiredCheck = !value ? false : true\n }\n if (!requiredCheck) {\n return {\n errorType : 'required',\n isValid: false\n }\n }\n }\n if (value && props.regexp) {\n const condition = new RegExp(\"^\" + props.regexp + \"$\", 'g');\n regexCheck = condition.test(value);\n if (!regexCheck) {\n return {\n errorType : 'regexp',\n isValid: false\n }\n }\n }\n if (value && props.maxchars && value.length > props.maxchars) {\n return {\n errorType : 'maxchars',\n isValid: false\n }\n\n }\n if (value && props.mindate && new Date(props.datavalue) < moment(props.mindate).startOf('day').toDate()) {\n return {\n errorType : 'mindate',\n isValid: false\n }\n }\n if (value && props.maxdate && new Date(props.datavalue) > moment(props.maxdate).endOf('day').toDate()) {\n return {\n errorType : 'maxdate',\n isValid: false\n }\n }\n\n return {\n isValid: true\n }\n};\n\nexport const countDecimalDigits = (number: number | string) => {\n if (!number) return 0;\n\n // * convert the number to a string\n const numberString = number.toString();\n \n // * regular expression to match and count the decimal digits\n const decimalMatch = numberString.match(/\\.(\\d+)/);\n\n if (decimalMatch) {\n const decimalDigits = decimalMatch[1];\n return decimalDigits.length;\n } else {\n return 0; // * no decimal digits found\n }\n}\n\nexport const formatCompactNumber = (number: number) => {\n const isNegative = number < 0;\n number = isNegative ? number * -1 : number;\n let formattedNumber = number + '';\n if (number >= 1000 && number < 1_000_000) {\n formattedNumber = (number / 1000).toFixed(1).replace(/\\.0$/, \"\") + \"K\";\n } else if (number >= 1_000_000 && number < 1_000_000_000) {\n formattedNumber = (number / 1_000_000).toFixed(1).replace(/\\.0$/, \"\") + \"M\";\n } else if (number >= 1_000_000_000 && number < 1_000_000_000_000) {\n formattedNumber = (number / 1_000_000_000).toFixed(1).replace(/\\.0$/, \"\") + \"B\";\n } else if (number >= 1_000_000_000_000 && number < 1_000_000_000_000_000) {\n formattedNumber = (number / 1_000_000_000_000).toFixed(1).replace(/\\.0$/, \"\") + \"T\";\n }\n return (isNegative ? '-' : '') + formattedNumber;\n}\n\nexport const toBase64 = function(path: string) {\n return FileSystem.readAsStringAsync(path, { encoding: 'base64' });\n};\n\nconst DATASET_WIDGETS = new Set([ 'select', 'checkboxset', 'radioset', 'switch', 'autocomplete', 'chips', 'typeahead', 'rating']);\nexport const isDataSetWidget = (widget: any) => {\n return DATASET_WIDGETS.has(widget);\n};\nexport const isFullPathUrl = (url: string) => {\n return isString(url) &&\n (url.startsWith('data:') \n || url.startsWith('http:') \n || url.startsWith('https:') \n || url.startsWith('file:'));\n};\n\nexport function removeUndefinedKeys(obj: any) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n } else if (typeof obj[key] === 'object') {\n // * if the value is an object, recursively call the function\n removeUndefinedKeys(obj[key]);\n }\n }\n\n return obj;\n}\n// * get total number of days in a month of a year\nfunction getDaysInMonth(month: number, year: number) {\n return new Date(year, month, 0).getDate();\n}\n\nexport const getDates = (\n startDate: number,\n endDate: number,\n month = 0, // zero-based\n year = new Date().getFullYear(),\n) => {\n const daysInMonth = getDaysInMonth(month, year);\n const dates = Array.from({length: daysInMonth}, (v, i) => i + 1);\n\n const datesInRange = dates.filter(date => date >= startDate);\n\n return datesInRange;\n};\n\nexport const monthNames = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\nexport const getMonths = (startMonth: number, endMonth: number) => {\n const months = monthNames.map(name => name.substring(0, 3));\n const monthRange = months.filter((_, index) => index >= startMonth)\n\n return monthRange;\n};\n\nexport const getMonthIndex = (monthName: string, shortName: boolean = true) => {\n const months = shortName ? monthNames.map(name => name.substring(0, 3)) : monthNames;\n const monthNumber = months.findIndex((name) => name === monthName);\n\n return monthNumber;\n}\n\nexport const getYearRange = (\n startYear: number = 1950,\n endYear: number = 2060,\n) => {\n const years = [];\n for (let year = startYear; year <= endYear; ++year) {\n years.push(year);\n }\n\n return years;\n};\n\nexport const getDateObject = (date: number, month: number, year: number) => {\n // * month is zero-based\n return new Date(year, month, date);\n};\n\nexport const getHours = () => {\n const hours = [];\n for (let hour = 1; hour <= 12; ++hour) {\n const paddedHour = String(hour).padStart(2, '0');\n hours.push(paddedHour);\n }\n\n return hours;\n}\n\nexport const get24Hours = () => {\n const hours = [];\n for (let hour = 0; hour <= 23; ++hour) {\n const paddedHour = String(hour).padStart(2, '0');\n hours.push(paddedHour);\n }\n\n return hours;\n}\n\nexport const getMinutes = () => {\n const minutes = [];\n for (let minute = 0; minute <= 59; ++minute) {\n const paddedMinute = String(minute).padStart(2, '0');\n minutes.push(paddedMinute);\n }\n\n return minutes;\n}\n\nexport const getTimeIndicators = () => {\n return ['AM', 'PM'];\n}\n\nexport const getDateTimeObject = (date: number, month: number, year: number, hour: number, minute: number) => {\n // * month is zero-based\n return new Date(year, month, date, hour, minute);\n};\n\nexport const getGradientStartEnd = (angle: string) => {\n const angleLowerCase = angle?.toLowerCase();\n let start = { x: 0, y: 1 };\n let end = { x: 1, y: 1 };\n\n if (angle === '0deg' || angleLowerCase === 'to top') {\n end.x = 0;\n end.y = 0;\n } else if (angle === '90deg' || angleLowerCase === 'to right') {\n start.x = 0;\n } else if (angle === '180deg' || angleLowerCase === 'to bottom') {\n start.y = 0;\n end.x = 0;\n end.y = 1;\n } else if (angle === '270deg' || angleLowerCase === 'to left') {\n start.x = 1;\n end.x = 0;\n } else {\n // other angle\n }\n\n return {start, end}\n}\n\nexport const parseLinearGradient = (gradient: string) => {\n let angle = '', color1 = '', color2 = '';\n const linearGradientRegex = /linear-gradient\\(([^,]+),\\s*([^,]+),\\s*([^)]+)\\)/;\n const hasLinearGradient = linearGradientRegex.test(gradient);\n\n const matches = gradient?.match(linearGradientRegex);\n angle = matches?.[1] || '90deg';\n const {start, end} = getGradientStartEnd(angle)\n color1 = matches?.[2] || ThemeVariables.INSTANCE.primaryColor;\n color2 = matches?.[3] || ThemeVariables.INSTANCE.primaryColor;\n\n return {hasLinearGradient, color1, color2, start, end};\n}\n\nexport const validateInputOnDevice = (value: string, type: 'number' | 'currency') => {\n const isCurrencyField = type === 'currency';\n let isValidText = true;\n let validText = value;\n \n // * no alphabets except E, may contain E only once\n if (/[a-df-zA-DF-Z]/.test(value) || !/^[^eE]*[eE]?[^eE]*$/.test(value)) {\n isValidText = false;\n validText = validText.replace(/[a-df-zA-DF-Z]/g, '');\n validText = validText.replace(/([eE])\\1+/g, 'e');\n }\n\n // * currency only: check for negative number\n if (isCurrencyField && (Number(value) < 0 || /-/g.test(value))) {\n isValidText = false;\n validText = validText.replace(/-/g, '');\n }\n\n // * number only: not more than one minus and doesn't end with minus (-)\n if (!isCurrencyField && (Number(value.match(/-/g)?.length) > 1) || /\\w-/.test(value)) {\n isValidText = false;\n validText = validText.replace(/-/g, '');\n validText = validText.replace(/\\w-/g, '');\n }\n\n // * check for more than one decimal point\n if (/^\\d*\\.\\d*\\..*$/.test(value)) {\n isValidText = false;\n validText = validText.replace(/\\.(?=\\.*\\.)/g, '');\n }\n\n // * check for spaces and comma\n if (/[\\s,]/.test(value)) {\n isValidText = false;\n validText = validText.replace(/[\\s,]/, '');\n }\n\n return {isValidText, validText};\n}\n\nexport const isDateFormatAsPerPattern = (\n datePattern?: string,\n dateString?: string | Date\n) => {\n try {\n // * format dateString as per datePattern\n const date = moment(dateString, datePattern, true);\n\n // * check date is valid and matches the format\n return date.isValid() && typeof dateString === 'string' && dateString?.toUpperCase() === date.format(datePattern)?.toUpperCase();\n } catch (error) {\n // * if not able to parse date string\n return false;\n }\n};\n\nexport const getMimeType = (extensions?: string) => {\n if (!extensions) return '*/*';\n let hasInvalidExtension = false;\n let wildCards = ['image/*', 'audio/*', 'video/*'];\n let extensionList = extensions.split(' ');\n let mimeType = extensionList\n .map((extension: string) => {\n let type = mime.lookup(extension);\n let isWildCardExtension = wildCards.includes(extension);\n // * invalid extension, also not in wildcards\n hasInvalidExtension = !type && !isWildCardExtension;\n return type ? type : isWildCardExtension ? extension : '';\n })\n .filter((type) => type);\n\n if (hasInvalidExtension) return '*/*';\n return mimeType;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wavemaker/app-rn-runtime",
3
- "version": "11.8.4-next.27399",
3
+ "version": "11.8.4-next.27401",
4
4
  "description": "''",
5
5
  "main": "index",
6
6
  "module": "index",
@@ -49,7 +49,7 @@
49
49
  "@react-navigation/drawer": "6.6.3",
50
50
  "@react-navigation/native": "6.1.7",
51
51
  "@react-navigation/stack": "6.3.29",
52
- "@wavemaker/variables": "11.8.4-next.27399",
52
+ "@wavemaker/variables": "11.8.4-next.27401",
53
53
  "axios": "1.6.8",
54
54
  "color": "4.2.3",
55
55
  "cross-env": "7.0.3",
@@ -68,6 +68,7 @@
68
68
  "react-native-animatable": "1.4.0",
69
69
  "react-native-circular-progress": "1.4.0",
70
70
  "react-native-logs": "5.1.0",
71
+ "react-native-mime-types": "2.5.0",
71
72
  "react-native-paper": "5.12.3",
72
73
  "react-native-paper-dates": "0.22.7",
73
74
  "react-native-reanimated": "3.6.2",
@@ -139,7 +140,7 @@
139
140
  "typescript": "5.1.3",
140
141
  "victory-native": "36.6.11",
141
142
  "yargs": "16.2.0",
142
- "@wavemaker/variables": "11.8.4-next.27399"
143
+ "@wavemaker/variables": "11.8.4-next.27401"
143
144
  },
144
145
  "jest": {
145
146
  "preset": "jest-expo",
@@ -164,7 +165,7 @@
164
165
  "^.+\\.(js|jsx|mjs)$": "<rootDir>/node_modules/babel-jest"
165
166
  },
166
167
  "transformIgnorePatterns": [
167
- "node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|react-native-svg|@wavemaker|@wavemaker/app-rn-runtime/components/basic/modal/modal.component|expo-linear-gradient|react-native-gesture-handler|@react-native-community|@react-native-community/datetimepicker|react-native-reanimated|d3-shape|victory-native)"
168
+ "node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|react-native-svg|@wavemaker|@wavemaker/app-rn-runtime/components/basic/modal/modal.component|expo-linear-gradient|react-native-gesture-handler|@react-native-community|@react-native-community/datetimepicker|react-native-reanimated|d3-shape|victory-native|victory-.*)"
168
169
  ],
169
170
  "moduleNameMapper": {
170
171
  "^lodash-es$": "lodash",