@wavemaker/app-rn-runtime 11.11.4-rc.6173 → 11.11.5-rc.6185
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 +32 -17
- package/components/advanced/carousel/carousel.component.js.map +1 -1
- package/components/advanced/carousel/carousel.props.js +1 -0
- package/components/advanced/carousel/carousel.props.js.map +1 -1
- package/components/advanced/network-info-toaster/network-info-toaster.component.js +4 -0
- package/components/advanced/network-info-toaster/network-info-toaster.component.js.map +1 -1
- package/components/basic/bottomsheet/bottomsheet.component.js +119 -71
- package/components/basic/bottomsheet/bottomsheet.component.js.map +1 -1
- package/components/basic/bottomsheet/bottomsheet.props.js +6 -4
- package/components/basic/bottomsheet/bottomsheet.props.js.map +1 -1
- package/components/basic/lottie/lottie.component.js +1 -1
- package/components/basic/lottie/lottie.component.js.map +1 -1
- package/components/basic/picture/picture.component.js +1 -1
- package/components/basic/picture/picture.component.js.map +1 -1
- package/components/basic/spinner/spinner.component.js +18 -10
- package/components/basic/spinner/spinner.component.js.map +1 -1
- package/components/chart/area-chart/area-chart.component.js +5 -4
- package/components/chart/area-chart/area-chart.component.js.map +1 -1
- package/components/chart/bar-chart/bar-chart.component.js +5 -4
- package/components/chart/bar-chart/bar-chart.component.js.map +1 -1
- package/components/chart/pie-chart/pie-chart.component.js +5 -4
- package/components/chart/pie-chart/pie-chart.component.js.map +1 -1
- package/components/container/panel/panel.component.js +2 -2
- package/components/container/panel/panel.component.js.map +1 -1
- package/components/data/form/form-field/form-field.component.js +1 -1
- package/components/data/form/form-field/form-field.component.js.map +1 -1
- package/components/data/form/form.component.js +1 -1
- package/components/data/form/form.component.js.map +1 -1
- package/components/data/list/list.component.js +57 -45
- package/components/data/list/list.component.js.map +1 -1
- package/components/data/list/list.props.js +1 -0
- package/components/data/list/list.props.js.map +1 -1
- package/components/input/basedataset/basedataset.component.js +5 -2
- package/components/input/basedataset/basedataset.component.js.map +1 -1
- package/components/input/basenumber/basenumber.component.js +4 -2
- package/components/input/basenumber/basenumber.component.js.map +1 -1
- package/components/input/epoch/base-datetime.component.js +8 -4
- package/components/input/epoch/base-datetime.component.js.map +1 -1
- package/components/input/rating/rating.component.js +4 -2
- package/components/input/rating/rating.component.js.map +1 -1
- package/components/input/slider/slider.component.js +28 -9
- package/components/input/slider/slider.component.js.map +1 -1
- package/components/input/text/text.props.js +2 -0
- package/components/input/text/text.props.js.map +1 -1
- package/components/navigation/appnavbar/appnavbar.component.js +2 -3
- package/components/navigation/appnavbar/appnavbar.component.js.map +1 -1
- package/components/page/left-panel/left-panel.component.js +2 -3
- package/components/page/left-panel/left-panel.component.js.map +1 -1
- package/components/page/page-content/page-content.component.js +8 -0
- package/components/page/page-content/page-content.component.js.map +1 -1
- package/components/page/page.component.js +7 -6
- package/components/page/page.component.js.map +1 -1
- package/components/page/page.props.js +1 -0
- package/components/page/page.props.js.map +1 -1
- package/components/page/tabbar/tabbar.component.js +5 -5
- package/components/page/tabbar/tabbar.component.js.map +1 -1
- package/core/AppConfig.js.map +1 -1
- package/core/base.component.js +1 -1
- package/core/base.component.js.map +1 -1
- package/core/ui-preferences.context.js +4 -1
- package/core/ui-preferences.context.js.map +1 -1
- package/core/utils.js +26 -0
- package/core/utils.js.map +1 -1
- package/npm-shrinkwrap.json +116 -131
- package/package-lock.json +116 -131
- package/package.json +2 -2
- package/runtime/App.js +44 -18
- package/runtime/App.js.map +1 -1
- package/runtime/services/app-i18n.service.js +7 -0
- package/runtime/services/app-i18n.service.js.map +1 -1
@@ -13,7 +13,7 @@ import { DEFAULT_CLASS } from './datetime/datetime.styles';
|
|
13
13
|
import WebDatePicker from './date-picker.component';
|
14
14
|
import { isNumber, isString } from 'lodash-es';
|
15
15
|
import { ModalConsumer } from '@wavemaker/app-rn-runtime/core/modal.service';
|
16
|
-
import { isDateFormatAsPerPattern, validateField } from '@wavemaker/app-rn-runtime/core/utils';
|
16
|
+
import { isDateFormatAsPerPattern, validateField, splitBorderColorInPlace } from '@wavemaker/app-rn-runtime/core/utils';
|
17
17
|
import { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility';
|
18
18
|
import { FloatingLabel } from '@wavemaker/app-rn-runtime/core/components/floatinglabel.component';
|
19
19
|
import AppI18nService from '@wavemaker/app-rn-runtime/runtime/services/app-i18n.service';
|
@@ -176,7 +176,6 @@ export default class BaseDatetime extends BaseComponent {
|
|
176
176
|
}
|
177
177
|
onDateChange($event, date) {
|
178
178
|
const prevDate = this.format(this.state.dateValue, this.momentPattern(this.state.props.outputformat)) || undefined;
|
179
|
-
this.validate(date);
|
180
179
|
this.modes.shift();
|
181
180
|
const newDate = this.format(date, this.momentPattern(this.state.props.outputformat));
|
182
181
|
this.updateState({
|
@@ -186,7 +185,10 @@ export default class BaseDatetime extends BaseComponent {
|
|
186
185
|
datavalue: newDate,
|
187
186
|
timestamp: this.format(date, 'timestamp')
|
188
187
|
}
|
189
|
-
}, () =>
|
188
|
+
}, () => {
|
189
|
+
this.validate(date);
|
190
|
+
this.invokeEventCallback('onChange', [null, this, newDate, prevDate]);
|
191
|
+
});
|
190
192
|
}
|
191
193
|
onBlur() {
|
192
194
|
if (Platform.OS === 'web') {
|
@@ -377,8 +379,10 @@ export default class BaseDatetime extends BaseComponent {
|
|
377
379
|
var _props$floatinglabel;
|
378
380
|
const is12HourFormat = (props === null || props === void 0 ? void 0 : props.datepattern) && /hh:mm(:ss|:sss)? a/.test(props.datepattern);
|
379
381
|
const is24Hour = is12HourFormat ? false : props.is24hour;
|
382
|
+
let rootStyles = this.styles.root;
|
383
|
+
let updatedRootStyles = splitBorderColorInPlace(rootStyles);
|
380
384
|
return this.addTouchableOpacity(props, /*#__PURE__*/React.createElement(View, {
|
381
|
-
style: [
|
385
|
+
style: [updatedRootStyles, this.state.isValid ? {} : this.styles.invalid, this.state.isFocused ? this.styles.focused : null]
|
382
386
|
}, this._background, props.floatinglabel ? /*#__PURE__*/React.createElement(FloatingLabel, {
|
383
387
|
moveUp: !!(props.datavalue || this.state.isFocused),
|
384
388
|
label: (_props$floatinglabel = props.floatinglabel) !== null && _props$floatinglabel !== void 0 ? _props$floatinglabel : props.placeholder,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["React","View","Text","Platform","TouchableOpacity","moment","DateTimePicker","BaseComponent","BaseComponentState","WmIcon","WmDatetimeProps","DEFAULT_CLASS","WebDatePicker","isNumber","isString","ModalConsumer","isDateFormatAsPerPattern","validateField","AccessibilityWidgetType","getAccessibilityProps","FloatingLabel","AppI18nService","WmButton","WmDatePickerModal","WmTimePickerModal","createSkeleton","BaseDatetimeState","constructor","args","_defineProperty","CURRENT_DATE","CURRENT_TIME","BaseDatetime","props","defaultClass","defaultProps","defaultState","format","date","_this$props$locale","Date","getTime","locale","parse","parseInt","toDate","monitorAndUpdateCurrentTime","stopCurrentTimeMonitor","timerId","setInterval","updateState","readonly","datavalue","now","state","clearInterval","convertTimezone","timezone","getTimezone","parsedDateString","toLocaleString","timeZone","rtlSanityCheck","text","replace","momentPattern","pattern","removeSpecialMarks","replaceAll","onPropertyChange","name","$new","$old","prevDatavalue","outputformat","datepattern","console","log","toDateString","dateValue","displayValue","onFieldChange","minDateVal","mindate","isMinMatchingPattern","minDatePatternFormatted","formattedMinDate","maxDateVal","maxdate","isMaxMatchingPattern","maxDatePatternFormatted","formattedMaxDate","disabled","onDateChange","$event","prevDate","undefined","validate","modes","shift","newDate","isFocused","showDatePicker","length","timestamp","invokeEventCallback","onBlur","OS","setTimeout","triggerValidation","onFocus","mode","showDatePickerModal","showTimePickerModal","value","validationObj","setState","isValid","errorType","componentWillUnmount","renderWebWidget","createElement","onDismiss","minimumDate","maximumDate","renderNativeWidget","_extends","DATE","is24Hour","display","onChange","event","dateSelected","set","getMonth","getFullYear","getDate","renderNativeIOSWidget","date_change","style","styles","dialog","actionWrapper","selectBtn","caption","onTap","cancelBtn","renderNativeIOSWidgetWithModal","modalService","nativeModalOptions","content","Fragment","hideModal","centered","onClose","showModal","renderNativeWidgetWithModal","addTouchableOpacity","children","handleLayout","_children$props","hint","accessibilityProps","accessible","accessibilityHint","getTestPropsForAction","onLayout","onPress","getIcon","renderSkeleton","floatinglabel","placeholder","container","root","theme","skeleton","icon","renderWidget","_props$floatinglabel","is12HourFormat","test","is24hour","invalid","focused","_background","moveUp","label","floatingLabel","activeFloatingLabel","placeholderText","getTestPropsForLabel","flex","isRTL","flexDirection","textAlign","iconclass","color","clearIcon","id","getTestId","accessibilitylabel","clearBtnClicked","calendarIcon","iswheelpicker","isVisible","minDate","maxDate","selectedDate","onSelect","onCancel","dateheadertitle","dateconfirmationtitle","datecanceltitle","selectedDateTime","time","timeheadertitle","timeconfirmationtitle","timecanceltitle"],"sources":["base-datetime.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Text, Platform, TouchableOpacity, ViewStyle, DimensionValue, LayoutChangeEvent } from 'react-native';\nimport moment from 'moment';\nimport DateTimePicker, { DateTimePickerEvent } from '@react-native-community/datetimepicker';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\n\nimport WmDatetimeProps from './datetime/datetime.props';\nimport { DEFAULT_CLASS, WmDatetimeStyles } from './datetime/datetime.styles';\nimport WebDatePicker from './date-picker.component';\nimport { isEqual, isNumber, isString } from 'lodash-es';\nimport { ModalConsumer, ModalOptions, ModalService } from '@wavemaker/app-rn-runtime/core/modal.service';\nimport { isDateFormatAsPerPattern, validateField } from '@wavemaker/app-rn-runtime/core/utils';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility'; \nimport { FloatingLabel } from '@wavemaker/app-rn-runtime/core/components/floatinglabel.component';\nimport AppI18nService from '@wavemaker/app-rn-runtime/runtime/services/app-i18n.service';\nimport WmButton from '@wavemaker/app-rn-runtime/components/basic/button/button.component';\nimport WmDatePickerModal from './wheelpickermodal/date/date-picker-modal.component';\nimport WmTimePickerModal from './wheelpickermodal/time/time-picker-modal.component';\nimport { createSkeleton } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.component';\nimport { WmSkeletonStyles } from '../../basic/skeleton/skeleton.styles';\n\nexport class BaseDatetimeState extends BaseComponentState<WmDatetimeProps> {\n showDatePicker = false;\n showDatePickerModal = false;\n showTimePickerModal = false;\n dateValue: Date = null as any;\n displayValue: string = null as any;\n isFocused = false;\n timerId: NodeJS.Timer = null as any;\n isValid: boolean = true;\n errorType = '';\n}\n\nconst CURRENT_DATE = 'CURRENT_DATE';\nconst CURRENT_TIME = 'CURRENT_TIME';\n\nexport default abstract class BaseDatetime extends BaseComponent<WmDatetimeProps, BaseDatetimeState, WmDatetimeStyles> {\n clearBtnClicked = false;\n modes = [] as string[];\n nativeModalOptions: ModalOptions = {} as any;\n prevDatavalue: any;\n\n constructor(props: WmDatetimeProps, defaultClass = DEFAULT_CLASS, defaultProps = new WmDatetimeProps(), defaultState= new BaseDatetimeState()) {\n super(props, defaultClass, defaultProps, defaultState);\n }\n\n format(date: Date | number | undefined, format: string) {\n if (format === 'timestamp') {\n return date instanceof Date ? '' + date.getTime() : date;\n }\n \n // Convert moment formatting with respect to the current local.\n moment.locale(this.props.locale ?? 'en');\n return date && moment(date).format(format);\n }\n\n parse(date: string | number, format: string) {\n if (format === 'timestamp') {\n if (isString(date)) {\n return new Date(parseInt(date));\n }\n if (isNumber(date)) {\n return new Date(date);\n }\n }\n return date && moment(date, format).toDate();\n }\n\n private monitorAndUpdateCurrentTime() {\n this.stopCurrentTimeMonitor();\n const timerId = setInterval(() => {\n this.updateState({\n props: {\n readonly: true,\n datavalue: Date.now()\n },\n timerId: timerId\n } as any as BaseDatetimeState);\n }, 1000);\n }\n\n private stopCurrentTimeMonitor() {\n if (this.state.timerId) {\n clearInterval(this.state.timerId as any);\n }\n }\n\n convertTimezone(date: any){ \n const timezone = AppI18nService.getTimezone();\n if (timezone) {\n const parsedDateString = new Date(date).toLocaleString(this.props.locale ? this.props.locale : 'en-us', { timeZone: timezone });\n return moment(parsedDateString, 'M/D/YYYY, h:mm:ss A');\n }\n else {\n return null;\n }\n }\n\n rtlSanityCheck(text: any) {\n return text?.replace(/[\\u200E\\u200F\\u202B\\u202C]/g, '');\n }\n \n momentPattern(pattern : String) {\n const removeSpecialMarks = this.rtlSanityCheck(pattern);\n return removeSpecialMarks?.replaceAll('y', 'Y').replaceAll('d', 'D');\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n super.onPropertyChange(name, $new, $old);\n const props = this.state.props;\n switch(name) {\n //@ts-ignore\n case 'datavalue':\n this.prevDatavalue = $old;\n if (props.datavalue === CURRENT_TIME) {\n this.monitorAndUpdateCurrentTime();\n }\n case 'datepattern':\n case 'outputformat':\n if (props.datavalue && this.momentPattern(props.outputformat as String) && this.momentPattern(props.datepattern as String)) {\n let datavalue: any = props.datavalue;\n if (datavalue === CURRENT_DATE || datavalue === CURRENT_TIME) {\n datavalue = new Date() as any;\n }\n const date = isString(datavalue) ? this.parse(datavalue as string, this.momentPattern(props.outputformat as String)) : datavalue;\n datavalue = this.convertTimezone(datavalue);\n\n console.log(\"===== output value ======\", date.toDateString(), datavalue);\n\n this.updateState({\n dateValue : date,\n displayValue: this.format(datavalue?datavalue:date as any, this.momentPattern(props.datepattern as String))\n } as BaseDatetimeState);\n } else {\n this.updateState({\n dateValue : null as any,\n displayValue: null as any\n } as BaseDatetimeState);\n }\n this.props.onFieldChange && this.props.onFieldChange('datavalue', props.datavalue, this.prevDatavalue);\n break;\n case 'mindate':\n if (isString($new)) {\n const minDateVal = ($new === CURRENT_DATE || $new === CURRENT_TIME) ? new Date() : props.mindate;\n // * check if supplied mindate is as per datepattern\n const isMinMatchingPattern = minDateVal\n ? isDateFormatAsPerPattern(this.momentPattern(props.datepattern as String), minDateVal)\n : false;\n // * min date formatted as per datepattern\n const minDatePatternFormatted = minDateVal && isMinMatchingPattern ? moment(\n moment(\n minDateVal,\n this.momentPattern(props.datepattern as String)\n ).format('YYYY-MM-DD')\n ) : null;\n // * min date formatted as per ISO, if mindate supplied is not as per datepattern\n const formattedMinDate = minDatePatternFormatted && isMinMatchingPattern\n ? minDatePatternFormatted.toDate()\n : moment(minDateVal).toDate();\n this.updateState({\n props: {\n mindate: formattedMinDate\n }\n } as BaseDatetimeState);\n }\n break;\n case 'maxdate':\n if (isString($new)) {\n const maxDateVal = ($new === CURRENT_DATE || $new === CURRENT_TIME) ? new Date() : props.maxdate;\n // * check if supplied maxdate is as per datepattern\n const isMaxMatchingPattern = maxDateVal\n ? isDateFormatAsPerPattern(this.momentPattern(props.datepattern as String), maxDateVal)\n : false;\n // * max date formatted as per datepattern\n const maxDatePatternFormatted = maxDateVal && isMaxMatchingPattern ? moment(\n moment(\n maxDateVal,\n this.momentPattern(props.datepattern as String)\n ).format('YYYY-MM-DD')\n ) : null;\n // * max date formatted as per ISO, if maxdate supplied is not as per datepattern\n const formattedMaxDate = maxDatePatternFormatted && isMaxMatchingPattern\n ? maxDatePatternFormatted.toDate()\n : moment(maxDateVal).toDate();\n\n this.updateState({\n props: {\n maxdate: formattedMaxDate,\n },\n } as BaseDatetimeState);\n }\n break;\n case 'readonly':\n this.updateState({\n props: {\n disabled: $new\n }\n } as BaseDatetimeState)\n break;\n }\n }\n\n onDateChange($event: DateTimePickerEvent, date?: Date) {\n const prevDate = this.format(this.state.dateValue, this.momentPattern(this.state.props.outputformat as String) as string) || undefined;\n this.validate(date);\n this.modes.shift();\n const newDate = this.format(date, this.momentPattern(this.state.props.outputformat as String) as string)\n this.updateState({\n isFocused: false,\n showDatePicker: !!this.modes.length,\n props: {\n datavalue: newDate,\n timestamp: this.format(date, 'timestamp')\n }\n } as BaseDatetimeState, () => this.invokeEventCallback('onChange', [null, this, newDate, prevDate]));\n }\n\n onBlur() {\n if (Platform.OS === 'web') {\n this.validate(this.state.props.datavalue);\n setTimeout(() => this.props.triggerValidation && this.props.triggerValidation());\n }\n this.invokeEventCallback('onBlur', [null, this]);\n }\n\n onFocus() {\n if (!this.state.props.readonly) {\n if (Platform.OS !== 'web' && this.state.props.mode === 'datetime') {\n this.modes = ['date', 'time'];\n } else {\n this.modes = [this.state.props.mode];\n }\n this.updateState({showDatePicker: true, isFocused: true} as BaseDatetimeState);\n if (this.state.props.mode === 'date') {\n this.updateState({showDatePickerModal: true} as BaseDatetimeState);\n }\n if (this.state.props.mode === 'time') {\n this.updateState({showTimePickerModal: true} as BaseDatetimeState);\n }\n if (this.state.props.mode === 'datetime') {\n this.updateState({showDatePickerModal: true} as BaseDatetimeState);\n }\n this.invokeEventCallback('onFocus', [null, this]);\n }\n }\n\n validate(value: any) {\n const validationObj = validateField(this.state.props, value);\n this.setState({\n isValid: validationObj.isValid,\n errorType: validationObj.errorType\n } as BaseDatetimeState)\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n this.stopCurrentTimeMonitor();\n }\n\n renderWebWidget(props: WmDatetimeProps) {\n return (<WebDatePicker\n mode={this.state.props.mode}\n locale={props.locale}\n value={this.state.dateValue || new Date()}\n onDateChange={(date: Date) => this.onDateChange(null as any, date)}\n onDismiss={() =>\n this.updateState({\n isFocused: false,\n showDatePicker: false\n } as BaseDatetimeState, () => this.onBlur())}\n minimumDate={props.mindate as Date}\n maximumDate={props.maxdate as Date}/>);\n }\n\n renderNativeWidget(props: WmDatetimeProps, onDismiss?: Function) {\n return (<DateTimePicker\n mode={this.modes[0] as any}\n {...getAccessibilityProps(AccessibilityWidgetType.DATE, {...this.state.props})}\n value={this.state.dateValue || new Date()}\n is24Hour={true}\n display='default'\n onChange={(event: DateTimePickerEvent, date?: Date) => {\n if (date && this.state.props.mode === 'datetime' && this.modes[0] === 'time') {\n const dateSelected = this.state.dateValue;\n date = moment(date)\n .set('month', dateSelected.getMonth())\n .set('year', dateSelected.getFullYear())\n .set('date', dateSelected.getDate())\n .toDate();\n }\n this.onDateChange(event, date || this.state.dateValue);\n if (this.modes.length <= 1) {\n this.onBlur();\n onDismiss && onDismiss();\n }\n }}\n minimumDate={props.mindate as Date}\n maximumDate={props.maxdate as Date}\n />\n );\n }\n\n renderNativeIOSWidget(props: WmDatetimeProps, onDismiss?: Function) {\n let date_change : any = undefined;\n return (<View style={this.styles.dialog}>\n <DateTimePicker\n mode={this.modes[0] as any}\n value={this.state.dateValue || new Date()}\n is24Hour={true}\n display='spinner'\n onChange={(event: DateTimePickerEvent, date?: Date) => {\n if (date && this.state.props.mode === 'datetime' && this.modes[0] === 'time') {\n const dateSelected = this.state.dateValue;\n date = moment(date)\n .set('month', dateSelected.getMonth())\n .set('year', dateSelected.getFullYear())\n .set('date', dateSelected.getDate())\n .toDate();\n }\n date_change = date;\n }}\n minimumDate={props.mindate as Date}\n maximumDate={props.maxdate as Date}\n />\n <View style={this.styles.actionWrapper}>\n <WmButton styles={this.styles.selectBtn} caption='Select' onTap={() => {\n this.onDateChange(null as any, date_change || this.state.dateValue || new Date());\n if (this.modes.length <= 1) {\n this.onBlur();\n onDismiss && onDismiss();\n }\n }} />\n <WmButton styles={this.styles.cancelBtn} caption='Cancel' onTap={() => {\n this.modes.shift();\n this.onDateChange(null as any, this.state.dateValue || undefined);\n this.onBlur();\n onDismiss && onDismiss();\n }} />\n </View>\n </View>\n );\n }\n\n renderNativeIOSWidgetWithModal(props: WmDatetimeProps) {\n return (<ModalConsumer>{(modalService: ModalService) => {\n this.nativeModalOptions.content = (<>\n {this.renderNativeIOSWidget(props, () => modalService.hideModal(this.nativeModalOptions))}\n </>);\n this.nativeModalOptions.centered = true;\n this.nativeModalOptions.onClose = () => {\n this.onBlur();\n };\n modalService.showModal(this.nativeModalOptions);\n return null;\n }}</ModalConsumer>);\n }\n\n renderNativeWidgetWithModal(props: WmDatetimeProps) {\n return (<ModalConsumer>{(modalService: ModalService) => {\n this.nativeModalOptions.content = (<>\n {this.renderNativeWidget(props, () => modalService.hideModal(this.nativeModalOptions))}\n </>);\n this.nativeModalOptions.centered = true;\n this.nativeModalOptions.onClose = () => {\n this.onBlur();\n };\n modalService.showModal(this.nativeModalOptions);\n return null;\n }}</ModalConsumer>);\n }\n\n addTouchableOpacity(props: WmDatetimeProps, children: React.JSX.Element, styles?: any, handleLayout?: any) : React.ReactNode{\n const hint = children?.props?.hint;\n const accessibilityProps = hint ? {accessible: true, accessibilityHint: hint} : {};\n\n return (\n <TouchableOpacity \n {...this.getTestPropsForAction()} \n {...accessibilityProps}\n onLayout={handleLayout}\n style={styles} onPress={() => {\n if (!props.readonly) {\n this.onFocus();\n }\n this.invokeEventCallback('onTap', [null, this]);\n }}>\n {children}\n </TouchableOpacity>\n );\n }\n\n getIcon() {\n if (this.state.props.mode === 'time') {\n return 'wm-sl-l sl-time'\n }\n return 'wm-sl-l sl-calendar';\n }\n\n public renderSkeleton(props: WmDatetimeProps): React.ReactNode {\n return (\n this.state.props.floatinglabel || this.state.displayValue || this.state.props.placeholder ? \n <View style={{display:'flex',...this.styles.container,...this.styles.root}}>\n {createSkeleton(this.theme, {} as WmSkeletonStyles, {\n ...this.styles.skeleton.root\n })}\n {createSkeleton(this.theme, {} as WmSkeletonStyles, {\n ...this.styles.skeleton.icon\n })}\n </View> : null\n )}\n \n renderWidget(props: WmDatetimeProps) {\n const is12HourFormat = props?.datepattern && /hh:mm(:ss|:sss)? a/.test(props.datepattern);\n const is24Hour = is12HourFormat ? false : props.is24hour;\n return ( \n this.addTouchableOpacity(props, (\n <View style={[this.styles.root, this.state.isValid ? {} : this.styles.invalid, this.state.isFocused ? this.styles.focused : null]}>\n {this._background}\n {props.floatinglabel ? (\n <FloatingLabel\n moveUp={!!(props.datavalue || this.state.isFocused)}\n label={props.floatinglabel ?? props.placeholder} \n style={{\n ...(this.styles.floatingLabel || []),\n ...(this.state.isFocused ? (this.styles.activeFloatingLabel || {}) : {})\n }}\n />\n ) : null}\n <View style={this.styles.container}>\n {this.addTouchableOpacity(props, (\n <Text style={[\n this.styles.text,\n this.state.displayValue ? {} : this.styles.placeholderText\n ]}\n {...this.getTestPropsForLabel()}>\n {this.state.displayValue \n || (props.floatinglabel ? '' : this.state.props.placeholder)}\n </Text>\n ), [{ flex: 1}, this.isRTL?{flexDirection:'row', textAlign:'right'}:{}] )}\n {(!props.readonly && props.datavalue &&\n (<WmIcon iconclass=\"wi wi-clear\"\n styles={{color: this.styles.text.color, ...this.styles.clearIcon}}\n id={this.getTestId('clearicon')}\n accessibilitylabel={`clear ${props?.mode}`}\n onTap={() => {\n this.onDateChange(null as any, null as any);\n this.clearBtnClicked = true;\n }}/>)) || null}\n {this.addTouchableOpacity(props, (\n <WmIcon iconclass={this.getIcon()} styles={{color: this.styles.text.color, ...this.styles.calendarIcon}} hint={props?.hint} id={this.getTestId('calendericon')}/>\n ))}\n </View>\n {\n this.state.showDatePicker\n && ((Platform.OS === 'web' && this.renderWebWidget(props))\n || (!props.iswheelpicker && Platform.OS === 'android' && this.renderNativeWidget(props))\n || (!props.iswheelpicker && Platform.OS === 'ios' && this.renderNativeIOSWidgetWithModal(props)))\n }\n {(Platform.OS !== 'web' && props.iswheelpicker && this.state.showDatePickerModal) && (\n <WmDatePickerModal\n isVisible={this.state.showDatePickerModal}\n onClose={() => this.updateState({showDatePickerModal: false} as BaseDatetimeState)}\n minDate={props.mindate}\n maxDate={props.maxdate}\n selectedDate={this.state.dateValue}\n onSelect={(date: Date) => {\n this.onDateChange(null as any, date);\n this.updateState({\n isFocused: false,\n showDatePickerModal: false\n } as BaseDatetimeState, () => {\n setTimeout(() => {\n this.onBlur();\n }, 10);\n \n // * showing time picker after selecting date in datetime mode\n if (this.state.props.mode === \"datetime\") {\n this.setState({\n showTimePickerModal: true,\n })\n }\n });\n }}\n onCancel={() => {\n // this.onDateChange(null as any, this.state.dateValue || undefined);\n this.updateState({\n isFocused: false,\n showDatePickerModal: false\n } as BaseDatetimeState, () => this.onBlur());\n }}\n dateheadertitle={props.dateheadertitle}\n dateconfirmationtitle={props.dateconfirmationtitle}\n datecanceltitle={props.datecanceltitle}\n />\n )}\n {(Platform.OS !== 'web' && props.iswheelpicker && this.state.showTimePickerModal) && (\n <WmTimePickerModal\n selectedDateTime={this.state.dateValue}\n is24Hour={is24Hour}\n isVisible={this.state.showTimePickerModal}\n onClose={() => this.updateState({isFocused: false, showTimePickerModal: false} as BaseDatetimeState)}\n onSelect={(time: Date) => {\n this.onDateChange(null as any, time);\n this.updateState({\n isFocused: false,\n showTimePickerModal: false\n } as BaseDatetimeState, () => {\n setTimeout(() => {\n this.onBlur()\n }, 10); \n });\n }}\n onCancel={() => {\n // this.onDateChange(null as any, this.state.dateValue || undefined);\n this.updateState({\n isFocused: false,\n showTimePickerModal: false\n } as BaseDatetimeState, () => {\n this.onBlur();\n this.modes.shift();\n });\n }}\n timeheadertitle={props.timeheadertitle}\n timeconfirmationtitle={props.timeconfirmationtitle}\n timecanceltitle={props.timecanceltitle}\n />\n )}\n </View>\n ), {} , this.handleLayout)\n );\n }\n}\n\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["React","View","Text","Platform","TouchableOpacity","moment","DateTimePicker","BaseComponent","BaseComponentState","WmIcon","WmDatetimeProps","DEFAULT_CLASS","WebDatePicker","isNumber","isString","ModalConsumer","isDateFormatAsPerPattern","validateField","splitBorderColorInPlace","AccessibilityWidgetType","getAccessibilityProps","FloatingLabel","AppI18nService","WmButton","WmDatePickerModal","WmTimePickerModal","createSkeleton","BaseDatetimeState","constructor","args","_defineProperty","CURRENT_DATE","CURRENT_TIME","BaseDatetime","props","defaultClass","defaultProps","defaultState","format","date","_this$props$locale","Date","getTime","locale","parse","parseInt","toDate","monitorAndUpdateCurrentTime","stopCurrentTimeMonitor","timerId","setInterval","updateState","readonly","datavalue","now","state","clearInterval","convertTimezone","timezone","getTimezone","parsedDateString","toLocaleString","timeZone","rtlSanityCheck","text","replace","momentPattern","pattern","removeSpecialMarks","replaceAll","onPropertyChange","name","$new","$old","prevDatavalue","outputformat","datepattern","console","log","toDateString","dateValue","displayValue","onFieldChange","minDateVal","mindate","isMinMatchingPattern","minDatePatternFormatted","formattedMinDate","maxDateVal","maxdate","isMaxMatchingPattern","maxDatePatternFormatted","formattedMaxDate","disabled","onDateChange","$event","prevDate","undefined","modes","shift","newDate","isFocused","showDatePicker","length","timestamp","validate","invokeEventCallback","onBlur","OS","setTimeout","triggerValidation","onFocus","mode","showDatePickerModal","showTimePickerModal","value","validationObj","setState","isValid","errorType","componentWillUnmount","renderWebWidget","createElement","onDismiss","minimumDate","maximumDate","renderNativeWidget","_extends","DATE","is24Hour","display","onChange","event","dateSelected","set","getMonth","getFullYear","getDate","renderNativeIOSWidget","date_change","style","styles","dialog","actionWrapper","selectBtn","caption","onTap","cancelBtn","renderNativeIOSWidgetWithModal","modalService","nativeModalOptions","content","Fragment","hideModal","centered","onClose","showModal","renderNativeWidgetWithModal","addTouchableOpacity","children","handleLayout","_children$props","hint","accessibilityProps","accessible","accessibilityHint","getTestPropsForAction","onLayout","onPress","getIcon","renderSkeleton","floatinglabel","placeholder","container","root","theme","skeleton","icon","renderWidget","_props$floatinglabel","is12HourFormat","test","is24hour","rootStyles","updatedRootStyles","invalid","focused","_background","moveUp","label","floatingLabel","activeFloatingLabel","placeholderText","getTestPropsForLabel","flex","isRTL","flexDirection","textAlign","iconclass","color","clearIcon","id","getTestId","accessibilitylabel","clearBtnClicked","calendarIcon","iswheelpicker","isVisible","minDate","maxDate","selectedDate","onSelect","onCancel","dateheadertitle","dateconfirmationtitle","datecanceltitle","selectedDateTime","time","timeheadertitle","timeconfirmationtitle","timecanceltitle"],"sources":["base-datetime.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Text, Platform, TouchableOpacity, ViewStyle, DimensionValue, LayoutChangeEvent } from 'react-native';\nimport moment from 'moment';\nimport DateTimePicker, { DateTimePickerEvent } from '@react-native-community/datetimepicker';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\n\nimport WmDatetimeProps from './datetime/datetime.props';\nimport { DEFAULT_CLASS, WmDatetimeStyles } from './datetime/datetime.styles';\nimport WebDatePicker from './date-picker.component';\nimport { isEqual, isNumber, isString } from 'lodash-es';\nimport { ModalConsumer, ModalOptions, ModalService } from '@wavemaker/app-rn-runtime/core/modal.service';\nimport { isDateFormatAsPerPattern, validateField ,splitBorderColorInPlace} from '@wavemaker/app-rn-runtime/core/utils';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility'; \nimport { FloatingLabel } from '@wavemaker/app-rn-runtime/core/components/floatinglabel.component';\nimport AppI18nService from '@wavemaker/app-rn-runtime/runtime/services/app-i18n.service';\nimport WmButton from '@wavemaker/app-rn-runtime/components/basic/button/button.component';\nimport WmDatePickerModal from './wheelpickermodal/date/date-picker-modal.component';\nimport WmTimePickerModal from './wheelpickermodal/time/time-picker-modal.component';\nimport { createSkeleton } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.component';\nimport { WmSkeletonStyles } from '../../basic/skeleton/skeleton.styles';\n\nexport class BaseDatetimeState extends BaseComponentState<WmDatetimeProps> {\n showDatePicker = false;\n showDatePickerModal = false;\n showTimePickerModal = false;\n dateValue: Date = null as any;\n displayValue: string = null as any;\n isFocused = false;\n timerId: NodeJS.Timer = null as any;\n isValid: boolean = true;\n errorType = '';\n}\n\nconst CURRENT_DATE = 'CURRENT_DATE';\nconst CURRENT_TIME = 'CURRENT_TIME';\n\nexport default abstract class BaseDatetime extends BaseComponent<WmDatetimeProps, BaseDatetimeState, WmDatetimeStyles> {\n clearBtnClicked = false;\n modes = [] as string[];\n nativeModalOptions: ModalOptions = {} as any;\n prevDatavalue: any;\n\n constructor(props: WmDatetimeProps, defaultClass = DEFAULT_CLASS, defaultProps = new WmDatetimeProps(), defaultState= new BaseDatetimeState()) {\n super(props, defaultClass, defaultProps, defaultState);\n }\n\n format(date: Date | number | undefined, format: string) {\n if (format === 'timestamp') {\n return date instanceof Date ? '' + date.getTime() : date;\n }\n \n // Convert moment formatting with respect to the current local.\n moment.locale(this.props.locale ?? 'en');\n return date && moment(date).format(format);\n }\n\n parse(date: string | number, format: string) {\n if (format === 'timestamp') {\n if (isString(date)) {\n return new Date(parseInt(date));\n }\n if (isNumber(date)) {\n return new Date(date);\n }\n }\n return date && moment(date, format).toDate();\n }\n\n private monitorAndUpdateCurrentTime() {\n this.stopCurrentTimeMonitor();\n const timerId = setInterval(() => {\n this.updateState({\n props: {\n readonly: true,\n datavalue: Date.now()\n },\n timerId: timerId\n } as any as BaseDatetimeState);\n }, 1000);\n }\n\n private stopCurrentTimeMonitor() {\n if (this.state.timerId) {\n clearInterval(this.state.timerId as any);\n }\n }\n\n convertTimezone(date: any){ \n const timezone = AppI18nService.getTimezone();\n if (timezone) {\n const parsedDateString = new Date(date).toLocaleString(this.props.locale ? this.props.locale : 'en-us', { timeZone: timezone });\n return moment(parsedDateString, 'M/D/YYYY, h:mm:ss A');\n }\n else {\n return null;\n }\n }\n\n rtlSanityCheck(text: any) {\n return text?.replace(/[\\u200E\\u200F\\u202B\\u202C]/g, '');\n }\n \n momentPattern(pattern : String) {\n const removeSpecialMarks = this.rtlSanityCheck(pattern);\n return removeSpecialMarks?.replaceAll('y', 'Y').replaceAll('d', 'D');\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n super.onPropertyChange(name, $new, $old);\n const props = this.state.props;\n switch(name) {\n //@ts-ignore\n case 'datavalue':\n this.prevDatavalue = $old;\n if (props.datavalue === CURRENT_TIME) {\n this.monitorAndUpdateCurrentTime();\n }\n case 'datepattern':\n case 'outputformat':\n if (props.datavalue && this.momentPattern(props.outputformat as String) && this.momentPattern(props.datepattern as String)) {\n let datavalue: any = props.datavalue;\n if (datavalue === CURRENT_DATE || datavalue === CURRENT_TIME) {\n datavalue = new Date() as any;\n }\n const date = isString(datavalue) ? this.parse(datavalue as string, this.momentPattern(props.outputformat as String)) : datavalue;\n datavalue = this.convertTimezone(datavalue);\n\n console.log(\"===== output value ======\", date.toDateString(), datavalue);\n\n this.updateState({\n dateValue : date,\n displayValue: this.format(datavalue?datavalue:date as any, this.momentPattern(props.datepattern as String))\n } as BaseDatetimeState);\n } else {\n this.updateState({\n dateValue : null as any,\n displayValue: null as any\n } as BaseDatetimeState);\n }\n this.props.onFieldChange && this.props.onFieldChange('datavalue', props.datavalue, this.prevDatavalue);\n break;\n case 'mindate':\n if (isString($new)) {\n const minDateVal = ($new === CURRENT_DATE || $new === CURRENT_TIME) ? new Date() : props.mindate;\n // * check if supplied mindate is as per datepattern\n const isMinMatchingPattern = minDateVal\n ? isDateFormatAsPerPattern(this.momentPattern(props.datepattern as String), minDateVal)\n : false;\n // * min date formatted as per datepattern\n const minDatePatternFormatted = minDateVal && isMinMatchingPattern ? moment(\n moment(\n minDateVal,\n this.momentPattern(props.datepattern as String)\n ).format('YYYY-MM-DD')\n ) : null;\n // * min date formatted as per ISO, if mindate supplied is not as per datepattern\n const formattedMinDate = minDatePatternFormatted && isMinMatchingPattern\n ? minDatePatternFormatted.toDate()\n : moment(minDateVal).toDate();\n this.updateState({\n props: {\n mindate: formattedMinDate\n }\n } as BaseDatetimeState);\n }\n break;\n case 'maxdate':\n if (isString($new)) {\n const maxDateVal = ($new === CURRENT_DATE || $new === CURRENT_TIME) ? new Date() : props.maxdate;\n // * check if supplied maxdate is as per datepattern\n const isMaxMatchingPattern = maxDateVal\n ? isDateFormatAsPerPattern(this.momentPattern(props.datepattern as String), maxDateVal)\n : false;\n // * max date formatted as per datepattern\n const maxDatePatternFormatted = maxDateVal && isMaxMatchingPattern ? moment(\n moment(\n maxDateVal,\n this.momentPattern(props.datepattern as String)\n ).format('YYYY-MM-DD')\n ) : null;\n // * max date formatted as per ISO, if maxdate supplied is not as per datepattern\n const formattedMaxDate = maxDatePatternFormatted && isMaxMatchingPattern\n ? maxDatePatternFormatted.toDate()\n : moment(maxDateVal).toDate();\n\n this.updateState({\n props: {\n maxdate: formattedMaxDate,\n },\n } as BaseDatetimeState);\n }\n break;\n case 'readonly':\n this.updateState({\n props: {\n disabled: $new\n }\n } as BaseDatetimeState)\n break;\n }\n }\n\n onDateChange($event: DateTimePickerEvent, date?: Date) {\n const prevDate = this.format(this.state.dateValue, this.momentPattern(this.state.props.outputformat as String) as string) || undefined;\n this.modes.shift();\n const newDate = this.format(date, this.momentPattern(this.state.props.outputformat as String) as string)\n this.updateState({\n isFocused: false,\n showDatePicker: !!this.modes.length,\n props: {\n datavalue: newDate,\n timestamp: this.format(date, 'timestamp')\n }\n } as BaseDatetimeState, () => {\n this.validate(date);\n this.invokeEventCallback('onChange', [null, this, newDate, prevDate])\n });\n }\n\n onBlur() {\n if (Platform.OS === 'web') {\n this.validate(this.state.props.datavalue);\n setTimeout(() => this.props.triggerValidation && this.props.triggerValidation());\n }\n this.invokeEventCallback('onBlur', [null, this]);\n }\n\n onFocus() {\n if (!this.state.props.readonly) {\n if (Platform.OS !== 'web' && this.state.props.mode === 'datetime') {\n this.modes = ['date', 'time'];\n } else {\n this.modes = [this.state.props.mode];\n }\n this.updateState({showDatePicker: true, isFocused: true} as BaseDatetimeState);\n if (this.state.props.mode === 'date') {\n this.updateState({showDatePickerModal: true} as BaseDatetimeState);\n }\n if (this.state.props.mode === 'time') {\n this.updateState({showTimePickerModal: true} as BaseDatetimeState);\n }\n if (this.state.props.mode === 'datetime') {\n this.updateState({showDatePickerModal: true} as BaseDatetimeState);\n }\n this.invokeEventCallback('onFocus', [null, this]);\n }\n }\n\n validate(value: any) {\n const validationObj = validateField(this.state.props, value);\n this.setState({\n isValid: validationObj.isValid,\n errorType: validationObj.errorType\n } as BaseDatetimeState)\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n this.stopCurrentTimeMonitor();\n }\n\n renderWebWidget(props: WmDatetimeProps) {\n return (<WebDatePicker\n mode={this.state.props.mode}\n locale={props.locale}\n value={this.state.dateValue || new Date()}\n onDateChange={(date: Date) => this.onDateChange(null as any, date)}\n onDismiss={() =>\n this.updateState({\n isFocused: false,\n showDatePicker: false\n } as BaseDatetimeState, () => this.onBlur())}\n minimumDate={props.mindate as Date}\n maximumDate={props.maxdate as Date}/>);\n }\n\n renderNativeWidget(props: WmDatetimeProps, onDismiss?: Function) {\n return (<DateTimePicker\n mode={this.modes[0] as any}\n {...getAccessibilityProps(AccessibilityWidgetType.DATE, {...this.state.props})}\n value={this.state.dateValue || new Date()}\n is24Hour={true}\n display='default'\n onChange={(event: DateTimePickerEvent, date?: Date) => {\n if (date && this.state.props.mode === 'datetime' && this.modes[0] === 'time') {\n const dateSelected = this.state.dateValue;\n date = moment(date)\n .set('month', dateSelected.getMonth())\n .set('year', dateSelected.getFullYear())\n .set('date', dateSelected.getDate())\n .toDate();\n }\n this.onDateChange(event, date || this.state.dateValue);\n if (this.modes.length <= 1) {\n this.onBlur();\n onDismiss && onDismiss();\n }\n }}\n minimumDate={props.mindate as Date}\n maximumDate={props.maxdate as Date}\n />\n );\n }\n\n renderNativeIOSWidget(props: WmDatetimeProps, onDismiss?: Function) {\n let date_change : any = undefined;\n return (<View style={this.styles.dialog}>\n <DateTimePicker\n mode={this.modes[0] as any}\n value={this.state.dateValue || new Date()}\n is24Hour={true}\n display='spinner'\n onChange={(event: DateTimePickerEvent, date?: Date) => {\n if (date && this.state.props.mode === 'datetime' && this.modes[0] === 'time') {\n const dateSelected = this.state.dateValue;\n date = moment(date)\n .set('month', dateSelected.getMonth())\n .set('year', dateSelected.getFullYear())\n .set('date', dateSelected.getDate())\n .toDate();\n }\n date_change = date;\n }}\n minimumDate={props.mindate as Date}\n maximumDate={props.maxdate as Date}\n />\n <View style={this.styles.actionWrapper}>\n <WmButton styles={this.styles.selectBtn} caption='Select' onTap={() => {\n this.onDateChange(null as any, date_change || this.state.dateValue || new Date());\n if (this.modes.length <= 1) {\n this.onBlur();\n onDismiss && onDismiss();\n }\n }} />\n <WmButton styles={this.styles.cancelBtn} caption='Cancel' onTap={() => {\n this.modes.shift();\n this.onDateChange(null as any, this.state.dateValue || undefined);\n this.onBlur();\n onDismiss && onDismiss();\n }} />\n </View>\n </View>\n );\n }\n\n renderNativeIOSWidgetWithModal(props: WmDatetimeProps) {\n return (<ModalConsumer>{(modalService: ModalService) => {\n this.nativeModalOptions.content = (<>\n {this.renderNativeIOSWidget(props, () => modalService.hideModal(this.nativeModalOptions))}\n </>);\n this.nativeModalOptions.centered = true;\n this.nativeModalOptions.onClose = () => {\n this.onBlur();\n };\n modalService.showModal(this.nativeModalOptions);\n return null;\n }}</ModalConsumer>);\n }\n\n renderNativeWidgetWithModal(props: WmDatetimeProps) {\n return (<ModalConsumer>{(modalService: ModalService) => {\n this.nativeModalOptions.content = (<>\n {this.renderNativeWidget(props, () => modalService.hideModal(this.nativeModalOptions))}\n </>);\n this.nativeModalOptions.centered = true;\n this.nativeModalOptions.onClose = () => {\n this.onBlur();\n };\n modalService.showModal(this.nativeModalOptions);\n return null;\n }}</ModalConsumer>);\n }\n\n addTouchableOpacity(props: WmDatetimeProps, children: React.JSX.Element, styles?: any, handleLayout?: any) : React.ReactNode{\n const hint = children?.props?.hint;\n const accessibilityProps = hint ? {accessible: true, accessibilityHint: hint} : {};\n\n return (\n <TouchableOpacity \n {...this.getTestPropsForAction()} \n {...accessibilityProps}\n onLayout={handleLayout}\n style={styles} onPress={() => {\n if (!props.readonly) {\n this.onFocus();\n }\n this.invokeEventCallback('onTap', [null, this]);\n }}>\n {children}\n </TouchableOpacity>\n );\n }\n\n getIcon() {\n if (this.state.props.mode === 'time') {\n return 'wm-sl-l sl-time'\n }\n return 'wm-sl-l sl-calendar';\n }\n\n public renderSkeleton(props: WmDatetimeProps): React.ReactNode {\n return (\n this.state.props.floatinglabel || this.state.displayValue || this.state.props.placeholder ? \n <View style={{display:'flex',...this.styles.container,...this.styles.root}}>\n {createSkeleton(this.theme, {} as WmSkeletonStyles, {\n ...this.styles.skeleton.root\n })}\n {createSkeleton(this.theme, {} as WmSkeletonStyles, {\n ...this.styles.skeleton.icon\n })}\n </View> : null\n )}\n \n renderWidget(props: WmDatetimeProps) {\n const is12HourFormat = props?.datepattern && /hh:mm(:ss|:sss)? a/.test(props.datepattern);\n const is24Hour = is12HourFormat ? false : props.is24hour;\n let rootStyles=this.styles.root;\n let updatedRootStyles = splitBorderColorInPlace(rootStyles);\n return ( \n this.addTouchableOpacity(props, (\n <View style={[updatedRootStyles, this.state.isValid ? {} : this.styles.invalid, this.state.isFocused ? this.styles.focused : null]}>\n {this._background}\n {props.floatinglabel ? (\n <FloatingLabel\n moveUp={!!(props.datavalue || this.state.isFocused)}\n label={props.floatinglabel ?? props.placeholder} \n style={{\n ...(this.styles.floatingLabel || []),\n ...(this.state.isFocused ? (this.styles.activeFloatingLabel || {}) : {})\n }}\n />\n ) : null}\n <View style={this.styles.container}>\n {this.addTouchableOpacity(props, (\n <Text style={[\n this.styles.text,\n this.state.displayValue ? {} : this.styles.placeholderText\n ]}\n {...this.getTestPropsForLabel()}>\n {this.state.displayValue \n || (props.floatinglabel ? '' : this.state.props.placeholder)}\n </Text>\n ), [{ flex: 1}, this.isRTL?{flexDirection:'row', textAlign:'right'}:{}] )}\n {(!props.readonly && props.datavalue &&\n (<WmIcon iconclass=\"wi wi-clear\"\n styles={{color: this.styles.text.color, ...this.styles.clearIcon}}\n id={this.getTestId('clearicon')}\n accessibilitylabel={`clear ${props?.mode}`}\n onTap={() => {\n this.onDateChange(null as any, null as any);\n this.clearBtnClicked = true;\n }}/>)) || null}\n {this.addTouchableOpacity(props, (\n <WmIcon iconclass={this.getIcon()} styles={{color: this.styles.text.color, ...this.styles.calendarIcon}} hint={props?.hint} id={this.getTestId('calendericon')}/>\n ))}\n </View>\n {\n this.state.showDatePicker\n && ((Platform.OS === 'web' && this.renderWebWidget(props))\n || (!props.iswheelpicker && Platform.OS === 'android' && this.renderNativeWidget(props))\n || (!props.iswheelpicker && Platform.OS === 'ios' && this.renderNativeIOSWidgetWithModal(props)))\n }\n {(Platform.OS !== 'web' && props.iswheelpicker && this.state.showDatePickerModal) && (\n <WmDatePickerModal\n isVisible={this.state.showDatePickerModal}\n onClose={() => this.updateState({showDatePickerModal: false} as BaseDatetimeState)}\n minDate={props.mindate}\n maxDate={props.maxdate}\n selectedDate={this.state.dateValue}\n onSelect={(date: Date) => {\n this.onDateChange(null as any, date);\n this.updateState({\n isFocused: false,\n showDatePickerModal: false\n } as BaseDatetimeState, () => {\n setTimeout(() => {\n this.onBlur();\n }, 10);\n \n // * showing time picker after selecting date in datetime mode\n if (this.state.props.mode === \"datetime\") {\n this.setState({\n showTimePickerModal: true,\n })\n }\n });\n }}\n onCancel={() => {\n // this.onDateChange(null as any, this.state.dateValue || undefined);\n this.updateState({\n isFocused: false,\n showDatePickerModal: false\n } as BaseDatetimeState, () => this.onBlur());\n }}\n dateheadertitle={props.dateheadertitle}\n dateconfirmationtitle={props.dateconfirmationtitle}\n datecanceltitle={props.datecanceltitle}\n />\n )}\n {(Platform.OS !== 'web' && props.iswheelpicker && this.state.showTimePickerModal) && (\n <WmTimePickerModal\n selectedDateTime={this.state.dateValue}\n is24Hour={is24Hour}\n isVisible={this.state.showTimePickerModal}\n onClose={() => this.updateState({isFocused: false, showTimePickerModal: false} as BaseDatetimeState)}\n onSelect={(time: Date) => {\n this.onDateChange(null as any, time);\n this.updateState({\n isFocused: false,\n showTimePickerModal: false\n } as BaseDatetimeState, () => {\n setTimeout(() => {\n this.onBlur()\n }, 10); \n });\n }}\n onCancel={() => {\n // this.onDateChange(null as any, this.state.dateValue || undefined);\n this.updateState({\n isFocused: false,\n showTimePickerModal: false\n } as BaseDatetimeState, () => {\n this.onBlur();\n this.modes.shift();\n });\n }}\n timeheadertitle={props.timeheadertitle}\n timeconfirmationtitle={props.timeconfirmationtitle}\n timecanceltitle={props.timecanceltitle}\n />\n )}\n </View>\n ), {} , this.handleLayout)\n );\n }\n}\n\n"],"mappings":"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","ignoreList":[]}
|
@@ -75,10 +75,12 @@ export default class WmRating extends BaseComponent {
|
|
75
75
|
case 'datavalue':
|
76
76
|
this.prepareItems(this.state.props);
|
77
77
|
if (name === 'datavalue') {
|
78
|
-
const isDefault = this.state.
|
78
|
+
const isDefault = this.state.props.isdefault;
|
79
79
|
if (isDefault) {
|
80
80
|
this.updateState({
|
81
|
-
|
81
|
+
props: {
|
82
|
+
isdefault: false
|
83
|
+
}
|
82
84
|
}, this.props.onFieldChange && this.props.onFieldChange.bind(this, 'datavalue', $new, $old, isDefault));
|
83
85
|
} else {
|
84
86
|
this.props.onFieldChange && this.props.onFieldChange('datavalue', $new, $old, isDefault);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["React","View","Text","BaseComponent","BaseComponentState","WmIcon","WmRatingProps","DEFAULT_CLASS","cloneDeep","isArray","isNumber","isString","WmRatingState","constructor","args","_defineProperty","WmRating","props","caption","state","prepareItems","items","dataset","maxvalue","Array","from","keys","map","v","split","Object","i","key","value","selectedIndex","datavalue","undefined","findIndex","item","k","datafield","showcaptions","selectedItem","getDisplayExpression","displayfield","updateState","onPropertyChange","name","$new","$old","isDefault","onFieldChange","bind","disabled","changeValue","oldValue","readonly","invokeEventCallback","proxy","renderWidget","maxValue","arr","selectedIconStyles","styles","selectedIcon","iconcolor","text","color","createElement","style","root","onLayout","event","handleLayout","_background","id","getTestId","iconclass","iconsize","onTap","icon"],"sources":["rating.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Text } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\n\nimport WmRatingProps from './rating.props';\nimport { DEFAULT_CLASS, WmRatingStyles } from './rating.styles';\nimport { cloneDeep, isArray, isEmpty, isNumber, isString } from 'lodash-es';\n\nexport class WmRatingState extends BaseComponentState<WmRatingProps> {\n items: any[] = null as any;\n caption: any = null as any;\n selectedIndex = -1;\n isDefault = false;\n}\n\nexport default class WmRating extends BaseComponent<WmRatingProps, WmRatingState, WmRatingStyles> {\n\n constructor(props: WmRatingProps) {\n super(props, DEFAULT_CLASS, new WmRatingProps());\n }\n\n get caption() {\n return this.state.caption;\n }\n\n prepareItems(props: WmRatingProps) {\n let items: any[] = [];\n if (!props.dataset && props.maxvalue) {\n items = Array.from(Array(+props.maxvalue).keys());\n items = items.map(v => v + 1);\n } else if (isString(props.dataset)) {\n items = props.dataset.split(',');\n } else {\n items = props.dataset as any[] || [];\n }\n if (isArray(items) && items[0] !== Object(items[0])) {\n items = items.map((v, i) => ({\n key: i + 1,\n value: v\n }));\n }\n let selectedIndex = -1;\n if (props.datavalue !== undefined && props.datavalue !== null) {\n selectedIndex = items.findIndex((item: any, k) => item[props.datafield as string] == props.datavalue);\n if (selectedIndex === -1 && isNumber(props.datavalue)) {\n selectedIndex = props.datavalue;\n }\n }\n let caption: any = '';\n if (selectedIndex > -1 && props.showcaptions) {\n const selectedItem = items[selectedIndex];\n if (selectedItem) {\n if (props.getDisplayExpression) {\n caption = props.getDisplayExpression(selectedItem);\n } else {\n caption = selectedItem[props.displayfield as string];\n }\n } else {\n caption = selectedIndex + 1;\n }\n }\n this.updateState({\n items: items,\n selectedIndex: selectedIndex,\n caption: caption\n } as WmRatingState);\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n switch(name) {\n case 'dataset' :\n case 'datafield' :\n case 'displayfield' :\n case 'maxvalue':\n case 'datavalue' :\n this.prepareItems(this.state.props);\n if (name === 'datavalue') {\n const isDefault = this.state.isDefault;\n if (isDefault) {\n this.updateState({ isDefault: false } as WmRatingState, this.props.onFieldChange && this.props.onFieldChange.bind(this, 'datavalue', $new, $old, isDefault));\n } else {\n this.props.onFieldChange && this.props.onFieldChange('datavalue', $new, $old, isDefault);\n }\n }\n break;\n case 'readonly' :\n this.updateState({\n props: {\n disabled: $new\n }\n } as WmRatingState);\n break;\n }\n }\n\n changeValue(i: number) {\n const props = this.state.props;\n const oldValue = props.datavalue;\n if (!props.readonly) {\n let value = this.state.items[i] ? this.state.items[i][props.datafield || '']: i;\n this.updateState({\n props: {\n datavalue: value\n }\n } as WmRatingState, () => {\n !this.props.onFieldChange && value !== oldValue && this.invokeEventCallback('onChange', [undefined, this.proxy, value, oldValue]);\n });\n }\n }\n\n renderWidget(props: WmRatingProps) {\n const maxValue = props.maxvalue ? +props.maxvalue : 5;\n const arr = Array.from(Array(maxValue).keys());\n\n let selectedIconStyles = this.styles.selectedIcon;\n if (props.iconcolor) {\n selectedIconStyles = cloneDeep(this.styles.selectedIcon);\n selectedIconStyles.text.color = props.iconcolor;\n }\n return (\n <View style={this.styles.root} onLayout={(event) => this.handleLayout(event)}>\n {this._background}\n {arr.map((v, i) => (\n (this.state.selectedIndex > -1 && i <= this.state.selectedIndex) ? <WmIcon\n id={this.getTestId('star' + i)}\n key={i}\n iconclass=\"wi wi-star\"\n iconsize={props.iconsize}\n styles={selectedIconStyles}\n onTap={() => { this.changeValue(i)}}\n ></WmIcon> : null\n ))}\n {arr.map((v, i) => (\n (this.state.selectedIndex === -1 || i > this.state.selectedIndex) ? <WmIcon\n id={this.getTestId('star' + i)}\n key={i}\n iconclass=\"wi wi-star-border\"\n iconsize={props.iconsize}\n styles={this.styles.icon}\n onTap={() => { this.changeValue(i)}}\n ></WmIcon> : null\n ))}\n { !!props.showcaptions ? (<Text style={this.styles.text}>{this.state.caption}</Text>) : null }\n </View>);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["React","View","Text","BaseComponent","BaseComponentState","WmIcon","WmRatingProps","DEFAULT_CLASS","cloneDeep","isArray","isNumber","isString","WmRatingState","constructor","args","_defineProperty","WmRating","props","caption","state","prepareItems","items","dataset","maxvalue","Array","from","keys","map","v","split","Object","i","key","value","selectedIndex","datavalue","undefined","findIndex","item","k","datafield","showcaptions","selectedItem","getDisplayExpression","displayfield","updateState","onPropertyChange","name","$new","$old","isDefault","isdefault","onFieldChange","bind","disabled","changeValue","oldValue","readonly","invokeEventCallback","proxy","renderWidget","maxValue","arr","selectedIconStyles","styles","selectedIcon","iconcolor","text","color","createElement","style","root","onLayout","event","handleLayout","_background","id","getTestId","iconclass","iconsize","onTap","icon"],"sources":["rating.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Text } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\n\nimport WmRatingProps from './rating.props';\nimport { DEFAULT_CLASS, WmRatingStyles } from './rating.styles';\nimport { cloneDeep, isArray, isEmpty, isNumber, isString } from 'lodash-es';\n\nexport class WmRatingState extends BaseComponentState<WmRatingProps> {\n items: any[] = null as any;\n caption: any = null as any;\n selectedIndex = -1;\n isDefault = false;\n}\n\nexport default class WmRating extends BaseComponent<WmRatingProps, WmRatingState, WmRatingStyles> {\n\n constructor(props: WmRatingProps) {\n super(props, DEFAULT_CLASS, new WmRatingProps());\n }\n\n get caption() {\n return this.state.caption;\n }\n\n prepareItems(props: WmRatingProps) {\n let items: any[] = [];\n if (!props.dataset && props.maxvalue) {\n items = Array.from(Array(+props.maxvalue).keys());\n items = items.map(v => v + 1);\n } else if (isString(props.dataset)) {\n items = props.dataset.split(',');\n } else {\n items = props.dataset as any[] || [];\n }\n if (isArray(items) && items[0] !== Object(items[0])) {\n items = items.map((v, i) => ({\n key: i + 1,\n value: v\n }));\n }\n let selectedIndex = -1;\n if (props.datavalue !== undefined && props.datavalue !== null) {\n selectedIndex = items.findIndex((item: any, k) => item[props.datafield as string] == props.datavalue);\n if (selectedIndex === -1 && isNumber(props.datavalue)) {\n selectedIndex = props.datavalue;\n }\n }\n let caption: any = '';\n if (selectedIndex > -1 && props.showcaptions) {\n const selectedItem = items[selectedIndex];\n if (selectedItem) {\n if (props.getDisplayExpression) {\n caption = props.getDisplayExpression(selectedItem);\n } else {\n caption = selectedItem[props.displayfield as string];\n }\n } else {\n caption = selectedIndex + 1;\n }\n }\n this.updateState({\n items: items,\n selectedIndex: selectedIndex,\n caption: caption\n } as WmRatingState);\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n switch(name) {\n case 'dataset' :\n case 'datafield' :\n case 'displayfield' :\n case 'maxvalue':\n case 'datavalue' :\n this.prepareItems(this.state.props);\n if (name === 'datavalue') {\n const isDefault = this.state.props.isdefault;\n if (isDefault) {\n this.updateState({ props: {isdefault: false} } as WmRatingState, this.props.onFieldChange && this.props.onFieldChange.bind(this, 'datavalue', $new, $old, isDefault));\n } else {\n this.props.onFieldChange && this.props.onFieldChange('datavalue', $new, $old, isDefault);\n }\n }\n break;\n case 'readonly' :\n this.updateState({\n props: {\n disabled: $new\n }\n } as WmRatingState);\n break;\n }\n }\n\n changeValue(i: number) {\n const props = this.state.props;\n const oldValue = props.datavalue;\n if (!props.readonly) {\n let value = this.state.items[i] ? this.state.items[i][props.datafield || '']: i;\n this.updateState({\n props: {\n datavalue: value\n }\n } as WmRatingState, () => {\n !this.props.onFieldChange && value !== oldValue && this.invokeEventCallback('onChange', [undefined, this.proxy, value, oldValue]);\n });\n }\n }\n\n renderWidget(props: WmRatingProps) {\n const maxValue = props.maxvalue ? +props.maxvalue : 5;\n const arr = Array.from(Array(maxValue).keys());\n\n let selectedIconStyles = this.styles.selectedIcon;\n if (props.iconcolor) {\n selectedIconStyles = cloneDeep(this.styles.selectedIcon);\n selectedIconStyles.text.color = props.iconcolor;\n }\n return (\n <View style={this.styles.root} onLayout={(event) => this.handleLayout(event)}>\n {this._background}\n {arr.map((v, i) => (\n (this.state.selectedIndex > -1 && i <= this.state.selectedIndex) ? <WmIcon\n id={this.getTestId('star' + i)}\n key={i}\n iconclass=\"wi wi-star\"\n iconsize={props.iconsize}\n styles={selectedIconStyles}\n onTap={() => { this.changeValue(i)}}\n ></WmIcon> : null\n ))}\n {arr.map((v, i) => (\n (this.state.selectedIndex === -1 || i > this.state.selectedIndex) ? <WmIcon\n id={this.getTestId('star' + i)}\n key={i}\n iconclass=\"wi wi-star-border\"\n iconsize={props.iconsize}\n styles={this.styles.icon}\n onTap={() => { this.changeValue(i)}}\n ></WmIcon> : null\n ))}\n { !!props.showcaptions ? (<Text style={this.styles.text}>{this.state.caption}</Text>) : null }\n </View>);\n }\n}\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AACzC,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,+CAA+C;AACjG,OAAOC,MAAM,MAAM,gEAAgE;AAEnF,OAAOC,aAAa,MAAM,gBAAgB;AAC1C,SAASC,aAAa,QAAwB,iBAAiB;AAC/D,SAASC,SAAS,EAAEC,OAAO,EAAWC,QAAQ,EAAEC,QAAQ,QAAQ,WAAW;AAE3E,OAAO,MAAMC,aAAa,SAASR,kBAAkB,CAAgB;EAAAS,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,gBACpD,IAAI;IAAAA,eAAA,kBACJ,IAAI;IAAAA,eAAA,wBACH,CAAC,CAAC;IAAAA,eAAA,oBACN,KAAK;EAAA;AACnB;AAEA,eAAe,MAAMC,QAAQ,SAASb,aAAa,CAA+C;EAEhGU,WAAWA,CAACI,KAAoB,EAAE;IAChC,KAAK,CAACA,KAAK,EAAEV,aAAa,EAAE,IAAID,aAAa,CAAC,CAAC,CAAC;EAClD;EAEA,IAAIY,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACC,KAAK,CAACD,OAAO;EAC3B;EAEAE,YAAYA,CAACH,KAAoB,EAAE;IACjC,IAAII,KAAY,GAAG,EAAE;IACrB,IAAI,CAACJ,KAAK,CAACK,OAAO,IAAIL,KAAK,CAACM,QAAQ,EAAE;MACpCF,KAAK,GAAGG,KAAK,CAACC,IAAI,CAACD,KAAK,CAAC,CAACP,KAAK,CAACM,QAAQ,CAAC,CAACG,IAAI,CAAC,CAAC,CAAC;MACjDL,KAAK,GAAGA,KAAK,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC,MAAM,IAAIjB,QAAQ,CAACM,KAAK,CAACK,OAAO,CAAC,EAAE;MAClCD,KAAK,GAAGJ,KAAK,CAACK,OAAO,CAACO,KAAK,CAAC,GAAG,CAAC;IAClC,CAAC,MAAM;MACLR,KAAK,GAAGJ,KAAK,CAACK,OAAO,IAAa,EAAE;IACtC;IACA,IAAIb,OAAO,CAACY,KAAK,CAAC,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAKS,MAAM,CAACT,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;MACnDA,KAAK,GAAGA,KAAK,CAACM,GAAG,CAAC,CAACC,CAAC,EAAEG,CAAC,MAAM;QAC3BC,GAAG,EAAED,CAAC,GAAG,CAAC;QACVE,KAAK,EAAEL;MACT,CAAC,CAAC,CAAC;IACL;IACA,IAAIM,aAAa,GAAG,CAAC,CAAC;IACtB,IAAIjB,KAAK,CAACkB,SAAS,KAAKC,SAAS,IAAInB,KAAK,CAACkB,SAAS,KAAK,IAAI,EAAE;MAC7DD,aAAa,GAAGb,KAAK,CAACgB,SAAS,CAAC,CAACC,IAAS,EAAEC,CAAC,KAAKD,IAAI,CAACrB,KAAK,CAACuB,SAAS,CAAW,IAAIvB,KAAK,CAACkB,SAAS,CAAC;MACrG,IAAID,aAAa,KAAK,CAAC,CAAC,IAAIxB,QAAQ,CAACO,KAAK,CAACkB,SAAS,CAAC,EAAE;QACrDD,aAAa,GAAGjB,KAAK,CAACkB,SAAS;MACjC;IACF;IACA,IAAIjB,OAAY,GAAG,EAAE;IACrB,IAAIgB,aAAa,GAAG,CAAC,CAAC,IAAIjB,KAAK,CAACwB,YAAY,EAAE;MAC5C,MAAMC,YAAY,GAAGrB,KAAK,CAACa,aAAa,CAAC;MACzC,IAAIQ,YAAY,EAAE;QAChB,IAAIzB,KAAK,CAAC0B,oBAAoB,EAAE;UAC9BzB,OAAO,GAAGD,KAAK,CAAC0B,oBAAoB,CAACD,YAAY,CAAC;QACpD,CAAC,MAAM;UACLxB,OAAO,GAAGwB,YAAY,CAACzB,KAAK,CAAC2B,YAAY,CAAW;QACtD;MACF,CAAC,MAAM;QACL1B,OAAO,GAAGgB,aAAa,GAAG,CAAC;MAC7B;IACF;IACA,IAAI,CAACW,WAAW,CAAC;MACfxB,KAAK,EAAEA,KAAK;MACZa,aAAa,EAAEA,aAAa;MAC5BhB,OAAO,EAAEA;IACX,CAAkB,CAAC;EACrB;EAEA4B,gBAAgBA,CAACC,IAAY,EAAEC,IAAS,EAAEC,IAAS,EAAE;IACnD,QAAOF,IAAI;MACT,KAAK,SAAS;MACd,KAAK,WAAW;MAChB,KAAK,cAAc;MACnB,KAAK,UAAU;MACf,KAAK,WAAW;QACd,IAAI,CAAC3B,YAAY,CAAC,IAAI,CAACD,KAAK,CAACF,KAAK,CAAC;QACnC,IAAI8B,IAAI,KAAK,WAAW,EAAE;UACxB,MAAMG,SAAS,GAAG,IAAI,CAAC/B,KAAK,CAACF,KAAK,CAACkC,SAAS;UAC5C,IAAID,SAAS,EAAE;YACb,IAAI,CAACL,WAAW,CAAC;cAAE5B,KAAK,EAAE;gBAACkC,SAAS,EAAE;cAAK;YAAE,CAAC,EAAmB,IAAI,CAAClC,KAAK,CAACmC,aAAa,IAAI,IAAI,CAACnC,KAAK,CAACmC,aAAa,CAACC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAEL,IAAI,EAAEC,IAAI,EAAEC,SAAS,CAAC,CAAC;UACvK,CAAC,MAAM;YACL,IAAI,CAACjC,KAAK,CAACmC,aAAa,IAAI,IAAI,CAACnC,KAAK,CAACmC,aAAa,CAAC,WAAW,EAAEJ,IAAI,EAAEC,IAAI,EAAEC,SAAS,CAAC;UAC1F;QACF;QACA;MACF,KAAK,UAAU;QACb,IAAI,CAACL,WAAW,CAAC;UACf5B,KAAK,EAAE;YACLqC,QAAQ,EAAEN;UACZ;QACF,CAAkB,CAAC;QACnB;IACJ;EACF;EAEAO,WAAWA,CAACxB,CAAS,EAAE;IACrB,MAAMd,KAAK,GAAG,IAAI,CAACE,KAAK,CAACF,KAAK;IAC9B,MAAMuC,QAAQ,GAAGvC,KAAK,CAACkB,SAAS;IAChC,IAAI,CAAClB,KAAK,CAACwC,QAAQ,EAAE;MACnB,IAAIxB,KAAK,GAAG,IAAI,CAACd,KAAK,CAACE,KAAK,CAACU,CAAC,CAAC,GAAG,IAAI,CAACZ,KAAK,CAACE,KAAK,CAACU,CAAC,CAAC,CAACd,KAAK,CAACuB,SAAS,IAAI,EAAE,CAAC,GAAET,CAAC;MAC/E,IAAI,CAACc,WAAW,CAAC;QACf5B,KAAK,EAAE;UACLkB,SAAS,EAAGF;QACd;MACF,CAAC,EAAmB,MAAM;QACxB,CAAC,IAAI,CAAChB,KAAK,CAACmC,aAAa,IAAInB,KAAK,KAAKuB,QAAQ,IAAI,IAAI,CAACE,mBAAmB,CAAC,UAAU,EAAE,CAACtB,SAAS,EAAE,IAAI,CAACuB,KAAK,EAAE1B,KAAK,EAAEuB,QAAQ,CAAC,CAAC;MACnI,CAAC,CAAC;IACJ;EACF;EAEAI,YAAYA,CAAC3C,KAAoB,EAAE;IACjC,MAAM4C,QAAQ,GAAG5C,KAAK,CAACM,QAAQ,GAAG,CAACN,KAAK,CAACM,QAAQ,GAAG,CAAC;IACrD,MAAMuC,GAAG,GAAGtC,KAAK,CAACC,IAAI,CAACD,KAAK,CAACqC,QAAQ,CAAC,CAACnC,IAAI,CAAC,CAAC,CAAC;IAE9C,IAAIqC,kBAAkB,GAAG,IAAI,CAACC,MAAM,CAACC,YAAY;IACjD,IAAIhD,KAAK,CAACiD,SAAS,EAAE;MACnBH,kBAAkB,GAAGvD,SAAS,CAAC,IAAI,CAACwD,MAAM,CAACC,YAAY,CAAC;MACxDF,kBAAkB,CAACI,IAAI,CAACC,KAAK,GAAGnD,KAAK,CAACiD,SAAS;IACjD;IACA,oBACAlE,KAAA,CAAAqE,aAAA,CAACpE,IAAI;MAACqE,KAAK,EAAE,IAAI,CAACN,MAAM,CAACO,IAAK;MAACC,QAAQ,EAAGC,KAAK,IAAK,IAAI,CAACC,YAAY,CAACD,KAAK;IAAE,GAC1E,IAAI,CAACE,WAAW,EAChBb,GAAG,CAACnC,GAAG,CAAC,CAACC,CAAC,EAAEG,CAAC,KACX,IAAI,CAACZ,KAAK,CAACe,aAAa,GAAG,CAAC,CAAC,IAAIH,CAAC,IAAI,IAAI,CAACZ,KAAK,CAACe,aAAa,gBAAIlC,KAAA,CAAAqE,aAAA,CAAChE,MAAM;MACxEuE,EAAE,EAAE,IAAI,CAACC,SAAS,CAAC,MAAM,GAAG9C,CAAC,CAAE;MAC/BC,GAAG,EAAED,CAAE;MACP+C,SAAS,EAAC,YAAY;MACtBC,QAAQ,EAAE9D,KAAK,CAAC8D,QAAS;MACzBf,MAAM,EAAED,kBAAmB;MAC3BiB,KAAK,EAAEA,CAAA,KAAM;QAAE,IAAI,CAACzB,WAAW,CAACxB,CAAC,CAAC;MAAA;IAAE,CAC7B,CAAC,GAAG,IACd,CAAC,EACD+B,GAAG,CAACnC,GAAG,CAAC,CAACC,CAAC,EAAEG,CAAC,KACX,IAAI,CAACZ,KAAK,CAACe,aAAa,KAAK,CAAC,CAAC,IAAIH,CAAC,GAAG,IAAI,CAACZ,KAAK,CAACe,aAAa,gBAAIlC,KAAA,CAAAqE,aAAA,CAAChE,MAAM;MACzEuE,EAAE,EAAE,IAAI,CAACC,SAAS,CAAC,MAAM,GAAG9C,CAAC,CAAE;MAC/BC,GAAG,EAAED,CAAE;MACP+C,SAAS,EAAC,mBAAmB;MAC7BC,QAAQ,EAAE9D,KAAK,CAAC8D,QAAS;MACzBf,MAAM,EAAE,IAAI,CAACA,MAAM,CAACiB,IAAK;MACzBD,KAAK,EAAEA,CAAA,KAAM;QAAE,IAAI,CAACzB,WAAW,CAACxB,CAAC,CAAC;MAAA;IAAE,CAC7B,CAAC,GAAG,IACd,CAAC,EACA,CAAC,CAACd,KAAK,CAACwB,YAAY,gBAAIzC,KAAA,CAAAqE,aAAA,CAACnE,IAAI;MAACoE,KAAK,EAAE,IAAI,CAACN,MAAM,CAACG;IAAK,GAAE,IAAI,CAAChD,KAAK,CAACD,OAAc,CAAC,GAAI,IACpF,CAAC;EACT;AACF","ignoreList":[]}
|
@@ -59,14 +59,17 @@ class Scale {
|
|
59
59
|
const index = this.getTickIndex(value);
|
60
60
|
return this.ticks[index].markValue;
|
61
61
|
}
|
62
|
-
transform(min, max) {
|
62
|
+
transform(min, max, markerRadius) {
|
63
63
|
var _this$ticks$, _last;
|
64
|
+
const MARKER_RADIUS = markerRadius;
|
65
|
+
const adjustedMin = min + MARKER_RADIUS;
|
66
|
+
const adjustedMax = max - MARKER_RADIUS;
|
64
67
|
const thisMin = (this.ticks ? (_this$ticks$ = this.ticks[0]) === null || _this$ticks$ === void 0 ? void 0 : _this$ticks$.markValue : 0) || 0;
|
65
68
|
const thisMax = (_last = last(this.ticks)) === null || _last === void 0 ? void 0 : _last.markValue;
|
66
|
-
const factor = thisMax ? (
|
69
|
+
const factor = thisMax ? (adjustedMax - adjustedMin) / (thisMax - thisMin) : 1;
|
67
70
|
const ticks = [];
|
68
71
|
this.ticks.forEach((v, i) => {
|
69
|
-
const markValue = Math.round(
|
72
|
+
const markValue = Math.round(adjustedMin + (v.markValue - this.ticks[0].markValue) * factor);
|
70
73
|
ticks[i] = {
|
71
74
|
displayfield: '' + markValue,
|
72
75
|
markValue: markValue,
|
@@ -90,6 +93,7 @@ export default class WmSlider extends BaseDatasetComponent {
|
|
90
93
|
_defineProperty(this, "uiScale", null);
|
91
94
|
_defineProperty(this, "positionRefMaksudai", /*#__PURE__*/React.createRef());
|
92
95
|
_defineProperty(this, "tempPosition", /*#__PURE__*/React.createRef());
|
96
|
+
_defineProperty(this, "MARKER_WIDTH", 10);
|
93
97
|
_defineProperty(this, "onSliderChange", debounce((value, gestureType) => {
|
94
98
|
const dataValue = this.getScaledDataValue();
|
95
99
|
const isRangeSlider = this.state.props.range && isArray(dataValue);
|
@@ -165,6 +169,20 @@ export default class WmSlider extends BaseDatasetComponent {
|
|
165
169
|
this.configureGesture(this.highKnobGesture, 'highThumb');
|
166
170
|
this.positionRefMaksudai.current = 0;
|
167
171
|
}
|
172
|
+
getMarkerWidthFromStyles() {
|
173
|
+
var _this$styles;
|
174
|
+
const cssWidth = (_this$styles = this.styles) === null || _this$styles === void 0 || (_this$styles = _this$styles.markerStyle) === null || _this$styles === void 0 ? void 0 : _this$styles.width;
|
175
|
+
return typeof cssWidth === 'number' && cssWidth > 0 ? cssWidth : this.MARKER_WIDTH;
|
176
|
+
}
|
177
|
+
getMarkerRadius() {
|
178
|
+
var _this$styles2, _this$state$track;
|
179
|
+
const markerWidth = this.getMarkerWidthFromStyles();
|
180
|
+
const markerHeight = ((_this$styles2 = this.styles) === null || _this$styles2 === void 0 || (_this$styles2 = _this$styles2.markerStyle) === null || _this$styles2 === void 0 ? void 0 : _this$styles2.height) || markerWidth;
|
181
|
+
const trackHeight = ((_this$state$track = this.state.track) === null || _this$state$track === void 0 ? void 0 : _this$state$track.height) || 2;
|
182
|
+
const baseRadius = markerWidth / 2;
|
183
|
+
const extraPadding = Math.max(0, (trackHeight - markerHeight) / 2);
|
184
|
+
return baseRadius + extraPadding;
|
185
|
+
}
|
168
186
|
getValueFromGesture(positionX) {
|
169
187
|
var _this$scale;
|
170
188
|
return ((_this$scale = this.scale) === null || _this$scale === void 0 ? void 0 : _this$scale.ticks[this.uiScale.getTickIndex(positionX)].markValue) || 0;
|
@@ -268,7 +286,8 @@ export default class WmSlider extends BaseDatasetComponent {
|
|
268
286
|
dataitem: d
|
269
287
|
})));
|
270
288
|
const width = ((_state$track = state.track) === null || _state$track === void 0 ? void 0 : _state$track.width) || 0;
|
271
|
-
|
289
|
+
const markerRadius = this.getMarkerRadius();
|
290
|
+
this.uiScale = this.scale.transform(0, width, markerRadius);
|
272
291
|
}
|
273
292
|
computePosition(from, gestureType) {
|
274
293
|
const state = this.state;
|
@@ -398,15 +417,15 @@ export default class WmSlider extends BaseDatasetComponent {
|
|
398
417
|
}), (_last2 = last((_this$scale6 = this.scale) === null || _this$scale6 === void 0 ? void 0 : _this$scale6.ticks)) === null || _last2 === void 0 ? void 0 : _last2.displayfield));
|
399
418
|
}
|
400
419
|
renderMarkers(props) {
|
401
|
-
var _this$state$
|
420
|
+
var _this$state$track2;
|
402
421
|
const markerlabeltext = props.markerlabeltext;
|
403
|
-
const width = ((_this$state$
|
422
|
+
const width = ((_this$state$track2 = this.state.track) === null || _this$state$track2 === void 0 ? void 0 : _this$state$track2.width) || 0;
|
404
423
|
return /*#__PURE__*/React.createElement(View, {
|
405
424
|
style: {
|
406
425
|
flexDirection: 'row'
|
407
426
|
}
|
408
427
|
}, /*#__PURE__*/React.createElement(View, null, width ? this.scale.ticks.map((t, i) => {
|
409
|
-
const markWidth =
|
428
|
+
const markWidth = this.getMarkerWidthFromStyles();
|
410
429
|
const stepwiseLeft = this.getPositionFromValue(t.markValue);
|
411
430
|
const labelText = this.getLabel(markerlabeltext, t.displayfield, i);
|
412
431
|
const marketLabelPosition = this.getLabelPosition(markerlabeltext, i);
|
@@ -433,8 +452,8 @@ export default class WmSlider extends BaseDatasetComponent {
|
|
433
452
|
}) : null));
|
434
453
|
}
|
435
454
|
renderTracks(props) {
|
436
|
-
var _this$state$
|
437
|
-
const width = ((_this$state$
|
455
|
+
var _this$state$track3;
|
456
|
+
const width = ((_this$state$track3 = this.state.track) === null || _this$state$track3 === void 0 ? void 0 : _this$state$track3.width) || 0;
|
438
457
|
const sDataValue = this.getScaledDataValue();
|
439
458
|
const isRangeSlider = props.range && sDataValue.length > 1;
|
440
459
|
return /*#__PURE__*/React.createElement(GestureDetector, {
|