@wavemaker/app-rn-runtime 11.5.2-rc.5416 → 11.5.2-rc.5461
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- app-rn-runtime/actions/notification-action.js +0 -1
- app-rn-runtime/actions/notification-action.js.map +1 -1
- app-rn-runtime/components/basic/label/label.component.js +5 -3
- app-rn-runtime/components/basic/label/label.component.js.map +1 -1
- app-rn-runtime/components/basic/label/label.props.js +1 -0
- app-rn-runtime/components/basic/label/label.props.js.map +1 -1
- app-rn-runtime/components/chart/area-chart/area-chart.component.js +3 -1
- app-rn-runtime/components/chart/area-chart/area-chart.component.js.map +1 -1
- app-rn-runtime/components/chart/bar-chart/bar-chart.component.js +12 -1
- app-rn-runtime/components/chart/bar-chart/bar-chart.component.js.map +1 -1
- app-rn-runtime/components/chart/basechart.component.js +46 -1
- app-rn-runtime/components/chart/basechart.component.js.map +1 -1
- app-rn-runtime/components/chart/basechart.props.js +7 -0
- app-rn-runtime/components/chart/basechart.props.js.map +1 -1
- app-rn-runtime/components/chart/basechart.styles.js +13 -1
- app-rn-runtime/components/chart/basechart.styles.js.map +1 -1
- app-rn-runtime/components/chart/bubble-chart/bubble-chart.component.js +2 -1
- app-rn-runtime/components/chart/bubble-chart/bubble-chart.component.js.map +1 -1
- app-rn-runtime/components/chart/line-chart/line-chart.component.js +3 -2
- app-rn-runtime/components/chart/line-chart/line-chart.component.js.map +1 -1
- app-rn-runtime/components/chart/stack-chart/stack-chart.component.js +2 -1
- app-rn-runtime/components/chart/stack-chart/stack-chart.component.js.map +1 -1
- app-rn-runtime/components/container/tabs/tabs.component.js +3 -2
- app-rn-runtime/components/container/tabs/tabs.component.js.map +1 -1
- app-rn-runtime/components/container/wizard/wizard.component.js +22 -11
- app-rn-runtime/components/container/wizard/wizard.component.js.map +1 -1
- app-rn-runtime/components/data/list/list.component.js +53 -1
- app-rn-runtime/components/data/list/list.component.js.map +1 -1
- app-rn-runtime/components/data/list/list.props.js +1 -0
- app-rn-runtime/components/data/list/list.props.js.map +1 -1
- app-rn-runtime/components/input/baseinput/baseinput.component.js +6 -2
- app-rn-runtime/components/input/baseinput/baseinput.component.js.map +1 -1
- app-rn-runtime/components/input/basenumber/basenumber.component.js +3 -3
- app-rn-runtime/components/input/basenumber/basenumber.component.js.map +1 -1
- app-rn-runtime/components/input/currency/currency.component.js +17 -2
- app-rn-runtime/components/input/currency/currency.component.js.map +1 -1
- app-rn-runtime/components/input/currency/currency.props.js +1 -0
- app-rn-runtime/components/input/currency/currency.props.js.map +1 -1
- app-rn-runtime/components/input/currency/currency.styles.js +19 -1
- app-rn-runtime/components/input/currency/currency.styles.js.map +1 -1
- app-rn-runtime/components/input/epoch/base-datetime.component.js +27 -6
- app-rn-runtime/components/input/epoch/base-datetime.component.js.map +1 -1
- app-rn-runtime/components/input/epoch/date/date.component.js +8 -0
- app-rn-runtime/components/input/epoch/date/date.component.js.map +1 -1
- app-rn-runtime/components/input/epoch/date/date.styles.js +16 -0
- app-rn-runtime/components/input/epoch/date/date.styles.js.map +1 -1
- app-rn-runtime/components/input/epoch/datetime/datetime.component.js +8 -0
- app-rn-runtime/components/input/epoch/datetime/datetime.component.js.map +1 -1
- app-rn-runtime/components/input/epoch/datetime/datetime.props.js +1 -0
- app-rn-runtime/components/input/epoch/datetime/datetime.props.js.map +1 -1
- app-rn-runtime/components/input/epoch/datetime/datetime.styles.js +21 -1
- app-rn-runtime/components/input/epoch/datetime/datetime.styles.js.map +1 -1
- app-rn-runtime/components/input/epoch/time/time.component.js +8 -0
- app-rn-runtime/components/input/epoch/time/time.component.js.map +1 -1
- app-rn-runtime/components/input/epoch/time/time.styles.js +16 -0
- app-rn-runtime/components/input/epoch/time/time.styles.js.map +1 -1
- app-rn-runtime/components/input/number/number.component.js +11 -0
- app-rn-runtime/components/input/number/number.component.js.map +1 -1
- app-rn-runtime/components/input/number/number.props.js +1 -0
- app-rn-runtime/components/input/number/number.props.js.map +1 -1
- app-rn-runtime/components/input/number/number.styles.js +17 -0
- app-rn-runtime/components/input/number/number.styles.js.map +1 -1
- app-rn-runtime/components/input/text/text.component.js +11 -0
- app-rn-runtime/components/input/text/text.component.js.map +1 -1
- app-rn-runtime/components/input/text/text.props.js +1 -0
- app-rn-runtime/components/input/text/text.props.js.map +1 -1
- app-rn-runtime/components/input/text/text.styles.js +17 -0
- app-rn-runtime/components/input/text/text.styles.js.map +1 -1
- app-rn-runtime/components/input/textarea/textarea.component.js +11 -0
- app-rn-runtime/components/input/textarea/textarea.component.js.map +1 -1
- app-rn-runtime/components/input/textarea/textarea.props.js +1 -0
- app-rn-runtime/components/input/textarea/textarea.props.js.map +1 -1
- app-rn-runtime/components/input/textarea/textarea.styles.js +17 -0
- app-rn-runtime/components/input/textarea/textarea.styles.js.map +1 -1
- app-rn-runtime/components/page/tabbar/curve.js +84 -0
- app-rn-runtime/components/page/tabbar/curve.js.map +1 -0
- app-rn-runtime/components/page/tabbar/tabbar.component.js +43 -9
- app-rn-runtime/components/page/tabbar/tabbar.component.js.map +1 -1
- app-rn-runtime/components/page/tabbar/tabbar.styles.js +54 -1
- app-rn-runtime/components/page/tabbar/tabbar.styles.js.map +1 -1
- app-rn-runtime/core/base.component.js +5 -1
- app-rn-runtime/core/base.component.js.map +1 -1
- app-rn-runtime/core/components/floatinglabel.component.js +45 -0
- app-rn-runtime/core/components/floatinglabel.component.js.map +1 -0
- app-rn-runtime/core/components/textinput.component.js +25 -2
- app-rn-runtime/core/components/textinput.component.js.map +1 -1
- app-rn-runtime/core/toast.service.js.map +1 -1
- app-rn-runtime/package.json +5 -3
- app-rn-runtime/runtime/App.js +8 -4
- app-rn-runtime/runtime/App.js.map +1 -1
- app-rn-runtime/runtime/base-fragment.component.js +14 -3
- app-rn-runtime/runtime/base-fragment.component.js.map +1 -1
- app-rn-runtime/runtime/services/app-i18n.service.js +7 -0
- app-rn-runtime/runtime/services/app-i18n.service.js.map +1 -1
- app-rn-runtime/styles/theme.js +36 -0
- app-rn-runtime/styles/theme.js.map +1 -1
- app-rn-runtime/styles/theme.variables.js +10 -0
- app-rn-runtime/styles/theme.variables.js.map +1 -1
|
@@ -19,6 +19,14 @@ export default class WmNumber extends BaseNumberComponent {
|
|
|
19
19
|
constructor(props) {
|
|
20
20
|
super(props, DEFAULT_CLASS, new WmNumberProps(), new WmNumberState());
|
|
21
21
|
}
|
|
22
|
+
getStyleClassName() {
|
|
23
|
+
const classes = [];
|
|
24
|
+
if (this.state.props.floatinglabel) {
|
|
25
|
+
classes.push('app-number-with-label');
|
|
26
|
+
}
|
|
27
|
+
classes.push(super.getStyleClassName());
|
|
28
|
+
return classes.join(' ');
|
|
29
|
+
}
|
|
22
30
|
renderWidget(props) {
|
|
23
31
|
var _this$state$textValue;
|
|
24
32
|
let opts = {};
|
|
@@ -34,6 +42,9 @@ export default class WmNumber extends BaseNumberComponent {
|
|
|
34
42
|
}
|
|
35
43
|
}
|
|
36
44
|
}, opts, {
|
|
45
|
+
floatingLabel: props.floatinglabel,
|
|
46
|
+
floatingLabelStyle: this.styles.floatingLabel,
|
|
47
|
+
activeFloatingLabelStyle: this.styles.activeFloatingLabel,
|
|
37
48
|
style: [this.styles.root, this.state.isValid ? {} : this.styles.invalid],
|
|
38
49
|
keyboardType: "numeric",
|
|
39
50
|
placeholderTextColor: this.styles.placeholderText.color,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Platform","isNull","WmNumberProps","DEFAULT_CLASS","WMTextInput","BaseNumberComponent","BaseNumberState","WmNumberState","constructor","arguments","_defineProperty","WmNumber","props","renderWidget","_this$state$textValue","opts","valueExpr","OS","
|
|
1
|
+
{"version":3,"names":["React","Platform","isNull","WmNumberProps","DEFAULT_CLASS","WMTextInput","BaseNumberComponent","BaseNumberState","WmNumberState","constructor","arguments","_defineProperty","WmNumber","props","getStyleClassName","classes","state","floatinglabel","push","join","renderWidget","_this$state$textValue","opts","valueExpr","OS","textValue","toString","createElement","_extends","getTestPropsForInput","ref","widgetRef","selectionStart","selectionEnd","cursor","floatingLabel","floatingLabelStyle","styles","activeFloatingLabelStyle","activeFloatingLabel","style","root","isValid","invalid","keyboardType","placeholderTextColor","placeholderText","color","autoFocus","autofocus","editable","disabled","readonly","placeholder","value","onBlur","bind","onFocus","onKeyPress","validateInputEntry","onChangeText","text","onChange","invokeChange","allowContentSelection","userSelect"],"sources":["number.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Platform } from 'react-native';\nimport { isNull } from 'lodash';\n\nimport WmNumberProps from './number.props';\nimport { DEFAULT_CLASS, WmNumberStyles } from './number.styles';\nimport { WMTextInput } from '@wavemaker/app-rn-runtime/core/components/textinput.component';\nimport {\n BaseNumberComponent,\n BaseNumberState\n} from '@wavemaker/app-rn-runtime/components/input/basenumber/basenumber.component';\n\nexport class WmNumberState extends BaseNumberState<WmNumberProps> {\n keyboardType: any;\n}\n\nexport default class WmNumber extends BaseNumberComponent<WmNumberProps, WmNumberState, WmNumberStyles> {\n\n constructor(props: WmNumberProps) {\n super(props, DEFAULT_CLASS, new WmNumberProps(), new WmNumberState());\n }\n\n public getStyleClassName(): string | undefined {\n const classes = [];\n if (this.state.props.floatinglabel) {\n classes.push('app-number-with-label'); \n }\n classes.push(super.getStyleClassName());\n return classes.join(' ');\n }\n\n renderWidget(props: WmNumberProps) {\n let opts: any = {};\n const valueExpr = Platform.OS === 'web' ? 'value' : 'defaultValue';\n opts[valueExpr] = this.state.textValue?.toString() || '';\n return (<WMTextInput\n {...this.getTestPropsForInput()}\n ref={(ref: any) => {this.widgetRef = ref;\n // @ts-ignore\n if (ref && !isNull(ref.selectionStart) && !isNull(ref.selectionEnd)) {\n // @ts-ignore\n ref.selectionStart = ref.selectionEnd = this.cursor;\n }}}\n {...opts}\n floatingLabel={props.floatinglabel}\n floatingLabelStyle={this.styles.floatingLabel}\n activeFloatingLabelStyle={this.styles.activeFloatingLabel}\n style={[this.styles.root, this.state.isValid ? {} : this.styles.invalid]}\n keyboardType=\"numeric\"\n placeholderTextColor={this.styles.placeholderText.color as any}\n autoFocus={props.autofocus}\n editable={props.disabled || props.readonly ? false : true}\n placeholder={props.placeholder}\n value={this.state.textValue}\n onBlur={this.onBlur.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onKeyPress={this.validateInputEntry.bind(this)}\n onChangeText={(text) => {\n this.onChangeText.bind(this)(text, 'number');\n }}\n onChange={this.invokeChange.bind(this)}\n allowContentSelection={this.styles.text.userSelect === 'text'}\n />);\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseNumberProps","WmNumberProps","constructor","arguments","_defineProperty"],"sources":["number.props.ts"],"sourcesContent":["import BaseNumberProps from '@wavemaker/app-rn-runtime/components/input/basenumber/basenumber.props';\n\nexport default class WmNumberProps extends BaseNumberProps {\n autofocus: boolean = null as any;\n placeholder: string = '';\n}\n"],"mappings":";;;AAAA,OAAOA,eAAe,MAAM,wEAAwE;AAEpG,eAAe,MAAMC,aAAa,SAASD,eAAe,CAAC;EAAAE,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,oBACpC,IAAI;IAAAA,eAAA,
|
|
1
|
+
{"version":3,"names":["BaseNumberProps","WmNumberProps","constructor","arguments","_defineProperty"],"sources":["number.props.ts"],"sourcesContent":["import BaseNumberProps from '@wavemaker/app-rn-runtime/components/input/basenumber/basenumber.props';\n\nexport default class WmNumberProps extends BaseNumberProps {\n autofocus: boolean = null as any;\n floatinglabel?: string;\n placeholder: string = '';\n}\n"],"mappings":";;;AAAA,OAAOA,eAAe,MAAM,wEAAwE;AAEpG,eAAe,MAAMC,aAAa,SAASD,eAAe,CAAC;EAAAE,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,oBACpC,IAAI;IAAAA,eAAA;IAAAA,eAAA,sBAEH,EAAE;EAAA;AAC1B"}
|
|
@@ -25,6 +25,8 @@ BASE_THEME.registerStyle((themeVariables, addStyle) => {
|
|
|
25
25
|
placeholderText: {
|
|
26
26
|
color: themeVariables.inputPlaceholderColor
|
|
27
27
|
},
|
|
28
|
+
floatingLabel: {},
|
|
29
|
+
activeFloatingLabel: {},
|
|
28
30
|
skeleton: {}
|
|
29
31
|
});
|
|
30
32
|
addStyle(DEFAULT_CLASS, '', defaultStyles);
|
|
@@ -38,5 +40,20 @@ BASE_THEME.registerStyle((themeVariables, addStyle) => {
|
|
|
38
40
|
textAlign: 'right'
|
|
39
41
|
}
|
|
40
42
|
});
|
|
43
|
+
addStyle(DEFAULT_CLASS + '-with-label', '', {
|
|
44
|
+
root: {
|
|
45
|
+
minHeight: 48
|
|
46
|
+
},
|
|
47
|
+
floatingLabel: {
|
|
48
|
+
position: 'absolute',
|
|
49
|
+
top: 12,
|
|
50
|
+
left: 16,
|
|
51
|
+
fontSize: 14,
|
|
52
|
+
color: themeVariables.floatingLabelColor
|
|
53
|
+
},
|
|
54
|
+
activeFloatingLabel: {
|
|
55
|
+
color: themeVariables.activeFloatingLabelColor
|
|
56
|
+
}
|
|
57
|
+
});
|
|
41
58
|
});
|
|
42
59
|
//# sourceMappingURL=number.styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BASE_THEME","defineStyles","DEFAULT_CLASS","registerStyle","themeVariables","addStyle","defaultStyles","root","minHeight","paddingTop","paddingBottom","borderWidth","borderStyle","borderColor","inputBorderColor","backgroundColor","inputBackgroundColor","borderRadius","paddingLeft","paddingRight","text","fontSize","textAlign","invalid","borderBottomColor","inputInvalidBorderColor","placeholderText","color","inputPlaceholderColor","skeleton","inputDisabledBgColor"],"sources":["number.styles.ts"],"sourcesContent":["import BASE_THEME, { AllStyle } from '@wavemaker/app-rn-runtime/styles/theme';\nimport { BaseStyles, defineStyles } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { WmSkeletonStyles } from '../../basic/skeleton/skeleton.styles';\n\nexport type WmNumberStyles = BaseStyles & {\n invalid: AllStyle;\n placeholderText: AllStyle;\n skeleton: WmSkeletonStyles;\n};\n\nexport const DEFAULT_CLASS = 'app-number';\nBASE_THEME.registerStyle((themeVariables, addStyle) => {\n const defaultStyles: WmNumberStyles = defineStyles<WmNumberStyles>({\n root: {\n minHeight: 42,\n paddingTop: 8,\n paddingBottom: 8,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: themeVariables.inputBorderColor,\n backgroundColor: themeVariables.inputBackgroundColor,\n borderRadius: 6,\n paddingLeft: 16,\n paddingRight: 16\n },\n text: {\n fontSize: 16,\n textAlign: 'left'\n },\n invalid: {\n borderBottomColor: themeVariables.inputInvalidBorderColor\n },\n placeholderText: {\n color: themeVariables.inputPlaceholderColor\n },\n skeleton: {} as WmSkeletonStyles\n });\n\n addStyle(DEFAULT_CLASS, '', defaultStyles);\n addStyle(DEFAULT_CLASS + '-disabled', '', {\n root : {\n backgroundColor: themeVariables.inputDisabledBgColor\n }\n });\n addStyle(DEFAULT_CLASS + '-rtl', '', {\n root : {\n textAlign: 'right'\n }\n });\n});\n\n"],"mappings":"AAAA,OAAOA,UAAU,MAAoB,wCAAwC;AAC7E,SAAqBC,YAAY,QAAQ,+CAA+C;
|
|
1
|
+
{"version":3,"names":["BASE_THEME","defineStyles","DEFAULT_CLASS","registerStyle","themeVariables","addStyle","defaultStyles","root","minHeight","paddingTop","paddingBottom","borderWidth","borderStyle","borderColor","inputBorderColor","backgroundColor","inputBackgroundColor","borderRadius","paddingLeft","paddingRight","text","fontSize","textAlign","invalid","borderBottomColor","inputInvalidBorderColor","placeholderText","color","inputPlaceholderColor","floatingLabel","activeFloatingLabel","skeleton","inputDisabledBgColor","position","top","left","floatingLabelColor","activeFloatingLabelColor"],"sources":["number.styles.ts"],"sourcesContent":["import BASE_THEME, { AllStyle } from '@wavemaker/app-rn-runtime/styles/theme';\nimport { BaseStyles, defineStyles } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { WmSkeletonStyles } from '../../basic/skeleton/skeleton.styles';\n\nexport type WmNumberStyles = BaseStyles & {\n invalid: AllStyle;\n placeholderText: AllStyle;\n floatingLabel: AllStyle;\n activeFloatingLabel: AllStyle;\n skeleton: WmSkeletonStyles;\n};\n\nexport const DEFAULT_CLASS = 'app-number';\nBASE_THEME.registerStyle((themeVariables, addStyle) => {\n const defaultStyles: WmNumberStyles = defineStyles<WmNumberStyles>({\n root: {\n minHeight: 42,\n paddingTop: 8,\n paddingBottom: 8,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: themeVariables.inputBorderColor,\n backgroundColor: themeVariables.inputBackgroundColor,\n borderRadius: 6,\n paddingLeft: 16,\n paddingRight: 16\n },\n text: {\n fontSize: 16,\n textAlign: 'left'\n },\n invalid: {\n borderBottomColor: themeVariables.inputInvalidBorderColor\n },\n placeholderText: {\n color: themeVariables.inputPlaceholderColor\n },\n floatingLabel: {},\n activeFloatingLabel: {},\n skeleton: {} as WmSkeletonStyles\n });\n\n addStyle(DEFAULT_CLASS, '', defaultStyles);\n addStyle(DEFAULT_CLASS + '-disabled', '', {\n root : {\n backgroundColor: themeVariables.inputDisabledBgColor\n }\n });\n addStyle(DEFAULT_CLASS + '-rtl', '', {\n root : {\n textAlign: 'right'\n }\n });\n addStyle(DEFAULT_CLASS + '-with-label', '', {\n root: {\n minHeight: 48\n },\n floatingLabel: {\n position: 'absolute',\n top: 12,\n left: 16,\n fontSize: 14,\n color: themeVariables.floatingLabelColor\n },\n activeFloatingLabel: {\n color: themeVariables.activeFloatingLabelColor\n }\n });\n});\n\n"],"mappings":"AAAA,OAAOA,UAAU,MAAoB,wCAAwC;AAC7E,SAAqBC,YAAY,QAAQ,+CAA+C;AAWxF,OAAO,MAAMC,aAAa,GAAG,YAAY;AACzCF,UAAU,CAACG,aAAa,CAAC,CAACC,cAAc,EAAEC,QAAQ,KAAK;EACrD,MAAMC,aAA6B,GAAGL,YAAY,CAAiB;IAC/DM,IAAI,EAAE;MACJC,SAAS,EAAE,EAAE;MACbC,UAAU,EAAE,CAAC;MACbC,aAAa,EAAE,CAAC;MAChBC,WAAW,EAAE,CAAC;MACdC,WAAW,EAAE,OAAO;MACpBC,WAAW,EAAET,cAAc,CAACU,gBAAgB;MAC5CC,eAAe,EAAEX,cAAc,CAACY,oBAAoB;MACpDC,YAAY,EAAE,CAAC;MACfC,WAAW,EAAE,EAAE;MACfC,YAAY,EAAE;IAChB,CAAC;IACDC,IAAI,EAAE;MACJC,QAAQ,EAAE,EAAE;MACZC,SAAS,EAAE;IACb,CAAC;IACDC,OAAO,EAAE;MACPC,iBAAiB,EAAEpB,cAAc,CAACqB;IACpC,CAAC;IACDC,eAAe,EAAE;MACfC,KAAK,EAAEvB,cAAc,CAACwB;IACxB,CAAC;IACDC,aAAa,EAAE,CAAC,CAAC;IACjBC,mBAAmB,EAAE,CAAC,CAAC;IACvBC,QAAQ,EAAE,CAAC;EACf,CAAC,CAAC;EAEF1B,QAAQ,CAACH,aAAa,EAAE,EAAE,EAAEI,aAAa,CAAC;EAC1CD,QAAQ,CAACH,aAAa,GAAG,WAAW,EAAE,EAAE,EAAE;IACtCK,IAAI,EAAG;MACLQ,eAAe,EAAEX,cAAc,CAAC4B;IAClC;EACJ,CAAC,CAAC;EACF3B,QAAQ,CAACH,aAAa,GAAG,MAAM,EAAE,EAAE,EAAE;IACjCK,IAAI,EAAG;MACLe,SAAS,EAAE;IACb;EACJ,CAAC,CAAC;EACFjB,QAAQ,CAACH,aAAa,GAAG,aAAa,EAAE,EAAE,EAAE;IAC1CK,IAAI,EAAE;MACJC,SAAS,EAAE;IACb,CAAC;IACDqB,aAAa,EAAE;MACbI,QAAQ,EAAE,UAAU;MACpBC,GAAG,EAAE,EAAE;MACPC,IAAI,EAAE,EAAE;MACRd,QAAQ,EAAE,EAAE;MACZM,KAAK,EAAEvB,cAAc,CAACgC;IACxB,CAAC;IACDN,mBAAmB,EAAE;MACnBH,KAAK,EAAEvB,cAAc,CAACiC;IACxB;EACF,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -11,6 +11,14 @@ export default class WmText extends BaseInputComponent {
|
|
|
11
11
|
constructor(props) {
|
|
12
12
|
super(props, DEFAULT_CLASS, new WmTextProps(), new WmTextState());
|
|
13
13
|
}
|
|
14
|
+
getStyleClassName() {
|
|
15
|
+
const classes = [];
|
|
16
|
+
if (this.state.props.floatinglabel) {
|
|
17
|
+
classes.push('app-text-with-label');
|
|
18
|
+
}
|
|
19
|
+
classes.push(super.getStyleClassName());
|
|
20
|
+
return classes.join(' ');
|
|
21
|
+
}
|
|
14
22
|
renderWidget(props) {
|
|
15
23
|
var _this$state$textValue;
|
|
16
24
|
let opts = {};
|
|
@@ -26,6 +34,9 @@ export default class WmText extends BaseInputComponent {
|
|
|
26
34
|
}
|
|
27
35
|
}
|
|
28
36
|
}, opts, {
|
|
37
|
+
floatingLabel: props.floatinglabel,
|
|
38
|
+
floatingLabelStyle: this.styles.floatingLabel,
|
|
39
|
+
activeFloatingLabelStyle: this.styles.activeFloatingLabel,
|
|
29
40
|
placeholderTextColor: this.styles.placeholderText.color,
|
|
30
41
|
style: [this.styles.root, this.state.isValid ? {} : this.styles.invalid],
|
|
31
42
|
keyboardType: this.state.keyboardType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Platform","WmTextProps","DEFAULT_CLASS","WMTextInput","BaseInputComponent","BaseInputState","isNull","WmTextState","WmText","constructor","props","renderWidget","_this$state$textValue","opts","valueExpr","OS","
|
|
1
|
+
{"version":3,"names":["React","Platform","WmTextProps","DEFAULT_CLASS","WMTextInput","BaseInputComponent","BaseInputState","isNull","WmTextState","WmText","constructor","props","getStyleClassName","classes","state","floatinglabel","push","join","renderWidget","_this$state$textValue","opts","valueExpr","OS","textValue","toString","createElement","_extends","getTestPropsForInput","ref","widgetRef","selectionStart","selectionEnd","cursor","floatingLabel","floatingLabelStyle","styles","activeFloatingLabelStyle","activeFloatingLabel","placeholderTextColor","placeholderText","color","style","root","isValid","invalid","keyboardType","autoComplete","autocomplete","autoFocus","autofocus","editable","disabled","readonly","secureTextEntry","type","maxLength","maxchars","placeholder","onBlur","bind","onFocus","onKeyPress","onChangeText","onChange","invokeChange","allowContentSelection","text","userSelect"],"sources":["text.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Platform } from 'react-native';\n\nimport WmTextProps from './text.props';\nimport { DEFAULT_CLASS, WmTextStyles } from './text.styles';\nimport { WMTextInput } from '@wavemaker/app-rn-runtime/core/components/textinput.component';\nimport { BaseInputComponent, BaseInputState } from \"@wavemaker/app-rn-runtime/components/input/baseinput/baseinput.component\";\nimport { isNull } from 'lodash';\n\nexport class WmTextState extends BaseInputState<WmTextProps> {\n}\n\nexport default class WmText extends BaseInputComponent<WmTextProps, WmTextState, WmTextStyles> {\n\n constructor(props: WmTextProps) {\n super(props, DEFAULT_CLASS, new WmTextProps(), new WmTextState());\n }\n\n public getStyleClassName(): string | undefined {\n const classes = [];\n if (this.state.props.floatinglabel) {\n classes.push('app-text-with-label'); \n }\n classes.push(super.getStyleClassName());\n return classes.join(' ');\n }\n\n renderWidget(props: WmTextProps) {\n let opts: any = {};\n const valueExpr = Platform.OS === 'web' ? 'value' : 'defaultValue';\n opts[valueExpr] = this.state.textValue?.toString() || '';\n return (\n <WMTextInput\n {...this.getTestPropsForInput()}\n ref={(ref: any) => {this.widgetRef = ref;\n // @ts-ignore\n if (ref && !isNull(ref.selectionStart) && !isNull(ref.selectionEnd)) {\n // @ts-ignore\n ref.selectionStart = ref.selectionEnd = this.cursor;\n }}}\n {...opts}\n floatingLabel={props.floatinglabel}\n floatingLabelStyle={this.styles.floatingLabel}\n activeFloatingLabelStyle={this.styles.activeFloatingLabel}\n placeholderTextColor={this.styles.placeholderText.color as any}\n style={[this.styles.root, this.state.isValid ? {} : this.styles.invalid]}\n keyboardType={this.state.keyboardType}\n autoComplete={props.autocomplete ? 'username' : 'off'}\n autoFocus={props.autofocus}\n editable={props.disabled || props.readonly ? false : true}\n secureTextEntry={props.type === 'password' ? true : false}\n maxLength={props.maxchars}\n placeholder={props.placeholder}\n onBlur={this.onBlur.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onKeyPress={this.onKeyPress.bind(this)}\n onChangeText={this.onChangeText.bind(this)}\n onChange={this.invokeChange.bind(this)}\n allowContentSelection={this.styles.text.userSelect === 'text'}\n />\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import BaseInputProps from "@wavemaker/app-rn-runtime/components/input/baseinput
|
|
|
5
5
|
export default class WmTextProps extends BaseInputProps {
|
|
6
6
|
constructor() {
|
|
7
7
|
super(...arguments);
|
|
8
|
+
_defineProperty(this, "floatinglabel", void 0);
|
|
8
9
|
_defineProperty(this, "placeholder", 'Enter text');
|
|
9
10
|
}
|
|
10
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseInputProps","WmTextProps","constructor","arguments","_defineProperty"],"sources":["text.props.ts"],"sourcesContent":["import BaseInputProps from \"@wavemaker/app-rn-runtime/components/input/baseinput/baseinput.props\";\n\nexport default class WmTextProps extends BaseInputProps {\n placeholder: string = 'Enter text';\n}\n"],"mappings":";;;AAAA,OAAOA,cAAc,MAAM,sEAAsE;AAEjG,eAAe,MAAMC,WAAW,SAASD,cAAc,CAAC;EAAAE,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,
|
|
1
|
+
{"version":3,"names":["BaseInputProps","WmTextProps","constructor","arguments","_defineProperty"],"sources":["text.props.ts"],"sourcesContent":["import BaseInputProps from \"@wavemaker/app-rn-runtime/components/input/baseinput/baseinput.props\";\n\nexport default class WmTextProps extends BaseInputProps {\n floatinglabel?: string;\n placeholder: string = 'Enter text';\n}\n"],"mappings":";;;AAAA,OAAOA,cAAc,MAAM,sEAAsE;AAEjG,eAAe,MAAMC,WAAW,SAASD,cAAc,CAAC;EAAAE,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA;IAAAA,eAAA,sBAEhC,YAAY;EAAA;AACpC"}
|
|
@@ -25,6 +25,8 @@ BASE_THEME.registerStyle((themeVariables, addStyle) => {
|
|
|
25
25
|
placeholderText: {
|
|
26
26
|
color: themeVariables.inputPlaceholderColor
|
|
27
27
|
},
|
|
28
|
+
floatingLabel: {},
|
|
29
|
+
activeFloatingLabel: {},
|
|
28
30
|
skeleton: {
|
|
29
31
|
root: {
|
|
30
32
|
width: '100%',
|
|
@@ -44,5 +46,20 @@ BASE_THEME.registerStyle((themeVariables, addStyle) => {
|
|
|
44
46
|
textAlign: 'right'
|
|
45
47
|
}
|
|
46
48
|
});
|
|
49
|
+
addStyle(DEFAULT_CLASS + '-with-label', '', {
|
|
50
|
+
root: {
|
|
51
|
+
minHeight: 48
|
|
52
|
+
},
|
|
53
|
+
floatingLabel: {
|
|
54
|
+
position: 'absolute',
|
|
55
|
+
top: 12,
|
|
56
|
+
left: 16,
|
|
57
|
+
fontSize: 14,
|
|
58
|
+
color: themeVariables.floatingLabelColor
|
|
59
|
+
},
|
|
60
|
+
activeFloatingLabel: {
|
|
61
|
+
color: themeVariables.activeFloatingLabelColor
|
|
62
|
+
}
|
|
63
|
+
});
|
|
47
64
|
});
|
|
48
65
|
//# sourceMappingURL=text.styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BASE_THEME","defineStyles","DEFAULT_CLASS","registerStyle","themeVariables","addStyle","defaultStyles","root","minHeight","paddingTop","paddingBottom","borderWidth","paddingLeft","paddingRight","borderStyle","borderColor","inputBorderColor","backgroundColor","inputBackgroundColor","borderRadius","fontFamily","baseFont","text","fontSize","invalid","borderBottomColor","inputInvalidBorderColor","placeholderText","color","inputPlaceholderColor","skeleton","width","height","inputDisabledBgColor","textAlign"],"sources":["text.styles.ts"],"sourcesContent":["import BASE_THEME, {AllStyle, Theme} from '@wavemaker/app-rn-runtime/styles/theme';\nimport { BaseStyles, defineStyles } from '@wavemaker/app-rn-runtime/core/base.component';\nimport {ColorValue} from \"react-native\";\nimport { WmSkeletonStyles } from '../../basic/skeleton/skeleton.styles';\n\nexport type WmTextStyles = BaseStyles & {\n invalid: AllStyle;\n placeholderText: AllStyle;\n skeleton: WmSkeletonStyles
|
|
1
|
+
{"version":3,"names":["BASE_THEME","defineStyles","DEFAULT_CLASS","registerStyle","themeVariables","addStyle","defaultStyles","root","minHeight","paddingTop","paddingBottom","borderWidth","paddingLeft","paddingRight","borderStyle","borderColor","inputBorderColor","backgroundColor","inputBackgroundColor","borderRadius","fontFamily","baseFont","text","fontSize","invalid","borderBottomColor","inputInvalidBorderColor","placeholderText","color","inputPlaceholderColor","floatingLabel","activeFloatingLabel","skeleton","width","height","inputDisabledBgColor","textAlign","position","top","left","floatingLabelColor","activeFloatingLabelColor"],"sources":["text.styles.ts"],"sourcesContent":["import BASE_THEME, {AllStyle, Theme} from '@wavemaker/app-rn-runtime/styles/theme';\nimport { BaseStyles, defineStyles } from '@wavemaker/app-rn-runtime/core/base.component';\nimport {ColorValue} from \"react-native\";\nimport { WmSkeletonStyles } from '../../basic/skeleton/skeleton.styles';\n\nexport type WmTextStyles = BaseStyles & {\n invalid: AllStyle;\n placeholderText: AllStyle;\n floatingLabel: AllStyle;\n activeFloatingLabel: AllStyle;\n skeleton: WmSkeletonStyles;\n};\n\nexport const DEFAULT_CLASS = 'app-text';\nBASE_THEME.registerStyle((themeVariables, addStyle) => {\n const defaultStyles: WmTextStyles = defineStyles({\n root: {\n minHeight: 42,\n paddingTop: 8,\n paddingBottom: 8,\n borderWidth: 1,\n paddingLeft: 16,\n paddingRight: 16,\n borderStyle: 'solid',\n borderColor: themeVariables.inputBorderColor,\n backgroundColor: themeVariables.inputBackgroundColor,\n borderRadius: 6,\n fontFamily: themeVariables.baseFont\n },\n text: {\n fontSize: 16\n },\n invalid: {\n borderBottomColor: themeVariables.inputInvalidBorderColor\n },\n placeholderText: {\n color: themeVariables.inputPlaceholderColor\n },\n floatingLabel: {},\n activeFloatingLabel: {},\n skeleton: {\n root: {\n width: '100%',\n height: 16,\n borderRadius: 4\n }\n } as any as WmSkeletonStyles\n });\n\n addStyle(DEFAULT_CLASS, '', defaultStyles);\n addStyle(DEFAULT_CLASS + '-disabled', '', {\n root : {\n backgroundColor: themeVariables.inputDisabledBgColor\n }\n });\n addStyle(DEFAULT_CLASS + '-rtl', '', {\n root:{\n textAlign: 'right'\n }\n });\n addStyle(DEFAULT_CLASS + '-with-label', '', {\n root: {\n minHeight: 48,\n },\n floatingLabel: {\n position: 'absolute',\n top: 12,\n left: 16,\n fontSize: 14,\n color: themeVariables.floatingLabelColor\n },\n activeFloatingLabel: {\n color: themeVariables.activeFloatingLabelColor\n }\n });\n});"],"mappings":"AAAA,OAAOA,UAAU,MAAyB,wCAAwC;AAClF,SAAqBC,YAAY,QAAQ,+CAA+C;AAYxF,OAAO,MAAMC,aAAa,GAAG,UAAU;AACvCF,UAAU,CAACG,aAAa,CAAC,CAACC,cAAc,EAAEC,QAAQ,KAAK;EACrD,MAAMC,aAA2B,GAAGL,YAAY,CAAC;IAC7CM,IAAI,EAAE;MACJC,SAAS,EAAE,EAAE;MACbC,UAAU,EAAE,CAAC;MACbC,aAAa,EAAE,CAAC;MAChBC,WAAW,EAAE,CAAC;MACdC,WAAW,EAAE,EAAE;MACfC,YAAY,EAAE,EAAE;MAChBC,WAAW,EAAE,OAAO;MACpBC,WAAW,EAAEX,cAAc,CAACY,gBAAgB;MAC5CC,eAAe,EAAEb,cAAc,CAACc,oBAAoB;MACpDC,YAAY,EAAE,CAAC;MACfC,UAAU,EAAEhB,cAAc,CAACiB;IAC7B,CAAC;IACDC,IAAI,EAAE;MACJC,QAAQ,EAAE;IACZ,CAAC;IACDC,OAAO,EAAE;MACPC,iBAAiB,EAAErB,cAAc,CAACsB;IACpC,CAAC;IACDC,eAAe,EAAE;MACjBC,KAAK,EAAExB,cAAc,CAACyB;IACtB,CAAC;IACDC,aAAa,EAAE,CAAC,CAAC;IACjBC,mBAAmB,EAAE,CAAC,CAAC;IACvBC,QAAQ,EAAE;MACRzB,IAAI,EAAE;QACJ0B,KAAK,EAAE,MAAM;QACbC,MAAM,EAAE,EAAE;QACVf,YAAY,EAAE;MAChB;IACF;EACJ,CAAC,CAAC;EAEFd,QAAQ,CAACH,aAAa,EAAE,EAAE,EAAEI,aAAa,CAAC;EAC1CD,QAAQ,CAACH,aAAa,GAAG,WAAW,EAAE,EAAE,EAAE;IACtCK,IAAI,EAAG;MACLU,eAAe,EAAEb,cAAc,CAAC+B;IAClC;EACJ,CAAC,CAAC;EACF9B,QAAQ,CAACH,aAAa,GAAG,MAAM,EAAE,EAAE,EAAE;IACjCK,IAAI,EAAC;MACH6B,SAAS,EAAE;IACb;EACJ,CAAC,CAAC;EACF/B,QAAQ,CAACH,aAAa,GAAG,aAAa,EAAE,EAAE,EAAE;IAC1CK,IAAI,EAAE;MACJC,SAAS,EAAE;IACb,CAAC;IACDsB,aAAa,EAAE;MACbO,QAAQ,EAAE,UAAU;MACpBC,GAAG,EAAE,EAAE;MACPC,IAAI,EAAE,EAAE;MACRhB,QAAQ,EAAE,EAAE;MACZK,KAAK,EAAExB,cAAc,CAACoC;IACxB,CAAC;IACDT,mBAAmB,EAAE;MACnBH,KAAK,EAAExB,cAAc,CAACqC;IACxB;EACF,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -11,6 +11,14 @@ export default class WmTextarea extends BaseInputComponent {
|
|
|
11
11
|
constructor(props) {
|
|
12
12
|
super(props, DEFAULT_CLASS, new WmTextareaProps(), new WmTextareaState());
|
|
13
13
|
}
|
|
14
|
+
getStyleClassName() {
|
|
15
|
+
const classes = [];
|
|
16
|
+
if (this.state.props.floatinglabel) {
|
|
17
|
+
classes.push('app-textarea-with-label');
|
|
18
|
+
}
|
|
19
|
+
classes.push(super.getStyleClassName());
|
|
20
|
+
return classes.join(' ');
|
|
21
|
+
}
|
|
14
22
|
renderWidget(props) {
|
|
15
23
|
var _this$state$textValue;
|
|
16
24
|
let opts = {};
|
|
@@ -31,6 +39,9 @@ export default class WmTextarea extends BaseInputComponent {
|
|
|
31
39
|
numberOfLines: 4,
|
|
32
40
|
keyboardType: this.state.keyboardType
|
|
33
41
|
}, opts, {
|
|
42
|
+
floatingLabel: props.floatinglabel,
|
|
43
|
+
floatingLabelStyle: this.styles.floatingLabel,
|
|
44
|
+
activeFloatingLabelStyle: this.styles.activeFloatingLabel,
|
|
34
45
|
autoComplete: props.autocomplete ? 'username' : 'off',
|
|
35
46
|
autoFocus: props.autofocus,
|
|
36
47
|
editable: props.disabled || props.readonly ? false : true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Platform","WmTextareaProps","DEFAULT_CLASS","BaseInputComponent","BaseInputState","WMTextInput","isNull","WmTextareaState","WmTextarea","constructor","props","renderWidget","_this$state$textValue","opts","valueExpr","OS","
|
|
1
|
+
{"version":3,"names":["React","Platform","WmTextareaProps","DEFAULT_CLASS","BaseInputComponent","BaseInputState","WMTextInput","isNull","WmTextareaState","WmTextarea","constructor","props","getStyleClassName","classes","state","floatinglabel","push","join","renderWidget","_this$state$textValue","opts","valueExpr","OS","textValue","toString","createElement","_extends","getTestPropsForInput","ref","widgetRef","selectionStart","selectionEnd","cursor","placeholderTextColor","styles","placeholderText","color","style","root","text","isValid","invalid","multiline","numberOfLines","keyboardType","floatingLabel","floatingLabelStyle","activeFloatingLabelStyle","activeFloatingLabel","autoComplete","autocomplete","autoFocus","autofocus","editable","disabled","readonly","maxLength","maxchars","placeholder","onBlur","bind","onFocus","onKeyPress","onChangeText","onChange","invokeChange","allowContentSelection","userSelect"],"sources":["textarea.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Platform, TextInput, View } from 'react-native';\nimport WmTextareaProps from './textarea.props';\nimport { DEFAULT_CLASS, WmTextareaStyles } from './textarea.styles';\nimport {\n BaseInputComponent,\n BaseInputState\n} from '@wavemaker/app-rn-runtime/components/input/baseinput/baseinput.component';\nimport { WMTextInput } from '@wavemaker/app-rn-runtime/core/components/textinput.component';\nimport { isNull } from 'lodash';\n\nexport class WmTextareaState extends BaseInputState<WmTextareaProps> {}\n\nexport default class WmTextarea extends BaseInputComponent<WmTextareaProps, WmTextareaState, WmTextareaStyles> {\n\n constructor(props: WmTextareaProps) {\n super(props, DEFAULT_CLASS, new WmTextareaProps(), new WmTextareaState());\n }\n\n public getStyleClassName(): string | undefined {\n const classes = [];\n if (this.state.props.floatinglabel) {\n classes.push('app-textarea-with-label'); \n }\n classes.push(super.getStyleClassName());\n return classes.join(' ');\n }\n\n renderWidget(props: WmTextareaProps) {\n let opts: any = {};\n const valueExpr = Platform.OS === 'web' ? 'value' : 'defaultValue';\n opts[valueExpr] = this.state.textValue?.toString() || '';\n return ( <WMTextInput\n {...this.getTestPropsForInput()}\n ref={(ref: any) => {this.widgetRef = ref;\n // @ts-ignore\n if (ref && !isNull(ref.selectionStart) && !isNull(ref.selectionEnd)) {\n // @ts-ignore\n ref.selectionStart = ref.selectionEnd = this.cursor;\n }}}\n placeholderTextColor={this.styles.placeholderText.color as any}\n style={[this.styles.root, this.styles.text, this.state.isValid ? {} : this.styles.invalid]}\n multiline={true}\n numberOfLines={4}\n keyboardType={this.state.keyboardType}\n {...opts}\n floatingLabel={props.floatinglabel}\n floatingLabelStyle={this.styles.floatingLabel}\n activeFloatingLabelStyle={this.styles.activeFloatingLabel}\n autoComplete={props.autocomplete ? 'username' : 'off'}\n autoFocus={props.autofocus}\n editable={props.disabled || props.readonly ? false : true}\n maxLength={props.maxchars}\n placeholder={props.placeholder || 'Place your text'}\n onBlur={this.onBlur.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onKeyPress={this.onKeyPress.bind(this)}\n onChangeText={this.onChangeText.bind(this)}\n onChange={this.invokeChange.bind(this)}\n allowContentSelection={this.styles.text.userSelect === 'text'}\n />);\n }\n}\n"],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import BaseInputProps from '@wavemaker/app-rn-runtime/components/input/baseinput
|
|
|
5
5
|
export default class WmTextareaProps extends BaseInputProps {
|
|
6
6
|
constructor() {
|
|
7
7
|
super(...arguments);
|
|
8
|
+
_defineProperty(this, "floatinglabel", void 0);
|
|
8
9
|
_defineProperty(this, "placeholder", 'Place your text');
|
|
9
10
|
}
|
|
10
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseInputProps","WmTextareaProps","constructor","arguments","_defineProperty"],"sources":["textarea.props.ts"],"sourcesContent":["import BaseInputProps from '@wavemaker/app-rn-runtime/components/input/baseinput/baseinput.props';\n\nexport default class WmTextareaProps extends BaseInputProps {\n placeholder: string = 'Place your text';\n}\n"],"mappings":";;;AAAA,OAAOA,cAAc,MAAM,sEAAsE;AAEjG,eAAe,MAAMC,eAAe,SAASD,cAAc,CAAC;EAAAE,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,
|
|
1
|
+
{"version":3,"names":["BaseInputProps","WmTextareaProps","constructor","arguments","_defineProperty"],"sources":["textarea.props.ts"],"sourcesContent":["import BaseInputProps from '@wavemaker/app-rn-runtime/components/input/baseinput/baseinput.props';\n\nexport default class WmTextareaProps extends BaseInputProps {\n floatinglabel?: string;\n placeholder: string = 'Place your text';\n}\n"],"mappings":";;;AAAA,OAAOA,cAAc,MAAM,sEAAsE;AAEjG,eAAe,MAAMC,eAAe,SAASD,cAAc,CAAC;EAAAE,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA;IAAAA,eAAA,sBAEpC,iBAAiB;EAAA;AACzC"}
|
|
@@ -17,6 +17,8 @@ BASE_THEME.registerStyle((themeVariables, addStyle) => {
|
|
|
17
17
|
fontSize: 16,
|
|
18
18
|
textAlignVertical: 'top'
|
|
19
19
|
},
|
|
20
|
+
floatingLabel: {},
|
|
21
|
+
activeFloatingLabel: {},
|
|
20
22
|
invalid: {
|
|
21
23
|
borderBottomColor: 'red'
|
|
22
24
|
},
|
|
@@ -42,5 +44,20 @@ BASE_THEME.registerStyle((themeVariables, addStyle) => {
|
|
|
42
44
|
textAlign: 'right'
|
|
43
45
|
}
|
|
44
46
|
});
|
|
47
|
+
addStyle(DEFAULT_CLASS + '-with-label', '', {
|
|
48
|
+
text: {
|
|
49
|
+
paddingTop: 24
|
|
50
|
+
},
|
|
51
|
+
floatingLabel: {
|
|
52
|
+
position: 'absolute',
|
|
53
|
+
top: 12,
|
|
54
|
+
left: 16,
|
|
55
|
+
fontSize: 14,
|
|
56
|
+
color: themeVariables.floatingLabelColor
|
|
57
|
+
},
|
|
58
|
+
activeFloatingLabel: {
|
|
59
|
+
color: themeVariables.activeFloatingLabelColor
|
|
60
|
+
}
|
|
61
|
+
});
|
|
45
62
|
});
|
|
46
63
|
//# sourceMappingURL=textarea.styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BASE_THEME","defineStyles","DEFAULT_CLASS","registerStyle","themeVariables","addStyle","defaultStyles","root","padding","borderWidth","borderStyle","borderColor","inputBorderColor","backgroundColor","inputBackgroundColor","borderRadius","fontFamily","baseFont","minHeight","text","fontSize","textAlignVertical","invalid","borderBottomColor","placeholderText","color","inputPlaceholderColor","skeleton","width","height","inputDisabledBgColor","textAlign"],"sources":["textarea.styles.ts"],"sourcesContent":["import BASE_THEME, { AllStyle } from '@wavemaker/app-rn-runtime/styles/theme';\nimport { BaseStyles, defineStyles } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { WmSkeletonStyles } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.styles';\n\nexport type WmTextareaStyles = BaseStyles & {\n invalid: AllStyle;\n placeholderText: AllStyle;\n skeleton: WmSkeletonStyles;\n};\n\nexport const DEFAULT_CLASS = 'app-textarea';\nBASE_THEME.registerStyle((themeVariables, addStyle) => {\n const defaultStyles: WmTextareaStyles = defineStyles({\n root: {\n padding:12,\n borderWidth:1,\n borderStyle: 'solid',\n borderColor: themeVariables.inputBorderColor,\n backgroundColor: themeVariables.inputBackgroundColor,\n borderRadius: 6,\n fontFamily: themeVariables.baseFont,\n minHeight: 160,\n },\n text: {\n fontSize: 16,\n textAlignVertical: 'top'\n },\n invalid: {\n borderBottomColor: 'red'\n },\n placeholderText: {\n color: themeVariables.inputPlaceholderColor\n },\n skeleton: {\n root: {\n width: '100%',\n height: 84,\n borderRadius: 4\n }\n } as any as WmSkeletonStyles\n });\n\n addStyle(DEFAULT_CLASS, '', defaultStyles);\n addStyle(DEFAULT_CLASS + '-disabled', '', {\n root : {\n backgroundColor: themeVariables.inputDisabledBgColor\n }\n });\n addStyle(DEFAULT_CLASS + '-rtl', '', {\n root:{\n textAlign: 'right'\n }\n })\n});"],"mappings":"AAAA,OAAOA,UAAU,MAAoB,wCAAwC;AAC7E,SAAqBC,YAAY,QAAQ,+CAA+C;
|
|
1
|
+
{"version":3,"names":["BASE_THEME","defineStyles","DEFAULT_CLASS","registerStyle","themeVariables","addStyle","defaultStyles","root","padding","borderWidth","borderStyle","borderColor","inputBorderColor","backgroundColor","inputBackgroundColor","borderRadius","fontFamily","baseFont","minHeight","text","fontSize","textAlignVertical","floatingLabel","activeFloatingLabel","invalid","borderBottomColor","placeholderText","color","inputPlaceholderColor","skeleton","width","height","inputDisabledBgColor","textAlign","paddingTop","position","top","left","floatingLabelColor","activeFloatingLabelColor"],"sources":["textarea.styles.ts"],"sourcesContent":["import BASE_THEME, { AllStyle } from '@wavemaker/app-rn-runtime/styles/theme';\nimport { BaseStyles, defineStyles } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { WmSkeletonStyles } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.styles';\n\nexport type WmTextareaStyles = BaseStyles & {\n invalid: AllStyle;\n placeholderText: AllStyle;\n floatingLabel: AllStyle;\n activeFloatingLabel: AllStyle;\n skeleton: WmSkeletonStyles;\n};\n\nexport const DEFAULT_CLASS = 'app-textarea';\nBASE_THEME.registerStyle((themeVariables, addStyle) => {\n const defaultStyles: WmTextareaStyles = defineStyles({\n root: {\n padding:12,\n borderWidth:1,\n borderStyle: 'solid',\n borderColor: themeVariables.inputBorderColor,\n backgroundColor: themeVariables.inputBackgroundColor,\n borderRadius: 6,\n fontFamily: themeVariables.baseFont,\n minHeight: 160,\n },\n text: {\n fontSize: 16,\n textAlignVertical: 'top'\n },\n floatingLabel: {},\n activeFloatingLabel: {},\n invalid: {\n borderBottomColor: 'red'\n },\n placeholderText: {\n color: themeVariables.inputPlaceholderColor\n },\n skeleton: {\n root: {\n width: '100%',\n height: 84,\n borderRadius: 4\n }\n } as any as WmSkeletonStyles\n });\n\n addStyle(DEFAULT_CLASS, '', defaultStyles);\n addStyle(DEFAULT_CLASS + '-disabled', '', {\n root : {\n backgroundColor: themeVariables.inputDisabledBgColor\n }\n });\n addStyle(DEFAULT_CLASS + '-rtl', '', {\n root:{\n textAlign: 'right'\n }\n })\n addStyle(DEFAULT_CLASS + '-with-label', '', {\n text:{\n paddingTop: 24\n },\n floatingLabel: {\n position: 'absolute',\n top: 12,\n left: 16,\n fontSize: 14,\n color: themeVariables.floatingLabelColor\n },\n activeFloatingLabel: {\n color: themeVariables.activeFloatingLabelColor\n }\n })\n});"],"mappings":"AAAA,OAAOA,UAAU,MAAoB,wCAAwC;AAC7E,SAAqBC,YAAY,QAAQ,+CAA+C;AAWxF,OAAO,MAAMC,aAAa,GAAG,cAAc;AAC3CF,UAAU,CAACG,aAAa,CAAC,CAACC,cAAc,EAAEC,QAAQ,KAAK;EACrD,MAAMC,aAA+B,GAAGL,YAAY,CAAC;IACjDM,IAAI,EAAE;MACJC,OAAO,EAAC,EAAE;MACVC,WAAW,EAAC,CAAC;MACbC,WAAW,EAAE,OAAO;MACpBC,WAAW,EAAEP,cAAc,CAACQ,gBAAgB;MAC5CC,eAAe,EAAET,cAAc,CAACU,oBAAoB;MACpDC,YAAY,EAAE,CAAC;MACfC,UAAU,EAAEZ,cAAc,CAACa,QAAQ;MACnCC,SAAS,EAAE;IACb,CAAC;IACDC,IAAI,EAAE;MACJC,QAAQ,EAAE,EAAE;MACZC,iBAAiB,EAAE;IACrB,CAAC;IACDC,aAAa,EAAE,CAAC,CAAC;IACjBC,mBAAmB,EAAE,CAAC,CAAC;IACvBC,OAAO,EAAE;MACPC,iBAAiB,EAAE;IACrB,CAAC;IACDC,eAAe,EAAE;MACfC,KAAK,EAAEvB,cAAc,CAACwB;IACxB,CAAC;IACDC,QAAQ,EAAE;MACRtB,IAAI,EAAE;QACJuB,KAAK,EAAE,MAAM;QACbC,MAAM,EAAE,EAAE;QACVhB,YAAY,EAAE;MAChB;IACF;EACJ,CAAC,CAAC;EAEFV,QAAQ,CAACH,aAAa,EAAE,EAAE,EAAEI,aAAa,CAAC;EAC1CD,QAAQ,CAACH,aAAa,GAAG,WAAW,EAAE,EAAE,EAAE;IACtCK,IAAI,EAAG;MACLM,eAAe,EAAET,cAAc,CAAC4B;IAClC;EACJ,CAAC,CAAC;EACF3B,QAAQ,CAACH,aAAa,GAAG,MAAM,EAAE,EAAE,EAAE;IACnCK,IAAI,EAAC;MACH0B,SAAS,EAAE;IACb;EACF,CAAC,CAAC;EACF5B,QAAQ,CAACH,aAAa,GAAG,aAAa,EAAE,EAAE,EAAE;IAC1CiB,IAAI,EAAC;MACHe,UAAU,EAAE;IACd,CAAC;IACDZ,aAAa,EAAE;MACba,QAAQ,EAAE,UAAU;MACpBC,GAAG,EAAE,EAAE;MACPC,IAAI,EAAE,EAAE;MACRjB,QAAQ,EAAE,EAAE;MACZO,KAAK,EAAEvB,cAAc,CAACkC;IACxB,CAAC;IACDf,mBAAmB,EAAE;MACnBI,KAAK,EAAEvB,cAAc,CAACmC;IACxB;EACF,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import * as d3Shape from "d3-shape";
|
|
2
|
+
// import { scale } from "react-native-size-scaling";
|
|
3
|
+
const scale = n => n;
|
|
4
|
+
//** Path Line */
|
|
5
|
+
const line = (width, height) => {
|
|
6
|
+
const path = d3Shape.line().x(d => d.x).y(d => d.y)([{
|
|
7
|
+
x: width / 2,
|
|
8
|
+
y: 0
|
|
9
|
+
}, {
|
|
10
|
+
x: width,
|
|
11
|
+
y: 0
|
|
12
|
+
}, {
|
|
13
|
+
x: width,
|
|
14
|
+
y: height
|
|
15
|
+
}, {
|
|
16
|
+
x: 0,
|
|
17
|
+
y: height
|
|
18
|
+
}, {
|
|
19
|
+
x: 0,
|
|
20
|
+
y: 0
|
|
21
|
+
}, {
|
|
22
|
+
x: width / 2,
|
|
23
|
+
y: 0
|
|
24
|
+
}]);
|
|
25
|
+
return path;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
//** Path Curved*/
|
|
29
|
+
const lineCurvedDown = (iPosition, height, circle) => {
|
|
30
|
+
const position = iPosition;
|
|
31
|
+
const circleWidth = circle + position;
|
|
32
|
+
const trim = (position + circleWidth) / 2;
|
|
33
|
+
const curved = d3Shape.line().x(d => d.x).y(d => d.y).curve(d3Shape.curveBasis)([{
|
|
34
|
+
x: position - scale(20),
|
|
35
|
+
y: 0
|
|
36
|
+
},
|
|
37
|
+
// border center left
|
|
38
|
+
{
|
|
39
|
+
x: position - scale(10),
|
|
40
|
+
y: scale(2)
|
|
41
|
+
}, {
|
|
42
|
+
x: position - scale(2),
|
|
43
|
+
y: scale(10)
|
|
44
|
+
}, {
|
|
45
|
+
x: position,
|
|
46
|
+
y: scale(17)
|
|
47
|
+
}, {
|
|
48
|
+
x: trim - scale(25),
|
|
49
|
+
y: height / 2 + scale(2)
|
|
50
|
+
}, {
|
|
51
|
+
x: trim - scale(10),
|
|
52
|
+
y: height / 2 + scale(10)
|
|
53
|
+
}, {
|
|
54
|
+
x: trim,
|
|
55
|
+
y: height / 2 + scale(10)
|
|
56
|
+
}, {
|
|
57
|
+
x: trim + scale(10),
|
|
58
|
+
y: height / 2 + scale(10)
|
|
59
|
+
}, {
|
|
60
|
+
x: trim + scale(25),
|
|
61
|
+
y: height / 2 + scale(2)
|
|
62
|
+
}, {
|
|
63
|
+
x: circleWidth,
|
|
64
|
+
y: scale(17)
|
|
65
|
+
},
|
|
66
|
+
// border center right
|
|
67
|
+
{
|
|
68
|
+
x: circleWidth + scale(2),
|
|
69
|
+
y: scale(10)
|
|
70
|
+
}, {
|
|
71
|
+
x: circleWidth + scale(10),
|
|
72
|
+
y: 0
|
|
73
|
+
}, {
|
|
74
|
+
x: circleWidth + scale(20),
|
|
75
|
+
y: 0
|
|
76
|
+
}]);
|
|
77
|
+
return curved;
|
|
78
|
+
};
|
|
79
|
+
export const getPathDown = (width, iHeight, centerWidth, clippedTabbarHeight) => {
|
|
80
|
+
const height = scale(iHeight);
|
|
81
|
+
const circleWidth = scale(centerWidth) + scale(16);
|
|
82
|
+
return `${line(width, clippedTabbarHeight)} ${lineCurvedDown(width / 2 - circleWidth / 2, height, circleWidth)}`;
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=curve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["d3Shape","scale","n","line","width","height","path","x","d","y","lineCurvedDown","iPosition","circle","position","circleWidth","trim","curved","curve","curveBasis","getPathDown","iHeight","centerWidth","clippedTabbarHeight"],"sources":["curve.tsx"],"sourcesContent":["import * as d3Shape from \"d3-shape\";\n// import { scale } from \"react-native-size-scaling\";\nconst scale = (n: number) => n;\n\ninterface LineDatum {\n x: number;\n y: number;\n missing?: boolean;\n}\n\n//** Path Line */\nconst line = (width : number, height: number) => {\n const path: any = d3Shape\n .line<LineDatum>()\n .x((d) => d.x)\n .y((d) => d.y)([\n { x: width / 2, y: 0 },\n { x: width, y: 0 },\n { x: width, y: height },\n { x: 0, y: height},\n { x: 0, y: 0 },\n { x: width / 2, y: 0 },\n ]);\n \nreturn path;\n};\n\n//** Path Curved*/\nconst lineCurvedDown = (iPosition: number, height: number, circle: number) => {\n const position = iPosition;\n const circleWidth = circle + position;\n const trim = (position + circleWidth) / 2;\n \n const curved: any = d3Shape\n .line<LineDatum>()\n .x((d) => d.x)\n .y((d) => d.y)\n .curve(d3Shape.curveBasis)([\n { x: position - scale(20), y: 0 }, // border center left\n { x: position - scale(10), y: scale(2) },\n { x: position - scale(2), y: scale(10) },\n { x: position, y: scale(17) },\n \n { x: trim - scale(25), y: height / 2 + scale(2) },\n { x: trim - scale(10), y: height / 2 + scale(10) },\n { x: trim, y: height / 2 + scale(10) },\n { x: trim + scale(10), y: height / 2 + scale(10) },\n { x: trim + scale(25), y: height / 2 + scale(2) },\n \n { x: circleWidth, y: scale(17) }, // border center right\n { x: circleWidth + scale(2), y: scale(10) },\n { x: circleWidth + scale(10), y: 0 },\n { x: circleWidth + scale(20), y: 0 },\n ]);\n return curved;\n};\n\nexport const getPathDown = (width: number, iHeight: number, centerWidth: number, clippedTabbarHeight: number) => {\n const height = scale(iHeight);\n const circleWidth = scale(centerWidth) + scale(16);\n return `${line(width, clippedTabbarHeight)} ${lineCurvedDown(\n width / 2 - circleWidth / 2,\n height,\n circleWidth\n )}`;\n};\n"],"mappings":"AAAA,OAAO,KAAKA,OAAO,MAAM,UAAU;AACnC;AACA,MAAMC,KAAK,GAAIC,CAAS,IAAKA,CAAC;AAQ9B;AACA,MAAMC,IAAI,GAAGA,CAACC,KAAc,EAAEC,MAAc,KAAK;EAC/C,MAAMC,IAAS,GAAGN,OAAO,CACxBG,IAAI,CAAY,CAAC,CACjBI,CAAC,CAAEC,CAAC,IAAKA,CAAC,CAACD,CAAC,CAAC,CACbE,CAAC,CAAED,CAAC,IAAKA,CAAC,CAACC,CAAC,CAAC,CAAC,CACb;IAAEF,CAAC,EAAEH,KAAK,GAAG,CAAC;IAAEK,CAAC,EAAE;EAAE,CAAC,EACtB;IAAEF,CAAC,EAAEH,KAAK;IAAEK,CAAC,EAAE;EAAE,CAAC,EAClB;IAAEF,CAAC,EAAEH,KAAK;IAAEK,CAAC,EAAEJ;EAAO,CAAC,EACvB;IAAEE,CAAC,EAAE,CAAC;IAAEE,CAAC,EAAEJ;EAAM,CAAC,EAClB;IAAEE,CAAC,EAAE,CAAC;IAAEE,CAAC,EAAE;EAAE,CAAC,EACd;IAAEF,CAAC,EAAEH,KAAK,GAAG,CAAC;IAAEK,CAAC,EAAE;EAAE,CAAC,CACvB,CAAC;EAEJ,OAAOH,IAAI;AACX,CAAC;;AAED;AACA,MAAMI,cAAc,GAAGA,CAACC,SAAiB,EAAEN,MAAc,EAAEO,MAAc,KAAK;EAC5E,MAAMC,QAAQ,GAAGF,SAAS;EAC1B,MAAMG,WAAW,GAAGF,MAAM,GAAGC,QAAQ;EACrC,MAAME,IAAI,GAAG,CAACF,QAAQ,GAAGC,WAAW,IAAI,CAAC;EAEzC,MAAME,MAAW,GAAGhB,OAAO,CACxBG,IAAI,CAAY,CAAC,CACjBI,CAAC,CAAEC,CAAC,IAAKA,CAAC,CAACD,CAAC,CAAC,CACbE,CAAC,CAAED,CAAC,IAAKA,CAAC,CAACC,CAAC,CAAC,CACbQ,KAAK,CAACjB,OAAO,CAACkB,UAAU,CAAC,CAAC,CACzB;IAAEX,CAAC,EAAEM,QAAQ,GAAGZ,KAAK,CAAC,EAAE,CAAC;IAAEQ,CAAC,EAAE;EAAE,CAAC;EAAE;EACnC;IAAEF,CAAC,EAAEM,QAAQ,GAAGZ,KAAK,CAAC,EAAE,CAAC;IAAEQ,CAAC,EAAER,KAAK,CAAC,CAAC;EAAE,CAAC,EACxC;IAAEM,CAAC,EAAEM,QAAQ,GAAGZ,KAAK,CAAC,CAAC,CAAC;IAAEQ,CAAC,EAAER,KAAK,CAAC,EAAE;EAAE,CAAC,EACxC;IAAEM,CAAC,EAAEM,QAAQ;IAAEJ,CAAC,EAAER,KAAK,CAAC,EAAE;EAAE,CAAC,EAE7B;IAAEM,CAAC,EAAEQ,IAAI,GAAGd,KAAK,CAAC,EAAE,CAAC;IAAEQ,CAAC,EAAEJ,MAAM,GAAG,CAAC,GAAGJ,KAAK,CAAC,CAAC;EAAE,CAAC,EACjD;IAAEM,CAAC,EAAEQ,IAAI,GAAGd,KAAK,CAAC,EAAE,CAAC;IAAEQ,CAAC,EAAEJ,MAAM,GAAG,CAAC,GAAGJ,KAAK,CAAC,EAAE;EAAE,CAAC,EAClD;IAAEM,CAAC,EAAEQ,IAAI;IAAEN,CAAC,EAAEJ,MAAM,GAAG,CAAC,GAAGJ,KAAK,CAAC,EAAE;EAAE,CAAC,EACtC;IAAEM,CAAC,EAAEQ,IAAI,GAAGd,KAAK,CAAC,EAAE,CAAC;IAAEQ,CAAC,EAAEJ,MAAM,GAAG,CAAC,GAAGJ,KAAK,CAAC,EAAE;EAAE,CAAC,EAClD;IAAEM,CAAC,EAAEQ,IAAI,GAAGd,KAAK,CAAC,EAAE,CAAC;IAAEQ,CAAC,EAAEJ,MAAM,GAAG,CAAC,GAAGJ,KAAK,CAAC,CAAC;EAAE,CAAC,EAEjD;IAAEM,CAAC,EAAEO,WAAW;IAAEL,CAAC,EAAER,KAAK,CAAC,EAAE;EAAE,CAAC;EAAE;EAClC;IAAEM,CAAC,EAAEO,WAAW,GAAGb,KAAK,CAAC,CAAC,CAAC;IAAEQ,CAAC,EAAER,KAAK,CAAC,EAAE;EAAE,CAAC,EAC3C;IAAEM,CAAC,EAAEO,WAAW,GAAGb,KAAK,CAAC,EAAE,CAAC;IAAEQ,CAAC,EAAE;EAAE,CAAC,EACpC;IAAEF,CAAC,EAAEO,WAAW,GAAGb,KAAK,CAAC,EAAE,CAAC;IAAEQ,CAAC,EAAE;EAAE,CAAC,CACrC,CAAC;EACJ,OAAOO,MAAM;AACf,CAAC;AAED,OAAO,MAAMG,WAAW,GAAGA,CAACf,KAAa,EAAEgB,OAAe,EAAEC,WAAmB,EAAEC,mBAA2B,KAAK;EAC/G,MAAMjB,MAAM,GAAGJ,KAAK,CAACmB,OAAO,CAAC;EAC7B,MAAMN,WAAW,GAAGb,KAAK,CAACoB,WAAW,CAAC,GAAGpB,KAAK,CAAC,EAAE,CAAC;EAClD,OAAQ,GAAEE,IAAI,CAACC,KAAK,EAAEkB,mBAAmB,CAAE,IAAGZ,cAAc,CAC1DN,KAAK,GAAG,CAAC,GAAGU,WAAW,GAAG,CAAC,EAC3BT,MAAM,EACNS,WACF,CAAE,EAAC;AACL,CAAC"}
|
|
@@ -3,7 +3,7 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
|
|
|
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
5
|
import React from 'react';
|
|
6
|
-
import { Text, View, TouchableOpacity } from 'react-native';
|
|
6
|
+
import { Text, View, TouchableOpacity, Dimensions } from 'react-native';
|
|
7
7
|
import { ThemeProvider } from '@wavemaker/app-rn-runtime/styles/theme';
|
|
8
8
|
import { ModalConsumer } from '@wavemaker/app-rn-runtime/core/modal.service';
|
|
9
9
|
import WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';
|
|
@@ -11,32 +11,47 @@ import { NavigationServiceConsumer } from '@wavemaker/app-rn-runtime/core/naviga
|
|
|
11
11
|
import { BaseNavComponent, BaseNavState } from '@wavemaker/app-rn-runtime/components/navigation/basenav/basenav.component';
|
|
12
12
|
import WmTabbarProps from './tabbar.props';
|
|
13
13
|
import { DEFAULT_CLASS } from './tabbar.styles';
|
|
14
|
+
import Svg, { Path } from 'react-native-svg';
|
|
15
|
+
import { getPathDown } from './curve';
|
|
16
|
+
// import { scale } from 'react-native-size-scaling';
|
|
17
|
+
import ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';
|
|
18
|
+
const scale = n => n;
|
|
14
19
|
class WmTabbarState extends BaseNavState {
|
|
15
20
|
constructor() {
|
|
16
21
|
super(...arguments);
|
|
17
22
|
_defineProperty(this, "showMore", false);
|
|
18
23
|
_defineProperty(this, "modalOptions", {});
|
|
24
|
+
_defineProperty(this, "dataItems", []);
|
|
19
25
|
}
|
|
20
26
|
}
|
|
21
27
|
export default class WmTabbar extends BaseNavComponent {
|
|
22
28
|
constructor(props) {
|
|
23
29
|
super(props, DEFAULT_CLASS, new WmTabbarProps(), new WmTabbarState());
|
|
24
30
|
_defineProperty(this, "tabbarHeight", 0);
|
|
31
|
+
_defineProperty(this, "maxWidth", Dimensions.get("window").width);
|
|
32
|
+
_defineProperty(this, "returnpathDown", void 0);
|
|
25
33
|
}
|
|
26
34
|
renderTabItem(item, testId, props, onSelect) {
|
|
35
|
+
let floating = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
27
36
|
const isActive = props.isActive && props.isActive(item);
|
|
28
37
|
const getDisplayLabel = this.props.getDisplayExpression || (label => label);
|
|
29
|
-
|
|
38
|
+
let increasedGap = Number(testId) === (item === null || item === void 0 ? void 0 : item.indexBeforeMid) && this.state.dataItems.length % 2 != 0 && (props.classname || '').indexOf('clipped-tabbar') >= 0 ? [this.styles.tabItem, {
|
|
39
|
+
paddingRight: 70
|
|
40
|
+
}] : [this.styles.tabItem];
|
|
41
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
42
|
+
style: [increasedGap, floating ? this.styles.centerHubItem : {}],
|
|
43
|
+
key: `${item.label}_${testId}`
|
|
44
|
+
}, /*#__PURE__*/React.createElement(TouchableOpacity, _extends({}, this.getTestPropsForAction('item' + testId), {
|
|
30
45
|
onPress: () => onSelect && onSelect(),
|
|
31
46
|
key: item.key
|
|
32
47
|
}), /*#__PURE__*/React.createElement(View, {
|
|
33
|
-
style: [
|
|
48
|
+
style: [isActive && !floating ? this.styles.activeTabItem : {}]
|
|
34
49
|
}, /*#__PURE__*/React.createElement(WmIcon, {
|
|
35
|
-
styles: this.theme.mergeStyle({}, this.styles.tabIcon, isActive ? this.styles.activeTabIcon : {}),
|
|
50
|
+
styles: this.theme.mergeStyle({}, this.styles.tabIcon, floating ? this.styles.centerHubIcon : {}, isActive && !floating ? this.styles.activeTabIcon : {}),
|
|
36
51
|
iconclass: item.icon
|
|
37
52
|
}), /*#__PURE__*/React.createElement(Text, {
|
|
38
|
-
style: [this.styles.tabLabel, isActive ? this.styles.activeTabLabel : {}]
|
|
39
|
-
}, getDisplayLabel(item.label))));
|
|
53
|
+
style: [this.styles.tabLabel, floating ? this.styles.centerHubLabel : {}, isActive && !floating ? this.styles.activeTabLabel : {}]
|
|
54
|
+
}, getDisplayLabel(item.label)))));
|
|
40
55
|
}
|
|
41
56
|
onItemSelect(item, navigationService) {
|
|
42
57
|
item.link && navigationService.openUrl(item.link);
|
|
@@ -54,6 +69,14 @@ export default class WmTabbar extends BaseNavComponent {
|
|
|
54
69
|
renderWidget(props) {
|
|
55
70
|
let max = 5;
|
|
56
71
|
const tabItems = this.state.dataItems;
|
|
72
|
+
const tabItemsLength = tabItems.length;
|
|
73
|
+
const isClippedTabbar = (props.classname || '').indexOf('clipped-tabbar') >= 0 && tabItemsLength % 2 !== 0;
|
|
74
|
+
if (tabItemsLength % 2 !== 0) {
|
|
75
|
+
const middleIndex = Math.floor(tabItemsLength / 2);
|
|
76
|
+
tabItems[middleIndex]['floating'] = true;
|
|
77
|
+
tabItems[middleIndex - 1]['indexBeforeMid'] = middleIndex - 1;
|
|
78
|
+
}
|
|
79
|
+
this.returnpathDown = getPathDown(this.maxWidth, 65, 60, this.styles.root.height);
|
|
57
80
|
const moreItems = [];
|
|
58
81
|
if (tabItems.length > max) {
|
|
59
82
|
const moreItemsCount = Math.ceil((tabItems.length + 1 - max) / max) * max;
|
|
@@ -71,7 +94,18 @@ export default class WmTabbar extends BaseNavComponent {
|
|
|
71
94
|
}
|
|
72
95
|
return /*#__PURE__*/React.createElement(NavigationServiceConsumer, null, navigationService => /*#__PURE__*/React.createElement(View, {
|
|
73
96
|
style: this.styles.root
|
|
74
|
-
}, /*#__PURE__*/React.createElement(
|
|
97
|
+
}, isClippedTabbar ? /*#__PURE__*/React.createElement(Svg, {
|
|
98
|
+
width: this.maxWidth,
|
|
99
|
+
height: scale(this.styles.root.height),
|
|
100
|
+
style: {
|
|
101
|
+
zIndex: -1,
|
|
102
|
+
position: 'absolute',
|
|
103
|
+
backgroundColor: ThemeVariables.INSTANCE.transparent
|
|
104
|
+
}
|
|
105
|
+
}, /*#__PURE__*/React.createElement(Path, {
|
|
106
|
+
fill: ThemeVariables.INSTANCE.tabbarBackgroundColor,
|
|
107
|
+
d: this.returnpathDown
|
|
108
|
+
})) : /*#__PURE__*/React.createElement(React.Fragment, null), /*#__PURE__*/React.createElement(ModalConsumer, null, modalService => {
|
|
75
109
|
if (this.state.showMore) {
|
|
76
110
|
modalService.showModal(this.prepareModalOptions( /*#__PURE__*/React.createElement(ThemeProvider, {
|
|
77
111
|
value: this.theme
|
|
@@ -80,7 +114,7 @@ export default class WmTabbar extends BaseNavComponent {
|
|
|
80
114
|
}, moreItems.map((a, i) => /*#__PURE__*/React.createElement(View, {
|
|
81
115
|
key: i,
|
|
82
116
|
style: this.styles.moreMenuRow
|
|
83
|
-
}, a.map(item => this.renderTabItem(item, i + '', props, () => this.onItemSelect(item, navigationService)))))))));
|
|
117
|
+
}, a.map((item, index) => this.renderTabItem(item, i + '', props, () => this.onItemSelect(item, navigationService)))))))));
|
|
84
118
|
} else {
|
|
85
119
|
modalService.hideModal(this.state.modalOptions);
|
|
86
120
|
}
|
|
@@ -90,7 +124,7 @@ export default class WmTabbar extends BaseNavComponent {
|
|
|
90
124
|
onLayout: e => {
|
|
91
125
|
this.tabbarHeight = e.nativeEvent.layout.height;
|
|
92
126
|
}
|
|
93
|
-
}, tabItems.filter((item, i) => i < max).map((item, i) => this.renderTabItem(item, i + '', props, () => this.onItemSelect(item, navigationService))), tabItems.length > max && this.renderTabItem({
|
|
127
|
+
}, tabItems.filter((item, i) => i < max).map((item, i) => this.renderTabItem(item, i + '', props, () => this.onItemSelect(item, navigationService), item.floating)), tabItems.length > max && this.renderTabItem({
|
|
94
128
|
label: props.morebuttonlabel,
|
|
95
129
|
icon: props.morebuttoniconclass
|
|
96
130
|
}, 6666 + '', props, () => {
|