@mantou/gem 2.2.1 → 2.2.3
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/dist/gem.es.js +1154 -1154
- package/dist/gem.umd.js +12 -15
- package/elements/base/gesture.d.ts +1 -0
- package/elements/base/gesture.d.ts.map +1 -1
- package/elements/base/gesture.js +3 -2
- package/elements/base/gesture.js.map +1 -1
- package/elements/base/link.d.ts +1 -1
- package/elements/base/link.d.ts.map +1 -1
- package/elements/base/link.js +13 -9
- package/elements/base/link.js.map +1 -1
- package/elements/base/modal-factory.d.ts +73 -48
- package/elements/base/modal-factory.d.ts.map +1 -1
- package/elements/base/modal-factory.js +12 -11
- package/elements/base/modal-factory.js.map +1 -1
- package/elements/base/route.d.ts +1 -1
- package/elements/base/route.d.ts.map +1 -1
- package/elements/base/route.js +11 -15
- package/elements/base/route.js.map +1 -1
- package/elements/base/title.d.ts.map +1 -1
- package/elements/base/title.js +2 -4
- package/elements/base/title.js.map +1 -1
- package/elements/base/unsafe.d.ts +3 -2
- package/elements/base/unsafe.d.ts.map +1 -1
- package/elements/base/unsafe.js +45 -24
- package/elements/base/unsafe.js.map +1 -1
- package/helper/i18n.d.ts.map +1 -1
- package/helper/logger.d.ts.map +1 -1
- package/helper/react-utils.d.ts.map +1 -1
- package/helper/react-utils.js +2 -6
- package/helper/react-utils.js.map +1 -1
- package/helper/request.d.ts +4 -4
- package/helper/request.d.ts.map +1 -1
- package/helper/request.js +14 -14
- package/helper/request.js.map +1 -1
- package/helper/ssr-shim.d.ts.map +1 -1
- package/helper/ssr-shim.js +0 -1
- package/helper/ssr-shim.js.map +1 -1
- package/helper/theme.d.ts +15 -3
- package/helper/theme.d.ts.map +1 -1
- package/helper/theme.js +22 -7
- package/helper/theme.js.map +1 -1
- package/lib/decorators.d.ts +50 -50
- package/lib/decorators.d.ts.map +1 -1
- package/lib/decorators.js +52 -51
- package/lib/decorators.js.map +1 -1
- package/lib/directive.d.ts.map +1 -1
- package/lib/element.d.ts.map +1 -1
- package/lib/element.js.map +1 -1
- package/lib/history.d.ts +1 -1
- package/lib/history.d.ts.map +1 -1
- package/lib/history.js +3 -3
- package/lib/history.js.map +1 -1
- package/lib/lit-html.d.ts +17 -9
- package/lib/lit-html.d.ts.map +1 -1
- package/lib/lit-html.js +6 -9
- package/lib/lit-html.js.map +1 -1
- package/lib/reactive.d.ts +18 -5
- package/lib/reactive.d.ts.map +1 -1
- package/lib/reactive.js +29 -22
- package/lib/reactive.js.map +1 -1
- package/lib/repeat.d.ts.map +1 -1
- package/lib/store.d.ts +2 -2
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +1 -0
- package/lib/store.js.map +1 -1
- package/lib/utils.d.ts +4 -1
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +11 -9
- package/lib/utils.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +2 -2
- package/src/elements/base/gesture.ts +4 -2
- package/src/elements/base/link.ts +3 -3
- package/src/elements/base/modal-factory.ts +12 -11
- package/src/elements/base/route.ts +9 -15
- package/src/elements/base/title.ts +2 -4
- package/src/elements/base/unsafe.ts +33 -14
- package/src/helper/react-utils.ts +4 -12
- package/src/helper/request.ts +17 -17
- package/src/helper/ssr-shim.ts +0 -1
- package/src/helper/theme.ts +25 -10
- package/src/lib/decorators.ts +53 -56
- package/src/lib/element.ts +0 -1
- package/src/lib/history.ts +3 -4
- package/src/lib/lit-html.ts +13 -6
- package/src/lib/reactive.ts +66 -28
- package/src/lib/store.ts +3 -2
- package/src/lib/utils.ts +15 -8
- package/src/lib/version.ts +1 -1
- package/src/test/gem-element/advance.test.ts +1 -1
- package/src/test/gem-element/basic.test.ts +1 -2
- package/src/test/utils.test.ts +1 -1
package/lib/utils.js
CHANGED
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
const { assign, fromEntries, entries, keys } = Object;
|
|
2
|
+
// 用原生 Chrome 找不到调用栈
|
|
3
|
+
function queueMicrotask(cb) {
|
|
4
|
+
Promise.resolve().then(cb);
|
|
5
|
+
}
|
|
2
6
|
const microtaskSet = new Set();
|
|
3
|
-
export function addMicrotask(func,
|
|
7
|
+
export function addMicrotask(func, method = queueMicrotask) {
|
|
4
8
|
if (microtaskSet.has(func))
|
|
5
9
|
return;
|
|
6
|
-
|
|
10
|
+
method(() => {
|
|
7
11
|
microtaskSet.delete(func);
|
|
8
12
|
func();
|
|
9
|
-
};
|
|
10
|
-
if (isNodeForceMicrotask) {
|
|
11
|
-
process.nextTick(next);
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
Promise.resolve().then(next);
|
|
15
|
-
}
|
|
13
|
+
});
|
|
16
14
|
microtaskSet.add(func);
|
|
17
15
|
}
|
|
18
16
|
// 注意 typeof state === 'function' 但是没有 Function 的方法和属性
|
|
@@ -112,6 +110,10 @@ export class LinkedList extends EventTarget {
|
|
|
112
110
|
}
|
|
113
111
|
return deleteItem;
|
|
114
112
|
}
|
|
113
|
+
clear() {
|
|
114
|
+
this.#map.clear();
|
|
115
|
+
this.#firstItem = this.#lastItem = undefined;
|
|
116
|
+
}
|
|
115
117
|
/** 获取头部元素,会从链表删除 */
|
|
116
118
|
get() {
|
|
117
119
|
const firstItem = this.#firstItem;
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/lib/utils.ts"],"names":[],"mappings":"AAAA,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;AAEtD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAc,CAAC;AAC3C,MAAM,UAAU,YAAY,CAAC,IAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/lib/utils.ts"],"names":[],"mappings":"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"}
|
package/lib/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "2.2.
|
|
1
|
+
export declare const version = "2.2.3";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/lib/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '2.2.
|
|
1
|
+
export const version = '2.2.3';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mantou/gem",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.3",
|
|
4
4
|
"description": "💎 使用自定义元素的轻量级 WebApp 开发框架",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"frontend",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"test": "cross-env wtr"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@gemjs/config": "^2.1.
|
|
44
|
+
"@gemjs/config": "^2.1.3",
|
|
45
45
|
"@types/chai": "^5.0.0",
|
|
46
46
|
"@types/mocha": "^10.0.7",
|
|
47
47
|
"@types/trusted-types": "^2.0.7",
|
|
@@ -11,6 +11,7 @@ export type PanEventDetail = {
|
|
|
11
11
|
timeStamp: number;
|
|
12
12
|
isPrimary: boolean;
|
|
13
13
|
pointerId: number;
|
|
14
|
+
pressed: boolean;
|
|
14
15
|
};
|
|
15
16
|
export interface SwipeEventDetail {
|
|
16
17
|
direction: 'top' | 'right' | 'bottom' | 'left';
|
|
@@ -46,7 +47,7 @@ function angleAB(
|
|
|
46
47
|
|
|
47
48
|
const style = css`
|
|
48
49
|
@layer {
|
|
49
|
-
|
|
50
|
+
&:where(:not([hidden])) {
|
|
50
51
|
display: block;
|
|
51
52
|
user-select: none;
|
|
52
53
|
touch-action: attr(touch-action, none);
|
|
@@ -143,7 +144,7 @@ export class GemGestureElement extends GemElement {
|
|
|
143
144
|
|
|
144
145
|
#onMove = (evt: PointerEvent) => {
|
|
145
146
|
const { pointerId, clientX, clientY, isPrimary, pointerType, timeStamp } = evt;
|
|
146
|
-
if (
|
|
147
|
+
if (this.hasPointerCapture(pointerId)) {
|
|
147
148
|
const moves = this.#getMoves(pointerId);
|
|
148
149
|
const startEvent = this.#getStartEvent(pointerId);
|
|
149
150
|
const lastMove = moves[moves.length - 1] || startEvent;
|
|
@@ -161,6 +162,7 @@ export class GemGestureElement extends GemElement {
|
|
|
161
162
|
timeStamp,
|
|
162
163
|
isPrimary,
|
|
163
164
|
pointerId,
|
|
165
|
+
pressed: this.#pressed,
|
|
164
166
|
};
|
|
165
167
|
moves.push(move);
|
|
166
168
|
this.pan(move);
|
|
@@ -46,6 +46,8 @@ const styles = css`
|
|
|
46
46
|
@shadow()
|
|
47
47
|
@aria({ focusable: true })
|
|
48
48
|
export class GemLinkElement extends GemElement {
|
|
49
|
+
@part static link: string;
|
|
50
|
+
|
|
49
51
|
@attribute href: string;
|
|
50
52
|
@attribute target: string;
|
|
51
53
|
@attribute path: string;
|
|
@@ -62,8 +64,6 @@ export class GemLinkElement extends GemElement {
|
|
|
62
64
|
@property routeOptions?: RouteOptions;
|
|
63
65
|
@property prepare?: () => void | Promise<void>;
|
|
64
66
|
|
|
65
|
-
@part link: string;
|
|
66
|
-
|
|
67
67
|
get #routeOptions() {
|
|
68
68
|
return this.routeOptions || this.options;
|
|
69
69
|
}
|
|
@@ -146,7 +146,7 @@ export class GemLinkElement extends GemElement {
|
|
|
146
146
|
@template()
|
|
147
147
|
#content = () => {
|
|
148
148
|
const href = this.#hint === 'off' ? null : this.#getHint();
|
|
149
|
-
return html`<a part=${
|
|
149
|
+
return html`<a part=${GemLinkElement.link} href=${href} tabindex="-1"><slot></slot></a>`;
|
|
150
150
|
};
|
|
151
151
|
|
|
152
152
|
/**
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** biome-ignore-all lint/complexity/noThisInStatic: base class */
|
|
1
2
|
import { aria, mounted, shadow } from '../../lib/decorators';
|
|
2
3
|
import { history } from '../../lib/history';
|
|
3
4
|
import { GemElement } from '../../lib/reactive';
|
|
@@ -32,7 +33,7 @@ export function createModalClass<T extends Record<string, unknown>>(options: T)
|
|
|
32
33
|
|
|
33
34
|
/**@final */
|
|
34
35
|
static get isOpen() {
|
|
35
|
-
return
|
|
36
|
+
return this.store[open];
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
/**
|
|
@@ -41,19 +42,19 @@ export function createModalClass<T extends Record<string, unknown>>(options: T)
|
|
|
41
42
|
* 浏览器 history 为异步 API,需要设置较长延迟;
|
|
42
43
|
*/
|
|
43
44
|
static open(opts: T) {
|
|
44
|
-
const instance = new
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
const instance = new this();
|
|
46
|
+
this.instance = instance;
|
|
47
|
+
this.inertStore = ([...document.body.children] as HTMLElement[]).filter((e) => !e.inert);
|
|
48
|
+
this.inertStore.forEach((e) => (e.inert = true));
|
|
48
49
|
document.body.append(instance);
|
|
49
|
-
const changeStore = () =>
|
|
50
|
+
const changeStore = () => this.store({ [open]: true, ...opts });
|
|
50
51
|
setTimeout(() => {
|
|
51
52
|
changeStore();
|
|
52
53
|
history.push({
|
|
53
54
|
title: instance.label,
|
|
54
55
|
open: changeStore,
|
|
55
|
-
close:
|
|
56
|
-
shouldClose:
|
|
56
|
+
close: this.closeHandle.bind(this),
|
|
57
|
+
shouldClose: this.shouldClose.bind(this),
|
|
57
58
|
});
|
|
58
59
|
}, 100);
|
|
59
60
|
return final;
|
|
@@ -73,9 +74,9 @@ export function createModalClass<T extends Record<string, unknown>>(options: T)
|
|
|
73
74
|
* history 中自动调用
|
|
74
75
|
*/
|
|
75
76
|
static closeHandle() {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
this.inertStore.forEach((e) => (e.inert = false));
|
|
78
|
+
this.instance?.remove();
|
|
79
|
+
this.store({ [open]: false, ...options });
|
|
79
80
|
return final;
|
|
80
81
|
}
|
|
81
82
|
|
|
@@ -32,7 +32,6 @@ type Params = Record<string, string>;
|
|
|
32
32
|
declare global {
|
|
33
33
|
// https://bugzilla.mozilla.org/show_bug.cgi?id=1731418
|
|
34
34
|
// https://github.com/WebKit/standards-positions/issues/61
|
|
35
|
-
// eslint-disable-next-line no-var
|
|
36
35
|
var URLPattern: any;
|
|
37
36
|
}
|
|
38
37
|
|
|
@@ -216,7 +215,7 @@ export class GemLightRouteElement extends GemElement {
|
|
|
216
215
|
}
|
|
217
216
|
};
|
|
218
217
|
|
|
219
|
-
#lastLoader?: Promise<TemplateResult | undefined>;
|
|
218
|
+
#lastLoader?: TemplateResult | Promise<TemplateResult | undefined>;
|
|
220
219
|
#setContent = (route: RouteItem | null, params: Params, content?: TemplateResult) => {
|
|
221
220
|
this.beforeroutechange(route);
|
|
222
221
|
this.#lastLoader = undefined;
|
|
@@ -279,7 +278,7 @@ export class GemLightRouteElement extends GemElement {
|
|
|
279
278
|
};
|
|
280
279
|
|
|
281
280
|
// 重写 `update`,并暴露为公共字段
|
|
282
|
-
update = () => {
|
|
281
|
+
update = async () => {
|
|
283
282
|
const { path, hash, query } = this.trigger.getParams();
|
|
284
283
|
const { route, params = {} } = GemRouteElement.findRoute(this.routes, path);
|
|
285
284
|
const { redirect, content, getContent } = route || {};
|
|
@@ -299,19 +298,14 @@ export class GemLightRouteElement extends GemElement {
|
|
|
299
298
|
}
|
|
300
299
|
const contentOrLoader = content || getContent?.(params, this.shadowRoot || this);
|
|
301
300
|
this.loading(route);
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
contentOrLoader
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
.catch((err) => {
|
|
310
|
-
if (isSomeLoader()) this.error(err);
|
|
311
|
-
});
|
|
312
|
-
return;
|
|
301
|
+
this.#lastLoader = contentOrLoader;
|
|
302
|
+
const isSomeLoader = () => this.#lastLoader === contentOrLoader;
|
|
303
|
+
try {
|
|
304
|
+
const newContent = await contentOrLoader;
|
|
305
|
+
if (isSomeLoader()) this.#setContent(route, params, newContent);
|
|
306
|
+
} catch (err) {
|
|
307
|
+
if (isSomeLoader()) this.error(err);
|
|
313
308
|
}
|
|
314
|
-
this.#setContent(route, params, contentOrLoader);
|
|
315
309
|
};
|
|
316
310
|
}
|
|
317
311
|
|
|
@@ -27,11 +27,9 @@ const setTitle = (documentTitle: string) => {
|
|
|
27
27
|
function setDocumentTitle(defaultTitle?: string | null, prefix = '', suffix = '') {
|
|
28
28
|
const title = titleStore.title || defaultTitle;
|
|
29
29
|
if (title && title !== titleStore.defaultTitle) {
|
|
30
|
-
GemTitleElement.title = title;
|
|
31
|
-
setTitle(prefix + GemTitleElement.title + suffix);
|
|
30
|
+
setTitle(prefix + (GemTitleElement.title = title) + suffix);
|
|
32
31
|
} else {
|
|
33
|
-
GemTitleElement.title = titleStore.defaultTitle;
|
|
34
|
-
setTitle(GemTitleElement.title);
|
|
32
|
+
setTitle((GemTitleElement.title = titleStore.defaultTitle));
|
|
35
33
|
}
|
|
36
34
|
}
|
|
37
35
|
|
|
@@ -1,23 +1,42 @@
|
|
|
1
|
-
import { attribute, shadow, template } from '../../lib/decorators';
|
|
2
|
-
import {
|
|
1
|
+
import { adoptedStyle, attribute, effect, property, shadow, template } from '../../lib/decorators';
|
|
2
|
+
import type { Sheet } from '../../lib/reactive';
|
|
3
|
+
import { css, GemElement, SheetToken } from '../../lib/reactive';
|
|
4
|
+
|
|
5
|
+
const style = css`
|
|
6
|
+
:host(:where(:not([hidden]))) {
|
|
7
|
+
display: contents;
|
|
8
|
+
}
|
|
9
|
+
`;
|
|
3
10
|
|
|
4
11
|
@shadow()
|
|
12
|
+
@adoptedStyle(style)
|
|
5
13
|
export class GemUnsafeElement extends GemElement {
|
|
6
|
-
@attribute
|
|
7
|
-
@
|
|
14
|
+
@attribute html: string;
|
|
15
|
+
@property styles?: string | Sheet<any> | Sheet<any>[];
|
|
16
|
+
|
|
17
|
+
get #sheets() {
|
|
18
|
+
if (!this.styles) return [];
|
|
19
|
+
if (typeof this.styles === 'string') {
|
|
20
|
+
const sheet = new CSSStyleSheet();
|
|
21
|
+
sheet.replaceSync(this.styles);
|
|
22
|
+
return [sheet];
|
|
23
|
+
} else {
|
|
24
|
+
return [this.styles].flat().map((e) => e[SheetToken].getStyle());
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@effect()
|
|
29
|
+
#adoptStyles = () => {
|
|
30
|
+
const sheets = this.shadowRoot!.adoptedStyleSheets;
|
|
31
|
+
this.shadowRoot!.adoptedStyleSheets = sheets.concat(this.#sheets);
|
|
32
|
+
return () => {
|
|
33
|
+
this.shadowRoot!.adoptedStyleSheets = sheets;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
8
36
|
|
|
9
37
|
@template()
|
|
10
38
|
#content = () => {
|
|
11
|
-
|
|
12
|
-
<style>
|
|
13
|
-
:host(:where(:not([hidden]))) {
|
|
14
|
-
display: contents;
|
|
15
|
-
}
|
|
16
|
-
${this.contentcss}
|
|
17
|
-
</style>
|
|
18
|
-
`;
|
|
19
|
-
|
|
20
|
-
this.shadowRoot!.innerHTML = this.content + style.trim();
|
|
39
|
+
this.shadowRoot!.innerHTML = this.html;
|
|
21
40
|
|
|
22
41
|
// 不要更新内容
|
|
23
42
|
return undefined;
|
|
@@ -1,18 +1,10 @@
|
|
|
1
|
-
//
|
|
2
|
-
// @ts-ignore
|
|
3
|
-
// eslint-disable-next-line import/no-unresolved, import/no-extraneous-dependencies
|
|
1
|
+
// @ts-expect-error
|
|
4
2
|
import type { ReactNode } from 'react';
|
|
5
|
-
//
|
|
6
|
-
// @ts-ignore
|
|
7
|
-
// eslint-disable-next-line import/no-unresolved, import/no-extraneous-dependencies
|
|
3
|
+
// @ts-expect-error
|
|
8
4
|
import { useEffect, useRef, useState } from 'react';
|
|
9
|
-
//
|
|
10
|
-
// @ts-ignore
|
|
11
|
-
// eslint-disable-next-line import/no-unresolved, import/no-extraneous-dependencies
|
|
5
|
+
// @ts-expect-error
|
|
12
6
|
import type { Root } from 'react-dom/client';
|
|
13
|
-
//
|
|
14
|
-
// @ts-ignore
|
|
15
|
-
// eslint-disable-next-line import/no-unresolved, import/no-extraneous-dependencies
|
|
7
|
+
// @ts-expect-error
|
|
16
8
|
import { createRoot } from 'react-dom/client';
|
|
17
9
|
|
|
18
10
|
import type { Store } from '../lib/store';
|
package/src/helper/request.ts
CHANGED
|
@@ -8,9 +8,9 @@ type Options = {
|
|
|
8
8
|
origin?: string;
|
|
9
9
|
base?: string;
|
|
10
10
|
// only for get/del/put/post
|
|
11
|
-
appendHeaders?: (input?: any) => HeadersInit
|
|
12
|
-
transformInput?: (input?: any) => any
|
|
13
|
-
transformOutput?: (output: any, req: Request) => any
|
|
11
|
+
appendHeaders?: (input?: any) => HeadersInit | Promise<HeadersInit>;
|
|
12
|
+
transformInput?: (input?: any) => any | Promise<any>;
|
|
13
|
+
transformOutput?: (output: any, req: Request) => any | Promise<any>;
|
|
14
14
|
} & RequestInit;
|
|
15
15
|
|
|
16
16
|
function initRequest(options: Options = {}) {
|
|
@@ -83,7 +83,7 @@ function initRequest(options: Options = {}) {
|
|
|
83
83
|
data = await res.text();
|
|
84
84
|
}
|
|
85
85
|
if (isClientError) throw new (Error as any)(res.statusText, { cause: data });
|
|
86
|
-
return transformOutput(data, req);
|
|
86
|
+
return await transformOutput(data, req);
|
|
87
87
|
} catch {
|
|
88
88
|
throw new Error('Parse error');
|
|
89
89
|
}
|
|
@@ -91,33 +91,33 @@ function initRequest(options: Options = {}) {
|
|
|
91
91
|
|
|
92
92
|
return {
|
|
93
93
|
request,
|
|
94
|
-
get<T>(path: string, params?: ReqParams) {
|
|
95
|
-
const i = transformInput(params);
|
|
94
|
+
async get<T>(path: string, params?: ReqParams) {
|
|
95
|
+
const i = await transformInput(params);
|
|
96
96
|
return request<T>(serializationUrl(path, i), {
|
|
97
97
|
method: 'GET',
|
|
98
|
-
headers: appendHeaders(i),
|
|
98
|
+
headers: await appendHeaders(i),
|
|
99
99
|
});
|
|
100
100
|
},
|
|
101
|
-
del<T>(path: string, params?: ReqParams) {
|
|
102
|
-
const i = transformInput(params);
|
|
101
|
+
async del<T>(path: string, params?: ReqParams) {
|
|
102
|
+
const i = await transformInput(params);
|
|
103
103
|
return request<T>(serializationUrl(path, i), {
|
|
104
104
|
method: 'DELETE',
|
|
105
|
-
headers: appendHeaders(i),
|
|
105
|
+
headers: await appendHeaders(i),
|
|
106
106
|
});
|
|
107
107
|
},
|
|
108
|
-
put<T>(path: string, body?: ReqBody) {
|
|
109
|
-
const i = transformInput(body);
|
|
108
|
+
async put<T>(path: string, body?: ReqBody) {
|
|
109
|
+
const i = await transformInput(body);
|
|
110
110
|
return request<T>(serializationUrl(path), {
|
|
111
111
|
method: 'PUT',
|
|
112
|
-
headers: appendHeaders(i),
|
|
112
|
+
headers: await appendHeaders(i),
|
|
113
113
|
body: serializationBody(i),
|
|
114
114
|
});
|
|
115
115
|
},
|
|
116
|
-
post<T>(path: string, body?: ReqBody) {
|
|
117
|
-
const i = transformInput(body);
|
|
116
|
+
async post<T>(path: string, body?: ReqBody) {
|
|
117
|
+
const i = await transformInput(body);
|
|
118
118
|
return request<T>(serializationUrl(path), {
|
|
119
119
|
method: 'POST',
|
|
120
|
-
headers: appendHeaders(i),
|
|
120
|
+
headers: await appendHeaders(i),
|
|
121
121
|
body: serializationBody(i),
|
|
122
122
|
});
|
|
123
123
|
},
|
|
@@ -126,4 +126,4 @@ function initRequest(options: Options = {}) {
|
|
|
126
126
|
|
|
127
127
|
const { request, del, get, post, put } = initRequest();
|
|
128
128
|
|
|
129
|
-
export {
|
|
129
|
+
export { del, get, initRequest, post, put, request };
|
package/src/helper/ssr-shim.ts
CHANGED
package/src/helper/theme.ts
CHANGED
|
@@ -2,9 +2,10 @@ import type { GemElement, Sheet } from '../lib/reactive';
|
|
|
2
2
|
import { css, SheetToken } from '../lib/reactive';
|
|
3
3
|
import type { Store } from '../lib/store';
|
|
4
4
|
import { connect, createStore } from '../lib/store';
|
|
5
|
+
import type { Updater } from '../lib/utils';
|
|
5
6
|
import { camelToKebabCase, createUpdater, randomStr } from '../lib/utils';
|
|
6
7
|
|
|
7
|
-
export type Theme<T> =
|
|
8
|
+
export type Theme<T> = Updater<T> &
|
|
8
9
|
Sheet<unknown> & {
|
|
9
10
|
[K in keyof T as K extends `${string}Color`
|
|
10
11
|
? `${string & K}${'' | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900}`
|
|
@@ -52,7 +53,7 @@ function createThemeFromProps<T extends Record<string, unknown>>(themeObj: T, pr
|
|
|
52
53
|
}
|
|
53
54
|
rules += `${props[key]}:${store[key]};`;
|
|
54
55
|
});
|
|
55
|
-
styleSheet.setContent(
|
|
56
|
+
styleSheet.setContent(`&,:host{${rules}}`);
|
|
56
57
|
};
|
|
57
58
|
updateContent();
|
|
58
59
|
connect(store, () => {
|
|
@@ -81,19 +82,33 @@ export function createOverrideTheme<T extends Record<string, unknown>>(theme: Th
|
|
|
81
82
|
return createThemeFromProps(themeObj, getThemeProps(theme));
|
|
82
83
|
}
|
|
83
84
|
|
|
85
|
+
/**
|
|
86
|
+
* 返回一个主题对象,但同时又是一个装饰器函数,用来装饰一个主题更新函数
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```ts
|
|
90
|
+
* const elementTheme = createDecoratorTheme({ color: '' });
|
|
91
|
+
* class MyElement {
|
|
92
|
+
* @elementTheme()
|
|
93
|
+
* #theme = () => ({ color: this.color });
|
|
94
|
+
* }
|
|
95
|
+
* ```
|
|
96
|
+
* */
|
|
84
97
|
export function createDecoratorTheme<T extends Record<string, unknown>>(themeObj: T) {
|
|
85
|
-
const themeAsKeys = createThemeFromProps
|
|
98
|
+
const themeAsKeys = createThemeFromProps(themeObj);
|
|
86
99
|
const props = getThemeProps(themeAsKeys);
|
|
87
|
-
const update =
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
(_: any, { addInitializer, access }:
|
|
100
|
+
const update = <E extends GemElement, V extends () => T, K = any[] | undefined>(
|
|
101
|
+
getDep?: K extends readonly any[] ? (instance: E) => K : undefined,
|
|
102
|
+
) => {
|
|
103
|
+
type Ctx = ClassFieldDecoratorContext<E, V> | ClassMethodDecoratorContext<E, V>;
|
|
104
|
+
return (_: any, { addInitializer, access }: Ctx) => {
|
|
92
105
|
addInitializer(function (this: E) {
|
|
93
106
|
const theme = createThemeFromProps({ ...themeObj }, props);
|
|
94
|
-
this.internals.sheets.push(theme[SheetToken].getStyle(this));
|
|
107
|
+
this.internals.sheets.push(theme[SheetToken].getStyle(this, true));
|
|
95
108
|
this.memo(() => theme(access.get(this).apply(this)), getDep && (() => getDep(this) as any));
|
|
96
109
|
});
|
|
97
110
|
};
|
|
98
|
-
|
|
111
|
+
};
|
|
112
|
+
// 不知道为什么 `as` 能解决外部 `SheetToken` 不能命名的问题
|
|
113
|
+
return createUpdater(themeAsKeys, update) as Updater<Theme<T>, typeof update>;
|
|
99
114
|
}
|