@car-cutter/vue-webplayer 0.8.0 → 0.10.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.
@@ -0,0 +1 @@
1
+ "use strict";const O="cc-webplayer",o="cc-webplayer-custom-media",T="cc-webplayer-icon",N="composition-loading",t="composition-loaded",c="composition-load-error",n="item-change",e="extend-mode-on",s="extend-mode-off",A="hotspots-on",L="hotspots-off",C="gallery-open",I="gallery-close",V="cc-webplayer:";function D(E,_){return`https://cdn.car-cutter.com/gallery/${E}/${_}/composition_v3.json`}exports.DEFAULT_EVENT_PREFIX=V;exports.EVENT_COMPOSITION_LOADED=t;exports.EVENT_COMPOSITION_LOADING=N;exports.EVENT_COMPOSITION_LOAD_ERROR=c;exports.EVENT_EXTEND_MODE_OFF=s;exports.EVENT_EXTEND_MODE_ON=e;exports.EVENT_GALLERY_CLOSE=I;exports.EVENT_GALLERY_OPEN=C;exports.EVENT_HOTSPOTS_OFF=L;exports.EVENT_HOTSPOTS_ON=A;exports.EVENT_ITEM_CHANGE=n;exports.WEB_PLAYER_CUSTOM_MEDIA_WC_TAG=o;exports.WEB_PLAYER_ICON_WC_TAG=T;exports.WEB_PLAYER_WC_TAG=O;exports.generateCompositionUrl=D;
@@ -0,0 +1,21 @@
1
+ const s = "cc-webplayer", _ = "cc-webplayer-custom-media", c = "cc-webplayer-icon", t = "composition-loading", n = "composition-loaded", e = "composition-load-error", a = "item-change", O = "extend-mode-on", T = "extend-mode-off", N = "hotspots-on", r = "hotspots-off", i = "gallery-open", l = "gallery-close", p = "cc-webplayer:";
2
+ function A(o, E) {
3
+ return `https://cdn.car-cutter.com/gallery/${o}/${E}/composition_v3.json`;
4
+ }
5
+ export {
6
+ p as D,
7
+ t as E,
8
+ s as W,
9
+ n as a,
10
+ e as b,
11
+ a as c,
12
+ O as d,
13
+ T as e,
14
+ N as f,
15
+ r as g,
16
+ i as h,
17
+ l as i,
18
+ _ as j,
19
+ c as k,
20
+ A as l
21
+ };
package/dist/vue2.cjs ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),e=require("./utils-CbTbWQZC.cjs"),_=require("@car-cutter/wc-webplayer");_.ensureCustomElementsDefinition();const O=t.defineComponent({props:{compositionUrl:{type:String,required:!0},hideCategories:Boolean,infiniteCarrousel:Boolean,permanentGallery:Boolean,mediaLoadStrategy:String,minMediaWidth:Number,maxMediaWidth:Number,preloadRange:Number,preventFullScreen:Boolean,eventPrefix:String,reverse360:Boolean},data(){return{eventCbMap:new Map}},computed:{attributes(){return _.webPlayerPropsToAttributes(this.$props)}},methods:{generateEventName(r){return`${this.eventPrefix||e.DEFAULT_EVENT_PREFIX}${r}`},setupEventListeners(){const r={[e.EVENT_COMPOSITION_LOADING]:o=>this.$emit("compositionLoading",o),[e.EVENT_COMPOSITION_LOADED]:o=>this.$emit("compositionLoaded",o),[e.EVENT_COMPOSITION_LOAD_ERROR]:o=>this.$emit("compositionLoadError",o),[e.EVENT_ITEM_CHANGE]:o=>this.$emit("itemChange",o),[e.EVENT_EXTEND_MODE_ON]:()=>this.$emit("extendModeOn"),[e.EVENT_EXTEND_MODE_OFF]:()=>this.$emit("extendModeOff"),[e.EVENT_HOTSPOTS_ON]:()=>this.$emit("hotspotsOn"),[e.EVENT_HOTSPOTS_OFF]:()=>this.$emit("hotspotsOff"),[e.EVENT_GALLERY_OPEN]:()=>this.$emit("galleryOpen"),[e.EVENT_GALLERY_CLOSE]:()=>this.$emit("galleryClose")};Object.entries(r).forEach(([o,E])=>{if(!E)return;const n=this.generateEventName(o),i=s=>E(s.detail);this.eventCbMap.set(n,i),document.addEventListener(n,i)})}},mounted(){this.setupEventListeners()},beforeDestroy(){this.eventCbMap.forEach((r,o)=>{document.removeEventListener(o,r)})}}),a=(r,o)=>{const E=r.__vccOpts||r;for(const[n,i]of o)E[n]=i;return E};function T(r,o,E,n,i,s){return t.openBlock(),t.createElementBlock("cc-webplayer",t.normalizeProps(t.guardReactiveProps(r.attributes)),[t.renderSlot(r.$slots,"default")],16)}const N=a(O,[["render",T]]),p=t.defineComponent({props:{index:{type:Number,required:!0},thumbnailSrc:String},computed:{attributes(){return _.webPlayerCustomMediaPropsToAttributes(this.$props)}}});function c(r,o,E,n,i,s){return t.openBlock(),t.createElementBlock("cc-webplayer-custom-media",t.normalizeProps(t.guardReactiveProps(r.attributes)),[t.renderSlot(r.$slots,"default")],16)}const u=a(p,[["render",c]]),l=t.defineComponent({props:{name:{type:String,required:!0}},computed:{attributes(){return _.webPlayerIconPropsToAttributes(this.$props)}}});function d(r,o,E,n,i,s){return t.openBlock(),t.createElementBlock("cc-webplayer-icon",t.normalizeProps(t.guardReactiveProps(r.attributes)),[t.renderSlot(r.$slots,"default")],16)}const m=a(l,[["render",d]]);exports.DEFAULT_EVENT_PREFIX=e.DEFAULT_EVENT_PREFIX;exports.EVENT_COMPOSITION_LOADED=e.EVENT_COMPOSITION_LOADED;exports.EVENT_COMPOSITION_LOADING=e.EVENT_COMPOSITION_LOADING;exports.EVENT_COMPOSITION_LOAD_ERROR=e.EVENT_COMPOSITION_LOAD_ERROR;exports.EVENT_EXTEND_MODE_OFF=e.EVENT_EXTEND_MODE_OFF;exports.EVENT_EXTEND_MODE_ON=e.EVENT_EXTEND_MODE_ON;exports.EVENT_GALLERY_CLOSE=e.EVENT_GALLERY_CLOSE;exports.EVENT_GALLERY_OPEN=e.EVENT_GALLERY_OPEN;exports.EVENT_HOTSPOTS_OFF=e.EVENT_HOTSPOTS_OFF;exports.EVENT_HOTSPOTS_ON=e.EVENT_HOTSPOTS_ON;exports.EVENT_ITEM_CHANGE=e.EVENT_ITEM_CHANGE;exports.WEB_PLAYER_CUSTOM_MEDIA_WC_TAG=e.WEB_PLAYER_CUSTOM_MEDIA_WC_TAG;exports.WEB_PLAYER_ICON_WC_TAG=e.WEB_PLAYER_ICON_WC_TAG;exports.WEB_PLAYER_WC_TAG=e.WEB_PLAYER_WC_TAG;exports.generateCompositionUrl=e.generateCompositionUrl;exports.WebPlayer=N;exports.WebPlayerCustomMedia=u;exports.WebPlayerIcon=m;
package/dist/vue2.d.ts ADDED
@@ -0,0 +1,239 @@
1
+ import { ComponentOptionsMixin } from 'vue';
2
+ import { ComponentProvideOptions } from 'vue';
3
+ import { DefineComponent } from 'vue';
4
+ import { ExtractPropTypes } from 'vue';
5
+ import { PublicProps } from 'vue';
6
+
7
+ declare type AspectRatio = `${number}:${number}`;
8
+
9
+ declare type CamelToDashed<S extends string> = S extends `${infer T}${infer U}`
10
+ ? `${T extends Lowercase<T> ? "" : "-"}${Lowercase<T>}${CamelToDashed<U>}`
11
+ : S;
12
+
13
+ declare type Category = {
14
+ id: string;
15
+ title: string;
16
+ items: Item[];
17
+ };
18
+
19
+ export declare type Composition = {
20
+ aspectRatio: AspectRatio;
21
+ imageHdWidth: MediaWidth;
22
+ imageSubWidths: MediaWidth[];
23
+ categories: Category[];
24
+ };
25
+
26
+ export declare const DEFAULT_EVENT_PREFIX = "cc-webplayer:" satisfies string;
27
+
28
+ export declare const EVENT_COMPOSITION_LOAD_ERROR = "composition-load-error";
29
+
30
+ export declare const EVENT_COMPOSITION_LOADED = "composition-loaded";
31
+
32
+ export declare const EVENT_COMPOSITION_LOADING = "composition-loading";
33
+
34
+ export declare const EVENT_EXTEND_MODE_OFF = "extend-mode-off";
35
+
36
+ export declare const EVENT_EXTEND_MODE_ON = "extend-mode-on";
37
+
38
+ export declare const EVENT_GALLERY_CLOSE = "gallery-close";
39
+
40
+ export declare const EVENT_GALLERY_OPEN = "gallery-open";
41
+
42
+ export declare const EVENT_HOTSPOTS_OFF = "hotspots-off";
43
+
44
+ export declare const EVENT_HOTSPOTS_ON = "hotspots-on";
45
+
46
+ export declare const EVENT_ITEM_CHANGE = "item-change";
47
+
48
+ /**
49
+ * Generates a URL for fetching the composition JSON for a given customer and vehicle.
50
+ *
51
+ * @param {string} hashedCustomerId - The ID of the customer (hashed with SHA-256).
52
+ * @param {string} vin - The Vehicle Identification Number.
53
+ * @returns {string} The URL to fetch the composition JSON.
54
+ */
55
+ export declare function generateCompositionUrl(
56
+ hashedCustomerId: string,
57
+ vin: string
58
+ ): string {
59
+ return `https://cdn.car-cutter.com/gallery/${hashedCustomerId}/${vin}/composition_v3.json`;
60
+ }
61
+
62
+ declare type Hotspot = {
63
+ title: string;
64
+ icon?: string;
65
+ description?: string;
66
+ position: {
67
+ x: number;
68
+ y: number;
69
+ };
70
+ detail?: {
71
+ type: "image" | "link" | "pdf";
72
+ src: string;
73
+ };
74
+ };
75
+
76
+ declare type ImageItem = { type: "image" } & ImageWithHotspots;
77
+
78
+ declare type ImageWithHotspots = {
79
+ src: string;
80
+ hotspots?: Hotspot[];
81
+ };
82
+
83
+ export declare type Item = ImageItem | VideoItem | ThreeSixtyItem;
84
+
85
+ export declare type MediaLoadStrategy = "quality" | "balanced" | "speed";
86
+
87
+ declare type MediaWidth = number;
88
+
89
+ declare type PropsToAttributes<T> = {
90
+ [K in keyof T as CamelToDashed<string & K>]: ToStringOrOptional<T[K]>;
91
+ };
92
+
93
+ declare type ThreeSixtyItem = {
94
+ type: "360";
95
+ images: ImageWithHotspots[];
96
+ };
97
+
98
+ declare type ToStringOrOptional<T> = T extends undefined
99
+ ? string | undefined
100
+ : string;
101
+
102
+ declare type VideoItem = {
103
+ type: "video";
104
+ src: string;
105
+ poster?: string;
106
+ };
107
+
108
+ export declare const WEB_PLAYER_CUSTOM_MEDIA_WC_TAG = "cc-webplayer-custom-media";
109
+
110
+ export declare const WEB_PLAYER_ICON_WC_TAG = "cc-webplayer-icon";
111
+
112
+ export declare const WEB_PLAYER_WC_TAG = "cc-webplayer";
113
+
114
+ export declare const WebPlayer: DefineComponent<ExtractPropTypes< {
115
+ compositionUrl: {
116
+ type: StringConstructor;
117
+ required: true;
118
+ };
119
+ hideCategories: BooleanConstructor;
120
+ infiniteCarrousel: BooleanConstructor;
121
+ permanentGallery: BooleanConstructor;
122
+ mediaLoadStrategy: StringConstructor;
123
+ minMediaWidth: NumberConstructor;
124
+ maxMediaWidth: NumberConstructor;
125
+ preloadRange: NumberConstructor;
126
+ preventFullScreen: BooleanConstructor;
127
+ eventPrefix: StringConstructor;
128
+ reverse360: BooleanConstructor;
129
+ }>, {}, {
130
+ eventCbMap: Map<string, EventListener>;
131
+ }, {
132
+ attributes(): PropsToAttributes<WebPlayerProps>;
133
+ }, {
134
+ generateEventName(event: string): string;
135
+ setupEventListeners(): void;
136
+ }, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes< {
137
+ compositionUrl: {
138
+ type: StringConstructor;
139
+ required: true;
140
+ };
141
+ hideCategories: BooleanConstructor;
142
+ infiniteCarrousel: BooleanConstructor;
143
+ permanentGallery: BooleanConstructor;
144
+ mediaLoadStrategy: StringConstructor;
145
+ minMediaWidth: NumberConstructor;
146
+ maxMediaWidth: NumberConstructor;
147
+ preloadRange: NumberConstructor;
148
+ preventFullScreen: BooleanConstructor;
149
+ eventPrefix: StringConstructor;
150
+ reverse360: BooleanConstructor;
151
+ }>> & Readonly<{}>, {
152
+ hideCategories: boolean;
153
+ infiniteCarrousel: boolean;
154
+ permanentGallery: boolean;
155
+ preventFullScreen: boolean;
156
+ reverse360: boolean;
157
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
158
+
159
+ export declare const WebPlayerCustomMedia: DefineComponent<ExtractPropTypes< {
160
+ index: {
161
+ type: NumberConstructor;
162
+ required: true;
163
+ };
164
+ thumbnailSrc: StringConstructor;
165
+ }>, {}, {}, {
166
+ attributes(): PropsToAttributes<WebPlayerCustomMediaProps>;
167
+ }, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes< {
168
+ index: {
169
+ type: NumberConstructor;
170
+ required: true;
171
+ };
172
+ thumbnailSrc: StringConstructor;
173
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
174
+
175
+ export declare type WebPlayerCustomMediaProps = {
176
+ index: number;
177
+ thumbnailSrc?: string;
178
+ };
179
+
180
+ export declare const WebPlayerIcon: DefineComponent<ExtractPropTypes< {
181
+ name: {
182
+ type: StringConstructor;
183
+ required: true;
184
+ };
185
+ }>, {}, {}, {
186
+ attributes(): PropsToAttributes<WebPlayerIconProps>;
187
+ }, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes< {
188
+ name: {
189
+ type: StringConstructor;
190
+ required: true;
191
+ };
192
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
193
+
194
+ declare type WebPlayerIconName =
195
+ | "UI_ARROW_RIGHT" // Right arrow navigation (is mirrored on X axis for left arrow)
196
+ | "UI_BURGER" // Toggle Burger menu
197
+ | "UI_CLOSE" // Exit zoom, details or full screen
198
+ | "UI_EXTEND" // Extend the view (and go full screen if possible)
199
+ | "UI_GALLERY" // Toggle gallery view
200
+ | "UI_HOTSPOTS" // Toggle Hotspots
201
+ | "UI_IMAGE" // Hotspot with detail image
202
+ | "UI_MINUS" // Reduce zoom
203
+ | "UI_PAUSE" // Pause video
204
+ | "UI_PLAY" // Play video
205
+ | "UI_PLUS" // Increase zoom
206
+ | "UI_REDUCE" // Reducing an extended view
207
+ | "UI_360" // 360-degree view
208
+ | "UI_VOLUME" // Video volume
209
+ | "UI_VOLUME_OFF" // Muted video
210
+ | "CONTROLS_PREV" // Go to previous media
211
+ | "CONTROLS_NEXT" // Go to next media
212
+ // eslint-disable-next-line @typescript-eslint/ban-types
213
+ | (string & {});
214
+
215
+ export declare type WebPlayerIconProps = {
216
+ name: WebPlayerIconName;
217
+ };
218
+
219
+ export declare type WebPlayerProps = {
220
+ compositionUrl: string;
221
+
222
+ // Layout
223
+ hideCategories?: boolean;
224
+ infiniteCarrousel?: boolean;
225
+ permanentGallery?: boolean;
226
+
227
+ // Medias loading
228
+ mediaLoadStrategy?: MediaLoadStrategy;
229
+ minMediaWidth?: MediaWidth;
230
+ maxMediaWidth?: MediaWidth;
231
+ preloadRange?: number;
232
+
233
+ // Miscelaneous
234
+ preventFullScreen?: boolean;
235
+ eventPrefix?: string;
236
+ reverse360?: boolean;
237
+ };
238
+
239
+ export { }
package/dist/vue2.js ADDED
@@ -0,0 +1,124 @@
1
+ import { defineComponent as i, openBlock as a, createElementBlock as p, normalizeProps as E, guardReactiveProps as c, renderSlot as m } from "vue";
2
+ import { D as _, E as d, a as l, b as f, c as O, d as $, e as h, f as b, g as N, h as T, i as P } from "./utils-_R5huBBV.js";
3
+ import { j as Y, k, W as U, l as q } from "./utils-_R5huBBV.js";
4
+ import { ensureCustomElementsDefinition as v, webPlayerPropsToAttributes as C, webPlayerCustomMediaPropsToAttributes as L, webPlayerIconPropsToAttributes as M } from "@car-cutter/wc-webplayer";
5
+ v();
6
+ const g = i({
7
+ props: {
8
+ compositionUrl: { type: String, required: !0 },
9
+ hideCategories: Boolean,
10
+ infiniteCarrousel: Boolean,
11
+ permanentGallery: Boolean,
12
+ mediaLoadStrategy: String,
13
+ minMediaWidth: Number,
14
+ maxMediaWidth: Number,
15
+ preloadRange: Number,
16
+ preventFullScreen: Boolean,
17
+ eventPrefix: String,
18
+ reverse360: Boolean
19
+ },
20
+ data() {
21
+ return {
22
+ eventCbMap: /* @__PURE__ */ new Map()
23
+ };
24
+ },
25
+ computed: {
26
+ attributes() {
27
+ return C(this.$props);
28
+ }
29
+ },
30
+ methods: {
31
+ generateEventName(e) {
32
+ return `${this.eventPrefix || _}${e}`;
33
+ },
34
+ setupEventListeners() {
35
+ const e = {
36
+ [d]: (t) => this.$emit("compositionLoading", t),
37
+ [l]: (t) => this.$emit("compositionLoaded", t),
38
+ [f]: (t) => this.$emit("compositionLoadError", t),
39
+ [O]: (t) => this.$emit("itemChange", t),
40
+ [$]: () => this.$emit("extendModeOn"),
41
+ [h]: () => this.$emit("extendModeOff"),
42
+ [b]: () => this.$emit("hotspotsOn"),
43
+ [N]: () => this.$emit("hotspotsOff"),
44
+ [T]: () => this.$emit("galleryOpen"),
45
+ [P]: () => this.$emit("galleryClose")
46
+ };
47
+ Object.entries(e).forEach(([t, r]) => {
48
+ if (!r) return;
49
+ const o = this.generateEventName(t), s = (n) => r(n.detail);
50
+ this.eventCbMap.set(o, s), document.addEventListener(o, s);
51
+ });
52
+ }
53
+ },
54
+ mounted() {
55
+ this.setupEventListeners();
56
+ },
57
+ beforeDestroy() {
58
+ this.eventCbMap.forEach((e, t) => {
59
+ document.removeEventListener(t, e);
60
+ });
61
+ }
62
+ }), u = (e, t) => {
63
+ const r = e.__vccOpts || e;
64
+ for (const [o, s] of t)
65
+ r[o] = s;
66
+ return r;
67
+ };
68
+ function y(e, t, r, o, s, n) {
69
+ return a(), p("cc-webplayer", E(c(e.attributes)), [
70
+ m(e.$slots, "default")
71
+ ], 16);
72
+ }
73
+ const B = /* @__PURE__ */ u(g, [["render", y]]), S = i({
74
+ props: {
75
+ index: { type: Number, required: !0 },
76
+ thumbnailSrc: String
77
+ },
78
+ computed: {
79
+ attributes() {
80
+ return L(this.$props);
81
+ }
82
+ }
83
+ });
84
+ function A(e, t, r, o, s, n) {
85
+ return a(), p("cc-webplayer-custom-media", E(c(e.attributes)), [
86
+ m(e.$slots, "default")
87
+ ], 16);
88
+ }
89
+ const x = /* @__PURE__ */ u(S, [["render", A]]), D = i({
90
+ props: {
91
+ name: { type: String, required: !0 }
92
+ },
93
+ computed: {
94
+ attributes() {
95
+ return M(this.$props);
96
+ }
97
+ }
98
+ });
99
+ function I(e, t, r, o, s, n) {
100
+ return a(), p("cc-webplayer-icon", E(c(e.attributes)), [
101
+ m(e.$slots, "default")
102
+ ], 16);
103
+ }
104
+ const G = /* @__PURE__ */ u(D, [["render", I]]);
105
+ export {
106
+ _ as DEFAULT_EVENT_PREFIX,
107
+ l as EVENT_COMPOSITION_LOADED,
108
+ d as EVENT_COMPOSITION_LOADING,
109
+ f as EVENT_COMPOSITION_LOAD_ERROR,
110
+ h as EVENT_EXTEND_MODE_OFF,
111
+ $ as EVENT_EXTEND_MODE_ON,
112
+ P as EVENT_GALLERY_CLOSE,
113
+ T as EVENT_GALLERY_OPEN,
114
+ N as EVENT_HOTSPOTS_OFF,
115
+ b as EVENT_HOTSPOTS_ON,
116
+ O as EVENT_ITEM_CHANGE,
117
+ Y as WEB_PLAYER_CUSTOM_MEDIA_WC_TAG,
118
+ k as WEB_PLAYER_ICON_WC_TAG,
119
+ U as WEB_PLAYER_WC_TAG,
120
+ B as WebPlayer,
121
+ x as WebPlayerCustomMedia,
122
+ G as WebPlayerIcon,
123
+ q as generateCompositionUrl
124
+ };
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@car-cutter/vue-webplayer",
3
- "version": "0.8.0",
4
- "license": "UNLICENSED",
3
+ "version": "0.10.0",
4
+ "license": "Apache-2.0",
5
5
  "author": {
6
6
  "name": "CarCutter",
7
7
  "url": "https://www.car-cutter.com/"
8
8
  },
9
+ "homepage": "https://carcutter.github.io/cars-webplayer-js/",
9
10
  "description": "Use CarCutter WebPlayer in your Vue app",
10
11
  "keywords": [
11
12
  "car-cutter",
@@ -13,26 +14,41 @@
13
14
  "vue"
14
15
  ],
15
16
  "type": "module",
16
- "main": "dist/index.umd.cjs",
17
+ "main": "dist/index.cjs",
17
18
  "module": "dist/index.js",
18
19
  "types": "dist/index.d.ts",
20
+ "exports": {
21
+ ".": {
22
+ "types": "./dist/index.d.ts",
23
+ "import": "./dist/index.js",
24
+ "require": "./dist/index.cjs"
25
+ },
26
+ "./vue2": {
27
+ "types": "./dist/vue2.d.ts",
28
+ "import": "./dist/vue2.js",
29
+ "require": "./dist/vue2.cjs"
30
+ }
31
+ },
19
32
  "files": [
20
33
  "dist",
21
34
  "package.json",
22
- "README.md"
35
+ "README.md",
36
+ "LICENSE"
23
37
  ],
24
38
  "scripts": {
25
39
  "build": "vue-tsc -b && vite build",
26
40
  "lint": "eslint . --ext ts --max-warnings 0",
27
41
  "analyze": "vite-bundle-visualizer"
28
42
  },
43
+ "dependencies": {
44
+ "@car-cutter/wc-webplayer": "0.10.0"
45
+ },
29
46
  "peerDependencies": {
30
- "vue": ">=3"
47
+ "vue": ">=2"
31
48
  },
32
49
  "devDependencies": {
33
50
  "@car-cutter/eslint-config": "*",
34
51
  "@car-cutter/typescript-config": "*",
35
- "@car-cutter/wc-webplayer": "0.8.0",
36
52
  "@vitejs/plugin-vue": "^5.1.3",
37
53
  "browserslist": "^4.23.3",
38
54
  "browserslist-to-esbuild": "^2.1.1",