@mantou/gem 1.7.5 → 1.7.7
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 +59 -50
- package/dist/gem.umd.js +23 -23
- package/elements/base/modal-factory.d.ts +2 -1
- package/elements/base/modal-factory.d.ts.map +1 -1
- package/elements/base/route.d.ts +1 -1
- package/elements/base/route.d.ts.map +1 -1
- package/elements/base/title.d.ts +3 -1
- package/elements/base/title.d.ts.map +1 -1
- package/elements/base/title.js +15 -16
- package/elements/base/title.js.map +1 -1
- package/helper/theme.d.ts +3 -0
- package/helper/theme.d.ts.map +1 -1
- package/helper/theme.js +6 -0
- package/helper/theme.js.map +1 -1
- package/lib/element.d.ts +1 -1
- package/lib/element.d.ts.map +1 -1
- package/lib/element.js +16 -18
- package/lib/element.js.map +1 -1
- package/lib/history.d.ts.map +1 -1
- package/lib/history.js +18 -13
- package/lib/history.js.map +1 -1
- package/lib/store.d.ts +2 -9
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +7 -9
- package/lib/store.js.map +1 -1
- package/lib/utils.d.ts +21 -4
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +87 -1
- package/lib/utils.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +11 -7
- package/src/elements/base/route.ts +1 -1
- package/src/elements/base/title.ts +14 -11
- package/src/helper/theme.ts +7 -0
- package/src/lib/element.ts +10 -10
- package/src/lib/history.ts +18 -13
- package/src/lib/store.ts +7 -17
- package/src/lib/utils.ts +102 -5
- package/src/lib/version.ts +1 -1
- package/src/test/gem-element/advance.test.ts +12 -1
- package/src/test/gem-element/decorators.test.ts +17 -21
- package/src/test/gem-element/multi.test.ts +8 -5
- package/src/test/store.test.ts +1 -3
- package/src/test/utils.test.ts +24 -0
package/lib/utils.js
CHANGED
|
@@ -334,7 +334,7 @@ export function objectMapToString(object, separate, toString) {
|
|
|
334
334
|
}
|
|
335
335
|
// 不支持 webkit 属性
|
|
336
336
|
export function styleMap(object) {
|
|
337
|
-
return objectMapToString(object, ';', (key, value) => value !== undefined ? `${camelToKebabCase(key)}:${value}` : '');
|
|
337
|
+
return objectMapToString(object, ';', (key, value) => value !== undefined && value !== null ? `${camelToKebabCase(key)}:${value}` : '');
|
|
338
338
|
}
|
|
339
339
|
export function classMap(object) {
|
|
340
340
|
return objectMapToString(object, ' ', (key, value) => (value ? key : ''));
|
|
@@ -344,4 +344,90 @@ export const partMap = classMap;
|
|
|
344
344
|
export function exportPartsMap(object) {
|
|
345
345
|
return objectMapToString(object, ',', (key, value) => value === true || key === value ? key : value ? `${key}:${value}` : '');
|
|
346
346
|
}
|
|
347
|
+
/**
|
|
348
|
+
* @example
|
|
349
|
+
* ```css
|
|
350
|
+
* animation: 150ms ease 0ms showMask;`
|
|
351
|
+
* @keyframes showMask {
|
|
352
|
+
* from {
|
|
353
|
+
* opacity: 0;
|
|
354
|
+
* }
|
|
355
|
+
* }
|
|
356
|
+
* ```
|
|
357
|
+
*/
|
|
358
|
+
// export function createCSSAnimation(
|
|
359
|
+
// keyframes: PropertyIndexedKeyframes | Keyframe[],
|
|
360
|
+
// options?: number | (KeyframeEffectOptions & { name: string }),
|
|
361
|
+
// ) {
|
|
362
|
+
// const frames = new Map<number, StyleObject>();
|
|
363
|
+
// if (Array.isArray(keyframes)) {
|
|
364
|
+
// keyframes.forEach((keyframe, index) => {
|
|
365
|
+
// const offset = keyframes.length === 1 ? 1 : keyframe.offset || index / (keyframes.length - 1);
|
|
366
|
+
// frames.set(offset, {
|
|
367
|
+
// ...keyframe,
|
|
368
|
+
// // https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API/Keyframe_Formats#attributes
|
|
369
|
+
// cssOffset: undefined,
|
|
370
|
+
// offset: keyframe.cssOffset,
|
|
371
|
+
// composite: undefined,
|
|
372
|
+
// animationComposition: keyframe.composite,
|
|
373
|
+
// easing: undefined,
|
|
374
|
+
// animationTimingFunction: keyframe.easing,
|
|
375
|
+
// } as StyleObject);
|
|
376
|
+
// });
|
|
377
|
+
// } else {
|
|
378
|
+
// const offsetList: (number | null)[] = Array.isArray(keyframes.offset)
|
|
379
|
+
// ? keyframes.offset
|
|
380
|
+
// : keyframes.offset === undefined
|
|
381
|
+
// ? []
|
|
382
|
+
// : [keyframes.offset];
|
|
383
|
+
// if (offsetList.length && offsetList.at(-1) !== 1) offsetList.push(1);
|
|
384
|
+
// const setStyle = (offset: number, key: string, value: string | number | null | undefined) => {
|
|
385
|
+
// const style = frames.get(offset) || {};
|
|
386
|
+
// switch (key) {
|
|
387
|
+
// case 'offset':
|
|
388
|
+
// break;
|
|
389
|
+
// case 'cssOffset':
|
|
390
|
+
// Reflect.set(style, 'offset', value);
|
|
391
|
+
// break;
|
|
392
|
+
// case 'composite':
|
|
393
|
+
// Reflect.set(style, 'animationComposition', value);
|
|
394
|
+
// break;
|
|
395
|
+
// case 'easing':
|
|
396
|
+
// Reflect.set(style, 'animationTimingFunction', value);
|
|
397
|
+
// break;
|
|
398
|
+
// default:
|
|
399
|
+
// Reflect.set(style, key, value);
|
|
400
|
+
// }
|
|
401
|
+
// frames.set(offset, style);
|
|
402
|
+
// };
|
|
403
|
+
// for (const key in keyframes) {
|
|
404
|
+
// const framesValue = keyframes[key];
|
|
405
|
+
// !Array.isArray(framesValue)
|
|
406
|
+
// ? setStyle(1, key, framesValue)
|
|
407
|
+
// : framesValue.length === 1
|
|
408
|
+
// ? setStyle(1, key, framesValue[0])
|
|
409
|
+
// : framesValue.forEach((value, index) =>
|
|
410
|
+
// setStyle(offsetList[index] ?? index / (framesValue.length - 1), key, value),
|
|
411
|
+
// );
|
|
412
|
+
// }
|
|
413
|
+
// }
|
|
414
|
+
// let framesStr = '';
|
|
415
|
+
// frames.forEach((rules, offset) => {
|
|
416
|
+
// framesStr += `${(offset * 100).toFixed()}%{${styleMap(rules)}}`;
|
|
417
|
+
// });
|
|
418
|
+
// if (options) {
|
|
419
|
+
// const {
|
|
420
|
+
// // 只能使用 ms 数字
|
|
421
|
+
// duration = 0,
|
|
422
|
+
// easing = '',
|
|
423
|
+
// delay = 0,
|
|
424
|
+
// iterations = 1,
|
|
425
|
+
// direction = '',
|
|
426
|
+
// fill = '',
|
|
427
|
+
// name = `ani-${randomStr()}`,
|
|
428
|
+
// } = typeof options === 'number' ? ({ duration: options } as Exclude<typeof options, number>) : options;
|
|
429
|
+
// return `${duration}ms ${easing} ${delay}ms ${iterations} ${direction} ${fill} ${name};@keyframes ${name}{${framesStr}}`;
|
|
430
|
+
// }
|
|
431
|
+
// return framesStr;
|
|
432
|
+
// }
|
|
347
433
|
//# sourceMappingURL=utils.js.map
|
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.7";
|
|
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.7';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mantou/gem",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.7",
|
|
4
4
|
"description": "💎 使用自定义元素的轻量级 WebApp 开发框架",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"frontend",
|
|
7
|
+
"web components",
|
|
8
|
+
"custom elements",
|
|
9
|
+
"global state management",
|
|
10
|
+
"framework"
|
|
11
|
+
],
|
|
12
|
+
"esm.sh": {
|
|
13
|
+
"bundle": false
|
|
14
|
+
},
|
|
5
15
|
"main": "index.js",
|
|
6
16
|
"module": "index.js",
|
|
7
17
|
"exports": {
|
|
@@ -28,12 +38,6 @@
|
|
|
28
38
|
"start": "yarn build:module --watch",
|
|
29
39
|
"test": "cross-env NODE_OPTIONS=--no-experimental-fetch wtr"
|
|
30
40
|
},
|
|
31
|
-
"keywords": [
|
|
32
|
-
"web",
|
|
33
|
-
"webcomponents",
|
|
34
|
-
"global state management",
|
|
35
|
-
"web framework"
|
|
36
|
-
],
|
|
37
41
|
"dependencies": {
|
|
38
42
|
"lit-html": "^1.4.1"
|
|
39
43
|
},
|
|
@@ -74,7 +74,7 @@ export interface RouteItem<T = unknown> {
|
|
|
74
74
|
data?: T;
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
type RoutesObject = Record<string, RouteItem>;
|
|
77
|
+
export type RoutesObject = Record<string, RouteItem>;
|
|
78
78
|
|
|
79
79
|
// params 中的成员不会验证
|
|
80
80
|
export interface RouteOptions extends Omit<UpdateHistoryParams, 'path'> {
|
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
import { GemElement, html } from '../../lib/element';
|
|
17
|
-
import { attribute,
|
|
17
|
+
import { attribute, boolattribute } from '../../lib/decorators';
|
|
18
18
|
import { updateStore, connect } from '../../lib/store';
|
|
19
19
|
import { titleStore } from '../../lib/history';
|
|
20
20
|
|
|
21
21
|
const defaultTitle = document.title;
|
|
22
22
|
|
|
23
|
-
function
|
|
23
|
+
function setDocumentTitle(str?: string | null, prefix = '', suffix = '') {
|
|
24
24
|
const title = titleStore.title || str;
|
|
25
25
|
if (title && title !== defaultTitle) {
|
|
26
26
|
GemTitleElement.title = title;
|
|
@@ -31,18 +31,20 @@ function updateTitle(str?: string | null, prefix = '', suffix = '') {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
connect(titleStore, setDocumentTitle);
|
|
35
|
+
|
|
34
36
|
export const PREFIX = `${defaultTitle} | `;
|
|
35
37
|
export const SUFFIX = ` - ${defaultTitle}`;
|
|
36
38
|
|
|
37
39
|
/**
|
|
38
|
-
*
|
|
40
|
+
* 映射到 `document.title`
|
|
39
41
|
* @attr prefix
|
|
40
42
|
* @attr suffix
|
|
41
43
|
*/
|
|
42
|
-
@connectStore(titleStore)
|
|
43
44
|
export class GemTitleElement extends GemElement {
|
|
44
45
|
@attribute prefix: string;
|
|
45
46
|
@attribute suffix: string;
|
|
47
|
+
@boolattribute inert: boolean;
|
|
46
48
|
|
|
47
49
|
// 没有后缀的当前标题
|
|
48
50
|
static title = document.title;
|
|
@@ -64,15 +66,16 @@ export class GemTitleElement extends GemElement {
|
|
|
64
66
|
});
|
|
65
67
|
}
|
|
66
68
|
|
|
69
|
+
mounted = () => {
|
|
70
|
+
this.effect(
|
|
71
|
+
() => !this.inert && connect(titleStore, this.update),
|
|
72
|
+
() => [this.inert],
|
|
73
|
+
);
|
|
74
|
+
};
|
|
75
|
+
|
|
67
76
|
render() {
|
|
68
77
|
// 多个 <gem-title> 时,最终 document.title 按执行顺序决定
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
if (this.hidden) {
|
|
72
|
-
return html``;
|
|
73
|
-
}
|
|
78
|
+
setDocumentTitle(this.textContent?.trim(), this.prefix, this.suffix);
|
|
74
79
|
return html`${GemTitleElement.title}`;
|
|
75
80
|
}
|
|
76
81
|
}
|
|
77
|
-
|
|
78
|
-
connect(titleStore, updateTitle);
|
package/src/helper/theme.ts
CHANGED
|
@@ -7,12 +7,14 @@ type SomeType<T> = {
|
|
|
7
7
|
|
|
8
8
|
const themeStoreMap = new WeakMap();
|
|
9
9
|
|
|
10
|
+
/**获取主题原始值 */
|
|
10
11
|
export function getThemeStore<T>(theme: SomeType<T>) {
|
|
11
12
|
return themeStoreMap.get(theme) as Store<T>;
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
const themePropsMap = new WeakMap();
|
|
15
16
|
|
|
17
|
+
/**获取 css 变量名 */
|
|
16
18
|
export function getThemeProps<T>(theme: SomeType<T>) {
|
|
17
19
|
return themePropsMap.get(theme) as SomeType<T>;
|
|
18
20
|
}
|
|
@@ -62,3 +64,8 @@ export function updateTheme<T = Record<string, unknown>>(theme: SomeType<T>, new
|
|
|
62
64
|
updateStore(getThemeStore(theme), newThemeObj);
|
|
63
65
|
setThemeFnMap.get(theme)();
|
|
64
66
|
}
|
|
67
|
+
|
|
68
|
+
export function useTheme<T extends Record<string, unknown>>(themeObj: T) {
|
|
69
|
+
const theme = createTheme(themeObj);
|
|
70
|
+
return [theme, (newThemeObj: Partial<T>) => updateTheme(theme, newThemeObj)] as const;
|
|
71
|
+
}
|
package/src/lib/element.ts
CHANGED
|
@@ -359,6 +359,7 @@ export abstract class GemElement<T = Record<string, unknown>> extends HTMLElemen
|
|
|
359
359
|
return GemElement.#final;
|
|
360
360
|
}
|
|
361
361
|
|
|
362
|
+
#disconnectStore?: (() => void)[];
|
|
362
363
|
#connectedCallback = () => {
|
|
363
364
|
if (this.#isAppendReason) {
|
|
364
365
|
this.#isAppendReason = false;
|
|
@@ -370,15 +371,17 @@ export abstract class GemElement<T = Record<string, unknown>> extends HTMLElemen
|
|
|
370
371
|
|
|
371
372
|
this.willMount?.();
|
|
372
373
|
const { observedStores, rootElement } = this.constructor as typeof GemElement;
|
|
373
|
-
observedStores?.
|
|
374
|
-
connect(store, this.#update);
|
|
375
|
-
});
|
|
374
|
+
this.#disconnectStore = observedStores?.map((store) => connect(store, this.#update));
|
|
376
375
|
const temp = this.#render();
|
|
377
376
|
temp !== undefined && render(temp, this.#renderRoot);
|
|
378
377
|
this.#isMounted = true;
|
|
379
378
|
this.#unmountCallback = this.mounted?.();
|
|
380
379
|
this.#initEffect();
|
|
381
|
-
if (
|
|
380
|
+
if (
|
|
381
|
+
rootElement &&
|
|
382
|
+
this.isConnected &&
|
|
383
|
+
(this.getRootNode() as ShadowRoot).host?.tagName !== rootElement.toUpperCase()
|
|
384
|
+
) {
|
|
382
385
|
throw new GemError(`not allow current root type`);
|
|
383
386
|
}
|
|
384
387
|
};
|
|
@@ -406,10 +409,10 @@ export abstract class GemElement<T = Record<string, unknown>> extends HTMLElemen
|
|
|
406
409
|
/**
|
|
407
410
|
* @private
|
|
408
411
|
* @final
|
|
409
|
-
* use `mounted`
|
|
412
|
+
* use `mounted`; 允许手动调用 `connectedCallback` 以清除装饰器定义的字段
|
|
410
413
|
*/
|
|
411
414
|
connectedCallback() {
|
|
412
|
-
if (this.#isAsync) {
|
|
415
|
+
if (this.isConnected && this.#isAsync) {
|
|
413
416
|
asyncRenderTaskList.add(this.#connectedCallback);
|
|
414
417
|
} else {
|
|
415
418
|
this.#connectedCallback();
|
|
@@ -436,10 +439,7 @@ export abstract class GemElement<T = Record<string, unknown>> extends HTMLElemen
|
|
|
436
439
|
return;
|
|
437
440
|
}
|
|
438
441
|
this.#isMounted = false;
|
|
439
|
-
|
|
440
|
-
observedStores?.forEach((store) => {
|
|
441
|
-
disconnect(store, this.#update);
|
|
442
|
-
});
|
|
442
|
+
this.#disconnectStore?.forEach((disconnect) => disconnect());
|
|
443
443
|
execCallback(this.#unmountCallback);
|
|
444
444
|
this.unmounted?.();
|
|
445
445
|
this.#effectList?.forEach(({ preCallback }) => execCallback(preCallback));
|
package/src/lib/history.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// https://github.com/WICG/navigation-api#stakeholder-feedback
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { connect, useStore } from './store';
|
|
4
4
|
import { QueryString, cleanObject, GemError, absoluteLocation } from './utils';
|
|
5
5
|
|
|
6
6
|
const nativeHistory = window.history;
|
|
@@ -18,7 +18,7 @@ export interface HistoryState {
|
|
|
18
18
|
[index: string]: any;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
const store =
|
|
21
|
+
const [store, updateHistoryStore] = useStore<HistoryState>({
|
|
22
22
|
$hasCloseHandle: false,
|
|
23
23
|
$hasOpenHandle: false,
|
|
24
24
|
$hasShouldCloseHandle: false,
|
|
@@ -85,10 +85,12 @@ function updateHistory(p: UpdateHistoryParams, native: typeof nativeHistory.push
|
|
|
85
85
|
$hasOpenHandle: !!open,
|
|
86
86
|
$hasShouldCloseHandle: !!shouldClose,
|
|
87
87
|
$key: getKey(),
|
|
88
|
+
$title: title,
|
|
88
89
|
...data,
|
|
89
90
|
};
|
|
90
91
|
paramsMap.set(state.$key, params);
|
|
91
|
-
|
|
92
|
+
cleanObject(store);
|
|
93
|
+
updateHistoryStore(state);
|
|
92
94
|
const url = getUrlBarPath(path) + new QueryString(query) + hash;
|
|
93
95
|
const prevHash = decodeURIComponent(location.hash);
|
|
94
96
|
native(state, title, url);
|
|
@@ -100,12 +102,14 @@ function updateHistoryByNative(data: any, title: string, originUrl: string, nati
|
|
|
100
102
|
validData(data);
|
|
101
103
|
const state = {
|
|
102
104
|
$key: getKey(),
|
|
105
|
+
$title: title,
|
|
103
106
|
...(data || {}),
|
|
104
107
|
};
|
|
105
108
|
const { pathname, search, hash } = new URL(originUrl, location.origin + location.pathname);
|
|
106
109
|
const params = normalizeParams({ path: pathname, query: new QueryString(search), hash, title, data });
|
|
107
110
|
paramsMap.set(state.$key, params);
|
|
108
|
-
|
|
111
|
+
cleanObject(store);
|
|
112
|
+
updateHistoryStore(state);
|
|
109
113
|
const url = getUrlBarPath(pathname) + params.query + hash;
|
|
110
114
|
const prevHash = location.hash;
|
|
111
115
|
native(state, title, url);
|
|
@@ -113,7 +117,7 @@ function updateHistoryByNative(data: any, title: string, originUrl: string, nati
|
|
|
113
117
|
if (prevHash !== hash) window.dispatchEvent(new CustomEvent('hashchange'));
|
|
114
118
|
}
|
|
115
119
|
|
|
116
|
-
const gemBasePathStore =
|
|
120
|
+
const [gemBasePathStore, updateBasePathStore] = useStore({
|
|
117
121
|
basePath: '',
|
|
118
122
|
});
|
|
119
123
|
|
|
@@ -126,7 +130,7 @@ class GemHistory {
|
|
|
126
130
|
}
|
|
127
131
|
set basePath(basePath: string) {
|
|
128
132
|
// 应用初始化的时候设置
|
|
129
|
-
|
|
133
|
+
updateBasePathStore({ basePath });
|
|
130
134
|
// paramsMap 更新后 ui 才会更新
|
|
131
135
|
Object.assign(paramsMap.get(store.$key)!, { path: getInternalPath(location.pathname) });
|
|
132
136
|
}
|
|
@@ -135,7 +139,7 @@ class GemHistory {
|
|
|
135
139
|
}
|
|
136
140
|
updateParams(params: UpdateHistoryParams) {
|
|
137
141
|
Object.assign(paramsMap.get(store.$key)!, params);
|
|
138
|
-
|
|
142
|
+
updateHistoryStore();
|
|
139
143
|
}
|
|
140
144
|
push(params: UpdateHistoryParams) {
|
|
141
145
|
updateHistory(params, nativePushState);
|
|
@@ -162,7 +166,7 @@ class GemHistory {
|
|
|
162
166
|
// `<gem-**>` 只读写父应用 `basePath`
|
|
163
167
|
const gemHistory = new GemHistory();
|
|
164
168
|
|
|
165
|
-
const gemTitleStore =
|
|
169
|
+
const [gemTitleStore, updateTitleStore] = useStore({ title: '' });
|
|
166
170
|
|
|
167
171
|
const _GEMHISTORY = { history: gemHistory, titleStore: gemTitleStore, basePathStore: gemBasePathStore };
|
|
168
172
|
|
|
@@ -195,7 +199,7 @@ if (!window._GEMHISTORY) {
|
|
|
195
199
|
const { pathname, search, hash } = location;
|
|
196
200
|
gemHistory.replace({ path: pathname, query: search, hash });
|
|
197
201
|
} else if (nativeHistory.state.$hasCloseHandle) {
|
|
198
|
-
|
|
202
|
+
updateHistoryStore(nativeHistory.state);
|
|
199
203
|
const params = normalizeParams({ title: document.title });
|
|
200
204
|
paramsMap.set(store.$key, params);
|
|
201
205
|
// 有 handle 返回键的页面刷新需要清除返回 handler
|
|
@@ -203,7 +207,7 @@ if (!window._GEMHISTORY) {
|
|
|
203
207
|
} else {
|
|
204
208
|
// 有 gem 历史的正常普通刷新, 储存 params
|
|
205
209
|
const params = normalizeParams({ title: document.title, hash: location.hash });
|
|
206
|
-
|
|
210
|
+
updateHistoryStore({
|
|
207
211
|
$key: getKey(),
|
|
208
212
|
...(nativeHistory.state || {}),
|
|
209
213
|
});
|
|
@@ -220,7 +224,7 @@ if (!window._GEMHISTORY) {
|
|
|
220
224
|
connect(store, () => {
|
|
221
225
|
const { title } = gemHistory.getParams();
|
|
222
226
|
if (title !== gemTitleStore.title) {
|
|
223
|
-
|
|
227
|
+
updateTitleStore({ title });
|
|
224
228
|
}
|
|
225
229
|
});
|
|
226
230
|
|
|
@@ -251,7 +255,7 @@ if (!window._GEMHISTORY) {
|
|
|
251
255
|
path: pathname,
|
|
252
256
|
query: new QueryString(search),
|
|
253
257
|
hash,
|
|
254
|
-
title:
|
|
258
|
+
title: newState.$title, // document.title 是导航前的
|
|
255
259
|
data: newState,
|
|
256
260
|
});
|
|
257
261
|
}
|
|
@@ -288,7 +292,8 @@ if (!window._GEMHISTORY) {
|
|
|
288
292
|
}
|
|
289
293
|
}
|
|
290
294
|
|
|
291
|
-
|
|
295
|
+
cleanObject(store);
|
|
296
|
+
updateHistoryStore(newState);
|
|
292
297
|
});
|
|
293
298
|
}
|
|
294
299
|
|
package/src/lib/store.ts
CHANGED
|
@@ -13,32 +13,22 @@ export function createStore<T extends NonPrimitive>(originStore: T) {
|
|
|
13
13
|
return originStore as Store<T>;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
interface StoreObjectSet {
|
|
17
|
-
[store: string]: NonPrimitive;
|
|
18
|
-
}
|
|
19
|
-
export type StoreSet<T> = {
|
|
20
|
-
[P in keyof T]: T[P] & Store<T[P]>;
|
|
21
|
-
};
|
|
22
|
-
export function createStoreSet<T extends StoreObjectSet>(originStoreSet: T) {
|
|
23
|
-
const keys = Object.keys(originStoreSet);
|
|
24
|
-
keys.forEach((key) => {
|
|
25
|
-
createStore(originStoreSet[key]);
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
return originStoreSet as StoreSet<T>;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
16
|
export function updateStore<T extends NonPrimitive>(store: Store<T>, value?: Partial<T>) {
|
|
32
17
|
Object.assign(store, value);
|
|
33
|
-
|
|
34
|
-
listeners?.forEach((func) => {
|
|
18
|
+
StoreListenerMap.get(store)?.forEach((func) => {
|
|
35
19
|
addMicrotask(func);
|
|
36
20
|
});
|
|
37
21
|
}
|
|
38
22
|
|
|
23
|
+
export function useStore<T extends NonPrimitive>(originStore: T) {
|
|
24
|
+
const store = createStore(originStore);
|
|
25
|
+
return [store, (value?: Partial<T>) => updateStore(store, value)] as const;
|
|
26
|
+
}
|
|
27
|
+
|
|
39
28
|
export function connect<T extends NonPrimitive>(store: Store<T>, func: () => void) {
|
|
40
29
|
const listeners = StoreListenerMap.get(store);
|
|
41
30
|
listeners?.add(func);
|
|
31
|
+
return () => listeners?.delete(func);
|
|
42
32
|
}
|
|
43
33
|
|
|
44
34
|
export function disconnect<T extends NonPrimitive>(store: Store<T>, func: () => void) {
|
package/src/lib/utils.ts
CHANGED
|
@@ -377,26 +377,123 @@ export function objectMapToString<T = any>(
|
|
|
377
377
|
return result;
|
|
378
378
|
}
|
|
379
379
|
|
|
380
|
-
|
|
380
|
+
// Wait: Typescript lib dom CSSStyleDeclaration anchor position
|
|
381
|
+
type StyleProp = keyof CSSStyleDeclaration | `--${string}` | 'anchorDefault' | 'anchorName';
|
|
381
382
|
|
|
382
|
-
export type StyleObject = Partial<Record<StyleProp, string | number | undefined>>;
|
|
383
|
+
export type StyleObject = Partial<Record<StyleProp, string | number | undefined | null>>;
|
|
383
384
|
|
|
384
385
|
// 不支持 webkit 属性
|
|
385
386
|
export function styleMap(object: StyleObject) {
|
|
386
387
|
return objectMapToString(object, ';', (key, value) =>
|
|
387
|
-
value !== undefined ? `${camelToKebabCase(key)}:${value}` : '',
|
|
388
|
+
value !== undefined && value !== null ? `${camelToKebabCase(key)}:${value}` : '',
|
|
388
389
|
);
|
|
389
390
|
}
|
|
390
391
|
|
|
391
|
-
export function classMap(object: Record<string, boolean | string | number | undefined>) {
|
|
392
|
+
export function classMap(object: Record<string, boolean | string | number | undefined | null>) {
|
|
392
393
|
return objectMapToString(object, ' ', (key, value) => (value ? key : ''));
|
|
393
394
|
}
|
|
394
395
|
|
|
395
396
|
export const partMap = classMap;
|
|
396
397
|
|
|
397
398
|
// https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/exportparts
|
|
398
|
-
export function exportPartsMap(object: Record<string, string | undefined |
|
|
399
|
+
export function exportPartsMap(object: Record<string, string | boolean | undefined | null>) {
|
|
399
400
|
return objectMapToString(object, ',', (key, value) =>
|
|
400
401
|
value === true || key === value ? key : value ? `${key}:${value}` : '',
|
|
401
402
|
);
|
|
402
403
|
}
|
|
404
|
+
|
|
405
|
+
declare global {
|
|
406
|
+
interface PropertyIndexedKeyframes extends StyleObject {}
|
|
407
|
+
interface Keyframe extends StyleObject {}
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
/**
|
|
411
|
+
* @example
|
|
412
|
+
* ```css
|
|
413
|
+
* animation: 150ms ease 0ms showMask;`
|
|
414
|
+
* @keyframes showMask {
|
|
415
|
+
* from {
|
|
416
|
+
* opacity: 0;
|
|
417
|
+
* }
|
|
418
|
+
* }
|
|
419
|
+
* ```
|
|
420
|
+
*/
|
|
421
|
+
// export function createCSSAnimation(
|
|
422
|
+
// keyframes: PropertyIndexedKeyframes | Keyframe[],
|
|
423
|
+
// options?: number | (KeyframeEffectOptions & { name: string }),
|
|
424
|
+
// ) {
|
|
425
|
+
// const frames = new Map<number, StyleObject>();
|
|
426
|
+
// if (Array.isArray(keyframes)) {
|
|
427
|
+
// keyframes.forEach((keyframe, index) => {
|
|
428
|
+
// const offset = keyframes.length === 1 ? 1 : keyframe.offset || index / (keyframes.length - 1);
|
|
429
|
+
// frames.set(offset, {
|
|
430
|
+
// ...keyframe,
|
|
431
|
+
// // https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API/Keyframe_Formats#attributes
|
|
432
|
+
// cssOffset: undefined,
|
|
433
|
+
// offset: keyframe.cssOffset,
|
|
434
|
+
// composite: undefined,
|
|
435
|
+
// animationComposition: keyframe.composite,
|
|
436
|
+
// easing: undefined,
|
|
437
|
+
// animationTimingFunction: keyframe.easing,
|
|
438
|
+
// } as StyleObject);
|
|
439
|
+
// });
|
|
440
|
+
// } else {
|
|
441
|
+
// const offsetList: (number | null)[] = Array.isArray(keyframes.offset)
|
|
442
|
+
// ? keyframes.offset
|
|
443
|
+
// : keyframes.offset === undefined
|
|
444
|
+
// ? []
|
|
445
|
+
// : [keyframes.offset];
|
|
446
|
+
// if (offsetList.length && offsetList.at(-1) !== 1) offsetList.push(1);
|
|
447
|
+
|
|
448
|
+
// const setStyle = (offset: number, key: string, value: string | number | null | undefined) => {
|
|
449
|
+
// const style = frames.get(offset) || {};
|
|
450
|
+
// switch (key) {
|
|
451
|
+
// case 'offset':
|
|
452
|
+
// break;
|
|
453
|
+
// case 'cssOffset':
|
|
454
|
+
// Reflect.set(style, 'offset', value);
|
|
455
|
+
// break;
|
|
456
|
+
// case 'composite':
|
|
457
|
+
// Reflect.set(style, 'animationComposition', value);
|
|
458
|
+
// break;
|
|
459
|
+
// case 'easing':
|
|
460
|
+
// Reflect.set(style, 'animationTimingFunction', value);
|
|
461
|
+
// break;
|
|
462
|
+
// default:
|
|
463
|
+
// Reflect.set(style, key, value);
|
|
464
|
+
// }
|
|
465
|
+
// frames.set(offset, style);
|
|
466
|
+
// };
|
|
467
|
+
// for (const key in keyframes) {
|
|
468
|
+
// const framesValue = keyframes[key];
|
|
469
|
+
// !Array.isArray(framesValue)
|
|
470
|
+
// ? setStyle(1, key, framesValue)
|
|
471
|
+
// : framesValue.length === 1
|
|
472
|
+
// ? setStyle(1, key, framesValue[0])
|
|
473
|
+
// : framesValue.forEach((value, index) =>
|
|
474
|
+
// setStyle(offsetList[index] ?? index / (framesValue.length - 1), key, value),
|
|
475
|
+
// );
|
|
476
|
+
// }
|
|
477
|
+
// }
|
|
478
|
+
|
|
479
|
+
// let framesStr = '';
|
|
480
|
+
// frames.forEach((rules, offset) => {
|
|
481
|
+
// framesStr += `${(offset * 100).toFixed()}%{${styleMap(rules)}}`;
|
|
482
|
+
// });
|
|
483
|
+
|
|
484
|
+
// if (options) {
|
|
485
|
+
// const {
|
|
486
|
+
// // 只能使用 ms 数字
|
|
487
|
+
// duration = 0,
|
|
488
|
+
// easing = '',
|
|
489
|
+
// delay = 0,
|
|
490
|
+
// iterations = 1,
|
|
491
|
+
// direction = '',
|
|
492
|
+
// fill = '',
|
|
493
|
+
// name = `ani-${randomStr()}`,
|
|
494
|
+
// } = typeof options === 'number' ? ({ duration: options } as Exclude<typeof options, number>) : options;
|
|
495
|
+
// return `${duration}ms ${easing} ${delay}ms ${iterations} ${direction} ${fill} ${name};@keyframes ${name}{${framesStr}}`;
|
|
496
|
+
// }
|
|
497
|
+
|
|
498
|
+
// return framesStr;
|
|
499
|
+
// }
|
package/src/lib/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '1.7.
|
|
1
|
+
export const version = '1.7.7';
|