comfy-tool 1.0.4 → 1.0.6
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/@types/components/index.d.ts +1 -1
- package/@types/components/layout/Column/Column.d.ts +1 -1
- package/@types/components/layout/Column/index.d.ts +1 -1
- package/@types/components/layout/{Expended → Expanded}/index.d.ts +4 -4
- package/@types/components/utils/layer/Component.d.ts +15 -5
- package/@types/components/utils/layer/layer.d.ts +1 -1
- package/@types/demo/hooks/use-layer.d.ts +19 -0
- package/@types/demo/hooks/use-test-layer.d.ts +6 -0
- package/@types/globals.d.ts +10 -24
- package/@types/plugins/PopupCreator.d.ts +2 -1
- package/@types/utils/app/component.d.ts +1 -1
- package/@types/utils/tools.d.ts +1 -1
- package/@types/utils/util/array.d.ts +1 -0
- package/@types/utils/util/{formate.d.ts → format.d.ts} +1 -0
- package/@types/utils/util/function.d.ts +1 -1
- package/README.md +87 -36
- package/dist/index.min.js +1 -1
- package/es/index.mjs +274 -253
- package/lib/index.js +1 -1
- package/package.json +1 -1
- package/web-types.json +1 -1
- /package/@types/components/layout/{Expended/Expended.d.ts → Expanded/Expanded.d.ts} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import './index.scss';
|
|
2
2
|
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
3
3
|
reverse: BooleanConstructor;
|
|
4
|
-
}>, import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
4
|
+
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
5
5
|
reverse: BooleanConstructor;
|
|
6
6
|
}>> & Readonly<{}>, {
|
|
7
7
|
reverse: boolean;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _Column from './Column';
|
|
2
2
|
export declare const Column: import("../../../utils/app/component").WithInstall<import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
3
3
|
reverse: BooleanConstructor;
|
|
4
|
-
}>, import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
4
|
+
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
5
5
|
reverse: BooleanConstructor;
|
|
6
6
|
}>> & Readonly<{}>, {
|
|
7
7
|
reverse: boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
export declare const
|
|
1
|
+
import _Expanded from './Expanded';
|
|
2
|
+
export declare const Expanded: import("../../../utils/app/component").WithInstall<import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
3
3
|
flex: {
|
|
4
4
|
type: import("vue").PropType<"-" | "100%" | number>;
|
|
5
5
|
default: number;
|
|
@@ -30,9 +30,9 @@ export declare const Expended: import("../../../utils/app/component").WithInstal
|
|
|
30
30
|
row: boolean;
|
|
31
31
|
flex: number | "-" | "100%";
|
|
32
32
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>>;
|
|
33
|
-
export default
|
|
33
|
+
export default Expanded;
|
|
34
34
|
declare module 'vue' {
|
|
35
35
|
interface GlobalComponents {
|
|
36
|
-
|
|
36
|
+
expanded: typeof _Expanded;
|
|
37
37
|
}
|
|
38
38
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Ref, CSSProperties } from "vue";
|
|
1
|
+
import type { Ref, CSSProperties, PropType } from "vue";
|
|
2
2
|
import { LayerOptions } from "./layer";
|
|
3
3
|
type GetVueProps<T> = {
|
|
4
4
|
[P in keyof T]: T[P] | Ref<T[P]>;
|
|
@@ -29,11 +29,21 @@ export interface LayerState<C extends VueComponentConstructor, B extends VueComp
|
|
|
29
29
|
content: C;
|
|
30
30
|
contentProps?: GetComponentProps<C>;
|
|
31
31
|
}
|
|
32
|
-
declare const _default: import("vue").DefineComponent<
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
33
|
+
baseContent: {
|
|
34
|
+
type: PropType<VueComponentConstructor>;
|
|
35
|
+
default: null;
|
|
36
|
+
};
|
|
37
|
+
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("cancel" | "close" | "confirm")[], "cancel" | "close" | "confirm", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
38
|
+
baseContent: {
|
|
39
|
+
type: PropType<VueComponentConstructor>;
|
|
40
|
+
default: null;
|
|
41
|
+
};
|
|
42
|
+
}>> & Readonly<{
|
|
35
43
|
onCancel?: ((...args: any[]) => any) | undefined;
|
|
36
44
|
onClose?: ((...args: any[]) => any) | undefined;
|
|
37
45
|
onConfirm?: ((...args: any[]) => any) | undefined;
|
|
38
|
-
}>, {
|
|
46
|
+
}>, {
|
|
47
|
+
baseContent: VueComponentConstructor;
|
|
48
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
39
49
|
export default _default;
|
|
@@ -9,7 +9,7 @@ export type LayerInstance<T, C extends LayerComponent, B extends LayerComponent>
|
|
|
9
9
|
declare class _Layer<T, C extends LayerComponent, B extends LayerComponent> extends PopupCreator<LayerProps, LayerState<C, B>> {
|
|
10
10
|
constructor(component: VueComponent, props: Partial<LayerProps>);
|
|
11
11
|
open(options: LayerOptions<T, C>): any;
|
|
12
|
-
static create<T, C extends LayerComponent, B extends LayerComponent>(props?:
|
|
12
|
+
static create<T, C extends LayerComponent, B extends LayerComponent>(props?: LayerOptions<T, C, B>, isNew?: boolean): _Layer<T, C, B>;
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
15
|
* 创建并打开一个弹层组件
|
|
@@ -3,3 +3,22 @@ export declare function elLayer<C extends LayerComponent>(options: {
|
|
|
3
3
|
content: C;
|
|
4
4
|
contentProps: LayerComponentProps<C>;
|
|
5
5
|
} & Parameters<typeof Layer>[0]): void;
|
|
6
|
+
export declare function appLayer<C extends LayerComponent>(options: {
|
|
7
|
+
content: C;
|
|
8
|
+
contentProps: LayerComponentProps<C>;
|
|
9
|
+
} & Parameters<typeof Layer>[0]): Promise<unknown>;
|
|
10
|
+
export declare namespace appLayer {
|
|
11
|
+
var create: (options: Parameters<typeof Layer>[0]) => {
|
|
12
|
+
open(options: import("../../index").LayerOptions<unknown, abstract new (...args: any) => any, any>): any;
|
|
13
|
+
component: import("../../plugins/PopupCreator.js").VueComponent;
|
|
14
|
+
appDOM: HTMLDivElement;
|
|
15
|
+
instance: import("vue").ComponentPublicInstance<any, any, S>;
|
|
16
|
+
container: HTMLDivElement;
|
|
17
|
+
properties: Partial<import("../../index").LayerProps>;
|
|
18
|
+
init(): void;
|
|
19
|
+
mount(): void;
|
|
20
|
+
unmount(): void;
|
|
21
|
+
close(): void;
|
|
22
|
+
toggle(show: boolean, options?: any): void;
|
|
23
|
+
};
|
|
24
|
+
}
|
package/@types/globals.d.ts
CHANGED
|
@@ -8,38 +8,24 @@ declare global {
|
|
|
8
8
|
function parseFloat(string: string|number): number
|
|
9
9
|
function parseInt(string: string|number): number
|
|
10
10
|
|
|
11
|
-
type ObjectKeyType = string|number|symbol;
|
|
12
|
-
//通用图表
|
|
13
|
-
interface ChartData {
|
|
14
|
-
title: string;
|
|
15
|
-
data: string[];
|
|
16
|
-
series: {
|
|
17
|
-
name: string;
|
|
18
|
-
data: number[];
|
|
19
|
-
[key:string]:any
|
|
20
|
-
}[];
|
|
21
|
-
[key:string]:any
|
|
22
|
-
}
|
|
23
|
-
// 选项通用类型
|
|
24
|
-
type SelectedData<T=string|number> = {
|
|
25
|
-
text:string,
|
|
26
|
-
value:T
|
|
27
|
-
children?:SelectedData<T>[],
|
|
28
|
-
[key:Exclude<string, 'text'|'value'|'children'>]:any
|
|
29
|
-
}
|
|
30
11
|
/**
|
|
31
|
-
*
|
|
12
|
+
* 对象属性类型
|
|
13
|
+
*/
|
|
14
|
+
type ObjectKeyType = string|symbol;
|
|
15
|
+
/**
|
|
16
|
+
* 获取对象属性,排除指定属性
|
|
32
17
|
*/
|
|
33
18
|
type PickEx<T, K extends keyof T> = { [P in Exclude<keyof T, K>]: T[P]; }
|
|
19
|
+
/**
|
|
20
|
+
* 获取Promise函数返回值类型
|
|
21
|
+
*/
|
|
34
22
|
type PromiseReturnType<T> = T extends (...arg:any[]) => Promise<infer R> ? R : T;
|
|
35
|
-
|
|
36
|
-
type GetFirstArguments<T extends (...args: any[]) => any> = GetArguments<T>[0];
|
|
23
|
+
/** 部分属性可选 */
|
|
37
24
|
type PartialOf<T, U extends keyof T> = PickEx<T, U>&Partial<T>
|
|
25
|
+
/** 部分属性必填 */
|
|
38
26
|
type RequiredOf<T, U extends keyof T> = Required<Pick<T, U>>&Partial<T>
|
|
39
27
|
/** 获(对象或数组)取子属性 */
|
|
40
28
|
type PickChild<T, K extends keyof T> = T extends (infer R)[] ? R : T[K];
|
|
41
|
-
/** 获取数组中的元素类型 */
|
|
42
|
-
type GetElementType<T> = T extends (infer R)[] ? R : never;
|
|
43
29
|
interface ScrollToOptions {
|
|
44
30
|
target?: Ref<any>|any
|
|
45
31
|
right?: number
|
|
@@ -8,13 +8,14 @@ export declare abstract class PopupCreator<P extends {
|
|
|
8
8
|
show: boolean;
|
|
9
9
|
}> {
|
|
10
10
|
component: VueComponent;
|
|
11
|
-
appDOM:
|
|
11
|
+
appDOM: HTMLDivElement;
|
|
12
12
|
instance: ComponentPublicInstance<any, any, S>;
|
|
13
13
|
container: HTMLDivElement;
|
|
14
14
|
properties: Partial<P>;
|
|
15
15
|
constructor(Component: VueComponent, properties: Partial<P>);
|
|
16
16
|
private init;
|
|
17
17
|
static use(options: typeof Config): void;
|
|
18
|
+
mount(): void;
|
|
18
19
|
unmount(): void;
|
|
19
20
|
abstract open(...args: ParamsType<P>[]): void;
|
|
20
21
|
close(): void;
|
|
@@ -31,7 +31,7 @@ export type WithInstall<T> = T & {
|
|
|
31
31
|
* @return {*}
|
|
32
32
|
*/
|
|
33
33
|
export declare function withInstall<T>(plugin: T): WithInstall<T>;
|
|
34
|
-
export type VNodeProps =
|
|
34
|
+
export type VNodeProps = Parameters<typeof h>[1];
|
|
35
35
|
export declare function renderComponent<T extends VNodeProps>(comp?: any, defaultComp?: any, props?: T): any;
|
|
36
36
|
export declare function isVueComponent(target: any): boolean;
|
|
37
37
|
export {};
|
package/@types/utils/tools.d.ts
CHANGED
|
@@ -35,5 +35,5 @@ export declare function throttleAsync<T extends (...a: any[]) => Promise<any>>(f
|
|
|
35
35
|
*/
|
|
36
36
|
export declare function methodApply<T extends Function | Function[]>(target: T, args?: any[]): void;
|
|
37
37
|
export declare const Fn: {
|
|
38
|
-
cacheResult<T extends (...args: any) => any>(fn: T): (this: any, ...args:
|
|
38
|
+
cacheResult<T extends (...args: any) => any>(fn: T): (this: any, ...args: Parameters<T>) => any;
|
|
39
39
|
};
|
package/README.md
CHANGED
|
@@ -37,7 +37,7 @@ pnpm add comfy-tool
|
|
|
37
37
|
- 导入
|
|
38
38
|
- ESM
|
|
39
39
|
```js
|
|
40
|
-
import 'comfy-tool/
|
|
40
|
+
import 'comfy-tool/style.css';
|
|
41
41
|
import { useComfyTool } from 'comfy-tool';
|
|
42
42
|
```
|
|
43
43
|
只导入工具函数(无需安装直接使用)
|
|
@@ -49,7 +49,7 @@ pnpm add comfy-tool
|
|
|
49
49
|
- CommonJS
|
|
50
50
|
```js
|
|
51
51
|
|
|
52
|
-
require('comfy-tool/
|
|
52
|
+
require('comfy-tool/style.css');
|
|
53
53
|
const { useComfyTool } = require("comfy-tool");
|
|
54
54
|
```
|
|
55
55
|
|
|
@@ -94,22 +94,22 @@ export const Util = {
|
|
|
94
94
|
```
|
|
95
95
|
|
|
96
96
|
## 扩展组件 (以Element-Plus为例)
|
|
97
|
-
### 1. `<
|
|
97
|
+
### 1. `<expanded>`
|
|
98
98
|
自动填充剩余空间,与 `flexbox` 的 `flex:1` 一样
|
|
99
99
|
```html
|
|
100
100
|
<el-row style="width:240px">
|
|
101
101
|
<el-col :span="6">60px</el-col>
|
|
102
102
|
<el-col :span="8">80px</el-col>
|
|
103
|
-
<
|
|
103
|
+
<expanded>100px</expanded>
|
|
104
104
|
</el-row>
|
|
105
105
|
```
|
|
106
106
|
用 `flex="-"` 可以定义尺寸,不然设置了width、height都会无效。
|
|
107
107
|
```html
|
|
108
108
|
<!-- 使用 flex="-" 可以定义尺寸 -->
|
|
109
109
|
<el-row style="width:240px">
|
|
110
|
-
<
|
|
111
|
-
<
|
|
112
|
-
<
|
|
110
|
+
<expanded flex="-" :width="60">60px</expanded>
|
|
111
|
+
<expanded>90px</expanded>
|
|
112
|
+
<expanded>90px</expanded>
|
|
113
113
|
</el-row>
|
|
114
114
|
```
|
|
115
115
|
...待续
|
|
@@ -185,40 +185,58 @@ export const Util = {
|
|
|
185
185
|
})
|
|
186
186
|
}
|
|
187
187
|
```
|
|
188
|
-
<div style="color:#39f"
|
|
188
|
+
<div style="color:#39f">封装示例</div>
|
|
189
189
|
|
|
190
190
|
```ts
|
|
191
|
-
|
|
192
|
-
|
|
191
|
+
// appLayer.ts
|
|
192
|
+
import { Util } from "@/utils";
|
|
193
193
|
import { ElDialog } from "element-plus";
|
|
194
|
-
|
|
195
|
-
import
|
|
196
|
-
|
|
197
|
-
|
|
194
|
+
import AppDialog from "@/components/public/common/AppDialog.vue";
|
|
195
|
+
import { Layer } from "comfy-tool";
|
|
196
|
+
import type { LayerComponent, LayerComponentProps, LayerInstance as _LayerInstance, LayerOptions } from "comfy-tool";
|
|
197
|
+
import type { DialogProps } from "element-plus";
|
|
198
|
+
export type LayerInstance<T, C extends LayerComponent> = _LayerInstance<T, C, typeof ElDialog>;
|
|
199
|
+
function _Layer<T, C extends LayerComponent=any>(options:{
|
|
198
200
|
content:C,
|
|
199
|
-
contentProps
|
|
200
|
-
}&
|
|
201
|
-
return Layer({
|
|
201
|
+
contentProps:LayerComponentProps<C>
|
|
202
|
+
}&RequiredOf<LayerOptions<T, C, typeof AppDialog>, 'content'>&Partial<DialogProps>){
|
|
203
|
+
return Layer<T, C, typeof AppDialog>({
|
|
202
204
|
...options,
|
|
203
|
-
baseContent: AppDialog,
|
|
205
|
+
baseContent: AppDialog,
|
|
204
206
|
baseContentProps: {
|
|
205
|
-
|
|
206
|
-
show: true,
|
|
207
|
-
...
|
|
207
|
+
...Util.pickEx(options, ['content', 'contentProps', 'baseContent', 'baseContentProps']),
|
|
208
|
+
show: true,
|
|
209
|
+
...options.baseContentProps,
|
|
208
210
|
}
|
|
209
211
|
})
|
|
210
212
|
}
|
|
213
|
+
_Layer.create = function <T, C extends LayerComponent=any>(options:Partial<{
|
|
214
|
+
content:C,
|
|
215
|
+
contentProps:LayerComponentProps<C>
|
|
216
|
+
}&LayerOptions<T, C, typeof AppDialog>&DialogProps>){
|
|
217
|
+
return Layer.create<T, C, typeof AppDialog>({
|
|
218
|
+
...options,
|
|
219
|
+
baseContent: AppDialog,
|
|
220
|
+
baseContentProps: {
|
|
221
|
+
...Util.pickEx(options, ['content', 'contentProps', 'baseContent', 'baseContentProps']),
|
|
222
|
+
show: true,
|
|
223
|
+
...options.baseContentProps,
|
|
224
|
+
}
|
|
225
|
+
} as any)
|
|
226
|
+
}
|
|
227
|
+
_Layer.close = Layer.close
|
|
228
|
+
export const AppLayer = _Layer;
|
|
211
229
|
```
|
|
212
230
|
|
|
213
231
|
在业务中你需要对函数进行封装,可以达到以下使用效果
|
|
214
232
|
```ts
|
|
215
233
|
// 假设已经封装好了
|
|
216
|
-
import
|
|
234
|
+
import AppLayer from '@/utils/appLayer';
|
|
217
235
|
import HelloWorld from '@/components/HelloWorld.vue'
|
|
218
236
|
|
|
219
237
|
// 常用示例
|
|
220
238
|
// 示例一
|
|
221
|
-
|
|
239
|
+
AppLayer<string>({
|
|
222
240
|
content:HelloWorld,
|
|
223
241
|
contentProps:{
|
|
224
242
|
taskId:'123'
|
|
@@ -231,7 +249,7 @@ export const Util = {
|
|
|
231
249
|
|
|
232
250
|
// 示例二
|
|
233
251
|
// 先创建实例
|
|
234
|
-
const $layer1 =
|
|
252
|
+
const $layer1 = AppLayer.create<string>({
|
|
235
253
|
content:HelloWorld,
|
|
236
254
|
onConfirm(res, close){
|
|
237
255
|
console.log(res); // 这是HelloWorld组件中回传的数据
|
|
@@ -249,7 +267,7 @@ export const Util = {
|
|
|
249
267
|
回调的形式与promise的形式的区别。(只能使用一种回调,都写的话只在回调生效)
|
|
250
268
|
```ts
|
|
251
269
|
// 较完整示例
|
|
252
|
-
|
|
270
|
+
AppLayer<string>({
|
|
253
271
|
// 业务组件
|
|
254
272
|
content:HelloWorld,
|
|
255
273
|
// 传给HelloWorld的属性
|
|
@@ -257,7 +275,7 @@ export const Util = {
|
|
|
257
275
|
content:'Hello World'
|
|
258
276
|
},
|
|
259
277
|
// 回调的形式可以控制弹层关闭,默认也会自动关闭,return true 则不会自动关闭
|
|
260
|
-
onConfirm(res, close){
|
|
278
|
+
onConfirm(res, close){ // res:string
|
|
261
279
|
console.log(res); // 这是HelloWorld组件中回传的数据
|
|
262
280
|
setTimeout(()=>{
|
|
263
281
|
close();// 手动关闭弹层
|
|
@@ -273,6 +291,47 @@ export const Util = {
|
|
|
273
291
|
console.log(action);
|
|
274
292
|
})
|
|
275
293
|
```
|
|
294
|
+
|
|
295
|
+
- 继续封装成Hooks
|
|
296
|
+
```ts
|
|
297
|
+
// use-hello-world-Layer.ts
|
|
298
|
+
let $layer:LayerInstance<string, typeof HelloWorld, typeof ElDialog>;
|
|
299
|
+
// 单独实例
|
|
300
|
+
export function useHelloWorldLayer(){
|
|
301
|
+
function open(props: {title:string}={title:'测试'}){
|
|
302
|
+
if (!$layer) {
|
|
303
|
+
$layer = AppLayer.create<string>({
|
|
304
|
+
content: HelloWorld
|
|
305
|
+
})
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
return new Promise<string>((resolve, reject) => {
|
|
309
|
+
$layer.open({
|
|
310
|
+
contentProps: props,
|
|
311
|
+
onConfirm(data){ // type:string
|
|
312
|
+
console.log('confirm:',data)
|
|
313
|
+
resolve()
|
|
314
|
+
},
|
|
315
|
+
onClose(action){
|
|
316
|
+
console.log('close:',action)
|
|
317
|
+
reject()
|
|
318
|
+
}
|
|
319
|
+
})
|
|
320
|
+
}).then(res => {
|
|
321
|
+
console.log('res:',res)
|
|
322
|
+
})
|
|
323
|
+
}
|
|
324
|
+
function close(){
|
|
325
|
+
$layer?.close()
|
|
326
|
+
}
|
|
327
|
+
return { open, close }
|
|
328
|
+
}
|
|
329
|
+
```
|
|
330
|
+
使用
|
|
331
|
+
```ts
|
|
332
|
+
const HelloWorldLayer = useHelloWorldLayer();
|
|
333
|
+
HelloWorldLayer.open({title:'Hello World'});
|
|
334
|
+
```
|
|
276
335
|
...
|
|
277
336
|
## 扩展指令
|
|
278
337
|
...
|
|
@@ -317,13 +376,5 @@ export const Util = {
|
|
|
317
376
|
|...|||
|
|
318
377
|
### 2.内外边距
|
|
319
378
|
优先级遵循 `u-m-l/r/t/b-*` > `u-m-x/y-*` > `u-m-*`
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
### 4.容器尺寸/类型
|
|
323
|
-
...
|
|
324
|
-
### 5.定位
|
|
325
|
-
...
|
|
326
|
-
### 6.动画
|
|
327
|
-
...
|
|
328
|
-
### 7.其他
|
|
329
|
-
...
|
|
379
|
+
|
|
380
|
+
只打算做部分常用的css扩展,所以不是一个全面的样式库
|
package/dist/index.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(s,f){typeof exports=="object"&&typeof module!="undefined"?f(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],f):(s=typeof globalThis!="undefined"?globalThis:s||self,f(s.ComfyTool={},s.Vue))})(this,function(s,f){"use strict";var Vt=Object.defineProperty,jt=Object.defineProperties;var Ut=Object.getOwnPropertyDescriptors;var _e=Object.getOwnPropertySymbols;var Wt=Object.prototype.hasOwnProperty,Ft=Object.prototype.propertyIsEnumerable;var Q=Math.pow,Se=(s,f,h)=>f in s?Vt(s,f,{enumerable:!0,configurable:!0,writable:!0,value:h}):s[f]=h,w=(s,f)=>{for(var h in f||(f={}))Wt.call(f,h)&&Se(s,h,f[h]);if(_e)for(var h of _e(f))Ft.call(f,h)&&Se(s,h,f[h]);return s},W=(s,f)=>jt(s,Ut(f));var Le=(s,f,h)=>new Promise((A,T)=>{var F=C=>{try{_(h.next(C))}catch(S){T(S)}},M=C=>{try{_(h.throw(C))}catch(S){T(S)}},_=C=>C.done?A(C.value):Promise.resolve(C.value).then(F,M);_((h=h.apply(s,f)).next())});function h(e){try{return decodeURI(e)}catch(t){return console.warn("[Decode Error]",e),e}}function A(e){try{return decodeURIComponent(e)}catch(t){return console.warn("[Decode Error]",e),e}}function T(e){return Array.isArray(e)?e[e.length-1]:e}function F(e,t={}){var o;t.allParam=(o=t.allParam)!=null?o:!0,e=h(h(e));let n=null;if(t.allParam){let r=e.match(/\?([^\?#]*)/g);if(!r)return null;for(const i of r)i.includes("=")&&(n||(n={}),Object.assign(n,q(i.substring(1))))}else{let r=e.match(/\?([^\?]*$)/);if(!r&&!e.includes("="))return null;n=q(r?r[1]:e)}return n&&!t.repeat&&Object.entries(n).forEach(([r,i])=>{n[r]=T(i)}),n}function M(e,t){return decodeURI(Me(e,w({sort:(n,o)=>n>o?0:-1},t)))}function _(e,t){return t?(typeof t!="string"&&(t=M(t)),t?e+(/^([^#]*\?[^#]*$)|(.*#.*\?.*$)/.test(e)?"&":"?")+t:e):e}function C(e){return/^https?:\/\//.test(e)}function S(e){return/^(https?:\/\/|blob:|data:)/.test(e)}function Ie(e){let[t,n]=e.split("//"),[o,r]=n.split("/");return[t+"//",o,r]}function q(e){return e?(e.startsWith("?")&&(e=e.slice(1)),e.split("&").reduce((t,n)=>{if(!n)return t;const[o,r]=n.split("="),i=A(o||""),l=A(r||"");return t[i]!==void 0?(Array.isArray(t[i])||(t[i]=[t[i]]),t[i].push(l)):t[i]=l,t},{})):{}}function Me(e,t={}){if(!e||typeof e!="object")return"";const{sort:n}=t;let o=Object.keys(e);return typeof n=="function"&&o.sort(n),o.map(r=>{const i=e[r];return Array.isArray(i)?i.map(l=>`${encodeURIComponent(r)}=${encodeURIComponent(String(l))}`).join("&"):`${encodeURIComponent(r)}=${encodeURIComponent(String(i))}`}).join("&")}const Y=Object.assign;function ee(e){return Object.keys(e)}function $e(e){return Object.values(e)}function te(e){return Object.entries(e)}function ne(e,t,n=!1){return t.reduce((o,r)=>((!n||e[r]!==void 0)&&(o[r]=e[r]),o),{})}function $(e,t,n=!1){return Object.keys(e).filter(r=>!t.includes(r)).reduce((r,i)=>((!n||e[i]!==void 0)&&(r[i]=e[i]),r),{})}function N(e){return Object.prototype.toString.call(e).match(/\[object (.+)\]/)[1]}function Ne(e,t){let n=e;if(t){const o=typeof t=="string"?t.split("."):t;for(const r of o)if(n&&typeof n=="object"&&r in n)n=n[r];else return}return n}function P(e,t,{arrayMergeStrategy:n,deepMerge:o}={}){if(!t||Object.keys(t).length===0)return O(e);if(!e||Object.keys(e).length===0)return O(t);let r=O(e);for(const i of Object.keys(t)){let l=e[i],a=t[i];if(o&&N(l)=="Object"&&N(a)=="Object")r[i]=P(l,a);else if(o&&Array.isArray(l)&&Array.isArray(a))switch(n){case"concat":r[i]=[...l,...a];break;case"merge":r[i]=l.map((d,c)=>c<a.length?P({value:d},{value:a[c]}).value:d);break;case"replace":default:r[i]=[...a];break}else r[i]=a}return r}const re=e=>JSON.parse(JSON.stringify(e)),O=function(e){if(e==null||typeof e!="object")return e;if(Array.isArray(e))return e.length?e.map(n=>O(n)):[];if(N(e)==="Object"){var t={};return Object.keys(e).forEach(n=>{t[n]=O(e[n])}),t}return e};function oe(e){return e.replace(/^-(\w)/g,(t,n)=>n.toLocaleUpperCase())}function Pe(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase().replace(/^-/,"")}function ie(e,t=2){for(var n=e+"";n.length<t;)n="0"+n;return n}function Re(e,t=2){if(e.length===0||!t)return[];const n=[];let o=[];for(let r=0;r<e.length;r++)o.push(e[r]),o.length===t&&(n.push(o),o=[]);return o.length>0&&n.push(o),n}function ke(e){let t=[];for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push({text:e[n],label:e[n],value:n});return t}function He(e){let t={};return e.forEach(n=>{t[n.value]=n.text}),t}function Ve(e){let t=new FormData;return Object.entries(e).forEach(([n,o])=>{t.append(n,o)}),t}function le(e,t={}){let{labelKey:n,valueKey:o,childrenKey:r,keepEmptyChildren:i}=t;return n=n||"label",o=o||"value",r=r||"children",i=i!==!1,e.map(l=>{const a=W(w({},l),{label:l[n]||l.label||"",value:l[o]||l.value||"",text:l[o]||l.value||""});return l[r]&&Array.isArray(l[r])&&(i||l[r].length)&&(a.children=le(l[r],t)),a})}function je(e,t){if(!t)return e;const n=e.indexOf(t);return n===-1?e:e.filter((o,r)=>r!==n)}function Ue(e,t){if(!t)return;let n=e.indexOf(t);n>=0&&e.splice(n,1)}function We(e){return e.filter(t=>t!=null)}function Fe(e){return e.filter(t=>!!t)}function Ye(e){e.splice(0,e.length)}function Ke(e,t){if(!e||!t||!e.length||!t.length)return!1;var n=t.some(o=>e.includes(o));return n}function Be(e,t=2){return n(e,t);function n(o,r){return r--,o.map(i=>(r<=0?delete i.children:i.children=i.children?n(i.children,r):[],i))}}function Je(e,t=1,n=!0){let o=[...e];return t>=o.length&&n?o:fe(o).slice(0,t)}function fe(e){const t=[...e];for(let n=t.length;--n;){const o=Math.floor(Math.random()*(n+1));[t[n],t[o]]=[t[o],t[n]]}return t}function Ge(e,t){const[n,o,r]=t;let i={};l(e,[]);function l(a,d){a.forEach((c,g)=>{let p=re(d);if(p.push(g),Array.isArray(c))l(c,p);else{let y=c[n]||o&&c[o]||r&&c[r];y&&(i[y]=p)}})}return i}function ae(e){return typeof e=="number"||/^[+-]?\d*(\.\d+)?$/.test(e)}function D(e,t){return typeof e=="number"?e+t:e+(ae(e)?t:"")}function ze(e,t,n=2){return Math.floor(e/t*100*Q(10,n))/Q(10,n)}const ue=["一","二","三","四","五","六","七","八","九","十"],Xe=[["天",...ue.slice(0,6),"天"].map(e=>`星期${e}`),["日",...ue.slice(0,6),"日"].map(e=>`周${e}`)];function ce(e,t){return se(R(e).getDay(),t)}function se(e,t=0){return typeof e=="string"&&(e=parseInt(e)),Xe[t][e]}function m(e,t="YYYY-MM-DD"){(typeof e=="number"||typeof e=="string")&&(e=R(e));const n={"Y+":e.getFullYear(),"M+":e.getMonth()+1,"D+":e.getDate(),"H+":e.getHours(),"m+":e.getMinutes(),"[Ss]+":e.getSeconds()};return Object.keys(n).forEach(o=>{const r=new RegExp(o),i=t.match(r);if(i){const l=n[o],a=ie(l,i[0].length);t=t.replace(r,a)}}),t}function R(e){return e?(typeof e=="string"&&(e=e.replace(/\-/g,"/")),e=new Date(e),e.getTime()?e:new Date):new Date}function Ze(e){let t=new Date,n=t.getDay(),o=t.getDate(),r=new Date,i=new Date,l=new Date,a=new Date,d=new Date,c,g,p=t.getFullYear(),y=t.getMonth();return r=new Date(p,y,o-(n||7)+1),i=new Date(r),i.setDate(r.getDate()-7),l=new Date(i),l.setDate(i.getDate()+6),c=new Date(p,y,1),g=new Date(p,y+1,0),a=new Date(p,y-1,1),d=new Date(p,y,0),e&&(t=m(t),r=m(r),i=m(i),l=m(l),c=m(c),g=m(g),a=m(a),d=m(d)),{today:t,thisWeekFirst:r,lastWeekFirst:i,lastWeekEnd:l,thisMonthFirst:c,thisMonthEnd:g,lastMonthFirst:a,lastMonthEnd:d}}function Qe(e,t,n){typeof e=="string"&&(e=e.replace(/\-/g,"/"));let o=60*1e3,r=60*o,i=24*r,l=new Date(e),a=new Date().getTime()-l.getTime(),d=new Date().toString().slice(0,15)===l.toString().slice(0,15),c=ce(l),g=t?"今天":"",p=Math.floor(a/i),y=Math.floor(a/r),V=Math.floor(a/o);return n=n||7,p>n?m(l,"MM月DD日 HH:mm"):p>2?c+" "+m(l,"HH:mm"):p>1?"前天 "+m(l,"HH:mm"):p>0?"昨天 "+m(l,"HH:mm"):y>=11?(d?g:"昨天 ")+m(l,"HH:mm"):y>=1?d?y+"小时前":"昨天 "+m(l,"HH:mm"):V>=1?V+"分钟前":"刚刚"}function qe(e,t){let n=R(e);return m(n.setDate(n.getDate()+t))}function et(e,t=1e3){let n=null;return function(){let o=this,r=arguments;n&&clearTimeout(n),n=setTimeout(function(){e.apply(o,r)},t)}}function tt(e,t=1e3){let n;return function(){(!n||Date.now()-n>t)&&(e.apply(this,arguments),n=Date.now())}}function nt(e,t=1e3){let n;return function(...o){return Le(this,null,function*(){if(!n||Date.now()-n>t)return n=Date.now(),yield e.apply(this,o)})}}function de(e,t=[]){Array.isArray(e)?e.forEach(n=>{n&&typeof n=="function"&&n.apply(void 0,t)}):e&&typeof e=="function"&&e.apply(void 0,t)}const rt={cacheResult(e){let t=null,n=null;return function(...o){return t&&o&&t===JSON.stringify(o)?n:(t=JSON.stringify(o),n=e.apply(this,o))}}};function he(e){return e?/^\[.*\]$/.test(e):!1}function pe(e){return e?/^\{.*\}$/.test(e):!1}function me(e){return/^\/.+\/[img]{0,3}$/.test(e)}function ot(e){return typeof e=="string"?he(e)?JSON.parse(e||"[]"):[]:e||[]}function it(e){return typeof e=="string"?pe(e)?JSON.parse(e||"{}"):{}:e||{}}function lt(e){if(typeof e=="string"&&me(e)){let t=e.match(/^\/(.+)\/([img]{0,3})$/);return new RegExp(t[1],t[2])}else return new RegExp("")}function ft(e,t="i"){return e=`^${e.replace(/\b|\B/g,".*")}$`,new RegExp(e,t)}function at(e){const t=e.split(";base64,"),n=t[0].split(":")[1],o=window.atob(t[1]),r=o.length,i=new Uint8Array(r);for(let l=0;l<r;l+=1)i[l]=o.charCodeAt(l);return new Blob([i],{type:n})}function K(e){return e.install=t=>{let{name:n}=e;t.component(n,e),t.component(oe("-"+n),e)},e}function ut(e,t=f.h("div"),n){return e?typeof e=="function"?e()||t:f.h(e,n&&f.reactive(n)):t}function ct(e){return!!(e&&e.$el&&e.$props&&e.$options&&e.$emit)}function st(e){let t=ye(e);t&&(t.scrollTop=0)}function ye(e){return document.getElementById(e)}function ge(e){let t=f.unref(e);return ct(t)?t.$el:t instanceof HTMLElement?t:null}function dt(e,t){return getComputedStyle(e).getPropertyValue(t)}function ht(e,t,n=!0){e.classList.remove(...t.split(" ")),n&&e.classList.add(t)}const v={rootId:"app",app:void 0};function pt(e={}){e.rootId&&(v.rootId=e.rootId),e.app&&(v.app=e.app)}const L={toast(e){},alert(e){alert(e)},showLoading(e){},hideLoading(){}};function we(e){let t=ee(v);pt(ne(e,t)),P(L,$(e,t),{deepMerge:!0,arrayMergeStrategy:"concat"})}function mt(){}function yt(e){}function gt(e){B(e)}function B(e){L.toast(e)}function wt(e){L.alert(e)}const k={show(e=""){L.showLoading(e)},hide(){L.hideLoading()}};let J;try{J=document.createElement("a")}catch(e){}function bt(e,t="未获取到联系电话"){if(!e)return B(t);e=typeof e=="number"?e.toString():e,J.href=/^tel:.*/.test(e)?e:"tel:"+e,J.click()}const Ct=Object.freeze(Object.defineProperty({__proto__:null,$:ye,$alert:wt,$loading:k,$refDOM:ge,$toast:B,Fn:rt,addUnit:D,arrayToGroup:Re,base64ToBlob:at,camelize:oe,cloneJSON:re,dateGo:qe,dealTime:Qe,debounce:et,decodeURIComponentSafe:A,decodeURISafe:h,deepClone:O,deleteItemForArr:Ue,emptyArray:Ye,entriesOf:te,errorCatch:gt,extend:Y,formatDate:m,formatSelectedData:Be,formatToSelectData:le,getArrayDataIndex:Ge,getDateConfig:Ze,getElementPropertyValue:dt,getFuzzyMatchRegExp:ft,getPercentage:ze,getProperty:Ne,getRandomElements:Je,getUniqueParam:T,getWeek:ce,getWeekByNo:se,hasSameItem:Ke,isArrayString:he,isFullUrl:S,isNumber:ae,isObjectString:pe,isRegExpString:me,isWebUrl:C,kebabCase:Pe,keysOf:ee,merge:P,methodApply:de,noop:mt,noopCatch:yt,padZero:ie,parseArray:ot,parseDate:R,parseObject:it,parseRegExp:lt,parseUrl:Ie,pick:ne,pickEx:$,queryParse:F,queryStringify:M,removeEmptyForArr:We,removeFalseForArr:Fe,removeItemForArr:je,scrollToTop:st,selectDataToObj:He,shuffleArray:fe,telephoneCall:bt,throttle:tt,throttleAsync:nt,toFormData:Ve,toSelectData:ke,toggleClass:ht,typeOf:N,urlAddParams:_,valuesOf:$e},Symbol.toStringTag,{value:"Module"})),b={};function be(e){return b[e.url]&&b[e.url].status===1?Promise.resolve("The resource is already loaded!"):b[e.url]&&b[e.url].status===2?new Promise((t,n)=>{b[e.url].waiters.push(t)}):e.production?Promise.resolve("Ignored in development environment!"):(k.show("资源加载中"),b[e.url]?b[e.url].status=2:b[e.url]={status:2,waiters:[]},new Promise((t,n)=>{const o=()=>{l(),d()},r=()=>{a(),d()};let i=null;e.type==="js"?(i=document.createElement("script"),i.src=e.url,i.onload=o,i.onerror=r):e.type==="css"&&(i=document.createElement("link"),i.rel="stylesheet",i.href=e.url,i.onload=o,i.onerror=r),i&&document.head.appendChild(i);function l(){b[e.url].status=1,k.hide(),t(e.url),de(b[e.url].waiters,[e.url])}function a(){b[e.url].status=0,k.hide(),n(new Error("Failed to load "+e.url))}function d(){i&&(i.onload=null,i.onerror=null)}}))}function vt(e){return Array.isArray(e)?Promise.all(e.map(t=>be(t))):be(e)}const Ce=Symbol("INSTALLED_KEY"),ve=Symbol("COMPONENT_INSTALLED_KEY"),De=Symbol("DIRECTIVES_INSTALLED_KEY"),Dt={mounted(e,t,n,o){typeof t.value=="function"&&t.value(e)},unmounted(e,t,n,o){typeof t.value=="function"&&t.value(null)}},Et={mounted(e,t,n,o){e.focus()},updated(e,t,n,o){}},Ot=function(t,n,o,r){t.style.height=t.parentElement.offsetHeight+"px",t.style.minHeight="100%"};function xt(e,t,n,o){if(t.value.__used)return;let r=w({},t.value);if(r.behavior=r.behavior||"smooth",typeof r.right=="number"&&(r.left=e.scrollWidth-r.right),typeof r.bottom=="number"&&(r.top=e.scrollHeight-r.bottom),r.target){let i=ge(r.target);if(i){let{offsetTop:l,offsetLeft:a}=i.offsetParent||{offsetTop:0,offsetLeft:0};r.left=i.offsetLeft-e.offsetLeft+a,r.top=i.offsetTop-e.offsetTop+l}}r.left&&typeof r.offsetX=="number"&&(r.left+=r.offsetX),r.top&&typeof r.offsetY=="number"&&(r.top+=r.offsetY),Object.defineProperty(t.value,"__used",{value:!0,enumerable:!1,writable:!0}),r.beforeScroll?r.beforeScroll(()=>{e.scrollTo(r)},r,e):e.scrollTo(r)}const G={dom:Dt,focus:Et,maxHeight:Ot,scroll:xt};function At(e){if(!e[De]){e[De]=!0;for(const t of Object.keys(G))e.directive(G[t].name||t,G[t])}}const Tt={reverse:Boolean},Ee=K(f.defineComponent({name:"column",inheritAttrs:!1,props:Tt,setup(e,{attrs:t,slots:n}){var o,r,i,l,a;return f.createVNode("div",f.mergeProps({class:{"comfy-tool--column":!0,reverse:e.reverse}},t),[((o=n.before)==null?void 0:o.call(n))||"",((r=n["before-content"])==null?void 0:r.call(n))||"",f.createVNode("div",{class:"main-content"},[((i=n.default)==null?void 0:i.call(n))||""]),((l=n["after-content"])==null?void 0:l.call(n))||"",((a=n.after)==null?void 0:a.call(n))||""])}})),_t={reverse:Boolean},Oe=K(f.defineComponent({name:"row",inheritAttrs:!1,props:_t,setup(e,{attrs:t,slots:n}){return()=>{var o,r,i,l,a;return f.createVNode("div",f.mergeProps({class:{"comfy-tool--row":!0,reverse:e.reverse}},t),[((o=n.before)==null?void 0:o.call(n))||"",((r=n["before-content"])==null?void 0:r.call(n))||"",f.createVNode("div",{class:"main-content"},[((i=n.default)==null?void 0:i.call(n))||""]),((l=n["after-content"])==null?void 0:l.call(n))||"",((a=n.after)==null?void 0:a.call(n))||""])}}})),St={flex:{type:[Number,String],default:1},width:[Number,String],height:[Number,String],minWidth:[Number,String],minHeight:[Number,String],maxWidth:[Number,String],maxHeight:[Number,String],row:Boolean,column:Boolean},xe=K(f.defineComponent({name:"expended",inheritAttrs:!1,props:St,setup(e,{attrs:t,slots:n}){const o={flex:""},r=[];if(e.flex)switch(e.flex){case"100%":o.flex="unset",o.width="100%";break;case"-":o.flex="unset";break;default:o.flex=e.flex;break}return e.minWidth&&(o.minWidth=D(e.minWidth,"px")),e.minHeight&&(o.minHeight=D(e.minHeight,"px")),e.maxWidth&&(o.maxWidth=D(e.maxWidth,"px")),e.maxHeight&&(o.maxHeight=D(e.maxHeight,"px")),e.width&&(o.width=D(e.width,"px")),e.height&&(o.height=D(e.height,"px")),e.column?r.push("u-flex-nowrap u-box-flex-col"):e.row&&r.push("u-flex-wrap"),()=>{var i;return f.createVNode("div",f.mergeProps({style:o,class:f.mergeProps({class:["comfy-tool--expended",...r]})},t),[((i=n.default)==null?void 0:i.call(n))||""])}}})),Lt={Column:Ee,Row:Oe,Expended:xe};function It(e){e[ve]||(e[ve]=!0,te(Lt).forEach(([t,n])=>{e.component(t,n)}))}function Ae(e){we({app:e}),At(e),It(e)}class Mt{constructor(t,n){this.properties=n,this.component=t,this.container=document.createElement("div");const o=f.createVNode(t,this.properties);v.app&&(o.appContext=v.app._context),f.render(o,this.container),this.instance=o.component,this.appDOM=this.container.firstChild,this.init()}init(){this.properties.teleport?this.properties.teleport:v.rootId,this.appDOM&&!this.appDOM.nodeName.startsWith("#")&&document.body.appendChild(this.appDOM)}static use(t){Object.assign(v,t)}unmount(){this.properties.teleport?this.properties.teleport:v.rootId,document.body.removeChild(this.appDOM),this.instance.unmount()}close(){this.toggle(!1)}toggle(t,n){t?this.instance.open(n):this.instance.close(n)}}const Te={show:!1,keepAlive:!1},$t=f.defineComponent({name:"comfy-tool-layer",components:{},emits:["confirm","close","cancel"],setup(e,{attrs:t,emit:n,slots:o,expose:r}){const i=f.shallowRef(null),l=f.shallowRef(null),a=f.ref(!0);let d;const c=f.shallowReactive(w(w(w({},Te),t),e)),g={onConfirm(){},onClose(){}},p=f.createVNode("div",{style:{height:"150px"}},null);function y(u){c.show=u}function V(){return d=ut(l.value,p,W(w({},c.contentProps),{LAYERSHOW:c.show})),d}function kt(){let u;return!c.keepAlive&&!c.show&&!a.value?u=()=>p:u=o.default?o.default:V,()=>u()}function Ht(){x.cancel()}function j(u){if(d&&d.component){let{ctx:I,exposed:Z}=d.component;Z&&Z[u]?Z[u]():I&&I[u]&&I[u]()}}let U;function X(u){c.show=u,c.show||c.keepAlive?(a.value=!0,U&&clearTimeout(U),U=null):U=setTimeout(()=>{a.value=!1},500),f.nextTick(()=>{c.show&&(j("onLayerShow"),j("queryData"))})}const x={init(u={},I=Te){Y(c,I,u&&$(u,["content","baseContent"])),u.onConfirm&&(g.onConfirm=u.onConfirm),u.onClose&&(g.onClose=u.onClose),u.baseContent&&(i.value=u.baseContent),l.value=u.content},open(u){x.init(u,{}),X(!0)},confirm(u){n("confirm"),X(!!g.onConfirm(u,x.close))},close(u="complete"){g.onClose(u),n("close"),X(!1),j("onClose")},cancel(){x.close("cancel"),n("cancel"),j("onCancel")}};return f.watch(()=>t,u=>{Y(c,{},u)}),r(x),f.provide("Layer",x),()=>{var u;return i.value?f.h(i.value,W(w(w(w({class:["comfy-tool--layer",(u=c.class)!=null?u:""],style:w({},c.style)},t),c.baseContentProps),$(c,["content","contentProps","onClose","width","height","class","style","baseContent","baseContentProps"])),{"onUpdate:show":y,onClose:Ht}),{default:kt(),overlayContent:o.overlayContent}):""}}});var E;class H extends Mt{constructor(t,n){super(t,n)}open(t){return this.appDOM&&document.body.appendChild(this.appDOM),this.instance.exposed.open(t)}static create(t={},n=!0){if(!E||n){let o=new H($t,t);if(n)return o;E||(E=o)}else E.instance.exposed.init(t);return E}}function z(e,t=!1){return new Promise((n,o)=>{H.create({},t).open(w({onConfirm(r,i){n(r)},onClose(r){o(r)}},e))})}z.create=H.create,z.close=()=>{E&&E.close()};const Nt="1.0.4",Pt=Ct,Rt={install(e){e[Ce]||(e[Ce]=!0,Ae(e))}};s.Column=Ee,s.ComfyTool=Pt,s.Expended=xe,s.Layer=z,s.Row=Oe,s.configComfyTool=we,s.default=Rt,s.resourceLoader=vt,s.useComfyTool=Ae,s.version=Nt,Object.defineProperties(s,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
1
|
+
(function(s,f){typeof exports=="object"&&typeof module!="undefined"?f(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],f):(s=typeof globalThis!="undefined"?globalThis:s||self,f(s.ComfyTool={},s.Vue))})(this,function(s,f){"use strict";var Vt=Object.defineProperty,jt=Object.defineProperties;var Ut=Object.getOwnPropertyDescriptors;var _e=Object.getOwnPropertySymbols;var Wt=Object.prototype.hasOwnProperty,Ft=Object.prototype.propertyIsEnumerable;var Q=Math.pow,Se=(s,f,h)=>f in s?Vt(s,f,{enumerable:!0,configurable:!0,writable:!0,value:h}):s[f]=h,b=(s,f)=>{for(var h in f||(f={}))Wt.call(f,h)&&Se(s,h,f[h]);if(_e)for(var h of _e(f))Ft.call(f,h)&&Se(s,h,f[h]);return s},W=(s,f)=>jt(s,Ut(f));var Le=(s,f,h)=>new Promise((A,T)=>{var F=C=>{try{_(h.next(C))}catch(S){T(S)}},N=C=>{try{_(h.throw(C))}catch(S){T(S)}},_=C=>C.done?A(C.value):Promise.resolve(C.value).then(F,N);_((h=h.apply(s,f)).next())});function h(e){try{return decodeURI(e)}catch(t){return console.warn("[Decode Error]",e),e}}function A(e){try{return decodeURIComponent(e)}catch(t){return console.warn("[Decode Error]",e),e}}function T(e){return Array.isArray(e)?e[e.length-1]:e}function F(e,t={}){var o;t.allParam=(o=t.allParam)!=null?o:!0,e=h(h(e));let n=null;if(t.allParam){let r=e.match(/\?([^\?#]*)/g);if(!r)return null;for(const i of r)i.includes("=")&&(n||(n={}),Object.assign(n,q(i.substring(1))))}else{let r=e.match(/\?([^\?]*$)/);if(!r&&!e.includes("="))return null;n=q(r?r[1]:e)}return n&&!t.repeat&&Object.entries(n).forEach(([r,i])=>{n[r]=T(i)}),n}function N(e,t){return decodeURI(Me(e,b({sort:(n,o)=>n>o?0:-1},t)))}function _(e,t){return t?(typeof t!="string"&&(t=N(t)),t?e+(/^([^#]*\?[^#]*$)|(.*#.*\?.*$)/.test(e)?"&":"?")+t:e):e}function C(e){return/^https?:\/\//.test(e)}function S(e){return/^(https?:\/\/|blob:|data:)/.test(e)}function Ie(e){let[t,n]=e.split("//"),[o,r]=n.split("/");return[t+"//",o,r]}function q(e){return e?(e.startsWith("?")&&(e=e.slice(1)),e.split("&").reduce((t,n)=>{if(!n)return t;const[o,r]=n.split("="),i=A(o||""),l=A(r||"");return t[i]!==void 0?(Array.isArray(t[i])||(t[i]=[t[i]]),t[i].push(l)):t[i]=l,t},{})):{}}function Me(e,t={}){if(!e||typeof e!="object")return"";const{sort:n}=t;let o=Object.keys(e);return typeof n=="function"&&o.sort(n),o.map(r=>{const i=e[r];return Array.isArray(i)?i.map(l=>`${encodeURIComponent(r)}=${encodeURIComponent(String(l))}`).join("&"):`${encodeURIComponent(r)}=${encodeURIComponent(String(i))}`}).join("&")}const Y=Object.assign;function ee(e){return Object.keys(e)}function Ne(e){return Object.values(e)}function te(e){return Object.entries(e)}function ne(e,t,n=!1){return t.reduce((o,r)=>((!n||e[r]!==void 0)&&(o[r]=e[r]),o),{})}function L(e,t,n=!1){return Object.keys(e).filter(r=>!t.includes(r)).reduce((r,i)=>((!n||e[i]!==void 0)&&(r[i]=e[i]),r),{})}function P(e){return Object.prototype.toString.call(e).match(/\[object (.+)\]/)[1]}function Pe(e,t){let n=e;if(t){const o=typeof t=="string"?t.split("."):t;for(const r of o)if(n&&typeof n=="object"&&r in n)n=n[r];else return}return n}function $(e,t,{arrayMergeStrategy:n,deepMerge:o}={}){if(!t||Object.keys(t).length===0)return x(e);if(!e||Object.keys(e).length===0)return x(t);let r=x(e);for(const i of Object.keys(t)){let l=e[i],a=t[i];if(o&&P(l)=="Object"&&P(a)=="Object")r[i]=$(l,a);else if(o&&Array.isArray(l)&&Array.isArray(a))switch(n){case"concat":r[i]=[...l,...a];break;case"merge":r[i]=l.map((d,u)=>u<a.length?$({value:d},{value:a[u]}).value:d);break;case"replace":default:r[i]=[...a];break}else r[i]=a}return r}const re=e=>JSON.parse(JSON.stringify(e)),x=function(e){if(e==null||typeof e!="object")return e;if(Array.isArray(e))return e.length?e.map(n=>x(n)):[];if(P(e)==="Object"){var t={};return Object.keys(e).forEach(n=>{t[n]=x(e[n])}),t}return e};function oe(e){return e.replace(/^-(\w)/g,(t,n)=>n.toLocaleUpperCase())}function $e(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase().replace(/^-/,"")}function ie(e,t=2){for(var n=e+"";n.length<t;)n="0"+n;return n}function Re(e,t=2){if(e.length===0||!t)return[];const n=[];let o=[];for(let r=0;r<e.length;r++)o.push(e[r]),o.length===t&&(n.push(o),o=[]);return o.length>0&&n.push(o),n}function ke(e){let t=[];for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push({text:e[n],label:e[n],value:n});return t}function He(e){let t={};return e.forEach(n=>{t[n.value]=n.text}),t}function Ve(e){let t=new FormData;return Object.entries(e).forEach(([n,o])=>{t.append(n,o)}),t}function le(e,t={}){let{labelKey:n,valueKey:o,childrenKey:r,keepEmptyChildren:i}=t;return n=n||"label",o=o||"value",r=r||"children",i=i!==!1,e.map(l=>{const a=W(b({},l),{label:l[n]||l.label||"",value:l[o]||l.value||"",text:l[o]||l.value||""});return l[r]&&Array.isArray(l[r])&&(i||l[r].length)&&(a.children=le(l[r],t)),a})}function je(e,t){if(!t)return e;const n=e.indexOf(t);return n===-1?e:e.filter((o,r)=>r!==n)}function Ue(e,t){if(!t)return;let n=e.indexOf(t);n>=0&&e.splice(n,1)}function We(e){return e.filter(t=>t!=null)}function Fe(e){return e.filter(t=>!!t)}function Ye(e){e.splice(0,e.length)}function Ke(e,t){if(!e||!t||!e.length||!t.length)return!1;var n=t.some(o=>e.includes(o));return n}function Be(e,t=2){return n(e,t);function n(o,r){return r--,o.map(i=>(r<=0?delete i.children:i.children=i.children?n(i.children,r):[],i))}}function Je(e,t=1,n=!0){let o=[...e];return t>=o.length&&n?o:fe(o).slice(0,t)}function fe(e){const t=[...e];for(let n=t.length;--n;){const o=Math.floor(Math.random()*(n+1));[t[n],t[o]]=[t[o],t[n]]}return t}function Ge(e,t){const[n,o,r]=t;let i={};l(e,[]);function l(a,d){a.forEach((u,g)=>{let p=re(d);if(p.push(g),Array.isArray(u))l(u,p);else{let y=u[n]||o&&u[o]||r&&u[r];y&&(i[y]=p)}})}return i}function ae(e){return typeof e=="number"||/^[+-]?\d*(\.\d+)?$/.test(e)}function D(e,t){return typeof e=="number"?e+t:e+(ae(e)?t:"")}function ze(e,t,n=2){return Math.floor(e/t*100*Q(10,n))/Q(10,n)}const ce=["一","二","三","四","五","六","七","八","九","十"],Xe=[["天",...ce.slice(0,6),"天"].map(e=>`星期${e}`),["日",...ce.slice(0,6),"日"].map(e=>`周${e}`)];function ue(e,t){return se(R(e).getDay(),t)}function se(e,t=0){return typeof e=="string"&&(e=parseInt(e)),Xe[t][e]}function m(e,t="YYYY-MM-DD"){(typeof e=="number"||typeof e=="string")&&(e=R(e));const n={"Y+":e.getFullYear(),"M+":e.getMonth()+1,"D+":e.getDate(),"H+":e.getHours(),"m+":e.getMinutes(),"[Ss]+":e.getSeconds()};return Object.keys(n).forEach(o=>{const r=new RegExp(o),i=t.match(r);if(i){const l=n[o],a=ie(l,i[0].length);t=t.replace(r,a)}}),t}function R(e){return e?(typeof e=="string"&&(e=e.replace(/\-/g,"/")),e=new Date(e),e.getTime()?e:new Date):new Date}function Ze(e){let t=new Date,n=t.getDay(),o=t.getDate(),r=new Date,i=new Date,l=new Date,a=new Date,d=new Date,u,g,p=t.getFullYear(),y=t.getMonth();return r=new Date(p,y,o-(n||7)+1),i=new Date(r),i.setDate(r.getDate()-7),l=new Date(i),l.setDate(i.getDate()+6),u=new Date(p,y,1),g=new Date(p,y+1,0),a=new Date(p,y-1,1),d=new Date(p,y,0),e&&(t=m(t),r=m(r),i=m(i),l=m(l),u=m(u),g=m(g),a=m(a),d=m(d)),{today:t,thisWeekFirst:r,lastWeekFirst:i,lastWeekEnd:l,thisMonthFirst:u,thisMonthEnd:g,lastMonthFirst:a,lastMonthEnd:d}}function Qe(e,t,n){typeof e=="string"&&(e=e.replace(/\-/g,"/"));let o=60*1e3,r=60*o,i=24*r,l=new Date(e),a=new Date().getTime()-l.getTime(),d=new Date().toString().slice(0,15)===l.toString().slice(0,15),u=ue(l),g=t?"今天":"",p=Math.floor(a/i),y=Math.floor(a/r),V=Math.floor(a/o);return n=n||7,p>n?m(l,"MM月DD日 HH:mm"):p>2?u+" "+m(l,"HH:mm"):p>1?"前天 "+m(l,"HH:mm"):p>0?"昨天 "+m(l,"HH:mm"):y>=11?(d?g:"昨天 ")+m(l,"HH:mm"):y>=1?d?y+"小时前":"昨天 "+m(l,"HH:mm"):V>=1?V+"分钟前":"刚刚"}function qe(e,t){let n=R(e);return m(n.setDate(n.getDate()+t))}function et(e,t=1e3){let n=null;return function(){let o=this,r=arguments;n&&clearTimeout(n),n=setTimeout(function(){e.apply(o,r)},t)}}function tt(e,t=1e3){let n;return function(){(!n||Date.now()-n>t)&&(e.apply(this,arguments),n=Date.now())}}function nt(e,t=1e3){let n;return function(...o){return Le(this,null,function*(){if(!n||Date.now()-n>t)return n=Date.now(),yield e.apply(this,o)})}}function de(e,t=[]){Array.isArray(e)?e.forEach(n=>{n&&typeof n=="function"&&n.apply(void 0,t)}):e&&typeof e=="function"&&e.apply(void 0,t)}const rt={cacheResult(e){let t=null,n=null;return function(...o){return t&&o&&t===JSON.stringify(o)?n:(t=JSON.stringify(o),n=e.apply(this,o))}}};function he(e){return e?/^\[.*\]$/.test(e):!1}function pe(e){return e?/^\{.*\}$/.test(e):!1}function me(e){return/^\/.+\/[img]{0,3}$/.test(e)}function ot(e){return typeof e=="string"?he(e)?JSON.parse(e||"[]"):[]:e||[]}function it(e){return typeof e=="string"?pe(e)?JSON.parse(e||"{}"):{}:e||{}}function lt(e){if(typeof e=="string"&&me(e)){let t=e.match(/^\/(.+)\/([img]{0,3})$/);return new RegExp(t[1],t[2])}else return new RegExp("")}function ft(e,t="i"){return e=`^${e.replace(/\b|\B/g,".*")}$`,new RegExp(e,t)}function at(e){const t=e.split(";base64,"),n=t[0].split(":")[1],o=window.atob(t[1]),r=o.length,i=new Uint8Array(r);for(let l=0;l<r;l+=1)i[l]=o.charCodeAt(l);return new Blob([i],{type:n})}function K(e){return e.install=t=>{let{name:n}=e;t.component(n,e),t.component(oe("-"+n),e)},e}function ct(e,t=f.h("div"),n){return e?typeof e=="function"?e()||t:f.h(e,n&&f.reactive(n)):t}function ut(e){return!!(e&&e.$el&&e.$props&&e.$options&&e.$emit)}function st(e){let t=ye(e);t&&(t.scrollTop=0)}function ye(e){return document.getElementById(e)}function ge(e){let t=f.unref(e);return ut(t)?t.$el:t instanceof HTMLElement?t:null}function dt(e,t){return getComputedStyle(e).getPropertyValue(t)}function ht(e,t,n=!0){e.classList.remove(...t.split(" ")),n&&e.classList.add(t)}const v={rootId:"app",app:void 0};function pt(e={}){e.rootId&&(v.rootId=e.rootId),e.app&&(v.app=e.app)}const I={toast(e){},alert(e){alert(e)},showLoading(e){},hideLoading(){}};function be(e){let t=ee(v);pt(ne(e,t)),$(I,L(e,t),{deepMerge:!0,arrayMergeStrategy:"concat"})}function mt(){}function yt(e){}function gt(e){B(e)}function B(e){I.toast(e)}function bt(e){I.alert(e)}const k={show(e=""){I.showLoading(e)},hide(){I.hideLoading()}};let J;try{J=document.createElement("a")}catch(e){}function wt(e,t="未获取到联系电话"){if(!e)return B(t);e=typeof e=="number"?e.toString():e,J.href=/^tel:.*/.test(e)?e:"tel:"+e,J.click()}const Ct=Object.freeze(Object.defineProperty({__proto__:null,$:ye,$alert:bt,$loading:k,$refDOM:ge,$toast:B,Fn:rt,addUnit:D,arrayToGroup:Re,base64ToBlob:at,camelize:oe,cloneJSON:re,dateGo:qe,dealTime:Qe,debounce:et,decodeURIComponentSafe:A,decodeURISafe:h,deepClone:x,deleteItemForArr:Ue,emptyArray:Ye,entriesOf:te,errorCatch:gt,extend:Y,formatDate:m,formatSelectedData:Be,formatToSelectData:le,getArrayDataIndex:Ge,getDateConfig:Ze,getElementPropertyValue:dt,getFuzzyMatchRegExp:ft,getPercentage:ze,getProperty:Pe,getRandomElements:Je,getUniqueParam:T,getWeek:ue,getWeekByNo:se,hasSameItem:Ke,isArrayString:he,isFullUrl:S,isNumber:ae,isObjectString:pe,isRegExpString:me,isWebUrl:C,kebabCase:$e,keysOf:ee,merge:$,methodApply:de,noop:mt,noopCatch:yt,padZero:ie,parseArray:ot,parseDate:R,parseObject:it,parseRegExp:lt,parseUrl:Ie,pick:ne,pickEx:L,queryParse:F,queryStringify:N,removeEmptyForArr:We,removeFalseForArr:Fe,removeItemForArr:je,scrollToTop:st,selectDataToObj:He,shuffleArray:fe,telephoneCall:wt,throttle:tt,throttleAsync:nt,toFormData:Ve,toSelectData:ke,toggleClass:ht,typeOf:P,urlAddParams:_,valuesOf:Ne},Symbol.toStringTag,{value:"Module"})),w={};function we(e){return w[e.url]&&w[e.url].status===1?Promise.resolve("The resource is already loaded!"):w[e.url]&&w[e.url].status===2?new Promise((t,n)=>{w[e.url].waiters.push(t)}):e.production?Promise.resolve("Ignored in development environment!"):(k.show("资源加载中"),w[e.url]?w[e.url].status=2:w[e.url]={status:2,waiters:[]},new Promise((t,n)=>{const o=()=>{l(),d()},r=()=>{a(),d()};let i=null;e.type==="js"?(i=document.createElement("script"),i.src=e.url,i.onload=o,i.onerror=r):e.type==="css"&&(i=document.createElement("link"),i.rel="stylesheet",i.href=e.url,i.onload=o,i.onerror=r),i&&document.head.appendChild(i);function l(){w[e.url].status=1,k.hide(),t(e.url),de(w[e.url].waiters,[e.url])}function a(){w[e.url].status=0,k.hide(),n(new Error("Failed to load "+e.url))}function d(){i&&(i.onload=null,i.onerror=null)}}))}function vt(e){return Array.isArray(e)?Promise.all(e.map(t=>we(t))):we(e)}const Ce=Symbol("INSTALLED_KEY"),ve=Symbol("COMPONENT_INSTALLED_KEY"),De=Symbol("DIRECTIVES_INSTALLED_KEY"),Dt={mounted(e,t,n,o){typeof t.value=="function"&&t.value(e)},unmounted(e,t,n,o){typeof t.value=="function"&&t.value(null)}},Et={mounted(e,t,n,o){e.focus()},updated(e,t,n,o){}},xt=function(t,n,o,r){t.style.height=t.parentElement.offsetHeight+"px",t.style.minHeight="100%"};function Ot(e,t,n,o){if(t.value.__used)return;let r=b({},t.value);if(r.behavior=r.behavior||"smooth",typeof r.right=="number"&&(r.left=e.scrollWidth-r.right),typeof r.bottom=="number"&&(r.top=e.scrollHeight-r.bottom),r.target){let i=ge(r.target);if(i){let{offsetTop:l,offsetLeft:a}=i.offsetParent||{offsetTop:0,offsetLeft:0};r.left=i.offsetLeft-e.offsetLeft+a,r.top=i.offsetTop-e.offsetTop+l}}r.left&&typeof r.offsetX=="number"&&(r.left+=r.offsetX),r.top&&typeof r.offsetY=="number"&&(r.top+=r.offsetY),Object.defineProperty(t.value,"__used",{value:!0,enumerable:!1,writable:!0}),r.beforeScroll?r.beforeScroll(()=>{e.scrollTo(r)},r,e):e.scrollTo(r)}const G={dom:Dt,focus:Et,maxHeight:xt,scroll:Ot};function At(e){if(!e[De]){e[De]=!0;for(const t of Object.keys(G))e.directive(G[t].name||t,G[t])}}const Tt={reverse:Boolean},Ee=K(f.defineComponent({name:"column",inheritAttrs:!1,props:Tt,setup(e,{attrs:t,slots:n}){return()=>{var o,r,i,l,a;return f.createVNode("div",f.mergeProps({class:{"comfy-tool--column":!0,reverse:e.reverse}},t),[((o=n.before)==null?void 0:o.call(n))||"",((r=n["before-content"])==null?void 0:r.call(n))||"",f.createVNode("div",{class:"main-content"},[((i=n.default)==null?void 0:i.call(n))||""]),((l=n["after-content"])==null?void 0:l.call(n))||"",((a=n.after)==null?void 0:a.call(n))||""])}}})),_t={reverse:Boolean},xe=K(f.defineComponent({name:"row",inheritAttrs:!1,props:_t,setup(e,{attrs:t,slots:n}){return()=>{var o,r,i,l,a;return f.createVNode("div",f.mergeProps({class:{"comfy-tool--row":!0,reverse:e.reverse}},t),[((o=n.before)==null?void 0:o.call(n))||"",((r=n["before-content"])==null?void 0:r.call(n))||"",f.createVNode("div",{class:"main-content"},[((i=n.default)==null?void 0:i.call(n))||""]),((l=n["after-content"])==null?void 0:l.call(n))||"",((a=n.after)==null?void 0:a.call(n))||""])}}})),St={flex:{type:[Number,String],default:1},width:[Number,String],height:[Number,String],minWidth:[Number,String],minHeight:[Number,String],maxWidth:[Number,String],maxHeight:[Number,String],row:Boolean,column:Boolean},Oe=K(f.defineComponent({name:"expended",inheritAttrs:!1,props:St,setup(e,{attrs:t,slots:n}){const o={flex:""},r=[];if(e.flex)switch(e.flex){case"100%":o.flex="unset",o.width="100%";break;case"-":o.flex="unset";break;default:o.flex=e.flex;break}return e.minWidth&&(o.minWidth=D(e.minWidth,"px")),e.minHeight&&(o.minHeight=D(e.minHeight,"px")),e.maxWidth&&(o.maxWidth=D(e.maxWidth,"px")),e.maxHeight&&(o.maxHeight=D(e.maxHeight,"px")),e.width&&(o.width=D(e.width,"px")),e.height&&(o.height=D(e.height,"px")),e.column?r.push("u-flex-nowrap u-box-flex-col"):e.row&&r.push("u-flex-wrap"),()=>{var i;return f.createVNode("div",f.mergeProps({style:o,class:f.mergeProps({class:["comfy-tool--expended",...r]})},t),[((i=n.default)==null?void 0:i.call(n))||""])}}})),Lt={Column:Ee,Row:xe,Expanded:Oe};function It(e){e[ve]||(e[ve]=!0,te(Lt).forEach(([t,n])=>{e.component(t,n)}))}function Ae(e){be({app:e}),At(e),It(e)}class Mt{constructor(t,n){this.properties=n,this.component=t,this.container=document.createElement("div");const o=f.createVNode(t,this.properties);v.app&&(o.appContext=v.app._context),f.render(o,this.container),this.instance=o.component,this.appDOM=this.container,this.init()}init(){this.mount()}static use(t){Object.assign(v,t)}mount(){if(this.properties.teleport?this.properties.teleport:v.rootId,this.appDOM&&!this.appDOM.isConnected)for(const t of Array.from(this.appDOM.childNodes))document.body.appendChild(t)}unmount(){var t;this.properties.teleport?this.properties.teleport:v.rootId,f.render(null,this.container),(t=this.appDOM.parentNode)==null||t.removeChild(this.appDOM)}close(){this.toggle(!1)}toggle(t,n){if(t){let o=this.instance.open||this.instance.exposed.open;o==null||o(n)}else{let o=this.instance.close||this.instance.exposed.close;o==null||o(n)}}}const Te={show:!1,keepAlive:!1},Nt=f.defineComponent({name:"comfy-tool-layer",inheritAttrs:!1,components:{},props:{baseContent:{type:Object,default:null}},emits:["confirm","close","cancel"],setup(e,{attrs:t,emit:n,slots:o,expose:r}){const i=f.shallowRef(e.baseContent),l=f.shallowRef(null),a=f.ref(!0);let d;const u=f.shallowReactive(b(b(b({},Te),t),e)),g={onConfirm(){},onClose(){}},p=f.createVNode("div",{style:{height:"150px"}},null);function y(c){u.show=c}function V(){return d=ct(l.value,p,W(b({},u.contentProps),{LAYERSHOW:u.show})),d}function kt(){let c;return!u.keepAlive&&!u.show&&!a.value?c=()=>p:c=o.default?o.default:V,()=>c()}function Ht(){O.cancel()}function j(c){if(d&&d.component){let{ctx:M,exposed:Z}=d.component;Z&&Z[c]?Z[c]():M&&M[c]&&M[c]()}}let U;function X(c){u.show=c,u.show||u.keepAlive?(a.value=!0,U&&clearTimeout(U),U=null):U=setTimeout(()=>{a.value=!1},500),f.nextTick(()=>{u.show&&(j("onLayerShow"),j("queryData"))})}const O={init(c={},M=Te){Y(u,M,c&&L(c,["content","baseContent"])),c.onConfirm&&(g.onConfirm=c.onConfirm),c.onClose&&(g.onClose=c.onClose),c.baseContent&&(i.value=c.baseContent),l.value=c.content},open(c){O.init(c,{}),X(!0)},confirm(c){n("confirm"),X(!!g.onConfirm(c,O.close))},close(c="complete"){g.onClose(c),n("close"),X(!1),j("onClose")},cancel(){O.close("cancel"),n("cancel"),j("onCancel")}};return f.watch(()=>t,c=>{Y(u,{},c)}),r(O),f.provide("Layer",O),()=>{var c;return f.createVNode(f.Fragment,null,[i.value?f.h(i.value,W(b(b(b({class:["comfy-tool--layer",(c=u.class)!=null?c:""],style:b({},u.style)},L(t,["content","contentProps","baseContent","baseContentProps"])),u.baseContentProps),L(u,["content","contentProps","onClose","width","height","class","style","baseContent","baseContentProps"])),{"onUpdate:show":y,onClose:Ht}),{default:kt(),overlayContent:o.overlayContent}):""])}}});var E;class H extends Mt{constructor(t,n){super(t,n)}open(t){return super.mount(),this.instance.exposed.open(t)}static create(t={},n=!0){if(!E||n){let o=new H(Nt,t);if(n)return o;E||(E=o)}else E.instance.exposed.init(t);return E}}function z(e,t=!1){return new Promise((n,o)=>{H.create({},t).open(b({onConfirm(r,i){n(r)},onClose(r){o(r)}},e))})}z.create=H.create,z.close=()=>{E&&E.close()};const Pt="1.0.6",$t=Ct,Rt={install(e){e[Ce]||(e[Ce]=!0,Ae(e))}};s.Column=Ee,s.ComfyTool=$t,s.Expanded=Oe,s.Layer=z,s.Row=xe,s.configComfyTool=be,s.default=Rt,s.resourceLoader=vt,s.useComfyTool=Ae,s.version=Pt,Object.defineProperties(s,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|