@mantou/gem 1.7.8 → 1.7.9
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 +234 -102
- package/dist/gem.umd.js +24 -24
- package/elements/base/dialog.d.ts.map +1 -1
- package/elements/base/dialog.js +1 -1
- package/elements/base/dialog.js.map +1 -1
- package/elements/base/link.d.ts.map +1 -1
- package/elements/base/link.js +8 -4
- package/elements/base/link.js.map +1 -1
- package/elements/base/modal-factory.d.ts +28 -6
- package/elements/base/modal-factory.d.ts.map +1 -1
- package/elements/base/reflect.d.ts +8 -0
- package/elements/base/reflect.d.ts.map +1 -1
- package/elements/base/reflect.js +36 -9
- package/elements/base/reflect.js.map +1 -1
- package/elements/base/route.d.ts +25 -10
- package/elements/base/route.d.ts.map +1 -1
- package/elements/base/route.js +90 -56
- package/elements/base/route.js.map +1 -1
- package/elements/base/title.d.ts.map +1 -1
- package/elements/base/title.js +8 -2
- package/elements/base/title.js.map +1 -1
- package/helper/i18n.d.ts +8 -1
- package/helper/i18n.d.ts.map +1 -1
- package/helper/i18n.js +6 -2
- package/helper/i18n.js.map +1 -1
- package/helper/logger.d.ts +9 -0
- package/helper/logger.d.ts.map +1 -0
- package/helper/logger.js +16 -0
- package/helper/logger.js.map +1 -0
- package/helper/ssr-shim.d.ts.map +1 -1
- package/helper/ssr-shim.js +12 -4
- package/helper/ssr-shim.js.map +1 -1
- package/lib/element.d.ts +5 -5
- package/lib/element.d.ts.map +1 -1
- package/lib/element.js +40 -14
- package/lib/element.js.map +1 -1
- package/lib/history.d.ts +3 -2
- package/lib/history.d.ts.map +1 -1
- package/lib/history.js +22 -9
- package/lib/history.js.map +1 -1
- package/lib/utils.d.ts +2 -1
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +10 -8
- package/lib/utils.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +1 -1
- package/src/elements/base/dialog.ts +4 -1
- package/src/elements/base/link.ts +8 -4
- package/src/elements/base/reflect.ts +43 -9
- package/src/elements/base/route.ts +102 -51
- package/src/elements/base/title.ts +9 -2
- package/src/helper/i18n.ts +11 -3
- package/src/helper/logger.ts +21 -0
- package/src/helper/ssr-shim.ts +14 -4
- package/src/lib/element.ts +46 -17
- package/src/lib/history.ts +30 -12
- package/src/lib/utils.ts +16 -9
- package/src/lib/version.ts +1 -1
- package/src/test/elements/link.test.ts +15 -0
- package/src/test/elements/reflect.test.ts +27 -0
- package/src/test/elements/title.test.ts +25 -0
- package/src/test/utils.test.ts +14 -0
package/lib/utils.js
CHANGED
|
@@ -41,11 +41,15 @@ export function addMicrotaskToStack(func) {
|
|
|
41
41
|
}
|
|
42
42
|
microtaskStack.push(func);
|
|
43
43
|
}
|
|
44
|
+
// 不编码 hash 用于比较
|
|
44
45
|
export function absoluteLocation(currentPath = '', relativePath = '') {
|
|
45
46
|
const { pathname, search, hash } = new URL(relativePath, location.origin + currentPath);
|
|
46
|
-
return pathname + search + hash;
|
|
47
|
+
return pathname + search + decodeURIComponent(hash);
|
|
48
|
+
}
|
|
49
|
+
export function addListener(target, type, listener, options) {
|
|
50
|
+
target.addEventListener(type, listener, options);
|
|
51
|
+
return () => target.removeEventListener(type, listener, options);
|
|
47
52
|
}
|
|
48
|
-
// work on nodejs
|
|
49
53
|
export class LinkedList extends EventTarget {
|
|
50
54
|
constructor() {
|
|
51
55
|
super(...arguments);
|
|
@@ -237,12 +241,10 @@ export function createCSSSheet(rules, mediaQuery = '') {
|
|
|
237
241
|
sheet[SheetToken] = styleSheet;
|
|
238
242
|
return sheet;
|
|
239
243
|
}
|
|
240
|
-
export function randomStr(
|
|
241
|
-
const
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
str += origin[Math.floor(Math.random() * len)];
|
|
245
|
-
}
|
|
244
|
+
export function randomStr(len = 5) {
|
|
245
|
+
const str = Math.random().toString(36).slice(2).slice(0, len);
|
|
246
|
+
if (str.length < len)
|
|
247
|
+
return str + randomStr(len - str.length);
|
|
246
248
|
return str;
|
|
247
249
|
}
|
|
248
250
|
const nestingRuleRegExp = new RegExp('&.*{((.|\n)*)}', 'g');
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/lib/utils.ts"],"names":[],"mappings":"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"}
|
|
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 = "1.7.
|
|
1
|
+
export declare const version = "1.7.9";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/lib/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '1.7.
|
|
1
|
+
export const version = '1.7.9';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED
|
@@ -23,7 +23,10 @@ export abstract class GemDialogBaseElement extends GemElement {
|
|
|
23
23
|
|
|
24
24
|
constructor() {
|
|
25
25
|
super();
|
|
26
|
-
this.
|
|
26
|
+
this.effect(
|
|
27
|
+
() => (this.inert = true),
|
|
28
|
+
() => [],
|
|
29
|
+
);
|
|
27
30
|
this.internals.role = 'dialog';
|
|
28
31
|
this.internals.ariaModal = 'true';
|
|
29
32
|
}
|
|
@@ -50,8 +50,7 @@ export class GemLinkElement extends GemElement {
|
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
constructor() {
|
|
53
|
-
super();
|
|
54
|
-
this.tabIndex = 0;
|
|
53
|
+
super({ focusable: true });
|
|
55
54
|
this.addEventListener('click', this.#onClick);
|
|
56
55
|
}
|
|
57
56
|
|
|
@@ -96,11 +95,16 @@ export class GemLinkElement extends GemElement {
|
|
|
96
95
|
history.pushIgnoreCloseHandle({
|
|
97
96
|
path: pathname,
|
|
98
97
|
query: search,
|
|
99
|
-
hash
|
|
98
|
+
hash,
|
|
100
99
|
title: this.docTitle,
|
|
101
100
|
});
|
|
102
101
|
} else {
|
|
103
|
-
history.pushIgnoreCloseHandle({
|
|
102
|
+
history.pushIgnoreCloseHandle({
|
|
103
|
+
path: this.path,
|
|
104
|
+
query: this.query,
|
|
105
|
+
hash: this.hash,
|
|
106
|
+
title: this.docTitle,
|
|
107
|
+
});
|
|
104
108
|
}
|
|
105
109
|
};
|
|
106
110
|
|
|
@@ -1,23 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* - ref 读取时需要用到 `target` `dataset`
|
|
3
|
+
* - 预渲染可能造成重复的元素,在序列化时可以用正则移除 GemReflectElement 渲染的从开始到结束连续的元素
|
|
4
|
+
* - `replaceAll(/<!--gem-reflect-start-->.*?<!--gem-reflect-end-->/gs, '')`
|
|
5
|
+
*
|
|
6
|
+
* 不能在在顶级代码块中清除这些元素,因为重复加载该代码时会把正常 reflect 元素清除,
|
|
7
|
+
* 比如 duoyun-ui 文档站加载示例元素时把 GemReflectElement 渲染的元素清除
|
|
8
|
+
*/
|
|
1
9
|
import { GemElement } from '../../lib/element';
|
|
2
10
|
import { property } from '../../lib/decorators';
|
|
3
11
|
|
|
12
|
+
const START = 'gem-reflect-start';
|
|
13
|
+
const END = 'gem-reflect-end';
|
|
14
|
+
|
|
15
|
+
const createReflectFragmentTag = (tag: string) => new Comment(tag);
|
|
16
|
+
|
|
17
|
+
const getReflectFragment = (startNode: Comment) => {
|
|
18
|
+
const result: ChildNode[] = [];
|
|
19
|
+
let node: ChildNode | null = startNode;
|
|
20
|
+
while (node) {
|
|
21
|
+
result.push(node);
|
|
22
|
+
if (node.nodeValue === END) break;
|
|
23
|
+
node = node.nextSibling;
|
|
24
|
+
}
|
|
25
|
+
return result;
|
|
26
|
+
};
|
|
27
|
+
|
|
4
28
|
export class GemReflectElement extends GemElement {
|
|
5
29
|
@property target: HTMLElement = document.head;
|
|
6
30
|
|
|
7
31
|
constructor() {
|
|
8
32
|
super({ isLight: true });
|
|
9
|
-
|
|
10
|
-
this.
|
|
33
|
+
|
|
34
|
+
this.effect(
|
|
35
|
+
() => {
|
|
36
|
+
this.hidden = true;
|
|
37
|
+
this.dataset.gemReflect = '';
|
|
38
|
+
},
|
|
39
|
+
() => [],
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
const startNode = createReflectFragmentTag(START);
|
|
43
|
+
const endNode = createReflectFragmentTag(END);
|
|
44
|
+
let childNodes: undefined | ChildNode[];
|
|
45
|
+
|
|
11
46
|
this.effect(
|
|
12
47
|
() => {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
this.target.append(node);
|
|
19
|
-
});
|
|
48
|
+
if (!childNodes) {
|
|
49
|
+
[startNode, ...this.childNodes, endNode].forEach((node) => this.target.append(node));
|
|
50
|
+
} else {
|
|
51
|
+
childNodes.forEach((node) => this.target.append(node));
|
|
52
|
+
}
|
|
20
53
|
return () => {
|
|
54
|
+
childNodes = getReflectFragment(startNode);
|
|
21
55
|
childNodes.forEach((node) => node.remove());
|
|
22
56
|
};
|
|
23
57
|
},
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { GemElement, html, TemplateResult } from '../../lib/element';
|
|
2
|
-
import { property,
|
|
3
|
-
import { createStore, updateStore, Store } from '../../lib/store';
|
|
2
|
+
import { property, emitter, Emitter, boolattribute } from '../../lib/decorators';
|
|
3
|
+
import { createStore, updateStore, Store, connect } from '../../lib/store';
|
|
4
4
|
import { titleStore, history, UpdateHistoryParams } from '../../lib/history';
|
|
5
|
-
import { QueryString } from '../../lib/utils';
|
|
5
|
+
import { addListener, QueryString } from '../../lib/utils';
|
|
6
6
|
|
|
7
7
|
interface NamePosition {
|
|
8
8
|
[index: string]: number;
|
|
@@ -111,29 +111,44 @@ type State = {
|
|
|
111
111
|
content?: TemplateResult;
|
|
112
112
|
};
|
|
113
113
|
|
|
114
|
+
export type RouteTrigger = {
|
|
115
|
+
store: Store<any>;
|
|
116
|
+
replace: (arg: { path: string }) => void;
|
|
117
|
+
getParams: () => { path: string; query?: string | QueryString; hash?: string };
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
const scrollPositionMap = new Map<string, number>();
|
|
121
|
+
|
|
114
122
|
/**
|
|
115
123
|
* @attr inert 暂停路由更新
|
|
116
124
|
* @fires routechange
|
|
117
125
|
* @fires error
|
|
118
126
|
* @fires loading
|
|
119
127
|
*/
|
|
120
|
-
@connectStore(history.store)
|
|
121
128
|
export class GemRouteElement extends GemElement<State> {
|
|
122
129
|
@boolattribute transition: boolean;
|
|
123
130
|
@property routes?: RouteItem[] | RoutesObject;
|
|
124
131
|
/**
|
|
125
|
-
*
|
|
132
|
+
* 路由更新后更新的 store,能从中读取到安全的路由数据
|
|
126
133
|
*
|
|
127
134
|
* @example
|
|
128
135
|
* const locationStore = GemRouteElement.createLocationStore()
|
|
129
136
|
* html`<gem-route .locationStore=${locationStore}>`
|
|
130
137
|
*/
|
|
131
|
-
@property locationStore?:
|
|
138
|
+
@property locationStore?: ReturnType<(typeof GemRouteElement)['createLocationStore']>;
|
|
132
139
|
@property key?: any; // 除了 href 提供另外一种方式来更新,比如语言更新也需要刷新 <gem-route>
|
|
140
|
+
@emitter loading: Emitter<RouteItem | null>;
|
|
141
|
+
@emitter beforeroutechange: Emitter<RouteItem | null>;
|
|
133
142
|
@emitter routechange: Emitter<RouteItem | null>; // path 改变或者 key 改变,包含初始渲染
|
|
134
|
-
@emitter loading: Emitter<RouteItem>;
|
|
135
143
|
@emitter error: Emitter<any>;
|
|
136
144
|
|
|
145
|
+
/**自动让滚动容器恢复滚动位置 */
|
|
146
|
+
@property scrollContainer?: HTMLElement | (() => HTMLElement);
|
|
147
|
+
/**默认当有 `hash` 时不进行滚动 */
|
|
148
|
+
@property scrollIgnoreHash?: boolean;
|
|
149
|
+
|
|
150
|
+
@property trigger: RouteTrigger = history;
|
|
151
|
+
|
|
137
152
|
/**当前使用的路由对象 */
|
|
138
153
|
currentRoute: RouteItem | null;
|
|
139
154
|
/**当前匹配的路由的 params */
|
|
@@ -141,9 +156,10 @@ export class GemRouteElement extends GemElement<State> {
|
|
|
141
156
|
|
|
142
157
|
#lastLoader?: Promise<TemplateResult>;
|
|
143
158
|
|
|
159
|
+
/**不要多个 `<gem-route>` 共享,因为那样会导致后面的元素卸载前触发更新 */
|
|
144
160
|
static createLocationStore = () => {
|
|
145
|
-
const { path, query, data } = history.getParams();
|
|
146
|
-
return createStore({ path, query, data, params: {} as
|
|
161
|
+
const { path, query, hash, data } = history.getParams();
|
|
162
|
+
return createStore({ path, query, hash, data, params: {} as Params });
|
|
147
163
|
};
|
|
148
164
|
|
|
149
165
|
static findRoute = (target: RouteItem[] | RoutesObject = [], path: string) => {
|
|
@@ -167,6 +183,10 @@ export class GemRouteElement extends GemElement<State> {
|
|
|
167
183
|
return { route: defaultRoute };
|
|
168
184
|
};
|
|
169
185
|
|
|
186
|
+
get #scrollContainer() {
|
|
187
|
+
return typeof this.scrollContainer === 'function' ? this.scrollContainer() : this.scrollContainer;
|
|
188
|
+
}
|
|
189
|
+
|
|
170
190
|
constructor({ isLight, routes }: ConstructorOptions = {}) {
|
|
171
191
|
super({ isLight });
|
|
172
192
|
this.routes = routes;
|
|
@@ -177,38 +197,65 @@ export class GemRouteElement extends GemElement<State> {
|
|
|
177
197
|
};
|
|
178
198
|
|
|
179
199
|
#updateLocationStore = () => {
|
|
180
|
-
if (this.locationStore)
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
200
|
+
if (!this.locationStore) return;
|
|
201
|
+
const { path, query, hash, data } = history.getParams();
|
|
202
|
+
updateStore(this.locationStore, {
|
|
203
|
+
path,
|
|
204
|
+
params: this.currentParams,
|
|
205
|
+
query,
|
|
206
|
+
hash,
|
|
207
|
+
data,
|
|
208
|
+
});
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
#updateScrollContainerPosition = () => {
|
|
212
|
+
if (!this.#scrollContainer) return;
|
|
213
|
+
const scrollTop = scrollPositionMap.get(history.currentKey);
|
|
214
|
+
if (scrollTop) {
|
|
215
|
+
this.#scrollContainer.scroll(0, scrollTop);
|
|
216
|
+
} else if (this.scrollIgnoreHash || !history.getParams().hash) {
|
|
217
|
+
this.#scrollContainer.scroll(0, 0);
|
|
188
218
|
}
|
|
189
219
|
};
|
|
190
220
|
|
|
191
221
|
#setContent = (route: RouteItem | null, params: Params, content?: TemplateResult) => {
|
|
222
|
+
this.beforeroutechange(route);
|
|
192
223
|
this.#lastLoader = undefined;
|
|
193
224
|
this.currentRoute = route;
|
|
194
225
|
this.currentParams = params;
|
|
195
|
-
const changeContent = () => {
|
|
226
|
+
const changeContent = async () => {
|
|
196
227
|
this.setState({ content });
|
|
197
|
-
|
|
228
|
+
// 要确保新页面能读取到新路由数据
|
|
198
229
|
this.#updateLocationStore();
|
|
230
|
+
// 等待页面渲染完成
|
|
231
|
+
await Promise.resolve();
|
|
232
|
+
this.#updateScrollContainerPosition();
|
|
233
|
+
this.routechange(this.currentRoute);
|
|
199
234
|
};
|
|
200
235
|
if (this.transition && 'startViewTransition' in document) {
|
|
201
|
-
(document as any).startViewTransition(() =>
|
|
202
|
-
changeContent();
|
|
203
|
-
// 等待路由渲染
|
|
204
|
-
return Promise.resolve();
|
|
205
|
-
});
|
|
236
|
+
(document as any).startViewTransition(() => changeContent());
|
|
206
237
|
} else {
|
|
207
238
|
changeContent();
|
|
208
239
|
}
|
|
209
240
|
};
|
|
210
241
|
|
|
211
242
|
mounted() {
|
|
243
|
+
this.effect(
|
|
244
|
+
() => {
|
|
245
|
+
if (!this.#scrollContainer) return;
|
|
246
|
+
return addListener(history, 'beforechange', () =>
|
|
247
|
+
scrollPositionMap.set(history.currentKey, this.#scrollContainer!.scrollTop),
|
|
248
|
+
);
|
|
249
|
+
},
|
|
250
|
+
() => [this.scrollContainer],
|
|
251
|
+
);
|
|
252
|
+
|
|
253
|
+
this.effect(
|
|
254
|
+
// 触发 this.#update
|
|
255
|
+
() => connect(this.trigger.store, () => this.setState({})),
|
|
256
|
+
() => [this.trigger],
|
|
257
|
+
);
|
|
258
|
+
|
|
212
259
|
this.effect(
|
|
213
260
|
([key, path], old) => {
|
|
214
261
|
// 只有查询参数改变
|
|
@@ -216,40 +263,17 @@ export class GemRouteElement extends GemElement<State> {
|
|
|
216
263
|
this.#updateLocationStore();
|
|
217
264
|
return;
|
|
218
265
|
}
|
|
219
|
-
|
|
220
|
-
const { redirect, content, getContent } = route || {};
|
|
221
|
-
if (redirect) {
|
|
222
|
-
history.replace({ path: redirect });
|
|
223
|
-
return;
|
|
224
|
-
}
|
|
225
|
-
const title = route?.title;
|
|
226
|
-
if (title) updateStore(titleStore, { title });
|
|
227
|
-
const contentOrLoader = content || getContent?.(params);
|
|
228
|
-
if (contentOrLoader instanceof Promise) {
|
|
229
|
-
this.loading(route!);
|
|
230
|
-
this.#lastLoader = contentOrLoader;
|
|
231
|
-
const isSomeLoader = () => this.#lastLoader === contentOrLoader;
|
|
232
|
-
contentOrLoader
|
|
233
|
-
.then((content) => {
|
|
234
|
-
if (isSomeLoader()) this.#setContent(route, params, content);
|
|
235
|
-
})
|
|
236
|
-
.catch((err) => {
|
|
237
|
-
if (isSomeLoader()) this.error(err);
|
|
238
|
-
});
|
|
239
|
-
return;
|
|
240
|
-
}
|
|
241
|
-
this.#setContent(route, params, contentOrLoader);
|
|
266
|
+
this.update();
|
|
242
267
|
},
|
|
243
268
|
() => {
|
|
244
|
-
const { path } =
|
|
245
|
-
return [this.key, path,
|
|
269
|
+
const { path, query, hash } = this.trigger.getParams();
|
|
270
|
+
return [this.key, path, query, hash] as const;
|
|
246
271
|
},
|
|
247
272
|
);
|
|
248
273
|
}
|
|
249
274
|
|
|
250
275
|
shouldUpdate() {
|
|
251
|
-
|
|
252
|
-
return true;
|
|
276
|
+
return this.inert ? false : true;
|
|
253
277
|
}
|
|
254
278
|
|
|
255
279
|
render() {
|
|
@@ -266,6 +290,33 @@ export class GemRouteElement extends GemElement<State> {
|
|
|
266
290
|
${content ?? html`<slot></slot>`}
|
|
267
291
|
`;
|
|
268
292
|
}
|
|
293
|
+
|
|
294
|
+
update = () => {
|
|
295
|
+
const { route, params = {} } = GemRouteElement.findRoute(this.routes, this.trigger.getParams().path);
|
|
296
|
+
const { redirect, content, getContent } = route || {};
|
|
297
|
+
if (redirect) {
|
|
298
|
+
this.trigger.replace({ path: redirect });
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
if (this.trigger === history) {
|
|
302
|
+
updateStore(titleStore, { title: route?.title });
|
|
303
|
+
}
|
|
304
|
+
const contentOrLoader = content || getContent?.(params);
|
|
305
|
+
this.loading(route);
|
|
306
|
+
if (contentOrLoader instanceof Promise) {
|
|
307
|
+
this.#lastLoader = contentOrLoader;
|
|
308
|
+
const isSomeLoader = () => this.#lastLoader === contentOrLoader;
|
|
309
|
+
contentOrLoader
|
|
310
|
+
.then((content) => {
|
|
311
|
+
if (isSomeLoader()) this.#setContent(route, params, content);
|
|
312
|
+
})
|
|
313
|
+
.catch((err) => {
|
|
314
|
+
if (isSomeLoader()) this.error(err);
|
|
315
|
+
});
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
318
|
+
this.#setContent(route, params, contentOrLoader);
|
|
319
|
+
};
|
|
269
320
|
}
|
|
270
321
|
|
|
271
322
|
export class GemLightRouteElement extends GemRouteElement {
|
|
@@ -17,18 +17,24 @@ import { GemElement, html } from '../../lib/element';
|
|
|
17
17
|
import { attribute, boolattribute } from '../../lib/decorators';
|
|
18
18
|
import { updateStore, connect } from '../../lib/store';
|
|
19
19
|
import { titleStore } from '../../lib/history';
|
|
20
|
+
import { addMicrotask } from '../../lib/utils';
|
|
20
21
|
|
|
21
22
|
const defaultTitle = document.title;
|
|
22
23
|
|
|
24
|
+
let documentTitle = '';
|
|
25
|
+
const setTitle = () => (document.title = documentTitle);
|
|
26
|
+
|
|
23
27
|
function setDocumentTitle(str?: string | null, prefix = '', suffix = '') {
|
|
24
28
|
const title = titleStore.title || str;
|
|
25
29
|
if (title && title !== defaultTitle) {
|
|
26
30
|
GemTitleElement.title = title;
|
|
27
|
-
|
|
31
|
+
documentTitle = prefix + GemTitleElement.title + suffix;
|
|
28
32
|
} else {
|
|
29
33
|
GemTitleElement.title = defaultTitle;
|
|
30
|
-
|
|
34
|
+
documentTitle = GemTitleElement.title;
|
|
31
35
|
}
|
|
36
|
+
// 避免重定向时的中间状态
|
|
37
|
+
addMicrotask(setTitle);
|
|
32
38
|
}
|
|
33
39
|
|
|
34
40
|
connect(titleStore, setDocumentTitle);
|
|
@@ -62,6 +68,7 @@ export class GemTitleElement extends GemElement {
|
|
|
62
68
|
super();
|
|
63
69
|
new MutationObserver(() => this.update()).observe(this, {
|
|
64
70
|
characterData: true,
|
|
71
|
+
childList: true,
|
|
65
72
|
subtree: true,
|
|
66
73
|
});
|
|
67
74
|
}
|
package/src/helper/i18n.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { createStore, updateStore, Store } from '../lib/store';
|
|
2
2
|
import { html, TemplateResult } from '../lib/element';
|
|
3
3
|
import { GemError } from '../lib/utils';
|
|
4
|
+
import type { RouteTrigger } from '../elements/base/route';
|
|
5
|
+
|
|
6
|
+
import { logger } from './logger';
|
|
4
7
|
|
|
5
8
|
// Hello, $1
|
|
6
9
|
// See $1<detail>
|
|
@@ -59,7 +62,7 @@ interface I18nOptions<T> {
|
|
|
59
62
|
onChange?: (currentLanguage: string) => void;
|
|
60
63
|
}
|
|
61
64
|
|
|
62
|
-
export class I18n<T = Record<string, Msg>> {
|
|
65
|
+
export class I18n<T = Record<string, Msg>> implements RouteTrigger {
|
|
63
66
|
resources: Resources<T>;
|
|
64
67
|
fallbackLanguage: string;
|
|
65
68
|
currentLanguage: string;
|
|
@@ -71,6 +74,12 @@ export class I18n<T = Record<string, Msg>> {
|
|
|
71
74
|
|
|
72
75
|
store: Store<any>;
|
|
73
76
|
|
|
77
|
+
replace = ({ path }: { path: string }) => {
|
|
78
|
+
this.setLanguage(path);
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
getParams = () => ({ path: this.currentLanguage });
|
|
82
|
+
|
|
74
83
|
get #cacheCurrentKey() {
|
|
75
84
|
return `${this.cachePrefix}:current`;
|
|
76
85
|
}
|
|
@@ -164,8 +173,7 @@ export class I18n<T = Record<string, Msg>> {
|
|
|
164
173
|
let pack: Partial<T>;
|
|
165
174
|
const data = this.resources[lang];
|
|
166
175
|
if (!data) {
|
|
167
|
-
|
|
168
|
-
console.warn(`${this.cachePrefix}: not found \`${lang}\``);
|
|
176
|
+
logger.warn(`${this.cachePrefix}: not found \`${lang}\``);
|
|
169
177
|
return this.resetLanguage();
|
|
170
178
|
}
|
|
171
179
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export class Logger {
|
|
2
|
+
_type: string;
|
|
3
|
+
|
|
4
|
+
constructor(type: string) {
|
|
5
|
+
this._type = type;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
info = (...args: any[]) => {
|
|
9
|
+
console.log(`[${this._type}]:`, ...args);
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
warn = (...args: any[]) => {
|
|
13
|
+
console.warn(`[${this._type}]:`, ...args);
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
error = (...args: any[]) => {
|
|
17
|
+
console.error(`[${this._type}]:`, ...args);
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export const logger = new Logger('GEM');
|
package/src/helper/ssr-shim.ts
CHANGED
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
// @ts-nocheck
|
|
3
3
|
if (typeof window === 'undefined') {
|
|
4
4
|
const getAny = () => {
|
|
5
|
-
|
|
5
|
+
// constructable
|
|
6
|
+
function anonymous() {
|
|
7
|
+
return getAny();
|
|
8
|
+
}
|
|
6
9
|
Object.defineProperties(anonymous, {
|
|
7
10
|
length: { writable: true },
|
|
8
11
|
name: { writable: true },
|
|
@@ -16,14 +19,21 @@ if (typeof window === 'undefined') {
|
|
|
16
19
|
};
|
|
17
20
|
const any = getAny();
|
|
18
21
|
|
|
22
|
+
globalThis.window = globalThis;
|
|
23
|
+
globalThis.location = new URL('about:blank');
|
|
24
|
+
globalThis.HTMLElement = null;
|
|
25
|
+
|
|
19
26
|
globalThis.document = any;
|
|
20
27
|
globalThis.addEventListener = any;
|
|
21
28
|
globalThis.history = any;
|
|
22
29
|
globalThis.navigator = any;
|
|
23
30
|
globalThis.customElements = any;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
globalThis.
|
|
31
|
+
|
|
32
|
+
// duoyun-ui
|
|
33
|
+
globalThis.CSSStyleSheet = any;
|
|
34
|
+
globalThis.Document = any;
|
|
35
|
+
globalThis.Element = any;
|
|
36
|
+
globalThis.MutationObserver = any;
|
|
27
37
|
}
|
|
28
38
|
|
|
29
39
|
export {};
|