@tarojs/runtime 4.0.0-canary.8 → 4.0.0
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/LICENSE +17 -3
- package/dist/bom/URL.d.ts +54 -0
- package/dist/bom/URL.js +221 -0
- package/dist/bom/URL.js.map +1 -0
- package/dist/bom/URLSearchParams.d.ts +2 -0
- package/dist/bom/URLSearchParams.js +131 -0
- package/dist/bom/URLSearchParams.js.map +1 -0
- package/dist/bom/document.d.ts +3 -0
- package/dist/bom/document.js +39 -0
- package/dist/bom/document.js.map +1 -0
- package/dist/bom/getComputedStyle.d.ts +5 -0
- package/dist/bom/getComputedStyle.js +8 -0
- package/dist/bom/getComputedStyle.js.map +1 -0
- package/dist/bom/history.d.ts +32 -0
- package/dist/bom/history.js +121 -0
- package/dist/bom/history.js.map +1 -0
- package/dist/bom/location.d.ts +39 -0
- package/dist/bom/location.js +240 -0
- package/dist/bom/location.js.map +1 -0
- package/dist/bom/navigator.d.ts +2 -0
- package/dist/bom/navigator.js +24 -0
- package/dist/bom/navigator.js.map +1 -0
- package/dist/bom/raf.d.ts +5 -0
- package/dist/bom/raf.js +33 -0
- package/dist/bom/raf.js.map +1 -0
- package/dist/bom/window.d.ts +26 -0
- package/dist/bom/window.js +92 -0
- package/dist/bom/window.js.map +1 -0
- package/dist/constants/index.d.ts +60 -0
- package/dist/constants/index.js +63 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/current.d.ts +19 -0
- package/dist/current.js +9 -0
- package/dist/current.js.map +1 -0
- package/dist/dom/anchor-element.d.ts +14 -0
- package/dist/dom/anchor-element.js +54 -0
- package/dist/dom/anchor-element.js.map +1 -0
- package/dist/dom/class-list.d.ts +17 -0
- package/dist/dom/class-list.js +92 -0
- package/dist/dom/class-list.js.map +1 -0
- package/dist/dom/document.d.ts +25 -0
- package/dist/dom/document.js +80 -0
- package/dist/dom/document.js.map +1 -0
- package/dist/dom/element.d.ts +40 -0
- package/dist/dom/element.js +315 -0
- package/dist/dom/element.js.map +1 -0
- package/dist/dom/event-source.d.ts +7 -0
- package/dist/dom/event-source.js +17 -0
- package/dist/dom/event-source.js.map +1 -0
- package/dist/dom/event-target.d.ts +8 -0
- package/dist/dom/event-target.js +78 -0
- package/dist/dom/event-target.js.map +1 -0
- package/dist/dom/event.d.ts +24 -0
- package/dist/dom/event.js +152 -0
- package/dist/dom/event.js.map +1 -0
- package/dist/dom/form.d.ts +10 -0
- package/dist/dom/form.js +38 -0
- package/dist/dom/form.js.map +1 -0
- package/dist/dom/node.d.ts +107 -0
- package/dist/dom/node.js +292 -0
- package/dist/dom/node.js.map +1 -0
- package/dist/dom/root.d.ts +16 -0
- package/dist/dom/root.js +169 -0
- package/dist/dom/root.js.map +1 -0
- package/dist/dom/style.d.ts +15 -0
- package/dist/dom/style.js +168 -0
- package/dist/dom/style.js.map +1 -0
- package/dist/dom/style_properties.d.ts +3 -0
- package/dist/dom/style_properties.js +186 -0
- package/dist/dom/style_properties.js.map +1 -0
- package/dist/dom/svg.d.ts +4 -0
- package/dist/dom/svg.js +8 -0
- package/dist/dom/svg.js.map +1 -0
- package/dist/dom/text.d.ts +15 -0
- package/dist/dom/text.js +41 -0
- package/dist/dom/text.js.map +1 -0
- package/dist/dom/transfer.d.ts +8 -0
- package/dist/dom/transfer.js +15 -0
- package/dist/dom/transfer.js.map +1 -0
- package/dist/dom/tree.d.ts +4 -0
- package/dist/dom/tree.js +38 -0
- package/dist/dom/tree.js.map +1 -0
- package/dist/dom-external/element.d.ts +4 -0
- package/dist/dom-external/element.js +29 -0
- package/dist/dom-external/element.js.map +1 -0
- package/dist/dom-external/index.d.ts +1 -0
- package/dist/dom-external/index.js +38 -0
- package/dist/dom-external/index.js.map +1 -0
- package/dist/dom-external/inner-html/html.d.ts +3 -0
- package/dist/dom-external/inner-html/html.js +28 -0
- package/dist/dom-external/inner-html/html.js.map +1 -0
- package/dist/dom-external/inner-html/parser.d.ts +25 -0
- package/dist/dom-external/inner-html/parser.js +216 -0
- package/dist/dom-external/inner-html/parser.js.map +1 -0
- package/dist/dom-external/inner-html/scaner.d.ts +30 -0
- package/dist/dom-external/inner-html/scaner.js +304 -0
- package/dist/dom-external/inner-html/scaner.js.map +1 -0
- package/dist/dom-external/inner-html/style.d.ts +27 -0
- package/dist/dom-external/inner-html/style.js +235 -0
- package/dist/dom-external/inner-html/style.js.map +1 -0
- package/dist/dom-external/inner-html/tags.d.ts +9 -0
- package/dist/dom-external/inner-html/tags.js +26 -0
- package/dist/dom-external/inner-html/tags.js.map +1 -0
- package/dist/dom-external/inner-html/utils.d.ts +2 -0
- package/dist/dom-external/inner-html/utils.js +12 -0
- package/dist/dom-external/inner-html/utils.js.map +1 -0
- package/dist/dom-external/mutation-observer/implements.d.ts +71 -0
- package/dist/dom-external/mutation-observer/implements.js +108 -0
- package/dist/dom-external/mutation-observer/implements.js.map +1 -0
- package/dist/dom-external/mutation-observer/index.d.ts +12 -0
- package/dist/dom-external/mutation-observer/index.js +35 -0
- package/dist/dom-external/mutation-observer/index.js.map +1 -0
- package/dist/dom-external/node.d.ts +12 -0
- package/dist/dom-external/node.js +75 -0
- package/dist/dom-external/node.js.map +1 -0
- package/dist/dsl/common.d.ts +16 -0
- package/dist/dsl/common.js +337 -0
- package/dist/dsl/common.js.map +1 -0
- package/dist/emitter/emitter.d.ts +4 -0
- package/dist/emitter/emitter.js +7 -0
- package/dist/emitter/emitter.js.map +1 -0
- package/dist/env.d.ts +7 -0
- package/dist/env.js +9 -0
- package/dist/env.js.map +1 -0
- package/dist/hydrate.d.ts +11 -0
- package/dist/hydrate.js +91 -0
- package/dist/hydrate.js.map +1 -0
- package/dist/index-26658829.d.ts +23 -0
- package/dist/{runtime.cjs.d.ts → index.cjs.d.ts} +108 -102
- package/dist/{runtime.h5.js → index.cjs.js} +4301 -2495
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/instance-4c64b022.d.ts +85 -0
- package/dist/next-tick.d.ts +3 -0
- package/dist/next-tick.js +47 -0
- package/dist/next-tick.js.map +1 -0
- package/dist/node_types-9ac5b4dd.d.ts +11 -0
- package/dist/options-4c64b022.d.ts +17 -0
- package/dist/options.d.ts +3 -0
- package/dist/options.js +7 -0
- package/dist/options.js.map +1 -0
- package/dist/perf.d.ts +9 -0
- package/dist/perf.js +49 -0
- package/dist/perf.js.map +1 -0
- package/dist/polyfill/array.d.ts +3 -0
- package/dist/polyfill/array.js +56 -0
- package/dist/polyfill/array.js.map +1 -0
- package/dist/polyfill/index.d.ts +2 -0
- package/dist/polyfill/index.js +34 -0
- package/dist/polyfill/index.js.map +1 -0
- package/dist/polyfill/intersection-observer.d.ts +2 -0
- package/dist/polyfill/intersection-observer.js +600 -0
- package/dist/polyfill/intersection-observer.js.map +1 -0
- package/dist/polyfill/object.d.ts +4 -0
- package/dist/polyfill/object.js +102 -0
- package/dist/polyfill/object.js.map +1 -0
- package/dist/record-32b054d8.d.ts +25 -0
- package/dist/runtime.esm.d.ts +108 -102
- package/dist/runtime.esm.js +4126 -3320
- package/dist/runtime.esm.js.map +1 -1
- package/dist/utils/cache.d.ts +13 -0
- package/dist/utils/cache.js +27 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/index.d.ts +26 -0
- package/dist/utils/index.js +99 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/lodash.d.ts +3 -0
- package/dist/utils/lodash.js +32 -0
- package/dist/utils/lodash.js.map +1 -0
- package/dist/utils/router.d.ts +8 -0
- package/dist/utils/router.js +24 -0
- package/dist/utils/router.js.map +1 -0
- package/package.json +23 -26
- package/dist/runtime.cjs.js +0 -4628
- package/dist/runtime.h5.d.ts +0 -800
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { __classPrivateFieldSet, __classPrivateFieldGet } from 'tslib';
|
|
2
|
+
import { Events, isNumber, isString } from '@tarojs/shared';
|
|
3
|
+
import { CONTEXT_ACTIONS } from '../constants/index.js';
|
|
4
|
+
import '../emitter/emitter.js';
|
|
5
|
+
import env from '../env.js';
|
|
6
|
+
import { RuntimeCache } from '../utils/cache.js';
|
|
7
|
+
|
|
8
|
+
var _TaroHistory_instances, _TaroHistory_location, _TaroHistory_stack, _TaroHistory_cur, _TaroHistory_window, _TaroHistory_reset;
|
|
9
|
+
const cache = new RuntimeCache('history');
|
|
10
|
+
class TaroHistory extends Events {
|
|
11
|
+
constructor(location, options) {
|
|
12
|
+
super();
|
|
13
|
+
_TaroHistory_instances.add(this);
|
|
14
|
+
/* private property */
|
|
15
|
+
_TaroHistory_location.set(this, void 0);
|
|
16
|
+
_TaroHistory_stack.set(this, []);
|
|
17
|
+
_TaroHistory_cur.set(this, 0);
|
|
18
|
+
_TaroHistory_window.set(this, void 0);
|
|
19
|
+
__classPrivateFieldSet(this, _TaroHistory_window, options.window, "f");
|
|
20
|
+
__classPrivateFieldSet(this, _TaroHistory_location, location, "f");
|
|
21
|
+
__classPrivateFieldGet(this, _TaroHistory_location, "f").on('__record_history__', (href) => {
|
|
22
|
+
var _a;
|
|
23
|
+
__classPrivateFieldSet(this, _TaroHistory_cur, (_a = __classPrivateFieldGet(this, _TaroHistory_cur, "f"), _a++, _a), "f");
|
|
24
|
+
__classPrivateFieldSet(this, _TaroHistory_stack, __classPrivateFieldGet(this, _TaroHistory_stack, "f").slice(0, __classPrivateFieldGet(this, _TaroHistory_cur, "f")), "f");
|
|
25
|
+
__classPrivateFieldGet(this, _TaroHistory_stack, "f").push({
|
|
26
|
+
state: null,
|
|
27
|
+
title: '',
|
|
28
|
+
url: href
|
|
29
|
+
});
|
|
30
|
+
}, null);
|
|
31
|
+
__classPrivateFieldGet(this, _TaroHistory_location, "f").on('__reset_history__', (href) => {
|
|
32
|
+
__classPrivateFieldGet(this, _TaroHistory_instances, "m", _TaroHistory_reset).call(this, href);
|
|
33
|
+
}, null);
|
|
34
|
+
// 切换上下文行为
|
|
35
|
+
this.on(CONTEXT_ACTIONS.INIT, () => {
|
|
36
|
+
__classPrivateFieldGet(this, _TaroHistory_instances, "m", _TaroHistory_reset).call(this);
|
|
37
|
+
}, null);
|
|
38
|
+
this.on(CONTEXT_ACTIONS.RESTORE, (pageId) => {
|
|
39
|
+
cache.set(pageId, {
|
|
40
|
+
location: __classPrivateFieldGet(this, _TaroHistory_location, "f"),
|
|
41
|
+
stack: __classPrivateFieldGet(this, _TaroHistory_stack, "f").slice(),
|
|
42
|
+
cur: __classPrivateFieldGet(this, _TaroHistory_cur, "f")
|
|
43
|
+
});
|
|
44
|
+
}, null);
|
|
45
|
+
this.on(CONTEXT_ACTIONS.RECOVER, (pageId) => {
|
|
46
|
+
if (cache.has(pageId)) {
|
|
47
|
+
const ctx = cache.get(pageId);
|
|
48
|
+
__classPrivateFieldSet(this, _TaroHistory_location, ctx.location, "f");
|
|
49
|
+
__classPrivateFieldSet(this, _TaroHistory_stack, ctx.stack, "f");
|
|
50
|
+
__classPrivateFieldSet(this, _TaroHistory_cur, ctx.cur, "f");
|
|
51
|
+
}
|
|
52
|
+
}, null);
|
|
53
|
+
this.on(CONTEXT_ACTIONS.DESTORY, (pageId) => {
|
|
54
|
+
cache.delete(pageId);
|
|
55
|
+
}, null);
|
|
56
|
+
__classPrivateFieldGet(this, _TaroHistory_instances, "m", _TaroHistory_reset).call(this);
|
|
57
|
+
}
|
|
58
|
+
/* public property */
|
|
59
|
+
get length() {
|
|
60
|
+
return __classPrivateFieldGet(this, _TaroHistory_stack, "f").length;
|
|
61
|
+
}
|
|
62
|
+
get state() {
|
|
63
|
+
return __classPrivateFieldGet(this, _TaroHistory_stack, "f")[__classPrivateFieldGet(this, _TaroHistory_cur, "f")].state;
|
|
64
|
+
}
|
|
65
|
+
/* public method */
|
|
66
|
+
go(delta) {
|
|
67
|
+
if (!isNumber(delta) || isNaN(delta))
|
|
68
|
+
return;
|
|
69
|
+
let targetIdx = __classPrivateFieldGet(this, _TaroHistory_cur, "f") + delta;
|
|
70
|
+
targetIdx = Math.min(Math.max(targetIdx, 0), this.length - 1);
|
|
71
|
+
__classPrivateFieldSet(this, _TaroHistory_cur, targetIdx, "f");
|
|
72
|
+
__classPrivateFieldGet(this, _TaroHistory_location, "f").trigger('__set_href_without_history__', __classPrivateFieldGet(this, _TaroHistory_stack, "f")[__classPrivateFieldGet(this, _TaroHistory_cur, "f")].url);
|
|
73
|
+
__classPrivateFieldGet(this, _TaroHistory_window, "f").trigger('popstate', __classPrivateFieldGet(this, _TaroHistory_stack, "f")[__classPrivateFieldGet(this, _TaroHistory_cur, "f")]);
|
|
74
|
+
}
|
|
75
|
+
back() {
|
|
76
|
+
this.go(-1);
|
|
77
|
+
}
|
|
78
|
+
forward() {
|
|
79
|
+
this.go(1);
|
|
80
|
+
}
|
|
81
|
+
pushState(state, title, url) {
|
|
82
|
+
if (!url || !isString(url))
|
|
83
|
+
return;
|
|
84
|
+
__classPrivateFieldSet(this, _TaroHistory_stack, __classPrivateFieldGet(this, _TaroHistory_stack, "f").slice(0, __classPrivateFieldGet(this, _TaroHistory_cur, "f") + 1), "f");
|
|
85
|
+
__classPrivateFieldGet(this, _TaroHistory_stack, "f").push({
|
|
86
|
+
state,
|
|
87
|
+
title,
|
|
88
|
+
url
|
|
89
|
+
});
|
|
90
|
+
__classPrivateFieldSet(this, _TaroHistory_cur, this.length - 1, "f");
|
|
91
|
+
__classPrivateFieldGet(this, _TaroHistory_location, "f").trigger('__set_href_without_history__', url);
|
|
92
|
+
}
|
|
93
|
+
replaceState(state, title, url) {
|
|
94
|
+
if (!url || !isString(url))
|
|
95
|
+
return;
|
|
96
|
+
__classPrivateFieldGet(this, _TaroHistory_stack, "f")[__classPrivateFieldGet(this, _TaroHistory_cur, "f")] = {
|
|
97
|
+
state,
|
|
98
|
+
title,
|
|
99
|
+
url
|
|
100
|
+
};
|
|
101
|
+
__classPrivateFieldGet(this, _TaroHistory_location, "f").trigger('__set_href_without_history__', url);
|
|
102
|
+
}
|
|
103
|
+
// For debug
|
|
104
|
+
get cache() {
|
|
105
|
+
return cache;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
_TaroHistory_location = new WeakMap(), _TaroHistory_stack = new WeakMap(), _TaroHistory_cur = new WeakMap(), _TaroHistory_window = new WeakMap(), _TaroHistory_instances = new WeakSet(), _TaroHistory_reset = function _TaroHistory_reset(href = '') {
|
|
109
|
+
__classPrivateFieldSet(this, _TaroHistory_stack, [
|
|
110
|
+
{
|
|
111
|
+
state: null,
|
|
112
|
+
title: '',
|
|
113
|
+
url: href || __classPrivateFieldGet(this, _TaroHistory_location, "f").href
|
|
114
|
+
}
|
|
115
|
+
], "f");
|
|
116
|
+
__classPrivateFieldSet(this, _TaroHistory_cur, 0, "f");
|
|
117
|
+
};
|
|
118
|
+
const History = process.env.TARO_PLATFORM === 'web' ? env.window.History : TaroHistory;
|
|
119
|
+
|
|
120
|
+
export { History };
|
|
121
|
+
//# sourceMappingURL=history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.js","sources":["../../src/bom/history.ts"],"sourcesContent":["import { isNumber, isString } from '@tarojs/shared'\n\nimport { CONTEXT_ACTIONS } from '../constants'\nimport { Events } from '../emitter/emitter'\nimport env from '../env'\nimport { RuntimeCache } from '../utils/cache'\n\nimport type { TaroLocation } from './location'\n\nexport interface HistoryState {\n state: Record<string, any> | null\n title: string\n url: string\n}\n\ntype Options = {\n window: any\n}\ntype HistoryContext = {\n location: TaroLocation\n stack: HistoryState[]\n cur: number\n}\nconst cache = new RuntimeCache<HistoryContext>('history')\n\nclass TaroHistory extends Events {\n /* private property */\n #location: TaroLocation\n #stack: HistoryState[] = []\n #cur = 0\n\n #window: any\n\n constructor (location: TaroLocation, options: Options) {\n super()\n\n this.#window = options.window\n this.#location = location\n\n this.#location.on('__record_history__', (href: string) => {\n this.#cur++\n this.#stack = this.#stack.slice(0, this.#cur)\n this.#stack.push({\n state: null,\n title: '',\n url: href\n })\n }, null)\n\n this.#location.on('__reset_history__', (href: string) => {\n this.#reset(href)\n }, null)\n\n // 切换上下文行为\n\n this.on(CONTEXT_ACTIONS.INIT, () => {\n this.#reset()\n }, null)\n\n this.on(CONTEXT_ACTIONS.RESTORE, (pageId: string) => {\n cache.set(pageId, {\n location: this.#location,\n stack: this.#stack.slice(),\n cur: this.#cur\n })\n }, null)\n\n this.on(CONTEXT_ACTIONS.RECOVER, (pageId: string) => {\n if (cache.has(pageId)) {\n const ctx = cache.get(pageId)!\n this.#location = ctx.location\n this.#stack = ctx.stack\n this.#cur = ctx.cur\n }\n }, null)\n\n this.on(CONTEXT_ACTIONS.DESTORY, (pageId: string) => {\n cache.delete(pageId)\n }, null)\n\n this.#reset()\n }\n\n #reset (href = '') {\n this.#stack = [\n {\n state: null,\n title: '',\n url: href || this.#location.href\n }\n ]\n this.#cur = 0\n }\n\n /* public property */\n get length () {\n return this.#stack.length\n }\n\n get state () {\n return this.#stack[this.#cur].state\n }\n\n /* public method */\n go (delta: number) {\n if (!isNumber(delta) || isNaN(delta)) return\n\n let targetIdx = this.#cur + delta\n targetIdx = Math.min(Math.max(targetIdx, 0), this.length - 1)\n\n this.#cur = targetIdx\n\n this.#location.trigger('__set_href_without_history__', this.#stack[this.#cur].url)\n this.#window.trigger('popstate', this.#stack[this.#cur])\n }\n\n back () {\n this.go(-1)\n }\n\n forward () {\n this.go(1)\n }\n\n pushState (state: any, title: string, url: string) {\n if (!url || !isString(url)) return\n this.#stack = this.#stack.slice(0, this.#cur + 1)\n this.#stack.push({\n state,\n title,\n url\n })\n this.#cur = this.length - 1\n\n this.#location.trigger('__set_href_without_history__', url)\n }\n\n replaceState (state: any, title: string, url: string) {\n if (!url || !isString(url)) return\n this.#stack[this.#cur] = {\n state,\n title,\n url\n }\n\n this.#location.trigger('__set_href_without_history__', url)\n }\n\n // For debug\n get cache () {\n return cache\n }\n}\n\nexport type { TaroHistory }\nexport const History: typeof TaroHistory = process.env.TARO_PLATFORM === 'web' ? env.window.History : TaroHistory\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Events } from "../emitter/emitter.js";
|
|
2
|
+
import { RuntimeCache } from "../utils/cache.js";
|
|
3
|
+
type Options = {
|
|
4
|
+
window: any;
|
|
5
|
+
};
|
|
6
|
+
type LocationContext = {
|
|
7
|
+
lastHref: string;
|
|
8
|
+
};
|
|
9
|
+
declare class TaroLocation extends Events {
|
|
10
|
+
#private;
|
|
11
|
+
constructor(options: Options);
|
|
12
|
+
get protocol(): string;
|
|
13
|
+
set protocol(val: string);
|
|
14
|
+
get host(): string;
|
|
15
|
+
set host(val: string);
|
|
16
|
+
get hostname(): string;
|
|
17
|
+
set hostname(val: string);
|
|
18
|
+
get port(): string;
|
|
19
|
+
set port(val: string);
|
|
20
|
+
get pathname(): string;
|
|
21
|
+
set pathname(val: string);
|
|
22
|
+
get search(): string;
|
|
23
|
+
set search(val: string);
|
|
24
|
+
get hash(): string;
|
|
25
|
+
set hash(val: string);
|
|
26
|
+
get href(): string;
|
|
27
|
+
set href(val: string);
|
|
28
|
+
get origin(): string;
|
|
29
|
+
set origin(val: string);
|
|
30
|
+
/* public method */
|
|
31
|
+
assign(): void;
|
|
32
|
+
reload(): void;
|
|
33
|
+
replace(url: string): void;
|
|
34
|
+
toString(): string;
|
|
35
|
+
get cache(): RuntimeCache<LocationContext>;
|
|
36
|
+
}
|
|
37
|
+
declare const Location: typeof TaroLocation;
|
|
38
|
+
export type { TaroLocation };
|
|
39
|
+
export { Location };
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import { __classPrivateFieldSet, __classPrivateFieldGet } from 'tslib';
|
|
2
|
+
import { Events, isString, isNumber, warn } from '@tarojs/shared';
|
|
3
|
+
import { CONTEXT_ACTIONS } from '../constants/index.js';
|
|
4
|
+
import { getCurrentInstance } from '../current.js';
|
|
5
|
+
import '../emitter/emitter.js';
|
|
6
|
+
import env from '../env.js';
|
|
7
|
+
import { RuntimeCache } from '../utils/cache.js';
|
|
8
|
+
import { URL } from './URL.js';
|
|
9
|
+
|
|
10
|
+
var _TaroLocation_instances, _TaroLocation_url, _TaroLocation_noCheckUrl, _TaroLocation_window, _TaroLocation_reset, _TaroLocation_getPreValue, _TaroLocation_rollBack, _TaroLocation_recordHistory, _TaroLocation_checkUrlChange;
|
|
11
|
+
const INIT_URL = 'https://taro.com';
|
|
12
|
+
const cache = new RuntimeCache('location');
|
|
13
|
+
class TaroLocation extends Events {
|
|
14
|
+
constructor(options) {
|
|
15
|
+
super();
|
|
16
|
+
_TaroLocation_instances.add(this);
|
|
17
|
+
/* private property */
|
|
18
|
+
_TaroLocation_url.set(this, new URL(INIT_URL));
|
|
19
|
+
_TaroLocation_noCheckUrl.set(this, false);
|
|
20
|
+
_TaroLocation_window.set(this, void 0);
|
|
21
|
+
__classPrivateFieldSet(this, _TaroLocation_window, options.window, "f");
|
|
22
|
+
__classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_reset).call(this);
|
|
23
|
+
this.on('__set_href_without_history__', (href) => {
|
|
24
|
+
__classPrivateFieldSet(this, _TaroLocation_noCheckUrl, true, "f");
|
|
25
|
+
const lastHash = __classPrivateFieldGet(this, _TaroLocation_url, "f").hash;
|
|
26
|
+
__classPrivateFieldGet(this, _TaroLocation_url, "f").href = generateFullUrl(href);
|
|
27
|
+
if (lastHash !== __classPrivateFieldGet(this, _TaroLocation_url, "f").hash) {
|
|
28
|
+
__classPrivateFieldGet(this, _TaroLocation_window, "f").trigger('hashchange');
|
|
29
|
+
}
|
|
30
|
+
__classPrivateFieldSet(this, _TaroLocation_noCheckUrl, false, "f");
|
|
31
|
+
}, null);
|
|
32
|
+
// 切换上下文行为
|
|
33
|
+
this.on(CONTEXT_ACTIONS.INIT, () => {
|
|
34
|
+
__classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_reset).call(this);
|
|
35
|
+
}, null);
|
|
36
|
+
this.on(CONTEXT_ACTIONS.RESTORE, (pageId) => {
|
|
37
|
+
cache.set(pageId, {
|
|
38
|
+
lastHref: this.href,
|
|
39
|
+
});
|
|
40
|
+
}, null);
|
|
41
|
+
this.on(CONTEXT_ACTIONS.RECOVER, (pageId) => {
|
|
42
|
+
// 数据恢复时,不需要执行跳转
|
|
43
|
+
if (cache.has(pageId)) {
|
|
44
|
+
const ctx = cache.get(pageId);
|
|
45
|
+
__classPrivateFieldSet(this, _TaroLocation_noCheckUrl, true, "f");
|
|
46
|
+
__classPrivateFieldGet(this, _TaroLocation_url, "f").href = ctx.lastHref;
|
|
47
|
+
__classPrivateFieldSet(this, _TaroLocation_noCheckUrl, false, "f");
|
|
48
|
+
}
|
|
49
|
+
}, null);
|
|
50
|
+
this.on(CONTEXT_ACTIONS.DESTORY, (pageId) => {
|
|
51
|
+
cache.delete(pageId);
|
|
52
|
+
}, null);
|
|
53
|
+
}
|
|
54
|
+
/* public property */
|
|
55
|
+
get protocol() {
|
|
56
|
+
return __classPrivateFieldGet(this, _TaroLocation_url, "f").protocol;
|
|
57
|
+
}
|
|
58
|
+
set protocol(val) {
|
|
59
|
+
const REG = /^(http|https):$/i;
|
|
60
|
+
if (!val || !isString(val) || !REG.test(val.trim()))
|
|
61
|
+
return;
|
|
62
|
+
val = val.trim();
|
|
63
|
+
const preValue = __classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_getPreValue).call(this);
|
|
64
|
+
__classPrivateFieldGet(this, _TaroLocation_url, "f").protocol = val;
|
|
65
|
+
if (__classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_checkUrlChange).call(this, preValue))
|
|
66
|
+
__classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_recordHistory).call(this);
|
|
67
|
+
}
|
|
68
|
+
get host() {
|
|
69
|
+
return __classPrivateFieldGet(this, _TaroLocation_url, "f").host;
|
|
70
|
+
}
|
|
71
|
+
set host(val) {
|
|
72
|
+
if (!val || !isString(val))
|
|
73
|
+
return;
|
|
74
|
+
val = val.trim();
|
|
75
|
+
const preValue = __classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_getPreValue).call(this);
|
|
76
|
+
__classPrivateFieldGet(this, _TaroLocation_url, "f").host = val;
|
|
77
|
+
if (__classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_checkUrlChange).call(this, preValue))
|
|
78
|
+
__classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_recordHistory).call(this);
|
|
79
|
+
}
|
|
80
|
+
get hostname() {
|
|
81
|
+
return __classPrivateFieldGet(this, _TaroLocation_url, "f").hostname;
|
|
82
|
+
}
|
|
83
|
+
set hostname(val) {
|
|
84
|
+
if (!val || !isString(val))
|
|
85
|
+
return;
|
|
86
|
+
val = val.trim();
|
|
87
|
+
const preValue = __classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_getPreValue).call(this);
|
|
88
|
+
__classPrivateFieldGet(this, _TaroLocation_url, "f").hostname = val;
|
|
89
|
+
if (__classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_checkUrlChange).call(this, preValue))
|
|
90
|
+
__classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_recordHistory).call(this);
|
|
91
|
+
}
|
|
92
|
+
get port() {
|
|
93
|
+
return __classPrivateFieldGet(this, _TaroLocation_url, "f").port;
|
|
94
|
+
}
|
|
95
|
+
set port(val) {
|
|
96
|
+
const xVal = Number((val = val.trim()));
|
|
97
|
+
if (!isNumber(xVal) || xVal <= 0)
|
|
98
|
+
return;
|
|
99
|
+
const preValue = __classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_getPreValue).call(this);
|
|
100
|
+
__classPrivateFieldGet(this, _TaroLocation_url, "f").port = val;
|
|
101
|
+
if (__classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_checkUrlChange).call(this, preValue))
|
|
102
|
+
__classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_recordHistory).call(this);
|
|
103
|
+
}
|
|
104
|
+
get pathname() {
|
|
105
|
+
return __classPrivateFieldGet(this, _TaroLocation_url, "f").pathname;
|
|
106
|
+
}
|
|
107
|
+
set pathname(val) {
|
|
108
|
+
if (!val || !isString(val))
|
|
109
|
+
return;
|
|
110
|
+
val = val.trim();
|
|
111
|
+
const preValue = __classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_getPreValue).call(this);
|
|
112
|
+
__classPrivateFieldGet(this, _TaroLocation_url, "f").pathname = val;
|
|
113
|
+
if (__classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_checkUrlChange).call(this, preValue))
|
|
114
|
+
__classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_recordHistory).call(this);
|
|
115
|
+
}
|
|
116
|
+
get search() {
|
|
117
|
+
return __classPrivateFieldGet(this, _TaroLocation_url, "f").search;
|
|
118
|
+
}
|
|
119
|
+
set search(val) {
|
|
120
|
+
if (!val || !isString(val))
|
|
121
|
+
return;
|
|
122
|
+
val = val.trim();
|
|
123
|
+
val = val.startsWith('?') ? val : `?${val}`;
|
|
124
|
+
const preValue = __classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_getPreValue).call(this);
|
|
125
|
+
__classPrivateFieldGet(this, _TaroLocation_url, "f").search = val;
|
|
126
|
+
if (__classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_checkUrlChange).call(this, preValue))
|
|
127
|
+
__classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_recordHistory).call(this);
|
|
128
|
+
}
|
|
129
|
+
get hash() {
|
|
130
|
+
return __classPrivateFieldGet(this, _TaroLocation_url, "f").hash;
|
|
131
|
+
}
|
|
132
|
+
// 小程序的navigateTo存在截断hash字符串的问题
|
|
133
|
+
set hash(val) {
|
|
134
|
+
if (!val || !isString(val))
|
|
135
|
+
return;
|
|
136
|
+
val = val.trim();
|
|
137
|
+
val = val.startsWith('#') ? val : `#${val}`;
|
|
138
|
+
const preValue = __classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_getPreValue).call(this);
|
|
139
|
+
__classPrivateFieldGet(this, _TaroLocation_url, "f").hash = val;
|
|
140
|
+
if (__classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_checkUrlChange).call(this, preValue))
|
|
141
|
+
__classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_recordHistory).call(this);
|
|
142
|
+
}
|
|
143
|
+
get href() {
|
|
144
|
+
return __classPrivateFieldGet(this, _TaroLocation_url, "f").href;
|
|
145
|
+
}
|
|
146
|
+
set href(val) {
|
|
147
|
+
const REG = /^(http:|https:)?\/\/.+/;
|
|
148
|
+
if (!val || !isString(val) || !REG.test((val = val.trim())))
|
|
149
|
+
return;
|
|
150
|
+
const preValue = __classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_getPreValue).call(this);
|
|
151
|
+
__classPrivateFieldGet(this, _TaroLocation_url, "f").href = val;
|
|
152
|
+
if (__classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_checkUrlChange).call(this, preValue))
|
|
153
|
+
__classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_recordHistory).call(this);
|
|
154
|
+
}
|
|
155
|
+
get origin() {
|
|
156
|
+
return __classPrivateFieldGet(this, _TaroLocation_url, "f").origin;
|
|
157
|
+
}
|
|
158
|
+
set origin(val) {
|
|
159
|
+
const REG = /^(http:|https:)?\/\/.+/;
|
|
160
|
+
if (!val || !isString(val) || !REG.test((val = val.trim())))
|
|
161
|
+
return;
|
|
162
|
+
const preValue = __classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_getPreValue).call(this);
|
|
163
|
+
__classPrivateFieldGet(this, _TaroLocation_url, "f").origin = val;
|
|
164
|
+
if (__classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_checkUrlChange).call(this, preValue))
|
|
165
|
+
__classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_recordHistory).call(this);
|
|
166
|
+
}
|
|
167
|
+
/* public method */
|
|
168
|
+
assign() {
|
|
169
|
+
warn(true, '小程序环境中调用location.assign()无效.');
|
|
170
|
+
}
|
|
171
|
+
reload() {
|
|
172
|
+
warn(true, '小程序环境中调用location.reload()无效.');
|
|
173
|
+
}
|
|
174
|
+
replace(url) {
|
|
175
|
+
this.trigger('__set_href_without_history__', url);
|
|
176
|
+
}
|
|
177
|
+
toString() {
|
|
178
|
+
return this.href;
|
|
179
|
+
}
|
|
180
|
+
// For debug
|
|
181
|
+
get cache() {
|
|
182
|
+
return cache;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
_TaroLocation_url = new WeakMap(), _TaroLocation_noCheckUrl = new WeakMap(), _TaroLocation_window = new WeakMap(), _TaroLocation_instances = new WeakSet(), _TaroLocation_reset = function _TaroLocation_reset() {
|
|
186
|
+
const Current = getCurrentInstance();
|
|
187
|
+
const router = Current.router;
|
|
188
|
+
if (router) {
|
|
189
|
+
const { path, params } = router;
|
|
190
|
+
const searchArr = Object.keys(params).map((key) => {
|
|
191
|
+
return `${key}=${params[key]}`;
|
|
192
|
+
});
|
|
193
|
+
const searchStr = searchArr.length > 0 ? '?' + searchArr.join('&') : '';
|
|
194
|
+
const url = `${INIT_URL}${path.startsWith('/') ? path : '/' + path}${searchStr}`;
|
|
195
|
+
__classPrivateFieldSet(this, _TaroLocation_url, new URL(url), "f");
|
|
196
|
+
this.trigger('__reset_history__', this.href);
|
|
197
|
+
}
|
|
198
|
+
}, _TaroLocation_getPreValue = function _TaroLocation_getPreValue() {
|
|
199
|
+
return __classPrivateFieldGet(this, _TaroLocation_url, "f")._toRaw();
|
|
200
|
+
}, _TaroLocation_rollBack = function _TaroLocation_rollBack(href) {
|
|
201
|
+
__classPrivateFieldGet(this, _TaroLocation_url, "f").href = href;
|
|
202
|
+
}, _TaroLocation_recordHistory = function _TaroLocation_recordHistory() {
|
|
203
|
+
this.trigger('__record_history__', this.href);
|
|
204
|
+
}, _TaroLocation_checkUrlChange = function _TaroLocation_checkUrlChange(preValue) {
|
|
205
|
+
if (__classPrivateFieldGet(this, _TaroLocation_noCheckUrl, "f")) {
|
|
206
|
+
return false;
|
|
207
|
+
}
|
|
208
|
+
const { protocol, hostname, port, pathname, search, hash } = __classPrivateFieldGet(this, _TaroLocation_url, "f")._toRaw();
|
|
209
|
+
// 跨域三要素不允许修改
|
|
210
|
+
if (protocol !== preValue.protocol || hostname !== preValue.hostname || port !== preValue.port) {
|
|
211
|
+
__classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_rollBack).call(this, preValue.href);
|
|
212
|
+
return false;
|
|
213
|
+
}
|
|
214
|
+
// pathname
|
|
215
|
+
if (pathname !== preValue.pathname) {
|
|
216
|
+
return true;
|
|
217
|
+
}
|
|
218
|
+
// search
|
|
219
|
+
if (search !== preValue.search) {
|
|
220
|
+
return true;
|
|
221
|
+
}
|
|
222
|
+
// hashchange
|
|
223
|
+
if (hash !== preValue.hash) {
|
|
224
|
+
__classPrivateFieldGet(this, _TaroLocation_window, "f").trigger('hashchange');
|
|
225
|
+
return true;
|
|
226
|
+
}
|
|
227
|
+
__classPrivateFieldGet(this, _TaroLocation_instances, "m", _TaroLocation_rollBack).call(this, preValue.href);
|
|
228
|
+
return false;
|
|
229
|
+
};
|
|
230
|
+
const Location = process.env.TARO_PLATFORM === 'web' ? env.window.Location : TaroLocation;
|
|
231
|
+
function generateFullUrl(val = '') {
|
|
232
|
+
const origin = INIT_URL;
|
|
233
|
+
if (/^[/?#]/.test(val)) {
|
|
234
|
+
return origin + val;
|
|
235
|
+
}
|
|
236
|
+
return val;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
export { Location };
|
|
240
|
+
//# sourceMappingURL=location.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"location.js","sources":["../../src/bom/location.ts"],"sourcesContent":["import { isNumber, isString, warn } from '@tarojs/shared'\n\nimport { CONTEXT_ACTIONS } from '../constants'\nimport { getCurrentInstance } from '../current'\nimport { Events } from '../emitter/emitter'\nimport env from '../env'\nimport { RuntimeCache } from '../utils/cache'\nimport { URL } from './URL'\n\ntype PreValue = ReturnType<typeof URL.prototype._toRaw>\n\ntype Options = {\n window: any\n}\ntype LocationContext = {\n lastHref: string\n}\n\nconst INIT_URL = 'https://taro.com'\nconst cache = new RuntimeCache<LocationContext>('location')\n\nclass TaroLocation extends Events {\n /* private property */\n #url = new URL(INIT_URL)\n #noCheckUrl = false\n #window: any\n\n constructor (options: Options) {\n super()\n\n this.#window = options.window\n\n this.#reset()\n\n this.on(\n '__set_href_without_history__',\n (href: string) => {\n this.#noCheckUrl = true\n\n const lastHash = this.#url.hash\n this.#url.href = generateFullUrl(href)\n\n if (lastHash !== this.#url.hash) {\n this.#window.trigger('hashchange')\n }\n\n this.#noCheckUrl = false\n },\n null\n )\n\n // 切换上下文行为\n this.on(\n CONTEXT_ACTIONS.INIT,\n () => {\n this.#reset()\n },\n null\n )\n\n this.on(\n CONTEXT_ACTIONS.RESTORE,\n (pageId: string) => {\n cache.set(pageId, {\n lastHref: this.href,\n })\n },\n null\n )\n\n this.on(\n CONTEXT_ACTIONS.RECOVER,\n (pageId: string) => {\n // 数据恢复时,不需要执行跳转\n if (cache.has(pageId)) {\n const ctx = cache.get(pageId)!\n this.#noCheckUrl = true\n this.#url.href = ctx.lastHref\n this.#noCheckUrl = false\n }\n },\n null\n )\n\n this.on(\n CONTEXT_ACTIONS.DESTORY,\n (pageId: string) => {\n cache.delete(pageId)\n },\n null\n )\n }\n\n /* private method */\n #reset () {\n const Current = getCurrentInstance()\n const router = Current.router\n if (router) {\n const { path, params } = router\n const searchArr = Object.keys(params).map((key) => {\n return `${key}=${params[key]}`\n })\n const searchStr = searchArr.length > 0 ? '?' + searchArr.join('&') : ''\n const url = `${INIT_URL}${path.startsWith('/') ? path : '/' + path}${searchStr}`\n\n this.#url = new URL(url)\n\n this.trigger('__reset_history__', this.href)\n }\n }\n\n #getPreValue (): PreValue {\n return this.#url._toRaw()\n }\n\n #rollBack (href: string) {\n this.#url.href = href\n }\n\n #recordHistory () {\n this.trigger('__record_history__', this.href)\n }\n\n /**\n * 校验url的变化,是否需要更新history\n */\n #checkUrlChange (preValue: PreValue): boolean {\n if (this.#noCheckUrl) {\n return false\n }\n\n const { protocol, hostname, port, pathname, search, hash } = this.#url._toRaw()\n\n // 跨域三要素不允许修改\n if (protocol !== preValue.protocol || hostname !== preValue.hostname || port !== preValue.port) {\n this.#rollBack(preValue.href)\n return false\n }\n\n // pathname\n if (pathname !== preValue.pathname) {\n return true\n }\n\n // search\n if (search !== preValue.search) {\n return true\n }\n\n // hashchange\n if (hash !== preValue.hash) {\n this.#window.trigger('hashchange')\n return true\n }\n\n this.#rollBack(preValue.href)\n return false\n }\n\n /* public property */\n get protocol () {\n return this.#url.protocol\n }\n\n set protocol (val: string) {\n const REG = /^(http|https):$/i\n if (!val || !isString(val) || !REG.test(val.trim())) return\n\n val = val.trim()\n const preValue = this.#getPreValue()\n this.#url.protocol = val\n\n if (this.#checkUrlChange(preValue)) this.#recordHistory()\n }\n\n get host () {\n return this.#url.host\n }\n\n set host (val: string) {\n if (!val || !isString(val)) return\n val = val.trim()\n\n const preValue = this.#getPreValue()\n this.#url.host = val\n\n if (this.#checkUrlChange(preValue)) this.#recordHistory()\n }\n\n get hostname () {\n return this.#url.hostname\n }\n\n set hostname (val: string) {\n if (!val || !isString(val)) return\n val = val.trim()\n\n const preValue = this.#getPreValue()\n this.#url.hostname = val\n\n if (this.#checkUrlChange(preValue)) this.#recordHistory()\n }\n\n get port () {\n return this.#url.port\n }\n\n set port (val: string) {\n const xVal = Number((val = val.trim()))\n if (!isNumber(xVal) || xVal <= 0) return\n\n const preValue = this.#getPreValue()\n this.#url.port = val\n\n if (this.#checkUrlChange(preValue)) this.#recordHistory()\n }\n\n get pathname () {\n return this.#url.pathname\n }\n\n set pathname (val: string) {\n if (!val || !isString(val)) return\n val = val.trim()\n\n const preValue = this.#getPreValue()\n this.#url.pathname = val\n\n if (this.#checkUrlChange(preValue)) this.#recordHistory()\n }\n\n get search () {\n return this.#url.search\n }\n\n set search (val: string) {\n if (!val || !isString(val)) return\n val = val.trim()\n val = val.startsWith('?') ? val : `?${val}`\n\n const preValue = this.#getPreValue()\n this.#url.search = val\n\n if (this.#checkUrlChange(preValue)) this.#recordHistory()\n }\n\n get hash () {\n return this.#url.hash\n }\n\n // 小程序的navigateTo存在截断hash字符串的问题\n set hash (val: string) {\n if (!val || !isString(val)) return\n val = val.trim()\n val = val.startsWith('#') ? val : `#${val}`\n\n const preValue = this.#getPreValue()\n this.#url.hash = val\n\n if (this.#checkUrlChange(preValue)) this.#recordHistory()\n }\n\n get href () {\n return this.#url.href\n }\n\n set href (val: string) {\n const REG = /^(http:|https:)?\\/\\/.+/\n if (!val || !isString(val) || !REG.test((val = val.trim()))) return\n\n const preValue = this.#getPreValue()\n this.#url.href = val\n\n if (this.#checkUrlChange(preValue)) this.#recordHistory()\n }\n\n get origin () {\n return this.#url.origin\n }\n\n set origin (val: string) {\n const REG = /^(http:|https:)?\\/\\/.+/\n if (!val || !isString(val) || !REG.test((val = val.trim()))) return\n\n const preValue = this.#getPreValue()\n this.#url.origin = val\n\n if (this.#checkUrlChange(preValue)) this.#recordHistory()\n }\n\n /* public method */\n assign () {\n warn(true, '小程序环境中调用location.assign()无效.')\n }\n\n reload () {\n warn(true, '小程序环境中调用location.reload()无效.')\n }\n\n replace (url: string) {\n this.trigger('__set_href_without_history__', url)\n }\n\n toString () {\n return this.href\n }\n\n // For debug\n get cache () {\n return cache\n }\n}\n\nexport type { TaroLocation }\nexport const Location: typeof TaroLocation = process.env.TARO_PLATFORM === 'web' ? env.window.Location : TaroLocation\n\nfunction generateFullUrl (val = '') {\n const origin = INIT_URL\n if (/^[/?#]/.test(val)) {\n return origin + val\n }\n return val\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import env from '../env.js';
|
|
2
|
+
|
|
3
|
+
const machine = 'Macintosh';
|
|
4
|
+
const arch = 'Intel Mac OS X 10_14_5';
|
|
5
|
+
const engine = 'AppleWebKit/534.36 (KHTML, like Gecko) NodeJS/v4.1.0 Chrome/76.0.3809.132 Safari/534.36';
|
|
6
|
+
const msg = '(' + machine + '; ' + arch + ') ' + engine;
|
|
7
|
+
const nav = process.env.TARO_PLATFORM === 'web' ? env.window.navigator : {
|
|
8
|
+
appCodeName: 'Mozilla',
|
|
9
|
+
appName: 'Netscape',
|
|
10
|
+
appVersion: '5.0 ' + msg,
|
|
11
|
+
cookieEnabled: true,
|
|
12
|
+
mimeTypes: [],
|
|
13
|
+
onLine: true,
|
|
14
|
+
platform: 'MacIntel',
|
|
15
|
+
plugins: [],
|
|
16
|
+
product: 'Taro',
|
|
17
|
+
productSub: '20030107',
|
|
18
|
+
userAgent: 'Mozilla/5.0 ' + msg,
|
|
19
|
+
vendor: 'Joyent',
|
|
20
|
+
vendorSub: ''
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export { nav };
|
|
24
|
+
//# sourceMappingURL=navigator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigator.js","sources":["../../src/bom/navigator.ts"],"sourcesContent":["import env from '../env'\n\nconst machine = 'Macintosh'\nconst arch = 'Intel Mac OS X 10_14_5'\nconst engine = 'AppleWebKit/534.36 (KHTML, like Gecko) NodeJS/v4.1.0 Chrome/76.0.3809.132 Safari/534.36'\n\nconst msg = '(' + machine + '; ' + arch + ') ' + engine\n\nexport const nav: typeof window.navigator = process.env.TARO_PLATFORM === 'web' ? env.window.navigator : {\n appCodeName: 'Mozilla',\n appName: 'Netscape',\n appVersion: '5.0 ' + msg,\n cookieEnabled: true,\n mimeTypes: [],\n onLine: true,\n platform: 'MacIntel',\n plugins: [],\n product: 'Taro',\n productSub: '20030107',\n userAgent: 'Mozilla/5.0 ' + msg,\n vendor: 'Joyent',\n vendorSub: ''\n}\n"],"names":[],"mappings":";;AAEA,MAAM,OAAO,GAAG,WAAW,CAAA;AAC3B,MAAM,IAAI,GAAG,wBAAwB,CAAA;AACrC,MAAM,MAAM,GAAG,yFAAyF,CAAA;AAExG,MAAM,GAAG,GAAG,GAAG,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAA;MAE1C,GAAG,GAA4B,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG;AACvG,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE,MAAM,GAAG,GAAG;AACxB,IAAA,aAAa,EAAE,IAAI;AACnB,IAAA,SAAS,EAAE,EAAE;AACb,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,UAAU,EAAE,UAAU;IACtB,SAAS,EAAE,cAAc,GAAG,GAAG;AAC/B,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,SAAS,EAAE,EAAE;;;;;"}
|
package/dist/bom/raf.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// https://github.com/myrne/performance-now
|
|
2
|
+
let now;
|
|
3
|
+
(function () {
|
|
4
|
+
let loadTime;
|
|
5
|
+
if ((typeof performance !== 'undefined' && performance !== null) && performance.now) {
|
|
6
|
+
now = () => performance.now();
|
|
7
|
+
}
|
|
8
|
+
else if (Date.now) {
|
|
9
|
+
loadTime = Date.now();
|
|
10
|
+
now = () => Date.now() - loadTime;
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
loadTime = new Date().getTime();
|
|
14
|
+
now = () => new Date().getTime() - loadTime;
|
|
15
|
+
}
|
|
16
|
+
})();
|
|
17
|
+
let lastTime = 0;
|
|
18
|
+
// https://gist.github.com/paulirish/1579671
|
|
19
|
+
// https://gist.github.com/jalbam/5fe05443270fa6d8136238ec72accbc0
|
|
20
|
+
const _raf = process.env.TARO_PLATFORM === 'web' ? requestAnimationFrame : function (callback) {
|
|
21
|
+
const _now = now();
|
|
22
|
+
const nextTime = Math.max(lastTime + 16, _now); // First time will execute it immediately but barely noticeable and performance is gained.
|
|
23
|
+
return setTimeout(function () { callback(lastTime = nextTime); }, nextTime - _now);
|
|
24
|
+
};
|
|
25
|
+
const _caf = process.env.TARO_PLATFORM === 'web'
|
|
26
|
+
? cancelAnimationFrame
|
|
27
|
+
: function (seed) {
|
|
28
|
+
// fix https://github.com/NervJS/taro/issues/7749
|
|
29
|
+
clearTimeout(seed);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export { _caf as caf, now, _raf as raf };
|
|
33
|
+
//# sourceMappingURL=raf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raf.js","sources":["../../src/bom/raf.ts"],"sourcesContent":["// https://github.com/myrne/performance-now\nexport let now: () => number\n\n(function () {\n let loadTime\n if ((typeof performance !== 'undefined' && performance !== null) && performance.now) {\n now = () => performance.now()\n } else if (Date.now) {\n loadTime = Date.now()\n now = () => Date.now() - loadTime\n } else {\n loadTime = new Date().getTime()\n now = () => new Date().getTime() - loadTime\n }\n})()\n\nlet lastTime = 0\n\n// https://gist.github.com/paulirish/1579671\n// https://gist.github.com/jalbam/5fe05443270fa6d8136238ec72accbc0\nconst _raf = process.env.TARO_PLATFORM === 'web' ? requestAnimationFrame : function (callback) {\n const _now = now()\n const nextTime = Math.max(lastTime + 16, _now) // First time will execute it immediately but barely noticeable and performance is gained.\n return setTimeout(function () { callback(lastTime = nextTime) }, nextTime - _now)\n}\n\nconst _caf = process.env.TARO_PLATFORM === 'web'\n ? cancelAnimationFrame\n : function (seed) {\n // fix https://github.com/NervJS/taro/issues/7749\n clearTimeout(seed)\n }\n\nexport {\n _caf as caf,\n _raf as raf\n}\n"],"names":[],"mappings":"AAAA;AACW,IAAA,IAAiB;AAE5B,CAAC,YAAA;AACC,IAAA,IAAI,QAAQ,CAAA;AACZ,IAAA,IAAI,CAAC,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,KAAK,IAAI,KAAK,WAAW,CAAC,GAAG,EAAE;QACnF,GAAG,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,CAAA;KAC9B;AAAM,SAAA,IAAI,IAAI,CAAC,GAAG,EAAE;AACnB,QAAA,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACrB,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAA;KAClC;SAAM;AACL,QAAA,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;AAC/B,QAAA,GAAG,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAA;KAC5C;AACH,CAAC,GAAG,CAAA;AAEJ,IAAI,QAAQ,GAAG,CAAC,CAAA;AAEhB;AACA;AACA,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,KAAK,GAAG,qBAAqB,GAAG,UAAU,QAAQ,EAAA;AAC3F,IAAA,MAAM,IAAI,GAAG,GAAG,EAAE,CAAA;AAClB,IAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,EAAE,IAAI,CAAC,CAAA;AAC9C,IAAA,OAAO,UAAU,CAAC,YAAA,EAAc,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAA,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC,CAAA;AACnF,EAAC;AAEK,MAAA,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,KAAK;AAC9C,MAAE,oBAAoB;MACpB,UAAU,IAAI,EAAA;;QAEd,YAAY,CAAC,IAAI,CAAC,CAAA;AACpB;;;;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Events } from "../emitter/emitter.js";
|
|
3
|
+
import { TaroHistory } from "./history.js";
|
|
4
|
+
import { TaroLocation } from "./location.js";
|
|
5
|
+
declare class TaroWindow extends Events {
|
|
6
|
+
navigator: Navigator;
|
|
7
|
+
requestAnimationFrame: typeof requestAnimationFrame | ((callback: any) => NodeJS.Timeout);
|
|
8
|
+
cancelAnimationFrame: typeof cancelAnimationFrame;
|
|
9
|
+
getComputedStyle: import("./getComputedStyle.js").TGetComputedStyle;
|
|
10
|
+
Date: DateConstructor;
|
|
11
|
+
location: TaroLocation;
|
|
12
|
+
history: TaroHistory;
|
|
13
|
+
XMLHttpRequest?: Partial<XMLHttpRequest>;
|
|
14
|
+
constructor();
|
|
15
|
+
initEvent(): void;
|
|
16
|
+
get document(): import("../dom/document.js").TaroDocument;
|
|
17
|
+
addEventListener(event: string, callback: (arg: any) => void): void;
|
|
18
|
+
removeEventListener(event: string, callback: (arg: any) => void): void;
|
|
19
|
+
setTimeout(...args: Parameters<typeof setTimeout>): NodeJS.Timeout;
|
|
20
|
+
clearTimeout(...args: Parameters<typeof clearTimeout>): void;
|
|
21
|
+
}
|
|
22
|
+
declare const window: TaroWindow;
|
|
23
|
+
declare const location: TaroLocation;
|
|
24
|
+
declare const history: TaroHistory;
|
|
25
|
+
export type { TaroWindow };
|
|
26
|
+
export { window, location, history };
|