@web-widget/vue2 1.49.1 → 1.50.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/dist/chunk-DALLV7RU.js +89 -0
- package/dist/{vue2.server.d.cts → types-ByGZXCRo.d.ts} +2 -10
- package/dist/vite.js +8 -23
- package/dist/vue2.client.d.ts +7 -67
- package/dist/vue2.client.js +11 -111
- package/dist/vue2.server.d.ts +7 -67
- package/dist/vue2.server.js +10 -110
- package/package.json +7 -10
- package/dist/vite.cjs +0 -82
- package/dist/vue2.server.cjs +0 -196
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// src/components.ts
|
|
2
|
+
import { WebWidgetRenderer } from "@web-widget/web-widget";
|
|
3
|
+
import Vue, { h, defineComponent, useAttrs, getCurrentInstance } from "vue";
|
|
4
|
+
import { IS_CLIENT } from "@web-widget/helpers/env";
|
|
5
|
+
Vue.config.ignoredElements = ["web-widget"];
|
|
6
|
+
Vue.config.warnHandler = (msg, vm, trace) => {
|
|
7
|
+
if (msg === `Error in setup: "[object Promise]"`) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
console.error("[Vue warn]: ".concat(msg).concat(trace));
|
|
11
|
+
};
|
|
12
|
+
function defineWebWidget(loader, options) {
|
|
13
|
+
var _a, _b;
|
|
14
|
+
return defineComponent({
|
|
15
|
+
name: "WebWidgetRoot",
|
|
16
|
+
inheritAttrs: false,
|
|
17
|
+
props: {
|
|
18
|
+
fallback: {
|
|
19
|
+
type: Object
|
|
20
|
+
},
|
|
21
|
+
experimental_loading: {
|
|
22
|
+
type: String,
|
|
23
|
+
default: (_a = options.loading) != null ? _a : "lazy"
|
|
24
|
+
},
|
|
25
|
+
renderStage: {
|
|
26
|
+
type: String,
|
|
27
|
+
default: options.renderStage
|
|
28
|
+
},
|
|
29
|
+
experimental_renderTarget: {
|
|
30
|
+
type: String,
|
|
31
|
+
default: (_b = options.renderTarget) != null ? _b : "light"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
async serverPrefetch() {
|
|
35
|
+
const widget = this.$widget;
|
|
36
|
+
const innerHTML = await widget.renderInnerHTMLToString();
|
|
37
|
+
this.$innerHTML = innerHTML;
|
|
38
|
+
},
|
|
39
|
+
// async mounted() {
|
|
40
|
+
// if (!(this as any).$innerHTML) {
|
|
41
|
+
// const widget = (this as any).$widget as WebWidgetRenderer;
|
|
42
|
+
// const innerHTML = await widget.renderInnerHTMLToString();
|
|
43
|
+
// (this as any).$innerHTML = innerHTML;
|
|
44
|
+
// }
|
|
45
|
+
// },
|
|
46
|
+
setup({
|
|
47
|
+
fallback,
|
|
48
|
+
experimental_loading,
|
|
49
|
+
renderStage,
|
|
50
|
+
experimental_renderTarget
|
|
51
|
+
}, { slots }) {
|
|
52
|
+
if (!loader) {
|
|
53
|
+
throw new TypeError(`Missing loader.`);
|
|
54
|
+
}
|
|
55
|
+
if (Object.keys(slots).length > 0) {
|
|
56
|
+
throw new TypeError(`Slot not supported.`);
|
|
57
|
+
}
|
|
58
|
+
const data = useAttrs();
|
|
59
|
+
const widget = new WebWidgetRenderer(loader, {
|
|
60
|
+
...options,
|
|
61
|
+
data,
|
|
62
|
+
loading: experimental_loading,
|
|
63
|
+
renderStage,
|
|
64
|
+
renderTarget: experimental_renderTarget
|
|
65
|
+
});
|
|
66
|
+
const instance = getCurrentInstance();
|
|
67
|
+
instance.proxy.$widget = widget;
|
|
68
|
+
if (IS_CLIENT) {
|
|
69
|
+
}
|
|
70
|
+
return () => {
|
|
71
|
+
const innerHTML = instance.proxy.$innerHTML;
|
|
72
|
+
return h(widget.localName, {
|
|
73
|
+
attrs: widget.attributes,
|
|
74
|
+
domProps: {
|
|
75
|
+
innerHTML
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
function toReact(component) {
|
|
83
|
+
return component;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export {
|
|
87
|
+
defineWebWidget,
|
|
88
|
+
toReact
|
|
89
|
+
};
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import * as _web_widget_schema from '@web-widget/schema';
|
|
2
1
|
import * as vue from 'vue';
|
|
3
2
|
import vue__default, { PropType, Component, ComponentPublicInstance } from 'vue';
|
|
4
|
-
import { RenderContext, ComponentProps, SerializableValue } from '@web-widget/helpers';
|
|
5
|
-
export * from '@web-widget/helpers';
|
|
6
|
-
export { useWidgetSyncState as useWidgetState } from '@web-widget/helpers/state';
|
|
7
3
|
import { WebWidgetRendererOptions, Loader } from '@web-widget/web-widget';
|
|
8
4
|
import { ReactWidgetComponent } from '@web-widget/react';
|
|
9
5
|
import { DefaultProps } from 'vue/types/options';
|
|
6
|
+
import { RenderContext, ComponentProps, SerializableValue } from '@web-widget/helpers';
|
|
10
7
|
|
|
11
8
|
interface DefineWebWidgetOptions {
|
|
12
9
|
base?: WebWidgetRendererOptions['base'];
|
|
@@ -68,9 +65,4 @@ interface CreateVueRenderOptions {
|
|
|
68
65
|
onPrefetchData?: (context: RenderContext, component: Component, props: ComponentProps) => Promise<SerializableObject>;
|
|
69
66
|
}
|
|
70
67
|
|
|
71
|
-
|
|
72
|
-
/**@deprecated Please use `createVueRender` instead.*/
|
|
73
|
-
declare const defineVueRender: ({ onBeforeCreateApp, onCreatedApp, onPrefetchData, }?: CreateVueRenderOptions) => (context: _web_widget_schema.WidgetRenderContext<unknown>, renderOptions: _web_widget_schema.WidgetRenderOptions) => Promise<_web_widget_schema.WidgetRenderResult>;
|
|
74
|
-
declare const render: (context: _web_widget_schema.WidgetRenderContext<unknown>, renderOptions: _web_widget_schema.WidgetRenderOptions) => Promise<_web_widget_schema.WidgetRenderResult>;
|
|
75
|
-
|
|
76
|
-
export { type DefineWebWidgetOptions, createVueRender, defineVueRender, defineWebWidget, render, toReact };
|
|
68
|
+
export { type CreateVueRenderOptions as C, type DefineWebWidgetOptions as D, defineWebWidget as d, toReact as t };
|
package/dist/vite.js
CHANGED
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
3
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
5
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
-
var __spreadValues = (a, b) => {
|
|
7
|
-
for (var prop in b || (b = {}))
|
|
8
|
-
if (__hasOwnProp.call(b, prop))
|
|
9
|
-
__defNormalProp(a, prop, b[prop]);
|
|
10
|
-
if (__getOwnPropSymbols)
|
|
11
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
12
|
-
if (__propIsEnum.call(b, prop))
|
|
13
|
-
__defNormalProp(a, prop, b[prop]);
|
|
14
|
-
}
|
|
15
|
-
return a;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
1
|
// src/vite.ts
|
|
19
2
|
import { webWidgetPlugin } from "@web-widget/vite-plugin";
|
|
20
3
|
var VUE_INTERNAL_REQUEST = /\.vue\?(?:direct&)?vue\b.*$/;
|
|
@@ -31,7 +14,7 @@ function vue2WebWidgetPlugin(options) {
|
|
|
31
14
|
return webWidgetPlugin({
|
|
32
15
|
manifest,
|
|
33
16
|
provide,
|
|
34
|
-
export:
|
|
17
|
+
export: {
|
|
35
18
|
include: [route, widget],
|
|
36
19
|
exclude: VUE_INTERNAL_REQUEST,
|
|
37
20
|
extractFromExportDefault: [
|
|
@@ -45,9 +28,10 @@ function vue2WebWidgetPlugin(options) {
|
|
|
45
28
|
default: "{}",
|
|
46
29
|
include: route
|
|
47
30
|
}
|
|
48
|
-
]
|
|
49
|
-
|
|
50
|
-
|
|
31
|
+
],
|
|
32
|
+
...exportWidget
|
|
33
|
+
},
|
|
34
|
+
import: {
|
|
51
35
|
include: /(?:\.|@)widget\..*$/,
|
|
52
36
|
exclude: VUE_INTERNAL_REQUEST,
|
|
53
37
|
includeImporter: [
|
|
@@ -55,8 +39,9 @@ function vue2WebWidgetPlugin(options) {
|
|
|
55
39
|
/\.vue$/,
|
|
56
40
|
// vite: build mode
|
|
57
41
|
VUE_INTERNAL_SCRIPT_REQUEST
|
|
58
|
-
]
|
|
59
|
-
|
|
42
|
+
],
|
|
43
|
+
...importWidget
|
|
44
|
+
}
|
|
60
45
|
});
|
|
61
46
|
}
|
|
62
47
|
export {
|
package/dist/vue2.client.d.ts
CHANGED
|
@@ -1,76 +1,16 @@
|
|
|
1
1
|
import * as _web_widget_schema from '@web-widget/schema';
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
import { RenderContext, ComponentProps, SerializableValue } from '@web-widget/helpers';
|
|
2
|
+
import { C as CreateVueRenderOptions } from './types-ByGZXCRo.js';
|
|
3
|
+
export { D as DefineWebWidgetOptions, d as defineWebWidget, t as toReact } from './types-ByGZXCRo.js';
|
|
5
4
|
export * from '@web-widget/helpers';
|
|
6
5
|
export { useWidgetSyncState as useWidgetState } from '@web-widget/helpers/state';
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
|
|
11
|
-
interface DefineWebWidgetOptions {
|
|
12
|
-
base?: WebWidgetRendererOptions['base'];
|
|
13
|
-
import?: WebWidgetRendererOptions['import'];
|
|
14
|
-
loading?: WebWidgetRendererOptions['loading'];
|
|
15
|
-
name?: WebWidgetRendererOptions['name'];
|
|
16
|
-
renderStage?: WebWidgetRendererOptions['renderStage'];
|
|
17
|
-
renderTarget?: WebWidgetRendererOptions['renderTarget'];
|
|
18
|
-
}
|
|
19
|
-
declare function defineWebWidget(loader: Loader, options: DefineWebWidgetOptions): vue.DefineComponent<{
|
|
20
|
-
fallback: {
|
|
21
|
-
type: PropType<Component>;
|
|
22
|
-
};
|
|
23
|
-
experimental_loading: {
|
|
24
|
-
type: PropType<WebWidgetRendererOptions["loading"]>;
|
|
25
|
-
default: "lazy" | "eager" | "idle";
|
|
26
|
-
};
|
|
27
|
-
renderStage: {
|
|
28
|
-
type: PropType<WebWidgetRendererOptions["renderStage"]>;
|
|
29
|
-
default: "server" | "client" | undefined;
|
|
30
|
-
};
|
|
31
|
-
experimental_renderTarget: {
|
|
32
|
-
type: PropType<WebWidgetRendererOptions["renderTarget"]>;
|
|
33
|
-
default: "light" | "shadow";
|
|
34
|
-
};
|
|
35
|
-
}, () => vue.VNode, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, Readonly<vue.ExtractPropTypes<{
|
|
36
|
-
fallback: {
|
|
37
|
-
type: PropType<Component>;
|
|
38
|
-
};
|
|
39
|
-
experimental_loading: {
|
|
40
|
-
type: PropType<WebWidgetRendererOptions["loading"]>;
|
|
41
|
-
default: "lazy" | "eager" | "idle";
|
|
42
|
-
};
|
|
43
|
-
renderStage: {
|
|
44
|
-
type: PropType<WebWidgetRendererOptions["renderStage"]>;
|
|
45
|
-
default: "server" | "client" | undefined;
|
|
46
|
-
};
|
|
47
|
-
experimental_renderTarget: {
|
|
48
|
-
type: PropType<WebWidgetRendererOptions["renderTarget"]>;
|
|
49
|
-
default: "light" | "shadow";
|
|
50
|
-
};
|
|
51
|
-
}>>, {
|
|
52
|
-
renderStage: "server" | "client" | undefined;
|
|
53
|
-
experimental_loading: "lazy" | "eager" | "idle" | undefined;
|
|
54
|
-
experimental_renderTarget: "light" | "shadow" | undefined;
|
|
55
|
-
}>;
|
|
56
|
-
/**
|
|
57
|
-
* Convert Vue component types to React component types.
|
|
58
|
-
*/
|
|
59
|
-
declare function toReact<T extends DefaultProps>(component: Component<never, never, never, T, never>): ReactWidgetComponent<Omit<T, keyof ComponentPublicInstance | "$route" | "$router">>;
|
|
60
|
-
|
|
61
|
-
interface SerializableObject {
|
|
62
|
-
[key: string]: SerializableValue;
|
|
63
|
-
}
|
|
64
|
-
interface CreateVueRenderOptions {
|
|
65
|
-
onBeforeCreateApp?: (context: RenderContext, component: Component, props: ComponentProps) => Promise<any>;
|
|
66
|
-
onCreatedApp?: (app: vue__default, context: RenderContext, component: Component, props: ComponentProps) => Promise<void>;
|
|
67
|
-
/**@deprecated*/
|
|
68
|
-
onPrefetchData?: (context: RenderContext, component: Component, props: ComponentProps) => Promise<SerializableObject>;
|
|
69
|
-
}
|
|
6
|
+
import 'vue';
|
|
7
|
+
import '@web-widget/web-widget';
|
|
8
|
+
import '@web-widget/react';
|
|
9
|
+
import 'vue/types/options';
|
|
70
10
|
|
|
71
11
|
declare const createVueRender: ({ onBeforeCreateApp, onCreatedApp, onPrefetchData, }?: CreateVueRenderOptions) => (context: _web_widget_schema.WidgetRenderContext<unknown>, renderOptions: _web_widget_schema.WidgetRenderOptions) => Promise<_web_widget_schema.WidgetRenderResult>;
|
|
72
12
|
/**@deprecated Please use `createVueRender` instead.*/
|
|
73
13
|
declare const defineVueRender: ({ onBeforeCreateApp, onCreatedApp, onPrefetchData, }?: CreateVueRenderOptions) => (context: _web_widget_schema.WidgetRenderContext<unknown>, renderOptions: _web_widget_schema.WidgetRenderOptions) => Promise<_web_widget_schema.WidgetRenderResult>;
|
|
74
14
|
declare const render: (context: _web_widget_schema.WidgetRenderContext<unknown>, renderOptions: _web_widget_schema.WidgetRenderOptions) => Promise<_web_widget_schema.WidgetRenderResult>;
|
|
75
15
|
|
|
76
|
-
export {
|
|
16
|
+
export { createVueRender, defineVueRender, render };
|
package/dist/vue2.client.js
CHANGED
|
@@ -1,115 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
-
var __spreadValues = (a, b) => {
|
|
9
|
-
for (var prop in b || (b = {}))
|
|
10
|
-
if (__hasOwnProp.call(b, prop))
|
|
11
|
-
__defNormalProp(a, prop, b[prop]);
|
|
12
|
-
if (__getOwnPropSymbols)
|
|
13
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
-
if (__propIsEnum.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
}
|
|
17
|
-
return a;
|
|
18
|
-
};
|
|
19
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
1
|
+
import {
|
|
2
|
+
defineWebWidget,
|
|
3
|
+
toReact
|
|
4
|
+
} from "./chunk-DALLV7RU.js";
|
|
20
5
|
|
|
21
6
|
// src/client.ts
|
|
22
7
|
import { defineRender, getComponentDescriptor } from "@web-widget/helpers";
|
|
23
8
|
import { cacheProviderIsLoading } from "@web-widget/helpers/cache";
|
|
24
|
-
import
|
|
9
|
+
import Vue from "vue";
|
|
25
10
|
export * from "@web-widget/helpers";
|
|
26
11
|
import { useWidgetSyncState } from "@web-widget/helpers/state";
|
|
27
|
-
|
|
28
|
-
// src/components.ts
|
|
29
|
-
import { WebWidgetRenderer } from "@web-widget/web-widget";
|
|
30
|
-
import Vue, { h, defineComponent, useAttrs, getCurrentInstance } from "vue";
|
|
31
|
-
import { IS_CLIENT } from "@web-widget/helpers/env";
|
|
32
|
-
Vue.config.ignoredElements = ["web-widget"];
|
|
33
|
-
Vue.config.warnHandler = (msg, vm, trace) => {
|
|
34
|
-
if (msg === `Error in setup: "[object Promise]"`) {
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
console.error("[Vue warn]: ".concat(msg).concat(trace));
|
|
38
|
-
};
|
|
39
|
-
function defineWebWidget(loader, options) {
|
|
40
|
-
var _a, _b;
|
|
41
|
-
return defineComponent({
|
|
42
|
-
name: "WebWidgetRoot",
|
|
43
|
-
inheritAttrs: false,
|
|
44
|
-
props: {
|
|
45
|
-
fallback: {
|
|
46
|
-
type: Object
|
|
47
|
-
},
|
|
48
|
-
experimental_loading: {
|
|
49
|
-
type: String,
|
|
50
|
-
default: (_a = options.loading) != null ? _a : "lazy"
|
|
51
|
-
},
|
|
52
|
-
renderStage: {
|
|
53
|
-
type: String,
|
|
54
|
-
default: options.renderStage
|
|
55
|
-
},
|
|
56
|
-
experimental_renderTarget: {
|
|
57
|
-
type: String,
|
|
58
|
-
default: (_b = options.renderTarget) != null ? _b : "light"
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
async serverPrefetch() {
|
|
62
|
-
const widget = this.$widget;
|
|
63
|
-
const innerHTML = await widget.renderInnerHTMLToString();
|
|
64
|
-
this.$innerHTML = innerHTML;
|
|
65
|
-
},
|
|
66
|
-
// async mounted() {
|
|
67
|
-
// if (!(this as any).$innerHTML) {
|
|
68
|
-
// const widget = (this as any).$widget as WebWidgetRenderer;
|
|
69
|
-
// const innerHTML = await widget.renderInnerHTMLToString();
|
|
70
|
-
// (this as any).$innerHTML = innerHTML;
|
|
71
|
-
// }
|
|
72
|
-
// },
|
|
73
|
-
setup({
|
|
74
|
-
fallback,
|
|
75
|
-
experimental_loading,
|
|
76
|
-
renderStage,
|
|
77
|
-
experimental_renderTarget
|
|
78
|
-
}, { slots }) {
|
|
79
|
-
if (!loader) {
|
|
80
|
-
throw new TypeError(`Missing loader.`);
|
|
81
|
-
}
|
|
82
|
-
if (Object.keys(slots).length > 0) {
|
|
83
|
-
throw new TypeError(`Slot not supported.`);
|
|
84
|
-
}
|
|
85
|
-
const data = useAttrs();
|
|
86
|
-
const widget = new WebWidgetRenderer(loader, __spreadProps(__spreadValues({}, options), {
|
|
87
|
-
data,
|
|
88
|
-
loading: experimental_loading,
|
|
89
|
-
renderStage,
|
|
90
|
-
renderTarget: experimental_renderTarget
|
|
91
|
-
}));
|
|
92
|
-
const instance = getCurrentInstance();
|
|
93
|
-
instance.proxy.$widget = widget;
|
|
94
|
-
if (IS_CLIENT) {
|
|
95
|
-
}
|
|
96
|
-
return () => {
|
|
97
|
-
const innerHTML = instance.proxy.$innerHTML;
|
|
98
|
-
return h(widget.localName, {
|
|
99
|
-
attrs: widget.attributes,
|
|
100
|
-
domProps: {
|
|
101
|
-
innerHTML
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
function toReact(component) {
|
|
109
|
-
return component;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
// src/client.ts
|
|
113
12
|
var createVueRender = ({
|
|
114
13
|
onBeforeCreateApp = async () => ({}),
|
|
115
14
|
onCreatedApp = async () => {
|
|
@@ -149,9 +48,9 @@ var createVueRender = ({
|
|
|
149
48
|
state == null ? void 0 : state.remove();
|
|
150
49
|
}
|
|
151
50
|
let loading;
|
|
152
|
-
app = new
|
|
153
|
-
render(
|
|
154
|
-
return
|
|
51
|
+
app = new Vue({
|
|
52
|
+
render(h) {
|
|
53
|
+
return h(component, {
|
|
155
54
|
props: mergedProps
|
|
156
55
|
});
|
|
157
56
|
},
|
|
@@ -162,8 +61,9 @@ var createVueRender = ({
|
|
|
162
61
|
} else {
|
|
163
62
|
throw err;
|
|
164
63
|
}
|
|
165
|
-
}
|
|
166
|
-
|
|
64
|
+
},
|
|
65
|
+
...await onBeforeCreateApp(context, component, mergedProps)
|
|
66
|
+
});
|
|
167
67
|
await onCreatedApp(app, context, component, mergedProps);
|
|
168
68
|
if (recovering) {
|
|
169
69
|
app.$mount(ssrRoot, recovering);
|
package/dist/vue2.server.d.ts
CHANGED
|
@@ -1,76 +1,16 @@
|
|
|
1
1
|
import * as _web_widget_schema from '@web-widget/schema';
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
import { RenderContext, ComponentProps, SerializableValue } from '@web-widget/helpers';
|
|
2
|
+
import { C as CreateVueRenderOptions } from './types-ByGZXCRo.js';
|
|
3
|
+
export { D as DefineWebWidgetOptions, d as defineWebWidget, t as toReact } from './types-ByGZXCRo.js';
|
|
5
4
|
export * from '@web-widget/helpers';
|
|
6
5
|
export { useWidgetSyncState as useWidgetState } from '@web-widget/helpers/state';
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
|
|
11
|
-
interface DefineWebWidgetOptions {
|
|
12
|
-
base?: WebWidgetRendererOptions['base'];
|
|
13
|
-
import?: WebWidgetRendererOptions['import'];
|
|
14
|
-
loading?: WebWidgetRendererOptions['loading'];
|
|
15
|
-
name?: WebWidgetRendererOptions['name'];
|
|
16
|
-
renderStage?: WebWidgetRendererOptions['renderStage'];
|
|
17
|
-
renderTarget?: WebWidgetRendererOptions['renderTarget'];
|
|
18
|
-
}
|
|
19
|
-
declare function defineWebWidget(loader: Loader, options: DefineWebWidgetOptions): vue.DefineComponent<{
|
|
20
|
-
fallback: {
|
|
21
|
-
type: PropType<Component>;
|
|
22
|
-
};
|
|
23
|
-
experimental_loading: {
|
|
24
|
-
type: PropType<WebWidgetRendererOptions["loading"]>;
|
|
25
|
-
default: "lazy" | "eager" | "idle";
|
|
26
|
-
};
|
|
27
|
-
renderStage: {
|
|
28
|
-
type: PropType<WebWidgetRendererOptions["renderStage"]>;
|
|
29
|
-
default: "server" | "client" | undefined;
|
|
30
|
-
};
|
|
31
|
-
experimental_renderTarget: {
|
|
32
|
-
type: PropType<WebWidgetRendererOptions["renderTarget"]>;
|
|
33
|
-
default: "light" | "shadow";
|
|
34
|
-
};
|
|
35
|
-
}, () => vue.VNode, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, Readonly<vue.ExtractPropTypes<{
|
|
36
|
-
fallback: {
|
|
37
|
-
type: PropType<Component>;
|
|
38
|
-
};
|
|
39
|
-
experimental_loading: {
|
|
40
|
-
type: PropType<WebWidgetRendererOptions["loading"]>;
|
|
41
|
-
default: "lazy" | "eager" | "idle";
|
|
42
|
-
};
|
|
43
|
-
renderStage: {
|
|
44
|
-
type: PropType<WebWidgetRendererOptions["renderStage"]>;
|
|
45
|
-
default: "server" | "client" | undefined;
|
|
46
|
-
};
|
|
47
|
-
experimental_renderTarget: {
|
|
48
|
-
type: PropType<WebWidgetRendererOptions["renderTarget"]>;
|
|
49
|
-
default: "light" | "shadow";
|
|
50
|
-
};
|
|
51
|
-
}>>, {
|
|
52
|
-
renderStage: "server" | "client" | undefined;
|
|
53
|
-
experimental_loading: "lazy" | "eager" | "idle" | undefined;
|
|
54
|
-
experimental_renderTarget: "light" | "shadow" | undefined;
|
|
55
|
-
}>;
|
|
56
|
-
/**
|
|
57
|
-
* Convert Vue component types to React component types.
|
|
58
|
-
*/
|
|
59
|
-
declare function toReact<T extends DefaultProps>(component: Component<never, never, never, T, never>): ReactWidgetComponent<Omit<T, keyof ComponentPublicInstance | "$route" | "$router">>;
|
|
60
|
-
|
|
61
|
-
interface SerializableObject {
|
|
62
|
-
[key: string]: SerializableValue;
|
|
63
|
-
}
|
|
64
|
-
interface CreateVueRenderOptions {
|
|
65
|
-
onBeforeCreateApp?: (context: RenderContext, component: Component, props: ComponentProps) => Promise<any>;
|
|
66
|
-
onCreatedApp?: (app: vue__default, context: RenderContext, component: Component, props: ComponentProps) => Promise<void>;
|
|
67
|
-
/**@deprecated*/
|
|
68
|
-
onPrefetchData?: (context: RenderContext, component: Component, props: ComponentProps) => Promise<SerializableObject>;
|
|
69
|
-
}
|
|
6
|
+
import 'vue';
|
|
7
|
+
import '@web-widget/web-widget';
|
|
8
|
+
import '@web-widget/react';
|
|
9
|
+
import 'vue/types/options';
|
|
70
10
|
|
|
71
11
|
declare const createVueRender: ({ onBeforeCreateApp, onCreatedApp, onPrefetchData, }?: CreateVueRenderOptions) => (context: _web_widget_schema.WidgetRenderContext<unknown>, renderOptions: _web_widget_schema.WidgetRenderOptions) => Promise<_web_widget_schema.WidgetRenderResult>;
|
|
72
12
|
/**@deprecated Please use `createVueRender` instead.*/
|
|
73
13
|
declare const defineVueRender: ({ onBeforeCreateApp, onCreatedApp, onPrefetchData, }?: CreateVueRenderOptions) => (context: _web_widget_schema.WidgetRenderContext<unknown>, renderOptions: _web_widget_schema.WidgetRenderOptions) => Promise<_web_widget_schema.WidgetRenderResult>;
|
|
74
14
|
declare const render: (context: _web_widget_schema.WidgetRenderContext<unknown>, renderOptions: _web_widget_schema.WidgetRenderOptions) => Promise<_web_widget_schema.WidgetRenderResult>;
|
|
75
15
|
|
|
76
|
-
export {
|
|
16
|
+
export { createVueRender, defineVueRender, render };
|
package/dist/vue2.server.js
CHANGED
|
@@ -1,116 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
-
var __spreadValues = (a, b) => {
|
|
9
|
-
for (var prop in b || (b = {}))
|
|
10
|
-
if (__hasOwnProp.call(b, prop))
|
|
11
|
-
__defNormalProp(a, prop, b[prop]);
|
|
12
|
-
if (__getOwnPropSymbols)
|
|
13
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
-
if (__propIsEnum.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
}
|
|
17
|
-
return a;
|
|
18
|
-
};
|
|
19
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
1
|
+
import {
|
|
2
|
+
defineWebWidget,
|
|
3
|
+
toReact
|
|
4
|
+
} from "./chunk-DALLV7RU.js";
|
|
20
5
|
|
|
21
6
|
// src/server.ts
|
|
22
7
|
import { defineRender, getComponentDescriptor } from "@web-widget/helpers";
|
|
23
8
|
import { escapeJson } from "@web-widget/helpers/purify";
|
|
24
|
-
import
|
|
9
|
+
import Vue from "vue";
|
|
25
10
|
import { createRenderer } from "vue-server-renderer";
|
|
26
11
|
export * from "@web-widget/helpers";
|
|
27
12
|
import { useWidgetSyncState } from "@web-widget/helpers/state";
|
|
28
|
-
|
|
29
|
-
// src/components.ts
|
|
30
|
-
import { WebWidgetRenderer } from "@web-widget/web-widget";
|
|
31
|
-
import Vue, { h, defineComponent, useAttrs, getCurrentInstance } from "vue";
|
|
32
|
-
import { IS_CLIENT } from "@web-widget/helpers/env";
|
|
33
|
-
Vue.config.ignoredElements = ["web-widget"];
|
|
34
|
-
Vue.config.warnHandler = (msg, vm, trace) => {
|
|
35
|
-
if (msg === `Error in setup: "[object Promise]"`) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
console.error("[Vue warn]: ".concat(msg).concat(trace));
|
|
39
|
-
};
|
|
40
|
-
function defineWebWidget(loader, options) {
|
|
41
|
-
var _a, _b;
|
|
42
|
-
return defineComponent({
|
|
43
|
-
name: "WebWidgetRoot",
|
|
44
|
-
inheritAttrs: false,
|
|
45
|
-
props: {
|
|
46
|
-
fallback: {
|
|
47
|
-
type: Object
|
|
48
|
-
},
|
|
49
|
-
experimental_loading: {
|
|
50
|
-
type: String,
|
|
51
|
-
default: (_a = options.loading) != null ? _a : "lazy"
|
|
52
|
-
},
|
|
53
|
-
renderStage: {
|
|
54
|
-
type: String,
|
|
55
|
-
default: options.renderStage
|
|
56
|
-
},
|
|
57
|
-
experimental_renderTarget: {
|
|
58
|
-
type: String,
|
|
59
|
-
default: (_b = options.renderTarget) != null ? _b : "light"
|
|
60
|
-
}
|
|
61
|
-
},
|
|
62
|
-
async serverPrefetch() {
|
|
63
|
-
const widget = this.$widget;
|
|
64
|
-
const innerHTML = await widget.renderInnerHTMLToString();
|
|
65
|
-
this.$innerHTML = innerHTML;
|
|
66
|
-
},
|
|
67
|
-
// async mounted() {
|
|
68
|
-
// if (!(this as any).$innerHTML) {
|
|
69
|
-
// const widget = (this as any).$widget as WebWidgetRenderer;
|
|
70
|
-
// const innerHTML = await widget.renderInnerHTMLToString();
|
|
71
|
-
// (this as any).$innerHTML = innerHTML;
|
|
72
|
-
// }
|
|
73
|
-
// },
|
|
74
|
-
setup({
|
|
75
|
-
fallback,
|
|
76
|
-
experimental_loading,
|
|
77
|
-
renderStage,
|
|
78
|
-
experimental_renderTarget
|
|
79
|
-
}, { slots }) {
|
|
80
|
-
if (!loader) {
|
|
81
|
-
throw new TypeError(`Missing loader.`);
|
|
82
|
-
}
|
|
83
|
-
if (Object.keys(slots).length > 0) {
|
|
84
|
-
throw new TypeError(`Slot not supported.`);
|
|
85
|
-
}
|
|
86
|
-
const data = useAttrs();
|
|
87
|
-
const widget = new WebWidgetRenderer(loader, __spreadProps(__spreadValues({}, options), {
|
|
88
|
-
data,
|
|
89
|
-
loading: experimental_loading,
|
|
90
|
-
renderStage,
|
|
91
|
-
renderTarget: experimental_renderTarget
|
|
92
|
-
}));
|
|
93
|
-
const instance = getCurrentInstance();
|
|
94
|
-
instance.proxy.$widget = widget;
|
|
95
|
-
if (IS_CLIENT) {
|
|
96
|
-
}
|
|
97
|
-
return () => {
|
|
98
|
-
const innerHTML = instance.proxy.$innerHTML;
|
|
99
|
-
return h(widget.localName, {
|
|
100
|
-
attrs: widget.attributes,
|
|
101
|
-
domProps: {
|
|
102
|
-
innerHTML
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
function toReact(component) {
|
|
110
|
-
return component;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
// src/server.ts
|
|
114
13
|
var createVueRender = ({
|
|
115
14
|
onBeforeCreateApp = async () => ({}),
|
|
116
15
|
onCreatedApp = async () => {
|
|
@@ -127,11 +26,12 @@ var createVueRender = ({
|
|
|
127
26
|
const state = onPrefetchData ? await onPrefetchData(context, component, props) : void 0;
|
|
128
27
|
const mergedProps = state ? Object.assign({}, state, props) : props;
|
|
129
28
|
const renderer = createRenderer();
|
|
130
|
-
const app = new
|
|
131
|
-
render: (
|
|
29
|
+
const app = new Vue({
|
|
30
|
+
render: (h) => h(component, {
|
|
132
31
|
props: mergedProps
|
|
133
|
-
})
|
|
134
|
-
|
|
32
|
+
}),
|
|
33
|
+
...await onBeforeCreateApp(context, component, mergedProps)
|
|
34
|
+
});
|
|
135
35
|
await onCreatedApp(app, context, component, mergedProps);
|
|
136
36
|
const ssrContext = {};
|
|
137
37
|
const result = await renderer.renderToString(app, ssrContext);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@web-widget/vue2",
|
|
3
3
|
"description": "Vue2 adapter",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.50.0",
|
|
5
5
|
"homepage": "https://github.com/web-widget/web-widget#readme",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -13,9 +13,10 @@
|
|
|
13
13
|
},
|
|
14
14
|
"license": "MIT",
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@web-widget/helpers": "1.
|
|
17
|
-
"@web-widget/vite-plugin": "1.
|
|
18
|
-
"@web-widget/web-widget": "1.
|
|
16
|
+
"@web-widget/helpers": "1.50.0",
|
|
17
|
+
"@web-widget/vite-plugin": "1.50.0",
|
|
18
|
+
"@web-widget/web-widget": "1.50.0",
|
|
19
|
+
"@web-widget/react": "1.50.0"
|
|
19
20
|
},
|
|
20
21
|
"devDependencies": {
|
|
21
22
|
"@types/node": "^22.2.0",
|
|
@@ -23,8 +24,7 @@
|
|
|
23
24
|
"typescript": "^5.5.4",
|
|
24
25
|
"vite": "^5.4.10",
|
|
25
26
|
"vue": "^2.7.16",
|
|
26
|
-
"vue-server-renderer": "^2.7.16"
|
|
27
|
-
"@web-widget/react": "1.49.1"
|
|
27
|
+
"vue-server-renderer": "^2.7.16"
|
|
28
28
|
},
|
|
29
29
|
"exports": {
|
|
30
30
|
".": {
|
|
@@ -38,13 +38,11 @@
|
|
|
38
38
|
},
|
|
39
39
|
"default": {
|
|
40
40
|
"types": "./dist/vue2.server.d.ts",
|
|
41
|
-
"require": "./dist/vue2.server.cjs",
|
|
42
41
|
"default": "./dist/vue2.server.js"
|
|
43
42
|
}
|
|
44
43
|
},
|
|
45
44
|
"./vite": {
|
|
46
45
|
"types": "./dist/vite.d.ts",
|
|
47
|
-
"require": "./dist/vite.cjs",
|
|
48
46
|
"default": "./dist/vite.js"
|
|
49
47
|
}
|
|
50
48
|
},
|
|
@@ -54,8 +52,7 @@
|
|
|
54
52
|
"peerDependencies": {
|
|
55
53
|
"vite": "^5.4.10",
|
|
56
54
|
"vue": "^2.7.16",
|
|
57
|
-
"vue-server-renderer": "^2.7.16"
|
|
58
|
-
"@web-widget/react": "1.49.1"
|
|
55
|
+
"vue-server-renderer": "^2.7.16"
|
|
59
56
|
},
|
|
60
57
|
"publishConfig": {
|
|
61
58
|
"access": "public"
|
package/dist/vite.cjs
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
8
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
9
|
-
var __spreadValues = (a, b) => {
|
|
10
|
-
for (var prop in b || (b = {}))
|
|
11
|
-
if (__hasOwnProp.call(b, prop))
|
|
12
|
-
__defNormalProp(a, prop, b[prop]);
|
|
13
|
-
if (__getOwnPropSymbols)
|
|
14
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
15
|
-
if (__propIsEnum.call(b, prop))
|
|
16
|
-
__defNormalProp(a, prop, b[prop]);
|
|
17
|
-
}
|
|
18
|
-
return a;
|
|
19
|
-
};
|
|
20
|
-
var __export = (target, all) => {
|
|
21
|
-
for (var name in all)
|
|
22
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
23
|
-
};
|
|
24
|
-
var __copyProps = (to, from, except, desc) => {
|
|
25
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
26
|
-
for (let key of __getOwnPropNames(from))
|
|
27
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
28
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
29
|
-
}
|
|
30
|
-
return to;
|
|
31
|
-
};
|
|
32
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
33
|
-
|
|
34
|
-
// src/vite.ts
|
|
35
|
-
var vite_exports = {};
|
|
36
|
-
__export(vite_exports, {
|
|
37
|
-
default: () => vue2WebWidgetPlugin
|
|
38
|
-
});
|
|
39
|
-
module.exports = __toCommonJS(vite_exports);
|
|
40
|
-
var import_vite_plugin = require("@web-widget/vite-plugin");
|
|
41
|
-
var VUE_INTERNAL_REQUEST = /\.vue\?(?:direct&)?vue\b.*$/;
|
|
42
|
-
var VUE_INTERNAL_SCRIPT_REQUEST = /\.vue\?vue&type=script\b.*$/;
|
|
43
|
-
function vue2WebWidgetPlugin(options) {
|
|
44
|
-
const {
|
|
45
|
-
manifest,
|
|
46
|
-
provide = "@web-widget/vue2",
|
|
47
|
-
export: exportWidget = {},
|
|
48
|
-
import: importWidget = {}
|
|
49
|
-
} = options != null ? options : {};
|
|
50
|
-
const route = /(?:\.|@)route\.vue(?:\?.*)?$/;
|
|
51
|
-
const widget = /(?:\.|@)widget\.vue(?:\?.*)?$/;
|
|
52
|
-
return (0, import_vite_plugin.webWidgetPlugin)({
|
|
53
|
-
manifest,
|
|
54
|
-
provide,
|
|
55
|
-
export: __spreadValues({
|
|
56
|
-
include: [route, widget],
|
|
57
|
-
exclude: VUE_INTERNAL_REQUEST,
|
|
58
|
-
extractFromExportDefault: [
|
|
59
|
-
{
|
|
60
|
-
name: "handler",
|
|
61
|
-
default: "{GET({render}){return render()}}",
|
|
62
|
-
include: route
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
name: "meta",
|
|
66
|
-
default: "{}",
|
|
67
|
-
include: route
|
|
68
|
-
}
|
|
69
|
-
]
|
|
70
|
-
}, exportWidget),
|
|
71
|
-
import: __spreadValues({
|
|
72
|
-
include: /(?:\.|@)widget\..*$/,
|
|
73
|
-
exclude: VUE_INTERNAL_REQUEST,
|
|
74
|
-
includeImporter: [
|
|
75
|
-
// vite: dev mode
|
|
76
|
-
/\.vue$/,
|
|
77
|
-
// vite: build mode
|
|
78
|
-
VUE_INTERNAL_SCRIPT_REQUEST
|
|
79
|
-
]
|
|
80
|
-
}, importWidget)
|
|
81
|
-
});
|
|
82
|
-
}
|
package/dist/vue2.server.cjs
DELETED
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __defProps = Object.defineProperties;
|
|
5
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
7
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
8
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
9
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
10
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
11
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
12
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
13
|
-
var __spreadValues = (a, b) => {
|
|
14
|
-
for (var prop in b || (b = {}))
|
|
15
|
-
if (__hasOwnProp.call(b, prop))
|
|
16
|
-
__defNormalProp(a, prop, b[prop]);
|
|
17
|
-
if (__getOwnPropSymbols)
|
|
18
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
19
|
-
if (__propIsEnum.call(b, prop))
|
|
20
|
-
__defNormalProp(a, prop, b[prop]);
|
|
21
|
-
}
|
|
22
|
-
return a;
|
|
23
|
-
};
|
|
24
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
25
|
-
var __export = (target, all) => {
|
|
26
|
-
for (var name in all)
|
|
27
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
28
|
-
};
|
|
29
|
-
var __copyProps = (to, from, except, desc) => {
|
|
30
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
31
|
-
for (let key of __getOwnPropNames(from))
|
|
32
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
33
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
34
|
-
}
|
|
35
|
-
return to;
|
|
36
|
-
};
|
|
37
|
-
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
38
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
39
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
40
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
41
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
42
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
43
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
44
|
-
mod
|
|
45
|
-
));
|
|
46
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
47
|
-
|
|
48
|
-
// src/server.ts
|
|
49
|
-
var server_exports = {};
|
|
50
|
-
__export(server_exports, {
|
|
51
|
-
createVueRender: () => createVueRender,
|
|
52
|
-
defineVueRender: () => defineVueRender,
|
|
53
|
-
defineWebWidget: () => defineWebWidget,
|
|
54
|
-
render: () => render,
|
|
55
|
-
toReact: () => toReact,
|
|
56
|
-
useWidgetState: () => import_state.useWidgetSyncState
|
|
57
|
-
});
|
|
58
|
-
module.exports = __toCommonJS(server_exports);
|
|
59
|
-
var import_helpers = require("@web-widget/helpers");
|
|
60
|
-
var import_purify = require("@web-widget/helpers/purify");
|
|
61
|
-
var import_vue2 = __toESM(require("vue"), 1);
|
|
62
|
-
var import_vue_server_renderer = require("vue-server-renderer");
|
|
63
|
-
__reExport(server_exports, require("@web-widget/helpers"), module.exports);
|
|
64
|
-
var import_state = require("@web-widget/helpers/state");
|
|
65
|
-
|
|
66
|
-
// src/components.ts
|
|
67
|
-
var import_web_widget = require("@web-widget/web-widget");
|
|
68
|
-
var import_vue = __toESM(require("vue"), 1);
|
|
69
|
-
var import_env = require("@web-widget/helpers/env");
|
|
70
|
-
import_vue.default.config.ignoredElements = ["web-widget"];
|
|
71
|
-
import_vue.default.config.warnHandler = (msg, vm, trace) => {
|
|
72
|
-
if (msg === `Error in setup: "[object Promise]"`) {
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
console.error("[Vue warn]: ".concat(msg).concat(trace));
|
|
76
|
-
};
|
|
77
|
-
function defineWebWidget(loader, options) {
|
|
78
|
-
var _a, _b;
|
|
79
|
-
return (0, import_vue.defineComponent)({
|
|
80
|
-
name: "WebWidgetRoot",
|
|
81
|
-
inheritAttrs: false,
|
|
82
|
-
props: {
|
|
83
|
-
fallback: {
|
|
84
|
-
type: Object
|
|
85
|
-
},
|
|
86
|
-
experimental_loading: {
|
|
87
|
-
type: String,
|
|
88
|
-
default: (_a = options.loading) != null ? _a : "lazy"
|
|
89
|
-
},
|
|
90
|
-
renderStage: {
|
|
91
|
-
type: String,
|
|
92
|
-
default: options.renderStage
|
|
93
|
-
},
|
|
94
|
-
experimental_renderTarget: {
|
|
95
|
-
type: String,
|
|
96
|
-
default: (_b = options.renderTarget) != null ? _b : "light"
|
|
97
|
-
}
|
|
98
|
-
},
|
|
99
|
-
async serverPrefetch() {
|
|
100
|
-
const widget = this.$widget;
|
|
101
|
-
const innerHTML = await widget.renderInnerHTMLToString();
|
|
102
|
-
this.$innerHTML = innerHTML;
|
|
103
|
-
},
|
|
104
|
-
// async mounted() {
|
|
105
|
-
// if (!(this as any).$innerHTML) {
|
|
106
|
-
// const widget = (this as any).$widget as WebWidgetRenderer;
|
|
107
|
-
// const innerHTML = await widget.renderInnerHTMLToString();
|
|
108
|
-
// (this as any).$innerHTML = innerHTML;
|
|
109
|
-
// }
|
|
110
|
-
// },
|
|
111
|
-
setup({
|
|
112
|
-
fallback,
|
|
113
|
-
experimental_loading,
|
|
114
|
-
renderStage,
|
|
115
|
-
experimental_renderTarget
|
|
116
|
-
}, { slots }) {
|
|
117
|
-
if (!loader) {
|
|
118
|
-
throw new TypeError(`Missing loader.`);
|
|
119
|
-
}
|
|
120
|
-
if (Object.keys(slots).length > 0) {
|
|
121
|
-
throw new TypeError(`Slot not supported.`);
|
|
122
|
-
}
|
|
123
|
-
const data = (0, import_vue.useAttrs)();
|
|
124
|
-
const widget = new import_web_widget.WebWidgetRenderer(loader, __spreadProps(__spreadValues({}, options), {
|
|
125
|
-
data,
|
|
126
|
-
loading: experimental_loading,
|
|
127
|
-
renderStage,
|
|
128
|
-
renderTarget: experimental_renderTarget
|
|
129
|
-
}));
|
|
130
|
-
const instance = (0, import_vue.getCurrentInstance)();
|
|
131
|
-
instance.proxy.$widget = widget;
|
|
132
|
-
if (import_env.IS_CLIENT) {
|
|
133
|
-
}
|
|
134
|
-
return () => {
|
|
135
|
-
const innerHTML = instance.proxy.$innerHTML;
|
|
136
|
-
return (0, import_vue.h)(widget.localName, {
|
|
137
|
-
attrs: widget.attributes,
|
|
138
|
-
domProps: {
|
|
139
|
-
innerHTML
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
function toReact(component) {
|
|
147
|
-
return component;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
// src/server.ts
|
|
151
|
-
var createVueRender = ({
|
|
152
|
-
onBeforeCreateApp = async () => ({}),
|
|
153
|
-
onCreatedApp = async () => {
|
|
154
|
-
},
|
|
155
|
-
onPrefetchData
|
|
156
|
-
} = {}) => {
|
|
157
|
-
return (0, import_helpers.defineRender)(async (context) => {
|
|
158
|
-
const componentDescriptor = (0, import_helpers.getComponentDescriptor)(context);
|
|
159
|
-
const component = componentDescriptor.component;
|
|
160
|
-
const props = componentDescriptor.props;
|
|
161
|
-
if (component.__name) {
|
|
162
|
-
component.__name = component.__name.replace("@", "-");
|
|
163
|
-
}
|
|
164
|
-
const state = onPrefetchData ? await onPrefetchData(context, component, props) : void 0;
|
|
165
|
-
const mergedProps = state ? Object.assign({}, state, props) : props;
|
|
166
|
-
const renderer = (0, import_vue_server_renderer.createRenderer)();
|
|
167
|
-
const app = new import_vue2.default(__spreadValues({
|
|
168
|
-
render: (h2) => h2(component, {
|
|
169
|
-
props: mergedProps
|
|
170
|
-
})
|
|
171
|
-
}, await onBeforeCreateApp(context, component, mergedProps)));
|
|
172
|
-
await onCreatedApp(app, context, component, mergedProps);
|
|
173
|
-
const ssrContext = {};
|
|
174
|
-
const result = await renderer.renderToString(app, ssrContext);
|
|
175
|
-
app.$destroy();
|
|
176
|
-
if (state) {
|
|
177
|
-
const json = (0, import_purify.escapeJson)(JSON.stringify(state));
|
|
178
|
-
const script = `<script as="state" type="application/json">${json}</script>`;
|
|
179
|
-
return result + script;
|
|
180
|
-
} else {
|
|
181
|
-
return result;
|
|
182
|
-
}
|
|
183
|
-
});
|
|
184
|
-
};
|
|
185
|
-
var defineVueRender = createVueRender;
|
|
186
|
-
var render = createVueRender();
|
|
187
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
188
|
-
0 && (module.exports = {
|
|
189
|
-
createVueRender,
|
|
190
|
-
defineVueRender,
|
|
191
|
-
defineWebWidget,
|
|
192
|
-
render,
|
|
193
|
-
toReact,
|
|
194
|
-
useWidgetState,
|
|
195
|
-
...require("@web-widget/helpers")
|
|
196
|
-
});
|