@mantou/gem 1.7.0 → 1.7.2
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 +402 -543
- package/dist/gem.umd.js +27 -33
- package/elements/base/dialog.d.ts +9 -7
- package/elements/base/dialog.d.ts.map +1 -1
- package/elements/base/dialog.js +12 -3
- package/elements/base/dialog.js.map +1 -1
- package/elements/base/gesture.d.ts +4 -13
- package/elements/base/gesture.d.ts.map +1 -1
- package/elements/base/gesture.js +152 -135
- package/elements/base/gesture.js.map +1 -1
- package/elements/base/link.d.ts +12 -9
- package/elements/base/link.d.ts.map +1 -1
- package/elements/base/link.js +81 -62
- package/elements/base/link.js.map +1 -1
- package/elements/base/modal-factory.d.ts +104 -80
- package/elements/base/modal-factory.d.ts.map +1 -1
- package/elements/base/modal-factory.js +12 -8
- package/elements/base/modal-factory.js.map +1 -1
- package/elements/base/reflect.js.map +1 -1
- package/elements/base/route.d.ts +12 -5
- package/elements/base/route.d.ts.map +1 -1
- package/elements/base/route.js +17 -5
- package/elements/base/route.js.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 +14 -16
- package/elements/base/title.js.map +1 -1
- package/elements/base/unsafe.js +1 -1
- package/elements/base/unsafe.js.map +1 -1
- package/elements/base/use.d.ts +1 -1
- package/elements/base/use.d.ts.map +1 -1
- package/elements/base/use.js +28 -20
- package/elements/base/use.js.map +1 -1
- package/helper/i18n.d.ts +4 -4
- package/helper/i18n.d.ts.map +1 -1
- package/helper/i18n.js.map +1 -1
- package/helper/mediaquery.d.ts +16 -18
- package/helper/mediaquery.d.ts.map +1 -1
- package/helper/mediaquery.js +42 -41
- package/helper/mediaquery.js.map +1 -1
- package/helper/request.d.ts +1 -1
- package/helper/request.d.ts.map +1 -1
- package/helper/request.js.map +1 -1
- package/helper/ssr-shim.d.ts +2 -0
- package/helper/ssr-shim.d.ts.map +1 -0
- package/helper/ssr-shim.js +29 -0
- package/helper/ssr-shim.js.map +1 -0
- package/helper/theme.d.ts +2 -2
- package/helper/theme.d.ts.map +1 -1
- package/helper/theme.js +20 -24
- package/helper/theme.js.map +1 -1
- package/index.d.ts +0 -10
- package/index.d.ts.map +1 -1
- package/index.js +0 -7
- package/index.js.map +1 -1
- package/lib/decorators.d.ts +4 -4
- package/lib/decorators.d.ts.map +1 -1
- package/lib/decorators.js +1 -2
- package/lib/decorators.js.map +1 -1
- package/lib/element.d.ts +16 -10
- package/lib/element.d.ts.map +1 -1
- package/lib/element.js +57 -79
- package/lib/element.js.map +1 -1
- package/lib/history.d.ts +1 -1
- package/lib/history.d.ts.map +1 -1
- package/lib/history.js +2 -2
- package/lib/history.js.map +1 -1
- package/lib/store.d.ts +2 -2
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js.map +1 -1
- package/lib/utils.d.ts +8 -32
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +6 -21
- package/lib/utils.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +2 -2
- package/src/elements/base/dialog.ts +10 -3
- package/src/elements/base/gesture.ts +52 -46
- package/src/elements/base/link.ts +69 -61
- package/src/elements/base/modal-factory.ts +5 -0
- package/src/elements/base/route.ts +22 -5
- package/src/elements/base/title.ts +8 -11
- package/src/elements/base/unsafe.ts +1 -1
- package/src/elements/base/use.ts +4 -6
- package/src/helper/i18n.ts +3 -3
- package/src/helper/mediaquery.ts +43 -42
- package/src/helper/ssr-shim.ts +29 -0
- package/src/helper/theme.ts +22 -24
- package/src/index.ts +0 -16
- package/src/lib/decorators.ts +1 -2
- package/src/lib/element.ts +56 -71
- package/src/lib/history.ts +2 -1
- package/src/lib/utils.ts +10 -42
- package/src/lib/version.ts +1 -1
- package/src/test/gem-element/decorators.test.ts +6 -6
- package/src/test/history.test.ts +3 -1
- package/src/test/utils.test.ts +8 -1
package/lib/utils.js
CHANGED
|
@@ -33,7 +33,7 @@ function execMicrotaskStack() {
|
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
35
|
* 添加回调函数到微任务队列栈;
|
|
36
|
-
*
|
|
36
|
+
* 先进后执行,使用这个函数可以改变嵌套的元素 `mounted` 的顺序;
|
|
37
37
|
*/
|
|
38
38
|
export function addMicrotaskToStack(func) {
|
|
39
39
|
if (!microtaskStack.length) {
|
|
@@ -46,7 +46,7 @@ export function absoluteLocation(currentPath = '', relativePath = '') {
|
|
|
46
46
|
return pathname + search + hash;
|
|
47
47
|
}
|
|
48
48
|
// work on nodejs
|
|
49
|
-
export class LinkedList extends
|
|
49
|
+
export class LinkedList extends EventTarget {
|
|
50
50
|
constructor() {
|
|
51
51
|
super(...arguments);
|
|
52
52
|
_LinkedList_instances.add(this);
|
|
@@ -190,24 +190,6 @@ export function css(arr, ...args) {
|
|
|
190
190
|
}
|
|
191
191
|
// 跨多个 gem 工作
|
|
192
192
|
export const SheetToken = Symbol.for('gem@sheetToken');
|
|
193
|
-
// !!! 目前只有 Chrome/FirefoxNightly 支持
|
|
194
|
-
// https://bugzilla.mozilla.org/show_bug.cgi?id=1520690
|
|
195
|
-
// https://bugs.webkit.org/show_bug.cgi?id=228684
|
|
196
|
-
export let useNativeCSSStyleSheet = true;
|
|
197
|
-
let CSSStyleSheet = window.CSSStyleSheet;
|
|
198
|
-
try {
|
|
199
|
-
new CSSStyleSheet();
|
|
200
|
-
}
|
|
201
|
-
catch (_a) {
|
|
202
|
-
useNativeCSSStyleSheet = false;
|
|
203
|
-
CSSStyleSheet = class {
|
|
204
|
-
constructor() {
|
|
205
|
-
this.media = { mediaText: '' };
|
|
206
|
-
this.style = '';
|
|
207
|
-
this.replaceSync = (style) => (this.style = style);
|
|
208
|
-
}
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
193
|
/**
|
|
212
194
|
*
|
|
213
195
|
* 创建 style sheet 用于 `adoptedStyleSheets`,不支持样式更新
|
|
@@ -243,6 +225,8 @@ export function randomStr(number = 5, origin = '0123456789abcdefghijklmnopqrstuv
|
|
|
243
225
|
const nestingRuleRegExp = new RegExp('&.*{((.|\n)*)}', 'g');
|
|
244
226
|
// 只支持一层嵌套
|
|
245
227
|
// https://drafts.csswg.org/css-nesting-1/
|
|
228
|
+
// https://bugzilla.mozilla.org/show_bug.cgi?id=1648037
|
|
229
|
+
// https://bugs.webkit.org/show_bug.cgi?id=223497
|
|
246
230
|
function flatStyled(style, type) {
|
|
247
231
|
const nestingRules = [];
|
|
248
232
|
let styledContent = `& {${style.replace(nestingRuleRegExp, (substr) => {
|
|
@@ -333,7 +317,8 @@ export function classMap(object) {
|
|
|
333
317
|
return objectMapToString(object, ' ', (key, value) => (value ? key : ''));
|
|
334
318
|
}
|
|
335
319
|
export const partMap = classMap;
|
|
320
|
+
// https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/exportparts
|
|
336
321
|
export function exportPartsMap(object) {
|
|
337
|
-
return objectMapToString(object, ',', (key, value) =>
|
|
322
|
+
return objectMapToString(object, ',', (key, value) => value === true || key === value ? key : value ? `${key}:${value}` : '');
|
|
338
323
|
}
|
|
339
324
|
//# 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.2";
|
|
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.2';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mantou/gem",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.2",
|
|
4
4
|
"description": "💎 使用自定义元素的轻量级 WebApp 开发框架",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"module": "index.js",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"@web/dev-server-esbuild": "^0.2.16",
|
|
45
45
|
"@web/test-runner": "^0.13.22",
|
|
46
46
|
"rimraf": "^3.0.2",
|
|
47
|
-
"typescript": "^
|
|
47
|
+
"typescript": "^5.3.2",
|
|
48
48
|
"vite": "^2.7.13"
|
|
49
49
|
},
|
|
50
50
|
"author": "mantou132",
|
|
@@ -2,26 +2,28 @@ import { GemElement } from '../../lib/element';
|
|
|
2
2
|
import { attribute, state, connectStore } from '../../lib/decorators';
|
|
3
3
|
import { history } from '../../lib/history';
|
|
4
4
|
|
|
5
|
+
const final = Symbol();
|
|
6
|
+
|
|
5
7
|
/**
|
|
6
8
|
* 在模版中声明的 dialog,使用 `open` 方法 打开;
|
|
7
|
-
* 如果要应用关闭动画,可以在动画执行完后设置 `hidden` 属性;
|
|
8
9
|
* 模拟 top layer:https://github.com/whatwg/html/issues/4633.
|
|
9
10
|
*
|
|
10
11
|
* @attr label
|
|
12
|
+
* @fires open
|
|
13
|
+
* @fires close
|
|
11
14
|
*/
|
|
12
15
|
@connectStore(history.store)
|
|
13
16
|
export abstract class GemDialogBaseElement extends GemElement {
|
|
14
17
|
@attribute label: string;
|
|
15
18
|
@state opened: boolean;
|
|
16
19
|
|
|
17
|
-
inert = true;
|
|
18
|
-
|
|
19
20
|
#nextSibling: ChildNode | null;
|
|
20
21
|
#parentElement: Node | null;
|
|
21
22
|
#inertStore: HTMLElement[] = [];
|
|
22
23
|
|
|
23
24
|
constructor() {
|
|
24
25
|
super();
|
|
26
|
+
this.inert = true;
|
|
25
27
|
this.internals.role = 'dialog';
|
|
26
28
|
this.internals.ariaModal = 'true';
|
|
27
29
|
}
|
|
@@ -40,6 +42,7 @@ export abstract class GemDialogBaseElement extends GemElement {
|
|
|
40
42
|
}
|
|
41
43
|
this.dispatchEvent(new CustomEvent('close'));
|
|
42
44
|
this.opened = false;
|
|
45
|
+
return final;
|
|
43
46
|
};
|
|
44
47
|
|
|
45
48
|
/**
|
|
@@ -56,6 +59,7 @@ export abstract class GemDialogBaseElement extends GemElement {
|
|
|
56
59
|
document.body.append(this);
|
|
57
60
|
this.dispatchEvent(new CustomEvent('open'));
|
|
58
61
|
this.opened = true;
|
|
62
|
+
return final;
|
|
59
63
|
};
|
|
60
64
|
|
|
61
65
|
/**@final */
|
|
@@ -68,6 +72,7 @@ export abstract class GemDialogBaseElement extends GemElement {
|
|
|
68
72
|
close: this.closeHandle,
|
|
69
73
|
shouldClose: this.shouldClose,
|
|
70
74
|
});
|
|
75
|
+
return final;
|
|
71
76
|
};
|
|
72
77
|
|
|
73
78
|
shouldClose() {
|
|
@@ -77,6 +82,7 @@ export abstract class GemDialogBaseElement extends GemElement {
|
|
|
77
82
|
/**@final */
|
|
78
83
|
close = () => {
|
|
79
84
|
history.back();
|
|
85
|
+
return final;
|
|
80
86
|
};
|
|
81
87
|
|
|
82
88
|
/**
|
|
@@ -88,5 +94,6 @@ export abstract class GemDialogBaseElement extends GemElement {
|
|
|
88
94
|
forceClose = () => {
|
|
89
95
|
this.opened = false;
|
|
90
96
|
setTimeout(this.close, 100);
|
|
97
|
+
return final;
|
|
91
98
|
};
|
|
92
99
|
}
|
|
@@ -70,39 +70,41 @@ export class GemGestureElement extends GemElement {
|
|
|
70
70
|
|
|
71
71
|
@attribute touchAction: string;
|
|
72
72
|
|
|
73
|
-
pressed = false; // 触发 press 之后不触发其他事件
|
|
74
|
-
pressTimer = 0;
|
|
75
|
-
|
|
76
|
-
startEventMap: Map<number, PointerEvent> = new Map();
|
|
77
|
-
movesMap: Map<number, PanEventDetail[]> = new Map();
|
|
78
|
-
|
|
79
73
|
constructor() {
|
|
80
74
|
super();
|
|
81
|
-
this.addEventListener('pointerdown', this
|
|
82
|
-
this.addEventListener('pointermove', this
|
|
83
|
-
this.addEventListener('pointerup', this
|
|
84
|
-
this.addEventListener('pointercancel', this
|
|
75
|
+
this.addEventListener('pointerdown', this.#onStart);
|
|
76
|
+
this.addEventListener('pointermove', this.#onMoveSet);
|
|
77
|
+
this.addEventListener('pointerup', this.#onEnd);
|
|
78
|
+
this.addEventListener('pointercancel', this.#onEnd);
|
|
85
79
|
this.addEventListener('dragstart', (evt) => evt.preventDefault());
|
|
86
80
|
}
|
|
87
81
|
|
|
88
|
-
|
|
82
|
+
#pressed = false; // 触发 press 之后不触发其他事件
|
|
83
|
+
#pressTimer = 0;
|
|
84
|
+
|
|
85
|
+
#startEventMap: Map<number, PointerEvent> = new Map();
|
|
86
|
+
|
|
87
|
+
/** 指针移动事件记录 */
|
|
88
|
+
movesMap: Map<number, PanEventDetail[]> = new Map();
|
|
89
|
+
|
|
90
|
+
#getMoves = (pointerId: number) => {
|
|
89
91
|
return this.movesMap.get(pointerId) || [];
|
|
90
|
-
}
|
|
92
|
+
};
|
|
91
93
|
|
|
92
|
-
getStartEvent(pointerId: number) {
|
|
93
|
-
return this
|
|
94
|
-
}
|
|
94
|
+
#getStartEvent = (pointerId: number) => {
|
|
95
|
+
return this.#startEventMap.get(pointerId) as PointerEvent;
|
|
96
|
+
};
|
|
95
97
|
|
|
96
|
-
|
|
98
|
+
#getOtherLastMove = (pointerId: number) => {
|
|
97
99
|
for (const id of this.movesMap.keys()) {
|
|
98
100
|
if (id !== pointerId) {
|
|
99
|
-
const moves = this
|
|
100
|
-
return moves[moves.length - 1] || this
|
|
101
|
+
const moves = this.#getMoves(id);
|
|
102
|
+
return moves[moves.length - 1] || this.#getStartEvent(id);
|
|
101
103
|
}
|
|
102
104
|
}
|
|
103
|
-
}
|
|
105
|
+
};
|
|
104
106
|
|
|
105
|
-
getMovementX(x: number, y: number) {
|
|
107
|
+
#getMovementX = (x: number, y: number) => {
|
|
106
108
|
const touchAction = this.touchAction;
|
|
107
109
|
if (
|
|
108
110
|
(touchAction.includes('pan-right') && x > 0) ||
|
|
@@ -116,9 +118,9 @@ export class GemGestureElement extends GemElement {
|
|
|
116
118
|
return 0;
|
|
117
119
|
}
|
|
118
120
|
return x;
|
|
119
|
-
}
|
|
121
|
+
};
|
|
120
122
|
|
|
121
|
-
getMovementY(x: number, y: number) {
|
|
123
|
+
#getMovementY = (x: number, y: number) => {
|
|
122
124
|
const touchAction = this.touchAction;
|
|
123
125
|
if (
|
|
124
126
|
(touchAction.includes('pan-down') && y > 0) ||
|
|
@@ -132,36 +134,35 @@ export class GemGestureElement extends GemElement {
|
|
|
132
134
|
return 0;
|
|
133
135
|
}
|
|
134
136
|
return y;
|
|
135
|
-
}
|
|
137
|
+
};
|
|
136
138
|
|
|
137
|
-
onStart(evt: PointerEvent) {
|
|
139
|
+
#onStart = (evt: PointerEvent) => {
|
|
138
140
|
evt.stopPropagation();
|
|
139
141
|
this.setPointerCapture(evt.pointerId);
|
|
140
142
|
this.movesMap.set(evt.pointerId, []);
|
|
141
|
-
this
|
|
143
|
+
this.#startEventMap.set(evt.pointerId, evt);
|
|
142
144
|
if (evt.isPrimary) {
|
|
143
|
-
this
|
|
144
|
-
this
|
|
145
|
+
this.#pressed = false;
|
|
146
|
+
this.#pressTimer = window.setTimeout(() => {
|
|
145
147
|
this.press(null);
|
|
146
|
-
this
|
|
148
|
+
this.#pressed = true;
|
|
147
149
|
}, 251);
|
|
148
150
|
}
|
|
149
|
-
}
|
|
151
|
+
};
|
|
150
152
|
|
|
151
|
-
onMove(evt: PointerEvent) {
|
|
152
|
-
evt.stopPropagation();
|
|
153
|
+
#onMove = (evt: PointerEvent) => {
|
|
153
154
|
const { pointerId, clientX, clientY, isPrimary, pointerType, timeStamp } = evt;
|
|
154
|
-
if (!this
|
|
155
|
-
const moves = this
|
|
156
|
-
const startEvent = this
|
|
155
|
+
if (!this.#pressed && this.hasPointerCapture(pointerId)) {
|
|
156
|
+
const moves = this.#getMoves(pointerId);
|
|
157
|
+
const startEvent = this.#getStartEvent(pointerId);
|
|
157
158
|
const lastMove = moves[moves.length - 1] || startEvent;
|
|
158
159
|
// https://bugs.webkit.org/show_bug.cgi?id=220194
|
|
159
160
|
// https://bugs.chromium.org/p/chromium/issues/detail?id=1092358
|
|
160
161
|
const movementX = clientX - lastMove.clientX;
|
|
161
162
|
const movementY = clientY - lastMove.clientY;
|
|
162
163
|
const move = {
|
|
163
|
-
x: this
|
|
164
|
-
y: this
|
|
164
|
+
x: this.#getMovementX(movementX, movementY),
|
|
165
|
+
y: this.#getMovementY(movementX, movementY),
|
|
165
166
|
clientX,
|
|
166
167
|
clientY,
|
|
167
168
|
timeStamp,
|
|
@@ -172,7 +173,7 @@ export class GemGestureElement extends GemElement {
|
|
|
172
173
|
this.pan(move);
|
|
173
174
|
|
|
174
175
|
if (this.movesMap.size !== 1) {
|
|
175
|
-
const secondaryPoint = this
|
|
176
|
+
const secondaryPoint = this.#getOtherLastMove(pointerId) as PanEventDetail;
|
|
176
177
|
const moveLen = Math.sqrt(movementX ** 2 + movementY ** 2);
|
|
177
178
|
const distanceLen = Math.sqrt(
|
|
178
179
|
(lastMove.clientX - secondaryPoint.clientX) ** 2 + (lastMove.clientY - secondaryPoint.clientY) ** 2,
|
|
@@ -193,23 +194,28 @@ export class GemGestureElement extends GemElement {
|
|
|
193
194
|
Math.abs(move.clientX - startEvent.clientX) > accuracy ||
|
|
194
195
|
Math.abs(move.clientY - startEvent.clientY) > accuracy
|
|
195
196
|
) {
|
|
196
|
-
window.clearTimeout(this
|
|
197
|
+
window.clearTimeout(this.#pressTimer);
|
|
197
198
|
}
|
|
198
199
|
}
|
|
199
|
-
}
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
#onMoveSet = (evt: PointerEvent) => {
|
|
203
|
+
evt.stopPropagation();
|
|
204
|
+
evt.getCoalescedEvents().forEach((evt) => this.#onMove(evt));
|
|
205
|
+
};
|
|
200
206
|
|
|
201
|
-
onEnd(evt: PointerEvent) {
|
|
207
|
+
#onEnd = (evt: PointerEvent) => {
|
|
202
208
|
evt.stopPropagation();
|
|
203
209
|
const { pointerId } = evt;
|
|
204
|
-
window.clearTimeout(this
|
|
210
|
+
window.clearTimeout(this.#pressTimer);
|
|
205
211
|
|
|
206
212
|
if (this.movesMap.size === 1) {
|
|
207
213
|
this.end(null);
|
|
208
214
|
}
|
|
209
215
|
|
|
210
216
|
// auto release: https://javascript.info/pointer-events#pointer-capturing
|
|
211
|
-
if (!this
|
|
212
|
-
const moves = this
|
|
217
|
+
if (!this.#pressed && this.hasPointerCapture(pointerId)) {
|
|
218
|
+
const moves = this.#getMoves(pointerId);
|
|
213
219
|
|
|
214
220
|
if (moves.length > 2) {
|
|
215
221
|
const { x, y, timeStamp, clientX, clientY } = moves[moves.length - 1];
|
|
@@ -238,13 +244,13 @@ export class GemGestureElement extends GemElement {
|
|
|
238
244
|
}
|
|
239
245
|
|
|
240
246
|
this.movesMap.delete(pointerId);
|
|
241
|
-
this
|
|
242
|
-
}
|
|
247
|
+
this.#startEventMap.delete(pointerId);
|
|
248
|
+
};
|
|
243
249
|
|
|
244
250
|
render() {
|
|
245
251
|
return html`
|
|
246
252
|
<style>
|
|
247
|
-
:host {
|
|
253
|
+
:host(:where(:not([hidden]))) {
|
|
248
254
|
display: block;
|
|
249
255
|
user-select: none;
|
|
250
256
|
touch-action: ${this.touchAction || 'none'};
|
|
@@ -5,6 +5,10 @@ import { absoluteLocation } from '../../lib/utils';
|
|
|
5
5
|
|
|
6
6
|
import { matchPath, RouteItem, RouteOptions, createHistoryParams, createPath } from './route';
|
|
7
7
|
|
|
8
|
+
function isExternal(path: string) {
|
|
9
|
+
return !path.startsWith('/');
|
|
10
|
+
}
|
|
11
|
+
|
|
8
12
|
/**
|
|
9
13
|
* @attr href
|
|
10
14
|
* @attr target
|
|
@@ -29,83 +33,66 @@ export class GemLinkElement extends GemElement {
|
|
|
29
33
|
@attribute hint: 'on' | 'off';
|
|
30
34
|
|
|
31
35
|
// 动态路由,根据 route.pattern 和 options.params 计算出 path
|
|
32
|
-
@property route
|
|
33
|
-
|
|
34
|
-
@property
|
|
36
|
+
@property route?: RouteItem;
|
|
37
|
+
/**@deprecated */
|
|
38
|
+
@property options?: RouteOptions;
|
|
39
|
+
@property routeOptions?: RouteOptions;
|
|
40
|
+
@property prepare?: () => void | Promise<void>;
|
|
35
41
|
|
|
36
42
|
@part link: string;
|
|
37
43
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
this.tabIndex = 0;
|
|
41
|
-
this.addEventListener('click', this.clickHandle);
|
|
44
|
+
get #routeOptions() {
|
|
45
|
+
return this.routeOptions || this.options;
|
|
42
46
|
}
|
|
43
47
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if (this.route) {
|
|
47
|
-
const queryProp = this.options?.query || '';
|
|
48
|
-
const hashProp = this.options?.hash || '';
|
|
49
|
-
return createPath(this.route, this.options) + queryProp + hashProp;
|
|
50
|
-
} else {
|
|
51
|
-
const url = this.href || this.path + this.query + this.hash;
|
|
52
|
-
const { path, query } = history.getParams();
|
|
53
|
-
if (url.startsWith('#')) {
|
|
54
|
-
return `${path}${query}${url}`;
|
|
55
|
-
} else if (url.startsWith('?')) {
|
|
56
|
-
return `${path}${url}`;
|
|
57
|
-
} else if (url.startsWith('.')) {
|
|
58
|
-
return absoluteLocation(path, url);
|
|
59
|
-
} else {
|
|
60
|
-
return url;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
48
|
+
get #hint() {
|
|
49
|
+
return this.hint || 'on';
|
|
63
50
|
}
|
|
64
51
|
|
|
65
|
-
|
|
66
|
-
|
|
52
|
+
constructor() {
|
|
53
|
+
super();
|
|
54
|
+
this.tabIndex = 0;
|
|
55
|
+
this.addEventListener('click', this.#onClick);
|
|
67
56
|
}
|
|
68
57
|
|
|
69
|
-
|
|
70
|
-
const
|
|
58
|
+
#onClick = async () => {
|
|
59
|
+
const locationString = this.getLocationString();
|
|
71
60
|
|
|
72
|
-
if (!
|
|
61
|
+
if (!locationString) return;
|
|
73
62
|
|
|
74
63
|
// 外部链接使用 `window.open`
|
|
75
|
-
if (
|
|
64
|
+
if (isExternal(locationString)) {
|
|
76
65
|
switch (this.target) {
|
|
77
66
|
case '_self':
|
|
78
|
-
window.location.href =
|
|
67
|
+
window.location.href = locationString;
|
|
79
68
|
return;
|
|
80
69
|
case '_parent':
|
|
81
|
-
window.parent.location.href =
|
|
70
|
+
window.parent.location.href = locationString;
|
|
82
71
|
return;
|
|
83
72
|
case '_top':
|
|
84
|
-
window.top!.location.href =
|
|
73
|
+
window.top!.location.href = locationString;
|
|
85
74
|
return;
|
|
86
75
|
default:
|
|
87
|
-
window.open(
|
|
76
|
+
window.open(locationString);
|
|
88
77
|
return;
|
|
89
78
|
}
|
|
90
79
|
}
|
|
91
80
|
|
|
92
81
|
const { path, query, hash } = history.getParams();
|
|
93
|
-
if (path + query + hash ===
|
|
82
|
+
if (path + query + hash === locationString) {
|
|
94
83
|
// 点击当前路由链接时,什么也没做
|
|
95
84
|
return;
|
|
96
85
|
}
|
|
97
86
|
|
|
98
|
-
e.stopPropagation();
|
|
99
|
-
|
|
100
87
|
await this.prepare?.();
|
|
101
88
|
|
|
102
89
|
if (this.route) {
|
|
103
90
|
history.pushIgnoreCloseHandle({
|
|
104
|
-
...createHistoryParams(this.route, this
|
|
91
|
+
...createHistoryParams(this.route, this.#routeOptions),
|
|
105
92
|
title: this.route.title || this.docTitle,
|
|
106
93
|
});
|
|
107
94
|
} else if (this.href) {
|
|
108
|
-
const { pathname, search, hash } = new URL(
|
|
95
|
+
const { pathname, search, hash } = new URL(locationString, location.origin);
|
|
109
96
|
history.pushIgnoreCloseHandle({
|
|
110
97
|
path: pathname,
|
|
111
98
|
query: search,
|
|
@@ -117,11 +104,18 @@ export class GemLinkElement extends GemElement {
|
|
|
117
104
|
}
|
|
118
105
|
};
|
|
119
106
|
|
|
120
|
-
preventDefault = (e: MouseEvent) => {
|
|
107
|
+
#preventDefault = (e: MouseEvent) => {
|
|
121
108
|
e.preventDefault();
|
|
122
109
|
};
|
|
123
110
|
|
|
124
|
-
|
|
111
|
+
#getHint = () => {
|
|
112
|
+
const locationString = this.getLocationString();
|
|
113
|
+
return isExternal(locationString)
|
|
114
|
+
? locationString
|
|
115
|
+
: new URL(history.basePath + locationString, location.origin).toString();
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
render() {
|
|
125
119
|
return html`
|
|
126
120
|
<style>
|
|
127
121
|
:host {
|
|
@@ -140,19 +134,36 @@ export class GemLinkElement extends GemElement {
|
|
|
140
134
|
</style>
|
|
141
135
|
<a
|
|
142
136
|
part=${this.link}
|
|
143
|
-
@click=${this
|
|
144
|
-
href=${ifDefined(
|
|
145
|
-
this.hint === 'off'
|
|
146
|
-
? undefined
|
|
147
|
-
: this.isExternal(pathInfo)
|
|
148
|
-
? pathInfo
|
|
149
|
-
: new URL(history.basePath + pathInfo, location.origin).toString(),
|
|
150
|
-
)}
|
|
137
|
+
@click=${this.#preventDefault}
|
|
138
|
+
href=${ifDefined(this.#hint === 'off' ? undefined : this.#getHint())}
|
|
151
139
|
>
|
|
152
140
|
<slot></slot>
|
|
153
141
|
</a>
|
|
154
142
|
`;
|
|
155
143
|
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* 如果该元素是外部链接返回 URL,否则返回路径(不包含 basePath)
|
|
147
|
+
*/
|
|
148
|
+
getLocationString() {
|
|
149
|
+
if (this.route) {
|
|
150
|
+
const queryProp = this.#routeOptions?.query || '';
|
|
151
|
+
const hashProp = this.#routeOptions?.hash || '';
|
|
152
|
+
return createPath(this.route, this.#routeOptions) + queryProp + hashProp;
|
|
153
|
+
} else {
|
|
154
|
+
const url = this.href || this.path + this.query + this.hash;
|
|
155
|
+
const { path, query } = history.getParams();
|
|
156
|
+
if (url.startsWith('#')) {
|
|
157
|
+
return `${path}${query}${url}`;
|
|
158
|
+
} else if (url.startsWith('?')) {
|
|
159
|
+
return `${path}${url}`;
|
|
160
|
+
} else if (url.startsWith('.')) {
|
|
161
|
+
return absoluteLocation(path, url);
|
|
162
|
+
} else {
|
|
163
|
+
return url;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
156
167
|
}
|
|
157
168
|
|
|
158
169
|
/**
|
|
@@ -164,15 +175,12 @@ export class GemActiveLinkElement extends GemLinkElement {
|
|
|
164
175
|
@attribute pattern: string; // 使用匹配模式设定 active
|
|
165
176
|
@state active: boolean;
|
|
166
177
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
this.active =
|
|
173
|
-
}
|
|
174
|
-
this.active = false;
|
|
175
|
-
}
|
|
176
|
-
return super.render(pathInfo);
|
|
178
|
+
constructor() {
|
|
179
|
+
super();
|
|
180
|
+
this.effect(() => {
|
|
181
|
+
const { path, query, hash } = history.getParams();
|
|
182
|
+
const isMatchPattern = this.pattern && matchPath(this.pattern, path);
|
|
183
|
+
this.active = !!isMatchPattern || path + query + hash === this.getLocationString();
|
|
184
|
+
});
|
|
177
185
|
}
|
|
178
186
|
}
|
|
@@ -13,6 +13,8 @@ const open = Symbol('open mark');
|
|
|
13
13
|
* 模拟 top layer:https://github.com/whatwg/html/issues/4633.
|
|
14
14
|
*/
|
|
15
15
|
export function createModalClass<T extends Record<string, unknown>>(options: T) {
|
|
16
|
+
const final = Symbol();
|
|
17
|
+
|
|
16
18
|
return class extends GemElement {
|
|
17
19
|
static inertStore: HTMLElement[] = [];
|
|
18
20
|
static instance: GemElement | null = null;
|
|
@@ -56,6 +58,7 @@ export function createModalClass<T extends Record<string, unknown>>(options: T)
|
|
|
56
58
|
shouldClose: this.shouldClose.bind(this),
|
|
57
59
|
});
|
|
58
60
|
}, 100);
|
|
61
|
+
return final;
|
|
59
62
|
}
|
|
60
63
|
|
|
61
64
|
/**
|
|
@@ -64,6 +67,7 @@ export function createModalClass<T extends Record<string, unknown>>(options: T)
|
|
|
64
67
|
*/
|
|
65
68
|
static close() {
|
|
66
69
|
history.back();
|
|
70
|
+
return final;
|
|
67
71
|
}
|
|
68
72
|
|
|
69
73
|
/**
|
|
@@ -74,6 +78,7 @@ export function createModalClass<T extends Record<string, unknown>>(options: T)
|
|
|
74
78
|
this.inertStore.forEach((e) => (e.inert = false));
|
|
75
79
|
this.instance?.remove();
|
|
76
80
|
updateStore(this.store, { [open]: false, ...options });
|
|
81
|
+
return final;
|
|
77
82
|
}
|
|
78
83
|
|
|
79
84
|
/**
|