duoyun-ui 0.0.63 → 0.0.64
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/elements/wait.d.ts +16 -6
- package/elements/wait.d.ts.map +1 -1
- package/elements/wait.js +73 -51
- package/elements/wait.js.map +1 -1
- package/package.json +1 -1
package/elements/wait.d.ts
CHANGED
|
@@ -2,18 +2,28 @@ import { GemElement } from '@mantou/gem/lib/element';
|
|
|
2
2
|
import './loading';
|
|
3
3
|
interface Option {
|
|
4
4
|
minDelay?: number;
|
|
5
|
-
text?: string;
|
|
6
5
|
}
|
|
7
|
-
export declare function waitLoading<T>(promise: Promise<T>,
|
|
6
|
+
export declare function waitLoading<T>(promise: Promise<T>, options?: Option & Partial<State>): Promise<T>;
|
|
7
|
+
export declare const closeLoading: () => Promise<void>;
|
|
8
|
+
export declare const changeLoading: (state: Partial<State>) => void;
|
|
9
|
+
declare type State = {
|
|
10
|
+
text?: string;
|
|
11
|
+
transparent?: boolean;
|
|
12
|
+
position?: 'start' | 'center' | 'end';
|
|
13
|
+
};
|
|
8
14
|
/**
|
|
9
15
|
* @customElement dy-wait
|
|
10
16
|
*/
|
|
11
|
-
export declare class DuoyunWaitElement extends GemElement {
|
|
12
|
-
#private;
|
|
17
|
+
export declare class DuoyunWaitElement extends GemElement<State> {
|
|
13
18
|
static instance?: DuoyunWaitElement;
|
|
14
19
|
static wait: typeof waitLoading;
|
|
15
|
-
|
|
16
|
-
|
|
20
|
+
static close: () => Promise<void>;
|
|
21
|
+
static change: (state: Partial<State>) => void;
|
|
22
|
+
modal: boolean;
|
|
23
|
+
constructor(state: State);
|
|
24
|
+
state: State;
|
|
25
|
+
mounted: () => void;
|
|
26
|
+
unmounted: () => void;
|
|
17
27
|
render: () => import("lit-html/lib/template-result").TemplateResult;
|
|
18
28
|
}
|
|
19
29
|
export {};
|
package/elements/wait.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../src/elements/wait.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAQ,MAAM,yBAAyB,CAAC;AAO3D,OAAO,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../src/elements/wait.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAQ,MAAM,yBAAyB,CAAC;AAO3D,OAAO,WAAW,CAAC;AA2BnB,UAAU,MAAM;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,wBAAsB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CA2B3G;AAED,eAAO,MAAM,YAAY,qBAGxB,CAAC;AAEF,eAAO,MAAM,aAAa,UAAW,QAAQ,KAAK,CAAC,SAElD,CAAC;AAEF,aAAK,KAAK,GAAG;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;CACvC,CAAC;AAEF;;GAEG;AACH,qBAEa,iBAAkB,SAAQ,UAAU,CAAC,KAAK,CAAC;IACtD,MAAM,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IACpC,MAAM,CAAC,IAAI,qBAAe;IAC1B,MAAM,CAAC,KAAK,sBAAgB;IAC5B,MAAM,CAAC,MAAM,kCAAiB;IAEvB,KAAK,EAAE,OAAO,CAAC;gBAEV,KAAK,EAAE,KAAK;IASxB,KAAK,EAAE,KAAK,CAAM;IAElB,OAAO,aAWL;IAEF,SAAS,aAEP;IAEF,MAAM,8DAcJ;CACH"}
|
package/elements/wait.js
CHANGED
|
@@ -4,20 +4,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
8
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
9
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
10
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
|
-
};
|
|
13
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
14
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
15
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
16
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
17
|
-
};
|
|
18
|
-
var _DuoyunWaitElement_text;
|
|
19
7
|
var DuoyunWaitElement_1;
|
|
20
|
-
import { adoptedStyle, customElement } from '@mantou/gem/lib/decorators';
|
|
8
|
+
import { adoptedStyle, customElement, state } from '@mantou/gem/lib/decorators';
|
|
21
9
|
import { GemElement, html } from '@mantou/gem/lib/element';
|
|
22
10
|
import { createCSSSheet, css } from '@mantou/gem/lib/utils';
|
|
23
11
|
import { sleep, setBodyInert } from '../lib/utils';
|
|
@@ -30,72 +18,106 @@ const style = createCSSSheet(css `
|
|
|
30
18
|
position: fixed;
|
|
31
19
|
z-index: ${theme.popupZIndex};
|
|
32
20
|
display: flex;
|
|
33
|
-
width: 100%;
|
|
34
|
-
height: 100%;
|
|
35
21
|
left: 0;
|
|
36
|
-
top: env(titlebar-area-height, var(--titlebar-area-height, 0px));
|
|
22
|
+
--top: env(titlebar-area-height, var(--titlebar-area-height, 0px));
|
|
23
|
+
top: var(--top);
|
|
24
|
+
width: 100%;
|
|
25
|
+
height: calc(100% - var(--top));
|
|
26
|
+
box-sizing: border-box;
|
|
37
27
|
color: white;
|
|
38
|
-
background-color: rgba(0, 0, 0, ${theme.maskAlpha});
|
|
39
28
|
justify-content: center;
|
|
40
|
-
|
|
41
|
-
|
|
29
|
+
pointer-events: none;
|
|
30
|
+
}
|
|
31
|
+
dy-loading {
|
|
32
|
+
padding: 1em;
|
|
33
|
+
}
|
|
34
|
+
:host(:where(:--modal, [data-modal])) {
|
|
35
|
+
pointer-events: all;
|
|
36
|
+
background-color: rgba(0, 0, 0, ${theme.maskAlpha});
|
|
42
37
|
}
|
|
43
38
|
`);
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
sleep(minDelay),
|
|
54
|
-
ele.animate(fadeIn, commonAnimationOptions).finished,
|
|
55
|
-
]);
|
|
56
|
-
return result;
|
|
39
|
+
let totalPromise = Promise.resolve();
|
|
40
|
+
export async function waitLoading(promise, options = {}) {
|
|
41
|
+
const { minDelay = 500 } = options;
|
|
42
|
+
const isLongPromise = Symbol();
|
|
43
|
+
const r = await Promise.any([sleep(16).then(() => isLongPromise), promise]);
|
|
44
|
+
if (r === isLongPromise) {
|
|
45
|
+
let animate = Promise.resolve();
|
|
46
|
+
if (!DuoyunWaitElement.instance) {
|
|
47
|
+
animate = new DuoyunWaitElement(options).animate(fadeIn, commonAnimationOptions).finished;
|
|
57
48
|
}
|
|
58
49
|
else {
|
|
59
|
-
|
|
50
|
+
changeLoading(options);
|
|
60
51
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
52
|
+
const currentPromise = Promise.all([promise, sleep(minDelay), animate]);
|
|
53
|
+
totalPromise = Promise.allSettled([totalPromise, currentPromise]);
|
|
54
|
+
const temp = totalPromise;
|
|
55
|
+
const [result] = await currentPromise;
|
|
56
|
+
// is latest loader
|
|
57
|
+
if (temp === totalPromise) {
|
|
58
|
+
totalPromise.then(() => DuoyunWaitElement.close());
|
|
66
59
|
}
|
|
60
|
+
return result;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
return r;
|
|
67
64
|
}
|
|
68
65
|
}
|
|
66
|
+
export const closeLoading = async () => {
|
|
67
|
+
var _a, _b;
|
|
68
|
+
await ((_a = DuoyunWaitElement.instance) === null || _a === void 0 ? void 0 : _a.animate(fadeOut, commonAnimationOptions).finished);
|
|
69
|
+
(_b = DuoyunWaitElement.instance) === null || _b === void 0 ? void 0 : _b.remove();
|
|
70
|
+
};
|
|
71
|
+
export const changeLoading = (state) => {
|
|
72
|
+
var _a;
|
|
73
|
+
(_a = DuoyunWaitElement.instance) === null || _a === void 0 ? void 0 : _a.setState(state);
|
|
74
|
+
};
|
|
69
75
|
/**
|
|
70
76
|
* @customElement dy-wait
|
|
71
77
|
*/
|
|
72
78
|
let DuoyunWaitElement = DuoyunWaitElement_1 = class DuoyunWaitElement extends GemElement {
|
|
73
|
-
constructor(
|
|
79
|
+
constructor(state) {
|
|
74
80
|
super();
|
|
75
|
-
|
|
81
|
+
this.state = {};
|
|
76
82
|
this.mounted = () => {
|
|
77
|
-
var _a;
|
|
78
|
-
(_a = DuoyunWaitElement_1.instance) === null || _a === void 0 ? void 0 : _a.remove();
|
|
79
83
|
DuoyunWaitElement_1.instance = this;
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
84
|
+
this.effect(() => {
|
|
85
|
+
if (!this.state.transparent) {
|
|
86
|
+
const restoreInert = setBodyInert(this);
|
|
87
|
+
return restoreInert;
|
|
88
|
+
}
|
|
89
|
+
}, () => [this.state.transparent]);
|
|
90
|
+
};
|
|
91
|
+
this.unmounted = () => {
|
|
92
|
+
DuoyunWaitElement_1.instance = undefined;
|
|
85
93
|
};
|
|
86
94
|
this.render = () => {
|
|
87
|
-
|
|
95
|
+
const { text, transparent, position } = this.state;
|
|
96
|
+
this.internals.ariaLabel = text || '';
|
|
97
|
+
this.modal = !transparent;
|
|
98
|
+
return html `
|
|
99
|
+
<style>
|
|
100
|
+
:host {
|
|
101
|
+
align-items: ${this.state.position || 'flex-start'};
|
|
102
|
+
padding-bottom: ${position === 'center' ? '10vh' : 0};
|
|
103
|
+
}
|
|
104
|
+
</style>
|
|
105
|
+
<dy-loading>${this.state.text}</dy-loading>
|
|
106
|
+
`;
|
|
88
107
|
};
|
|
89
|
-
|
|
108
|
+
this.state = state;
|
|
90
109
|
this.internals.role = 'alert';
|
|
91
110
|
this.internals.ariaBusy = 'true';
|
|
92
|
-
this.internals.ariaLabel = __classPrivateFieldGet(this, _DuoyunWaitElement_text, "f");
|
|
93
111
|
document.documentElement.append(this);
|
|
94
112
|
this.addEventListener('contextmenu', (e) => e.preventDefault());
|
|
95
113
|
}
|
|
96
114
|
};
|
|
97
|
-
_DuoyunWaitElement_text = new WeakMap();
|
|
98
115
|
DuoyunWaitElement.wait = waitLoading;
|
|
116
|
+
DuoyunWaitElement.close = closeLoading;
|
|
117
|
+
DuoyunWaitElement.change = changeLoading;
|
|
118
|
+
__decorate([
|
|
119
|
+
state
|
|
120
|
+
], DuoyunWaitElement.prototype, "modal", void 0);
|
|
99
121
|
DuoyunWaitElement = DuoyunWaitElement_1 = __decorate([
|
|
100
122
|
customElement('dy-wait'),
|
|
101
123
|
adoptedStyle(style)
|
package/elements/wait.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait.js","sourceRoot":"","sources":["../src/elements/wait.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wait.js","sourceRoot":"","sources":["../src/elements/wait.ts"],"names":[],"mappings":"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"}
|