@metapages/metapage 1.8.22 → 1.8.24
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/dist/index.js +454 -434
- package/dist/index.js.map +1 -1
- package/dist/metapage/Metapage.d.ts +1 -1
- package/dist/metapage/Metapage.d.ts.map +1 -1
- package/dist/metapage/metapageRenderer.d.ts +3 -0
- package/dist/metapage/metapageRenderer.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/metapage/Metapage.ts +7 -4
- package/src/metapage/metapageRenderer.ts +55 -7
|
@@ -75,7 +75,7 @@ export declare class Metapage extends MetapageShared {
|
|
|
75
75
|
getMetaframes(): {
|
|
76
76
|
[key: string]: MetapageIFrameRpcClient;
|
|
77
77
|
};
|
|
78
|
-
getMetaframe(id: MetaframeId): MetapageIFrameRpcClient;
|
|
78
|
+
getMetaframe(id: MetaframeId): MetapageIFrameRpcClient | undefined;
|
|
79
79
|
addMetaframe(metaframeId: MetaframeId, definition: MetaframeInstance): MetapageIFrameRpcClient;
|
|
80
80
|
dispose(): void;
|
|
81
81
|
log(o: any, color?: string, backgroundColor?: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Metapage.d.ts","sourceRoot":"","sources":["../../src/metapage/Metapage.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Metapage.d.ts","sourceRoot":"","sources":["../../src/metapage/Metapage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { MetaframeId } from "./core.js";
|
|
1
2
|
import { Metapage } from "./Metapage.js";
|
|
2
3
|
import { MetapageInstanceInputs } from "./v0_4/index.js";
|
|
3
4
|
import { MetapageDefinitionV2 } from "./v2/metapage.js";
|
|
@@ -15,6 +16,7 @@ export interface MetapageRendererResult {
|
|
|
15
16
|
dispose: () => void;
|
|
16
17
|
metapage: Metapage;
|
|
17
18
|
}
|
|
19
|
+
export declare function isMetaframeDivider(url: string): boolean;
|
|
18
20
|
export declare function renderMetapage(props: {
|
|
19
21
|
url?: string;
|
|
20
22
|
definition?: MetapageDefinitionV2;
|
|
@@ -22,4 +24,5 @@ export declare function renderMetapage(props: {
|
|
|
22
24
|
rootDiv: HTMLElement;
|
|
23
25
|
options?: RenderingOptions;
|
|
24
26
|
}): Promise<MetapageRendererResult>;
|
|
27
|
+
export declare const isMetaframeHidden: (definition: MetapageDefinitionV2, metaframeId: MetaframeId) => boolean;
|
|
25
28
|
//# sourceMappingURL=metapageRenderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metapageRenderer.d.ts","sourceRoot":"","sources":["../../src/metapage/metapageRenderer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"metapageRenderer.d.ts","sourceRoot":"","sources":["../../src/metapage/metapageRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAqB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGxD,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACpD,UAAU,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACtD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAYD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAKvD;AA4ED,wBAAsB,cAAc,CAAC,KAAK,EAAE;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACtD,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAsRlC;AAED,eAAO,MAAM,iBAAiB,eAChB,oBAAoB,eACnB,WAAW,KACvB,OA8CF,CAAC"}
|
package/package.json
CHANGED
package/src/metapage/Metapage.ts
CHANGED
|
@@ -300,10 +300,10 @@ export class Metapage extends MetapageShared {
|
|
|
300
300
|
public setState(newState: MetapageState) {
|
|
301
301
|
this._state = create<MetapageState>(newState, (draft) => draft);
|
|
302
302
|
this.getMetaframeIds().forEach((metaframeId) => {
|
|
303
|
-
this.getMetaframe(metaframeId)
|
|
303
|
+
this.getMetaframe(metaframeId)?.setInputs(
|
|
304
304
|
this._state.metaframes.inputs[metaframeId]
|
|
305
305
|
);
|
|
306
|
-
this.getMetaframe(metaframeId)
|
|
306
|
+
this.getMetaframe(metaframeId)?.setOutputs(
|
|
307
307
|
this._state.metaframes.outputs[metaframeId]
|
|
308
308
|
);
|
|
309
309
|
});
|
|
@@ -511,8 +511,8 @@ export class Metapage extends MetapageShared {
|
|
|
511
511
|
return this._metaframes;
|
|
512
512
|
}
|
|
513
513
|
|
|
514
|
-
public getMetaframe(id: MetaframeId): MetapageIFrameRpcClient {
|
|
515
|
-
return this?._metaframes[id];
|
|
514
|
+
public getMetaframe(id: MetaframeId): MetapageIFrameRpcClient | undefined {
|
|
515
|
+
return this?._metaframes?.[id];
|
|
516
516
|
}
|
|
517
517
|
|
|
518
518
|
// do not expose, change definition instead
|
|
@@ -994,6 +994,9 @@ export class Metapage extends MetapageShared {
|
|
|
994
994
|
* @param outputs
|
|
995
995
|
*/
|
|
996
996
|
setOutputs(outputs: MetapageInstanceInputs) {
|
|
997
|
+
if (!this._metaframes) {
|
|
998
|
+
return;
|
|
999
|
+
}
|
|
997
1000
|
for (const metaframeId in outputs) {
|
|
998
1001
|
this.setMetaframeOutputs(metaframeId, outputs[metaframeId]);
|
|
999
1002
|
}
|
|
@@ -33,7 +33,7 @@ interface LayoutItem {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
// Utility function to check if a metaframe is a divider
|
|
36
|
-
function isMetaframeDivider(url: string): boolean {
|
|
36
|
+
export function isMetaframeDivider(url: string): boolean {
|
|
37
37
|
if (!url.startsWith("data:")) {
|
|
38
38
|
return false;
|
|
39
39
|
}
|
|
@@ -236,7 +236,6 @@ export async function renderMetapage(props: {
|
|
|
236
236
|
dispose: () => {
|
|
237
237
|
disposers.forEach((disposer) => disposer());
|
|
238
238
|
metapage.dispose();
|
|
239
|
-
rootDiv.innerHTML = "";
|
|
240
239
|
},
|
|
241
240
|
};
|
|
242
241
|
}
|
|
@@ -274,9 +273,6 @@ export async function renderMetapage(props: {
|
|
|
274
273
|
flexDirection: "column" as const,
|
|
275
274
|
};
|
|
276
275
|
|
|
277
|
-
// Clear the root div
|
|
278
|
-
rootDiv.innerHTML = "";
|
|
279
|
-
|
|
280
276
|
// Create container
|
|
281
277
|
const container = document.createElement("div");
|
|
282
278
|
Object.assign(container.style, containerStyle);
|
|
@@ -397,12 +393,64 @@ export async function renderMetapage(props: {
|
|
|
397
393
|
disposers.forEach((disposer) => disposer());
|
|
398
394
|
// Dispose the metapage
|
|
399
395
|
metapage.dispose();
|
|
400
|
-
|
|
401
|
-
|
|
396
|
+
if (container.parentNode) {
|
|
397
|
+
container.parentNode.removeChild(container);
|
|
398
|
+
}
|
|
402
399
|
},
|
|
403
400
|
};
|
|
404
401
|
}
|
|
405
402
|
|
|
403
|
+
export const isMetaframeHidden = (
|
|
404
|
+
definition: MetapageDefinitionV2,
|
|
405
|
+
metaframeId: MetaframeId
|
|
406
|
+
): boolean => {
|
|
407
|
+
// Get the layout information
|
|
408
|
+
const desktopLayoutBlob = definition?.meta?.layouts?.["react-grid-layout"];
|
|
409
|
+
const layout = desktopLayoutBlob?.layout as LayoutItem[];
|
|
410
|
+
|
|
411
|
+
if (!desktopLayoutBlob || !layout) {
|
|
412
|
+
throw new Error("No valid layout found in metapage definition");
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
// Find dividers and determine which metaframes to hide
|
|
416
|
+
const metaframesToHide = new Set<string>();
|
|
417
|
+
|
|
418
|
+
// Find all dividers and their y positions
|
|
419
|
+
const dividers = layout
|
|
420
|
+
.map((item: LayoutItem, index: number) => {
|
|
421
|
+
const metaframe = definition?.metaframes?.[item.i];
|
|
422
|
+
return metaframe && isMetaframeDivider(metaframe.url)
|
|
423
|
+
? { index, y: item.y, id: item.i }
|
|
424
|
+
: null;
|
|
425
|
+
})
|
|
426
|
+
.filter(
|
|
427
|
+
(item): item is { index: number; y: number; id: string } => item !== null
|
|
428
|
+
);
|
|
429
|
+
|
|
430
|
+
// If dividers found, determine which metaframes to hide
|
|
431
|
+
if (dividers.length > 0) {
|
|
432
|
+
// Find the divider with the lowest y value
|
|
433
|
+
const lowestYDivider = dividers.reduce(
|
|
434
|
+
(
|
|
435
|
+
lowest: { index: number; y: number; id: string },
|
|
436
|
+
current: { index: number; y: number; id: string }
|
|
437
|
+
) => (current.y < lowest.y ? current : lowest)
|
|
438
|
+
);
|
|
439
|
+
|
|
440
|
+
const dividerY =
|
|
441
|
+
layout.find((item: LayoutItem) => item.i === lowestYDivider.id)?.y ?? 0;
|
|
442
|
+
|
|
443
|
+
// Add all metaframes at or below the divider's y position
|
|
444
|
+
layout.forEach((item: LayoutItem) => {
|
|
445
|
+
if (item.y >= dividerY) {
|
|
446
|
+
metaframesToHide.add(item.i);
|
|
447
|
+
}
|
|
448
|
+
});
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
return metaframesToHide.has(metaframeId);
|
|
452
|
+
};
|
|
453
|
+
|
|
406
454
|
const getMetaframeKey = (url: string | URL): string | undefined => {
|
|
407
455
|
if (!url) {
|
|
408
456
|
return undefined;
|