@wavemaker/app-rn-runtime 11.14.3-rc.6401 → 11.14.4-rc.647538
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/advanced/carousel/carousel.component.js +3 -2
- package/components/advanced/carousel/carousel.component.js.map +1 -1
- package/components/advanced/carousel/carousel.styles.js +0 -3
- package/components/advanced/carousel/carousel.styles.js.map +1 -1
- package/components/basic/anchor/anchor.styles.js +0 -5
- package/components/basic/anchor/anchor.styles.js.map +1 -1
- package/components/basic/bottomsheet/bottomsheet.component.js +0 -30
- package/components/basic/bottomsheet/bottomsheet.component.js.map +1 -1
- package/components/basic/icon/icon.component.js +3 -5
- package/components/basic/icon/icon.component.js.map +1 -1
- package/components/basic/icon/icon.styles.js +0 -5
- package/components/basic/icon/icon.styles.js.map +1 -1
- package/components/basic/message/message.component.js.map +1 -1
- package/components/basic/picture/picture.component.js +15 -42
- package/components/basic/picture/picture.component.js.map +1 -1
- package/components/basic/progress-circle/progress-circle.component.js +3 -3
- package/components/basic/progress-circle/progress-circle.component.js.map +1 -1
- package/components/basic/search/search.component.js +3 -4
- package/components/basic/search/search.component.js.map +1 -1
- package/components/container/accordion/accordion.component.js +3 -3
- package/components/container/accordion/accordion.component.js.map +1 -1
- package/components/container/accordion/accordion.styles.js +1 -4
- package/components/container/accordion/accordion.styles.js.map +1 -1
- package/components/container/container.component.js +11 -182
- package/components/container/container.component.js.map +1 -1
- package/components/container/container.props.js +0 -5
- package/components/container/container.props.js.map +1 -1
- package/components/container/linearlayout/linearlayout.component.js +1 -1
- package/components/container/linearlayout/linearlayout.component.js.map +1 -1
- package/components/container/tabs/tabheader/tabheader.component.js +17 -23
- package/components/container/tabs/tabheader/tabheader.component.js.map +1 -1
- package/components/container/tabs/tabs.component.js +4 -5
- package/components/container/tabs/tabs.component.js.map +1 -1
- package/components/container/tabs/tabs.styles.js +0 -4
- package/components/container/tabs/tabs.styles.js.map +1 -1
- package/components/container/wizard/wizard.component.js +1 -1
- package/components/container/wizard/wizard.component.js.map +1 -1
- package/components/container/wizard/wizard.props.js +0 -1
- package/components/container/wizard/wizard.props.js.map +1 -1
- package/components/container/wizard/wizard.styles.js +3 -1
- package/components/container/wizard/wizard.styles.js.map +1 -1
- package/components/container/wizard/wizardstep/wizardstep.component.js +2 -2
- package/components/container/wizard/wizardstep/wizardstep.component.js.map +1 -1
- package/components/data/form/form-body/form-body.component.js +1 -2
- package/components/data/form/form-body/form-body.component.js.map +1 -1
- package/components/data/form/form-footer/form-footer.component.js +1 -2
- package/components/data/form/form-footer/form-footer.component.js.map +1 -1
- package/components/data/form/form.styles.js +0 -8
- package/components/data/form/form.styles.js.map +1 -1
- package/components/input/chips/chips.component.js +20 -66
- package/components/input/chips/chips.component.js.map +1 -1
- package/components/input/chips/chips.styles.js +0 -43
- package/components/input/chips/chips.styles.js.map +1 -1
- package/components/input/currency/currency.component.js +1 -2
- package/components/input/currency/currency.component.js.map +1 -1
- package/components/input/currency/currency.styles.js +1 -6
- package/components/input/currency/currency.styles.js.map +1 -1
- package/components/input/epoch/base-datetime.component.js.map +1 -1
- package/components/input/epoch/datetime/datetime.styles.js.map +1 -1
- package/components/input/number/number.component.js +1 -2
- package/components/input/number/number.component.js.map +1 -1
- package/components/input/radioset/radioset.component.js +3 -6
- package/components/input/radioset/radioset.component.js.map +1 -1
- package/components/input/radioset/radioset.styles.js.map +1 -1
- package/components/input/select/select.component.js +1 -2
- package/components/input/select/select.component.js.map +1 -1
- package/components/input/slider/slider.component.js +21 -18
- package/components/input/slider/slider.component.js.map +1 -1
- package/components/input/text/text.component.js +1 -2
- package/components/input/text/text.component.js.map +1 -1
- package/components/input/text/text.styles.js +0 -12
- package/components/input/text/text.styles.js.map +1 -1
- package/components/input/textarea/textarea.component.js +1 -2
- package/components/input/textarea/textarea.component.js.map +1 -1
- package/components/input/toggle/toggle.component.js +1 -26
- package/components/input/toggle/toggle.component.js.map +1 -1
- package/components/input/toggle/toggle.props.js +0 -2
- package/components/input/toggle/toggle.props.js.map +1 -1
- package/components/input/toggle/toggle.styles.js +1 -27
- package/components/input/toggle/toggle.styles.js.map +1 -1
- package/components/navigation/popover/popover.component.js +4 -4
- package/components/navigation/popover/popover.component.js.map +1 -1
- package/components/navigation/popover/popover.props.js +0 -1
- package/components/navigation/popover/popover.props.js.map +1 -1
- package/components/navigation/popover/popover.styles.js +0 -13
- package/components/navigation/popover/popover.styles.js.map +1 -1
- package/core/base.component.js +10 -76
- package/core/base.component.js.map +1 -1
- package/core/components/textinput.component.js +1 -5
- package/core/components/textinput.component.js.map +1 -1
- package/core/tappable.component.js +1 -1
- package/core/tappable.component.js.map +1 -1
- package/npm-shrinkwrap.json +3180 -1560
- package/package-lock.json +3180 -1560
- package/package.json +2 -3
- package/styles/background.component.js +2 -2
- package/styles/background.component.js.map +1 -1
- package/styles/theme.js +23 -104
- package/styles/theme.js.map +1 -1
- package/components/advanced/customwidgetcontainer/customwidgetcontainer.component.js +0 -14
- package/components/advanced/customwidgetcontainer/customwidgetcontainer.component.js.map +0 -1
- package/components/advanced/customwidgetcontainer/customwidgetcontainer.props.js +0 -11
- package/components/advanced/customwidgetcontainer/customwidgetcontainer.props.js.map +0 -1
- package/components/advanced/customwidgetcontainer/customwidgetcontainer.styles.js +0 -14
- package/components/advanced/customwidgetcontainer/customwidgetcontainer.styles.js.map +0 -1
- package/runtime/base-customwidget.component.js +0 -52
- package/runtime/base-customwidget.component.js.map +0 -1
- package/styles/calc.js +0 -165
- package/styles/calc.js.map +0 -1
- package/styles/color-mix.js +0 -82
- package/styles/color-mix.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wavemaker/app-rn-runtime",
|
|
3
|
-
"version": "11.14.
|
|
3
|
+
"version": "11.14.4-rc.647538",
|
|
4
4
|
"description": "''",
|
|
5
5
|
"main": "index",
|
|
6
6
|
"module": "index",
|
|
@@ -59,10 +59,9 @@
|
|
|
59
59
|
"@react-navigation/drawer": "7.5.8",
|
|
60
60
|
"@react-navigation/native": "7.1.18",
|
|
61
61
|
"@react-navigation/stack": "7.4.8",
|
|
62
|
-
"@wavemaker/variables": "11.14.
|
|
62
|
+
"@wavemaker/variables": "11.14.4-rc.647538",
|
|
63
63
|
"axios": "1.8.3",
|
|
64
64
|
"color": "4.2.3",
|
|
65
|
-
"colorjs.io": "^0.5.2",
|
|
66
65
|
"cross-env": "7.0.3",
|
|
67
66
|
"css-mediaquery": "0.1.2",
|
|
68
67
|
"d3-shape": "3.2.0",
|
|
@@ -69,7 +69,7 @@ export class LinearGradient extends React.Component {
|
|
|
69
69
|
state.locations.push(parseFloat(p[1]) / 100);
|
|
70
70
|
state.colors.push(s.replace(p[0], ''));
|
|
71
71
|
} else {
|
|
72
|
-
|
|
72
|
+
state.locations.push(null);
|
|
73
73
|
state.colors.push(s);
|
|
74
74
|
}
|
|
75
75
|
});
|
|
@@ -124,7 +124,7 @@ export class BackgroundComponent extends React.Component {
|
|
|
124
124
|
naturalImageWidth: width,
|
|
125
125
|
naturalImageHeight: height
|
|
126
126
|
});
|
|
127
|
-
} else if (!isNil(imageSrc
|
|
127
|
+
} else if (!isNil(imageSrc)) {
|
|
128
128
|
imageSizeEstimator.getSize(imageSrc.uri, (width, height) => {
|
|
129
129
|
this.setState({
|
|
130
130
|
naturalImageWidth: width,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","LinearGradient","ExpoLinearGradient","Image","StyleSheet","View","isEmpty","isNil","isNumber","imageSizeEstimator","AssetConsumer","isFullPathUrl","IMAGE_URL_REGEX","LINEAT_GRADIENT_REGEX","DIMENSION_REGEX","BACKGROUND_POSITION_REGEX","BACKGROUND_SIZE_REGEX","ASSET_CACHE","Component","constructor","props","state","parse","val","value","splits","split","map","v","trim","angle","locations","endsWith","parseInt","shift","delta","Math","round","tan","PI","abs","end","x","y","start","colors","s","_s$matchAll$next","p","matchAll","next","push","parseFloat","replace","componentDidUpdate","prevProps","prevState","snapshot","setState","render","_this$props$size","_this$props$style","createElement","style","borderWidth","overflow","absoluteFill","middle","flexDirection","justifyContent","alignItems","testID","size","width","position","borderRadius","children","BackgroundComponent","_defineProperty","imageSrc","image","undefined","caluculateSize","height","resolveAssetSource","naturalImageWidth","naturalImageHeight","uri","getSize","getDimension","dim","getPosition","result","top","bottom","left","right","getPositionAndSize","_this$props$size2","_this$getGradient","resizeMode","getGradient","length","repeat","renderLinearGradient","data","psresult","Fragment","setImage","componentDidMount","setTimeout","_this$props$image","_source","source","startsWith","_this$props$image2","loadAsset","_this$props$image3","renderImage","_psresult$position","_psresult$position2","loadImage","minWidth","minHeight","_gradientData$value","gradientData"],"sources":["background.component.tsx"],"sourcesContent":["import * as React from 'react';\nimport { LinearGradient as ExpoLinearGradient, LinearGradientPoint } from 'expo-linear-gradient';\nimport { DimensionValue, Image, StyleSheet, View, ViewStyle } from 'react-native';\nimport { isEmpty, isNil, isNumber, isString } from 'lodash-es';\nimport imageSizeEstimator from '@wavemaker/app-rn-runtime/core/imageSizeEstimator';\nimport { AssetConsumer } from '@wavemaker/app-rn-runtime/core/asset.provider';\nimport { isFullPathUrl } from '@wavemaker/app-rn-runtime/core/utils';\n\nexport interface LinearGradientProps {\n value: string;\n children: any;\n style?: ViewStyle;\n size?: ViewStyle;\n position?: ViewStyle;\n middle?: boolean;\n}\n\nexport interface LinearGradientState {\n colors: string[];\n locations: number[];\n start: LinearGradientPoint;\n end: LinearGradientPoint;\n}\n\nconst IMAGE_URL_REGEX = /url\\(['|\"]?(.+)['|\"]?\\)$/gi;\nconst LINEAT_GRADIENT_REGEX = /linear-gradient\\((.+)\\)$/gi;\nconst DIMENSION_REGEX = /([0-9%]+)[a-z]*/g;\nconst BACKGROUND_POSITION_REGEX = /([0-9%]+)[a-z]*\\s*([0-9%]+)[a-z]*/g;\nconst BACKGROUND_SIZE_REGEX = /([0-9%]+)[a-z]*\\s*([0-9%]+)[a-z]*/g;\n\nconst ASSET_CACHE = {} as any;\n\nexport class LinearGradient extends React.Component<LinearGradientProps, LinearGradientState> {\n\n constructor(props: LinearGradientProps) {\n super(props);\n this.state = this.parse();\n }\n\n parse(val = this.props.value) {\n let state = {} as LinearGradientState;\n const splits = val.split(',').map(v => v.trim());\n let angle = 0;\n const locations: LinearGradientPoint[] = [];\n if (splits[0].endsWith('deg')) {\n angle = (parseInt(splits[0].split('deg')[0]))%360;\n angle = angle < 0 ? (360 + angle) : angle;\n splits.shift();\n }\n angle += 90;\n const delta = Math.round(Math.tan((angle * Math.PI) / 180) * 100)/100;\n if (Math.abs(delta) > 1) {\n state = {\n end: {\n x: -0.5 / delta + 0.5,\n y: 0\n },\n start: {\n x: 0.5 / delta + 0.5,\n y: 1\n }\n } as LinearGradientState;\n } else {\n state = {\n start: {\n x: 0,\n y: -0.5 * delta + 0.5\n },\n end: {\n x: 1,\n y: 0.5 * delta + 0.5\n }\n } as LinearGradientState;\n }\n if (angle >= 270 && angle <= 450) {\n state = {\n start : state.end,\n end: state.start\n } as LinearGradientState;\n }\n state.colors = [];\n state.locations = [];\n splits.map(s => {\n const p = s.matchAll(/\\s*([0-9.]+)%/g).next()?.value;\n if (p) {\n state.locations.push(parseFloat(p[1]) / 100);\n state.colors.push(s.replace(p[0], ''));\n } else {\n // state.locations.push(null as any);\n state.colors.push(s);\n }\n });\n return state;\n }\n\n componentDidUpdate(prevProps: Readonly<LinearGradientProps>, prevState: Readonly<{}>, snapshot?: any): void {\n if (prevProps.value !== this.props.value) {\n this.setState(this.parse());\n }\n }\n \n\n public render() {\n return (\n <View style={[{borderWidth: 0, overflow: 'hidden'}, StyleSheet.absoluteFill, this.props.style]}>\n <View style={[\n StyleSheet.absoluteFill, this.props.middle ? {\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center'\n } : null]}>\n <ExpoLinearGradient testID=\"wm-expo-linear-gradient\"\n colors={this.state.colors as any}\n locations={this.state.locations as any}\n start={this.state.start}\n end={this.state.end}\n style={[\n this.props.size?.width ? this.props.size : StyleSheet.absoluteFill,\n this.props.position,\n {position: 'absolute', borderRadius: this.props.style?.borderRadius}\n ]}\n />\n </View>\n {this.props.children}\n </View>\n );\n }\n}\n\nexport interface BackgroundProps {\n image?: string;\n position?: string;\n children?: any;\n resizeMode?: string;\n repeat?: string;\n style?: ViewStyle;\n size: string;\n}\n\nexport interface BackgroundState {\n imageSrc: any;\n naturalImageWidth: number,\n naturalImageHeight: number\n}\n\nexport class BackgroundComponent extends React.Component<BackgroundProps, BackgroundState> {\n\n private loadAsset: (path: string) => number | string = null as any;\n\n constructor(props: BackgroundProps) {\n super(props);\n this.state = {\n imageSrc : this.props.image ? ASSET_CACHE[this.props.image] : undefined\n } as BackgroundState;\n }\n\n public caluculateSize(imageSrc: any) {\n if (isNumber(imageSrc)) {\n const {width, height} = Image.resolveAssetSource(imageSrc);\n this.setState({\n naturalImageWidth: width,\n naturalImageHeight: height\n } as BackgroundState);\n } else if (!isNil(imageSrc?.uri)) {\n imageSizeEstimator.getSize(imageSrc.uri, (width: number, height: number) => {\n this.setState({\n naturalImageWidth: width,\n naturalImageHeight: height\n } as BackgroundState);\n });\n }\n }\n\n getDimension(dim: string) {\n if (dim) {\n const value = dim.matchAll(DIMENSION_REGEX).next().value!;\n if (value[1]) {\n return value[1].endsWith('%') ? value[1] : parseInt(value[1]);\n }\n }\n return null;\n }\n\n public getPosition() {\n const result = {} as ViewStyle;\n if (!this.props.position) {\n return result;\n }\n const position = this.props.position.split(' ').map(s => s.trim());\n if (position[0] === 'center') {\n result.alignItems = 'center';\n } else if (position[0] === 'top') {\n result.top = 0;\n } else if (position[0] === 'bottom') {\n result.bottom = 0;\n } else {\n result.top = this.getDimension(position[0]) as DimensionValue;\n }\n if (position[1] === 'center') {\n result.justifyContent = 'center';\n } else if (position[1] === 'left') {\n result.left = 0;\n } else if (position[1] === 'bottom') {\n result.right = 0;\n } else {\n result.left = this.getDimension(position[1]) as DimensionValue;\n }\n return result;\n }\n\n public getPositionAndSize() {\n const result: {\n resizeMode? : string,\n position?: ViewStyle,\n size?: ViewStyle\n } = {} as any;\n if (this.props.resizeMode) {\n result.resizeMode = this.props.resizeMode;\n return result;\n } else if (this.props.position === 'center') {\n result.resizeMode = 'center';\n result.position = {\n justifyContent: 'center',\n alignItems: 'center'\n };\n } else if (this.props.size === 'contain' || this.props.size === 'cover') {\n result.resizeMode = this.props.size;\n return result;\n }\n const size = this.props.size?.matchAll(BACKGROUND_SIZE_REGEX).next().value;\n result.size = {};\n if (size) {\n result.size.width = (size[1].endsWith('%') ? size[1] : parseInt(size[1])) as DimensionValue;\n result.size.height = (size[2].endsWith('%') ? size[2] : parseInt(size[2])) as DimensionValue\n }\n if (!result.resizeMode && this.props.position) {\n result.position = this.getPosition();\n }\n if (!this.getGradient()?.value?.length) {\n if (this.props.repeat === 'no-repeat') {\n result.size.width = result.size.width || this.state.naturalImageWidth; \n result.size.height = result.size.height || this.state.naturalImageHeight; \n } else if (this.props.repeat === 'repeat-x') {\n result.resizeMode = 'repeat';\n result.size.width = result.size.width || '100%'; \n result.size.height = result.size.height || this.state.naturalImageHeight; \n } else if (this.props.repeat === 'repeat-y') {\n result.resizeMode = 'repeat';\n result.size.width = result.size.width || this.state.naturalImageWidth; \n result.size.height = result.size.height || '100%'; \n } else {\n result.resizeMode = 'repeat';\n }\n }\n return result;\n }\n\n public renderLinearGradient(data: string) {\n const psresult = this.getPositionAndSize();\n return (\n <LinearGradient\n value={data || ''}\n style={this.props.style}\n size={psresult.size}\n position={psresult.position}\n middle={psresult.resizeMode === 'center'}> \n <></> \n </LinearGradient>\n );\n }\n\n componentDidUpdate(prevProps: Readonly<BackgroundProps>, prevState: Readonly<{}>, snapshot?: any): void {\n if (this.props.image && prevProps.image !== this.props.image) {\n this.setImage();\n }\n }\n\n componentDidMount(): void {\n setTimeout(() => this.setImage(), 100);\n }\n\n setImage() {\n let source = this.props.image?.trim() as any;\n if (!source) {\n return;\n }\n if (source?.startsWith('url')) {\n source = this.props.image?.matchAll(IMAGE_URL_REGEX)?.next()?.value?.[1];\n }\n if (this.loadAsset) {\n source = this.loadAsset(source);\n }\n if (isFullPathUrl(source)) {\n source = {\n uri: source\n };\n }\n this.caluculateSize(source);\n this.setState({\n imageSrc: source\n } as BackgroundState);\n if (this.props.image) {\n ASSET_CACHE[this.props.image] = source;\n }\n }\n\n public getGradient() {\n return this.props.image?.trim().matchAll(LINEAT_GRADIENT_REGEX).next();\n }\n\n public renderImage() {\n const psresult = this.getPositionAndSize();\n return (\n <AssetConsumer>\n {(loadAsset) => {\n const loadImage = this.loadAsset !== loadAsset;\n this.loadAsset = loadAsset;\n if (loadImage) {\n setTimeout(() => this.setImage(), 10);\n }\n return (<View style={[{borderWidth: 0, overflow: 'hidden'}, StyleSheet.absoluteFill, this.props.style]}>\n <View style={[\n StyleSheet.absoluteFill, {\n flexDirection: 'row',\n justifyContent: psresult.position?.justifyContent,\n alignItems: psresult.position?.alignItems\n }]}>\n <View style={[\n { position: 'absolute', overflow: 'hidden' },\n psresult.position,\n isEmpty(psresult.size) ? StyleSheet.absoluteFill : psresult.size\n ]}>\n <Image\n source={this.state.imageSrc}\n resizeMode={psresult.resizeMode as any || 'cover'}\n style={[\n { \n width: '100%',\n height: '100%'\n }, \n !isEmpty(psresult.size)\n || (psresult.resizeMode === 'cover'\n || psresult.resizeMode === 'contain') ? null : {\n minWidth: this.state.naturalImageWidth,\n minHeight: this.state.naturalImageHeight\n }\n ]}/> \n </View>\n </View>\n </View>);\n }}\n </AssetConsumer>\n );\n }\n\n public render() {\n const gradientData = this.getGradient();\n if (gradientData?.value?.length) {\n return this.renderLinearGradient(gradientData.value[1]);\n } else if (this.props.image && this.state.imageSrc) {\n return this.renderImage();\n }\n return null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","LinearGradient","ExpoLinearGradient","Image","StyleSheet","View","isEmpty","isNil","isNumber","imageSizeEstimator","AssetConsumer","isFullPathUrl","IMAGE_URL_REGEX","LINEAT_GRADIENT_REGEX","DIMENSION_REGEX","BACKGROUND_POSITION_REGEX","BACKGROUND_SIZE_REGEX","ASSET_CACHE","Component","constructor","props","state","parse","val","value","splits","split","map","v","trim","angle","locations","endsWith","parseInt","shift","delta","Math","round","tan","PI","abs","end","x","y","start","colors","s","_s$matchAll$next","p","matchAll","next","push","parseFloat","replace","componentDidUpdate","prevProps","prevState","snapshot","setState","render","_this$props$size","_this$props$style","createElement","style","borderWidth","overflow","absoluteFill","middle","flexDirection","justifyContent","alignItems","testID","size","width","position","borderRadius","children","BackgroundComponent","_defineProperty","imageSrc","image","undefined","caluculateSize","height","resolveAssetSource","naturalImageWidth","naturalImageHeight","getSize","uri","getDimension","dim","getPosition","result","top","bottom","left","right","getPositionAndSize","_this$props$size2","_this$getGradient","resizeMode","getGradient","length","repeat","renderLinearGradient","data","psresult","Fragment","setImage","componentDidMount","setTimeout","_this$props$image","_source","source","startsWith","_this$props$image2","loadAsset","_this$props$image3","renderImage","_psresult$position","_psresult$position2","loadImage","minWidth","minHeight","_gradientData$value","gradientData"],"sources":["background.component.tsx"],"sourcesContent":["import * as React from 'react';\nimport { LinearGradient as ExpoLinearGradient, LinearGradientPoint } from 'expo-linear-gradient';\nimport { DimensionValue, Image, StyleSheet, View, ViewStyle } from 'react-native';\nimport { isEmpty, isNil, isNumber, isString } from 'lodash-es';\nimport imageSizeEstimator from '@wavemaker/app-rn-runtime/core/imageSizeEstimator';\nimport { AssetConsumer } from '@wavemaker/app-rn-runtime/core/asset.provider';\nimport { isFullPathUrl } from '@wavemaker/app-rn-runtime/core/utils';\n\nexport interface LinearGradientProps {\n value: string;\n children: any;\n style?: ViewStyle;\n size?: ViewStyle;\n position?: ViewStyle;\n middle?: boolean;\n}\n\nexport interface LinearGradientState {\n colors: string[];\n locations: number[];\n start: LinearGradientPoint;\n end: LinearGradientPoint;\n}\n\nconst IMAGE_URL_REGEX = /url\\(['|\"]?(.+)['|\"]?\\)$/gi;\nconst LINEAT_GRADIENT_REGEX = /linear-gradient\\((.+)\\)$/gi;\nconst DIMENSION_REGEX = /([0-9%]+)[a-z]*/g;\nconst BACKGROUND_POSITION_REGEX = /([0-9%]+)[a-z]*\\s*([0-9%]+)[a-z]*/g;\nconst BACKGROUND_SIZE_REGEX = /([0-9%]+)[a-z]*\\s*([0-9%]+)[a-z]*/g;\n\nconst ASSET_CACHE = {} as any;\n\nexport class LinearGradient extends React.Component<LinearGradientProps, LinearGradientState> {\n\n constructor(props: LinearGradientProps) {\n super(props);\n this.state = this.parse();\n }\n\n parse(val = this.props.value) {\n let state = {} as LinearGradientState;\n const splits = val.split(',').map(v => v.trim());\n let angle = 0;\n const locations: LinearGradientPoint[] = [];\n if (splits[0].endsWith('deg')) {\n angle = (parseInt(splits[0].split('deg')[0]))%360;\n angle = angle < 0 ? (360 + angle) : angle;\n splits.shift();\n }\n angle += 90;\n const delta = Math.round(Math.tan((angle * Math.PI) / 180) * 100)/100;\n if (Math.abs(delta) > 1) {\n state = {\n end: {\n x: -0.5 / delta + 0.5,\n y: 0\n },\n start: {\n x: 0.5 / delta + 0.5,\n y: 1\n }\n } as LinearGradientState;\n } else {\n state = {\n start: {\n x: 0,\n y: -0.5 * delta + 0.5\n },\n end: {\n x: 1,\n y: 0.5 * delta + 0.5\n }\n } as LinearGradientState;\n }\n if (angle >= 270 && angle <= 450) {\n state = {\n start : state.end,\n end: state.start\n } as LinearGradientState;\n }\n state.colors = [];\n state.locations = [];\n splits.map(s => {\n const p = s.matchAll(/\\s*([0-9.]+)%/g).next()?.value;\n if (p) {\n state.locations.push(parseFloat(p[1]) / 100);\n state.colors.push(s.replace(p[0], ''));\n } else {\n state.locations.push(null as any);\n state.colors.push(s);\n }\n });\n return state;\n }\n\n componentDidUpdate(prevProps: Readonly<LinearGradientProps>, prevState: Readonly<{}>, snapshot?: any): void {\n if (prevProps.value !== this.props.value) {\n this.setState(this.parse());\n }\n }\n \n\n public render() {\n return (\n <View style={[{borderWidth: 0, overflow: 'hidden'}, StyleSheet.absoluteFill, this.props.style]}>\n <View style={[\n StyleSheet.absoluteFill, this.props.middle ? {\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center'\n } : null]}>\n <ExpoLinearGradient testID=\"wm-expo-linear-gradient\"\n colors={this.state.colors as any}\n locations={this.state.locations as any}\n start={this.state.start}\n end={this.state.end}\n style={[\n this.props.size?.width ? this.props.size : StyleSheet.absoluteFill,\n this.props.position,\n {position: 'absolute', borderRadius: this.props.style?.borderRadius}\n ]}\n />\n </View>\n {this.props.children}\n </View>\n );\n }\n}\n\nexport interface BackgroundProps {\n image?: string;\n position?: string;\n children?: any;\n resizeMode?: string;\n repeat?: string;\n style?: ViewStyle;\n size: string;\n}\n\nexport interface BackgroundState {\n imageSrc: any;\n naturalImageWidth: number,\n naturalImageHeight: number\n}\n\nexport class BackgroundComponent extends React.Component<BackgroundProps, BackgroundState> {\n\n private loadAsset: (path: string) => number | string = null as any;\n\n constructor(props: BackgroundProps) {\n super(props);\n this.state = {\n imageSrc : this.props.image ? ASSET_CACHE[this.props.image] : undefined\n } as BackgroundState;\n }\n\n public caluculateSize(imageSrc: any) {\n if (isNumber(imageSrc)) {\n const {width, height} = Image.resolveAssetSource(imageSrc);\n this.setState({\n naturalImageWidth: width,\n naturalImageHeight: height\n } as BackgroundState);\n } else if (!isNil(imageSrc)) {\n imageSizeEstimator.getSize(imageSrc.uri, (width: number, height: number) => {\n this.setState({\n naturalImageWidth: width,\n naturalImageHeight: height\n } as BackgroundState);\n });\n }\n }\n\n getDimension(dim: string) {\n if (dim) {\n const value = dim.matchAll(DIMENSION_REGEX).next().value!;\n if (value[1]) {\n return value[1].endsWith('%') ? value[1] : parseInt(value[1]);\n }\n }\n return null;\n }\n\n public getPosition() {\n const result = {} as ViewStyle;\n if (!this.props.position) {\n return result;\n }\n const position = this.props.position.split(' ').map(s => s.trim());\n if (position[0] === 'center') {\n result.alignItems = 'center';\n } else if (position[0] === 'top') {\n result.top = 0;\n } else if (position[0] === 'bottom') {\n result.bottom = 0;\n } else {\n result.top = this.getDimension(position[0]) as DimensionValue;\n }\n if (position[1] === 'center') {\n result.justifyContent = 'center';\n } else if (position[1] === 'left') {\n result.left = 0;\n } else if (position[1] === 'bottom') {\n result.right = 0;\n } else {\n result.left = this.getDimension(position[1]) as DimensionValue;\n }\n return result;\n }\n\n public getPositionAndSize() {\n const result: {\n resizeMode? : string,\n position?: ViewStyle,\n size?: ViewStyle\n } = {} as any;\n if (this.props.resizeMode) {\n result.resizeMode = this.props.resizeMode;\n return result;\n } else if (this.props.position === 'center') {\n result.resizeMode = 'center';\n result.position = {\n justifyContent: 'center',\n alignItems: 'center'\n };\n } else if (this.props.size === 'contain' || this.props.size === 'cover') {\n result.resizeMode = this.props.size;\n return result;\n }\n const size = this.props.size?.matchAll(BACKGROUND_SIZE_REGEX).next().value;\n result.size = {};\n if (size) {\n result.size.width = (size[1].endsWith('%') ? size[1] : parseInt(size[1])) as DimensionValue;\n result.size.height = (size[2].endsWith('%') ? size[2] : parseInt(size[2])) as DimensionValue\n }\n if (!result.resizeMode && this.props.position) {\n result.position = this.getPosition();\n }\n if (!this.getGradient()?.value?.length) {\n if (this.props.repeat === 'no-repeat') {\n result.size.width = result.size.width || this.state.naturalImageWidth; \n result.size.height = result.size.height || this.state.naturalImageHeight; \n } else if (this.props.repeat === 'repeat-x') {\n result.resizeMode = 'repeat';\n result.size.width = result.size.width || '100%'; \n result.size.height = result.size.height || this.state.naturalImageHeight; \n } else if (this.props.repeat === 'repeat-y') {\n result.resizeMode = 'repeat';\n result.size.width = result.size.width || this.state.naturalImageWidth; \n result.size.height = result.size.height || '100%'; \n } else {\n result.resizeMode = 'repeat';\n }\n }\n return result;\n }\n\n public renderLinearGradient(data: string) {\n const psresult = this.getPositionAndSize();\n return (\n <LinearGradient\n value={data || ''}\n style={this.props.style}\n size={psresult.size}\n position={psresult.position}\n middle={psresult.resizeMode === 'center'}> \n <></> \n </LinearGradient>\n );\n }\n\n componentDidUpdate(prevProps: Readonly<BackgroundProps>, prevState: Readonly<{}>, snapshot?: any): void {\n if (this.props.image && prevProps.image !== this.props.image) {\n this.setImage();\n }\n }\n\n componentDidMount(): void {\n setTimeout(() => this.setImage(), 100);\n }\n\n setImage() {\n let source = this.props.image?.trim() as any;\n if (!source) {\n return;\n }\n if (source?.startsWith('url')) {\n source = this.props.image?.matchAll(IMAGE_URL_REGEX)?.next()?.value?.[1];\n }\n if (this.loadAsset) {\n source = this.loadAsset(source);\n }\n if (isFullPathUrl(source)) {\n source = {\n uri: source\n };\n }\n this.caluculateSize(source);\n this.setState({\n imageSrc: source\n } as BackgroundState);\n if (this.props.image) {\n ASSET_CACHE[this.props.image] = source;\n }\n }\n\n public getGradient() {\n return this.props.image?.trim().matchAll(LINEAT_GRADIENT_REGEX).next();\n }\n\n public renderImage() {\n const psresult = this.getPositionAndSize();\n return (\n <AssetConsumer>\n {(loadAsset) => {\n const loadImage = this.loadAsset !== loadAsset;\n this.loadAsset = loadAsset;\n if (loadImage) {\n setTimeout(() => this.setImage(), 10);\n }\n return (<View style={[{borderWidth: 0, overflow: 'hidden'}, StyleSheet.absoluteFill, this.props.style]}>\n <View style={[\n StyleSheet.absoluteFill, {\n flexDirection: 'row',\n justifyContent: psresult.position?.justifyContent,\n alignItems: psresult.position?.alignItems\n }]}>\n <View style={[\n { position: 'absolute', overflow: 'hidden' },\n psresult.position,\n isEmpty(psresult.size) ? StyleSheet.absoluteFill : psresult.size\n ]}>\n <Image\n source={this.state.imageSrc}\n resizeMode={psresult.resizeMode as any || 'cover'}\n style={[\n { \n width: '100%',\n height: '100%'\n }, \n !isEmpty(psresult.size)\n || (psresult.resizeMode === 'cover'\n || psresult.resizeMode === 'contain') ? null : {\n minWidth: this.state.naturalImageWidth,\n minHeight: this.state.naturalImageHeight\n }\n ]}/> \n </View>\n </View>\n </View>);\n }}\n </AssetConsumer>\n );\n }\n\n public render() {\n const gradientData = this.getGradient();\n if (gradientData?.value?.length) {\n return this.renderLinearGradient(gradientData.value[1]);\n } else if (this.props.image && this.state.imageSrc) {\n return this.renderImage();\n }\n return null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/styles/theme.js
CHANGED
|
@@ -2,7 +2,7 @@ var _Theme;
|
|
|
2
2
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
3
3
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
4
4
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
5
|
-
import { cloneDeep, isNil, forEach, flatten, isArray, isEmpty, isObject, isString, get, reverse
|
|
5
|
+
import { cloneDeep, isNil, forEach, flatten, isArray, isEmpty, isObject, isString, get, reverse } from 'lodash';
|
|
6
6
|
import React from 'react';
|
|
7
7
|
import { camelCase } from 'lodash-es';
|
|
8
8
|
import { Dimensions, Platform } from 'react-native';
|
|
@@ -11,7 +11,6 @@ import EventNotifier from '@wavemaker/app-rn-runtime/core/event-notifier';
|
|
|
11
11
|
import ViewPort, { EVENTS as ViewPortEvents } from '@wavemaker/app-rn-runtime/core/viewport';
|
|
12
12
|
import MediaQueryList from './MediaQueryList';
|
|
13
13
|
import ThemeVariables from './theme.variables';
|
|
14
|
-
import ColorMix from './color-mix';
|
|
15
14
|
import { getErrorMessage, getStyleReference, isValidStyleProp } from './style-prop.validator';
|
|
16
15
|
import injector from '@wavemaker/app-rn-runtime/core/injector';
|
|
17
16
|
import { isNativeStyle } from '@wavemaker/app-rn-runtime/core/utils';
|
|
@@ -89,32 +88,12 @@ export class Theme {
|
|
|
89
88
|
this.eventNotifer.notify(event, []);
|
|
90
89
|
this.children.forEach(t => t.notify(event));
|
|
91
90
|
}
|
|
92
|
-
replaceVariables(val
|
|
91
|
+
replaceVariables(val) {
|
|
93
92
|
if (isString(val)) {
|
|
94
93
|
(val.match(/_*var\([^\)]*\)/g) || []).forEach(s => {
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
let variants = ThemeVariables.INSTANCE.variants;
|
|
99
|
-
if (variants && typeof classNames === 'string') {
|
|
100
|
-
const classList = classNames.split(/\s+/);
|
|
101
|
-
for (const cls of classList) {
|
|
102
|
-
if (variants[cls] && variants[cls][variableName]) {
|
|
103
|
-
resolvedValue = variants[cls][variableName];
|
|
104
|
-
break;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
if (!resolvedValue) {
|
|
109
|
-
var _ref, _ref2, _ref3, _ref4, _ref5, _inheritedTokens$vari;
|
|
110
|
-
resolvedValue = (_ref = (_ref2 = (_ref3 = (_ref4 = (_ref5 = (_inheritedTokens$vari = inheritedTokens[variableName]) !== null && _inheritedTokens$vari !== void 0 ? _inheritedTokens$vari : inheritedTokens[`--${variableName}`]) !== null && _ref5 !== void 0 ? _ref5 : baseTokens[variableName]) !== null && _ref4 !== void 0 ? _ref4 : ThemeVariables.INSTANCE[variableName]) !== null && _ref3 !== void 0 ? _ref3 : ThemeVariables.INSTANCE[variableName.substring(2)]) !== null && _ref2 !== void 0 ? _ref2 : ThemeVariables.INSTANCE[camelCase(variableName.substring(2))]) !== null && _ref !== void 0 ? _ref : fallback;
|
|
111
|
-
}
|
|
112
|
-
val = val.replace(s, resolvedValue);
|
|
113
|
-
if (isNumber(resolvedValue) && val.trim() === resolvedValue + '') {
|
|
114
|
-
val = resolvedValue;
|
|
115
|
-
} else {
|
|
116
|
-
val = this.replaceVariables(val, baseTokens, classNames, inheritedTokens);
|
|
117
|
-
}
|
|
94
|
+
const variableName = s.substring(4, s.length - 1);
|
|
95
|
+
val = val.replace(s, ThemeVariables.INSTANCE[variableName] || ThemeVariables.INSTANCE[variableName.substring(2)] || ThemeVariables.INSTANCE[camelCase(variableName.substring(2))]);
|
|
96
|
+
val = this.replaceVariables(val);
|
|
118
97
|
});
|
|
119
98
|
}
|
|
120
99
|
return val;
|
|
@@ -130,7 +109,7 @@ export class Theme {
|
|
|
130
109
|
checkStyleProperties(name, value) {
|
|
131
110
|
if (isObject(value)) {
|
|
132
111
|
Object.keys(value).map(k => this.checkStyleProperties(k, value[k]));
|
|
133
|
-
} else if (name && !
|
|
112
|
+
} else if (name && !isValidStyleProp(name, value)) {
|
|
134
113
|
console.log(`%cInvalid Style property in ${this.name}: ${getErrorMessage(name, value)}`, 'background-color: #FF0000;font-weight: bold; color: #fff');
|
|
135
114
|
console.log(`Refer: ${getStyleReference(name)}`);
|
|
136
115
|
}
|
|
@@ -173,15 +152,6 @@ export class Theme {
|
|
|
173
152
|
}
|
|
174
153
|
return result;
|
|
175
154
|
}
|
|
176
|
-
extractTopLevelVariables(style) {
|
|
177
|
-
const vars = {};
|
|
178
|
-
for (const key in style) {
|
|
179
|
-
if (key.startsWith('--')) {
|
|
180
|
-
vars[key] = style[key];
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
return vars;
|
|
184
|
-
}
|
|
185
155
|
mergeStyle(...styles) {
|
|
186
156
|
const style = deepCopy(...styles);
|
|
187
157
|
if (this.traceEnabled) {
|
|
@@ -199,47 +169,16 @@ export class Theme {
|
|
|
199
169
|
}
|
|
200
170
|
});
|
|
201
171
|
}
|
|
202
|
-
|
|
203
|
-
const classnames = Array.isArray(styles) ? styles.filter(isString).join(' ') : Object.values(styles).filter(isString).join(' ');
|
|
204
|
-
return this.cleanseStyleProperties(style, baseTokens, classnames);
|
|
172
|
+
return style;
|
|
205
173
|
}
|
|
206
|
-
cleanseStyleProperties(style
|
|
174
|
+
cleanseStyleProperties(style) {
|
|
207
175
|
if (!(style && isObject(style)) || isString(style) || isArray(style)) {
|
|
208
176
|
return style;
|
|
209
177
|
}
|
|
210
178
|
style = style;
|
|
211
179
|
if (isObject(style) && !isArray(style)) {
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
if (isString(v) && v.startsWith("color-mix(")) {
|
|
215
|
-
v = ColorMix.valueOf(v);
|
|
216
|
-
}
|
|
217
|
-
return v;
|
|
218
|
-
};
|
|
219
|
-
const classNames = Object.keys(style);
|
|
220
|
-
const resolvedTokens = {
|
|
221
|
-
...inheritedTokens
|
|
222
|
-
};
|
|
223
|
-
// For inline token in obj
|
|
224
|
-
classNames.forEach(k => {
|
|
225
|
-
if (k.startsWith('--')) {
|
|
226
|
-
let v = resolveStyle(style[k], resolvedTokens);
|
|
227
|
-
resolvedTokens[k] = v;
|
|
228
|
-
const variableName = k.substring(2);
|
|
229
|
-
ThemeVariables.INSTANCE[variableName] = v;
|
|
230
|
-
ThemeVariables.INSTANCE[camelCase(variableName)] = v;
|
|
231
|
-
}
|
|
232
|
-
});
|
|
233
|
-
|
|
234
|
-
// For edge case when prop is before inline token
|
|
235
|
-
classNames.forEach(k => {
|
|
236
|
-
if (!k.startsWith('--')) {
|
|
237
|
-
if (isObject(style[k]) && !isArray(style[k])) {
|
|
238
|
-
this.cleanseStyleProperties(style[k], baseTokens, classnames, resolvedTokens);
|
|
239
|
-
} else {
|
|
240
|
-
style[k] = resolveStyle(style[k], resolvedTokens);
|
|
241
|
-
}
|
|
242
|
-
}
|
|
180
|
+
Object.keys(style).forEach(k => {
|
|
181
|
+
style[k] = this.replaceVariables(style[k]);
|
|
243
182
|
});
|
|
244
183
|
}
|
|
245
184
|
if (!isNil(style['shadowRadius'])) {
|
|
@@ -250,19 +189,17 @@ export class Theme {
|
|
|
250
189
|
}
|
|
251
190
|
}
|
|
252
191
|
if (!isNil(style['margin'])) {
|
|
253
|
-
|
|
254
|
-
style['
|
|
255
|
-
style['
|
|
256
|
-
style['
|
|
257
|
-
style['marginBottom'] = (_style$marginBottom = style['marginBottom']) !== null && _style$marginBottom !== void 0 ? _style$marginBottom : style['margin'];
|
|
192
|
+
style['marginLeft'] = style['marginLeft'] || style['margin'];
|
|
193
|
+
style['marginRight'] = style['marginRight'] || style['margin'];
|
|
194
|
+
style['marginTop'] = style['marginTop'] || style['margin'];
|
|
195
|
+
style['marginBottom'] = style['marginBottom'] || style['margin'];
|
|
258
196
|
delete style['margin'];
|
|
259
197
|
}
|
|
260
198
|
if (!isNil(style['padding'])) {
|
|
261
|
-
|
|
262
|
-
style['
|
|
263
|
-
style['
|
|
264
|
-
style['
|
|
265
|
-
style['paddingBottom'] = (_style$paddingBottom = style['paddingBottom']) !== null && _style$paddingBottom !== void 0 ? _style$paddingBottom : style['padding'];
|
|
199
|
+
style['paddingLeft'] = style['paddingLeft'] || style['padding'];
|
|
200
|
+
style['paddingRight'] = style['paddingRight'] || style['padding'];
|
|
201
|
+
style['paddingTop'] = style['paddingTop'] || style['padding'];
|
|
202
|
+
style['paddingBottom'] = style['paddingBottom'] || style['padding'];
|
|
266
203
|
delete style['padding'];
|
|
267
204
|
}
|
|
268
205
|
if (this.revertLayoutToExpo50 && !isNil(style['flexDirection']) && style['flexDirection'] === 'row-reverse') {
|
|
@@ -297,9 +234,6 @@ export class Theme {
|
|
|
297
234
|
}
|
|
298
235
|
}
|
|
299
236
|
}
|
|
300
|
-
if (!isNil(style['color']) && style['color'] === 'transparent') {
|
|
301
|
-
style['color'] = 'rgba(255, 255, 255, 0)';
|
|
302
|
-
}
|
|
303
237
|
let screenWidth = Dimensions.get('window').width;
|
|
304
238
|
let screenHeight = Dimensions.get('window').height;
|
|
305
239
|
Object.keys(style).forEach((k, i) => {
|
|
@@ -313,6 +247,7 @@ export class Theme {
|
|
|
313
247
|
style[k] = Number(stylePropertyValue) / 100 * screenHeight;
|
|
314
248
|
}
|
|
315
249
|
});
|
|
250
|
+
Object.keys(style).forEach((k, i) => this.cleanseStyleProperties(style[k]));
|
|
316
251
|
return style;
|
|
317
252
|
}
|
|
318
253
|
getStyle(name) {
|
|
@@ -328,20 +263,10 @@ export class Theme {
|
|
|
328
263
|
} else {
|
|
329
264
|
const parentStyle = this.parent && this.parent.getStyle(name);
|
|
330
265
|
const mediaQuery = (this.styles[name] || {})['@media'];
|
|
331
|
-
let clonedStyle = {
|
|
332
|
-
root: {}
|
|
333
|
-
};
|
|
266
|
+
let clonedStyle = {};
|
|
334
267
|
if (!mediaQuery || matchMedia(mediaQuery).matches) {
|
|
335
|
-
clonedStyle = cloneDeep(this.styles[name])
|
|
336
|
-
clonedStyle
|
|
337
|
-
const extraTextStyles = this.getTextStyle(clonedStyle) || {};
|
|
338
|
-
clonedStyle['text'] = Object.assign({}, extraTextStyles, clonedStyle['text'] || {});
|
|
339
|
-
Object.keys(clonedStyle).forEach(k => {
|
|
340
|
-
const isValObject = isObject(clonedStyle[k]);
|
|
341
|
-
if (!extraTextStyles[k] && (!isValObject || k === 'shadowOffset')) {
|
|
342
|
-
clonedStyle['root'][k] = clonedStyle['root'][k] || clonedStyle[k];
|
|
343
|
-
}
|
|
344
|
-
});
|
|
268
|
+
clonedStyle = cloneDeep(this.styles[name]);
|
|
269
|
+
this.cleanseStyleProperties(clonedStyle);
|
|
345
270
|
}
|
|
346
271
|
if (this !== Theme.BASE && isWebPreviewMode()) {
|
|
347
272
|
this.checkStyleProperties('', clonedStyle);
|
|
@@ -368,7 +293,7 @@ export class Theme {
|
|
|
368
293
|
if (!s) {
|
|
369
294
|
return {};
|
|
370
295
|
}
|
|
371
|
-
|
|
296
|
+
return {
|
|
372
297
|
color: s.color,
|
|
373
298
|
fontFamily: s.fontFamily,
|
|
374
299
|
fontSize: s.fontSize,
|
|
@@ -390,12 +315,6 @@ export class Theme {
|
|
|
390
315
|
writingDirection: s.writingDirection,
|
|
391
316
|
userSelect: s.userSelect
|
|
392
317
|
};
|
|
393
|
-
Object.keys(textStyle).forEach(k => {
|
|
394
|
-
if (!textStyle[k]) {
|
|
395
|
-
delete textStyle[k];
|
|
396
|
-
}
|
|
397
|
-
});
|
|
398
|
-
return textStyle;
|
|
399
318
|
}
|
|
400
319
|
reset(styles) {
|
|
401
320
|
this.styles = {};
|
package/styles/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["cloneDeep","isNil","forEach","flatten","isArray","isEmpty","isObject","isString","get","reverse","isNumber","React","camelCase","Dimensions","Platform","deepCopy","isWebPreviewMode","EventNotifier","ViewPort","EVENTS","ViewPortEvents","MediaQueryList","ThemeVariables","ColorMix","getErrorMessage","getStyleReference","isValidStyleProp","injector","isNativeStyle","DEFAULT_CLASS","window","matchMedia","query","DEVICE_BREAK_POINTS","DEVICE_BREAK_POINTS_NATIVE_MOBILE","getBreakPointValue","name","OS","ThemeEvent","Theme","constructor","parent","_this$getAppConfig","_defineProperty","revertLayoutToExpo50","getAppConfig","traceEnabled","enableTrace","flag","reset","children","t","subscribe","event","fn","eventNotifer","notify","replaceVariables","val","baseTokens","classNames","inheritedTokens","match","s","content","substring","length","variableName","fallback","split","map","str","trim","resolvedValue","variants","INSTANCE","classList","cls","_ref","_ref2","_ref3","_ref4","_ref5","_inheritedTokens$vari","replace","clearCache","cache","registerStyle","styleGenerators","push","addStyle","bind","checkStyleProperties","value","Object","keys","k","startsWith","console","log","extend","style","styles","getStyle","addTrace","styleName","mergedChildstyle","childStyle","parentStyle","v","__trace","prefix","result","collect","extractTopLevelVariables","vars","key","mergeStyle","flattenStyles","cs","filter","classnames","Array","join","values","cleanseStyleProperties","resolveStyle","valueOf","resolvedTokens","_style$marginLeft","_style$marginRight","_style$marginTop","_style$marginBottom","_style$paddingLeft","_style$paddingRight","_style$paddingTop","_style$paddingBottom","paddingLeft","paddingRight","undefined","marginLeft","marginRight","screenWidth","width","screenHeight","height","i","stylePropertyValue","endsWith","Number","indexOf","c","mediaQuery","clonedStyle","root","matches","extraTextStyles","getTextStyle","assign","isValObject","BASE","$new","newTheme","destroy","splice","textStyle","color","fontFamily","fontSize","fontStyle","fontWeight","includeFontPadding","fontVariant","letterSpacing","lineHeight","textAlign","textAlignVertical","textDecorationColor","textDecorationStyle","textShadowColor","textShadowOffset","textShadowRadius","textTransform","verticalAlign","writingDirection","userSelect","themeVariables","CHANGE","_Theme","SIZE_CHANGE","ThemeContext","createContext","ThemeProvider","Provider","ThemeConsumer","Consumer","addColStyles","device","minWidth","display","addDisplayStyles","maxWidth","addElevationClasses","boxShadow","zIndex","transform","scale","overflow","backgroundColor","dangerColor","infoColor","primaryColor","successColor","warningColor","borderColor","text"],"sources":["theme.tsx"],"sourcesContent":["import { cloneDeep, isNil, forEach, flatten, isArray, isEmpty, isObject, isString, get, reverse, isNumber } from 'lodash';\nimport React from 'react';\nimport { camelCase } from 'lodash-es';\nimport { TextStyle, ViewStyle, ImageStyle, ImageBackground, Dimensions, Platform } 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 ColorMix from './color-mix';\nimport { getErrorMessage, getStyleReference, isValidStyleProp } from './style-prop.validator';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport { isNativeStyle} from '@wavemaker/app-rn-runtime/core/utils';\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: {[key: string]: string} = {\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 const DEVICE_BREAK_POINTS_NATIVE_MOBILE: {[key: string]: string} = {\n 'MIN_EXTRA_SMALL_DEVICE': '0px', // 0-479px (phones portrait)\n 'MAX_EXTRA_SMALL_DEVICE': '479px',\n 'MIN_SMALL_DEVICE': '480px', // 480-767px (phones landscape, small tablets portrait)\n 'MAX_SMALL_DEVICE': '767px',\n 'MIN_MEDIUM_DEVICE': '768px', // 768-1023px (tablets portrait, small laptops)\n 'MAX_MEDIUM_DEVICE': '1023px',\n 'MIN_LARGE_DEVICE': '1024px', // 1024px+ (tablets landscape, desktops)\n 'MAX_LARGE_DEVICE': '1000000px',\n};\n\nexport const getBreakPointValue = (name: string) => {\n if(Platform.OS === 'web') {\n return DEVICE_BREAK_POINTS[name];\n }\n\n return DEVICE_BREAK_POINTS_NATIVE_MOBILE[name];\n}\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 revertLayoutToExpo50: Boolean;\n\n private styleGenerators: styleGeneratorFn<any>[] = [];\n\n private constructor(private parent:Theme, public readonly name: string) {\n this.revertLayoutToExpo50 = this.getAppConfig()?.revertLayoutToExpo50 || false;\n if (parent) {\n this.traceEnabled = parent.traceEnabled;\n } else {\n this.traceEnabled = isWebPreviewMode();\n }\n }\n\n private getAppConfig() {\n return injector.get<AppConfig>('APP_CONFIG');\n }\n\n public enableTrace(flag: boolean) {\n this.traceEnabled = flag;\n this.reset();\n this.children.forEach(t => t.enableTrace(flag));\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 private replaceVariables(val: any, baseTokens: any, classNames: any, inheritedTokens: Record<string, any> = {}) {\n if(isString(val)) {\n (val.match(/_*var\\([^\\)]*\\)/g) || []).forEach((s) => {\n const content = s.substring(4, s.length - 1);\n let [variableName, fallback] = content.split(\",\").map(str => str.trim());\n let resolvedValue;\n let variants: any = (ThemeVariables.INSTANCE as any).variants;\n if (variants && typeof classNames === 'string') {\n const classList = classNames.split(/\\s+/);\n for (const cls of classList) {\n if (variants[cls] && variants[cls][variableName]) {\n resolvedValue = variants[cls][variableName];\n break;\n }\n }\n }\n if (!resolvedValue) {\n resolvedValue = inheritedTokens[variableName] ?? inheritedTokens[`--${variableName}`] ?? baseTokens[variableName]\n ?? (ThemeVariables.INSTANCE as any)[variableName]\n ?? (ThemeVariables.INSTANCE as any)[variableName.substring(2)]\n ?? (ThemeVariables.INSTANCE as any)[camelCase(variableName.substring(2))]\n ?? fallback;\n }\n val = val.replace(s, resolvedValue);\n if (isNumber(resolvedValue)\n && val.trim() === (resolvedValue + '')) {\n val = resolvedValue;\n } else {\n val = this.replaceVariables(val, baseTokens, classNames, inheritedTokens);\n }\n });\n }\n return val;\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 && !(isString(value) && value.startsWith('calc(')) && !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\n if (!isNativeStyle(k, 'property')) {\n this.addTrace(styleName + '.' + k, v, childStyle && childStyle[k], parentStyle && parentStyle[k])\n }\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 extractTopLevelVariables(style: Record<string, any>): Record<string, any> {\n const vars: Record<string, any> = {};\n for (const key in style) {\n if (key.startsWith('--')) {\n vars[key] = style[key];\n }\n }\n return vars;\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 if (!isNativeStyle(k, 'path')) {\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 }\n const baseTokens = this.extractTopLevelVariables(style)\n const classnames = Array.isArray(styles)\n ? styles.filter(isString).join(' ')\n : Object.values(styles).filter(isString).join(' ');\n\n return this.cleanseStyleProperties(style, baseTokens, classnames)\n }\n\n cleanseStyleProperties(style: any, baseTokens: any, classnames: any, inheritedTokens: Record<string, any> = {}) {\n if (!(style && isObject(style)) || isString(style) || isArray(style)) {\n return style;\n }\n style = style as any;\n if (isObject(style) && !isArray(style)) {\n const resolveStyle = (v: any, inheritedTokens: Record<string, any> = {}) => {\n v = this.replaceVariables(v, baseTokens, classnames, inheritedTokens);\n if (isString(v) && v.startsWith(\"color-mix(\")) {\n v = ColorMix.valueOf(v);\n }\n return v;\n };\n\n const classNames = Object.keys(style);\n const resolvedTokens = {...inheritedTokens};\n // For inline token in obj\n classNames.forEach(k => {\n if (k.startsWith('--')) {\n let v = resolveStyle((style as any)[k], resolvedTokens);\n resolvedTokens[k] = v;\n const variableName = k.substring(2);\n (ThemeVariables.INSTANCE as any)[variableName] = v;\n (ThemeVariables.INSTANCE as any)[camelCase(variableName)] = v;\n }\n });\n\n // For edge case when prop is before inline token\n classNames.forEach(k => {\n if (!k.startsWith('--')) {\n if (isObject((style as any)[k]) && !isArray((style as any)[k])) {\n this.cleanseStyleProperties((style as any)[k], baseTokens, classnames, resolvedTokens);\n } else {\n (style as any)[k] = resolveStyle((style as any)[k], resolvedTokens);\n }\n }\n });\n }\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 if (!isNil(style['margin'])) {\n style['marginLeft'] = style['marginLeft'] ?? style['margin'];\n style['marginRight'] = style['marginRight'] ?? style['margin'];\n style['marginTop'] = style['marginTop'] ?? style['margin'];\n style['marginBottom'] = style['marginBottom'] ?? style['margin'];\n delete style['margin'];\n }\n if (!isNil(style['padding'])) {\n style['paddingLeft'] = style['paddingLeft'] ?? style['padding'];\n style['paddingRight'] = style['paddingRight'] ?? style['padding'];\n style['paddingTop'] = style['paddingTop'] ?? style['padding'];\n style['paddingBottom'] = style['paddingBottom'] ?? style['padding'];\n delete style['padding'];\n }\n if (this.revertLayoutToExpo50 && !isNil(style['flexDirection']) && style['flexDirection'] === 'row-reverse') {\n if (!isNil(style['paddingLeft']) || !isNil(style['paddingRight'])) {\n if (!isNil(style['paddingLeft']) && !isNil(style['paddingRight'])) {\n [style['paddingLeft'], style['paddingRight']] = [style['paddingRight'], style['paddingLeft']];\n } else {\n const [paddingLeft, paddingRight] = [style['paddingLeft'], style['paddingRight']];\n if (paddingLeft !== undefined) {\n style['paddingRight'] = paddingLeft;\n delete style['paddingLeft'];\n }\n if (paddingRight !== undefined) {\n style['paddingLeft'] = paddingRight;\n delete style['paddingRight'];\n }\n }\n }\n\n if (!isNil(style['marginLeft']) || !isNil(style['marginRight'])) {\n if (!isNil(style['marginLeft']) && !isNil(style['marginRight'])) {\n [style['marginLeft'], style['marginRight']] = [style['marginRight'], style['marginLeft']];\n } else {\n const [marginLeft, marginRight] = [style['marginLeft'], style['marginRight']];\n if (marginLeft !== undefined) {\n style['marginRight'] = marginLeft;\n delete style['marginLeft'];\n }\n if (marginRight !== undefined) {\n style['marginLeft'] = marginRight;\n delete style['marginRight'];\n }\n }\n }\n }\n if (!isNil(style['color']) && style['color'] === 'transparent') {\n style['color'] = 'rgba(255, 255, 255, 0)'\n }\n let screenWidth = Dimensions.get('window').width;\n let screenHeight = Dimensions.get('window').height;\n Object.keys(style).forEach((k, i) => {\n let stylePropertyValue = style[k]\n if(typeof stylePropertyValue === 'string' && stylePropertyValue.endsWith('vw')) {\n stylePropertyValue = stylePropertyValue.replace('vw','')\n style[k] = Number(stylePropertyValue)/100 * screenWidth\n }\n if((typeof stylePropertyValue === 'string' && stylePropertyValue.endsWith('vh'))) {\n stylePropertyValue = stylePropertyValue.replace('vh','')\n style[k] = Number(stylePropertyValue)/100 * screenHeight\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: Record<string, any> = { root: {} }\n if (!mediaQuery || matchMedia(mediaQuery).matches) {\n clonedStyle = cloneDeep(this.styles[name]) || {} ;\n clonedStyle['root'] = clonedStyle['root'] || {};\n const extraTextStyles = (this.getTextStyle(clonedStyle) || {}) as any ;\n clonedStyle['text'] = Object.assign({}, extraTextStyles, clonedStyle['text'] || {});\n Object.keys(clonedStyle).forEach((k) => {\n const isValObject = isObject(clonedStyle[k]);\n if (!extraTextStyles[k] && (!isValObject || (k === 'shadowOffset'))) {\n clonedStyle['root'][k] = clonedStyle['root'][k] || clonedStyle[k]\n }\n });\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 getTextStyle(s: any) {\n if (!s) {\n return {};\n }\n const textStyle = {\n color: s.color,\n fontFamily: s.fontFamily,\n fontSize: s.fontSize,\n fontStyle: s.fontStyle,\n fontWeight: s.fontWeight,\n includeFontPadding: s.includeFontPadding,\n fontVariant: s.fontVariant,\n letterSpacing: s.letterSpacing,\n lineHeight: s.lineHeight,\n textAlign: s.textAlign,\n textAlignVertical: s.textAlignVertical,\n textDecorationColor: s.textDecorationColor,\n textDecorationStyle: s.textDecorationStyle,\n textShadowColor: s.textShadowColor,\n textShadowOffset: s.textShadowOffset,\n textShadowRadius: s.textShadowRadius,\n textTransform: s.textTransform,\n verticalAlign: s.verticalAlign,\n writingDirection: s.writingDirection,\n userSelect: s.userSelect,\n } as TextStyle;\n Object.keys(textStyle).forEach((k)=> {\n if(!(textStyle as any)[k]){\n delete (textStyle as any)[k];\n }\n })\n return textStyle;\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'} & {rippleColor?: string});\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', getBreakPointValue('MIN_EXTRA_SMALL_DEVICE'));\n addColStyles('sm', getBreakPointValue('MIN_SMALL_DEVICE'));\n addColStyles('md', getBreakPointValue('MIN_MEDIUM_DEVICE'));\n addColStyles('lg', getBreakPointValue('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 getBreakPointValue('MIN_EXTRA_SMALL_DEVICE'),\n getBreakPointValue('MAX_LARGE_DEVICE'));\n addDisplayStyles('xs',\n getBreakPointValue('MIN_EXTRA_SMALL_DEVICE'),\n getBreakPointValue('MAX_EXTRA_SMALL_DEVICE'));\n addDisplayStyles('sm',\n getBreakPointValue('MIN_SMALL_DEVICE'),\n getBreakPointValue('MAX_SMALL_DEVICE'));\n addDisplayStyles('md',\n getBreakPointValue('MIN_MEDIUM_DEVICE'),\n getBreakPointValue('MAX_MEDIUM_DEVICE'));\n addDisplayStyles('lg',\n getBreakPointValue('MIN_LARGE_DEVICE'),\n getBreakPointValue('MAX_LARGE_DEVICE'));\n\n const addElevationClasses = () => {\n for(let i = 1; i <= 10; i++) {\n addStyle(`elevate${i}`, '', {\n root : {\n boxShadow: `${i}px ${i}px ${i}px rgba(0, 0, 0, 0.27)`,\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 overflow: 'hidden'\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 addStyle('hide-context-menu-input', '', { text: { userSelect: 'none' }});\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["cloneDeep","isNil","forEach","flatten","isArray","isEmpty","isObject","isString","get","reverse","React","camelCase","Dimensions","Platform","deepCopy","isWebPreviewMode","EventNotifier","ViewPort","EVENTS","ViewPortEvents","MediaQueryList","ThemeVariables","getErrorMessage","getStyleReference","isValidStyleProp","injector","isNativeStyle","DEFAULT_CLASS","window","matchMedia","query","DEVICE_BREAK_POINTS","DEVICE_BREAK_POINTS_NATIVE_MOBILE","getBreakPointValue","name","OS","ThemeEvent","Theme","constructor","parent","_this$getAppConfig","_defineProperty","revertLayoutToExpo50","getAppConfig","traceEnabled","enableTrace","flag","reset","children","t","subscribe","event","fn","eventNotifer","notify","replaceVariables","val","match","s","variableName","substring","length","replace","INSTANCE","clearCache","cache","registerStyle","styleGenerators","push","addStyle","bind","checkStyleProperties","value","Object","keys","map","k","console","log","extend","style","styles","getStyle","addTrace","styleName","mergedChildstyle","childStyle","parentStyle","v","__trace","prefix","result","collect","mergeStyle","flattenStyles","cs","filter","cleanseStyleProperties","paddingLeft","paddingRight","undefined","marginLeft","marginRight","screenWidth","width","screenHeight","height","i","stylePropertyValue","endsWith","Number","indexOf","split","c","mediaQuery","clonedStyle","matches","BASE","$new","newTheme","destroy","splice","getTextStyle","color","fontFamily","fontSize","fontStyle","fontWeight","includeFontPadding","fontVariant","letterSpacing","lineHeight","textAlign","textAlignVertical","textDecorationColor","textDecorationStyle","textShadowColor","textShadowOffset","textShadowRadius","textTransform","verticalAlign","writingDirection","userSelect","themeVariables","CHANGE","_Theme","SIZE_CHANGE","ThemeContext","createContext","ThemeProvider","Provider","ThemeConsumer","Consumer","addColStyles","device","minWidth","root","display","addDisplayStyles","maxWidth","addElevationClasses","boxShadow","zIndex","transform","scale","overflow","backgroundColor","dangerColor","infoColor","primaryColor","successColor","warningColor","borderColor","text"],"sources":["theme.tsx"],"sourcesContent":["import { cloneDeep, isNil, forEach, flatten, isArray, isEmpty, isObject, isString, isFunction, get, reverse } from 'lodash';\nimport React from 'react';\nimport { camelCase } from 'lodash-es';\nimport { TextStyle, ViewStyle, ImageStyle, ImageBackground, Dimensions, Platform } 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';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport { isNativeStyle} from '@wavemaker/app-rn-runtime/core/utils';\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: {[key: string]: string} = {\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 const DEVICE_BREAK_POINTS_NATIVE_MOBILE: {[key: string]: string} = {\n 'MIN_EXTRA_SMALL_DEVICE': '0px', // 0-479px (phones portrait)\n 'MAX_EXTRA_SMALL_DEVICE': '479px',\n 'MIN_SMALL_DEVICE': '480px', // 480-767px (phones landscape, small tablets portrait)\n 'MAX_SMALL_DEVICE': '767px',\n 'MIN_MEDIUM_DEVICE': '768px', // 768-1023px (tablets portrait, small laptops)\n 'MAX_MEDIUM_DEVICE': '1023px',\n 'MIN_LARGE_DEVICE': '1024px', // 1024px+ (tablets landscape, desktops)\n 'MAX_LARGE_DEVICE': '1000000px',\n};\n\nexport const getBreakPointValue = (name: string) => {\n if(Platform.OS === 'web') {\n return DEVICE_BREAK_POINTS[name];\n }\n\n return DEVICE_BREAK_POINTS_NATIVE_MOBILE[name];\n}\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 revertLayoutToExpo50: Boolean;\n\n private styleGenerators: styleGeneratorFn<any>[] = [];\n\n private constructor(private parent:Theme, public readonly name: string) {\n this.revertLayoutToExpo50 = this.getAppConfig()?.revertLayoutToExpo50 || false;\n if (parent) {\n this.traceEnabled = parent.traceEnabled;\n } else {\n this.traceEnabled = isWebPreviewMode();\n }\n }\n\n private getAppConfig() {\n return injector.get<AppConfig>('APP_CONFIG');\n }\n\n public enableTrace(flag: boolean) {\n this.traceEnabled = flag;\n this.reset();\n this.children.forEach(t => t.enableTrace(flag));\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 private replaceVariables(val: string) {\n if(isString(val)) { \n (val.match(/_*var\\([^\\)]*\\)/g) || []).forEach((s) => {\n const variableName = s.substring(4, s.length - 1);\n val = val.replace(s, (ThemeVariables.INSTANCE as any)[variableName]\n || (ThemeVariables.INSTANCE as any)[variableName.substring(2)]\n || (ThemeVariables.INSTANCE as any)[camelCase(variableName.substring(2))]);\n val = this.replaceVariables(val);\n });\n }\n return val; \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\n if (!isNativeStyle(k, 'property')) {\n this.addTrace(styleName + '.' + k, v, childStyle && childStyle[k], parentStyle && parentStyle[k])\n }\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 if (!isNativeStyle(k, 'path')) {\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 }\n return style;\n }\n\n cleanseStyleProperties(style: any) {\n if (!(style && isObject(style)) || isString(style) || isArray(style)) {\n return style;\n }\n style = style as any;\n if (isObject(style) && !isArray(style)) {\n Object.keys(style).forEach(k => {\n (style as any)[k] = this.replaceVariables((style as any)[k]);\n });\n }\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 if (!isNil(style['margin'])) {\n style['marginLeft'] = style['marginLeft'] || style['margin'];\n style['marginRight'] = style['marginRight'] || style['margin'];\n style['marginTop'] = style['marginTop'] || style['margin'];\n style['marginBottom'] = style['marginBottom'] || style['margin'];\n delete style['margin'];\n }\n if (!isNil(style['padding'])) {\n style['paddingLeft'] = style['paddingLeft'] || style['padding'];\n style['paddingRight'] = style['paddingRight'] || style['padding'];\n style['paddingTop'] = style['paddingTop'] || style['padding'];\n style['paddingBottom'] = style['paddingBottom'] || style['padding'];\n delete style['padding'];\n }\n if (this.revertLayoutToExpo50 && !isNil(style['flexDirection']) && style['flexDirection'] === 'row-reverse') {\n if (!isNil(style['paddingLeft']) || !isNil(style['paddingRight'])) {\n if (!isNil(style['paddingLeft']) && !isNil(style['paddingRight'])) {\n [style['paddingLeft'], style['paddingRight']] = [style['paddingRight'], style['paddingLeft']];\n } else {\n const [paddingLeft, paddingRight] = [style['paddingLeft'], style['paddingRight']];\n if (paddingLeft !== undefined) {\n style['paddingRight'] = paddingLeft;\n delete style['paddingLeft'];\n }\n if (paddingRight !== undefined) {\n style['paddingLeft'] = paddingRight;\n delete style['paddingRight'];\n }\n }\n }\n \n if (!isNil(style['marginLeft']) || !isNil(style['marginRight'])) {\n if (!isNil(style['marginLeft']) && !isNil(style['marginRight'])) {\n [style['marginLeft'], style['marginRight']] = [style['marginRight'], style['marginLeft']];\n } else {\n const [marginLeft, marginRight] = [style['marginLeft'], style['marginRight']];\n if (marginLeft !== undefined) {\n style['marginRight'] = marginLeft;\n delete style['marginLeft'];\n }\n if (marginRight !== undefined) {\n style['marginLeft'] = marginRight;\n delete style['marginRight'];\n }\n }\n } \n }\n let screenWidth = Dimensions.get('window').width;\n let screenHeight = Dimensions.get('window').height;\n Object.keys(style).forEach((k, i) => {\n let stylePropertyValue = style[k]\n if(typeof stylePropertyValue === 'string' && stylePropertyValue.endsWith('vw')) {\n stylePropertyValue = stylePropertyValue.replace('vw','')\n style[k] = Number(stylePropertyValue)/100 * screenWidth\n }\n if((typeof stylePropertyValue === 'string' && stylePropertyValue.endsWith('vh'))) {\n stylePropertyValue = stylePropertyValue.replace('vh','')\n style[k] = Number(stylePropertyValue)/100 * screenHeight\n }\n })\n Object.keys(style).forEach((k, i) => this.cleanseStyleProperties(style[k]));\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 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 getTextStyle(s: any) {\n if (!s) {\n return {};\n }\n return {\n color: s.color,\n fontFamily: s.fontFamily,\n fontSize: s.fontSize,\n fontStyle: s.fontStyle,\n fontWeight: s.fontWeight,\n includeFontPadding: s.includeFontPadding,\n fontVariant: s.fontVariant,\n letterSpacing: s.letterSpacing,\n lineHeight: s.lineHeight,\n textAlign: s.textAlign,\n textAlignVertical: s.textAlignVertical,\n textDecorationColor: s.textDecorationColor,\n textDecorationStyle: s.textDecorationStyle,\n textShadowColor: s.textShadowColor,\n textShadowOffset: s.textShadowOffset,\n textShadowRadius: s.textShadowRadius,\n textTransform: s.textTransform,\n verticalAlign: s.verticalAlign,\n writingDirection: s.writingDirection,\n userSelect: s.userSelect,\n } as TextStyle;\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'} & {rippleColor?: string});\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', getBreakPointValue('MIN_EXTRA_SMALL_DEVICE'));\n addColStyles('sm', getBreakPointValue('MIN_SMALL_DEVICE'));\n addColStyles('md', getBreakPointValue('MIN_MEDIUM_DEVICE'));\n addColStyles('lg', getBreakPointValue('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 getBreakPointValue('MIN_EXTRA_SMALL_DEVICE'),\n getBreakPointValue('MAX_LARGE_DEVICE'));\n addDisplayStyles('xs', \n getBreakPointValue('MIN_EXTRA_SMALL_DEVICE'),\n getBreakPointValue('MAX_EXTRA_SMALL_DEVICE'));\n addDisplayStyles('sm', \n getBreakPointValue('MIN_SMALL_DEVICE'),\n getBreakPointValue('MAX_SMALL_DEVICE'));\n addDisplayStyles('md', \n getBreakPointValue('MIN_MEDIUM_DEVICE'),\n getBreakPointValue('MAX_MEDIUM_DEVICE'));\n addDisplayStyles('lg', \n getBreakPointValue('MIN_LARGE_DEVICE'),\n getBreakPointValue('MAX_LARGE_DEVICE'));\n\n const addElevationClasses = () => {\n for(let i = 1; i <= 10; i++) {\n addStyle(`elevate${i}`, '', {\n root : {\n boxShadow: `${i}px ${i}px ${i}px rgba(0, 0, 0, 0.27)`,\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 overflow: 'hidden'\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 addStyle('hide-context-menu-input', '', { text: { userSelect: 'none' }});\n});\n\n"],"mappings":"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","ignoreList":[]}
|