@lynx-js/react 0.110.0 → 0.111.0
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/CHANGELOG.md +50 -0
- package/components/lib/DeferredListItem.d.ts +7 -0
- package/components/lib/DeferredListItem.jsx +40 -0
- package/components/lib/DeferredListItem.jsx.map +1 -0
- package/components/lib/Page.js.map +1 -1
- package/components/lib/index.d.ts +1 -0
- package/components/lib/index.js +1 -0
- package/components/lib/index.js.map +1 -1
- package/components/src/DeferredListItem.tsx +56 -0
- package/components/src/Page.ts +1 -1
- package/components/src/index.ts +1 -0
- package/package.json +1 -1
- package/refresh/.turbo/turbo-build.log +1 -1
- package/runtime/lazy/react-lepus.js +1 -0
- package/runtime/lazy/react.js +1 -0
- package/runtime/lepus/index.d.ts +1 -1
- package/runtime/lepus/index.js +44 -0
- package/runtime/lib/backgroundSnapshot.d.ts +2 -1
- package/runtime/lib/backgroundSnapshot.js +64 -41
- package/runtime/lib/backgroundSnapshot.js.map +1 -1
- package/runtime/lib/compat/initData.d.ts +7 -5
- package/runtime/lib/compat/initData.js +11 -2
- package/runtime/lib/compat/initData.js.map +1 -1
- package/runtime/lib/compat/lynxComponent.js +10 -12
- package/runtime/lib/compat/lynxComponent.js.map +1 -1
- package/runtime/lib/debug/profile.js +1 -0
- package/runtime/lib/debug/profile.js.map +1 -1
- package/runtime/lib/gesture/processGestureBagkround.d.ts +1 -1
- package/runtime/lib/gesture/processGestureBagkround.js +4 -1
- package/runtime/lib/gesture/processGestureBagkround.js.map +1 -1
- package/runtime/lib/gesture/types.js.map +1 -1
- package/runtime/lib/hooks/useLynxGlobalEventListener.d.ts +1 -1
- package/runtime/lib/hydrate.d.ts +1 -1
- package/runtime/lib/hydrate.js +5 -4
- package/runtime/lib/hydrate.js.map +1 -1
- package/runtime/lib/index.d.ts +2 -2
- package/runtime/lib/index.js +2 -2
- package/runtime/lib/index.js.map +1 -1
- package/runtime/lib/internal.d.ts +3 -2
- package/runtime/lib/internal.js +3 -2
- package/runtime/lib/internal.js.map +1 -1
- package/runtime/lib/legacy-react-runtime/index.js +1 -1
- package/runtime/lib/legacy-react-runtime/index.js.map +1 -1
- package/runtime/lib/lifecycle/patch/commit.js +5 -5
- package/runtime/lib/lifecycle/patch/commit.js.map +1 -1
- package/runtime/lib/lifecycle/patch/snapshotPatch.d.ts +9 -9
- package/runtime/lib/lifecycle/patch/snapshotPatch.js +9 -10
- package/runtime/lib/lifecycle/patch/snapshotPatch.js.map +1 -1
- package/runtime/lib/lifecycle/patch/snapshotPatchApply.js.map +1 -1
- package/runtime/lib/lifecycle/patch/updateMainThread.js +11 -12
- package/runtime/lib/lifecycle/patch/updateMainThread.js.map +1 -1
- package/runtime/lib/lifecycle/reload.js +1 -1
- package/runtime/lib/lifecycle/reload.js.map +1 -1
- package/runtime/lib/lifecycleConstant.d.ts +2 -1
- package/runtime/lib/lifecycleConstant.js +1 -0
- package/runtime/lib/lifecycleConstant.js.map +1 -1
- package/runtime/lib/list.d.ts +2 -46
- package/runtime/lib/list.js +124 -211
- package/runtime/lib/list.js.map +1 -1
- package/runtime/lib/listUpdateInfo.d.ts +38 -0
- package/runtime/lib/listUpdateInfo.js +152 -0
- package/runtime/lib/listUpdateInfo.js.map +1 -0
- package/runtime/lib/lynx/calledByNative.js +8 -11
- package/runtime/lib/lynx/calledByNative.js.map +1 -1
- package/runtime/lib/lynx/component.js +11 -14
- package/runtime/lib/lynx/component.js.map +1 -1
- package/runtime/lib/lynx/env.js +1 -2
- package/runtime/lib/lynx/env.js.map +1 -1
- package/runtime/lib/lynx/lazy-bundle.js +48 -21
- package/runtime/lib/lynx/lazy-bundle.js.map +1 -1
- package/runtime/lib/lynx/performance.d.ts +3 -19
- package/runtime/lib/lynx/performance.js +25 -26
- package/runtime/lib/lynx/performance.js.map +1 -1
- package/runtime/lib/lynx/tt.js +10 -5
- package/runtime/lib/lynx/tt.js.map +1 -1
- package/runtime/lib/lynx-api.d.ts +78 -1
- package/runtime/lib/lynx-api.js +3 -0
- package/runtime/lib/lynx-api.js.map +1 -1
- package/runtime/lib/lynx.js +1 -0
- package/runtime/lib/lynx.js.map +1 -1
- package/runtime/lib/opcodes.js +2 -1
- package/runtime/lib/opcodes.js.map +1 -1
- package/runtime/lib/pendingListUpdates.d.ts +6 -0
- package/runtime/lib/pendingListUpdates.js +16 -0
- package/runtime/lib/pendingListUpdates.js.map +1 -0
- package/runtime/lib/renderToOpcodes/index.js +7 -7
- package/runtime/lib/renderToOpcodes/index.js.map +1 -1
- package/runtime/lib/snapshot/dynamicPartType.d.ts +12 -0
- package/runtime/lib/snapshot/dynamicPartType.js +17 -0
- package/runtime/lib/snapshot/dynamicPartType.js.map +1 -0
- package/runtime/lib/snapshot/gesture.js +3 -0
- package/runtime/lib/snapshot/gesture.js.map +1 -1
- package/runtime/lib/snapshot/list.d.ts +3 -0
- package/runtime/lib/snapshot/list.js +23 -0
- package/runtime/lib/snapshot/list.js.map +1 -0
- package/runtime/lib/snapshot/platformInfo.d.ts +10 -0
- package/runtime/lib/snapshot/platformInfo.js +6 -3
- package/runtime/lib/snapshot/platformInfo.js.map +1 -1
- package/runtime/lib/snapshot/ref.d.ts +3 -0
- package/runtime/lib/snapshot/ref.js.map +1 -1
- package/runtime/lib/snapshot/spread.d.ts +2 -2
- package/runtime/lib/snapshot/spread.js +4 -5
- package/runtime/lib/snapshot/spread.js.map +1 -1
- package/runtime/lib/snapshot/workletEvent.js +1 -1
- package/runtime/lib/snapshot/workletEvent.js.map +1 -1
- package/runtime/lib/snapshot/workletRef.d.ts +1 -1
- package/runtime/lib/snapshot/workletRef.js.map +1 -1
- package/runtime/lib/snapshot.d.ts +7 -14
- package/runtime/lib/snapshot.js +36 -31
- package/runtime/lib/snapshot.js.map +1 -1
- package/runtime/lib/snapshotInstanceHydrationMap.js.map +1 -1
- package/runtime/lib/utils.d.ts +1 -0
- package/runtime/lib/utils.js +7 -1
- package/runtime/lib/utils.js.map +1 -1
- package/runtime/src/backgroundSnapshot.ts +78 -63
- package/runtime/src/compat/initData.ts +20 -9
- package/runtime/src/compat/lynxComponent.ts +12 -13
- package/runtime/src/debug/profile.ts +1 -0
- package/runtime/src/gesture/processGestureBagkround.ts +5 -1
- package/runtime/src/gesture/types.ts +3 -0
- package/runtime/src/hooks/useLynxGlobalEventListener.ts +1 -1
- package/runtime/src/hydrate.ts +6 -4
- package/runtime/src/index.ts +2 -0
- package/runtime/src/internal.ts +3 -2
- package/runtime/src/legacy-react-runtime/index.ts +1 -1
- package/runtime/src/lifecycle/patch/commit.ts +5 -11
- package/runtime/src/lifecycle/patch/snapshotPatch.ts +9 -9
- package/runtime/src/lifecycle/patch/snapshotPatchApply.ts +1 -1
- package/runtime/src/lifecycle/patch/updateMainThread.ts +11 -12
- package/runtime/src/lifecycle/reload.ts +1 -1
- package/runtime/src/lifecycleConstant.ts +1 -0
- package/runtime/src/list.ts +143 -278
- package/runtime/src/listUpdateInfo.ts +221 -0
- package/runtime/src/lynx/calledByNative.ts +8 -10
- package/runtime/src/lynx/component.ts +17 -29
- package/runtime/src/lynx/env.ts +1 -2
- package/runtime/src/lynx/lazy-bundle.ts +55 -20
- package/runtime/src/lynx/performance.ts +26 -27
- package/runtime/src/lynx/tt.ts +10 -11
- package/runtime/src/lynx-api.ts +81 -2
- package/runtime/src/lynx.ts +1 -0
- package/runtime/src/opcodes.ts +2 -1
- package/runtime/src/pendingListUpdates.ts +18 -0
- package/runtime/src/renderToOpcodes/index.ts +7 -7
- package/runtime/src/snapshot/dynamicPartType.ts +16 -0
- package/runtime/src/snapshot/gesture.ts +3 -0
- package/runtime/src/snapshot/list.ts +36 -0
- package/runtime/src/snapshot/platformInfo.ts +19 -5
- package/runtime/src/snapshot/ref.ts +1 -0
- package/runtime/src/snapshot/spread.ts +42 -17
- package/runtime/src/snapshot/workletEvent.ts +1 -1
- package/runtime/src/snapshot/workletRef.ts +1 -1
- package/runtime/src/snapshot.ts +41 -34
- package/runtime/src/snapshotInstanceHydrationMap.ts +1 -1
- package/runtime/src/utils.ts +12 -3
- package/testing-library/dist/env/vitest.js +3 -3
- package/testing-library/dist/index.d.ts +4 -1
- package/testing-library/dist/pure.js +1 -1
- package/testing-library/dist/vitest.config.js +45 -8
- package/testing-library/types/entry.d.ts +3 -2
- package/transform/cjs/main.cjs +4 -0
- package/transform/dist/wasm.cjs +1 -1
- package/types/react.d.ts +21 -1
- package/types/react.docs.d.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,55 @@
|
|
|
1
1
|
# @lynx-js/react
|
|
2
2
|
|
|
3
|
+
## 0.111.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Allow some `<list-item/>`s to be deferred and rendered in the background thread. ([#204](https://github.com/lynx-family/lynx-stack/pull/204))
|
|
8
|
+
|
|
9
|
+
Use the following syntax:
|
|
10
|
+
|
|
11
|
+
```diff
|
|
12
|
+
<list>
|
|
13
|
+
- <list-item item-key="...">
|
|
14
|
+
+ <list-item item-key="..." defer>
|
|
15
|
+
<SomeHeavyComponent />
|
|
16
|
+
</list-item>
|
|
17
|
+
</list>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
You should render your heavyweight components with the `defer` attribute to avoid blocking the main thread.
|
|
21
|
+
|
|
22
|
+
### Patch Changes
|
|
23
|
+
|
|
24
|
+
- Add missing alias of `@lynx-js/react` and `preact` in testing library, it will fix the `Failed to resolve import "@lynx-js/react/internal"` error in node_modules. ([#1182](https://github.com/lynx-family/lynx-stack/pull/1182))
|
|
25
|
+
|
|
26
|
+
- Allow any types of `dataProcessors` in `lynx.registerDataProcessors`. ([#1200](https://github.com/lynx-family/lynx-stack/pull/1200))
|
|
27
|
+
|
|
28
|
+
- Make `loadLazyBundle` being able to render the content on the first screen of the background thread. ([#1212](https://github.com/lynx-family/lynx-stack/pull/1212))
|
|
29
|
+
|
|
30
|
+
- Fixed: An issue where the `lynxViewDidUpdate` callback did not trigger when data was updated from native. ([#1171](https://github.com/lynx-family/lynx-stack/pull/1171))
|
|
31
|
+
|
|
32
|
+
Notice:
|
|
33
|
+
|
|
34
|
+
- Even if no data changes are actually processed after calling `updateData()`, the `lynxViewDidUpdate` callback will still be triggered.
|
|
35
|
+
- Only one `lynxViewDidUpdate` callback will be triggered per render cycle. Consequently, if multiple `updateData()` calls are made within a single cycle but the data updates are batched, the number of `lynxViewDidUpdate` callbacks triggered may be less than the number of `updateData()` calls.
|
|
36
|
+
|
|
37
|
+
- Supports `act` in testing library. ([#1182](https://github.com/lynx-family/lynx-stack/pull/1182))
|
|
38
|
+
|
|
39
|
+
```js
|
|
40
|
+
import { act } from '@lynx-js/react/testing-library';
|
|
41
|
+
|
|
42
|
+
act(() => {
|
|
43
|
+
// ...
|
|
44
|
+
});
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## 0.110.1
|
|
48
|
+
|
|
49
|
+
### Patch Changes
|
|
50
|
+
|
|
51
|
+
- Fix a memory leak when using `<list/>`. ([#1144](https://github.com/lynx-family/lynx-stack/pull/1144))
|
|
52
|
+
|
|
3
53
|
## 0.110.0
|
|
4
54
|
|
|
5
55
|
### Minor Changes
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { FC, ReactNode } from 'react';
|
|
2
|
+
export interface DeferredListItemProps {
|
|
3
|
+
defer?: boolean;
|
|
4
|
+
renderListItem: (children: ReactNode | undefined) => JSX.Element;
|
|
5
|
+
renderChildren: () => ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export declare const DeferredListItem: FC<DeferredListItemProps>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// Copyright 2025 The Lynx Authors. All rights reserved.
|
|
2
|
+
// Licensed under the Apache License Version 2.0 that can be found in the
|
|
3
|
+
// LICENSE file in the root directory of this source tree.
|
|
4
|
+
import { cloneElement as _cloneElement, useCallback, useRef, useState } from '@lynx-js/react';
|
|
5
|
+
import { cloneElement as _cloneElementMainThread } from '@lynx-js/react/lepus';
|
|
6
|
+
export const DeferredListItem = ({ defer, renderListItem, renderChildren }) => {
|
|
7
|
+
const __cloneElement = __MAIN_THREAD__ ? _cloneElementMainThread : _cloneElement;
|
|
8
|
+
const initialDeferRef = useRef(defer);
|
|
9
|
+
const prevDeferRef = useRef(defer);
|
|
10
|
+
const [isReady, setIsReady] = useState(!defer);
|
|
11
|
+
const onGetSnapshotInstance = useCallback((ctx) => {
|
|
12
|
+
'background only';
|
|
13
|
+
ctx.__extraProps ??= {};
|
|
14
|
+
// hack: preact ignore function property on dom
|
|
15
|
+
ctx.__extraProps['onComponentAtIndex'] = () => {
|
|
16
|
+
setIsReady(true);
|
|
17
|
+
};
|
|
18
|
+
ctx.__extraProps['onRecycleComponent'] = () => {
|
|
19
|
+
// TODO(hzy): figure out if we need to unmount the component when recycled
|
|
20
|
+
// setIsReady(false);
|
|
21
|
+
};
|
|
22
|
+
return () => {
|
|
23
|
+
delete ctx.__extraProps['onComponentAtIndex'];
|
|
24
|
+
delete ctx.__extraProps['onRecycleComponent'];
|
|
25
|
+
};
|
|
26
|
+
}, []);
|
|
27
|
+
if (__BACKGROUND__) {
|
|
28
|
+
if (prevDeferRef.current && !defer) {
|
|
29
|
+
setIsReady(true);
|
|
30
|
+
}
|
|
31
|
+
prevDeferRef.current = defer;
|
|
32
|
+
}
|
|
33
|
+
return initialDeferRef.current
|
|
34
|
+
? __cloneElement(renderListItem(isReady ? renderChildren() : null), {
|
|
35
|
+
isReady: +isReady, // hack: preact specially handled boolean props
|
|
36
|
+
ref: onGetSnapshotInstance,
|
|
37
|
+
})
|
|
38
|
+
: renderListItem(renderChildren());
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=DeferredListItem.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeferredListItem.jsx","sourceRoot":"","sources":["../src/DeferredListItem.tsx"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAI1D,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE9F,OAAO,EAAE,YAAY,IAAI,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAQ/E,MAAM,CAAC,MAAM,gBAAgB,GAA8B,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,EAAE,EAAE;IACvG,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,aAAa,CAAC;IAEjF,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,qBAAqB,GAAG,WAAW,CAAgC,CAAC,GAAG,EAAE,EAAE;QAC/E,iBAAiB,CAAC;QAElB,GAAI,CAAC,YAAY,KAAK,EAAE,CAAC;QAEzB,+CAA+C;QAC/C,GAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,GAAG,GAAG,EAAE;YAC7C,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC,CAAC;QACF,GAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,GAAG,GAAG,EAAE;YAC7C,0EAA0E;YAC1E,qBAAqB;QACvB,CAAC,CAAC;QAEF,OAAO,GAAG,EAAE;YACV,OAAO,GAAI,CAAC,YAAa,CAAC,oBAAoB,CAAC,CAAC;YAChD,OAAO,GAAI,CAAC,YAAa,CAAC,oBAAoB,CAAC,CAAC;QAClD,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,YAAY,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;YACnC,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QACD,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,OAAO,eAAe,CAAC,OAAO;QAC5B,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;YAClE,OAAO,EAAE,CAAC,OAAO,EAAE,+CAA+C;YAClE,GAAG,EAAE,qBAAqB;SAC3B,CAAC;QACF,CAAC,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC;AACvC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Page.js","sourceRoot":"","sources":["../src/Page.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAI1D,+BAA+B;AAC/B,6FAA6F;AAC7F,4CAA4C;AAC5C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEhF,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,MAAM,IAAI;AACR,eAAe,CAAC,CAAC;IACf,IAAI,SAAS,EAAE,CAAC;QACd,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,MAAO,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAC7E,qBAAqB;YACrB,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACvB,OAAO;YACT,CAAC;YACD,oBAAoB;YACpB,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"Page.js","sourceRoot":"","sources":["../src/Page.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAI1D,+BAA+B;AAC/B,6FAA6F;AAC7F,4CAA4C;AAC5C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEhF,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,MAAM,IAAI;AACR,eAAe,CAAC,CAAC;IACf,IAAI,SAAS,EAAE,CAAC;QACd,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,MAAO,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAC7E,qBAAqB;YACrB,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACvB,OAAO;YACT,CAAC;YACD,oBAAoB;YACpB,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAmC,EAAE,CAAC,CAAC,CAAC;QACxE,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CACf,UAAS,KAAK,EAAE,GAAG;QACjB,MAAM,EACJ,QAAQ,EACR,GAAG,SAAS,EACb,GAAG,KAAK,CAAC;QAEV,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;gBAC7B,GAAG;gBACH,GAAG,SAAS;gBACZ,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC,CAAC;QACJ,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAExC,SAAS,CAAC,GAAG,EAAE;YACb,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC,WAAW,CACd,IAAI,KAAK,CACP,uEAAuE,CACxE,CACF,CAAC;gBACF,kBAAkB,CAAC,OAAO,GAAG,KAAK,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;YAED,OAAO,GAAG,EAAE;gBACV,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE;oBAC5B;wBACE,GAAG,MAAM,CAAC,WAAW,CACnB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;4BAC5C,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;wBAC1B,CAAC,CAAC,CACH;wBACD,QAAQ,EAAE,IAAI;qBACf;iBACF,CAAC,CAAC;gBACH,oBAAoB;gBACpB,IAAI,kBAAkB,CAAC,OAAO;oBAAE,WAAW,GAAG,KAAK,CAAC;YACtD,CAAC,CAAC;QACJ,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,QAAQ,CAAC;IAClB,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,EAAE,CAAC;AAEP,OAAO,EAAE,IAAI,EAAE,CAAC"}
|
package/components/lib/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// Copyright 2025 The Lynx Authors. All rights reserved.
|
|
2
|
+
// Licensed under the Apache License Version 2.0 that can be found in the
|
|
3
|
+
// LICENSE file in the root directory of this source tree.
|
|
4
|
+
|
|
5
|
+
import type { FC, ReactNode, RefCallback } from 'react';
|
|
6
|
+
|
|
7
|
+
import { cloneElement as _cloneElement, useCallback, useRef, useState } from '@lynx-js/react';
|
|
8
|
+
import type { SnapshotInstance } from '@lynx-js/react/internal';
|
|
9
|
+
import { cloneElement as _cloneElementMainThread } from '@lynx-js/react/lepus';
|
|
10
|
+
|
|
11
|
+
export interface DeferredListItemProps {
|
|
12
|
+
defer?: boolean;
|
|
13
|
+
renderListItem: (children: ReactNode | undefined) => JSX.Element;
|
|
14
|
+
renderChildren: () => ReactNode;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const DeferredListItem: FC<DeferredListItemProps> = ({ defer, renderListItem, renderChildren }) => {
|
|
18
|
+
const __cloneElement = __MAIN_THREAD__ ? _cloneElementMainThread : _cloneElement;
|
|
19
|
+
|
|
20
|
+
const initialDeferRef = useRef(defer);
|
|
21
|
+
const prevDeferRef = useRef(defer);
|
|
22
|
+
const [isReady, setIsReady] = useState(!defer);
|
|
23
|
+
const onGetSnapshotInstance = useCallback<RefCallback<SnapshotInstance>>((ctx) => {
|
|
24
|
+
'background only';
|
|
25
|
+
|
|
26
|
+
ctx!.__extraProps ??= {};
|
|
27
|
+
|
|
28
|
+
// hack: preact ignore function property on dom
|
|
29
|
+
ctx!.__extraProps['onComponentAtIndex'] = () => {
|
|
30
|
+
setIsReady(true);
|
|
31
|
+
};
|
|
32
|
+
ctx!.__extraProps['onRecycleComponent'] = () => {
|
|
33
|
+
// TODO(hzy): figure out if we need to unmount the component when recycled
|
|
34
|
+
// setIsReady(false);
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
return () => {
|
|
38
|
+
delete ctx!.__extraProps!['onComponentAtIndex'];
|
|
39
|
+
delete ctx!.__extraProps!['onRecycleComponent'];
|
|
40
|
+
};
|
|
41
|
+
}, []);
|
|
42
|
+
|
|
43
|
+
if (__BACKGROUND__) {
|
|
44
|
+
if (prevDeferRef.current && !defer) {
|
|
45
|
+
setIsReady(true);
|
|
46
|
+
}
|
|
47
|
+
prevDeferRef.current = defer;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return initialDeferRef.current
|
|
51
|
+
? __cloneElement(renderListItem(isReady ? renderChildren() : null), {
|
|
52
|
+
isReady: +isReady, // hack: preact specially handled boolean props
|
|
53
|
+
ref: onGetSnapshotInstance,
|
|
54
|
+
})
|
|
55
|
+
: renderListItem(renderChildren());
|
|
56
|
+
};
|
package/components/src/Page.ts
CHANGED
package/components/src/index.ts
CHANGED
package/package.json
CHANGED
package/runtime/lazy/react.js
CHANGED
package/runtime/lepus/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// Copyright 2024 The Lynx Authors. All rights reserved.
|
|
2
2
|
// Licensed under the Apache License Version 2.0 that can be found in the
|
|
3
3
|
// LICENSE file in the root directory of this source tree.
|
|
4
|
-
export { createElement } from 'react';
|
|
4
|
+
export { cloneElement, createElement } from 'react';
|
package/runtime/lepus/index.js
CHANGED
|
@@ -41,3 +41,47 @@ export function createElement(type, props, children) {
|
|
|
41
41
|
|
|
42
42
|
return createVNode(type, normalizedProps, key, ref, null);
|
|
43
43
|
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Clones the given VNode, optionally adding attributes/props and replacing its
|
|
47
|
+
* children.
|
|
48
|
+
* @param {VNode} vnode The virtual DOM element to clone
|
|
49
|
+
* @param {object} props Attributes/props to add when cloning
|
|
50
|
+
* @param {Array<ComponentChildren>} rest Any additional arguments will be used
|
|
51
|
+
* as replacement children.
|
|
52
|
+
* @returns {VNode}
|
|
53
|
+
*/
|
|
54
|
+
export function cloneElement(vnode, props, children) {
|
|
55
|
+
let normalizedProps = Object.assign({}, vnode.props),
|
|
56
|
+
key,
|
|
57
|
+
ref,
|
|
58
|
+
i;
|
|
59
|
+
|
|
60
|
+
let defaultProps;
|
|
61
|
+
|
|
62
|
+
if (vnode.type && vnode.type.defaultProps) {
|
|
63
|
+
defaultProps = vnode.type.defaultProps;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
for (i in props) {
|
|
67
|
+
if (i == 'key') key = props[i];
|
|
68
|
+
else if (i == 'ref') ref = props[i];
|
|
69
|
+
else if (props[i] === undefined && defaultProps !== undefined) {
|
|
70
|
+
normalizedProps[i] = defaultProps[i];
|
|
71
|
+
} else {
|
|
72
|
+
normalizedProps[i] = props[i];
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if (arguments.length > 2) {
|
|
77
|
+
normalizedProps.children = arguments.length > 3 ? slice.call(arguments, 2) : children;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return createVNode(
|
|
81
|
+
vnode.type,
|
|
82
|
+
normalizedProps,
|
|
83
|
+
key || vnode.key,
|
|
84
|
+
ref || vnode.ref,
|
|
85
|
+
null,
|
|
86
|
+
);
|
|
87
|
+
}
|
|
@@ -6,6 +6,7 @@ export declare class BackgroundSnapshotInstance {
|
|
|
6
6
|
__id: number;
|
|
7
7
|
__values: any[] | undefined;
|
|
8
8
|
__snapshot_def: Snapshot;
|
|
9
|
+
__extraProps?: Record<string, unknown> | undefined;
|
|
9
10
|
private __parent;
|
|
10
11
|
private __firstChild;
|
|
11
12
|
private __lastChild;
|
|
@@ -18,7 +19,7 @@ export declare class BackgroundSnapshotInstance {
|
|
|
18
19
|
insertBefore(node: BackgroundSnapshotInstance, beforeNode?: BackgroundSnapshotInstance): void;
|
|
19
20
|
removeChild(node: BackgroundSnapshotInstance): void;
|
|
20
21
|
get childNodes(): BackgroundSnapshotInstance[];
|
|
21
|
-
setAttribute(key: string | number, value:
|
|
22
|
+
setAttribute(key: string | number, value: unknown): void;
|
|
22
23
|
private setAttributeImpl;
|
|
23
24
|
}
|
|
24
25
|
export declare function hydrate(before: SerializedSnapshotInstance, after: BackgroundSnapshotInstance): SnapshotPatch;
|
|
@@ -6,9 +6,10 @@ import { diffArrayAction, diffArrayLepus } from './hydrate.js';
|
|
|
6
6
|
import { globalBackgroundSnapshotInstancesToRemove } from './lifecycle/patch/commit.js';
|
|
7
7
|
import { SnapshotOperation, __globalSnapshotPatch, initGlobalSnapshotPatch, takeGlobalSnapshotPatch, } from './lifecycle/patch/snapshotPatch.js';
|
|
8
8
|
import { globalPipelineOptions } from './lynx/performance.js';
|
|
9
|
+
import { DynamicPartType } from './snapshot/dynamicPartType.js';
|
|
9
10
|
import { clearQueuedRefs, queueRefAttrUpdate } from './snapshot/ref.js';
|
|
10
11
|
import { transformSpread } from './snapshot/spread.js';
|
|
11
|
-
import {
|
|
12
|
+
import { backgroundSnapshotInstanceManager, snapshotManager, traverseSnapshotInstance } from './snapshot.js';
|
|
12
13
|
import { hydrationMap } from './snapshotInstanceHydrationMap.js';
|
|
13
14
|
import { isDirectOrDeepEqual } from './utils.js';
|
|
14
15
|
import { onPostWorkletCtx } from './worklet/ctx.js';
|
|
@@ -17,14 +18,14 @@ export class BackgroundSnapshotInstance {
|
|
|
17
18
|
constructor(type) {
|
|
18
19
|
this.type = type;
|
|
19
20
|
this.__snapshot_def = snapshotManager.values.get(type);
|
|
20
|
-
|
|
21
|
-
id = this.__id = backgroundSnapshotInstanceManager.nextId += 1;
|
|
21
|
+
const id = this.__id = backgroundSnapshotInstanceManager.nextId += 1;
|
|
22
22
|
backgroundSnapshotInstanceManager.values.set(id, this);
|
|
23
23
|
__globalSnapshotPatch?.push(SnapshotOperation.CreateElement, type, id);
|
|
24
24
|
}
|
|
25
25
|
__id;
|
|
26
26
|
__values;
|
|
27
27
|
__snapshot_def;
|
|
28
|
+
__extraProps;
|
|
28
29
|
__parent = null;
|
|
29
30
|
__firstChild = null;
|
|
30
31
|
__lastChild = null;
|
|
@@ -193,11 +194,15 @@ export class BackgroundSnapshotInstance {
|
|
|
193
194
|
}
|
|
194
195
|
return;
|
|
195
196
|
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
197
|
+
if (typeof key === 'string') {
|
|
198
|
+
(this.__extraProps ??= {})[key] = value;
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
// old path (`this.setAttribute(0, xxx)`)
|
|
202
|
+
// is reserved as slow path
|
|
203
|
+
(this.__values ??= [])[key] = value;
|
|
204
|
+
}
|
|
205
|
+
__globalSnapshotPatch?.push(SnapshotOperation.SetAttribute, this.__id, key, value);
|
|
201
206
|
if (__PROFILE__) {
|
|
202
207
|
console.profileEnd();
|
|
203
208
|
}
|
|
@@ -273,7 +278,7 @@ export class BackgroundSnapshotInstance {
|
|
|
273
278
|
}
|
|
274
279
|
export function hydrate(before, after) {
|
|
275
280
|
initGlobalSnapshotPatch();
|
|
276
|
-
const helper2 = (afters, parentId) => {
|
|
281
|
+
const helper2 = (afters, parentId, targetId) => {
|
|
277
282
|
for (const child of afters) {
|
|
278
283
|
const id = child.__id;
|
|
279
284
|
__globalSnapshotPatch.push(SnapshotOperation.CreateElement, child.type, id);
|
|
@@ -282,8 +287,12 @@ export function hydrate(before, after) {
|
|
|
282
287
|
child.__values = undefined;
|
|
283
288
|
child.setAttribute('values', values);
|
|
284
289
|
}
|
|
290
|
+
const extraProps = child.__extraProps;
|
|
291
|
+
for (const key in extraProps) {
|
|
292
|
+
child.setAttribute(key, extraProps[key]);
|
|
293
|
+
}
|
|
285
294
|
helper2(child.childNodes, id);
|
|
286
|
-
__globalSnapshotPatch.push(SnapshotOperation.InsertBefore, parentId, id,
|
|
295
|
+
__globalSnapshotPatch.push(SnapshotOperation.InsertBefore, parentId, id, targetId);
|
|
287
296
|
}
|
|
288
297
|
};
|
|
289
298
|
const helper = (before, after) => {
|
|
@@ -292,40 +301,61 @@ export function hydrate(before, after) {
|
|
|
292
301
|
after.__values?.forEach((value, index) => {
|
|
293
302
|
const old = before.values[index];
|
|
294
303
|
if (value) {
|
|
295
|
-
if (value
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
304
|
+
if (typeof value === 'object') {
|
|
305
|
+
if ('__spread' in value) {
|
|
306
|
+
// `value.__spread` my contain event ids using snapshot ids before hydration. Remove it.
|
|
307
|
+
delete value.__spread;
|
|
308
|
+
const __spread = transformSpread(after, index, value);
|
|
309
|
+
for (const key in __spread) {
|
|
310
|
+
const v = __spread[key];
|
|
311
|
+
if (v && typeof v === 'object') {
|
|
312
|
+
if ('_wkltId' in v) {
|
|
313
|
+
onPostWorkletCtx(v);
|
|
314
|
+
}
|
|
315
|
+
else if ('__isGesture' in v) {
|
|
316
|
+
processGestureBackground(v);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
305
319
|
}
|
|
320
|
+
after.__values[index]['__spread'] = __spread;
|
|
321
|
+
value = __spread;
|
|
322
|
+
}
|
|
323
|
+
else if ('__ref' in value) {
|
|
324
|
+
// skip patch
|
|
325
|
+
value = old;
|
|
326
|
+
}
|
|
327
|
+
else if ('_wkltId' in value) {
|
|
328
|
+
onPostWorkletCtx(value);
|
|
329
|
+
}
|
|
330
|
+
else if ('__isGesture' in value) {
|
|
331
|
+
processGestureBackground(value);
|
|
306
332
|
}
|
|
307
|
-
after.__values[index].__spread = value;
|
|
308
|
-
}
|
|
309
|
-
else if (value.__ref) {
|
|
310
|
-
// skip patch
|
|
311
|
-
value = old;
|
|
312
333
|
}
|
|
313
334
|
else if (typeof value === 'function') {
|
|
314
|
-
value
|
|
335
|
+
if ('__ref' in value) {
|
|
336
|
+
// skip patch
|
|
337
|
+
value = old;
|
|
338
|
+
}
|
|
339
|
+
else {
|
|
340
|
+
value = `${after.__id}:${index}:`;
|
|
341
|
+
}
|
|
315
342
|
}
|
|
316
343
|
}
|
|
317
|
-
if (value && value._wkltId) {
|
|
318
|
-
onPostWorkletCtx(value);
|
|
319
|
-
}
|
|
320
|
-
else if (value && value.__isGesture) {
|
|
321
|
-
processGestureBackground(value);
|
|
322
|
-
}
|
|
323
344
|
if (!isDirectOrDeepEqual(value, old)) {
|
|
324
345
|
__globalSnapshotPatch.push(SnapshotOperation.SetAttribute, after.__id, index, value);
|
|
325
346
|
}
|
|
326
347
|
});
|
|
348
|
+
if (after.__extraProps) {
|
|
349
|
+
for (const key in after.__extraProps) {
|
|
350
|
+
const value = after.__extraProps[key];
|
|
351
|
+
const old = before.extraProps?.[key];
|
|
352
|
+
if (!isDirectOrDeepEqual(value, old)) {
|
|
353
|
+
__globalSnapshotPatch.push(SnapshotOperation.SetAttribute, after.__id, key, value);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
327
357
|
const { slot } = after.__snapshot_def;
|
|
328
|
-
const beforeChildNodes = before.children
|
|
358
|
+
const beforeChildNodes = before.children ?? [];
|
|
329
359
|
const afterChildNodes = after.childNodes;
|
|
330
360
|
if (!slot) {
|
|
331
361
|
return;
|
|
@@ -346,14 +376,7 @@ export function hydrate(before, after) {
|
|
|
346
376
|
helper(a, b);
|
|
347
377
|
});
|
|
348
378
|
diffArrayAction(beforeChildNodes, diffResult, (node, target) => {
|
|
349
|
-
|
|
350
|
-
helper2(node.childNodes, node.__id);
|
|
351
|
-
const values = node.__values;
|
|
352
|
-
if (values) {
|
|
353
|
-
node.__values = undefined;
|
|
354
|
-
node.setAttribute('values', values);
|
|
355
|
-
}
|
|
356
|
-
__globalSnapshotPatch.push(SnapshotOperation.InsertBefore, before.id, node.__id, target?.id);
|
|
379
|
+
helper2([node], before.id, target?.id);
|
|
357
380
|
return undefined;
|
|
358
381
|
}, node => {
|
|
359
382
|
__globalSnapshotPatch.push(SnapshotOperation.RemoveChild, before.id, node.id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backgroundSnapshot.js","sourceRoot":"","sources":["../src/backgroundSnapshot.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"backgroundSnapshot.js","sourceRoot":"","sources":["../src/backgroundSnapshot.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAU1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,yCAAyC,EAAE,MAAM,6BAA6B,CAAC;AAExF,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,iCAAiC,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAC7G,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,OAAO,0BAA0B;IAClB;IAAnB,YAAmB,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;QAC7B,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QACxD,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAC,MAAM,IAAI,CAAC,CAAC;QACrE,iCAAiC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAEvD,qBAAqB,EAAE,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,CAAS;IACb,QAAQ,CAAoB;IAC5B,cAAc,CAAW;IACzB,YAAY,CAAuC;IAE3C,QAAQ,GAAsC,IAAI,CAAC;IACnD,YAAY,GAAsC,IAAI,CAAC;IACvD,WAAW,GAAsC,IAAI,CAAC;IACtD,iBAAiB,GAAsC,IAAI,CAAC;IAC5D,aAAa,GAAsC,IAAI,CAAC;IAEhE,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,sBAAsB;IACtB,4BAA4B;IAC5B,IAAI;IAEJ,QAAQ,CAAC,KAAiC;QACxC,OAAO,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACnC,CAAC;IAED,6BAA6B;IAC7B,4CAA4C;IAC5C,gEAAgE;IAChE,qBAAqB;IACrB,WAAW,CAAC,KAAiC;QAC3C,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IACD,oBAAoB;IAEpB,YAAY,CACV,IAAgC,EAChC,UAAuC;QAEvC,qBAAqB,EAAE,IAAI,CACzB,iBAAiB,CAAC,YAAY,EAC9B,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,IAAI,EACT,UAAU,EAAE,IAAI,CACjB,CAAC;QAEF,sEAAsE;QACtE,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QACxB,IAAI,CAAC,EAAE,CAAC;YACN,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,IAAI,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;YACtC,CAAC;YAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACzC,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,IAAI,UAAU,EAAE,CAAC;YACf,mEAAmE;YACnE,IAAI,UAAU,CAAC,iBAAiB,EAAE,CAAC;gBACjC,UAAU,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC;gBAClD,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAChC,CAAC;YACD,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC;YACpC,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;YAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,IAAI,CAAC,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC;gBACtC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAChC,CAAC;YACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,WAAW,CAAC,IAAgC;QAC1C,qBAAqB,EAAE,IAAI,CACzB,iBAAiB,CAAC,WAAW,EAC7B,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,IAAI,CACV,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;QACzC,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAE1B,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;YACjC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC3B,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACf,CAAC,CAAC,cAAc,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBAClD,MAAM,KAAK,GAAG,CAAC,CAAC,QAAS,CAAC,CAAC,CAAY,CAAC;oBACxC,IAAI,KAAK,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC,EAAE,CAAC;wBACxE,IAAI,UAAU,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;4BAC1C,kBAAkB,CAAC,KAAK,CAAC,GAAU,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBACxD,CAAC;6BAAM,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;4BAC5B,kBAAkB,CAAC,KAAY,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBACpD,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YACD,yCAAyC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,UAAU;QACZ,MAAM,KAAK,GAAiC,EAAE,CAAC;QAC/C,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7B,OAAO,IAAI,EAAE,CAAC;YACZ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC9B,MAAM;YACR,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,YAAY,CAAC,GAAoB,EAAE,KAAc;QAC/C,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,IAAI,qBAAqB,EAAE,CAAC;gBAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAChC,IAAI,SAAS,EAAE,CAAC;oBACd,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAI,KAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;wBACjE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,gBAAgB,CACxD,KAAmB,CAAC,KAAK,CAAC,EAC3B,SAAS,CAAC,KAAK,CAAC,EAChB,KAAK,CACN,CAAC;wBACF,IAAI,UAAU,EAAE,CAAC;4BACf,qBAAqB,CAAC,IAAI,CACxB,iBAAiB,CAAC,YAAY,EAC9B,IAAI,CAAC,IAAI,EACT,KAAK,EACL,aAAa,CACd,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,KAAK,GAAG,EAAE,CAAC;oBACjB,MAAM,MAAM,GAAI,KAAmB,CAAC,MAAM,CAAC;oBAC3C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC;wBAC5C,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAE,KAAmB,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;wBAC1F,KAAK,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC;oBAC/B,CAAC;oBACD,qBAAqB,CAAC,IAAI,CACxB,iBAAiB,CAAC,aAAa,EAC/B,IAAI,CAAC,IAAI,EACT,KAAK,CACN,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBACzD,MAAM,CAAC,GAAI,KAAmB,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,UAAU,CAAC,EAAE,CAAC;wBAC5D,IAAI,UAAU,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;4BAClC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAU,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;wBAC3D,CAAC;6BAAM,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;4BACxB,kBAAkB,CAAC,IAAI,EAAE,CAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;wBACvD,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,CAAC,QAAQ,GAAG,KAAkB,CAAC;YACnC,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,CAAC,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,yCAAyC;YACzC,2BAA2B;YAC3B,CAAC,IAAI,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtC,CAAC;QACD,qBAAqB,EAAE,IAAI,CACzB,iBAAiB,CAAC,YAAY,EAC9B,IAAI,CAAC,IAAI,EACT,GAAG,EACH,KAAK,CACN,CAAC;QACF,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,QAAiB,EAAE,QAAiB,EAAE,KAAa;QAI1E,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,gCAAgC;YAChC,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;gBACpE,kBAAkB,CAAC,QAAe,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,EAAE,UAAU,EAAE,QAAQ,KAAK,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;QACxE,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,QAAQ,CAAC;QAChC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,MAAM,WAAW,GAAG,QAAmC,CAAC;YACxD,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;gBAC9B,MAAM,SAAS,GAAI,QAA+D,EAAE,QAAQ,CAAC;gBAC7F,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;gBAC5D,MAAM,UAAU,GAAG,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC9D,2DAA2D;gBAC3D,WAAW,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;gBACpC,kBAAkB,CAChB,SAAS,IAAI,CAAE,QAA0B,CAAC,GAAG,CAAC,EAC9C,WAAW,CAAC,KAAK,CAAQ,EACzB,IAAI,CAAC,IAAI,EACT,KAAK,CACN,CAAC;gBACF,IAAI,UAAU,EAAE,CAAC;oBACf,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;wBAC5B,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;wBACtC,IAAI,CAAC,cAAc,EAAE,CAAC;4BACpB,SAAS;wBACX,CAAC;wBACD,IAAK,cAAuC,CAAC,OAAO,EAAE,CAAC;4BACrD,SAAS,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,cAAyB,CAAC,CAAC;wBAC/D,CAAC;6BAAM,IAAK,cAA4C,CAAC,WAAW,EAAE,CAAC;4BACrE,wBAAwB,CAAC,cAA6B,CAAC,CAAC;wBAC1D,CAAC;6BAAM,IAAI,GAAG,IAAI,oBAAoB,IAAI,SAAS,EAAE,CAAC,GAAG,CAAC,IAAI,cAAc,IAAI,qBAAqB,EAAE,CAAC;4BACtG,qBAAqB,CAAC,cAAc,GAAG,IAAI,CAAC;wBAC9C,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;YAClD,CAAC;YACD,IAAI,OAAO,IAAI,WAAW,EAAE,CAAC;gBAC3B,kBAAkB,CAAC,QAAe,EAAE,WAAkB,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC1E,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YACjD,CAAC;YACD,IAAI,SAAS,IAAI,WAAW,EAAE,CAAC;gBAC7B,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,gBAAgB,CAAC,WAAsB,CAAC,EAAE,CAAC;YACvF,CAAC;YACD,IAAI,aAAa,IAAI,WAAW,EAAE,CAAC;gBACjC,wBAAwB,CAAC,WAAqC,CAAC,CAAC;gBAChE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;YACvD,CAAC;YACD,IAAI,OAAO,IAAI,WAAW,EAAE,CAAC;gBAC3B,qBAAqB;gBACrB,IAAI,qBAAqB,IAAK,QAA4C,EAAE,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC1G,qBAAqB,CAAC,cAAc,GAAG,IAAI,CAAC;oBAC5C,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;gBACvD,CAAC;gBACD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;YACxD,CAAC;YACD,OAAO,EAAE,UAAU,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;QAC3F,CAAC;QACD,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAC3B,IAAK,QAAgC,CAAC,KAAK,EAAE,CAAC;gBAC5C,kBAAkB,CAAC,QAAe,EAAE,QAAe,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACvE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YACjD,CAAC;YACD,WAAW;YACX,OAAO,EAAE,UAAU,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QACrD,CAAC;QACD,OAAO,EAAE,UAAU,EAAE,QAAQ,KAAK,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;IACxE,CAAC;CACF;AAED,MAAM,UAAU,OAAO,CACrB,MAAkC,EAClC,KAAiC;IAEjC,uBAAuB,EAAE,CAAC;IAE1B,MAAM,OAAO,GAAG,CAAC,MAAoC,EAAE,QAAgB,EAAE,QAAiB,EAAE,EAAE;QAC5F,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;YACtB,qBAAsB,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC7E,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;YAC9B,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;gBAC3B,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACvC,CAAC;YACD,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC;YACtC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC9B,qBAAsB,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QACtF,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,CACb,MAAkC,EAClC,KAAiC,EACjC,EAAE;QACF,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACxC,iCAAiC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAClE,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAc,EAAE,KAAK,EAAE,EAAE;YAChD,MAAM,GAAG,GAAY,MAAM,CAAC,MAAO,CAAC,KAAK,CAAC,CAAC;YAE3C,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC9B,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;wBACxB,wFAAwF;wBACxF,OAAO,KAAK,CAAC,QAAQ,CAAC;wBACtB,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;wBACtD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;4BAC3B,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;4BACxB,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gCAC/B,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;oCACnB,gBAAgB,CAAC,CAAY,CAAC,CAAC;gCACjC,CAAC;qCAAM,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;oCAC9B,wBAAwB,CAAC,CAAgB,CAAC,CAAC;gCAC7C,CAAC;4BACH,CAAC;wBACH,CAAC;wBACA,KAAK,CAAC,QAAS,CAAC,KAAK,CAA8B,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;wBAC5E,KAAK,GAAG,QAAQ,CAAC;oBACnB,CAAC;yBAAM,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;wBAC5B,aAAa;wBACb,KAAK,GAAG,GAAG,CAAC;oBACd,CAAC;yBAAM,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;wBAC9B,gBAAgB,CAAC,KAAgB,CAAC,CAAC;oBACrC,CAAC;yBAAM,IAAI,aAAa,IAAI,KAAK,EAAE,CAAC;wBAClC,wBAAwB,CAAC,KAAoB,CAAC,CAAC;oBACjD,CAAC;gBACH,CAAC;qBAAM,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;oBACvC,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;wBACrB,aAAa;wBACb,KAAK,GAAG,GAAG,CAAC;oBACd,CAAC;yBAAM,CAAC;wBACN,KAAK,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,GAAG,CAAC;oBACpC,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;gBACrC,qBAAsB,CAAC,IAAI,CACzB,iBAAiB,CAAC,YAAY,EAC9B,KAAK,CAAC,IAAI,EACV,KAAK,EACL,KAAK,CACN,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;gBACrC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;oBACrC,qBAAsB,CAAC,IAAI,CACzB,iBAAiB,CAAC,YAAY,EAC9B,KAAK,CAAC,IAAI,EACV,GAAG,EACH,KAAK,CACN,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,cAAc,CAAC;QAEtC,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC/C,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC;QAEzC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;YAC7B,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,eAAe,CAAC,IAAI,CAAC;gBAC1B,KAAK,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC;oBACnC,wDAAwD;oBACxD,MAAM,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAE,CAAC;oBACpC,MAAM,EAAE,GAAG,eAAe,CAAC,KAAK,CAAE,CAAC;oBACnC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBACf,MAAM;gBACR,CAAC;gBACD,KAAK,eAAe,CAAC,QAAQ,CAAC;gBAC9B,KAAK,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC;oBAClC,MAAM,UAAU,GAAG,cAAc,CAC/B,gBAAgB,EAChB,eAAe,EACf,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAC3B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBACP,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACf,CAAC,CACF,CAAC;oBACF,eAAe,CACb,gBAAgB,EAChB,UAAU,EACV,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;wBACf,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;wBACvC,OAAO,SAAkD,CAAC;oBAC5D,CAAC,EACD,IAAI,CAAC,EAAE;wBACL,qBAAsB,CAAC,IAAI,CACzB,iBAAiB,CAAC,WAAW,EAC7B,MAAM,CAAC,EAAE,EACT,IAAI,CAAC,EAAE,CACR,CAAC;oBACJ,CAAC,EACD,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;wBACf,yEAAyE;wBACzE,qBAAsB,CAAC,IAAI,CACzB,iBAAiB,CAAC,YAAY,EAC9B,MAAM,CAAC,EAAE,EACT,IAAI,CAAC,EAAE,EACP,MAAM,EAAE,EAAE,CACX,CAAC;oBACJ,CAAC,CACF,CAAC;oBACF,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACtB,uIAAuI;IACvI,eAAe,EAAE,CAAC;IAClB,OAAO,uBAAuB,EAAG,CAAC;AACpC,CAAC"}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Consumer, Context, Provider } from 'preact';
|
|
2
|
+
import type { ComponentClass } from 'react';
|
|
2
3
|
import { useLynxGlobalEventListener } from '../hooks/useLynxGlobalEventListener.js';
|
|
3
4
|
type Getter<T> = {
|
|
4
5
|
[key in keyof T]: () => T[key];
|
|
5
6
|
};
|
|
6
|
-
export declare function factory<Data>({ createContext, useState, createElement, useLynxGlobalEventListener: useListener }:
|
|
7
|
+
export declare function factory<Data>({ createContext, useState, createElement, useLynxGlobalEventListener: useListener }: {
|
|
8
|
+
createContext: typeof import('preact').createContext;
|
|
9
|
+
useState: typeof import('preact/hooks').useState;
|
|
10
|
+
createElement: typeof import('preact').createElement;
|
|
7
11
|
useLynxGlobalEventListener: typeof useLynxGlobalEventListener;
|
|
8
12
|
}, prop: '__globalProps' | '__initData', eventName: string): Getter<{
|
|
9
13
|
Context: Context<Data>;
|
|
10
|
-
Provider:
|
|
11
|
-
children?: ReactNode | undefined;
|
|
12
|
-
}>;
|
|
14
|
+
Provider: Provider<Data>;
|
|
13
15
|
Consumer: Consumer<Data>;
|
|
14
16
|
use: () => Data;
|
|
15
17
|
useChanged: (callback: (data: Data) => void) => void;
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { useLynxGlobalEventListener } from '../hooks/useLynxGlobalEventListener.js';
|
|
2
|
+
import { globalFlushOptions } from '../lifecycle/patch/commit.js';
|
|
2
3
|
// for better reuse if runtime is changed
|
|
3
4
|
export function factory({ createContext, useState, createElement, useLynxGlobalEventListener: useListener }, prop, eventName) {
|
|
4
5
|
const Context = createContext({});
|
|
5
6
|
const Provider = ({ children }) => {
|
|
6
7
|
const [__, set] = useState(lynx[prop]);
|
|
7
8
|
const handleChange = () => {
|
|
9
|
+
if (prop === '__initData') {
|
|
10
|
+
globalFlushOptions.triggerDataUpdated = true;
|
|
11
|
+
}
|
|
8
12
|
set(lynx[prop]);
|
|
9
13
|
};
|
|
10
14
|
useChanged(handleChange);
|
|
@@ -16,17 +20,20 @@ export function factory({ createContext, useState, createElement, useLynxGlobalE
|
|
|
16
20
|
const use = () => {
|
|
17
21
|
const [__, set] = useState(lynx[prop]);
|
|
18
22
|
useChanged(() => {
|
|
23
|
+
if (prop === '__initData') {
|
|
24
|
+
globalFlushOptions.triggerDataUpdated = true;
|
|
25
|
+
}
|
|
19
26
|
set(lynx[prop]);
|
|
20
27
|
});
|
|
21
28
|
return __;
|
|
22
29
|
};
|
|
23
30
|
const useChanged = (callback) => {
|
|
24
31
|
if (!__LEPUS__) {
|
|
25
|
-
// @ts-ignore
|
|
26
32
|
useListener(eventName, callback);
|
|
27
33
|
}
|
|
28
34
|
};
|
|
29
35
|
return {
|
|
36
|
+
/* v8 ignore next */
|
|
30
37
|
Context: () => Context,
|
|
31
38
|
Provider: () => Provider,
|
|
32
39
|
Consumer: () => Consumer,
|
|
@@ -60,7 +67,8 @@ export function factory({ createContext, useState, createElement, useLynxGlobalE
|
|
|
60
67
|
* @public
|
|
61
68
|
*/
|
|
62
69
|
export function withInitDataInState(App) {
|
|
63
|
-
const isClassComponent = 'prototype' in App && App.prototype
|
|
70
|
+
const isClassComponent = 'prototype' in App && 'render' in App.prototype;
|
|
71
|
+
/* v8 ignore next 4 */
|
|
64
72
|
if (!isClassComponent) {
|
|
65
73
|
// return as-is when not class component
|
|
66
74
|
return App;
|
|
@@ -75,6 +83,7 @@ export function withInitDataInState(App) {
|
|
|
75
83
|
};
|
|
76
84
|
if (!__LEPUS__) {
|
|
77
85
|
lynx.getJSModule('GlobalEventEmitter').addListener('onDataChanged', this.h = () => {
|
|
86
|
+
globalFlushOptions.triggerDataUpdated = true;
|
|
78
87
|
this.setState(lynx.__initData);
|
|
79
88
|
});
|
|
80
89
|
}
|