@wavemaker/app-rn-runtime 11.4.0-patch.3 → 11.4.0-patch.4
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/components/basic/icon/icon.component.js +3 -0
- package/components/basic/icon/icon.component.js.map +1 -1
- package/components/data/list/list-template/list-template.component.js +15 -1
- package/components/data/list/list-template/list-template.component.js.map +1 -1
- package/components/data/list/list-template/list-template.styles.js +7 -3
- package/components/data/list/list-template/list-template.styles.js.map +1 -1
- package/components/data/list/list.component.js +14 -3
- package/components/data/list/list.component.js.map +1 -1
- package/components/data/list/list.props.js +6 -0
- package/components/data/list/list.props.js.map +1 -1
- package/core/change.queue.js +26 -0
- package/core/change.queue.js.map +1 -0
- package/package.json +2 -2
- package/styles/theme.js +16 -1
- package/styles/theme.js.map +1 -1
|
@@ -133,11 +133,14 @@ export default class WmIcon extends BaseComponent {
|
|
|
133
133
|
size: iconSize
|
|
134
134
|
}, customIcon);
|
|
135
135
|
} else if (props.show && iconDef) {
|
|
136
|
+
var _this$styles$icon;
|
|
136
137
|
let WMCustomIcon = WavIcon;
|
|
137
138
|
if (iconDef.isStreamlineLightIcon) {
|
|
138
139
|
WMCustomIcon = StreamlineLightIcon;
|
|
139
140
|
} else if (iconDef.isStreamlineRegularIcon) {
|
|
140
141
|
WMCustomIcon = StreamlineRegularIcon;
|
|
142
|
+
} else if (!iconDef.isWavIcon && !((_this$styles$icon = this.styles.icon) !== null && _this$styles$icon !== void 0 && _this$styles$icon.fontFamily)) {
|
|
143
|
+
return null;
|
|
141
144
|
}
|
|
142
145
|
//@ts-ignore type information is not matching
|
|
143
146
|
icon = WMCustomIcon ? /*#__PURE__*/React.createElement(WMCustomIcon, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Animated","Easing","Text","FontAwesome","BaseComponent","BaseComponentState","WmIconProps","DEFAULT_CLASS","WavIcon","StreamlineLightIcon","StreamlineRegularIcon","Tappable","Animatedview","createSkeleton","ICON_SIZES","Map","ICON_ROTATTION","WmIconState","constructor","arguments","_defineProperty","WmIcon","props","Value","getIconDef","iconClass","iconDef","rotate","splits","split","isFontAwesome","find","v","isStreamlineLightIcon","isStreamlineRegularIcon","_splits$find","type","startsWith","substring","_splits$find2","_splits$find3","_splits$find4","isWavIcon","indexOf","animation","size","map","get","spin","stopAnimation","spinValue","setValue","timing","toValue","duration","easing","linear","useNativeDriver","start","componentDidMount","componentWillUnmount","onPropertyChange","name","$new","$old","updateState","getCustomIcon","style","_this$theme$getStyle","customIcon","theme","mergeStyle","getStyle","iconclass","icon","styles","customIconContent","content","createElement","fontFamily","decodeURIComponent","renderSkeleton","skeleton","root","width","skeletonwidth","iconsize","height","skeletonheight","renderIcon","state","color","text","transform","iconSize","fontSize","show","WMCustomIcon","interpolate","inputRange","outputRange","View","opacity","renderWidget","target","entryanimation","_background","iconposition","caption"],"sources":["icon.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Animated, DimensionValue, Easing, Text } from 'react-native';\nimport { FontAwesome } from '@expo/vector-icons';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmIconProps from './icon.props';\nimport { DEFAULT_CLASS, WmIconStyles } from './icon.styles';\nimport WavIcon from './wavicon/wavicon.component';\nimport StreamlineLightIcon from './streamline-light-icon/streamline-light-icon.component';\nimport StreamlineRegularIcon from './streamline-regular-icon/streamline-regular-icon.component';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport { Animatedview } from '@wavemaker/app-rn-runtime/components/basic/animatedview.component';\nimport WmSkeleton, { createSkeleton } from '../skeleton/skeleton.component';\n\ninterface IconDef {\n isFontAwesome: boolean;\n isWavIcon: boolean;\n isStreamlineLightIcon: boolean;\n isStreamlineRegularIcon: boolean;\n type: string;\n rotate: string;\n size: number;\n animation: string;\n}\n\nconst ICON_SIZES = new Map([\n ['fa-lg', 24],\n ['fa-2x', 36],\n ['fa-3x', 48],\n ['fa-4x', 60],\n ['fa-5x', 72]\n]);\n\nconst ICON_ROTATTION = new Map([\n ['fa-rotate-90', '90deg'],\n ['fa-rotate-180', '180deg'],\n ['fa-rotate-270', '270deg']\n]);\n\nexport class WmIconState extends BaseComponentState<WmIconProps> {\n public iconDef = {} as IconDef;\n}\n\nexport default class WmIcon extends BaseComponent<WmIconProps, WmIconState, WmIconStyles> {\n spinValue = new Animated.Value(0);\n pulseValue = new Animated.Value(0);\n public stopAnimation = true; \n\n constructor(props: WmIconProps) {\n super(props, DEFAULT_CLASS, new WmIconProps());\n }\n\n getIconDef(iconClass: string): IconDef {\n const iconDef = {\n rotate: '0'\n } as IconDef;\n const splits = iconClass.split(' ');\n iconDef.isFontAwesome = !!splits.find(v => v === 'fa');\n iconDef.isStreamlineLightIcon = !!splits.find(v => v === 'wm-sl-l');\n iconDef.isStreamlineRegularIcon = !!splits.find(v => v === 'wm-sl-r');\n if (iconDef.isFontAwesome) {\n iconDef.type = splits.find(v => v.startsWith('fa-'))?.substring(3) || '';\n } else if (iconDef.isStreamlineLightIcon) {\n iconDef.type = splits.find(v => v.startsWith('sl-'))?.substring(3) || '';\n } else if (iconDef.isStreamlineRegularIcon) {\n iconDef.type = splits.find(v => v.startsWith('sl-'))?.substring(3) || '';\n } else {\n iconDef.isWavIcon = !iconDef.isFontAwesome && !!splits.find(v => v === 'wi');\n iconDef.type = (iconDef.isWavIcon && splits.find(v => v.startsWith('wi-'))?.substring(3)) || '';\n }\n if (iconClass.indexOf('fa-spin') >= 0) {\n iconDef.animation = 'spin';\n } else if (iconClass.indexOf('fa-pulse') >= 0) {\n iconDef.animation = 'pulse';\n }\n iconDef.size = splits.map(v => ICON_SIZES.get(v)).find(v => !!v) || 12;\n iconDef.rotate = splits.map(v => ICON_ROTATTION.get(v)).find(v => !!v) || '0deg';\n return iconDef;\n }\n\n private spin () {\n if (this.stopAnimation) {\n return;\n }\n this.spinValue.setValue(0);\n Animated.timing(\n this.spinValue,\n {\n toValue: 1,\n duration: 1000,\n easing: Easing.linear,\n useNativeDriver: true\n }\n ).start(() => this.spin());\n }\n\n componentDidMount() {\n super.componentDidMount();\n this.spin();\n }\n\n componentWillUnmount(): void {\n super.componentWillUnmount();\n this.stopAnimation = true;\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n super.onPropertyChange(name, $new, $old);\n switch(name) {\n case 'iconclass':\n $new && this.updateState({iconDef: this.getIconDef($new)} as WmIconState);\n break;\n }\n }\n\n private getCustomIcon(props: WmIconProps, style: any) {\n const customIcon = this.theme.mergeStyle({}, this.theme.getStyle(props?.iconclass || '')?.icon || this.styles.icon);\n const customIconContent = customIcon?.content;\n if (customIconContent) {\n delete customIcon.content;\n return (<Text\n style={[style, customIcon.fontFamily ? {fontFamily: customIcon.fontFamily}: null]}>\n {decodeURIComponent(customIconContent)}\n </Text>);\n }\n return null;\n }\n\n public renderSkeleton(props: WmIconProps) {\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n width: (this.props.skeletonwidth || this.props.iconsize || this.styles.root.width) as DimensionValue,\n height: (this.props.skeletonheight || this.props.iconsize || this.styles.root.height) as DimensionValue\n });\n }\n\n renderIcon(props: WmIconProps) {\n const iconDef = this.state.iconDef;\n if (!iconDef) {\n return null;\n }\n let icon = null;\n const style = [{\n color: this.styles.root.color || this.styles.text.color\n }, this.styles.icon, {transform: [{rotate: iconDef.rotate}]}];\n const customIcon = this.getCustomIcon(props, style);\n const iconSize = props.iconsize || this.styles.root.fontSize || this.styles.text.fontSize || iconDef.size;\n if (props.show && iconDef && iconDef.isFontAwesome) {\n //@ts-ignore type information is not matching\n icon = (<FontAwesome name={customIcon ? '' : iconDef.type}\n style={style}\n size={iconSize}>\n {customIcon}\n </FontAwesome>);\n } else if (props.show && iconDef) {\n let WMCustomIcon = WavIcon as unknown;\n if (iconDef.isStreamlineLightIcon) {\n WMCustomIcon = StreamlineLightIcon;\n } else if (iconDef.isStreamlineRegularIcon) {\n WMCustomIcon = StreamlineRegularIcon;\n }\n //@ts-ignore type information is not matching\n icon = WMCustomIcon ? (<WMCustomIcon name={customIcon ? '' : iconDef.type}\n style={style}\n size={iconSize}>\n {customIcon}\n </WMCustomIcon>) : null;\n }\n if (icon && iconDef.animation === 'spin') {\n const rotate = this.spinValue.interpolate({ inputRange: [0, 1], outputRange: ['0deg', '360deg']});\n const animation = { transform: [{ rotate }] };\n this.stopAnimation = false;\n return (<Animated.View style={animation}>{icon}</Animated.View>);\n } else if (icon && iconDef.animation === 'pulse') {\n const opacity = this.spinValue.interpolate({ inputRange: [0, 1], outputRange: [0, 1]});\n const animation = { opacity: opacity };\n this.stopAnimation = false;\n return (<Animated.View style={animation}>{icon}</Animated.View>);\n } else {\n this.stopAnimation = true;\n }\n return icon;\n }\n\n renderWidget(props: WmIconProps) {\n let icon = this.renderIcon(props);\n return (\n <Tappable target={this}>\n <Animatedview entryanimation={props.animation} style={this.styles.root}>\n {this._background}\n {(props.iconposition === 'left' && icon) || null}\n {(props.caption && (<Text style={this.styles.text}>{props.caption}</Text>)) || null}\n {(props.iconposition === 'right' && icon) || null}\n </Animatedview>\n </Tappable>\n );\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","Animated","Easing","Text","FontAwesome","BaseComponent","BaseComponentState","WmIconProps","DEFAULT_CLASS","WavIcon","StreamlineLightIcon","StreamlineRegularIcon","Tappable","Animatedview","createSkeleton","ICON_SIZES","Map","ICON_ROTATTION","WmIconState","constructor","arguments","_defineProperty","WmIcon","props","Value","getIconDef","iconClass","iconDef","rotate","splits","split","isFontAwesome","find","v","isStreamlineLightIcon","isStreamlineRegularIcon","_splits$find","type","startsWith","substring","_splits$find2","_splits$find3","_splits$find4","isWavIcon","indexOf","animation","size","map","get","spin","stopAnimation","spinValue","setValue","timing","toValue","duration","easing","linear","useNativeDriver","start","componentDidMount","componentWillUnmount","onPropertyChange","name","$new","$old","updateState","getCustomIcon","style","_this$theme$getStyle","customIcon","theme","mergeStyle","getStyle","iconclass","icon","styles","customIconContent","content","createElement","fontFamily","decodeURIComponent","renderSkeleton","skeleton","root","width","skeletonwidth","iconsize","height","skeletonheight","renderIcon","state","color","text","transform","iconSize","fontSize","show","_this$styles$icon","WMCustomIcon","interpolate","inputRange","outputRange","View","opacity","renderWidget","target","entryanimation","_background","iconposition","caption"],"sources":["icon.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Animated, DimensionValue, Easing, Text } from 'react-native';\nimport { FontAwesome } from '@expo/vector-icons';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmIconProps from './icon.props';\nimport { DEFAULT_CLASS, WmIconStyles } from './icon.styles';\nimport WavIcon from './wavicon/wavicon.component';\nimport StreamlineLightIcon from './streamline-light-icon/streamline-light-icon.component';\nimport StreamlineRegularIcon from './streamline-regular-icon/streamline-regular-icon.component';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport { Animatedview } from '@wavemaker/app-rn-runtime/components/basic/animatedview.component';\nimport WmSkeleton, { createSkeleton } from '../skeleton/skeleton.component';\n\ninterface IconDef {\n isFontAwesome: boolean;\n isWavIcon: boolean;\n isStreamlineLightIcon: boolean;\n isStreamlineRegularIcon: boolean;\n type: string;\n rotate: string;\n size: number;\n animation: string;\n}\n\nconst ICON_SIZES = new Map([\n ['fa-lg', 24],\n ['fa-2x', 36],\n ['fa-3x', 48],\n ['fa-4x', 60],\n ['fa-5x', 72]\n]);\n\nconst ICON_ROTATTION = new Map([\n ['fa-rotate-90', '90deg'],\n ['fa-rotate-180', '180deg'],\n ['fa-rotate-270', '270deg']\n]);\n\nexport class WmIconState extends BaseComponentState<WmIconProps> {\n public iconDef = {} as IconDef;\n}\n\nexport default class WmIcon extends BaseComponent<WmIconProps, WmIconState, WmIconStyles> {\n spinValue = new Animated.Value(0);\n pulseValue = new Animated.Value(0);\n public stopAnimation = true; \n\n constructor(props: WmIconProps) {\n super(props, DEFAULT_CLASS, new WmIconProps());\n }\n\n getIconDef(iconClass: string): IconDef {\n const iconDef = {\n rotate: '0'\n } as IconDef;\n const splits = iconClass.split(' ');\n iconDef.isFontAwesome = !!splits.find(v => v === 'fa');\n iconDef.isStreamlineLightIcon = !!splits.find(v => v === 'wm-sl-l');\n iconDef.isStreamlineRegularIcon = !!splits.find(v => v === 'wm-sl-r');\n if (iconDef.isFontAwesome) {\n iconDef.type = splits.find(v => v.startsWith('fa-'))?.substring(3) || '';\n } else if (iconDef.isStreamlineLightIcon) {\n iconDef.type = splits.find(v => v.startsWith('sl-'))?.substring(3) || '';\n } else if (iconDef.isStreamlineRegularIcon) {\n iconDef.type = splits.find(v => v.startsWith('sl-'))?.substring(3) || '';\n } else {\n iconDef.isWavIcon = !iconDef.isFontAwesome && !!splits.find(v => v === 'wi');\n iconDef.type = (iconDef.isWavIcon && splits.find(v => v.startsWith('wi-'))?.substring(3)) || '';\n }\n if (iconClass.indexOf('fa-spin') >= 0) {\n iconDef.animation = 'spin';\n } else if (iconClass.indexOf('fa-pulse') >= 0) {\n iconDef.animation = 'pulse';\n }\n iconDef.size = splits.map(v => ICON_SIZES.get(v)).find(v => !!v) || 12;\n iconDef.rotate = splits.map(v => ICON_ROTATTION.get(v)).find(v => !!v) || '0deg';\n return iconDef;\n }\n\n private spin () {\n if (this.stopAnimation) {\n return;\n }\n this.spinValue.setValue(0);\n Animated.timing(\n this.spinValue,\n {\n toValue: 1,\n duration: 1000,\n easing: Easing.linear,\n useNativeDriver: true\n }\n ).start(() => this.spin());\n }\n\n componentDidMount() {\n super.componentDidMount();\n this.spin();\n }\n\n componentWillUnmount(): void {\n super.componentWillUnmount();\n this.stopAnimation = true;\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n super.onPropertyChange(name, $new, $old);\n switch(name) {\n case 'iconclass':\n $new && this.updateState({iconDef: this.getIconDef($new)} as WmIconState);\n break;\n }\n }\n\n private getCustomIcon(props: WmIconProps, style: any) {\n const customIcon = this.theme.mergeStyle({}, this.theme.getStyle(props?.iconclass || '')?.icon || this.styles.icon);\n const customIconContent = customIcon?.content;\n if (customIconContent) {\n delete customIcon.content;\n return (<Text\n style={[style, customIcon.fontFamily ? {fontFamily: customIcon.fontFamily}: null]}>\n {decodeURIComponent(customIconContent)}\n </Text>);\n }\n return null;\n }\n\n public renderSkeleton(props: WmIconProps) {\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n width: (this.props.skeletonwidth || this.props.iconsize || this.styles.root.width) as DimensionValue,\n height: (this.props.skeletonheight || this.props.iconsize || this.styles.root.height) as DimensionValue\n });\n }\n\n renderIcon(props: WmIconProps) {\n const iconDef = this.state.iconDef;\n if (!iconDef) {\n return null;\n }\n let icon = null;\n const style = [{\n color: this.styles.root.color || this.styles.text.color\n }, this.styles.icon, {transform: [{rotate: iconDef.rotate}]}];\n const customIcon = this.getCustomIcon(props, style);\n const iconSize = props.iconsize || this.styles.root.fontSize || this.styles.text.fontSize || iconDef.size;\n if (props.show && iconDef && iconDef.isFontAwesome) {\n //@ts-ignore type information is not matching\n icon = (<FontAwesome name={customIcon ? '' : iconDef.type}\n style={style}\n size={iconSize}>\n {customIcon}\n </FontAwesome>);\n } else if (props.show && iconDef) {\n let WMCustomIcon = WavIcon as unknown;\n if (iconDef.isStreamlineLightIcon) {\n WMCustomIcon = StreamlineLightIcon;\n } else if (iconDef.isStreamlineRegularIcon) {\n WMCustomIcon = StreamlineRegularIcon;\n } else if (!iconDef.isWavIcon && !this.styles.icon?.fontFamily) {\n return null;\n }\n //@ts-ignore type information is not matching\n icon = WMCustomIcon ? (<WMCustomIcon name={customIcon ? '' : iconDef.type}\n style={style}\n size={iconSize}>\n {customIcon}\n </WMCustomIcon>) : null;\n }\n if (icon && iconDef.animation === 'spin') {\n const rotate = this.spinValue.interpolate({ inputRange: [0, 1], outputRange: ['0deg', '360deg']});\n const animation = { transform: [{ rotate }] };\n this.stopAnimation = false;\n return (<Animated.View style={animation}>{icon}</Animated.View>);\n } else if (icon && iconDef.animation === 'pulse') {\n const opacity = this.spinValue.interpolate({ inputRange: [0, 1], outputRange: [0, 1]});\n const animation = { opacity: opacity };\n this.stopAnimation = false;\n return (<Animated.View style={animation}>{icon}</Animated.View>);\n } else {\n this.stopAnimation = true;\n }\n return icon;\n }\n\n renderWidget(props: WmIconProps) {\n let icon = this.renderIcon(props);\n return (\n <Tappable target={this}>\n <Animatedview entryanimation={props.animation} style={this.styles.root}>\n {this._background}\n {(props.iconposition === 'left' && icon) || null}\n {(props.caption && (<Text style={this.styles.text}>{props.caption}</Text>)) || null}\n {(props.iconposition === 'right' && icon) || null}\n </Animatedview>\n </Tappable>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { View } from 'react-native';
|
|
3
|
+
import { isNil } from 'lodash';
|
|
3
4
|
import { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';
|
|
4
5
|
import WmListTemplateProps from './list-template.props';
|
|
5
6
|
import { DEFAULT_CLASS } from './list-template.styles';
|
|
@@ -9,8 +10,21 @@ export default class WmListTemplate extends BaseComponent {
|
|
|
9
10
|
super(props, DEFAULT_CLASS, new WmListTemplateProps());
|
|
10
11
|
}
|
|
11
12
|
renderWidget(props) {
|
|
13
|
+
var _style;
|
|
14
|
+
const list = this.parent;
|
|
15
|
+
const listProps = list.state.props;
|
|
16
|
+
const isHorizontalList = listProps.direction === 'horizontal';
|
|
17
|
+
const noOfCols = list.getNoOfColumns();
|
|
18
|
+
let style = this.theme.getStyle(isHorizontalList ? 'horizontal-list-template' : 'vertical-list-template');
|
|
19
|
+
if (isNil(style['flex']) && !isHorizontalList && noOfCols === 1) {
|
|
20
|
+
style = this.theme.mergeStyle({
|
|
21
|
+
root: {
|
|
22
|
+
flex: 1
|
|
23
|
+
}
|
|
24
|
+
}, style);
|
|
25
|
+
}
|
|
12
26
|
return /*#__PURE__*/React.createElement(View, {
|
|
13
|
-
style: this.styles.root
|
|
27
|
+
style: [this.styles.root, (_style = style) === null || _style === void 0 ? void 0 : _style.root]
|
|
14
28
|
}, this._background, props.children);
|
|
15
29
|
}
|
|
16
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","BaseComponent","BaseComponentState","WmListTemplateProps","DEFAULT_CLASS","WmListTemplateState","WmListTemplate","constructor","props","renderWidget","
|
|
1
|
+
{"version":3,"names":["React","View","isNil","BaseComponent","BaseComponentState","WmListTemplateProps","DEFAULT_CLASS","WmListTemplateState","WmListTemplate","constructor","props","renderWidget","_style","list","parent","listProps","state","isHorizontalList","direction","noOfCols","getNoOfColumns","style","theme","getStyle","mergeStyle","root","flex","createElement","styles","_background","children"],"sources":["list-template.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { isNil } from 'lodash';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmListTemplateProps from './list-template.props';\nimport { DEFAULT_CLASS, WmListTemplateStyles } from './list-template.styles';\nimport WmList from '../list.component';\n\nexport class WmListTemplateState extends BaseComponentState<WmListTemplateProps> {\n\n}\n\nexport default class WmListTemplate extends BaseComponent<WmListTemplateProps, WmListTemplateState, WmListTemplateStyles> {\n\n constructor(props: WmListTemplateProps) {\n super(props, DEFAULT_CLASS, new WmListTemplateProps());\n }\n\n renderWidget(props: WmListTemplateProps) {\n const list = (this.parent as WmList);\n const listProps = list.state.props;\n const isHorizontalList = listProps.direction === 'horizontal';\n const noOfCols = list.getNoOfColumns();\n let style = this.theme.getStyle( isHorizontalList ? 'horizontal-list-template' : 'vertical-list-template');\n if (isNil(style['flex']) && !isHorizontalList && noOfCols === 1) {\n style = this.theme.mergeStyle({root: {flex: 1}}, style);\n }\n return (\n <View style={[this.styles.root, style?.root]}>{this._background}{props.children}</View>\n ); \n }\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,KAAK,QAAQ,QAAQ;AAC9B,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,+CAA+C;AAEjG,OAAOC,mBAAmB,MAAM,uBAAuB;AACvD,SAASC,aAAa,QAA8B,wBAAwB;AAG5E,OAAO,MAAMC,mBAAmB,SAASH,kBAAkB,CAAsB;AAIjF,eAAe,MAAMI,cAAc,SAASL,aAAa,CAAiE;EAExHM,WAAWA,CAACC,KAA0B,EAAE;IACtC,KAAK,CAACA,KAAK,EAAEJ,aAAa,EAAE,IAAID,mBAAmB,CAAC,CAAC,CAAC;EACxD;EAEAM,YAAYA,CAACD,KAA0B,EAAE;IAAA,IAAAE,MAAA;IACvC,MAAMC,IAAI,GAAI,IAAI,CAACC,MAAiB;IACpC,MAAMC,SAAS,GAAGF,IAAI,CAACG,KAAK,CAACN,KAAK;IAClC,MAAMO,gBAAgB,GAAGF,SAAS,CAACG,SAAS,KAAK,YAAY;IAC7D,MAAMC,QAAQ,GAAGN,IAAI,CAACO,cAAc,CAAC,CAAC;IACtC,IAAIC,KAAK,GAAG,IAAI,CAACC,KAAK,CAACC,QAAQ,CAAEN,gBAAgB,GAAG,0BAA0B,GAAG,wBAAwB,CAAC;IAC1G,IAAIf,KAAK,CAACmB,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAACJ,gBAAgB,IAAIE,QAAQ,KAAK,CAAC,EAAE;MAC7DE,KAAK,GAAG,IAAI,CAACC,KAAK,CAACE,UAAU,CAAC;QAACC,IAAI,EAAE;UAACC,IAAI,EAAE;QAAC;MAAC,CAAC,EAAEL,KAAK,CAAC;IAC3D;IACA,oBACErB,KAAA,CAAA2B,aAAA,CAAC1B,IAAI;MAACoB,KAAK,EAAE,CAAC,IAAI,CAACO,MAAM,CAACH,IAAI,GAAAb,MAAA,GAAES,KAAK,cAAAT,MAAA,uBAALA,MAAA,CAAOa,IAAI;IAAE,GAAE,IAAI,CAACI,WAAW,EAAEnB,KAAK,CAACoB,QAAe,CAAC;EAE3F;AACF"}
|
|
@@ -3,9 +3,7 @@ import { defineStyles } from '@wavemaker/app-rn-runtime/core/base.component';
|
|
|
3
3
|
export const DEFAULT_CLASS = 'app-list-template';
|
|
4
4
|
BASE_THEME.registerStyle((themeVariables, addStyle) => {
|
|
5
5
|
const defaultStyles = defineStyles({
|
|
6
|
-
root: {
|
|
7
|
-
flex: 1
|
|
8
|
-
},
|
|
6
|
+
root: {},
|
|
9
7
|
text: {}
|
|
10
8
|
});
|
|
11
9
|
addStyle(DEFAULT_CLASS, '', defaultStyles);
|
|
@@ -14,5 +12,11 @@ BASE_THEME.registerStyle((themeVariables, addStyle) => {
|
|
|
14
12
|
borderBottomWidth: 0
|
|
15
13
|
}
|
|
16
14
|
});
|
|
15
|
+
addStyle('horizontal-list-template', '', {
|
|
16
|
+
root: {}
|
|
17
|
+
});
|
|
18
|
+
addStyle('vertical-list-template', '', {
|
|
19
|
+
root: {}
|
|
20
|
+
});
|
|
17
21
|
});
|
|
18
22
|
//# sourceMappingURL=list-template.styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BASE_THEME","defineStyles","DEFAULT_CLASS","registerStyle","themeVariables","addStyle","defaultStyles","root","
|
|
1
|
+
{"version":3,"names":["BASE_THEME","defineStyles","DEFAULT_CLASS","registerStyle","themeVariables","addStyle","defaultStyles","root","text","borderBottomWidth"],"sources":["list-template.styles.ts"],"sourcesContent":["import BASE_THEME from '@wavemaker/app-rn-runtime/styles/theme';\nimport { BaseStyles, defineStyles } from '@wavemaker/app-rn-runtime/core/base.component';\n\nexport type WmListTemplateStyles = BaseStyles & {};\n\nexport const DEFAULT_CLASS = 'app-list-template';\nBASE_THEME.registerStyle((themeVariables, addStyle) => {\n const defaultStyles: WmListTemplateStyles = defineStyles<WmListTemplateStyles>({\n root: {},\n text: {}\n });\n\n addStyle(DEFAULT_CLASS, '', defaultStyles);\n addStyle('list-card-template', '', {\n root : {\n borderBottomWidth: 0\n }\n } as WmListTemplateStyles);\n addStyle('horizontal-list-template', '', {\n root : {}\n } as WmListTemplateStyles);\n addStyle('vertical-list-template', '', {\n root : {\n }\n } as WmListTemplateStyles);\n});"],"mappings":"AAAA,OAAOA,UAAU,MAAM,wCAAwC;AAC/D,SAAqBC,YAAY,QAAQ,+CAA+C;AAIxF,OAAO,MAAMC,aAAa,GAAG,mBAAmB;AAChDF,UAAU,CAACG,aAAa,CAAC,CAACC,cAAc,EAAEC,QAAQ,KAAK;EACnD,MAAMC,aAAmC,GAAGL,YAAY,CAAuB;IAC3EM,IAAI,EAAE,CAAC,CAAC;IACRC,IAAI,EAAE,CAAC;EACX,CAAC,CAAC;EAEFH,QAAQ,CAACH,aAAa,EAAE,EAAE,EAAEI,aAAa,CAAC;EAC1CD,QAAQ,CAAC,oBAAoB,EAAE,EAAE,EAAE;IAC/BE,IAAI,EAAG;MACHE,iBAAiB,EAAE;IACvB;EACJ,CAAyB,CAAC;EAC1BJ,QAAQ,CAAC,0BAA0B,EAAE,EAAE,EAAE;IACrCE,IAAI,EAAG,CAAC;EACZ,CAAyB,CAAC;EAC1BF,QAAQ,CAAC,wBAAwB,EAAE,EAAE,EAAE;IACnCE,IAAI,EAAG,CACP;EACJ,CAAyB,CAAC;AAC9B,CAAC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
1
2
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
3
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
3
4
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
@@ -217,6 +218,13 @@ export default class WmList extends BaseComponent {
|
|
|
217
218
|
caption: props.loadingdatamsg
|
|
218
219
|
});
|
|
219
220
|
}
|
|
221
|
+
getNoOfColumns() {
|
|
222
|
+
const props = this.state.props;
|
|
223
|
+
if (props.direction === 'vertical') {
|
|
224
|
+
return props.itemsperrow.xs;
|
|
225
|
+
}
|
|
226
|
+
return 0;
|
|
227
|
+
}
|
|
220
228
|
renderWithFlatList(props) {
|
|
221
229
|
let isHorizontal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
222
230
|
return /*#__PURE__*/React.createElement(View, {
|
|
@@ -226,13 +234,16 @@ export default class WmList extends BaseComponent {
|
|
|
226
234
|
marginBottom: 16
|
|
227
235
|
},
|
|
228
236
|
key: v.key || this.keyExtractor.getKey(v, true)
|
|
229
|
-
}, this.renderHeader(props, v.key), /*#__PURE__*/React.createElement(FlatList, {
|
|
237
|
+
}, this.renderHeader(props, v.key), /*#__PURE__*/React.createElement(FlatList, _extends({
|
|
238
|
+
key: props.name + '_' + (isHorizontal ? 'H' : 'V') + props.itemsperrow.xs,
|
|
230
239
|
keyExtractor: (item, i) => this.generateItemKey(item, i, props),
|
|
231
240
|
horizontal: isHorizontal,
|
|
232
241
|
data: v.data || [],
|
|
233
242
|
ListEmptyComponent: itemInfo => this.renderEmptyMessage(isHorizontal, itemInfo.item, itemInfo.index, props),
|
|
234
243
|
renderItem: itemInfo => this.renderItem(itemInfo.item, itemInfo.index, props)
|
|
235
|
-
}
|
|
244
|
+
}, isHorizontal ? {} : {
|
|
245
|
+
numColumns: this.getNoOfColumns()
|
|
246
|
+
})))) : null);
|
|
236
247
|
}
|
|
237
248
|
getSectionListData() {
|
|
238
249
|
if (this._showSkeleton) {
|
|
@@ -279,7 +290,7 @@ export default class WmList extends BaseComponent {
|
|
|
279
290
|
renderWidget(props) {
|
|
280
291
|
this.invokeEventCallback('onBeforedatarender', [this, this.state.props.dataset]);
|
|
281
292
|
const isHorizontal = props.direction === 'horizontal';
|
|
282
|
-
return /*#__PURE__*/React.createElement(View, null, this._background, isHorizontal ? this.renderWithFlatList(props, isHorizontal) : this.renderWithSectionList(props, isHorizontal));
|
|
293
|
+
return /*#__PURE__*/React.createElement(View, null, this._background, isHorizontal || !props.groupby ? this.renderWithFlatList(props, isHorizontal) : this.renderWithSectionList(props, isHorizontal));
|
|
283
294
|
}
|
|
284
295
|
}
|
|
285
296
|
//# sourceMappingURL=list.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","SectionList","Text","View","FlatList","isArray","BaseComponent","BaseComponentState","getGroupedData","isDefined","Tappable","DefaultKeyExtractor","WmLabel","WmIcon","WmListProps","DEFAULT_CLASS","WmListState","constructor","arguments","_defineProperty","WmList","props","isSelected","$item","selectedItem","state","selecteditem","indexOf","onSelect","$index","triggerTapEvent","length","undefined","disableitem","multiselect","index","selectionlimit","push","invokeEventCallback","splice","selectedItemWidgets","itemWidgets","updateState","selectedindex","proxy","selectFirstItem","initialized","dataset","groupby","deselectAll","setGroupData","items","dataItems","groupedData","match","orderby","dateformat","_this$keyExtractor","keyExtractor","clear","onPropertyChange","name","$new","$old","data","direction","key","_this$keyExtractor2","selectfirstitem","pop","componentDidMount","_props$dataset","setTimeout","componentDidUpdate","prevProps","prevState","snapshot","getDefaultStyles","isHorizontal","theme","getStyle","defaultClass","getIndex","item","generateItemKey","itemkey","_showSkeleton","getKey","renderItem","createElement","onTap","onLongTap","onDoubleTap","style","styles","itemclass","iconclass","selectedIcon","renderHeader","title","groupHeading","subheading","heading","flex","flexDirection","listIcon","caption","renderEmptyMessage","emptyMessage","nodatamessage","renderLoadingIcon","loadingIcon","loadingicon","loadingdatamsg","renderWithFlatList","root","map","v","i","marginBottom","horizontal","ListEmptyComponent","itemInfo","getSectionListData","renderWithSectionList","onEndReached","_ref","distanceFromEnd","setState","currentPage","contentContainerStyle","onEndReachedThreshold","sections","renderSectionHeader","_ref2","section","renderSectionFooter","loadingdata","renderWidget","_background"],"sources":["list.component.tsx"],"sourcesContent":["import React from 'react';\nimport { SectionList, Text, View, TouchableWithoutFeedback } from 'react-native';\nimport { FlatList } from 'react-native-gesture-handler';\nimport { isArray } from 'lodash-es';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport {getGroupedData, isDefined} from \"@wavemaker/app-rn-runtime/core/utils\";\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport { DefaultKeyExtractor } from '@wavemaker/app-rn-runtime/core/key.extractor';\nimport WmLabel from '@wavemaker/app-rn-runtime/components/basic/label/label.component';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\n\nimport WmListProps from './list.props';\nimport { DEFAULT_CLASS, WmListStyles } from './list.styles';\n\n\nexport class WmListState extends BaseComponentState<WmListProps> {\n public selectedindex: any;\n groupedData: Array<any> = [];\n currentPage: number = 1;\n}\n\nexport default class WmList extends BaseComponent<WmListProps, WmListState, WmListStyles> {\n\n private itemWidgets = [] as any[];\n private selectedItemWidgets = {} as any;\n private keyExtractor = new DefaultKeyExtractor();\n\n constructor(props: WmListProps) {\n super(props, DEFAULT_CLASS, new WmListProps(), new WmListState());\n }\n\n private isSelected($item: any) {\n const selectedItem = this.state.props.selecteditem;\n if (isArray(selectedItem)) {\n return selectedItem.indexOf($item) >= 0;\n }\n return selectedItem === $item;\n }\n\n private onSelect($item: any, $index: number | string, triggerTapEvent = false) {\n const props = this.state.props;\n let selectedItem = null as any;\n if (!props.disableitem($item, $index)) {\n if (props.multiselect) {\n selectedItem = [...(props.selecteditem || [])];\n const index = selectedItem.indexOf($item);\n if (index < 0) {\n if ((!props.selectionlimit)\n || props.selectionlimit < 0\n || selectedItem.length < props.selectionlimit) {\n selectedItem.push($item);\n } else {\n this.invokeEventCallback('onSelectionlimitexceed', [null, this]);\n }\n } else {\n selectedItem.splice(index, 1);\n }\n } else {\n if (props.selecteditem === $item) {\n selectedItem = null;\n } else {\n selectedItem = $item;\n }\n }\n this.selectedItemWidgets = this.itemWidgets[$index as number];\n this.updateState({\n props: { selecteditem: selectedItem },\n selectedindex: $index\n } as WmListState, () => {\n this.invokeEventCallback('onSelect', [this.proxy, $item]);\n triggerTapEvent && this.invokeEventCallback('onTap', [null, this.proxy]);\n });\n }\n }\n\n private selectFirstItem() {\n const props = this.state.props;\n if (this.initialized\n && props.dataset\n && props.dataset.length) {\n const index = props.groupby ? '00': 0;\n this.onSelect(props.dataset[0], index);\n }\n }\n\n private deselectAll() {\n this.updateState({\n props: { selecteditem: null },\n selectedindex: -1\n } as WmListState);\n }\n\n setGroupData(items: any) {\n const dataItems = items;\n const props = this.state.props;\n if (props.groupby) {\n const groupedData = dataItems && getGroupedData(dataItems, props.groupby, props.match, props.orderby, props.dateformat, this);\n this.updateState({\n groupedData: groupedData\n } as WmListState, () => {\n this.keyExtractor?.clear();\n });\n }\n }\n\n public onPropertyChange(name: string, $new: any, $old: any) {\n super.onPropertyChange(name, $new, $old);\n const props = this.state.props;\n switch(name) {\n case 'selectfirstitem':\n if ($new) {\n this.selectFirstItem();\n }\n break;\n case 'dataset':\n if (this.state.props.groupby) {\n this.setGroupData($new);\n } else {\n const data = isArray($new) ? $new : (isDefined($new) ? [$new] : []);\n this.updateState({\n groupedData: (data[0] || props.direction === 'horizontal' ? [{\n key: '',\n data: data\n }] : [])\n } as WmListState, () => {\n this.keyExtractor?.clear();\n });\n }\n this.itemWidgets = [];\n if (props.selectfirstitem) {\n this.selectFirstItem();\n } else {\n this.deselectAll();\n }\n break;\n case 'groupby':\n case 'match':\n this.setGroupData(this.state.props.dataset);\n break;\n case 'multiselect':\n if ($new) {\n if (!isArray(this.state.props.selecteditem)) {\n this.state.props.selecteditem = this.state.props.selecteditem ? \n [this.state.props.selecteditem] : [];\n }\n } else if (isArray(this.state.props.selecteditem)) {\n this.state.props.selecteditem = this.state.props.selecteditem.pop();\n }\n }\n }\n\n componentDidMount() {\n const props = this.state.props;\n if (this.state.props.selectfirstitem && props.dataset?.length) {\n setTimeout(() => {\n this.onSelect(props.dataset[0], 0);\n });\n }\n super.componentDidMount();\n }\n\n componentDidUpdate(prevProps: WmListProps, prevState: WmListState, snapshot?: any) {\n super.componentDidUpdate && super.componentDidUpdate(prevProps, prevState, snapshot);\n this.invokeEventCallback('onRender', [this, this.state.props.dataset]);\n }\n\n getDefaultStyles() {\n const isHorizontal = this.state.props.direction === 'horizontal';\n return this.theme.getStyle(`${this.defaultClass} ${isHorizontal ? 'app-horizontal-list' : 'app-vertical-list'}`);\n }\n\n getIndex(item: any) {\n return this.state.props.dataset.indexOf(item);\n }\n\n private generateItemKey(item: any, index: number, props: WmListProps) {\n if (props.itemkey && item && !this._showSkeleton) {\n return props.itemkey(item, index);\n }\n return 'list_item_' + this.keyExtractor.getKey(item, true);\n }\n\n private renderItem(item: any, index: number, props: WmListProps) {\n return (\n <Tappable\n onTap={() => this.onSelect(item, index, true)}\n onLongTap={() => this.invokeEventCallback('onLongtap', [null, this.proxy])}\n onDoubleTap={() => this.invokeEventCallback('onDoubletap', [null, this.proxy])}>\n <View style={[\n this.styles.item,\n props.itemclass ? this.theme.getStyle(props.itemclass(item, index)) : null,\n this.isSelected(item) ? this.styles.selectedItem : {}]}>\n { props.renderItem(item, index, this)}\n { this.isSelected(item) ? (\n <WmIcon iconclass='wi wi-check-circle' styles={this.styles.selectedIcon} />\n ) : null}\n </View>\n </Tappable>\n );\n }\n\n private renderHeader(props: WmListProps, title: string) {\n return props.groupby ? (\n <Text style={this.styles.groupHeading}>{title}</Text>\n ) : (props.iconclass || props.title || props.subheading) ? (\n <View style={this.styles.heading}>\n <View style={{flex: 1, flexDirection: 'row'}}>\n <WmIcon styles={this.styles.listIcon} iconclass={props.iconclass}></WmIcon>\n <View>\n <WmLabel styles={this.styles.title} caption={props.title}></WmLabel>\n <WmLabel styles={this.styles.subheading} caption={props.subheading}></WmLabel>\n </View>\n </View>\n </View>) : null;\n }\n\n private renderEmptyMessage(isHorizontal: boolean, item: any, index: any, props: WmListProps) {\n return (<WmLabel styles={this.styles.emptyMessage} caption={props.nodatamessage}></WmLabel>);\n }\n\n private renderLoadingIcon(props: WmListProps) {\n return (<WmIcon\n styles={this.styles.loadingIcon}\n iconclass={props.loadingicon}\n caption={props.loadingdatamsg}></WmIcon>)\n }\n\n private renderWithFlatList(props: WmListProps, isHorizontal = false) {\n return (\n <View style={this.styles.root}>\n {this.state.groupedData ? this.state.groupedData.map((v: any, i) => ((\n <View style={{marginBottom: 16}} key={v.key || this.keyExtractor.getKey(v, true)}>\n {this.renderHeader(props, v.key)}\n <FlatList\n keyExtractor={(item, i) => this.generateItemKey(item, i, props)}\n horizontal = {isHorizontal}\n data={v.data || []}\n ListEmptyComponent = {(itemInfo) => this.renderEmptyMessage(isHorizontal, itemInfo.item, itemInfo.index, props)}\n renderItem={(itemInfo) => this.renderItem(itemInfo.item, itemInfo.index, props)}>\n </FlatList>\n </View>\n ))) : null\n }\n </View>);\n }\n\n private getSectionListData() {\n if (this._showSkeleton) {\n return [{\n key: '',\n data: [{}, {}, {}]\n }];\n } else if (this.state.groupedData \n && this.state.groupedData[0] \n && this.state.groupedData[0]['data'].length) {\n return this.state.groupedData;\n }\n return [];\n }\n\n private renderWithSectionList(props: WmListProps, isHorizontal = false) {\n return (\n <SectionList\n keyExtractor={(item, i) => this.generateItemKey(item, i, props)}\n horizontal = {isHorizontal}\n onEndReached={({distanceFromEnd}) => {\n this.setState({ currentPage: this.state.currentPage + 1 } as WmListState);\n this.invokeEventCallback('onEndReached', [null, this]);\n }}\n contentContainerStyle={this.styles.root}\n onEndReachedThreshold={0.3}\n sections={this.getSectionListData()}\n renderSectionHeader={({ section: {key, data}}) => {\n return this.renderHeader(props, key);\n }}\n renderSectionFooter={() => props.loadingdata ? this.renderLoadingIcon(props) : null}\n ListEmptyComponent = {(itemInfo) => this.renderEmptyMessage(isHorizontal, itemInfo.item, itemInfo.index, props)}\n renderItem={(itemInfo) => this.renderItem(itemInfo.item, itemInfo.index, props)}>\n </SectionList>\n );\n }\n\n renderWidget(props: WmListProps) {\n this.invokeEventCallback('onBeforedatarender', [this, this.state.props.dataset]);\n const isHorizontal = (props.direction === 'horizontal');\n return (\n <View>\n {this._background}\n {(isHorizontal) ?\n this.renderWithFlatList(props, isHorizontal)\n : this.renderWithSectionList(props, isHorizontal)}\n </View>);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","SectionList","Text","View","FlatList","isArray","BaseComponent","BaseComponentState","getGroupedData","isDefined","Tappable","DefaultKeyExtractor","WmLabel","WmIcon","WmListProps","DEFAULT_CLASS","WmListState","constructor","arguments","_defineProperty","WmList","props","isSelected","$item","selectedItem","state","selecteditem","indexOf","onSelect","$index","triggerTapEvent","length","undefined","disableitem","multiselect","index","selectionlimit","push","invokeEventCallback","splice","selectedItemWidgets","itemWidgets","updateState","selectedindex","proxy","selectFirstItem","initialized","dataset","groupby","deselectAll","setGroupData","items","dataItems","groupedData","match","orderby","dateformat","_this$keyExtractor","keyExtractor","clear","onPropertyChange","name","$new","$old","data","direction","key","_this$keyExtractor2","selectfirstitem","pop","componentDidMount","_props$dataset","setTimeout","componentDidUpdate","prevProps","prevState","snapshot","getDefaultStyles","isHorizontal","theme","getStyle","defaultClass","getIndex","item","generateItemKey","itemkey","_showSkeleton","getKey","renderItem","createElement","onTap","onLongTap","onDoubleTap","style","styles","itemclass","iconclass","selectedIcon","renderHeader","title","groupHeading","subheading","heading","flex","flexDirection","listIcon","caption","renderEmptyMessage","emptyMessage","nodatamessage","renderLoadingIcon","loadingIcon","loadingicon","loadingdatamsg","getNoOfColumns","itemsperrow","xs","renderWithFlatList","root","map","v","i","marginBottom","_extends","horizontal","ListEmptyComponent","itemInfo","numColumns","getSectionListData","renderWithSectionList","onEndReached","_ref","distanceFromEnd","setState","currentPage","contentContainerStyle","onEndReachedThreshold","sections","renderSectionHeader","_ref2","section","renderSectionFooter","loadingdata","renderWidget","_background"],"sources":["list.component.tsx"],"sourcesContent":["import React from 'react';\nimport { SectionList, Text, View, TouchableWithoutFeedback } from 'react-native';\nimport { FlatList } from 'react-native-gesture-handler';\nimport { isArray } from 'lodash-es';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport {getGroupedData, isDefined} from \"@wavemaker/app-rn-runtime/core/utils\";\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport { DefaultKeyExtractor } from '@wavemaker/app-rn-runtime/core/key.extractor';\nimport WmLabel from '@wavemaker/app-rn-runtime/components/basic/label/label.component';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\n\nimport WmListProps from './list.props';\nimport { DEFAULT_CLASS, WmListStyles } from './list.styles';\n\n\nexport class WmListState extends BaseComponentState<WmListProps> {\n public selectedindex: any;\n groupedData: Array<any> = [];\n currentPage: number = 1;\n}\n\nexport default class WmList extends BaseComponent<WmListProps, WmListState, WmListStyles> {\n\n private itemWidgets = [] as any[];\n private selectedItemWidgets = {} as any;\n private keyExtractor = new DefaultKeyExtractor();\n \n constructor(props: WmListProps) {\n super(props, DEFAULT_CLASS, new WmListProps(), new WmListState());\n }\n\n private isSelected($item: any) {\n const selectedItem = this.state.props.selecteditem;\n if (isArray(selectedItem)) {\n return selectedItem.indexOf($item) >= 0;\n }\n return selectedItem === $item;\n }\n\n private onSelect($item: any, $index: number | string, triggerTapEvent = false) {\n const props = this.state.props;\n let selectedItem = null as any;\n if (!props.disableitem($item, $index)) {\n if (props.multiselect) {\n selectedItem = [...(props.selecteditem || [])];\n const index = selectedItem.indexOf($item);\n if (index < 0) {\n if ((!props.selectionlimit)\n || props.selectionlimit < 0\n || selectedItem.length < props.selectionlimit) {\n selectedItem.push($item);\n } else {\n this.invokeEventCallback('onSelectionlimitexceed', [null, this]);\n }\n } else {\n selectedItem.splice(index, 1);\n }\n } else {\n if (props.selecteditem === $item) {\n selectedItem = null;\n } else {\n selectedItem = $item;\n }\n }\n this.selectedItemWidgets = this.itemWidgets[$index as number];\n this.updateState({\n props: { selecteditem: selectedItem },\n selectedindex: $index\n } as WmListState, () => {\n this.invokeEventCallback('onSelect', [this.proxy, $item]);\n triggerTapEvent && this.invokeEventCallback('onTap', [null, this.proxy]);\n });\n }\n }\n\n private selectFirstItem() {\n const props = this.state.props;\n if (this.initialized\n && props.dataset\n && props.dataset.length) {\n const index = props.groupby ? '00': 0;\n this.onSelect(props.dataset[0], index);\n }\n }\n\n private deselectAll() {\n this.updateState({\n props: { selecteditem: null },\n selectedindex: -1\n } as WmListState);\n }\n\n setGroupData(items: any) {\n const dataItems = items;\n const props = this.state.props;\n if (props.groupby) {\n const groupedData = dataItems && getGroupedData(dataItems, props.groupby, props.match, props.orderby, props.dateformat, this);\n this.updateState({\n groupedData: groupedData\n } as WmListState, () => {\n this.keyExtractor?.clear();\n });\n }\n }\n\n public onPropertyChange(name: string, $new: any, $old: any) {\n super.onPropertyChange(name, $new, $old);\n const props = this.state.props;\n switch(name) {\n case 'selectfirstitem':\n if ($new) {\n this.selectFirstItem();\n }\n break;\n case 'dataset':\n if (this.state.props.groupby) {\n this.setGroupData($new);\n } else {\n const data = isArray($new) ? $new : (isDefined($new) ? [$new] : []);\n this.updateState({\n groupedData: (data[0] || props.direction === 'horizontal' ? [{\n key: '',\n data: data\n }] : [])\n } as WmListState, () => {\n this.keyExtractor?.clear();\n });\n }\n this.itemWidgets = [];\n if (props.selectfirstitem) {\n this.selectFirstItem();\n } else {\n this.deselectAll();\n }\n break;\n case 'groupby':\n case 'match':\n this.setGroupData(this.state.props.dataset);\n break;\n case 'multiselect':\n if ($new) {\n if (!isArray(this.state.props.selecteditem)) {\n this.state.props.selecteditem = this.state.props.selecteditem ? \n [this.state.props.selecteditem] : [];\n }\n } else if (isArray(this.state.props.selecteditem)) {\n this.state.props.selecteditem = this.state.props.selecteditem.pop();\n }\n }\n }\n\n componentDidMount() {\n const props = this.state.props;\n if (this.state.props.selectfirstitem && props.dataset?.length) {\n setTimeout(() => {\n this.onSelect(props.dataset[0], 0);\n });\n }\n super.componentDidMount();\n }\n\n componentDidUpdate(prevProps: WmListProps, prevState: WmListState, snapshot?: any) {\n super.componentDidUpdate && super.componentDidUpdate(prevProps, prevState, snapshot);\n this.invokeEventCallback('onRender', [this, this.state.props.dataset]);\n }\n\n getDefaultStyles() {\n const isHorizontal = this.state.props.direction === 'horizontal';\n return this.theme.getStyle(`${this.defaultClass} ${isHorizontal ? 'app-horizontal-list' : 'app-vertical-list'}`);\n }\n\n getIndex(item: any) {\n return this.state.props.dataset.indexOf(item);\n }\n\n private generateItemKey(item: any, index: number, props: WmListProps) {\n if (props.itemkey && item && !this._showSkeleton) {\n return props.itemkey(item, index);\n }\n return 'list_item_' + this.keyExtractor.getKey(item, true);\n }\n\n private renderItem(item: any, index: number, props: WmListProps) {\n return ( \n <Tappable\n onTap={() => this.onSelect(item, index, true)}\n onLongTap={() => this.invokeEventCallback('onLongtap', [null, this.proxy])}\n onDoubleTap={() => this.invokeEventCallback('onDoubletap', [null, this.proxy])}>\n <View style={[\n this.styles.item,\n props.itemclass ? this.theme.getStyle(props.itemclass(item, index)) : null,\n this.isSelected(item) ? this.styles.selectedItem : {}]}>\n { props.renderItem(item, index, this)}\n { this.isSelected(item) ? (\n <WmIcon iconclass='wi wi-check-circle' styles={this.styles.selectedIcon} />\n ) : null}\n </View>\n </Tappable>\n );\n }\n\n private renderHeader(props: WmListProps, title: string) {\n return props.groupby ? (\n <Text style={this.styles.groupHeading}>{title}</Text>\n ) : (props.iconclass || props.title || props.subheading) ? (\n <View style={this.styles.heading}>\n <View style={{flex: 1, flexDirection: 'row'}}>\n <WmIcon styles={this.styles.listIcon} iconclass={props.iconclass}></WmIcon>\n <View>\n <WmLabel styles={this.styles.title} caption={props.title}></WmLabel>\n <WmLabel styles={this.styles.subheading} caption={props.subheading}></WmLabel>\n </View>\n </View>\n </View>) : null;\n }\n\n private renderEmptyMessage(isHorizontal: boolean, item: any, index: any, props: WmListProps) {\n return (<WmLabel styles={this.styles.emptyMessage} caption={props.nodatamessage}></WmLabel>);\n }\n\n private renderLoadingIcon(props: WmListProps) {\n return (<WmIcon\n styles={this.styles.loadingIcon}\n iconclass={props.loadingicon}\n caption={props.loadingdatamsg}></WmIcon>)\n }\n\n public getNoOfColumns() {\n const props = this.state.props;\n if(props.direction === 'vertical') {\n return props.itemsperrow.xs;\n }\n return 0;\n }\n\n private renderWithFlatList(props: WmListProps, isHorizontal = false) {\n return (\n <View style={this.styles.root}>\n {this.state.groupedData ? this.state.groupedData.map((v: any, i) => ((\n <View style={{marginBottom: 16}} key={v.key || this.keyExtractor.getKey(v, true)}>\n {this.renderHeader(props, v.key)}\n <FlatList\n key={props.name + '_' + (isHorizontal ? 'H' : 'V') + props.itemsperrow.xs}\n keyExtractor={(item, i) => this.generateItemKey(item, i, props)}\n horizontal = {isHorizontal}\n data={v.data || []}\n ListEmptyComponent = {(itemInfo) => this.renderEmptyMessage(isHorizontal, itemInfo.item, itemInfo.index, props)}\n renderItem={(itemInfo) => this.renderItem(itemInfo.item, itemInfo.index, props)} \n {...(isHorizontal ? {} : {numColumns : this.getNoOfColumns()})}> \n </FlatList>\n </View>\n ))) : null\n }\n </View>);\n }\n\n private getSectionListData() {\n if (this._showSkeleton) {\n return [{\n key: '',\n data: [{}, {}, {}]\n }];\n } else if (this.state.groupedData \n && this.state.groupedData[0] \n && this.state.groupedData[0]['data'].length) {\n return this.state.groupedData;\n }\n return [];\n }\n\n private renderWithSectionList(props: WmListProps, isHorizontal = false) { \n return (\n <SectionList\n keyExtractor={(item, i) => this.generateItemKey(item, i, props)}\n horizontal = {isHorizontal}\n onEndReached={({distanceFromEnd}) => {\n this.setState({ currentPage: this.state.currentPage + 1 } as WmListState);\n this.invokeEventCallback('onEndReached', [null, this]);\n }}\n contentContainerStyle={this.styles.root}\n onEndReachedThreshold={0.3}\n sections={this.getSectionListData()}\n renderSectionHeader={({ section: {key, data}}) => {\n return this.renderHeader(props, key);\n }}\n renderSectionFooter={() => props.loadingdata ? this.renderLoadingIcon(props) : null}\n ListEmptyComponent = {(itemInfo) => this.renderEmptyMessage(isHorizontal, itemInfo.item, itemInfo.index, props)}\n renderItem={(itemInfo) => this.renderItem(itemInfo.item, itemInfo.index, props)}>\n </SectionList>\n );\n }\n\n renderWidget(props: WmListProps) {\n this.invokeEventCallback('onBeforedatarender', [this, this.state.props.dataset]);\n const isHorizontal = (props.direction === 'horizontal');\n return (\n <View>\n {this._background}\n {(isHorizontal || !props.groupby) ?\n this.renderWithFlatList(props, isHorizontal)\n : this.renderWithSectionList(props, isHorizontal)}\n </View>);\n }\n}\n"],"mappings":"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"}
|
|
@@ -29,6 +29,12 @@ export default class WmListProps extends BaseProps {
|
|
|
29
29
|
_defineProperty(this, "dateformat", null);
|
|
30
30
|
_defineProperty(this, "selecteditem", null);
|
|
31
31
|
_defineProperty(this, "itemclass", null);
|
|
32
|
+
_defineProperty(this, "itemsperrow", {
|
|
33
|
+
xs: 1,
|
|
34
|
+
sm: 1,
|
|
35
|
+
md: 1,
|
|
36
|
+
lg: 1
|
|
37
|
+
});
|
|
32
38
|
}
|
|
33
39
|
}
|
|
34
40
|
//# sourceMappingURL=list.props.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","BaseProps","View","WmListProps","constructor","arguments","_defineProperty","createElement","$item","$index"],"sources":["list.props.tsx"],"sourcesContent":["import React from 'react';\nimport { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { View } from 'react-native';\n\nexport default class WmListProps extends BaseProps {\n iconclass: string = null as any;\n title: string = null as any;\n subheading: string = null as any;\n dataset = [] as any;\n maxnumberofitems = 50;\n renderItem: any = () => (<View/>);\n loadingicon='fa fa-circle-o-notch fa-pulse';\n loadingdatamsg = 'Loading...';\n multiselect = false;\n nodatamessage = 'No data found';\n loadingdata = false;\n selectfirstitem = false;\n selectionlimit = -1;\n disableitem = ($item: any, $index: any) => false;\n itemkey?: ($item: any, $index: any) => any = null as any;\n direction: 'horizontal' | 'vertical' = 'vertical';\n groupby: string = null as any;\n match: string = null as any;\n orderby: string = null as any;\n dateformat: string = null as any;\n selecteditem = null as any;\n itemclass: ($item: any, $index: any) => string = null as any;\n}\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,QAAQ,+CAA+C;AACzE,SAASC,IAAI,QAAQ,cAAc;AAEnC,eAAe,MAAMC,WAAW,SAASF,SAAS,CAAC;EAAAG,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,oBAC3B,IAAI;IAAAA,eAAA,gBACR,IAAI;IAAAA,eAAA,qBACC,IAAI;IAAAA,eAAA,kBACf,EAAE;IAAAA,eAAA,2BACO,EAAE;IAAAA,eAAA,qBACH,mBAAON,KAAA,CAAAO,aAAA,CAACL,IAAI,MAAC,CAAE;IAAAI,eAAA,sBACrB,+BAA+B;IAAAA,eAAA,yBAC1B,YAAY;IAAAA,eAAA,sBACf,KAAK;IAAAA,eAAA,wBACH,eAAe;IAAAA,eAAA,sBACjB,KAAK;IAAAA,eAAA,0BACD,KAAK;IAAAA,eAAA,yBACN,CAAC,CAAC;IAAAA,eAAA,sBACL,CAACE,KAAU,EAAEC,MAAW,KAAK,KAAK;IAAAH,eAAA,kBACH,IAAI;IAAAA,eAAA,oBACV,UAAU;IAAAA,eAAA,kBAC/B,IAAI;IAAAA,eAAA,gBACN,IAAI;IAAAA,eAAA,kBACF,IAAI;IAAAA,eAAA,qBACD,IAAI;IAAAA,eAAA,uBACV,IAAI;IAAAA,eAAA,oBAC8B,IAAI;EAAA;
|
|
1
|
+
{"version":3,"names":["React","BaseProps","View","WmListProps","constructor","arguments","_defineProperty","createElement","$item","$index","xs","sm","md","lg"],"sources":["list.props.tsx"],"sourcesContent":["import React from 'react';\nimport { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { View } from 'react-native';\n\nexport default class WmListProps extends BaseProps {\n iconclass: string = null as any;\n title: string = null as any;\n subheading: string = null as any;\n dataset = [] as any;\n maxnumberofitems = 50;\n renderItem: any = () => (<View/>);\n loadingicon='fa fa-circle-o-notch fa-pulse';\n loadingdatamsg = 'Loading...';\n multiselect = false;\n nodatamessage = 'No data found';\n loadingdata = false;\n selectfirstitem = false;\n selectionlimit = -1;\n disableitem = ($item: any, $index: any) => false;\n itemkey?: ($item: any, $index: any) => any = null as any;\n direction: 'horizontal' | 'vertical' = 'vertical';\n groupby: string = null as any;\n match: string = null as any;\n orderby: string = null as any;\n dateformat: string = null as any;\n selecteditem = null as any;\n itemclass: ($item: any, $index: any) => string = null as any;\n itemsperrow = {\n xs: 1,\n sm: 1,\n md: 1,\n lg: 1,\n }\n}\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,QAAQ,+CAA+C;AACzE,SAASC,IAAI,QAAQ,cAAc;AAEnC,eAAe,MAAMC,WAAW,SAASF,SAAS,CAAC;EAAAG,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,oBAC3B,IAAI;IAAAA,eAAA,gBACR,IAAI;IAAAA,eAAA,qBACC,IAAI;IAAAA,eAAA,kBACf,EAAE;IAAAA,eAAA,2BACO,EAAE;IAAAA,eAAA,qBACH,mBAAON,KAAA,CAAAO,aAAA,CAACL,IAAI,MAAC,CAAE;IAAAI,eAAA,sBACrB,+BAA+B;IAAAA,eAAA,yBAC1B,YAAY;IAAAA,eAAA,sBACf,KAAK;IAAAA,eAAA,wBACH,eAAe;IAAAA,eAAA,sBACjB,KAAK;IAAAA,eAAA,0BACD,KAAK;IAAAA,eAAA,yBACN,CAAC,CAAC;IAAAA,eAAA,sBACL,CAACE,KAAU,EAAEC,MAAW,KAAK,KAAK;IAAAH,eAAA,kBACH,IAAI;IAAAA,eAAA,oBACV,UAAU;IAAAA,eAAA,kBAC/B,IAAI;IAAAA,eAAA,gBACN,IAAI;IAAAA,eAAA,kBACF,IAAI;IAAAA,eAAA,qBACD,IAAI;IAAAA,eAAA,uBACV,IAAI;IAAAA,eAAA,oBAC8B,IAAI;IAAAA,eAAA,sBACtC;MACZI,EAAE,EAAE,CAAC;MACLC,EAAE,EAAE,CAAC;MACLC,EAAE,EAAE,CAAC;MACLC,EAAE,EAAE;IACP,CAAC;EAAA;AACL"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const queue = [];
|
|
2
|
+
let timerId;
|
|
3
|
+
export const flush = () => {
|
|
4
|
+
queue.forEach(fn => {
|
|
5
|
+
fn && fn();
|
|
6
|
+
});
|
|
7
|
+
queue.length = 0;
|
|
8
|
+
};
|
|
9
|
+
export const add = fn => {
|
|
10
|
+
if (!timerId) {
|
|
11
|
+
timerId = setTimeout(() => {
|
|
12
|
+
timerId = undefined;
|
|
13
|
+
flush();
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
queue.push(fn);
|
|
17
|
+
return () => {
|
|
18
|
+
const i = queue.indexOf(fn);
|
|
19
|
+
return i >= 0 ? queue.splice(i, 1)[0] : null;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export default {
|
|
23
|
+
add: add,
|
|
24
|
+
flush: flush
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=change.queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["queue","timerId","flush","forEach","fn","length","add","setTimeout","undefined","push","i","indexOf","splice"],"sources":["change.queue.ts"],"sourcesContent":["const queue: Function[] = [];\nlet timerId: any;\nexport const flush = () => {\n queue.forEach(fn => {\n fn && fn();\n });\n queue.length = 0;\n};\n\nexport const add = (fn: Function) => {\n if (!timerId) {\n timerId = setTimeout(() => {\n timerId = undefined;\n flush();\n });\n }\n queue.push(fn);\n return () => {\n const i = queue.indexOf(fn);\n return i >= 0 ? queue.splice(i, 1)[0] : null;\n };\n};\n\nexport default {\n add: add,\n flush: flush\n};"],"mappings":"AAAA,MAAMA,KAAiB,GAAG,EAAE;AAC5B,IAAIC,OAAY;AAChB,OAAO,MAAMC,KAAK,GAAGA,CAAA,KAAM;EACvBF,KAAK,CAACG,OAAO,CAACC,EAAE,IAAI;IAChBA,EAAE,IAAIA,EAAE,CAAC,CAAC;EACd,CAAC,CAAC;EACFJ,KAAK,CAACK,MAAM,GAAG,CAAC;AACpB,CAAC;AAED,OAAO,MAAMC,GAAG,GAAIF,EAAY,IAAK;EACjC,IAAI,CAACH,OAAO,EAAE;IACVA,OAAO,GAAGM,UAAU,CAAC,MAAM;MACvBN,OAAO,GAAGO,SAAS;MACnBN,KAAK,CAAC,CAAC;IACX,CAAC,CAAC;EACN;EACAF,KAAK,CAACS,IAAI,CAACL,EAAE,CAAC;EACd,OAAO,MAAM;IACT,MAAMM,CAAC,GAAGV,KAAK,CAACW,OAAO,CAACP,EAAE,CAAC;IAC3B,OAAOM,CAAC,IAAI,CAAC,GAAGV,KAAK,CAACY,MAAM,CAACF,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;EAChD,CAAC;AACL,CAAC;AAED,eAAe;EACXJ,GAAG,EAAEA,GAAG;EACRJ,KAAK,EAAEA;AACX,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wavemaker/app-rn-runtime",
|
|
3
|
-
"version": "11.4.0-patch.
|
|
3
|
+
"version": "11.4.0-patch.4",
|
|
4
4
|
"description": "''",
|
|
5
5
|
"main": "index",
|
|
6
6
|
"module": "index",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@react-navigation/native": "6.1.7",
|
|
50
50
|
"@react-navigation/stack": "^6.3.7",
|
|
51
51
|
"@types/lodash-es": "^4.17.6",
|
|
52
|
-
"@wavemaker/variables": "11.4.0-patch.
|
|
52
|
+
"@wavemaker/variables": "11.4.0-patch.4",
|
|
53
53
|
"axios": "^1.4.0",
|
|
54
54
|
"color": "4.2.3",
|
|
55
55
|
"cross-env": "^5.2.0",
|
package/styles/theme.js
CHANGED
|
@@ -2,7 +2,7 @@ var _class;
|
|
|
2
2
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
3
3
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
4
4
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
5
|
-
import { cloneDeep, forEach, flatten, isArray, isEmpty, isObject, isString, get, reverse } from 'lodash';
|
|
5
|
+
import { cloneDeep, isNil, forEach, flatten, isArray, isEmpty, isObject, isString, get, reverse } from 'lodash';
|
|
6
6
|
import React from 'react';
|
|
7
7
|
import { deepCopy, isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';
|
|
8
8
|
import EventNotifier from '@wavemaker/app-rn-runtime/core/event-notifier';
|
|
@@ -127,6 +127,20 @@ export class Theme {
|
|
|
127
127
|
}
|
|
128
128
|
return style;
|
|
129
129
|
}
|
|
130
|
+
cleanseStyleProperties(style) {
|
|
131
|
+
if (!(style && isObject(style)) || isString(style) || isArray(style)) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
style = style;
|
|
135
|
+
if (!isNil(style['shadowRadius'])) {
|
|
136
|
+
if (style['shadowRadius'] <= 0) {
|
|
137
|
+
style['shadowColor'] = 'transparent';
|
|
138
|
+
} else if (isNil(style['elevation'])) {
|
|
139
|
+
style['elevation'] = 2;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
Object.keys(style).forEach((k, i) => this.cleanseStyleProperties(style[k]));
|
|
143
|
+
}
|
|
130
144
|
getStyle(name) {
|
|
131
145
|
let style = this.cache[name];
|
|
132
146
|
if (style) {
|
|
@@ -143,6 +157,7 @@ export class Theme {
|
|
|
143
157
|
let clonedStyle = {};
|
|
144
158
|
if (!mediaQuery || matchMedia(mediaQuery).matches) {
|
|
145
159
|
clonedStyle = cloneDeep(this.styles[name]);
|
|
160
|
+
this.cleanseStyleProperties(clonedStyle);
|
|
146
161
|
}
|
|
147
162
|
if (this !== Theme.BASE && isWebPreviewMode()) {
|
|
148
163
|
this.checkStyleProperties('', clonedStyle);
|
package/styles/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["cloneDeep","forEach","flatten","isArray","isEmpty","isObject","isString","get","reverse","React","deepCopy","isWebPreviewMode","EventNotifier","ViewPort","EVENTS","ViewPortEvents","MediaQueryList","ThemeVariables","getErrorMessage","getStyleReference","isValidStyleProp","DEFAULT_CLASS","window","matchMedia","query","DEVICE_BREAK_POINTS","ThemeEvent","Theme","constructor","parent","name","_defineProperty","traceEnabled","subscribe","event","fn","eventNotifer","notify","children","t","clearCache","cache","registerStyle","styleGenerators","push","INSTANCE","addStyle","bind","checkStyleProperties","value","Object","keys","map","k","console","log","extend","style","styles","getStyle","addTrace","styleName","mergedChildstyle","childStyle","parentStyle","v","__trace","prefix","arguments","length","undefined","result","collect","mergeStyle","_len","Array","_key","flattenStyles","s","cs","filter","indexOf","split","c","mediaQuery","clonedStyle","matches","BASE","$new","newTheme","reset","destroy","i","splice","themeVariables","CHANGE","_class","SIZE_CHANGE","ThemeContext","createContext","ThemeProvider","Provider","ThemeConsumer","Consumer","addColStyles","device","minWidth","root","width","MIN_EXTRA_SMALL_DEVICE","MIN_SMALL_DEVICE","MIN_MEDIUM_DEVICE","MIN_LARGE_DEVICE","display","addDisplayStyles","maxWidth","MAX_LARGE_DEVICE","MAX_EXTRA_SMALL_DEVICE","MAX_SMALL_DEVICE","MAX_MEDIUM_DEVICE","addElevationClasses","shadowColor","shadowOffset","height","shadowOpacity","shadowRadius","elevation","zIndex","transform","scale","backgroundColor","dangerColor","infoColor","primaryColor","successColor","warningColor","borderColor","text","userSelect"],"sources":["theme.tsx"],"sourcesContent":["import { cloneDeep, forEach, flatten, isArray, isEmpty, isObject, isString, isFunction, get, reverse } from 'lodash';\nimport React, { ReactNode } from 'react';\nimport { TextStyle, ViewStyle, ImageStyle, ImageBackground } from 'react-native';\nimport { deepCopy, isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\nimport EventNotifier from '@wavemaker/app-rn-runtime/core/event-notifier';\nimport ViewPort, {EVENTS as ViewPortEvents} from '@wavemaker/app-rn-runtime/core/viewport';\nimport MediaQueryList from './MediaQueryList';\nimport ThemeVariables from './theme.variables';\nimport { getErrorMessage, getStyleReference, isValidStyleProp } from './style-prop.validator';\nexport const DEFAULT_CLASS = 'DEFAULT_CLASS';\n\ndeclare const matchMedia: any, window: any;\n\nif (typeof window !== \"undefined\") {\n // @ts-ignore: does not properly extend MediaQueryList\n window.matchMedia = (query: string) => new MediaQueryList(query);\n}\n\nexport const DEVICE_BREAK_POINTS = {\n 'MIN_EXTRA_SMALL_DEVICE' : '0px',\n 'MAX_EXTRA_SMALL_DEVICE' : '767px',\n 'MIN_SMALL_DEVICE' : '768px',\n 'MAX_SMALL_DEVICE' : '991px',\n 'MIN_MEDIUM_DEVICE' : '992px',\n 'MAX_MEDIUM_DEVICE' : '1199px',\n 'MIN_LARGE_DEVICE' : '1200px',\n 'MAX_LARGE_DEVICE' : '1000000px',\n};\n\nexport type styleGeneratorFn<T extends NamedStyles<any>> = (\n themeVariables: ThemeVariables,\n addStyle: (name: string, extend: string, style: T) => void) => void\n\nexport enum ThemeEvent {\n CHANGE ='change'\n};\n\nexport class Theme {\n public static BASE = new Theme(null as any, 'default');\n\n static {\n ViewPort.subscribe(ViewPortEvents.SIZE_CHANGE, () => {\n Theme.BASE.reset();\n });\n }\n\n\n private eventNotifer = new EventNotifier();\n\n private children: Theme[] = [];\n\n private styles: any = {};\n\n private cache: any = {};\n\n private traceEnabled = false;\n\n private styleGenerators: styleGeneratorFn<any>[] = [];\n\n private constructor(private parent:Theme, public readonly name: string) {\n if (parent) {\n this.traceEnabled = parent.traceEnabled;\n } else {\n this.traceEnabled = isWebPreviewMode();\n }\n }\n\n public subscribe(event: ThemeEvent, fn: Function) {\n return this.eventNotifer.subscribe(event, fn);\n }\n\n public notify(event: ThemeEvent): void {\n this.eventNotifer.notify(event, []);\n this.children.forEach(t => t.notify(event));\n }\n\n clearCache() {\n this.cache = {};\n this.children.forEach((t) => t.clearCache());\n }\n\n registerStyle<T extends NamedStyles<any>>(fn: styleGeneratorFn<T>) {\n this.styleGenerators.push(fn);\n fn(ThemeVariables.INSTANCE, this.addStyle.bind(this));\n }\n\n checkStyleProperties(name: string, value : any) {\n if (isObject(value)) {\n Object.keys(value).map((k) => this.checkStyleProperties(k, (value as any)[k]));\n } else if(name && !isValidStyleProp(name, value)) {\n console.log(\n `%cInvalid Style property in ${this.name}: ${getErrorMessage(name, value)}`,\n 'background-color: #FF0000;font-weight: bold; color: #fff'\n );\n console.log(`Refer: ${getStyleReference(name)}`);\n }\n }\n\n private addStyle<T extends NamedStyles<any>>(name: string, extend: string, style: T) {\n this.styles[name] = deepCopy(this.getStyle(extend), this.styles[name], style);\n }\n\n private addTrace(styleName: string, mergedChildstyle: any, childStyle: any, parentStyle?: any) {\n if (!this.traceEnabled) {\n return;\n }\n let addTrace = !isEmpty(childStyle);\n forEach(mergedChildstyle, (v: any, k: string) => {\n if (v && !isString(v) && !isArray(v) && isObject(v)) {\n addTrace = false;\n this.addTrace(styleName + '.' + k, v, childStyle && childStyle[k], parentStyle && parentStyle[k])\n }\n });\n if (addTrace) {\n mergedChildstyle['__trace'] = [\n {\n name: styleName,\n value: childStyle\n },\n ...(parentStyle?.__trace|| [])\n ];\n } else {\n mergedChildstyle['__trace'] = [...(parentStyle?.__trace|| [])];\n }\n }\n\n private flatten(style: any, prefix = \"\", result = {} as any) {\n let collect = !isEmpty(style);\n forEach(style, (v: any, k: string) => {\n if (v && !isString(v) && !isArray(v) && isObject(v)) {\n collect = false;\n this.flatten(v, (prefix ? prefix + '.' : '') + k, result)\n }\n });\n if (collect) {\n result[prefix] = style;\n }\n return result;\n }\n\n mergeStyle(...styles: any) {\n const style = deepCopy(...styles);\n if (this.traceEnabled) {\n const flattenStyles = this.flatten(style);\n Object.keys(flattenStyles).forEach(k => {\n const s = flattenStyles[k];\n s['__trace'] = flatten(reverse(styles.map((v: any) => {\n const cs = get(v, k);\n if (cs && cs.__trace) {\n return [...cs.__trace];\n }\n return [];\n }).filter((t: any) => t.length > 0)));\n });\n }\n return style;\n }\n\n getStyle(name: string) {\n let style = this.cache[name];\n if (style) {\n return style;\n }\n if (!name) {\n return {};\n }\n if (name.indexOf(' ') > 0) {\n style = this.mergeStyle(...(name.split(' ').map(c => this.getStyle(c))));\n } else {\n const parentStyle = this.parent && this.parent.getStyle(name);\n const mediaQuery = (this.styles[name] || {})['@media'];\n let clonedStyle = {};\n if (!mediaQuery || matchMedia(mediaQuery).matches) {\n clonedStyle = cloneDeep(this.styles[name]);\n }\n if (this !== Theme.BASE && isWebPreviewMode()) {\n this.checkStyleProperties('', clonedStyle);\n }\n style = deepCopy(parentStyle, clonedStyle);\n this.addTrace(`@${this.name}:${name}`, style, clonedStyle, parentStyle);\n }\n this.cache[name] = style;\n return style;\n }\n\n $new(name = \"\", styles = {} as NamedStyles<any>) {\n const newTheme = new Theme(this, name);\n newTheme.reset(styles);\n this.children.push(newTheme);\n return newTheme;\n }\n\n destroy() {\n const i = this.parent.children.indexOf(this);\n if (i >= 0) {\n this.parent.children.splice(i, 1);\n }\n }\n\n reset(styles?: NamedStyles<any>) {\n this.styles = {};\n this.clearCache();\n if (styles) {\n this.registerStyle((themeVariables, addStyle) => {\n Object.keys(styles).forEach(k => {\n addStyle(k, '', styles[k] as any);\n });\n });\n } else {\n this.styleGenerators.forEach(fn => \n fn(ThemeVariables.INSTANCE, this.addStyle.bind(this)));\n }\n this.notify(ThemeEvent.CHANGE);\n }\n}\nexport default Theme.BASE;\nexport type NamedStyles<T> = { [P in keyof T]: AllStyle | NamedStyles<T>};\nexport type BackgroundImageStyle = {\n backgroundImage: string,\n backgroundPosition: string,\n backgroundRepeat: string,\n backgroundSize: string | number\n};\n\nexport type AllStyle = (ViewStyle & TextStyle & ImageStyle & {userSelect?: 'none'| 'text'});\n\nconst ThemeContext = React.createContext<Theme>(null as any);\n\nexport const ThemeProvider = ThemeContext.Provider;\nexport const ThemeConsumer = ThemeContext.Consumer;\n/**\n * Common styles\n */\n Theme.BASE.registerStyle((themeVariables, addStyle) => {\n const addColStyles = (device: string, minWidth: string) => {\n for(let i = 1; i <= 12; i++) {\n addStyle(`col-${device}-${i}`, '', {\n \"@media\": `(min-width: ${minWidth})`,\n root: {\n width: (100 * i / 12) + '%'\n }\n } as any)\n }\n };\n addColStyles('xs', DEVICE_BREAK_POINTS.MIN_EXTRA_SMALL_DEVICE);\n addColStyles('sm', DEVICE_BREAK_POINTS.MIN_SMALL_DEVICE);\n addColStyles('md', DEVICE_BREAK_POINTS.MIN_MEDIUM_DEVICE);\n addColStyles('lg', DEVICE_BREAK_POINTS.MIN_LARGE_DEVICE);\n\n addStyle('d-none', '', {\n root: {\n display: 'none'\n }\n } as any);\n addStyle('d-flex', '', {\n root: {\n display: 'flex'\n }\n } as any);\n\n const addDisplayStyles = (device: string, minWidth: string, maxWidth: string) => {\n addStyle(`d-${device}-none`, '', {\n \"@media\": `(min-width: ${minWidth}) and (max-width: ${maxWidth})`,\n root: {\n display: 'none'\n }\n } as any);\n addStyle(`d-${device}-flex`, '', {\n \"@media\": `(min-width: ${minWidth}) and (max-width: ${maxWidth})`,\n root: {\n display: 'flex'\n }\n } as any);\n };\n addDisplayStyles('all', \n DEVICE_BREAK_POINTS.MIN_EXTRA_SMALL_DEVICE,\n DEVICE_BREAK_POINTS.MAX_LARGE_DEVICE);\n addDisplayStyles('xs', \n DEVICE_BREAK_POINTS.MIN_EXTRA_SMALL_DEVICE,\n DEVICE_BREAK_POINTS.MAX_EXTRA_SMALL_DEVICE);\n addDisplayStyles('sm', \n DEVICE_BREAK_POINTS.MIN_SMALL_DEVICE,\n DEVICE_BREAK_POINTS.MAX_SMALL_DEVICE);\n addDisplayStyles('md', \n DEVICE_BREAK_POINTS.MIN_MEDIUM_DEVICE,\n DEVICE_BREAK_POINTS.MAX_MEDIUM_DEVICE);\n addDisplayStyles('lg', \n DEVICE_BREAK_POINTS.MIN_LARGE_DEVICE,\n DEVICE_BREAK_POINTS.MAX_LARGE_DEVICE);\n\n const addElevationClasses = () => {\n for(let i = 1; i <= 10; i++) {\n addStyle(`elevate${i}`, '', {\n root : {\n shadowColor: \"#000000\",\n shadowOffset: {\n width: i,\n height: i,\n },\n shadowOpacity: 0.27,\n shadowRadius: i,\n elevation: i,\n zIndex: 1\n }\n });\n }\n };\n addElevationClasses();\n addStyle('hidden', '', {\n root: {\n width: 0,\n height: 0,\n transform: [{ scale: 0 }]\n }\n });\n addStyle('bg-danger', '', { root: { backgroundColor: themeVariables.dangerColor }});\n addStyle('bg-info', '', { root: { backgroundColor: themeVariables.infoColor }});\n addStyle('bg-primary', '', { root: { backgroundColor: themeVariables.primaryColor }});\n addStyle('bg-success', '', { root: { backgroundColor: themeVariables.successColor }});\n addStyle('bg-warning', '', { root: { backgroundColor: themeVariables.warningColor }});\n\n addStyle('border-danger', '', { root: { borderColor: themeVariables.dangerColor }});\n addStyle('border-info', '', { root: { borderColor: themeVariables.infoColor }});\n addStyle('border-primary', '', { root: { borderColor: themeVariables.primaryColor }});\n addStyle('border-success', '', { root: { borderColor: themeVariables.successColor }});\n addStyle('border-warning', '', { root: { borderColor: themeVariables.warningColor }});\n\n addStyle('hide-context-menu', '', { text: { userSelect: 'none' }});\n});\n\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["cloneDeep","isNil","forEach","flatten","isArray","isEmpty","isObject","isString","get","reverse","React","deepCopy","isWebPreviewMode","EventNotifier","ViewPort","EVENTS","ViewPortEvents","MediaQueryList","ThemeVariables","getErrorMessage","getStyleReference","isValidStyleProp","DEFAULT_CLASS","window","matchMedia","query","DEVICE_BREAK_POINTS","ThemeEvent","Theme","constructor","parent","name","_defineProperty","traceEnabled","subscribe","event","fn","eventNotifer","notify","children","t","clearCache","cache","registerStyle","styleGenerators","push","INSTANCE","addStyle","bind","checkStyleProperties","value","Object","keys","map","k","console","log","extend","style","styles","getStyle","addTrace","styleName","mergedChildstyle","childStyle","parentStyle","v","__trace","prefix","arguments","length","undefined","result","collect","mergeStyle","_len","Array","_key","flattenStyles","s","cs","filter","cleanseStyleProperties","i","indexOf","split","c","mediaQuery","clonedStyle","matches","BASE","$new","newTheme","reset","destroy","splice","themeVariables","CHANGE","_class","SIZE_CHANGE","ThemeContext","createContext","ThemeProvider","Provider","ThemeConsumer","Consumer","addColStyles","device","minWidth","root","width","MIN_EXTRA_SMALL_DEVICE","MIN_SMALL_DEVICE","MIN_MEDIUM_DEVICE","MIN_LARGE_DEVICE","display","addDisplayStyles","maxWidth","MAX_LARGE_DEVICE","MAX_EXTRA_SMALL_DEVICE","MAX_SMALL_DEVICE","MAX_MEDIUM_DEVICE","addElevationClasses","shadowColor","shadowOffset","height","shadowOpacity","shadowRadius","elevation","zIndex","transform","scale","backgroundColor","dangerColor","infoColor","primaryColor","successColor","warningColor","borderColor","text","userSelect"],"sources":["theme.tsx"],"sourcesContent":["import { cloneDeep, isNil, forEach, flatten, isArray, isEmpty, isObject, isString, isFunction, get, reverse } from 'lodash';\nimport React, { ReactNode } from 'react';\nimport { TextStyle, ViewStyle, ImageStyle, ImageBackground } from 'react-native';\nimport { deepCopy, isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\nimport EventNotifier from '@wavemaker/app-rn-runtime/core/event-notifier';\nimport ViewPort, {EVENTS as ViewPortEvents} from '@wavemaker/app-rn-runtime/core/viewport';\nimport MediaQueryList from './MediaQueryList';\nimport ThemeVariables from './theme.variables';\nimport { getErrorMessage, getStyleReference, isValidStyleProp } from './style-prop.validator';\nexport const DEFAULT_CLASS = 'DEFAULT_CLASS';\n\ndeclare const matchMedia: any, window: any;\n\nif (typeof window !== \"undefined\") {\n // @ts-ignore: does not properly extend MediaQueryList\n window.matchMedia = (query: string) => new MediaQueryList(query);\n}\n\nexport const DEVICE_BREAK_POINTS = {\n 'MIN_EXTRA_SMALL_DEVICE' : '0px',\n 'MAX_EXTRA_SMALL_DEVICE' : '767px',\n 'MIN_SMALL_DEVICE' : '768px',\n 'MAX_SMALL_DEVICE' : '991px',\n 'MIN_MEDIUM_DEVICE' : '992px',\n 'MAX_MEDIUM_DEVICE' : '1199px',\n 'MIN_LARGE_DEVICE' : '1200px',\n 'MAX_LARGE_DEVICE' : '1000000px',\n};\n\nexport type styleGeneratorFn<T extends NamedStyles<any>> = (\n themeVariables: ThemeVariables,\n addStyle: (name: string, extend: string, style: T) => void) => void\n\nexport enum ThemeEvent {\n CHANGE ='change'\n};\n\nexport class Theme {\n public static BASE = new Theme(null as any, 'default');\n\n static {\n ViewPort.subscribe(ViewPortEvents.SIZE_CHANGE, () => {\n Theme.BASE.reset();\n });\n }\n\n\n private eventNotifer = new EventNotifier();\n\n private children: Theme[] = [];\n\n private styles: any = {};\n\n private cache: any = {};\n\n private traceEnabled = false;\n\n private styleGenerators: styleGeneratorFn<any>[] = [];\n\n private constructor(private parent:Theme, public readonly name: string) {\n if (parent) {\n this.traceEnabled = parent.traceEnabled;\n } else {\n this.traceEnabled = isWebPreviewMode();\n }\n }\n\n public subscribe(event: ThemeEvent, fn: Function) {\n return this.eventNotifer.subscribe(event, fn);\n }\n\n public notify(event: ThemeEvent): void {\n this.eventNotifer.notify(event, []);\n this.children.forEach(t => t.notify(event));\n }\n\n clearCache() {\n this.cache = {};\n this.children.forEach((t) => t.clearCache());\n }\n\n registerStyle<T extends NamedStyles<any>>(fn: styleGeneratorFn<T>) {\n this.styleGenerators.push(fn);\n fn(ThemeVariables.INSTANCE, this.addStyle.bind(this));\n }\n\n checkStyleProperties(name: string, value : any) {\n if (isObject(value)) {\n Object.keys(value).map((k) => this.checkStyleProperties(k, (value as any)[k]));\n } else if(name && !isValidStyleProp(name, value)) {\n console.log(\n `%cInvalid Style property in ${this.name}: ${getErrorMessage(name, value)}`,\n 'background-color: #FF0000;font-weight: bold; color: #fff'\n );\n console.log(`Refer: ${getStyleReference(name)}`);\n }\n }\n\n private addStyle<T extends NamedStyles<any>>(name: string, extend: string, style: T) {\n this.styles[name] = deepCopy(this.getStyle(extend), this.styles[name], style);\n }\n\n private addTrace(styleName: string, mergedChildstyle: any, childStyle: any, parentStyle?: any) {\n if (!this.traceEnabled) {\n return;\n }\n let addTrace = !isEmpty(childStyle);\n forEach(mergedChildstyle, (v: any, k: string) => {\n if (v && !isString(v) && !isArray(v) && isObject(v)) {\n addTrace = false;\n this.addTrace(styleName + '.' + k, v, childStyle && childStyle[k], parentStyle && parentStyle[k])\n }\n });\n if (addTrace) {\n mergedChildstyle['__trace'] = [\n {\n name: styleName,\n value: childStyle\n },\n ...(parentStyle?.__trace|| [])\n ];\n } else {\n mergedChildstyle['__trace'] = [...(parentStyle?.__trace|| [])];\n }\n }\n\n private flatten(style: any, prefix = \"\", result = {} as any) {\n let collect = !isEmpty(style);\n forEach(style, (v: any, k: string) => {\n if (v && !isString(v) && !isArray(v) && isObject(v)) {\n collect = false;\n this.flatten(v, (prefix ? prefix + '.' : '') + k, result)\n }\n });\n if (collect) {\n result[prefix] = style;\n }\n return result;\n }\n\n mergeStyle(...styles: any) {\n const style = deepCopy(...styles);\n if (this.traceEnabled) {\n const flattenStyles = this.flatten(style);\n Object.keys(flattenStyles).forEach(k => {\n const s = flattenStyles[k];\n s['__trace'] = flatten(reverse(styles.map((v: any) => {\n const cs = get(v, k);\n if (cs && cs.__trace) {\n return [...cs.__trace];\n }\n return [];\n }).filter((t: any) => t.length > 0)));\n });\n }\n return style;\n }\n\n cleanseStyleProperties(style: any) {\n if (!(style && isObject(style)) || isString(style) || isArray(style)) {\n return;\n }\n style = style as any;\n if (!isNil(style['shadowRadius'])) {\n if (style['shadowRadius'] <= 0) {\n style['shadowColor'] = 'transparent';\n } else if (isNil(style['elevation'])) {\n style['elevation'] = 2;\n }\n }\n Object.keys(style).forEach((k, i) => this.cleanseStyleProperties(style[k]));\n }\n\n getStyle(name: string) {\n let style = this.cache[name];\n if (style) {\n return style;\n }\n if (!name) {\n return {};\n }\n if (name.indexOf(' ') > 0) {\n style = this.mergeStyle(...(name.split(' ').map(c => this.getStyle(c))));\n } else {\n const parentStyle = this.parent && this.parent.getStyle(name);\n const mediaQuery = (this.styles[name] || {})['@media'];\n let clonedStyle = {};\n if (!mediaQuery || matchMedia(mediaQuery).matches) {\n clonedStyle = cloneDeep(this.styles[name]);\n this.cleanseStyleProperties(clonedStyle);\n }\n if (this !== Theme.BASE && isWebPreviewMode()) {\n this.checkStyleProperties('', clonedStyle);\n }\n style = deepCopy(parentStyle, clonedStyle);\n this.addTrace(`@${this.name}:${name}`, style, clonedStyle, parentStyle);\n }\n this.cache[name] = style;\n return style;\n }\n\n $new(name = \"\", styles = {} as NamedStyles<any>) {\n const newTheme = new Theme(this, name);\n newTheme.reset(styles);\n this.children.push(newTheme);\n return newTheme;\n }\n\n destroy() {\n const i = this.parent.children.indexOf(this);\n if (i >= 0) {\n this.parent.children.splice(i, 1);\n }\n }\n\n reset(styles?: NamedStyles<any>) {\n this.styles = {};\n this.clearCache();\n if (styles) {\n this.registerStyle((themeVariables, addStyle) => {\n Object.keys(styles).forEach(k => {\n addStyle(k, '', styles[k] as any);\n });\n });\n } else {\n this.styleGenerators.forEach(fn => \n fn(ThemeVariables.INSTANCE, this.addStyle.bind(this)));\n }\n this.notify(ThemeEvent.CHANGE);\n }\n}\nexport default Theme.BASE;\nexport type NamedStyles<T> = { [P in keyof T]: AllStyle | NamedStyles<T>};\nexport type BackgroundImageStyle = {\n backgroundImage: string,\n backgroundPosition: string,\n backgroundRepeat: string,\n backgroundSize: string | number\n};\n\nexport type AllStyle = (ViewStyle & TextStyle & ImageStyle & {userSelect?: 'none'| 'text'});\n\nconst ThemeContext = React.createContext<Theme>(null as any);\n\nexport const ThemeProvider = ThemeContext.Provider;\nexport const ThemeConsumer = ThemeContext.Consumer;\n/**\n * Common styles\n */\n Theme.BASE.registerStyle((themeVariables, addStyle) => {\n const addColStyles = (device: string, minWidth: string) => {\n for(let i = 1; i <= 12; i++) {\n addStyle(`col-${device}-${i}`, '', {\n \"@media\": `(min-width: ${minWidth})`,\n root: {\n width: (100 * i / 12) + '%'\n }\n } as any)\n }\n };\n addColStyles('xs', DEVICE_BREAK_POINTS.MIN_EXTRA_SMALL_DEVICE);\n addColStyles('sm', DEVICE_BREAK_POINTS.MIN_SMALL_DEVICE);\n addColStyles('md', DEVICE_BREAK_POINTS.MIN_MEDIUM_DEVICE);\n addColStyles('lg', DEVICE_BREAK_POINTS.MIN_LARGE_DEVICE);\n\n addStyle('d-none', '', {\n root: {\n display: 'none'\n }\n } as any);\n addStyle('d-flex', '', {\n root: {\n display: 'flex'\n }\n } as any);\n\n const addDisplayStyles = (device: string, minWidth: string, maxWidth: string) => {\n addStyle(`d-${device}-none`, '', {\n \"@media\": `(min-width: ${minWidth}) and (max-width: ${maxWidth})`,\n root: {\n display: 'none'\n }\n } as any);\n addStyle(`d-${device}-flex`, '', {\n \"@media\": `(min-width: ${minWidth}) and (max-width: ${maxWidth})`,\n root: {\n display: 'flex'\n }\n } as any);\n };\n addDisplayStyles('all', \n DEVICE_BREAK_POINTS.MIN_EXTRA_SMALL_DEVICE,\n DEVICE_BREAK_POINTS.MAX_LARGE_DEVICE);\n addDisplayStyles('xs', \n DEVICE_BREAK_POINTS.MIN_EXTRA_SMALL_DEVICE,\n DEVICE_BREAK_POINTS.MAX_EXTRA_SMALL_DEVICE);\n addDisplayStyles('sm', \n DEVICE_BREAK_POINTS.MIN_SMALL_DEVICE,\n DEVICE_BREAK_POINTS.MAX_SMALL_DEVICE);\n addDisplayStyles('md', \n DEVICE_BREAK_POINTS.MIN_MEDIUM_DEVICE,\n DEVICE_BREAK_POINTS.MAX_MEDIUM_DEVICE);\n addDisplayStyles('lg', \n DEVICE_BREAK_POINTS.MIN_LARGE_DEVICE,\n DEVICE_BREAK_POINTS.MAX_LARGE_DEVICE);\n\n const addElevationClasses = () => {\n for(let i = 1; i <= 10; i++) {\n addStyle(`elevate${i}`, '', {\n root : {\n shadowColor: \"#000000\",\n shadowOffset: {\n width: i,\n height: i,\n },\n shadowOpacity: 0.27,\n shadowRadius: i,\n elevation: i,\n zIndex: 1\n }\n });\n }\n };\n addElevationClasses();\n addStyle('hidden', '', {\n root: {\n width: 0,\n height: 0,\n transform: [{ scale: 0 }]\n }\n });\n addStyle('bg-danger', '', { root: { backgroundColor: themeVariables.dangerColor }});\n addStyle('bg-info', '', { root: { backgroundColor: themeVariables.infoColor }});\n addStyle('bg-primary', '', { root: { backgroundColor: themeVariables.primaryColor }});\n addStyle('bg-success', '', { root: { backgroundColor: themeVariables.successColor }});\n addStyle('bg-warning', '', { root: { backgroundColor: themeVariables.warningColor }});\n\n addStyle('border-danger', '', { root: { borderColor: themeVariables.dangerColor }});\n addStyle('border-info', '', { root: { borderColor: themeVariables.infoColor }});\n addStyle('border-primary', '', { root: { borderColor: themeVariables.primaryColor }});\n addStyle('border-success', '', { root: { borderColor: themeVariables.successColor }});\n addStyle('border-warning', '', { root: { borderColor: themeVariables.warningColor }});\n\n addStyle('hide-context-menu', '', { text: { userSelect: 'none' }});\n});\n\n"],"mappings":"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"}
|