@wavemaker/app-rn-runtime 11.11.0-next.27920 → 11.11.0-rc.209
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/actions/notification-action.js +3 -1
- package/actions/notification-action.js.map +1 -1
- package/components/basic/label/label.component.js +78 -33
- package/components/basic/label/label.component.js.map +1 -1
- package/components/basic/message/message.component.js +1 -1
- package/components/basic/message/message.component.js.map +1 -1
- package/components/basic/message/message.props.js +1 -0
- package/components/basic/message/message.props.js.map +1 -1
- package/components/basic/search/search.component.js +49 -28
- package/components/basic/search/search.component.js.map +1 -1
- package/components/basic/search/search.props.js +1 -0
- package/components/basic/search/search.props.js.map +1 -1
- package/components/chart/basechart.component.js +3 -0
- package/components/chart/basechart.component.js.map +1 -1
- package/components/chart/basechart.props.js +1 -1
- package/components/chart/basechart.props.js.map +1 -1
- package/components/data/list/list.component.js +16 -2
- package/components/data/list/list.component.js.map +1 -1
- package/components/navigation/appnavbar/appnavbar.component.js +63 -8
- package/components/navigation/appnavbar/appnavbar.component.js.map +1 -1
- package/components/navigation/appnavbar/appnavbar.props.js +1 -1
- package/components/navigation/appnavbar/appnavbar.props.js.map +1 -1
- package/components/page/left-panel/left-panel.component.js +3 -2
- package/components/page/left-panel/left-panel.component.js.map +1 -1
- package/components/page/page-content/page-content.component.js +12 -24
- package/components/page/page-content/page-content.component.js.map +1 -1
- package/components/page/page.component.js +10 -5
- package/components/page/page.component.js.map +1 -1
- package/components/page/tabbar/tabbar.component.js +15 -10
- package/components/page/tabbar/tabbar.component.js.map +1 -1
- package/core/AppConfig.js.map +1 -1
- package/core/base.component.js +24 -15
- package/core/base.component.js.map +1 -1
- package/core/sticky-container.component.js +34 -27
- package/core/sticky-container.component.js.map +1 -1
- package/core/toast.service.js.map +1 -1
- package/core/utils.js +51 -5
- package/core/utils.js.map +1 -1
- package/npm-shrinkwrap.json +68 -102
- package/package-lock.json +68 -102
- package/package.json +5 -5
- package/runtime/App.js +48 -8
- package/runtime/App.js.map +1 -1
- package/runtime/base-fragment.component.js +2 -1
- package/runtime/base-fragment.component.js.map +1 -1
- package/runtime/services/app-toast.service.js +4 -0
- 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":";;;AAAA,SAAuBA,UAAU,QAAQ,eAAe;AAYxD,MAAMC,gBAAgB,GAAG,IAAI;AAC7B,OAAO,MAAMC,kBAAkB,SAASF,UAAU,CAA2B;EAEzEG,WAAWA,CAACC,MAAgC,EAAE;IAC1C,KAAK,CAACA,MAAM,CAAC;IAACC,eAAA;IACd,IAAI,CAACC,UAAU,GAAGF,MAAM,CAACE,UAAU;EACvC;EAEAC,mBAAmBA,CAACC,OAAY,GAAG,CAAC,CAAC,EAAE;IAAA,IAAAC,cAAA,EAAAC,aAAA;IACnC,MAAMC,MAAM,GAAG,IAAI,CAACP,MAAM,CAACQ,aAAa,CAAC,CAAC;IAC1C,MAAMC,CAAC,GAAG,CAAC,CAAiB;IAC5BA,CAAC,CAACC,IAAI,GAAGN,OAAO,CAACO,OAAO,IAAIJ,MAAM,CAACG,IAAI;IACvCD,CAAC,CAACG,IAAI,GAAG,EAAAP,cAAA,GAAAD,OAAO,CAACS,KAAK,cAAAR,cAAA,uBAAbA,cAAA,CAAeS,WAAW,CAAC,CAAC,OAAAR,aAAA,GAAIC,MAAM,CAACM,KAAK,cAAAP,aAAA,uBAAZA,aAAA,CAAcQ,WAAW,CAAC,CAAC;IACpEL,CAAC,CAACM,OAAO,GAAG,MAAM;MACd,IAAI,CAACf,MAAM,CAACe,OAAO,IAAI,IAAI,CAACf,MAAM,CAACe,OAAO,CAAC,IAAI,CAAC;IACpD,CAAC,EACDN,CAAC,CAACO,OAAO,GAAG,MAAM;MACd,IAAI,CAAChB,MAAM,CAACiB,IAAI,IAAI,IAAI,CAACjB,MAAM,CAACiB,IAAI,CAAC,IAAI,CAAC;IAC9C,CAAC,EACDR,CAAC,CAACS,OAAO,GAAG,IAAI,CAAClB,MAAM,CAACmB,cAAc;IACtCV,CAAC,CAACW,WAAW,
|
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(
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
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":"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","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
|
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;
|
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.
|
150
|
-
|
151
|
-
|
152
|
-
|
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;
|