@wavemaker-ai/app-rn-runtime 12.0.2-rc.647771 → 12.1.0-rc.347

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 (71) hide show
  1. package/components/advanced/webview/webview.component.js +1 -1
  2. package/components/advanced/webview/webview.component.js.map +1 -1
  3. package/components/basic/bottomsheet/bottomsheet.component.js +1 -1
  4. package/components/basic/bottomsheet/bottomsheet.component.js.map +1 -1
  5. package/components/basic/label/label.component.js +2 -2
  6. package/components/basic/label/label.component.js.map +1 -1
  7. package/components/chart/bubble-chart/bubble-chart.component.js.map +1 -1
  8. package/components/container/tabs/tabheader/tabheader.component.js +10 -3
  9. package/components/container/tabs/tabheader/tabheader.component.js.map +1 -1
  10. package/components/data/form/form-field/form-field.component.js +5 -0
  11. package/components/data/form/form-field/form-field.component.js.map +1 -1
  12. package/components/data/form/form.component.js +12 -8
  13. package/components/data/form/form.component.js.map +1 -1
  14. package/components/data/list/list.component.js +5 -2
  15. package/components/data/list/list.component.js.map +1 -1
  16. package/components/dialogs/dialog/dialog.component.js +1 -1
  17. package/components/dialogs/dialog/dialog.component.js.map +1 -1
  18. package/components/input/chips/chips.component.js +1 -1
  19. package/components/input/chips/chips.component.js.map +1 -1
  20. package/components/input/chips/chips.props.js +1 -0
  21. package/components/input/chips/chips.props.js.map +1 -1
  22. package/components/input/textarea/textarea.component.js +1 -1
  23. package/components/input/textarea/textarea.component.js.map +1 -1
  24. package/components/page/page-content/page-content.component.js +152 -17
  25. package/components/page/page-content/page-content.component.js.map +1 -1
  26. package/components/page/page-content/page-content.props.js +5 -0
  27. package/components/page/page-content/page-content.props.js.map +1 -1
  28. package/components/page/page-content/pull-to-refresh.component.js +288 -0
  29. package/components/page/page-content/pull-to-refresh.component.js.map +1 -0
  30. package/core/AppConfig.js.map +1 -1
  31. package/core/base.component.js +14 -0
  32. package/core/base.component.js.map +1 -1
  33. package/core/sticky-wrapper.js +37 -34
  34. package/core/sticky-wrapper.js.map +1 -1
  35. package/gestures/carousel-swipe.animation.js +1 -0
  36. package/gestures/carousel-swipe.animation.js.map +1 -1
  37. package/npm-shrinkwrap.json +1285 -570
  38. package/package-lock.json +1285 -570
  39. package/package.json +3 -3
  40. package/runtime/App.js +52 -36
  41. package/runtime/App.js.map +1 -1
  42. package/runtime/App.navigator.js +4 -1
  43. package/runtime/App.navigator.js.map +1 -1
  44. package/runtime/base-fragment.component.js +1 -0
  45. package/runtime/base-fragment.component.js.map +1 -1
  46. package/runtime/services/app-security.service.js +40 -19
  47. package/runtime/services/app-security.service.js.map +1 -1
  48. package/runtime/services/browser.constants.js +3 -0
  49. package/runtime/services/browser.constants.js.map +1 -0
  50. package/runtime/services/browser.service.js +321 -0
  51. package/runtime/services/browser.service.js.map +1 -0
  52. package/runtime/services/external-auth-callback.service.js +44 -0
  53. package/runtime/services/external-auth-callback.service.js.map +1 -0
  54. package/runtime/services/webprocess.service.js +8 -3
  55. package/runtime/services/webprocess.service.js.map +1 -1
  56. package/styles/background.component.js +61 -2
  57. package/styles/background.component.js.map +1 -1
  58. package/styles/style-prop.validator.js +4 -0
  59. package/styles/style-prop.validator.js.map +1 -1
  60. package/styles/style-props.js +2 -0
  61. package/styles/style-props.js.map +1 -1
  62. package/styles/theme.js +52 -11
  63. package/styles/theme.js.map +1 -1
  64. package/components-prism/basic/search/search.component.js +0 -208
  65. package/components-prism/basic/search/search.component.js.map +0 -1
  66. package/components-prism/basic/search/search.props.js +0 -16
  67. package/components-prism/basic/search/search.props.js.map +0 -1
  68. package/components-prism/basic/search/search.styles.js +0 -127
  69. package/components-prism/basic/search/search.styles.js.map +0 -1
  70. package/core/outside-press-handler.js +0 -65
  71. package/core/outside-press-handler.js.map +0 -1
@@ -1,16 +0,0 @@
1
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
- 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); }
4
- import WmSearchPropsBase from '@wavemaker-ai/app-rn-runtime/components/basic/search/search.props';
5
- export default class WmSearchProps extends WmSearchPropsBase {
6
- constructor(...args) {
7
- super(...args);
8
- _defineProperty(this, "leadingiconclass", void 0);
9
- _defineProperty(this, "leadingiconurl", void 0);
10
- _defineProperty(this, "backsearchiconclass", void 0);
11
- _defineProperty(this, "backsearchiconurl", void 0);
12
- _defineProperty(this, "scrollablesearchresults", true);
13
- _defineProperty(this, "noresultsfoundmessage", 'No results found');
14
- }
15
- }
16
- //# sourceMappingURL=search.props.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["WmSearchPropsBase","WmSearchProps","constructor","args","_defineProperty"],"sources":["search.props.ts"],"sourcesContent":["import WmSearchPropsBase from '@wavemaker-ai/app-rn-runtime/components/basic/search/search.props';\n\nexport default class WmSearchProps extends WmSearchPropsBase {\n leadingiconclass?: string;\n leadingiconurl?: string;\n backsearchiconclass?: string;\n backsearchiconurl?: string;\n scrollablesearchresults?: boolean = true;\n noresultsfoundmessage?: string = 'No results found';\n}\n"],"mappings":";;;AAAA,OAAOA,iBAAiB,MAAM,mEAAmE;AAEjG,eAAe,MAAMC,aAAa,SAASD,iBAAiB,CAAC;EAAAE,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,kCAKvB,IAAI;IAAAA,eAAA,gCACP,kBAAkB;EAAA;AACrD","ignoreList":[]}
@@ -1,127 +0,0 @@
1
- import '@wavemaker-ai/app-rn-runtime/components/basic/search/search.styles';
2
- import { Platform } from 'react-native';
3
- import BASE_THEME from '@wavemaker-ai/app-rn-runtime/styles/theme';
4
- import { defineStyles } from '@wavemaker-ai/app-rn-runtime/core/base.component';
5
- export const DEFAULT_CLASS = 'app-search';
6
- const M3_ICON_TOUCH_SIZE = 48;
7
- const M3_ICON_SIZE = 24;
8
- const M3_DROPDOWN_MAX_HEIGHT = 320;
9
- const m3Elevation1 = Platform.select({
10
- ios: {
11
- shadowColor: '#000',
12
- shadowOffset: {
13
- width: 0,
14
- height: 1
15
- },
16
- shadowOpacity: 0.15,
17
- shadowRadius: 3
18
- },
19
- android: {
20
- elevation: 1
21
- },
22
- default: {}
23
- });
24
- const m3Elevation2 = Platform.select({
25
- ios: {
26
- shadowColor: '#000',
27
- shadowOffset: {
28
- width: 0,
29
- height: 2
30
- },
31
- shadowOpacity: 0.15,
32
- shadowRadius: 6
33
- },
34
- android: {
35
- elevation: 3
36
- },
37
- default: {}
38
- });
39
- BASE_THEME.registerStyle((themeVariables, addStyle) => {
40
- const prismSearchLayout = defineStyles({
41
- rootWrapper: {
42
- position: 'relative'
43
- },
44
- rootWrapperDropdownOpen: {
45
- zIndex: 10
46
- },
47
- root: {
48
- ...m3Elevation1
49
- },
50
- text: {},
51
- inputWeb: {
52
- outline: 'none',
53
- boxShadow: 'none'
54
- },
55
- leadingIcon: {
56
- root: {
57
- width: M3_ICON_TOUCH_SIZE,
58
- height: M3_ICON_TOUCH_SIZE,
59
- justifyContent: 'center',
60
- alignItems: 'center'
61
- },
62
- icon: {
63
- fontSize: M3_ICON_SIZE
64
- },
65
- text: {}
66
- },
67
- trailingIcon: {
68
- root: {
69
- width: M3_ICON_TOUCH_SIZE,
70
- height: M3_ICON_TOUCH_SIZE,
71
- justifyContent: 'center',
72
- alignItems: 'center'
73
- },
74
- icon: {
75
- fontSize: M3_ICON_SIZE
76
- },
77
- text: {}
78
- },
79
- inputWithLeadingIcon: {
80
- paddingLeft: 52
81
- },
82
- inputWithTrailingIcon: {
83
- paddingRight: 52
84
- },
85
- iconWrapper: {
86
- position: 'absolute',
87
- top: 0,
88
- bottom: 0,
89
- justifyContent: 'center',
90
- pointerEvents: 'box-none'
91
- },
92
- modalContent: {
93
- position: 'absolute'
94
- },
95
- dropdownContainer: {
96
- position: 'absolute',
97
- left: 0,
98
- zIndex: 999,
99
- maxHeight: M3_DROPDOWN_MAX_HEIGHT,
100
- overflow: 'hidden',
101
- ...m3Elevation2,
102
- ...(Platform.OS === 'android' ? {
103
- elevation: 8
104
- } : {})
105
- },
106
- searchItem: {
107
- flexDirection: 'row',
108
- alignItems: 'center',
109
- gap: 12
110
- }
111
- });
112
- addStyle(DEFAULT_CLASS, '', prismSearchLayout);
113
- addStyle(DEFAULT_CLASS + '-disabled', '', {
114
- root: {
115
- opacity: 0.38
116
- }
117
- });
118
- addStyle(DEFAULT_CLASS + '-rtl', '', {
119
- root: {
120
- flexDirection: 'row-reverse'
121
- },
122
- searchItem: {
123
- flexDirection: 'row-reverse'
124
- }
125
- });
126
- });
127
- //# sourceMappingURL=search.styles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["Platform","BASE_THEME","defineStyles","DEFAULT_CLASS","M3_ICON_TOUCH_SIZE","M3_ICON_SIZE","M3_DROPDOWN_MAX_HEIGHT","m3Elevation1","select","ios","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","android","elevation","default","m3Elevation2","registerStyle","themeVariables","addStyle","prismSearchLayout","rootWrapper","position","rootWrapperDropdownOpen","zIndex","root","text","inputWeb","outline","boxShadow","leadingIcon","justifyContent","alignItems","icon","fontSize","trailingIcon","inputWithLeadingIcon","paddingLeft","inputWithTrailingIcon","paddingRight","iconWrapper","top","bottom","pointerEvents","modalContent","dropdownContainer","left","maxHeight","overflow","OS","searchItem","flexDirection","gap","opacity"],"sources":["search.styles.ts"],"sourcesContent":["import '@wavemaker-ai/app-rn-runtime/components/basic/search/search.styles';\n\nimport { Platform } from 'react-native';\nimport BASE_THEME, {\n AllStyle,\n} from '@wavemaker-ai/app-rn-runtime/styles/theme';\nimport { defineStyles } from '@wavemaker-ai/app-rn-runtime/core/base.component';\nimport { WmIconStyles } from '@wavemaker-ai/app-rn-runtime/components/basic/icon/icon.styles';\nimport { WmSearchStyles } from '@wavemaker-ai/app-rn-runtime/components/basic/search/search.styles';\n\nexport type WmSearchPrismStyles = WmSearchStyles & {\n inputWeb: AllStyle;\n leadingIcon: WmIconStyles;\n trailingIcon: WmIconStyles;\n iconWrapper: AllStyle;\n inputWithLeadingIcon: AllStyle;\n inputWithTrailingIcon: AllStyle;\n dropdownContainer: AllStyle;\n rootWrapperDropdownOpen: AllStyle;\n rootWrapper: AllStyle;\n};\n\nexport const DEFAULT_CLASS = 'app-search';\n\nconst M3_ICON_TOUCH_SIZE = 48;\nconst M3_ICON_SIZE = 24;\nconst M3_DROPDOWN_MAX_HEIGHT = 320;\n\nconst m3Elevation1 = Platform.select({\n ios: {\n shadowColor: '#000',\n shadowOffset: { width: 0, height: 1 },\n shadowOpacity: 0.15,\n shadowRadius: 3,\n },\n android: { elevation: 1 },\n default: {},\n}) as AllStyle;\n\nconst m3Elevation2 = Platform.select({\n ios: {\n shadowColor: '#000',\n shadowOffset: { width: 0, height: 2 },\n shadowOpacity: 0.15,\n shadowRadius: 6,\n },\n android: { elevation: 3 },\n default: {},\n}) as AllStyle;\n\nBASE_THEME.registerStyle((themeVariables, addStyle) => {\n const prismSearchLayout = defineStyles({\n rootWrapper: {\n position: 'relative',\n },\n rootWrapperDropdownOpen: {\n zIndex: 10,\n },\n root: {\n ...m3Elevation1,\n },\n text: {},\n inputWeb: {\n outline: 'none',\n boxShadow: 'none',\n },\n leadingIcon: {\n root: {\n width: M3_ICON_TOUCH_SIZE,\n height: M3_ICON_TOUCH_SIZE,\n justifyContent: 'center',\n alignItems: 'center',\n },\n icon: { fontSize: M3_ICON_SIZE },\n text: {},\n } as WmIconStyles,\n trailingIcon: {\n root: {\n width: M3_ICON_TOUCH_SIZE,\n height: M3_ICON_TOUCH_SIZE,\n justifyContent: 'center',\n alignItems: 'center',\n },\n icon: { fontSize: M3_ICON_SIZE },\n text: {},\n } as WmIconStyles,\n inputWithLeadingIcon: {\n paddingLeft: 52,\n },\n inputWithTrailingIcon: {\n paddingRight: 52,\n },\n iconWrapper: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n justifyContent: 'center',\n pointerEvents: 'box-none',\n },\n modalContent: {\n position: 'absolute',\n },\n dropdownContainer: {\n position: 'absolute',\n left: 0,\n zIndex: 999,\n maxHeight: M3_DROPDOWN_MAX_HEIGHT,\n overflow: 'hidden',\n ...m3Elevation2,\n ...(Platform.OS === 'android' ? { elevation: 8 } : {}),\n },\n searchItem: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 12,\n },\n }) as any;\n\n addStyle(DEFAULT_CLASS, '', prismSearchLayout);\n\n addStyle(DEFAULT_CLASS + '-disabled', '', {\n root: {\n opacity: 0.38,\n },\n });\n\n addStyle(DEFAULT_CLASS + '-rtl', '', {\n root: {\n flexDirection: 'row-reverse',\n },\n searchItem: {\n flexDirection: 'row-reverse',\n },\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,65 +0,0 @@
1
- import React, { useEffect, useRef } from 'react';
2
- import { Dimensions, Platform, StyleSheet, View } from 'react-native';
3
- const WebOutsidePressHandler = ({
4
- onOutsidePress,
5
- children,
6
- disabled = false,
7
- style
8
- }) => {
9
- const containerRef = useRef(null);
10
- useEffect(() => {
11
- if (disabled) return;
12
- const doc = globalThis.document;
13
- if (!doc) return;
14
- const handlePress = event => {
15
- var _containerRef$current;
16
- if (!((_containerRef$current = containerRef.current) !== null && _containerRef$current !== void 0 && _containerRef$current.contains(event.target))) {
17
- onOutsidePress();
18
- }
19
- };
20
- doc.addEventListener('mousedown', handlePress);
21
- return () => doc.removeEventListener('mousedown', handlePress);
22
- }, [onOutsidePress, disabled]);
23
- return /*#__PURE__*/React.createElement(View, {
24
- ref: containerRef,
25
- style: style
26
- }, children);
27
- };
28
- const NativeOutsidePressHandler = ({
29
- onOutsidePress,
30
- children,
31
- disabled = false,
32
- style
33
- }) => {
34
- return /*#__PURE__*/React.createElement(View, {
35
- style: [styles.container, style]
36
- }, !disabled && /*#__PURE__*/React.createElement(View, {
37
- style: styles.backdrop,
38
- onStartShouldSetResponder: () => true,
39
- onResponderEnd: () => onOutsidePress()
40
- }), /*#__PURE__*/React.createElement(View, {
41
- style: styles.content
42
- }, children));
43
- };
44
- const {
45
- width: SCREEN_W,
46
- height: SCREEN_H
47
- } = Dimensions.get('screen');
48
- const styles = StyleSheet.create({
49
- container: {
50
- overflow: 'visible'
51
- },
52
- backdrop: {
53
- position: 'absolute',
54
- top: -SCREEN_H * 3,
55
- left: -SCREEN_W * 3,
56
- width: SCREEN_W * 7,
57
- height: SCREEN_H * 7
58
- },
59
- content: {
60
- zIndex: 1
61
- }
62
- });
63
- const OutsidePressHandler = Platform.OS === 'web' ? WebOutsidePressHandler : NativeOutsidePressHandler;
64
- export default OutsidePressHandler;
65
- //# sourceMappingURL=outside-press-handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","useEffect","useRef","Dimensions","Platform","StyleSheet","View","WebOutsidePressHandler","onOutsidePress","children","disabled","style","containerRef","doc","globalThis","document","handlePress","event","_containerRef$current","current","contains","target","addEventListener","removeEventListener","createElement","ref","NativeOutsidePressHandler","styles","container","backdrop","onStartShouldSetResponder","onResponderEnd","content","width","SCREEN_W","height","SCREEN_H","get","create","overflow","position","top","left","zIndex","OutsidePressHandler","OS"],"sources":["outside-press-handler.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { Dimensions, Platform, StyleSheet, View } from 'react-native';\n\ntype OutsidePressHandlerProps = {\n onOutsidePress: () => void;\n children: React.ReactNode;\n disabled?: boolean;\n style?: any;\n};\n\nconst WebOutsidePressHandler = ({\n onOutsidePress,\n children,\n disabled = false,\n style,\n}: OutsidePressHandlerProps) => {\n const containerRef = useRef<View>(null);\n\n useEffect(() => {\n if (disabled) return;\n\n const doc = (globalThis as any).document;\n if (!doc) return;\n\n const handlePress = (event: any) => {\n if (!(containerRef.current as any)?.contains(event.target)) {\n onOutsidePress();\n }\n };\n\n doc.addEventListener('mousedown', handlePress);\n return () => doc.removeEventListener('mousedown', handlePress);\n }, [onOutsidePress, disabled]);\n\n return (\n <View ref={containerRef} style={style}>\n {children}\n </View>\n );\n};\n\nconst NativeOutsidePressHandler = ({\n onOutsidePress,\n children,\n disabled = false,\n style,\n}: OutsidePressHandlerProps) => {\n return (\n <View style={[styles.container, style]}>\n {!disabled && (\n <View\n style={styles.backdrop}\n onStartShouldSetResponder={() => true}\n onResponderEnd={() => onOutsidePress()}\n />\n )}\n <View style={styles.content}>\n {children}\n </View>\n </View>\n );\n};\n\nconst { width: SCREEN_W, height: SCREEN_H } = Dimensions.get('screen');\n\nconst styles = StyleSheet.create({\n container: {\n overflow: 'visible',\n } as any,\n backdrop: {\n position: 'absolute',\n top: -SCREEN_H * 3,\n left: -SCREEN_W * 3,\n width: SCREEN_W * 7,\n height: SCREEN_H * 7,\n },\n content: {\n zIndex: 1,\n },\n});\n\nconst OutsidePressHandler: React.FC<OutsidePressHandlerProps> =\n Platform.OS === 'web' ? WebOutsidePressHandler : NativeOutsidePressHandler;\n\nexport default OutsidePressHandler;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAChD,SAASC,UAAU,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AASrE,MAAMC,sBAAsB,GAAGA,CAAC;EAC9BC,cAAc;EACdC,QAAQ;EACRC,QAAQ,GAAG,KAAK;EAChBC;AACwB,CAAC,KAAK;EAC9B,MAAMC,YAAY,GAAGV,MAAM,CAAO,IAAI,CAAC;EAEvCD,SAAS,CAAC,MAAM;IACd,IAAIS,QAAQ,EAAE;IAEd,MAAMG,GAAG,GAAIC,UAAU,CAASC,QAAQ;IACxC,IAAI,CAACF,GAAG,EAAE;IAEV,MAAMG,WAAW,GAAIC,KAAU,IAAK;MAAA,IAAAC,qBAAA;MAClC,IAAI,GAAAA,qBAAA,GAAEN,YAAY,CAACO,OAAO,cAAAD,qBAAA,eAArBA,qBAAA,CAA+BE,QAAQ,CAACH,KAAK,CAACI,MAAM,CAAC,GAAE;QAC1Db,cAAc,CAAC,CAAC;MAClB;IACF,CAAC;IAEDK,GAAG,CAACS,gBAAgB,CAAC,WAAW,EAAEN,WAAW,CAAC;IAC9C,OAAO,MAAMH,GAAG,CAACU,mBAAmB,CAAC,WAAW,EAAEP,WAAW,CAAC;EAChE,CAAC,EAAE,CAACR,cAAc,EAAEE,QAAQ,CAAC,CAAC;EAE9B,oBACEV,KAAA,CAAAwB,aAAA,CAAClB,IAAI;IAACmB,GAAG,EAAEb,YAAa;IAACD,KAAK,EAAEA;EAAM,GACnCF,QACG,CAAC;AAEX,CAAC;AAED,MAAMiB,yBAAyB,GAAGA,CAAC;EACjClB,cAAc;EACdC,QAAQ;EACRC,QAAQ,GAAG,KAAK;EAChBC;AACwB,CAAC,KAAK;EAC9B,oBACEX,KAAA,CAAAwB,aAAA,CAAClB,IAAI;IAACK,KAAK,EAAE,CAACgB,MAAM,CAACC,SAAS,EAAEjB,KAAK;EAAE,GACpC,CAACD,QAAQ,iBACRV,KAAA,CAAAwB,aAAA,CAAClB,IAAI;IACHK,KAAK,EAAEgB,MAAM,CAACE,QAAS;IACvBC,yBAAyB,EAAEA,CAAA,KAAM,IAAK;IACtCC,cAAc,EAAEA,CAAA,KAAMvB,cAAc,CAAC;EAAE,CACxC,CACF,eACDR,KAAA,CAAAwB,aAAA,CAAClB,IAAI;IAACK,KAAK,EAAEgB,MAAM,CAACK;EAAQ,GACzBvB,QACG,CACF,CAAC;AAEX,CAAC;AAED,MAAM;EAAEwB,KAAK,EAAEC,QAAQ;EAAEC,MAAM,EAAEC;AAAS,CAAC,GAAGjC,UAAU,CAACkC,GAAG,CAAC,QAAQ,CAAC;AAEtE,MAAMV,MAAM,GAAGtB,UAAU,CAACiC,MAAM,CAAC;EAC/BV,SAAS,EAAE;IACTW,QAAQ,EAAE;EACZ,CAAQ;EACRV,QAAQ,EAAE;IACRW,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAACL,QAAQ,GAAG,CAAC;IAClBM,IAAI,EAAE,CAACR,QAAQ,GAAG,CAAC;IACnBD,KAAK,EAAEC,QAAQ,GAAG,CAAC;IACnBC,MAAM,EAAEC,QAAQ,GAAG;EACrB,CAAC;EACDJ,OAAO,EAAE;IACPW,MAAM,EAAE;EACV;AACF,CAAC,CAAC;AAEF,MAAMC,mBAAuD,GAC3DxC,QAAQ,CAACyC,EAAE,KAAK,KAAK,GAAGtC,sBAAsB,GAAGmB,yBAAyB;AAE5E,eAAekB,mBAAmB","ignoreList":[]}