@mantou/gem 2.1.1 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/gem.es.js +2082 -2153
- package/dist/gem.umd.js +25 -199
- package/elements/base/dialog.d.ts +1 -5
- package/elements/base/dialog.d.ts.map +1 -1
- package/elements/base/dialog.js +2 -6
- package/elements/base/dialog.js.map +1 -1
- package/elements/base/gesture.d.ts +6 -15
- package/elements/base/gesture.d.ts.map +1 -1
- package/elements/base/gesture.js +38 -34
- package/elements/base/gesture.js.map +1 -1
- package/elements/base/link.d.ts +1 -17
- package/elements/base/link.d.ts.map +1 -1
- package/elements/base/link.js +12 -37
- package/elements/base/link.js.map +1 -1
- package/elements/base/modal-factory.d.ts +48 -38
- package/elements/base/modal-factory.d.ts.map +1 -1
- package/elements/base/modal-factory.js +14 -14
- package/elements/base/modal-factory.js.map +1 -1
- package/elements/base/reflect.d.ts +1 -5
- package/elements/base/reflect.d.ts.map +1 -1
- package/elements/base/reflect.js +8 -13
- package/elements/base/reflect.js.map +1 -1
- package/elements/base/route.d.ts +17 -17
- package/elements/base/route.d.ts.map +1 -1
- package/elements/base/route.js +15 -27
- package/elements/base/route.js.map +1 -1
- package/elements/base/title.d.ts +1 -6
- package/elements/base/title.d.ts.map +1 -1
- package/elements/base/title.js +3 -8
- package/elements/base/title.js.map +1 -1
- package/elements/base/unsafe.d.ts +1 -6
- package/elements/base/unsafe.d.ts.map +1 -1
- package/elements/base/unsafe.js +3 -9
- package/elements/base/unsafe.js.map +1 -1
- package/elements/base/use.d.ts +1 -4
- package/elements/base/use.d.ts.map +1 -1
- package/elements/base/use.js +4 -11
- package/elements/base/use.js.map +1 -1
- package/elements/link.js +1 -1
- package/elements/link.js.map +1 -1
- package/elements/route.js +1 -1
- package/elements/route.js.map +1 -1
- package/helper/hmr.d.ts +11 -0
- package/helper/hmr.d.ts.map +1 -0
- package/helper/hmr.js +255 -0
- package/helper/hmr.js.map +1 -0
- package/helper/i18n.d.ts +2 -2
- package/helper/i18n.d.ts.map +1 -1
- package/helper/i18n.js +5 -4
- package/helper/i18n.js.map +1 -1
- package/helper/logger.d.ts +1 -1
- package/helper/logger.d.ts.map +1 -1
- package/helper/logger.js +8 -5
- package/helper/logger.js.map +1 -1
- package/helper/mediaquery.js +1 -1
- package/helper/mediaquery.js.map +1 -1
- package/helper/ssr-shim.d.ts.map +1 -1
- package/helper/ssr-shim.js +2 -0
- package/helper/ssr-shim.js.map +1 -1
- package/helper/theme.d.ts +4 -5
- package/helper/theme.d.ts.map +1 -1
- package/helper/theme.js +3 -3
- package/helper/theme.js.map +1 -1
- package/index.d.ts +1 -3
- package/index.d.ts.map +1 -1
- package/index.js +1 -4
- package/index.js.map +1 -1
- package/lib/decorators.d.ts +9 -16
- package/lib/decorators.d.ts.map +1 -1
- package/lib/decorators.js +84 -71
- package/lib/decorators.js.map +1 -1
- package/lib/directive.d.ts +65 -0
- package/lib/directive.d.ts.map +1 -0
- package/lib/directive.js +58 -0
- package/lib/directive.js.map +1 -0
- package/lib/element.d.ts +10 -153
- package/lib/element.d.ts.map +1 -1
- package/lib/element.js +19 -480
- package/lib/element.js.map +1 -1
- package/lib/history.d.ts +67 -9
- package/lib/history.d.ts.map +1 -1
- package/lib/history.js +12 -12
- package/lib/history.js.map +1 -1
- package/lib/lit-html.d.ts +232 -0
- package/lib/lit-html.d.ts.map +1 -0
- package/lib/lit-html.js +987 -0
- package/lib/lit-html.js.map +1 -0
- package/lib/reactive.d.ts +123 -0
- package/lib/reactive.d.ts.map +1 -0
- package/lib/reactive.js +478 -0
- package/lib/reactive.js.map +1 -0
- package/lib/repeat.d.ts +126 -0
- package/lib/repeat.d.ts.map +1 -0
- package/lib/repeat.js +533 -0
- package/lib/repeat.js.map +1 -0
- package/lib/store.d.ts +13 -2
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +5 -4
- package/lib/store.js.map +1 -1
- package/lib/utils.d.ts +24 -15
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +25 -30
- package/lib/utils.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +8 -9
- package/src/dist.ts +6 -8
- package/src/elements/base/dialog.ts +2 -6
- package/src/elements/base/gesture.ts +35 -36
- package/src/elements/base/link.ts +20 -46
- package/src/elements/base/modal-factory.ts +14 -14
- package/src/elements/base/reflect.ts +2 -6
- package/src/elements/base/route.ts +22 -33
- package/src/elements/base/title.ts +4 -9
- package/src/elements/base/unsafe.ts +4 -9
- package/src/elements/base/use.ts +4 -11
- package/src/elements/link.ts +1 -1
- package/src/elements/route.ts +1 -1
- package/src/helper/hmr.ts +305 -0
- package/src/helper/i18n.ts +7 -7
- package/src/helper/logger.ts +9 -5
- package/src/helper/mediaquery.ts +1 -1
- package/src/helper/ssr-shim.ts +3 -0
- package/src/helper/theme.ts +6 -6
- package/src/index.ts +1 -5
- package/src/lib/decorators.ts +101 -100
- package/src/lib/directive.ts +137 -0
- package/src/lib/element.ts +26 -614
- package/src/lib/history.ts +14 -15
- package/src/lib/lit-html.ts +1269 -0
- package/src/lib/reactive.ts +596 -0
- package/src/lib/repeat.ts +580 -0
- package/src/lib/store.ts +5 -4
- package/src/lib/utils.ts +40 -46
- package/src/lib/version.ts +1 -1
- package/src/test/elements/link.test.ts +2 -3
- package/src/test/elements/reflect.test.ts +13 -3
- package/src/test/elements/title.test.ts +2 -3
- package/src/test/gem-element/advance.test.ts +22 -14
- package/src/test/gem-element/basic.test.ts +23 -11
- package/src/test/gem-element/decorators.test.ts +14 -17
- package/src/test/gem-element/multi.test.ts +20 -11
- package/src/test/history.test.ts +1 -2
- package/src/test/store.test.ts +3 -4
- package/src/test/utils.test.ts +12 -14
- package/src/test/utils.ts +22 -0
- package/lib/directives.d.ts +0 -4
- package/lib/directives.d.ts.map +0 -1
- package/lib/directives.js +0 -5
- package/lib/directives.js.map +0 -1
- package/src/lib/directives.ts +0 -6
package/src/lib/history.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// https://github.com/WICG/navigation-api#stakeholder-feedback
|
|
2
2
|
|
|
3
3
|
import { connect, createStore } from './store';
|
|
4
|
-
import {
|
|
4
|
+
import { absoluteLocation, cleanObject, GemError, QueryString } from './utils';
|
|
5
5
|
|
|
6
|
-
const nativeHistory =
|
|
6
|
+
const nativeHistory = globalThis.history;
|
|
7
7
|
const nativePushState: typeof nativeHistory.pushState = nativeHistory.pushState.bind(nativeHistory);
|
|
8
8
|
const nativeReplaceState: typeof nativeHistory.replaceState = nativeHistory.replaceState.bind(nativeHistory);
|
|
9
9
|
|
|
@@ -107,7 +107,7 @@ function updateHistory(p: UpdateHistoryParams, native: typeof nativeHistory.push
|
|
|
107
107
|
const url = getUrlBarPath(path) + new QueryString(query) + hash;
|
|
108
108
|
const prevHash = decodeURIComponent(location.hash);
|
|
109
109
|
native(state, title, url);
|
|
110
|
-
if (prevHash !== hash)
|
|
110
|
+
if (prevHash !== hash) dispatchEvent(new CustomEvent('hashchange'));
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
// 跨框架时,调用者对 basePath 无感知
|
|
@@ -128,7 +128,7 @@ function updateHistoryByNative(data: any, title: string, originUrl: string, nati
|
|
|
128
128
|
const prevHash = location.hash;
|
|
129
129
|
native(state, title, url);
|
|
130
130
|
// `location.hash` 和 `hash` 都已经进行了 url 编码,可以直接进行相等判断
|
|
131
|
-
if (prevHash !== hash)
|
|
131
|
+
if (prevHash !== hash) dispatchEvent(new CustomEvent('hashchange'));
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
const gemBasePathStore = createStore({
|
|
@@ -185,27 +185,26 @@ const gemHistory = new GemHistory();
|
|
|
185
185
|
|
|
186
186
|
const gemTitleStore = createStore({ defaultTitle: document.title, url: '', title: '' });
|
|
187
187
|
|
|
188
|
-
const
|
|
188
|
+
const HISTORY = { history: gemHistory, titleStore: gemTitleStore, basePathStore: gemBasePathStore };
|
|
189
189
|
|
|
190
190
|
declare global {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
}
|
|
191
|
+
// eslint-disable-next-line no-var
|
|
192
|
+
var _GEMHISTORY: typeof HISTORY | undefined;
|
|
194
193
|
}
|
|
195
194
|
|
|
196
|
-
if (!
|
|
197
|
-
|
|
195
|
+
if (!globalThis._GEMHISTORY) {
|
|
196
|
+
globalThis._GEMHISTORY = HISTORY;
|
|
198
197
|
|
|
199
|
-
nativeHistory.pushState =
|
|
198
|
+
nativeHistory.pushState = (state: any, title: string, path: string) => {
|
|
200
199
|
updateHistoryByNative(state, title, path, nativePushState);
|
|
201
200
|
};
|
|
202
201
|
|
|
203
|
-
nativeHistory.replaceState =
|
|
202
|
+
nativeHistory.replaceState = (state: any, title: string, path: string) => {
|
|
204
203
|
updateHistoryByNative(state, title, path, nativeReplaceState);
|
|
205
204
|
};
|
|
206
205
|
|
|
207
206
|
// 点击 `<a>`
|
|
208
|
-
|
|
207
|
+
addEventListener('hashchange', ({ isTrusted }) => {
|
|
209
208
|
if (isTrusted) {
|
|
210
209
|
gemHistory.replace({ hash: location.hash });
|
|
211
210
|
}
|
|
@@ -250,7 +249,7 @@ if (!window._GEMHISTORY) {
|
|
|
250
249
|
* 表示 popstate handler 中正在进行导航
|
|
251
250
|
*/
|
|
252
251
|
let navigating = false;
|
|
253
|
-
|
|
252
|
+
addEventListener('popstate', (event) => {
|
|
254
253
|
const newState = event.state as HistoryState | null;
|
|
255
254
|
if (!newState?.$key) {
|
|
256
255
|
// 比如作为其他框架 app 的宿主 app
|
|
@@ -316,5 +315,5 @@ if (!window._GEMHISTORY) {
|
|
|
316
315
|
});
|
|
317
316
|
}
|
|
318
317
|
|
|
319
|
-
const { history, titleStore, basePathStore } =
|
|
318
|
+
const { history, titleStore, basePathStore } = globalThis._GEMHISTORY;
|
|
320
319
|
export { history, titleStore, basePathStore };
|