@absolutejs/absolute 0.19.0-beta.431 → 0.19.0-beta.433
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/angular/index.js +10 -1
- package/dist/angular/index.js.map +3 -3
- package/dist/client/index.js +10 -1
- package/dist/client/index.js.map +3 -3
- package/dist/index.js +10 -1
- package/dist/index.js.map +3 -3
- package/dist/react/index.js +10 -1
- package/dist/react/index.js.map +3 -3
- package/dist/svelte/index.js +10 -1
- package/dist/svelte/index.js.map +3 -3
- package/dist/vue/components/index.js +35 -4
- package/dist/vue/components/index.js.map +3 -3
- package/dist/vue/index.js +44 -4
- package/dist/vue/index.js.map +4 -4
- package/package.json +1 -1
package/dist/vue/index.js
CHANGED
|
@@ -1744,7 +1744,9 @@ var Image_default = "../Image-0pe96k20.vue";
|
|
|
1744
1744
|
// src/vue/components/SuspenseSlot.ts
|
|
1745
1745
|
import {
|
|
1746
1746
|
defineComponent,
|
|
1747
|
-
h
|
|
1747
|
+
h,
|
|
1748
|
+
onMounted,
|
|
1749
|
+
ref
|
|
1748
1750
|
} from "vue";
|
|
1749
1751
|
var renderVueNodesToHtml = async (nodes) => {
|
|
1750
1752
|
const { createSSRApp, h: createVNode } = await import("vue");
|
|
@@ -1774,6 +1776,9 @@ var SuspenseSlot = defineComponent({
|
|
|
1774
1776
|
timeoutMs: { default: undefined, type: Number }
|
|
1775
1777
|
},
|
|
1776
1778
|
setup(props, { slots }) {
|
|
1779
|
+
const isResolved = ref(false);
|
|
1780
|
+
const resolvedValue = ref(undefined);
|
|
1781
|
+
const hasError = ref(false);
|
|
1777
1782
|
const usesFrameworkSlots = hasFrameworkSlots(slots.default, slots.fallback, slots.error, props.promise);
|
|
1778
1783
|
if (typeof window === "undefined") {
|
|
1779
1784
|
if (!usesFrameworkSlots && props.resolve) {
|
|
@@ -1791,7 +1796,12 @@ var SuspenseSlot = defineComponent({
|
|
|
1791
1796
|
try {
|
|
1792
1797
|
const value = props.resolve !== undefined ? await props.resolve() : props.promise !== undefined ? await props.promise : undefined;
|
|
1793
1798
|
const nodes = slots.default?.({ value }) ?? [];
|
|
1794
|
-
|
|
1799
|
+
const html = await renderVueNodesToHtml(nodes);
|
|
1800
|
+
return {
|
|
1801
|
+
html,
|
|
1802
|
+
kind: "vue-suspense",
|
|
1803
|
+
value
|
|
1804
|
+
};
|
|
1795
1805
|
} catch (error) {
|
|
1796
1806
|
const errorNodes = slots.error?.({ error });
|
|
1797
1807
|
if (errorNodes !== undefined) {
|
|
@@ -1807,6 +1817,26 @@ var SuspenseSlot = defineComponent({
|
|
|
1807
1817
|
});
|
|
1808
1818
|
}
|
|
1809
1819
|
}
|
|
1820
|
+
if (typeof window !== "undefined" && usesFrameworkSlots) {
|
|
1821
|
+
const consumers = window.__ABS_SLOT_CONSUMERS__ = window.__ABS_SLOT_CONSUMERS__ ?? {};
|
|
1822
|
+
let runtimeReady = false;
|
|
1823
|
+
consumers[props.id] = (payload) => {
|
|
1824
|
+
if (!runtimeReady)
|
|
1825
|
+
return false;
|
|
1826
|
+
if (!payload || typeof payload !== "object" || payload.kind !== "vue-suspense") {
|
|
1827
|
+
return false;
|
|
1828
|
+
}
|
|
1829
|
+
const candidate = payload;
|
|
1830
|
+
hasError.value = candidate.state === "error";
|
|
1831
|
+
resolvedValue.value = candidate.value;
|
|
1832
|
+
isResolved.value = candidate.state !== "error";
|
|
1833
|
+
return true;
|
|
1834
|
+
};
|
|
1835
|
+
onMounted(() => {
|
|
1836
|
+
runtimeReady = true;
|
|
1837
|
+
window.__ABS_SLOT_FLUSH__?.();
|
|
1838
|
+
});
|
|
1839
|
+
}
|
|
1810
1840
|
return () => {
|
|
1811
1841
|
if (!usesFrameworkSlots) {
|
|
1812
1842
|
return h("div", {
|
|
@@ -1818,9 +1848,10 @@ var SuspenseSlot = defineComponent({
|
|
|
1818
1848
|
}
|
|
1819
1849
|
return h("div", {
|
|
1820
1850
|
class: props.className,
|
|
1851
|
+
"data-allow-mismatch": "",
|
|
1821
1852
|
"data-absolute-slot": "true",
|
|
1822
1853
|
id: `slot-${props.id}`
|
|
1823
|
-
}, slots.fallback?.() ?? undefined);
|
|
1854
|
+
}, hasError.value ? slots.error?.({ error: undefined }) ?? slots.fallback?.() ?? undefined : isResolved.value ? slots.default?.({ value: resolvedValue.value }) ?? undefined : slots.fallback?.() ?? undefined);
|
|
1824
1855
|
};
|
|
1825
1856
|
}
|
|
1826
1857
|
});
|
|
@@ -1873,6 +1904,11 @@ var streamSwapRuntime = () => {
|
|
|
1873
1904
|
return false;
|
|
1874
1905
|
return payload.kind === "angular-defer";
|
|
1875
1906
|
};
|
|
1907
|
+
const isVueSuspensePayload = (payload) => {
|
|
1908
|
+
if (!payload || typeof payload !== "object")
|
|
1909
|
+
return false;
|
|
1910
|
+
return payload.kind === "vue-suspense";
|
|
1911
|
+
};
|
|
1876
1912
|
const resolveHtml = (payload) => {
|
|
1877
1913
|
if (!payload || typeof payload !== "object") {
|
|
1878
1914
|
return typeof payload === "string" ? payload : "";
|
|
@@ -1910,6 +1946,10 @@ var streamSwapRuntime = () => {
|
|
|
1910
1946
|
window.dispatchEvent(new CustomEvent(SLOT_PATCH_EVENT, {
|
|
1911
1947
|
detail: { html, id, payload }
|
|
1912
1948
|
}));
|
|
1949
|
+
if (isVueSuspensePayload(payload)) {
|
|
1950
|
+
pending[id] = payload;
|
|
1951
|
+
return;
|
|
1952
|
+
}
|
|
1913
1953
|
delete pending[id];
|
|
1914
1954
|
};
|
|
1915
1955
|
const flush = () => {
|
|
@@ -2801,5 +2841,5 @@ export {
|
|
|
2801
2841
|
Image_default as Image
|
|
2802
2842
|
};
|
|
2803
2843
|
|
|
2804
|
-
//# debugId=
|
|
2844
|
+
//# debugId=39766605452885A664756E2164756E21
|
|
2805
2845
|
//# sourceMappingURL=index.js.map
|