@greypan/web-ui 1.3.1 → 1.4.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/README.CN.md +231 -2
- package/README.md +231 -2
- package/dist/components/back-top/index.js +12 -15
- package/dist/components/back-top/index.js.map +1 -1
- package/dist/components/button/index.js +13 -15
- package/dist/components/button/index.js.map +1 -1
- package/dist/components/layout/index.js +8 -9
- package/dist/components/layout/index.js.map +1 -1
- package/dist/components/svg-draw-lines/index.js +10 -14
- package/dist/components/svg-draw-lines/index.js.map +1 -1
- package/package.json +5 -9
- package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/css-tag.js +0 -32
- package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/css-tag.js.map +0 -1
- package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/base.js +0 -6
- package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/base.js.map +0 -1
- package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/custom-element.js +0 -10
- package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/custom-element.js.map +0 -1
- package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/property.js +0 -41
- package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/property.js.map +0 -1
- package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/query.js +0 -31
- package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/query.js.map +0 -1
- package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/state.js +0 -13
- package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/state.js.map +0 -1
- package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/reactive-element.js +0 -229
- package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/reactive-element.js.map +0 -1
- package/dist/node_modules/.pnpm/lit@3.3.3/node_modules/lit/decorators.js +0 -5
package/README.CN.md
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
- **Layout**:带 header/sidebar/tabbar 插槽的页面布局
|
|
12
12
|
- **SVG Draw Lines**:带缓动控制的 SVG 线条绘制动画
|
|
13
13
|
- **框架兼容**:支持 React、Vue 和原生 HTML
|
|
14
|
+
- **类型安全**:为 React 和 Vue 提供完整的 TypeScript 类型
|
|
14
15
|
|
|
15
16
|
## 安装
|
|
16
17
|
|
|
@@ -32,9 +33,12 @@ bun add @greypan/web-ui
|
|
|
32
33
|
|
|
33
34
|
## 快速开始
|
|
34
35
|
|
|
35
|
-
```
|
|
36
|
-
|
|
36
|
+
```js
|
|
37
|
+
import '@greypan/web-ui'
|
|
38
|
+
// import '@greypan/web-ui/components/button'
|
|
39
|
+
```
|
|
37
40
|
|
|
41
|
+
```html
|
|
38
42
|
<web-ui-button primary>点击我</web-ui-button>
|
|
39
43
|
<web-ui-button text>取消</web-ui-button>
|
|
40
44
|
<web-ui-button icon>
|
|
@@ -42,6 +46,231 @@ bun add @greypan/web-ui
|
|
|
42
46
|
</web-ui-button>
|
|
43
47
|
```
|
|
44
48
|
|
|
49
|
+
## React 中使用
|
|
50
|
+
|
|
51
|
+
> 需要 `@types/react >= 16` 作为可选 peer 依赖,用于类型支持。
|
|
52
|
+
|
|
53
|
+
### 初始化
|
|
54
|
+
|
|
55
|
+
**方式 A — auto-import(Vite,推荐)**
|
|
56
|
+
|
|
57
|
+
使用 `unplugin-web-components` 自动注册自定义组件:
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
// vite.config.ts
|
|
61
|
+
import unpluginWebComponents from '@greypan/unplugin-web-components/vite'
|
|
62
|
+
|
|
63
|
+
export default {
|
|
64
|
+
plugins: [
|
|
65
|
+
unpluginWebComponents({
|
|
66
|
+
tagPrefix: 'web-ui',
|
|
67
|
+
packageName: '@greypan/web-ui',
|
|
68
|
+
sideEffects: true
|
|
69
|
+
})
|
|
70
|
+
]
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**方式 B — 手动导入**
|
|
75
|
+
|
|
76
|
+
在应用入口全量导入,注册所有组件(side-effect 注册):
|
|
77
|
+
|
|
78
|
+
```tsx
|
|
79
|
+
// main.tsx
|
|
80
|
+
import '@greypan/web-ui'
|
|
81
|
+
// import '@greypan/web-ui/components/button'
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
或按需导入,只注册需要的组件:
|
|
85
|
+
|
|
86
|
+
```tsx
|
|
87
|
+
// main.tsx 或任意组件文件
|
|
88
|
+
import '@greypan/web-ui/components/button'
|
|
89
|
+
import '@greypan/web-ui/components/back-top'
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
添加类型声明以让 TypeScript 识别自定义元素 JSX 属性:
|
|
93
|
+
|
|
94
|
+
```tsx
|
|
95
|
+
// env.d.ts 或任意类型声明文件
|
|
96
|
+
import '@greypan/web-ui/types/react'
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 应用布局
|
|
100
|
+
|
|
101
|
+
用 `<web-ui-layout>` 包裹路由,配合 `<web-ui-back-top>` 实现全局回到顶部:
|
|
102
|
+
|
|
103
|
+
```tsx
|
|
104
|
+
// root.tsx
|
|
105
|
+
import { Outlet } from '@tanstack/react-router'
|
|
106
|
+
|
|
107
|
+
export function Root() {
|
|
108
|
+
return (
|
|
109
|
+
<>
|
|
110
|
+
<web-ui-layout>
|
|
111
|
+
<h1>My App</h1>
|
|
112
|
+
|
|
113
|
+
{/* 按钮变体 */}
|
|
114
|
+
<div className="flex gap-2">
|
|
115
|
+
<web-ui-button>默认</web-ui-button>
|
|
116
|
+
<web-ui-button primary>Primary</web-ui-button>
|
|
117
|
+
<web-ui-button text>Text</web-ui-button>
|
|
118
|
+
<web-ui-button full>Full Width</web-ui-button>
|
|
119
|
+
</div>
|
|
120
|
+
|
|
121
|
+
{/* 具名插槽 */}
|
|
122
|
+
<web-ui-button>
|
|
123
|
+
<span slot="prefix">前缀</span>
|
|
124
|
+
带前后缀插槽的按钮
|
|
125
|
+
<span slot="suffix">后缀</span>
|
|
126
|
+
</web-ui-button>
|
|
127
|
+
|
|
128
|
+
{/* 路由出口 */}
|
|
129
|
+
<Outlet />
|
|
130
|
+
</web-ui-layout>
|
|
131
|
+
|
|
132
|
+
<web-ui-back-top
|
|
133
|
+
threshold={300}
|
|
134
|
+
onvisible-change={e => {
|
|
135
|
+
console.log('visible: ', e.detail.visible)
|
|
136
|
+
}}
|
|
137
|
+
/>
|
|
138
|
+
</>
|
|
139
|
+
)
|
|
140
|
+
}
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
> `onvisible-change` 在 React 19+ 中可用(props 转发到 custom element)。React 18 请改用 `ref` + `addEventListener`。
|
|
144
|
+
|
|
145
|
+
### SVG 线条动画
|
|
146
|
+
|
|
147
|
+
包裹内联 `<svg>` 来实现线条绘制动画:
|
|
148
|
+
|
|
149
|
+
```tsx
|
|
150
|
+
function SvgDemo() {
|
|
151
|
+
return (
|
|
152
|
+
<web-ui-svg-draw-lines>
|
|
153
|
+
<svg viewBox="0 0 24 24" width="100" height="100" fill="none" stroke="currentColor" stroke-width="2">
|
|
154
|
+
<path d="M4 4v16M8 6h12M8 12h6m-6 6h10" />
|
|
155
|
+
</svg>
|
|
156
|
+
</web-ui-svg-draw-lines>
|
|
157
|
+
)
|
|
158
|
+
}
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Vue 中使用
|
|
162
|
+
|
|
163
|
+
> 需要 `vue >= 3` 作为可选 peer 依赖。
|
|
164
|
+
|
|
165
|
+
### 初始化
|
|
166
|
+
|
|
167
|
+
**方式 A — auto-import(Vite,推荐)**
|
|
168
|
+
|
|
169
|
+
使用 `unplugin-web-components` 自动注册:
|
|
170
|
+
|
|
171
|
+
```ts
|
|
172
|
+
// vite.config.ts
|
|
173
|
+
import vue from '@vitejs/plugin-vue'
|
|
174
|
+
import unpluginWebComponents from '@greypan/unplugin-web-components/vite'
|
|
175
|
+
|
|
176
|
+
export default {
|
|
177
|
+
plugins: [
|
|
178
|
+
vue({
|
|
179
|
+
template: {
|
|
180
|
+
compilerOptions: {
|
|
181
|
+
// 告诉 Vue 模板编译器将 web-ui-* 标签视为自定义元素
|
|
182
|
+
isCustomElement: tag => tag.startsWith('web-ui-') || tag.startsWith('WebUi')
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}),
|
|
186
|
+
unpluginWebComponents({
|
|
187
|
+
tagPrefix: 'web-ui',
|
|
188
|
+
packageName: '@greypan/web-ui',
|
|
189
|
+
sideEffects: true
|
|
190
|
+
})
|
|
191
|
+
]
|
|
192
|
+
}
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**方式 B — 手动导入**
|
|
196
|
+
|
|
197
|
+
```ts
|
|
198
|
+
// main.ts
|
|
199
|
+
import { createApp } from 'vue'
|
|
200
|
+
import '@greypan/web-ui' // 全量导入
|
|
201
|
+
// import '@greypan/web-ui/components/button'
|
|
202
|
+
import App from './App.vue'
|
|
203
|
+
|
|
204
|
+
createApp(App).mount('#app')
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
同时配置 Vue 编译器以识别自定义元素:
|
|
208
|
+
|
|
209
|
+
```ts
|
|
210
|
+
// vite.config.ts
|
|
211
|
+
vue({
|
|
212
|
+
template: {
|
|
213
|
+
compilerOptions: {
|
|
214
|
+
isCustomElement: tag => tag.startsWith('web-ui-') || tag.startsWith('WebUi')
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
})
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Vue 模板中的类型增强:
|
|
221
|
+
|
|
222
|
+
```ts
|
|
223
|
+
// env.d.ts 或任意类型声明文件
|
|
224
|
+
import '@greypan/web-ui/types/vue'
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### 应用布局
|
|
228
|
+
|
|
229
|
+
用 `<web-ui-layout>` 包裹应用,使用按钮的各种变体:
|
|
230
|
+
|
|
231
|
+
```vue
|
|
232
|
+
<template>
|
|
233
|
+
<web-ui-layout>
|
|
234
|
+
<h1>My App</h1>
|
|
235
|
+
|
|
236
|
+
<div class="flex gap-2">
|
|
237
|
+
<web-ui-button>默认</web-ui-button>
|
|
238
|
+
<web-ui-button primary>Primary</web-ui-button>
|
|
239
|
+
<web-ui-button text>Text</web-ui-button>
|
|
240
|
+
<web-ui-button full>Full Width</web-ui-button>
|
|
241
|
+
</div>
|
|
242
|
+
|
|
243
|
+
<web-ui-button>
|
|
244
|
+
<span slot="prefix">前缀</span>
|
|
245
|
+
带前后缀插槽的按钮
|
|
246
|
+
<span slot="suffix">后缀</span>
|
|
247
|
+
</web-ui-button>
|
|
248
|
+
|
|
249
|
+
<RouterView />
|
|
250
|
+
</web-ui-layout>
|
|
251
|
+
|
|
252
|
+
<web-ui-back-top :threshold="300" @visible-change="onVisibleChange" />
|
|
253
|
+
</template>
|
|
254
|
+
|
|
255
|
+
<script setup lang="ts">
|
|
256
|
+
function onVisibleChange(e: CustomEvent<{ visible: boolean }>) {
|
|
257
|
+
console.log('visible: ', e.detail.visible)
|
|
258
|
+
}
|
|
259
|
+
</script>
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
### SVG 线条动画
|
|
263
|
+
|
|
264
|
+
```vue
|
|
265
|
+
<template>
|
|
266
|
+
<web-ui-svg-draw-lines>
|
|
267
|
+
<svg viewBox="0 0 24 24" width="100" height="100" fill="none" stroke="currentColor" stroke-width="2">
|
|
268
|
+
<path d="M4 4v16M8 6h12M8 12h6m-6 6h10" />
|
|
269
|
+
</svg>
|
|
270
|
+
</web-ui-svg-draw-lines>
|
|
271
|
+
</template>
|
|
272
|
+
```
|
|
273
|
+
|
|
45
274
|
## API
|
|
46
275
|
|
|
47
276
|
### `<web-ui-button>`
|
package/README.md
CHANGED
|
@@ -11,6 +11,7 @@ English | [简体中文](./README.CN.md)
|
|
|
11
11
|
- **Layout**: Page layout with header/sidebar/tabbar slots
|
|
12
12
|
- **SVG Draw Lines**: SVG line drawing animation with easing control
|
|
13
13
|
- **Framework compatible**: Works with React, Vue, and vanilla HTML
|
|
14
|
+
- **Type safe**: Full TypeScript types for React and Vue
|
|
14
15
|
|
|
15
16
|
## Install
|
|
16
17
|
|
|
@@ -32,9 +33,12 @@ bun add @greypan/web-ui
|
|
|
32
33
|
|
|
33
34
|
## Quick Start
|
|
34
35
|
|
|
35
|
-
```
|
|
36
|
-
|
|
36
|
+
```js
|
|
37
|
+
import '@greypan/web-ui'
|
|
38
|
+
// import '@greypan/web-ui/components/button'
|
|
39
|
+
```
|
|
37
40
|
|
|
41
|
+
```html
|
|
38
42
|
<web-ui-button primary>Click me</web-ui-button>
|
|
39
43
|
<web-ui-button text>Cancel</web-ui-button>
|
|
40
44
|
<web-ui-button icon>
|
|
@@ -42,6 +46,231 @@ bun add @greypan/web-ui
|
|
|
42
46
|
</web-ui-button>
|
|
43
47
|
```
|
|
44
48
|
|
|
49
|
+
## React
|
|
50
|
+
|
|
51
|
+
> Requires `@types/react >= 16` as an optional peer dependency for type support.
|
|
52
|
+
|
|
53
|
+
### Setup
|
|
54
|
+
|
|
55
|
+
**Option A — auto-import (Vite, recommended)**
|
|
56
|
+
|
|
57
|
+
Use `unplugin-web-components` to auto-register components when their tags appear in JSX:
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
// vite.config.ts
|
|
61
|
+
import unpluginWebComponents from '@greypan/unplugin-web-components/vite'
|
|
62
|
+
|
|
63
|
+
export default {
|
|
64
|
+
plugins: [
|
|
65
|
+
unpluginWebComponents({
|
|
66
|
+
tagPrefix: 'web-ui',
|
|
67
|
+
packageName: '@greypan/web-ui',
|
|
68
|
+
sideEffects: true
|
|
69
|
+
})
|
|
70
|
+
]
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Option B — manual import**
|
|
75
|
+
|
|
76
|
+
Import the full library to register all components (side-effect registration):
|
|
77
|
+
|
|
78
|
+
```tsx
|
|
79
|
+
// main.tsx
|
|
80
|
+
import '@greypan/web-ui'
|
|
81
|
+
// import '@greypan/web-ui/components/button'
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Or import only specific components for smaller bundle:
|
|
85
|
+
|
|
86
|
+
```tsx
|
|
87
|
+
// main.tsx or any component file
|
|
88
|
+
import '@greypan/web-ui/components/button'
|
|
89
|
+
import '@greypan/web-ui/components/back-top'
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Add type augmentation so TypeScript recognizes the custom element JSX attributes:
|
|
93
|
+
|
|
94
|
+
```tsx
|
|
95
|
+
// env.d.ts or any type declaration file
|
|
96
|
+
import '@greypan/web-ui/types/react'
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### App Layout
|
|
100
|
+
|
|
101
|
+
Wrap your router with `<web-ui-layout>` and use `<web-ui-back-top>` for global scroll-to-top:
|
|
102
|
+
|
|
103
|
+
```tsx
|
|
104
|
+
// root.tsx
|
|
105
|
+
import { Outlet } from '@tanstack/react-router'
|
|
106
|
+
|
|
107
|
+
export function Root() {
|
|
108
|
+
return (
|
|
109
|
+
<>
|
|
110
|
+
<web-ui-layout>
|
|
111
|
+
<h1>My App</h1>
|
|
112
|
+
|
|
113
|
+
{/* Button variants */}
|
|
114
|
+
<div className="flex gap-2">
|
|
115
|
+
<web-ui-button>Default</web-ui-button>
|
|
116
|
+
<web-ui-button primary>Primary</web-ui-button>
|
|
117
|
+
<web-ui-button text>Text</web-ui-button>
|
|
118
|
+
<web-ui-button full>Full Width</web-ui-button>
|
|
119
|
+
</div>
|
|
120
|
+
|
|
121
|
+
{/* Named slots */}
|
|
122
|
+
<web-ui-button>
|
|
123
|
+
<span slot="prefix">prefix</span>
|
|
124
|
+
Button with prefix/suffix slots
|
|
125
|
+
<span slot="suffix">suffix</span>
|
|
126
|
+
</web-ui-button>
|
|
127
|
+
|
|
128
|
+
{/* Router outlet for page content */}
|
|
129
|
+
<Outlet />
|
|
130
|
+
</web-ui-layout>
|
|
131
|
+
|
|
132
|
+
<web-ui-back-top
|
|
133
|
+
threshold={300}
|
|
134
|
+
onvisible-change={e => {
|
|
135
|
+
console.log('visible: ', e.detail.visible)
|
|
136
|
+
}}
|
|
137
|
+
/>
|
|
138
|
+
</>
|
|
139
|
+
)
|
|
140
|
+
}
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
> `onvisible-change` works in React 19+ (props forward to custom elements). For React 18, use a `ref` + `addEventListener` instead.
|
|
144
|
+
|
|
145
|
+
### SVG Draw Lines
|
|
146
|
+
|
|
147
|
+
Wrap an inline `<svg>` to animate its stroke drawing:
|
|
148
|
+
|
|
149
|
+
```tsx
|
|
150
|
+
function SvgDemo() {
|
|
151
|
+
return (
|
|
152
|
+
<web-ui-svg-draw-lines>
|
|
153
|
+
<svg viewBox="0 0 24 24" width="100" height="100" fill="none" stroke="currentColor" stroke-width="2">
|
|
154
|
+
<path d="M4 4v16M8 6h12M8 12h6m-6 6h10" />
|
|
155
|
+
</svg>
|
|
156
|
+
</web-ui-svg-draw-lines>
|
|
157
|
+
)
|
|
158
|
+
}
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Vue
|
|
162
|
+
|
|
163
|
+
> Requires `vue >= 3` as an optional peer dependency.
|
|
164
|
+
|
|
165
|
+
### Setup
|
|
166
|
+
|
|
167
|
+
**Option A — auto-import (Vite, recommended)**
|
|
168
|
+
|
|
169
|
+
Use `unplugin-web-components` for auto-registration:
|
|
170
|
+
|
|
171
|
+
```ts
|
|
172
|
+
// vite.config.ts
|
|
173
|
+
import vue from '@vitejs/plugin-vue'
|
|
174
|
+
import unpluginWebComponents from '@greypan/unplugin-web-components/vite'
|
|
175
|
+
|
|
176
|
+
export default {
|
|
177
|
+
plugins: [
|
|
178
|
+
vue({
|
|
179
|
+
template: {
|
|
180
|
+
compilerOptions: {
|
|
181
|
+
// tell Vue's template compiler to treat web-ui-* tags as custom elements
|
|
182
|
+
isCustomElement: tag => tag.startsWith('web-ui-') || tag.startsWith('WebUi')
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}),
|
|
186
|
+
unpluginWebComponents({
|
|
187
|
+
tagPrefix: 'web-ui',
|
|
188
|
+
packageName: '@greypan/web-ui',
|
|
189
|
+
sideEffects: true
|
|
190
|
+
})
|
|
191
|
+
]
|
|
192
|
+
}
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**Option B — manual import**
|
|
196
|
+
|
|
197
|
+
```ts
|
|
198
|
+
// main.ts
|
|
199
|
+
import { createApp } from 'vue'
|
|
200
|
+
import '@greypan/web-ui' // register all components
|
|
201
|
+
// import '@greypan/web-ui/components/button'
|
|
202
|
+
import App from './App.vue'
|
|
203
|
+
|
|
204
|
+
createApp(App).mount('#app')
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
And configure the Vue compiler to recognize custom elements:
|
|
208
|
+
|
|
209
|
+
```ts
|
|
210
|
+
// vite.config.ts
|
|
211
|
+
vue({
|
|
212
|
+
template: {
|
|
213
|
+
compilerOptions: {
|
|
214
|
+
isCustomElement: tag => tag.startsWith('web-ui-') || tag.startsWith('WebUi')
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
})
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
For type augmentation in Vue templates:
|
|
221
|
+
|
|
222
|
+
```ts
|
|
223
|
+
// env.d.ts or any type declaration file
|
|
224
|
+
import '@greypan/web-ui/types/vue'
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### App Layout
|
|
228
|
+
|
|
229
|
+
Wrap your app with `<web-ui-layout>` and use the button variants:
|
|
230
|
+
|
|
231
|
+
```vue
|
|
232
|
+
<template>
|
|
233
|
+
<web-ui-layout>
|
|
234
|
+
<h1>My App</h1>
|
|
235
|
+
|
|
236
|
+
<div class="flex gap-2">
|
|
237
|
+
<web-ui-button>默认</web-ui-button>
|
|
238
|
+
<web-ui-button primary>Primary</web-ui-button>
|
|
239
|
+
<web-ui-button text>Text</web-ui-button>
|
|
240
|
+
<web-ui-button full>Full Width</web-ui-button>
|
|
241
|
+
</div>
|
|
242
|
+
|
|
243
|
+
<web-ui-button>
|
|
244
|
+
<span slot="prefix">prefix</span>
|
|
245
|
+
带前后缀插槽的按钮
|
|
246
|
+
<span slot="suffix">suffix</span>
|
|
247
|
+
</web-ui-button>
|
|
248
|
+
|
|
249
|
+
<RouterView />
|
|
250
|
+
</web-ui-layout>
|
|
251
|
+
|
|
252
|
+
<web-ui-back-top :threshold="300" @visible-change="onVisibleChange" />
|
|
253
|
+
</template>
|
|
254
|
+
|
|
255
|
+
<script setup lang="ts">
|
|
256
|
+
function onVisibleChange(e: CustomEvent<{ visible: boolean }>) {
|
|
257
|
+
console.log('visible: ', e.detail.visible)
|
|
258
|
+
}
|
|
259
|
+
</script>
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
### SVG Draw Lines
|
|
263
|
+
|
|
264
|
+
```vue
|
|
265
|
+
<template>
|
|
266
|
+
<web-ui-svg-draw-lines>
|
|
267
|
+
<svg viewBox="0 0 24 24" width="100" height="100" fill="none" stroke="currentColor" stroke-width="2">
|
|
268
|
+
<path d="M4 4v16M8 6h12M8 12h6m-6 6h10" />
|
|
269
|
+
</svg>
|
|
270
|
+
</web-ui-svg-draw-lines>
|
|
271
|
+
</template>
|
|
272
|
+
```
|
|
273
|
+
|
|
45
274
|
## API
|
|
46
275
|
|
|
47
276
|
### `<web-ui-button>`
|
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import { state as n } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/state.js";
|
|
4
|
-
import "../../node_modules/.pnpm/lit@3.3.3/node_modules/lit/decorators.js";
|
|
5
|
-
import r from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
|
|
6
|
-
import i from "./style.js";
|
|
1
|
+
import e from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
|
|
2
|
+
import t from "./style.js";
|
|
7
3
|
import "iconify-icon";
|
|
8
|
-
import { LitElement as
|
|
4
|
+
import { LitElement as n, html as r, unsafeCSS as i } from "lit";
|
|
5
|
+
import { customElement as a, property as o, state as s } from "lit/decorators.js";
|
|
9
6
|
import { getRootScrollTop as c } from "@greypan/browser-kit";
|
|
10
7
|
//#region src/components/back-top/index.ts
|
|
11
|
-
var l = class extends
|
|
8
|
+
var l = class extends n {
|
|
12
9
|
constructor(...e) {
|
|
13
10
|
super(...e), this.smooth = !0, this.threshold = 200, this.visible = !1, this.scrollTarget = window;
|
|
14
11
|
}
|
|
15
12
|
static {
|
|
16
|
-
this.styles =
|
|
13
|
+
this.styles = i(t);
|
|
17
14
|
}
|
|
18
15
|
connectedCallback() {
|
|
19
16
|
super.connectedCallback(), this.computeVisible(), this.onScrollTarget();
|
|
@@ -56,7 +53,7 @@ var l = class extends a {
|
|
|
56
53
|
e.key == "Enter" && (e.preventDefault(), this.toTop());
|
|
57
54
|
}
|
|
58
55
|
render() {
|
|
59
|
-
return
|
|
56
|
+
return r`
|
|
60
57
|
<div role="button" tabindex="0" @click=${this.toTop} @keydown=${this.onEnter}>
|
|
61
58
|
<slot>
|
|
62
59
|
<!-- 默认 slot 加上 tabindex="-1",防止双重 focus -->
|
|
@@ -68,19 +65,19 @@ var l = class extends a {
|
|
|
68
65
|
`;
|
|
69
66
|
}
|
|
70
67
|
};
|
|
71
|
-
|
|
68
|
+
e([o({
|
|
72
69
|
type: Boolean,
|
|
73
70
|
reflect: !0
|
|
74
|
-
})], l.prototype, "smooth", void 0),
|
|
71
|
+
})], l.prototype, "smooth", void 0), e([o({
|
|
75
72
|
type: Number,
|
|
76
73
|
reflect: !0
|
|
77
|
-
})], l.prototype, "threshold", void 0),
|
|
74
|
+
})], l.prototype, "threshold", void 0), e([o({
|
|
78
75
|
type: Boolean,
|
|
79
76
|
reflect: !0
|
|
80
|
-
})], l.prototype, "visible", void 0),
|
|
77
|
+
})], l.prototype, "visible", void 0), e([o({
|
|
81
78
|
type: Object,
|
|
82
79
|
attribute: !1
|
|
83
|
-
})], l.prototype, "scrollTarget", void 0),
|
|
80
|
+
})], l.prototype, "scrollTarget", void 0), e([s()], l.prototype, "eventController", void 0), l = e([a("web-ui-back-top")], l);
|
|
84
81
|
//#endregion
|
|
85
82
|
export { l as WebUiBackTop };
|
|
86
83
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/back-top/index.ts"],"sourcesContent":["import 'iconify-icon'\nimport '@/components/button'\nimport { getRootScrollTop } from '@greypan/browser-kit'\nimport { html, LitElement, type PropertyValues, unsafeCSS } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\n\nimport style from './style.css?inline'\n\n@customElement('web-ui-back-top')\nexport class WebUiBackTop extends LitElement {\n static override styles = unsafeCSS(style)\n\n @property({ type: Boolean, reflect: true }) smooth = true\n @property({ type: Number, reflect: true }) threshold: number = 200\n @property({ type: Boolean, reflect: true }) visible = false\n @property({ type: Object, attribute: false }) scrollTarget: HTMLElement | Window = window\n\n @state() private eventController?: AbortController\n\n override connectedCallback() {\n super.connectedCallback()\n this.computeVisible()\n this.onScrollTarget()\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback()\n this.eventController?.abort()\n }\n\n protected override willUpdate(props: PropertyValues) {\n super.willUpdate(props)\n\n if (props.has('threshold') || props.has('scrollTarget')) {\n this.computeVisible()\n }\n if (props.has('scrollTarget') && this.hasUpdated) {\n this.onScrollTarget()\n }\n }\n\n private get target() {\n if (!this.scrollTarget) {\n return window\n }\n const isRoot =\n this.scrollTarget === window ||\n this.scrollTarget === document.documentElement ||\n this.scrollTarget === document.body\n return isRoot ? window : this.scrollTarget\n }\n\n private onScrollTarget() {\n this.eventController?.abort()\n this.eventController = new AbortController()\n\n this.target.addEventListener(\n 'scroll',\n () => {\n this.computeVisible()\n },\n {\n signal: this.eventController.signal,\n passive: true\n }\n )\n }\n\n private computeVisible() {\n const { target } = this\n let nextVisible: boolean\n if (target === window) {\n nextVisible = getRootScrollTop() >= this.threshold\n } else if (target instanceof HTMLElement) {\n nextVisible = target.scrollTop >= this.threshold\n } else {\n throw new Error('Prop scrollTarget must be HTMLElement or Window.')\n }\n if (nextVisible !== this.visible) {\n this.visible = nextVisible\n this.dispatchEvent(\n new CustomEvent('visible-change', {\n detail: { visible: nextVisible },\n bubbles: true,\n composed: true\n })\n )\n }\n }\n\n toTop() {\n this.target.scrollTo({\n top: 0,\n behavior: this.smooth ? 'smooth' : 'auto'\n })\n }\n\n private onEnter(e: KeyboardEvent) {\n if ((e as KeyboardEvent).key == 'Enter') {\n e.preventDefault()\n this.toTop()\n }\n }\n\n override render() {\n return html`\n <div role=\"button\" tabindex=\"0\" @click=${this.toTop} @keydown=${this.onEnter}>\n <slot>\n <!-- 默认 slot 加上 tabindex=\"-1\",防止双重 focus -->\n <web-ui-button tabindex=\"-1\" icon>\n <iconify-icon icon=\"octicon:move-to-top-16\" width=\"16\" height=\"16\"></iconify-icon>\n </web-ui-button>\n </slot>\n </div>\n `\n }\n}\n\nexport interface WebUiBackTop {\n readonly $events: {\n 'visible-change': CustomEvent<{ visible: boolean }>\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/back-top/index.ts"],"sourcesContent":["import 'iconify-icon'\nimport '@/components/button'\nimport { getRootScrollTop } from '@greypan/browser-kit'\nimport { html, LitElement, type PropertyValues, unsafeCSS } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\n\nimport style from './style.css?inline'\n\n@customElement('web-ui-back-top')\nexport class WebUiBackTop extends LitElement {\n static override styles = unsafeCSS(style)\n\n @property({ type: Boolean, reflect: true }) smooth = true\n @property({ type: Number, reflect: true }) threshold: number = 200\n @property({ type: Boolean, reflect: true }) visible = false\n @property({ type: Object, attribute: false }) scrollTarget: HTMLElement | Window = window\n\n @state() private eventController?: AbortController\n\n override connectedCallback() {\n super.connectedCallback()\n this.computeVisible()\n this.onScrollTarget()\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback()\n this.eventController?.abort()\n }\n\n protected override willUpdate(props: PropertyValues) {\n super.willUpdate(props)\n\n if (props.has('threshold') || props.has('scrollTarget')) {\n this.computeVisible()\n }\n if (props.has('scrollTarget') && this.hasUpdated) {\n this.onScrollTarget()\n }\n }\n\n private get target() {\n if (!this.scrollTarget) {\n return window\n }\n const isRoot =\n this.scrollTarget === window ||\n this.scrollTarget === document.documentElement ||\n this.scrollTarget === document.body\n return isRoot ? window : this.scrollTarget\n }\n\n private onScrollTarget() {\n this.eventController?.abort()\n this.eventController = new AbortController()\n\n this.target.addEventListener(\n 'scroll',\n () => {\n this.computeVisible()\n },\n {\n signal: this.eventController.signal,\n passive: true\n }\n )\n }\n\n private computeVisible() {\n const { target } = this\n let nextVisible: boolean\n if (target === window) {\n nextVisible = getRootScrollTop() >= this.threshold\n } else if (target instanceof HTMLElement) {\n nextVisible = target.scrollTop >= this.threshold\n } else {\n throw new Error('Prop scrollTarget must be HTMLElement or Window.')\n }\n if (nextVisible !== this.visible) {\n this.visible = nextVisible\n this.dispatchEvent(\n new CustomEvent('visible-change', {\n detail: { visible: nextVisible },\n bubbles: true,\n composed: true\n })\n )\n }\n }\n\n toTop() {\n this.target.scrollTo({\n top: 0,\n behavior: this.smooth ? 'smooth' : 'auto'\n })\n }\n\n private onEnter(e: KeyboardEvent) {\n if ((e as KeyboardEvent).key == 'Enter') {\n e.preventDefault()\n this.toTop()\n }\n }\n\n override render() {\n return html`\n <div role=\"button\" tabindex=\"0\" @click=${this.toTop} @keydown=${this.onEnter}>\n <slot>\n <!-- 默认 slot 加上 tabindex=\"-1\",防止双重 focus -->\n <web-ui-button tabindex=\"-1\" icon>\n <iconify-icon icon=\"octicon:move-to-top-16\" width=\"16\" height=\"16\"></iconify-icon>\n </web-ui-button>\n </slot>\n </div>\n `\n }\n}\n\nexport interface WebUiBackTop {\n readonly $events: {\n 'visible-change': CustomEvent<{ visible: boolean }>\n }\n}\n"],"mappings":";;;;;;;AASO,IAAA,IAAA,cAA2B,EAAW;;6BAGU,qBACU,oBACT,wBAC6B;;;gBAL1D,EAAU,CAAK;;CASxC,oBAA6B;EAG3B,AAFA,MAAM,kBAAkB,GACxB,KAAK,eAAe,GACpB,KAAK,eAAe;CACtB;CAEA,uBAAgC;EAE9B,AADA,MAAM,qBAAqB,GAC3B,KAAK,iBAAiB,MAAM;CAC9B;CAEA,WAA8B,GAAuB;EAMnD,AALA,MAAM,WAAW,CAAK,IAElB,EAAM,IAAI,WAAW,KAAK,EAAM,IAAI,cAAc,MACpD,KAAK,eAAe,GAElB,EAAM,IAAI,cAAc,KAAK,KAAK,cACpC,KAAK,eAAe;CAExB;CAEA,IAAY,SAAS;EAQnB,OAPK,KAAK,eAIR,KAAK,iBAAiB,UACtB,KAAK,iBAAiB,SAAS,mBAC/B,KAAK,iBAAiB,SAAS,OACjB,SAAS,KAAK,eANrB;CAOX;CAEA,iBAAyB;EAIvB,AAHA,KAAK,iBAAiB,MAAM,GAC5B,KAAK,kBAAkB,IAAI,gBAAgB,GAE3C,KAAK,OAAO,iBACV,gBACM;GACJ,KAAK,eAAe;EACtB,GACA;GACE,QAAQ,KAAK,gBAAgB;GAC7B,SAAS;EACX,CACF;CACF;CAEA,iBAAyB;EACvB,IAAM,EAAE,cAAW,MACf;EACJ,IAAI,MAAW,QACb,IAAc,EAAiB,KAAK,KAAK;OACpC,IAAI,aAAkB,aAC3B,IAAc,EAAO,aAAa,KAAK;OAEvC,MAAU,MAAM,kDAAkD;EAEpE,AAAI,MAAgB,KAAK,YACvB,KAAK,UAAU,GACf,KAAK,cACH,IAAI,YAAY,kBAAkB;GAChC,QAAQ,EAAE,SAAS,EAAY;GAC/B,SAAS;GACT,UAAU;EACZ,CAAC,CACH;CAEJ;CAEA,QAAQ;EACN,KAAK,OAAO,SAAS;GACnB,KAAK;GACL,UAAU,KAAK,SAAS,WAAW;EACrC,CAAC;CACH;CAEA,QAAgB,GAAkB;EAChC,AAAK,EAAoB,OAAO,YAC9B,EAAE,eAAe,GACjB,KAAK,MAAM;CAEf;CAEA,SAAkB;EAChB,OAAO,CAAI;+CACgC,KAAK,MAAM,YAAY,KAAK,QAAQ;;;;;;;;;CASjF;AACF;GAxGG,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA,MACzC,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,aAAA,KAAA,CAAA,MACxC,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,WAAA,KAAA,CAAA,MACzC,EAAS;CAAE,MAAM;CAAQ,WAAW;AAAM,CAAC,CAAA,GAAA,EAAA,WAAA,gBAAA,KAAA,CAAA,MAE3C,EAAM,CAAA,GAAA,EAAA,WAAA,mBAAA,KAAA,CAAA,UATR,EAAc,iBAAiB,CAAA,GAAA,CAAA"}
|
|
@@ -1,21 +1,19 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import "
|
|
4
|
-
import
|
|
5
|
-
import r from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
|
|
6
|
-
import { LitElement as i, html as a, unsafeCSS as o } from "lit";
|
|
1
|
+
import e from "./style.js";
|
|
2
|
+
import t from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
|
|
3
|
+
import { LitElement as n, html as r, unsafeCSS as i } from "lit";
|
|
4
|
+
import { customElement as a, property as o } from "lit/decorators.js";
|
|
7
5
|
//#region src/components/button/index.ts
|
|
8
|
-
var s = class extends
|
|
6
|
+
var s = class extends n {
|
|
9
7
|
constructor(...e) {
|
|
10
8
|
super(...e), this.full = !1, this.primary = !1, this.text = !1, this.icon = !1;
|
|
11
9
|
}
|
|
12
10
|
static {
|
|
13
|
-
this.styles =
|
|
11
|
+
this.styles = i(e);
|
|
14
12
|
}
|
|
15
13
|
render() {
|
|
16
|
-
return
|
|
14
|
+
return r`
|
|
17
15
|
<button>
|
|
18
|
-
${this.icon ?
|
|
16
|
+
${this.icon ? r`<slot></slot>` : r`
|
|
19
17
|
<slot name="prefix"></slot>
|
|
20
18
|
<slot></slot>
|
|
21
19
|
<slot name="suffix"></slot>
|
|
@@ -24,19 +22,19 @@ var s = class extends i {
|
|
|
24
22
|
`;
|
|
25
23
|
}
|
|
26
24
|
};
|
|
27
|
-
|
|
25
|
+
t([o({
|
|
28
26
|
type: Boolean,
|
|
29
27
|
reflect: !0
|
|
30
|
-
})], s.prototype, "full", void 0),
|
|
28
|
+
})], s.prototype, "full", void 0), t([o({
|
|
31
29
|
type: Boolean,
|
|
32
30
|
reflect: !0
|
|
33
|
-
})], s.prototype, "primary", void 0),
|
|
31
|
+
})], s.prototype, "primary", void 0), t([o({
|
|
34
32
|
type: Boolean,
|
|
35
33
|
reflect: !0
|
|
36
|
-
})], s.prototype, "text", void 0),
|
|
34
|
+
})], s.prototype, "text", void 0), t([o({
|
|
37
35
|
type: Boolean,
|
|
38
36
|
reflect: !0
|
|
39
|
-
})], s.prototype, "icon", void 0), s =
|
|
37
|
+
})], s.prototype, "icon", void 0), s = t([a("web-ui-button")], s);
|
|
40
38
|
//#endregion
|
|
41
39
|
export { s as WebUiButton };
|
|
42
40
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/button/index.ts"],"sourcesContent":["import { html, LitElement, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport style from './style.css?inline'\n\n@customElement('web-ui-button')\nexport class WebUiButton extends LitElement {\n static override styles = unsafeCSS(style)\n\n @property({ type: Boolean, reflect: true }) full = false\n @property({ type: Boolean, reflect: true }) primary = false\n @property({ type: Boolean, reflect: true }) text = false\n @property({ type: Boolean, reflect: true }) icon = false\n\n override render() {\n return html`\n <button>\n ${this.icon\n ? html`<slot></slot>`\n : html`\n <slot name=\"prefix\"></slot>\n <slot></slot>\n <slot name=\"suffix\"></slot>\n `}\n </button>\n `\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/button/index.ts"],"sourcesContent":["import { html, LitElement, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport style from './style.css?inline'\n\n@customElement('web-ui-button')\nexport class WebUiButton extends LitElement {\n static override styles = unsafeCSS(style)\n\n @property({ type: Boolean, reflect: true }) full = false\n @property({ type: Boolean, reflect: true }) primary = false\n @property({ type: Boolean, reflect: true }) text = false\n @property({ type: Boolean, reflect: true }) icon = false\n\n override render() {\n return html`\n <button>\n ${this.icon\n ? html`<slot></slot>`\n : html`\n <slot name=\"prefix\"></slot>\n <slot></slot>\n <slot name=\"suffix\"></slot>\n `}\n </button>\n `\n }\n}\n"],"mappings":";;;;;AAMO,IAAA,IAAA,cAA0B,EAAW;;2BAGS,mBACG,gBACH,gBACA;;;gBAL1B,EAAU,CAAK;;CAOxC,SAAkB;EAChB,OAAO,CAAI;;UAEL,KAAK,OACH,CAAI,kBACJ,CAAI;;;;cAIF;;;CAGZ;AACF;GAlBG,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,MACzC,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,WAAA,KAAA,CAAA,MACzC,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,MACzC,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,UAP3C,EAAc,eAAe,CAAA,GAAA,CAAA"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import
|
|
2
|
-
import "
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import { LitElement as r, html as i, unsafeCSS as a } from "lit";
|
|
1
|
+
import e from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
|
|
2
|
+
import t from "./style.js";
|
|
3
|
+
import { LitElement as n, html as r, unsafeCSS as i } from "lit";
|
|
4
|
+
import { customElement as a } from "lit/decorators.js";
|
|
6
5
|
//#region src/components/layout/index.ts
|
|
7
|
-
var o = class extends
|
|
6
|
+
var o = class extends n {
|
|
8
7
|
static {
|
|
9
|
-
this.styles =
|
|
8
|
+
this.styles = i(t);
|
|
10
9
|
}
|
|
11
10
|
render() {
|
|
12
|
-
return
|
|
11
|
+
return r`
|
|
13
12
|
<header>
|
|
14
13
|
<slot name="header"></slot>
|
|
15
14
|
</header>
|
|
@@ -25,7 +24,7 @@ var o = class extends r {
|
|
|
25
24
|
`;
|
|
26
25
|
}
|
|
27
26
|
};
|
|
28
|
-
o =
|
|
27
|
+
o = e([a("web-ui-layout")], o);
|
|
29
28
|
//#endregion
|
|
30
29
|
export { o as WebUiLayout };
|
|
31
30
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/layout/index.ts"],"sourcesContent":["import { html, LitElement, unsafeCSS } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\nimport style from './style.css?inline'\n\n@customElement('web-ui-layout')\nexport class WebUiLayout extends LitElement {\n static override styles = unsafeCSS(style)\n\n override render() {\n return html`\n <header>\n <slot name=\"header\"></slot>\n </header>\n <main>\n <slot></slot>\n </main>\n <aside>\n <div class=\"menu\"><slot name=\"sidebar\"></slot></div>\n </aside>\n <footer>\n <slot name=\"tabbar\"></slot>\n </footer>\n `\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/layout/index.ts"],"sourcesContent":["import { html, LitElement, unsafeCSS } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\nimport style from './style.css?inline'\n\n@customElement('web-ui-layout')\nexport class WebUiLayout extends LitElement {\n static override styles = unsafeCSS(style)\n\n override render() {\n return html`\n <header>\n <slot name=\"header\"></slot>\n </header>\n <main>\n <slot></slot>\n </main>\n <aside>\n <div class=\"menu\"><slot name=\"sidebar\"></slot></div>\n </aside>\n <footer>\n <slot name=\"tabbar\"></slot>\n </footer>\n `\n }\n}\n"],"mappings":";;;;;AAMO,IAAA,IAAA,cAA0B,EAAW;;gBACjB,EAAU,CAAK;;CAExC,SAAkB;EAChB,OAAO,CAAI;;;;;;;;;;;;;;CAcb;AACF;OApBC,EAAc,eAAe,CAAA,GAAA,CAAA"}
|
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import { query as
|
|
5
|
-
import "../../node_modules/.pnpm/lit@3.3.3/node_modules/lit/decorators.js";
|
|
6
|
-
import i from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
|
|
7
|
-
import a from "./style.js";
|
|
8
|
-
import { LitElement as o, html as s, unsafeCSS as c } from "lit";
|
|
1
|
+
import e from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
|
|
2
|
+
import t from "./style.js";
|
|
3
|
+
import { LitElement as n, html as r, unsafeCSS as i } from "lit";
|
|
4
|
+
import { customElement as a, property as o, query as s, state as c } from "lit/decorators.js";
|
|
9
5
|
//#region src/components/svg-draw-lines/index.ts
|
|
10
|
-
var l = class extends
|
|
6
|
+
var l = class extends n {
|
|
11
7
|
constructor(...e) {
|
|
12
8
|
super(...e), this.duration = 1e3, this.easing = "linear", this.isAnimating = !1, this.svgClone = null;
|
|
13
9
|
}
|
|
14
10
|
static {
|
|
15
|
-
this.styles =
|
|
11
|
+
this.styles = i(t);
|
|
16
12
|
}
|
|
17
13
|
handleSlotChange() {
|
|
18
14
|
this.isAnimating || (this.cloneOriginalSvg(), this.isAnimating = !0, this.startAnimation());
|
|
@@ -71,19 +67,19 @@ var l = class extends o {
|
|
|
71
67
|
this.isAnimating = !1, this.svgClone = null;
|
|
72
68
|
}
|
|
73
69
|
render() {
|
|
74
|
-
return
|
|
70
|
+
return r`
|
|
75
71
|
<slot ?hidden="${this.isAnimating}" @slotchange="${this.handleSlotChange}"></slot>
|
|
76
72
|
${this.isAnimating ? this.svgClone : ""}
|
|
77
73
|
`;
|
|
78
74
|
}
|
|
79
75
|
};
|
|
80
|
-
|
|
76
|
+
e([o({
|
|
81
77
|
type: Number,
|
|
82
78
|
reflect: !0
|
|
83
|
-
})], l.prototype, "duration", void 0),
|
|
79
|
+
})], l.prototype, "duration", void 0), e([o({
|
|
84
80
|
type: String,
|
|
85
81
|
reflect: !0
|
|
86
|
-
})], l.prototype, "easing", void 0),
|
|
82
|
+
})], l.prototype, "easing", void 0), e([c()], l.prototype, "isAnimating", void 0), e([c()], l.prototype, "svgClone", void 0), e([s("slot")], l.prototype, "slotEl", void 0), l = e([a("web-ui-svg-draw-lines")], l);
|
|
87
83
|
//#endregion
|
|
88
84
|
export { l as WebUiSvgDrawLines };
|
|
89
85
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/svg-draw-lines/index.ts"],"sourcesContent":["import { html, LitElement, unsafeCSS } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\n\nimport style from './style.css?inline'\n\n@customElement('web-ui-svg-draw-lines')\nexport class WebUiSvgDrawLines extends LitElement {\n static override styles = unsafeCSS(style)\n\n @property({ type: Number, reflect: true }) duration = 1000\n @property({ type: String, reflect: true }) easing = 'linear'\n\n @state() private isAnimating = false\n @state() private svgClone: SVGSVGElement | null = null\n @query('slot') private slotEl!: HTMLSlotElement\n\n private handleSlotChange() {\n if (this.isAnimating) return\n\n this.cloneOriginalSvg()\n\n this.isAnimating = true\n void this.startAnimation()\n }\n\n private cloneOriginalSvg() {\n const original = this.slotEl.assignedElements({ flatten: true })[0]\n if (!(original instanceof SVGSVGElement)) return\n\n const svgClone = original.cloneNode(true) as SVGSVGElement\n svgClone.classList.add('svg-clone')\n this.svgClone = svgClone\n }\n\n private async startAnimation() {\n if (!this.svgClone) return\n await this.updateComplete\n\n const selectors = 'path, rect, circle, line, polyline, polygon, ellipse'\n const elements = Array.from(this.svgClone.querySelectorAll(selectors)) as SVGGeometryElement[]\n\n const animTasks: SVGGeometryElement[] = []\n let cursor = { x: 0, y: 0 }\n\n // 除 path 外其余几何图形无需额外处理\n // 将绘制多段路径的单 path 先拆分为多 path 并重新插入 dom\n // 再分别计算每个 path 的 total length\n elements.forEach(el => {\n if (el instanceof SVGPathElement) {\n const d = el.getAttribute('d') || ''\n const segments = d.split(/(?=[Mm])/).filter(s => s.trim())\n\n // 无论是一段还是多段,统一处理\n segments.forEach(seg => {\n const pathPart = segments.length > 1 ? (el.cloneNode() as SVGPathElement) : el\n let finalD = seg.startsWith('m') ? `M${cursor.x} ${cursor.y}${seg}` : seg\n\n finalD = this.fixPathGap(pathPart, finalD)\n pathPart.setAttribute('d', finalD)\n\n if (segments.length > 1) el.parentNode?.insertBefore(pathPart, el)\n\n animTasks.push(pathPart)\n\n const end = pathPart.getPointAtLength(pathPart.getTotalLength())\n cursor = { x: end.x, y: end.y }\n })\n\n if (segments.length > 1) el.remove()\n } else {\n animTasks.push(el)\n }\n })\n\n if (animTasks.length === 0) return this.stopAnimation()\n\n const promises = animTasks.map((el, i) => {\n return new Promise<void>(resolve => {\n this.drawLine(el, i, resolve)\n })\n })\n\n await Promise.all(promises)\n this.stopAnimation()\n }\n\n // 缺口修复逻辑\n // 多走 0.1px 触发渲染闭合和确定起始矢量方向\n private fixPathGap(pathEl: SVGPathElement, d: string): string {\n if (/[Zz]\\s*$/.test(d)) {\n pathEl.setAttribute('d', d)\n const p0 = pathEl.getPointAtLength(0)\n const p1 = pathEl.getPointAtLength(0.1)\n\n // 将 Z 替换为回到起点并多走 0.1px 的路径\n return d.replace(/[Zz]\\s*$/, `L${p0.x.toFixed(3)} ${p0.y.toFixed(3)} L${p1.x.toFixed(3)} ${p1.y.toFixed(3)}`)\n }\n return d\n }\n\n private drawLine(el: SVGGeometryElement, index: number, onFinish: () => void) {\n const strokeWidth = parseFloat(getComputedStyle(el).strokeWidth) || 0\n const len = el.getTotalLength() + strokeWidth\n\n el.style.strokeDasharray = `${len}`\n el.style.strokeDashoffset = `${len}`\n\n const anim = el.animate([{ strokeDashoffset: `${len}` }, { strokeDashoffset: '0' }], {\n duration: this.duration,\n easing: this.easing,\n fill: 'forwards'\n })\n anim.onfinish = onFinish\n }\n\n private stopAnimation() {\n this.isAnimating = false\n this.svgClone = null\n }\n\n override render() {\n return html`\n <slot ?hidden=\"${this.isAnimating}\" @slotchange=\"${this.handleSlotChange}\"></slot>\n ${this.isAnimating ? this.svgClone : ''}\n `\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/svg-draw-lines/index.ts"],"sourcesContent":["import { html, LitElement, unsafeCSS } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\n\nimport style from './style.css?inline'\n\n@customElement('web-ui-svg-draw-lines')\nexport class WebUiSvgDrawLines extends LitElement {\n static override styles = unsafeCSS(style)\n\n @property({ type: Number, reflect: true }) duration = 1000\n @property({ type: String, reflect: true }) easing = 'linear'\n\n @state() private isAnimating = false\n @state() private svgClone: SVGSVGElement | null = null\n @query('slot') private slotEl!: HTMLSlotElement\n\n private handleSlotChange() {\n if (this.isAnimating) return\n\n this.cloneOriginalSvg()\n\n this.isAnimating = true\n void this.startAnimation()\n }\n\n private cloneOriginalSvg() {\n const original = this.slotEl.assignedElements({ flatten: true })[0]\n if (!(original instanceof SVGSVGElement)) return\n\n const svgClone = original.cloneNode(true) as SVGSVGElement\n svgClone.classList.add('svg-clone')\n this.svgClone = svgClone\n }\n\n private async startAnimation() {\n if (!this.svgClone) return\n await this.updateComplete\n\n const selectors = 'path, rect, circle, line, polyline, polygon, ellipse'\n const elements = Array.from(this.svgClone.querySelectorAll(selectors)) as SVGGeometryElement[]\n\n const animTasks: SVGGeometryElement[] = []\n let cursor = { x: 0, y: 0 }\n\n // 除 path 外其余几何图形无需额外处理\n // 将绘制多段路径的单 path 先拆分为多 path 并重新插入 dom\n // 再分别计算每个 path 的 total length\n elements.forEach(el => {\n if (el instanceof SVGPathElement) {\n const d = el.getAttribute('d') || ''\n const segments = d.split(/(?=[Mm])/).filter(s => s.trim())\n\n // 无论是一段还是多段,统一处理\n segments.forEach(seg => {\n const pathPart = segments.length > 1 ? (el.cloneNode() as SVGPathElement) : el\n let finalD = seg.startsWith('m') ? `M${cursor.x} ${cursor.y}${seg}` : seg\n\n finalD = this.fixPathGap(pathPart, finalD)\n pathPart.setAttribute('d', finalD)\n\n if (segments.length > 1) el.parentNode?.insertBefore(pathPart, el)\n\n animTasks.push(pathPart)\n\n const end = pathPart.getPointAtLength(pathPart.getTotalLength())\n cursor = { x: end.x, y: end.y }\n })\n\n if (segments.length > 1) el.remove()\n } else {\n animTasks.push(el)\n }\n })\n\n if (animTasks.length === 0) return this.stopAnimation()\n\n const promises = animTasks.map((el, i) => {\n return new Promise<void>(resolve => {\n this.drawLine(el, i, resolve)\n })\n })\n\n await Promise.all(promises)\n this.stopAnimation()\n }\n\n // 缺口修复逻辑\n // 多走 0.1px 触发渲染闭合和确定起始矢量方向\n private fixPathGap(pathEl: SVGPathElement, d: string): string {\n if (/[Zz]\\s*$/.test(d)) {\n pathEl.setAttribute('d', d)\n const p0 = pathEl.getPointAtLength(0)\n const p1 = pathEl.getPointAtLength(0.1)\n\n // 将 Z 替换为回到起点并多走 0.1px 的路径\n return d.replace(/[Zz]\\s*$/, `L${p0.x.toFixed(3)} ${p0.y.toFixed(3)} L${p1.x.toFixed(3)} ${p1.y.toFixed(3)}`)\n }\n return d\n }\n\n private drawLine(el: SVGGeometryElement, index: number, onFinish: () => void) {\n const strokeWidth = parseFloat(getComputedStyle(el).strokeWidth) || 0\n const len = el.getTotalLength() + strokeWidth\n\n el.style.strokeDasharray = `${len}`\n el.style.strokeDashoffset = `${len}`\n\n const anim = el.animate([{ strokeDashoffset: `${len}` }, { strokeDashoffset: '0' }], {\n duration: this.duration,\n easing: this.easing,\n fill: 'forwards'\n })\n anim.onfinish = onFinish\n }\n\n private stopAnimation() {\n this.isAnimating = false\n this.svgClone = null\n }\n\n override render() {\n return html`\n <slot ?hidden=\"${this.isAnimating}\" @slotchange=\"${this.handleSlotChange}\"></slot>\n ${this.isAnimating ? this.svgClone : ''}\n `\n }\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@greypan/web-ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Lit-based web components for React, Vue, and vanilla JS",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -34,26 +34,22 @@
|
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"iconify-icon": "^3.0.2",
|
|
37
|
-
"@greypan/browser-kit": "1.7.
|
|
38
|
-
"@greypan/js-kit": "1.6.
|
|
37
|
+
"@greypan/browser-kit": "1.7.2",
|
|
38
|
+
"@greypan/js-kit": "1.6.2"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"lit": "^3.3.3",
|
|
42
42
|
"@types/react": "^19.2.17",
|
|
43
|
-
"react": "^19.2.7",
|
|
44
43
|
"vue": "^3.5.39",
|
|
45
44
|
"@greypan/tsconfig": "1.0.1"
|
|
46
45
|
},
|
|
47
46
|
"peerDependencies": {
|
|
48
47
|
"lit": "^3.3.3",
|
|
49
|
-
"react": ">=16",
|
|
48
|
+
"@types/react": ">=16",
|
|
50
49
|
"vue": ">=3"
|
|
51
50
|
},
|
|
52
51
|
"peerDependenciesMeta": {
|
|
53
|
-
"
|
|
54
|
-
"optional": false
|
|
55
|
-
},
|
|
56
|
-
"react": {
|
|
52
|
+
"@types/react": {
|
|
57
53
|
"optional": true
|
|
58
54
|
},
|
|
59
55
|
"vue": {
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
//#region ../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/css-tag.js
|
|
2
|
-
var e = globalThis, t = e.ShadowRoot && (e.ShadyCSS === void 0 || e.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, n = Symbol(), r = /* @__PURE__ */ new WeakMap(), i = class {
|
|
3
|
-
constructor(e, t, r) {
|
|
4
|
-
if (this._$cssResult$ = !0, r !== n) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
|
|
5
|
-
this.cssText = e, this.t = t;
|
|
6
|
-
}
|
|
7
|
-
get styleSheet() {
|
|
8
|
-
let e = this.o, n = this.t;
|
|
9
|
-
if (t && e === void 0) {
|
|
10
|
-
let t = n !== void 0 && n.length === 1;
|
|
11
|
-
t && (e = r.get(n)), e === void 0 && ((this.o = e = new CSSStyleSheet()).replaceSync(this.cssText), t && r.set(n, e));
|
|
12
|
-
}
|
|
13
|
-
return e;
|
|
14
|
-
}
|
|
15
|
-
toString() {
|
|
16
|
-
return this.cssText;
|
|
17
|
-
}
|
|
18
|
-
}, a = (e) => new i(typeof e == "string" ? e : e + "", void 0, n), o = (n, r) => {
|
|
19
|
-
if (t) n.adoptedStyleSheets = r.map((e) => e instanceof CSSStyleSheet ? e : e.styleSheet);
|
|
20
|
-
else for (let t of r) {
|
|
21
|
-
let r = document.createElement("style"), i = e.litNonce;
|
|
22
|
-
i !== void 0 && r.setAttribute("nonce", i), r.textContent = t.cssText, n.appendChild(r);
|
|
23
|
-
}
|
|
24
|
-
}, s = t ? (e) => e : (e) => e instanceof CSSStyleSheet ? ((e) => {
|
|
25
|
-
let t = "";
|
|
26
|
-
for (let n of e.cssRules) t += n.cssText;
|
|
27
|
-
return a(t);
|
|
28
|
-
})(e) : e;
|
|
29
|
-
//#endregion
|
|
30
|
-
export { i as CSSResult, o as adoptStyles, s as getCompatibleStyle, t as supportsAdoptingStyleSheets, a as unsafeCSS };
|
|
31
|
-
|
|
32
|
-
//# sourceMappingURL=css-tag.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"css-tag.js","names":[],"sources":["../../../../../../../../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/css-tag.js"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1],t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet);else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n"],"x_google_ignoreList":[0],"mappings":";AAKA,IAAM,IAAE,YAAW,IAAE,EAAE,eAAsB,EAAE,aAAX,KAAK,KAAgB,EAAE,SAAS,iBAAe,wBAAuB,SAAS,aAAW,aAAY,cAAc,WAAU,IAAE,OAAO,GAAE,oBAAE,IAAI,QAAM,GAAQ,IAAN,MAAO;CAAC,YAAY,GAAE,GAAE,GAAE;EAAC,IAAG,KAAK,eAAa,CAAC,GAAE,MAAI,GAAE,MAAM,MAAM,mEAAmE;EAAE,KAAK,UAAQ,GAAE,KAAK,IAAE;CAAC;CAAC,IAAI,aAAY;EAAC,IAAI,IAAE,KAAK,GAAQ,IAAE,KAAK;EAAE,IAAG,KAAY,MAAT,KAAK,GAAM;GAAC,IAAM,IAAW,MAAT,KAAK,KAAW,EAAE,WAAN;GAAa,MAAI,IAAE,EAAE,IAAI,CAAC,IAAY,MAAT,KAAK,OAAS,KAAK,IAAE,IAAE,IAAI,cAAY,EAAA,CAAG,YAAY,KAAK,OAAO,GAAE,KAAG,EAAE,IAAI,GAAE,CAAC;EAAE;EAAC,OAAO;CAAC;CAAC,WAAU;EAAC,OAAO,KAAK;CAAO;AAAC,GAAO,KAAE,MAAG,IAAI,EAAY,OAAO,KAAjB,WAAmB,IAAE,IAAE,IAAG,KAAK,GAAE,CAAC,GAAyV,KAAG,GAAE,MAAI;CAAC,IAAG,GAAE,EAAE,qBAAmB,EAAE,KAAI,MAAG,aAAa,gBAAc,IAAE,EAAE,UAAU;MAAO,KAAI,IAAM,KAAK,GAAE;EAAC,IAAM,IAAE,SAAS,cAAc,OAAO,GAAE,IAAE,EAAE;EAAS,AAAS,MAAT,KAAK,KAAO,EAAE,aAAa,SAAQ,CAAC,GAAE,EAAE,cAAY,EAAE,SAAQ,EAAE,YAAY,CAAC;CAAC;AAAC,GAAE,IAAE,KAAE,MAAG,KAAE,MAAG,aAAa,kBAAe,MAAG;CAAC,IAAI,IAAE;CAAG,KAAI,IAAM,KAAK,EAAE,UAAS,KAAG,EAAE;CAAQ,OAAO,EAAE,CAAC;AAAC,EAAA,CAAG,CAAC,IAAE"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
//#region ../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/base.js
|
|
2
|
-
var e = (e, t, n) => (n.configurable = !0, n.enumerable = !0, Reflect.decorate && typeof t != "object" && Object.defineProperty(e, t, n), n);
|
|
3
|
-
//#endregion
|
|
4
|
-
export { e as desc };
|
|
5
|
-
|
|
6
|
-
//# sourceMappingURL=base.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/base.js"],"sourcesContent":["/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n"],"x_google_ignoreList":[0],"mappings":";AAKA,IAAM,KAAG,GAAE,GAAE,OAAK,EAAE,eAAa,CAAC,GAAE,EAAE,aAAW,CAAC,GAAE,QAAQ,YAAoB,OAAO,KAAjB,YAAoB,OAAO,eAAe,GAAE,GAAE,CAAC,GAAE"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
//#region ../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/custom-element.js
|
|
2
|
-
var e = (e) => (t, n) => {
|
|
3
|
-
n === void 0 ? customElements.define(e, t) : n.addInitializer(() => {
|
|
4
|
-
customElements.define(e, t);
|
|
5
|
-
});
|
|
6
|
-
};
|
|
7
|
-
//#endregion
|
|
8
|
-
export { e as customElement };
|
|
9
|
-
|
|
10
|
-
//# sourceMappingURL=custom-element.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"custom-element.js","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/custom-element.js"],"sourcesContent":["/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=t=>(e,o)=>{void 0!==o?o.addInitializer(()=>{customElements.define(t,e)}):customElements.define(t,e)};export{t as customElement};\n//# sourceMappingURL=custom-element.js.map\n"],"x_google_ignoreList":[0],"mappings":";AAKA,IAAM,KAAE,OAAI,GAAE,MAAI;CAAC,AAAS,MAAT,KAAK,IAAyD,eAAe,OAAO,GAAE,CAAC,IAA5E,EAAE,qBAAmB;EAAC,eAAe,OAAO,GAAE,CAAC;CAAC,CAAC;AAA4B"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { defaultConverter as e, notEqual as t } from "../reactive-element.js";
|
|
2
|
-
//#region ../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/property.js
|
|
3
|
-
var n = {
|
|
4
|
-
attribute: !0,
|
|
5
|
-
type: String,
|
|
6
|
-
converter: e,
|
|
7
|
-
reflect: !1,
|
|
8
|
-
hasChanged: t
|
|
9
|
-
}, r = (e = n, t, r) => {
|
|
10
|
-
let { kind: i, metadata: a } = r, o = globalThis.litPropertyMetadata.get(a);
|
|
11
|
-
if (o === void 0 && globalThis.litPropertyMetadata.set(a, o = /* @__PURE__ */ new Map()), i === "setter" && ((e = Object.create(e)).wrapped = !0), o.set(r.name, e), i === "accessor") {
|
|
12
|
-
let { name: n } = r;
|
|
13
|
-
return {
|
|
14
|
-
set(r) {
|
|
15
|
-
let i = t.get.call(this);
|
|
16
|
-
t.set.call(this, r), this.requestUpdate(n, i, e, !0, r);
|
|
17
|
-
},
|
|
18
|
-
init(t) {
|
|
19
|
-
return t !== void 0 && this.C(n, void 0, e, t), t;
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
if (i === "setter") {
|
|
24
|
-
let { name: n } = r;
|
|
25
|
-
return function(r) {
|
|
26
|
-
let i = this[n];
|
|
27
|
-
t.call(this, r), this.requestUpdate(n, i, e, !0, r);
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
throw Error("Unsupported decorator location: " + i);
|
|
31
|
-
};
|
|
32
|
-
function i(e) {
|
|
33
|
-
return (t, n) => typeof n == "object" ? r(e, t, n) : ((e, t, n) => {
|
|
34
|
-
let r = t.hasOwnProperty(n);
|
|
35
|
-
return t.constructor.createProperty(n, e), r ? Object.getOwnPropertyDescriptor(t, n) : void 0;
|
|
36
|
-
})(e, t, n);
|
|
37
|
-
}
|
|
38
|
-
//#endregion
|
|
39
|
-
export { i as property, r as standardProperty };
|
|
40
|
-
|
|
41
|
-
//# sourceMappingURL=property.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"property.js","names":["e","t"],"sources":["../../../../../../../../../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/property.js"],"sourcesContent":["import{notEqual as t,defaultConverter as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:e,reflect:!1,hasChanged:t},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t,!0,r)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t,!0,r)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n"],"x_google_ignoreList":[0],"mappings":";;AAKG,IAAM,IAAE;CAAC,WAAU,CAAC;CAAE,MAAK;CAAO,WAAUA;CAAE,SAAQ,CAAC;CAAE,YAAWC;AAAC,GAAE,KAAG,IAAE,GAAE,GAAE,MAAI;CAAC,IAAK,EAAC,MAAK,GAAE,UAAS,MAAG,GAAM,IAAE,WAAW,oBAAoB,IAAI,CAAC;CAAE,IAAY,MAAT,KAAK,KAAO,WAAW,oBAAoB,IAAI,GAAE,oBAAE,IAAI,IAAE,CAAC,GAAa,MAAX,aAAe,CAAC,IAAE,OAAO,OAAO,CAAC,EAAA,CAAG,UAAQ,CAAC,IAAG,EAAE,IAAI,EAAE,MAAK,CAAC,GAAe,MAAb,YAAe;EAAC,IAAK,EAAC,MAAK,MAAG;EAAE,OAAM;GAAC,IAAI,GAAE;IAAC,IAAM,IAAE,EAAE,IAAI,KAAK,IAAI;IAAE,EAAE,IAAI,KAAK,MAAK,CAAC,GAAE,KAAK,cAAc,GAAE,GAAE,GAAE,CAAC,GAAE,CAAC;GAAC;GAAE,KAAK,GAAE;IAAC,OAAgB,MAAT,KAAK,KAAO,KAAK,EAAE,GAAE,KAAK,GAAE,GAAE,CAAC,GAAE;GAAC;EAAC;CAAC;CAAC,IAAc,MAAX,UAAa;EAAC,IAAK,EAAC,MAAK,MAAG;EAAE,OAAO,SAAS,GAAE;GAAC,IAAM,IAAE,KAAK;GAAG,EAAE,KAAK,MAAK,CAAC,GAAE,KAAK,cAAc,GAAE,GAAE,GAAE,CAAC,GAAE,CAAC;EAAC;CAAC;CAAC,MAAM,MAAM,qCAAmC,CAAC;AAAC;AAAE,SAAS,EAAE,GAAE;CAAC,QAAO,GAAE,MAAc,OAAO,KAAjB,WAAmB,EAAE,GAAE,GAAE,CAAC,MAAI,GAAE,GAAE,MAAI;EAAC,IAAM,IAAE,EAAE,eAAe,CAAC;EAAE,OAAO,EAAE,YAAY,eAAe,GAAE,CAAC,GAAE,IAAE,OAAO,yBAAyB,GAAE,CAAC,IAAE,KAAK;CAAC,EAAA,CAAG,GAAE,GAAE,CAAC;AAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { desc as e } from "./base.js";
|
|
2
|
-
//#region ../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/query.js
|
|
3
|
-
function t(t, n) {
|
|
4
|
-
return (r, i, a) => {
|
|
5
|
-
let o = (e) => e.renderRoot?.querySelector(t) ?? null;
|
|
6
|
-
if (n) {
|
|
7
|
-
let { get: t, set: n } = typeof i == "object" ? r : a ?? (() => {
|
|
8
|
-
let e = Symbol();
|
|
9
|
-
return {
|
|
10
|
-
get() {
|
|
11
|
-
return this[e];
|
|
12
|
-
},
|
|
13
|
-
set(t) {
|
|
14
|
-
this[e] = t;
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
})();
|
|
18
|
-
return e(r, i, { get() {
|
|
19
|
-
let e = t.call(this);
|
|
20
|
-
return e === void 0 && (e = o(this), (e !== null || this.hasUpdated) && n.call(this, e)), e;
|
|
21
|
-
} });
|
|
22
|
-
}
|
|
23
|
-
return e(r, i, { get() {
|
|
24
|
-
return o(this);
|
|
25
|
-
} });
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
//#endregion
|
|
29
|
-
export { t as query };
|
|
30
|
-
|
|
31
|
-
//# sourceMappingURL=query.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","names":["t"],"sources":["../../../../../../../../../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/query.js"],"sourcesContent":["import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n"],"x_google_ignoreList":[0],"mappings":";;AAKG,SAAS,EAAE,GAAE,GAAE;CAAC,QAAO,GAAE,GAAE,MAAI;EAAC,IAAM,KAAE,MAAG,EAAE,YAAY,cAAc,CAAC,KAAG;EAAK,IAAG,GAAE;GAAC,IAAK,EAAC,KAAI,GAAE,KAAI,MAAa,OAAO,KAAjB,WAAmB,IAAE,YAAQ;IAAC,IAAM,IAAE,OAAO;IAAE,OAAM;KAAC,MAAK;MAAC,OAAO,KAAK;KAAE;KAAE,IAAI,GAAE;MAAC,KAAK,KAAG;KAAC;IAAC;GAAC,EAAA,CAAG;GAAE,OAAOA,EAAE,GAAE,GAAE,EAAC,MAAK;IAAC,IAAI,IAAE,EAAE,KAAK,IAAI;IAAE,OAAgB,MAAT,KAAK,MAAQ,IAAE,EAAE,IAAI,IAAU,MAAP,QAAU,KAAK,eAAa,EAAE,KAAK,MAAK,CAAC,IAAG;GAAC,EAAC,CAAC;EAAC;EAAC,OAAOA,EAAE,GAAE,GAAE,EAAC,MAAK;GAAC,OAAO,EAAE,IAAI;EAAC,EAAC,CAAC;CAAC;AAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { property as e } from "./property.js";
|
|
2
|
-
//#region ../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/state.js
|
|
3
|
-
function t(t) {
|
|
4
|
-
return e({
|
|
5
|
-
...t,
|
|
6
|
-
state: !0,
|
|
7
|
-
attribute: !1
|
|
8
|
-
});
|
|
9
|
-
}
|
|
10
|
-
//#endregion
|
|
11
|
-
export { t as state };
|
|
12
|
-
|
|
13
|
-
//# sourceMappingURL=state.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","names":["t"],"sources":["../../../../../../../../../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/state.js"],"sourcesContent":["import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n"],"x_google_ignoreList":[0],"mappings":";;AAKG,SAAS,EAAE,GAAE;CAAC,OAAOA,EAAE;EAAC,GAAG;EAAE,OAAM,CAAC;EAAE,WAAU,CAAC;CAAC,CAAC;AAAC"}
|
|
@@ -1,229 +0,0 @@
|
|
|
1
|
-
import { adoptStyles as e, getCompatibleStyle as t } from "./css-tag.js";
|
|
2
|
-
//#region ../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/reactive-element.js
|
|
3
|
-
var { is: n, defineProperty: r, getOwnPropertyDescriptor: i, getOwnPropertyNames: a, getOwnPropertySymbols: o, getPrototypeOf: s } = Object, c = globalThis, l = c.trustedTypes, u = l ? l.emptyScript : "", d = c.reactiveElementPolyfillSupport, f = (e, t) => e, p = {
|
|
4
|
-
toAttribute(e, t) {
|
|
5
|
-
switch (t) {
|
|
6
|
-
case Boolean:
|
|
7
|
-
e = e ? u : null;
|
|
8
|
-
break;
|
|
9
|
-
case Object:
|
|
10
|
-
case Array: e = e == null ? e : JSON.stringify(e);
|
|
11
|
-
}
|
|
12
|
-
return e;
|
|
13
|
-
},
|
|
14
|
-
fromAttribute(e, t) {
|
|
15
|
-
let n = e;
|
|
16
|
-
switch (t) {
|
|
17
|
-
case Boolean:
|
|
18
|
-
n = e !== null;
|
|
19
|
-
break;
|
|
20
|
-
case Number:
|
|
21
|
-
n = e === null ? null : Number(e);
|
|
22
|
-
break;
|
|
23
|
-
case Object:
|
|
24
|
-
case Array: try {
|
|
25
|
-
n = JSON.parse(e);
|
|
26
|
-
} catch {
|
|
27
|
-
n = null;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return n;
|
|
31
|
-
}
|
|
32
|
-
}, m = (e, t) => !n(e, t), h = {
|
|
33
|
-
attribute: !0,
|
|
34
|
-
type: String,
|
|
35
|
-
converter: p,
|
|
36
|
-
reflect: !1,
|
|
37
|
-
useDefault: !1,
|
|
38
|
-
hasChanged: m
|
|
39
|
-
};
|
|
40
|
-
Symbol.metadata ??= Symbol("metadata"), c.litPropertyMetadata ??= /* @__PURE__ */ new WeakMap();
|
|
41
|
-
var g = class extends HTMLElement {
|
|
42
|
-
static addInitializer(e) {
|
|
43
|
-
this._$Ei(), (this.l ??= []).push(e);
|
|
44
|
-
}
|
|
45
|
-
static get observedAttributes() {
|
|
46
|
-
return this.finalize(), this._$Eh && [...this._$Eh.keys()];
|
|
47
|
-
}
|
|
48
|
-
static createProperty(e, t = h) {
|
|
49
|
-
if (t.state && (t.attribute = !1), this._$Ei(), this.prototype.hasOwnProperty(e) && ((t = Object.create(t)).wrapped = !0), this.elementProperties.set(e, t), !t.noAccessor) {
|
|
50
|
-
let n = Symbol(), i = this.getPropertyDescriptor(e, n, t);
|
|
51
|
-
i !== void 0 && r(this.prototype, e, i);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
static getPropertyDescriptor(e, t, n) {
|
|
55
|
-
let { get: r, set: a } = i(this.prototype, e) ?? {
|
|
56
|
-
get() {
|
|
57
|
-
return this[t];
|
|
58
|
-
},
|
|
59
|
-
set(e) {
|
|
60
|
-
this[t] = e;
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
return {
|
|
64
|
-
get: r,
|
|
65
|
-
set(t) {
|
|
66
|
-
let i = r?.call(this);
|
|
67
|
-
a?.call(this, t), this.requestUpdate(e, i, n);
|
|
68
|
-
},
|
|
69
|
-
configurable: !0,
|
|
70
|
-
enumerable: !0
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
static getPropertyOptions(e) {
|
|
74
|
-
return this.elementProperties.get(e) ?? h;
|
|
75
|
-
}
|
|
76
|
-
static _$Ei() {
|
|
77
|
-
if (this.hasOwnProperty(f("elementProperties"))) return;
|
|
78
|
-
let e = s(this);
|
|
79
|
-
e.finalize(), e.l !== void 0 && (this.l = [...e.l]), this.elementProperties = new Map(e.elementProperties);
|
|
80
|
-
}
|
|
81
|
-
static finalize() {
|
|
82
|
-
if (this.hasOwnProperty(f("finalized"))) return;
|
|
83
|
-
if (this.finalized = !0, this._$Ei(), this.hasOwnProperty(f("properties"))) {
|
|
84
|
-
let e = this.properties, t = [...a(e), ...o(e)];
|
|
85
|
-
for (let n of t) this.createProperty(n, e[n]);
|
|
86
|
-
}
|
|
87
|
-
let e = this[Symbol.metadata];
|
|
88
|
-
if (e !== null) {
|
|
89
|
-
let t = litPropertyMetadata.get(e);
|
|
90
|
-
if (t !== void 0) for (let [e, n] of t) this.elementProperties.set(e, n);
|
|
91
|
-
}
|
|
92
|
-
this._$Eh = /* @__PURE__ */ new Map();
|
|
93
|
-
for (let [e, t] of this.elementProperties) {
|
|
94
|
-
let n = this._$Eu(e, t);
|
|
95
|
-
n !== void 0 && this._$Eh.set(n, e);
|
|
96
|
-
}
|
|
97
|
-
this.elementStyles = this.finalizeStyles(this.styles);
|
|
98
|
-
}
|
|
99
|
-
static finalizeStyles(e) {
|
|
100
|
-
let n = [];
|
|
101
|
-
if (Array.isArray(e)) {
|
|
102
|
-
let r = new Set(e.flat(Infinity).reverse());
|
|
103
|
-
for (let e of r) n.unshift(t(e));
|
|
104
|
-
} else e !== void 0 && n.push(t(e));
|
|
105
|
-
return n;
|
|
106
|
-
}
|
|
107
|
-
static _$Eu(e, t) {
|
|
108
|
-
let n = t.attribute;
|
|
109
|
-
return !1 === n ? void 0 : typeof n == "string" ? n : typeof e == "string" ? e.toLowerCase() : void 0;
|
|
110
|
-
}
|
|
111
|
-
constructor() {
|
|
112
|
-
super(), this._$Ep = void 0, this.isUpdatePending = !1, this.hasUpdated = !1, this._$Em = null, this._$Ev();
|
|
113
|
-
}
|
|
114
|
-
_$Ev() {
|
|
115
|
-
this._$ES = new Promise((e) => this.enableUpdating = e), this._$AL = /* @__PURE__ */ new Map(), this._$E_(), this.requestUpdate(), this.constructor.l?.forEach((e) => e(this));
|
|
116
|
-
}
|
|
117
|
-
addController(e) {
|
|
118
|
-
(this._$EO ??= /* @__PURE__ */ new Set()).add(e), this.renderRoot !== void 0 && this.isConnected && e.hostConnected?.();
|
|
119
|
-
}
|
|
120
|
-
removeController(e) {
|
|
121
|
-
this._$EO?.delete(e);
|
|
122
|
-
}
|
|
123
|
-
_$E_() {
|
|
124
|
-
let e = /* @__PURE__ */ new Map(), t = this.constructor.elementProperties;
|
|
125
|
-
for (let n of t.keys()) this.hasOwnProperty(n) && (e.set(n, this[n]), delete this[n]);
|
|
126
|
-
e.size > 0 && (this._$Ep = e);
|
|
127
|
-
}
|
|
128
|
-
createRenderRoot() {
|
|
129
|
-
let t = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
|
|
130
|
-
return e(t, this.constructor.elementStyles), t;
|
|
131
|
-
}
|
|
132
|
-
connectedCallback() {
|
|
133
|
-
this.renderRoot ??= this.createRenderRoot(), this.enableUpdating(!0), this._$EO?.forEach((e) => e.hostConnected?.());
|
|
134
|
-
}
|
|
135
|
-
enableUpdating(e) {}
|
|
136
|
-
disconnectedCallback() {
|
|
137
|
-
this._$EO?.forEach((e) => e.hostDisconnected?.());
|
|
138
|
-
}
|
|
139
|
-
attributeChangedCallback(e, t, n) {
|
|
140
|
-
this._$AK(e, n);
|
|
141
|
-
}
|
|
142
|
-
_$ET(e, t) {
|
|
143
|
-
let n = this.constructor.elementProperties.get(e), r = this.constructor._$Eu(e, n);
|
|
144
|
-
if (r !== void 0 && !0 === n.reflect) {
|
|
145
|
-
let i = (n.converter?.toAttribute === void 0 ? p : n.converter).toAttribute(t, n.type);
|
|
146
|
-
this._$Em = e, i == null ? this.removeAttribute(r) : this.setAttribute(r, i), this._$Em = null;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
_$AK(e, t) {
|
|
150
|
-
let n = this.constructor, r = n._$Eh.get(e);
|
|
151
|
-
if (r !== void 0 && this._$Em !== r) {
|
|
152
|
-
let e = n.getPropertyOptions(r), i = typeof e.converter == "function" ? { fromAttribute: e.converter } : e.converter?.fromAttribute === void 0 ? p : e.converter;
|
|
153
|
-
this._$Em = r;
|
|
154
|
-
let a = i.fromAttribute(t, e.type);
|
|
155
|
-
this[r] = a ?? this._$Ej?.get(r) ?? a, this._$Em = null;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
requestUpdate(e, t, n, r = !1, i) {
|
|
159
|
-
if (e !== void 0) {
|
|
160
|
-
let a = this.constructor;
|
|
161
|
-
if (!1 === r && (i = this[e]), n ??= a.getPropertyOptions(e), !((n.hasChanged ?? m)(i, t) || n.useDefault && n.reflect && i === this._$Ej?.get(e) && !this.hasAttribute(a._$Eu(e, n)))) return;
|
|
162
|
-
this.C(e, t, n);
|
|
163
|
-
}
|
|
164
|
-
!1 === this.isUpdatePending && (this._$ES = this._$EP());
|
|
165
|
-
}
|
|
166
|
-
C(e, t, { useDefault: n, reflect: r, wrapped: i }, a) {
|
|
167
|
-
n && !(this._$Ej ??= /* @__PURE__ */ new Map()).has(e) && (this._$Ej.set(e, a ?? t ?? this[e]), !0 !== i || a !== void 0) || (this._$AL.has(e) || (this.hasUpdated || n || (t = void 0), this._$AL.set(e, t)), !0 === r && this._$Em !== e && (this._$Eq ??= /* @__PURE__ */ new Set()).add(e));
|
|
168
|
-
}
|
|
169
|
-
async _$EP() {
|
|
170
|
-
this.isUpdatePending = !0;
|
|
171
|
-
try {
|
|
172
|
-
await this._$ES;
|
|
173
|
-
} catch (e) {
|
|
174
|
-
Promise.reject(e);
|
|
175
|
-
}
|
|
176
|
-
let e = this.scheduleUpdate();
|
|
177
|
-
return e != null && await e, !this.isUpdatePending;
|
|
178
|
-
}
|
|
179
|
-
scheduleUpdate() {
|
|
180
|
-
return this.performUpdate();
|
|
181
|
-
}
|
|
182
|
-
performUpdate() {
|
|
183
|
-
if (!this.isUpdatePending) return;
|
|
184
|
-
if (!this.hasUpdated) {
|
|
185
|
-
if (this.renderRoot ??= this.createRenderRoot(), this._$Ep) {
|
|
186
|
-
for (let [e, t] of this._$Ep) this[e] = t;
|
|
187
|
-
this._$Ep = void 0;
|
|
188
|
-
}
|
|
189
|
-
let e = this.constructor.elementProperties;
|
|
190
|
-
if (e.size > 0) for (let [t, n] of e) {
|
|
191
|
-
let { wrapped: e } = n, r = this[t];
|
|
192
|
-
!0 !== e || this._$AL.has(t) || r === void 0 || this.C(t, void 0, n, r);
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
let e = !1, t = this._$AL;
|
|
196
|
-
try {
|
|
197
|
-
e = this.shouldUpdate(t), e ? (this.willUpdate(t), this._$EO?.forEach((e) => e.hostUpdate?.()), this.update(t)) : this._$EM();
|
|
198
|
-
} catch (t) {
|
|
199
|
-
throw e = !1, this._$EM(), t;
|
|
200
|
-
}
|
|
201
|
-
e && this._$AE(t);
|
|
202
|
-
}
|
|
203
|
-
willUpdate(e) {}
|
|
204
|
-
_$AE(e) {
|
|
205
|
-
this._$EO?.forEach((e) => e.hostUpdated?.()), this.hasUpdated || (this.hasUpdated = !0, this.firstUpdated(e)), this.updated(e);
|
|
206
|
-
}
|
|
207
|
-
_$EM() {
|
|
208
|
-
this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = !1;
|
|
209
|
-
}
|
|
210
|
-
get updateComplete() {
|
|
211
|
-
return this.getUpdateComplete();
|
|
212
|
-
}
|
|
213
|
-
getUpdateComplete() {
|
|
214
|
-
return this._$ES;
|
|
215
|
-
}
|
|
216
|
-
shouldUpdate(e) {
|
|
217
|
-
return !0;
|
|
218
|
-
}
|
|
219
|
-
update(e) {
|
|
220
|
-
this._$Eq &&= this._$Eq.forEach((e) => this._$ET(e, this[e])), this._$EM();
|
|
221
|
-
}
|
|
222
|
-
updated(e) {}
|
|
223
|
-
firstUpdated(e) {}
|
|
224
|
-
};
|
|
225
|
-
g.elementStyles = [], g.shadowRootOptions = { mode: "open" }, g[f("elementProperties")] = /* @__PURE__ */ new Map(), g[f("finalized")] = /* @__PURE__ */ new Map(), d?.({ ReactiveElement: g }), (c.reactiveElementVersions ??= []).push("2.1.2");
|
|
226
|
-
//#endregion
|
|
227
|
-
export { g as ReactiveElement, e as adoptStyles, p as defaultConverter, t as getCompatibleStyle, m as notEqual };
|
|
228
|
-
|
|
229
|
-
//# sourceMappingURL=reactive-element.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reactive-element.js","names":["t","s"],"sources":["../../../../../../../../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/reactive-element.js"],"sourcesContent":["import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i,e=!1,h){if(void 0!==t){const r=this.constructor;if(!1===e&&(h=this[t]),i??=r.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(r._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach(t=>t.hostUpdate?.()),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach(t=>t.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(t=>this._$ET(t,this[t])),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.2\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { customElement as e } from "../../../@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/custom-element.js";
|
|
2
|
-
import { property as t, standardProperty as n } from "../../../@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/property.js";
|
|
3
|
-
import { state as r } from "../../../@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/state.js";
|
|
4
|
-
import { query as i } from "../../../@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/query.js";
|
|
5
|
-
export { e as customElement, t as property, i as query, n as standardProperty, r as state };
|