related-ui-components 1.6.2 → 1.6.3

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.
@@ -12,10 +12,15 @@ var _reactNativeGestureHandler = require("react-native-gesture-handler");
12
12
  var _jsxRuntime = require("react/jsx-runtime");
13
13
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
14
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
+ // Import runOnJS and useSharedValue
16
+
17
+ // Ignore specific warning if it appears, related to path mutation - use cautiously
18
+ // LogBox.ignoreLogs(['Skia: SkPath.Make()']);
19
+
15
20
  const ScratchCard = ({
16
21
  style,
17
22
  children,
18
- image = null,
23
+ image,
19
24
  brushStrokeWidth = 50,
20
25
  revealThreshold = 0.8,
21
26
  width = 300,
@@ -27,133 +32,167 @@ const ScratchCard = ({
27
32
  textFontSize = 16,
28
33
  onScratched
29
34
  }) => {
30
- const img = (0, _reactNativeSkia.useImage)(image);
31
- const font = (0, _reactNativeSkia.useFont)(textFont, textFontSize);
35
+ const loadedImg = (0, _reactNativeSkia.useImage)(image);
36
+ const loadedFont = (0, _reactNativeSkia.useFont)(textFont, textFontSize);
32
37
  const [[areaWidth, areaHeight], setSize] = (0, _react.useState)([0, 0]);
33
38
  const [isScratched, setScratched] = (0, _react.useState)(false);
34
- const path = (0, _reactNativeReanimated.useSharedValue)(_reactNativeSkia.Skia.Path.Make().moveTo(0, 0));
35
-
36
- //Check scratch progress
37
- const checkScratchProgress = () => {
38
- const bounds = path.value.getBounds();
39
- const scratchedArea = bounds.height * bounds.width;
40
- const totalArea = areaWidth * areaHeight;
41
- if (scratchedArea / totalArea > revealThreshold && !isScratched) {
42
- setScratched(true);
43
- if (onScratched) {
44
- onScratched();
39
+ const [isLayoutReady, setLayoutReady] = (0, _react.useState)(false);
40
+ const isThresholdReached = (0, _reactNativeReanimated.useSharedValue)(false);
41
+ const path = (0, _reactNativeReanimated.useSharedValue)(_reactNativeSkia.Skia.Path.Make());
42
+ (0, _react.useEffect)(() => {
43
+ path.value = _reactNativeSkia.Skia.Path.Make();
44
+ isThresholdReached.value = false;
45
+ setScratched(false);
46
+ }, [areaWidth, areaHeight]);
47
+ const handleLayout = (0, _react.useCallback)(event => {
48
+ const {
49
+ width: newWidth,
50
+ height: newHeight
51
+ } = event.nativeEvent.layout;
52
+ if (newWidth > 0 && newHeight > 0) {
53
+ if (newWidth !== areaWidth || newHeight !== areaHeight) {
54
+ setSize([newWidth, newHeight]);
55
+ }
56
+ if (!isLayoutReady) {
57
+ setLayoutReady(true);
45
58
  }
59
+ } else {
60
+ setLayoutReady(false);
46
61
  }
47
- };
48
- (0, _react.useEffect)(() => {
49
- console.log("HI");
50
- }, [path]);
62
+ }, [areaWidth, areaHeight, isLayoutReady]);
63
+ const revealCardOnJS = (0, _react.useCallback)(() => {
64
+ setScratched(true);
65
+ onScratched?.();
66
+ }, [onScratched]);
51
67
  const pan = _reactNativeGestureHandler.Gesture.Pan().averageTouches(true).maxPointers(1).onBegin(e => {
52
- path.value.moveTo(e.x, e.y);
53
- path.value.lineTo(e.x, e.y);
54
- (0, _reactNativeSkia.notifyChange)(path);
68
+ if (!isLayoutReady) return;
69
+ try {
70
+ const newPath = path.value.copy();
71
+ newPath.moveTo(e.x, e.y);
72
+ newPath.lineTo(e.x + 0.001, e.y + 0.001);
73
+ path.value = newPath;
74
+ (0, _reactNativeSkia.notifyChange)(path);
75
+ } catch (error) {
76
+ console.error("ScratchCard: Error in onBegin:", error);
77
+ }
55
78
  }).onChange(e => {
79
+ if (!isLayoutReady || isThresholdReached.value) return;
56
80
  try {
57
- // checkScratchProgress();
58
- path.value.lineTo(e.x, e.y);
81
+ const newPath = path.value.copy();
82
+ newPath.lineTo(e.x, e.y);
83
+ path.value = newPath;
59
84
  (0, _reactNativeSkia.notifyChange)(path);
60
- // const bounds = path.value.getBounds();
61
- // const scratchedArea = bounds.height * bounds.width;
62
- // const totalArea = areaWidth * areaHeight;
63
-
64
- // if (scratchedArea / totalArea > revealThreshold && !isScratched) {
65
- // console.log("SCRATCHED")
66
- // // setScratched(true);
67
- // // if (onScratched) {
68
- // // onScratched();
69
- // // }
70
- // }
85
+ const bounds = path.value.getBounds();
86
+ if (!bounds || areaWidth <= 0 || areaHeight <= 0) {
87
+ return;
88
+ }
89
+ const scratchedArea = bounds.width * bounds.height;
90
+ const totalArea = areaWidth * areaHeight;
91
+ if (totalArea > 0 && scratchedArea / totalArea > revealThreshold) {
92
+ if (!isThresholdReached.value) {
93
+ isThresholdReached.value = true;
94
+ (0, _reactNativeReanimated.runOnJS)(revealCardOnJS)();
95
+ }
96
+ }
71
97
  } catch (error) {
72
- console.log(error);
98
+ console.error("ScratchCard: Error in onChange (UI Thread):", error);
73
99
  }
74
-
75
- // checkScratchProgress();
76
100
  });
77
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
78
- onLayout: e => {
79
- setSize([e.nativeEvent.layout.width, e.nativeEvent.layout.height]);
80
- },
81
- style: [styles.container, style, {
82
- width,
83
- height
84
- }],
85
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
86
- style: styles.content,
87
- children: children
88
- }), !isScratched && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector, {
89
- gesture: pan,
90
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Canvas, {
91
- style: styles.canvas,
92
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Mask, {
93
- mode: "luminance",
94
- mask: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSkia.Group, {
95
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Rect, {
96
- x: 0,
97
- y: 0,
98
- width: 1000,
99
- height: 1000,
100
- color: "white"
101
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Path, {
102
- path: path,
103
- color: "black",
104
- style: "stroke",
105
- strokeJoin: "round",
106
- strokeCap: "round",
107
- strokeWidth: brushStrokeWidth
108
- })]
109
- }),
110
- children: img ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Image, {
111
- image: img,
112
- fit: "cover",
113
- x: 0,
114
- y: 0,
115
- width: areaWidth,
116
- height: areaHeight
117
- }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSkia.Group, {
118
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Rect, {
101
+ const textMetrics = _react.default.useMemo(() => {
102
+ if (loadedFont && text && areaWidth > 0 && areaHeight > 0) {
103
+ const metrics = loadedFont.measureText(text);
104
+ const textX = areaWidth / 2 - metrics.width / 2;
105
+ const textY = areaHeight / 2 + metrics.height / 3;
106
+ return {
107
+ x: textX,
108
+ y: textY,
109
+ width: metrics.width,
110
+ height: metrics.height
111
+ };
112
+ }
113
+ return null;
114
+ }, [loadedFont, text, areaWidth, areaHeight]);
115
+ const canRenderCanvas = isLayoutReady && areaWidth > 0 && areaHeight > 0;
116
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.GestureHandlerRootView, {
117
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
118
+ onLayout: handleLayout,
119
+ style: [styles.container, style, {
120
+ width,
121
+ height
122
+ }],
123
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
124
+ style: styles.content,
125
+ children: children
126
+ }), !isScratched && canRenderCanvas && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector, {
127
+ gesture: pan,
128
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Canvas, {
129
+ style: styles.canvas,
130
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Mask, {
131
+ mode: "luminance",
132
+ mask: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSkia.Group, {
133
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Rect, {
134
+ x: 0,
135
+ y: 0,
136
+ width: areaWidth,
137
+ height: areaHeight,
138
+ color: "white"
139
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Path, {
140
+ path: path,
141
+ color: "black",
142
+ style: "stroke",
143
+ strokeJoin: "round",
144
+ strokeCap: "round",
145
+ strokeWidth: brushStrokeWidth
146
+ })]
147
+ }),
148
+ children: loadedImg ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Image, {
149
+ image: loadedImg,
150
+ fit: "cover",
119
151
  x: 0,
120
152
  y: 0,
121
153
  width: areaWidth,
122
- height: areaHeight,
123
- color: backgroundColor
124
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Text, {
125
- x: areaWidth / 2 - (font?.measureText(text).width || 0) / 2,
126
- y: areaHeight / 2 + (font?.measureText(text).height || 0) / 2,
127
- text: text,
128
- color: textFontColor,
129
- font: font
130
- })]
154
+ height: areaHeight
155
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSkia.Group, {
156
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Rect, {
157
+ x: 0,
158
+ y: 0,
159
+ width: areaWidth,
160
+ height: areaHeight,
161
+ color: backgroundColor
162
+ }), loadedFont && textMetrics && text ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Text, {
163
+ x: textMetrics.x,
164
+ y: textMetrics.y,
165
+ text: text,
166
+ color: textFontColor,
167
+ font: loadedFont
168
+ }) : null]
169
+ })
131
170
  })
132
171
  })
133
- })
134
- })]
172
+ })]
173
+ })
135
174
  });
136
175
  };
137
176
  const styles = _reactNative.StyleSheet.create({
138
177
  container: {
139
178
  position: "relative",
140
- overflow: "hidden",
141
- width: "100%",
142
- height: "100%"
179
+ overflow: "hidden"
143
180
  },
144
181
  content: {
145
182
  position: "absolute",
146
183
  top: 0,
147
184
  left: 0,
148
185
  width: "100%",
149
- height: "100%"
186
+ height: "100%",
187
+ zIndex: 1
150
188
  },
151
189
  canvas: {
152
190
  position: "absolute",
153
191
  top: 0,
154
192
  left: 0,
155
193
  width: "100%",
156
- height: "100%"
194
+ height: "100%",
195
+ zIndex: 2
157
196
  }
158
197
  });
159
198
  var _default = exports.default = ScratchCard;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNativeSkia","_reactNative","_reactNativeReanimated","_reactNativeGestureHandler","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ScratchCard","style","children","image","brushStrokeWidth","revealThreshold","width","height","backgroundColor","text","textFont","textFontColor","textFontSize","onScratched","img","useImage","font","useFont","areaWidth","areaHeight","setSize","useState","isScratched","setScratched","path","useSharedValue","Skia","Path","Make","moveTo","checkScratchProgress","bounds","value","getBounds","scratchedArea","totalArea","useEffect","console","log","pan","Gesture","Pan","averageTouches","maxPointers","onBegin","x","y","lineTo","notifyChange","onChange","error","jsxs","View","onLayout","nativeEvent","layout","styles","container","jsx","content","GestureDetector","gesture","Canvas","canvas","Mask","mode","mask","Group","Rect","color","strokeJoin","strokeCap","strokeWidth","Image","fit","Text","measureText","StyleSheet","create","position","overflow","top","left","_default","exports"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/ScratchCard/ScratchCard.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNativeSkia","_reactNative","_reactNativeReanimated","_reactNativeGestureHandler","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ScratchCard","style","children","image","brushStrokeWidth","revealThreshold","width","height","backgroundColor","text","textFont","textFontColor","textFontSize","onScratched","loadedImg","useImage","loadedFont","useFont","areaWidth","areaHeight","setSize","useState","isScratched","setScratched","isLayoutReady","setLayoutReady","isThresholdReached","useSharedValue","path","Skia","Path","Make","useEffect","value","handleLayout","useCallback","event","newWidth","newHeight","nativeEvent","layout","revealCardOnJS","pan","Gesture","Pan","averageTouches","maxPointers","onBegin","newPath","copy","moveTo","x","y","lineTo","notifyChange","error","console","onChange","bounds","getBounds","scratchedArea","totalArea","runOnJS","textMetrics","React","useMemo","metrics","measureText","textX","textY","canRenderCanvas","jsx","GestureHandlerRootView","jsxs","View","onLayout","styles","container","content","GestureDetector","gesture","Canvas","canvas","Mask","mode","mask","Group","Rect","color","strokeJoin","strokeCap","strokeWidth","Image","fit","Text","font","StyleSheet","create","position","overflow","top","left","zIndex","_default","exports"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/ScratchCard/ScratchCard.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAMA,IAAAC,gBAAA,GAAAD,OAAA;AAgBA,IAAAE,YAAA,GAAAF,OAAA;AASA,IAAAG,sBAAA,GAAAH,OAAA;AACA,IAAAI,0BAAA,GAAAJ,OAAA;AAIsC,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAM,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAR,wBAAAQ,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AANtC;;AAQA;AACA;;AAkBA,MAAMW,WAAuC,GAAGA,CAAC;EAC/CC,KAAK;EACLC,QAAQ;EACRC,KAAK;EACLC,gBAAgB,GAAG,EAAE;EACrBC,eAAe,GAAG,GAAG;EACrBC,KAAK,GAAG,GAAG;EACXC,MAAM,GAAG,GAAG;EACZC,eAAe,GAAG,SAAS;EAC3BC,IAAI,GAAG,EAAE;EACTC,QAAQ;EACRC,aAAa,GAAG,SAAS;EACzBC,YAAY,GAAG,EAAE;EACjBC;AACF,CAAC,KAAK;EACJ,MAAMC,SAAS,GAAG,IAAAC,yBAAQ,EAACZ,KAAK,CAAC;EACjC,MAAMa,UAAU,GAAG,IAAAC,wBAAO,EAACP,QAAQ,EAAEE,YAAY,CAAC;EAElD,MAAM,CAAC,CAACM,SAAS,EAAEC,UAAU,CAAC,EAAEC,OAAO,CAAC,GAAG,IAAAC,eAAQ,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAC3D,MAAM,CAACC,WAAW,EAAEC,YAAY,CAAC,GAAG,IAAAF,eAAQ,EAAC,KAAK,CAAC;EACnD,MAAM,CAACG,aAAa,EAAEC,cAAc,CAAC,GAAG,IAAAJ,eAAQ,EAAC,KAAK,CAAC;EAEvD,MAAMK,kBAAkB,GAAG,IAAAC,qCAAc,EAAC,KAAK,CAAC;EAEhD,MAAMC,IAAI,GAAG,IAAAD,qCAAc,EAASE,qBAAI,CAACC,IAAI,CAACC,IAAI,CAAC,CAAC,CAAC;EAErD,IAAAC,gBAAS,EAAC,MAAM;IACdJ,IAAI,CAACK,KAAK,GAAGJ,qBAAI,CAACC,IAAI,CAACC,IAAI,CAAC,CAAC;IAC7BL,kBAAkB,CAACO,KAAK,GAAG,KAAK;IAChCV,YAAY,CAAC,KAAK,CAAC;EACrB,CAAC,EAAE,CAACL,SAAS,EAAEC,UAAU,CAAC,CAAC;EAE3B,MAAMe,YAAY,GAAG,IAAAC,kBAAW,EAC7BC,KAAU,IAAK;IACd,MAAM;MAAE9B,KAAK,EAAE+B,QAAQ;MAAE9B,MAAM,EAAE+B;IAAU,CAAC,GAAGF,KAAK,CAACG,WAAW,CAACC,MAAM;IACvE,IAAIH,QAAQ,GAAG,CAAC,IAAIC,SAAS,GAAG,CAAC,EAAE;MACjC,IAAID,QAAQ,KAAKnB,SAAS,IAAIoB,SAAS,KAAKnB,UAAU,EAAE;QACtDC,OAAO,CAAC,CAACiB,QAAQ,EAAEC,SAAS,CAAC,CAAC;MAChC;MACA,IAAI,CAACd,aAAa,EAAE;QAClBC,cAAc,CAAC,IAAI,CAAC;MACtB;IACF,CAAC,MAAM;MACLA,cAAc,CAAC,KAAK,CAAC;IACvB;EACF,CAAC,EACD,CAACP,SAAS,EAAEC,UAAU,EAAEK,aAAa,CACvC,CAAC;EAED,MAAMiB,cAAc,GAAG,IAAAN,kBAAW,EAAC,MAAM;IACvCZ,YAAY,CAAC,IAAI,CAAC;IAClBV,WAAW,GAAG,CAAC;EACjB,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EAEjB,MAAM6B,GAAG,GAAGC,kCAAO,CAACC,GAAG,CAAC,CAAC,CACtBC,cAAc,CAAC,IAAI,CAAC,CACpBC,WAAW,CAAC,CAAC,CAAC,CACdC,OAAO,CAAElE,CAAC,IAAK;IACd,IAAI,CAAC2C,aAAa,EAAE;IACpB,IAAI;MACF,MAAMwB,OAAO,GAAGpB,IAAI,CAACK,KAAK,CAACgB,IAAI,CAAC,CAAC;MACjCD,OAAO,CAACE,MAAM,CAACrE,CAAC,CAACsE,CAAC,EAAEtE,CAAC,CAACuE,CAAC,CAAC;MACxBJ,OAAO,CAACK,MAAM,CAACxE,CAAC,CAACsE,CAAC,GAAG,KAAK,EAAEtE,CAAC,CAACuE,CAAC,GAAG,KAAK,CAAC;MACxCxB,IAAI,CAACK,KAAK,GAAGe,OAAO;MACpB,IAAAM,6BAAY,EAAC1B,IAAW,CAAC;IAC3B,CAAC,CAAC,OAAO2B,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,gCAAgC,EAAEA,KAAK,CAAC;IACxD;EACF,CAAC,CAAC,CACDE,QAAQ,CAAE5E,CAAC,IAAK;IACf,IAAI,CAAC2C,aAAa,IAAIE,kBAAkB,CAACO,KAAK,EAAE;IAEhD,IAAI;MACF,MAAMe,OAAO,GAAGpB,IAAI,CAACK,KAAK,CAACgB,IAAI,CAAC,CAAC;MACjCD,OAAO,CAACK,MAAM,CAACxE,CAAC,CAACsE,CAAC,EAAEtE,CAAC,CAACuE,CAAC,CAAC;MACxBxB,IAAI,CAACK,KAAK,GAAGe,OAAO;MACpB,IAAAM,6BAAY,EAAC1B,IAAW,CAAC;MAEzB,MAAM8B,MAAM,GAAG9B,IAAI,CAACK,KAAK,CAAC0B,SAAS,CAAC,CAAC;MAErC,IAAI,CAACD,MAAM,IAAIxC,SAAS,IAAI,CAAC,IAAIC,UAAU,IAAI,CAAC,EAAE;QAChD;MACF;MAEA,MAAMyC,aAAa,GAAGF,MAAM,CAACpD,KAAK,GAAGoD,MAAM,CAACnD,MAAM;MAClD,MAAMsD,SAAS,GAAG3C,SAAS,GAAGC,UAAU;MAExC,IAAI0C,SAAS,GAAG,CAAC,IAAID,aAAa,GAAGC,SAAS,GAAGxD,eAAe,EAAE;QAChE,IAAI,CAACqB,kBAAkB,CAACO,KAAK,EAAE;UAC7BP,kBAAkB,CAACO,KAAK,GAAG,IAAI;UAC/B,IAAA6B,8BAAO,EAACrB,cAAc,CAAC,CAAC,CAAC;QAC3B;MACF;IACF,CAAC,CAAC,OAAOc,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,6CAA6C,EAAEA,KAAK,CAAC;IACrE;EACF,CAAC,CAAC;EAEJ,MAAMQ,WAAW,GAAGC,cAAK,CAACC,OAAO,CAAC,MAAM;IACtC,IAAIjD,UAAU,IAAIP,IAAI,IAAIS,SAAS,GAAG,CAAC,IAAIC,UAAU,GAAG,CAAC,EAAE;MACzD,MAAM+C,OAAO,GAAGlD,UAAU,CAACmD,WAAW,CAAC1D,IAAI,CAAC;MAC5C,MAAM2D,KAAK,GAAGlD,SAAS,GAAG,CAAC,GAAGgD,OAAO,CAAC5D,KAAK,GAAG,CAAC;MAC/C,MAAM+D,KAAK,GAAGlD,UAAU,GAAG,CAAC,GAAG+C,OAAO,CAAC3D,MAAM,GAAG,CAAC;MACjD,OAAO;QACL4C,CAAC,EAAEiB,KAAK;QACRhB,CAAC,EAAEiB,KAAK;QACR/D,KAAK,EAAE4D,OAAO,CAAC5D,KAAK;QACpBC,MAAM,EAAE2D,OAAO,CAAC3D;MAClB,CAAC;IACH;IACA,OAAO,IAAI;EACb,CAAC,EAAE,CAACS,UAAU,EAAEP,IAAI,EAAES,SAAS,EAAEC,UAAU,CAAC,CAAC;EAE7C,MAAMmD,eAAe,GAAG9C,aAAa,IAAIN,SAAS,GAAG,CAAC,IAAIC,UAAU,GAAG,CAAC;EAExE,oBACE,IAAAxC,WAAA,CAAA4F,GAAA,EAAC7F,0BAAA,CAAA8F,sBAAsB;IAAAtE,QAAA,eACrB,IAAAvB,WAAA,CAAA8F,IAAA,EAACjG,YAAA,CAAAkG,IAAI;MACHC,QAAQ,EAAEzC,YAAa;MACvBjC,KAAK,EAAE,CAAC2E,MAAM,CAACC,SAAS,EAAE5E,KAAK,EAAE;QAAEK,KAAK;QAAEC;MAAO,CAAC,CAAE;MAAAL,QAAA,gBAEpD,IAAAvB,WAAA,CAAA4F,GAAA,EAAC/F,YAAA,CAAAkG,IAAI;QAACzE,KAAK,EAAE2E,MAAM,CAACE,OAAQ;QAAA5E,QAAA,EAAEA;MAAQ,CAAO,CAAC,EAE7C,CAACoB,WAAW,IAAIgD,eAAe,iBAC9B,IAAA3F,WAAA,CAAA4F,GAAA,EAAC7F,0BAAA,CAAAqG,eAAe;QAACC,OAAO,EAAEtC,GAAI;QAAAxC,QAAA,eAC5B,IAAAvB,WAAA,CAAA4F,GAAA,EAAChG,gBAAA,CAAA0G,MAAM;UAAChF,KAAK,EAAE2E,MAAM,CAACM,MAAO;UAAAhF,QAAA,eAC3B,IAAAvB,WAAA,CAAA4F,GAAA,EAAChG,gBAAA,CAAA4G,IAAI;YACHC,IAAI,EAAC,WAAW;YAChBC,IAAI,eACF,IAAA1G,WAAA,CAAA8F,IAAA,EAAClG,gBAAA,CAAA+G,KAAK;cAAApF,QAAA,gBACJ,IAAAvB,WAAA,CAAA4F,GAAA,EAAChG,gBAAA,CAAAgH,IAAI;gBACHpC,CAAC,EAAE,CAAE;gBACLC,CAAC,EAAE,CAAE;gBACL9C,KAAK,EAAEY,SAAU;gBACjBX,MAAM,EAAEY,UAAW;gBACnBqE,KAAK,EAAC;cAAO,CACd,CAAC,eACF,IAAA7G,WAAA,CAAA4F,GAAA,EAAChG,gBAAA,CAAAuD,IAAI;gBACHF,IAAI,EAAEA,IAAK;gBACX4D,KAAK,EAAC,OAAO;gBACbvF,KAAK,EAAC,QAAQ;gBACdwF,UAAU,EAAC,OAAO;gBAClBC,SAAS,EAAC,OAAO;gBACjBC,WAAW,EAAEvF;cAAiB,CAC/B,CAAC;YAAA,CACG,CACR;YAAAF,QAAA,EAEAY,SAAS,gBACR,IAAAnC,WAAA,CAAA4F,GAAA,EAAChG,gBAAA,CAAAqH,KAAK;cACJzF,KAAK,EAAEW,SAAU;cACjB+E,GAAG,EAAC,OAAO;cACX1C,CAAC,EAAE,CAAE;cACLC,CAAC,EAAE,CAAE;cACL9C,KAAK,EAAEY,SAAU;cACjBX,MAAM,EAAEY;YAAW,CACpB,CAAC,gBAEF,IAAAxC,WAAA,CAAA8F,IAAA,EAAClG,gBAAA,CAAA+G,KAAK;cAAApF,QAAA,gBACJ,IAAAvB,WAAA,CAAA4F,GAAA,EAAChG,gBAAA,CAAAgH,IAAI;gBACHpC,CAAC,EAAE,CAAE;gBACLC,CAAC,EAAE,CAAE;gBACL9C,KAAK,EAAEY,SAAU;gBACjBX,MAAM,EAAEY,UAAW;gBACnBqE,KAAK,EAAEhF;cAAgB,CACxB,CAAC,EACDQ,UAAU,IAAI+C,WAAW,IAAItD,IAAI,gBAChC,IAAA9B,WAAA,CAAA4F,GAAA,EAAChG,gBAAA,CAAAuH,IAAI;gBACH3C,CAAC,EAAEY,WAAW,CAACZ,CAAE;gBACjBC,CAAC,EAAEW,WAAW,CAACX,CAAE;gBACjB3C,IAAI,EAAEA,IAAK;gBACX+E,KAAK,EAAE7E,aAAc;gBACrBoF,IAAI,EAAE/E;cAAW,CAClB,CAAC,GACA,IAAI;YAAA,CACH;UACR,CACG;QAAC,CACD;MAAC,CACM,CAClB;IAAA,CACG;EAAC,CACe,CAAC;AAE7B,CAAC;AAED,MAAM4D,MAAM,GAAGoB,uBAAU,CAACC,MAAM,CAAC;EAC/BpB,SAAS,EAAE;IACTqB,QAAQ,EAAE,UAAU;IACpBC,QAAQ,EAAE;EACZ,CAAC;EACDrB,OAAO,EAAE;IACPoB,QAAQ,EAAE,UAAU;IACpBE,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACP/F,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,MAAM;IACd+F,MAAM,EAAE;EACV,CAAC;EACDpB,MAAM,EAAE;IACNgB,QAAQ,EAAE,UAAU;IACpBE,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACP/F,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,MAAM;IACd+F,MAAM,EAAE;EACV;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAtH,OAAA,GAEYc,WAAW","ignoreList":[]}