@jrichman/ink 7.0.1-beta.7 → 7.0.1-beta.8
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/build/components/StaticRender.d.ts +8 -2
- package/build/components/StaticRender.js +13 -8
- package/build/components/StaticRender.js.map +1 -1
- package/build/index.d.ts +1 -0
- package/build/index.js +1 -0
- package/build/index.js.map +1 -1
- package/build/reconciler.js +13 -3
- package/build/reconciler.js.map +1 -1
- package/build/render-to-region.d.ts +19 -0
- package/build/render-to-region.js +60 -0
- package/build/render-to-region.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import React, { type ReactNode, type DependencyList } from 'react';
|
|
2
2
|
import { type DOMElement } from '../dom.js';
|
|
3
3
|
import { type Styles } from '../styles.js';
|
|
4
|
+
import { type Region } from '../output.js';
|
|
4
5
|
export type Props = {
|
|
5
|
-
readonly children
|
|
6
|
+
readonly children?: () => ReactNode;
|
|
6
7
|
readonly width: number;
|
|
7
8
|
readonly style?: Styles;
|
|
8
9
|
/**
|
|
@@ -16,6 +17,11 @@ export type Props = {
|
|
|
16
17
|
* Useful for measuring the element's size after rendering.
|
|
17
18
|
*/
|
|
18
19
|
readonly onRender?: (node: DOMElement) => void;
|
|
20
|
+
/**
|
|
21
|
+
* Pre-computed region to render. If provided, the `children` function is ignored.
|
|
22
|
+
* This is useful for offline caching and measurement using `renderToRegion`.
|
|
23
|
+
*/
|
|
24
|
+
readonly cachedRender?: Region;
|
|
19
25
|
};
|
|
20
26
|
/**
|
|
21
27
|
* `<StaticRender>` is the modern, more powerful replacement for the legacy `<Static>` component.
|
|
@@ -48,4 +54,4 @@ export type Props = {
|
|
|
48
54
|
* @param props.width Required. The width of the static block. Ink needs this to pre-calculate
|
|
49
55
|
* the layout having it be dependent on the rest of the app's layout.
|
|
50
56
|
*/
|
|
51
|
-
export default function StaticRender({ children, width, style, deps, onRender, }: Props): React.JSX.Element;
|
|
57
|
+
export default function StaticRender({ children, width, style, deps, onRender, cachedRender, }: Props): React.JSX.Element;
|
|
@@ -45,14 +45,19 @@ const areDepsEqual = (prevDeps, nextDeps) => {
|
|
|
45
45
|
* @param props.width Required. The width of the static block. Ink needs this to pre-calculate
|
|
46
46
|
* the layout having it be dependent on the rest of the app's layout.
|
|
47
47
|
*/
|
|
48
|
-
export default function StaticRender({ children, width, style, deps, onRender, }) {
|
|
48
|
+
export default function StaticRender({ children, width, style, deps, onRender, cachedRender, }) {
|
|
49
49
|
const ref = useRef(null);
|
|
50
50
|
const [renderedVersion, setRenderedVersion] = useState(0);
|
|
51
51
|
const prevChildren = useRef(children);
|
|
52
52
|
const prevDeps = useRef(deps);
|
|
53
|
+
const prevCachedRender = useRef(cachedRender);
|
|
53
54
|
const pendingVersion = useRef(1);
|
|
54
55
|
let nextPendingVersion = pendingVersion.current;
|
|
55
|
-
if (
|
|
56
|
+
if (cachedRender !== prevCachedRender.current) {
|
|
57
|
+
prevCachedRender.current = cachedRender;
|
|
58
|
+
nextPendingVersion++;
|
|
59
|
+
}
|
|
60
|
+
else if (deps !== undefined) {
|
|
56
61
|
if (!areDepsEqual(prevDeps.current, deps)) {
|
|
57
62
|
prevDeps.current = deps;
|
|
58
63
|
nextPendingVersion++;
|
|
@@ -64,21 +69,21 @@ export default function StaticRender({ children, width, style, deps, onRender, }
|
|
|
64
69
|
}
|
|
65
70
|
if (nextPendingVersion !== pendingVersion.current) {
|
|
66
71
|
pendingVersion.current = nextPendingVersion;
|
|
67
|
-
if (ref.current) {
|
|
72
|
+
if (ref.current && !cachedRender) {
|
|
68
73
|
ref.current.cachedRender = undefined;
|
|
69
74
|
markNodeAsDirty(ref.current);
|
|
70
75
|
}
|
|
71
76
|
}
|
|
72
|
-
const
|
|
77
|
+
const shouldRenderChildren = !cachedRender && renderedVersion !== pendingVersion.current && children;
|
|
73
78
|
useEffect(() => {
|
|
74
79
|
const node = ref.current;
|
|
75
80
|
return () => {
|
|
76
|
-
if (node) {
|
|
81
|
+
if (node && !cachedRender) {
|
|
77
82
|
node.cachedRender = undefined;
|
|
78
83
|
}
|
|
79
84
|
};
|
|
80
|
-
}, []);
|
|
81
|
-
return (React.createElement("ink-static-render", { ref: ref, style: { ...style, width }, internal_onRendered: node => {
|
|
85
|
+
}, [cachedRender]);
|
|
86
|
+
return (React.createElement("ink-static-render", { ref: ref, style: { ...style, width }, cachedRender: cachedRender, internal_onRendered: node => {
|
|
82
87
|
const nextRenderedVersion = pendingVersion.current;
|
|
83
88
|
setRenderedVersion(currentVersion => currentVersion === nextRenderedVersion
|
|
84
89
|
? currentVersion
|
|
@@ -86,6 +91,6 @@ export default function StaticRender({ children, width, style, deps, onRender, }
|
|
|
86
91
|
if (onRender) {
|
|
87
92
|
onRender(node);
|
|
88
93
|
}
|
|
89
|
-
} },
|
|
94
|
+
} }, shouldRenderChildren ? children() : null));
|
|
90
95
|
}
|
|
91
96
|
//# sourceMappingURL=StaticRender.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StaticRender.js","sourceRoot":"","sources":["../../src/components/StaticRender.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACb,MAAM,EACN,SAAS,EACT,QAAQ,GAGR,MAAM,OAAO,CAAC;AACf,OAAO,EAAC,eAAe,EAAkB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"StaticRender.js","sourceRoot":"","sources":["../../src/components/StaticRender.tsx"],"names":[],"mappings":"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"}
|
package/build/index.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export type { Props as StaticProps } from './components/Static.js';
|
|
|
13
13
|
export { default as Static } from './components/Static.js';
|
|
14
14
|
export type { Props as StaticRenderProps } from './components/StaticRender.js';
|
|
15
15
|
export { default as StaticRender } from './components/StaticRender.js';
|
|
16
|
+
export { renderToRegion } from './render-to-region.js';
|
|
16
17
|
export type { Props as TransformProps } from './components/Transform.js';
|
|
17
18
|
export { default as Transform } from './components/Transform.js';
|
|
18
19
|
export type { Props as NewlineProps } from './components/Newline.js';
|
package/build/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export { default as Text } from './components/Text.js';
|
|
|
4
4
|
export { default as AppContext } from './components/AppContext.js';
|
|
5
5
|
export { default as Static } from './components/Static.js';
|
|
6
6
|
export { default as StaticRender } from './components/StaticRender.js';
|
|
7
|
+
export { renderToRegion } from './render-to-region.js';
|
|
7
8
|
export { default as Transform } from './components/Transform.js';
|
|
8
9
|
export { default as Newline } from './components/Newline.js';
|
|
9
10
|
export { default as Spacer } from './components/Spacer.js';
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAC,OAAO,IAAI,GAAG,EAAC,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAC,OAAO,IAAI,IAAI,EAAC,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,MAAM,4BAA4B,CAAC;AAKjE,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAC,OAAO,IAAI,GAAG,EAAC,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAC,OAAO,IAAI,IAAI,EAAC,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,MAAM,4BAA4B,CAAC;AAKjE,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAC,OAAO,IAAI,wBAAwB,EAAC,MAAM,yCAAyC,CAAC;AAC5F,OAAO,EACN,OAAO,IAAI,cAAc,EACzB,cAAc,EACd,aAAa,EACb,cAAc,EACd,+BAA+B,EAC/B,iCAAiC,EACjC,oBAAoB,EACpB,OAAO,EACP,aAAa,EACb,OAAO,EACP,gBAAgB,GAEhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,eAAe,EACf,cAAc,EACd,aAAa,EACb,YAAY,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,kBAAkB,EAAC,MAAM,eAAe,CAAC;AACjD,OAAO,EAAgC,aAAa,EAAC,MAAM,UAAU,CAAC;AACtE,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EACN,OAAO,IAAI,cAAc,EACzB,mBAAmB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,SAAS,EAAE,KAAK,EAAE,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC"}
|
package/build/reconciler.js
CHANGED
|
@@ -3,7 +3,7 @@ import createReconciler from 'react-reconciler';
|
|
|
3
3
|
import { DefaultEventPriority, NoEventPriority, } from 'react-reconciler/constants.js';
|
|
4
4
|
import Yoga from 'yoga-layout';
|
|
5
5
|
import { createContext } from 'react';
|
|
6
|
-
import { createTextNode, appendChildNode, insertBeforeNode, removeChildNode, setStyle, setTextNodeValue, createNode, setAttribute, markNodeAsDirty, } from './dom.js';
|
|
6
|
+
import { createTextNode, appendChildNode, insertBeforeNode, removeChildNode, setStyle, setTextNodeValue, createNode, setAttribute, markNodeAsDirty, setCachedRender, } from './dom.js';
|
|
7
7
|
import applyStyles from './styles.js';
|
|
8
8
|
// We need to conditionally perform devtools connection to avoid
|
|
9
9
|
// accidentally breaking other third-party code.
|
|
@@ -167,7 +167,12 @@ export default createReconciler({
|
|
|
167
167
|
continue;
|
|
168
168
|
}
|
|
169
169
|
if (key === 'cachedRender') {
|
|
170
|
-
|
|
170
|
+
if (value) {
|
|
171
|
+
setCachedRender(node, value);
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
node.cachedRender = undefined;
|
|
175
|
+
}
|
|
171
176
|
continue;
|
|
172
177
|
}
|
|
173
178
|
if (key === 'opaque') {
|
|
@@ -283,7 +288,12 @@ export default createReconciler({
|
|
|
283
288
|
continue;
|
|
284
289
|
}
|
|
285
290
|
if (key === 'cachedRender') {
|
|
286
|
-
|
|
291
|
+
if (value) {
|
|
292
|
+
setCachedRender(node, value);
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
node.cachedRender = undefined;
|
|
296
|
+
}
|
|
287
297
|
shouldMarkDirty = true;
|
|
288
298
|
continue;
|
|
289
299
|
}
|
package/build/reconciler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../src/reconciler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../src/reconciler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { type ReactNode } from 'react';
|
|
7
|
+
import { type Region } from './output.js';
|
|
8
|
+
/**
|
|
9
|
+
* Renders a React node to an offline Region.
|
|
10
|
+
* This is useful for measuring the size of a component before rendering it to the screen,
|
|
11
|
+
* or caching complex static renders.
|
|
12
|
+
*
|
|
13
|
+
* @param node The React node to render.
|
|
14
|
+
* @param options Configuration options, such as the `width` of the terminal.
|
|
15
|
+
* @returns The cached Region containing the layout and rendered lines.
|
|
16
|
+
*/
|
|
17
|
+
export declare const renderToRegion: (node: ReactNode, options: {
|
|
18
|
+
width: number;
|
|
19
|
+
}) => Region;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import { LegacyRoot } from 'react-reconciler/constants.js';
|
|
8
|
+
import reconciler from './reconciler.js';
|
|
9
|
+
import { createNode } from './dom.js';
|
|
10
|
+
import { renderToStatic } from './render-node-to-output.js';
|
|
11
|
+
import { accessibilityContext } from './components/AccessibilityContext.js';
|
|
12
|
+
/**
|
|
13
|
+
* Renders a React node to an offline Region.
|
|
14
|
+
* This is useful for measuring the size of a component before rendering it to the screen,
|
|
15
|
+
* or caching complex static renders.
|
|
16
|
+
*
|
|
17
|
+
* @param node The React node to render.
|
|
18
|
+
* @param options Configuration options, such as the `width` of the terminal.
|
|
19
|
+
* @returns The cached Region containing the layout and rendered lines.
|
|
20
|
+
*/
|
|
21
|
+
export const renderToRegion = (node, options) => {
|
|
22
|
+
const rootNode = createNode('ink-root');
|
|
23
|
+
rootNode.yogaNode.setWidth(options.width);
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
25
|
+
const container = reconciler.createContainer(rootNode, LegacyRoot, null, false, null, `id-${Math.random()}`, () => { }, () => { }, () => { }, () => { }, null);
|
|
26
|
+
const tree = (React.createElement(accessibilityContext.Provider, { value: { isScreenReaderEnabled: false } }, node));
|
|
27
|
+
// In React 18, if we are inside a commit phase (e.g. useLayoutEffect), updateContainerSync might not be fully synchronous.
|
|
28
|
+
// Using flushSync forces the reconciler to process the update immediately.
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, prefer-destructuring
|
|
30
|
+
const flushSync = reconciler.flushSync;
|
|
31
|
+
if (typeof flushSync === 'function') {
|
|
32
|
+
flushSync(() => {
|
|
33
|
+
reconciler.updateContainer(tree, container, null, () => { });
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
// @ts-expect-error the types for `react-reconciler` are not up to date with the library.
|
|
38
|
+
reconciler.updateContainerSync(tree, container, null, () => { });
|
|
39
|
+
// @ts-expect-error the types for `react-reconciler` are not up to date with the library.
|
|
40
|
+
reconciler.flushSyncWork();
|
|
41
|
+
}
|
|
42
|
+
renderToStatic(rootNode, {
|
|
43
|
+
calculateLayout: true,
|
|
44
|
+
skipStaticElements: false,
|
|
45
|
+
});
|
|
46
|
+
const region = rootNode.cachedRender;
|
|
47
|
+
if (typeof flushSync === 'function') {
|
|
48
|
+
flushSync(() => {
|
|
49
|
+
reconciler.updateContainer(null, container, null, () => { });
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
// @ts-expect-error the types for `react-reconciler` are not up to date with the library.
|
|
54
|
+
reconciler.updateContainerSync(null, container, null, () => { });
|
|
55
|
+
// @ts-expect-error the types for `react-reconciler` are not up to date with the library.
|
|
56
|
+
reconciler.flushSyncWork();
|
|
57
|
+
}
|
|
58
|
+
return region;
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=render-to-region.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-to-region.js","sourceRoot":"","sources":["../src/render-to-region.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAuB,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAC,UAAU,EAAC,MAAM,+BAA+B,CAAC;AACzD,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAC,oBAAoB,EAAC,MAAM,sCAAsC,CAAC;AAE1E;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC7B,IAAe,EACf,OAAwB,EACf,EAAE;IACX,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,QAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAE3C,mEAAmE;IACnE,MAAM,SAAS,GAAG,UAAU,CAAC,eAAe,CAC3C,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,EACrB,GAAG,EAAE,GAAE,CAAC,EACR,GAAG,EAAE,GAAE,CAAC,EACR,GAAG,EAAE,GAAE,CAAC,EACR,GAAG,EAAE,GAAE,CAAC,EACR,IAAI,CACJ,CAAC;IAEF,MAAM,IAAI,GAAG,CACZ,oBAAC,oBAAoB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAC,qBAAqB,EAAE,KAAK,EAAC,IAClE,IAAI,CAC0B,CAChC,CAAC;IAEF,2HAA2H;IAC3H,2EAA2E;IAC3E,yFAAyF;IACzF,MAAM,SAAS,GAAI,UAAkB,CAAC,SAAS,CAAC;IAChD,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;QACrC,SAAS,CAAC,GAAG,EAAE;YACd,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACJ,CAAC;SAAM,CAAC;QACP,yFAAyF;QACzF,UAAU,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAChE,yFAAyF;QACzF,UAAU,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IAED,cAAc,CAAC,QAAQ,EAAE;QACxB,eAAe,EAAE,IAAI;QACrB,kBAAkB,EAAE,KAAK;KACzB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAa,CAAC;IAEtC,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;QACrC,SAAS,CAAC,GAAG,EAAE;YACd,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACJ,CAAC;SAAM,CAAC;QACP,yFAAyF;QACzF,UAAU,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAChE,yFAAyF;QACzF,UAAU,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC,CAAC"}
|