@wavemaker/app-rn-runtime 11.11.0-rc.6106 → 11.11.0-rc.6112

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 (47) hide show
  1. package/actions/notification-action.js +3 -1
  2. package/actions/notification-action.js.map +1 -1
  3. package/components/basic/label/label.component.js +78 -33
  4. package/components/basic/label/label.component.js.map +1 -1
  5. package/components/basic/message/message.component.js +1 -1
  6. package/components/basic/message/message.component.js.map +1 -1
  7. package/components/basic/message/message.props.js +1 -0
  8. package/components/basic/message/message.props.js.map +1 -1
  9. package/components/basic/search/search.component.js +49 -28
  10. package/components/basic/search/search.component.js.map +1 -1
  11. package/components/basic/search/search.props.js +1 -0
  12. package/components/basic/search/search.props.js.map +1 -1
  13. package/components/chart/basechart.component.js +3 -0
  14. package/components/chart/basechart.component.js.map +1 -1
  15. package/components/chart/basechart.props.js +1 -1
  16. package/components/chart/basechart.props.js.map +1 -1
  17. package/components/data/list/list.component.js +16 -2
  18. package/components/data/list/list.component.js.map +1 -1
  19. package/components/navigation/appnavbar/appnavbar.component.js +29 -3
  20. package/components/navigation/appnavbar/appnavbar.component.js.map +1 -1
  21. package/components/navigation/appnavbar/appnavbar.props.js +1 -1
  22. package/components/navigation/appnavbar/appnavbar.props.js.map +1 -1
  23. package/components/page/left-panel/left-panel.component.js +3 -2
  24. package/components/page/left-panel/left-panel.component.js.map +1 -1
  25. package/components/page/page-content/page-content.component.js +12 -24
  26. package/components/page/page-content/page-content.component.js.map +1 -1
  27. package/components/page/page.component.js +7 -4
  28. package/components/page/page.component.js.map +1 -1
  29. package/components/page/tabbar/tabbar.component.js +1 -1
  30. package/components/page/tabbar/tabbar.component.js.map +1 -1
  31. package/core/AppConfig.js.map +1 -1
  32. package/core/base.component.js +24 -15
  33. package/core/base.component.js.map +1 -1
  34. package/core/sticky-container.component.js +34 -27
  35. package/core/sticky-container.component.js.map +1 -1
  36. package/core/toast.service.js.map +1 -1
  37. package/core/utils.js +51 -5
  38. package/core/utils.js.map +1 -1
  39. package/npm-shrinkwrap.json +44 -91
  40. package/package-lock.json +44 -91
  41. package/package.json +5 -5
  42. package/runtime/App.js +48 -8
  43. package/runtime/App.js.map +1 -1
  44. package/runtime/base-fragment.component.js +2 -1
  45. package/runtime/base-fragment.component.js.map +1 -1
  46. package/runtime/services/app-toast.service.js +4 -0
  47. package/runtime/services/app-toast.service.js.map +1 -1
@@ -20,7 +20,9 @@ export class NotificationAction extends BaseAction {
20
20
  }, o.onClick = () => {
21
21
  this.config.onOk && this.config.onOk(this);
22
22
  }, o.content = this.config.partialContent;
23
- o.hideOnClick = options.hideOnClick || true;
23
+ o.hideOnClick = !params.showclosebutton && (options.hideOnClick || true);
24
+ o.showclosebutton = params.showclosebutton;
25
+ o.closeiconclass = params.closeiconclass || 'wi wi-close';
24
26
  const toasterPosition = options.position || params.toasterPosition || 'bottom right';
25
27
  const placement = toasterPosition.split(' ')[0];
26
28
  switch (placement) {
@@ -1 +1 @@
1
- {"version":3,"names":["BaseAction","DEFAULT_DURATION","NotificationAction","constructor","config","_defineProperty","showDialog","prepareToastOptions","options","_options$class","_params$class","params","paramProvider","o","text","message","type","class","toLowerCase","onClose","onClick","onOk","content","partialContent","hideOnClick","toasterPosition","position","placement","split","styles","top","bottom","duration","parseInt","name","getMessage","invoke","success","error","operation","toasterService","showToast","onCancel"],"sources":["notification-action.ts"],"sourcesContent":["import { ActionConfig, BaseAction } from \"./base-action\";\nimport { ToastOptions, ToastService } from '@wavemaker/app-rn-runtime/core/toast.service';\nimport React from 'react';\nexport interface NotificationActionConfig extends ActionConfig {\n showDialog: Function;\n onOk: any;\n onCancel: any;\n onClose: any;\n operation: string;\n partialContent: React.ReactNode;\n toasterService: () => ToastService;\n}\nconst DEFAULT_DURATION = 3000;\nexport class NotificationAction extends BaseAction<NotificationActionConfig> {\n showDialog: Function;\n constructor(config: NotificationActionConfig) {\n super(config);\n this.showDialog = config.showDialog;\n }\n\n prepareToastOptions(options: any = {}) {\n const params = this.config.paramProvider();\n const o = {} as ToastOptions;\n o.text = options.message || params.text;\n o.type = options.class?.toLowerCase() || params.class?.toLowerCase();\n o.onClose = () => {\n this.config.onClose && this.config.onClose(this);\n },\n o.onClick = () => {\n this.config.onOk && this.config.onOk(this);\n },\n o.content = this.config.partialContent;\n o.hideOnClick = options.hideOnClick || true;\n const toasterPosition = options.position || params.toasterPosition || 'bottom right';\n const placement = toasterPosition.split(' ')[0];\n switch(placement) {\n case 'top':\n o.styles = {top: 0};\n break;\n case 'bottom':\n o.styles = {bottom: 0};\n break;\n case 'center':\n o.styles = {top: '50%'};\n break;\n }\n if (this.config.partialContent) {\n if (!o.styles) {\n o.styles = {};\n }\n }\n if (!params.duration) {\n params.duration = (params.duration !== 0 && o.type === 'success') ? DEFAULT_DURATION : 0;\n }\n o.duration = parseInt(options.duration || params.duration);\n o.name = this.name;\n return o;\n }\n\n getMessage() {\n return this.config.paramProvider().text;\n }\n\n invoke(options: any, success: any, error: any) {\n super.invoke(options, success, error);\n if (this.config.operation === 'toast') {\n const toasterService = this.config.toasterService();\n return toasterService.showToast(this.prepareToastOptions(options));\n } else {\n return this.showDialog && this.showDialog({...this.params, onOk: this.config.onOk, onCancel: this.config.onCancel, onClose: this.config.onClose});\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["BaseAction","DEFAULT_DURATION","NotificationAction","constructor","config","_defineProperty","showDialog","prepareToastOptions","options","_options$class","_params$class","params","paramProvider","o","text","message","type","class","toLowerCase","onClose","onClick","onOk","content","partialContent","hideOnClick","showclosebutton","closeiconclass","toasterPosition","position","placement","split","styles","top","bottom","duration","parseInt","name","getMessage","invoke","success","error","operation","toasterService","showToast","onCancel"],"sources":["notification-action.ts"],"sourcesContent":["import { ActionConfig, BaseAction } from \"./base-action\";\nimport { ToastOptions, ToastService } from '@wavemaker/app-rn-runtime/core/toast.service';\nimport React from 'react';\nexport interface NotificationActionConfig extends ActionConfig {\n showDialog: Function;\n onOk: any;\n onCancel: any;\n onClose: any;\n operation: string;\n partialContent: React.ReactNode;\n toasterService: () => ToastService;\n}\nconst DEFAULT_DURATION = 3000;\nexport class NotificationAction extends BaseAction<NotificationActionConfig> {\n showDialog: Function;\n constructor(config: NotificationActionConfig) {\n super(config);\n this.showDialog = config.showDialog;\n }\n\n prepareToastOptions(options: any = {}) {\n const params = this.config.paramProvider();\n const o = {} as ToastOptions;\n o.text = options.message || params.text;\n o.type = options.class?.toLowerCase() || params.class?.toLowerCase();\n o.onClose = () => {\n this.config.onClose && this.config.onClose(this);\n },\n o.onClick = () => {\n this.config.onOk && this.config.onOk(this);\n },\n o.content = this.config.partialContent;\n o.hideOnClick = !params.showclosebutton && (options.hideOnClick || true);\n o.showclosebutton = params.showclosebutton;\n o.closeiconclass = params.closeiconclass || 'wi wi-close';\n const toasterPosition = options.position || params.toasterPosition || 'bottom right';\n const placement = toasterPosition.split(' ')[0];\n switch(placement) {\n case 'top':\n o.styles = {top: 0};\n break;\n case 'bottom':\n o.styles = {bottom: 0};\n break;\n case 'center':\n o.styles = {top: '50%'};\n break;\n }\n if (this.config.partialContent) {\n if (!o.styles) {\n o.styles = {};\n }\n }\n if (!params.duration) {\n params.duration = (params.duration !== 0 && o.type === 'success') ? DEFAULT_DURATION : 0;\n }\n o.duration = parseInt(options.duration || params.duration);\n o.name = this.name;\n return o;\n }\n\n getMessage() {\n return this.config.paramProvider().text;\n }\n\n invoke(options: any, success: any, error: any) {\n super.invoke(options, success, error);\n if (this.config.operation === 'toast') {\n const toasterService = this.config.toasterService();\n return toasterService.showToast(this.prepareToastOptions(options));\n } else {\n return this.showDialog && this.showDialog({...this.params, onOk: this.config.onOk, onCancel: this.config.onCancel, onClose: this.config.onClose});\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object
3
3
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
4
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
5
5
  import React from 'react';
6
- import { Text, View } from 'react-native';
6
+ import { Text, View, Platform } from 'react-native';
7
7
  import { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';
8
8
  import { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';
9
9
  import { NavigationServiceConsumer } from '@wavemaker/app-rn-runtime/core/navigation.service';
@@ -13,6 +13,9 @@ import { DEFAULT_CLASS } from './label.styles';
13
13
  import { isNil, toString } from 'lodash-es';
14
14
  import { Animatedview } from '@wavemaker/app-rn-runtime/components/basic/animatedview.component';
15
15
  import { createSkeleton } from '../skeleton/skeleton.component';
16
+ import { LinearGradient } from 'expo-linear-gradient';
17
+ import MaskedView from '@react-native-masked-view/masked-view';
18
+ import { parseLinearGradient } from '@wavemaker/app-rn-runtime/core/utils';
16
19
  export class WmLabelState extends BaseComponentState {
17
20
  constructor(...args) {
18
21
  super(...args);
@@ -107,51 +110,93 @@ export default class WmLabel extends BaseComponent {
107
110
  });
108
111
  }
109
112
  }
113
+ renderLabelTextContent(navigationService, isHidden = false, hasLinearGradient = false) {
114
+ var _this$styles, _this$state$parts, _this$state$parts2;
115
+ //gradient text support for web
116
+ const gradientTextWebStyle = {
117
+ backgroundImage: (_this$styles = this.styles) === null || _this$styles === void 0 ? void 0 : _this$styles.text.color,
118
+ color: 'transparent',
119
+ backgroundClip: 'text'
120
+ };
121
+ const showWebTextGradient = hasLinearGradient && Platform.OS === 'web';
122
+
123
+ // Shared styles
124
+ const baseStyle = this.styles.text;
125
+ const hiddenStyle = isHidden ? {
126
+ opacity: 0
127
+ } : {};
128
+ const gradientStyle = showWebTextGradient ? gradientTextWebStyle : {};
129
+
130
+ // Determine if it's a single part
131
+ const isSinglePart = this.state.parts.length <= 1;
132
+
133
+ // Compose final style
134
+ const combinedTextStyle = isSinglePart ? {
135
+ ...baseStyle,
136
+ ...hiddenStyle,
137
+ ...gradientStyle
138
+ } : {
139
+ flexWrap: 'wrap',
140
+ textAlign: baseStyle.textAlign,
141
+ ...hiddenStyle,
142
+ ...gradientStyle
143
+ };
144
+ return /*#__PURE__*/React.createElement(Text, _extends({
145
+ style: combinedTextStyle
146
+ }, this.state.parts.length <= 1 ? this.getTestPropsForLabel('caption') : {}, getAccessibilityProps(AccessibilityWidgetType.LABEL, this.state.props), {
147
+ numberOfLines: this.state.props.nooflines,
148
+ ellipsizeMode: "tail"
149
+ }), ((_this$state$parts = this.state.parts) === null || _this$state$parts === void 0 ? void 0 : _this$state$parts.length) === 1 ? toString(this.state.props.caption) : (_this$state$parts2 = this.state.parts) === null || _this$state$parts2 === void 0 ? void 0 : _this$state$parts2.map((part, index) => {
150
+ const isLink = !isNil(part.link);
151
+ return /*#__PURE__*/React.createElement(Text, _extends({
152
+ key: `part_${index}`,
153
+ style: [this.styles.text, isLink ? this.styles.link.text : null, this.state.props.isValid ? null : {
154
+ color: 'red'
155
+ }]
156
+ }, this.getTestPropsForLabel(isLink ? `link_${index}` : `caption_${index}`), {
157
+ selectable: this.styles.text.userSelect === 'text',
158
+ onPress: () => {
159
+ if (part.link) {
160
+ if (part.link.startsWith('http:') || part.link.startsWith('https:') || part.link.startsWith('#')) {
161
+ navigationService.openUrl(part.link, '_blank');
162
+ } else if (part.link.startsWith('javascript:')) {
163
+ const eventName = part.link.substring(11);
164
+ this.invokeEventCallback(eventName, [null, this.proxy]);
165
+ }
166
+ }
167
+ this.invokeEventCallback('onTap', [null, this.proxy]);
168
+ }
169
+ // {...getAccessibilityProps(AccessibilityWidgetType.LABEL, props)}
170
+ }), toString(part.text));
171
+ }), this.state.props.required && this.getAsterisk());
172
+ }
110
173
  renderWidget(props) {
174
+ var _this$styles2;
111
175
  const linkStyles = this.theme.mergeStyle({
112
176
  text: this.styles.text
113
177
  }, this.styles.link);
178
+ const {
179
+ hasLinearGradient,
180
+ start,
181
+ end,
182
+ gradientColors
183
+ } = parseLinearGradient((_this$styles2 = this.styles) === null || _this$styles2 === void 0 ? void 0 : _this$styles2.text.color, true);
114
184
  return !isNil(props.caption) ? /*#__PURE__*/React.createElement(Animatedview, {
115
185
  entryanimation: props.animation,
116
186
  delay: props.animationdelay,
117
187
  style: this.styles.root,
118
188
  onLayout: event => this.handleLayout(event)
119
189
  }, this._background, /*#__PURE__*/React.createElement(NavigationServiceConsumer, null, navigationService => {
120
- var _this$state$parts, _this$state$parts2;
121
190
  return /*#__PURE__*/React.createElement(Tappable, {
122
191
  target: this,
123
192
  disableTouchEffect: this.state.props.disabletoucheffect
124
- }, /*#__PURE__*/React.createElement(Text, _extends({
125
- style: this.state.parts.length <= 1 ? this.styles.text : {
126
- flexWrap: "wrap",
127
- textAlign: this.styles.text.textAlign
128
- }
129
- }, this.state.parts.length <= 1 ? this.getTestPropsForLabel('caption') : {}, getAccessibilityProps(AccessibilityWidgetType.LABEL, props), {
130
- numberOfLines: props.nooflines,
131
- ellipsizeMode: "tail"
132
- }), ((_this$state$parts = this.state.parts) === null || _this$state$parts === void 0 ? void 0 : _this$state$parts.length) === 1 ? toString(this.state.props.caption) : (_this$state$parts2 = this.state.parts) === null || _this$state$parts2 === void 0 ? void 0 : _this$state$parts2.map((part, index) => {
133
- const isLink = !isNil(part.link);
134
- return /*#__PURE__*/React.createElement(Text, _extends({
135
- key: `part_${index}`,
136
- style: [this.styles.text, isLink ? this.styles.link.text : null, props.isValid ? null : {
137
- color: 'red'
138
- }]
139
- }, this.getTestPropsForLabel(isLink ? `link_${index}` : `caption_${index}`), {
140
- selectable: this.styles.text.userSelect === 'text',
141
- onPress: () => {
142
- if (part.link) {
143
- if (part.link.startsWith('http:') || part.link.startsWith('https:') || part.link.startsWith('#')) {
144
- navigationService.openUrl(part.link, '_blank');
145
- } else if (part.link.startsWith('javascript:')) {
146
- const eventName = part.link.substring(11);
147
- this.invokeEventCallback(eventName, [null, this.proxy]);
148
- }
149
- }
150
- this.invokeEventCallback('onTap', [null, this.proxy]);
151
- }
152
- // {...getAccessibilityProps(AccessibilityWidgetType.LABEL, props)}
153
- }), toString(part.text));
154
- }), props.required && this.getAsterisk()));
193
+ }, hasLinearGradient ? /*#__PURE__*/React.createElement(MaskedView, {
194
+ maskElement: this.renderLabelTextContent(navigationService, false, hasLinearGradient)
195
+ }, /*#__PURE__*/React.createElement(LinearGradient, {
196
+ colors: gradientColors,
197
+ start: start,
198
+ end: end
199
+ }, this.renderLabelTextContent(navigationService, true))) : this.renderLabelTextContent(navigationService));
155
200
  })) : null;
156
201
  }
157
202
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","Text","View","BaseComponent","BaseComponentState","Tappable","NavigationServiceConsumer","AccessibilityWidgetType","getAccessibilityProps","WmLabelProps","DEFAULT_CLASS","isNil","toString","Animatedview","createSkeleton","WmLabelState","constructor","args","_defineProperty","WmLabel","props","getAsterisk","createElement","style","styles","asterisk","onPropertyChange","name","$new","$old","updateState","parts","parseCaption","String","getMultilineSkeleton","width","height","borderRadius","marginBottom","theme","skeleton","caption","replace","pattern","linkRegex","captionSplit","split","i","length","isLink","test","part","isNextTextALink","_captionSplit","text","link","push","renderSkeleton","skeletonWidth","skeletonHeight","skeletonwidth","_this$styles$root","root","skeletonheight","_this$styles$root2","fontSize","multilineskeleton","renderWidget","linkStyles","mergeStyle","entryanimation","animation","delay","animationdelay","onLayout","event","handleLayout","_background","navigationService","_this$state$parts","_this$state$parts2","target","disableTouchEffect","state","disabletoucheffect","_extends","flexWrap","textAlign","getTestPropsForLabel","LABEL","numberOfLines","nooflines","ellipsizeMode","map","index","key","isValid","color","selectable","userSelect","onPress","startsWith","openUrl","eventName","substring","invokeEventCallback","proxy","required"],"sources":["label.component.tsx"],"sourcesContent":["import React from 'react';\nimport { DimensionValue, LayoutChangeEvent, Text, View } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport NavigationService, { NavigationServiceConsumer } from '@wavemaker/app-rn-runtime/core/navigation.service';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility';\n\nimport WmLabelProps from './label.props';\nimport { DEFAULT_CLASS, WmLabelStyles } from './label.styles';\nimport { isNil, toString } from 'lodash-es';\nimport { Animatedview } from '@wavemaker/app-rn-runtime/components/basic/animatedview.component';\nimport WmSkeleton, { createSkeleton } from '../skeleton/skeleton.component';\n\ntype PartType = {\n text?: string,\n link?: string,\n};\n\nexport class WmLabelState extends BaseComponentState<WmLabelProps> {\n parts: PartType[] = []\n}\n\nexport default class WmLabel extends BaseComponent<WmLabelProps, WmLabelState, WmLabelStyles> {\n\n constructor(props: WmLabelProps) {\n super(props, DEFAULT_CLASS, new WmLabelProps(), new WmLabelState());\n }\n\n private getAsterisk () {\n return <Text style={this.styles.asterisk}>*</Text>;\n }\n\n public onPropertyChange(name: string, $new: any, $old: any): void {\n super.onPropertyChange(name, $new, $old);\n\n switch(name) {\n case \"caption\":\n this.updateState({\n parts: this.parseCaption(String($new))\n } as WmLabelState);\n break;\n }\n }\n private getMultilineSkeleton(width: any, height: any) {\n const styles = {\n borderRadius:4,\n marginBottom: 10,\n height: height\n };\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...styles,\n width: width,\n height: height\n });\n }\n\n parseCaption(caption: string) {\n if (!caption) {\n return [];\n }\n caption += '';\n caption = caption.replace(/\\s*\\(\\s*\\$event,\\s*\\$widget\\s*\\)\\s*/, '');\n caption = caption.replace(/\\(\\s*\\)/, '(#/__EMPTY__)');\n const pattern = /\\[([^\\]]+)\\]\\(([^)]*)\\)/g;\n const linkRegex = /^(((http|https):\\/\\/)|javascript:|#).+$/;\n const captionSplit = caption.split(pattern);\n\n let parts = [];\n\n for (let i = 0; i < captionSplit.length; i++) {\n const isLink = linkRegex.test(captionSplit[i]);\n let part: PartType = {};\n\n const isNextTextALink = linkRegex.test(captionSplit[i + 1]);\n if (isLink) {\n part.text = captionSplit[i - 1] ?? '';\n part.link = captionSplit[i] === '#/__EMPTY__' ? '' : captionSplit[i];\n } else {\n part.text = isNextTextALink ? \"\" : captionSplit[i];\n };\n\n if (part.text) {\n parts.push(part);\n }\n }\n\n return parts;\n }\n\n public renderSkeleton(props: WmLabelProps){\n\n let skeletonWidth, skeletonHeight;\n if(this.props.skeletonwidth == \"0\") {\n skeletonWidth = 0\n } else {\n skeletonWidth = this.props.skeletonwidth || this.styles.root?.width\n }\n\n if(this.props.skeletonheight == \"0\") {\n skeletonHeight = 0\n } else {\n skeletonHeight = this.props.skeletonheight || this.styles.root?.height || this.styles.text.fontSize;\n }\n \n if(this.props.multilineskeleton) {\n return (<View style={{\n width: skeletonWidth as DimensionValue\n }}>\n {this.getMultilineSkeleton('100%', skeletonHeight)}\n {this.getMultilineSkeleton('70%', skeletonHeight)}\n {this.getMultilineSkeleton('40%', skeletonHeight)}\n </View>)\n }\n else{\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n width: skeletonWidth as DimensionValue,\n height: skeletonHeight as DimensionValue\n });\n }\n }\n\n renderWidget(props: WmLabelProps) {\n const linkStyles = this.theme.mergeStyle({text: this.styles.text}, this.styles.link);\n return !isNil(props.caption) ? (\n <Animatedview \n entryanimation={props.animation} \n delay={props.animationdelay} \n style={this.styles.root}\n onLayout={(event: LayoutChangeEvent) => this.handleLayout(event)}\n >\n {this._background}\n <NavigationServiceConsumer>\n {(navigationService: NavigationService) => {\n return (<Tappable target={this} disableTouchEffect={this.state.props.disabletoucheffect} >\n <Text style={ this.state.parts.length <= 1 ? this.styles.text : {flexWrap: \"wrap\", textAlign: this.styles.text.textAlign}}\n {...this.state.parts.length <= 1 ? this.getTestPropsForLabel('caption') : {}}\n {...getAccessibilityProps(AccessibilityWidgetType.LABEL, props)}\n numberOfLines={props.nooflines} ellipsizeMode=\"tail\">\n {this.state.parts?.length === 1 ? toString(this.state.props.caption) : this.state.parts?.map((part, index) => {\n const isLink = !isNil(part.link);\n return (\n <Text\n key={`part_${index}`}\n style={[\n this.styles.text,\n isLink ? this.styles.link.text : null,\n props.isValid ? null : { color: 'red'}\n ]}\n {...this.getTestPropsForLabel(isLink ? `link_${index}` : `caption_${index}`)}\n selectable={this.styles.text.userSelect === 'text'}\n onPress={() => {\n if (part.link) {\n if (part.link.startsWith('http:')\n || part.link.startsWith('https:')\n || part.link.startsWith('#')) {\n navigationService.openUrl(part.link, '_blank');\n } else if (part.link.startsWith('javascript:')) {\n const eventName = part.link.substring(11);\n this.invokeEventCallback(eventName, [null, this.proxy]);\n }\n }\n this.invokeEventCallback('onTap', [null, this.proxy]);\n }}\n // {...getAccessibilityProps(AccessibilityWidgetType.LABEL, props)}\n >\n {toString(part.text)}\n </Text>\n );\n })}\n {props.required && this.getAsterisk()}\n </Text>\n </Tappable>)}}\n </NavigationServiceConsumer>\n </Animatedview>\n ) : null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Text","View","Platform","BaseComponent","BaseComponentState","Tappable","NavigationServiceConsumer","AccessibilityWidgetType","getAccessibilityProps","WmLabelProps","DEFAULT_CLASS","isNil","toString","Animatedview","createSkeleton","LinearGradient","MaskedView","parseLinearGradient","WmLabelState","constructor","args","_defineProperty","WmLabel","props","getAsterisk","createElement","style","styles","asterisk","onPropertyChange","name","$new","$old","updateState","parts","parseCaption","String","getMultilineSkeleton","width","height","borderRadius","marginBottom","theme","skeleton","caption","replace","pattern","linkRegex","captionSplit","split","i","length","isLink","test","part","isNextTextALink","_captionSplit","text","link","push","renderSkeleton","skeletonWidth","skeletonHeight","skeletonwidth","_this$styles$root","root","skeletonheight","_this$styles$root2","fontSize","multilineskeleton","renderLabelTextContent","navigationService","isHidden","hasLinearGradient","_this$styles","_this$state$parts","_this$state$parts2","gradientTextWebStyle","backgroundImage","color","backgroundClip","showWebTextGradient","OS","baseStyle","hiddenStyle","opacity","gradientStyle","isSinglePart","state","combinedTextStyle","flexWrap","textAlign","_extends","getTestPropsForLabel","LABEL","numberOfLines","nooflines","ellipsizeMode","map","index","key","isValid","selectable","userSelect","onPress","startsWith","openUrl","eventName","substring","invokeEventCallback","proxy","required","renderWidget","_this$styles2","linkStyles","mergeStyle","start","end","gradientColors","entryanimation","animation","delay","animationdelay","onLayout","event","handleLayout","_background","target","disableTouchEffect","disabletoucheffect","maskElement","colors"],"sources":["label.component.tsx"],"sourcesContent":["import React from 'react';\nimport { DimensionValue, LayoutChangeEvent, Text, View,Platform } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport NavigationService, { NavigationServiceConsumer } from '@wavemaker/app-rn-runtime/core/navigation.service';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility';\n\nimport WmLabelProps from './label.props';\nimport { DEFAULT_CLASS, WmLabelStyles } from './label.styles';\nimport { isNil, toString } from 'lodash-es';\nimport { Animatedview } from '@wavemaker/app-rn-runtime/components/basic/animatedview.component';\nimport WmSkeleton, { createSkeleton } from '../skeleton/skeleton.component';\nimport { LinearGradient } from 'expo-linear-gradient';\nimport MaskedView from '@react-native-masked-view/masked-view';\nimport { parseLinearGradient } from '@wavemaker/app-rn-runtime/core/utils';\n\n\ntype PartType = {\n text?: string,\n link?: string,\n};\n\nexport class WmLabelState extends BaseComponentState<WmLabelProps> {\n parts: PartType[] = []\n}\n\nexport default class WmLabel extends BaseComponent<WmLabelProps, WmLabelState, WmLabelStyles> {\n\n constructor(props: WmLabelProps) {\n super(props, DEFAULT_CLASS, new WmLabelProps(), new WmLabelState());\n }\n\n private getAsterisk() {\n return <Text style={this.styles.asterisk}>*</Text>;\n }\n\n public onPropertyChange(name: string, $new: any, $old: any): void {\n super.onPropertyChange(name, $new, $old);\n\n switch (name) {\n case \"caption\":\n this.updateState({\n parts: this.parseCaption(String($new))\n } as WmLabelState);\n break;\n }\n }\n private getMultilineSkeleton(width: any, height: any) {\n const styles = {\n borderRadius: 4,\n marginBottom: 10,\n height: height\n };\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...styles,\n width: width,\n height: height\n });\n }\n\n parseCaption(caption: string) {\n if (!caption) {\n return [];\n }\n caption += '';\n caption = caption.replace(/\\s*\\(\\s*\\$event,\\s*\\$widget\\s*\\)\\s*/, '');\n caption = caption.replace(/\\(\\s*\\)/, '(#/__EMPTY__)');\n const pattern = /\\[([^\\]]+)\\]\\(([^)]*)\\)/g;\n const linkRegex = /^(((http|https):\\/\\/)|javascript:|#).+$/;\n const captionSplit = caption.split(pattern);\n\n let parts = [];\n\n for (let i = 0; i < captionSplit.length; i++) {\n const isLink = linkRegex.test(captionSplit[i]);\n let part: PartType = {};\n\n const isNextTextALink = linkRegex.test(captionSplit[i + 1]);\n if (isLink) {\n part.text = captionSplit[i - 1] ?? '';\n part.link = captionSplit[i] === '#/__EMPTY__' ? '' : captionSplit[i];\n } else {\n part.text = isNextTextALink ? \"\" : captionSplit[i];\n };\n\n if (part.text) {\n parts.push(part);\n }\n }\n\n return parts;\n }\n\n public renderSkeleton(props: WmLabelProps) {\n\n let skeletonWidth, skeletonHeight;\n if (this.props.skeletonwidth == \"0\") {\n skeletonWidth = 0\n } else {\n skeletonWidth = this.props.skeletonwidth || this.styles.root?.width\n }\n\n if (this.props.skeletonheight == \"0\") {\n skeletonHeight = 0\n } else {\n skeletonHeight = this.props.skeletonheight || this.styles.root?.height || this.styles.text.fontSize;\n }\n\n if (this.props.multilineskeleton) {\n return (<View style={{\n width: skeletonWidth as DimensionValue\n }}>\n {this.getMultilineSkeleton('100%', skeletonHeight)}\n {this.getMultilineSkeleton('70%', skeletonHeight)}\n {this.getMultilineSkeleton('40%', skeletonHeight)}\n </View>)\n }\n else {\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n width: skeletonWidth as DimensionValue,\n height: skeletonHeight as DimensionValue\n });\n }\n }\n\n private renderLabelTextContent(navigationService: NavigationService, isHidden: boolean = false, hasLinearGradient: boolean = false) {\n //gradient text support for web\n const gradientTextWebStyle = {\n backgroundImage: (this.styles?.text.color as string),\n color: 'transparent',\n backgroundClip: 'text',\n }\n const showWebTextGradient = (hasLinearGradient && Platform.OS === 'web');\n\n // Shared styles\n const baseStyle = this.styles.text;\n const hiddenStyle = isHidden ? { opacity: 0 } : {};\n const gradientStyle = showWebTextGradient ? gradientTextWebStyle : {};\n\n // Determine if it's a single part\n const isSinglePart = this.state.parts.length <= 1;\n\n // Compose final style\n const combinedTextStyle = isSinglePart\n ? { ...baseStyle, ...hiddenStyle, ...gradientStyle }\n : {\n flexWrap: 'wrap',\n textAlign: baseStyle.textAlign,\n ...hiddenStyle,\n ...gradientStyle,\n };\n\n\n\n return (\n <Text style={combinedTextStyle}\n {...this.state.parts.length <= 1 ? this.getTestPropsForLabel('caption') : {}}\n {...getAccessibilityProps(AccessibilityWidgetType.LABEL, this.state.props)}\n numberOfLines={this.state.props.nooflines} ellipsizeMode=\"tail\">\n {this.state.parts?.length === 1 ? toString(this.state.props.caption) : this.state.parts?.map((part, index) => {\n const isLink = !isNil(part.link);\n return (\n <Text\n key={`part_${index}`}\n style={[\n this.styles.text,\n isLink ? this.styles.link.text : null,\n this.state.props.isValid ? null : { color: 'red' }\n ]}\n {...this.getTestPropsForLabel(isLink ? `link_${index}` : `caption_${index}`)}\n selectable={this.styles.text.userSelect === 'text'}\n onPress={() => {\n if (part.link) {\n if (part.link.startsWith('http:')\n || part.link.startsWith('https:')\n || part.link.startsWith('#')) {\n navigationService.openUrl(part.link, '_blank');\n } else if (part.link.startsWith('javascript:')) {\n const eventName = part.link.substring(11);\n this.invokeEventCallback(eventName, [null, this.proxy]);\n }\n }\n this.invokeEventCallback('onTap', [null, this.proxy]);\n }}\n // {...getAccessibilityProps(AccessibilityWidgetType.LABEL, props)}\n >\n {toString(part.text)}\n </Text>\n );\n })}\n {this.state.props.required && this.getAsterisk()}\n </Text>\n )\n\n }\n renderWidget(props: WmLabelProps) {\n const linkStyles = this.theme.mergeStyle({ text: this.styles.text }, this.styles.link);\n const { hasLinearGradient, start, end, gradientColors } = parseLinearGradient((this.styles?.text.color) as string, true);\n\n\n return !isNil(props.caption) ? (\n <Animatedview\n entryanimation={props.animation}\n delay={props.animationdelay}\n style={this.styles.root}\n onLayout={(event: LayoutChangeEvent) => this.handleLayout(event)}\n >\n {this._background}\n <NavigationServiceConsumer>\n {(navigationService: NavigationService) => {\n return (<Tappable target={this} disableTouchEffect={this.state.props.disabletoucheffect} >\n {hasLinearGradient ? <MaskedView\n maskElement={this.renderLabelTextContent(navigationService, false, hasLinearGradient)}\n >\n <LinearGradient colors={gradientColors} start={start} end={end}>\n {this.renderLabelTextContent(navigationService, true)}\n </LinearGradient>\n </MaskedView> : this.renderLabelTextContent(navigationService)}\n </Tappable>)\n }}\n </NavigationServiceConsumer>\n </Animatedview>\n ) : null;\n }\n}\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAA4CC,IAAI,EAAEC,IAAI,EAACC,QAAQ,QAAQ,cAAc;AACrF,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,+CAA+C;AACjG,SAASC,QAAQ,QAAQ,mDAAmD;AAC5E,SAA4BC,yBAAyB,QAAQ,mDAAmD;AAChH,SAASC,uBAAuB,EAAEC,qBAAqB,QAAQ,8CAA8C;AAE7G,OAAOC,YAAY,MAAM,eAAe;AACxC,SAASC,aAAa,QAAuB,gBAAgB;AAC7D,SAASC,KAAK,EAAEC,QAAQ,QAAQ,WAAW;AAC3C,SAASC,YAAY,QAAQ,mEAAmE;AAChG,SAAqBC,cAAc,QAAQ,gCAAgC;AAC3E,SAASC,cAAc,QAAQ,sBAAsB;AACrD,OAAOC,UAAU,MAAM,uCAAuC;AAC9D,SAASC,mBAAmB,QAAQ,sCAAsC;AAQ1E,OAAO,MAAMC,YAAY,SAASd,kBAAkB,CAAe;EAAAe,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,gBAC7C,EAAE;EAAA;AACxB;AAEA,eAAe,MAAMC,OAAO,SAASnB,aAAa,CAA4C;EAE5FgB,WAAWA,CAACI,KAAmB,EAAE;IAC/B,KAAK,CAACA,KAAK,EAAEb,aAAa,EAAE,IAAID,YAAY,CAAC,CAAC,EAAE,IAAIS,YAAY,CAAC,CAAC,CAAC;EACrE;EAEQM,WAAWA,CAAA,EAAG;IACpB,oBAAOzB,KAAA,CAAA0B,aAAA,CAACzB,IAAI;MAAC0B,KAAK,EAAE,IAAI,CAACC,MAAM,CAACC;IAAS,GAAC,GAAO,CAAC;EACpD;EAEOC,gBAAgBA,CAACC,IAAY,EAAEC,IAAS,EAAEC,IAAS,EAAQ;IAChE,KAAK,CAACH,gBAAgB,CAACC,IAAI,EAAEC,IAAI,EAAEC,IAAI,CAAC;IAExC,QAAQF,IAAI;MACV,KAAK,SAAS;QACZ,IAAI,CAACG,WAAW,CAAC;UACfC,KAAK,EAAE,IAAI,CAACC,YAAY,CAACC,MAAM,CAACL,IAAI,CAAC;QACvC,CAAiB,CAAC;QAClB;IACJ;EACF;EACQM,oBAAoBA,CAACC,KAAU,EAAEC,MAAW,EAAE;IACpD,MAAMZ,MAAM,GAAG;MACba,YAAY,EAAE,CAAC;MACfC,YAAY,EAAE,EAAE;MAChBF,MAAM,EAAEA;IACV,CAAC;IACD,OAAOzB,cAAc,CAAC,IAAI,CAAC4B,KAAK,EAAE,IAAI,CAACf,MAAM,CAACgB,QAAQ,EAAE;MACtD,GAAGhB,MAAM;MACTW,KAAK,EAAEA,KAAK;MACZC,MAAM,EAAEA;IACV,CAAC,CAAC;EACJ;EAEAJ,YAAYA,CAACS,OAAe,EAAE;IAC5B,IAAI,CAACA,OAAO,EAAE;MACZ,OAAO,EAAE;IACX;IACAA,OAAO,IAAI,EAAE;IACbA,OAAO,GAAGA,OAAO,CAACC,OAAO,CAAC,qCAAqC,EAAE,EAAE,CAAC;IACpED,OAAO,GAAGA,OAAO,CAACC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC;IACrD,MAAMC,OAAO,GAAG,0BAA0B;IAC1C,MAAMC,SAAS,GAAG,yCAAyC;IAC3D,MAAMC,YAAY,GAAGJ,OAAO,CAACK,KAAK,CAACH,OAAO,CAAC;IAE3C,IAAIZ,KAAK,GAAG,EAAE;IAEd,KAAK,IAAIgB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,YAAY,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;MAC5C,MAAME,MAAM,GAAGL,SAAS,CAACM,IAAI,CAACL,YAAY,CAACE,CAAC,CAAC,CAAC;MAC9C,IAAII,IAAc,GAAG,CAAC,CAAC;MAEvB,MAAMC,eAAe,GAAGR,SAAS,CAACM,IAAI,CAACL,YAAY,CAACE,CAAC,GAAG,CAAC,CAAC,CAAC;MAC3D,IAAIE,MAAM,EAAE;QAAA,IAAAI,aAAA;QACVF,IAAI,CAACG,IAAI,IAAAD,aAAA,GAAGR,YAAY,CAACE,CAAC,GAAG,CAAC,CAAC,cAAAM,aAAA,cAAAA,aAAA,GAAI,EAAE;QACrCF,IAAI,CAACI,IAAI,GAAGV,YAAY,CAACE,CAAC,CAAC,KAAK,aAAa,GAAG,EAAE,GAAGF,YAAY,CAACE,CAAC,CAAC;MACtE,CAAC,MAAM;QACLI,IAAI,CAACG,IAAI,GAAGF,eAAe,GAAG,EAAE,GAAGP,YAAY,CAACE,CAAC,CAAC;MACpD;MAAC;MAED,IAAII,IAAI,CAACG,IAAI,EAAE;QACbvB,KAAK,CAACyB,IAAI,CAACL,IAAI,CAAC;MAClB;IACF;IAEA,OAAOpB,KAAK;EACd;EAEO0B,cAAcA,CAACrC,KAAmB,EAAE;IAEzC,IAAIsC,aAAa,EAAEC,cAAc;IACjC,IAAI,IAAI,CAACvC,KAAK,CAACwC,aAAa,IAAI,GAAG,EAAE;MACnCF,aAAa,GAAG,CAAC;IACnB,CAAC,MAAM;MAAA,IAAAG,iBAAA;MACLH,aAAa,GAAG,IAAI,CAACtC,KAAK,CAACwC,aAAa,MAAAC,iBAAA,GAAI,IAAI,CAACrC,MAAM,CAACsC,IAAI,cAAAD,iBAAA,uBAAhBA,iBAAA,CAAkB1B,KAAK;IACrE;IAEA,IAAI,IAAI,CAACf,KAAK,CAAC2C,cAAc,IAAI,GAAG,EAAE;MACpCJ,cAAc,GAAG,CAAC;IACpB,CAAC,MAAM;MAAA,IAAAK,kBAAA;MACLL,cAAc,GAAG,IAAI,CAACvC,KAAK,CAAC2C,cAAc,MAAAC,kBAAA,GAAI,IAAI,CAACxC,MAAM,CAACsC,IAAI,cAAAE,kBAAA,uBAAhBA,kBAAA,CAAkB5B,MAAM,KAAI,IAAI,CAACZ,MAAM,CAAC8B,IAAI,CAACW,QAAQ;IACrG;IAEA,IAAI,IAAI,CAAC7C,KAAK,CAAC8C,iBAAiB,EAAE;MAChC,oBAAQtE,KAAA,CAAA0B,aAAA,CAACxB,IAAI;QAACyB,KAAK,EAAE;UACnBY,KAAK,EAAEuB;QACT;MAAE,GACC,IAAI,CAACxB,oBAAoB,CAAC,MAAM,EAAEyB,cAAc,CAAC,EACjD,IAAI,CAACzB,oBAAoB,CAAC,KAAK,EAAEyB,cAAc,CAAC,EAChD,IAAI,CAACzB,oBAAoB,CAAC,KAAK,EAAEyB,cAAc,CAC5C,CAAC;IACT,CAAC,MACI;MACH,OAAOhD,cAAc,CAAC,IAAI,CAAC4B,KAAK,EAAE,IAAI,CAACf,MAAM,CAACgB,QAAQ,EAAE;QACtD,GAAG,IAAI,CAAChB,MAAM,CAACsC,IAAI;QACnB3B,KAAK,EAAEuB,aAA+B;QACtCtB,MAAM,EAAEuB;MACV,CAAC,CAAC;IACJ;EACF;EAEQQ,sBAAsBA,CAACC,iBAAoC,EAAEC,QAAiB,GAAG,KAAK,EAAEC,iBAA0B,GAAG,KAAK,EAAE;IAAA,IAAAC,YAAA,EAAAC,iBAAA,EAAAC,kBAAA;IAClI;IACA,MAAMC,oBAAoB,GAAG;MAC3BC,eAAe,GAAAJ,YAAA,GAAG,IAAI,CAAC/C,MAAM,cAAA+C,YAAA,uBAAXA,YAAA,CAAajB,IAAI,CAACsB,KAAgB;MACpDA,KAAK,EAAE,aAAa;MACpBC,cAAc,EAAE;IAClB,CAAC;IACD,MAAMC,mBAAmB,GAAIR,iBAAiB,IAAIvE,QAAQ,CAACgF,EAAE,KAAK,KAAM;;IAExE;IACA,MAAMC,SAAS,GAAG,IAAI,CAACxD,MAAM,CAAC8B,IAAI;IAClC,MAAM2B,WAAW,GAAGZ,QAAQ,GAAG;MAAEa,OAAO,EAAE;IAAE,CAAC,GAAG,CAAC,CAAC;IAClD,MAAMC,aAAa,GAAGL,mBAAmB,GAAGJ,oBAAoB,GAAG,CAAC,CAAC;;IAErE;IACA,MAAMU,YAAY,GAAG,IAAI,CAACC,KAAK,CAACtD,KAAK,CAACiB,MAAM,IAAI,CAAC;;IAEjD;IACA,MAAMsC,iBAAiB,GAAGF,YAAY,GAClC;MAAE,GAAGJ,SAAS;MAAE,GAAGC,WAAW;MAAE,GAAGE;IAAc,CAAC,GAClD;MACEI,QAAQ,EAAE,MAAM;MAChBC,SAAS,EAAER,SAAS,CAACQ,SAAS;MAC9B,GAAGP,WAAW;MACd,GAAGE;IACL,CAAC;IAIL,oBACEvF,KAAA,CAAA0B,aAAA,CAACzB,IAAI,EAAA4F,QAAA;MAAClE,KAAK,EAAE+D;IAAkB,GACzB,IAAI,CAACD,KAAK,CAACtD,KAAK,CAACiB,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC0C,oBAAoB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EACxErF,qBAAqB,CAACD,uBAAuB,CAACuF,KAAK,EAAE,IAAI,CAACN,KAAK,CAACjE,KAAK,CAAC;MAC1EwE,aAAa,EAAE,IAAI,CAACP,KAAK,CAACjE,KAAK,CAACyE,SAAU;MAACC,aAAa,EAAC;IAAM,IAC9D,EAAAtB,iBAAA,OAAI,CAACa,KAAK,CAACtD,KAAK,cAAAyC,iBAAA,uBAAhBA,iBAAA,CAAkBxB,MAAM,MAAK,CAAC,GAAGvC,QAAQ,CAAC,IAAI,CAAC4E,KAAK,CAACjE,KAAK,CAACqB,OAAO,CAAC,IAAAgC,kBAAA,GAAG,IAAI,CAACY,KAAK,CAACtD,KAAK,cAAA0C,kBAAA,uBAAhBA,kBAAA,CAAkBsB,GAAG,CAAC,CAAC5C,IAAI,EAAE6C,KAAK,KAAK;MAC5G,MAAM/C,MAAM,GAAG,CAACzC,KAAK,CAAC2C,IAAI,CAACI,IAAI,CAAC;MAChC,oBACE3D,KAAA,CAAA0B,aAAA,CAACzB,IAAI,EAAA4F,QAAA;QACHQ,GAAG,EAAE,QAAQD,KAAK,EAAG;QACrBzE,KAAK,EAAE,CACL,IAAI,CAACC,MAAM,CAAC8B,IAAI,EAChBL,MAAM,GAAG,IAAI,CAACzB,MAAM,CAAC+B,IAAI,CAACD,IAAI,GAAG,IAAI,EACrC,IAAI,CAAC+B,KAAK,CAACjE,KAAK,CAAC8E,OAAO,GAAG,IAAI,GAAG;UAAEtB,KAAK,EAAE;QAAM,CAAC;MAClD,GACE,IAAI,CAACc,oBAAoB,CAACzC,MAAM,GAAG,QAAQ+C,KAAK,EAAE,GAAG,WAAWA,KAAK,EAAE,CAAC;QAC5EG,UAAU,EAAE,IAAI,CAAC3E,MAAM,CAAC8B,IAAI,CAAC8C,UAAU,KAAK,MAAO;QACnDC,OAAO,EAAEA,CAAA,KAAM;UACb,IAAIlD,IAAI,CAACI,IAAI,EAAE;YACb,IAAIJ,IAAI,CAACI,IAAI,CAAC+C,UAAU,CAAC,OAAO,CAAC,IAC5BnD,IAAI,CAACI,IAAI,CAAC+C,UAAU,CAAC,QAAQ,CAAC,IAC9BnD,IAAI,CAACI,IAAI,CAAC+C,UAAU,CAAC,GAAG,CAAC,EAAE;cAC9BlC,iBAAiB,CAACmC,OAAO,CAACpD,IAAI,CAACI,IAAI,EAAE,QAAQ,CAAC;YAChD,CAAC,MAAM,IAAIJ,IAAI,CAACI,IAAI,CAAC+C,UAAU,CAAC,aAAa,CAAC,EAAE;cAC9C,MAAME,SAAS,GAAGrD,IAAI,CAACI,IAAI,CAACkD,SAAS,CAAC,EAAE,CAAC;cACzC,IAAI,CAACC,mBAAmB,CAACF,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,CAACG,KAAK,CAAC,CAAC;YACzD;UACF;UACA,IAAI,CAACD,mBAAmB,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAACC,KAAK,CAAC,CAAC;QACvD;QACF;MAAA,IAEGlG,QAAQ,CAAC0C,IAAI,CAACG,IAAI,CACf,CAAC;IAEX,CAAC,CAAC,EACD,IAAI,CAAC+B,KAAK,CAACjE,KAAK,CAACwF,QAAQ,IAAI,IAAI,CAACvF,WAAW,CAAC,CAC3C,CAAC;EAGX;EACAwF,YAAYA,CAACzF,KAAmB,EAAE;IAAA,IAAA0F,aAAA;IAChC,MAAMC,UAAU,GAAG,IAAI,CAACxE,KAAK,CAACyE,UAAU,CAAC;MAAE1D,IAAI,EAAE,IAAI,CAAC9B,MAAM,CAAC8B;IAAK,CAAC,EAAE,IAAI,CAAC9B,MAAM,CAAC+B,IAAI,CAAC;IACtF,MAAM;MAAEe,iBAAiB;MAAE2C,KAAK;MAAEC,GAAG;MAAEC;IAAe,CAAC,GAAGrG,mBAAmB,EAAAgG,aAAA,GAAE,IAAI,CAACtF,MAAM,cAAAsF,aAAA,uBAAXA,aAAA,CAAaxD,IAAI,CAACsB,KAAK,EAAa,IAAI,CAAC;IAGxH,OAAO,CAACpE,KAAK,CAACY,KAAK,CAACqB,OAAO,CAAC,gBAC1B7C,KAAA,CAAA0B,aAAA,CAACZ,YAAY;MACX0G,cAAc,EAAEhG,KAAK,CAACiG,SAAU;MAChCC,KAAK,EAAElG,KAAK,CAACmG,cAAe;MAC5BhG,KAAK,EAAE,IAAI,CAACC,MAAM,CAACsC,IAAK;MACxB0D,QAAQ,EAAGC,KAAwB,IAAK,IAAI,CAACC,YAAY,CAACD,KAAK;IAAE,GAEhE,IAAI,CAACE,WAAW,eACjB/H,KAAA,CAAA0B,aAAA,CAACnB,yBAAyB,QACtBiE,iBAAoC,IAAK;MACzC,oBAAQxE,KAAA,CAAA0B,aAAA,CAACpB,QAAQ;QAAC0H,MAAM,EAAE,IAAK;QAACC,kBAAkB,EAAE,IAAI,CAACxC,KAAK,CAACjE,KAAK,CAAC0G;MAAmB,GACrFxD,iBAAiB,gBAAG1E,KAAA,CAAA0B,aAAA,CAACT,UAAU;QAC9BkH,WAAW,EAAE,IAAI,CAAC5D,sBAAsB,CAACC,iBAAiB,EAAE,KAAK,EAAEE,iBAAiB;MAAE,gBAEtF1E,KAAA,CAAA0B,aAAA,CAACV,cAAc;QAACoH,MAAM,EAAEb,cAAe;QAACF,KAAK,EAAEA,KAAM;QAACC,GAAG,EAAEA;MAAI,GAC5D,IAAI,CAAC/C,sBAAsB,CAACC,iBAAiB,EAAE,IAAI,CACtC,CACN,CAAC,GAAG,IAAI,CAACD,sBAAsB,CAACC,iBAAiB,CACrD,CAAC;IACb,CACyB,CACf,CAAC,GACb,IAAI;EACV;AACF","ignoreList":[]}
@@ -70,7 +70,7 @@ export default class WmMessage extends BaseComponent {
70
70
  style: styles.text
71
71
  }, getAccessibilityProps(AccessibilityWidgetType.MESSAGE, props)), props.caption)), props.hideclose ? null : /*#__PURE__*/React.createElement(WmButton, {
72
72
  id: this.getTestId('close'),
73
- iconclass: "wi wi-close",
73
+ iconclass: props.closeiconclass || "wi wi-close",
74
74
  styles: styles.closeBtn,
75
75
  onTap: this.close
76
76
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Text","BaseComponent","BaseComponentState","WmMessageProps","DEFAULT_CLASS","WmIcon","WmButton","Animatedview","AccessibilityWidgetType","getAccessibilityProps","WmMessageState","MESSAGE_ICONS","DEFAULT_TITLE","WmMessage","constructor","props","_defineProperty","updateState","show","invokeEventCallback","showMessage","hideMessage","renderWidget","styles","theme","mergeStyle","getStyle","type","variant","createElement","entryanimation","animation","delay","animationdelay","style","root","onLayout","event","handleLayout","_background","id","getTestId","iconclass","icon","message","_extends","getTestPropsForLabel","title","MESSAGE","text","caption","hideclose","closeBtn","onTap","close"],"sources":["message.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Text, LayoutChangeEvent } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmMessageProps from './message.props';\nimport { DEFAULT_CLASS, WmMessageStyles } from './message.styles';\nimport WmIcon from '../icon/icon.component';\nimport WmButton from '../button/button.component';\nimport { Animatedview } from '@wavemaker/app-rn-runtime/components/basic/animatedview.component';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility';\n\nexport class WmMessageState extends BaseComponentState<WmMessageProps> {}\n\nconst MESSAGE_ICONS = {\n 'success': 'wm-sl-l sl-check',\n 'warning': 'wm-sl-l sl-alarm-bell',\n 'error': 'fa fa-times-circle',\n 'info': 'wi wi-info',\n 'loading': 'fa fa-spinner fa-spin'\n};\n\nconst DEFAULT_TITLE = {\n 'success': 'Success',\n 'warning': 'Warning',\n 'error': 'Error',\n 'info': 'Info',\n 'loading': 'Processing'\n} as any;\n\nexport default class WmMessage extends BaseComponent<WmMessageProps, WmMessageState, WmMessageStyles> {\n\n constructor(props: WmMessageProps) {\n super(props, DEFAULT_CLASS, new WmMessageProps());\n }\n\n showMessage() {\n this.updateState({\n props: {\n show: true\n }\n } as WmMessageState);\n }\n\n hideMessage() {\n this.updateState({\n props: {\n show: false\n }\n } as WmMessageState);\n }\n\n close = () => {\n this.updateState({props: {\n show : false\n }}, () => this.invokeEventCallback('onClose', [null, this]));\n }\n\n renderWidget(props: WmMessageProps) {\n const styles = this.theme.mergeStyle(this.theme.getStyle(`${props.type}-${props.variant}-message`), this.styles);\n return (\n <Animatedview \n entryanimation={props.animation} \n delay={props.animationdelay} \n style={styles.root}\n onLayout={(event: LayoutChangeEvent) => this.handleLayout(event)}\n >\n {this._background}\n <WmIcon\n id={this.getTestId('icon')}\n iconclass={props.type && MESSAGE_ICONS[props.type]}\n styles={styles.icon}></WmIcon>\n <View style={styles.message}>\n <Text {...this.getTestPropsForLabel('title')} style={styles.title} {...getAccessibilityProps(AccessibilityWidgetType.MESSAGE, props)}>{props.title || DEFAULT_TITLE[props.type || '']}</Text>\n <Text {...this.getTestPropsForLabel('caption')} style={styles.text} {...getAccessibilityProps(AccessibilityWidgetType.MESSAGE, props)}>{props.caption}</Text>\n </View>\n {props.hideclose ? null : (\n <WmButton\n id={this.getTestId('close')}\n iconclass=\"wi wi-close\"\n styles={styles.closeBtn}\n onTap={this.close}></WmButton>\n )}\n </Animatedview>);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","View","Text","BaseComponent","BaseComponentState","WmMessageProps","DEFAULT_CLASS","WmIcon","WmButton","Animatedview","AccessibilityWidgetType","getAccessibilityProps","WmMessageState","MESSAGE_ICONS","DEFAULT_TITLE","WmMessage","constructor","props","_defineProperty","updateState","show","invokeEventCallback","showMessage","hideMessage","renderWidget","styles","theme","mergeStyle","getStyle","type","variant","createElement","entryanimation","animation","delay","animationdelay","style","root","onLayout","event","handleLayout","_background","id","getTestId","iconclass","icon","message","_extends","getTestPropsForLabel","title","MESSAGE","text","caption","hideclose","closeiconclass","closeBtn","onTap","close"],"sources":["message.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Text, LayoutChangeEvent } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmMessageProps from './message.props';\nimport { DEFAULT_CLASS, WmMessageStyles } from './message.styles';\nimport WmIcon from '../icon/icon.component';\nimport WmButton from '../button/button.component';\nimport { Animatedview } from '@wavemaker/app-rn-runtime/components/basic/animatedview.component';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility';\n\nexport class WmMessageState extends BaseComponentState<WmMessageProps> {}\n\nconst MESSAGE_ICONS = {\n 'success': 'wm-sl-l sl-check',\n 'warning': 'wm-sl-l sl-alarm-bell',\n 'error': 'fa fa-times-circle',\n 'info': 'wi wi-info',\n 'loading': 'fa fa-spinner fa-spin'\n};\n\nconst DEFAULT_TITLE = {\n 'success': 'Success',\n 'warning': 'Warning',\n 'error': 'Error',\n 'info': 'Info',\n 'loading': 'Processing'\n} as any;\n\nexport default class WmMessage extends BaseComponent<WmMessageProps, WmMessageState, WmMessageStyles> {\n\n constructor(props: WmMessageProps) {\n super(props, DEFAULT_CLASS, new WmMessageProps());\n }\n\n showMessage() {\n this.updateState({\n props: {\n show: true\n }\n } as WmMessageState);\n }\n\n hideMessage() {\n this.updateState({\n props: {\n show: false\n }\n } as WmMessageState);\n }\n\n close = () => {\n this.updateState({props: {\n show : false\n }}, () => this.invokeEventCallback('onClose', [null, this]));\n }\n\n renderWidget(props: WmMessageProps) {\n const styles = this.theme.mergeStyle(this.theme.getStyle(`${props.type}-${props.variant}-message`), this.styles);\n return (\n <Animatedview \n entryanimation={props.animation} \n delay={props.animationdelay} \n style={styles.root}\n onLayout={(event: LayoutChangeEvent) => this.handleLayout(event)}\n >\n {this._background}\n <WmIcon\n id={this.getTestId('icon')}\n iconclass={props.type && MESSAGE_ICONS[props.type]}\n styles={styles.icon}></WmIcon>\n <View style={styles.message}>\n <Text {...this.getTestPropsForLabel('title')} style={styles.title} {...getAccessibilityProps(AccessibilityWidgetType.MESSAGE, props)}>{props.title || DEFAULT_TITLE[props.type || '']}</Text>\n <Text {...this.getTestPropsForLabel('caption')} style={styles.text} {...getAccessibilityProps(AccessibilityWidgetType.MESSAGE, props)}>{props.caption}</Text>\n </View>\n {props.hideclose ? null : (\n <WmButton\n id={this.getTestId('close')}\n iconclass={props.closeiconclass || \"wi wi-close\"}\n styles={styles.closeBtn}\n onTap={this.close}></WmButton>\n )}\n </Animatedview>);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -16,6 +16,7 @@ export default class WmMessageProps extends BaseProps {
16
16
  _defineProperty(this, "hint", undefined);
17
17
  _defineProperty(this, "accessibilityrole", 'alert');
18
18
  _defineProperty(this, "onClose", void 0);
19
+ _defineProperty(this, "closeiconclass", 'wi wi-close');
19
20
  }
20
21
  }
21
22
  //# sourceMappingURL=message.props.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BaseProps","WmMessageProps","constructor","args","_defineProperty","undefined"],"sources":["message.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { AccessibilityRole } from 'react-native';\nexport default class WmMessageProps extends BaseProps {\n animation?: string = 'fadeIn';\n animationdelay?: number = null as any;\n title?: string = '';\n variant?: string = 'dark'\n caption? = 'Message';\n type?: 'success' | 'warning' | 'error' | 'info' | 'loading' = 'success';\n hideclose? = false;\n accessibilitylabel?: string = undefined;\n hint?: string = undefined;\n accessibilityrole?: AccessibilityRole = 'alert';\n onClose?: () => void;\n}\n"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,+CAA+C;AAEzE,eAAe,MAAMC,cAAc,SAASD,SAAS,CAAC;EAAAE,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,oBAC/B,QAAQ;IAAAA,eAAA,yBACH,IAAI;IAAAA,eAAA,gBACb,EAAE;IAAAA,eAAA,kBACA,MAAM;IAAAA,eAAA,kBACd,SAAS;IAAAA,eAAA,eAC0C,SAAS;IAAAA,eAAA,oBAC1D,KAAK;IAAAA,eAAA,6BACYC,SAAS;IAAAD,eAAA,eACvBC,SAAS;IAAAD,eAAA,4BACe,OAAO;IAAAA,eAAA;EAAA;AAEjD","ignoreList":[]}
1
+ {"version":3,"names":["BaseProps","WmMessageProps","constructor","args","_defineProperty","undefined"],"sources":["message.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { AccessibilityRole } from 'react-native';\nexport default class WmMessageProps extends BaseProps {\n animation?: string = 'fadeIn';\n animationdelay?: number = null as any;\n title?: string = '';\n variant?: string = 'dark'\n caption? = 'Message';\n type?: 'success' | 'warning' | 'error' | 'info' | 'loading' = 'success';\n hideclose? = false;\n accessibilitylabel?: string = undefined;\n hint?: string = undefined;\n accessibilityrole?: AccessibilityRole = 'alert';\n onClose?: () => void;\n closeiconclass?: string = 'wi wi-close';\n}\n"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,+CAA+C;AAEzE,eAAe,MAAMC,cAAc,SAASD,SAAS,CAAC;EAAAE,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,oBAC/B,QAAQ;IAAAA,eAAA,yBACH,IAAI;IAAAA,eAAA,gBACb,EAAE;IAAAA,eAAA,kBACA,MAAM;IAAAA,eAAA,kBACd,SAAS;IAAAA,eAAA,eAC0C,SAAS;IAAAA,eAAA,oBAC1D,KAAK;IAAAA,eAAA,6BACYC,SAAS;IAAAD,eAAA,eACvBC,SAAS;IAAAD,eAAA,4BACe,OAAO;IAAAA,eAAA;IAAAA,eAAA,yBAErB,aAAa;EAAA;AACzC","ignoreList":[]}
@@ -45,6 +45,7 @@ export default class WmSearch extends BaseDatasetComponent {
45
45
  _defineProperty(this, "cursor", 0);
46
46
  _defineProperty(this, "isFocused", false);
47
47
  _defineProperty(this, "updateRequired", void 0);
48
+ _defineProperty(this, "timer", null);
48
49
  _defineProperty(this, "computePosition", () => {
49
50
  return new Promise(resolve => {
50
51
  const position = {};
@@ -57,6 +58,38 @@ export default class WmSearch extends BaseDatasetComponent {
57
58
  });
58
59
  });
59
60
  });
61
+ _defineProperty(this, "handleChange", value => {
62
+ this.isDefaultQuery = false;
63
+ const prevQuery = this.state.props.query;
64
+ if (this.state.props.searchon === 'onsearchiconclick') {
65
+ this.updateState({
66
+ props: {
67
+ result: [],
68
+ query: value
69
+ },
70
+ data: []
71
+ });
72
+ } else {
73
+ this.updateFilteredData(value);
74
+ }
75
+ if (value === '') {
76
+ this.validate(value);
77
+ this.updateState({
78
+ props: {
79
+ datavalue: ''
80
+ }
81
+ });
82
+ if (value === prevQuery) {
83
+ return;
84
+ }
85
+ }
86
+ setTimeout(() => {
87
+ if (this.props.invokeEvent) {
88
+ this.props.invokeEvent('onChange', [undefined, this.proxy, value, prevQuery]);
89
+ }
90
+ this.invokeEventCallback('onChange', [undefined, this.proxy, value, prevQuery]);
91
+ }, 300);
92
+ });
60
93
  _defineProperty(this, "showPopover", () => {
61
94
  this.computePosition().then(() => {
62
95
  this.updateState({
@@ -146,36 +179,17 @@ export default class WmSearch extends BaseDatasetComponent {
146
179
  this === null || this === void 0 || (_this$widgetRef = this.widgetRef) === null || _this$widgetRef === void 0 || _this$widgetRef.focus();
147
180
  }
148
181
  onChange(value) {
149
- this.isDefaultQuery = false;
150
- const prevQuery = this.state.props.query;
151
- if (this.state.props.searchon === 'onsearchiconclick') {
152
- this.updateState({
153
- props: {
154
- result: [],
155
- query: value
156
- },
157
- data: []
158
- });
159
- } else {
160
- this.updateFilteredData(value);
161
- }
162
- if (value === '') {
163
- this.validate(value);
164
- this.updateState({
165
- props: {
166
- datavalue: ''
167
- }
168
- });
169
- if (value === prevQuery) {
170
- return;
182
+ if (this.state.props.debouncetime && this.state.props.debouncetime > 0) {
183
+ if (this.timer !== null) {
184
+ clearTimeout(this.timer);
185
+ this.timer = null;
171
186
  }
187
+ this.timer = setTimeout(() => {
188
+ this.handleChange(value);
189
+ }, this.state.props.debouncetime);
190
+ } else {
191
+ this.handleChange(value);
172
192
  }
173
- setTimeout(() => {
174
- if (this.props.invokeEvent) {
175
- this.props.invokeEvent('onChange', [undefined, this.proxy, value, prevQuery]);
176
- }
177
- this.invokeEventCallback('onChange', [undefined, this.proxy, value, prevQuery]);
178
- }, 300);
179
193
  }
180
194
  invokeChange(e) {
181
195
  if (Platform.OS === 'web') {
@@ -250,6 +264,13 @@ export default class WmSearch extends BaseDatasetComponent {
250
264
  } else {
251
265
  this.onItemSelect(this.state.data[0]);
252
266
  }
267
+ if (get(this.props, 'formfield')) {
268
+ // @ts-ignore
269
+ // @ts-ignore
270
+ this.props.invokeEvent('onSubmit', [null, this]);
271
+ } else {
272
+ this.invokeEventCallback('onSubmit', [null, this]);
273
+ }
253
274
  }
254
275
  onItemSelect(item) {
255
276
  this.isFocused = false;