@ezuikit/multi-screen 0.1.0-beta.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +44 -85
- package/dist/constant.js +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/style.css +1 -1
- package/dist/style.js +1 -1
- package/package.json +4 -4
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -2,13 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
一个灵活的分屏布局组件,支持多种分屏模式、自定义布局、主题切换和国际化。
|
|
4
4
|
|
|
5
|
-
[]()
|
|
7
|
-
[]()
|
|
5
|
+
   
|
|
8
6
|
|
|
9
7
|
## ✨ 特性
|
|
10
8
|
|
|
11
|
-
- ✅ 支持 1、2、4、6、9、16
|
|
9
|
+
- ✅ 支持 1、2、4、6、9、16 分屏模式
|
|
12
10
|
- ✅ 支持自定义分屏布局
|
|
13
11
|
- ✅ 自适应父元素大小
|
|
14
12
|
- ✅ 单个屏幕选中功能
|
|
@@ -27,110 +25,79 @@
|
|
|
27
25
|
npm install @ezuikit/multi-screen
|
|
28
26
|
|
|
29
27
|
# or
|
|
30
|
-
yarn add @ezuikit/multi-screen
|
|
28
|
+
yarn add @ezuikit/multi-screen
|
|
31
29
|
|
|
32
|
-
# or
|
|
30
|
+
# or
|
|
33
31
|
pnpm add @ezuikit/multi-screen
|
|
34
|
-
|
|
35
32
|
```
|
|
36
33
|
|
|
37
|
-
<!-- ## 📖 文档
|
|
38
|
-
|
|
39
|
-
- **[快速开始](QUICKSTART.md)** - 5分钟快速上手
|
|
40
|
-
- **[API 文档](docs/API.md)** - 完整的 API 参考
|
|
41
|
-
- **[使用指南](docs/GUIDE.md)** - 详细的使用教程
|
|
42
|
-
- **[示例代码](examples/README.md)** - 多个实用示例
|
|
43
|
-
- **[项目索引](INDEX.md)** - 完整的文档导航 -->
|
|
44
|
-
|
|
45
34
|
## 💡 使用示例
|
|
46
35
|
|
|
47
|
-
###
|
|
48
|
-
|
|
49
|
-
```typescript
|
|
50
|
-
import ScreenLayout from 'screen-layout';
|
|
36
|
+
### 构造函数
|
|
51
37
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
mode: 4, // 分屏模式
|
|
55
|
-
theme: 'dark',
|
|
56
|
-
locale: 'zh'
|
|
57
|
-
});
|
|
38
|
+
```ts
|
|
39
|
+
new MultiScreen(containerID, Player, options);
|
|
58
40
|
```
|
|
59
41
|
|
|
60
|
-
|
|
42
|
+
- `containerID: string`:容器元素 `id`(内部使用 `document.getElementById(containerID)`)
|
|
43
|
+
- `Player: new (...args: any[]) => AbstractPlayer`:播放器类构造器
|
|
44
|
+
- `options:` [MultiScreenOptions](./API.md#初始化配置multiscreenoptions):初始化配置
|
|
45
|
+
|
|
46
|
+
### 基础用法
|
|
61
47
|
|
|
62
48
|
```typescript
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
49
|
+
// 引入样式
|
|
50
|
+
import "@ezuikit/multi-screen/dist/style.css";
|
|
51
|
+
// 引入flv样式
|
|
52
|
+
import "ezuikit-flv/style.css";
|
|
53
|
+
import MultiScreen from "@ezuikit/multi-screen";
|
|
54
|
+
// 引入flv
|
|
55
|
+
import EzuikitFlv from "ezuikit-flv";
|
|
56
|
+
|
|
57
|
+
const screens = new MultiScreen("app", EzuikitFlv, {
|
|
58
|
+
mode: 4, // 分屏模式
|
|
59
|
+
theme: "dark",
|
|
60
|
+
language: "zh",
|
|
66
61
|
screens: [
|
|
67
|
-
|
|
62
|
+
{ url: "https://example.com/live1.flv" },
|
|
63
|
+
{ url: "https://example.com/live2.flv" },
|
|
68
64
|
],
|
|
69
|
-
theme: 'dark',
|
|
70
|
-
locale: 'zh',
|
|
71
|
-
onScreenClick: (index, screen) => {
|
|
72
|
-
console.log('Screen clicked:', index, screen);
|
|
73
|
-
}
|
|
74
65
|
});
|
|
75
66
|
```
|
|
76
67
|
|
|
68
|
+
完整的用例请参考[with-react-ts/src/App.tsx](./examples/with-react-ts/src/App.tsx)
|
|
69
|
+
|
|
77
70
|
### 动态操作
|
|
78
71
|
|
|
79
72
|
```typescript
|
|
80
73
|
// 切换模式
|
|
81
|
-
|
|
74
|
+
screens.setMode(9);
|
|
82
75
|
|
|
83
|
-
//
|
|
84
|
-
|
|
76
|
+
// 切换自定义布局
|
|
77
|
+
screens.setMode({ rows: 3, cols: 5 });
|
|
85
78
|
|
|
86
79
|
// 切换主题
|
|
87
|
-
|
|
80
|
+
screens.setTheme("light");
|
|
88
81
|
|
|
89
82
|
// 监听事件
|
|
90
|
-
|
|
91
|
-
console.log(
|
|
83
|
+
screens.on("screen:click", (index, screen) => {
|
|
84
|
+
console.log("屏幕被点击:", index);
|
|
92
85
|
});
|
|
93
86
|
```
|
|
94
87
|
|
|
95
|
-
## 🎨
|
|
96
|
-
|
|
97
|
-
启动测试服务器后,访问以下链接查看示例:
|
|
98
|
-
|
|
99
|
-
- [基础示例](http://localhost:3001/examples/basic.html) - 最简单的使用方式
|
|
100
|
-
- [自定义布局](http://localhost:3001/examples/custom-layout.html) - 动态布局切换
|
|
88
|
+
## 🎨 examples
|
|
101
89
|
|
|
102
|
-
|
|
90
|
+
### with-base
|
|
103
91
|
|
|
104
|
-
|
|
92
|
+
原生环境下使用umd demo [with-base/index.html](./examples/with-base/index.html)
|
|
105
93
|
|
|
106
|
-
|
|
107
|
-
|------|------|--------|------|
|
|
108
|
-
| id | `string` | - | 容器元素id |
|
|
109
|
-
| mode | `LayoutMode` | `4` | 分屏模式 |
|
|
110
|
-
| customLayout | `CustomLayout` | - | 自定义布局配置 |
|
|
111
|
-
| screens | `ScreenItem[]` | `[]` | 屏幕数据数组 |
|
|
112
|
-
| theme | `'light' \| 'dark'` | `'dark'` | 主题 |
|
|
113
|
-
| locale | `'zh' \| 'en'` | `'zh'` | 语言, 不支持动态切换 |
|
|
114
|
-
| showToolbar | `boolean` | `true` | 是否显示工具栏 |
|
|
115
|
-
| plugins | `ToolbarPlugin[]` | `[]` | 自定义插件数组 |
|
|
94
|
+
### with-react-ts
|
|
116
95
|
|
|
117
|
-
|
|
96
|
+
React + TypeScript demo [with-react-ts/src/App.tsx](./examples/with-react-ts/src/App.tsx)
|
|
118
97
|
|
|
119
|
-
|
|
120
|
-
- `setCustomLayout(layout)` - 设置自定义布局
|
|
121
|
-
- `setScreens(screens)` - 设置屏幕数据
|
|
122
|
-
- `updateScreen(index, screen)` - 更新单个屏幕
|
|
123
|
-
- `setTheme(theme)` - 设置主题
|
|
124
|
-
- `destroy()` - 销毁实例
|
|
98
|
+
### with-vue-ts
|
|
125
99
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
- `screen:click` - 屏幕点击事件
|
|
129
|
-
- `mode:change` - 模式切换事件
|
|
130
|
-
- `fullscreen:change` - 全屏切换事件
|
|
131
|
-
- `theme:change` - 主题切换事件
|
|
132
|
-
|
|
133
|
-
详细 API 文档请查看 [docs/API.md](docs/API.md)
|
|
100
|
+
Vue2.5 demo [with-vue2.5/src/components/index.vue](./examples/with-vue2.5/src/components/index.vue)
|
|
134
101
|
|
|
135
102
|
## 🤝 贡献
|
|
136
103
|
|
|
@@ -142,14 +109,6 @@ MIT License
|
|
|
142
109
|
|
|
143
110
|
## 🔗 相关链接
|
|
144
111
|
|
|
145
|
-
- [
|
|
146
|
-
- [
|
|
147
|
-
- [
|
|
148
|
-
- [使用指南](docs/GUIDE.md)
|
|
149
|
-
- [示例代码](examples/README.md)
|
|
150
|
-
|
|
151
|
-
---
|
|
152
|
-
|
|
153
|
-
**当前状态**: ✅ 构建成功 | 测试服务器运行中
|
|
154
|
-
|
|
155
|
-
**立即体验**: http://localhost:3000
|
|
112
|
+
- [API 文档](./API.md)
|
|
113
|
+
- [示例代码](./examples/README.md)
|
|
114
|
+
- [示例常见问题代码](./FAQ.md)
|
package/dist/constant.js
CHANGED
package/dist/index.js
CHANGED
package/dist/index.mjs
CHANGED
package/dist/index.umd.js
CHANGED
package/dist/style.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
.epicker-body-noscroll{overflow:hidden;touch-action:none}.epicker{box-shadow:0 9px 28px 8px #0000000d;display:none;margin:0;opacity:0;padding:0;position:absolute;transition:opacity .3s ease;vertical-align:top;z-index:1000}.epicker,.epicker-body{box-sizing:border-box;flex-direction:column}.epicker-body{display:flex}.epicker.epicker-mobile .epicker-mask{background:#0000004d;bottom:0;box-sizing:border-box;height:100%;left:0;position:fixed;right:0;top:0;width:100%;z-index:9998}.epicker.epicker-mobile .epicker-body{align-items:center;bottom:0;left:0;position:fixed;right:0;z-index:9999}
|
|
2
2
|
:root{--sl-bg-primary:#1a1a1a;--sl-bg-secondary:#2a2a2a;--sl-border-color:#3a3a3a;--sl-text-primary:#fff;--sl-text-secondary:#999;--sl-accent-color:#1890ff;--sl-hover-color:#40a9ff;--sl-icon-color:var(--sl-text-primary)}[data-theme=light]{--sl-bg-primary:#f5f5f5;--sl-bg-secondary:#fff;--sl-border-color:#d9d9d9;--sl-text-primary:#000;--sl-text-secondary:#666;--sl-accent-color:#1890ff;--sl-hover-color:#40a9ff;--sl-icon-color:var(--sl-text-primary)}.ez-sl_mode-icon{align-items:center;border-radius:4px;display:inline-flex;height:24px;justify-content:center;padding:2px;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:24px}
|
|
3
3
|
.ez-sl-icon{align-items:center;color:inherit;display:inline-flex;font-size:24px;font-style:normal;line-height:0;text-align:center;text-rendering:optimizeLegibility;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
|
|
4
|
-
:root{--sl-bg-primary:#1a1a1a;--sl-bg-secondary:#2a2a2a;--sl-border-color:#3a3a3a;--sl-text-primary:#fff;--sl-text-secondary:#999;--sl-accent-color:#1890ff;--sl-hover-color:#40a9ff;--sl-icon-color:var(--sl-text-primary)}[data-theme=light]{--sl-bg-primary:#f5f5f5;--sl-bg-secondary:#fff;--sl-border-color:#d9d9d9;--sl-text-primary:#000;--sl-text-secondary:#666;--sl-accent-color:#1890ff;--sl-hover-color:#40a9ff;--sl-icon-color:var(--sl-text-primary)}.mode-picker_trigger{align-items:center;background-color:var(--sl-bg-primary);border:1px solid var(--sl-border-color);border-radius:4px;color:var(--sl-text-primary);cursor:pointer;display:flex;font-size:14px;gap:8px;min-width:120px;outline:none;padding:8px 12px;transition:all .2s ease}.mode-picker_trigger:hover{background-color:var(--sl-bg-secondary);border-color:var(--sl-accent-color)}.mode-picker_trigger-open .mode-picker_arrow{transform:rotate(180deg)}.mode-picker_icon{align-items:center;color:var(--sl-text-primary);display:flex;height:24px;justify-content:center;width:24px}.mode-picker_icon svg{height:100%;width:100%}.mode-picker_label{flex:1;text-align:left}.mode-picker_arrow{font-size:10px;transition:transform .2s ease}.mode-picker_options{display:grid;gap:8px;grid-template-columns:repeat(3,1fr);min-width:240px;padding:8px}.mode-picker_option{align-items:center;background-color:var(--sl-bg-primary);border:2px solid transparent;border-radius:4px;cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:8px 6px;transition:all .2s ease}.mode-picker_option:hover{background-color:var(--sl-bg-secondary);border-color:var(--sl-hover-color)}.mode-picker_option-active{background-color:rgba(24,144,255,.1);border-color:var(--sl-accent-color)}.mode-picker_option-icon{align-items:center;color:var(--sl-text-primary);display:flex;height:32px;justify-content:center;width:32px}.mode-picker_option-icon svg{height:100%;width:100%}.mode-picker_option-label{color:var(--sl-text-primary);font-size:12px;text-align:center}.mode-picker_tip{color:var(--sl-text-secondary);font-size:12px;line-height:1.5;padding:8px}.mode-picker-dropdown .epicker-body{padding:0}.ez-sl_settings{color:var(--sl-text-primary);padding:15px}.ez-sl_settings,.ez-sl_settings-dropdown>.epicker-body{-webkit-user-select:none;-moz-user-select:none;user-select:none}.ez-sl_settings-dropdown>.epicker-body{max-width:350px;min-width:300px;padding:0}.ez-sl_settings_section{margin-bottom:24px}.ez-sl_settings_section:last-child{margin-bottom:0}.ez-sl_settings_section-title{color:var(--sl-text-primary);font-size:16px;font-weight:500;margin-bottom:12px}.ez-sl_settings_aspect-ratio{display:flex;gap:12px}.ez-sl_settings_ratio-btn{background-color:var(--sl-bg-secondary);border:2px solid var(--sl-border-color);border-radius:4px;color:var(--sl-text-primary);cursor:pointer;flex:1;font-size:14px;outline:none;padding:4px 10px;transition:all .2s ease}.ez-sl_settings_ratio-btn:hover{background-color:var(--sl-bg-hover);border-color:var(--sl-hover-color)}.ez-sl_settings_ratio-btn-active{background-color:var(--sl-accent-color);border-color:var(--sl-accent-color);color:#fff;font-weight:500}.ez-sl_settings_audio-select{align-items:center;background-color:var(--sl-bg-secondary);border:1px solid var(--sl-border-color);border-radius:4px;cursor:pointer;display:flex;justify-content:space-between;padding:8px 12px;transition:all .2s ease}.ez-sl_settings_audio-select:hover{border-color:var(--sl-hover-color)}.ez-sl_settings_audio-select-open .ez-sl_settings_audio-arrow{transform:rotate(180deg)}.ez-sl_settings_audio-text{color:var(--sl-text-primary);font-size:14px}.ez-sl_settings_audio-arrow{color:var(--sl-text-secondary);font-size:12px;transition:transform .2s ease}.ez-sl_settings-audio-dropdown{width:100%}.ez-sl_settings_audio-dropdown{background-color:var(--sl-bg-secondary);border-radius:4px;overflow:hidden}.ez-sl_settings_audio-option{color:var(--sl-text-primary);cursor:pointer;font-size:14px;padding:8px 12px;transition:all .2s ease}.ez-sl_settings_audio-option:hover{background-color:var(--sl-bg-hover)}.ez-sl_settings_audio-option-active{background-color:rgba(24,144,255,.1);color:var(--sl-accent-color);font-weight:500}.ez-sl_settings_toggle-item{align-items:center;display:flex;gap:16px;justify-content:space-between}.ez-sl_settings_toggle-info{flex:1}.ez-sl_settings_toggle-title{color:var(--sl-text-primary);font-size:15px;font-weight:500;margin-bottom:6px}.ez-sl_settings_toggle-desc{color:var(--sl-text-secondary);font-size:13px;line-height:1.5}.ez-sl_settings_switch{display:inline-block;flex-shrink:0;height:24px;position:relative;width:50px}.ez-sl_settings_switch input{height:0;opacity:0;width:0}.ez-sl_settings_switch input:checked+.ez-sl_settings_switch-slider{background-color:var(--sl-accent-color)}.ez-sl_settings_switch input:checked+.ez-sl_settings_switch-slider:before{transform:translateX(24px)}.ez-sl_settings_switch input:focus+.ez-sl_settings_switch-slider{box-shadow:0 0 1px var(--sl-accent-color)}.ez-sl_settings_switch-slider{background-color:#ccc;border-radius:24px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.3s}.ez-sl_settings_switch-slider:before{background-color:#fff;border-radius:50%;bottom:2px;content:"";height:20px;left:2px;position:absolute;transition:.3s;width:20px}.ez-sl{background-color:var(--sl-bg-primary);box-sizing:border-box;color:var(--sl-text-primary);display:flex;flex-direction:column;font-size:14px;height:100%;margin:0;padding:0;position:relative;width:100%}.ez-sl_web-fullscreen{bottom:0;box-sizing:border-box;height:100%!important;left:0;position:fixed;right:0;top:0;width:100%!important;z-index:9999}.ez-sl_container{background-color:var(--sl-bg-primary);box-sizing:border-box;display:grid;flex:1;gap:2px;margin:0;padding:2px}.ez-sl_screen{background-color:var(--sl-bg-secondary);border:2px solid transparent;box-sizing:border-box;cursor:pointer;margin:0;padding:0;position:relative;transition:all .2s ease}.ez-sl_screen:hover{border-color:var(--sl-hover-color)}.ez-sl_screen-selected{border-color:var(--sl-accent-color);box-shadow:0 0 10px rgba(24,144,255,.5)}.ez-sl_screen-selected .ez-sl_screen-number{background-color:var(--sl-accent-color)}.ez-sl_screen-number{color:#fff;font-size:12px;left:8px}.ez-sl_screen-close,.ez-sl_screen-number{align-items:center;background-color:rgba(0,0,0,.6);border-radius:4px;box-sizing:border-box;display:inline-flex;font-weight:700;height:24px;justify-content:center;margin:0;position:absolute;top:8px;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:24px;z-index:10}.ez-sl_screen-close{right:8px}.ez-sl_screen-close:hover .ez-sl-icon-close{color:red}.ez-sl_screen-close .ez-sl-icon-close{color:#fff;font-size:14px}.ez-sl_screen-player{height:100%;position:relative;width:100%}.ez-sl_screen-placeholder{align-items:center;bottom:0;color:var(--sl-text-secondary);display:flex;font-size:14px;height:100%;justify-content:center;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.ez-sl_toolbar{background-color:var(--sl-bg-secondary);border-bottom:2px solid var(--sl-bg-primary);border-left:2px solid var(--sl-bg-primary);border-right:2px solid var(--sl-bg-primary);box-sizing:border-box;display:flex;gap:16px;justify-content:space-between;margin:0;padding:8px 16px}.ez-sl_toolbar-left,.ez-sl_toolbar-right{align-items:center;display:flex;gap:16px}.ez-sl_toolbar-group{display:flex;gap:8px}.ez-sl-control-btn{border-radius:4px;box-sizing:border-box;color:var(--sl-text-primary);cursor:pointer;display:flex;font-size:14px;margin:0;padding:6px;transition:all .2s ease}.ez-sl-control-btn:not(.ez-sl-disabled):hover{background-color:var(--sl-bg-primary)}.ez-sl_settings-btn{font-size:18px}.ez-sl_settings-container{align-items:center;display:flex;justify-content:center}.ez-sl_settings-container-open{display:flex}.ez-sl_settings-wrapper{background-color:var(--sl-bg-primary);border-radius:8px;box-shadow:0 8px 32px rgba(0,0,0,.3);max-height:80vh;max-width:800px;overflow-y:auto;position:relative;width:90%;z-index:1}.ez-sl_hide{display:none}.ez-sl-disabled{color:#595959;cursor:not-allowed}.ez-sl .ez-sl_toolbar .epicker-body{background-color:var(--sl-bg-secondary);border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,.15)}
|
|
4
|
+
:root{--sl-bg-primary:#1a1a1a;--sl-bg-secondary:#2a2a2a;--sl-border-color:#3a3a3a;--sl-text-primary:#fff;--sl-text-secondary:#999;--sl-accent-color:#1890ff;--sl-hover-color:#40a9ff;--sl-icon-color:var(--sl-text-primary)}[data-theme=light]{--sl-bg-primary:#f5f5f5;--sl-bg-secondary:#fff;--sl-border-color:#d9d9d9;--sl-text-primary:#000;--sl-text-secondary:#666;--sl-accent-color:#1890ff;--sl-hover-color:#40a9ff;--sl-icon-color:var(--sl-text-primary)}.mode-picker_trigger{align-items:center;background-color:var(--sl-bg-primary);border:1px solid var(--sl-border-color);border-radius:4px;color:var(--sl-text-primary);cursor:pointer;display:flex;font-size:14px;gap:8px;min-width:120px;outline:none;padding:8px 12px;transition:all .2s ease}.mode-picker_trigger:hover{background-color:var(--sl-bg-secondary);border-color:var(--sl-accent-color)}.mode-picker_trigger-open .mode-picker_arrow{transform:rotate(180deg)}.mode-picker_icon{align-items:center;color:var(--sl-text-primary);display:flex;height:24px;justify-content:center;width:24px}.mode-picker_icon svg{height:100%;width:100%}.mode-picker_label{flex:1;text-align:left}.mode-picker_arrow{font-size:10px;transition:transform .2s ease}.mode-picker_options{display:grid;gap:8px;grid-template-columns:repeat(3,1fr);min-width:240px;padding:8px}.mode-picker_option{align-items:center;background-color:var(--sl-bg-primary);border:2px solid transparent;border-radius:4px;cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:8px 6px;transition:all .2s ease}.mode-picker_option:hover{background-color:var(--sl-bg-secondary);border-color:var(--sl-hover-color)}.mode-picker_option-active{background-color:rgba(24,144,255,.1);border-color:var(--sl-accent-color)}.mode-picker_option-icon{align-items:center;color:var(--sl-text-primary);display:flex;height:32px;justify-content:center;width:32px}.mode-picker_option-icon svg{height:100%;width:100%}.mode-picker_option-label{color:var(--sl-text-primary);font-size:12px;text-align:center}.mode-picker_tip{color:var(--sl-text-secondary);font-size:12px;line-height:1.5;padding:8px}.mode-picker-dropdown .epicker-body{padding:0}.ez-sl_settings{color:var(--sl-text-primary);padding:15px}.ez-sl_settings,.ez-sl_settings-dropdown>.epicker-body{-webkit-user-select:none;-moz-user-select:none;user-select:none}.ez-sl_settings-dropdown>.epicker-body{max-width:350px;min-width:300px;padding:0}.ez-sl_settings_section{margin-bottom:24px}.ez-sl_settings_section:last-child{margin-bottom:0}.ez-sl_settings_section-title{color:var(--sl-text-primary);font-size:16px;font-weight:500;margin-bottom:12px}.ez-sl_settings_aspect-ratio{display:flex;gap:12px}.ez-sl_settings_ratio-btn{background-color:var(--sl-bg-secondary);border:2px solid var(--sl-border-color);border-radius:4px;color:var(--sl-text-primary);cursor:pointer;flex:1;font-size:14px;outline:none;padding:4px 10px;transition:all .2s ease}.ez-sl_settings_ratio-btn:hover{background-color:var(--sl-bg-hover);border-color:var(--sl-hover-color)}.ez-sl_settings_ratio-btn-active{background-color:var(--sl-accent-color);border-color:var(--sl-accent-color);color:#fff;font-weight:500}.ez-sl_settings_audio-select{align-items:center;background-color:var(--sl-bg-secondary);border:1px solid var(--sl-border-color);border-radius:4px;cursor:pointer;display:flex;justify-content:space-between;padding:8px 12px;transition:all .2s ease}.ez-sl_settings_audio-select:hover{border-color:var(--sl-hover-color)}.ez-sl_settings_audio-select-open .ez-sl_settings_audio-arrow{transform:rotate(180deg)}.ez-sl_settings_audio-text{color:var(--sl-text-primary);font-size:14px}.ez-sl_settings_audio-arrow{color:var(--sl-text-secondary);font-size:12px;transition:transform .2s ease}.ez-sl_settings-audio-dropdown{width:100%}.ez-sl_settings_audio-dropdown{background-color:var(--sl-bg-secondary);border-radius:4px;overflow:hidden}.ez-sl_settings_audio-option{color:var(--sl-text-primary);cursor:pointer;font-size:14px;padding:8px 12px;transition:all .2s ease}.ez-sl_settings_audio-option:hover{background-color:var(--sl-bg-hover)}.ez-sl_settings_audio-option-active{background-color:rgba(24,144,255,.1);color:var(--sl-accent-color);font-weight:500}.ez-sl_settings_toggle-item{align-items:center;display:flex;gap:16px;justify-content:space-between}.ez-sl_settings_toggle-info{flex:1}.ez-sl_settings_toggle-title{color:var(--sl-text-primary);font-size:15px;font-weight:500;margin-bottom:6px}.ez-sl_settings_toggle-desc{color:var(--sl-text-secondary);font-size:13px;line-height:1.5}.ez-sl_settings_switch{display:inline-block;flex-shrink:0;height:24px;position:relative;width:50px}.ez-sl_settings_switch input{height:0;opacity:0;width:0}.ez-sl_settings_switch input:checked+.ez-sl_settings_switch-slider{background-color:var(--sl-accent-color)}.ez-sl_settings_switch input:checked+.ez-sl_settings_switch-slider:before{transform:translateX(24px)}.ez-sl_settings_switch input:focus+.ez-sl_settings_switch-slider{box-shadow:0 0 1px var(--sl-accent-color)}.ez-sl_settings_switch-slider{background-color:#ccc;border-radius:24px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.3s}.ez-sl_settings_switch-slider:before{background-color:#fff;border-radius:50%;bottom:2px;content:"";height:20px;left:2px;position:absolute;transition:.3s;width:20px}.ez-sl{background-color:var(--sl-bg-primary);box-sizing:border-box;color:var(--sl-text-primary);display:flex;flex-direction:column;font-size:14px;height:100%;margin:0;padding:0;position:relative;text-align:left;width:100%}.ez-sl_web-fullscreen{bottom:0;box-sizing:border-box;height:100%!important;left:0;position:fixed;right:0;top:0;width:100%!important;z-index:9999}.ez-sl_container{background-color:var(--sl-bg-primary);box-sizing:border-box;display:grid;flex:1;gap:2px;margin:0;padding:2px}.ez-sl_screen{background-color:var(--sl-bg-secondary);border:2px solid transparent;box-sizing:border-box;cursor:pointer;margin:0;padding:0;position:relative;transition:all .2s ease}.ez-sl_screen:hover{border-color:var(--sl-hover-color)}.ez-sl_screen-selected{border-color:var(--sl-accent-color);box-shadow:0 0 10px rgba(24,144,255,.5)}.ez-sl_screen-selected .ez-sl_screen-number{background-color:var(--sl-accent-color)}.ez-sl_screen-number{color:#fff;font-size:12px;left:8px}.ez-sl_screen-close,.ez-sl_screen-number{align-items:center;background-color:rgba(0,0,0,.6);border-radius:4px;box-sizing:border-box;display:inline-flex;font-weight:700;height:24px;justify-content:center;margin:0;position:absolute;top:8px;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:24px;z-index:10}.ez-sl_screen-close{right:8px}.ez-sl_screen-close:hover .ez-sl-icon-close{color:red}.ez-sl_screen-close .ez-sl-icon-close{color:#fff;font-size:14px}.ez-sl_screen-player{height:100%;position:relative;width:100%}.ez-sl_screen-placeholder{align-items:center;bottom:0;color:var(--sl-text-secondary);display:flex;font-size:14px;height:100%;justify-content:center;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.ez-sl_toolbar{background-color:var(--sl-bg-secondary);border-bottom:2px solid var(--sl-bg-primary);border-left:2px solid var(--sl-bg-primary);border-right:2px solid var(--sl-bg-primary);box-sizing:border-box;display:flex;gap:16px;justify-content:space-between;margin:0;padding:8px 16px}.ez-sl_toolbar-left,.ez-sl_toolbar-right{align-items:center;display:flex;gap:16px}.ez-sl_toolbar-group{display:flex;gap:8px}.ez-sl-control-btn{border-radius:4px;box-sizing:border-box;color:var(--sl-text-primary);cursor:pointer;display:flex;font-size:14px;margin:0;padding:6px;transition:all .2s ease}.ez-sl-control-btn:not(.ez-sl-disabled):hover{background-color:var(--sl-bg-primary)}.ez-sl_settings-btn{font-size:18px}.ez-sl_settings-container{align-items:center;display:flex;justify-content:center}.ez-sl_settings-container-open{display:flex}.ez-sl_settings-wrapper{background-color:var(--sl-bg-primary);border-radius:8px;box-shadow:0 8px 32px rgba(0,0,0,.3);max-height:80vh;max-width:800px;overflow-y:auto;position:relative;width:90%;z-index:1}.ez-sl_hide{display:none}.ez-sl-disabled{color:#595959;cursor:not-allowed}.ez-sl .ez-sl_toolbar .epicker-body{background-color:var(--sl-bg-secondary);border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,.15)}
|
package/dist/style.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ezuikit/multi-screen",
|
|
3
|
-
"version": "0.1.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "A flexible screen layout component with multi-screen support",
|
|
5
5
|
"title": "Multi Screen",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -24,12 +24,12 @@
|
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@ezuikit/player-theme": "^2.1.2-beta.1",
|
|
26
26
|
"@ezuikit/utils-i18n": "^2.0.1",
|
|
27
|
+
"@skax/camel": "^0.2.8",
|
|
28
|
+
"@skax/delegate": "^4.0.2",
|
|
27
29
|
"@skax/picker": "^1.1.8",
|
|
28
30
|
"deepmerge": "^4.3.1",
|
|
29
31
|
"eventemitter3": "^5.0.4",
|
|
30
|
-
"screenfull": "5.2.0"
|
|
31
|
-
"@skax/delegate": "^4.0.2",
|
|
32
|
-
"@skax/camel": "^0.2.8"
|
|
32
|
+
"screenfull": "5.2.0"
|
|
33
33
|
},
|
|
34
34
|
"publishConfig": {
|
|
35
35
|
"access": "public",
|