@bigbinary/neetoui-rn 0.0.188 → 0.0.191

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -162,6 +162,8 @@ interface BottomSheetProps extends ViewProps {
162
162
  contentType?: "checkbox" | null;
163
163
  canSearch?: boolean;
164
164
  onDonePress?: () => void;
165
+ valueExtractor?: () =>{};
166
+ labelExtractor?: () =>{};
165
167
  }
166
168
 
167
169
  interface ButtonProps extends TouchableProps {
@@ -280,7 +282,6 @@ interface MultiSelectProps extends ViewProps {
280
282
  options?: Array<any>;
281
283
  label?: string;
282
284
  value?: string | Array<any>;
283
- placeholder?: string;
284
285
  labelExtractor?: (item: any, index: number) => string;
285
286
  valueExtractor?: (item: any, index: number) => string;
286
287
  onSelect?: (selectedData: Array<any>) => void;
@@ -302,6 +303,14 @@ interface MultiSelectProps extends ViewProps {
302
303
  onPressCreateOption?: (searchText: string) => void;
303
304
  createSearchedOptionContainerStyle?: ViewProps;
304
305
  onDonePress?: () => void;
306
+ disabled?: boolean;
307
+ noResultsLabelContainerStyle?: ViewStyle;
308
+ noResultsLabelStyle?: TextStyle;
309
+ noResultsLabel?: TypographyProps;
310
+ NoResultsComponent?: React.ReactNode;
311
+ maxItemSize?: number;
312
+ moreItemLabelContainerStyle?: ViewStyle;
313
+ moreItemLabelStyle?: TextStyle
305
314
  }
306
315
 
307
316
  type OnBoardingProps = {
@@ -1 +1 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.BottomSheet=void 0;var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativeModal=_interopRequireDefault(require("react-native-modal"));var _reactNativeSafeAreaContext=require("react-native-safe-area-context");var _fuse=_interopRequireDefault(require("fuse.js"));var _=require("./");var _theme=require("../theme");var _constants=require("../constants");var _excluded=["showCreateOption","CreateItemComponent","showCreateOptionLoader","createSearchedOptionLabelStyle","createOptionLabel","onPressCreateOption","createSearchedOptionContainerStyle","data","title","hide","isVisible","onItemPress","selectedItemIndex","bg","children","titleContainerStyle","titleTextStyle","modalParams","HeaderComponent","ContentRow","contentType","canSearch","onDonePress"];var _this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/BottomSheet.js";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var Title=function Title(_ref){var title=_ref.title,bg=_ref.bg,isVisible=_ref.isVisible,hide=_ref.hide,titleContainerStyle=_ref.titleContainerStyle,titleTextStyle=_ref.titleTextStyle,contentType=_ref.contentType,canSearch=_ref.canSearch,setSearchText=_ref.setSearchText,onDonePress=_ref.onDonePress;var touchY;(0,_react.useEffect)(function(){setSearchText("");},[isVisible,setSearchText]);return _react.default.createElement(_react.default.Fragment,null,_react.default.createElement(_.Container,(0,_extends2.default)({bg:bg,onTouchStart:function onTouchStart(e){return touchY=e.nativeEvent.pageY;},onTouchEnd:function onTouchEnd(e){if(e.nativeEvent.pageY-touchY>20)hide();},pb:12,borderRadius:20},titleContainerStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:37,columnNumber:7}}),_react.default.createElement(_.Container,{mb:16,flexDirection:"row",justifyContent:"space-between",__self:_this,__source:{fileName:_jsxFileName,lineNumber:48,columnNumber:9}},title&&_react.default.createElement(_.Typography,(0,_extends2.default)({textStyle:"modalHeader"},titleTextStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:50,columnNumber:13}}),title),contentType&&_react.default.createElement(_.Touchable,{onPress:function onPress(){hide();onDonePress();},__self:_this,__source:{fileName:_jsxFileName,lineNumber:55,columnNumber:13}},_react.default.createElement(_.Typography,{textStyle:"modalHeader",color:"font.purple500",__self:_this,__source:{fileName:_jsxFileName,lineNumber:61,columnNumber:15}},"Done"))),canSearch&&_react.default.createElement(_.SearchBar,{placeholder:"Search",onChangeText:setSearchText,onCancel:function onCancel(){setSearchText("");},showCancelButton:false,__self:_this,__source:{fileName:_jsxFileName,lineNumber:69,columnNumber:11}})));};Title.propTypes={title:_propTypes.default.string,isVisible:_propTypes.default.bool,hide:_propTypes.default.func,bg:_propTypes.default.string,titleContainerStyle:_propTypes.default.object,titleTextStyle:_propTypes.default.object,contentType:_propTypes.default.oneOf(["checkbox",null]),canSearch:_propTypes.default.bool,setSearchText:_propTypes.default.func,onDonePress:_propTypes.default.func};var BottomSheet=function BottomSheet(_ref2){var showCreateOption=_ref2.showCreateOption,CreateItemComponent=_ref2.CreateItemComponent,showCreateOptionLoader=_ref2.showCreateOptionLoader,createSearchedOptionLabelStyle=_ref2.createSearchedOptionLabelStyle,createOptionLabel=_ref2.createOptionLabel,onPressCreateOption=_ref2.onPressCreateOption,createSearchedOptionContainerStyle=_ref2.createSearchedOptionContainerStyle,_ref2$data=_ref2.data,data=_ref2$data===void 0?[]:_ref2$data,title=_ref2.title,hide=_ref2.hide,isVisible=_ref2.isVisible,onItemPress=_ref2.onItemPress,selectedItemIndex=_ref2.selectedItemIndex,bg=_ref2.bg,children=_ref2.children,titleContainerStyle=_ref2.titleContainerStyle,titleTextStyle=_ref2.titleTextStyle,modalParams=_ref2.modalParams,HeaderComponent=_ref2.HeaderComponent,ContentRow=_ref2.ContentRow,contentType=_ref2.contentType,canSearch=_ref2.canSearch,onDonePress=_ref2.onDonePress,rest=(0,_objectWithoutProperties2.default)(_ref2,_excluded);var _useState=(0,_react.useState)(""),_useState2=(0,_slicedToArray2.default)(_useState,2),searchText=_useState2[0],setSearchText=_useState2[1];var fuse=new _fuse.default(data,{keys:_constants.FUSE_KEYS,threshold:0.1});var generateData=function generateData(){if(searchText.trim().length){return fuse.search(searchText.trim()).map(function(item){return item.item;});}else{return data;}};var contentContainerStyle={paddingBottom:50};return _react.default.createElement(_reactNativeModal.default,(0,_extends2.default)({style:styles.modalStyle,isVisible:isVisible,onBackdropPress:hide,useNativeDriver:true,avoidKeyboard:true,hideModalContentWhileAnimating:true,onRequestClose:hide},modalParams,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:176,columnNumber:5}}),_react.default.createElement(_reactNativeSafeAreaContext.SafeAreaView,{style:styles.safeAreaView,__self:_this,__source:{fileName:_jsxFileName,lineNumber:186,columnNumber:7}},_react.default.createElement(_.Container,(0,_extends2.default)({bg:bg,borderTopRightRadius:20,borderTopLeftRadius:20,p:16},rest,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:187,columnNumber:9}}),title&&_react.default.createElement(Title,{bg:bg,title:title,isVisible:isVisible,hide:hide,titleContainerStyle:titleContainerStyle,titleTextStyle:titleTextStyle,HeaderComponent:HeaderComponent,contentType:contentType,canSearch:canSearch,searchText:searchText,setSearchText:setSearchText,onDonePress:onDonePress,__self:_this,__source:{fileName:_jsxFileName,lineNumber:195,columnNumber:13}}),data&&_react.default.createElement(_reactNative.FlatList,{ListFooterComponent:children,initialNumToRender:data.length,onScrollBeginDrag:_reactNative.Keyboard.dismiss,data:generateData(),renderItem:function renderItem(_ref3){var item=_ref3.item,index=_ref3.index;return _react.default.createElement(ContentRow,{isSelected:index===selectedItemIndex,key:index,onPress:function onPress(){!contentType&&hide();onItemPress({index:index,item:item});},index:index,item:item,__self:_this,__source:{fileName:_jsxFileName,lineNumber:219,columnNumber:19}});},keyExtractor:function keyExtractor(item,index){return index;},contentContainerStyle:contentContainerStyle,__self:_this,__source:{fileName:_jsxFileName,lineNumber:212,columnNumber:13}}),showCreateOptionLoader?_react.default.createElement(_reactNative.ActivityIndicator,{size:"small",color:_theme.theme.colors.background.base,__self:_this,__source:{fileName:_jsxFileName,lineNumber:239,columnNumber:13}}):!!searchText.trim()&&!generateData().length&&showCreateOption&&_react.default.createElement(_.Container,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:247,columnNumber:15}},CreateItemComponent?_react.default.createElement(CreateItemComponent,{searchText:searchText,__self:_this,__source:{fileName:_jsxFileName,lineNumber:249,columnNumber:19}}):_react.default.createElement(_.Touchable,(0,_extends2.default)({height:40,justifyContent:"center",alignItems:"center",onPress:function onPress(){return onPressCreateOption(searchText);}},createSearchedOptionContainerStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:251,columnNumber:19}}),_react.default.createElement(_.Typography,(0,_extends2.default)({fontFamily:"sf400",fontSize:"s",color:"font.grey"},createSearchedOptionLabelStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:258,columnNumber:21}}),createOptionLabel||"Create "+searchText+" option"))))));};exports.BottomSheet=BottomSheet;BottomSheet.defaultProps={bg:"background.primary",showCreateOption:false,showCreateOptionLoader:false,createOptionLabel:null,onPressCreateOption:function onPressCreateOption(){},CreateItemComponent:null,onDonePress:function onDonePress(){}};BottomSheet.propTypes={data:_propTypes.default.array,title:_propTypes.default.string,isVisible:_propTypes.default.bool,hide:_propTypes.default.func,onItemPress:_propTypes.default.func,selectedItemIndex:_propTypes.default.number,onDonePress:_propTypes.default.func,bg:_propTypes.default.string,titleContainerStyle:_propTypes.default.object,titleTextStyle:_propTypes.default.object,showCreateOption:_propTypes.default.bool,showCreateOptionLoader:_propTypes.default.bool,createOptionLabel:_propTypes.default.string,onPressCreateOption:_propTypes.default.func,CreateItemComponent:_propTypes.default.node,createSearchedOptionLabelStyle:_propTypes.default.object,createSearchedOptionContainerStyle:_propTypes.default.object,modalParams:_propTypes.default.object,children:_propTypes.default.node,HeaderComponent:_propTypes.default.elementType,ContentRow:_propTypes.default.elementType,contentType:_propTypes.default.oneOf(["checkbox",null]),canSearch:_propTypes.default.bool};var styles=_reactNative.StyleSheet.create({safeAreaView:{maxHeight:"70%",backgroundColor:_theme.theme.colors.background.primary,borderTopRightRadius:20,borderTopLeftRadius:20},modalStyle:{margin:0,justifyContent:"flex-end"},inputContainerStyle:{backgroundColor:"white",borderRadius:10}});
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.BottomSheet=void 0;var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativeModal=_interopRequireDefault(require("react-native-modal"));var _reactNativeSafeAreaContext=require("react-native-safe-area-context");var _=require("./");var _theme=require("../theme");var _excluded=["showCreateOption","CreateItemComponent","showCreateOptionLoader","createSearchedOptionLabelStyle","createOptionLabel","onPressCreateOption","createSearchedOptionContainerStyle","data","title","hide","isVisible","onItemPress","selectedItemIndex","bg","children","titleContainerStyle","titleTextStyle","modalParams","HeaderComponent","ContentRow","contentType","canSearch","onDonePress","disabled","noResultsLabelContainerStyle","noResultsLabelStyle","noResultsLabel","NoResultsComponent","labelExtractor"];var _this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/BottomSheet.js";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var Title=function Title(_ref){var title=_ref.title,bg=_ref.bg,isVisible=_ref.isVisible,hide=_ref.hide,titleContainerStyle=_ref.titleContainerStyle,titleTextStyle=_ref.titleTextStyle,contentType=_ref.contentType,canSearch=_ref.canSearch,setSearchText=_ref.setSearchText,onDonePress=_ref.onDonePress;var touchY;(0,_react.useEffect)(function(){setSearchText("");},[isVisible,setSearchText]);return _react.default.createElement(_react.default.Fragment,null,_react.default.createElement(_.Container,(0,_extends2.default)({bg:bg,onTouchStart:function onTouchStart(e){return touchY=e.nativeEvent.pageY;},onTouchEnd:function onTouchEnd(e){if(e.nativeEvent.pageY-touchY>20)hide();},pb:12,borderRadius:20},titleContainerStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:35,columnNumber:7}}),_react.default.createElement(_.Container,{mb:16,flexDirection:"row",justifyContent:"space-between",__self:_this,__source:{fileName:_jsxFileName,lineNumber:46,columnNumber:9}},title&&_react.default.createElement(_.Typography,(0,_extends2.default)({textStyle:"modalHeader"},titleTextStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:48,columnNumber:13}}),title),contentType&&_react.default.createElement(_.Touchable,{onPress:function onPress(){hide();onDonePress();},__self:_this,__source:{fileName:_jsxFileName,lineNumber:53,columnNumber:13}},_react.default.createElement(_.Typography,{textStyle:"modalHeader",color:"font.purple500",__self:_this,__source:{fileName:_jsxFileName,lineNumber:59,columnNumber:15}},"Done"))),canSearch&&_react.default.createElement(_.SearchBar,{placeholder:"Search",onChangeText:setSearchText,onCancel:function onCancel(){setSearchText("");},showCancelButton:false,__self:_this,__source:{fileName:_jsxFileName,lineNumber:67,columnNumber:11}})));};Title.propTypes={title:_propTypes.default.string,isVisible:_propTypes.default.bool,hide:_propTypes.default.func,bg:_propTypes.default.string,titleContainerStyle:_propTypes.default.object,titleTextStyle:_propTypes.default.object,contentType:_propTypes.default.oneOf(["checkbox",null]),canSearch:_propTypes.default.bool,setSearchText:_propTypes.default.func,onDonePress:_propTypes.default.func};var BottomSheet=function BottomSheet(_ref2){var showCreateOption=_ref2.showCreateOption,CreateItemComponent=_ref2.CreateItemComponent,showCreateOptionLoader=_ref2.showCreateOptionLoader,createSearchedOptionLabelStyle=_ref2.createSearchedOptionLabelStyle,createOptionLabel=_ref2.createOptionLabel,onPressCreateOption=_ref2.onPressCreateOption,createSearchedOptionContainerStyle=_ref2.createSearchedOptionContainerStyle,_ref2$data=_ref2.data,data=_ref2$data===void 0?[]:_ref2$data,title=_ref2.title,hide=_ref2.hide,isVisible=_ref2.isVisible,onItemPress=_ref2.onItemPress,selectedItemIndex=_ref2.selectedItemIndex,bg=_ref2.bg,children=_ref2.children,titleContainerStyle=_ref2.titleContainerStyle,titleTextStyle=_ref2.titleTextStyle,modalParams=_ref2.modalParams,HeaderComponent=_ref2.HeaderComponent,ContentRow=_ref2.ContentRow,contentType=_ref2.contentType,canSearch=_ref2.canSearch,onDonePress=_ref2.onDonePress,disabled=_ref2.disabled,noResultsLabelContainerStyle=_ref2.noResultsLabelContainerStyle,noResultsLabelStyle=_ref2.noResultsLabelStyle,noResultsLabel=_ref2.noResultsLabel,NoResultsComponent=_ref2.NoResultsComponent,labelExtractor=_ref2.labelExtractor,rest=(0,_objectWithoutProperties2.default)(_ref2,_excluded);var _useState=(0,_react.useState)(""),_useState2=(0,_slicedToArray2.default)(_useState,2),searchText=_useState2[0],setSearchText=_useState2[1];var getLabel=function getLabel(item,index){return(item==null?void 0:item.label)||labelExtractor(item,index)||item;};var generateData=function generateData(){if(searchText.length){return data.filter(function(item){return getLabel(item).toLowerCase().includes(searchText.toLowerCase());});}else{return data;}};var hideCreateComponent=function hideCreateComponent(){var filteredItemCount=generateData().filter(function(data){return getLabel(data).toLocaleLowerCase()===searchText.toLocaleLowerCase();}).length;return filteredItemCount>0;};return _react.default.createElement(_reactNativeModal.default,(0,_extends2.default)({style:styles.modalStyle,isVisible:isVisible,onBackdropPress:hide,useNativeDriver:true,avoidKeyboard:true,hideModalContentWhileAnimating:true,onRequestClose:hide},modalParams,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:189,columnNumber:5}}),_react.default.createElement(_reactNativeSafeAreaContext.SafeAreaView,{style:styles.safeAreaView,__self:_this,__source:{fileName:_jsxFileName,lineNumber:199,columnNumber:7}},_react.default.createElement(_.Container,(0,_extends2.default)({bg:bg,borderTopRightRadius:20,borderTopLeftRadius:20,p:16,flex:1},rest,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:200,columnNumber:9}}),title&&_react.default.createElement(Title,{bg:bg,title:title,isVisible:isVisible,hide:hide,titleContainerStyle:titleContainerStyle,titleTextStyle:titleTextStyle,HeaderComponent:HeaderComponent,contentType:contentType,canSearch:canSearch,searchText:searchText,setSearchText:setSearchText,onDonePress:onDonePress,__self:_this,__source:{fileName:_jsxFileName,lineNumber:209,columnNumber:13}}),data&&_react.default.createElement(_reactNative.FlatList,{ListFooterComponent:_react.default.createElement(_.Container,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:228,columnNumber:17}},children,!!searchText&&!showCreateOption&&(NoResultsComponent?_react.default.createElement(NoResultsComponent,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:233,columnNumber:23}}):_react.default.createElement(_.Container,(0,_extends2.default)({alignItems:"center",py:2,mb:2},noResultsLabelContainerStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:235,columnNumber:23}}),_react.default.createElement(_.Typography,(0,_extends2.default)({fontFamily:"sf600",fontSize:"s",color:"font.grey"},noResultsLabelStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:241,columnNumber:25}}),noResultsLabel||"No options found"))),!disabled&&!hideCreateComponent()&&(showCreateOptionLoader?_react.default.createElement(_reactNative.ActivityIndicator,{size:"small",color:_theme.theme.colors.background.base,__self:_this,__source:{fileName:_jsxFileName,lineNumber:255,columnNumber:23}}):!!searchText&&showCreateOption&&_react.default.createElement(_.Container,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:262,columnNumber:25}},CreateItemComponent?_react.default.createElement(CreateItemComponent,{searchText:searchText,__self:_this,__source:{fileName:_jsxFileName,lineNumber:264,columnNumber:29}}):_react.default.createElement(_.Touchable,(0,_extends2.default)({height:40,justifyContent:"center",alignItems:"center",onPress:function onPress(){return onPressCreateOption(searchText);}},createSearchedOptionContainerStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:266,columnNumber:29}}),_react.default.createElement(_.Typography,(0,_extends2.default)({fontFamily:"sf400",fontSize:"s",color:"font.grey"},createSearchedOptionLabelStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:273,columnNumber:31}}),createOptionLabel||"Create "+searchText+" option"))))),initialNumToRender:data.length,onScrollBeginDrag:_reactNative.Keyboard.dismiss,data:generateData(),renderItem:function renderItem(_ref3){var item=_ref3.item,index=_ref3.index;return _react.default.createElement(ContentRow,{isSelected:index===selectedItemIndex,key:index,onPress:function onPress(){!contentType&&hide();onItemPress({index:index,item:item});},index:index,item:item,__self:_this,__source:{fileName:_jsxFileName,lineNumber:294,columnNumber:19}});},keyExtractor:function keyExtractor(item,index){return index;},__self:_this,__source:{fileName:_jsxFileName,lineNumber:226,columnNumber:13}}))));};exports.BottomSheet=BottomSheet;BottomSheet.defaultProps={bg:"background.primary",showCreateOption:false,showCreateOptionLoader:false,createOptionLabel:null,onPressCreateOption:function onPressCreateOption(){},CreateItemComponent:null,onDonePress:function onDonePress(){}};BottomSheet.propTypes={data:_propTypes.default.array,title:_propTypes.default.string,isVisible:_propTypes.default.bool,hide:_propTypes.default.func,onItemPress:_propTypes.default.func,selectedItemIndex:_propTypes.default.number,onDonePress:_propTypes.default.func,bg:_propTypes.default.string,titleContainerStyle:_propTypes.default.object,titleTextStyle:_propTypes.default.object,showCreateOption:_propTypes.default.bool,showCreateOptionLoader:_propTypes.default.bool,createOptionLabel:_propTypes.default.string,onPressCreateOption:_propTypes.default.func,CreateItemComponent:_propTypes.default.node,createSearchedOptionLabelStyle:_propTypes.default.object,disabled:_propTypes.default.bool,createSearchedOptionContainerStyle:_propTypes.default.object,noResultsLabelContainerStyle:_propTypes.default.object,noResultsLabelStyle:_propTypes.default.object,noResultsLabel:_propTypes.default.string,NoResultsComponent:_propTypes.default.node,labelExtractor:_propTypes.default.func,valueExtractor:_propTypes.default.func,modalParams:_propTypes.default.object,children:_propTypes.default.node,HeaderComponent:_propTypes.default.elementType,ContentRow:_propTypes.default.elementType,contentType:_propTypes.default.oneOf(["checkbox",null]),canSearch:_propTypes.default.bool};var styles=_reactNative.StyleSheet.create({safeAreaView:{maxHeight:"70%",backgroundColor:_theme.theme.colors.background.primary,borderTopRightRadius:20,borderTopLeftRadius:20,flex:1},modalStyle:{margin:0,justifyContent:"flex-end",flex:1},inputContainerStyle:{backgroundColor:"white",borderRadius:10}});
@@ -1 +1 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.Carousel=void 0;var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativeSnapCarousel=_interopRequireWildcard(require("react-native-snap-carousel"));var _=require("./");var _this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/Carousel.js";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var _Dimensions$get=_reactNative.Dimensions.get("screen"),width=_Dimensions$get.width;var Carousel=function Carousel(_ref){var itemArray=_ref.itemArray,renderItem=_ref.renderItem,carouselRef=_ref.carouselRef,_onSnapToItem=_ref.onSnapToItem;var _useWindowDimensions=(0,_reactNative.useWindowDimensions)(),width=_useWindowDimensions.width;var _useState=(0,_react.useState)(0),_useState2=(0,_slicedToArray2.default)(_useState,2),activeIndex=_useState2[0],setActiveIndex=_useState2[1];return _react.default.createElement(_.Container,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:51,columnNumber:5}},_react.default.createElement(_reactNativeSnapCarousel.default,{ref:carouselRef,data:itemArray,renderItem:renderItem,sliderWidth:width,itemWidth:width,onSnapToItem:function onSnapToItem(index){_onSnapToItem(index);setActiveIndex(index);},__self:_this,__source:{fileName:_jsxFileName,lineNumber:52,columnNumber:7}}),_react.default.createElement(_reactNativeSnapCarousel.Pagination,{dotsLength:itemArray.length,activeDotIndex:activeIndex,dotStyle:styles.dotStyle,inactiveDotStyle:styles.inactiveDotStyle,inactiveDotOpacity:0.4,inactiveDotScale:0.6,dotContainerStyle:styles.dotContainerStyle,__self:_this,__source:{fileName:_jsxFileName,lineNumber:64,columnNumber:7}}));};exports.Carousel=Carousel;var styles=_reactNative.StyleSheet.create({image:{height:width/1.8,width:width/1.8,resizeMode:"contain",borderRadius:20},indicator:{height:12,width:12,borderRadius:10,marginVertical:20,marginHorizontal:5,backgroundColor:"#49545C",borderColor:"#FFFFFF",borderWidth:2},dotStyle:{width:10,height:10,borderRadius:5,marginHorizontal:8,backgroundColor:"#2F3941"},inactiveDotStyle:{backgroundColor:"#D9D9D9"},dotContainerStyle:{marginHorizontal:0}});Carousel.propTypes={itemArray:_propTypes.default.array.isRequired,renderItem:_propTypes.default.func.isRequired,onSnapToItem:_propTypes.default.func,carouselRef:_propTypes.default.object};
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.Carousel=void 0;var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativeSnapCarousel=_interopRequireWildcard(require("react-native-snap-carousel"));var _=require("./");var _this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/Carousel.js";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var _Dimensions$get=_reactNative.Dimensions.get("screen"),width=_Dimensions$get.width;var Carousel=function Carousel(_ref){var itemArray=_ref.itemArray,renderItem=_ref.renderItem,carouselRef=_ref.carouselRef,_onSnapToItem=_ref.onSnapToItem;var _useWindowDimensions=(0,_reactNative.useWindowDimensions)(),width=_useWindowDimensions.width;var _useState=(0,_react.useState)(0),_useState2=(0,_slicedToArray2.default)(_useState,2),activeIndex=_useState2[0],setActiveIndex=_useState2[1];return _react.default.createElement(_.Container,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:51,columnNumber:5}},_react.default.createElement(_reactNativeSnapCarousel.default,{ref:carouselRef,data:itemArray,renderItem:renderItem,sliderWidth:width,itemWidth:width,onSnapToItem:function onSnapToItem(index){_onSnapToItem(index);setActiveIndex(index);},__self:_this,__source:{fileName:_jsxFileName,lineNumber:52,columnNumber:7}}),_react.default.createElement(_reactNativeSnapCarousel.Pagination,{dotsLength:itemArray.length,activeDotIndex:activeIndex,dotStyle:styles.dotStyle,inactiveDotStyle:styles.inactiveDotStyle,inactiveDotOpacity:1,inactiveDotScale:1,dotContainerStyle:styles.dotContainerStyle,__self:_this,__source:{fileName:_jsxFileName,lineNumber:64,columnNumber:7}}));};exports.Carousel=Carousel;var styles=_reactNative.StyleSheet.create({image:{height:width/1.8,width:width/1.8,resizeMode:"contain",borderRadius:20},indicator:{height:12,width:12,borderRadius:10,marginVertical:20,marginHorizontal:5,backgroundColor:"#49545C",borderColor:"#FFFFFF",borderWidth:2},dotStyle:{width:10,height:10,borderRadius:5,marginRight:8,backgroundColor:"#2F3941"},inactiveDotStyle:{backgroundColor:"#D9D9D9"},dotContainerStyle:{marginHorizontal:0}});Carousel.propTypes={itemArray:_propTypes.default.array.isRequired,renderItem:_propTypes.default.func.isRequired,onSnapToItem:_propTypes.default.func,carouselRef:_propTypes.default.object};
@@ -1 +1 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.ListItem=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var React=_interopRequireWildcard(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _propTypes2=_interopRequireDefault(require("@styled-system/prop-types"));var _=require("./");var _excluded=["LeftComponent","label","RightComponent"];var _this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/ListItem.js";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var ListItem=function ListItem(_ref){var LeftComponent=_ref.LeftComponent,label=_ref.label,RightComponent=_ref.RightComponent,rest=(0,_objectWithoutProperties2.default)(_ref,_excluded);return React.createElement(_.Container,(0,_extends2.default)({flexDirection:"row",bg:"background.secondary",width:"100%",px:16,py:12,borderRadius:6,alignItems:"center",justifyContent:"space-between"},rest,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:35,columnNumber:5}}),React.createElement(_.Container,{flexDirection:"row",alignItems:"center",width:"50%",__self:_this,__source:{fileName:_jsxFileName,lineNumber:46,columnNumber:7}},LeftComponent&&React.createElement(LeftComponent,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:47,columnNumber:27}}),React.createElement(_.Typography,{color:"font.grey800",fontSize:"l",fontFamily:"sf400",__self:_this,__source:{fileName:_jsxFileName,lineNumber:48,columnNumber:9}},label)),React.createElement(_.Container,{width:"50%",alignItems:"flex-end",__self:_this,__source:{fileName:_jsxFileName,lineNumber:52,columnNumber:7}},React.createElement(RightComponent,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:53,columnNumber:9}})));};exports.ListItem=ListItem;ListItem.propTypes=(0,_extends2.default)({},_propTypes2.default.flexbox,_propTypes2.default.space,_propTypes2.default.border,_propTypes2.default.color,_propTypes2.default.layout,{LeftComponent:_propTypes.default.elementType,label:_propTypes.default.string.isRequired,RightComponent:_propTypes.default.elementType.isRequired});
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.ListItem=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var React=_interopRequireWildcard(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _propTypes2=_interopRequireDefault(require("@styled-system/prop-types"));var _=require("./");var _excluded=["LeftComponent","label","RightComponent"];var _this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/ListItem.js";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var ListItem=function ListItem(_ref){var LeftComponent=_ref.LeftComponent,label=_ref.label,RightComponent=_ref.RightComponent,rest=(0,_objectWithoutProperties2.default)(_ref,_excluded);return React.createElement(_.Container,(0,_extends2.default)({flexDirection:"row",bg:"background.secondary",width:"100%",px:16,py:12,borderRadius:6,alignItems:"center",justifyContent:"space-between"},rest,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:35,columnNumber:5}}),React.createElement(_.Container,{flexDirection:"row",alignItems:"center",width:"50%",__self:_this,__source:{fileName:_jsxFileName,lineNumber:46,columnNumber:7}},LeftComponent&&React.createElement(LeftComponent,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:47,columnNumber:27}}),React.createElement(_.Typography,{color:"font.grey800",fontSize:"l",fontFamily:"sf500",__self:_this,__source:{fileName:_jsxFileName,lineNumber:48,columnNumber:9}},label)),React.createElement(_.Container,{width:"50%",alignItems:"flex-end",__self:_this,__source:{fileName:_jsxFileName,lineNumber:52,columnNumber:7}},React.createElement(RightComponent,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:53,columnNumber:9}})));};exports.ListItem=ListItem;ListItem.propTypes=(0,_extends2.default)({},_propTypes2.default.flexbox,_propTypes2.default.space,_propTypes2.default.border,_propTypes2.default.color,_propTypes2.default.layout,{LeftComponent:_propTypes.default.elementType,label:_propTypes.default.string.isRequired,RightComponent:_propTypes.default.elementType.isRequired});
@@ -1 +1 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.MultiSelect=void 0;var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react=_interopRequireWildcard(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNative=require("react-native");var _reactNativeGestureHandler=require("react-native-gesture-handler");var _reactNativeReanimated=require("react-native-reanimated");var _reactNativeRemixIcon=_interopRequireDefault(require("react-native-remix-icon"));var _native=require("styled-components/native");var _=require("./");var _excluded=["options","label","value","placeholder","labelExtractor","valueExtractor","onSelect","deletedValue","isLoading","isSearchable","showCreateOption","labelStyle","containerStyle","inputContainerStyle","dropdownContainerStyle","itemContainerStyle","multiSelectedItemContainerStyle","multiSelectedItemLabelStyle","selectedValue","CreateItemComponent","showCreateOptionLoader","createSearchedOptionLabelStyle","onPressCreateOption","createSearchedOptionContainerStyle","onDonePress"];var _this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/MultiSelect.js";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var MultiSelectItem=function MultiSelectItem(_ref){var label=_ref.label,onUnselect=_ref.onUnselect,multiSelectedItemContainerStyle=_ref.multiSelectedItemContainerStyle,multiSelectedItemLabelStyle=_ref.multiSelectedItemLabelStyle;return _react.default.createElement(_.Container,(0,_extends2.default)({bg:"background.secondary",borderRadius:12,flexDirection:"row",alignItems:"center",justifyContent:"space-between",px:2,py:1,m:1},multiSelectedItemContainerStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:27,columnNumber:3}}),_react.default.createElement(_.Typography,(0,_extends2.default)({fontFamily:"sf400",fontSize:"s",mr:2,color:"font.grey800"},multiSelectedItemLabelStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:38,columnNumber:5}}),label),_react.default.createElement(_reactNative.TouchableWithoutFeedback,{onPress:onUnselect,__self:_this,__source:{fileName:_jsxFileName,lineNumber:47,columnNumber:5}},_react.default.createElement(_reactNativeRemixIcon.default,{name:"ri-close-line",size:"20",color:"grey800",__self:_this,__source:{fileName:_jsxFileName,lineNumber:48,columnNumber:7}})));};MultiSelectItem.propTypes={label:_propTypes.default.string,onUnselect:_propTypes.default.func,multiSelectedItemContainerStyle:_propTypes.default.object,multiSelectedItemLabelStyle:_propTypes.default.object};var DropdownItem=function DropdownItem(_ref2){var label=_ref2.label,onPress=_ref2.onPress,defaultDropdownItemHeight=_ref2.defaultDropdownItemHeight,itemContainerStyle=_ref2.itemContainerStyle,itemLabelStyle=_ref2.itemLabelStyle;return _react.default.createElement(_.Touchable,{bg:"background.white",onPress:onPress,__self:_this,__source:{fileName:_jsxFileName,lineNumber:68,columnNumber:5}},_react.default.createElement(_.Container,(0,_extends2.default)({height:defaultDropdownItemHeight,p:2},itemContainerStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:69,columnNumber:7}}),_react.default.createElement(_.Typography,(0,_extends2.default)({fontFamily:"sf400",fontSize:"s",color:"font.grey"},itemLabelStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:74,columnNumber:9}}),label)));};DropdownItem.propTypes={label:_propTypes.default.string,onPress:_propTypes.default.func,defaultDropdownItemHeight:_propTypes.default.number,itemContainerStyle:_propTypes.default.object,itemLabelStyle:_propTypes.default.object};var MultiSelect=function MultiSelect(_ref3){var options=_ref3.options,label=_ref3.label,value=_ref3.value,placeholder=_ref3.placeholder,labelExtractor=_ref3.labelExtractor,valueExtractor=_ref3.valueExtractor,onSelect=_ref3.onSelect,deletedValue=_ref3.deletedValue,isLoading=_ref3.isLoading,isSearchable=_ref3.isSearchable,showCreateOption=_ref3.showCreateOption,labelStyle=_ref3.labelStyle,containerStyle=_ref3.containerStyle,inputContainerStyle=_ref3.inputContainerStyle,dropdownContainerStyle=_ref3.dropdownContainerStyle,itemContainerStyle=_ref3.itemContainerStyle,multiSelectedItemContainerStyle=_ref3.multiSelectedItemContainerStyle,multiSelectedItemLabelStyle=_ref3.multiSelectedItemLabelStyle,selectedValue=_ref3.selectedValue,CreateItemComponent=_ref3.CreateItemComponent,showCreateOptionLoader=_ref3.showCreateOptionLoader,createSearchedOptionLabelStyle=_ref3.createSearchedOptionLabelStyle,onPressCreateOption=_ref3.onPressCreateOption,createSearchedOptionContainerStyle=_ref3.createSearchedOptionContainerStyle,onDonePress=_ref3.onDonePress,rest=(0,_objectWithoutProperties2.default)(_ref3,_excluded);var theme=(0,_react.useContext)(_native.ThemeContext);var _useState=(0,_react.useState)(false),_useState2=(0,_slicedToArray2.default)(_useState,2),showDropdown=_useState2[0],setShowDropdown=_useState2[1];var _useState3=(0,_react.useState)(""),_useState4=(0,_slicedToArray2.default)(_useState3,2),searchQuery=_useState4[0],setSearchQuery=_useState4[1];var dropdownAnimatedHeight=(0,_reactNativeReanimated.useSharedValue)(0);var formatStr=function formatStr(str){var _str$toLowerCase;return str==null?void 0:(_str$toLowerCase=str.toLowerCase())==null?void 0:_str$toLowerCase.trim();};var filteredOptions=options.filter(function(item,index){var optionValue=valueExtractor(item,index);var isItemAlreadySelected=Boolean(value==null?void 0:value.find(function(selectedItem){return valueExtractor(selectedItem)===optionValue;}));return!isItemAlreadySelected;}).filter(function(item,index){var optionLabel=labelExtractor(item,index);if(searchQuery.length===0)return true;return formatStr(optionLabel).includes(formatStr(searchQuery));});var isOptionsEmpty=!options||(options==null?void 0:options.length)===0;var isSearchedOptionsEmpty=searchQuery.length>0&&filteredOptions.length===0;var emptyOptionsPlaceholderHeight=40;var emptySearchedOptionsHeight=40;var searchInputHeight=35;var multipleOptionsSelected=(value==null?void 0:value.length)>0;var defaultDropdownItemHeight=(itemContainerStyle==null?void 0:itemContainerStyle.height)||32;var dropdownHeight=(dropdownContainerStyle==null?void 0:dropdownContainerStyle.height)||(dropdownContainerStyle==null?void 0:dropdownContainerStyle.maxHeight)||defaultDropdownItemHeight*Math.min(filteredOptions==null?void 0:filteredOptions.length,6)+(isSearchable?searchInputHeight+10:0)+(isOptionsEmpty&&!(isSearchedOptionsEmpty&&showCreateOption)?emptyOptionsPlaceholderHeight:0)+(isSearchedOptionsEmpty&&showCreateOption?emptySearchedOptionsHeight:0);var getValue=function getValue(item,index){return(item==null?void 0:item.value)||valueExtractor(item,index);};var handleCheckbox=function handleCheckbox(item){var oldData=(0,_toConsumableArray2.default)(value);var index=value.findIndex(function(data,index){return getValue(data,index)===getValue(item);});if(index===-1){oldData.push(item);}else{oldData.splice(index,1);}onSelect(oldData);};var CheckBoxContent=function CheckBoxContent(_ref4){var onPress=_ref4.onPress,item=_ref4.item,index=_ref4.index;var itemIndex=value.findIndex(function(data,i){return getValue(data,i)===getValue(item,index);});return!!(item!=null&&item.label)&&_react.default.createElement(_.Container,{py:12,__self:_this,__source:{fileName:_jsxFileName,lineNumber:231,columnNumber:9}},_react.default.createElement(_.CheckBox,{checked:itemIndex!==-1,onSelect:onPress,label:(item==null?void 0:item.label)||labelExtractor(item,index),__self:_this,__source:{fileName:_jsxFileName,lineNumber:232,columnNumber:11}}));};var handleOpenDropdown=function handleOpenDropdown(){_reactNative.Keyboard.dismiss();setSearchQuery("");if(!showDropdown){setShowDropdown(true);}if(showDropdown){dropdownAnimatedHeight.value=0;}};var handleUnselection=function handleUnselection(item){var newValue=value.filter(function(selectedItem){return valueExtractor(selectedItem)!==valueExtractor(item);});onSelect(newValue);deletedValue(item);};(0,_react.useEffect)(function(){if(showDropdown){dropdownAnimatedHeight.value=dropdownHeight;}},[showDropdown,dropdownHeight]);CheckBoxContent.propTypes={onPress:_propTypes.default.func,item:_propTypes.default.object,index:_propTypes.default.number};return _react.default.createElement(_.Container,(0,_extends2.default)({},containerStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:276,columnNumber:5}}),_react.default.createElement(_reactNative.TouchableWithoutFeedback,{disabled:isLoading,onPress:handleOpenDropdown,__self:_this,__source:{fileName:_jsxFileName,lineNumber:277,columnNumber:7}},_react.default.createElement(_.Container,(0,_extends2.default)({borderRadius:12,borderWidth:1,borderColor:showDropdown?"border.base":"border.grey400",p:multipleOptionsSelected?1:2,pr:2},inputContainerStyle,rest,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:281,columnNumber:9}}),_react.default.createElement(_.Typography,(0,_extends2.default)({fontFamily:"sf400",mb:1,fontSize:"xs",color:"font.grey600",ml:1},labelStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:290,columnNumber:11}}),label),_react.default.createElement(_.Container,{flexDirection:"row",justifyContent:"space-between",alignItems:"center",__self:_this,__source:{fileName:_jsxFileName,lineNumber:300,columnNumber:11}},!multipleOptionsSelected&&_react.default.createElement(_.Typography,{fontFamily:"sf400",fontSize:"s",color:"font.grey",__self:_this,__source:{fileName:_jsxFileName,lineNumber:306,columnNumber:15}},!multipleOptionsSelected&&placeholder),multipleOptionsSelected&&_react.default.createElement(_reactNativeGestureHandler.ScrollView,{showsVerticalScrollIndicator:false,__self:_this,__source:{fileName:_jsxFileName,lineNumber:311,columnNumber:15}},_react.default.createElement(_.Container,{flexWrap:"wrap",flexDirection:"row",maxWidth:"85%",onStartShouldSetResponder:function onStartShouldSetResponder(){return true;},__self:_this,__source:{fileName:_jsxFileName,lineNumber:312,columnNumber:17}},value==null?void 0:value.map(function(item,index){var optionLabel=labelExtractor(item,index);return _react.default.createElement(MultiSelectItem,{key:index,label:optionLabel,onUnselect:function onUnselect(){return handleUnselection(item);},multiSelectedItemContainerStyle:multiSelectedItemContainerStyle,multiSelectedItemLabelStyle:multiSelectedItemLabelStyle,__self:_this,__source:{fileName:_jsxFileName,lineNumber:321,columnNumber:23}});}))),isLoading?_react.default.createElement(_reactNative.ActivityIndicator,{size:"small",color:theme.colors.background.base,__self:_this,__source:{fileName:_jsxFileName,lineNumber:338,columnNumber:15}}):_react.default.createElement(_reactNativeRemixIcon.default,{name:"arrow-"+(showDropdown?"up":"down")+"-s-line",size:"20",color:"grey",__self:_this,__source:{fileName:_jsxFileName,lineNumber:343,columnNumber:15}})))),_react.default.createElement(_.BottomSheet,{title:label,onItemPress:function onItemPress(_ref5){var item=_ref5.item;handleCheckbox(item);selectedValue(item);},onDonePress:onDonePress,isVisible:showDropdown,hide:function hide(){return setShowDropdown(false);},canSearch:isSearchable,data:options,contentType:"checkbox",ContentRow:CheckBoxContent,showCreateOption:showCreateOption,CreateItemComponent:CreateItemComponent,showCreateOptionLoader:showCreateOptionLoader,createSearchedOptionLabelStyle:createSearchedOptionLabelStyle,onPressCreateOption:onPressCreateOption,createSearchedOptionContainerStyle:createSearchedOptionContainerStyle,__self:_this,__source:{fileName:_jsxFileName,lineNumber:353,columnNumber:7}}));};exports.MultiSelect=MultiSelect;MultiSelect.propTypes={label:_propTypes.default.string,options:_propTypes.default.arrayOf(_propTypes.default.shape({label:_propTypes.default.string,value:_propTypes.default.string})),placeholder:_propTypes.default.string,labelExtractor:_propTypes.default.func,valueExtractor:_propTypes.default.func,value:_propTypes.default.oneOfType([_propTypes.default.string,_propTypes.default.array]),onSelect:_propTypes.default.func,selectedValue:_propTypes.default.func,deletedValue:_propTypes.default.func,isLoading:_propTypes.default.bool,isSearchable:_propTypes.default.bool,onDonePress:_propTypes.default.func,showCreateOption:_propTypes.default.bool,showCreateOptionLoader:_propTypes.default.bool,createOptionLabel:_propTypes.default.string,onPressCreateOption:_propTypes.default.func,labelStyle:_propTypes.default.object,containerStyle:_propTypes.default.object,inputContainerStyle:_propTypes.default.object,dropdownContainerStyle:_propTypes.default.object,itemContainerStyle:_propTypes.default.object,itemLabelStyle:_propTypes.default.object,multiSelectedItemContainerStyle:_propTypes.default.object,multiSelectedItemLabelStyle:_propTypes.default.object,searchInputContainerStyle:_propTypes.default.object,searchInputStyle:_propTypes.default.object,emptyOptionsContainerStyle:_propTypes.default.object,emptyOptionsLabelStyle:_propTypes.default.object,createSearchedOptionContainerStyle:_propTypes.default.object,createSearchedOptionLabelStyle:_propTypes.default.object,CreateItemComponent:_propTypes.default.node};MultiSelect.defaultProps={label:null,placeholder:"Select Option",labelExtractor:function labelExtractor(option){return option==null?void 0:option.label;},valueExtractor:function valueExtractor(option){return option==null?void 0:option.value;},value:null,onSelect:function onSelect(){},selectedValue:function selectedValue(){},deletedValue:function deletedValue(){},isLoading:false,isSearchable:false,showCreateOption:false,showCreateOptionLoader:false,createOptionLabel:null,onPressCreateOption:function onPressCreateOption(){},onDonePress:function onDonePress(){}};
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.MultiSelect=void 0;var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _taggedTemplateLiteralLoose2=_interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _react=_interopRequireWildcard(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNative=require("react-native");var _reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated"));var _reactNativeRemixIcon=_interopRequireDefault(require("react-native-remix-icon"));var _native=_interopRequireWildcard(require("styled-components/native"));var _styledSystem=require("styled-system");var _=require("./");var _excluded=["options","label","value","labelExtractor","valueExtractor","onSelect","deletedValue","isLoading","isSearchable","showCreateOption","labelStyle","containerStyle","inputContainerStyle","dropdownContainerStyle","itemContainerStyle","multiSelectedItemContainerStyle","multiSelectedItemLabelStyle","selectedValue","CreateItemComponent","showCreateOptionLoader","createSearchedOptionLabelStyle","onPressCreateOption","createSearchedOptionContainerStyle","onDonePress","disabled","noResultsLabelContainerStyle","noResultsLabelStyle","noResultsLabel","NoResultsComponent","maxItemSize","moreItemLabelContainerStyle","moreItemLabelStyle","MoreItemComponent"];var _templateObject,_this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/MultiSelect.js";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var Typography=_native.default.Text(_templateObject||(_templateObject=(0,_taggedTemplateLiteralLoose2.default)(["\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n"])),_styledSystem.textStyle,_styledSystem.space,_styledSystem.layout,_styledSystem.flexbox,_styledSystem.typography,_styledSystem.color,_styledSystem.position,(0,_styledSystem.system)({textDecoration:{property:"textDecoration",cssProperty:"textDecoration"},textTransform:{property:"textTransform",cssProperty:"textTransform"}}));var MultiSelectItem=function MultiSelectItem(_ref){var label=_ref.label,onUnselect=_ref.onUnselect,multiSelectedItemContainerStyle=_ref.multiSelectedItemContainerStyle,multiSelectedItemLabelStyle=_ref.multiSelectedItemLabelStyle,disabled=_ref.disabled;var theme=(0,_react.useContext)(_native.ThemeContext);return _react.default.createElement(_.Container,(0,_extends2.default)({bg:"background.secondary",borderRadius:12,flexDirection:"row",alignItems:"center",justifyContent:"space-between",px:2,py:1,m:1},multiSelectedItemContainerStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:55,columnNumber:5}}),_react.default.createElement(Typography,(0,_extends2.default)({fontFamily:"sf400",fontSize:"s",mr:2,color:"font.grey800"},multiSelectedItemLabelStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:66,columnNumber:7}}),label),!disabled&&_react.default.createElement(_reactNative.TouchableWithoutFeedback,{disabled:disabled,onPress:onUnselect,__self:_this,__source:{fileName:_jsxFileName,lineNumber:76,columnNumber:9}},_react.default.createElement(_reactNativeRemixIcon.default,{name:"ri-close-line",size:"20",color:theme.colors.font.grey800,__self:_this,__source:{fileName:_jsxFileName,lineNumber:77,columnNumber:11}})));};MultiSelectItem.propTypes={label:_propTypes.default.string,onUnselect:_propTypes.default.func,multiSelectedItemContainerStyle:_propTypes.default.object,multiSelectedItemLabelStyle:_propTypes.default.object,disabled:_propTypes.default.bool};var DropdownItem=function DropdownItem(_ref2){var label=_ref2.label,onPress=_ref2.onPress,defaultDropdownItemHeight=_ref2.defaultDropdownItemHeight,itemContainerStyle=_ref2.itemContainerStyle,itemLabelStyle=_ref2.itemLabelStyle;return _react.default.createElement(_.Touchable,{bg:"background.white",onPress:onPress,__self:_this,__source:{fileName:_jsxFileName,lineNumber:104,columnNumber:5}},_react.default.createElement(_.Container,(0,_extends2.default)({height:defaultDropdownItemHeight,p:2},itemContainerStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:105,columnNumber:7}}),_react.default.createElement(Typography,(0,_extends2.default)({fontFamily:"sf400",fontSize:"s",color:"font.grey"},itemLabelStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:110,columnNumber:9}}),label)));};DropdownItem.propTypes={label:_propTypes.default.string,onPress:_propTypes.default.func,defaultDropdownItemHeight:_propTypes.default.number,itemContainerStyle:_propTypes.default.object,itemLabelStyle:_propTypes.default.object};var AnimatedLabel=_reactNativeReanimated.default.createAnimatedComponent(Typography);var MultiSelect=function MultiSelect(_ref3){var options=_ref3.options,label=_ref3.label,value=_ref3.value,labelExtractor=_ref3.labelExtractor,valueExtractor=_ref3.valueExtractor,onSelect=_ref3.onSelect,deletedValue=_ref3.deletedValue,isLoading=_ref3.isLoading,isSearchable=_ref3.isSearchable,showCreateOption=_ref3.showCreateOption,labelStyle=_ref3.labelStyle,containerStyle=_ref3.containerStyle,inputContainerStyle=_ref3.inputContainerStyle,dropdownContainerStyle=_ref3.dropdownContainerStyle,itemContainerStyle=_ref3.itemContainerStyle,multiSelectedItemContainerStyle=_ref3.multiSelectedItemContainerStyle,multiSelectedItemLabelStyle=_ref3.multiSelectedItemLabelStyle,selectedValue=_ref3.selectedValue,CreateItemComponent=_ref3.CreateItemComponent,showCreateOptionLoader=_ref3.showCreateOptionLoader,createSearchedOptionLabelStyle=_ref3.createSearchedOptionLabelStyle,onPressCreateOption=_ref3.onPressCreateOption,createSearchedOptionContainerStyle=_ref3.createSearchedOptionContainerStyle,onDonePress=_ref3.onDonePress,disabled=_ref3.disabled,noResultsLabelContainerStyle=_ref3.noResultsLabelContainerStyle,noResultsLabelStyle=_ref3.noResultsLabelStyle,noResultsLabel=_ref3.noResultsLabel,NoResultsComponent=_ref3.NoResultsComponent,maxItemSize=_ref3.maxItemSize,moreItemLabelContainerStyle=_ref3.moreItemLabelContainerStyle,moreItemLabelStyle=_ref3.moreItemLabelStyle,MoreItemComponent=_ref3.MoreItemComponent,rest=(0,_objectWithoutProperties2.default)(_ref3,_excluded);var theme=(0,_react.useContext)(_native.ThemeContext);var _useState=(0,_react.useState)(false),_useState2=(0,_slicedToArray2.default)(_useState,2),showDropdown=_useState2[0],setShowDropdown=_useState2[1];var _useState3=(0,_react.useState)(""),_useState4=(0,_slicedToArray2.default)(_useState3,2),searchQuery=_useState4[0],setSearchQuery=_useState4[1];var dropdownAnimatedHeight=(0,_reactNativeReanimated.useSharedValue)(0);var animatedLabelValue=(0,_reactNativeReanimated.useSharedValue)(0);var formatStr=function formatStr(str){var _str$toLowerCase;return str==null?void 0:(_str$toLowerCase=str.toLowerCase())==null?void 0:_str$toLowerCase.trim();};var filteredOptions=options.filter(function(item,index){var optionValue=valueExtractor(item,index);var isItemAlreadySelected=Boolean(value==null?void 0:value.find(function(selectedItem){return valueExtractor(selectedItem)===optionValue;}));return!isItemAlreadySelected;}).filter(function(item,index){var optionLabel=labelExtractor(item,index);if(searchQuery.length===0)return true;return formatStr(optionLabel).includes(formatStr(searchQuery));});var isOptionsEmpty=!options||(options==null?void 0:options.length)===0;var isSearchedOptionsEmpty=searchQuery.length>0&&filteredOptions.length===0;var emptyOptionsPlaceholderHeight=40;var emptySearchedOptionsHeight=40;var searchInputHeight=35;var multipleOptionsSelected=(value==null?void 0:value.length)>0;var defaultDropdownItemHeight=(itemContainerStyle==null?void 0:itemContainerStyle.height)||32;var dropdownHeight=(dropdownContainerStyle==null?void 0:dropdownContainerStyle.height)||(dropdownContainerStyle==null?void 0:dropdownContainerStyle.maxHeight)||defaultDropdownItemHeight*Math.min(filteredOptions==null?void 0:filteredOptions.length,6)+(isSearchable?searchInputHeight+10:0)+(isOptionsEmpty&&!(isSearchedOptionsEmpty&&showCreateOption)?emptyOptionsPlaceholderHeight:0)+(isSearchedOptionsEmpty&&showCreateOption?emptySearchedOptionsHeight:0);var getValue=function getValue(item,index){return(item==null?void 0:item.value)||valueExtractor(item,index)||item;};var getLabel=function getLabel(item,index){return(item==null?void 0:item.label)||labelExtractor(item,index)||item;};var handleCheckbox=function handleCheckbox(item){var oldData=(0,_toConsumableArray2.default)(value);var index=value.findIndex(function(data,index){return getValue(data,index)===getValue(item);});if(index===-1){oldData.push(item);}else{oldData.splice(index,1);}onSelect(oldData);};var CheckBoxContent=function CheckBoxContent(_ref4){var onPress=_ref4.onPress,item=_ref4.item,index=_ref4.index;var itemIndex=value.findIndex(function(data,i){return getValue(data,i)===getValue(item,index);});return _react.default.createElement(_.Container,{py:12,__self:_this,__source:{fileName:_jsxFileName,lineNumber:282,columnNumber:7}},_react.default.createElement(_.CheckBox,{disabled:disabled,checked:itemIndex!==-1,onSelect:onPress,label:(item==null?void 0:item.label)||labelExtractor(item,index)||item,__self:_this,__source:{fileName:_jsxFileName,lineNumber:283,columnNumber:9}}));};var handleOpenDropdown=function handleOpenDropdown(){_reactNative.Keyboard.dismiss();setSearchQuery("");if(!showDropdown){setShowDropdown(true);}if(showDropdown){dropdownAnimatedHeight.value=0;}};var handleUnSelection=function handleUnSelection(item){var newValue=value.filter(function(selectedItem){return valueExtractor(selectedItem)!==valueExtractor(item);});onSelect(newValue);deletedValue(item);};(0,_react.useEffect)(function(){animatedLabelValue.value=(0,_reactNativeReanimated.withTiming)(value.length||showDropdown?1:0,{duration:250});},[value,showDropdown]);(0,_react.useEffect)(function(){if(showDropdown){dropdownAnimatedHeight.value=dropdownHeight;}},[showDropdown,dropdownHeight]);CheckBoxContent.propTypes={onPress:_propTypes.default.func,item:_propTypes.default.object,index:_propTypes.default.number};var animatedStyles=(0,_reactNativeReanimated.useAnimatedStyle)(function(){var _f=function _f(){return{top:(0,_reactNativeReanimated.interpolate)(animatedLabelValue.value,[0,1],[7,-5]),fontSize:(0,_reactNativeReanimated.interpolate)(animatedLabelValue.value,[0,1],[17,13]),marginLeft:5,color:"font.grey600"};};_f._closure={interpolate:_reactNativeReanimated.interpolate,animatedLabelValue:animatedLabelValue};_f.asString="function _f(){const{interpolate,animatedLabelValue}=jsThis._closure;{return{top:interpolate(animatedLabelValue.value,[0,1],[7,-5]),fontSize:interpolate(animatedLabelValue.value,[0,1],[17,13]),marginLeft:5,color:\"font.grey600\"};}}";_f.__workletHash=14207624101948;_f.__location="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/MultiSelect.js (335:42)";_f.__optimalization=3;return _f;}());return _react.default.createElement(_.Container,(0,_extends2.default)({},containerStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:345,columnNumber:5}}),_react.default.createElement(_reactNative.TouchableWithoutFeedback,{disabled:isLoading,onPress:handleOpenDropdown,__self:_this,__source:{fileName:_jsxFileName,lineNumber:346,columnNumber:7}},_react.default.createElement(_.Container,(0,_extends2.default)({borderRadius:12,borderWidth:1,borderColor:showDropdown?"border.base":"border.grey400",p:2,pr:2,minHeight:58},inputContainerStyle,rest,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:350,columnNumber:9}}),_react.default.createElement(_.Container,{flexDirection:"row",justifyContent:"space-between",alignItems:"center",__self:_this,__source:{fileName:_jsxFileName,lineNumber:360,columnNumber:11}},_react.default.createElement(AnimatedLabel,{position:"absolute",zIndex:1,style:[animatedStyles,(0,_extends2.default)({},labelStyle)],__self:_this,__source:{fileName:_jsxFileName,lineNumber:365,columnNumber:13}},label),!multipleOptionsSelected&&_react.default.createElement(_.Container,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:372,columnNumber:42}}),multipleOptionsSelected&&_react.default.createElement(_.Container,{flexWrap:"wrap",flexDirection:"row",maxWidth:"85%",onStartShouldSetResponder:function onStartShouldSetResponder(){return true;},mt:3,__self:_this,__source:{fileName:_jsxFileName,lineNumber:374,columnNumber:15}},value==null?void 0:value.slice(0,maxItemSize).map(function(item,index){return _react.default.createElement(MultiSelectItem,{key:index,label:getLabel(item),onUnselect:function onUnselect(){return handleUnSelection(item);},multiSelectedItemContainerStyle:multiSelectedItemContainerStyle,multiSelectedItemLabelStyle:multiSelectedItemLabelStyle,disabled:disabled,__self:_this,__source:{fileName:_jsxFileName,lineNumber:383,columnNumber:21}});}),(value==null?void 0:value.length)>maxItemSize&&(!MoreItemComponent?_react.default.createElement(_.Container,(0,_extends2.default)({bg:"background.secondary",borderRadius:12,flexDirection:"row",alignItems:"center",justifyContent:"space-between",px:2,py:1,m:1},moreItemLabelContainerStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:397,columnNumber:21}}),_react.default.createElement(Typography,(0,_extends2.default)({},moreItemLabelStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:408,columnNumber:23}}),"+",(value==null?void 0:value.length)-maxItemSize," More")):_react.default.createElement(MoreItemComponent,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:413,columnNumber:21}}))),_react.default.createElement(_.Container,{mt:10,__self:_this,__source:{fileName:_jsxFileName,lineNumber:417,columnNumber:13}},isLoading?_react.default.createElement(_reactNative.ActivityIndicator,{size:"small",color:theme.colors.background.base,__self:_this,__source:{fileName:_jsxFileName,lineNumber:419,columnNumber:17}}):_react.default.createElement(_reactNativeRemixIcon.default,{name:"arrow-"+(showDropdown?"up":"down")+"-s-line",size:"20",color:"grey",__self:_this,__source:{fileName:_jsxFileName,lineNumber:424,columnNumber:17}}))))),_react.default.createElement(_.BottomSheet,{title:label,onItemPress:function onItemPress(_ref5){var item=_ref5.item;handleCheckbox(item);selectedValue(item);},disabled:disabled,onDonePress:onDonePress,isVisible:showDropdown,hide:function hide(){return setShowDropdown(false);},canSearch:isSearchable,data:options,contentType:"checkbox",ContentRow:CheckBoxContent,showCreateOption:showCreateOption,CreateItemComponent:CreateItemComponent,showCreateOptionLoader:showCreateOptionLoader,createSearchedOptionLabelStyle:createSearchedOptionLabelStyle,onPressCreateOption:onPressCreateOption,createSearchedOptionContainerStyle:createSearchedOptionContainerStyle,noResultsLabelContainerStyle:noResultsLabelContainerStyle,noResultsLabelStyle:noResultsLabelStyle,noResultsLabel:noResultsLabel,NoResultsComponent:NoResultsComponent,valueExtractor:valueExtractor,labelExtractor:labelExtractor,__self:_this,__source:{fileName:_jsxFileName,lineNumber:435,columnNumber:7}}));};exports.MultiSelect=MultiSelect;MultiSelect.propTypes={label:_propTypes.default.string,options:_propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string),_propTypes.default.arrayOf(_propTypes.default.object)]),labelExtractor:_propTypes.default.func,valueExtractor:_propTypes.default.func,value:_propTypes.default.oneOfType([_propTypes.default.string,_propTypes.default.array]),onSelect:_propTypes.default.func,selectedValue:_propTypes.default.func,deletedValue:_propTypes.default.func,isLoading:_propTypes.default.bool,isSearchable:_propTypes.default.bool,onDonePress:_propTypes.default.func,showCreateOption:_propTypes.default.bool,showCreateOptionLoader:_propTypes.default.bool,createOptionLabel:_propTypes.default.string,onPressCreateOption:_propTypes.default.func,labelStyle:_propTypes.default.object,containerStyle:_propTypes.default.object,inputContainerStyle:_propTypes.default.object,dropdownContainerStyle:_propTypes.default.object,itemContainerStyle:_propTypes.default.object,itemLabelStyle:_propTypes.default.object,multiSelectedItemContainerStyle:_propTypes.default.object,multiSelectedItemLabelStyle:_propTypes.default.object,searchInputContainerStyle:_propTypes.default.object,searchInputStyle:_propTypes.default.object,emptyOptionsContainerStyle:_propTypes.default.object,emptyOptionsLabelStyle:_propTypes.default.object,createSearchedOptionContainerStyle:_propTypes.default.object,createSearchedOptionLabelStyle:_propTypes.default.object,CreateItemComponent:_propTypes.default.node,disabled:_propTypes.default.bool,noResultsLabelContainerStyle:_propTypes.default.object,noResultsLabelStyle:_propTypes.default.object,noResultsLabel:_propTypes.default.string,NoResultsComponent:_propTypes.default.node,maxItemSize:_propTypes.default.number,moreItemLabelContainerStyle:_propTypes.default.object,moreItemLabelStyle:_propTypes.default.object,MoreItemComponent:_propTypes.default.node};MultiSelect.defaultProps={label:null,labelExtractor:function labelExtractor(option){return option==null?void 0:option.label;},valueExtractor:function valueExtractor(option){return option==null?void 0:option.value;},value:null,onSelect:function onSelect(){},selectedValue:function selectedValue(){},deletedValue:function deletedValue(){},isLoading:false,isSearchable:false,showCreateOption:false,showCreateOptionLoader:false,createOptionLabel:null,onPressCreateOption:function onPressCreateOption(){},onDonePress:function onDonePress(){},maxItemSize:5};
@@ -1 +1 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.SearchBar=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _taggedTemplateLiteralLoose2=_interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _styledSystem=require("styled-system");var _native=_interopRequireDefault(require("styled-components/native"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativeRemixIcon=_interopRequireDefault(require("react-native-remix-icon"));var _=require("./");var _hooks=require("../hooks");var _theme=require("../theme");var _excluded=["placeholder","onChangeText","onCancel","debounceDelay","showCancelButton"];var _templateObject,_this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/SearchBar.js";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var TextInput=_native.default.TextInput(_templateObject||(_templateObject=(0,_taggedTemplateLiteralLoose2.default)(["\n ","\n ","\n ","\n ","\n ","\n ","\n"])),_styledSystem.flexbox,_styledSystem.space,_styledSystem.border,_styledSystem.buttonStyle,_styledSystem.typography,_styledSystem.color);var SearchBar=function SearchBar(props){var _props$placeholder=props.placeholder,placeholder=_props$placeholder===void 0?"Search":_props$placeholder,_props$onChangeText=props.onChangeText,onChangeText=_props$onChangeText===void 0?function(){}:_props$onChangeText,_props$onCancel=props.onCancel,onCancel=_props$onCancel===void 0?function(){}:_props$onCancel,_props$debounceDelay=props.debounceDelay,debounceDelay=_props$debounceDelay===void 0?1000:_props$debounceDelay,_props$showCancelButt=props.showCancelButton,showCancelButton=_props$showCancelButt===void 0?true:_props$showCancelButt,rest=(0,_objectWithoutProperties2.default)(props,_excluded);var inputRef=(0,_react.useRef)();var _useState=(0,_react.useState)(""),_useState2=(0,_slicedToArray2.default)(_useState,2),searchText=_useState2[0],setSearchText=_useState2[1];var debouncedSearchTextValue=(0,_hooks.useDebounce)(searchText,Number(debounceDelay));var buttonWidthController=(0,_react.useRef)(new _reactNative.Animated.Value(0)).current;var buttonOpacityController=(0,_react.useRef)(new _reactNative.Animated.Value(0)).current;(0,_react.useEffect)(function(){onChangeText(debouncedSearchTextValue);},[debouncedSearchTextValue,onChangeText]);var animateSearchInput=function animateSearchInput(val){_reactNative.Animated.sequence([_reactNative.Animated.timing(buttonOpacityController,{toValue:val,duration:350,useNativeDriver:false}),_reactNative.Animated.timing(buttonWidthController,{toValue:val,duration:200,useNativeDriver:false})]).start();};var cancelButtonWidth=buttonWidthController.interpolate({inputRange:[0,1],outputRange:[0,60]});var onCancelHandle=function onCancelHandle(){animateSearchInput(0);setSearchText("");inputRef.current.blur();onCancel();};return _react.default.createElement(_.Container,{flexDirection:"row",alignItems:"center",__self:_this,__source:{fileName:_jsxFileName,lineNumber:96,columnNumber:5}},_react.default.createElement(_.Container,(0,_extends2.default)({height:42,flex:1,borderWidth:1,borderColor:_theme.theme.colors.border.grey400,borderRadius:8,flexDirection:"row",alignItems:"center"},rest.containerProps,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:97,columnNumber:7}}),_react.default.createElement(_.Container,{px:10,__self:_this,__source:{fileName:_jsxFileName,lineNumber:107,columnNumber:9}},_react.default.createElement(_reactNativeRemixIcon.default,{name:"ri-search-line",size:20,color:_theme.theme.colors.font.grey600,__self:_this,__source:{fileName:_jsxFileName,lineNumber:108,columnNumber:11}})),_react.default.createElement(TextInput,(0,_extends2.default)({ref:inputRef,value:searchText,onChangeText:setSearchText,onFocus:function onFocus(){animateSearchInput(1);},onBlur:function onBlur(){if(!searchText)animateSearchInput(0);},placeholder:placeholder,fontSize:16,flex:1,placeholderTextColor:_theme.theme.colors.font.grey600,color:"font.primary",autoCapitalize:"none",returnKeyType:"search"},rest.searchbarProps,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:114,columnNumber:9}}))),showCancelButton&&_react.default.createElement(_reactNative.Animated.View,{style:{opacity:buttonOpacityController,width:cancelButtonWidth,alignItems:"flex-end"},__self:_this,__source:{fileName:_jsxFileName,lineNumber:135,columnNumber:9}},_react.default.createElement(_.Button,{variant:"text",label:"Cancel",onPress:onCancelHandle,labelStyle:{mx:0},__self:_this,__source:{fileName:_jsxFileName,lineNumber:142,columnNumber:11}})));};exports.SearchBar=SearchBar;SearchBar.propTypes={placeholder:_propTypes.default.string,onChangeText:_propTypes.default.func.isRequired,debounceDelay:_propTypes.default.oneOfType([_propTypes.default.number,_propTypes.default.string]),searchbarProps:_propTypes.default.object,onCancel:_propTypes.default.func,showCancelButton:_propTypes.default.bool};
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.SearchBar=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _taggedTemplateLiteralLoose2=_interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _styledSystem=require("styled-system");var _native=_interopRequireDefault(require("styled-components/native"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativeRemixIcon=_interopRequireDefault(require("react-native-remix-icon"));var _=require("./");var _hooks=require("../hooks");var _theme=require("../theme");var _excluded=["placeholder","onChangeText","onCancel","debounceDelay","showCancelButton"];var _templateObject,_this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/SearchBar.js";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var TextInput=_native.default.TextInput(_templateObject||(_templateObject=(0,_taggedTemplateLiteralLoose2.default)(["\n ","\n ","\n ","\n ","\n ","\n ","\n"])),_styledSystem.flexbox,_styledSystem.space,_styledSystem.border,_styledSystem.buttonStyle,_styledSystem.typography,_styledSystem.color);var SearchBar=function SearchBar(props){var _props$placeholder=props.placeholder,placeholder=_props$placeholder===void 0?"Search":_props$placeholder,_props$onChangeText=props.onChangeText,onChangeText=_props$onChangeText===void 0?function(){}:_props$onChangeText,_props$onCancel=props.onCancel,onCancel=_props$onCancel===void 0?function(){}:_props$onCancel,_props$debounceDelay=props.debounceDelay,debounceDelay=_props$debounceDelay===void 0?1000:_props$debounceDelay,_props$showCancelButt=props.showCancelButton,showCancelButton=_props$showCancelButt===void 0?true:_props$showCancelButt,rest=(0,_objectWithoutProperties2.default)(props,_excluded);var inputRef=(0,_react.useRef)();var _useState=(0,_react.useState)(""),_useState2=(0,_slicedToArray2.default)(_useState,2),searchText=_useState2[0],setSearchText=_useState2[1];var debouncedSearchTextValue=(0,_hooks.useDebounce)(searchText.trim(),Number(debounceDelay));var buttonWidthController=(0,_react.useRef)(new _reactNative.Animated.Value(0)).current;var buttonOpacityController=(0,_react.useRef)(new _reactNative.Animated.Value(0)).current;(0,_react.useEffect)(function(){onChangeText(debouncedSearchTextValue);},[debouncedSearchTextValue,onChangeText]);var animateSearchInput=function animateSearchInput(val){_reactNative.Animated.sequence([_reactNative.Animated.timing(buttonOpacityController,{toValue:val,duration:350,useNativeDriver:false}),_reactNative.Animated.timing(buttonWidthController,{toValue:val,duration:200,useNativeDriver:false})]).start();};var cancelButtonWidth=buttonWidthController.interpolate({inputRange:[0,1],outputRange:[0,60]});var onCancelHandle=function onCancelHandle(){animateSearchInput(0);setSearchText("");inputRef.current.blur();onCancel();};return _react.default.createElement(_.Container,{flexDirection:"row",alignItems:"center",__self:_this,__source:{fileName:_jsxFileName,lineNumber:96,columnNumber:5}},_react.default.createElement(_.Container,(0,_extends2.default)({height:42,flex:1,borderWidth:1,borderColor:_theme.theme.colors.border.grey400,borderRadius:8,flexDirection:"row",alignItems:"center"},rest.containerProps,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:97,columnNumber:7}}),_react.default.createElement(_.Container,{px:10,__self:_this,__source:{fileName:_jsxFileName,lineNumber:107,columnNumber:9}},_react.default.createElement(_reactNativeRemixIcon.default,{name:"ri-search-line",size:20,color:_theme.theme.colors.font.grey600,__self:_this,__source:{fileName:_jsxFileName,lineNumber:108,columnNumber:11}})),_react.default.createElement(TextInput,(0,_extends2.default)({ref:inputRef,value:searchText,onChangeText:setSearchText,onFocus:function onFocus(){animateSearchInput(1);},onBlur:function onBlur(){if(!searchText)animateSearchInput(0);},placeholder:placeholder,fontSize:16,flex:1,placeholderTextColor:_theme.theme.colors.font.grey600,color:"font.primary",autoCapitalize:"none",returnKeyType:"search"},rest.searchbarProps,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:114,columnNumber:9}}))),showCancelButton&&_react.default.createElement(_reactNative.Animated.View,{style:{opacity:buttonOpacityController,width:cancelButtonWidth,alignItems:"flex-end"},__self:_this,__source:{fileName:_jsxFileName,lineNumber:135,columnNumber:9}},_react.default.createElement(_.Button,{variant:"text",label:"Cancel",onPress:onCancelHandle,labelStyle:{mx:0},__self:_this,__source:{fileName:_jsxFileName,lineNumber:142,columnNumber:11}})));};exports.SearchBar=SearchBar;SearchBar.propTypes={placeholder:_propTypes.default.string,onChangeText:_propTypes.default.func.isRequired,debounceDelay:_propTypes.default.oneOfType([_propTypes.default.number,_propTypes.default.string]),searchbarProps:_propTypes.default.object,onCancel:_propTypes.default.func,showCancelButton:_propTypes.default.bool};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neetoui-rn",
3
- "version": "0.0.188",
3
+ "version": "0.0.191",
4
4
  "main": "lib/index.js",
5
5
  "author": "BigBinary",
6
6
  "license": "MIT",
@@ -53,7 +53,6 @@
53
53
  "@shopify/flash-list": "^1.2.0",
54
54
  "@styled-system/prop-types": "^5.1.5",
55
55
  "dayjs": "^1.11.4",
56
- "fuse.js": "^6.6.2",
57
56
  "react-content-loader": "^6.2.0",
58
57
  "react-native-calendars": "^1.1285.0",
59
58
  "react-native-gesture-handler": "^2.4.0",
@@ -8,11 +8,9 @@ import {
8
8
  import PropTypes from "prop-types";
9
9
  import Modal from "react-native-modal";
10
10
  import { SafeAreaView } from "react-native-safe-area-context";
11
- import Fuse from "fuse.js";
12
11
 
13
12
  import { Typography, Container, Touchable, SearchBar } from "@components";
14
13
  import { theme } from "../theme";
15
- import { FUSE_KEYS } from "../constants";
16
14
 
17
15
  const Title = ({
18
16
  title,
@@ -114,7 +112,7 @@ Title.propTypes = {
114
112
  * hide={() => {
115
113
  * setBottomSheetVisibility(false);
116
114
  * }}
117
- * onItemPress={index => {
115
+ * onItemPress={({index}) => {
118
116
  * setSelectedItemIndex(index);
119
117
  * }}
120
118
  * title="PROJECT"
@@ -154,22 +152,37 @@ export const BottomSheet = ({
154
152
  contentType,
155
153
  canSearch,
156
154
  onDonePress,
155
+ disabled,
156
+ noResultsLabelContainerStyle,
157
+ noResultsLabelStyle,
158
+ noResultsLabel,
159
+ NoResultsComponent,
160
+ labelExtractor,
157
161
  ...rest
158
162
  }) => {
159
163
  const [searchText, setSearchText] = useState("");
160
164
 
161
- const fuse = new Fuse(data, { keys: FUSE_KEYS, threshold: 0.1 });
165
+ const getLabel = (item, index) => {
166
+ return item?.label || labelExtractor(item, index) || item;
167
+ };
162
168
 
163
169
  const generateData = () => {
164
- if (searchText.trim().length) {
165
- return fuse.search(searchText.trim()).map(item => item.item);
170
+ if (searchText.length) {
171
+ return data.filter(item =>
172
+ getLabel(item).toLowerCase().includes(searchText.toLowerCase())
173
+ );
166
174
  } else {
167
175
  return data;
168
176
  }
169
177
  };
170
178
 
171
- const contentContainerStyle = {
172
- paddingBottom: 50,
179
+ const hideCreateComponent = () => {
180
+ const filteredItemCount = generateData().filter(
181
+ data =>
182
+ getLabel(data).toLocaleLowerCase() === searchText.toLocaleLowerCase()
183
+ ).length;
184
+
185
+ return filteredItemCount > 0;
173
186
  };
174
187
 
175
188
  return (
@@ -189,6 +202,7 @@ export const BottomSheet = ({
189
202
  borderTopRightRadius={20}
190
203
  borderTopLeftRadius={20}
191
204
  p={16}
205
+ flex={1}
192
206
  {...rest}
193
207
  >
194
208
  {title && (
@@ -210,7 +224,68 @@ export const BottomSheet = ({
210
224
 
211
225
  {data && (
212
226
  <FlatList
213
- ListFooterComponent={children}
227
+ ListFooterComponent={
228
+ <Container>
229
+ {children}
230
+ {!!searchText &&
231
+ !showCreateOption &&
232
+ (NoResultsComponent ? (
233
+ <NoResultsComponent />
234
+ ) : (
235
+ <Container
236
+ alignItems="center"
237
+ py={2}
238
+ mb={2}
239
+ {...noResultsLabelContainerStyle}
240
+ >
241
+ <Typography
242
+ fontFamily="sf600"
243
+ fontSize="s"
244
+ color="font.grey"
245
+ {...noResultsLabelStyle}
246
+ >
247
+ {noResultsLabel || "No options found"}
248
+ </Typography>
249
+ </Container>
250
+ ))}
251
+
252
+ {!disabled &&
253
+ !hideCreateComponent() &&
254
+ (showCreateOptionLoader ? (
255
+ <ActivityIndicator
256
+ size="small"
257
+ color={theme.colors.background.base}
258
+ />
259
+ ) : (
260
+ !!searchText &&
261
+ showCreateOption && (
262
+ <Container>
263
+ {CreateItemComponent ? (
264
+ <CreateItemComponent searchText={searchText} />
265
+ ) : (
266
+ <Touchable
267
+ height={40}
268
+ justifyContent="center"
269
+ alignItems="center"
270
+ onPress={() => onPressCreateOption(searchText)}
271
+ {...createSearchedOptionContainerStyle}
272
+ >
273
+ <Typography
274
+ fontFamily="sf400"
275
+ fontSize="s"
276
+ color="font.grey"
277
+ {...createSearchedOptionLabelStyle}
278
+ >
279
+ {createOptionLabel ||
280
+ `Create ${searchText} option`}
281
+ </Typography>
282
+ </Touchable>
283
+ )}
284
+ </Container>
285
+ )
286
+ ))}
287
+ </Container>
288
+ }
214
289
  initialNumToRender={data.length}
215
290
  onScrollBeginDrag={Keyboard.dismiss}
216
291
  data={generateData()}
@@ -231,42 +306,7 @@ export const BottomSheet = ({
231
306
  keyExtractor={(item, index) => {
232
307
  return index;
233
308
  }}
234
- contentContainerStyle={contentContainerStyle}
235
- />
236
- )}
237
-
238
- {showCreateOptionLoader ? (
239
- <ActivityIndicator
240
- size="small"
241
- color={theme.colors.background.base}
242
309
  />
243
- ) : (
244
- !!searchText.trim() &&
245
- !generateData().length &&
246
- showCreateOption && (
247
- <Container>
248
- {CreateItemComponent ? (
249
- <CreateItemComponent searchText={searchText} />
250
- ) : (
251
- <Touchable
252
- height={40}
253
- justifyContent="center"
254
- alignItems="center"
255
- onPress={() => onPressCreateOption(searchText)}
256
- {...createSearchedOptionContainerStyle}
257
- >
258
- <Typography
259
- fontFamily="sf400"
260
- fontSize="s"
261
- color="font.grey"
262
- {...createSearchedOptionLabelStyle}
263
- >
264
- {createOptionLabel || `Create ${searchText} option`}
265
- </Typography>
266
- </Touchable>
267
- )}
268
- </Container>
269
- )
270
310
  )}
271
311
  </Container>
272
312
  </SafeAreaView>
@@ -318,11 +358,11 @@ BottomSheet.propTypes = {
318
358
  */
319
359
  bg: PropTypes.string,
320
360
  /**
321
- * To customise title container styles.
361
+ * To customize title container styles.
322
362
  */
323
363
  titleContainerStyle: PropTypes.object,
324
364
  /**
325
- * To customise title text styles.
365
+ * To customize title text styles.
326
366
  */
327
367
  titleTextStyle: PropTypes.object,
328
368
  /**
@@ -346,13 +386,29 @@ BottomSheet.propTypes = {
346
386
  */
347
387
  CreateItemComponent: PropTypes.node,
348
388
  /**
349
- * To customise empty options placeholder text style.
389
+ * To customize empty options placeholder text style.
350
390
  */
351
391
  createSearchedOptionLabelStyle: PropTypes.object,
352
392
  /**
353
- * To customise empty options placeholder container style.
393
+ * Flag will disable create item feature
394
+ */
395
+ disabled: PropTypes.bool,
396
+ /**
397
+ * To customize empty options placeholder container style.
354
398
  */
355
399
  createSearchedOptionContainerStyle: PropTypes.object,
400
+ noResultsLabelContainerStyle: PropTypes.object,
401
+ noResultsLabelStyle: PropTypes.object,
402
+ noResultsLabel: PropTypes.string,
403
+ NoResultsComponent: PropTypes.node,
404
+ /**
405
+ * Use custom key as label.
406
+ */
407
+ labelExtractor: PropTypes.func,
408
+ /**
409
+ * Use custom key as value.
410
+ */
411
+ valueExtractor: PropTypes.func,
356
412
  /**
357
413
  * To support more Modal params.
358
414
  */
@@ -370,10 +426,12 @@ const styles = StyleSheet.create({
370
426
  backgroundColor: theme.colors.background.primary,
371
427
  borderTopRightRadius: 20,
372
428
  borderTopLeftRadius: 20,
429
+ flex: 1,
373
430
  },
374
431
  modalStyle: {
375
432
  margin: 0,
376
433
  justifyContent: "flex-end",
434
+ flex: 1,
377
435
  },
378
436
  inputContainerStyle: {
379
437
  backgroundColor: "white",
@@ -66,8 +66,8 @@ export const Carousel = ({
66
66
  activeDotIndex={activeIndex}
67
67
  dotStyle={styles.dotStyle}
68
68
  inactiveDotStyle={styles.inactiveDotStyle}
69
- inactiveDotOpacity={0.4}
70
- inactiveDotScale={0.6}
69
+ inactiveDotOpacity={1}
70
+ inactiveDotScale={1}
71
71
  dotContainerStyle={styles.dotContainerStyle}
72
72
  />
73
73
  </Container>
@@ -95,7 +95,7 @@ const styles = StyleSheet.create({
95
95
  width: 10,
96
96
  height: 10,
97
97
  borderRadius: 5,
98
- marginHorizontal: 8,
98
+ marginRight: 8,
99
99
  backgroundColor: "#2F3941",
100
100
  },
101
101
  inactiveDotStyle: {
@@ -45,7 +45,7 @@ export const ListItem = ({ LeftComponent, label, RightComponent, ...rest }) => {
45
45
  >
46
46
  <Container flexDirection="row" alignItems="center" width="50%">
47
47
  {LeftComponent && <LeftComponent />}
48
- <Typography color="font.grey800" fontSize="l" fontFamily="sf400">
48
+ <Typography color="font.grey800" fontSize="l" fontFamily="sf500">
49
49
  {label}
50
50
  </Typography>
51
51
  </Container>
@@ -5,56 +5,92 @@ import {
5
5
  Keyboard,
6
6
  TouchableWithoutFeedback,
7
7
  } from "react-native";
8
- import { ScrollView } from "react-native-gesture-handler";
9
- import { useSharedValue } from "react-native-reanimated";
8
+ import Animated, {
9
+ interpolate,
10
+ useAnimatedStyle,
11
+ useSharedValue,
12
+ withTiming,
13
+ } from "react-native-reanimated";
10
14
  import Icon from "react-native-remix-icon";
11
- import { ThemeContext } from "styled-components/native";
12
-
15
+ import styled, { ThemeContext } from "styled-components/native";
13
16
  import {
14
- BottomSheet,
15
- CheckBox,
16
- Container,
17
- Touchable,
18
- Typography,
19
- } from "@components";
17
+ flexbox,
18
+ space,
19
+ typography,
20
+ textStyle,
21
+ color,
22
+ layout,
23
+ system,
24
+ position,
25
+ } from "styled-system";
26
+
27
+ import { BottomSheet, CheckBox, Container, Touchable } from "@components";
28
+
29
+ const Typography = styled.Text`
30
+ ${textStyle}
31
+ ${space}
32
+ ${layout}
33
+ ${flexbox}
34
+ ${typography}
35
+ ${color}
36
+ ${position}
37
+ ${system({
38
+ textDecoration: {
39
+ property: "textDecoration",
40
+ cssProperty: "textDecoration",
41
+ },
42
+ textTransform: { property: "textTransform", cssProperty: "textTransform" },
43
+ })}
44
+ `;
20
45
 
21
46
  const MultiSelectItem = ({
22
47
  label,
23
48
  onUnselect,
24
49
  multiSelectedItemContainerStyle,
25
50
  multiSelectedItemLabelStyle,
26
- }) => (
27
- <Container
28
- bg="background.secondary"
29
- borderRadius={12}
30
- flexDirection="row"
31
- alignItems="center"
32
- justifyContent="space-between"
33
- px={2}
34
- py={1}
35
- m={1}
36
- {...multiSelectedItemContainerStyle}
37
- >
38
- <Typography
39
- fontFamily="sf400"
40
- fontSize="s"
41
- mr={2}
42
- color="font.grey800"
43
- {...multiSelectedItemLabelStyle}
51
+ disabled,
52
+ }) => {
53
+ const theme = useContext(ThemeContext);
54
+ return (
55
+ <Container
56
+ bg="background.secondary"
57
+ borderRadius={12}
58
+ flexDirection="row"
59
+ alignItems="center"
60
+ justifyContent="space-between"
61
+ px={2}
62
+ py={1}
63
+ m={1}
64
+ {...multiSelectedItemContainerStyle}
44
65
  >
45
- {label}
46
- </Typography>
47
- <TouchableWithoutFeedback onPress={onUnselect}>
48
- <Icon name="ri-close-line" size="20" color="grey800" />
49
- </TouchableWithoutFeedback>
50
- </Container>
51
- );
66
+ <Typography
67
+ fontFamily="sf400"
68
+ fontSize="s"
69
+ mr={2}
70
+ color="font.grey800"
71
+ {...multiSelectedItemLabelStyle}
72
+ >
73
+ {label}
74
+ </Typography>
75
+ {!disabled && (
76
+ <TouchableWithoutFeedback disabled={disabled} onPress={onUnselect}>
77
+ <Icon
78
+ name="ri-close-line"
79
+ size="20"
80
+ color={theme.colors.font.grey800}
81
+ />
82
+ </TouchableWithoutFeedback>
83
+ )}
84
+ </Container>
85
+ );
86
+ };
52
87
 
53
88
  MultiSelectItem.propTypes = {
54
89
  label: PropTypes.string,
55
90
  onUnselect: PropTypes.func,
56
91
  multiSelectedItemContainerStyle: PropTypes.object,
57
92
  multiSelectedItemLabelStyle: PropTypes.object,
93
+ disabled: PropTypes.bool,
58
94
  };
59
95
 
60
96
  const DropdownItem = ({
@@ -134,11 +170,12 @@ DropdownItem.propTypes = {
134
170
  * ```
135
171
  */
136
172
 
173
+ const AnimatedLabel = Animated.createAnimatedComponent(Typography);
174
+
137
175
  export const MultiSelect = ({
138
176
  options,
139
177
  label,
140
178
  value,
141
- placeholder,
142
179
  labelExtractor,
143
180
  valueExtractor,
144
181
  onSelect,
@@ -160,12 +197,22 @@ export const MultiSelect = ({
160
197
  onPressCreateOption,
161
198
  createSearchedOptionContainerStyle,
162
199
  onDonePress,
200
+ disabled,
201
+ noResultsLabelContainerStyle,
202
+ noResultsLabelStyle,
203
+ noResultsLabel,
204
+ NoResultsComponent,
205
+ maxItemSize,
206
+ moreItemLabelContainerStyle,
207
+ moreItemLabelStyle,
208
+ MoreItemComponent,
163
209
  ...rest
164
210
  }) => {
165
211
  const theme = useContext(ThemeContext);
166
212
  const [showDropdown, setShowDropdown] = useState(false);
167
213
  const [searchQuery, setSearchQuery] = useState("");
168
214
  const dropdownAnimatedHeight = useSharedValue(0);
215
+ const animatedLabelValue = useSharedValue(0);
169
216
 
170
217
  const formatStr = str => str?.toLowerCase()?.trim();
171
218
  const filteredOptions = options
@@ -205,7 +252,11 @@ export const MultiSelect = ({
205
252
  : 0);
206
253
 
207
254
  const getValue = (item, index) => {
208
- return item?.value || valueExtractor(item, index);
255
+ return item?.value || valueExtractor(item, index) || item;
256
+ };
257
+
258
+ const getLabel = (item, index) => {
259
+ return item?.label || labelExtractor(item, index) || item;
209
260
  };
210
261
 
211
262
  const handleCheckbox = item => {
@@ -226,17 +277,16 @@ export const MultiSelect = ({
226
277
  const itemIndex = value.findIndex(
227
278
  (data, i) => getValue(data, i) === getValue(item, index)
228
279
  );
280
+
229
281
  return (
230
- !!item?.label && (
231
- <Container py={12}>
232
- <CheckBox
233
- checked={itemIndex !== -1}
234
- onSelect={onPress}
235
- // checkboxContainerProp={containerStyle}
236
- label={item?.label || labelExtractor(item, index)}
237
- />
238
- </Container>
239
- )
282
+ <Container py={12}>
283
+ <CheckBox
284
+ disabled={disabled}
285
+ checked={itemIndex !== -1}
286
+ onSelect={onPress}
287
+ label={item?.label || labelExtractor(item, index) || item}
288
+ />
289
+ </Container>
240
290
  );
241
291
  };
242
292
 
@@ -251,7 +301,7 @@ export const MultiSelect = ({
251
301
  }
252
302
  };
253
303
 
254
- const handleUnselection = item => {
304
+ const handleUnSelection = item => {
255
305
  const newValue = value.filter(
256
306
  selectedItem => valueExtractor(selectedItem) !== valueExtractor(item)
257
307
  );
@@ -259,6 +309,16 @@ export const MultiSelect = ({
259
309
  deletedValue(item);
260
310
  };
261
311
 
312
+ useEffect(() => {
313
+ animatedLabelValue.value = withTiming(
314
+ value.length || showDropdown ? 1 : 0,
315
+ {
316
+ duration: 250,
317
+ }
318
+ );
319
+ // eslint-disable-next-line react-hooks/exhaustive-deps
320
+ }, [value, showDropdown]);
321
+
262
322
  useEffect(() => {
263
323
  if (showDropdown) {
264
324
  dropdownAnimatedHeight.value = dropdownHeight;
@@ -272,6 +332,15 @@ export const MultiSelect = ({
272
332
  index: PropTypes.number,
273
333
  };
274
334
 
335
+ const animatedStyles = useAnimatedStyle(() => {
336
+ return {
337
+ top: interpolate(animatedLabelValue.value, [0, 1], [7, -5]),
338
+ fontSize: interpolate(animatedLabelValue.value, [0, 1], [17, 13]),
339
+ marginLeft: 5,
340
+ color: "font.grey600",
341
+ };
342
+ });
343
+
275
344
  return (
276
345
  <Container {...containerStyle}>
277
346
  <TouchableWithoutFeedback
@@ -282,70 +351,83 @@ export const MultiSelect = ({
282
351
  borderRadius={12}
283
352
  borderWidth={1}
284
353
  borderColor={showDropdown ? "border.base" : "border.grey400"}
285
- p={multipleOptionsSelected ? 1 : 2}
354
+ p={2}
286
355
  pr={2}
356
+ minHeight={58}
287
357
  {...inputContainerStyle}
288
358
  {...rest}
289
359
  >
290
- <Typography
291
- fontFamily="sf400"
292
- mb={1}
293
- fontSize="xs"
294
- color="font.grey600"
295
- ml={1}
296
- {...labelStyle}
297
- >
298
- {label}
299
- </Typography>
300
360
  <Container
301
361
  flexDirection="row"
302
362
  justifyContent="space-between"
303
363
  alignItems="center"
304
364
  >
305
- {!multipleOptionsSelected && (
306
- <Typography fontFamily="sf400" fontSize="s" color="font.grey">
307
- {!multipleOptionsSelected && placeholder}
308
- </Typography>
309
- )}
365
+ <AnimatedLabel
366
+ position="absolute"
367
+ zIndex={1}
368
+ style={[animatedStyles, { ...labelStyle }]}
369
+ >
370
+ {label}
371
+ </AnimatedLabel>
372
+ {!multipleOptionsSelected && <Container />}
310
373
  {multipleOptionsSelected && (
311
- <ScrollView showsVerticalScrollIndicator={false}>
312
- <Container
313
- flexWrap="wrap"
314
- flexDirection="row"
315
- maxWidth="85%"
316
- onStartShouldSetResponder={() => true}
317
- >
318
- {value?.map((item, index) => {
319
- const optionLabel = labelExtractor(item, index);
320
- return (
321
- <MultiSelectItem
322
- key={index}
323
- label={optionLabel}
324
- onUnselect={() => handleUnselection(item)}
325
- multiSelectedItemContainerStyle={
326
- multiSelectedItemContainerStyle
327
- }
328
- multiSelectedItemLabelStyle={
329
- multiSelectedItemLabelStyle
330
- }
331
- />
332
- );
333
- })}
334
- </Container>
335
- </ScrollView>
336
- )}
337
- {isLoading ? (
338
- <ActivityIndicator
339
- size="small"
340
- color={theme.colors.background.base}
341
- />
342
- ) : (
343
- <Icon
344
- name={`arrow-${showDropdown ? "up" : "down"}-s-line`}
345
- size="20"
346
- color="grey"
347
- />
374
+ <Container
375
+ flexWrap="wrap"
376
+ flexDirection="row"
377
+ maxWidth="85%"
378
+ onStartShouldSetResponder={() => true}
379
+ mt={3}
380
+ >
381
+ {value?.slice(0, maxItemSize).map((item, index) => {
382
+ return (
383
+ <MultiSelectItem
384
+ key={index}
385
+ label={getLabel(item)}
386
+ onUnselect={() => handleUnSelection(item)}
387
+ multiSelectedItemContainerStyle={
388
+ multiSelectedItemContainerStyle
389
+ }
390
+ multiSelectedItemLabelStyle={multiSelectedItemLabelStyle}
391
+ disabled={disabled}
392
+ />
393
+ );
394
+ })}
395
+ {value?.length > maxItemSize &&
396
+ (!MoreItemComponent ? (
397
+ <Container
398
+ bg="background.secondary"
399
+ borderRadius={12}
400
+ flexDirection="row"
401
+ alignItems="center"
402
+ justifyContent="space-between"
403
+ px={2}
404
+ py={1}
405
+ m={1}
406
+ {...moreItemLabelContainerStyle}
407
+ >
408
+ <Typography {...moreItemLabelStyle}>
409
+ +{value?.length - maxItemSize} More
410
+ </Typography>
411
+ </Container>
412
+ ) : (
413
+ <MoreItemComponent />
414
+ ))}
415
+ </Container>
348
416
  )}
417
+ <Container mt={10}>
418
+ {isLoading ? (
419
+ <ActivityIndicator
420
+ size="small"
421
+ color={theme.colors.background.base}
422
+ />
423
+ ) : (
424
+ <Icon
425
+ name={`arrow-${showDropdown ? "up" : "down"}-s-line`}
426
+ size="20"
427
+ color="grey"
428
+ />
429
+ )}
430
+ </Container>
349
431
  </Container>
350
432
  </Container>
351
433
  </TouchableWithoutFeedback>
@@ -356,6 +438,7 @@ export const MultiSelect = ({
356
438
  handleCheckbox(item);
357
439
  selectedValue(item);
358
440
  }}
441
+ disabled={disabled}
359
442
  onDonePress={onDonePress}
360
443
  isVisible={showDropdown}
361
444
  hide={() => setShowDropdown(false)}
@@ -369,6 +452,12 @@ export const MultiSelect = ({
369
452
  createSearchedOptionLabelStyle={createSearchedOptionLabelStyle}
370
453
  onPressCreateOption={onPressCreateOption}
371
454
  createSearchedOptionContainerStyle={createSearchedOptionContainerStyle}
455
+ noResultsLabelContainerStyle={noResultsLabelContainerStyle}
456
+ noResultsLabelStyle={noResultsLabelStyle}
457
+ noResultsLabel={noResultsLabel}
458
+ NoResultsComponent={NoResultsComponent}
459
+ valueExtractor={valueExtractor}
460
+ labelExtractor={labelExtractor}
372
461
  />
373
462
  </Container>
374
463
  );
@@ -382,16 +471,10 @@ MultiSelect.propTypes = {
382
471
  /**
383
472
  * options to populate the options dropdown.
384
473
  */
385
- options: PropTypes.arrayOf(
386
- PropTypes.shape({
387
- label: PropTypes.string,
388
- value: PropTypes.string,
389
- })
390
- ),
391
- /**
392
- * The text to be displayed if no option is selected.
393
- */
394
- placeholder: PropTypes.string,
474
+ options: PropTypes.oneOfType([
475
+ PropTypes.arrayOf(PropTypes.string),
476
+ PropTypes.arrayOf(PropTypes.object),
477
+ ]),
395
478
  /**
396
479
  * Use custom key as label.
397
480
  */
@@ -477,7 +560,7 @@ MultiSelect.propTypes = {
477
560
  */
478
561
  multiSelectedItemLabelStyle: PropTypes.object,
479
562
  /**
480
- * To customise search input containerr style.
563
+ * To customise search input container style.
481
564
  */
482
565
  searchInputContainerStyle: PropTypes.object,
483
566
  /**
@@ -504,11 +587,46 @@ MultiSelect.propTypes = {
504
587
  * Component that renders when searched item doesn't exists
505
588
  */
506
589
  CreateItemComponent: PropTypes.node,
590
+ /**
591
+ * Flag will disable the selection of the item
592
+ */
593
+ disabled: PropTypes.bool,
594
+ /**
595
+ * To customize no results container style
596
+ */
597
+ noResultsLabelContainerStyle: PropTypes.object,
598
+ /**
599
+ * To customize no results label style
600
+ */
601
+ noResultsLabelStyle: PropTypes.object,
602
+ /**
603
+ * To customize no results label
604
+ */
605
+ noResultsLabel: PropTypes.string,
606
+ /**
607
+ * To customize no results component
608
+ */
609
+ NoResultsComponent: PropTypes.node,
610
+ /**
611
+ * Maximum number of items to render in the list
612
+ */
613
+ maxItemSize: PropTypes.number,
614
+ /**
615
+ * Container style for the more item label
616
+ */
617
+ moreItemLabelContainerStyle: PropTypes.object,
618
+ /**
619
+ * More item label style
620
+ */
621
+ moreItemLabelStyle: PropTypes.object,
622
+ /**
623
+ * Custom component to render more item message
624
+ */
625
+ MoreItemComponent: PropTypes.node,
507
626
  };
508
627
 
509
628
  MultiSelect.defaultProps = {
510
629
  label: null,
511
- placeholder: "Select Option",
512
630
  labelExtractor: option => option?.label,
513
631
  valueExtractor: option => option?.value,
514
632
  value: null,
@@ -522,4 +640,5 @@ MultiSelect.defaultProps = {
522
640
  createOptionLabel: null,
523
641
  onPressCreateOption: () => {},
524
642
  onDonePress: () => {},
643
+ maxItemSize: 5,
525
644
  };
@@ -55,7 +55,7 @@ export const SearchBar = props => {
55
55
  const inputRef = useRef();
56
56
  const [searchText, setSearchText] = useState("");
57
57
  const debouncedSearchTextValue = useDebounce(
58
- searchText,
58
+ searchText.trim(),
59
59
  Number(debounceDelay)
60
60
  );
61
61
  const buttonWidthController = useRef(new Animated.Value(0)).current;
package/src/constants.js DELETED
@@ -1 +0,0 @@
1
- export const FUSE_KEYS = ["label", "name", "value", "title", "email"];