@melt-js/comps-vue3 0.0.1 → 2026.11.6-1
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/README.md +57 -57
- package/hel_dist/css/502.065acde7.css +1 -0
- package/hel_dist/entry.js +0 -10
- package/hel_dist/hel-meta.json +16 -16
- package/hel_dist/index.html +1 -1
- package/hel_dist/js/502.7291a800.js +2 -0
- package/hel_dist/js/502.7291a800.js.map +1 -0
- package/hel_dist/js/{app.d7978ace.js → app.d0f24d61.js} +3 -3
- package/hel_dist/js/app.d0f24d61.js.map +1 -0
- package/hel_proxy/entry.js +0 -10
- package/hel_proxy_es/entry.js +0 -10
- package/package.json +70 -67
- package/scripts/meta.js +53 -53
- package/scripts/prepublishOnly.js +27 -27
- package/scripts/preview.js +72 -71
- package/src/App.vue +2 -2
- package/src/components/CircularMenu.propsSchema.json +62 -0
- package/src/components/CircularMenu.vue +377 -0
- package/src/components/HelloWorld.propsSchema.json +24 -0
- package/src/components/HelloWorld.vue +65 -57
- package/src/components/index.ts +3 -1
- package/src/configs/subApp.ts +9 -9
- package/src/entrance/libTypes.ts +2 -0
- package/hel_dist/css/105.95ddac72.css +0 -1
- package/hel_dist/js/105.78ba830f.js +0 -2
- package/hel_dist/js/105.78ba830f.js.map +0 -1
- package/hel_dist/js/app.d7978ace.js.map +0 -1
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="cm" :class="[`cm--${variant}`, { 'is-open': open }]" :style="rootStyle">
|
|
3
|
+
<button
|
|
4
|
+
type="button"
|
|
5
|
+
class="cm__toggle"
|
|
6
|
+
:aria-expanded="open"
|
|
7
|
+
aria-haspopup="true"
|
|
8
|
+
:aria-label="open ? '关闭菜单' : '打开菜单'"
|
|
9
|
+
@click="open = !open"
|
|
10
|
+
>
|
|
11
|
+
{{ toggleLabel }}
|
|
12
|
+
</button>
|
|
13
|
+
|
|
14
|
+
<div class="cm__wheel">
|
|
15
|
+
<ul class="cm__list">
|
|
16
|
+
<li v-for="(item, index) in items" :key="index" class="cm__item" :style="itemStyle(index)">
|
|
17
|
+
<a
|
|
18
|
+
class="cm__link"
|
|
19
|
+
:class="{ 'is-active': item.active }"
|
|
20
|
+
:href="item.href || '#'"
|
|
21
|
+
@click="pick($event, item, index)"
|
|
22
|
+
>
|
|
23
|
+
<span class="cm__text">{{ item.label }}</span>
|
|
24
|
+
</a>
|
|
25
|
+
</li>
|
|
26
|
+
</ul>
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
<div v-if="overlay" class="cm__overlay" :class="{ 'is-open': open }" @click="open = false" />
|
|
30
|
+
</div>
|
|
31
|
+
</template>
|
|
32
|
+
|
|
33
|
+
<script setup lang="ts">
|
|
34
|
+
import { computed, onBeforeUnmount, onMounted, ref, type PropType } from 'vue'
|
|
35
|
+
|
|
36
|
+
/*
|
|
37
|
+
* 由 _corner/底部菜单 的两个 jQuery demo 提取而来:
|
|
38
|
+
* - wheel:原 demo1,固定在视口底部,展开半个圆环,可带遮罩
|
|
39
|
+
* - fan:原 demo2,相对最近的定位祖先展开整个圆环,扇区依次散开
|
|
40
|
+
*
|
|
41
|
+
* 扇区半径、字体级联都沿用原 demo 的 em 数值,角度由 items.length 均分,
|
|
42
|
+
* 所以入口数量不再局限于原来的 5 个 / 7 个。
|
|
43
|
+
*/
|
|
44
|
+
type CircularMenuItem = {
|
|
45
|
+
label: string
|
|
46
|
+
href?: string
|
|
47
|
+
active?: boolean
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* props 用对象形式声明:vue3-leva-gen-schema 靠 props 上方的 /** @description *\/ 生成面板 schema,
|
|
52
|
+
* 类型用 PropType 保留 TS 类型(defineProps<{...}>() 只能拿到描述、拿不到默认值)。
|
|
53
|
+
*/
|
|
54
|
+
const props = defineProps({
|
|
55
|
+
/**
|
|
56
|
+
* @description 菜单项,label 是文案,href 给了就走链接,active 是高亮态
|
|
57
|
+
*/
|
|
58
|
+
items: {
|
|
59
|
+
type: Array as PropType<CircularMenuItem[]>,
|
|
60
|
+
required: true,
|
|
61
|
+
},
|
|
62
|
+
/**
|
|
63
|
+
* @description 形态:wheel 贴视口底部展开半环,fan 在定位祖先内展开整环
|
|
64
|
+
*/
|
|
65
|
+
variant: {
|
|
66
|
+
type: String as PropType<'wheel' | 'fan'>,
|
|
67
|
+
default: 'wheel',
|
|
68
|
+
},
|
|
69
|
+
/**
|
|
70
|
+
* @description wheel 形态下是否显示半透明遮罩
|
|
71
|
+
*/
|
|
72
|
+
overlay: {
|
|
73
|
+
type: Boolean,
|
|
74
|
+
default: false,
|
|
75
|
+
},
|
|
76
|
+
/**
|
|
77
|
+
* @description 展开时的按钮文案,不传则按形态用默认符号
|
|
78
|
+
*/
|
|
79
|
+
openText: {
|
|
80
|
+
type: String,
|
|
81
|
+
},
|
|
82
|
+
/**
|
|
83
|
+
* @description 收起时的按钮文案,不传则按形态用默认符号
|
|
84
|
+
*/
|
|
85
|
+
closeText: {
|
|
86
|
+
type: String,
|
|
87
|
+
},
|
|
88
|
+
})
|
|
89
|
+
|
|
90
|
+
const emit = defineEmits<{ select: [item: CircularMenuItem, index: number] }>()
|
|
91
|
+
|
|
92
|
+
const open = ref(false)
|
|
93
|
+
|
|
94
|
+
// 原 demo1 的 5 项落在 -10°~150°,原 demo2 的 7 项落在 -20°~172°
|
|
95
|
+
const GEOMETRY = {
|
|
96
|
+
wheel: { center: 70, span: 160, skew: 50, rotate: -70 },
|
|
97
|
+
fan: { center: 76, span: 192, skew: 60, rotate: -75 },
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
const geometry = computed(() => GEOMETRY[props.variant])
|
|
101
|
+
|
|
102
|
+
const rootStyle = computed(() => ({
|
|
103
|
+
'--cm-skew': `${geometry.value.skew}deg`,
|
|
104
|
+
'--cm-rot': `${geometry.value.rotate}deg`,
|
|
105
|
+
}))
|
|
106
|
+
|
|
107
|
+
function itemStyle(index: number) {
|
|
108
|
+
const { center, span, skew } = geometry.value
|
|
109
|
+
const count = props.items.length
|
|
110
|
+
// 收起时 fan 的所有扇区叠在正中间,展开后才散开(对应原 demo2 的 rotate(76deg))
|
|
111
|
+
const angle =
|
|
112
|
+
props.variant === 'fan' && !open.value
|
|
113
|
+
? center
|
|
114
|
+
: center - span / 2 + (count > 1 ? (index * span) / (count - 1) : 0)
|
|
115
|
+
|
|
116
|
+
return { transform: `rotate(${angle}deg) skew(${skew}deg)` }
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
const toggleLabel = computed(() => {
|
|
120
|
+
const fallback = props.variant === 'fan' ? ['Menu', 'Close'] : ['+', '−']
|
|
121
|
+
return open.value ? props.closeText ?? fallback[1] : props.openText ?? fallback[0]
|
|
122
|
+
})
|
|
123
|
+
|
|
124
|
+
function pick(event: MouseEvent, item: CircularMenuItem, index: number) {
|
|
125
|
+
// 没给 href 时只抛事件,别让 href="#" 改掉宿主的 hash 路由
|
|
126
|
+
if (!item.href) event.preventDefault()
|
|
127
|
+
open.value = false
|
|
128
|
+
emit('select', item, index)
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// 原 demo 靠 document 点击关闭,这里只收 Esc,避免给宿主页面挂全局监听
|
|
132
|
+
function onKeydown(event: KeyboardEvent) {
|
|
133
|
+
if (event.key === 'Escape') open.value = false
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
onMounted(() => window.addEventListener('keydown', onKeydown))
|
|
137
|
+
onBeforeUnmount(() => window.removeEventListener('keydown', onKeydown))
|
|
138
|
+
</script>
|
|
139
|
+
|
|
140
|
+
<style scoped>
|
|
141
|
+
/* root 固定 16px 基准,宿主换字号时这套 em 布局不会走样 */
|
|
142
|
+
.cm {
|
|
143
|
+
font-size: 16px;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.cm,
|
|
147
|
+
.cm * {
|
|
148
|
+
box-sizing: border-box;
|
|
149
|
+
margin: 0;
|
|
150
|
+
padding: 0;
|
|
151
|
+
list-style: none;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.cm__toggle {
|
|
155
|
+
border: 0;
|
|
156
|
+
border-radius: 50%;
|
|
157
|
+
background-color: #fff;
|
|
158
|
+
font-family: inherit;
|
|
159
|
+
cursor: pointer;
|
|
160
|
+
-webkit-tap-highlight-color: transparent;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/*
|
|
164
|
+
* ul 必须是定位元素:它高度为 0,扇区的 top: 50% 因此落在 0 上、再被 margin 顶上,
|
|
165
|
+
* 圆心才是 li 的右下角。原 demo 靠全局 * { position: relative } 得到这个结果。
|
|
166
|
+
*/
|
|
167
|
+
.cm__list {
|
|
168
|
+
position: relative;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.cm__item {
|
|
172
|
+
position: absolute;
|
|
173
|
+
left: 50%;
|
|
174
|
+
top: 50%;
|
|
175
|
+
width: 10em;
|
|
176
|
+
height: 10em;
|
|
177
|
+
margin: -1.3em 0 0 -10em;
|
|
178
|
+
font-size: 1.5em;
|
|
179
|
+
transform-origin: 100% 100%;
|
|
180
|
+
overflow: hidden;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.cm__link {
|
|
184
|
+
position: absolute;
|
|
185
|
+
right: -7.25em;
|
|
186
|
+
bottom: -7.25em;
|
|
187
|
+
display: block;
|
|
188
|
+
width: 14.5em;
|
|
189
|
+
height: 14.5em;
|
|
190
|
+
border-radius: 50%;
|
|
191
|
+
color: #fff;
|
|
192
|
+
text-align: center;
|
|
193
|
+
text-decoration: none;
|
|
194
|
+
transform: skew(calc(var(--cm-skew) * -1)) rotate(var(--cm-rot));
|
|
195
|
+
backface-visibility: hidden;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/* ------------------------------------------------------------------ wheel */
|
|
199
|
+
|
|
200
|
+
.cm--wheel {
|
|
201
|
+
--cm-accent: #f06060;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.cm--wheel .cm__wheel {
|
|
205
|
+
position: fixed;
|
|
206
|
+
z-index: 41;
|
|
207
|
+
left: 50%;
|
|
208
|
+
bottom: -13em;
|
|
209
|
+
width: 26em;
|
|
210
|
+
height: 26em;
|
|
211
|
+
margin-left: -13em;
|
|
212
|
+
border-radius: 50%;
|
|
213
|
+
overflow: hidden;
|
|
214
|
+
transform: scale(0.1);
|
|
215
|
+
pointer-events: none;
|
|
216
|
+
transition: transform 0.3s ease;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.cm--wheel.is-open .cm__wheel {
|
|
220
|
+
transform: scale(1);
|
|
221
|
+
pointer-events: auto;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.cm--wheel .cm__link {
|
|
225
|
+
padding-top: 1.8em;
|
|
226
|
+
font-size: 1.18em;
|
|
227
|
+
background-color: hsla(0, 88%, 63%, 1);
|
|
228
|
+
transition: background-color 0.3s ease;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
.cm--wheel .cm__item:nth-child(even) .cm__link {
|
|
232
|
+
background-color: hsla(0, 88%, 65%, 1);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
.cm--wheel .cm__link:hover,
|
|
236
|
+
.cm--wheel .cm__link:focus,
|
|
237
|
+
.cm--wheel .cm__link:active,
|
|
238
|
+
.cm--wheel .cm__link.is-active {
|
|
239
|
+
background-color: hsla(0, 88%, 70%, 1);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
.cm--wheel .cm__text {
|
|
243
|
+
font-size: 1.1em;
|
|
244
|
+
opacity: 0.7;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
.cm--wheel .cm__toggle {
|
|
248
|
+
position: fixed;
|
|
249
|
+
z-index: 42;
|
|
250
|
+
left: 50%;
|
|
251
|
+
bottom: -1.75em;
|
|
252
|
+
width: 3.5em;
|
|
253
|
+
height: 3.5em;
|
|
254
|
+
margin-left: -1.75em;
|
|
255
|
+
padding-bottom: 1em;
|
|
256
|
+
color: var(--cm-accent);
|
|
257
|
+
font-size: 1.8em;
|
|
258
|
+
text-align: center;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
.cm--wheel .cm__toggle:hover,
|
|
262
|
+
.cm--wheel .cm__toggle:focus {
|
|
263
|
+
color: #aa1010;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/* -------------------------------------------------------------------- fan */
|
|
267
|
+
|
|
268
|
+
.cm--fan {
|
|
269
|
+
--cm-accent: #52be7f;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
.cm--fan .cm__wheel {
|
|
273
|
+
position: absolute;
|
|
274
|
+
top: 100%;
|
|
275
|
+
left: 50%;
|
|
276
|
+
z-index: 10;
|
|
277
|
+
width: 27em;
|
|
278
|
+
height: 27em;
|
|
279
|
+
margin: -13em 0 0 -13.5em;
|
|
280
|
+
border-radius: 50%;
|
|
281
|
+
overflow: hidden;
|
|
282
|
+
opacity: 0;
|
|
283
|
+
transform: scale(0.1);
|
|
284
|
+
pointer-events: none;
|
|
285
|
+
transition: all 0.3s ease 0.3s;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
.cm--fan.is-open .cm__wheel {
|
|
289
|
+
opacity: 1;
|
|
290
|
+
transform: scale(1);
|
|
291
|
+
pointer-events: auto;
|
|
292
|
+
transition: all 0.3s ease;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
/* 盖住中间的空白,避免点到扇区多出来的部分 */
|
|
296
|
+
.cm--fan .cm__wheel::after {
|
|
297
|
+
content: "";
|
|
298
|
+
position: absolute;
|
|
299
|
+
z-index: 10;
|
|
300
|
+
left: 50%;
|
|
301
|
+
top: 50%;
|
|
302
|
+
width: 6.2em;
|
|
303
|
+
height: 6.2em;
|
|
304
|
+
margin: -3.1em 0 0 -3.1em;
|
|
305
|
+
border-radius: 50%;
|
|
306
|
+
font-size: 2em;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
.cm--fan .cm__item {
|
|
310
|
+
transition: transform 0.3s ease;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
.cm--fan.is-open .cm__item {
|
|
314
|
+
transition: transform 0.3s ease 0.3s;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
.cm--fan .cm__link {
|
|
318
|
+
font-size: 1.2em;
|
|
319
|
+
line-height: 2;
|
|
320
|
+
background: radial-gradient(transparent 35%, #429a67 35%);
|
|
321
|
+
pointer-events: auto;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
.cm--fan .cm__link:hover,
|
|
325
|
+
.cm--fan .cm__link:focus,
|
|
326
|
+
.cm--fan .cm__link:active {
|
|
327
|
+
background: radial-gradient(transparent 35%, #449e6a 35%);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
.cm--fan .cm__text {
|
|
331
|
+
position: relative;
|
|
332
|
+
top: 1.8em;
|
|
333
|
+
display: block;
|
|
334
|
+
font-size: 0.5em;
|
|
335
|
+
font-weight: 700;
|
|
336
|
+
text-transform: uppercase;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
.cm--fan .cm__toggle {
|
|
340
|
+
position: absolute;
|
|
341
|
+
top: 100%;
|
|
342
|
+
left: 50%;
|
|
343
|
+
z-index: 11;
|
|
344
|
+
width: 4.5em;
|
|
345
|
+
height: 4.5em;
|
|
346
|
+
margin: -2.25em 0 0 -2.25em;
|
|
347
|
+
color: var(--cm-accent);
|
|
348
|
+
font-size: 1.5em;
|
|
349
|
+
font-weight: 700;
|
|
350
|
+
text-align: center;
|
|
351
|
+
text-transform: uppercase;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
/* ---------------------------------------------------------------- overlay */
|
|
355
|
+
|
|
356
|
+
/* 遮罩压在页面内容之上、环形菜单之下,开启时整页变暗(含宿主导航栏) */
|
|
357
|
+
.cm__overlay {
|
|
358
|
+
position: fixed;
|
|
359
|
+
z-index: 40;
|
|
360
|
+
inset: 0;
|
|
361
|
+
background-color: rgba(0, 0, 0, 0.6);
|
|
362
|
+
opacity: 0;
|
|
363
|
+
visibility: hidden;
|
|
364
|
+
transition: opacity 0.3s ease, visibility 0.3s ease;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
.cm__overlay.is-open {
|
|
368
|
+
opacity: 1;
|
|
369
|
+
visibility: visible;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
@media screen and (max-width: 480px) {
|
|
373
|
+
.cm {
|
|
374
|
+
font-size: 11px;
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
</style>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"name": "msg",
|
|
4
|
+
"type": "string",
|
|
5
|
+
"description": "标题文案",
|
|
6
|
+
"default": "",
|
|
7
|
+
"required": false,
|
|
8
|
+
"version": "",
|
|
9
|
+
"isEvent": false,
|
|
10
|
+
"bindable": true,
|
|
11
|
+
"value": ""
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"name": "name",
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "名字,展示在标题下方",
|
|
17
|
+
"default": "",
|
|
18
|
+
"required": false,
|
|
19
|
+
"version": "",
|
|
20
|
+
"isEvent": false,
|
|
21
|
+
"bindable": true,
|
|
22
|
+
"value": ""
|
|
23
|
+
}
|
|
24
|
+
]
|
|
@@ -1,57 +1,65 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="hello">
|
|
3
|
-
<img alt="Vue logo" src="../assets/logo.png">
|
|
4
|
-
<h1>{{ msg }}</h1>
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
</
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
margin: 0
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
color: #42b983;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
1
|
+
<template>
|
|
2
|
+
<div class="hello">
|
|
3
|
+
<img alt="Vue logo" src="../assets/logo.png">
|
|
4
|
+
<h1>{{ msg }}</h1>
|
|
5
|
+
<h3>name: {{ name }}</h3>
|
|
6
|
+
<h3>hel-micro</h3>
|
|
7
|
+
<p>
|
|
8
|
+
A module federation SDK which is unrelated to tool chain for module consumer.
|
|
9
|
+
checkout the <a href="https://tnfe.github.io/hel/" target="_blank" rel="noopener">hel-micro documentation</a>.
|
|
10
|
+
</p>
|
|
11
|
+
<button class="remote-btn" @click="count++">远程组件内部计数 {{ count }}</button>
|
|
12
|
+
</div>
|
|
13
|
+
</template>
|
|
14
|
+
|
|
15
|
+
<script lang="ts">
|
|
16
|
+
import { defineComponent, ref } from 'vue'
|
|
17
|
+
|
|
18
|
+
export default defineComponent({
|
|
19
|
+
name: 'HelloWorld',
|
|
20
|
+
props: {
|
|
21
|
+
/**
|
|
22
|
+
* @description 标题文案
|
|
23
|
+
*/
|
|
24
|
+
msg: String,
|
|
25
|
+
/**
|
|
26
|
+
* @description 名字,展示在标题下方
|
|
27
|
+
*/
|
|
28
|
+
name: String
|
|
29
|
+
},
|
|
30
|
+
setup() {
|
|
31
|
+
// 验证远程组件复用的是宿主注入的 vue 运行时:
|
|
32
|
+
// 若是两份 vue,这里的 ref 变更不会触发宿主渲染。
|
|
33
|
+
const count = ref(0)
|
|
34
|
+
return { count }
|
|
35
|
+
}
|
|
36
|
+
})
|
|
37
|
+
</script>
|
|
38
|
+
|
|
39
|
+
<!-- Add "scoped" attribute to limit CSS to this component only -->
|
|
40
|
+
<style scoped>
|
|
41
|
+
h3 {
|
|
42
|
+
margin: 40px 0 0;
|
|
43
|
+
}
|
|
44
|
+
ul {
|
|
45
|
+
list-style-type: none;
|
|
46
|
+
padding: 0;
|
|
47
|
+
}
|
|
48
|
+
li {
|
|
49
|
+
display: inline-block;
|
|
50
|
+
margin: 0 10px;
|
|
51
|
+
}
|
|
52
|
+
a {
|
|
53
|
+
color: #42b983;
|
|
54
|
+
}
|
|
55
|
+
.remote-btn {
|
|
56
|
+
margin-top: 20px;
|
|
57
|
+
padding: 8px 16px;
|
|
58
|
+
border: 1px solid #42b983;
|
|
59
|
+
border-radius: 6px;
|
|
60
|
+
background: #fff;
|
|
61
|
+
color: #42b983;
|
|
62
|
+
font-size: 16px;
|
|
63
|
+
cursor: pointer;
|
|
64
|
+
}
|
|
65
|
+
</style>
|
package/src/components/index.ts
CHANGED
package/src/configs/subApp.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
/*
|
|
2
|
-
|--------------------------------------------------------------------------
|
|
3
|
-
|
|
|
4
|
-
| 对应 package.json/appGroupName
|
|
5
|
-
|
|
|
6
|
-
|--------------------------------------------------------------------------
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
export const LIB_NAME = 'comps-vue3'
|
|
1
|
+
/*
|
|
2
|
+
|--------------------------------------------------------------------------
|
|
3
|
+
|
|
|
4
|
+
| 对应 package.json/appGroupName
|
|
5
|
+
|
|
|
6
|
+
|--------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export const LIB_NAME = 'comps-vue3'
|
package/src/entrance/libTypes.ts
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
|
|
|
9
9
|
|--------------------------------------------------------------------------
|
|
10
10
|
*/
|
|
11
|
+
import type { Component } from 'vue';
|
|
11
12
|
import { exposeLib } from 'hel-lib-proxy';
|
|
12
13
|
import { LIB_NAME } from '../configs/subApp';
|
|
13
14
|
|
|
@@ -18,6 +19,7 @@ export type CompTypes = {
|
|
|
18
19
|
HelloWorld: {
|
|
19
20
|
name: string,
|
|
20
21
|
},
|
|
22
|
+
CircularMenu: Component,
|
|
21
23
|
};
|
|
22
24
|
|
|
23
25
|
/**
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
h3[data-v-24006543]{margin:40px 0 0}ul[data-v-24006543]{list-style-type:none;padding:0}li[data-v-24006543]{display:inline-block;margin:0 10px}a[data-v-24006543]{color:#42b983}.remote-btn[data-v-24006543]{margin-top:20px;padding:8px 16px;border:1px solid #42b983;border-radius:6px;background:#fff;color:#42b983;font-size:16px;cursor:pointer}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#2c3e50;margin-top:60px}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self["helJsonp_comps-vue3_1793864967767"]=self["helJsonp_comps-vue3_1793864967767"]||[]).push([[105],{198:function(t,e,c){c.d(e,{default:function(){return o}});var n=c(74),l={HelloWorld:n.A},o=l},480:function(t,e,c){var n=c(508);function l(t,e,c,l,o,i){const I=(0,n.resolveComponent)("HelloWorld");return(0,n.openBlock)(),(0,n.createBlock)(I,{msg:"Welcome to Your Vue.js + TypeScript + hel-micro App"})}var o=c(74),i=(0,n.defineComponent)({name:"App",components:{HelloWorld:o.A}}),I=c(7);const r=(0,I.A)(i,[["render",l]]);var s=r;(0,n.createApp)(s).mount("#app")},74:function(t,e,c){c.d(e,{A:function(){return h}});var n=c(508),l="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTk2QkI4RkE3NjE2MTFFNUE4NEU4RkIxNjQ5MTYyRDgiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTk2QkI4Rjk3NjE2MTFFNUE4NEU4RkIxNjQ5MTYyRDgiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjU2QTEyNzk3NjkyMTFFMzkxODk4RDkwQkY4Q0U0NzYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjU2QTEyN0E3NjkyMTFFMzkxODk4RDkwQkY4Q0U0NzYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5WHowqAAAXNElEQVR42uxda4xd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";const o={class:"hello"};function i(t,e,c,i,I,r){return(0,n.openBlock)(),(0,n.createElementBlock)("div",o,[e[1]||(e[1]=(0,n.createElementVNode)("img",{alt:"Vue logo",src:l},null,-1)),(0,n.createElementVNode)("h1",null,(0,n.toDisplayString)(t.msg),1),e[2]||(e[2]=(0,n.createElementVNode)("h3",null,"hel-micro",-1)),e[3]||(e[3]=(0,n.createElementVNode)("p",null,[(0,n.createTextVNode)(" A module federation SDK which is unrelated to tool chain for module consumer. checkout the "),(0,n.createElementVNode)("a",{href:"https://tnfe.github.io/hel/",target:"_blank",rel:"noopener"},"hel-micro documentation"),(0,n.createTextVNode)(". ")],-1)),(0,n.createElementVNode)("button",{class:"remote-btn",onClick:e[0]||(e[0]=e=>t.count++)},"远程组件内部计数 "+(0,n.toDisplayString)(t.count),1)])}var I=(0,n.defineComponent)({name:"HelloWorld",props:{msg:String},setup(){const t=(0,n.ref)(0);return{count:t}}}),r=c(7);const s=(0,r.A)(I,[["render",i],["__scopeId","data-v-24006543"]]);var h=s},7:function(t,e){e.A=(t,e)=>{const c=t.__vccOpts||t;for(const[n,l]of e)c[n]=l;return c}}}]);
|
|
2
|
-
//# sourceMappingURL=105.78ba830f.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"js/105.78ba830f.js","mappings":"0LASAA,EAAA,CACEC,WAAUA,EAAAA,GCDZC,EAAA,oCCPM,SAAUC,EAAOC,EAAUC,EAAYC,EAAYC,EAAYC,EAAWC,GAC9E,MAAMC,GAAwBC,EAAAA,EAAAA,kBAAkB,cAEhD,OAAQC,EAAAA,EAAAA,cCJRC,EAAAA,EAAAA,aAAuEH,EAAA,CAA3DI,IAAI,uDDKlB,aCEAC,GAAeC,EAAAA,EAAAA,iBAAgB,CAC7BC,KAAM,MACNjB,WAAY,CACVC,WAAUA,EAAAA,YCJd,MAAAiB,GAAiC,EAAAC,EAAAC,GAAgBL,EAAM,WAAaZ,KAEpE,IAAAkB,EAAA,GCNAC,EAAAA,EAAAA,WAAUD,GAAKE,MAAM,ghSCCrB,MAAMC,EAAa,CCHZC,MAAM,SDKP,SAAUtB,EAAOC,EAAUC,EAAYC,EAAYC,EAAYC,EAAWC,GAC9E,OAAQG,EAAAA,EAAAA,cCNRc,EAAAA,EAAAA,oBASM,MATNF,EASM,CDFJnB,EAAO,KAAOA,EAAO,ICNrBsB,EAAAA,EAAAA,oBAA6C,OAAxCC,IAAI,WAAWC,IAAAC,GDSjB,MAAO,KCRVH,EAAAA,EAAAA,oBAAkB,WAAAI,EAAAA,EAAAA,iBAAX3B,EAAAU,KAAG,GDUVT,EAAO,KAAOA,EAAO,ICTnBsB,EAAAA,EAAAA,oBAAkB,UAAd,aAAS,IDUftB,EAAO,KAAOA,EAAO,ICTrBsB,EAAAA,EAAAA,oBAGI,WDOFK,EAAAA,EAAAA,iBCVC,iGAEYL,EAAAA,EAAAA,oBAAgG,KAA7FM,KAAK,8BAA8BC,OAAO,SAASC,IAAI,YAAW,4BDclFH,EAAAA,EAAAA,iBCd6G,QDe3G,KCbJL,EAAAA,EAAAA,oBAAyE,UAAjEF,MAAM,aAAcW,QAAK/B,EAAA,KAAAA,EAAA,GAAAgC,GAAEjC,EAAAkC,UAAS,aAASP,EAAAA,EAAAA,iBAAG3B,EAAAkC,OAAK,IDmBjE,CCZA,IAAAC,GAAevB,EAAAA,EAAAA,iBAAgB,CAC7BC,KAAM,aACNuB,MAAO,CACL1B,IAAK2B,QAEPC,KAAAA,GAGE,MAAMJ,GAAQK,EAAAA,EAAAA,KAAI,GAClB,MAAO,CAAEL,QACX,WCnBF,MAAApB,GAAiC,EAAAC,EAAAC,GAAgBmB,EAAM,WAAapC,GAAM,kCAE1E,IAAAF,EAAA,mBCLA2C,EAAAxB,EAAe,CAAAyB,EAAAL,KACf,MAAAN,EAAAW,EAAAC,WAAAD,EACA,UAAAE,EAAAC,KAAAR,EACAN,EAAAa,GAAAC,EAEA,OAAAd","sources":["webpack://comps-vue3/./src/components/index.ts","webpack://comps-vue3/./src/entrance/libProperties.ts","webpack://comps-vue3/./src/App.vue?eb67","webpack://comps-vue3/./src/App.vue","webpack://comps-vue3/./src/App.vue?bb66","webpack://comps-vue3/./src/loadApp.ts","webpack://comps-vue3/./src/components/HelloWorld.vue?9e80","webpack://comps-vue3/./src/components/HelloWorld.vue","webpack://comps-vue3/./src/components/HelloWorld.vue?50ad","webpack://comps-vue3/../node_modules/.pnpm/vue-loader@17.4.2_@vue+comp_b96250859ca94a6ac58450dbb1a8bad8/node_modules/vue-loader/dist/exportHelper.js"],"sourcesContent":["/*\r\n|--------------------------------------------------------------------------\r\n|\r\n| 这些组件暴露给使用方\r\n|\r\n|--------------------------------------------------------------------------\r\n*/\r\nimport HelloWorld from './HelloWorld.vue'\r\n\r\nexport default {\r\n HelloWorld\r\n}\r\n","/*\r\n|--------------------------------------------------------------------------\r\n|\r\n| 这些组件暴露给使用方\r\n|\r\n|--------------------------------------------------------------------------\r\n*/\r\nimport comps from '../components'\r\n\r\nexport default comps\r\n","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_HelloWorld = _resolveComponent(\"HelloWorld\")!\n\n return (_openBlock(), _createBlock(_component_HelloWorld, { msg: \"Welcome to Your Vue.js + TypeScript + hel-micro App\" }))\n}","<template>\r\n <HelloWorld msg=\"Welcome to Your Vue.js + TypeScript + hel-micro App\"/>\r\n</template>\r\n\r\n<script lang=\"ts\">\r\nimport { defineComponent } from 'vue'\r\nimport HelloWorld from './components/HelloWorld.vue'\r\n\r\nexport default defineComponent({\r\n name: 'App',\r\n components: {\r\n HelloWorld\r\n }\r\n})\r\n</script>\r\n\r\n<style>\r\n#app {\r\n font-family: Avenir, Helvetica, Arial, sans-serif;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n text-align: center;\r\n color: #2c3e50;\r\n margin-top: 60px;\r\n}\r\n</style>\r\n","import { render } from \"./App.vue?vue&type=template&id=18180672&ts=true\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=18180672&lang=css\"\n\nimport exportComponent from \"../../node_modules/.pnpm/vue-loader@17.4.2_@vue+comp_b96250859ca94a6ac58450dbb1a8bad8/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from 'vue'\r\nimport App from './App.vue'\r\n\r\ncreateApp(App).mount('#app')\r\n","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\nimport _imports_0 from '../assets/logo.png'\n\n\nconst _hoisted_1 = { class: \"hello\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _cache[1] || (_cache[1] = _createElementVNode(\"img\", {\n alt: \"Vue logo\",\n src: _imports_0\n }, null, -1)),\n _createElementVNode(\"h1\", null, _toDisplayString(_ctx.msg), 1),\n _cache[2] || (_cache[2] = _createElementVNode(\"h3\", null, \"hel-micro\", -1)),\n _cache[3] || (_cache[3] = _createElementVNode(\"p\", null, [\n _createTextVNode(\" A module federation SDK which is unrelated to tool chain for module consumer. checkout the \"),\n _createElementVNode(\"a\", {\n href: \"https://tnfe.github.io/hel/\",\n target: \"_blank\",\n rel: \"noopener\"\n }, \"hel-micro documentation\"),\n _createTextVNode(\". \")\n ], -1)),\n _createElementVNode(\"button\", {\n class: \"remote-btn\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.count++))\n }, \"远程组件内部计数 \" + _toDisplayString(_ctx.count), 1)\n ]))\n}","<template>\n <div class=\"hello\">\n <img alt=\"Vue logo\" src=\"../assets/logo.png\">\n <h1>{{ msg }}</h1>\n <h3>hel-micro</h3>\n <p>\n A module federation SDK which is unrelated to tool chain for module consumer.\n checkout the <a href=\"https://tnfe.github.io/hel/\" target=\"_blank\" rel=\"noopener\">hel-micro documentation</a>.\n </p>\n <button class=\"remote-btn\" @click=\"count++\">远程组件内部计数 {{ count }}</button>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref } from 'vue'\n\nexport default defineComponent({\n name: 'HelloWorld',\n props: {\n msg: String\n },\n setup() {\n // 验证远程组件复用的是宿主注入的 vue 运行时:\n // 若是两份 vue,这里的 ref 变更不会触发宿主渲染。\n const count = ref(0)\n return { count }\n }\n})\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style scoped>\nh3 {\n margin: 40px 0 0;\n}\nul {\n list-style-type: none;\n padding: 0;\n}\nli {\n display: inline-block;\n margin: 0 10px;\n}\na {\n color: #42b983;\n}\n.remote-btn {\n margin-top: 20px;\n padding: 8px 16px;\n border: 1px solid #42b983;\n border-radius: 6px;\n background: #fff;\n color: #42b983;\n font-size: 16px;\n cursor: pointer;\n}\n</style>\n","import { render } from \"./HelloWorld.vue?vue&type=template&id=24006543&scoped=true&ts=true\"\nimport script from \"./HelloWorld.vue?vue&type=script&lang=ts\"\nexport * from \"./HelloWorld.vue?vue&type=script&lang=ts\"\n\nimport \"./HelloWorld.vue?vue&type=style&index=0&id=24006543&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../node_modules/.pnpm/vue-loader@17.4.2_@vue+comp_b96250859ca94a6ac58450dbb1a8bad8/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-24006543\"]])\n\nexport default __exports__","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n"],"names":["components","HelloWorld","libProperties","render","_ctx","_cache","$props","$setup","$data","$options","_component_HelloWorld","_resolveComponent","_openBlock","_createBlock","msg","Appvue_type_script_lang_ts","defineComponent","name","__exports__","exportHelper","A","App","createApp","mount","_hoisted_1","class","_createElementBlock","_createElementVNode","alt","src","_imports_0","_toDisplayString","_createTextVNode","href","target","rel","onClick","$event","count","HelloWorldvue_type_script_lang_ts","props","String","setup","ref","exports","sfc","__vccOpts","key","val"],"sourceRoot":""}
|