@mantou/gem 1.6.5 → 1.6.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -38
- package/dist/gem.es.js +3261 -0
- package/dist/gem.umd.js +229 -0
- package/elements/{dialog-base.d.ts → base/dialog.d.ts} +4 -4
- package/elements/base/dialog.d.ts.map +1 -0
- package/elements/{dialog-base.js → base/dialog.js} +26 -28
- package/elements/base/dialog.js.map +1 -0
- package/elements/base/gesture.d.ts +66 -0
- package/elements/base/gesture.d.ts.map +1 -0
- package/elements/base/gesture.js +214 -0
- package/elements/base/gesture.js.map +1 -0
- package/elements/base/link.d.ts +44 -0
- package/elements/base/link.d.ts.map +1 -0
- package/elements/base/link.js +206 -0
- package/elements/base/link.js.map +1 -0
- package/elements/{modal-base.d.ts → base/modal-factory.d.ts} +20 -20
- package/elements/base/modal-factory.d.ts.map +1 -0
- package/elements/{modal-base.js → base/modal-factory.js} +10 -7
- package/elements/base/modal-factory.js.map +1 -0
- package/elements/base/reflect.d.ts +6 -0
- package/elements/base/reflect.d.ts.map +1 -0
- package/elements/base/reflect.js +34 -0
- package/elements/base/reflect.js.map +1 -0
- package/elements/base/route.d.ts +78 -0
- package/elements/base/route.d.ts.map +1 -0
- package/elements/base/route.js +220 -0
- package/elements/base/route.js.map +1 -0
- package/elements/base/title.d.ts +30 -0
- package/elements/base/title.d.ts.map +1 -0
- package/elements/base/title.js +74 -0
- package/elements/base/title.js.map +1 -0
- package/elements/base/unsafe.d.ts +14 -0
- package/elements/base/unsafe.d.ts.map +1 -0
- package/elements/base/unsafe.js +42 -0
- package/elements/base/unsafe.js.map +1 -0
- package/elements/base/use.d.ts +19 -0
- package/elements/base/use.d.ts.map +1 -0
- package/elements/base/use.js +70 -0
- package/elements/base/use.js.map +1 -0
- package/elements/gesture.d.ts +1 -67
- package/elements/gesture.d.ts.map +1 -1
- package/elements/gesture.js +3 -219
- package/elements/gesture.js.map +1 -1
- package/elements/link.d.ts +1 -45
- package/elements/link.d.ts.map +1 -1
- package/elements/link.js +4 -215
- package/elements/link.js.map +1 -1
- package/elements/reflect.d.ts +1 -8
- package/elements/reflect.d.ts.map +1 -1
- package/elements/reflect.js +3 -39
- package/elements/reflect.js.map +1 -1
- package/elements/route.d.ts +1 -81
- package/elements/route.d.ts.map +1 -1
- package/elements/route.js +4 -225
- package/elements/route.js.map +1 -1
- package/elements/title.d.ts +1 -30
- package/elements/title.d.ts.map +1 -1
- package/elements/title.js +3 -75
- package/elements/title.js.map +1 -1
- package/elements/unsafe.d.ts +1 -14
- package/elements/unsafe.d.ts.map +1 -1
- package/elements/unsafe.js +3 -46
- package/elements/unsafe.js.map +1 -1
- package/elements/use.d.ts +1 -19
- package/elements/use.d.ts.map +1 -1
- package/elements/use.js +3 -74
- package/elements/use.js.map +1 -1
- package/helper/i18n.js +47 -58
- package/helper/i18n.js.map +1 -1
- package/helper/request.js +11 -19
- package/helper/request.js.map +1 -1
- package/index.d.ts +5 -4
- package/index.d.ts.map +1 -1
- package/index.js +4 -2
- package/index.js.map +1 -1
- package/lib/element.d.ts.map +1 -1
- package/lib/element.js +2 -2
- package/lib/element.js.map +1 -1
- package/lib/history.d.ts +28 -16
- package/lib/history.d.ts.map +1 -1
- package/lib/history.js +179 -169
- package/lib/history.js.map +1 -1
- package/lib/utils.d.ts +3 -1
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +7 -5
- package/lib/utils.js.map +1 -1
- package/package.json +25 -53
- package/src/{umd.ts → dist.ts} +4 -5
- package/src/elements/{dialog-base.ts → base/dialog.ts} +6 -7
- package/src/elements/base/gesture.ts +256 -0
- package/src/elements/base/link.ts +178 -0
- package/src/elements/{modal-base.ts → base/modal-factory.ts} +3 -3
- package/src/elements/base/reflect.ts +30 -0
- package/src/elements/base/route.ts +244 -0
- package/src/elements/base/title.ts +68 -0
- package/src/elements/base/unsafe.ts +37 -0
- package/src/elements/base/use.ts +57 -0
- package/src/elements/gesture.ts +3 -257
- package/src/elements/link.ts +4 -179
- package/src/elements/reflect.ts +3 -31
- package/src/elements/route.ts +4 -248
- package/src/elements/title.ts +3 -68
- package/src/elements/unsafe.ts +3 -37
- package/src/elements/use.ts +3 -57
- package/src/index.ts +4 -6
- package/src/lib/element.ts +5 -2
- package/src/lib/history.ts +183 -195
- package/src/lib/utils.ts +11 -5
- package/src/test/gem-element/advance.test.ts +1 -0
- package/src/test/gem-element/basic.test.ts +1 -0
- package/src/test/gem-element/decorators.test.ts +1 -0
- package/src/test/gem-element/multi.test.ts +1 -0
- package/src/test/history.test.ts +16 -10
- package/src/test/store.test.ts +1 -0
- package/src/test/utils.test.ts +1 -0
- package/elements/dialog-base.d.ts.map +0 -1
- package/elements/dialog-base.js.map +0 -1
- package/elements/modal-base.d.ts.map +0 -1
- package/elements/modal-base.js.map +0 -1
- package/src/examples/base-path/index.ts +0 -44
- package/src/examples/controlled/index.ts +0 -75
- package/src/examples/decorator/chidren.ts +0 -77
- package/src/examples/decorator/index.ts +0 -110
- package/src/examples/dialog/index.ts +0 -148
- package/src/examples/effect/index.ts +0 -45
- package/src/examples/elements/env.ts +0 -7
- package/src/examples/elements/layout.ts +0 -53
- package/src/examples/elements/nav.ts +0 -71
- package/src/examples/elements/source.ts +0 -68
- package/src/examples/gesture/canvas.ts +0 -69
- package/src/examples/gesture/index.ts +0 -97
- package/src/examples/gesture/manifest.json +0 -3
- package/src/examples/hash/index.ts +0 -55
- package/src/examples/i18n/index.ts +0 -63
- package/src/examples/index/index.ts +0 -33
- package/src/examples/index/manifest.json +0 -5
- package/src/examples/light-dom/index.ts +0 -31
- package/src/examples/multi-page/api.ts +0 -9
- package/src/examples/multi-page/index.ts +0 -78
- package/src/examples/multi-page/page-a.ts +0 -16
- package/src/examples/multi-page/page-b.ts +0 -12
- package/src/examples/multi-page/page-c.ts +0 -40
- package/src/examples/multi-page/store.ts +0 -10
- package/src/examples/perf-demo/index.ts +0 -136
- package/src/examples/ref-route/index.ts +0 -109
- package/src/examples/reflect/index.ts +0 -61
- package/src/examples/styled/index.ts +0 -39
- package/src/examples/svg-icon/index.ts +0 -31
- package/src/examples/theme/index.ts +0 -56
- package/src/examples/unsafe/index.ts +0 -29
- package/umd.d.ts +0 -18
- package/umd.d.ts.map +0 -1
- package/umd.js +0 -54
- package/umd.js.LICENSE.txt +0 -13
- package/umd.js.map +0 -1
package/elements/reflect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reflect.js","sourceRoot":"","sources":["../src/elements/reflect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reflect.js","sourceRoot":"","sources":["../src/elements/reflect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,cAAc,gBAAgB,CAAC;AAE/B,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC"}
|
package/elements/route.d.ts
CHANGED
|
@@ -1,82 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { Emitter } from '../lib/decorators';
|
|
3
|
-
import { Store } from '../lib/store';
|
|
4
|
-
import { UpdateHistoryParams } from '../lib/history';
|
|
5
|
-
import { QueryString } from '../lib/utils';
|
|
6
|
-
declare type Params = Record<string, string>;
|
|
7
|
-
export declare function matchPath(pattern: string, path: string): Params | null;
|
|
8
|
-
export interface RouteItem<T = unknown> {
|
|
9
|
-
pattern: string;
|
|
10
|
-
redirect?: string;
|
|
11
|
-
content?: TemplateResult;
|
|
12
|
-
getContent?: (params: Params) => TemplateResult | Promise<TemplateResult>;
|
|
13
|
-
title?: string;
|
|
14
|
-
data?: T;
|
|
15
|
-
}
|
|
16
|
-
declare type RoutesObject = Record<string, RouteItem>;
|
|
17
|
-
export interface RouteOptions extends Omit<UpdateHistoryParams, 'path'> {
|
|
18
|
-
params?: Params;
|
|
19
|
-
}
|
|
20
|
-
export declare function createPath(route: RouteItem, options?: RouteOptions): string;
|
|
21
|
-
export declare function createHistoryParams(route: RouteItem, options?: RouteOptions): UpdateHistoryParams;
|
|
22
|
-
interface ConstructorOptions {
|
|
23
|
-
isLight?: boolean;
|
|
24
|
-
routes?: RouteItem[] | RoutesObject;
|
|
25
|
-
}
|
|
26
|
-
declare type State = {
|
|
27
|
-
content?: TemplateResult;
|
|
28
|
-
};
|
|
29
|
-
/**
|
|
30
|
-
* @customElement gem-route
|
|
31
|
-
* @attr inert 暂停路由更新
|
|
32
|
-
* @fires routechange
|
|
33
|
-
* @fires error
|
|
34
|
-
* @fires loading
|
|
35
|
-
*/
|
|
36
|
-
export declare class GemRouteElement extends GemElement<State> {
|
|
37
|
-
#private;
|
|
38
|
-
routes?: RouteItem[] | RoutesObject;
|
|
39
|
-
/**
|
|
40
|
-
* @example
|
|
41
|
-
* const locationStore = GemRouteElement.createLocationStore()
|
|
42
|
-
* html`<gem-route .locationStore=${locationStore}>`
|
|
43
|
-
*/
|
|
44
|
-
locationStore?: Store<{
|
|
45
|
-
path: string;
|
|
46
|
-
params: Params;
|
|
47
|
-
query: QueryString;
|
|
48
|
-
data?: any;
|
|
49
|
-
}>;
|
|
50
|
-
key: any;
|
|
51
|
-
routechange: Emitter<RouteItem | null>;
|
|
52
|
-
loading: Emitter<RouteItem>;
|
|
53
|
-
error: Emitter<any>;
|
|
54
|
-
currentRoute: RouteItem | null;
|
|
55
|
-
currentParams: Params;
|
|
56
|
-
static createLocationStore: () => Store<{
|
|
57
|
-
path: string;
|
|
58
|
-
query: (string | QueryString | undefined) & QueryString;
|
|
59
|
-
data: any;
|
|
60
|
-
params: Record<string, string>;
|
|
61
|
-
}>;
|
|
62
|
-
static findRoute: (target: RoutesObject | RouteItem<unknown>[] | undefined, path: string) => {
|
|
63
|
-
route: RouteItem<unknown>;
|
|
64
|
-
params: Params;
|
|
65
|
-
} | {
|
|
66
|
-
route: RouteItem<unknown> | null;
|
|
67
|
-
params?: undefined;
|
|
68
|
-
};
|
|
69
|
-
constructor({ isLight, routes }?: ConstructorOptions);
|
|
70
|
-
state: State;
|
|
71
|
-
mounted(): void;
|
|
72
|
-
shouldUpdate(): boolean;
|
|
73
|
-
render(): TemplateResult;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* @customElement gem-light-route
|
|
77
|
-
*/
|
|
78
|
-
export declare class GemLightRouteElement extends GemRouteElement {
|
|
79
|
-
constructor(options?: ConstructorOptions);
|
|
80
|
-
}
|
|
81
|
-
export {};
|
|
1
|
+
export * from './base/route';
|
|
82
2
|
//# sourceMappingURL=route.d.ts.map
|
package/elements/route.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../src/elements/route.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../src/elements/route.ts"],"names":[],"mappings":"AAEA,cAAc,cAAc,CAAC"}
|
package/elements/route.js
CHANGED
|
@@ -1,226 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
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 _GemRouteElement_lastLoader, _GemRouteElement_updateLocationStore, _GemRouteElement_setContent;
|
|
19
|
-
var GemRouteElement_1;
|
|
20
|
-
import { GemElement, html } from '../lib/element';
|
|
21
|
-
import { property, customElement, connectStore, emitter } from '../lib/decorators';
|
|
22
|
-
import { createStore, updateStore } from '../lib/store';
|
|
23
|
-
import { titleStore, history } from '../lib/history';
|
|
24
|
-
// TODO: use `URLPattern`
|
|
25
|
-
class ParamsRegExp extends RegExp {
|
|
26
|
-
constructor(pattern) {
|
|
27
|
-
const namePosition = {};
|
|
28
|
-
let i = 0;
|
|
29
|
-
super(`^${pattern
|
|
30
|
-
.replace(/:([^/$]+)/g, (_m, name) => {
|
|
31
|
-
namePosition[name] = i++;
|
|
32
|
-
return `([^/]+)`;
|
|
33
|
-
})
|
|
34
|
-
.replace('*', '.*')}$`, 'i');
|
|
35
|
-
this.namePosition = namePosition;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
// `/a/b/:c/:d` `/a/b/1/2`
|
|
39
|
-
// 匹配成功时返回 params
|
|
40
|
-
export function matchPath(pattern, path) {
|
|
41
|
-
const reg = new ParamsRegExp(pattern);
|
|
42
|
-
const matchResult = path.match(reg) || `${path}/`.match(reg);
|
|
43
|
-
if (!matchResult)
|
|
44
|
-
return null;
|
|
45
|
-
const params = {};
|
|
46
|
-
if (matchResult) {
|
|
47
|
-
Object.keys(reg.namePosition).forEach((name) => {
|
|
48
|
-
params[name] = matchResult[reg.namePosition[name] + 1];
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
return params;
|
|
52
|
-
}
|
|
53
|
-
// 从路由创建路径
|
|
54
|
-
// 不包含 basePath
|
|
55
|
-
export function createPath(route, options) {
|
|
56
|
-
let path = route.pattern;
|
|
57
|
-
const params = options === null || options === void 0 ? void 0 : options.params;
|
|
58
|
-
if (params) {
|
|
59
|
-
Object.keys(params).forEach((key) => {
|
|
60
|
-
path = path.replace(new RegExp(`:${key}`, 'g'), params[key]);
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
return path;
|
|
64
|
-
}
|
|
65
|
-
export function createHistoryParams(route, options) {
|
|
66
|
-
const path = createPath(route, options);
|
|
67
|
-
return Object.assign({ path }, options);
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* @customElement gem-route
|
|
71
|
-
* @attr inert 暂停路由更新
|
|
72
|
-
* @fires routechange
|
|
73
|
-
* @fires error
|
|
74
|
-
* @fires loading
|
|
75
|
-
*/
|
|
76
|
-
let GemRouteElement = GemRouteElement_1 = class GemRouteElement extends GemElement {
|
|
77
|
-
constructor({ isLight, routes } = {}) {
|
|
78
|
-
super({ isLight });
|
|
79
|
-
// 当前匹配的路由的 params
|
|
80
|
-
this.currentParams = {};
|
|
81
|
-
_GemRouteElement_lastLoader.set(this, void 0);
|
|
82
|
-
this.state = {
|
|
83
|
-
content: undefined,
|
|
84
|
-
};
|
|
85
|
-
_GemRouteElement_updateLocationStore.set(this, () => {
|
|
86
|
-
if (this.locationStore) {
|
|
87
|
-
const { path, query, data } = history.getParams();
|
|
88
|
-
updateStore(this.locationStore, {
|
|
89
|
-
path,
|
|
90
|
-
params: this.currentParams,
|
|
91
|
-
query,
|
|
92
|
-
data,
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
_GemRouteElement_setContent.set(this, (route, params, content) => {
|
|
97
|
-
__classPrivateFieldSet(this, _GemRouteElement_lastLoader, undefined, "f");
|
|
98
|
-
this.currentRoute = route;
|
|
99
|
-
this.currentParams = params;
|
|
100
|
-
this.setState({ content });
|
|
101
|
-
this.routechange(this.currentRoute);
|
|
102
|
-
const title = route === null || route === void 0 ? void 0 : route.title;
|
|
103
|
-
if (title)
|
|
104
|
-
updateStore(titleStore, { title });
|
|
105
|
-
__classPrivateFieldGet(this, _GemRouteElement_updateLocationStore, "f").call(this);
|
|
106
|
-
});
|
|
107
|
-
this.routes = routes;
|
|
108
|
-
}
|
|
109
|
-
mounted() {
|
|
110
|
-
this.effect(([key, path], old) => {
|
|
111
|
-
// 只有查询参数改变
|
|
112
|
-
if (old && key === old[0] && path === old[1]) {
|
|
113
|
-
__classPrivateFieldGet(this, _GemRouteElement_updateLocationStore, "f").call(this);
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
const { route, params = {} } = GemRouteElement_1.findRoute(this.routes, path);
|
|
117
|
-
const { redirect, content, getContent } = route || {};
|
|
118
|
-
if (redirect) {
|
|
119
|
-
history.replace({ path: redirect });
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
const contentOrLoader = content || (getContent === null || getContent === void 0 ? void 0 : getContent(params));
|
|
123
|
-
if (contentOrLoader instanceof Promise) {
|
|
124
|
-
this.loading(route);
|
|
125
|
-
__classPrivateFieldSet(this, _GemRouteElement_lastLoader, contentOrLoader, "f");
|
|
126
|
-
const isSomeLoader = () => __classPrivateFieldGet(this, _GemRouteElement_lastLoader, "f") === contentOrLoader;
|
|
127
|
-
contentOrLoader
|
|
128
|
-
.then((content) => {
|
|
129
|
-
if (isSomeLoader())
|
|
130
|
-
__classPrivateFieldGet(this, _GemRouteElement_setContent, "f").call(this, route, params, content);
|
|
131
|
-
})
|
|
132
|
-
.catch((err) => {
|
|
133
|
-
if (isSomeLoader())
|
|
134
|
-
this.error(err);
|
|
135
|
-
});
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
__classPrivateFieldGet(this, _GemRouteElement_setContent, "f").call(this, route, params, contentOrLoader);
|
|
139
|
-
}, () => {
|
|
140
|
-
const { path } = history.getParams();
|
|
141
|
-
return [this.key, path, location.search];
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
shouldUpdate() {
|
|
145
|
-
if (this.inert)
|
|
146
|
-
return false;
|
|
147
|
-
return true;
|
|
148
|
-
}
|
|
149
|
-
render() {
|
|
150
|
-
const { content } = this.state;
|
|
151
|
-
if (!this.shadowRoot)
|
|
152
|
-
return html `${content}`;
|
|
153
|
-
return html `
|
|
154
|
-
<style>
|
|
155
|
-
:host,
|
|
156
|
-
:not(:defined) {
|
|
157
|
-
display: contents;
|
|
158
|
-
}
|
|
159
|
-
</style>
|
|
160
|
-
${content !== null && content !== void 0 ? content : html `<slot></slot>`}
|
|
161
|
-
`;
|
|
162
|
-
}
|
|
163
|
-
};
|
|
164
|
-
_GemRouteElement_lastLoader = new WeakMap(), _GemRouteElement_updateLocationStore = new WeakMap(), _GemRouteElement_setContent = new WeakMap();
|
|
165
|
-
GemRouteElement.createLocationStore = () => {
|
|
166
|
-
const { path, query, data } = history.getParams();
|
|
167
|
-
return createStore({ path, query, data, params: {} });
|
|
168
|
-
};
|
|
169
|
-
GemRouteElement.findRoute = (target = [], path) => {
|
|
170
|
-
let defaultRoute = null;
|
|
171
|
-
let routes;
|
|
172
|
-
if (target instanceof Array) {
|
|
173
|
-
routes = target;
|
|
174
|
-
}
|
|
175
|
-
else {
|
|
176
|
-
routes = Object.values(target);
|
|
177
|
-
}
|
|
178
|
-
for (const route of routes) {
|
|
179
|
-
if ('*' === route.pattern) {
|
|
180
|
-
defaultRoute = route;
|
|
181
|
-
}
|
|
182
|
-
else {
|
|
183
|
-
const params = matchPath(route.pattern, path);
|
|
184
|
-
if (params) {
|
|
185
|
-
return { route, params };
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
return { route: defaultRoute };
|
|
190
|
-
};
|
|
191
|
-
__decorate([
|
|
192
|
-
property
|
|
193
|
-
], GemRouteElement.prototype, "routes", void 0);
|
|
194
|
-
__decorate([
|
|
195
|
-
property
|
|
196
|
-
], GemRouteElement.prototype, "locationStore", void 0);
|
|
197
|
-
__decorate([
|
|
198
|
-
property
|
|
199
|
-
], GemRouteElement.prototype, "key", void 0);
|
|
200
|
-
__decorate([
|
|
201
|
-
emitter
|
|
202
|
-
], GemRouteElement.prototype, "routechange", void 0);
|
|
203
|
-
__decorate([
|
|
204
|
-
emitter
|
|
205
|
-
], GemRouteElement.prototype, "loading", void 0);
|
|
206
|
-
__decorate([
|
|
207
|
-
emitter
|
|
208
|
-
], GemRouteElement.prototype, "error", void 0);
|
|
209
|
-
GemRouteElement = GemRouteElement_1 = __decorate([
|
|
210
|
-
connectStore(history.store),
|
|
211
|
-
customElement('gem-route')
|
|
212
|
-
], GemRouteElement);
|
|
213
|
-
export { GemRouteElement };
|
|
214
|
-
/**
|
|
215
|
-
* @customElement gem-light-route
|
|
216
|
-
*/
|
|
217
|
-
let GemLightRouteElement = class GemLightRouteElement extends GemRouteElement {
|
|
218
|
-
constructor(options = {}) {
|
|
219
|
-
super(Object.assign(Object.assign({}, options), { isLight: true }));
|
|
220
|
-
}
|
|
221
|
-
};
|
|
222
|
-
GemLightRouteElement = __decorate([
|
|
223
|
-
customElement('gem-light-route')
|
|
224
|
-
], GemLightRouteElement);
|
|
225
|
-
export { GemLightRouteElement };
|
|
1
|
+
import { GemRouteElement, GemLightRouteElement } from './base/route';
|
|
2
|
+
export * from './base/route';
|
|
3
|
+
customElements.define('gem-route', GemRouteElement);
|
|
4
|
+
customElements.define('gem-light-route', GemLightRouteElement);
|
|
226
5
|
//# sourceMappingURL=route.js.map
|
package/elements/route.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.js","sourceRoot":"","sources":["../src/elements/route.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../src/elements/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAErE,cAAc,cAAc,CAAC;AAE7B,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AACpD,cAAc,CAAC,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CAAC"}
|
package/elements/title.d.ts
CHANGED
|
@@ -1,31 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* 标题显示在:
|
|
3
|
-
*
|
|
4
|
-
* - 桌面端 Tab 的 title
|
|
5
|
-
* - 移动端 Appbar 的 title
|
|
6
|
-
*
|
|
7
|
-
* 修改标题:
|
|
8
|
-
*
|
|
9
|
-
* - `<gem-route>` 匹配路由时自动设置 `route.title`
|
|
10
|
-
* - `<gem-link>` 的 `doc-title` 属性和 `route.title`
|
|
11
|
-
* - 修改路径时,`history` 默认设置 `title` 为空
|
|
12
|
-
* - 数据获取后,手动调用 `Title.setTitle`
|
|
13
|
-
* - `<gem-title>` 作为默认值设置
|
|
14
|
-
*/
|
|
15
|
-
import { GemElement } from '../lib/element';
|
|
16
|
-
/**
|
|
17
|
-
* 允许声明式设置 `document.title`
|
|
18
|
-
* @customElement gem-title
|
|
19
|
-
* @attr suffix
|
|
20
|
-
*/
|
|
21
|
-
export declare class GemTitleElement extends GemElement {
|
|
22
|
-
static title: string;
|
|
23
|
-
static defaultTitle: string;
|
|
24
|
-
static defaultSuffix: string;
|
|
25
|
-
static setTitle(title: string): void;
|
|
26
|
-
static updateTitle(str?: string, suffix?: string): void;
|
|
27
|
-
suffix: string;
|
|
28
|
-
constructor();
|
|
29
|
-
render(): import("lit-html/lib/template-result").TemplateResult;
|
|
30
|
-
}
|
|
1
|
+
export * from './base/title';
|
|
31
2
|
//# sourceMappingURL=title.d.ts.map
|
package/elements/title.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"title.d.ts","sourceRoot":"","sources":["../src/elements/title.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"title.d.ts","sourceRoot":"","sources":["../src/elements/title.ts"],"names":[],"mappings":"AAEA,cAAc,cAAc,CAAC"}
|
package/elements/title.js
CHANGED
|
@@ -1,76 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
*
|
|
3
|
-
|
|
4
|
-
* - 桌面端 Tab 的 title
|
|
5
|
-
* - 移动端 Appbar 的 title
|
|
6
|
-
*
|
|
7
|
-
* 修改标题:
|
|
8
|
-
*
|
|
9
|
-
* - `<gem-route>` 匹配路由时自动设置 `route.title`
|
|
10
|
-
* - `<gem-link>` 的 `doc-title` 属性和 `route.title`
|
|
11
|
-
* - 修改路径时,`history` 默认设置 `title` 为空
|
|
12
|
-
* - 数据获取后,手动调用 `Title.setTitle`
|
|
13
|
-
* - `<gem-title>` 作为默认值设置
|
|
14
|
-
*/
|
|
15
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
16
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
17
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
18
|
-
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;
|
|
19
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
20
|
-
};
|
|
21
|
-
var GemTitleElement_1;
|
|
22
|
-
import { GemElement, html } from '../lib/element';
|
|
23
|
-
import { attribute, customElement, connectStore } from '../lib/decorators';
|
|
24
|
-
import { updateStore, connect } from '../lib/store';
|
|
25
|
-
import { titleStore } from '../lib/history';
|
|
26
|
-
/**
|
|
27
|
-
* 允许声明式设置 `document.title`
|
|
28
|
-
* @customElement gem-title
|
|
29
|
-
* @attr suffix
|
|
30
|
-
*/
|
|
31
|
-
let GemTitleElement = GemTitleElement_1 = class GemTitleElement extends GemElement {
|
|
32
|
-
constructor() {
|
|
33
|
-
super();
|
|
34
|
-
new MutationObserver(() => this.update()).observe(this, { childList: true, characterData: true, subtree: true });
|
|
35
|
-
}
|
|
36
|
-
static setTitle(title) {
|
|
37
|
-
updateStore(titleStore, { title });
|
|
38
|
-
}
|
|
39
|
-
static updateTitle(str = '', suffix = '') {
|
|
40
|
-
const { title } = titleStore;
|
|
41
|
-
if (title && title !== GemTitleElement_1.defaultTitle) {
|
|
42
|
-
GemTitleElement_1.title = title;
|
|
43
|
-
document.title = GemTitleElement_1.title + suffix;
|
|
44
|
-
}
|
|
45
|
-
else if (str) {
|
|
46
|
-
GemTitleElement_1.title = str;
|
|
47
|
-
document.title = GemTitleElement_1.title + suffix;
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
GemTitleElement_1.title = GemTitleElement_1.defaultTitle;
|
|
51
|
-
document.title = GemTitleElement_1.title;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
render() {
|
|
55
|
-
// 多个 <gem-title> 时,最终 document.title 按执行顺序决定
|
|
56
|
-
GemTitleElement_1.updateTitle(this.textContent || '', this.suffix);
|
|
57
|
-
if (this.hidden) {
|
|
58
|
-
return html ``;
|
|
59
|
-
}
|
|
60
|
-
return html `${GemTitleElement_1.title}`;
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
// 没有后缀的标题
|
|
64
|
-
GemTitleElement.title = document.title;
|
|
65
|
-
GemTitleElement.defaultTitle = document.title;
|
|
66
|
-
GemTitleElement.defaultSuffix = ` - ${document.title}`;
|
|
67
|
-
__decorate([
|
|
68
|
-
attribute
|
|
69
|
-
], GemTitleElement.prototype, "suffix", void 0);
|
|
70
|
-
GemTitleElement = GemTitleElement_1 = __decorate([
|
|
71
|
-
connectStore(titleStore),
|
|
72
|
-
customElement('gem-title')
|
|
73
|
-
], GemTitleElement);
|
|
74
|
-
export { GemTitleElement };
|
|
75
|
-
connect(titleStore, GemTitleElement.updateTitle);
|
|
1
|
+
import { GemTitleElement } from './base/title';
|
|
2
|
+
export * from './base/title';
|
|
3
|
+
customElements.define('gem-title', GemTitleElement);
|
|
76
4
|
//# sourceMappingURL=title.js.map
|
package/elements/title.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"title.js","sourceRoot":"","sources":["../src/elements/title.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"title.js","sourceRoot":"","sources":["../src/elements/title.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,cAAc,cAAc,CAAC;AAE7B,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC"}
|
package/elements/unsafe.d.ts
CHANGED
|
@@ -1,15 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* 直接写会被解释成固定属性,需要使用变量赋值
|
|
4
|
-
*
|
|
5
|
-
* @customElement gem-unsafe
|
|
6
|
-
* @attr content
|
|
7
|
-
* @attr contentcss
|
|
8
|
-
*/
|
|
9
|
-
export declare class GemUnsafeElement extends GemElement {
|
|
10
|
-
content: string;
|
|
11
|
-
contentcss: string;
|
|
12
|
-
constructor();
|
|
13
|
-
render(): undefined;
|
|
14
|
-
}
|
|
1
|
+
export * from './base/unsafe';
|
|
15
2
|
//# sourceMappingURL=unsafe.d.ts.map
|
package/elements/unsafe.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unsafe.d.ts","sourceRoot":"","sources":["../src/elements/unsafe.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"unsafe.d.ts","sourceRoot":"","sources":["../src/elements/unsafe.ts"],"names":[],"mappings":"AAEA,cAAc,eAAe,CAAC"}
|
package/elements/unsafe.js
CHANGED
|
@@ -1,47 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
import { GemElement } from '../lib/element';
|
|
8
|
-
import { attribute, customElement } from '../lib/decorators';
|
|
9
|
-
/**
|
|
10
|
-
* 直接写会被解释成固定属性,需要使用变量赋值
|
|
11
|
-
*
|
|
12
|
-
* @customElement gem-unsafe
|
|
13
|
-
* @attr content
|
|
14
|
-
* @attr contentcss
|
|
15
|
-
*/
|
|
16
|
-
let GemUnsafeElement = class GemUnsafeElement extends GemElement {
|
|
17
|
-
constructor() {
|
|
18
|
-
super();
|
|
19
|
-
this.effect(() => {
|
|
20
|
-
if (this.shadowRoot) {
|
|
21
|
-
this.shadowRoot.innerHTML = `
|
|
22
|
-
<style>
|
|
23
|
-
:host {
|
|
24
|
-
display: contents;
|
|
25
|
-
}
|
|
26
|
-
${this.contentcss}
|
|
27
|
-
</style>
|
|
28
|
-
${this.content}
|
|
29
|
-
`;
|
|
30
|
-
}
|
|
31
|
-
}, () => [this.content, this.contentcss]);
|
|
32
|
-
}
|
|
33
|
-
render() {
|
|
34
|
-
return undefined;
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
__decorate([
|
|
38
|
-
attribute
|
|
39
|
-
], GemUnsafeElement.prototype, "content", void 0);
|
|
40
|
-
__decorate([
|
|
41
|
-
attribute
|
|
42
|
-
], GemUnsafeElement.prototype, "contentcss", void 0);
|
|
43
|
-
GemUnsafeElement = __decorate([
|
|
44
|
-
customElement('gem-unsafe')
|
|
45
|
-
], GemUnsafeElement);
|
|
46
|
-
export { GemUnsafeElement };
|
|
1
|
+
import { GemUnsafeElement } from './base/unsafe';
|
|
2
|
+
export * from './base/unsafe';
|
|
3
|
+
customElements.define('gem-unsafe', GemUnsafeElement);
|
|
47
4
|
//# sourceMappingURL=unsafe.js.map
|
package/elements/unsafe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unsafe.js","sourceRoot":"","sources":["../src/elements/unsafe.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"unsafe.js","sourceRoot":"","sources":["../src/elements/unsafe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,cAAc,eAAe,CAAC;AAE9B,cAAc,CAAC,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC"}
|
package/elements/use.d.ts
CHANGED
|
@@ -1,20 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* svg 中的 `<use>` 不能穿透 ShadowDOM,
|
|
4
|
-
* 此元素用来模拟 `<use>`,
|
|
5
|
-
* 由于是复制元素,所以不能像 `<use>` 一样自动更新
|
|
6
|
-
*
|
|
7
|
-
* slot 支持为 icon 添加效果,如涟漪,徽章
|
|
8
|
-
*
|
|
9
|
-
* @customElement gem-use
|
|
10
|
-
* @attr selector
|
|
11
|
-
*/
|
|
12
|
-
export declare class GemUseElement extends GemElement {
|
|
13
|
-
selector: string;
|
|
14
|
-
root?: HTMLElement | Document | ShadowRoot;
|
|
15
|
-
element?: string | DocumentFragment | Element;
|
|
16
|
-
active: boolean;
|
|
17
|
-
private getContent;
|
|
18
|
-
render(): import("lit-html/lib/template-result").TemplateResult;
|
|
19
|
-
}
|
|
1
|
+
export * from './base/use';
|
|
20
2
|
//# sourceMappingURL=use.d.ts.map
|
package/elements/use.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../src/elements/use.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../src/elements/use.ts"],"names":[],"mappings":"AAEA,cAAc,YAAY,CAAC"}
|
package/elements/use.js
CHANGED
|
@@ -1,75 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
import { GemElement, html } from '../lib/element';
|
|
8
|
-
import { attribute, property, customElement, state } from '../lib/decorators';
|
|
9
|
-
const eleCache = new Map();
|
|
10
|
-
/**
|
|
11
|
-
* svg 中的 `<use>` 不能穿透 ShadowDOM,
|
|
12
|
-
* 此元素用来模拟 `<use>`,
|
|
13
|
-
* 由于是复制元素,所以不能像 `<use>` 一样自动更新
|
|
14
|
-
*
|
|
15
|
-
* slot 支持为 icon 添加效果,如涟漪,徽章
|
|
16
|
-
*
|
|
17
|
-
* @customElement gem-use
|
|
18
|
-
* @attr selector
|
|
19
|
-
*/
|
|
20
|
-
let GemUseElement = class GemUseElement extends GemElement {
|
|
21
|
-
getContent() {
|
|
22
|
-
const ele = this.element || (this.selector ? (this.root || document).querySelector(this.selector) : null);
|
|
23
|
-
if (typeof ele === 'string') {
|
|
24
|
-
let temp = eleCache.get(ele);
|
|
25
|
-
if (!temp) {
|
|
26
|
-
temp = document.createElement('template');
|
|
27
|
-
temp.innerHTML = ele;
|
|
28
|
-
eleCache.set(ele, temp);
|
|
29
|
-
}
|
|
30
|
-
return temp.content.cloneNode(true);
|
|
31
|
-
}
|
|
32
|
-
else if (ele instanceof HTMLTemplateElement) {
|
|
33
|
-
return ele.content.cloneNode(true);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
return ele === null || ele === void 0 ? void 0 : ele.cloneNode(true);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
render() {
|
|
40
|
-
return html `
|
|
41
|
-
<style>
|
|
42
|
-
:host {
|
|
43
|
-
position: relative;
|
|
44
|
-
}
|
|
45
|
-
:host(:not([hidden])) {
|
|
46
|
-
display: inline-flex;
|
|
47
|
-
align-items: center;
|
|
48
|
-
}
|
|
49
|
-
svg {
|
|
50
|
-
width: 100%;
|
|
51
|
-
height: 100%;
|
|
52
|
-
}
|
|
53
|
-
</style>
|
|
54
|
-
${this.getContent()}
|
|
55
|
-
<slot></slot>
|
|
56
|
-
`;
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
__decorate([
|
|
60
|
-
attribute
|
|
61
|
-
], GemUseElement.prototype, "selector", void 0);
|
|
62
|
-
__decorate([
|
|
63
|
-
property
|
|
64
|
-
], GemUseElement.prototype, "root", void 0);
|
|
65
|
-
__decorate([
|
|
66
|
-
property
|
|
67
|
-
], GemUseElement.prototype, "element", void 0);
|
|
68
|
-
__decorate([
|
|
69
|
-
state
|
|
70
|
-
], GemUseElement.prototype, "active", void 0);
|
|
71
|
-
GemUseElement = __decorate([
|
|
72
|
-
customElement('gem-use')
|
|
73
|
-
], GemUseElement);
|
|
74
|
-
export { GemUseElement };
|
|
1
|
+
import { GemUseElement } from './base/use';
|
|
2
|
+
export * from './base/use';
|
|
3
|
+
customElements.define('gem-use', GemUseElement);
|
|
75
4
|
//# sourceMappingURL=use.js.map
|