@wavemaker/app-rn-runtime 11.14.1-22.647501 → 11.14.1-22.647577
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/core/AppConfig.js.map +1 -1
- package/core/tappable.component.js +109 -15
- package/core/tappable.component.js.map +1 -1
- package/npm-shrinkwrap.json +2442 -2337
- package/package-lock.json +2442 -2337
- package/package.json +5 -2
- package/runtime/navigator/drawer.navigator.js +2 -0
- package/runtime/navigator/drawer.navigator.js.map +1 -1
- package/runtime/navigator/stack.navigator.js +13 -1
- package/runtime/navigator/stack.navigator.js.map +1 -1
- package/styles/theme.variables.js +2 -0
- package/styles/theme.variables.js.map +1 -1
package/core/AppConfig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["AppConfig.ts"],"sourcesContent":["export interface Drawer {\n setContent: (c: React.ReactNode) => void;\n getContent: () => React.ReactNode;\n setAnimation: (animation: string) => void;\n getAnimation: () => string;\n}\n\nexport default interface AppConfig {\n appId: string;\n assets: any;\n appProperties: any;\n appLocale: any;\n url: string;\n leftNavWidth: any;\n loadApp: boolean;\n refresh: (complete?: boolean) => void,\n currentPage?: any;\n pages?: any[];\n landingPage: string;\n partials?: any[];\n drawer: Drawer;\n app: any;\n spinner: any;\n setDrawerContent: any;\n theme: any;\n drawerType: any;\n /**\n * Application preferences that can include:\n * - enableGlobalErrorHandler (boolean): Master switch for all error handling. Default: false (disabled)\n * - enableRenderErrors (boolean): Enable React ErrorBoundary for component errors. Default: true\n * - enableJsSyncErrors (boolean): Enable synchronous JavaScript error handling. Default: true\n * - enableJsAsyncErrors (boolean): Enable asynchronous/promise rejection error handling. Default: true\n * - showDefaultErrorFallback (boolean): Show default error fallback UI when errors occur. Default: true\n * - Other app-specific preferences...\n */\n preferences:any;\n getServiceDefinitions: any;\n loggedInUser: any;\n selectedLocale: string;\n revertLayoutToExpo50: boolean,\n diagnostics: {\n appStartTime: number,\n appReadyTime: number,\n pageStartTime: number,\n pageReadyTime: number\n }, \n edgeToEdgeConfig:any;\n prefabs?: {\n partials?: any[]\n },\n screenCaptureProtection: {\n enabled: boolean\n },\n disableNavigationAnimation:boolean,\n}"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["AppConfig.ts"],"sourcesContent":["export interface Drawer {\n setContent: (c: React.ReactNode) => void;\n getContent: () => React.ReactNode;\n setAnimation: (animation: string) => void;\n getAnimation: () => string;\n}\n\nexport default interface AppConfig {\n appId: string;\n assets: any;\n appProperties: any;\n appLocale: any;\n url: string;\n leftNavWidth: any;\n loadApp: boolean;\n refresh: (complete?: boolean) => void,\n currentPage?: any;\n pages?: any[];\n landingPage: string;\n partials?: any[];\n drawer: Drawer;\n app: any;\n spinner: any;\n setDrawerContent: any;\n theme: any;\n drawerType: any;\n /**\n * Application preferences that can include:\n * - enableGlobalErrorHandler (boolean): Master switch for all error handling. Default: false (disabled)\n * - enableRenderErrors (boolean): Enable React ErrorBoundary for component errors. Default: true\n * - enableJsSyncErrors (boolean): Enable synchronous JavaScript error handling. Default: true\n * - enableJsAsyncErrors (boolean): Enable asynchronous/promise rejection error handling. Default: true\n * - showDefaultErrorFallback (boolean): Show default error fallback UI when errors occur. Default: true\n * - Other app-specific preferences...\n */\n preferences:any;\n getServiceDefinitions: any;\n loggedInUser: any;\n selectedLocale: string;\n revertLayoutToExpo50: boolean,\n diagnostics: {\n appStartTime: number,\n appReadyTime: number,\n pageStartTime: number,\n pageReadyTime: number\n }, \n edgeToEdgeConfig:any;\n prefabs?: {\n partials?: any[]\n },\n screenCaptureProtection: {\n enabled: boolean\n },\n disableNavigationAnimation:boolean,\n detachInactiveScreens:boolean,\n isLegacyTappable: boolean,\n}"],"mappings":"","ignoreList":[]}
|
|
@@ -3,12 +3,16 @@ 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 { Platform, View, TouchableOpacity } from "react-native";
|
|
7
|
-
import {
|
|
6
|
+
import { Platform, View, TouchableOpacity as RNTouchableOpacity } from "react-native";
|
|
7
|
+
import { Pressable, TouchableNativeFeedback, TouchableOpacity } from "react-native-gesture-handler";
|
|
8
|
+
import Constants, { ExecutionEnvironment } from 'expo-constants';
|
|
9
|
+
import { cloneDeep, get } from "lodash";
|
|
8
10
|
import injector from "./injector";
|
|
9
11
|
import { TouchableRipple } from "react-native-paper";
|
|
12
|
+
import { deepCopy } from "./utils";
|
|
10
13
|
export const TappableContext = /*#__PURE__*/React.createContext(null);
|
|
11
14
|
import { UIPreferencesConsumer } from "./ui-preferences.context";
|
|
15
|
+
const isExpoGo = Constants.executionEnvironment === ExecutionEnvironment.StoreClient;
|
|
12
16
|
export const ParentTappableContext = /*#__PURE__*/React.createContext(null);
|
|
13
17
|
export class SyntheticEvent {
|
|
14
18
|
constructor() {
|
|
@@ -21,12 +25,113 @@ export class SyntheticEvent {
|
|
|
21
25
|
}
|
|
22
26
|
export class Tappable extends React.Component {
|
|
23
27
|
constructor(props) {
|
|
28
|
+
var _this$appConfig$isLeg, _this$appConfig;
|
|
24
29
|
super(props);
|
|
25
30
|
_defineProperty(this, "lastPress", 0);
|
|
26
31
|
_defineProperty(this, "lastTap", 0);
|
|
27
32
|
_defineProperty(this, "lastDoubleTap", 0);
|
|
28
33
|
_defineProperty(this, "isLongTap", false);
|
|
29
34
|
_defineProperty(this, "parent", null);
|
|
35
|
+
_defineProperty(this, "appConfig", injector.get('APP_CONFIG'));
|
|
36
|
+
_defineProperty(this, "isLegacyTappable", void 0);
|
|
37
|
+
_defineProperty(this, "getContainerStyles", commonStyles => {
|
|
38
|
+
var _inner, _inner2, _inner3, _inner4, _inner5, _inner6, _inner7;
|
|
39
|
+
let inner = {};
|
|
40
|
+
if (Array.isArray(commonStyles)) {
|
|
41
|
+
commonStyles.forEach(style => {
|
|
42
|
+
if (style) {
|
|
43
|
+
Object.keys(style).forEach(key => {
|
|
44
|
+
inner[key] = style[key];
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
} else {
|
|
49
|
+
inner = cloneDeep(commonStyles);
|
|
50
|
+
}
|
|
51
|
+
const outer = deepCopy(inner);
|
|
52
|
+
outer === null || outer === void 0 || delete outer["padding"];
|
|
53
|
+
outer === null || outer === void 0 || delete outer["paddingHorizontal"];
|
|
54
|
+
outer === null || outer === void 0 || delete outer["paddingVertical"];
|
|
55
|
+
outer === null || outer === void 0 || delete outer["paddingTop"];
|
|
56
|
+
outer === null || outer === void 0 || delete outer["paddingBottom"];
|
|
57
|
+
outer === null || outer === void 0 || delete outer["paddingLeft"];
|
|
58
|
+
outer === null || outer === void 0 || delete outer["paddingRight"];
|
|
59
|
+
(_inner = inner) === null || _inner === void 0 || delete _inner["margin"];
|
|
60
|
+
(_inner2 = inner) === null || _inner2 === void 0 || delete _inner2["marginHorizontal"];
|
|
61
|
+
(_inner3 = inner) === null || _inner3 === void 0 || delete _inner3["marginVertical"];
|
|
62
|
+
(_inner4 = inner) === null || _inner4 === void 0 || delete _inner4["marginLeft"];
|
|
63
|
+
(_inner5 = inner) === null || _inner5 === void 0 || delete _inner5["marginRight"];
|
|
64
|
+
(_inner6 = inner) === null || _inner6 === void 0 || delete _inner6["marginTop"];
|
|
65
|
+
(_inner7 = inner) === null || _inner7 === void 0 || delete _inner7["marginBottom"];
|
|
66
|
+
return {
|
|
67
|
+
outer,
|
|
68
|
+
inner
|
|
69
|
+
};
|
|
70
|
+
});
|
|
71
|
+
/*
|
|
72
|
+
TODO: Remove TouchableNativeFeedback and TouchableOpacity, and use Pressable only,
|
|
73
|
+
When the issue with Pressable not working in Expo GO is fixed from Expo. (this happens only in Android with Expo Go)
|
|
74
|
+
*/
|
|
75
|
+
_defineProperty(this, "getTouchableRipple", (rippleColor, commonProps) => {
|
|
76
|
+
if (this.isLegacyTappable || Platform.OS === 'ios') {
|
|
77
|
+
return /*#__PURE__*/React.createElement(TouchableRipple, _extends({
|
|
78
|
+
rippleColor: rippleColor,
|
|
79
|
+
borderless: true
|
|
80
|
+
}, commonProps, {
|
|
81
|
+
onLayout: this.props.onLayout
|
|
82
|
+
}), /*#__PURE__*/React.createElement(React.Fragment, null, this.props.children));
|
|
83
|
+
}
|
|
84
|
+
if (isExpoGo) {
|
|
85
|
+
const containerStyle = this.getContainerStyles(commonProps.style);
|
|
86
|
+
delete commonProps["style"];
|
|
87
|
+
return /*#__PURE__*/React.createElement(TouchableNativeFeedback, _extends({}, rippleColor && {
|
|
88
|
+
background: TouchableNativeFeedback.Ripple(rippleColor, true)
|
|
89
|
+
}, {
|
|
90
|
+
onLayout: this.props.onLayout
|
|
91
|
+
}, commonProps, {
|
|
92
|
+
style: containerStyle.outer
|
|
93
|
+
}), /*#__PURE__*/React.createElement(View, {
|
|
94
|
+
style: containerStyle.inner
|
|
95
|
+
}, this.props.children));
|
|
96
|
+
}
|
|
97
|
+
return /*#__PURE__*/React.createElement(Pressable, _extends({
|
|
98
|
+
android_ripple: {
|
|
99
|
+
color: rippleColor,
|
|
100
|
+
borderless: true
|
|
101
|
+
},
|
|
102
|
+
onLayout: this.props.onLayout
|
|
103
|
+
}, commonProps), this.props.children);
|
|
104
|
+
});
|
|
105
|
+
_defineProperty(this, "getTouchable", commonProps => {
|
|
106
|
+
if (this.isLegacyTappable || Platform.OS === 'ios') {
|
|
107
|
+
return /*#__PURE__*/React.createElement(RNTouchableOpacity, _extends({
|
|
108
|
+
activeOpacity: this.props.disableTouchEffect ? 1 : 0.2,
|
|
109
|
+
onLayout: this.props.onLayout
|
|
110
|
+
}, commonProps), /*#__PURE__*/React.createElement(React.Fragment, null, this.props.children));
|
|
111
|
+
}
|
|
112
|
+
if (isExpoGo) {
|
|
113
|
+
const containerStyle = this.getContainerStyles(commonProps.style);
|
|
114
|
+
delete commonProps["style"];
|
|
115
|
+
return /*#__PURE__*/React.createElement(TouchableOpacity, _extends({
|
|
116
|
+
activeOpacity: this.props.disableTouchEffect ? 1 : 0.2,
|
|
117
|
+
onLayout: this.props.onLayout
|
|
118
|
+
}, commonProps, {
|
|
119
|
+
style: containerStyle.outer
|
|
120
|
+
}), /*#__PURE__*/React.createElement(View, {
|
|
121
|
+
style: containerStyle.inner
|
|
122
|
+
}, this.props.children));
|
|
123
|
+
}
|
|
124
|
+
return /*#__PURE__*/React.createElement(Pressable, _extends({
|
|
125
|
+
onLayout: this.props.onLayout
|
|
126
|
+
}, commonProps, {
|
|
127
|
+
style: ({
|
|
128
|
+
pressed
|
|
129
|
+
}) => [commonProps.style, {
|
|
130
|
+
opacity: !this.props.disableTouchEffect && pressed ? 0.2 : 1
|
|
131
|
+
}]
|
|
132
|
+
}), this.props.children);
|
|
133
|
+
});
|
|
134
|
+
this.isLegacyTappable = (_this$appConfig$isLeg = (_this$appConfig = this.appConfig) === null || _this$appConfig === void 0 ? void 0 : _this$appConfig.isLegacyTappable) !== null && _this$appConfig$isLeg !== void 0 ? _this$appConfig$isLeg : true;
|
|
30
135
|
}
|
|
31
136
|
async triggerTap(e = new SyntheticEvent()) {
|
|
32
137
|
var _this$parent;
|
|
@@ -136,19 +241,8 @@ export class Tappable extends React.Component {
|
|
|
136
241
|
this.setParent(parent);
|
|
137
242
|
return /*#__PURE__*/React.createElement(ParentTappableContext.Provider, {
|
|
138
243
|
value: this
|
|
139
|
-
},
|
|
140
|
-
|
|
141
|
-
borderless: true
|
|
142
|
-
}, commonProps, {
|
|
143
|
-
onLayout: this.props.onLayout
|
|
144
|
-
}), /*#__PURE__*/React.createElement(React.Fragment, null, this.props.children)));
|
|
145
|
-
}) :
|
|
146
|
-
/*#__PURE__*/
|
|
147
|
-
//default value is 0.2
|
|
148
|
-
React.createElement(TouchableOpacity, _extends({
|
|
149
|
-
activeOpacity: this.props.disableTouchEffect ? 1 : 0.2,
|
|
150
|
-
onLayout: this.props.onLayout
|
|
151
|
-
}, commonProps), /*#__PURE__*/React.createElement(React.Fragment, null, this.props.children));
|
|
244
|
+
}, this.getTouchableRipple(this.props.disableTouchEffect ? "transparent" : this.props.rippleColor, commonProps));
|
|
245
|
+
}) : /*#__PURE__*/React.createElement(React.Fragment, null, this.getTouchable(commonProps));
|
|
152
246
|
});
|
|
153
247
|
}
|
|
154
248
|
return /*#__PURE__*/React.createElement(View, _extends({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Platform","View","TouchableOpacity","get","injector","TouchableRipple","TappableContext","createContext","UIPreferencesConsumer","ParentTappableContext","SyntheticEvent","constructor","_defineProperty","stopPropagation","propagationEnabled","Tappable","Component","props","triggerTap","e","_this$parent","target","onTap","invokeEventCallback","parent","onPress","_this$props$target","lastPress","Date","now","onTouchStart","currentTime","tapDelta","lastTap","isLongTap","_injector$FOCUSED_ELE","FOCUSED_ELEMENT","blur","lastDoubleTap","onDoubleTap","setTimeout","_this$parent2","onLongTap","_this$props$target2","_this$parent3","onPressOut","onTouchEnd","_this$props$target3","_this$parent4","setParent","render","commonProps","OS","accessibilityLabel","testID","accessible","accessibilityProps","disabled","proxy","style","styles","_e$target","tagName","onLongPress","onLongtap","onDoubletap","createElement","preferences","enableRipple","Consumer","Provider","value","_extends","rippleColor","disableTouchEffect","borderless","onLayout","Fragment","children","activeOpacity"],"sources":["tappable.component.tsx"],"sourcesContent":["import { BaseComponent } from \"@wavemaker/app-rn-runtime/core/base.component\";\nimport React from \"react\";\nimport { GestureResponderEvent, Platform, View, TouchableOpacity } from \"react-native\";\nimport { get } from \"lodash\";\nimport injector from \"./injector\";\nimport { TouchableRipple } from \"react-native-paper\";\nimport ThemeVariables from \"../styles/theme.variables\";\nimport { isDefined } from \"./utils\";\n\nexport const TappableContext = React.createContext<Tappable>(null as any);\nimport { UIPreferencesConsumer, UI_PREFERENCES } from \"./ui-preferences.context\";\n\nexport const ParentTappableContext = React.createContext<Tappable>(null as any);\ninterface TappableProps {\n testID?: string;\n children?: any\n styles?: any;\n target?: BaseComponent<any, any, any>;\n onTap?: (e: any) => void;\n onLongTap?: (e: any) => void; \n onDoubleTap?: (e: any) => void;\n onTouchStart? : (e: any) => void;\n onTouchEnd? : (e: any) => void;\n rippleColor?: string;\n accessibilityProps?: any;\n disableTouchEffect?:boolean;\n onLayout?: any;\n}\n\nexport class SyntheticEvent {\n // as the event is being used in onPress, onPressOut and onLongTap the TapEvent is renamed to SyntheticEvent\n propagationEnabled = true;\n \n constructor() {\n\n }\n\n stopPropagation() {\n this.propagationEnabled = false;\n }\n}\n\nexport class Tappable extends React.Component<TappableProps, any> {\n private lastPress = 0;\n private lastTap = 0;\n private lastDoubleTap = 0;\n private isLongTap = false;\n private parent:Tappable = null as any;\n \n constructor(props: any) {\n super(props);\n }\n\n async triggerTap(e = new SyntheticEvent()) {\n if (!e.propagationEnabled) {\n return;\n }\n const target = this.props.target;\n if (this.props.onTap) {\n await this.props.onTap(e);\n } else {\n await target?.invokeEventCallback('onTap', [e, target]);\n }\n this.parent?.triggerTap(e);\n }\n\n onPress(e: SyntheticEvent): void { \n this.lastPress = Date.now();\n const target = this.props.target;\n this.props.onTouchStart && this.props.onTouchStart(e);\n this.props.target?.invokeEventCallback('onTouchstart', [e, this.props.target]);\n const currentTime = Date.now();\n const tapDelta = currentTime - this.lastTap;\n if (this.isLongTap) {\n this.isLongTap = false;\n return;\n }\n if (e.propagationEnabled) {\n injector.FOCUSED_ELEMENT.get()?.blur();\n if(this.lastDoubleTap !== this.lastTap \n && tapDelta < 500) {\n this.props.onDoubleTap && this.props.onDoubleTap(e);\n setTimeout(() => {\n target?.invokeEventCallback('onDoubletap', [e, target]);\n }, 200);\n this.lastDoubleTap = currentTime;\n }\n setTimeout(() => {\n if (!e.propagationEnabled) {\n return;\n }\n if (this.props.onTap) {\n this.props.onTap(e);\n } else {\n target?.invokeEventCallback('onTap', [e, target]);\n }\n this.parent?.onPress(e);\n }, 200);\n this.lastTap = currentTime;\n }\n }\n\n onLongTap(e: SyntheticEvent): void {\n if(!e.propagationEnabled){\n return;\n }\n this.props.onLongTap && this.props.onLongTap(e);\n setTimeout(() => {\n this.props.target?.invokeEventCallback('onLongtap', [e, this.props.target]);\n this.parent?.onPressOut(e);\n }, 200);\n this.isLongTap = true;\n }\n \n onPressOut(e: SyntheticEvent): void {\n if(!e.propagationEnabled){\n return;\n } \n this.props.onTouchEnd && this.props.onTouchEnd(e);\n setTimeout(() => {\n this.props.target?.invokeEventCallback('onTouchend', [e, this.props.target]);\n this.parent?.onPressOut(e);\n }, 200);\n this.isLongTap = false;\n }\n private setParent(parent: Tappable) {\n if (parent && this.parent !== parent) {\n this.parent = parent;\n }\n }\n\n render() {\n const target = this.props.target;\n const commonProps = {\n ...(Platform.OS === 'android' || Platform.OS === 'web') ? {\n accessibilityLabel: this.props.testID,\n testID: this.props.testID\n }: {\n accessible: false,\n testID: this.props.testID\n },\n ...this.props.accessibilityProps,\n disabled:get(target?.proxy, 'disabled'),\n style:this.props.styles,\n onPress:(e?: GestureResponderEvent) => {\n if ((e?.target as any)?.tagName === 'INPUT') {\n return;\n }\n this.onPress(new SyntheticEvent())\n },\n onLongPress:(e?: GestureResponderEvent) => this.onLongTap(new SyntheticEvent()),\n onPressOut:(e?: GestureResponderEvent) => this.onPressOut(new SyntheticEvent())\n };\n if (target?.props.onTap \n || target?.props.onLongtap \n || target?.props.onDoubletap \n || this.props.onTap \n || this.props.onLongTap \n || this.props.onDoubleTap) {\n return (\n <UIPreferencesConsumer>\n {(preferences: UI_PREFERENCES) => {\n return preferences.enableRipple != false ? (\n <ParentTappableContext.Consumer>{(parent) => {\n this.setParent(parent);\n return(\n <ParentTappableContext.Provider value={this}>\n <TouchableRipple \n rippleColor={this.props.disableTouchEffect ? \"transparent\" : this.props.rippleColor} \n borderless={true} \n {...commonProps}\n onLayout={this.props.onLayout}\n >\n <>{this.props.children}</>\n </TouchableRipple>\n </ParentTappableContext.Provider>\n )\n }}</ParentTappableContext.Consumer>): (\n //default value is 0.2\n <TouchableOpacity \n activeOpacity={this.props.disableTouchEffect ? 1 : 0.2} \n onLayout={this.props.onLayout}\n {...commonProps}\n >\n <>{this.props.children}</>\n </TouchableOpacity>);\n }}\n </UIPreferencesConsumer>\n );\n }\n return (\n <View \n style={this.props.styles}\n onLayout={this.props.onLayout}\n {...this.props.accessibilityProps}\n >\n {this.props.children}\n </View>);\n }\n}\n"],"mappings":";;;;AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAgCC,QAAQ,EAAEC,IAAI,EAAEC,gBAAgB,QAAQ,cAAc;AACtF,SAASC,GAAG,QAAQ,QAAQ;AAC5B,OAAOC,QAAQ,MAAM,YAAY;AACjC,SAASC,eAAe,QAAQ,oBAAoB;AAIpD,OAAO,MAAMC,eAAe,gBAAGP,KAAK,CAACQ,aAAa,CAAW,IAAW,CAAC;AACzE,SAASC,qBAAqB,QAAwB,0BAA0B;AAEhF,OAAO,MAAMC,qBAAqB,gBAAGV,KAAK,CAACQ,aAAa,CAAW,IAAW,CAAC;AAiB/E,OAAO,MAAMG,cAAc,CAAC;EAIxBC,WAAWA,CAAA,EAAG;IAHd;IAAAC,eAAA,6BACqB,IAAI;EAIzB;EAEAC,eAAeA,CAAA,EAAG;IACd,IAAI,CAACC,kBAAkB,GAAG,KAAK;EACnC;AACJ;AAEA,OAAO,MAAMC,QAAQ,SAAShB,KAAK,CAACiB,SAAS,CAAqB;EAO9DL,WAAWA,CAACM,KAAU,EAAE;IACpB,KAAK,CAACA,KAAK,CAAC;IAACL,eAAA,oBAPG,CAAC;IAAAA,eAAA,kBACH,CAAC;IAAAA,eAAA,wBACK,CAAC;IAAAA,eAAA,oBACL,KAAK;IAAAA,eAAA,iBACC,IAAI;EAI9B;EAEA,MAAMM,UAAUA,CAACC,CAAC,GAAG,IAAIT,cAAc,CAAC,CAAC,EAAE;IAAA,IAAAU,YAAA;IACvC,IAAI,CAACD,CAAC,CAACL,kBAAkB,EAAE;MACvB;IACJ;IACA,MAAMO,MAAM,GAAG,IAAI,CAACJ,KAAK,CAACI,MAAM;IAChC,IAAI,IAAI,CAACJ,KAAK,CAACK,KAAK,EAAE;MAClB,MAAM,IAAI,CAACL,KAAK,CAACK,KAAK,CAACH,CAAC,CAAC;IAC7B,CAAC,MAAM;MACH,OAAME,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEE,mBAAmB,CAAC,OAAO,EAAE,CAACJ,CAAC,EAAEE,MAAM,CAAC,CAAC;IAC3D;IACA,CAAAD,YAAA,OAAI,CAACI,MAAM,cAAAJ,YAAA,eAAXA,YAAA,CAAaF,UAAU,CAACC,CAAC,CAAC;EAC9B;EAEAM,OAAOA,CAACN,CAAiB,EAAQ;IAAA,IAAAO,kBAAA;IAC7B,IAAI,CAACC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;IAC3B,MAAMR,MAAM,GAAG,IAAI,CAACJ,KAAK,CAACI,MAAM;IAChC,IAAI,CAACJ,KAAK,CAACa,YAAY,IAAI,IAAI,CAACb,KAAK,CAACa,YAAY,CAACX,CAAC,CAAC;IACrD,CAAAO,kBAAA,OAAI,CAACT,KAAK,CAACI,MAAM,cAAAK,kBAAA,eAAjBA,kBAAA,CAAmBH,mBAAmB,CAAC,cAAc,EAAE,CAACJ,CAAC,EAAE,IAAI,CAACF,KAAK,CAACI,MAAM,CAAC,CAAC;IAC9E,MAAMU,WAAW,GAAGH,IAAI,CAACC,GAAG,CAAC,CAAC;IAC9B,MAAMG,QAAQ,GAAGD,WAAW,GAAG,IAAI,CAACE,OAAO;IAC3C,IAAI,IAAI,CAACC,SAAS,EAAE;MAChB,IAAI,CAACA,SAAS,GAAG,KAAK;MACtB;IACJ;IACA,IAAIf,CAAC,CAACL,kBAAkB,EAAE;MAAA,IAAAqB,qBAAA;MACtB,CAAAA,qBAAA,GAAA/B,QAAQ,CAACgC,eAAe,CAACjC,GAAG,CAAC,CAAC,cAAAgC,qBAAA,eAA9BA,qBAAA,CAAgCE,IAAI,CAAC,CAAC;MACtC,IAAG,IAAI,CAACC,aAAa,KAAK,IAAI,CAACL,OAAO,IAC/BD,QAAQ,GAAG,GAAG,EAAE;QACnB,IAAI,CAACf,KAAK,CAACsB,WAAW,IAAI,IAAI,CAACtB,KAAK,CAACsB,WAAW,CAACpB,CAAC,CAAC;QACnDqB,UAAU,CAAC,MAAM;UACbnB,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEE,mBAAmB,CAAC,aAAa,EAAE,CAACJ,CAAC,EAAEE,MAAM,CAAC,CAAC;QAC3D,CAAC,EAAE,GAAG,CAAC;QACP,IAAI,CAACiB,aAAa,GAAGP,WAAW;MACpC;MACAS,UAAU,CAAC,MAAM;QAAA,IAAAC,aAAA;QACb,IAAI,CAACtB,CAAC,CAACL,kBAAkB,EAAE;UACvB;QACJ;QACA,IAAI,IAAI,CAACG,KAAK,CAACK,KAAK,EAAE;UAClB,IAAI,CAACL,KAAK,CAACK,KAAK,CAACH,CAAC,CAAC;QACvB,CAAC,MAAM;UACHE,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEE,mBAAmB,CAAC,OAAO,EAAE,CAACJ,CAAC,EAAEE,MAAM,CAAC,CAAC;QACrD;QACA,CAAAoB,aAAA,OAAI,CAACjB,MAAM,cAAAiB,aAAA,eAAXA,aAAA,CAAahB,OAAO,CAACN,CAAC,CAAC;MAC3B,CAAC,EAAE,GAAG,CAAC;MACP,IAAI,CAACc,OAAO,GAAGF,WAAW;IAC9B;EACJ;EAEAW,SAASA,CAACvB,CAAiB,EAAQ;IAC/B,IAAG,CAACA,CAAC,CAACL,kBAAkB,EAAC;MACrB;IACJ;IACA,IAAI,CAACG,KAAK,CAACyB,SAAS,IAAI,IAAI,CAACzB,KAAK,CAACyB,SAAS,CAACvB,CAAC,CAAC;IAC/CqB,UAAU,CAAC,MAAM;MAAA,IAAAG,mBAAA,EAAAC,aAAA;MACb,CAAAD,mBAAA,OAAI,CAAC1B,KAAK,CAACI,MAAM,cAAAsB,mBAAA,eAAjBA,mBAAA,CAAmBpB,mBAAmB,CAAC,WAAW,EAAE,CAACJ,CAAC,EAAE,IAAI,CAACF,KAAK,CAACI,MAAM,CAAC,CAAC;MAC3E,CAAAuB,aAAA,OAAI,CAACpB,MAAM,cAAAoB,aAAA,eAAXA,aAAA,CAAaC,UAAU,CAAC1B,CAAC,CAAC;IAC9B,CAAC,EAAE,GAAG,CAAC;IACP,IAAI,CAACe,SAAS,GAAG,IAAI;EACzB;EAEAW,UAAUA,CAAC1B,CAAiB,EAAQ;IAChC,IAAG,CAACA,CAAC,CAACL,kBAAkB,EAAC;MACrB;IACJ;IACA,IAAI,CAACG,KAAK,CAAC6B,UAAU,IAAI,IAAI,CAAC7B,KAAK,CAAC6B,UAAU,CAAC3B,CAAC,CAAC;IACjDqB,UAAU,CAAC,MAAM;MAAA,IAAAO,mBAAA,EAAAC,aAAA;MACb,CAAAD,mBAAA,OAAI,CAAC9B,KAAK,CAACI,MAAM,cAAA0B,mBAAA,eAAjBA,mBAAA,CAAmBxB,mBAAmB,CAAC,YAAY,EAAE,CAACJ,CAAC,EAAE,IAAI,CAACF,KAAK,CAACI,MAAM,CAAC,CAAC;MAC5E,CAAA2B,aAAA,OAAI,CAACxB,MAAM,cAAAwB,aAAA,eAAXA,aAAA,CAAaH,UAAU,CAAC1B,CAAC,CAAC;IAC9B,CAAC,EAAE,GAAG,CAAC;IACP,IAAI,CAACe,SAAS,GAAG,KAAK;EAC1B;EACQe,SAASA,CAACzB,MAAgB,EAAE;IAChC,IAAIA,MAAM,IAAI,IAAI,CAACA,MAAM,KAAKA,MAAM,EAAG;MACnC,IAAI,CAACA,MAAM,GAAGA,MAAM;IACxB;EACJ;EAEA0B,MAAMA,CAAA,EAAG;IACL,MAAM7B,MAAM,GAAG,IAAI,CAACJ,KAAK,CAACI,MAAM;IAChC,MAAM8B,WAAW,GAAG;MAChB,IAAInD,QAAQ,CAACoD,EAAE,KAAK,SAAS,IAAIpD,QAAQ,CAACoD,EAAE,KAAK,KAAK,GAAI;QACtDC,kBAAkB,EAAE,IAAI,CAACpC,KAAK,CAACqC,MAAM;QACrCA,MAAM,EAAE,IAAI,CAACrC,KAAK,CAACqC;MACvB,CAAC,GAAE;QACCC,UAAU,EAAE,KAAK;QACjBD,MAAM,EAAE,IAAI,CAACrC,KAAK,CAACqC;MACvB,CAAC;MACD,GAAG,IAAI,CAACrC,KAAK,CAACuC,kBAAkB;MAChCC,QAAQ,EAACtD,GAAG,CAACkB,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEqC,KAAK,EAAE,UAAU,CAAC;MACvCC,KAAK,EAAC,IAAI,CAAC1C,KAAK,CAAC2C,MAAM;MACvBnC,OAAO,EAAEN,CAAyB,IAAK;QAAA,IAAA0C,SAAA;QACnC,IAAI,CAAC1C,CAAC,aAADA,CAAC,gBAAA0C,SAAA,GAAD1C,CAAC,CAAEE,MAAM,cAAAwC,SAAA,uBAAVA,SAAA,CAAoBC,OAAO,MAAK,OAAO,EAAE;UACzC;QACJ;QACA,IAAI,CAACrC,OAAO,CAAC,IAAIf,cAAc,CAAC,CAAC,CAAC;MACtC,CAAC;MACDqD,WAAW,EAAE5C,CAAyB,IAAK,IAAI,CAACuB,SAAS,CAAC,IAAIhC,cAAc,CAAC,CAAC,CAAC;MAC/EmC,UAAU,EAAE1B,CAAyB,IAAK,IAAI,CAAC0B,UAAU,CAAC,IAAInC,cAAc,CAAC,CAAC;IAClF,CAAC;IACD,IAAIW,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEJ,KAAK,CAACK,KAAK,IAChBD,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEJ,KAAK,CAAC+C,SAAS,IACvB3C,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEJ,KAAK,CAACgD,WAAW,IACzB,IAAI,CAAChD,KAAK,CAACK,KAAK,IAChB,IAAI,CAACL,KAAK,CAACyB,SAAS,IACpB,IAAI,CAACzB,KAAK,CAACsB,WAAW,EAAE;MAC3B,oBACAxC,KAAA,CAAAmE,aAAA,CAAC1D,qBAAqB,QAChB2D,WAA2B,IAAK;QAC9B,OAAOA,WAAW,CAACC,YAAY,IAAI,KAAK,gBACpCrE,KAAA,CAAAmE,aAAA,CAACzD,qBAAqB,CAAC4D,QAAQ,QAAG7C,MAAM,IAAK;UACzC,IAAI,CAACyB,SAAS,CAACzB,MAAM,CAAC;UACtB,oBACIzB,KAAA,CAAAmE,aAAA,CAACzD,qBAAqB,CAAC6D,QAAQ;YAACC,KAAK,EAAE;UAAK,gBACxCxE,KAAA,CAAAmE,aAAA,CAAC7D,eAAe,EAAAmE,QAAA;YACZC,WAAW,EAAE,IAAI,CAACxD,KAAK,CAACyD,kBAAkB,GAAG,aAAa,GAAG,IAAI,CAACzD,KAAK,CAACwD,WAAY;YACpFE,UAAU,EAAE;UAAK,GACbxB,WAAW;YACfyB,QAAQ,EAAE,IAAI,CAAC3D,KAAK,CAAC2D;UAAS,iBAE9B7E,KAAA,CAAAmE,aAAA,CAAAnE,KAAA,CAAA8E,QAAA,QAAG,IAAI,CAAC5D,KAAK,CAAC6D,QAAW,CACZ,CACW,CAAC;QAEzC,CAAkC,CAAC;QAAA;QACnC;QACA/E,KAAA,CAAAmE,aAAA,CAAChE,gBAAgB,EAAAsE,QAAA;UACbO,aAAa,EAAE,IAAI,CAAC9D,KAAK,CAACyD,kBAAkB,GAAG,CAAC,GAAG,GAAI;UACvDE,QAAQ,EAAE,IAAI,CAAC3D,KAAK,CAAC2D;QAAS,GAC1BzB,WAAW,gBAEfpD,KAAA,CAAAmE,aAAA,CAAAnE,KAAA,CAAA8E,QAAA,QAAG,IAAI,CAAC5D,KAAK,CAAC6D,QAAW,CACX,CAAE;MAC5B,CACmB,CAAC;IAE5B;IACA,oBACI/E,KAAA,CAAAmE,aAAA,CAACjE,IAAI,EAAAuE,QAAA;MACDb,KAAK,EAAE,IAAI,CAAC1C,KAAK,CAAC2C,MAAO;MACzBgB,QAAQ,EAAE,IAAI,CAAC3D,KAAK,CAAC2D;IAAS,GAC1B,IAAI,CAAC3D,KAAK,CAACuC,kBAAkB,GAEhC,IAAI,CAACvC,KAAK,CAAC6D,QACV,CAAC;EACf;AACJ","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Platform","View","TouchableOpacity","RNTouchableOpacity","Pressable","TouchableNativeFeedback","Constants","ExecutionEnvironment","cloneDeep","get","injector","TouchableRipple","deepCopy","TappableContext","createContext","UIPreferencesConsumer","isExpoGo","executionEnvironment","StoreClient","ParentTappableContext","SyntheticEvent","constructor","_defineProperty","stopPropagation","propagationEnabled","Tappable","Component","props","_this$appConfig$isLeg","_this$appConfig","commonStyles","_inner","_inner2","_inner3","_inner4","_inner5","_inner6","_inner7","inner","Array","isArray","forEach","style","Object","keys","key","outer","rippleColor","commonProps","isLegacyTappable","OS","createElement","_extends","borderless","onLayout","Fragment","children","containerStyle","getContainerStyles","background","Ripple","android_ripple","color","activeOpacity","disableTouchEffect","pressed","opacity","appConfig","triggerTap","e","_this$parent","target","onTap","invokeEventCallback","parent","onPress","_this$props$target","lastPress","Date","now","onTouchStart","currentTime","tapDelta","lastTap","isLongTap","_injector$FOCUSED_ELE","FOCUSED_ELEMENT","blur","lastDoubleTap","onDoubleTap","setTimeout","_this$parent2","onLongTap","_this$props$target2","_this$parent3","onPressOut","onTouchEnd","_this$props$target3","_this$parent4","setParent","render","accessibilityLabel","testID","accessible","accessibilityProps","disabled","proxy","styles","_e$target","tagName","onLongPress","onLongtap","onDoubletap","preferences","enableRipple","Consumer","Provider","value","getTouchableRipple","getTouchable"],"sources":["tappable.component.tsx"],"sourcesContent":["import { BaseComponent } from \"@wavemaker/app-rn-runtime/core/base.component\";\nimport React from \"react\";\nimport { GestureResponderEvent, Platform, View, TouchableOpacity as RNTouchableOpacity } from \"react-native\";\nimport { Pressable, TouchableNativeFeedback, TouchableOpacity } from \"react-native-gesture-handler\";\nimport Constants, { ExecutionEnvironment } from 'expo-constants';\nimport { cloneDeep, get } from \"lodash\";\nimport injector from \"./injector\";\nimport { TouchableRipple } from \"react-native-paper\";\nimport ThemeVariables from \"../styles/theme.variables\";\nimport { deepCopy, isDefined } from \"./utils\";\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\n\nexport const TappableContext = React.createContext<Tappable>(null as any);\nimport { UIPreferencesConsumer, UI_PREFERENCES } from \"./ui-preferences.context\";\n\nconst isExpoGo = Constants.executionEnvironment === ExecutionEnvironment.StoreClient;\n\nexport const ParentTappableContext = React.createContext<Tappable>(null as any);\ninterface TappableProps {\n testID?: string;\n children?: any\n styles?: any;\n target?: BaseComponent<any, any, any>;\n onTap?: (e: any) => void;\n onLongTap?: (e: any) => void; \n onDoubleTap?: (e: any) => void;\n onTouchStart? : (e: any) => void;\n onTouchEnd? : (e: any) => void;\n rippleColor?: string;\n accessibilityProps?: any;\n disableTouchEffect?:boolean;\n onLayout?: any;\n}\n\nexport class SyntheticEvent {\n // as the event is being used in onPress, onPressOut and onLongTap the TapEvent is renamed to SyntheticEvent\n propagationEnabled = true;\n \n constructor() {\n\n }\n\n stopPropagation() {\n this.propagationEnabled = false;\n }\n}\n\nexport class Tappable extends React.Component<TappableProps, any> {\n private lastPress = 0;\n private lastTap = 0;\n private lastDoubleTap = 0;\n private isLongTap = false;\n private parent:Tappable = null as any;\n private appConfig: any = injector.get<AppConfig>('APP_CONFIG');;\n private isLegacyTappable: boolean\n\n constructor(props: any) {\n super(props);\n this.isLegacyTappable = this.appConfig?.isLegacyTappable ?? true;\n }\n\n async triggerTap(e = new SyntheticEvent()) {\n if (!e.propagationEnabled) {\n return;\n }\n const target = this.props.target;\n if (this.props.onTap) {\n await this.props.onTap(e);\n } else {\n await target?.invokeEventCallback('onTap', [e, target]);\n }\n this.parent?.triggerTap(e);\n }\n\n onPress(e: SyntheticEvent): void { \n this.lastPress = Date.now();\n const target = this.props.target;\n this.props.onTouchStart && this.props.onTouchStart(e);\n this.props.target?.invokeEventCallback('onTouchstart', [e, this.props.target]);\n const currentTime = Date.now();\n const tapDelta = currentTime - this.lastTap;\n if (this.isLongTap) {\n this.isLongTap = false;\n return;\n }\n if (e.propagationEnabled) {\n injector.FOCUSED_ELEMENT.get()?.blur();\n if(this.lastDoubleTap !== this.lastTap \n && tapDelta < 500) {\n this.props.onDoubleTap && this.props.onDoubleTap(e);\n setTimeout(() => {\n target?.invokeEventCallback('onDoubletap', [e, target]);\n }, 200);\n this.lastDoubleTap = currentTime;\n }\n setTimeout(() => {\n if (!e.propagationEnabled) {\n return;\n }\n if (this.props.onTap) {\n this.props.onTap(e);\n } else {\n target?.invokeEventCallback('onTap', [e, target]);\n }\n this.parent?.onPress(e);\n }, 200);\n this.lastTap = currentTime;\n }\n }\n\n onLongTap(e: SyntheticEvent): void {\n if(!e.propagationEnabled){\n return;\n }\n this.props.onLongTap && this.props.onLongTap(e);\n setTimeout(() => {\n this.props.target?.invokeEventCallback('onLongtap', [e, this.props.target]);\n this.parent?.onPressOut(e);\n }, 200);\n this.isLongTap = true;\n }\n \n onPressOut(e: SyntheticEvent): void {\n if(!e.propagationEnabled){\n return;\n } \n this.props.onTouchEnd && this.props.onTouchEnd(e);\n setTimeout(() => {\n this.props.target?.invokeEventCallback('onTouchend', [e, this.props.target]);\n this.parent?.onPressOut(e);\n }, 200);\n this.isLongTap = false;\n }\n private setParent(parent: Tappable) {\n if (parent && this.parent !== parent) {\n this.parent = parent;\n }\n }\n\n\n private getContainerStyles = (commonStyles: any) => {\n let inner: any = {}\n if(Array.isArray(commonStyles)) {\n commonStyles.forEach((style: any) => {\n if(style) {\n Object.keys(style).forEach(key => {\n inner[key] = style[key];\n })\n }\n })\n } else {\n inner = cloneDeep(commonStyles)\n }\n const outer: any = deepCopy(inner);\n\n delete outer?.[\"padding\"];\n delete outer?.[\"paddingHorizontal\"];\n delete outer?.[\"paddingVertical\"];\n delete outer?.[\"paddingTop\"];\n delete outer?.[\"paddingBottom\"];\n delete outer?.[\"paddingLeft\"];\n delete outer?.[\"paddingRight\"];\n\n delete inner?.[\"margin\"];\n delete inner?.[\"marginHorizontal\"];\n delete inner?.[\"marginVertical\"];\n delete inner?.[\"marginLeft\"];\n delete inner?.[\"marginRight\"];\n delete inner?.[\"marginTop\"];\n delete inner?.[\"marginBottom\"];\n\n return {\n outer,\n inner\n }\n }\n\n /*\n TODO: Remove TouchableNativeFeedback and TouchableOpacity, and use Pressable only,\n When the issue with Pressable not working in Expo GO is fixed from Expo. (this happens only in Android with Expo Go)\n */\n getTouchableRipple = (rippleColor: string | undefined, commonProps: any) => {\n if(this.isLegacyTappable || Platform.OS === 'ios') {\n return (\n <TouchableRipple \n rippleColor={rippleColor} \n borderless={true} \n {...commonProps}\n onLayout={this.props.onLayout}\n >\n <>{this.props.children}</>\n </TouchableRipple>\n )\n }\n\n if(isExpoGo) {\n const containerStyle = this.getContainerStyles(commonProps.style);\n delete commonProps[\"style\"];\n \n return (\n <TouchableNativeFeedback\n {...rippleColor && {background: TouchableNativeFeedback.Ripple(rippleColor, true)}}\n onLayout={this.props.onLayout}\n {...commonProps}\n style={containerStyle.outer}\n >\n <View style={containerStyle.inner}>\n {this.props.children}\n </View>\n </TouchableNativeFeedback>\n )\n }\n\n return (\n <Pressable\n android_ripple={{\n color: rippleColor,\n borderless: true\n }}\n onLayout={this.props.onLayout}\n {...commonProps}\n >\n {this.props.children}\n </Pressable>\n )\n }\n \n\n getTouchable = (commonProps: any) => {\n if(this.isLegacyTappable || Platform.OS === 'ios') {\n return (\n <RNTouchableOpacity \n activeOpacity={this.props.disableTouchEffect ? 1 : 0.2} \n onLayout={this.props.onLayout}\n {...commonProps}\n >\n <>{this.props.children}</>\n </RNTouchableOpacity>\n )\n }\n\n if(isExpoGo) {\n const containerStyle = this.getContainerStyles(commonProps.style);\n delete commonProps[\"style\"];\n\n return (\n <TouchableOpacity\n activeOpacity={this.props.disableTouchEffect ? 1 : 0.2}\n onLayout={this.props.onLayout}\n {...commonProps}\n style={containerStyle.outer}\n\n >\n <View style={containerStyle.inner}>\n {this.props.children}\n </View>\n </TouchableOpacity>\n )\n }\n\n return (\n <Pressable\n onLayout={this.props.onLayout}\n {...commonProps}\n style={({pressed}) => [\n commonProps.style, \n { opacity: !this.props.disableTouchEffect && pressed ? 0.2 : 1}\n ]}\n >\n {this.props.children}\n </Pressable>\n )\n }\n\n render() {\n const target = this.props.target;\n const commonProps = {\n ...(Platform.OS === 'android' || Platform.OS === 'web') ? {\n accessibilityLabel: this.props.testID,\n testID: this.props.testID\n }: {\n accessible: false,\n testID: this.props.testID\n },\n ...this.props.accessibilityProps,\n disabled:get(target?.proxy, 'disabled'),\n style:this.props.styles,\n onPress:(e?: GestureResponderEvent) => {\n if ((e?.target as any)?.tagName === 'INPUT') {\n return;\n }\n this.onPress(new SyntheticEvent())\n },\n onLongPress:(e?: GestureResponderEvent) => this.onLongTap(new SyntheticEvent()),\n onPressOut:(e?: GestureResponderEvent) => this.onPressOut(new SyntheticEvent())\n };\n if (target?.props.onTap \n || target?.props.onLongtap \n || target?.props.onDoubletap \n || this.props.onTap \n || this.props.onLongTap \n || this.props.onDoubleTap) {\n return (\n <UIPreferencesConsumer>\n {(preferences: UI_PREFERENCES) => {\n return preferences.enableRipple != false ? (\n <ParentTappableContext.Consumer>{(parent) => {\n this.setParent(parent);\n return(\n <ParentTappableContext.Provider value={this}>\n {this.getTouchableRipple(\n this.props.disableTouchEffect ? \"transparent\" : this.props.rippleColor, \n commonProps\n )}\n </ParentTappableContext.Provider>\n )\n }}</ParentTappableContext.Consumer>): (\n <>\n {this.getTouchable(commonProps)}\n </>\n )\n }}\n </UIPreferencesConsumer>\n );\n }\n return (\n <View \n style={this.props.styles}\n onLayout={this.props.onLayout}\n {...this.props.accessibilityProps}\n >\n {this.props.children}\n </View>);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|