@mantou/gem 1.7.12 → 2.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +1 -1
- package/dist/gem.es.js +2010 -1765
- package/dist/gem.umd.js +52 -53
- package/elements/base/dialog.d.ts +0 -11
- package/elements/base/dialog.d.ts.map +1 -1
- package/elements/base/dialog.js +93 -66
- package/elements/base/dialog.js.map +1 -1
- package/elements/base/gesture.d.ts +1 -2
- package/elements/base/gesture.d.ts.map +1 -1
- package/elements/base/gesture.js +157 -96
- package/elements/base/gesture.js.map +1 -1
- package/elements/base/link.d.ts +5 -5
- package/elements/base/link.d.ts.map +1 -1
- package/elements/base/link.js +249 -145
- package/elements/base/link.js.map +1 -1
- package/elements/base/modal-factory.d.ts +145 -139
- package/elements/base/modal-factory.d.ts.map +1 -1
- package/elements/base/modal-factory.js +84 -25
- package/elements/base/modal-factory.js.map +1 -1
- package/elements/base/reflect.d.ts +0 -1
- package/elements/base/reflect.d.ts.map +1 -1
- package/elements/base/reflect.js +83 -38
- package/elements/base/reflect.js.map +1 -1
- package/elements/base/route.d.ts +12 -24
- package/elements/base/route.d.ts.map +1 -1
- package/elements/base/route.js +263 -164
- package/elements/base/route.js.map +1 -1
- package/elements/base/title.d.ts +3 -11
- package/elements/base/title.d.ts.map +1 -1
- package/elements/base/title.js +110 -59
- package/elements/base/title.js.map +1 -1
- package/elements/base/unsafe.d.ts +0 -1
- package/elements/base/unsafe.d.ts.map +1 -1
- package/elements/base/unsafe.js +82 -33
- package/elements/base/unsafe.js.map +1 -1
- package/elements/base/use.d.ts.map +1 -1
- package/elements/base/use.js +95 -47
- package/elements/base/use.js.map +1 -1
- package/helper/i18n.d.ts +4 -9
- package/helper/i18n.d.ts.map +1 -1
- package/helper/i18n.js +69 -65
- package/helper/i18n.js.map +1 -1
- package/helper/logger.js +10 -9
- package/helper/logger.js.map +1 -1
- package/helper/react-shim.d.ts +15 -0
- package/helper/react-shim.d.ts.map +1 -0
- package/helper/react-shim.js +56 -0
- package/helper/react-shim.js.map +1 -0
- package/helper/react-utils.d.ts +15 -0
- package/helper/react-utils.d.ts.map +1 -0
- package/helper/react-utils.js +50 -0
- package/helper/react-utils.js.map +1 -0
- package/helper/request.d.ts +4 -4
- package/helper/request.d.ts.map +1 -1
- package/helper/request.js +1 -1
- package/helper/request.js.map +1 -1
- package/helper/ssr-shim.d.ts.map +1 -1
- package/helper/ssr-shim.js +8 -1
- package/helper/ssr-shim.js.map +1 -1
- package/helper/theme.d.ts +14 -21
- package/helper/theme.d.ts.map +1 -1
- package/helper/theme.js +55 -38
- package/helper/theme.js.map +1 -1
- package/index.d.ts +4 -3
- package/index.d.ts.map +1 -1
- package/index.js +5 -3
- package/index.js.map +1 -1
- package/lib/decorators.d.ts +74 -42
- package/lib/decorators.d.ts.map +1 -1
- package/lib/decorators.js +324 -84
- package/lib/decorators.js.map +1 -1
- package/lib/directives.d.ts +4 -0
- package/lib/directives.d.ts.map +1 -0
- package/lib/directives.js +5 -0
- package/lib/directives.js.map +1 -0
- package/lib/element.d.ts +112 -110
- package/lib/element.d.ts.map +1 -1
- package/lib/element.js +431 -468
- package/lib/element.js.map +1 -1
- package/lib/history.d.ts +4 -0
- package/lib/history.d.ts.map +1 -1
- package/lib/history.js +12 -13
- package/lib/history.js.map +1 -1
- package/lib/store.d.ts +1 -1
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +4 -5
- package/lib/store.js.map +1 -1
- package/lib/utils.d.ts +3 -43
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +61 -235
- package/lib/utils.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.d.ts.map +1 -1
- package/lib/version.js +2 -1
- package/lib/version.js.map +1 -1
- package/package.json +13 -11
- package/src/dist.ts +3 -2
- package/src/elements/base/dialog.ts +10 -20
- package/src/elements/base/gesture.ts +16 -14
- package/src/elements/base/link.ts +65 -44
- package/src/elements/base/modal-factory.ts +14 -14
- package/src/elements/base/reflect.ts +24 -32
- package/src/elements/base/route.ts +55 -68
- package/src/elements/base/title.ts +25 -42
- package/src/elements/base/unsafe.ts +12 -21
- package/src/elements/base/use.ts +17 -13
- package/src/helper/i18n.ts +20 -14
- package/src/helper/react-utils.ts +66 -0
- package/src/helper/ssr-shim.ts +8 -1
- package/src/helper/theme.ts +72 -45
- package/src/index.ts +6 -4
- package/src/lib/decorators.ts +394 -93
- package/src/lib/directives.ts +6 -0
- package/src/lib/element.ts +473 -500
- package/src/lib/history.ts +4 -3
- package/src/lib/store.ts +2 -1
- package/src/lib/utils.ts +12 -191
- package/src/lib/version.ts +2 -1
- package/src/test/elements/link.test.ts +1 -1
- package/src/test/elements/title.test.ts +1 -0
- package/src/test/gem-element/advance.test.ts +72 -49
- package/src/test/gem-element/basic.test.ts +37 -50
- package/src/test/gem-element/decorators.test.ts +22 -21
- package/src/test/gem-element/multi.test.ts +5 -5
- package/src/test/utils.test.ts +15 -45
package/helper/theme.js
CHANGED
|
@@ -1,59 +1,76 @@
|
|
|
1
|
-
import { connect,
|
|
1
|
+
import { connect, useStore } from '../lib/store';
|
|
2
2
|
import { camelToKebabCase, randomStr } from '../lib/utils';
|
|
3
|
+
import { SheetToken, createCSSSheet } from '../lib/element';
|
|
3
4
|
const themeStoreMap = new WeakMap();
|
|
5
|
+
const themePropsMap = new WeakMap();
|
|
4
6
|
/**获取主题原始值 */
|
|
5
7
|
export function getThemeStore(theme) {
|
|
6
8
|
return themeStoreMap.get(theme);
|
|
7
9
|
}
|
|
8
|
-
const themePropsMap = new WeakMap();
|
|
9
10
|
/**获取 css 变量名 */
|
|
10
11
|
export function getThemeProps(theme) {
|
|
11
12
|
return themePropsMap.get(theme);
|
|
12
13
|
}
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* 创建主题,插入 `document.head`
|
|
16
|
-
* https://github.com/mantou132/gem/issues/33
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* createTheme({
|
|
20
|
-
* primaryColor: '#eee',
|
|
21
|
-
* });
|
|
22
|
-
*/
|
|
23
|
-
export function createTheme(themeObj) {
|
|
14
|
+
function useThemeFromProps(themeObj, props = {}) {
|
|
24
15
|
const salt = randomStr();
|
|
25
|
-
const
|
|
26
|
-
const store =
|
|
27
|
-
const theme = {}
|
|
28
|
-
|
|
16
|
+
const styleSheet = createCSSSheet({})[SheetToken];
|
|
17
|
+
const [store, updateStore] = useStore(themeObj);
|
|
18
|
+
const theme = new Proxy({ [SheetToken]: styleSheet }, {
|
|
19
|
+
get(target, key) {
|
|
20
|
+
if (!target[key]) {
|
|
21
|
+
const [_, origin, weight] = key.match(/^(\w*Color)(\d+)$/) || [];
|
|
22
|
+
if (origin)
|
|
23
|
+
target[key] = `oklch(from ${target[origin]} calc(l - ${(Number(weight) - 400) / 1000}) c h)`;
|
|
24
|
+
}
|
|
25
|
+
return target[key];
|
|
26
|
+
},
|
|
27
|
+
});
|
|
29
28
|
themePropsMap.set(theme, props);
|
|
30
29
|
themeStoreMap.set(theme, store);
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
const updateContent = () => {
|
|
31
|
+
let rules = '';
|
|
32
|
+
Object.keys(store).forEach((key) => {
|
|
33
|
+
if (!props[key]) {
|
|
34
|
+
props[key] = `--${camelToKebabCase(key)}-${salt}`;
|
|
35
|
+
theme[key] = `var(${props[key]})`;
|
|
36
|
+
}
|
|
37
|
+
rules += `${props[key]}:${store[key]};`;
|
|
38
|
+
});
|
|
39
|
+
styleSheet.setContent(`:scope,:host{${rules}}`);
|
|
40
|
+
};
|
|
41
|
+
updateContent();
|
|
42
|
+
connect(store, () => {
|
|
43
|
+
updateContent();
|
|
44
|
+
styleSheet.updateStyle();
|
|
36
45
|
});
|
|
37
|
-
|
|
38
|
-
setTheme();
|
|
39
|
-
const getStyle = () => `:root, :host {${Object.keys(store).reduce((prev, key) => prev + `${props[key]}:${store[key]};`, '')}}`;
|
|
40
|
-
const replace = () => (style.textContent = getStyle());
|
|
41
|
-
connect(store, replace);
|
|
42
|
-
replace();
|
|
43
|
-
(document.head || document.documentElement).append(style);
|
|
44
|
-
return theme;
|
|
46
|
+
return [theme, updateStore];
|
|
45
47
|
}
|
|
46
48
|
/**
|
|
47
|
-
*
|
|
48
|
-
* @param theme 主题
|
|
49
|
-
* @param newThemeObj 新主题
|
|
49
|
+
* 用于 `@adoptedStyle(theme)`,类似 `createCSSSheet`
|
|
50
50
|
*/
|
|
51
|
-
export function
|
|
52
|
-
|
|
53
|
-
setThemeFnMap.get(theme)();
|
|
51
|
+
export function useScopedTheme(themeObj) {
|
|
52
|
+
return useThemeFromProps(themeObj);
|
|
54
53
|
}
|
|
54
|
+
/**全局主题 */
|
|
55
55
|
export function useTheme(themeObj) {
|
|
56
|
-
const
|
|
57
|
-
|
|
56
|
+
const result = useScopedTheme(themeObj);
|
|
57
|
+
document.adoptedStyleSheets.push(result[0][SheetToken].getStyle());
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
/**用来覆盖全局主题 */
|
|
61
|
+
export function useOverrideTheme(theme, themeObj) {
|
|
62
|
+
return useThemeFromProps(themeObj, getThemeProps(theme));
|
|
63
|
+
}
|
|
64
|
+
export function useDecoratorTheme(themeObj) {
|
|
65
|
+
const [themeAsKeys] = useThemeFromProps(themeObj);
|
|
66
|
+
const props = getThemeProps(themeAsKeys);
|
|
67
|
+
const updateDecorator = (getDep) => (_, { addInitializer, access }) => {
|
|
68
|
+
addInitializer(function () {
|
|
69
|
+
const [theme, update] = useThemeFromProps({ ...themeObj }, props);
|
|
70
|
+
this.internals.sheets.push(theme[SheetToken].getStyle(this));
|
|
71
|
+
this.memo(() => update(access.get(this).apply(this)), getDep && (() => getDep(this)));
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
return [themeAsKeys, updateDecorator];
|
|
58
75
|
}
|
|
59
76
|
//# sourceMappingURL=theme.js.map
|
package/helper/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/helper/theme.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/helper/theme.ts"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export * from './lib/store';
|
|
2
|
-
export * from './lib/history';
|
|
3
|
-
export * from './lib/element';
|
|
4
1
|
export * from './lib/decorators';
|
|
2
|
+
export * from './lib/element';
|
|
3
|
+
export * from './lib/store';
|
|
5
4
|
export * from './lib/utils';
|
|
6
5
|
export * from './lib/version';
|
|
6
|
+
export * from './lib/history';
|
|
7
|
+
export * from './lib/directives';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAG9B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
|
package/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
export * from './lib/store';
|
|
2
|
-
export * from './lib/history';
|
|
3
|
-
export * from './lib/element';
|
|
4
1
|
export * from './lib/decorators';
|
|
2
|
+
export * from './lib/element';
|
|
3
|
+
export * from './lib/store';
|
|
5
4
|
export * from './lib/utils';
|
|
6
5
|
export * from './lib/version';
|
|
6
|
+
// 使用路径时可选模块
|
|
7
|
+
export * from './lib/history';
|
|
8
|
+
export * from './lib/directives';
|
|
7
9
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAE9B,YAAY;AACZ,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
|
package/lib/decorators.d.ts
CHANGED
|
@@ -1,35 +1,25 @@
|
|
|
1
|
+
import type { createCSSSheet, Metadata, TemplateResult } from './element';
|
|
1
2
|
import { GemElement } from './element';
|
|
2
|
-
import { Store } from './store';
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
element: T | undefined;
|
|
8
|
-
elements: T[];
|
|
9
|
-
};
|
|
3
|
+
import type { Store } from './store';
|
|
4
|
+
import * as elementExports from './element';
|
|
5
|
+
import * as decoratorsExports from './decorators';
|
|
6
|
+
import * as storeExports from './store';
|
|
7
|
+
import * as versionExports from './version';
|
|
10
8
|
/**
|
|
11
|
-
*
|
|
9
|
+
* 定义一个响应式的 attribute,驼峰字段名将自动映射到烤串 attribute,默认值为空字符串;不要覆盖定义
|
|
12
10
|
*
|
|
13
11
|
* For example
|
|
14
12
|
* ```ts
|
|
15
13
|
* class App extends GemElement {
|
|
16
|
-
* @
|
|
17
|
-
* loadHandle = () => {
|
|
18
|
-
* const { element } = this.childRef;
|
|
19
|
-
* console.log(element);
|
|
20
|
-
* };
|
|
21
|
-
* render() {
|
|
22
|
-
* render html`<div ref=${this.childRef.ref}><div>`;
|
|
23
|
-
* }
|
|
14
|
+
* @attribute attr: string;
|
|
24
15
|
* }
|
|
25
16
|
* ```
|
|
26
17
|
*/
|
|
27
|
-
export declare function
|
|
28
|
-
export declare function
|
|
29
|
-
export declare function
|
|
30
|
-
export declare function numattribute(target: GemElementPrototype, prop: string): void;
|
|
18
|
+
export declare function attribute<T extends GemElement>(_: undefined, context: ClassFieldDecoratorContext<T, string>): (this: any, initValue: any) => any;
|
|
19
|
+
export declare function boolattribute<T extends GemElement>(_: undefined, context: ClassFieldDecoratorContext<T, boolean>): (this: any, initValue: any) => any;
|
|
20
|
+
export declare function numattribute<T extends GemElement>(_: undefined, context: ClassFieldDecoratorContext<T, number>): (this: any, initValue: any) => any;
|
|
31
21
|
/**
|
|
32
|
-
* 定义一个响应式的 property,注意值可能为 `undefined
|
|
22
|
+
* 定义一个响应式的 property,注意值可能为 `undefined`;不要覆盖定义
|
|
33
23
|
*
|
|
34
24
|
* For example
|
|
35
25
|
* ```ts
|
|
@@ -38,7 +28,45 @@ export declare function numattribute(target: GemElementPrototype, prop: string):
|
|
|
38
28
|
* }
|
|
39
29
|
* ```
|
|
40
30
|
*/
|
|
41
|
-
export declare function property(
|
|
31
|
+
export declare function property<T extends GemElement>(_: undefined, context: ClassFieldDecoratorContext<T>): (this: any, initValue: any) => any;
|
|
32
|
+
/**
|
|
33
|
+
* 依赖 `GemElement.memo`
|
|
34
|
+
*
|
|
35
|
+
* For example
|
|
36
|
+
* ```ts
|
|
37
|
+
* class App extends GemElement {
|
|
38
|
+
* @memo(() => [])
|
|
39
|
+
* get data() {
|
|
40
|
+
* return 1;
|
|
41
|
+
* }
|
|
42
|
+
* }
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare function memo<T extends GemElement, V = any, K = any[] | undefined>(getDep?: K extends readonly any[] ? (instance: T) => K : undefined): (_: any, context: ClassGetterDecoratorContext<T, V> | ClassFieldDecoratorContext<T> | ClassMethodDecoratorContext<T>) => void;
|
|
46
|
+
/**
|
|
47
|
+
* 依赖 `GemElement.effect`
|
|
48
|
+
* 方法执行在字段前面
|
|
49
|
+
*
|
|
50
|
+
* For example
|
|
51
|
+
* ```ts
|
|
52
|
+
* class App extends GemElement {
|
|
53
|
+
* @effect(() => [])
|
|
54
|
+
* #fetchData() {
|
|
55
|
+
* console.log('fetch')
|
|
56
|
+
* }
|
|
57
|
+
* }
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
export declare function effect<T extends GemElement, V extends (depValues: K, oldDepValues?: K) => any, K = any[] | undefined>(getDep?: K extends readonly any[] ? (instance: T) => K : undefined): (_: any, { addInitializer, access }: ClassFieldDecoratorContext<T, V> | ClassMethodDecoratorContext<T, V>) => void;
|
|
61
|
+
export declare function unmounted<T extends GemElement, V extends () => any>(): (_: any, { addInitializer, access }: ClassFieldDecoratorContext<T, V> | ClassMethodDecoratorContext<T, V>) => void;
|
|
62
|
+
/**`@memo` 别名,不能再在回调中使用 `this.memo` */
|
|
63
|
+
export declare function willMount(): (_: any, context: ClassGetterDecoratorContext<GemElement, any> | ClassFieldDecoratorContext<GemElement, unknown> | ClassMethodDecoratorContext<GemElement, (this: GemElement, ...args: any) => any>) => void;
|
|
64
|
+
/**`@effect` 别名,不能再在回调中使用 `this.effect` */
|
|
65
|
+
export declare function mounted(): (_: any, { addInitializer, access }: ClassFieldDecoratorContext<GemElement, (depValues: never[], oldDepValues?: never[] | undefined) => any> | ClassMethodDecoratorContext<GemElement, (depValues: never[], oldDepValues?: never[] | undefined) => any>) => void;
|
|
66
|
+
export declare function template<T extends GemElement, V extends () => TemplateResult | null | undefined>(
|
|
67
|
+
/** 当所有 `template` 返回 `false` 时不进行更新,包括 `memo` */
|
|
68
|
+
condition?: (instance: T) => boolean): (_: any, { addInitializer, access }: ClassFieldDecoratorContext<T, V> | ClassMethodDecoratorContext<T, V>) => void;
|
|
69
|
+
export declare function fallback<T extends GemElement, V extends (err: any) => TemplateResult | null | undefined>(): (_: any, { addInitializer, access }: ClassFieldDecoratorContext<T, V> | ClassMethodDecoratorContext<T, V>) => void;
|
|
42
70
|
/**
|
|
43
71
|
* 定义一个元素[内部](https://html.spec.whatwg.org/multipage/custom-elements.html#elementinternals) state,
|
|
44
72
|
* 类似 `:checked`,用于自定义 css 伪类(:state(xxx)),默认值即为字段名。
|
|
@@ -52,7 +80,7 @@ export declare function property(target: GemElementPrototype, prop: string): voi
|
|
|
52
80
|
* }
|
|
53
81
|
* ```
|
|
54
82
|
*/
|
|
55
|
-
export declare function state(
|
|
83
|
+
export declare function state<T extends GemElement>(_: undefined, context: ClassFieldDecoratorContext<T, boolean>): void;
|
|
56
84
|
/**
|
|
57
85
|
* 定义一个内部 slot,默认值即为字段名,不能使用全局属性 `slot`
|
|
58
86
|
*
|
|
@@ -64,7 +92,7 @@ export declare function state(target: GemElementPrototype, prop: string): void;
|
|
|
64
92
|
* }
|
|
65
93
|
* ```
|
|
66
94
|
*/
|
|
67
|
-
export declare function slot(
|
|
95
|
+
export declare function slot(_: undefined, context: ClassFieldDecoratorContext<any, string>): (this: any, value: string) => string;
|
|
68
96
|
/**
|
|
69
97
|
* 定义一个内部 part,默认值即为字段名,不能使用全局属性 `part`
|
|
70
98
|
*
|
|
@@ -76,8 +104,8 @@ export declare function slot(target: any, prop: string): void;
|
|
|
76
104
|
* }
|
|
77
105
|
* ```
|
|
78
106
|
*/
|
|
79
|
-
export declare function part(
|
|
80
|
-
export type Emitter<T = any> = (detail
|
|
107
|
+
export declare function part(_: undefined, context: ClassFieldDecoratorContext<any, string>): (this: any, value: string) => string;
|
|
108
|
+
export type Emitter<T = any> = (detail?: T, options?: Omit<CustomEventInit<unknown>, 'detail'>) => void;
|
|
81
109
|
/**
|
|
82
110
|
* 定义一个事件发射器,类似 `HTMLElement.click`,
|
|
83
111
|
* 调用时将同步发送一个和字段名称的烤串式格式的自定义事件
|
|
@@ -89,10 +117,10 @@ export type Emitter<T = any> = (detail: T, options?: Omit<CustomEventInit<unknow
|
|
|
89
117
|
* }
|
|
90
118
|
* ```
|
|
91
119
|
*/
|
|
92
|
-
export declare function emitter(
|
|
93
|
-
export declare function globalemitter(
|
|
120
|
+
export declare function emitter<T extends GemElement>(_: undefined, context: ClassFieldDecoratorContext<T, Emitter>): void;
|
|
121
|
+
export declare function globalemitter<T extends GemElement>(_: undefined, context: ClassFieldDecoratorContext<T, Emitter>): void;
|
|
94
122
|
/**
|
|
95
|
-
*
|
|
123
|
+
* 分配一个构造的样式表,前面的优先级越高(因为装饰器是越近越早执行)
|
|
96
124
|
*
|
|
97
125
|
* For example
|
|
98
126
|
* ```ts
|
|
@@ -100,7 +128,7 @@ export declare function globalemitter(target: GemElementPrototype, prop: string)
|
|
|
100
128
|
* class App extends GemElement {}
|
|
101
129
|
* ```
|
|
102
130
|
*/
|
|
103
|
-
export declare function adoptedStyle(
|
|
131
|
+
export declare function adoptedStyle(sheet: ReturnType<typeof createCSSSheet>): (_: unknown, context: ClassDecoratorContext) => void;
|
|
104
132
|
/**
|
|
105
133
|
* 链接一个 store,当 store 更新时更新元素
|
|
106
134
|
*
|
|
@@ -110,17 +138,17 @@ export declare function adoptedStyle(style: Sheet<unknown>): (cls: unknown) => v
|
|
|
110
138
|
* class App extends GemElement {}
|
|
111
139
|
* ```
|
|
112
140
|
*/
|
|
113
|
-
export declare function connectStore(store: Store<unknown>): (
|
|
141
|
+
export declare function connectStore(store: Store<unknown>): (_: unknown, context: ClassDecoratorContext) => void;
|
|
142
|
+
export declare function shadow({ mode, serializable, delegatesFocus, slotAssignment, }?: Partial<ShadowRootInit>): (_: any, context: ClassDecoratorContext) => void;
|
|
114
143
|
/**
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
*
|
|
121
|
-
* ```
|
|
144
|
+
* 将元素标记为可中断异步渲染
|
|
145
|
+
* 例如:https://examples.gemjs.org/async
|
|
146
|
+
*/
|
|
147
|
+
export declare function async(): (_: any, context: ClassDecoratorContext) => void;
|
|
148
|
+
/**
|
|
149
|
+
* 定义元素的可访问性属性
|
|
122
150
|
*/
|
|
123
|
-
export declare function
|
|
151
|
+
export declare function aria(info: Metadata['aria']): (_: any, context: ClassDecoratorContext) => void;
|
|
124
152
|
/**
|
|
125
153
|
* 定义自定义元素
|
|
126
154
|
*
|
|
@@ -130,6 +158,10 @@ export declare function rootElement(rootType: string): (cls: unknown) => void;
|
|
|
130
158
|
* class App extends GemElement {}
|
|
131
159
|
* ```
|
|
132
160
|
*/
|
|
133
|
-
export declare function customElement(name: string): (cls:
|
|
134
|
-
|
|
161
|
+
export declare function customElement(name: string): (cls: new (...args: any) => any, { addInitializer }: ClassDecoratorContext) => void;
|
|
162
|
+
declare global {
|
|
163
|
+
interface Window {
|
|
164
|
+
__GEM_DEVTOOLS__HOOK__?: (typeof elementExports & typeof decoratorsExports & typeof storeExports & typeof versionExports) | Record<string, never>;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
135
167
|
//# sourceMappingURL=decorators.d.ts.map
|
package/lib/decorators.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../src/lib/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../src/lib/decorators.ts"],"names":[],"mappings":"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"}
|