@melt-js/demo-vue2-ele 0.1.2 → 2026.11.7

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.
Files changed (61) hide show
  1. package/README.md +43 -6
  2. package/dist/css/chunk-6a35b81e.35a1c103.css +1 -0
  3. package/dist/css/chunk-7a0c737c.0fe5c208.css +1 -0
  4. package/dist/img/logo.82b9c7a5.png +0 -0
  5. package/dist/index.html +1 -1
  6. package/dist/js/app.7856b6d9.js +2 -0
  7. package/dist/js/app.7856b6d9.js.map +1 -0
  8. package/dist/js/{chunk-dce21a74.2d939e53.js → chunk-100f4182.391add39.js} +2 -2
  9. package/dist/js/chunk-100f4182.391add39.js.map +1 -0
  10. package/dist/js/chunk-109e6ced.423e5c6b.js +2 -0
  11. package/dist/js/chunk-109e6ced.423e5c6b.js.map +1 -0
  12. package/dist/js/chunk-13f34938.89418ccf.js +2 -0
  13. package/dist/js/chunk-13f34938.89418ccf.js.map +1 -0
  14. package/dist/js/chunk-1a9ef670.9c060fcd.js +2 -0
  15. package/dist/js/chunk-1a9ef670.9c060fcd.js.map +1 -0
  16. package/dist/js/chunk-219be077.32809f5a.js +2 -0
  17. package/dist/js/chunk-219be077.32809f5a.js.map +1 -0
  18. package/dist/js/chunk-270a4eba.bb6888b6.js +2 -0
  19. package/dist/js/chunk-270a4eba.bb6888b6.js.map +1 -0
  20. package/dist/js/chunk-2d221fe7.b206265b.js +2 -0
  21. package/dist/js/chunk-2d221fe7.b206265b.js.map +1 -0
  22. package/dist/js/chunk-472c32b8.30a1f6d3.js +2 -0
  23. package/dist/js/chunk-472c32b8.30a1f6d3.js.map +1 -0
  24. package/dist/js/chunk-499dcf4e.c494d453.js +2 -0
  25. package/dist/js/chunk-499dcf4e.c494d453.js.map +1 -0
  26. package/dist/js/chunk-5cbef67a.b1cb3f18.js +2 -0
  27. package/dist/js/chunk-5cbef67a.b1cb3f18.js.map +1 -0
  28. package/dist/js/chunk-6a35b81e.2b1a5e05.js +2 -0
  29. package/dist/js/chunk-6a35b81e.2b1a5e05.js.map +1 -0
  30. package/dist/js/chunk-71921a8b.09bb010d.js +2 -0
  31. package/dist/js/chunk-71921a8b.09bb010d.js.map +1 -0
  32. package/dist/js/chunk-76cece1a.8dfb638e.js +2 -0
  33. package/dist/js/chunk-76cece1a.8dfb638e.js.map +1 -0
  34. package/dist/js/chunk-7a0c737c.03221242.js +2 -0
  35. package/dist/js/chunk-7a0c737c.03221242.js.map +1 -0
  36. package/dist/js/chunk-83847dde.2e72a269.js +2 -0
  37. package/dist/js/chunk-83847dde.2e72a269.js.map +1 -0
  38. package/dist/js/chunk-bdb4687c.1e0b0b32.js +2 -0
  39. package/dist/js/chunk-bdb4687c.1e0b0b32.js.map +1 -0
  40. package/dist/js/{chunk-vendors.86c551a5.js → chunk-vendors.043cff34.js} +4 -4
  41. package/dist/js/chunk-vendors.043cff34.js.map +1 -0
  42. package/package.json +3 -2
  43. package/dist/css/chunk-21f01263.e1a17849.css +0 -1
  44. package/dist/js/app.ee9963b0.js +0 -2
  45. package/dist/js/app.ee9963b0.js.map +0 -1
  46. package/dist/js/chunk-0e95c738.08045311.js +0 -2
  47. package/dist/js/chunk-0e95c738.08045311.js.map +0 -1
  48. package/dist/js/chunk-21f01263.91790aec.js +0 -2
  49. package/dist/js/chunk-21f01263.91790aec.js.map +0 -1
  50. package/dist/js/chunk-2d221fe7.e75373d8.js +0 -2
  51. package/dist/js/chunk-2d221fe7.e75373d8.js.map +0 -1
  52. package/dist/js/chunk-74ad0e21.7bd2a361.js +0 -2
  53. package/dist/js/chunk-74ad0e21.7bd2a361.js.map +0 -1
  54. package/dist/js/chunk-b0aa754e.16975c2a.js +0 -2
  55. package/dist/js/chunk-b0aa754e.16975c2a.js.map +0 -1
  56. package/dist/js/chunk-dce21a74.2d939e53.js.map +0 -1
  57. package/dist/js/chunk-vendors.86c551a5.js.map +0 -1
  58. /package/dist/css/{chunk-dce21a74.bdc89fcd.css → chunk-100f4182.bdc89fcd.css} +0 -0
  59. /package/dist/css/{chunk-74ad0e21.c7b315b6.css → chunk-109e6ced.c7b315b6.css} +0 -0
  60. /package/dist/css/{chunk-b0aa754e.999325e3.css → chunk-76cece1a.999325e3.css} +0 -0
  61. /package/dist/css/{chunk-0e95c738.b7a841a9.css → chunk-83847dde.b7a841a9.css} +0 -0
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Vue 2 + Element UI 的 hel 宿主(消费方)示例:`preFetchLib` 从 unpkg 加载 [`@melt-js/comps-vue2-ele`](../comps-vue2-ele),页面里同时直接复用 `tpl-vue2-admin-ele` 的本地源码,并用 `preFetchLib` 演示 [`@melt-js/libs-utils`](../libs-utils) / [`@melt-js/libs-lodash`](../libs-lodash) 两个远程库的方法。
4
4
 
5
- 页面使用 **vue-router(hash 模式)** 把示例拆成五个可切换的页面,顶部导航栏同时显示当前示例的简介,示例区右上角有**全屏按钮**(只放大示例区域,行为对齐 `tpl-vue2-admin-ele` 的 Screenfull 按钮)。
5
+ 页面使用 **vue-router(hash 模式)** 把示例拆成十五个可切换的页面,顶部导航栏同时显示当前示例的简介,示例区右上角有**全屏按钮**(只放大当前示例的组件预览区,基于 `vue-fullscreen` 的 `pageOnly + teleport` 模式)。
6
6
 
7
7
  | 项 | 值 |
8
8
  | --- | --- |
@@ -12,6 +12,7 @@ Vue 2 + Element UI 的 hel 宿主(消费方)示例:`preFetchLib` 从 unpkg
12
12
  | 消费的远程组件 | `comps-vue2-ele`(`https://unpkg.com/@melt-js/comps-vue2-ele/hel_dist/hel-meta.json`) |
13
13
  | 消费的远程库 | `libs-utils`、`libs-lodash`(线上同样指向 unpkg 的 `hel-meta.json`) |
14
14
  | 路由 | `vue-router@3.6.5`,hash 模式 |
15
+ | 全屏 | `vue-fullscreen@4.1.2`(legacy),`pageOnly` + `teleport`(不调用浏览器原生全屏) |
15
16
 
16
17
  ## 示例路由
17
18
 
@@ -20,6 +21,16 @@ Vue 2 + Element UI 的 hel 宿主(消费方)示例:`preFetchLib` 从 unpkg
20
21
  | `#/` | 简介 | demo 概览:远程依赖、端口、远端地址与示例入口 |
21
22
  | `#/remote-comp` | 远程组件 | `comps-vue2-ele` 的 `App`(内部再依赖 `HelloWorld`),红色边框区域内渲染 |
22
23
  | `#/ranking` | 排行榜 | `comps-vue2-ele` 的 `TierRanking` 排行榜:拖拽排序、上传图片、评级编辑、IndexedDB 持久化、导出图片 |
24
+ | `#/tc-clamp` | TcClamp | `comps-vue2-ele` 的 `TcClamp`:多行截断、悬停看全文、展开 / 收起、容器自适应 |
25
+ | `#/tc-block` | TcBlock | 面板:title / rightTool 插槽、三种 shadow、最小化与 window / document 全屏 |
26
+ | `#/tc-more` | TcMore | 折叠容器:基础 / 默认展开 / `expanded.sync` 受控 / title、tool 插槽 |
27
+ | `#/tc-icon` | TcIcon | 图标:glyph 尺寸 / 颜色 / spin,name 类名用法 |
28
+ | `#/tc-button` | TcButton | 按钮:type / size / plain / round / circle / loading / disabled / 点击事件与按钮组 |
29
+ | `#/tc-select` | TcSelect | 下拉:providers、placeholder、禁用、自定义 option 插槽 |
30
+ | `#/tc-radio` | TcRadio | 单选三件套:providers 分段按钮、TcRadio 圆点、单项 / 整组禁用 |
31
+ | `#/tc-dialog` | TcDialog | 弹窗:基础 / 无底栏 / 尺寸 / loading / beforeClose 防误关 / 遮罩与 Esc / forceEnabled |
32
+ | `#/tc-loading` | TcLoading | 19 个纯 CSS loading、尺寸颜色与自定义文案 |
33
+ | `#/tc-letter-avatar` | TcLetterAvatar | 字母头像:自动缩写、initials、配色、rounded / inline、图片模式 |
23
34
  | `#/libs` | 远程 libs | `libs-utils` / `libs-lodash` 的调用结果 |
24
35
  | `#/tpl-comp` | tpl 源码 | 通过 workspace 链接直接复用 `tpl-vue2-admin-ele` 的 `Hamburger` |
25
36
 
@@ -27,7 +38,8 @@ Vue 2 + Element UI 的 hel 宿主(消费方)示例:`preFetchLib` 从 unpkg
27
38
 
28
39
  - **hash 模式**:demo 的构建产物会通过 unpkg 上的 `dist/index.html` 打开,history 模式在那种静态文件路径下会 404。
29
40
  - 路由清单在 `src/router/index.js`,每条路由的 `meta.title` / `meta.description` 同时驱动导航栏 tab 与下方那行简介;新增示例只要加一条路由。
30
- - 全屏按钮只把示例舞台(`<main class="demo-stage">`)送进全屏,导航栏 / 页脚留在全屏元素之外;按钮本身在舞台内部,所以全屏后仍然可见、可点击退出。实现与 tpl 的 `Screenfull` 一致(标准 API + WebKit / Mozilla / Trident 前缀、`fullscreenchange` 事件同步),但不依赖 element-ui。
41
+ - 全屏按钮只把当前示例标记为 `data-demo-preview` 的组件预览区送进全屏,页面标题、简介、说明与页脚都留在屏幕外;全屏借用 `vue-fullscreen` 4.x legacy 的 `pageOnly + teleport` 模式:预览区临时挂到 body、用 fixed 铺满视口,退出时还原到页面原位置,不调用浏览器原生 Fullscreen API(iframe 内也可用)。预览区右下角提供「退出全屏」浮层按钮,Esc 也可退出;切换路由时会自动退出并还原。
42
+ - 需要全屏的示例在组件预览区外包一层 `<demo-preview>`;简介页没有预览区,在路由 `meta` 里标记 `fullscreen: false`,工具栏不显示全屏按钮。
31
43
 
32
44
  ## 文件结构
33
45
 
@@ -36,12 +48,13 @@ demo-vue2-ele/src
36
48
  ├── App.vue # demo 外壳:导航栏 + 示例舞台(含全屏按钮)+ router-view
37
49
  ├── components/
38
50
  │ ├── DemoNavbar.vue # 顶部导航栏:示例 tab + 当前示例简介
51
+ │ ├── DemoPreview.vue # 组件预览区:全屏目标 + 「退出全屏」浮层按钮
39
52
  │ └── ScreenfullButton.vue # 示例区全屏按钮(无 element-ui 依赖)
40
53
  ├── configs/app.js # demo 展示信息(名称 / 端口 / 远端地址 / 仓库链接)
41
54
  ├── router/index.js # 示例路由(hash 模式)
42
55
  ├── styles/ # base.css(变量与重置)+ demo-shell.css(外壳样式)
43
- ├── utils/fullscreen.js # Fullscreen API 跨浏览器封装
44
- ├── views/ # OverviewView / RemoteCompView / RankingView / LibsView / TplCompView
56
+ ├── views/ # Overview / RemoteComp / Ranking / TcClamp / TcBlock / TcMore / TcIcon / TcButton / TcSelect / TcRadio / TcDialog / TcLoading / TcLetterAvatar / Libs / TplComp
57
+ ├── tc/components.js # 从远端 comps-vue2-ele 解构 Tc* 组件 + missingTc 检查
45
58
  └── libs/remoteLibs.js # 两个远程 libs 的预加载(Promise 复用)
46
59
  ```
47
60
 
@@ -55,8 +68,8 @@ demo-vue2-ele/src
55
68
 
56
69
  两个库都不在宿主的 `package.json` 依赖里(lodash 也没有安装),全部来自远程产物。host 同样按环境切换:生产指向 unpkg 的 `hel-meta.json`,开发指向各自 dev server(`http://localhost:10010` / `http://localhost:10020`),并用 `skipFetchHelMeta` 跳过 dev server 上不存在的 `hel-meta.json`、直接解析 `index.html` 里的入口脚本。
57
70
  4. `src/router/index.js`:`#/libs` 路由的组件工厂先 `await loadRemoteLibs()`(复用入口预加载的同一个 Promise,通常已 resolve),再动态 `import` 示例组件,组件内直接读 `getRemoteLibs()` 的已加载结果;其余示例同样按路由懒加载。
58
- 5. `src/App.vue`:导航栏 + 示例舞台;示例舞台持有 `router-view` 与全屏按钮,`ScreenfullButton` 的 `target` 指向舞台元素。
59
- 6. `src/views/RemoteCompView.vue` / `RankingView.vue`:渲染远程组件 `comps.App` / `comps.TierRanking`(静态导入只拿到 hel-lib-proxy 的空壳代理,真正的组件代码由入口的 `preFetchLib` 载入)。
71
+ 5. `src/App.vue`:导航栏 + 示例舞台;示例舞台持有 `router-view` 与全屏按钮,`ScreenfullButton` 的目标是当前页面 `DemoPreview` 渲染的 `[data-demo-preview]`。
72
+ 6. `src/views/RemoteCompView.vue` / `RankingView.vue` / `Tc*View.vue`:渲染远程组件 `comps.App` / `comps.TierRanking` / 各 `Tc*` 组件(组件从 `src/tc/components.js` 解构;静态导入只拿到 hel-lib-proxy 的空壳代理,真正的组件代码由入口的 `preFetchLib` 载入)。
60
73
 
61
74
  ## 排行榜远程组件(TierRanking)
62
75
 
@@ -66,6 +79,30 @@ demo-vue2-ele/src
66
79
  - 线上:远端 `hel-meta.json` 会同时下发排行榜所在的 chunk(webpack 把组件拆成了独立 chunk),因此生产构建(远端走 unpkg)同样能渲染 `#/ranking`;只有远端版本早于排行榜组件时,页面才会显示「远端产物没有导出 TierRanking」的提示。
67
80
  - 排行榜状态存在 IndexedDB(库名 `tier-ranking-db`,`storageKey=demo-vue2-ele-ranking`),用组件自带的「重置排行榜」即可恢复默认评级。
68
81
 
82
+ ## 文本截断远程组件(TcClamp)
83
+
84
+ - 组件源码在 [`comps-vue2-ele/src/components/TcClamp`](../comps-vue2-ele/src/components/TcClamp),提取自 [think-vuele](https://github.com/chfree/think-vuele) 的 `packages/clamp`(其核心同 [Justineo/vue-clamp](https://github.com/Justineo/vue-clamp)),由 `src/components/index.js` 与 `libProperties` 一起导出。
85
+ - 能力:`max-lines` / `max-height` 截断、`autoresize` 容器自适应、`ellipsis` 自定义省略号、`use-mode="expand"` 展开 / 收起、`auto-tip` 悬停看全文、`expanded.sync` 受控展开,以及 `before` / `after` 作用域插槽。
86
+ - 适配说明:`comps-vue2-ele` 不依赖 element-ui,因此原实现的 `el-tooltip` 换成根节点原生 `title`,`tc-button` 换成原生 `button`,resize-detector 换成 `ResizeObserver`(不再支持 IE11)。
87
+ - 本地联调:`pnpm comps:dev`(20010)的产物直接可用,打开 <http://localhost:30010/#/tc-clamp>;远端版本较旧没导出 `TcClamp` 时,页面会显示提示而不是报错。
88
+
89
+ ## Tc 组件库(每个组件一个 tab)
90
+
91
+ - 组件源码在 [`comps-vue2-ele/src/components`](../comps-vue2-ele/src/components),统一用 `Tc` 前缀导出(`TcBlock`、`TcButton`…),模板里写 `<tc-block>`、`<tc-button>`。
92
+ - 全部沿用 `TcClamp` 的思路:**不引入 element-ui**。原来的 `el-button` / `el-select` / `el-radio-group` / `el-dialog` / `el-collapse` 等换成原生实现;`el-icon-*` 换成内置字符或任意图标类名(`TcIcon`)。
93
+ - 导航栏按组件拆成 10 个 tab,每个 tab 都是该组件的完整演示:
94
+ - `#/tc-clamp`:截断行数 / 高度、悬停、展开收起、容器自适应
95
+ - `#/tc-block`:插槽、shadow、最小化、window / document 全屏
96
+ - `#/tc-more`:基础、默认展开、`expanded.sync`、插槽
97
+ - `#/tc-icon`:尺寸、颜色、spin、name 类名
98
+ - `#/tc-button`:全部 type / size / 状态 / 点击事件 / 按钮组
99
+ - `#/tc-select`:providers、placeholder、禁用、自定义 option
100
+ - `#/tc-radio`:providers 分段按钮、TcRadio、TcRadioButton、禁用
101
+ - `#/tc-dialog`:基础、尺寸、loading、beforeClose、遮罩 / Esc、forceEnabled
102
+ - `#/tc-loading`:19 个动画、尺寸颜色、自定义文案
103
+ - `#/tc-letter-avatar`:自动缩写、initials、配色、rounded / inline、图片
104
+ - 各组件的能力与差异见 [`comps-vue2-ele/README.md`](../comps-vue2-ele/README.md) 的「导出组件」表,源码头部也记录了与上游 think-vuele 的行为差异。
105
+
69
106
  ## 本地开发
70
107
 
71
108
  ```bash
@@ -0,0 +1 @@
1
+ .clamp-grid[data-v-03ae21a7]{display:grid;gap:16px}.clamp-card[data-v-03ae21a7]{padding:16px 18px;border:1px solid var(--demo-border);border-radius:12px;background:var(--demo-surface-alt)}.clamp-card__title[data-v-03ae21a7]{margin:0 0 6px;color:var(--demo-text);font-size:14px}.clamp-card__hint[data-v-03ae21a7]{margin:0 0 10px;color:var(--demo-muted);font-size:12.5px;line-height:1.6}.clamp-card__body[data-v-03ae21a7]{color:var(--demo-text);font-size:14px;line-height:1.8}.clamp-card__body--resizable[data-v-03ae21a7]{width:70%;min-width:200px;max-width:100%;padding-right:12px;padding-bottom:12px;border-right:1px dashed var(--demo-border);border-bottom:1px dashed var(--demo-border);overflow:auto;resize:horizontal}
@@ -0,0 +1 @@
1
+ :root{color-scheme:light;--demo-accent:#42b983;--demo-accent-soft:rgba(66,185,131,0.1);--demo-accent-border:#b7e4cd;--demo-text:#1f2933;--demo-muted:#64748b;--demo-border:#e5e7eb;--demo-bg:#f5f7fa;--demo-surface:#fff;--demo-surface-alt:#fafbfc}html{-webkit-text-size-adjust:100%}body{margin:0;min-width:320px;min-height:100vh;background:var(--demo-bg);color:var(--demo-text);font-family:system-ui,-apple-system,Segoe UI,Avenir,Helvetica,Arial,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--demo-accent)}img{max-width:100%}html body{display:block;text-align:start}html #app{width:100%;max-width:none;margin:0;padding:0;text-align:start}*,:after,:before{box-sizing:border-box}.demo-app{display:flex;flex-direction:column;min-height:100vh}.demo-navbar{position:sticky;top:0;z-index:30;border-bottom:1px solid var(--demo-border);background:hsla(0,0%,100%,.92);backdrop-filter:blur(12px)}.demo-navbar__inner{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;justify-content:space-between;width:100%;max-width:1180px;margin:0 auto;padding:14px 24px 10px}.demo-navbar__brand{display:flex;align-items:center;gap:12px;min-width:0}.demo-navbar__badge{flex:none;padding:5px 10px;border-radius:999px;background:var(--demo-accent-soft);color:var(--demo-accent);font-size:12px;font-weight:700;letter-spacing:.04em;line-height:1.2}.demo-navbar__title{margin:0;color:var(--demo-text);font-size:16px;font-weight:700;line-height:1.3}.demo-navbar__sub{margin:2px 0 0;color:var(--demo-muted);font-size:12px;line-height:1.4}.demo-navbar__nav{display:flex;flex-wrap:wrap;gap:6px}.demo-nav__link{padding:7px 14px;border:1px solid transparent;border-radius:999px;color:var(--demo-muted);font-size:13px;font-weight:600;text-decoration:none;transition:color .2s,background-color .2s,border-color .2s}.demo-nav__link.is-active,.demo-nav__link:hover{background:var(--demo-accent-soft);color:var(--demo-accent)}.demo-nav__link.is-active{border-color:var(--demo-accent-border)}.demo-navbar__intro{display:flex;align-items:center;gap:10px;width:100%;max-width:1180px;margin:0 auto;padding:0 24px 12px;color:var(--demo-muted);font-size:12.5px;line-height:1.5}.demo-navbar__intro-tag{flex:none;padding:2px 8px;border:1px solid var(--demo-border);border-radius:999px;background:var(--demo-surface);color:var(--demo-text);font-size:11px;font-weight:600;line-height:1.6}.demo-navbar__intro-text{min-width:0;margin:0}.demo-stage{flex:1 0 auto;width:100%;max-width:1180px;margin:0 auto;padding:20px 24px 40px}.demo-stage__toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.demo-stage__hint{color:var(--demo-muted);font-size:12px;font-weight:600;letter-spacing:.08em}.demo-stage__hint em{color:var(--demo-accent);font-style:normal}.demo-stage__page{padding:28px 32px;border:1px solid var(--demo-border);border-radius:16px;background:var(--demo-surface);box-shadow:0 1px 2px rgba(16,24,40,.04),0 12px 32px -24px rgba(16,24,40,.35)}.demo-preview{position:relative;min-width:0}.demo-preview.is-demo-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147482000;width:100%;height:100%;margin:0;padding:24px;overflow:auto;overscroll-behavior:contain;background:var(--demo-bg)}.demo-preview__exit{display:none}.demo-preview.is-demo-fullscreen .demo-preview__exit{position:fixed;right:20px;bottom:20px;z-index:2147483000;display:inline-flex;gap:6px;align-items:center;padding:8px 14px;border:1px solid var(--demo-border);border-radius:999px;background:hsla(0,0%,100%,.94);box-shadow:0 8px 24px rgba(16,24,40,.18);color:var(--demo-text);font-family:inherit;font-size:13px;font-weight:600;line-height:1;cursor:pointer;backdrop-filter:blur(8px);-webkit-tap-highlight-color:transparent}.demo-preview__exit:hover{border-color:var(--demo-accent-border);background:var(--demo-surface);color:var(--demo-accent)}.demo-preview__exit:focus-visible{outline:2px solid var(--demo-accent);outline-offset:2px}.demo-preview__exit-icon{flex:none;width:15px;height:15px}.screenfull-btn{display:inline-flex;flex:none;gap:6px;align-items:center;padding:7px 14px;border:1px solid var(--demo-border);border-radius:999px;background:var(--demo-surface);color:var(--demo-text);font-family:inherit;font-size:13px;font-weight:600;line-height:1;cursor:pointer;transition:color .2s,background-color .2s,border-color .2s;-webkit-tap-highlight-color:transparent}.screenfull-btn:hover{border-color:var(--demo-accent-border);background:var(--demo-accent-soft);color:var(--demo-accent)}.screenfull-btn:focus-visible{outline:2px solid var(--demo-accent);outline-offset:2px}.screenfull-btn.is-fullscreen{border-color:var(--demo-accent-border);background:var(--demo-accent-soft);color:var(--demo-accent)}.screenfull-btn.is-disabled{cursor:not-allowed;opacity:.5}.screenfull-btn__icon{flex:none;width:15px;height:15px}.demo-footer{display:flex;flex-wrap:wrap;gap:10px 20px;align-items:center;justify-content:space-between;width:100%;max-width:1180px;margin:0 auto;padding:16px 24px 28px;color:var(--demo-muted);font-size:12px}.demo-footer a{color:var(--demo-accent);text-decoration:none}.demo-footer a:hover{text-decoration:underline}.demo-page{display:flex;flex-direction:column;gap:22px}.demo-page__eyebrow{margin:0 0 8px;color:var(--demo-accent);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.demo-page__title{margin:0 0 12px;color:var(--demo-text);font-size:26px;line-height:1.25}.demo-page__lead{max-width:72ch;margin:0;color:var(--demo-muted);font-size:14px;line-height:1.8}.demo-page__section-title{margin:0 0 12px;color:var(--demo-text);font-size:16px}.demo-code,.demo-page code{padding:2px 6px;border-radius:6px;background:#f0f2f5;color:#c7254e;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px}.demo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}.demo-card{padding:16px 18px;border:1px solid var(--demo-border);border-radius:12px;background:var(--demo-surface-alt)}.demo-card__title{margin:0 0 6px;color:var(--demo-text);font-size:14px}.demo-card__text{margin:0;color:var(--demo-muted);font-size:13px;line-height:1.7}.demo-card--link{display:block;color:inherit;text-decoration:none;transition:border-color .2s,background-color .2s,transform .2s}.demo-card--link:hover{border-color:var(--demo-accent-border);background:var(--demo-accent-soft);transform:translateY(-1px)}.demo-card__action{display:inline-block;margin-top:8px;color:var(--demo-accent);font-size:12px;font-weight:600}.demo-table{width:100%;border-collapse:collapse;font-size:13px}.demo-table td,.demo-table th{padding:9px 12px;border-bottom:1px solid var(--demo-border);text-align:left;vertical-align:top}.demo-table tr:last-child td,.demo-table tr:last-child th{border-bottom:0}.demo-table th{width:32%;color:var(--demo-muted);font-weight:600;white-space:nowrap}.demo-table td{color:var(--demo-text);overflow-wrap:anywhere}.demo-table td>div+div{margin-top:4px}.demo-note{display:flex;gap:10px;margin:0;padding:12px 16px;border-left:3px solid var(--demo-accent);border-radius:0 10px 10px 0;background:var(--demo-accent-soft);color:var(--demo-text);font-size:13px;line-height:1.7}.demo-btn{display:inline-flex;gap:6px;align-items:center;padding:9px 18px;border:1px solid var(--demo-accent);border-radius:8px;background:var(--demo-accent);color:#fff;font-family:inherit;font-size:14px;font-weight:600;line-height:1.4;cursor:pointer;transition:filter .2s,transform .2s}.demo-btn:hover{filter:brightness(1.06)}.demo-btn:active{transform:translateY(1px)}.demo-btn--ghost{background:transparent;color:var(--demo-accent)}.demo-links{display:flex;flex-wrap:wrap;gap:10px}.demo-links a{padding:8px 14px;border:1px solid var(--demo-border);border-radius:8px;background:var(--demo-surface);color:var(--demo-text);font-size:13px;text-decoration:none;transition:color .2s,background-color .2s,border-color .2s}.demo-links a:hover{border-color:var(--demo-accent-border);color:var(--demo-accent)}.demo-links a:hover,.demo-remote{background:var(--demo-accent-soft)}.demo-remote{padding:18px;border:2px dashed var(--demo-accent-border);border-radius:12px}.tc-stack{display:flex;flex-direction:column;gap:22px}.tc-demo-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.tc-demo-row+.tc-demo-row{margin-top:10px}.tc-demo-hint{margin:0 0 10px;color:var(--demo-muted);font-size:12.5px;line-height:1.6}.tc-demo-text{margin:0;color:var(--demo-text);font-size:13px;line-height:1.7}.tc-demo-badge{display:inline-block;margin-right:4px;padding:1px 6px;border-radius:4px;background:var(--demo-accent-soft);color:var(--demo-accent);font-size:11px;font-weight:700}.tc-demo-pre{margin:10px 0 0;padding:10px 12px;border-radius:8px;background:#f5f7fa;color:#476582;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.7;overflow-x:auto}.demo-fade-enter-active,.demo-fade-leave-active{transition:opacity .18s ease,transform .18s ease}.demo-fade-enter,.demo-fade-enter-from,.demo-fade-leave-to{opacity:0;transform:translateY(4px)}@media (max-width:720px){.demo-footer,.demo-navbar__inner,.demo-navbar__intro,.demo-stage{padding-right:16px;padding-left:16px}.demo-stage__page{padding:20px 18px}.demo-page__title{font-size:22px}.demo-preview__exit-text,.screenfull-btn__text{display:none}}
Binary file
package/dist/index.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>@melt-js/demo-vue2-ele</title><script src="https://cdn.staticfile.org/vue/2.7.16/vue.min.js"></script><link href="css/chunk-0e95c738.b7a841a9.css" rel="prefetch"><link href="css/chunk-21f01263.e1a17849.css" rel="prefetch"><link href="css/chunk-74ad0e21.c7b315b6.css" rel="prefetch"><link href="css/chunk-b0aa754e.999325e3.css" rel="prefetch"><link href="css/chunk-dce21a74.bdc89fcd.css" rel="prefetch"><link href="js/chunk-0e95c738.08045311.js" rel="prefetch"><link href="js/chunk-21f01263.91790aec.js" rel="prefetch"><link href="js/chunk-2d221fe7.e75373d8.js" rel="prefetch"><link href="js/chunk-74ad0e21.7bd2a361.js" rel="prefetch"><link href="js/chunk-b0aa754e.16975c2a.js" rel="prefetch"><link href="js/chunk-dce21a74.2d939e53.js" rel="prefetch"><link href="js/app.ee9963b0.js" rel="preload" as="script"><link href="js/chunk-vendors.86c551a5.js" rel="preload" as="script"></head><body><noscript><strong>We're sorry but @melt-js/demo-vue2-ele doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="js/chunk-vendors.86c551a5.js"></script><script src="js/app.ee9963b0.js"></script></body></html>
1
+ <!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>@melt-js/demo-vue2-ele</title><script src="https://cdn.staticfile.org/vue/2.7.16/vue.min.js"></script><link href="css/chunk-100f4182.bdc89fcd.css" rel="prefetch"><link href="css/chunk-109e6ced.c7b315b6.css" rel="prefetch"><link href="css/chunk-6a35b81e.35a1c103.css" rel="prefetch"><link href="css/chunk-76cece1a.999325e3.css" rel="prefetch"><link href="css/chunk-7a0c737c.0fe5c208.css" rel="prefetch"><link href="css/chunk-83847dde.b7a841a9.css" rel="prefetch"><link href="js/chunk-100f4182.391add39.js" rel="prefetch"><link href="js/chunk-109e6ced.423e5c6b.js" rel="prefetch"><link href="js/chunk-13f34938.89418ccf.js" rel="prefetch"><link href="js/chunk-1a9ef670.9c060fcd.js" rel="prefetch"><link href="js/chunk-219be077.32809f5a.js" rel="prefetch"><link href="js/chunk-270a4eba.bb6888b6.js" rel="prefetch"><link href="js/chunk-2d221fe7.b206265b.js" rel="prefetch"><link href="js/chunk-472c32b8.30a1f6d3.js" rel="prefetch"><link href="js/chunk-499dcf4e.c494d453.js" rel="prefetch"><link href="js/chunk-5cbef67a.b1cb3f18.js" rel="prefetch"><link href="js/chunk-6a35b81e.2b1a5e05.js" rel="prefetch"><link href="js/chunk-71921a8b.09bb010d.js" rel="prefetch"><link href="js/chunk-76cece1a.8dfb638e.js" rel="prefetch"><link href="js/chunk-7a0c737c.03221242.js" rel="prefetch"><link href="js/chunk-83847dde.2e72a269.js" rel="prefetch"><link href="js/chunk-bdb4687c.1e0b0b32.js" rel="prefetch"><link href="js/app.7856b6d9.js" rel="preload" as="script"><link href="js/chunk-vendors.043cff34.js" rel="preload" as="script"></head><body><noscript><strong>We're sorry but @melt-js/demo-vue2-ele doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="js/chunk-vendors.043cff34.js"></script><script src="js/app.7856b6d9.js"></script></body></html>
@@ -0,0 +1,2 @@
1
+ (function(e){function t(t){for(var c,r,a=t[0],s=t[1],l=t[2],i=0,h=[];i<a.length;i++)r=a[i],Object.prototype.hasOwnProperty.call(o,r)&&o[r]&&h.push(o[r][0]),o[r]=0;for(c in s)Object.prototype.hasOwnProperty.call(s,c)&&(e[c]=s[c]);d&&d(t);while(h.length)h.shift()();return u.push.apply(u,l||[]),n()}function n(){for(var e,t=0;t<u.length;t++){for(var n=u[t],c=!0,r=1;r<n.length;r++){var a=n[r];0!==o[a]&&(c=!1)}c&&(u.splice(t--,1),e=s(s.s=n[0]))}return e}var c={},r={app:0},o={app:0},u=[];function a(e){return s.p+"js/"+({}[e]||e)+"."+{"chunk-7a0c737c":"03221242","chunk-100f4182":"391add39","chunk-109e6ced":"423e5c6b","chunk-13f34938":"89418ccf","chunk-1a9ef670":"9c060fcd","chunk-219be077":"32809f5a","chunk-270a4eba":"bb6888b6","chunk-2d221fe7":"b206265b","chunk-472c32b8":"30a1f6d3","chunk-499dcf4e":"c494d453","chunk-5cbef67a":"b1cb3f18","chunk-6a35b81e":"2b1a5e05","chunk-71921a8b":"09bb010d","chunk-76cece1a":"8dfb638e","chunk-83847dde":"2e72a269","chunk-bdb4687c":"1e0b0b32"}[e]+".js"}function s(t){if(c[t])return c[t].exports;var n=c[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,s),n.l=!0,n.exports}s.e=function(e){var t=[],n={"chunk-7a0c737c":1,"chunk-100f4182":1,"chunk-109e6ced":1,"chunk-6a35b81e":1,"chunk-76cece1a":1,"chunk-83847dde":1};r[e]?t.push(r[e]):0!==r[e]&&n[e]&&t.push(r[e]=new Promise((function(t,n){for(var c="css/"+({}[e]||e)+"."+{"chunk-7a0c737c":"0fe5c208","chunk-100f4182":"bdc89fcd","chunk-109e6ced":"c7b315b6","chunk-13f34938":"31d6cfe0","chunk-1a9ef670":"31d6cfe0","chunk-219be077":"31d6cfe0","chunk-270a4eba":"31d6cfe0","chunk-2d221fe7":"31d6cfe0","chunk-472c32b8":"31d6cfe0","chunk-499dcf4e":"31d6cfe0","chunk-5cbef67a":"31d6cfe0","chunk-6a35b81e":"35a1c103","chunk-71921a8b":"31d6cfe0","chunk-76cece1a":"999325e3","chunk-83847dde":"b7a841a9","chunk-bdb4687c":"31d6cfe0"}[e]+".css",o=s.p+c,u=document.getElementsByTagName("link"),a=0;a<u.length;a++){var l=u[a],i=l.getAttribute("data-href")||l.getAttribute("href");if("stylesheet"===l.rel&&(i===c||i===o))return t()}var h=document.getElementsByTagName("style");for(a=0;a<h.length;a++){l=h[a],i=l.getAttribute("data-href");if(i===c||i===o)return t()}var d=document.createElement("link");d.rel="stylesheet",d.type="text/css",d.onload=t,d.onerror=function(t){var c=t&&t.target&&t.target.src||o,u=new Error("Loading CSS chunk "+e+" failed.\n("+c+")");u.code="CSS_CHUNK_LOAD_FAILED",u.request=c,delete r[e],d.parentNode.removeChild(d),n(u)},d.href=o;var f=document.getElementsByTagName("head")[0];f.appendChild(d)})).then((function(){r[e]=0})));var c=o[e];if(0!==c)if(c)t.push(c[2]);else{var u=new Promise((function(t,n){c=o[e]=[t,n]}));t.push(c[2]=u);var l,i=document.createElement("script");i.charset="utf-8",i.timeout=120,s.nc&&i.setAttribute("nonce",s.nc),i.src=a(e);var h=new Error;l=function(t){i.onerror=i.onload=null,clearTimeout(d);var n=o[e];if(0!==n){if(n){var c=t&&("load"===t.type?"missing":t.type),r=t&&t.target&&t.target.src;h.message="Loading chunk "+e+" failed.\n("+c+": "+r+")",h.name="ChunkLoadError",h.type=c,h.request=r,n[1](h)}o[e]=void 0}};var d=setTimeout((function(){l({type:"timeout",target:i})}),12e4);i.onerror=i.onload=l,document.head.appendChild(i)}return Promise.all(t)},s.m=e,s.c=c,s.d=function(e,t,n){s.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},s.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.t=function(e,t){if(1&t&&(e=s(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(s.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var c in e)s.d(n,c,function(t){return e[t]}.bind(null,c));return n},s.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return s.d(t,"a",t),t},s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.p="",s.oe=function(e){throw console.error(e),e};var l=window["webpackJsonp"]=window["webpackJsonp"]||[],i=l.push.bind(l);l.push=t,l=l.slice();for(var h=0;h<l.length;h++)t(l[h]);var d=i;u.push([0,"chunk-vendors"]),n()})({0:function(e,t,n){e.exports=n("56d7")},"56d7":function(e,t,n){"use strict";n.r(t);var c=n("3964"),r=n("8bbf"),o=n.n(r),u=n("58c8"),a=n("cb87");o.a.use(u["a"]),Object(c["a"])({Vue:o()}),async function(){const e=!0,t=e?"https://unpkg.com/@melt-js/comps-vue2-ele/hel_dist/hel-meta.json":"http://localhost:20010";await Promise.all([Object(c["b"])("comps-vue2-ele",{custom:{host:t,skipFetchHelMeta:!t.endsWith("hel-meta.json")}}),Object(a["c"])()]),await n.e("chunk-7a0c737c").then(n.bind(null,"a581"))}().catch(e=>{console.error("loadApp err: ",e)})},"8bbf":function(e,t){e.exports=Vue},cb87:function(e,t,n){"use strict";n.d(t,"a",(function(){return u})),n.d(t,"c",(function(){return i})),n.d(t,"b",(function(){return h}));var c=n("3964");const r=[{name:"libs-utils",npmName:"@melt-js/libs-utils",devPort:10010},{name:"libs-lodash",npmName:"@melt-js/libs-lodash",devPort:10020}],o=!0,u=o?"production:从 unpkg 上的 hel-meta.json 加载":"development:从本地 dev server 加载(10010 / 10020)";function a({npmName:e,devPort:t}){return o?{host:`https://unpkg.com/${e}/hel_dist/hel-meta.json`}:{host:"http://localhost:"+t,skipFetchHelMeta:!0}}let s=null,l=null;function i(){return s||(s=Promise.all(r.map(e=>{const t=a(e);return console.log(`[demo-vue2-ele] preFetchLib('${e.name}') from ${t.host}`),Object(c["b"])(e.name,{custom:t})})).then(([e,t])=>(l={libsUtils:e,libsLodash:t},l))),s}function h(){return l}}});
2
+ //# sourceMappingURL=app.7856b6d9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/main.js","webpack:///external \"Vue\"","webpack:///./src/libs/remoteLibs.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","Vue","use","VueFullscreen","bindVueRuntime","isProd","process","host","preFetchLib","custom","skipFetchHelMeta","endsWith","loadRemoteLibs","catch","REMOTE_LIBS","npmName","devPort","ENV_LABEL","getCustom","remoteLibsPromise","remoteLibs","map","item","log","libsUtils","libsLodash","getRemoteLibs"],"mappings":"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","file":"js/app.7856b6d9.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-7a0c737c\":\"03221242\",\"chunk-100f4182\":\"391add39\",\"chunk-109e6ced\":\"423e5c6b\",\"chunk-13f34938\":\"89418ccf\",\"chunk-1a9ef670\":\"9c060fcd\",\"chunk-219be077\":\"32809f5a\",\"chunk-270a4eba\":\"bb6888b6\",\"chunk-2d221fe7\":\"b206265b\",\"chunk-472c32b8\":\"30a1f6d3\",\"chunk-499dcf4e\":\"c494d453\",\"chunk-5cbef67a\":\"b1cb3f18\",\"chunk-6a35b81e\":\"2b1a5e05\",\"chunk-71921a8b\":\"09bb010d\",\"chunk-76cece1a\":\"8dfb638e\",\"chunk-83847dde\":\"2e72a269\",\"chunk-bdb4687c\":\"1e0b0b32\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-7a0c737c\":1,\"chunk-100f4182\":1,\"chunk-109e6ced\":1,\"chunk-6a35b81e\":1,\"chunk-76cece1a\":1,\"chunk-83847dde\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-7a0c737c\":\"0fe5c208\",\"chunk-100f4182\":\"bdc89fcd\",\"chunk-109e6ced\":\"c7b315b6\",\"chunk-13f34938\":\"31d6cfe0\",\"chunk-1a9ef670\":\"31d6cfe0\",\"chunk-219be077\":\"31d6cfe0\",\"chunk-270a4eba\":\"31d6cfe0\",\"chunk-2d221fe7\":\"31d6cfe0\",\"chunk-472c32b8\":\"31d6cfe0\",\"chunk-499dcf4e\":\"31d6cfe0\",\"chunk-5cbef67a\":\"31d6cfe0\",\"chunk-6a35b81e\":\"35a1c103\",\"chunk-71921a8b\":\"31d6cfe0\",\"chunk-76cece1a\":\"999325e3\",\"chunk-83847dde\":\"b7a841a9\",\"chunk-bdb4687c\":\"31d6cfe0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","/* eslint-disable */\nimport { preFetchLib, bindVueRuntime } from 'hel-micro';\nimport Vue from 'vue';\nimport VueFullscreen from 'vue-fullscreen';\nimport { loadRemoteLibs } from './libs/remoteLibs';\n\n// vue-fullscreen 4.x 是 Vue 2 的 legacy 版本:注册 <fullscreen> / v-fullscreen / $fullscreen\nVue.use(VueFullscreen);\n\nbindVueRuntime({ Vue });\n\n(async function () {\n // comps 的 hel 组名是 comps-vue2-ele,npm 包名是 @melt-js/comps-vue2-ele,两者不一致,\n // 所以这里用组名调用 preFetchLib,并把 custom.host 指向该包的产物\n // (hel-micro 的 name 参数同时是包名和组名,只有 custom 模式能把两者分开)\n // - 生产:unpkg 上该包的 hel-meta.json\n // - 开发:pnpm comps:dev 起的 20010 端口(web-dev-server 实时生成的产物,没有 hel-meta.json)\n const isProd = process.env.NODE_ENV === 'production';\n const host = isProd\n ? 'https://unpkg.com/@melt-js/comps-vue2-ele/hel_dist/hel-meta.json'\n : 'http://localhost:20010';\n\n // 入口处统一预加载:远程组件 + 两个远程 libs(libs 的预加载逻辑在 libs/remoteLibs.js)\n await Promise.all([\n preFetchLib('comps-vue2-ele', {\n custom: {\n host,\n // dev server 没有 hel-meta.json,直接解析远端 index.html\n skipFetchHelMeta: !host.endsWith('hel-meta.json'),\n },\n }),\n loadRemoteLibs(),\n ]);\n\n await import('./loadApp');\n})().catch(err => {\n console.error('loadApp err: ', err);\n});\n","module.exports = Vue;","/* eslint-disable */\nimport { preFetchLib } from 'hel-micro';\n\n/**\n * 两个远程 libs 包\n * - name:hel 组名(appGroupName / LIB_NAME),preFetchLib 用它加载\n * - npmName:scoped npm 包名,只用于拼 unpkg 上的 hel-meta.json 地址\n * - devPort:本地 dev server 端口,登记见仓库根目录 ports.json(libs = 100xx)\n */\nconst REMOTE_LIBS = [\n { name: 'libs-utils', npmName: '@melt-js/libs-utils', devPort: 10010 },\n { name: 'libs-lodash', npmName: '@melt-js/libs-lodash', devPort: 10020 },\n];\n\nexport const isProd = process.env.NODE_ENV === 'production';\n\nexport const ENV_LABEL = isProd\n ? 'production:从 unpkg 上的 hel-meta.json 加载'\n : 'development:从本地 dev server 加载(10010 / 10020)';\n\n/**\n * 按环境生成 custom 配置\n * - 生产:unpkg 上的 hel-meta.json(前提是这些包已发布到 npm)\n * - 开发:libs 各自的 vite dev server。dev server 没有 hel-meta.json,\n * 用 skipFetchHelMeta 跳过该请求,直接解析 index.html 里的入口脚本\n */\nfunction getCustom({ npmName, devPort }) {\n if (isProd) {\n return { host: `https://unpkg.com/${npmName}/hel_dist/hel-meta.json` };\n }\n\n return {\n host: `http://localhost:${devPort}`,\n skipFetchHelMeta: true,\n };\n}\n\nlet remoteLibsPromise = null;\nlet remoteLibs = null;\n\n/**\n * 入口处(main.js)调用一次,并行加载两个远程库;\n * 重复调用复用同一个 Promise,异步组件里 await 它即可。\n * resolve 值:\n * - libsUtils:{ regs, num, myMod }\n * - libsLodash:{ ...lodash, myUtils }\n */\nexport function loadRemoteLibs() {\n if (!remoteLibsPromise) {\n remoteLibsPromise = Promise.all(\n REMOTE_LIBS.map(item => {\n const custom = getCustom(item);\n console.log(`[demo-vue2-ele] preFetchLib('${item.name}') from ${custom.host}`);\n return preFetchLib(item.name, { custom });\n }),\n ).then(([libsUtils, libsLodash]) => {\n remoteLibs = { libsUtils, libsLodash };\n return remoteLibs;\n });\n }\n\n return remoteLibsPromise;\n}\n\n/** 已加载完成的远程库(入口处 await 过 loadRemoteLibs 后才有值) */\nexport function getRemoteLibs() {\n return remoteLibs;\n}\n"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-dce21a74"],{"2ef2":function(e,t,a){},"3ae7":function(e,t,a){"use strict";a("2ef2")},"9b61":function(e,t,a){"use strict";a.r(t);var n=function(){var e=this,t=e._self._c;return t("div",{staticClass:"demo-page"},[e._m(0),e.rankingComp?t("demo-preview",{staticClass:"ranking-preview"},[t("div",{staticClass:"ranking-shell"},[t(e.rankingComp,{tag:"component",attrs:{"storage-key":"demo-vue2-ele-ranking"}})],1)]):t("p",{staticClass:"demo-note"},[e._v(" 当前远端产物没有导出 "),t("code",[e._v("TierRanking")]),e._v("(远端版本可能早于排行榜组件)。 本地联调请先执行 "),t("code",[e._v("pnpm comps:dev")]),e._v("(20010),或发布包含排行榜的新版 comps-vue2-ele 后再看线上效果。 ")]),e._m(1),t("div",{staticClass:"demo-links"},[t("a",{attrs:{href:"https://github.com/hel-eco/hel-tpl-remote-vue-comp",target:"_blank",rel:"noopener"}},[e._v(" 远程组件仓库 ")]),t("router-link",{attrs:{to:"/remote-comp"}},[e._v("对比普通远程组件示例 →")])],1)],1)},s=[function(){var e=this,t=e._self._c;return t("header",[t("p",{staticClass:"demo-page__eyebrow"},[e._v("远程组件 · 排行榜")]),t("h1",{staticClass:"demo-page__title"},[e._v("TierRanking 从夯到拉排行榜")]),t("p",{staticClass:"demo-page__lead"},[e._v(" 排行榜也是 comps-vue2-ele 暴露的远程组件("),t("code",[e._v("TierRanking")]),e._v("): 组件代码与样式都随远端产物下发,宿主只负责挂载。支持拖拽排序、跨评级拖动、 上传图片(自动压缩)、评级改名 / 改色 / 增删,状态默认存 IndexedDB、刷新不丢。 排行榜比较占地方,建议先点右上角「全屏」再玩。 ")])])},function(){var e=this,t=e._self._c;return t("p",{staticClass:"demo-note"},[e._v(" 状态存在 IndexedDB(库名 "),t("code",[e._v("tier-ranking-db")]),e._v("),用组件自带的 「重置排行榜」可恢复默认评级;导出图片时组件会按需从 CDN 加载 html2canvas。 组件内已经包含上传、拖拽、删除等交互,宿主不需要再写任何逻辑。 ")])}],i=a("cc15"),o=a("afbc"),r={name:"RankingView",components:{DemoPreview:o["a"]},computed:{rankingComp(){return i["a"].TierRanking}}},c=r,l=(a("3ae7"),a("ad2c")),u=Object(l["a"])(c,n,s,!1,null,"7ab32fee",null);t["default"]=u.exports},afbc:function(e,t,a){"use strict";var n=function(){var e=this,t=e._self._c;return t("div",{staticClass:"demo-preview",attrs:{"data-demo-preview":""}},[t("button",{staticClass:"demo-preview__exit",attrs:{type:"button",title:"退出全屏(Esc)","aria-label":"退出全屏"},on:{click:function(t){return t.stopPropagation(),e.exitFullscreen.apply(null,arguments)}}},[t("svg",{staticClass:"demo-preview__exit-icon",attrs:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false"}},[t("path",{attrs:{d:"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3"}})]),t("span",{staticClass:"demo-preview__exit-text"},[e._v("退出全屏")])]),e._t("default")],2)},s=[],i={name:"DemoPreview",methods:{exitFullscreen(){this.$fullscreen.exit().catch(e=>{console.warn("[Fullscreen] Failed to exit fullscreen:",e)})}}},o=i,r=a("ad2c"),c=Object(r["a"])(o,n,s,!1,null,null,null);t["a"]=c.exports},cc15:function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a("2c8a");const s="comps-vue2-ele";var i=Object(n["exposeLib"])(s)}}]);
2
- //# sourceMappingURL=chunk-dce21a74.2d939e53.js.map
1
+ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-100f4182"],{"042d":function(e,t,a){},"3ae7":function(e,t,a){"use strict";a("042d")},"9b61":function(e,t,a){"use strict";a.r(t);var n=function(){var e=this,t=e._self._c;return t("div",{staticClass:"demo-page"},[e._m(0),e.rankingComp?t("demo-preview",{staticClass:"ranking-preview"},[t("div",{staticClass:"ranking-shell"},[t(e.rankingComp,{tag:"component",attrs:{"storage-key":"demo-vue2-ele-ranking"}})],1)]):t("p",{staticClass:"demo-note"},[e._v(" 当前远端产物没有导出 "),t("code",[e._v("TierRanking")]),e._v("(远端版本可能早于排行榜组件)。 本地联调请先执行 "),t("code",[e._v("pnpm comps:dev")]),e._v("(20010),或发布包含排行榜的新版 comps-vue2-ele 后再看线上效果。 ")]),e._m(1),t("div",{staticClass:"demo-links"},[t("a",{attrs:{href:"https://github.com/hel-eco/hel-tpl-remote-vue-comp",target:"_blank",rel:"noopener"}},[e._v(" 远程组件仓库 ")]),t("router-link",{attrs:{to:"/remote-comp"}},[e._v("对比普通远程组件示例 →")])],1)],1)},s=[function(){var e=this,t=e._self._c;return t("header",[t("p",{staticClass:"demo-page__eyebrow"},[e._v("远程组件 · 排行榜")]),t("h1",{staticClass:"demo-page__title"},[e._v("TierRanking 从夯到拉排行榜")]),t("p",{staticClass:"demo-page__lead"},[e._v(" 排行榜也是 comps-vue2-ele 暴露的远程组件("),t("code",[e._v("TierRanking")]),e._v("): 组件代码与样式都随远端产物下发,宿主只负责挂载。支持拖拽排序、跨评级拖动、 上传图片(自动压缩)、评级改名 / 改色 / 增删,状态默认存 IndexedDB、刷新不丢。 排行榜比较占地方,建议先点右上角「全屏」再玩。 ")])])},function(){var e=this,t=e._self._c;return t("p",{staticClass:"demo-note"},[e._v(" 状态存在 IndexedDB(库名 "),t("code",[e._v("tier-ranking-db")]),e._v("),用组件自带的 「重置排行榜」可恢复默认评级;导出图片时组件会按需从 CDN 加载 html2canvas。 组件内已经包含上传、拖拽、删除等交互,宿主不需要再写任何逻辑。 ")])}],i=a("e8f1"),o=a("afbc"),r={name:"RankingView",components:{DemoPreview:o["a"]},computed:{rankingComp(){return i["a"].TierRanking}}},c=r,l=(a("3ae7"),a("a6c2")),u=Object(l["a"])(c,n,s,!1,null,"7ab32fee",null);t["default"]=u.exports},afbc:function(e,t,a){"use strict";var n=function(){var e=this,t=e._self._c;return t("div",{staticClass:"demo-preview",attrs:{"data-demo-preview":""}},[t("button",{staticClass:"demo-preview__exit",attrs:{type:"button",title:"退出全屏(Esc)","aria-label":"退出全屏"},on:{click:function(t){return t.stopPropagation(),e.exitFullscreen.apply(null,arguments)}}},[t("svg",{staticClass:"demo-preview__exit-icon",attrs:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false"}},[t("path",{attrs:{d:"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3"}})]),t("span",{staticClass:"demo-preview__exit-text"},[e._v("退出全屏")])]),e._t("default")],2)},s=[],i={name:"DemoPreview",methods:{exitFullscreen(){this.$fullscreen.exit().catch(e=>{console.warn("[Fullscreen] Failed to exit fullscreen:",e)})}}},o=i,r=a("a6c2"),c=Object(r["a"])(o,n,s,!1,null,null,null);t["a"]=c.exports},e8f1:function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a("fc8e");const s="comps-vue2-ele";var i=Object(n["exposeLib"])(s)}}]);
2
+ //# sourceMappingURL=chunk-100f4182.391add39.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["webpack:///./src/views/RankingView.vue?0911","webpack:///./src/views/RankingView.vue","webpack:///src/views/RankingView.vue","webpack:///./src/views/RankingView.vue?8bf5","webpack:///./src/views/RankingView.vue?693a","webpack:///./src/components/DemoPreview.vue","webpack:///src/components/DemoPreview.vue","webpack:///./src/components/DemoPreview.vue?f524","webpack:///./src/components/DemoPreview.vue?7d16","webpack:///../comps-vue2-ele/hel_proxy_es/entry.js"],"names":["render","_vm","this","_c","_self","staticClass","_m","rankingComp","tag","attrs","_v","staticRenderFns","name","components","DemoPreview","computed","comps","TierRanking","component","on","$event","stopPropagation","exitFullscreen","apply","arguments","_t","methods","$fullscreen","exit","catch","error","console","warn","LIB_NAME","dtlib","exposeLib"],"mappings":"2IAAA,W,2CCAA,IAAIA,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,aAAa,CAACJ,EAAIK,GAAG,GAAIL,EAAIM,YAAaJ,EAAG,eAAe,CAACE,YAAY,mBAAmB,CAACF,EAAG,MAAM,CAACE,YAAY,iBAAiB,CAACF,EAAGF,EAAIM,YAAY,CAACC,IAAI,YAAYC,MAAM,CAAC,cAAc,4BAA4B,KAAKN,EAAG,IAAI,CAACE,YAAY,aAAa,CAACJ,EAAIS,GAAG,gBAAgBP,EAAG,OAAO,CAACF,EAAIS,GAAG,iBAAiBT,EAAIS,GAAG,8BAA8BP,EAAG,OAAO,CAACF,EAAIS,GAAG,oBAAoBT,EAAIS,GAAG,kDAAkDT,EAAIK,GAAG,GAAGH,EAAG,MAAM,CAACE,YAAY,cAAc,CAACF,EAAG,IAAI,CAACM,MAAM,CAAC,KAAO,qDAAqD,OAAS,SAAS,IAAM,aAAa,CAACR,EAAIS,GAAG,cAAcP,EAAG,cAAc,CAACM,MAAM,CAAC,GAAK,iBAAiB,CAACR,EAAIS,GAAG,mBAAmB,IAAI,IAEvxBC,EAAkB,CAAC,WAAY,IAAIV,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,SAAS,CAACA,EAAG,IAAI,CAACE,YAAY,sBAAsB,CAACJ,EAAIS,GAAG,gBAAgBP,EAAG,KAAK,CAACE,YAAY,oBAAoB,CAACJ,EAAIS,GAAG,yBAAyBP,EAAG,IAAI,CAACE,YAAY,mBAAmB,CAACJ,EAAIS,GAAG,kCAAkCP,EAAG,OAAO,CAACF,EAAIS,GAAG,iBAAiBT,EAAIS,GAAG,0HACzV,WAAY,IAAIT,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,IAAI,CAACE,YAAY,aAAa,CAACJ,EAAIS,GAAG,uBAAuBP,EAAG,OAAO,CAACF,EAAIS,GAAG,qBAAqBT,EAAIS,GAAG,gG,wBC4CjJ,GACfE,KAAA,cACAC,WAAA,CACAC,oBAEAC,SAAA,CAEAR,cACA,OAAAS,OAAAC,eCvDsY,I,wBCQlYC,EAAY,eACd,EACAlB,EACAW,GACA,EACA,KACA,WACA,MAIa,aAAAO,E,2CCnBf,IAAIlB,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,eAAeI,MAAM,CAAC,oBAAoB,KAAK,CAACN,EAAG,SAAS,CAACE,YAAY,qBAAqBI,MAAM,CAAC,KAAO,SAAS,MAAQ,YAAY,aAAa,QAAQU,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOC,kBAAyBpB,EAAIqB,eAAeC,MAAM,KAAMC,cAAc,CAACrB,EAAG,MAAM,CAACE,YAAY,0BAA0BI,MAAM,CAAC,QAAU,YAAY,KAAO,OAAO,OAAS,eAAe,eAAe,IAAI,iBAAiB,QAAQ,kBAAkB,QAAQ,cAAc,OAAO,UAAY,UAAU,CAACN,EAAG,OAAO,CAACM,MAAM,CAAC,EAAI,qGAAqGN,EAAG,OAAO,CAACE,YAAY,2BAA2B,CAACJ,EAAIS,GAAG,YAAYT,EAAIwB,GAAG,YAAY,IAEvxBd,EAAkB,GCoCP,GACfC,KAAA,cACAc,QAAA,CACAJ,iBACA,KAAAK,YAAAC,OAAAC,MAAAC,IACAC,QAAAC,KAAA,0CAAAF,QC3CsY,I,YCOlYZ,EAAY,eACd,EACAlB,EACAW,GACA,EACA,KACA,KACA,MAIa,OAAAO,E,2CClBf,kDAUA,MAAMe,EAAW,iBAejB,IAAIC,EAAQC,uBAAUF","file":"js/chunk-100f4182.391add39.js","sourcesContent":["export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RankingView.vue?vue&type=style&index=0&id=7ab32fee&prod&scoped=true&lang=css\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"demo-page\"},[_vm._m(0),(_vm.rankingComp)?_c('demo-preview',{staticClass:\"ranking-preview\"},[_c('div',{staticClass:\"ranking-shell\"},[_c(_vm.rankingComp,{tag:\"component\",attrs:{\"storage-key\":\"demo-vue2-ele-ranking\"}})],1)]):_c('p',{staticClass:\"demo-note\"},[_vm._v(\" 当前远端产物没有导出 \"),_c('code',[_vm._v(\"TierRanking\")]),_vm._v(\"(远端版本可能早于排行榜组件)。 本地联调请先执行 \"),_c('code',[_vm._v(\"pnpm comps:dev\")]),_vm._v(\"(20010),或发布包含排行榜的新版 comps-vue2-ele 后再看线上效果。 \")]),_vm._m(1),_c('div',{staticClass:\"demo-links\"},[_c('a',{attrs:{\"href\":\"https://github.com/hel-eco/hel-tpl-remote-vue-comp\",\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._v(\" 远程组件仓库 \")]),_c('router-link',{attrs:{\"to\":\"/remote-comp\"}},[_vm._v(\"对比普通远程组件示例 →\")])],1)],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('header',[_c('p',{staticClass:\"demo-page__eyebrow\"},[_vm._v(\"远程组件 · 排行榜\")]),_c('h1',{staticClass:\"demo-page__title\"},[_vm._v(\"TierRanking 从夯到拉排行榜\")]),_c('p',{staticClass:\"demo-page__lead\"},[_vm._v(\" 排行榜也是 comps-vue2-ele 暴露的远程组件(\"),_c('code',[_vm._v(\"TierRanking\")]),_vm._v(\"): 组件代码与样式都随远端产物下发,宿主只负责挂载。支持拖拽排序、跨评级拖动、 上传图片(自动压缩)、评级改名 / 改色 / 增删,状态默认存 IndexedDB、刷新不丢。 排行榜比较占地方,建议先点右上角「全屏」再玩。 \")])])\n},function (){var _vm=this,_c=_vm._self._c;return _c('p',{staticClass:\"demo-note\"},[_vm._v(\" 状态存在 IndexedDB(库名 \"),_c('code',[_vm._v(\"tier-ranking-db\")]),_vm._v(\"),用组件自带的 「重置排行榜」可恢复默认评级;导出图片时组件会按需从 CDN 加载 html2canvas。 组件内已经包含上传、拖拽、删除等交互,宿主不需要再写任何逻辑。 \")])\n}]\n\nexport { render, staticRenderFns }","<template>\n <div class=\"demo-page\">\n <header>\n <p class=\"demo-page__eyebrow\">远程组件 · 排行榜</p>\n <h1 class=\"demo-page__title\">TierRanking 从夯到拉排行榜</h1>\n <p class=\"demo-page__lead\">\n 排行榜也是 comps-vue2-ele 暴露的远程组件(<code>TierRanking</code>):\n 组件代码与样式都随远端产物下发,宿主只负责挂载。支持拖拽排序、跨评级拖动、\n 上传图片(自动压缩)、评级改名 / 改色 / 增删,状态默认存 IndexedDB、刷新不丢。\n 排行榜比较占地方,建议先点右上角「全屏」再玩。\n </p>\n </header>\n\n <demo-preview v-if=\"rankingComp\" class=\"ranking-preview\">\n <div class=\"ranking-shell\">\n <component :is=\"rankingComp\" storage-key=\"demo-vue2-ele-ranking\" />\n </div>\n </demo-preview>\n\n <p v-else class=\"demo-note\">\n 当前远端产物没有导出 <code>TierRanking</code>(远端版本可能早于排行榜组件)。\n 本地联调请先执行 <code>pnpm comps:dev</code>(20010),或发布包含排行榜的新版\n comps-vue2-ele 后再看线上效果。\n </p>\n\n <p class=\"demo-note\">\n 状态存在 IndexedDB(库名 <code>tier-ranking-db</code>),用组件自带的\n 「重置排行榜」可恢复默认评级;导出图片时组件会按需从 CDN 加载 html2canvas。\n 组件内已经包含上传、拖拽、删除等交互,宿主不需要再写任何逻辑。\n </p>\n\n <div class=\"demo-links\">\n <a href=\"https://github.com/hel-eco/hel-tpl-remote-vue-comp\" target=\"_blank\" rel=\"noopener\">\n 远程组件仓库\n </a>\n <router-link to=\"/remote-comp\">对比普通远程组件示例 →</router-link>\n </div>\n </div>\n</template>\n\n<script>\n/* eslint-disable */\n// comps 的 hel 组名是 comps-vue2-ele,静态导入只拿到代理壳,\n// 真正的 TierRanking 由 main.js 里的 preFetchLib 从远端载入\nimport comps from '@melt-js/comps-vue2-ele';\nimport DemoPreview from '../components/DemoPreview.vue';\n\nexport default {\n name: 'RankingView',\n components: {\n DemoPreview,\n },\n computed: {\n // 远端产物版本较旧时可能没有 TierRanking,这里取到 undefined 就展示提示\n rankingComp() {\n return comps.TierRanking;\n },\n },\n};\n</script>\n\n<style scoped>\n.ranking-shell {\n overflow: hidden;\n border-radius: 12px;\n border: 1px solid var(--demo-border);\n}\n\n/* 全屏时让排行榜铺满屏幕,黑色背景与组件自身配色连续 */\n.ranking-preview.is-demo-fullscreen {\n padding: 0;\n background: #1a1a1a;\n}\n\n.ranking-preview.is-demo-fullscreen .ranking-shell {\n min-height: 100%;\n border: 0;\n border-radius: 0;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RankingView.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RankingView.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RankingView.vue?vue&type=template&id=7ab32fee&scoped=true\"\nimport script from \"./RankingView.vue?vue&type=script&lang=js\"\nexport * from \"./RankingView.vue?vue&type=script&lang=js\"\nimport style0 from \"./RankingView.vue?vue&type=style&index=0&id=7ab32fee&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ab32fee\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"demo-preview\",attrs:{\"data-demo-preview\":\"\"}},[_c('button',{staticClass:\"demo-preview__exit\",attrs:{\"type\":\"button\",\"title\":\"退出全屏(Esc)\",\"aria-label\":\"退出全屏\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.exitFullscreen.apply(null, arguments)}}},[_c('svg',{staticClass:\"demo-preview__exit-icon\",attrs:{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"stroke-width\":\"2\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",\"aria-hidden\":\"true\",\"focusable\":\"false\"}},[_c('path',{attrs:{\"d\":\"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3\"}})]),_c('span',{staticClass:\"demo-preview__exit-text\"},[_vm._v(\"退出全屏\")])]),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"demo-preview\" data-demo-preview>\n <button\n type=\"button\"\n class=\"demo-preview__exit\"\n title=\"退出全屏(Esc)\"\n aria-label=\"退出全屏\"\n @click.stop=\"exitFullscreen\"\n >\n <svg\n class=\"demo-preview__exit-icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path\n d=\"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3\"\n />\n </svg>\n <span class=\"demo-preview__exit-text\">退出全屏</span>\n </button>\n <slot />\n </div>\n</template>\n\n<script>\n/**\n * 组件预览区:全屏按钮的唯一目标。\n *\n * 普通模式下它只是页面里的一个普通容器;进入全屏后由 vue-fullscreen 给根节点\n * 加上 is-demo-fullscreen 类,只保留插槽里的组件内容,页面标题、简介、说明与\n * 页脚都不会进入全屏。右下角的「退出全屏」按钮也只在全屏时出现。\n */\nexport default {\n name: 'DemoPreview',\n methods: {\n exitFullscreen() {\n this.$fullscreen.exit().catch(error => {\n console.warn('[Fullscreen] Failed to exit fullscreen:', error)\n })\n }\n }\n}\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DemoPreview.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DemoPreview.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DemoPreview.vue?vue&type=template&id=538ff717\"\nimport script from \"./DemoPreview.vue?vue&type=script&lang=js\"\nexport * from \"./DemoPreview.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { exposeLib } from 'hel-lib-proxy';\n\n/*\r\n|--------------------------------------------------------------------------\r\n|\r\n| 对应 package.json/appGroupName\r\n|\r\n|--------------------------------------------------------------------------\r\n*/\r\n\r\nconst LIB_NAME = 'comps-vue2-ele';\n\n/*\r\n|--------------------------------------------------------------------------\r\n|\r\n| 组件类型导出文件,同时也作为 rollup 的打包入口文件,因只提供类型,rollup 打包后是一个\r\n| 仅包含 hel-lib-proxy 的空壳文件,对模块使用方的包体构建大小无影响\r\n| 模块使用方 通过 npm i xxx-lib 后,只要在头文件处执行过 preFetchLib\r\n| 则整个项目项使用本地模块一样载入提供方的组件,并可以点击到 node_modules 查看源码\r\n|\r\n|--------------------------------------------------------------------------\r\n*/\r\n/**\r\n * 将提供给用户的lib暴露出去(同时也暴露了类型)\r\n */\r\nvar dtlib = exposeLib(LIB_NAME);\n\nexport { dtlib as default, dtlib };\n"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-109e6ced"],{"1d56":function(e,t,s){"use strict";s.r(t);var o=function(){var e=this,t=e._self._c;return t("div",{staticClass:"demo-page"},[e._m(0),t("p",{staticClass:"remote-box__title"},[e._v("红色区域内是一个远程组件,该组件内部依赖了另一个远程组件")]),t("demo-preview",{staticClass:"remote-preview"},[t("div",{staticClass:"remote-box"},[t("remote-comp",{attrs:{msg:"Welcome to use hel remote vue comp"}})],1)]),e._m(1),t("div",{staticClass:"demo-links"},[t("a",{attrs:{href:"https://github.com/hel-eco/hel-tpl-remote-vue-comp",target:"_blank",rel:"noopener"}},[e._v(" 远程组件仓库 ")]),t("router-link",{attrs:{to:"/libs"}},[e._v("继续看远程 libs 示例 →")])],1)],1)},a=[function(){var e=this,t=e._self._c;return t("header",[t("p",{staticClass:"demo-page__eyebrow"},[e._v("远程组件")]),t("h1",{staticClass:"demo-page__title"},[e._v("comps-vue2-ele 远程组件")]),t("p",{staticClass:"demo-page__lead"},[e._v(" 下面红色区域里的内容是 "),t("code",[e._v("preFetchLib('comps-vue2-ele')")]),e._v(" 从远端拉取的组件, 它内部又依赖了另一个远程组件(HelloWorld);宿主产物里没有这些代码。 ")])])},function(){var e=this,t=e._self._c;return t("p",{staticClass:"demo-note"},[e._v(" 远端地址按环境切换:开发 "),t("code",[e._v("http://localhost:20010")]),e._v("(先执行 "),t("code",[e._v("pnpm comps:dev")]),e._v("),生产 "),t("code",[e._v("unpkg")]),e._v(" 上的 "),t("code",[e._v("hel-meta.json")]),e._v("。 ")])}],i=s("e8f1"),c=s("afbc"),l={name:"RemoteCompView",components:{DemoPreview:c["a"],RemoteComp:i["a"].App}},r=l,n=(s("22bd"),s("a6c2")),u=Object(n["a"])(r,o,a,!1,null,"49455987",null);t["default"]=u.exports},"22bd":function(e,t,s){"use strict";s("aed6")},aed6:function(e,t,s){},afbc:function(e,t,s){"use strict";var o=function(){var e=this,t=e._self._c;return t("div",{staticClass:"demo-preview",attrs:{"data-demo-preview":""}},[t("button",{staticClass:"demo-preview__exit",attrs:{type:"button",title:"退出全屏(Esc)","aria-label":"退出全屏"},on:{click:function(t){return t.stopPropagation(),e.exitFullscreen.apply(null,arguments)}}},[t("svg",{staticClass:"demo-preview__exit-icon",attrs:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false"}},[t("path",{attrs:{d:"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3"}})]),t("span",{staticClass:"demo-preview__exit-text"},[e._v("退出全屏")])]),e._t("default")],2)},a=[],i={name:"DemoPreview",methods:{exitFullscreen(){this.$fullscreen.exit().catch(e=>{console.warn("[Fullscreen] Failed to exit fullscreen:",e)})}}},c=i,l=s("a6c2"),r=Object(l["a"])(c,o,a,!1,null,null,null);t["a"]=r.exports},e8f1:function(e,t,s){"use strict";s.d(t,"a",(function(){return i}));var o=s("fc8e");const a="comps-vue2-ele";var i=Object(o["exposeLib"])(a)}}]);
2
+ //# sourceMappingURL=chunk-109e6ced.423e5c6b.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["webpack:///./src/views/RemoteCompView.vue","webpack:///src/views/RemoteCompView.vue","webpack:///./src/views/RemoteCompView.vue?6453","webpack:///./src/views/RemoteCompView.vue?b6e5","webpack:///./src/views/RemoteCompView.vue?6b3e","webpack:///./src/components/DemoPreview.vue","webpack:///src/components/DemoPreview.vue","webpack:///./src/components/DemoPreview.vue?f524","webpack:///./src/components/DemoPreview.vue?7d16","webpack:///../comps-vue2-ele/hel_proxy_es/entry.js"],"names":["render","_vm","this","_c","_self","staticClass","_m","_v","attrs","staticRenderFns","name","components","DemoPreview","RemoteComp","comps","App","component","on","$event","stopPropagation","exitFullscreen","apply","arguments","_t","methods","$fullscreen","exit","catch","error","console","warn","LIB_NAME","dtlib","exposeLib"],"mappings":"yHAAA,IAAIA,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,aAAa,CAACJ,EAAIK,GAAG,GAAGH,EAAG,IAAI,CAACE,YAAY,qBAAqB,CAACJ,EAAIM,GAAG,kCAAkCJ,EAAG,eAAe,CAACE,YAAY,kBAAkB,CAACF,EAAG,MAAM,CAACE,YAAY,cAAc,CAACF,EAAG,cAAc,CAACK,MAAM,CAAC,IAAM,yCAAyC,KAAKP,EAAIK,GAAG,GAAGH,EAAG,MAAM,CAACE,YAAY,cAAc,CAACF,EAAG,IAAI,CAACK,MAAM,CAAC,KAAO,qDAAqD,OAAS,SAAS,IAAM,aAAa,CAACP,EAAIM,GAAG,cAAcJ,EAAG,cAAc,CAACK,MAAM,CAAC,GAAK,UAAU,CAACP,EAAIM,GAAG,sBAAsB,IAAI,IAEnmBE,EAAkB,CAAC,WAAY,IAAIR,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,SAAS,CAACA,EAAG,IAAI,CAACE,YAAY,sBAAsB,CAACJ,EAAIM,GAAG,UAAUJ,EAAG,KAAK,CAACE,YAAY,oBAAoB,CAACJ,EAAIM,GAAG,yBAAyBJ,EAAG,IAAI,CAACE,YAAY,mBAAmB,CAACJ,EAAIM,GAAG,iBAAiBJ,EAAG,OAAO,CAACF,EAAIM,GAAG,mCAAmCN,EAAIM,GAAG,4DACpV,WAAY,IAAIN,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,IAAI,CAACE,YAAY,aAAa,CAACJ,EAAIM,GAAG,kBAAkBJ,EAAG,OAAO,CAACF,EAAIM,GAAG,4BAA4BN,EAAIM,GAAG,SAASJ,EAAG,OAAO,CAACF,EAAIM,GAAG,oBAAoBN,EAAIM,GAAG,SAASJ,EAAG,OAAO,CAACF,EAAIM,GAAG,WAAWN,EAAIM,GAAG,QAAQJ,EAAG,OAAO,CAACF,EAAIM,GAAG,mBAAmBN,EAAIM,GAAG,U,wBCuC1S,GACfG,KAAA,iBACAC,WAAA,CACAC,mBACAC,WAAAC,OAAAC,MC9CyY,I,wBCQrYC,EAAY,eACd,EACAhB,EACAS,GACA,EACA,KACA,WACA,MAIa,aAAAO,E,6CCnBf,W,yDCAA,IAAIhB,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,eAAeG,MAAM,CAAC,oBAAoB,KAAK,CAACL,EAAG,SAAS,CAACE,YAAY,qBAAqBG,MAAM,CAAC,KAAO,SAAS,MAAQ,YAAY,aAAa,QAAQS,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOC,kBAAyBlB,EAAImB,eAAeC,MAAM,KAAMC,cAAc,CAACnB,EAAG,MAAM,CAACE,YAAY,0BAA0BG,MAAM,CAAC,QAAU,YAAY,KAAO,OAAO,OAAS,eAAe,eAAe,IAAI,iBAAiB,QAAQ,kBAAkB,QAAQ,cAAc,OAAO,UAAY,UAAU,CAACL,EAAG,OAAO,CAACK,MAAM,CAAC,EAAI,qGAAqGL,EAAG,OAAO,CAACE,YAAY,2BAA2B,CAACJ,EAAIM,GAAG,YAAYN,EAAIsB,GAAG,YAAY,IAEvxBd,EAAkB,GCoCP,GACfC,KAAA,cACAc,QAAA,CACAJ,iBACA,KAAAK,YAAAC,OAAAC,MAAAC,IACAC,QAAAC,KAAA,0CAAAF,QC3CsY,I,YCOlYZ,EAAY,eACd,EACAhB,EACAS,GACA,EACA,KACA,KACA,MAIa,OAAAO,E,2CClBf,kDAUA,MAAMe,EAAW,iBAejB,IAAIC,EAAQC,uBAAUF","file":"js/chunk-109e6ced.423e5c6b.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"demo-page\"},[_vm._m(0),_c('p',{staticClass:\"remote-box__title\"},[_vm._v(\"红色区域内是一个远程组件,该组件内部依赖了另一个远程组件\")]),_c('demo-preview',{staticClass:\"remote-preview\"},[_c('div',{staticClass:\"remote-box\"},[_c('remote-comp',{attrs:{\"msg\":\"Welcome to use hel remote vue comp\"}})],1)]),_vm._m(1),_c('div',{staticClass:\"demo-links\"},[_c('a',{attrs:{\"href\":\"https://github.com/hel-eco/hel-tpl-remote-vue-comp\",\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._v(\" 远程组件仓库 \")]),_c('router-link',{attrs:{\"to\":\"/libs\"}},[_vm._v(\"继续看远程 libs 示例 →\")])],1)],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('header',[_c('p',{staticClass:\"demo-page__eyebrow\"},[_vm._v(\"远程组件\")]),_c('h1',{staticClass:\"demo-page__title\"},[_vm._v(\"comps-vue2-ele 远程组件\")]),_c('p',{staticClass:\"demo-page__lead\"},[_vm._v(\" 下面红色区域里的内容是 \"),_c('code',[_vm._v(\"preFetchLib('comps-vue2-ele')\")]),_vm._v(\" 从远端拉取的组件, 它内部又依赖了另一个远程组件(HelloWorld);宿主产物里没有这些代码。 \")])])\n},function (){var _vm=this,_c=_vm._self._c;return _c('p',{staticClass:\"demo-note\"},[_vm._v(\" 远端地址按环境切换:开发 \"),_c('code',[_vm._v(\"http://localhost:20010\")]),_vm._v(\"(先执行 \"),_c('code',[_vm._v(\"pnpm comps:dev\")]),_vm._v(\"),生产 \"),_c('code',[_vm._v(\"unpkg\")]),_vm._v(\" 上的 \"),_c('code',[_vm._v(\"hel-meta.json\")]),_vm._v(\"。 \")])\n}]\n\nexport { render, staticRenderFns }","<template>\n <div class=\"demo-page\">\n <header>\n <p class=\"demo-page__eyebrow\">远程组件</p>\n <h1 class=\"demo-page__title\">comps-vue2-ele 远程组件</h1>\n <p class=\"demo-page__lead\">\n 下面红色区域里的内容是 <code>preFetchLib('comps-vue2-ele')</code> 从远端拉取的组件,\n 它内部又依赖了另一个远程组件(HelloWorld);宿主产物里没有这些代码。\n </p>\n </header>\n\n <p class=\"remote-box__title\">红色区域内是一个远程组件,该组件内部依赖了另一个远程组件</p>\n\n <demo-preview class=\"remote-preview\">\n <div class=\"remote-box\">\n <remote-comp msg=\"Welcome to use hel remote vue comp\" />\n </div>\n </demo-preview>\n\n <p class=\"demo-note\">\n 远端地址按环境切换:开发 <code>http://localhost:20010</code>(先执行\n <code>pnpm comps:dev</code>),生产 <code>unpkg</code> 上的\n <code>hel-meta.json</code>。\n </p>\n\n <div class=\"demo-links\">\n <a href=\"https://github.com/hel-eco/hel-tpl-remote-vue-comp\" target=\"_blank\" rel=\"noopener\">\n 远程组件仓库\n </a>\n <router-link to=\"/libs\">继续看远程 libs 示例 →</router-link>\n </div>\n </div>\n</template>\n\n<script>\n/* eslint-disable */\n// https://github.com/hel-eco/hel-tpl-remote-vue-comp\n// 静态导入只拿到 hel-lib-proxy 的空壳代理,真正的组件代码由 main.js 里\n// 的 preFetchLib 从远端载入\nimport comps from '@melt-js/comps-vue2-ele';\nimport DemoPreview from '../components/DemoPreview.vue';\n\nexport default {\n name: 'RemoteCompView',\n components: {\n DemoPreview,\n RemoteComp: comps.App, // hi, remote component\n },\n};\n</script>\n\n<style scoped>\n.remote-box {\n padding: 20px;\n border: 2px solid #e74c3c;\n border-radius: 12px;\n background: #fff8f7;\n}\n\n.remote-box__title {\n margin: 0;\n color: #c0392b;\n font-size: 14px;\n font-weight: 600;\n}\n\n/* 全屏时只保留红框里的远程组件,标题与说明留在屏幕外 */\n.remote-preview.is-demo-fullscreen {\n display: flex;\n padding: 24px;\n background: #fff8f7;\n}\n\n.remote-preview.is-demo-fullscreen .remote-box {\n width: 100%;\n max-width: 1100px;\n margin: auto;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RemoteCompView.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RemoteCompView.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RemoteCompView.vue?vue&type=template&id=49455987&scoped=true\"\nimport script from \"./RemoteCompView.vue?vue&type=script&lang=js\"\nexport * from \"./RemoteCompView.vue?vue&type=script&lang=js\"\nimport style0 from \"./RemoteCompView.vue?vue&type=style&index=0&id=49455987&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"49455987\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RemoteCompView.vue?vue&type=style&index=0&id=49455987&prod&scoped=true&lang=css\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"demo-preview\",attrs:{\"data-demo-preview\":\"\"}},[_c('button',{staticClass:\"demo-preview__exit\",attrs:{\"type\":\"button\",\"title\":\"退出全屏(Esc)\",\"aria-label\":\"退出全屏\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.exitFullscreen.apply(null, arguments)}}},[_c('svg',{staticClass:\"demo-preview__exit-icon\",attrs:{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"stroke-width\":\"2\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",\"aria-hidden\":\"true\",\"focusable\":\"false\"}},[_c('path',{attrs:{\"d\":\"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3\"}})]),_c('span',{staticClass:\"demo-preview__exit-text\"},[_vm._v(\"退出全屏\")])]),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"demo-preview\" data-demo-preview>\n <button\n type=\"button\"\n class=\"demo-preview__exit\"\n title=\"退出全屏(Esc)\"\n aria-label=\"退出全屏\"\n @click.stop=\"exitFullscreen\"\n >\n <svg\n class=\"demo-preview__exit-icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path\n d=\"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3\"\n />\n </svg>\n <span class=\"demo-preview__exit-text\">退出全屏</span>\n </button>\n <slot />\n </div>\n</template>\n\n<script>\n/**\n * 组件预览区:全屏按钮的唯一目标。\n *\n * 普通模式下它只是页面里的一个普通容器;进入全屏后由 vue-fullscreen 给根节点\n * 加上 is-demo-fullscreen 类,只保留插槽里的组件内容,页面标题、简介、说明与\n * 页脚都不会进入全屏。右下角的「退出全屏」按钮也只在全屏时出现。\n */\nexport default {\n name: 'DemoPreview',\n methods: {\n exitFullscreen() {\n this.$fullscreen.exit().catch(error => {\n console.warn('[Fullscreen] Failed to exit fullscreen:', error)\n })\n }\n }\n}\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DemoPreview.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DemoPreview.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DemoPreview.vue?vue&type=template&id=538ff717\"\nimport script from \"./DemoPreview.vue?vue&type=script&lang=js\"\nexport * from \"./DemoPreview.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { exposeLib } from 'hel-lib-proxy';\n\n/*\r\n|--------------------------------------------------------------------------\r\n|\r\n| 对应 package.json/appGroupName\r\n|\r\n|--------------------------------------------------------------------------\r\n*/\r\n\r\nconst LIB_NAME = 'comps-vue2-ele';\n\n/*\r\n|--------------------------------------------------------------------------\r\n|\r\n| 组件类型导出文件,同时也作为 rollup 的打包入口文件,因只提供类型,rollup 打包后是一个\r\n| 仅包含 hel-lib-proxy 的空壳文件,对模块使用方的包体构建大小无影响\r\n| 模块使用方 通过 npm i xxx-lib 后,只要在头文件处执行过 preFetchLib\r\n| 则整个项目项使用本地模块一样载入提供方的组件,并可以点击到 node_modules 查看源码\r\n|\r\n|--------------------------------------------------------------------------\r\n*/\r\n/**\r\n * 将提供给用户的lib暴露出去(同时也暴露了类型)\r\n */\r\nvar dtlib = exposeLib(LIB_NAME);\n\nexport { dtlib as default, dtlib };\n"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-13f34938"],{"7e26":function(t,e,c){"use strict";c.d(e,"a",(function(){return i})),c.d(e,"h",(function(){return s})),c.d(e,"e",(function(){return n})),c.d(e,"b",(function(){return a})),c.d(e,"c",(function(){return r})),c.d(e,"l",(function(){return l})),c.d(e,"i",(function(){return d})),c.d(e,"j",(function(){return u})),c.d(e,"k",(function(){return v})),c.d(e,"d",(function(){return p})),c.d(e,"g",(function(){return _})),c.d(e,"f",(function(){return m})),c.d(e,"m",(function(){return f}));c("58ff"),c("a33d");var o=c("e8f1");o["a"].TcClamp;const i=o["a"].TcBlock,s=o["a"].TcMore,n=o["a"].TcIcon,a=o["a"].TcButton,r=o["a"].TcButtonGroup,l=o["a"].TcSelect,d=o["a"].TcRadio,u=o["a"].TcRadioButton,v=o["a"].TcRadioGroup,p=o["a"].TcDialog,_=o["a"].TcLoading,m=o["a"].TcLetterAvatar;function f(t){return t.filter(t=>!o["a"][t])}},"91d9":function(t,e,c){"use strict";c.r(e);var o=function(){var t=this,e=t._self._c;return e("div",{staticClass:"demo-page"},[t._m(0),t.missing.length?e("p",{staticClass:"demo-note"},[t._v(" 当前远端产物没有导出 "),e("code",[t._v(t._s(t.missing.join("、")))]),t._v("。本地联调先执行 "),e("code",[t._v("pnpm comps:dev")]),t._v("(20010)。 ")]):[e("demo-preview",[e("div",{staticClass:"tc-stack"},[e("section",[e("h2",{staticClass:"demo-page__section-title"},[t._v("尺寸")]),e("div",{staticClass:"demo-grid"},[e("div",{staticClass:"tc-demo-row"},[e("tc-icon",{attrs:{glyph:"★",size:"16"}}),e("tc-icon",{attrs:{glyph:"★",size:"22"}}),e("tc-icon",{attrs:{glyph:"★",size:"32"}}),e("tc-icon",{attrs:{glyph:"★",size:"40"}})],1)])]),e("section",[e("h2",{staticClass:"demo-page__section-title"},[t._v("颜色")]),e("div",{staticClass:"demo-grid"},[e("div",{staticClass:"tc-demo-row"},[e("tc-icon",{attrs:{glyph:"♥",size:"26",color:"#f56c6c"}}),e("tc-icon",{attrs:{glyph:"♥",size:"26",color:"#e6a23c"}}),e("tc-icon",{attrs:{glyph:"♥",size:"26",color:"#67c23a"}}),e("tc-icon",{attrs:{glyph:"♥",size:"26",color:"#409eff"}}),e("tc-icon",{attrs:{glyph:"♥",size:"26",color:"#909399"}})],1)])]),e("section",[e("h2",{staticClass:"demo-page__section-title"},[t._v("spin 旋转")]),e("div",{staticClass:"demo-grid"},[e("div",{staticClass:"tc-demo-row"},[e("tc-icon",{attrs:{glyph:"⟳",size:"26",spin:""}}),e("tc-icon",{attrs:{glyph:"◐",size:"26",color:"#409eff",spin:""}}),e("tc-icon",{attrs:{glyph:"✳",size:"26",color:"#67c23a",spin:""}})],1)])]),e("section",[e("h2",{staticClass:"demo-page__section-title"},[t._v("name:图标库类名")]),e("p",{staticClass:"tc-demo-hint"},[t._v(" 宿主引入 fontawesome / remixicon 后,把类名传给 "),e("code",[t._v("name")]),t._v(" 即可; 本 demo 没有加载图标字体,所以这里只给出用法。 ")]),e("pre",{staticClass:"tc-demo-pre"},[t._v('<tc-icon name="ri-star-line" size="20" />\n<tc-icon name="fa-solid fa-gear" size="20" />')])])])])],e("div",{staticClass:"demo-links"},[e("router-link",{attrs:{to:"/tc-button"}},[t._v("下一个:TcButton →")]),e("router-link",{attrs:{to:"/tc-more"}},[t._v("回看 TcMore")])],1)],2)},i=[function(){var t=this,e=t._self._c;return e("header",[e("p",{staticClass:"demo-page__eyebrow"},[t._v("Tc 基础组件")]),e("h1",{staticClass:"demo-page__title"},[t._v("TcIcon 图标")]),e("p",{staticClass:"demo-page__lead"},[t._v(" think-vuele 本身没有独立 Icon 组件(它的 icon 文档只是 fontawesome / remixicon 的展示页), 这里补了一个极薄的 "),e("code",[t._v("TcIcon")]),t._v(":"),e("code",[t._v("name")]),t._v(" 直接透传图标类名, "),e("code",[t._v("glyph")]),t._v(" 可以直接写字形,另外支持 "),e("code",[t._v("size")]),t._v(" / "),e("code",[t._v("color")]),t._v(" / "),e("code",[t._v("spin")]),t._v("。 ")])])}],s=c("7e26"),n=c("afbc"),a={name:"TcIconView",components:{DemoPreview:n["a"],TcIcon:s["e"]},computed:{missing(){return Object(s["m"])(["TcIcon"])}}},r=a,l=c("a6c2"),d=Object(l["a"])(r,o,i,!1,null,null,null);e["default"]=d.exports},afbc:function(t,e,c){"use strict";var o=function(){var t=this,e=t._self._c;return e("div",{staticClass:"demo-preview",attrs:{"data-demo-preview":""}},[e("button",{staticClass:"demo-preview__exit",attrs:{type:"button",title:"退出全屏(Esc)","aria-label":"退出全屏"},on:{click:function(e){return e.stopPropagation(),t.exitFullscreen.apply(null,arguments)}}},[e("svg",{staticClass:"demo-preview__exit-icon",attrs:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false"}},[e("path",{attrs:{d:"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3"}})]),e("span",{staticClass:"demo-preview__exit-text"},[t._v("退出全屏")])]),t._t("default")],2)},i=[],s={name:"DemoPreview",methods:{exitFullscreen(){this.$fullscreen.exit().catch(t=>{console.warn("[Fullscreen] Failed to exit fullscreen:",t)})}}},n=s,a=c("a6c2"),r=Object(a["a"])(n,o,i,!1,null,null,null);e["a"]=r.exports},e8f1:function(t,e,c){"use strict";c.d(e,"a",(function(){return s}));var o=c("fc8e");const i="comps-vue2-ele";var s=Object(o["exposeLib"])(i)}}]);
2
+ //# sourceMappingURL=chunk-13f34938.89418ccf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["webpack:///./src/tc/components.js","webpack:///./src/views/TcIconView.vue","webpack:///src/views/TcIconView.vue","webpack:///./src/views/TcIconView.vue?1040","webpack:///./src/views/TcIconView.vue?db2f","webpack:///./src/components/DemoPreview.vue","webpack:///src/components/DemoPreview.vue","webpack:///./src/components/DemoPreview.vue?f524","webpack:///./src/components/DemoPreview.vue?7d16","webpack:///../comps-vue2-ele/hel_proxy_es/entry.js"],"names":["comps","TcClamp","TcBlock","TcMore","TcIcon","TcButton","TcButtonGroup","TcSelect","TcRadio","TcRadioButton","TcRadioGroup","TcDialog","TcLoading","TcLetterAvatar","missingTc","names","filter","name","render","_vm","this","_c","_self","staticClass","_m","missing","length","_v","_s","join","attrs","staticRenderFns","components","DemoPreview","computed","component","on","$event","stopPropagation","exitFullscreen","apply","arguments","_t","methods","$fullscreen","exit","catch","error","console","warn","LIB_NAME","dtlib","exposeLib"],"mappings":"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","file":"js/chunk-13f34938.89418ccf.js","sourcesContent":["/**\n * demo 里所有 Tc* 组件都来自远端 comps-vue2-ele。\n *\n * 路由是懒加载的,模块求值发生在入口 preFetchLib 完成之后,所以这里直接解构是安全的;\n * 远端版本较旧时对应值为 undefined,页面用 missingTc 判断后给出提示。\n */\nimport comps from '@melt-js/comps-vue2-ele';\n\nexport const TcClamp = comps.TcClamp;\nexport const TcBlock = comps.TcBlock;\nexport const TcMore = comps.TcMore;\nexport const TcIcon = comps.TcIcon;\nexport const TcButton = comps.TcButton;\nexport const TcButtonGroup = comps.TcButtonGroup;\nexport const TcSelect = comps.TcSelect;\nexport const TcRadio = comps.TcRadio;\nexport const TcRadioButton = comps.TcRadioButton;\nexport const TcRadioGroup = comps.TcRadioGroup;\nexport const TcDialog = comps.TcDialog;\nexport const TcLoading = comps.TcLoading;\nexport const TcLetterAvatar = comps.TcLetterAvatar;\n\nexport function missingTc(names) {\n return names.filter((name) => !comps[name]);\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"demo-page\"},[_vm._m(0),(!_vm.missing.length)?[_c('demo-preview',[_c('div',{staticClass:\"tc-stack\"},[_c('section',[_c('h2',{staticClass:\"demo-page__section-title\"},[_vm._v(\"尺寸\")]),_c('div',{staticClass:\"demo-grid\"},[_c('div',{staticClass:\"tc-demo-row\"},[_c('tc-icon',{attrs:{\"glyph\":\"★\",\"size\":\"16\"}}),_c('tc-icon',{attrs:{\"glyph\":\"★\",\"size\":\"22\"}}),_c('tc-icon',{attrs:{\"glyph\":\"★\",\"size\":\"32\"}}),_c('tc-icon',{attrs:{\"glyph\":\"★\",\"size\":\"40\"}})],1)])]),_c('section',[_c('h2',{staticClass:\"demo-page__section-title\"},[_vm._v(\"颜色\")]),_c('div',{staticClass:\"demo-grid\"},[_c('div',{staticClass:\"tc-demo-row\"},[_c('tc-icon',{attrs:{\"glyph\":\"♥\",\"size\":\"26\",\"color\":\"#f56c6c\"}}),_c('tc-icon',{attrs:{\"glyph\":\"♥\",\"size\":\"26\",\"color\":\"#e6a23c\"}}),_c('tc-icon',{attrs:{\"glyph\":\"♥\",\"size\":\"26\",\"color\":\"#67c23a\"}}),_c('tc-icon',{attrs:{\"glyph\":\"♥\",\"size\":\"26\",\"color\":\"#409eff\"}}),_c('tc-icon',{attrs:{\"glyph\":\"♥\",\"size\":\"26\",\"color\":\"#909399\"}})],1)])]),_c('section',[_c('h2',{staticClass:\"demo-page__section-title\"},[_vm._v(\"spin 旋转\")]),_c('div',{staticClass:\"demo-grid\"},[_c('div',{staticClass:\"tc-demo-row\"},[_c('tc-icon',{attrs:{\"glyph\":\"⟳\",\"size\":\"26\",\"spin\":\"\"}}),_c('tc-icon',{attrs:{\"glyph\":\"◐\",\"size\":\"26\",\"color\":\"#409eff\",\"spin\":\"\"}}),_c('tc-icon',{attrs:{\"glyph\":\"✳\",\"size\":\"26\",\"color\":\"#67c23a\",\"spin\":\"\"}})],1)])]),_c('section',[_c('h2',{staticClass:\"demo-page__section-title\"},[_vm._v(\"name:图标库类名\")]),_c('p',{staticClass:\"tc-demo-hint\"},[_vm._v(\" 宿主引入 fontawesome / remixicon 后,把类名传给 \"),_c('code',[_vm._v(\"name\")]),_vm._v(\" 即可; 本 demo 没有加载图标字体,所以这里只给出用法。 \")]),_c('pre',{staticClass:\"tc-demo-pre\"},[_vm._v(\"<tc-icon name=\\\"ri-star-line\\\" size=\\\"20\\\" />\\n<tc-icon name=\\\"fa-solid fa-gear\\\" size=\\\"20\\\" />\")])])])])]:_c('p',{staticClass:\"demo-note\"},[_vm._v(\" 当前远端产物没有导出 \"),_c('code',[_vm._v(_vm._s(_vm.missing.join('、')))]),_vm._v(\"。本地联调先执行 \"),_c('code',[_vm._v(\"pnpm comps:dev\")]),_vm._v(\"(20010)。 \")]),_c('div',{staticClass:\"demo-links\"},[_c('router-link',{attrs:{\"to\":\"/tc-button\"}},[_vm._v(\"下一个:TcButton →\")]),_c('router-link',{attrs:{\"to\":\"/tc-more\"}},[_vm._v(\"回看 TcMore\")])],1)],2)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('header',[_c('p',{staticClass:\"demo-page__eyebrow\"},[_vm._v(\"Tc 基础组件\")]),_c('h1',{staticClass:\"demo-page__title\"},[_vm._v(\"TcIcon 图标\")]),_c('p',{staticClass:\"demo-page__lead\"},[_vm._v(\" think-vuele 本身没有独立 Icon 组件(它的 icon 文档只是 fontawesome / remixicon 的展示页), 这里补了一个极薄的 \"),_c('code',[_vm._v(\"TcIcon\")]),_vm._v(\":\"),_c('code',[_vm._v(\"name\")]),_vm._v(\" 直接透传图标类名, \"),_c('code',[_vm._v(\"glyph\")]),_vm._v(\" 可以直接写字形,另外支持 \"),_c('code',[_vm._v(\"size\")]),_vm._v(\" / \"),_c('code',[_vm._v(\"color\")]),_vm._v(\" / \"),_c('code',[_vm._v(\"spin\")]),_vm._v(\"。 \")])])\n}]\n\nexport { render, staticRenderFns }","<template>\n <div class=\"demo-page\">\n <header>\n <p class=\"demo-page__eyebrow\">Tc 基础组件</p>\n <h1 class=\"demo-page__title\">TcIcon 图标</h1>\n <p class=\"demo-page__lead\">\n think-vuele 本身没有独立 Icon 组件(它的 icon 文档只是 fontawesome / remixicon 的展示页),\n 这里补了一个极薄的 <code>TcIcon</code>:<code>name</code> 直接透传图标类名,\n <code>glyph</code> 可以直接写字形,另外支持 <code>size</code> / <code>color</code> / <code>spin</code>。\n </p>\n </header>\n\n <template v-if=\"!missing.length\">\n <demo-preview>\n <div class=\"tc-stack\">\n <section>\n <h2 class=\"demo-page__section-title\">尺寸</h2>\n <div class=\"demo-grid\">\n <div class=\"tc-demo-row\">\n <tc-icon glyph=\"★\" size=\"16\" />\n <tc-icon glyph=\"★\" size=\"22\" />\n <tc-icon glyph=\"★\" size=\"32\" />\n <tc-icon glyph=\"★\" size=\"40\" />\n </div>\n </div>\n </section>\n\n <section>\n <h2 class=\"demo-page__section-title\">颜色</h2>\n <div class=\"demo-grid\">\n <div class=\"tc-demo-row\">\n <tc-icon glyph=\"♥\" size=\"26\" color=\"#f56c6c\" />\n <tc-icon glyph=\"♥\" size=\"26\" color=\"#e6a23c\" />\n <tc-icon glyph=\"♥\" size=\"26\" color=\"#67c23a\" />\n <tc-icon glyph=\"♥\" size=\"26\" color=\"#409eff\" />\n <tc-icon glyph=\"♥\" size=\"26\" color=\"#909399\" />\n </div>\n </div>\n </section>\n\n <section>\n <h2 class=\"demo-page__section-title\">spin 旋转</h2>\n <div class=\"demo-grid\">\n <div class=\"tc-demo-row\">\n <tc-icon glyph=\"⟳\" size=\"26\" spin />\n <tc-icon glyph=\"◐\" size=\"26\" color=\"#409eff\" spin />\n <tc-icon glyph=\"✳\" size=\"26\" color=\"#67c23a\" spin />\n </div>\n </div>\n </section>\n\n <section>\n <h2 class=\"demo-page__section-title\">name:图标库类名</h2>\n <p class=\"tc-demo-hint\">\n 宿主引入 fontawesome / remixicon 后,把类名传给 <code>name</code> 即可;\n 本 demo 没有加载图标字体,所以这里只给出用法。\n </p>\n <pre class=\"tc-demo-pre\">&lt;tc-icon name=\"ri-star-line\" size=\"20\" /&gt;\n&lt;tc-icon name=\"fa-solid fa-gear\" size=\"20\" /&gt;</pre>\n </section>\n </div>\n </demo-preview>\n </template>\n\n <p v-else class=\"demo-note\">\n 当前远端产物没有导出 <code>{{ missing.join('、') }}</code>。本地联调先执行\n <code>pnpm comps:dev</code>(20010)。\n </p>\n\n <div class=\"demo-links\">\n <router-link to=\"/tc-button\">下一个:TcButton →</router-link>\n <router-link to=\"/tc-more\">回看 TcMore</router-link>\n </div>\n </div>\n</template>\n\n<script>\nimport { TcIcon, missingTc } from '../tc/components';\nimport DemoPreview from '../components/DemoPreview.vue';\n\nexport default {\n name: 'TcIconView',\n components: {\n DemoPreview,\n TcIcon\n },\n computed: {\n missing() {\n return missingTc(['TcIcon']);\n }\n }\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TcIconView.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TcIconView.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TcIconView.vue?vue&type=template&id=77c4b6dc\"\nimport script from \"./TcIconView.vue?vue&type=script&lang=js\"\nexport * from \"./TcIconView.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"demo-preview\",attrs:{\"data-demo-preview\":\"\"}},[_c('button',{staticClass:\"demo-preview__exit\",attrs:{\"type\":\"button\",\"title\":\"退出全屏(Esc)\",\"aria-label\":\"退出全屏\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.exitFullscreen.apply(null, arguments)}}},[_c('svg',{staticClass:\"demo-preview__exit-icon\",attrs:{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"stroke-width\":\"2\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",\"aria-hidden\":\"true\",\"focusable\":\"false\"}},[_c('path',{attrs:{\"d\":\"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3\"}})]),_c('span',{staticClass:\"demo-preview__exit-text\"},[_vm._v(\"退出全屏\")])]),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"demo-preview\" data-demo-preview>\n <button\n type=\"button\"\n class=\"demo-preview__exit\"\n title=\"退出全屏(Esc)\"\n aria-label=\"退出全屏\"\n @click.stop=\"exitFullscreen\"\n >\n <svg\n class=\"demo-preview__exit-icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path\n d=\"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3\"\n />\n </svg>\n <span class=\"demo-preview__exit-text\">退出全屏</span>\n </button>\n <slot />\n </div>\n</template>\n\n<script>\n/**\n * 组件预览区:全屏按钮的唯一目标。\n *\n * 普通模式下它只是页面里的一个普通容器;进入全屏后由 vue-fullscreen 给根节点\n * 加上 is-demo-fullscreen 类,只保留插槽里的组件内容,页面标题、简介、说明与\n * 页脚都不会进入全屏。右下角的「退出全屏」按钮也只在全屏时出现。\n */\nexport default {\n name: 'DemoPreview',\n methods: {\n exitFullscreen() {\n this.$fullscreen.exit().catch(error => {\n console.warn('[Fullscreen] Failed to exit fullscreen:', error)\n })\n }\n }\n}\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DemoPreview.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DemoPreview.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DemoPreview.vue?vue&type=template&id=538ff717\"\nimport script from \"./DemoPreview.vue?vue&type=script&lang=js\"\nexport * from \"./DemoPreview.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { exposeLib } from 'hel-lib-proxy';\n\n/*\r\n|--------------------------------------------------------------------------\r\n|\r\n| 对应 package.json/appGroupName\r\n|\r\n|--------------------------------------------------------------------------\r\n*/\r\n\r\nconst LIB_NAME = 'comps-vue2-ele';\n\n/*\r\n|--------------------------------------------------------------------------\r\n|\r\n| 组件类型导出文件,同时也作为 rollup 的打包入口文件,因只提供类型,rollup 打包后是一个\r\n| 仅包含 hel-lib-proxy 的空壳文件,对模块使用方的包体构建大小无影响\r\n| 模块使用方 通过 npm i xxx-lib 后,只要在头文件处执行过 preFetchLib\r\n| 则整个项目项使用本地模块一样载入提供方的组件,并可以点击到 node_modules 查看源码\r\n|\r\n|--------------------------------------------------------------------------\r\n*/\r\n/**\r\n * 将提供给用户的lib暴露出去(同时也暴露了类型)\r\n */\r\nvar dtlib = exposeLib(LIB_NAME);\n\nexport { dtlib as default, dtlib };\n"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-1a9ef670"],{"7e26":function(t,e,i){"use strict";i.d(e,"a",(function(){return n})),i.d(e,"h",(function(){return s})),i.d(e,"e",(function(){return o})),i.d(e,"b",(function(){return c})),i.d(e,"c",(function(){return r})),i.d(e,"l",(function(){return u})),i.d(e,"i",(function(){return l})),i.d(e,"j",(function(){return d})),i.d(e,"k",(function(){return v})),i.d(e,"d",(function(){return p})),i.d(e,"g",(function(){return _})),i.d(e,"f",(function(){return m})),i.d(e,"m",(function(){return b}));i("58ff"),i("a33d");var a=i("e8f1");a["a"].TcClamp;const n=a["a"].TcBlock,s=a["a"].TcMore,o=a["a"].TcIcon,c=a["a"].TcButton,r=a["a"].TcButtonGroup,u=a["a"].TcSelect,l=a["a"].TcRadio,d=a["a"].TcRadioButton,v=a["a"].TcRadioGroup,p=a["a"].TcDialog,_=a["a"].TcLoading,m=a["a"].TcLetterAvatar;function b(t){return t.filter(t=>!a["a"][t])}},"9d6d":function(t,e,i){"use strict";i.r(e);var a=function(){var t=this,e=t._self._c;return e("div",{staticClass:"demo-page"},[t._m(0),t.missing.length?e("p",{staticClass:"demo-note"},[t._v(" 当前远端产物没有导出 "),e("code",[t._v(t._s(t.missing.join("、")))]),t._v("。本地联调先执行 "),e("code",[t._v("pnpm comps:dev")]),t._v("(20010)。 ")]):[e("demo-preview",[e("div",{staticClass:"tc-stack"},[e("section",[e("h2",{staticClass:"demo-page__section-title"},[t._v("type")]),e("div",{staticClass:"demo-grid"},[e("div",{staticClass:"tc-demo-row"},[e("tc-button",[t._v("默认")]),e("tc-button",{attrs:{type:"primary"}},[t._v("主要")]),e("tc-button",{attrs:{type:"success"}},[t._v("成功")]),e("tc-button",{attrs:{type:"warning"}},[t._v("警告")]),e("tc-button",{attrs:{type:"danger"}},[t._v("危险")]),e("tc-button",{attrs:{type:"info"}},[t._v("信息")]),e("tc-button",{attrs:{type:"text"}},[t._v("文字")])],1)])]),e("section",[e("h2",{staticClass:"demo-page__section-title"},[t._v("size")]),e("div",{staticClass:"demo-grid"},[e("div",{staticClass:"tc-demo-row"},[e("tc-button",{attrs:{size:"medium"}},[t._v("medium")]),e("tc-button",{attrs:{size:"small"}},[t._v("small")]),e("tc-button",{attrs:{size:"mini"}},[t._v("mini")])],1)])]),e("section",[e("h2",{staticClass:"demo-page__section-title"},[t._v("plain / round / circle")]),e("div",{staticClass:"demo-grid"},[e("div",{staticClass:"tc-demo-row"},[e("tc-button",{attrs:{type:"primary",plain:""}},[t._v("朴素")]),e("tc-button",{attrs:{type:"primary",round:""}},[t._v("圆角")]),e("tc-button",{attrs:{type:"primary",circle:""}},[t._v("+")])],1)])]),e("section",[e("h2",{staticClass:"demo-page__section-title"},[t._v("loading / disabled / 点击事件")]),e("div",{staticClass:"demo-grid"},[e("div",[e("div",{staticClass:"tc-demo-row"},[e("tc-button",{attrs:{type:"primary",loading:t.loading},on:{click:t.simulateLoading}},[t._v(" "+t._s(t.loading?"提交中…":"模拟提交")+" ")]),e("tc-button",{attrs:{disabled:""}},[t._v("禁用")]),e("tc-button",{attrs:{type:"primary",disabled:""}},[t._v("禁用主要")])],1),e("p",{staticClass:"tc-demo-hint",staticStyle:{"margin-top":"10px"}},[t._v(" 点击次数:"),e("strong",[t._v(t._s(t.clickCount))])])])])]),e("section",[e("h2",{staticClass:"demo-page__section-title"},[t._v("TcButtonGroup")]),e("div",{staticClass:"demo-grid"},[e("div",[e("tc-button-group",[e("tc-button",[t._v("左侧")]),e("tc-button",[t._v("中间")]),e("tc-button",[t._v("右侧")])],1),e("p",{staticClass:"tc-demo-hint",staticStyle:{"margin-top":"10px"}},[t._v(" 相邻按钮共享边框,首尾保留圆角。 ")])],1),e("div",[e("tc-button-group",[e("tc-button",{attrs:{type:"primary"}},[t._v("保存")]),e("tc-button",{attrs:{type:"primary"}},[t._v("预览")]),e("tc-button",{attrs:{type:"primary",disabled:""}},[t._v("发布")])],1)],1)])])])])],e("div",{staticClass:"demo-links"},[e("router-link",{attrs:{to:"/tc-select"}},[t._v("下一个:TcSelect →")]),e("router-link",{attrs:{to:"/tc-icon"}},[t._v("回看 TcIcon")])],1)],2)},n=[function(){var t=this,e=t._self._c;return e("header",[e("p",{staticClass:"demo-page__eyebrow"},[t._v("Tc 表单组件")]),e("h1",{staticClass:"demo-page__title"},[t._v("TcButton 按钮")]),e("p",{staticClass:"demo-page__lead"},[t._v(" 按钮与按钮组,取自 think-vuele 的 "),e("code",[t._v("packages/button")]),t._v(" / "),e("code",[t._v("packages/button-group")]),t._v("。 支持 type / size / plain / round / circle / loading / disabled,并保留 "),e("code",[t._v("forceEnabled")]),t._v(" + TcDialog 的强制启用逻辑。 ")])])}],s=i("7e26"),o=i("afbc"),c={name:"TcButtonView",components:{DemoPreview:o["a"],TcButton:s["b"],TcButtonGroup:s["c"]},data(){return{loading:!1,clickCount:0,timer:null}},computed:{missing(){return Object(s["m"])(["TcButton","TcButtonGroup"])}},beforeDestroy(){clearTimeout(this.timer)},methods:{simulateLoading(){this.clickCount+=1,this.loading=!0,clearTimeout(this.timer),this.timer=setTimeout(()=>{this.loading=!1},1200)}}},r=c,u=i("a6c2"),l=Object(u["a"])(r,a,n,!1,null,null,null);e["default"]=l.exports},afbc:function(t,e,i){"use strict";var a=function(){var t=this,e=t._self._c;return e("div",{staticClass:"demo-preview",attrs:{"data-demo-preview":""}},[e("button",{staticClass:"demo-preview__exit",attrs:{type:"button",title:"退出全屏(Esc)","aria-label":"退出全屏"},on:{click:function(e){return e.stopPropagation(),t.exitFullscreen.apply(null,arguments)}}},[e("svg",{staticClass:"demo-preview__exit-icon",attrs:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false"}},[e("path",{attrs:{d:"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3"}})]),e("span",{staticClass:"demo-preview__exit-text"},[t._v("退出全屏")])]),t._t("default")],2)},n=[],s={name:"DemoPreview",methods:{exitFullscreen(){this.$fullscreen.exit().catch(t=>{console.warn("[Fullscreen] Failed to exit fullscreen:",t)})}}},o=s,c=i("a6c2"),r=Object(c["a"])(o,a,n,!1,null,null,null);e["a"]=r.exports},e8f1:function(t,e,i){"use strict";i.d(e,"a",(function(){return s}));var a=i("fc8e");const n="comps-vue2-ele";var s=Object(a["exposeLib"])(n)}}]);
2
+ //# sourceMappingURL=chunk-1a9ef670.9c060fcd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["webpack:///./src/tc/components.js","webpack:///./src/views/TcButtonView.vue","webpack:///src/views/TcButtonView.vue","webpack:///./src/views/TcButtonView.vue?017a","webpack:///./src/views/TcButtonView.vue?a8f3","webpack:///./src/components/DemoPreview.vue","webpack:///src/components/DemoPreview.vue","webpack:///./src/components/DemoPreview.vue?f524","webpack:///./src/components/DemoPreview.vue?7d16","webpack:///../comps-vue2-ele/hel_proxy_es/entry.js"],"names":["comps","TcClamp","TcBlock","TcMore","TcIcon","TcButton","TcButtonGroup","TcSelect","TcRadio","TcRadioButton","TcRadioGroup","TcDialog","TcLoading","TcLetterAvatar","missingTc","names","filter","name","render","_vm","this","_c","_self","staticClass","_m","missing","length","_v","_s","join","attrs","loading","on","simulateLoading","staticStyle","clickCount","staticRenderFns","components","DemoPreview","data","timer","computed","beforeDestroy","clearTimeout","methods","setTimeout","component","$event","stopPropagation","exitFullscreen","apply","arguments","_t","$fullscreen","exit","catch","error","console","warn","LIB_NAME","dtlib","exposeLib"],"mappings":"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","file":"js/chunk-1a9ef670.9c060fcd.js","sourcesContent":["/**\n * demo 里所有 Tc* 组件都来自远端 comps-vue2-ele。\n *\n * 路由是懒加载的,模块求值发生在入口 preFetchLib 完成之后,所以这里直接解构是安全的;\n * 远端版本较旧时对应值为 undefined,页面用 missingTc 判断后给出提示。\n */\nimport comps from '@melt-js/comps-vue2-ele';\n\nexport const TcClamp = comps.TcClamp;\nexport const TcBlock = comps.TcBlock;\nexport const TcMore = comps.TcMore;\nexport const TcIcon = comps.TcIcon;\nexport const TcButton = comps.TcButton;\nexport const TcButtonGroup = comps.TcButtonGroup;\nexport const TcSelect = comps.TcSelect;\nexport const TcRadio = comps.TcRadio;\nexport const TcRadioButton = comps.TcRadioButton;\nexport const TcRadioGroup = comps.TcRadioGroup;\nexport const TcDialog = comps.TcDialog;\nexport const TcLoading = comps.TcLoading;\nexport const TcLetterAvatar = comps.TcLetterAvatar;\n\nexport function missingTc(names) {\n return names.filter((name) => !comps[name]);\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"demo-page\"},[_vm._m(0),(!_vm.missing.length)?[_c('demo-preview',[_c('div',{staticClass:\"tc-stack\"},[_c('section',[_c('h2',{staticClass:\"demo-page__section-title\"},[_vm._v(\"type\")]),_c('div',{staticClass:\"demo-grid\"},[_c('div',{staticClass:\"tc-demo-row\"},[_c('tc-button',[_vm._v(\"默认\")]),_c('tc-button',{attrs:{\"type\":\"primary\"}},[_vm._v(\"主要\")]),_c('tc-button',{attrs:{\"type\":\"success\"}},[_vm._v(\"成功\")]),_c('tc-button',{attrs:{\"type\":\"warning\"}},[_vm._v(\"警告\")]),_c('tc-button',{attrs:{\"type\":\"danger\"}},[_vm._v(\"危险\")]),_c('tc-button',{attrs:{\"type\":\"info\"}},[_vm._v(\"信息\")]),_c('tc-button',{attrs:{\"type\":\"text\"}},[_vm._v(\"文字\")])],1)])]),_c('section',[_c('h2',{staticClass:\"demo-page__section-title\"},[_vm._v(\"size\")]),_c('div',{staticClass:\"demo-grid\"},[_c('div',{staticClass:\"tc-demo-row\"},[_c('tc-button',{attrs:{\"size\":\"medium\"}},[_vm._v(\"medium\")]),_c('tc-button',{attrs:{\"size\":\"small\"}},[_vm._v(\"small\")]),_c('tc-button',{attrs:{\"size\":\"mini\"}},[_vm._v(\"mini\")])],1)])]),_c('section',[_c('h2',{staticClass:\"demo-page__section-title\"},[_vm._v(\"plain / round / circle\")]),_c('div',{staticClass:\"demo-grid\"},[_c('div',{staticClass:\"tc-demo-row\"},[_c('tc-button',{attrs:{\"type\":\"primary\",\"plain\":\"\"}},[_vm._v(\"朴素\")]),_c('tc-button',{attrs:{\"type\":\"primary\",\"round\":\"\"}},[_vm._v(\"圆角\")]),_c('tc-button',{attrs:{\"type\":\"primary\",\"circle\":\"\"}},[_vm._v(\"+\")])],1)])]),_c('section',[_c('h2',{staticClass:\"demo-page__section-title\"},[_vm._v(\"loading / disabled / 点击事件\")]),_c('div',{staticClass:\"demo-grid\"},[_c('div',[_c('div',{staticClass:\"tc-demo-row\"},[_c('tc-button',{attrs:{\"type\":\"primary\",\"loading\":_vm.loading},on:{\"click\":_vm.simulateLoading}},[_vm._v(\" \"+_vm._s(_vm.loading ? '提交中…' : '模拟提交')+\" \")]),_c('tc-button',{attrs:{\"disabled\":\"\"}},[_vm._v(\"禁用\")]),_c('tc-button',{attrs:{\"type\":\"primary\",\"disabled\":\"\"}},[_vm._v(\"禁用主要\")])],1),_c('p',{staticClass:\"tc-demo-hint\",staticStyle:{\"margin-top\":\"10px\"}},[_vm._v(\" 点击次数:\"),_c('strong',[_vm._v(_vm._s(_vm.clickCount))])])])])]),_c('section',[_c('h2',{staticClass:\"demo-page__section-title\"},[_vm._v(\"TcButtonGroup\")]),_c('div',{staticClass:\"demo-grid\"},[_c('div',[_c('tc-button-group',[_c('tc-button',[_vm._v(\"左侧\")]),_c('tc-button',[_vm._v(\"中间\")]),_c('tc-button',[_vm._v(\"右侧\")])],1),_c('p',{staticClass:\"tc-demo-hint\",staticStyle:{\"margin-top\":\"10px\"}},[_vm._v(\" 相邻按钮共享边框,首尾保留圆角。 \")])],1),_c('div',[_c('tc-button-group',[_c('tc-button',{attrs:{\"type\":\"primary\"}},[_vm._v(\"保存\")]),_c('tc-button',{attrs:{\"type\":\"primary\"}},[_vm._v(\"预览\")]),_c('tc-button',{attrs:{\"type\":\"primary\",\"disabled\":\"\"}},[_vm._v(\"发布\")])],1)],1)])])])])]:_c('p',{staticClass:\"demo-note\"},[_vm._v(\" 当前远端产物没有导出 \"),_c('code',[_vm._v(_vm._s(_vm.missing.join('、')))]),_vm._v(\"。本地联调先执行 \"),_c('code',[_vm._v(\"pnpm comps:dev\")]),_vm._v(\"(20010)。 \")]),_c('div',{staticClass:\"demo-links\"},[_c('router-link',{attrs:{\"to\":\"/tc-select\"}},[_vm._v(\"下一个:TcSelect →\")]),_c('router-link',{attrs:{\"to\":\"/tc-icon\"}},[_vm._v(\"回看 TcIcon\")])],1)],2)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('header',[_c('p',{staticClass:\"demo-page__eyebrow\"},[_vm._v(\"Tc 表单组件\")]),_c('h1',{staticClass:\"demo-page__title\"},[_vm._v(\"TcButton 按钮\")]),_c('p',{staticClass:\"demo-page__lead\"},[_vm._v(\" 按钮与按钮组,取自 think-vuele 的 \"),_c('code',[_vm._v(\"packages/button\")]),_vm._v(\" / \"),_c('code',[_vm._v(\"packages/button-group\")]),_vm._v(\"。 支持 type / size / plain / round / circle / loading / disabled,并保留 \"),_c('code',[_vm._v(\"forceEnabled\")]),_vm._v(\" + TcDialog 的强制启用逻辑。 \")])])\n}]\n\nexport { render, staticRenderFns }","<template>\n <div class=\"demo-page\">\n <header>\n <p class=\"demo-page__eyebrow\">Tc 表单组件</p>\n <h1 class=\"demo-page__title\">TcButton 按钮</h1>\n <p class=\"demo-page__lead\">\n 按钮与按钮组,取自 think-vuele 的 <code>packages/button</code> / <code>packages/button-group</code>。\n 支持 type / size / plain / round / circle / loading / disabled,并保留\n <code>forceEnabled</code> + TcDialog 的强制启用逻辑。\n </p>\n </header>\n\n <template v-if=\"!missing.length\">\n <demo-preview>\n <div class=\"tc-stack\">\n <section>\n <h2 class=\"demo-page__section-title\">type</h2>\n <div class=\"demo-grid\">\n <div class=\"tc-demo-row\">\n <tc-button>默认</tc-button>\n <tc-button type=\"primary\">主要</tc-button>\n <tc-button type=\"success\">成功</tc-button>\n <tc-button type=\"warning\">警告</tc-button>\n <tc-button type=\"danger\">危险</tc-button>\n <tc-button type=\"info\">信息</tc-button>\n <tc-button type=\"text\">文字</tc-button>\n </div>\n </div>\n </section>\n\n <section>\n <h2 class=\"demo-page__section-title\">size</h2>\n <div class=\"demo-grid\">\n <div class=\"tc-demo-row\">\n <tc-button size=\"medium\">medium</tc-button>\n <tc-button size=\"small\">small</tc-button>\n <tc-button size=\"mini\">mini</tc-button>\n </div>\n </div>\n </section>\n\n <section>\n <h2 class=\"demo-page__section-title\">plain / round / circle</h2>\n <div class=\"demo-grid\">\n <div class=\"tc-demo-row\">\n <tc-button type=\"primary\" plain>朴素</tc-button>\n <tc-button type=\"primary\" round>圆角</tc-button>\n <tc-button type=\"primary\" circle>+</tc-button>\n </div>\n </div>\n </section>\n\n <section>\n <h2 class=\"demo-page__section-title\">loading / disabled / 点击事件</h2>\n <div class=\"demo-grid\">\n <div>\n <div class=\"tc-demo-row\">\n <tc-button type=\"primary\" :loading=\"loading\" @click=\"simulateLoading\">\n {{ loading ? '提交中…' : '模拟提交' }}\n </tc-button>\n <tc-button disabled>禁用</tc-button>\n <tc-button type=\"primary\" disabled>禁用主要</tc-button>\n </div>\n <p class=\"tc-demo-hint\" style=\"margin-top: 10px;\">\n 点击次数:<strong>{{ clickCount }}</strong>\n </p>\n </div>\n </div>\n </section>\n\n <section>\n <h2 class=\"demo-page__section-title\">TcButtonGroup</h2>\n <div class=\"demo-grid\">\n <div>\n <tc-button-group>\n <tc-button>左侧</tc-button>\n <tc-button>中间</tc-button>\n <tc-button>右侧</tc-button>\n </tc-button-group>\n <p class=\"tc-demo-hint\" style=\"margin-top: 10px;\">\n 相邻按钮共享边框,首尾保留圆角。\n </p>\n </div>\n <div>\n <tc-button-group>\n <tc-button type=\"primary\">保存</tc-button>\n <tc-button type=\"primary\">预览</tc-button>\n <tc-button type=\"primary\" disabled>发布</tc-button>\n </tc-button-group>\n </div>\n </div>\n </section>\n </div>\n </demo-preview>\n </template>\n\n <p v-else class=\"demo-note\">\n 当前远端产物没有导出 <code>{{ missing.join('、') }}</code>。本地联调先执行\n <code>pnpm comps:dev</code>(20010)。\n </p>\n\n <div class=\"demo-links\">\n <router-link to=\"/tc-select\">下一个:TcSelect →</router-link>\n <router-link to=\"/tc-icon\">回看 TcIcon</router-link>\n </div>\n </div>\n</template>\n\n<script>\nimport { TcButton, TcButtonGroup, missingTc } from '../tc/components';\nimport DemoPreview from '../components/DemoPreview.vue';\n\nexport default {\n name: 'TcButtonView',\n components: {\n DemoPreview,\n TcButton,\n TcButtonGroup\n },\n data() {\n return {\n loading: false,\n clickCount: 0,\n timer: null\n };\n },\n computed: {\n missing() {\n return missingTc(['TcButton', 'TcButtonGroup']);\n }\n },\n beforeDestroy() {\n clearTimeout(this.timer);\n },\n methods: {\n simulateLoading() {\n this.clickCount += 1;\n this.loading = true;\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n this.loading = false;\n }, 1200);\n }\n }\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TcButtonView.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TcButtonView.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TcButtonView.vue?vue&type=template&id=462eae26\"\nimport script from \"./TcButtonView.vue?vue&type=script&lang=js\"\nexport * from \"./TcButtonView.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"demo-preview\",attrs:{\"data-demo-preview\":\"\"}},[_c('button',{staticClass:\"demo-preview__exit\",attrs:{\"type\":\"button\",\"title\":\"退出全屏(Esc)\",\"aria-label\":\"退出全屏\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.exitFullscreen.apply(null, arguments)}}},[_c('svg',{staticClass:\"demo-preview__exit-icon\",attrs:{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"stroke-width\":\"2\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",\"aria-hidden\":\"true\",\"focusable\":\"false\"}},[_c('path',{attrs:{\"d\":\"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3\"}})]),_c('span',{staticClass:\"demo-preview__exit-text\"},[_vm._v(\"退出全屏\")])]),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"demo-preview\" data-demo-preview>\n <button\n type=\"button\"\n class=\"demo-preview__exit\"\n title=\"退出全屏(Esc)\"\n aria-label=\"退出全屏\"\n @click.stop=\"exitFullscreen\"\n >\n <svg\n class=\"demo-preview__exit-icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path\n d=\"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3\"\n />\n </svg>\n <span class=\"demo-preview__exit-text\">退出全屏</span>\n </button>\n <slot />\n </div>\n</template>\n\n<script>\n/**\n * 组件预览区:全屏按钮的唯一目标。\n *\n * 普通模式下它只是页面里的一个普通容器;进入全屏后由 vue-fullscreen 给根节点\n * 加上 is-demo-fullscreen 类,只保留插槽里的组件内容,页面标题、简介、说明与\n * 页脚都不会进入全屏。右下角的「退出全屏」按钮也只在全屏时出现。\n */\nexport default {\n name: 'DemoPreview',\n methods: {\n exitFullscreen() {\n this.$fullscreen.exit().catch(error => {\n console.warn('[Fullscreen] Failed to exit fullscreen:', error)\n })\n }\n }\n}\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DemoPreview.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DemoPreview.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DemoPreview.vue?vue&type=template&id=538ff717\"\nimport script from \"./DemoPreview.vue?vue&type=script&lang=js\"\nexport * from \"./DemoPreview.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { exposeLib } from 'hel-lib-proxy';\n\n/*\r\n|--------------------------------------------------------------------------\r\n|\r\n| 对应 package.json/appGroupName\r\n|\r\n|--------------------------------------------------------------------------\r\n*/\r\n\r\nconst LIB_NAME = 'comps-vue2-ele';\n\n/*\r\n|--------------------------------------------------------------------------\r\n|\r\n| 组件类型导出文件,同时也作为 rollup 的打包入口文件,因只提供类型,rollup 打包后是一个\r\n| 仅包含 hel-lib-proxy 的空壳文件,对模块使用方的包体构建大小无影响\r\n| 模块使用方 通过 npm i xxx-lib 后,只要在头文件处执行过 preFetchLib\r\n| 则整个项目项使用本地模块一样载入提供方的组件,并可以点击到 node_modules 查看源码\r\n|\r\n|--------------------------------------------------------------------------\r\n*/\r\n/**\r\n * 将提供给用户的lib暴露出去(同时也暴露了类型)\r\n */\r\nvar dtlib = exposeLib(LIB_NAME);\n\nexport { dtlib as default, dtlib };\n"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-219be077"],{"7e26":function(t,e,a){"use strict";a.d(e,"a",(function(){return o})),a.d(e,"h",(function(){return s})),a.d(e,"e",(function(){return r})),a.d(e,"b",(function(){return c})),a.d(e,"c",(function(){return n})),a.d(e,"l",(function(){return l})),a.d(e,"i",(function(){return d})),a.d(e,"j",(function(){return u})),a.d(e,"k",(function(){return v})),a.d(e,"d",(function(){return p})),a.d(e,"g",(function(){return _})),a.d(e,"f",(function(){return m})),a.d(e,"m",(function(){return f}));a("58ff"),a("a33d");var i=a("e8f1");i["a"].TcClamp;const o=i["a"].TcBlock,s=i["a"].TcMore,r=i["a"].TcIcon,c=i["a"].TcButton,n=i["a"].TcButtonGroup,l=i["a"].TcSelect,d=i["a"].TcRadio,u=i["a"].TcRadioButton,v=i["a"].TcRadioGroup,p=i["a"].TcDialog,_=i["a"].TcLoading,m=i["a"].TcLetterAvatar;function f(t){return t.filter(t=>!i["a"][t])}},a35c:function(t,e,a){"use strict";a.r(e);var i=function(){var t=this,e=t._self._c;return e("div",{staticClass:"demo-page"},[t._m(0),t.missing.length?e("p",{staticClass:"demo-note"},[t._v(" 当前远端产物没有导出 "),e("code",[t._v(t._s(t.missing.join("、")))]),t._v("。本地联调先执行 "),e("code",[t._v("pnpm comps:dev")]),t._v("(20010)。 ")]):[e("demo-preview",[e("div",{staticClass:"tc-stack"},[e("section",[e("h2",{staticClass:"demo-page__section-title"},[t._v("TcRadioGroup + providers")]),e("div",{staticClass:"demo-grid"},[e("div",[e("p",{staticClass:"tc-demo-hint"},[t._v("providers 渲染成分段按钮(内部是 TcRadioButton)。")]),e("tc-radio-group",{attrs:{providers:t.levels},model:{value:t.level,callback:function(e){t.level=e},expression:"level"}}),e("p",{staticClass:"tc-demo-hint",staticStyle:{"margin-top":"10px"}},[t._v(" 当前值:"),e("strong",[t._v(t._s(t.level))])])],1),e("div",[e("p",{staticClass:"tc-demo-hint"},[t._v("禁用整组。")]),e("tc-radio-group",{attrs:{providers:t.levels,disabled:""},model:{value:t.level,callback:function(e){t.level=e},expression:"level"}})],1)])]),e("section",[e("h2",{staticClass:"demo-page__section-title"},[t._v("自定义选项(TcRadio)")]),e("div",{staticClass:"demo-grid"},[e("div",[e("p",{staticClass:"tc-demo-hint"},[t._v("默认插槽里自己写 TcRadio,圆点样式。")]),e("tc-radio-group",{model:{value:t.fruit,callback:function(e){t.fruit=e},expression:"fruit"}},[e("tc-radio",{attrs:{value:"apple"}},[t._v("苹果")]),e("tc-radio",{attrs:{value:"banana"}},[t._v("香蕉")]),e("tc-radio",{attrs:{value:"cherry"}},[t._v("车厘子")])],1),e("p",{staticClass:"tc-demo-hint",staticStyle:{"margin-top":"10px"}},[t._v(" 当前值:"),e("strong",[t._v(t._s(t.fruit))])])],1),e("div",[e("p",{staticClass:"tc-demo-hint"},[t._v("默认插槽里自己写 TcRadioButton,分段样式。")]),e("tc-radio-group",{model:{value:t.size,callback:function(e){t.size=e},expression:"size"}},[e("tc-radio-button",{attrs:{value:"s"}},[t._v("S")]),e("tc-radio-button",{attrs:{value:"m"}},[t._v("M")]),e("tc-radio-button",{attrs:{value:"l"}},[t._v("L")])],1),e("p",{staticClass:"tc-demo-hint",staticStyle:{"margin-top":"10px"}},[t._v(" 当前值:"),e("strong",[t._v(t._s(t.size))])])],1)])]),e("section",[e("h2",{staticClass:"demo-page__section-title"},[t._v("单项禁用")]),e("div",{staticClass:"demo-grid"},[e("tc-radio-group",{model:{value:t.fruit,callback:function(e){t.fruit=e},expression:"fruit"}},[e("tc-radio",{attrs:{value:"apple"}},[t._v("苹果")]),e("tc-radio",{attrs:{value:"banana",disabled:""}},[t._v("香蕉(禁用)")]),e("tc-radio",{attrs:{value:"cherry"}},[t._v("车厘子")])],1)],1)]),e("section",[e("h2",{staticClass:"demo-page__section-title"},[t._v("说明")]),e("pre",{staticClass:"tc-demo-pre"},[t._v('providers: [{ id: \'1\', text: \'初级\', value: \'junior\' }]\n\n<tc-radio-group v-model="level" :providers="levels" />\n\n<tc-radio-group v-model="fruit">\n <tc-radio value="apple">苹果</tc-radio>\n</tc-radio-group>')])])])])],e("div",{staticClass:"demo-links"},[e("router-link",{attrs:{to:"/tc-dialog"}},[t._v("下一个:TcDialog →")]),e("router-link",{attrs:{to:"/tc-select"}},[t._v("回看 TcSelect")])],1)],2)},o=[function(){var t=this,e=t._self._c;return e("header",[e("p",{staticClass:"demo-page__eyebrow"},[t._v("Tc 表单组件")]),e("h1",{staticClass:"demo-page__title"},[t._v("TcRadio 单选")]),e("p",{staticClass:"demo-page__lead"},[t._v(" 单选项三件套,取自 think-vuele 的 "),e("code",[t._v("packages/radio")]),t._v("、"),e("code",[t._v("packages/radio-button")]),t._v("、 "),e("code",[t._v("packages/radio-group")]),t._v("。原实现是 el-radio 系列包装,这里换成原生 "),e("code",[t._v("input[type=radio]")]),t._v(";"),e("code",[t._v("providers")]),t._v(" 默认渲染为分段按钮, 也可以用默认插槽自定义选项。 ")])])}],s=a("7e26"),r=a("afbc");const c=[{id:"1",text:"初级",value:"junior"},{id:"2",text:"高级",value:"senior"},{id:"3",text:"专家",value:"expert"}];var n={name:"TcRadioView",components:{DemoPreview:r["a"],TcRadio:s["i"],TcRadioButton:s["j"],TcRadioGroup:s["k"]},data(){return{levels:c,level:"senior",fruit:"apple",size:"m"}},computed:{missing(){return Object(s["m"])(["TcRadio","TcRadioButton","TcRadioGroup"])}}},l=n,d=a("a6c2"),u=Object(d["a"])(l,i,o,!1,null,null,null);e["default"]=u.exports},afbc:function(t,e,a){"use strict";var i=function(){var t=this,e=t._self._c;return e("div",{staticClass:"demo-preview",attrs:{"data-demo-preview":""}},[e("button",{staticClass:"demo-preview__exit",attrs:{type:"button",title:"退出全屏(Esc)","aria-label":"退出全屏"},on:{click:function(e){return e.stopPropagation(),t.exitFullscreen.apply(null,arguments)}}},[e("svg",{staticClass:"demo-preview__exit-icon",attrs:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false"}},[e("path",{attrs:{d:"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3"}})]),e("span",{staticClass:"demo-preview__exit-text"},[t._v("退出全屏")])]),t._t("default")],2)},o=[],s={name:"DemoPreview",methods:{exitFullscreen(){this.$fullscreen.exit().catch(t=>{console.warn("[Fullscreen] Failed to exit fullscreen:",t)})}}},r=s,c=a("a6c2"),n=Object(c["a"])(r,i,o,!1,null,null,null);e["a"]=n.exports},e8f1:function(t,e,a){"use strict";a.d(e,"a",(function(){return s}));var i=a("fc8e");const o="comps-vue2-ele";var s=Object(i["exposeLib"])(o)}}]);
2
+ //# sourceMappingURL=chunk-219be077.32809f5a.js.map