@wavemaker/app-rn-runtime 11.4.2-rc.5389 → 11.4.2-rc.5398

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.
Files changed (49) hide show
  1. app-rn-runtime/components/basic/label/label.component.js +2 -1
  2. app-rn-runtime/components/basic/label/label.component.js.map +1 -1
  3. app-rn-runtime/components/basic/label/label.props.js +1 -0
  4. app-rn-runtime/components/basic/label/label.props.js.map +1 -1
  5. app-rn-runtime/components/chart/area-chart/area-chart.component.js +15 -10
  6. app-rn-runtime/components/chart/area-chart/area-chart.component.js.map +1 -1
  7. app-rn-runtime/components/chart/area-chart/area-chart.props.js +9 -1
  8. app-rn-runtime/components/chart/area-chart/area-chart.props.js.map +1 -1
  9. app-rn-runtime/components/chart/basechart.component.js +82 -39
  10. app-rn-runtime/components/chart/basechart.component.js.map +1 -1
  11. app-rn-runtime/components/chart/basechart.props.js +8 -3
  12. app-rn-runtime/components/chart/basechart.props.js.map +1 -1
  13. app-rn-runtime/components/chart/basechart.styles.js +25 -1
  14. app-rn-runtime/components/chart/basechart.styles.js.map +1 -1
  15. app-rn-runtime/components/chart/line-chart/line-chart.component.js +31 -6
  16. app-rn-runtime/components/chart/line-chart/line-chart.component.js.map +1 -1
  17. app-rn-runtime/components/chart/line-chart/line-chart.props.js +1 -0
  18. app-rn-runtime/components/chart/line-chart/line-chart.props.js.map +1 -1
  19. app-rn-runtime/components/chart/pie-chart/pie-chart.component.js +23 -2
  20. app-rn-runtime/components/chart/pie-chart/pie-chart.component.js.map +1 -1
  21. app-rn-runtime/components/chart/pie-chart/pie-chart.props.js +1 -0
  22. app-rn-runtime/components/chart/pie-chart/pie-chart.props.js.map +1 -1
  23. app-rn-runtime/components/container/wizard/wizard.component.js +93 -2
  24. app-rn-runtime/components/container/wizard/wizard.component.js.map +1 -1
  25. app-rn-runtime/components/container/wizard/wizard.props.js +4 -0
  26. app-rn-runtime/components/container/wizard/wizard.props.js.map +1 -1
  27. app-rn-runtime/components/container/wizard/wizard.styles.js +103 -2
  28. app-rn-runtime/components/container/wizard/wizard.styles.js.map +1 -1
  29. app-rn-runtime/components/container/wizard/wizardstep/wizardstep.props.js +1 -0
  30. app-rn-runtime/components/container/wizard/wizardstep/wizardstep.props.js.map +1 -1
  31. app-rn-runtime/components/input/basenumber/basenumber.component.js +39 -5
  32. app-rn-runtime/components/input/basenumber/basenumber.component.js.map +1 -1
  33. app-rn-runtime/components/input/basenumber/basenumber.props.js +1 -0
  34. app-rn-runtime/components/input/basenumber/basenumber.props.js.map +1 -1
  35. app-rn-runtime/components/input/currency/currency.component.js +4 -1
  36. app-rn-runtime/components/input/currency/currency.component.js.map +1 -1
  37. app-rn-runtime/components/input/number/number.component.js +4 -1
  38. app-rn-runtime/components/input/number/number.component.js.map +1 -1
  39. app-rn-runtime/core/constant.service.js +22 -0
  40. app-rn-runtime/core/constant.service.js.map +1 -0
  41. app-rn-runtime/core/formatters.js +9 -2
  42. app-rn-runtime/core/formatters.js.map +1 -1
  43. app-rn-runtime/core/tappable.component.js +5 -2
  44. app-rn-runtime/core/tappable.component.js.map +1 -1
  45. app-rn-runtime/core/utils.js +16 -0
  46. app-rn-runtime/core/utils.js.map +1 -1
  47. app-rn-runtime/package.json +3 -3
  48. app-rn-runtime/runtime/App.js +16 -0
  49. app-rn-runtime/runtime/App.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["includes","intersection","isNaN","isFinite","toArray","BaseComponent","BaseComponentState","DEFAULT_CLASS","Platform","validateField","BaseNumberState","constructor","arguments","_defineProperty","BaseNumberComponent","props","defaultClass","length","undefined","defaultProps","defaultState","DECIMAL","GROUP","onChange","event","state","updateon","updateDatavalue","target","value","focus","_this$widgetRef","widgetRef","onChangeText","updateState","textValue","validate","invokeChange","e","OS","cursor","selectionStart","setState","validationObj","isValid","errorType","handleValidation","regexp","condition","RegExp","test","parseNumber","val","parts","split","NaN","number","Number","join","decimal","sum","parseFloat","toFixed","Object","is","source","model","toString","oldValue","datavalue","validNumber","isValidNumber","invokeEventCallback","proxy","onFieldChange","onBlur","newVal","setTimeout","triggerValidation","oldVal","onFocus","countDecimals","decimalValue","validateInputEntry","$event","ctrlKey","key","validity","inputValue","step","preventDefault","getValueInRange","minvalue","maxvalue","required","isInteger","resetValidations","onPropertyChange","name","$new","$old","isDefault","bind"],"sources":["basenumber.component.ts"],"sourcesContent":["import { includes, intersection, isNaN, isFinite, toArray } from 'lodash';\nimport BaseNumberProps from '@wavemaker/app-rn-runtime/components/input/basenumber/basenumber.props';\nimport { BaseComponent, BaseComponentState } from \"@wavemaker/app-rn-runtime/core/base.component\";\nimport { BaseNumberStyles } from '@wavemaker/app-rn-runtime/components/input/basenumber/basenumber.styles';\nimport { DEFAULT_CLASS } from \"@wavemaker/app-rn-runtime/components/navigation/basenav/basenav.styles\";\nimport { Platform, TextInput } from 'react-native';\nimport { validateField } from '@wavemaker/app-rn-runtime/core/utils';\n\nexport class BaseNumberState <T extends BaseNumberProps> extends BaseComponentState<T> {\n isValid: boolean = true;\n textValue: string = '';\n isDefault = false;\n errorType = '';\n}\n\nexport abstract class BaseNumberComponent< T extends BaseNumberProps, S extends BaseNumberState<T>, L extends BaseNumberStyles> extends BaseComponent<T, S, L> {\n private DECIMAL;\n private GROUP;\n public widgetRef: TextInput | null = null;\n private cursor: any = 0;\n constructor(props: T, public defaultClass: string = DEFAULT_CLASS, defaultProps?: T, defaultState?: S) {\n super(props, defaultClass, defaultProps, defaultState);\n this.DECIMAL = '.';\n this.GROUP = ',';\n }\n\n onChange(event: any) {\n if (this.state.props.updateon === 'default') {\n this.updateDatavalue(event.target.value, event);\n }\n }\n\n focus() {\n this?.widgetRef?.focus();\n }\n\n onChangeText(value: any) {\n this.updateState({\n textValue: value\n } as S, () => {\n if (this.state.props.updateon === 'default') {\n this.validate(value);\n this.updateDatavalue(value, null);\n }\n }\n );\n }\n\n invokeChange(e: any) {\n if (Platform.OS === 'web') {\n this.cursor = e.target.selectionStart;\n this.setState({ textValue: e.target.value });\n }\n }\n\n validate(value: any) {\n const validationObj = validateField(this.state.props, value);\n this.updateState({\n isValid: validationObj.isValid,\n errorType: validationObj.errorType\n } as S);\n\n }\n\n handleValidation(value: any) {\n const props = this.state.props;\n if (props.regexp) {\n const condition = new RegExp(props.regexp, 'g');\n return condition.test(value);\n }\n return true;\n }\n\n /**\n * Method parses the Localized number(string) to a valid number.\n * if the string dose not result to a valid number then returns NaN.\n * @param {string} val Localized number.\n * @returns {number}\n */\n private parseNumber(val: string): any {\n // splits string into two parts. decimal and number.\n const parts = val.split(this.DECIMAL);\n if (!parts.length) {\n return;\n }\n if (parts.length > 2) {\n return NaN;\n }\n // If number have decimal point and not have a decimal value then return.\n if (parts[1] === '') {\n return NaN;\n }\n // replaces all group separators form the number.\n const number = Number(parts[0].split(this.GROUP).join(''));\n const decimal = Number(`0.${parts[1] || 0}`);\n if (Number.isNaN(number) || Number.isNaN(decimal)) {\n return NaN;\n }\n const sum = parts.length > 1 ? parseFloat((number + decimal).toFixed(parts[1].length)) : number + decimal;\n // if the number is negative then calculate the number as number - decimal\n // Ex: number = -123 and decimal = 0.45 then number - decimal = -123-045 = -123.45\n // If entered number is -0.1 to -0.9 then the number is -0 and decimal is 0.1 to 0.9. Now calaculate the number as number-decimal\n // Ex: number = -0 and decimal = 0.1 then number-decimal = -0-0.1 = -0.1\n if (number === 0) {\n return Object.is(0, number) ? sum : number - decimal;\n }\n return number > 0 ? sum : number - decimal;\n }\n\n updateDatavalue(value: any, event?: any, source?: any) {\n const model = value && this.parseNumber(value.toString());\n const props = this.state.props;\n const oldValue = props.datavalue;\n if (value === oldValue) {\n return;\n }\n const validNumber = this.isValidNumber(model);\n if (!validNumber) {\n this.invokeEventCallback('onError', [ event, this.proxy, value, oldValue ]);\n return;\n }\n\n this.updateState({\n props: {\n datavalue: model\n }\n } as S, () => {\n !this.props.onFieldChange && value !== oldValue && this.invokeEventCallback('onChange', [event, this.proxy, value, oldValue]);\n if (source === 'blur') {\n this.invokeEventCallback('onBlur', [event, this.proxy]);\n }\n });\n }\n\n onBlur(event: any) {\n let newVal = event.target.value || this.state.textValue;\n this.validate(newVal);\n if (newVal === '') {\n setTimeout(() => {\n this.props.triggerValidation && this.props.triggerValidation();\n })\n }\n if (this.state.props.updateon === 'blur') {\n let oldVal = this.state.props.datavalue || '';\n if (oldVal !== newVal) {\n this.updateDatavalue(newVal, event, 'blur');\n } else {\n this.invokeEventCallback('onBlur', [event, this.proxy]);\n }\n }\n }\n\n onFocus(event: any) {\n this.invokeEventCallback('onFocus', [ event, this.proxy]);\n }\n\n /**\n * returns the number of decimal places a number have.\n * @param value: number\n * @returns {number}\n */\n private countDecimals(value: any) {\n if (value && ((value % 1) !== 0)) {\n const decimalValue = value.toString().split('.')[1];\n return decimalValue && decimalValue.length;\n }\n return 0;\n }\n\n public validateInputEntry($event: any) {\n const props = this.state.props;\n\n // allow actions if control key is pressed or if backspace is pressed. (for Mozilla).\n if ($event.ctrlKey || includes(['Backspace', 'ArrowRight', 'ArrowLeft', 'Tab', 'Enter', 'Delete'], $event.key)) {\n return;\n }\n\n const validity = new RegExp(`^[\\\\d\\\\s-,.e+${this.GROUP}${this.DECIMAL}]$`, 'i');\n const inputValue = $event.target.value;\n // validates entering of decimal values only when user provides decimal limit(i.e step contains decimal values).\n if (inputValue && this.countDecimals(props.step) && (this.countDecimals(inputValue) >= this.countDecimals(props.step))) {\n $event.preventDefault();\n }\n // validates if user entered an invalid character.\n if (!validity.test($event.key)) {\n $event.preventDefault();\n }\n // a decimal value can be entered only once in the input.\n if (includes(inputValue, this.DECIMAL) && $event.key === this.DECIMAL) {\n $event.preventDefault();\n }\n // 'e' can be entered only once in the input.\n if (intersection(toArray(inputValue), ['e', 'E']).length && includes('eE', $event.key)) {\n $event.preventDefault();\n }\n if ((includes(inputValue, '+') || includes(inputValue, '-')) && ($event.key === '+' || $event.key === '-')) {\n $event.preventDefault();\n }\n this.invokeEventCallback('onKeypress', [ $event, this.proxy]);\n }\n\n /**\n * returns a valid number by validating the minimum and maximum values.\n * @param {number} value\n * @returns {number}\n */\n private getValueInRange(value: number): number {\n const props = this.state.props;\n if (!isNaN(props.minvalue) && value < props.minvalue) {\n this.updateState({ errorType: 'minvalue'} as S);\n return props.minvalue;\n\n }\n if (!isNaN(props.maxvalue) && value > props.maxvalue) {\n this.updateState({ errorType: 'maxvalue'} as S);\n return props.maxvalue;\n }\n return value;\n }\n\n /**\n * Adds validations for the number before updating the widget model. like validating min and max value for the widget.\n * @param {number} val number to be validated\n * @returns {number}\n */\n private isValidNumber(val: number): boolean {\n const props = this.state.props;\n\n //empty number widget should not show validation error when required is false\n // @ts-ignore\n if (this.state.props.required === false && val === '') {\n return true;\n }\n // id number is infinite then consider it as invalid value\n if (isNaN(val) || !isFinite(val) || (!Number.isInteger(props.step) &&\n this.countDecimals(val) > this.countDecimals(props.step))) {\n this.updateState({\n isValid: false,\n } as S);\n return false;\n }\n if (val !== this.getValueInRange(val)) {\n this.updateState({\n isValid: false,\n } as S);\n return true;\n }\n this.resetValidations();\n return true;\n }\n\n // resets all the flags related to the widget's validation.\n protected resetValidations() {\n this.updateState({\n isValid: true,\n } as S);\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n switch (name) {\n case 'minvalue':\n case 'maxvalue':\n if ($new|| $old) {\n this.isValidNumber($new);\n }\n break;\n case 'datavalue':\n this.updateState({\n textValue: $new\n } as S\n );\n const isDefault = this.state.isDefault;\n if (isDefault) {\n this.updateState({ isDefault: false } as S, 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 }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["includes","intersection","isNaN","isFinite","toArray","BaseComponent","BaseComponentState","DEFAULT_CLASS","Platform","countDecimalDigits","validateField","BaseNumberState","constructor","arguments","_defineProperty","BaseNumberComponent","props","defaultClass","length","undefined","defaultProps","defaultState","DECIMAL","GROUP","onChange","event","state","updateon","updateDatavalue","target","value","focus","_this$widgetRef","widgetRef","validateOnDevice","type","isCurrencyField","isValidText","test","Number","onChangeText","isValidTextOnDevice","decimalPlacesInNumber","decimalPlaces","updateState","textValue","validate","invokeChange","e","OS","cursor","selectionStart","setState","validationObj","isValid","errorType","handleValidation","regexp","condition","RegExp","parseNumber","val","parts","split","NaN","number","join","decimal","sum","parseFloat","toFixed","Object","is","source","model","toString","oldValue","datavalue","validNumber","isValidNumber","invokeEventCallback","proxy","onFieldChange","onBlur","newVal","setTimeout","triggerValidation","oldVal","onFocus","countDecimals","decimalValue","validateInputEntry","$event","ctrlKey","key","validity","inputValue","step","preventDefault","getValueInRange","minvalue","maxvalue","required","isInteger","resetValidations","onPropertyChange","name","$new","$old","isDefault","bind"],"sources":["basenumber.component.ts"],"sourcesContent":["import { includes, intersection, isNaN, isFinite, toArray } from 'lodash';\nimport BaseNumberProps from '@wavemaker/app-rn-runtime/components/input/basenumber/basenumber.props';\nimport { BaseComponent, BaseComponentState } from \"@wavemaker/app-rn-runtime/core/base.component\";\nimport { BaseNumberStyles } from '@wavemaker/app-rn-runtime/components/input/basenumber/basenumber.styles';\nimport { DEFAULT_CLASS } from \"@wavemaker/app-rn-runtime/components/navigation/basenav/basenav.styles\";\nimport { Platform, TextInput } from 'react-native';\nimport { countDecimalDigits, validateField } from '@wavemaker/app-rn-runtime/core/utils';\n\nexport class BaseNumberState <T extends BaseNumberProps> extends BaseComponentState<T> {\n isValid: boolean = true;\n textValue: string = '';\n isDefault = false;\n errorType = '';\n}\n\nexport abstract class BaseNumberComponent< T extends BaseNumberProps, S extends BaseNumberState<T>, L extends BaseNumberStyles> extends BaseComponent<T, S, L> {\n private DECIMAL;\n private GROUP;\n public widgetRef: TextInput | null = null;\n private cursor: any = 0;\n constructor(props: T, public defaultClass: string = DEFAULT_CLASS, defaultProps?: T, defaultState?: S) {\n super(props, defaultClass, defaultProps, defaultState);\n this.DECIMAL = '.';\n this.GROUP = ',';\n }\n\n onChange(event: any) {\n if (this.state.props.updateon === 'default') {\n this.updateDatavalue(event.target.value, event);\n }\n }\n\n focus() {\n this?.widgetRef?.focus();\n }\n\n validateOnDevice(value: string, type: 'number' | 'currency') {\n const isCurrencyField = type === 'currency';\n let isValidText = true;\n\n // * check for alphabets\n if (/[a-zA-Z]/.test(value)) {\n isValidText = false;\n }\n\n // * currency only: check for negative number\n if (isCurrencyField && (Number(value) < 0 || /-/g.test(value))) {\n isValidText = false;\n }\n\n // * check for more than one decimal point\n if (/^\\d*\\.\\d*\\..*$/.test(value)) {\n isValidText = false;\n }\n\n // * check for spaces and comma\n if (/[\\s,]/.test(value)) {\n isValidText = false;\n }\n\n return isValidText;\n }\n\n onChangeText(value: string, type: 'number' | 'currency') {\n const isValidTextOnDevice = this.validateOnDevice(value, type);\n if (!isValidTextOnDevice) {\n return;\n }\n\n const decimalPlacesInNumber = countDecimalDigits(value);\n\n if (this.props.decimalPlaces < decimalPlacesInNumber) {\n return;\n }\n\n this.updateState({\n textValue: value\n } as S, () => {\n if (this.state.props.updateon === 'default') {\n this.validate(value);\n this.updateDatavalue(value, null);\n }\n }\n );\n }\n\n invokeChange(e: any) {\n if (Platform.OS === 'web') {\n this.cursor = e.target.selectionStart;\n this.setState({ textValue: e.target.value });\n }\n }\n\n validate(value: any) {\n const validationObj = validateField(this.state.props, value);\n this.updateState({\n isValid: validationObj.isValid,\n errorType: validationObj.errorType\n } as S);\n\n }\n\n handleValidation(value: any) {\n const props = this.state.props;\n if (props.regexp) {\n const condition = new RegExp(props.regexp, 'g');\n return condition.test(value);\n }\n return true;\n }\n\n /**\n * Method parses the Localized number(string) to a valid number.\n * if the string dose not result to a valid number then returns NaN.\n * @param {string} val Localized number.\n * @returns {number}\n */\n private parseNumber(val: string): any {\n // splits string into two parts. decimal and number.\n const parts = val.split(this.DECIMAL);\n if (!parts.length) {\n return;\n }\n if (parts.length > 2) {\n return NaN;\n }\n // If number have decimal point and not have a decimal value then return.\n if (parts[1] === '') {\n return NaN;\n }\n // replaces all group separators form the number.\n const number = Number(parts[0].split(this.GROUP).join(''));\n const decimal = Number(`0.${parts[1] || 0}`);\n if (Number.isNaN(number) || Number.isNaN(decimal)) {\n return NaN;\n }\n const sum = parts.length > 1 ? parseFloat((number + decimal).toFixed(parts[1].length)) : number + decimal;\n // if the number is negative then calculate the number as number - decimal\n // Ex: number = -123 and decimal = 0.45 then number - decimal = -123-045 = -123.45\n // If entered number is -0.1 to -0.9 then the number is -0 and decimal is 0.1 to 0.9. Now calaculate the number as number-decimal\n // Ex: number = -0 and decimal = 0.1 then number-decimal = -0-0.1 = -0.1\n if (number === 0) {\n return Object.is(0, number) ? sum : number - decimal;\n }\n return number > 0 ? sum : number - decimal;\n }\n\n updateDatavalue(value: any, event?: any, source?: any) {\n const model = value && this.parseNumber(value.toString());\n const props = this.state.props;\n const oldValue = props.datavalue;\n if (value === oldValue) {\n return;\n }\n const validNumber = this.isValidNumber(model);\n if (!validNumber) {\n this.invokeEventCallback('onError', [ event, this.proxy, value, oldValue ]);\n return;\n }\n\n this.updateState({\n props: {\n datavalue: model\n }\n } as S, () => {\n !this.props.onFieldChange && value !== oldValue && this.invokeEventCallback('onChange', [event, this.proxy, value, oldValue]);\n if (source === 'blur') {\n this.invokeEventCallback('onBlur', [event, this.proxy]);\n }\n });\n }\n\n onBlur(event: any) {\n let newVal = event.target.value || this.state.textValue;\n this.validate(newVal);\n if (newVal === '') {\n setTimeout(() => {\n this.props.triggerValidation && this.props.triggerValidation();\n })\n }\n if (this.state.props.updateon === 'blur') {\n let oldVal = this.state.props.datavalue || '';\n if (oldVal !== newVal) {\n this.updateDatavalue(newVal, event, 'blur');\n } else {\n this.invokeEventCallback('onBlur', [event, this.proxy]);\n }\n }\n }\n\n onFocus(event: any) {\n this.invokeEventCallback('onFocus', [ event, this.proxy]);\n }\n\n /**\n * returns the number of decimal places a number have.\n * @param value: number\n * @returns {number}\n */\n private countDecimals(value: any) {\n if (value && ((value % 1) !== 0)) {\n const decimalValue = value.toString().split('.')[1];\n return decimalValue && decimalValue.length;\n }\n return 0;\n }\n\n public validateInputEntry($event: any) {\n const props = this.state.props;\n\n // allow actions if control key is pressed or if backspace is pressed. (for Mozilla).\n if ($event.ctrlKey || includes(['Backspace', 'ArrowRight', 'ArrowLeft', 'Tab', 'Enter', 'Delete'], $event.key)) {\n return;\n }\n\n const validity = new RegExp(`^[\\\\d\\\\s-,.e+${this.GROUP}${this.DECIMAL}]$`, 'i');\n const inputValue = $event.target.value;\n // validates entering of decimal values only when user provides decimal limit(i.e step contains decimal values).\n if (inputValue && this.countDecimals(props.step) && (this.countDecimals(inputValue) >= this.countDecimals(props.step))) {\n $event.preventDefault();\n }\n // validates if user entered an invalid character.\n if (!validity.test($event.key)) {\n $event.preventDefault();\n }\n // a decimal value can be entered only once in the input.\n if (includes(inputValue, this.DECIMAL) && $event.key === this.DECIMAL) {\n $event.preventDefault();\n }\n // 'e' can be entered only once in the input.\n if (intersection(toArray(inputValue), ['e', 'E']).length && includes('eE', $event.key)) {\n $event.preventDefault();\n }\n if ((includes(inputValue, '+') || includes(inputValue, '-')) && ($event.key === '+' || $event.key === '-')) {\n $event.preventDefault();\n }\n this.invokeEventCallback('onKeypress', [ $event, this.proxy]);\n }\n\n /**\n * returns a valid number by validating the minimum and maximum values.\n * @param {number} value\n * @returns {number}\n */\n private getValueInRange(value: number): number {\n const props = this.state.props;\n if (!isNaN(props.minvalue) && value < props.minvalue) {\n this.updateState({ errorType: 'minvalue'} as S);\n return props.minvalue;\n\n }\n if (!isNaN(props.maxvalue) && value > props.maxvalue) {\n this.updateState({ errorType: 'maxvalue'} as S);\n return props.maxvalue;\n }\n return value;\n }\n\n /**\n * Adds validations for the number before updating the widget model. like validating min and max value for the widget.\n * @param {number} val number to be validated\n * @returns {number}\n */\n private isValidNumber(val: number): boolean {\n const props = this.state.props;\n\n //empty number widget should not show validation error when required is false\n // @ts-ignore\n if (this.state.props.required === false && val === '') {\n return true;\n }\n // id number is infinite then consider it as invalid value\n if (isNaN(val) || !isFinite(val) || (!Number.isInteger(props.step) &&\n this.countDecimals(val) > this.countDecimals(props.step))) {\n this.updateState({\n isValid: false,\n } as S);\n return false;\n }\n if (val !== this.getValueInRange(val)) {\n this.updateState({\n isValid: false,\n } as S);\n return true;\n }\n this.resetValidations();\n return true;\n }\n\n // resets all the flags related to the widget's validation.\n protected resetValidations() {\n this.updateState({\n isValid: true,\n } as S);\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n switch (name) {\n case 'minvalue':\n case 'maxvalue':\n if ($new|| $old) {\n this.isValidNumber($new);\n }\n break;\n case 'datavalue':\n // ? why here\n // this.updateState({\n // textValue: $new,\n // } as S);\n const isDefault = this.state.isDefault;\n if (isDefault) {\n this.updateState({ isDefault: false } as S, 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 }\n}\n"],"mappings":"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"}
@@ -15,6 +15,7 @@ export default class BaseNumberProps extends BaseProps {
15
15
  _defineProperty(this, "onFieldChange", void 0);
16
16
  _defineProperty(this, "required", false);
17
17
  _defineProperty(this, "triggerValidation", void 0);
18
+ _defineProperty(this, "decimalPlaces", 2);
18
19
  }
19
20
  }
20
21
  //# sourceMappingURL=basenumber.props.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BaseProps","BaseNumberProps","constructor","arguments","_defineProperty"],"sources":["basenumber.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\n\nexport default class BaseNumberProps extends BaseProps {\n datavalue: any;\n minvalue: number = null as any;\n maxvalue: number = null as any;\n step: number = 1;\n updateon: string = 'blur' as any;\n readonly: boolean = null as any;\n regexp: string = null as any;\n onFieldChange: any;\n required: boolean = false;\n triggerValidation: any;\n}\n"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,+CAA+C;AAEzE,eAAe,MAAMC,eAAe,SAASD,SAAS,CAAC;EAAAE,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA;IAAAA,eAAA,mBAElC,IAAI;IAAAA,eAAA,mBACJ,IAAI;IAAAA,eAAA,eACR,CAAC;IAAAA,eAAA,mBACG,MAAM;IAAAA,eAAA,mBACL,IAAI;IAAAA,eAAA,iBACP,IAAI;IAAAA,eAAA;IAAAA,eAAA,mBAED,KAAK;IAAAA,eAAA;EAAA;AAE3B"}
1
+ {"version":3,"names":["BaseProps","BaseNumberProps","constructor","arguments","_defineProperty"],"sources":["basenumber.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\n\nexport default class BaseNumberProps extends BaseProps {\n datavalue: any;\n minvalue: number = null as any;\n maxvalue: number = null as any;\n step: number = 1;\n updateon: string = 'blur' as any;\n readonly: boolean = null as any;\n regexp: string = null as any;\n onFieldChange: any;\n required: boolean = false;\n triggerValidation: any;\n decimalPlaces: number = 2;\n}\n"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,+CAA+C;AAEzE,eAAe,MAAMC,eAAe,SAASD,SAAS,CAAC;EAAAE,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA;IAAAA,eAAA,mBAElC,IAAI;IAAAA,eAAA,mBACJ,IAAI;IAAAA,eAAA,eACR,CAAC;IAAAA,eAAA,mBACG,MAAM;IAAAA,eAAA,mBACL,IAAI;IAAAA,eAAA,iBACP,IAAI;IAAAA,eAAA;IAAAA,eAAA,mBAED,KAAK;IAAAA,eAAA;IAAAA,eAAA,wBAED,CAAC;EAAA;AAC3B"}
@@ -58,10 +58,13 @@ export default class WmCurrency extends BaseNumberComponent {
58
58
  }, opts, {
59
59
  editable: props.disabled || props.readonly ? false : true,
60
60
  placeholder: props.placeholder,
61
+ value: this.state.textValue,
61
62
  onBlur: this.onBlur.bind(this),
62
63
  onFocus: this.onFocus.bind(this),
63
64
  onKeyPress: this.validateInputEntry.bind(this),
64
- onChangeText: this.onChangeText.bind(this),
65
+ onChangeText: text => {
66
+ this.onChangeText.bind(this)(text, 'currency');
67
+ },
65
68
  onChange: this.invokeChange.bind(this),
66
69
  allowContentSelection: this.styles.text.userSelect === 'text'
67
70
  })));
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Text","Platform","WmCurrencyProps","CURRENCY_INFO","WMTextInput","DEFAULT_CLASS","BaseNumberComponent","BaseNumberState","isNull","WmCurrencyState","constructor","arguments","_defineProperty","WmCurrency","props","onPropertyChange","name","$new","$old","updateState","currencySymbol","symbol","renderWidget","_this$state$textValue","opts","valueExpr","OS","state","textValue","toString","createElement","style","styles","root","labelWrapper","label","_extends","ref","widgetRef","selectionStart","selectionEnd","cursor","keyboardType","placeholderTextColor","placeholderText","color","input","text","isValid","invalid","editable","disabled","readonly","placeholder","onBlur","bind","onFocus","onKeyPress","validateInputEntry","onChangeText","onChange","invokeChange","allowContentSelection","userSelect"],"sources":["currency.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Text, Platform } from 'react-native';\n\nimport WmCurrencyProps from './currency.props';\nimport { CURRENCY_INFO } from '@wavemaker/app-rn-runtime/core/currency-constants';\nimport { WMTextInput } from '@wavemaker/app-rn-runtime/core/components/textinput.component';\nimport { DEFAULT_CLASS, WmCurrencyStyles } from './currency.styles';\nimport {\n BaseNumberComponent,\n BaseNumberState\n} from '@wavemaker/app-rn-runtime/components/input/basenumber/basenumber.component';\nimport { isNull } from \"lodash\";\nexport class WmCurrencyState extends BaseNumberState<WmCurrencyProps> {\n currencySymbol: any;\n}\n\nexport default class WmCurrency extends BaseNumberComponent<WmCurrencyProps, WmCurrencyState, WmCurrencyStyles> {\n\n constructor(props: WmCurrencyProps) {\n super(props, DEFAULT_CLASS, new WmCurrencyProps(), new WmCurrencyState());\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n super.onPropertyChange(name, $new, $old);\n switch (name) {\n case 'currency':\n if ($new) {\n this.updateState({\n currencySymbol: CURRENCY_INFO[$new].symbol,\n } as WmCurrencyState);\n }\n break;\n\n }\n }\n\n renderWidget(props: WmCurrencyProps) {\n let opts: any = {};\n const valueExpr = Platform.OS === 'web' ? 'value' : 'defaultValue';\n opts[valueExpr] = this.state.textValue?.toString() || '';\n return (<View style={this.styles.root}>\n <View style={this.styles.labelWrapper}>\n <Text style={this.styles.label}>{this.state.currencySymbol}</Text></View>\n <WMTextInput\n ref={(ref: any) => {\n 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 }}\n keyboardType=\"numeric\"\n placeholderTextColor={this.styles.placeholderText.color as any}\n style={[this.styles.input, this.styles.text, this.state.isValid ? {} : this.styles.invalid]}\n {...opts}\n editable={props.disabled || props.readonly ? false : true}\n placeholder={props.placeholder}\n onBlur={this.onBlur.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onKeyPress={this.validateInputEntry.bind(this)}\n onChangeText={this.onChangeText.bind(this)}\n onChange={this.invokeChange.bind(this)}\n allowContentSelection={this.styles.text.userSelect === 'text'}\n />\n </View>);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","View","Text","Platform","WmCurrencyProps","CURRENCY_INFO","WMTextInput","DEFAULT_CLASS","BaseNumberComponent","BaseNumberState","isNull","WmCurrencyState","constructor","arguments","_defineProperty","WmCurrency","props","onPropertyChange","name","$new","$old","updateState","currencySymbol","symbol","renderWidget","_this$state$textValue","opts","valueExpr","OS","state","textValue","toString","createElement","style","styles","root","labelWrapper","label","_extends","ref","widgetRef","selectionStart","selectionEnd","cursor","keyboardType","placeholderTextColor","placeholderText","color","input","text","isValid","invalid","editable","disabled","readonly","placeholder","value","onBlur","bind","onFocus","onKeyPress","validateInputEntry","onChangeText","onChange","invokeChange","allowContentSelection","userSelect"],"sources":["currency.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Text, Platform } from 'react-native';\n\nimport WmCurrencyProps from './currency.props';\nimport { CURRENCY_INFO } from '@wavemaker/app-rn-runtime/core/currency-constants';\nimport { WMTextInput } from '@wavemaker/app-rn-runtime/core/components/textinput.component';\nimport { DEFAULT_CLASS, WmCurrencyStyles } from './currency.styles';\nimport {\n BaseNumberComponent,\n BaseNumberState\n} from '@wavemaker/app-rn-runtime/components/input/basenumber/basenumber.component';\nimport { isNull } from \"lodash\";\nexport class WmCurrencyState extends BaseNumberState<WmCurrencyProps> {\n currencySymbol: any;\n}\n\nexport default class WmCurrency extends BaseNumberComponent<WmCurrencyProps, WmCurrencyState, WmCurrencyStyles> {\n\n constructor(props: WmCurrencyProps) {\n super(props, DEFAULT_CLASS, new WmCurrencyProps(), new WmCurrencyState());\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n super.onPropertyChange(name, $new, $old);\n switch (name) {\n case 'currency':\n if ($new) {\n this.updateState({\n currencySymbol: CURRENCY_INFO[$new].symbol,\n } as WmCurrencyState);\n }\n break;\n\n }\n }\n\n renderWidget(props: WmCurrencyProps) {\n let opts: any = {};\n const valueExpr = Platform.OS === 'web' ? 'value' : 'defaultValue';\n opts[valueExpr] = this.state.textValue?.toString() || '';\n return (<View style={this.styles.root}>\n <View style={this.styles.labelWrapper}>\n <Text style={this.styles.label}>{this.state.currencySymbol}</Text></View>\n <WMTextInput\n ref={(ref: any) => {\n 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 }}\n keyboardType=\"numeric\"\n placeholderTextColor={this.styles.placeholderText.color as any}\n style={[this.styles.input, this.styles.text, this.state.isValid ? {} : this.styles.invalid]}\n {...opts}\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, 'currency');\n }}\n onChange={this.invokeChange.bind(this)}\n allowContentSelection={this.styles.text.userSelect === 'text'}\n />\n </View>);\n }\n}\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,QAAQ,cAAc;AAEnD,OAAOC,eAAe,MAAM,kBAAkB;AAC9C,SAASC,aAAa,QAAQ,mDAAmD;AACjF,SAASC,WAAW,QAAQ,+DAA+D;AAC3F,SAASC,aAAa,QAA0B,mBAAmB;AACnE,SACEC,mBAAmB,EACnBC,eAAe,QACV,4EAA4E;AACnF,SAASC,MAAM,QAAQ,QAAQ;AAC/B,OAAO,MAAMC,eAAe,SAASF,eAAe,CAAkB;EAAAG,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA;EAAA;AAEtE;AAEA,eAAe,MAAMC,UAAU,SAASP,mBAAmB,CAAqD;EAE9GI,WAAWA,CAACI,KAAsB,EAAE;IAClC,KAAK,CAACA,KAAK,EAAET,aAAa,EAAE,IAAIH,eAAe,CAAC,CAAC,EAAE,IAAIO,eAAe,CAAC,CAAC,CAAC;EAC3E;EAEAM,gBAAgBA,CAACC,IAAY,EAAEC,IAAS,EAAEC,IAAS,EAAE;IACnD,KAAK,CAACH,gBAAgB,CAACC,IAAI,EAAEC,IAAI,EAAEC,IAAI,CAAC;IACxC,QAAQF,IAAI;MACV,KAAK,UAAU;QACb,IAAIC,IAAI,EAAE;UACR,IAAI,CAACE,WAAW,CAAC;YACfC,cAAc,EAAEjB,aAAa,CAACc,IAAI,CAAC,CAACI;UACtC,CAAoB,CAAC;QACvB;QACA;IAEJ;EACF;EAEAC,YAAYA,CAACR,KAAsB,EAAE;IAAA,IAAAS,qBAAA;IACnC,IAAIC,IAAS,GAAG,CAAC,CAAC;IAClB,MAAMC,SAAS,GAAGxB,QAAQ,CAACyB,EAAE,KAAK,KAAK,GAAG,OAAO,GAAG,cAAc;IAClEF,IAAI,CAACC,SAAS,CAAC,GAAG,EAAAF,qBAAA,OAAI,CAACI,KAAK,CAACC,SAAS,cAAAL,qBAAA,uBAApBA,qBAAA,CAAsBM,QAAQ,CAAC,CAAC,KAAI,EAAE;IACxD,oBAAQ/B,KAAA,CAAAgC,aAAA,CAAC/B,IAAI;MAACgC,KAAK,EAAE,IAAI,CAACC,MAAM,CAACC;IAAK,gBACpCnC,KAAA,CAAAgC,aAAA,CAAC/B,IAAI;MAACgC,KAAK,EAAE,IAAI,CAACC,MAAM,CAACE;IAAa,gBACpCpC,KAAA,CAAAgC,aAAA,CAAC9B,IAAI;MAAC+B,KAAK,EAAE,IAAI,CAACC,MAAM,CAACG;IAAM,GAAE,IAAI,CAACR,KAAK,CAACP,cAAqB,CAAO,CAAC,eAC3EtB,KAAA,CAAAgC,aAAA,CAAC1B,WAAW,EAAAgC,QAAA;MACVC,GAAG,EAAGA,GAAQ,IAAK;QACjB,IAAI,CAACC,SAAS,GAAGD,GAAG;QACpB;QACA,IAAIA,GAAG,IAAI,CAAC7B,MAAM,CAAC6B,GAAG,CAACE,cAAc,CAAC,IAAI,CAAC/B,MAAM,CAAC6B,GAAG,CAACG,YAAY,CAAC,EAAE;UACnE;UACAH,GAAG,CAACE,cAAc,GAAGF,GAAG,CAACG,YAAY,GAAG,IAAI,CAACC,MAAM;QACrD;MACF,CAAE;MACFC,YAAY,EAAC,SAAS;MACtBC,oBAAoB,EAAE,IAAI,CAACX,MAAM,CAACY,eAAe,CAACC,KAAa;MAC/Dd,KAAK,EAAE,CAAC,IAAI,CAACC,MAAM,CAACc,KAAK,EAAE,IAAI,CAACd,MAAM,CAACe,IAAI,EAAE,IAAI,CAACpB,KAAK,CAACqB,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAChB,MAAM,CAACiB,OAAO;IAAE,GACxFzB,IAAI;MACR0B,QAAQ,EAAEpC,KAAK,CAACqC,QAAQ,IAAIrC,KAAK,CAACsC,QAAQ,GAAG,KAAK,GAAG,IAAK;MAC1DC,WAAW,EAAEvC,KAAK,CAACuC,WAAY;MAC/BC,KAAK,EAAE,IAAI,CAAC3B,KAAK,CAACC,SAAU;MAC5B2B,MAAM,EAAE,IAAI,CAACA,MAAM,CAACC,IAAI,CAAC,IAAI,CAAE;MAC/BC,OAAO,EAAE,IAAI,CAACA,OAAO,CAACD,IAAI,CAAC,IAAI,CAAE;MACjCE,UAAU,EAAE,IAAI,CAACC,kBAAkB,CAACH,IAAI,CAAC,IAAI,CAAE;MAC/CI,YAAY,EAAGb,IAAI,IAAK;QACtB,IAAI,CAACa,YAAY,CAACJ,IAAI,CAAC,IAAI,CAAC,CAACT,IAAI,EAAE,UAAU,CAAC;MAChD,CAAE;MACFc,QAAQ,EAAE,IAAI,CAACC,YAAY,CAACN,IAAI,CAAC,IAAI,CAAE;MACvCO,qBAAqB,EAAE,IAAI,CAAC/B,MAAM,CAACe,IAAI,CAACiB,UAAU,KAAK;IAAO,EAC/D,CACG,CAAC;EACT;AACF"}
@@ -40,10 +40,13 @@ export default class WmNumber extends BaseNumberComponent {
40
40
  autoFocus: props.autofocus,
41
41
  editable: props.disabled || props.readonly ? false : true,
42
42
  placeholder: props.placeholder,
43
+ value: this.state.textValue,
43
44
  onBlur: this.onBlur.bind(this),
44
45
  onFocus: this.onFocus.bind(this),
45
46
  onKeyPress: this.validateInputEntry.bind(this),
46
- onChangeText: this.onChangeText.bind(this),
47
+ onChangeText: text => {
48
+ this.onChangeText.bind(this)(text, 'number');
49
+ },
47
50
  onChange: this.invokeChange.bind(this),
48
51
  allowContentSelection: this.styles.text.userSelect === 'text'
49
52
  }));
@@ -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","state","textValue","toString","createElement","_extends","ref","widgetRef","selectionStart","selectionEnd","cursor","style","styles","root","isValid","invalid","keyboardType","placeholderTextColor","placeholderText","color","autoFocus","autofocus","editable","disabled","readonly","placeholder","onBlur","bind","onFocus","onKeyPress","validateInputEntry","onChangeText","onChange","invokeChange","allowContentSelection","text","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 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 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 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 onBlur={this.onBlur.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onKeyPress={this.validateInputEntry.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":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,MAAM,QAAQ,QAAQ;AAE/B,OAAOC,aAAa,MAAM,gBAAgB;AAC1C,SAASC,aAAa,QAAwB,iBAAiB;AAC/D,SAASC,WAAW,QAAQ,+DAA+D;AAC3F,SACEC,mBAAmB,EACnBC,eAAe,QACV,4EAA4E;AAEnF,OAAO,MAAMC,aAAa,SAASD,eAAe,CAAgB;EAAAE,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA;EAAA;AAElE;AAEA,eAAe,MAAMC,QAAQ,SAASN,mBAAmB,CAA+C;EAEtGG,WAAWA,CAACI,KAAoB,EAAE;IAChC,KAAK,CAACA,KAAK,EAAET,aAAa,EAAE,IAAID,aAAa,CAAC,CAAC,EAAE,IAAIK,aAAa,CAAC,CAAC,CAAC;EACvE;EAEAM,YAAYA,CAACD,KAAoB,EAAE;IAAA,IAAAE,qBAAA;IACjC,IAAIC,IAAS,GAAG,CAAC,CAAC;IAClB,MAAMC,SAAS,GAAGhB,QAAQ,CAACiB,EAAE,KAAK,KAAK,GAAG,OAAO,GAAG,cAAc;IAClEF,IAAI,CAACC,SAAS,CAAC,GAAG,EAAAF,qBAAA,OAAI,CAACI,KAAK,CAACC,SAAS,cAAAL,qBAAA,uBAApBA,qBAAA,CAAsBM,QAAQ,CAAC,CAAC,KAAI,EAAE;IACxD,oBAAQrB,KAAA,CAAAsB,aAAA,CAACjB,WAAW,EAAAkB,QAAA;MAClBC,GAAG,EAAGA,GAAQ,IAAK;QAAC,IAAI,CAACC,SAAS,GAAGD,GAAG;QACtC;QACA,IAAIA,GAAG,IAAI,CAACtB,MAAM,CAACsB,GAAG,CAACE,cAAc,CAAC,IAAI,CAACxB,MAAM,CAACsB,GAAG,CAACG,YAAY,CAAC,EAAE;UACnE;UACAH,GAAG,CAACE,cAAc,GAAGF,GAAG,CAACG,YAAY,GAAG,IAAI,CAACC,MAAM;QACrD;MAAC;IAAE,GACDZ,IAAI;MACRa,KAAK,EAAE,CAAC,IAAI,CAACC,MAAM,CAACC,IAAI,EAAE,IAAI,CAACZ,KAAK,CAACa,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAACF,MAAM,CAACG,OAAO,CAAE;MACzEC,YAAY,EAAC,SAAS;MACtBC,oBAAoB,EAAE,IAAI,CAACL,MAAM,CAACM,eAAe,CAACC,KAAa;MAC/DC,SAAS,EAAEzB,KAAK,CAAC0B,SAAU;MAC3BC,QAAQ,EAAE3B,KAAK,CAAC4B,QAAQ,IAAI5B,KAAK,CAAC6B,QAAQ,GAAG,KAAK,GAAG,IAAK;MAC1DC,WAAW,EAAE9B,KAAK,CAAC8B,WAAY;MAC/BC,MAAM,EAAE,IAAI,CAACA,MAAM,CAACC,IAAI,CAAC,IAAI,CAAE;MAC/BC,OAAO,EAAE,IAAI,CAACA,OAAO,CAACD,IAAI,CAAC,IAAI,CAAE;MACjCE,UAAU,EAAE,IAAI,CAACC,kBAAkB,CAACH,IAAI,CAAC,IAAI,CAAE;MAC/CI,YAAY,EAAE,IAAI,CAACA,YAAY,CAACJ,IAAI,CAAC,IAAI,CAAE;MAC3CK,QAAQ,EAAE,IAAI,CAACC,YAAY,CAACN,IAAI,CAAC,IAAI,CAAE;MACvCO,qBAAqB,EAAE,IAAI,CAACtB,MAAM,CAACuB,IAAI,CAACC,UAAU,KAAK;IAAO,EAC/D,CAAC;EACJ;AACF"}
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","state","textValue","toString","createElement","_extends","ref","widgetRef","selectionStart","selectionEnd","cursor","style","styles","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 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 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 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":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,MAAM,QAAQ,QAAQ;AAE/B,OAAOC,aAAa,MAAM,gBAAgB;AAC1C,SAASC,aAAa,QAAwB,iBAAiB;AAC/D,SAASC,WAAW,QAAQ,+DAA+D;AAC3F,SACEC,mBAAmB,EACnBC,eAAe,QACV,4EAA4E;AAEnF,OAAO,MAAMC,aAAa,SAASD,eAAe,CAAgB;EAAAE,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA;EAAA;AAElE;AAEA,eAAe,MAAMC,QAAQ,SAASN,mBAAmB,CAA+C;EAEtGG,WAAWA,CAACI,KAAoB,EAAE;IAChC,KAAK,CAACA,KAAK,EAAET,aAAa,EAAE,IAAID,aAAa,CAAC,CAAC,EAAE,IAAIK,aAAa,CAAC,CAAC,CAAC;EACvE;EAEAM,YAAYA,CAACD,KAAoB,EAAE;IAAA,IAAAE,qBAAA;IACjC,IAAIC,IAAS,GAAG,CAAC,CAAC;IAClB,MAAMC,SAAS,GAAGhB,QAAQ,CAACiB,EAAE,KAAK,KAAK,GAAG,OAAO,GAAG,cAAc;IAClEF,IAAI,CAACC,SAAS,CAAC,GAAG,EAAAF,qBAAA,OAAI,CAACI,KAAK,CAACC,SAAS,cAAAL,qBAAA,uBAApBA,qBAAA,CAAsBM,QAAQ,CAAC,CAAC,KAAI,EAAE;IACxD,oBAAQrB,KAAA,CAAAsB,aAAA,CAACjB,WAAW,EAAAkB,QAAA;MAClBC,GAAG,EAAGA,GAAQ,IAAK;QAAC,IAAI,CAACC,SAAS,GAAGD,GAAG;QACtC;QACA,IAAIA,GAAG,IAAI,CAACtB,MAAM,CAACsB,GAAG,CAACE,cAAc,CAAC,IAAI,CAACxB,MAAM,CAACsB,GAAG,CAACG,YAAY,CAAC,EAAE;UACnE;UACAH,GAAG,CAACE,cAAc,GAAGF,GAAG,CAACG,YAAY,GAAG,IAAI,CAACC,MAAM;QACrD;MAAC;IAAE,GACDZ,IAAI;MACRa,KAAK,EAAE,CAAC,IAAI,CAACC,MAAM,CAACC,IAAI,EAAE,IAAI,CAACZ,KAAK,CAACa,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAACF,MAAM,CAACG,OAAO,CAAE;MACzEC,YAAY,EAAC,SAAS;MACtBC,oBAAoB,EAAE,IAAI,CAACL,MAAM,CAACM,eAAe,CAACC,KAAa;MAC/DC,SAAS,EAAEzB,KAAK,CAAC0B,SAAU;MAC3BC,QAAQ,EAAE3B,KAAK,CAAC4B,QAAQ,IAAI5B,KAAK,CAAC6B,QAAQ,GAAG,KAAK,GAAG,IAAK;MAC1DC,WAAW,EAAE9B,KAAK,CAAC8B,WAAY;MAC/BC,KAAK,EAAE,IAAI,CAACzB,KAAK,CAACC,SAAU;MAC5ByB,MAAM,EAAE,IAAI,CAACA,MAAM,CAACC,IAAI,CAAC,IAAI,CAAE;MAC/BC,OAAO,EAAE,IAAI,CAACA,OAAO,CAACD,IAAI,CAAC,IAAI,CAAE;MACjCE,UAAU,EAAE,IAAI,CAACC,kBAAkB,CAACH,IAAI,CAAC,IAAI,CAAE;MAC/CI,YAAY,EAAGC,IAAI,IAAK;QACtB,IAAI,CAACD,YAAY,CAACJ,IAAI,CAAC,IAAI,CAAC,CAACK,IAAI,EAAE,QAAQ,CAAC;MAC9C,CAAE;MACFC,QAAQ,EAAE,IAAI,CAACC,YAAY,CAACP,IAAI,CAAC,IAAI,CAAE;MACvCQ,qBAAqB,EAAE,IAAI,CAACxB,MAAM,CAACqB,IAAI,CAACI,UAAU,KAAK;IAAO,EAC/D,CAAC;EACJ;AACF"}
@@ -0,0 +1,22 @@
1
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
+ 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); }
4
+ export class ConstantService {
5
+ constructor() {
6
+ _defineProperty(this, "VALIDATOR", {
7
+ REQUIRED: 'required',
8
+ MAXCHARS: 'maxchars',
9
+ MINVALUE: 'minvalue',
10
+ MAXVALUE: 'maxvalue',
11
+ REGEXP: 'regexp',
12
+ MINDATE: 'mindate',
13
+ MAXDATE: 'maxdate',
14
+ MINTIME: 'mintime',
15
+ MAXTIME: 'maxtime',
16
+ EXCLUDEDATES: 'excludedates',
17
+ EXCLUDEDAYS: 'excludedays'
18
+ });
19
+ }
20
+ }
21
+ export default new ConstantService();
22
+ //# sourceMappingURL=constant.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ConstantService","constructor","_defineProperty","REQUIRED","MAXCHARS","MINVALUE","MAXVALUE","REGEXP","MINDATE","MAXDATE","MINTIME","MAXTIME","EXCLUDEDATES","EXCLUDEDAYS"],"sources":["constant.service.ts"],"sourcesContent":["export class ConstantService {\n VALIDATOR = {\n REQUIRED: 'required',\n MAXCHARS: 'maxchars',\n MINVALUE: 'minvalue',\n MAXVALUE: 'maxvalue',\n REGEXP: 'regexp',\n MINDATE: 'mindate',\n MAXDATE: 'maxdate',\n MINTIME: 'mintime',\n MAXTIME: 'maxtime',\n EXCLUDEDATES: 'excludedates',\n EXCLUDEDAYS: 'excludedays'\n };\n }\n \n export default new ConstantService();\n "],"mappings":";;;AAAA,OAAO,MAAMA,eAAe,CAAC;EAAAC,YAAA;IAAAC,eAAA,oBACb;MACXC,QAAQ,EAAE,UAAU;MACpBC,QAAQ,EAAE,UAAU;MACpBC,QAAQ,EAAE,UAAU;MACpBC,QAAQ,EAAE,UAAU;MACpBC,MAAM,EAAE,QAAQ;MAChBC,OAAO,EAAE,SAAS;MAClBC,OAAO,EAAE,SAAS;MAClBC,OAAO,EAAE,SAAS;MAClBC,OAAO,EAAE,SAAS;MAClBC,YAAY,EAAE,cAAc;MAC5BC,WAAW,EAAE;IACf,CAAC;EAAA;AACH;AAEA,eAAe,IAAIb,eAAe,CAAC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { parseInt } from 'lodash';
2
2
  import moment from 'moment';
3
3
  import { CURRENCY_INFO } from './constants/currency-constants';
4
+ import injector from '@wavemaker/app-rn-runtime/core/injector';
4
5
  export class DateToStringFormatter {
5
6
  format(input, format) {
6
7
  if (!input) {
@@ -10,7 +11,7 @@ export class DateToStringFormatter {
10
11
  return input.getTime() + '';
11
12
  }
12
13
  format = format.replace(/d/g, 'D');
13
- const _moment = moment(input, true);
14
+ const _moment = moment(input, ["MM/DD/YYYY", "MM-DD-YYYY", "MM.DD.YYYY", "YYYY/MM/DD", "YYYY-MM-DD", "YYYY.MM.DD", "MM/DD/YY", "MM-DD-YY", "MM.DD.YY", "DD MMM YYYY"], true);
14
15
  return _moment.isValid() ? _moment.format(format) : input.toString();
15
16
  }
16
17
  }
@@ -26,7 +27,13 @@ export class AppendFormatter {
26
27
  }
27
28
  export class NumberToStringFormatter {
28
29
  format(input, fractionSize) {
29
- return isNaN(input) ? '' : input.toFixed(fractionSize).toLocaleLowerCase();
30
+ const i18nService = injector.I18nService.get();
31
+ const selectedLocale = i18nService.getSelectedLocale();
32
+ let formatCurrency = new Intl.NumberFormat(selectedLocale, {
33
+ minimumFractionDigits: fractionSize,
34
+ maximumFractionDigits: fractionSize
35
+ });
36
+ return isNaN(input) ? '' : formatCurrency.format(input);
30
37
  }
31
38
  }
32
39
  export class CurrencyFormatter {
@@ -1 +1 @@
1
- {"version":3,"names":["parseInt","moment","CURRENCY_INFO","DateToStringFormatter","format","input","getTime","replace","_moment","isValid","toString","PrependFormatter","prefix","undefined","AppendFormatter","suffix","NumberToStringFormatter","fractionSize","isNaN","toFixed","toLocaleLowerCase","CurrencyFormatter","data","currencySymbol","fracSize","_currencySymbol","symbol","_val","isNegativeNumber","startsWith","TimeFromNowFormatter","timestamp","fromNow","StringToNumberFormatter","Map"],"sources":["formatters.ts"],"sourcesContent":["import { parseInt } from 'lodash';\nimport moment from 'moment';\nimport { CURRENCY_INFO, Currency } from './constants/currency-constants';\nimport { DateFormatter } from '@wavemaker/variables/src/types/date-formatter';\n\nexport interface Formatter {\n format: (input: any, ...params: any) => any;\n}\n\nexport class DateToStringFormatter implements DateFormatter {\n\n public format(input: Date, format: string): string {\n if (!input) {\n return '';\n }\n if (format === 'timestamp') {\n return input.getTime() + '';\n }\n format = format.replace(/d/g, 'D');\n const _moment = moment(input, true);\n return _moment.isValid() ? _moment.format(format) : input.toString();\n }\n}\n\nexport class PrependFormatter implements Formatter {\n\n public format(input: any, prefix: string): string {\n return (prefix || '') + (input !== null || input != undefined ? input : '');\n }\n}\n\nexport class AppendFormatter implements Formatter {\n\n public format(input: any, suffix: string): string {\n return (input !== null || input != undefined ? input : '') + (suffix || '');\n }\n}\n\nexport class NumberToStringFormatter implements Formatter {\n\n public format(input: number, fractionSize: number): string {\n return isNaN(input) ? '': input.toFixed(fractionSize).toLocaleLowerCase();\n }\n}\n\nexport class CurrencyFormatter implements Formatter {\n\n public format(data: number, currencySymbol: string, fracSize: number) {\n const _currencySymbol = ((((CURRENCY_INFO as any)[currencySymbol]) || {}) as Currency).symbol || currencySymbol || '';\n let _val = new NumberToStringFormatter().format(data, fracSize);\n const isNegativeNumber = _val.startsWith('-');\n if (isNegativeNumber) {\n _val = _val.replace('-','');\n }\n return _val ? isNegativeNumber ? '-'+ _currencySymbol +_val :_currencySymbol + _val : '';\n }\n}\n\nexport class TimeFromNowFormatter implements Formatter {\n public format(timestamp: Date) {\n return timestamp ? moment(timestamp).fromNow() : undefined;\n }\n}\n\nexport class StringToNumberFormatter implements Formatter {\n public format(input: string) {\n return parseInt(input);\n }\n}\n\nexport default new Map<string, Formatter>([\n ['numberToString', new NumberToStringFormatter()],\n ['prefix', new PrependFormatter()],\n ['suffix', new AppendFormatter()],\n ['stringToNumber', new StringToNumberFormatter()],\n ['timeFromNow', new TimeFromNowFormatter()],\n ['toDate', new DateToStringFormatter()],\n ['toCurrency', new CurrencyFormatter()]\n]);\n"],"mappings":"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"}
1
+ {"version":3,"names":["parseInt","moment","CURRENCY_INFO","injector","DateToStringFormatter","format","input","getTime","replace","_moment","isValid","toString","PrependFormatter","prefix","undefined","AppendFormatter","suffix","NumberToStringFormatter","fractionSize","i18nService","I18nService","get","selectedLocale","getSelectedLocale","formatCurrency","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","isNaN","CurrencyFormatter","data","currencySymbol","fracSize","_currencySymbol","symbol","_val","isNegativeNumber","startsWith","TimeFromNowFormatter","timestamp","fromNow","StringToNumberFormatter","Map"],"sources":["formatters.ts"],"sourcesContent":["import { parseInt } from 'lodash';\nimport moment from 'moment';\nimport { CURRENCY_INFO, Currency } from './constants/currency-constants';\nimport { DateFormatter } from '@wavemaker/variables/src/types/date-formatter';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\n\nexport interface Formatter {\n format: (input: any, ...params: any) => any;\n}\n\nexport class DateToStringFormatter implements DateFormatter {\n\n public format(input: Date, format: string): string {\n if (!input) {\n return '';\n }\n if (format === 'timestamp') {\n return input.getTime() + '';\n }\n format = format.replace(/d/g, 'D');\n const _moment = moment(input, [\n \"MM/DD/YYYY\", \"MM-DD-YYYY\", \"MM.DD.YYYY\",\n \"YYYY/MM/DD\", \"YYYY-MM-DD\", \"YYYY.MM.DD\",\n \"MM/DD/YY\", \"MM-DD-YY\", \"MM.DD.YY\", \"DD MMM YYYY\",\n ], true);\n return _moment.isValid() ? _moment.format(format) : input.toString();\n }\n}\n\nexport class PrependFormatter implements Formatter {\n\n public format(input: any, prefix: string): string {\n return (prefix || '') + (input !== null || input != undefined ? input : '');\n }\n}\n\nexport class AppendFormatter implements Formatter {\n\n public format(input: any, suffix: string): string {\n return (input !== null || input != undefined ? input : '') + (suffix || '');\n }\n}\n\nexport class NumberToStringFormatter implements Formatter {\n\n public format(input: number, fractionSize: number): string {\n const i18nService = injector.I18nService.get();\n const selectedLocale = i18nService.getSelectedLocale();\n let formatCurrency = new Intl.NumberFormat(selectedLocale,{\n minimumFractionDigits: fractionSize,\n maximumFractionDigits: fractionSize,\n });\n return isNaN(input) ? '': formatCurrency.format(input);\n }\n}\n\nexport class CurrencyFormatter implements Formatter {\n\n public format(data: number, currencySymbol: string, fracSize: number) {\n const _currencySymbol = ((((CURRENCY_INFO as any)[currencySymbol]) || {}) as Currency).symbol || currencySymbol || '';\n let _val = new NumberToStringFormatter().format(data, fracSize);\n const isNegativeNumber = _val.startsWith('-');\n if (isNegativeNumber) {\n _val = _val.replace('-','');\n }\n return _val ? isNegativeNumber ? '-'+ _currencySymbol +_val :_currencySymbol + _val : '';\n }\n}\n\nexport class TimeFromNowFormatter implements Formatter {\n public format(timestamp: Date) {\n return timestamp ? moment(timestamp).fromNow() : undefined;\n }\n}\n\nexport class StringToNumberFormatter implements Formatter {\n public format(input: string) {\n return parseInt(input);\n }\n}\n\nexport default new Map<string, Formatter>([\n ['numberToString', new NumberToStringFormatter()],\n ['prefix', new PrependFormatter()],\n ['suffix', new AppendFormatter()],\n ['stringToNumber', new StringToNumberFormatter()],\n ['timeFromNow', new TimeFromNowFormatter()],\n ['toDate', new DateToStringFormatter()],\n ['toCurrency', new CurrencyFormatter()]\n]);\n"],"mappings":"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"}
@@ -39,9 +39,12 @@ export class Tappable extends React.Component {
39
39
  target === null || target === void 0 ? void 0 : target.invokeEventCallback('onDoubletap', [syntheticEvent, target]);
40
40
  }, 200);
41
41
  }
42
- this.props.onTap && this.props.onTap(e || syntheticEvent);
43
42
  setTimeout(() => {
44
- target === null || target === void 0 ? void 0 : target.invokeEventCallback('onTap', [syntheticEvent, target]);
43
+ if (this.props.onTap) {
44
+ this.props.onTap(e || syntheticEvent);
45
+ } else {
46
+ target === null || target === void 0 ? void 0 : target.invokeEventCallback('onTap', [syntheticEvent, target]);
47
+ }
45
48
  }, 200);
46
49
  }
47
50
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","TouchableOpacity","get","injector","TapEvent","constructor","_defineProperty","stopPropagation","propagationEnabled","Tappable","Component","props","onPress","e","delta","Date","getTime","lastPress","target","CURRENT_EVENT","setTimeout","syntheticEvent","_injector$FOCUSED_ELE","FOCUSED_ELEMENT","blur","onDoubleTap","invokeEventCallback","onTap","onLongTap","_this$props$target","render","onLongtap","onDoubletap","createElement","disabled","proxy","style","styles","onLongPress","children"],"sources":["tappable.component.tsx"],"sourcesContent":["import { BaseComponent } from \"@wavemaker/app-rn-runtime/core/base.component\";\nimport React from \"react\";\nimport { GestureResponderEvent, View } from \"react-native\";\nimport { TouchableOpacity } from \"react-native\";\nimport { get } from \"lodash\";\nimport injector from \"./injector\";\n\ninterface TappableProps {\n children?: any\n styles?: any;\n target?: BaseComponent<any, any, any>;\n onTap?: (e: any) => void;\n onLongTap?: (e: any) => void; \n onDoubleTap?: (e: any) => void;\n}\n\nexport class TapEvent {\n propagationEnabled = true;\n\n constructor() {\n\n }\n\n stopPropagation() {\n this.propagationEnabled = false;\n }\n}\n\nexport class Tappable extends React.Component<TappableProps, any> {\n private lastPress = 0;\n\n static CURRENT_EVENT: TapEvent = null as any;\n\n constructor(props: any) {\n super(props);\n }\n\n onPress(e?: GestureResponderEvent): void {\n const delta = new Date().getTime() - this.lastPress;\n this.lastPress = this.lastPress > 0 ? 0: new Date().getTime();\n const target = this.props.target;\n if (!Tappable.CURRENT_EVENT) {\n Tappable.CURRENT_EVENT = new TapEvent();\n setTimeout(() => {\n Tappable.CURRENT_EVENT = null as any;\n }, 10);\n }\n const syntheticEvent = Tappable.CURRENT_EVENT;\n if (syntheticEvent.propagationEnabled) {\n injector.FOCUSED_ELEMENT.get()?.blur();\n if(delta < 500) {\n this.props.onDoubleTap && this.props.onDoubleTap(e);\n setTimeout(() => {\n target?.invokeEventCallback('onDoubletap', [syntheticEvent, target]);\n }, 200);\n }\n this.props.onTap && this.props.onTap(e || syntheticEvent);\n setTimeout(() => {\n target?.invokeEventCallback('onTap', [syntheticEvent, target]);\n }, 200);\n }\n }\n\n onLongTap(e?: GestureResponderEvent): void {\n const syntheticEvent = Tappable.CURRENT_EVENT;\n this.props.onLongTap && this.props.onLongTap(e || syntheticEvent);\n setTimeout(() => {\n this.props.target?.invokeEventCallback('onLongtap', [syntheticEvent, this.props.target]);\n }, 200);\n }\n\n render() {\n const target = this.props.target;\n if (target?.props.onTap \n || target?.props.onLongtap \n || target?.props.onDoubletap \n || this.props.onTap \n || this.props.onLongTap \n || this.props.onDoubleTap) {\n return (\n <TouchableOpacity disabled={get(target?.proxy, 'disabled')}\n style={this.props.styles}\n onPress={() => this.onPress()}\n onLongPress={() => this.onLongTap()}>\n {this.props.children}\n </TouchableOpacity>\n );\n }\n return (<View style={this.props.styles}>{this.props.children}</View>);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","View","TouchableOpacity","get","injector","TapEvent","constructor","_defineProperty","stopPropagation","propagationEnabled","Tappable","Component","props","onPress","e","delta","Date","getTime","lastPress","target","CURRENT_EVENT","setTimeout","syntheticEvent","_injector$FOCUSED_ELE","FOCUSED_ELEMENT","blur","onDoubleTap","invokeEventCallback","onTap","onLongTap","_this$props$target","render","onLongtap","onDoubletap","createElement","disabled","proxy","style","styles","onLongPress","children"],"sources":["tappable.component.tsx"],"sourcesContent":["import { BaseComponent } from \"@wavemaker/app-rn-runtime/core/base.component\";\nimport React from \"react\";\nimport { GestureResponderEvent, View } from \"react-native\";\nimport { TouchableOpacity } from \"react-native\";\nimport { get } from \"lodash\";\nimport injector from \"./injector\";\n\ninterface TappableProps {\n children?: any\n styles?: any;\n target?: BaseComponent<any, any, any>;\n onTap?: (e: any) => void;\n onLongTap?: (e: any) => void; \n onDoubleTap?: (e: any) => void;\n}\n\nexport class TapEvent {\n propagationEnabled = true;\n\n constructor() {\n\n }\n\n stopPropagation() {\n this.propagationEnabled = false;\n }\n}\n\nexport class Tappable extends React.Component<TappableProps, any> {\n private lastPress = 0;\n\n static CURRENT_EVENT: TapEvent = null as any;\n\n constructor(props: any) {\n super(props);\n }\n\n onPress(e?: GestureResponderEvent): void {\n const delta = new Date().getTime() - this.lastPress;\n this.lastPress = this.lastPress > 0 ? 0: new Date().getTime();\n const target = this.props.target;\n if (!Tappable.CURRENT_EVENT) {\n Tappable.CURRENT_EVENT = new TapEvent();\n setTimeout(() => {\n Tappable.CURRENT_EVENT = null as any;\n }, 10);\n }\n const syntheticEvent = Tappable.CURRENT_EVENT;\n if (syntheticEvent.propagationEnabled) {\n injector.FOCUSED_ELEMENT.get()?.blur();\n if(delta < 500) {\n this.props.onDoubleTap && this.props.onDoubleTap(e);\n setTimeout(() => {\n target?.invokeEventCallback('onDoubletap', [syntheticEvent, target]);\n }, 200);\n } \n setTimeout(() => {\n if (this.props.onTap) {\n this.props.onTap(e || syntheticEvent);\n } else {\n target?.invokeEventCallback('onTap', [syntheticEvent, target]);\n }\n }, 200)\n\n }\n }\n\n onLongTap(e?: GestureResponderEvent): void {\n const syntheticEvent = Tappable.CURRENT_EVENT;\n this.props.onLongTap && this.props.onLongTap(e || syntheticEvent);\n setTimeout(() => {\n this.props.target?.invokeEventCallback('onLongtap', [syntheticEvent, this.props.target]);\n }, 200);\n }\n\n render() {\n const target = this.props.target;\n if (target?.props.onTap \n || target?.props.onLongtap \n || target?.props.onDoubletap \n || this.props.onTap \n || this.props.onLongTap \n || this.props.onDoubleTap) {\n return (\n <TouchableOpacity disabled={get(target?.proxy, 'disabled')}\n style={this.props.styles}\n onPress={() => this.onPress()}\n onLongPress={() => this.onLongTap()}>\n {this.props.children}\n </TouchableOpacity>\n );\n }\n return (<View style={this.props.styles}>{this.props.children}</View>);\n }\n}\n"],"mappings":"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"}
@@ -286,6 +286,22 @@ export const validateField = (props, value) => {
286
286
  isValid: true
287
287
  };
288
288
  };
289
+ export const countDecimalDigits = number => {
290
+ if (!number) return 0;
291
+
292
+ // * convert the number to a string
293
+ const numberString = number.toString();
294
+
295
+ // * regular expression to match and count the decimal digits
296
+ const decimalMatch = numberString.match(/\.(\d+)/);
297
+ if (decimalMatch) {
298
+ const decimalDigits = decimalMatch[1];
299
+ return decimalDigits.length;
300
+ } else {
301
+ return 0; // * no decimal digits found
302
+ }
303
+ };
304
+
289
305
  export const formatCompactNumber = number => {
290
306
  const isNegative = number < 0;
291
307
  number = isNegative ? number * -1 : number;
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","moment","FileSystem","isFunction","includes","isUndefined","isNull","orderBy","groupBy","toLower","get","forEach","sortBy","cloneDeep","keys","values","isArray","isString","isNumber","GROUP_BY_OPTIONS","ALPHABET","WORD","OTHERS","TIME_ROLLUP_OPTIONS","HOUR","DAY","WEEK","MONTH","YEAR","_deepCopy","o1","_len","arguments","length","o2","Array","_key","o","Object","k","v","deepCopy","_len2","objects","_key2","toBoolean","val","undefined","toNumber","parseFloat","e","encodeUrl","url","splits","split","hash","params","map","p","encodeURIComponent","join","encodeURI","isWebPreviewMode","OS","isDevMode","__DEV__","widgetsWithUndefinedValue","isAndroid","test","window","navigator","userAgent","isIos","getGroupKey","fieldDef","groupby","widgetScope","innerItem","apply","proxy","getGroupedData","fieldDefs","match","orderby","dateFormat","groupKey","groupedLiData","concatStr","toString","trim","substr","replace","format","getSortedGroupedData","getOrderedDataset","dataSet","items","fields","directions","obj","item","push","_groupedData","groupkey","index","liData","key","data","_groupIndex","isDefined","unStringify","defaultVal","number","parseInt","isNaN","retryIfFails","fn","interval","maxRetries","onBeforeRetry","Promise","resolve","retryCount","tryFn","reject","errorFn","errArgs","setTimeout","then","retry","getAbortableDefer","_defer","promise","onAbort","isAborted","abort","validateField","props","value","requiredCheck","regexCheck","required","errorType","isValid","regexp","condition","RegExp","maxchars","mindate","Date","datavalue","startOf","toDate","maxdate","endOf","formatCompactNumber","isNegative","formattedNumber","toFixed","toBase64","path","readAsStringAsync","encoding","DATASET_WIDGETS","Set","isDataSetWidget","widget","has","isFullPathUrl","startsWith"],"sources":["utils.ts"],"sourcesContent":["import { Platform } from 'react-native';\nimport moment from \"moment\";\nimport * as FileSystem from \"expo-file-system\";\nimport { isFunction, includes, isUndefined, isNull, orderBy, groupBy, toLower, get, forEach, sortBy, cloneDeep, keys, values, isArray, isString, isNumber} from 'lodash';\n\ndeclare const window: any;\nconst GROUP_BY_OPTIONS = {\n ALPHABET: 'alphabet',\n WORD: 'word',\n OTHERS: 'Others'\n};\nconst TIME_ROLLUP_OPTIONS = {\n HOUR: 'hour',\n DAY: 'day',\n WEEK: 'week',\n MONTH: 'month',\n YEAR: 'year'\n};\n\nconst _deepCopy = (o1: any, ...o2: any) => {\n o2.forEach((o: any) => {\n if (o) {\n Object.keys(o).forEach(k => {\n const v = o[k];\n if (v && !isString(v) && !isArray(v) && typeof v === 'object') {\n o1[k] = _deepCopy(o1[k] || {}, o[k]);\n } else {\n o1[k] = _deepCopy(v);\n }\n });\n }\n });\n return o1;\n};\n\nexport const deepCopy = (...objects: any) => _deepCopy({}, ...objects);\n\nexport const toBoolean = (val: any) => {\n return val === true\n || val === 'true'\n || !(val === false\n || val === null\n || val === undefined\n || val === '');\n};\n\nexport const toNumber = (val: any) => {\n try {\n return parseFloat(val) || 0;\n } catch(e) {\n return 0;\n }\n};\n\n/**\n * this method encodes the url and returns the encoded string\n */\n export const encodeUrl = (url: string): string => {\n let splits = url.split('#');\n const hash = splits[1];\n splits = splits[0].split('?');\n let params = '';\n if (splits.length > 1) {\n params = splits[1].split('&')\n .map(p => p.split('='))\n .map(p => p[0] +'=' + encodeURIComponent(p[1]))\n .join('&');\n }\n return encodeURI(splits[0]) + (params ? '?' + params: '') + (hash ? '#'+ hash : '');\n};\n\nexport const isWebPreviewMode = () => Platform.OS === 'web';\n\nexport const isDevMode = () => isWebPreviewMode() || __DEV__;\n\nexport const widgetsWithUndefinedValue = ['checkbox', 'toggle'];\n\nexport const isAndroid = () => (Platform.OS === 'android' || (Platform.OS === 'web' && /android/i.test(window.navigator.userAgent)));\n\nexport const isIos = () => (Platform.OS === 'ios' || (Platform.OS === 'web' && /iPhone|iPad/i.test(window.navigator.userAgent)));\n\nconst getGroupKey = (fieldDef: any, groupby: string, widgetScope: any, innerItem?: any) => isFunction(groupby) ? groupby.apply(widgetScope.proxy, [innerItem ? fieldDef[innerItem] : fieldDef]) : get(innerItem ? fieldDef[innerItem] : fieldDef, groupby);\n\n/**\n * This method prepares the grouped data.\n *\n * @param fieldDefs array of objects i.e. dataset\n * @param groupby string groupby\n * @param match string match\n * @param orderby string orderby\n * @param dateFormat string date format\n */\nexport const getGroupedData = (fieldDefs: any, groupby: string, match: string, orderby: string, dateFormat: string, widgetScope: any, innerItem?: any) => {\n\n // handling case-in-sensitive scenario\n // ordering the data based on groupby field. If there is innerItem then apply orderby using the innerItem's containing the groupby field.\n fieldDefs = orderBy(fieldDefs, fieldDef => {\n const groupKey = getGroupKey(fieldDef, groupby, widgetScope, innerItem);\n if (groupKey) {\n return toLower(groupKey);\n }\n return '';\n });\n\n // extract the grouped data based on the field obtained from 'groupDataByField'.\n const groupedLiData = groupBy(fieldDefs, function (fieldDef) {\n let concatStr = getGroupKey(fieldDef, groupby, widgetScope, innerItem);\n // by default set the undefined groupKey as 'others'\n if (isUndefined(concatStr) || isNull(concatStr) || concatStr.toString().trim() === '') {\n return GROUP_BY_OPTIONS.OTHERS;\n }\n // if match prop is alphabetic ,get the starting alphabet of the word as key.\n if (match === GROUP_BY_OPTIONS.ALPHABET) {\n concatStr = concatStr.substr(0, 1);\n }\n\n // if match contains the time options then get the concatStr using 'getTimeRolledUpString'\n if (includes(values(TIME_ROLLUP_OPTIONS), match)) {\n dateFormat = dateFormat && dateFormat.replace(/d/g, 'D');\n dateFormat = dateFormat && dateFormat.replace(/y/g, 'Y');\n concatStr = moment(concatStr).format(dateFormat);\n }\n\n return concatStr;\n });\n\n return getSortedGroupedData(groupedLiData, groupby, orderby, innerItem);\n};\n\n/**\n * function to get the ordered dataset based on the given orderby\n */\nexport const getOrderedDataset = (dataSet: any, orderby: string, innerItem?: any) => {\n if (!orderBy) {\n return cloneDeep(dataSet);\n }\n\n // The order by only works when the dataset contains list of objects.\n const items = orderby && orderby.split(','),\n fields: any = [],\n directions: any = [];\n items && items.forEach( obj => {\n const item = obj.split(':');\n fields.push(innerItem ? innerItem + '.' + item[0] : item[0]);\n directions.push(item[1]);\n });\n return orderBy(dataSet, fields, directions);\n};\n\n\n/**\n * This method returns sorted data based to groupkey.\n * Returns a array of objects, each object containing key which is groupKey and data is the sorted data which is sorted by groupby field in the data.\n *\n * @param groupedLiData, grouped data object with key as the groupKey and its value as the array of objects grouped under the groupKey.\n * @param groupBy, string groupby property\n * @returns {any[]}\n */\nexport const getSortedGroupedData = (groupedLiData: any, groupBy: string, orderby: string, innerItem?: any) => {\n const _groupedData: any = [];\n forEach(keys(groupedLiData), (groupkey, index) => {\n const liData = getOrderedDataset(groupedLiData[groupkey], orderby, innerItem);\n _groupedData.push({\n key: groupkey,\n data: sortBy(liData, data => {\n data._groupIndex = index;\n return get(data, groupBy) || get(data[innerItem], groupBy);\n })\n });\n });\n return _groupedData;\n};\n\nexport const isDefined = (v: any) => typeof v !== 'undefined';\n\n// try to convert the chekedvalue and unchecked values to boolean/number\nexport const unStringify = (val: any, defaultVal?: boolean) => {\n if (val === null) {\n return defaultVal;\n }\n\n if (val === true || val === 'true') {\n return true;\n }\n\n if (val === false || val === 'false') {\n return false;\n }\n\n const number = parseInt(val, 10);\n if (!isNaN(number)) {\n return number;\n }\n return val;\n};\n\n/**\n * This function invokes the given the function (fn) until the function successfully executes or the maximum number\n * of retries is reached or onBeforeRetry returns false.\n *\n * @param fn - a function that is needs to be invoked. The function can also return a promise as well.\n * @param interval - minimum time gap between successive retries. This argument should be greater or equal to 0.\n * @param maxRetries - maximum number of retries. This argument should be greater than 0. For all other values,\n * maxRetries is infinity.\n * @param onBeforeRetry - a callback function that will be invoked before re-invoking again. This function can\n * return false or a promise that is resolved to false to stop further retry attempts.\n * @returns {*} a promise that is resolved when fn is success (or) maximum retry attempts reached\n * (or) onBeforeRetry returned false.\n */\nexport const retryIfFails = (fn: Function, interval: number, maxRetries: number, onBeforeRetry = () => Promise.resolve(false)) => {\n let retryCount = 0;\n const tryFn = () => {\n retryCount++;\n if (isFunction(fn)) {\n return fn();\n }\n };\n maxRetries = (isNumber(maxRetries) && maxRetries > 0 ? maxRetries : 0);\n interval = (isNumber(interval) && interval > 0 ? interval : 0);\n return new Promise((resolve, reject) => {\n const errorFn = function () {\n const errArgs = arguments;\n setTimeout(() => {\n Promise.resolve().then(() => onBeforeRetry()).then(function (retry) {\n if (retry !== false && (!maxRetries || retryCount <= maxRetries)) {\n Promise.resolve().then(() => tryFn()).then(resolve, errorFn);\n } else {\n reject(errArgs);\n }\n }, () => reject(errArgs));\n }, interval);\n };\n Promise.resolve().then(() => tryFn()).then(resolve, errorFn);\n });\n};\n\n/**\n * Promise of a defer created using this function, has abort function that will reject the defer when called.\n * @returns {*} angular defer object\n */\nexport const getAbortableDefer = () => {\n const _defer: any = {\n promise: null,\n reject: null,\n resolve: null,\n onAbort: () => { },\n isAborted: false\n };\n _defer.promise = new Promise((resolve, reject) => {\n _defer.resolve = resolve;\n _defer.reject = reject;\n });\n _defer.promise.abort = () => {\n _defer.onAbort && _defer.onAbort();\n _defer.reject('aborted');\n _defer.isAborted = true;\n };\n return _defer;\n};\n\nexport const validateField = (props: any, value: any) => {\n let requiredCheck = true, regexCheck = true;\n if (props.required) {\n if (isArray(value)) {\n requiredCheck = value.length === 0 ? false : true\n } else {\n requiredCheck = !value ? false : true\n }\n if (!requiredCheck) {\n return {\n errorType : 'required',\n isValid: false\n }\n }\n }\n if (value && props.regexp) {\n const condition = new RegExp(\"^\" + props.regexp + \"$\", 'g');\n regexCheck = condition.test(value);\n if (!regexCheck) {\n return {\n errorType : 'regexp',\n isValid: false\n }\n }\n }\n if (value && props.maxchars && value.length > props.maxchars) {\n return {\n errorType : 'maxchars',\n isValid: false\n }\n\n }\n if (value && props.mindate && new Date(props.datavalue) < moment(props.mindate).startOf('day').toDate()) {\n return {\n errorType : 'mindate',\n isValid: false\n }\n }\n if (value && props.maxdate && new Date(props.datavalue) > moment(props.maxdate).endOf('day').toDate()) {\n return {\n errorType : 'maxdate',\n isValid: false\n }\n }\n\n return {\n isValid: true\n }\n};\n\nexport const formatCompactNumber = (number: number) => {\n const isNegative = number < 0;\n number = isNegative ? number * -1 : number;\n let formattedNumber = number + '';\n if (number >= 1000 && number < 1_000_000) {\n formattedNumber = (number / 1000).toFixed(1).replace(/\\.0$/, \"\") + \"K\";\n } else if (number >= 1_000_000 && number < 1_000_000_000) {\n formattedNumber = (number / 1_000_000).toFixed(1).replace(/\\.0$/, \"\") + \"M\";\n } else if (number >= 1_000_000_000 && number < 1_000_000_000_000) {\n formattedNumber = (number / 1_000_000_000).toFixed(1).replace(/\\.0$/, \"\") + \"B\";\n } else if (number >= 1_000_000_000_000 && number < 1_000_000_000_000_000) {\n formattedNumber = (number / 1_000_000_000_000).toFixed(1).replace(/\\.0$/, \"\") + \"T\";\n }\n return (isNegative ? '-' : '') + formattedNumber;\n}\n\nexport const toBase64 = function(path: string) {\n return FileSystem.readAsStringAsync(path, { encoding: 'base64' });\n};\n\nconst DATASET_WIDGETS = new Set([ 'select', 'checkboxset', 'radioset', 'switch', 'autocomplete', 'chips', 'typeahead', 'rating']);\nexport const isDataSetWidget = (widget: any) => {\n return DATASET_WIDGETS.has(widget);\n};\nexport const isFullPathUrl = (url: string) => {\n return isString(url) &&\n (url.startsWith('data:') \n || url.startsWith('http:') \n || url.startsWith('https:') \n || url.startsWith('file:'));\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["Platform","moment","FileSystem","isFunction","includes","isUndefined","isNull","orderBy","groupBy","toLower","get","forEach","sortBy","cloneDeep","keys","values","isArray","isString","isNumber","GROUP_BY_OPTIONS","ALPHABET","WORD","OTHERS","TIME_ROLLUP_OPTIONS","HOUR","DAY","WEEK","MONTH","YEAR","_deepCopy","o1","_len","arguments","length","o2","Array","_key","o","Object","k","v","deepCopy","_len2","objects","_key2","toBoolean","val","undefined","toNumber","parseFloat","e","encodeUrl","url","splits","split","hash","params","map","p","encodeURIComponent","join","encodeURI","isWebPreviewMode","OS","isDevMode","__DEV__","widgetsWithUndefinedValue","isAndroid","test","window","navigator","userAgent","isIos","getGroupKey","fieldDef","groupby","widgetScope","innerItem","apply","proxy","getGroupedData","fieldDefs","match","orderby","dateFormat","groupKey","groupedLiData","concatStr","toString","trim","substr","replace","format","getSortedGroupedData","getOrderedDataset","dataSet","items","fields","directions","obj","item","push","_groupedData","groupkey","index","liData","key","data","_groupIndex","isDefined","unStringify","defaultVal","number","parseInt","isNaN","retryIfFails","fn","interval","maxRetries","onBeforeRetry","Promise","resolve","retryCount","tryFn","reject","errorFn","errArgs","setTimeout","then","retry","getAbortableDefer","_defer","promise","onAbort","isAborted","abort","validateField","props","value","requiredCheck","regexCheck","required","errorType","isValid","regexp","condition","RegExp","maxchars","mindate","Date","datavalue","startOf","toDate","maxdate","endOf","countDecimalDigits","numberString","decimalMatch","decimalDigits","formatCompactNumber","isNegative","formattedNumber","toFixed","toBase64","path","readAsStringAsync","encoding","DATASET_WIDGETS","Set","isDataSetWidget","widget","has","isFullPathUrl","startsWith"],"sources":["utils.ts"],"sourcesContent":["import { Platform } from 'react-native';\nimport moment from \"moment\";\nimport * as FileSystem from \"expo-file-system\";\nimport { isFunction, includes, isUndefined, isNull, orderBy, groupBy, toLower, get, forEach, sortBy, cloneDeep, keys, values, isArray, isString, isNumber} from 'lodash';\n\ndeclare const window: any;\nconst GROUP_BY_OPTIONS = {\n ALPHABET: 'alphabet',\n WORD: 'word',\n OTHERS: 'Others'\n};\nconst TIME_ROLLUP_OPTIONS = {\n HOUR: 'hour',\n DAY: 'day',\n WEEK: 'week',\n MONTH: 'month',\n YEAR: 'year'\n};\n\nconst _deepCopy = (o1: any, ...o2: any) => {\n o2.forEach((o: any) => {\n if (o) {\n Object.keys(o).forEach(k => {\n const v = o[k];\n if (v && !isString(v) && !isArray(v) && typeof v === 'object') {\n o1[k] = _deepCopy(o1[k] || {}, o[k]);\n } else {\n o1[k] = _deepCopy(v);\n }\n });\n }\n });\n return o1;\n};\n\nexport const deepCopy = (...objects: any) => _deepCopy({}, ...objects);\n\nexport const toBoolean = (val: any) => {\n return val === true\n || val === 'true'\n || !(val === false\n || val === null\n || val === undefined\n || val === '');\n};\n\nexport const toNumber = (val: any) => {\n try {\n return parseFloat(val) || 0;\n } catch(e) {\n return 0;\n }\n};\n\n/**\n * this method encodes the url and returns the encoded string\n */\n export const encodeUrl = (url: string): string => {\n let splits = url.split('#');\n const hash = splits[1];\n splits = splits[0].split('?');\n let params = '';\n if (splits.length > 1) {\n params = splits[1].split('&')\n .map(p => p.split('='))\n .map(p => p[0] +'=' + encodeURIComponent(p[1]))\n .join('&');\n }\n return encodeURI(splits[0]) + (params ? '?' + params: '') + (hash ? '#'+ hash : '');\n};\n\nexport const isWebPreviewMode = () => Platform.OS === 'web';\n\nexport const isDevMode = () => isWebPreviewMode() || __DEV__;\n\nexport const widgetsWithUndefinedValue = ['checkbox', 'toggle'];\n\nexport const isAndroid = () => (Platform.OS === 'android' || (Platform.OS === 'web' && /android/i.test(window.navigator.userAgent)));\n\nexport const isIos = () => (Platform.OS === 'ios' || (Platform.OS === 'web' && /iPhone|iPad/i.test(window.navigator.userAgent)));\n\nconst getGroupKey = (fieldDef: any, groupby: string, widgetScope: any, innerItem?: any) => isFunction(groupby) ? groupby.apply(widgetScope.proxy, [innerItem ? fieldDef[innerItem] : fieldDef]) : get(innerItem ? fieldDef[innerItem] : fieldDef, groupby);\n\n/**\n * This method prepares the grouped data.\n *\n * @param fieldDefs array of objects i.e. dataset\n * @param groupby string groupby\n * @param match string match\n * @param orderby string orderby\n * @param dateFormat string date format\n */\nexport const getGroupedData = (fieldDefs: any, groupby: string, match: string, orderby: string, dateFormat: string, widgetScope: any, innerItem?: any) => {\n\n // handling case-in-sensitive scenario\n // ordering the data based on groupby field. If there is innerItem then apply orderby using the innerItem's containing the groupby field.\n fieldDefs = orderBy(fieldDefs, fieldDef => {\n const groupKey = getGroupKey(fieldDef, groupby, widgetScope, innerItem);\n if (groupKey) {\n return toLower(groupKey);\n }\n return '';\n });\n\n // extract the grouped data based on the field obtained from 'groupDataByField'.\n const groupedLiData = groupBy(fieldDefs, function (fieldDef) {\n let concatStr = getGroupKey(fieldDef, groupby, widgetScope, innerItem);\n // by default set the undefined groupKey as 'others'\n if (isUndefined(concatStr) || isNull(concatStr) || concatStr.toString().trim() === '') {\n return GROUP_BY_OPTIONS.OTHERS;\n }\n // if match prop is alphabetic ,get the starting alphabet of the word as key.\n if (match === GROUP_BY_OPTIONS.ALPHABET) {\n concatStr = concatStr.substr(0, 1);\n }\n\n // if match contains the time options then get the concatStr using 'getTimeRolledUpString'\n if (includes(values(TIME_ROLLUP_OPTIONS), match)) {\n dateFormat = dateFormat && dateFormat.replace(/d/g, 'D');\n dateFormat = dateFormat && dateFormat.replace(/y/g, 'Y');\n concatStr = moment(concatStr).format(dateFormat);\n }\n\n return concatStr;\n });\n\n return getSortedGroupedData(groupedLiData, groupby, orderby, innerItem);\n};\n\n/**\n * function to get the ordered dataset based on the given orderby\n */\nexport const getOrderedDataset = (dataSet: any, orderby: string, innerItem?: any) => {\n if (!orderBy) {\n return cloneDeep(dataSet);\n }\n\n // The order by only works when the dataset contains list of objects.\n const items = orderby && orderby.split(','),\n fields: any = [],\n directions: any = [];\n items && items.forEach( obj => {\n const item = obj.split(':');\n fields.push(innerItem ? innerItem + '.' + item[0] : item[0]);\n directions.push(item[1]);\n });\n return orderBy(dataSet, fields, directions);\n};\n\n\n/**\n * This method returns sorted data based to groupkey.\n * Returns a array of objects, each object containing key which is groupKey and data is the sorted data which is sorted by groupby field in the data.\n *\n * @param groupedLiData, grouped data object with key as the groupKey and its value as the array of objects grouped under the groupKey.\n * @param groupBy, string groupby property\n * @returns {any[]}\n */\nexport const getSortedGroupedData = (groupedLiData: any, groupBy: string, orderby: string, innerItem?: any) => {\n const _groupedData: any = [];\n forEach(keys(groupedLiData), (groupkey, index) => {\n const liData = getOrderedDataset(groupedLiData[groupkey], orderby, innerItem);\n _groupedData.push({\n key: groupkey,\n data: sortBy(liData, data => {\n data._groupIndex = index;\n return get(data, groupBy) || get(data[innerItem], groupBy);\n })\n });\n });\n return _groupedData;\n};\n\nexport const isDefined = (v: any) => typeof v !== 'undefined';\n\n// try to convert the chekedvalue and unchecked values to boolean/number\nexport const unStringify = (val: any, defaultVal?: boolean) => {\n if (val === null) {\n return defaultVal;\n }\n\n if (val === true || val === 'true') {\n return true;\n }\n\n if (val === false || val === 'false') {\n return false;\n }\n\n const number = parseInt(val, 10);\n if (!isNaN(number)) {\n return number;\n }\n return val;\n};\n\n/**\n * This function invokes the given the function (fn) until the function successfully executes or the maximum number\n * of retries is reached or onBeforeRetry returns false.\n *\n * @param fn - a function that is needs to be invoked. The function can also return a promise as well.\n * @param interval - minimum time gap between successive retries. This argument should be greater or equal to 0.\n * @param maxRetries - maximum number of retries. This argument should be greater than 0. For all other values,\n * maxRetries is infinity.\n * @param onBeforeRetry - a callback function that will be invoked before re-invoking again. This function can\n * return false or a promise that is resolved to false to stop further retry attempts.\n * @returns {*} a promise that is resolved when fn is success (or) maximum retry attempts reached\n * (or) onBeforeRetry returned false.\n */\nexport const retryIfFails = (fn: Function, interval: number, maxRetries: number, onBeforeRetry = () => Promise.resolve(false)) => {\n let retryCount = 0;\n const tryFn = () => {\n retryCount++;\n if (isFunction(fn)) {\n return fn();\n }\n };\n maxRetries = (isNumber(maxRetries) && maxRetries > 0 ? maxRetries : 0);\n interval = (isNumber(interval) && interval > 0 ? interval : 0);\n return new Promise((resolve, reject) => {\n const errorFn = function () {\n const errArgs = arguments;\n setTimeout(() => {\n Promise.resolve().then(() => onBeforeRetry()).then(function (retry) {\n if (retry !== false && (!maxRetries || retryCount <= maxRetries)) {\n Promise.resolve().then(() => tryFn()).then(resolve, errorFn);\n } else {\n reject(errArgs);\n }\n }, () => reject(errArgs));\n }, interval);\n };\n Promise.resolve().then(() => tryFn()).then(resolve, errorFn);\n });\n};\n\n/**\n * Promise of a defer created using this function, has abort function that will reject the defer when called.\n * @returns {*} angular defer object\n */\nexport const getAbortableDefer = () => {\n const _defer: any = {\n promise: null,\n reject: null,\n resolve: null,\n onAbort: () => { },\n isAborted: false\n };\n _defer.promise = new Promise((resolve, reject) => {\n _defer.resolve = resolve;\n _defer.reject = reject;\n });\n _defer.promise.abort = () => {\n _defer.onAbort && _defer.onAbort();\n _defer.reject('aborted');\n _defer.isAborted = true;\n };\n return _defer;\n};\n\nexport const validateField = (props: any, value: any) => {\n let requiredCheck = true, regexCheck = true;\n if (props.required) {\n if (isArray(value)) {\n requiredCheck = value.length === 0 ? false : true\n } else {\n requiredCheck = !value ? false : true\n }\n if (!requiredCheck) {\n return {\n errorType : 'required',\n isValid: false\n }\n }\n }\n if (value && props.regexp) {\n const condition = new RegExp(\"^\" + props.regexp + \"$\", 'g');\n regexCheck = condition.test(value);\n if (!regexCheck) {\n return {\n errorType : 'regexp',\n isValid: false\n }\n }\n }\n if (value && props.maxchars && value.length > props.maxchars) {\n return {\n errorType : 'maxchars',\n isValid: false\n }\n\n }\n if (value && props.mindate && new Date(props.datavalue) < moment(props.mindate).startOf('day').toDate()) {\n return {\n errorType : 'mindate',\n isValid: false\n }\n }\n if (value && props.maxdate && new Date(props.datavalue) > moment(props.maxdate).endOf('day').toDate()) {\n return {\n errorType : 'maxdate',\n isValid: false\n }\n }\n\n return {\n isValid: true\n }\n};\n\nexport const countDecimalDigits = (number: number | string) => {\n if (!number) return 0;\n\n // * convert the number to a string\n const numberString = number.toString();\n \n // * regular expression to match and count the decimal digits\n const decimalMatch = numberString.match(/\\.(\\d+)/);\n\n if (decimalMatch) {\n const decimalDigits = decimalMatch[1];\n return decimalDigits.length;\n } else {\n return 0; // * no decimal digits found\n }\n}\n\nexport const formatCompactNumber = (number: number) => {\n const isNegative = number < 0;\n number = isNegative ? number * -1 : number;\n let formattedNumber = number + '';\n if (number >= 1000 && number < 1_000_000) {\n formattedNumber = (number / 1000).toFixed(1).replace(/\\.0$/, \"\") + \"K\";\n } else if (number >= 1_000_000 && number < 1_000_000_000) {\n formattedNumber = (number / 1_000_000).toFixed(1).replace(/\\.0$/, \"\") + \"M\";\n } else if (number >= 1_000_000_000 && number < 1_000_000_000_000) {\n formattedNumber = (number / 1_000_000_000).toFixed(1).replace(/\\.0$/, \"\") + \"B\";\n } else if (number >= 1_000_000_000_000 && number < 1_000_000_000_000_000) {\n formattedNumber = (number / 1_000_000_000_000).toFixed(1).replace(/\\.0$/, \"\") + \"T\";\n }\n return (isNegative ? '-' : '') + formattedNumber;\n}\n\nexport const toBase64 = function(path: string) {\n return FileSystem.readAsStringAsync(path, { encoding: 'base64' });\n};\n\nconst DATASET_WIDGETS = new Set([ 'select', 'checkboxset', 'radioset', 'switch', 'autocomplete', 'chips', 'typeahead', 'rating']);\nexport const isDataSetWidget = (widget: any) => {\n return DATASET_WIDGETS.has(widget);\n};\nexport const isFullPathUrl = (url: string) => {\n return isString(url) &&\n (url.startsWith('data:') \n || url.startsWith('http:') \n || url.startsWith('https:') \n || url.startsWith('file:'));\n};\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wavemaker/app-rn-runtime",
3
- "version": "11.4.2-rc.5389",
3
+ "version": "11.4.2-rc.5398",
4
4
  "description": "''",
5
5
  "main": "index",
6
6
  "module": "index",
@@ -49,7 +49,7 @@
49
49
  "@react-navigation/native": "6.1.7",
50
50
  "@react-navigation/stack": "^6.3.7",
51
51
  "@types/lodash-es": "^4.17.6",
52
- "@wavemaker/variables": "11.4.2-rc.5389",
52
+ "@wavemaker/variables": "11.4.2-rc.5398",
53
53
  "axios": "^1.4.0",
54
54
  "color": "4.2.3",
55
55
  "cross-env": "^5.2.0",
@@ -127,7 +127,7 @@
127
127
  "typescript": "^5.1.3",
128
128
  "victory-native": "36.6.11",
129
129
  "yargs": "^16.2.0",
130
- "@wavemaker/variables": "11.4.2-rc.5389"
130
+ "@wavemaker/variables": "11.4.2-rc.5398"
131
131
  },
132
132
  "jest": {
133
133
  "preset": "react-native",
@@ -12,8 +12,10 @@ import { NativeModulesProxy } from 'expo-modules-core';
12
12
  import * as WebBrowser from 'expo-web-browser';
13
13
  import { get, last } from 'lodash';
14
14
  import { RENDER_LOGGER } from '@wavemaker/app-rn-runtime/core/logger';
15
+ import EventNotifier from '@wavemaker/app-rn-runtime/core/event-notifier';
15
16
  import { ThemeProvider } from '@wavemaker/app-rn-runtime/styles/theme';
16
17
  import StorageService from '@wavemaker/app-rn-runtime/core/storage.service';
18
+ import ConstantService from '@wavemaker/app-rn-runtime/core/constant.service';
17
19
  import injector from '@wavemaker/app-rn-runtime/core/injector';
18
20
  import formatters from '@wavemaker/app-rn-runtime/core/formatters';
19
21
  import { deepCopy, isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';
@@ -73,6 +75,7 @@ class DrawerImpl {
73
75
  }
74
76
  const SUPPORTED_SERVICES = {
75
77
  Utils: Utils,
78
+ CONSTANTS: ConstantService,
76
79
  StorageService: StorageService,
77
80
  AppDisplayManagerService: AppDisplayManagerService
78
81
  };
@@ -86,6 +89,7 @@ export default class BaseApp extends React.Component {
86
89
  _defineProperty(this, "onAppVariablesReady", () => {});
87
90
  _defineProperty(this, "isStarted", false);
88
91
  _defineProperty(this, "appConfig", injector.get('APP_CONFIG'));
92
+ _defineProperty(this, "eventNotifier", new EventNotifier());
89
93
  _defineProperty(this, "baseUrl", '');
90
94
  _defineProperty(this, "targetPlatform", 'NATIVE_MOBILE');
91
95
  _defineProperty(this, "cleanup", []);
@@ -141,6 +145,18 @@ export default class BaseApp extends React.Component {
141
145
  }
142
146
  };
143
147
  }
148
+ subscribe(event, fn) {
149
+ return this.eventNotifier.subscribe(event, fn);
150
+ }
151
+ notify(event) {
152
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
153
+ args[_key - 1] = arguments[_key];
154
+ }
155
+ return this.eventNotifier.notify(event, args);
156
+ }
157
+ get activePage() {
158
+ return this.appConfig.currentPage;
159
+ }
144
160
  goToPage(pageName, params) {
145
161
  var _this$appConfig$curre2;
146
162
  return (_this$appConfig$curre2 = this.appConfig.currentPage) === null || _this$appConfig$curre2 === void 0 ? void 0 : _this$appConfig$curre2.goToPage(pageName, params);