vite-plugin-taro-runtime 0.6.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/LICENSE +174 -0
- package/README.md +45 -0
- package/dist/bom/URL.d.ts +53 -0
- package/dist/bom/URL.js +222 -0
- package/dist/bom/URL.js.map +1 -0
- package/dist/bom/URLSearchParams.d.ts +3 -0
- package/dist/bom/URLSearchParams.js +131 -0
- package/dist/bom/URLSearchParams.js.map +1 -0
- package/dist/bom/document.d.ts +5 -0
- package/dist/bom/document.js +185 -0
- package/dist/bom/document.js.map +1 -0
- package/dist/bom/getComputedStyle.d.ts +8 -0
- package/dist/bom/getComputedStyle.js +9 -0
- package/dist/bom/getComputedStyle.js.map +1 -0
- package/dist/bom/history.d.ts +34 -0
- package/dist/bom/history.js +121 -0
- package/dist/bom/history.js.map +1 -0
- package/dist/bom/location.d.ts +40 -0
- package/dist/bom/location.js +240 -0
- package/dist/bom/location.js.map +1 -0
- package/dist/bom/navigator.d.ts +3 -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 +28 -0
- package/dist/bom/window.js +93 -0
- package/dist/bom/window.js.map +1 -0
- package/dist/constants/index.d.ts +59 -0
- package/dist/constants/index.js +62 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/current.d.ts +22 -0
- package/dist/current.js +9 -0
- package/dist/current.js.map +1 -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 +19 -0
- package/dist/dom/class-list.js +92 -0
- package/dist/dom/class-list.js.map +1 -0
- package/dist/dom/document.d.ts +24 -0
- package/dist/dom/document.js +80 -0
- package/dist/dom/document.js.map +1 -0
- package/dist/dom/element.d.ts +43 -0
- package/dist/dom/element.js +317 -0
- package/dist/dom/element.js.map +1 -0
- package/dist/dom/event-source.d.ts +9 -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 +11 -0
- package/dist/dom/event-target.js +83 -0
- package/dist/dom/event-target.js.map +1 -0
- package/dist/dom/event.d.ts +27 -0
- package/dist/dom/event.js +160 -0
- package/dist/dom/event.js.map +1 -0
- package/dist/dom/form.d.ts +12 -0
- package/dist/dom/form.js +38 -0
- package/dist/dom/form.js.map +1 -0
- package/dist/dom/node.d.ts +79 -0
- package/dist/dom/node.js +301 -0
- package/dist/dom/node.js.map +1 -0
- package/dist/dom/node_types.d.ts +12 -0
- package/dist/dom/root.d.ts +21 -0
- package/dist/dom/root.js +186 -0
- package/dist/dom/root.js.map +1 -0
- package/dist/dom/style.d.ts +17 -0
- package/dist/dom/style.js +168 -0
- package/dist/dom/style.js.map +1 -0
- package/dist/dom/style_properties.js +187 -0
- package/dist/dom/style_properties.js.map +1 -0
- package/dist/dom/svg.d.ts +6 -0
- package/dist/dom/svg.js +8 -0
- package/dist/dom/svg.js.map +1 -0
- package/dist/dom/text.d.ts +17 -0
- package/dist/dom/text.js +41 -0
- package/dist/dom/text.js.map +1 -0
- package/dist/dom/transfer.js +15 -0
- package/dist/dom/transfer.js.map +1 -0
- package/dist/dom/tree.js +38 -0
- package/dist/dom/tree.js.map +1 -0
- package/dist/dom-external/element.js +36 -0
- package/dist/dom-external/element.js.map +1 -0
- package/dist/dom-external/index.js +39 -0
- package/dist/dom-external/index.js.map +1 -0
- package/dist/dom-external/inner-html/html.d.ts +5 -0
- package/dist/dom-external/inner-html/html.js +35 -0
- package/dist/dom-external/inner-html/html.js.map +1 -0
- package/dist/dom-external/inner-html/parser.d.ts +20 -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/scanner.js +304 -0
- package/dist/dom-external/inner-html/scanner.js.map +1 -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.js +26 -0
- package/dist/dom-external/inner-html/tags.js.map +1 -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 +55 -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 +15 -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/mutation-observer/record.d.ts +28 -0
- package/dist/dom-external/node.js +75 -0
- package/dist/dom-external/node.js.map +1 -0
- package/dist/dsl/common.d.ts +17 -0
- package/dist/dsl/common.js +376 -0
- package/dist/dsl/common.js.map +1 -0
- package/dist/dsl/instance.d.ts +97 -0
- package/dist/emitter/emitter.d.ts +8 -0
- package/dist/emitter/emitter.js +7 -0
- package/dist/emitter/emitter.js.map +1 -0
- package/dist/env.d.ts +9 -0
- package/dist/env.js +9 -0
- package/dist/env.js.map +1 -0
- package/dist/hydrate.d.ts +13 -0
- package/dist/hydrate.js +104 -0
- package/dist/hydrate.js.map +1 -0
- package/dist/index.cjs.d.ts +921 -0
- package/dist/index.cjs.js +5401 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/dist/interface/animate.d.ts +83 -0
- package/dist/interface/element.d.ts +6 -0
- package/dist/interface/event-target.d.ts +13 -0
- package/dist/interface/event.d.ts +16 -0
- package/dist/interface/hydrate.d.ts +33 -0
- package/dist/interface/node.d.ts +10 -0
- package/dist/interface/options.d.ts +19 -0
- package/dist/interface/utils.d.ts +4 -0
- package/dist/next-tick.d.ts +5 -0
- package/dist/next-tick.js +47 -0
- package/dist/next-tick.js.map +1 -0
- package/dist/options.d.ts +5 -0
- package/dist/options.js +7 -0
- package/dist/options.js.map +1 -0
- package/dist/perf.d.ts +10 -0
- package/dist/perf.js +49 -0
- package/dist/perf.js.map +1 -0
- package/dist/polyfill/array.js +56 -0
- package/dist/polyfill/array.js.map +1 -0
- package/dist/polyfill/index.d.ts +3 -0
- package/dist/polyfill/index.js +34 -0
- package/dist/polyfill/index.js.map +1 -0
- package/dist/polyfill/intersection-observer.js +597 -0
- package/dist/polyfill/intersection-observer.js.map +1 -0
- package/dist/polyfill/object.js +102 -0
- package/dist/polyfill/object.js.map +1 -0
- package/dist/runtime.esm.d.ts +921 -0
- package/dist/runtime.esm.js +5274 -0
- package/dist/runtime.esm.js.map +1 -0
- package/dist/utils/cache.d.ts +14 -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 +4 -0
- package/dist/utils/lodash.js +32 -0
- package/dist/utils/lodash.js.map +1 -0
- package/dist/utils/router.d.ts +9 -0
- package/dist/utils/router.js +24 -0
- package/dist/utils/router.js.map +1 -0
- package/package.json +39 -0
|
@@ -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 { TaroURLProvider } 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 TaroURLProvider(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.DESTROY, (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 TaroURLProvider(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 { TaroURLProvider } from './URL'\n\ntype PreValue = ReturnType<typeof TaroURLProvider.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 TaroURLProvider(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.DESTROY,\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 TaroURLProvider(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;AAC3B,MAAM,IAAI,GAAG,wBAAwB;AACrC,MAAM,MAAM,GAAG,yFAAyF;AAExG,MAAM,GAAG,GAAG,GAAG,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM;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;;;;;"}
|
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;AAEX,CAAC,YAAA;AACC,IAAA,IAAI,QAAQ;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;;AACxB,SAAA,IAAI,IAAI,CAAC,GAAG,EAAE;AACnB,QAAA,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE;QACrB,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ;;SAC5B;AACL,QAAA,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;AAC/B,QAAA,GAAG,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,QAAQ;;AAE/C,CAAC,GAAG;AAEJ,IAAI,QAAQ,GAAG,CAAC;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;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;AACnF;AAEM,MAAA,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK;AACzC,MAAE;MACA,UAAU,IAAI,EAAA;;QAEd,YAAY,CAAC,IAAI,CAAC;AACpB;;;;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { TaroDocument } from '../dom/document.js';
|
|
2
|
+
import { TGetComputedStyle } from './getComputedStyle.js';
|
|
3
|
+
import { Events } from '@tarojs/shared';
|
|
4
|
+
import { TaroHistory } from './history.js';
|
|
5
|
+
import { TaroLocation } from './location.js';
|
|
6
|
+
|
|
7
|
+
declare class TaroWindow extends Events {
|
|
8
|
+
navigator: Navigator;
|
|
9
|
+
requestAnimationFrame: typeof requestAnimationFrame | ((callback: any) => NodeJS.Timeout);
|
|
10
|
+
cancelAnimationFrame: typeof cancelAnimationFrame;
|
|
11
|
+
getComputedStyle: TGetComputedStyle;
|
|
12
|
+
Date: DateConstructor;
|
|
13
|
+
location: TaroLocation;
|
|
14
|
+
history: TaroHistory;
|
|
15
|
+
XMLHttpRequest?: Partial<XMLHttpRequest>;
|
|
16
|
+
constructor();
|
|
17
|
+
initEvent(): void;
|
|
18
|
+
get document(): TaroDocument;
|
|
19
|
+
addEventListener(event: string, callback: (arg: any) => void): void;
|
|
20
|
+
removeEventListener(event: string, callback: (arg: any) => void): void;
|
|
21
|
+
setTimeout(...args: Parameters<typeof setTimeout>): NodeJS.Timeout;
|
|
22
|
+
clearTimeout(...args: Parameters<typeof clearTimeout>): void;
|
|
23
|
+
}
|
|
24
|
+
declare const taroWindowProvider: TaroWindow;
|
|
25
|
+
declare const taroLocationProvider: TaroLocation;
|
|
26
|
+
declare const taroHistoryProvider: TaroHistory;
|
|
27
|
+
|
|
28
|
+
export { TaroWindow, taroHistoryProvider, taroLocationProvider, taroWindowProvider };
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { Events, isString } from '@tarojs/shared';
|
|
2
|
+
import { CONTEXT_ACTIONS } from '../constants/index.js';
|
|
3
|
+
import '../emitter/emitter.js';
|
|
4
|
+
import env from '../env.js';
|
|
5
|
+
import { taroGetComputedStyleProvider } from './getComputedStyle.js';
|
|
6
|
+
import { History } from './history.js';
|
|
7
|
+
import { Location } from './location.js';
|
|
8
|
+
import { nav } from './navigator.js';
|
|
9
|
+
import { raf as _raf, caf as _caf } from './raf.js';
|
|
10
|
+
|
|
11
|
+
class TaroWindow extends Events {
|
|
12
|
+
constructor() {
|
|
13
|
+
super();
|
|
14
|
+
this.navigator = nav;
|
|
15
|
+
this.requestAnimationFrame = _raf;
|
|
16
|
+
this.cancelAnimationFrame = _caf;
|
|
17
|
+
this.getComputedStyle = taroGetComputedStyleProvider;
|
|
18
|
+
const globalProperties = [
|
|
19
|
+
...Object.getOwnPropertyNames(global || {}),
|
|
20
|
+
...Object.getOwnPropertySymbols(global || {})
|
|
21
|
+
];
|
|
22
|
+
globalProperties.forEach(property => {
|
|
23
|
+
if (property === 'atob' || property === 'document')
|
|
24
|
+
return;
|
|
25
|
+
if (!Object.prototype.hasOwnProperty.call(this, property)) {
|
|
26
|
+
// 防止小程序环境下,window 上的某些 get 属性在赋值时报错
|
|
27
|
+
try {
|
|
28
|
+
this[property] = global[property];
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
32
|
+
console.warn(`[Taro warn] window.${String(property)} 在赋值到 window 时报错`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
this.Date || (this.Date = Date);
|
|
38
|
+
// 应用启动时,提供给需要读取历史信息的库使用
|
|
39
|
+
this.location = new Location({ window: this });
|
|
40
|
+
// @ts-ignore
|
|
41
|
+
this.history = new History(this.location, { window: this });
|
|
42
|
+
this.initEvent();
|
|
43
|
+
}
|
|
44
|
+
initEvent() {
|
|
45
|
+
const _location = this.location;
|
|
46
|
+
const _history = this.history;
|
|
47
|
+
this.on(CONTEXT_ACTIONS.INIT, (pageId) => {
|
|
48
|
+
// 页面 onload,为该页面建立新的上下文信息
|
|
49
|
+
_location.trigger(CONTEXT_ACTIONS.INIT, pageId);
|
|
50
|
+
}, null);
|
|
51
|
+
this.on(CONTEXT_ACTIONS.RECOVER, (pageId) => {
|
|
52
|
+
// 页面 onshow,恢复当前页面的上下文信息
|
|
53
|
+
_location.trigger(CONTEXT_ACTIONS.RECOVER, pageId);
|
|
54
|
+
_history.trigger(CONTEXT_ACTIONS.RECOVER, pageId);
|
|
55
|
+
}, null);
|
|
56
|
+
this.on(CONTEXT_ACTIONS.RESTORE, (pageId) => {
|
|
57
|
+
// 页面 onhide,缓存当前页面的上下文信息
|
|
58
|
+
_location.trigger(CONTEXT_ACTIONS.RESTORE, pageId);
|
|
59
|
+
_history.trigger(CONTEXT_ACTIONS.RESTORE, pageId);
|
|
60
|
+
}, null);
|
|
61
|
+
this.on(CONTEXT_ACTIONS.DESTROY, (pageId) => {
|
|
62
|
+
// 页面 onunload,清除当前页面的上下文信息
|
|
63
|
+
_location.trigger(CONTEXT_ACTIONS.DESTROY, pageId);
|
|
64
|
+
_history.trigger(CONTEXT_ACTIONS.DESTROY, pageId);
|
|
65
|
+
}, null);
|
|
66
|
+
}
|
|
67
|
+
get document() {
|
|
68
|
+
return env.document;
|
|
69
|
+
}
|
|
70
|
+
addEventListener(event, callback) {
|
|
71
|
+
if (!isString(event))
|
|
72
|
+
return;
|
|
73
|
+
this.on(event, callback, null);
|
|
74
|
+
}
|
|
75
|
+
removeEventListener(event, callback) {
|
|
76
|
+
if (!isString(event))
|
|
77
|
+
return;
|
|
78
|
+
this.off(event, callback, null);
|
|
79
|
+
}
|
|
80
|
+
setTimeout(...args) {
|
|
81
|
+
return setTimeout(...args);
|
|
82
|
+
}
|
|
83
|
+
clearTimeout(...args) {
|
|
84
|
+
return clearTimeout(...args);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// Note: 小程序端 vite 打包成 commonjs,const window = xxx 会报错,所以把 window 改为 taroWindowProvider,location 和 history 同理
|
|
88
|
+
const taroWindowProvider = process.env.TARO_PLATFORM === 'web' ? env.window : (env.window = new TaroWindow());
|
|
89
|
+
const taroLocationProvider = taroWindowProvider.location;
|
|
90
|
+
const taroHistoryProvider = taroWindowProvider.history;
|
|
91
|
+
|
|
92
|
+
export { TaroWindow, taroHistoryProvider, taroLocationProvider, taroWindowProvider };
|
|
93
|
+
//# sourceMappingURL=window.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"window.js","sources":["../../../src/bom/window.ts"],"sourcesContent":["import { isString } from '@tarojs/shared'\n\nimport { CONTEXT_ACTIONS } from '../constants'\nimport { Events } from '../emitter/emitter'\nimport env from '../env'\nimport { taroGetComputedStyleProvider } from './getComputedStyle'\nimport { History } from './history'\nimport { Location } from './location'\nimport { nav as navigator } from './navigator'\nimport { caf, raf } from './raf'\n\nimport type { TaroHistory } from './history'\nimport type { TaroLocation } from './location'\n\nexport class TaroWindow extends Events {\n navigator = navigator\n requestAnimationFrame = raf\n cancelAnimationFrame = caf\n getComputedStyle = taroGetComputedStyleProvider\n Date: DateConstructor\n\n location: TaroLocation\n history: TaroHistory\n XMLHttpRequest?: Partial<XMLHttpRequest>\n\n constructor () {\n super()\n\n const globalProperties = [\n ...Object.getOwnPropertyNames(global || {}),\n ...Object.getOwnPropertySymbols(global || {})\n ]\n\n globalProperties.forEach(property => {\n if (property === 'atob' || property === 'document') return\n if (!Object.prototype.hasOwnProperty.call(this, property)) {\n // 防止小程序环境下,window 上的某些 get 属性在赋值时报错\n try {\n this[property] = global[property]\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[Taro warn] window.${String(property)} 在赋值到 window 时报错`)\n }\n }\n }\n })\n\n this.Date ||= Date\n\n // 应用启动时,提供给需要读取历史信息的库使用\n this.location = new Location({ window: this }) as any\n // @ts-ignore\n this.history = new History(this.location, { window: this })\n\n this.initEvent()\n }\n\n initEvent () {\n const _location = this.location\n const _history = this.history\n\n this.on(CONTEXT_ACTIONS.INIT, (pageId: string) => {\n // 页面 onload,为该页面建立新的上下文信息\n _location.trigger(CONTEXT_ACTIONS.INIT, pageId)\n }, null)\n\n this.on(CONTEXT_ACTIONS.RECOVER, (pageId: string) => {\n // 页面 onshow,恢复当前页面的上下文信息\n _location.trigger(CONTEXT_ACTIONS.RECOVER, pageId)\n _history.trigger(CONTEXT_ACTIONS.RECOVER, pageId)\n }, null)\n\n this.on(CONTEXT_ACTIONS.RESTORE, (pageId: string) => {\n // 页面 onhide,缓存当前页面的上下文信息\n _location.trigger(CONTEXT_ACTIONS.RESTORE, pageId)\n _history.trigger(CONTEXT_ACTIONS.RESTORE, pageId)\n }, null)\n\n this.on(CONTEXT_ACTIONS.DESTROY, (pageId: string) => {\n // 页面 onunload,清除当前页面的上下文信息\n _location.trigger(CONTEXT_ACTIONS.DESTROY, pageId)\n _history.trigger(CONTEXT_ACTIONS.DESTROY, pageId)\n }, null)\n }\n\n get document () {\n return env.document\n }\n\n addEventListener (event: string, callback: (arg: any) => void) {\n if (!isString(event)) return\n this.on(event, callback, null)\n }\n\n removeEventListener (event: string, callback: (arg: any) => void) {\n if (!isString(event)) return\n this.off(event, callback, null)\n }\n\n setTimeout (...args: Parameters<typeof setTimeout>) {\n return setTimeout(...args)\n }\n\n clearTimeout (...args: Parameters<typeof clearTimeout>) {\n return clearTimeout(...args)\n }\n}\n\n// Note: 小程序端 vite 打包成 commonjs,const window = xxx 会报错,所以把 window 改为 taroWindowProvider,location 和 history 同理\nexport const taroWindowProvider: TaroWindow = process.env.TARO_PLATFORM === 'web' ? env.window : (env.window = new TaroWindow())\nexport const taroLocationProvider = taroWindowProvider.location\nexport const taroHistoryProvider = taroWindowProvider.history\n"],"names":["navigator","raf","caf"],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
declare const PROPERTY_THRESHOLD = 2046;
|
|
2
|
+
declare const TARO_RUNTIME = "Taro runtime";
|
|
3
|
+
declare const HOOKS_APP_ID = "taro-app";
|
|
4
|
+
declare const SET_DATA = "\u5C0F\u7A0B\u5E8F setData";
|
|
5
|
+
declare const PAGE_INIT = "\u9875\u9762\u521D\u59CB\u5316";
|
|
6
|
+
declare const ROOT_STR = "root";
|
|
7
|
+
declare const HTML = "html";
|
|
8
|
+
declare const HEAD = "head";
|
|
9
|
+
declare const BODY = "body";
|
|
10
|
+
declare const APP = "app";
|
|
11
|
+
declare const CONTAINER = "container";
|
|
12
|
+
declare const DOCUMENT_ELEMENT_NAME = "#document";
|
|
13
|
+
declare const DOCUMENT_FRAGMENT = "document-fragment";
|
|
14
|
+
declare const ID = "id";
|
|
15
|
+
declare const UID = "uid";
|
|
16
|
+
declare const CLASS = "class";
|
|
17
|
+
declare const STYLE = "style";
|
|
18
|
+
declare const FOCUS = "focus";
|
|
19
|
+
declare const VIEW = "view";
|
|
20
|
+
declare const STATIC_VIEW = "static-view";
|
|
21
|
+
declare const PURE_VIEW = "pure-view";
|
|
22
|
+
declare const CLICK_VIEW = "click-view";
|
|
23
|
+
declare const PROPS = "props";
|
|
24
|
+
declare const DATASET = "dataset";
|
|
25
|
+
declare const OBJECT = "object";
|
|
26
|
+
declare const VALUE = "value";
|
|
27
|
+
declare const INPUT = "input";
|
|
28
|
+
declare const CHANGE = "change";
|
|
29
|
+
declare const CUSTOM_WRAPPER = "custom-wrapper";
|
|
30
|
+
declare const TARGET = "target";
|
|
31
|
+
declare const CURRENT_TARGET = "currentTarget";
|
|
32
|
+
declare const TYPE = "type";
|
|
33
|
+
declare const CONFIRM = "confirm";
|
|
34
|
+
declare const TIME_STAMP = "timeStamp";
|
|
35
|
+
declare const KEY_CODE = "keyCode";
|
|
36
|
+
declare const TOUCHMOVE = "touchmove";
|
|
37
|
+
declare const DATE = "Date";
|
|
38
|
+
declare const SET_TIMEOUT = "setTimeout";
|
|
39
|
+
declare const COMPILE_MODE = "compileMode";
|
|
40
|
+
declare const CATCHMOVE = "catchMove";
|
|
41
|
+
declare const CATCH_VIEW = "catch-view";
|
|
42
|
+
declare const COMMENT = "comment";
|
|
43
|
+
declare const ON_LOAD = "onLoad";
|
|
44
|
+
declare const ON_READY = "onReady";
|
|
45
|
+
declare const ON_SHOW = "onShow";
|
|
46
|
+
declare const ON_HIDE = "onHide";
|
|
47
|
+
declare const OPTIONS = "options";
|
|
48
|
+
declare const EXTERNAL_CLASSES = "externalClasses";
|
|
49
|
+
declare const EVENT_CALLBACK_RESULT = "e_result";
|
|
50
|
+
declare const BEHAVIORS = "behaviors";
|
|
51
|
+
declare const A = "a";
|
|
52
|
+
declare enum CONTEXT_ACTIONS {
|
|
53
|
+
INIT = "0",
|
|
54
|
+
RESTORE = "1",
|
|
55
|
+
RECOVER = "2",
|
|
56
|
+
DESTROY = "3"
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export { A, APP, BEHAVIORS, BODY, CATCHMOVE, CATCH_VIEW, CHANGE, CLASS, CLICK_VIEW, COMMENT, COMPILE_MODE, CONFIRM, CONTAINER, CONTEXT_ACTIONS, CURRENT_TARGET, CUSTOM_WRAPPER, DATASET, DATE, DOCUMENT_ELEMENT_NAME, DOCUMENT_FRAGMENT, EVENT_CALLBACK_RESULT, EXTERNAL_CLASSES, FOCUS, HEAD, HOOKS_APP_ID, HTML, ID, INPUT, KEY_CODE, OBJECT, ON_HIDE, ON_LOAD, ON_READY, ON_SHOW, OPTIONS, PAGE_INIT, PROPERTY_THRESHOLD, PROPS, PURE_VIEW, ROOT_STR, SET_DATA, SET_TIMEOUT, STATIC_VIEW, STYLE, TARGET, TARO_RUNTIME, TIME_STAMP, TOUCHMOVE, TYPE, UID, VALUE, VIEW };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
const PROPERTY_THRESHOLD = 2046;
|
|
2
|
+
const TARO_RUNTIME = 'Taro runtime';
|
|
3
|
+
const HOOKS_APP_ID = 'taro-app';
|
|
4
|
+
const SET_DATA = '小程序 setData';
|
|
5
|
+
const PAGE_INIT = '页面初始化';
|
|
6
|
+
const ROOT_STR = 'root';
|
|
7
|
+
const HTML = 'html';
|
|
8
|
+
const HEAD = 'head';
|
|
9
|
+
const BODY = 'body';
|
|
10
|
+
const APP = 'app';
|
|
11
|
+
const CONTAINER = 'container';
|
|
12
|
+
const DOCUMENT_ELEMENT_NAME = '#document';
|
|
13
|
+
const DOCUMENT_FRAGMENT = 'document-fragment';
|
|
14
|
+
const ID = 'id';
|
|
15
|
+
const UID = 'uid';
|
|
16
|
+
const CLASS = 'class';
|
|
17
|
+
const STYLE = 'style';
|
|
18
|
+
const FOCUS = 'focus';
|
|
19
|
+
const VIEW = 'view';
|
|
20
|
+
const STATIC_VIEW = 'static-view';
|
|
21
|
+
const PURE_VIEW = 'pure-view';
|
|
22
|
+
const CLICK_VIEW = 'click-view';
|
|
23
|
+
const PROPS = 'props';
|
|
24
|
+
const DATASET = 'dataset';
|
|
25
|
+
const OBJECT = 'object';
|
|
26
|
+
const VALUE = 'value';
|
|
27
|
+
const INPUT = 'input';
|
|
28
|
+
const CHANGE = 'change';
|
|
29
|
+
const CUSTOM_WRAPPER = 'custom-wrapper';
|
|
30
|
+
const TARGET = 'target';
|
|
31
|
+
const CURRENT_TARGET = 'currentTarget';
|
|
32
|
+
const TYPE = 'type';
|
|
33
|
+
const CONFIRM = 'confirm';
|
|
34
|
+
const TIME_STAMP = 'timeStamp';
|
|
35
|
+
const KEY_CODE = 'keyCode';
|
|
36
|
+
const TOUCHMOVE = 'touchmove';
|
|
37
|
+
const DATE = 'Date';
|
|
38
|
+
const SET_TIMEOUT = 'setTimeout';
|
|
39
|
+
const COMPILE_MODE = 'compileMode';
|
|
40
|
+
const CATCHMOVE = 'catchMove';
|
|
41
|
+
const CATCH_VIEW = 'catch-view';
|
|
42
|
+
const COMMENT = 'comment';
|
|
43
|
+
const ON_LOAD = 'onLoad';
|
|
44
|
+
const ON_READY = 'onReady';
|
|
45
|
+
const ON_SHOW = 'onShow';
|
|
46
|
+
const ON_HIDE = 'onHide';
|
|
47
|
+
const OPTIONS = 'options';
|
|
48
|
+
const EXTERNAL_CLASSES = 'externalClasses';
|
|
49
|
+
const EVENT_CALLBACK_RESULT = 'e_result';
|
|
50
|
+
const BEHAVIORS = 'behaviors';
|
|
51
|
+
const A = 'a';
|
|
52
|
+
// 页面上下文切换时的行为
|
|
53
|
+
var CONTEXT_ACTIONS;
|
|
54
|
+
(function (CONTEXT_ACTIONS) {
|
|
55
|
+
CONTEXT_ACTIONS["INIT"] = "0";
|
|
56
|
+
CONTEXT_ACTIONS["RESTORE"] = "1";
|
|
57
|
+
CONTEXT_ACTIONS["RECOVER"] = "2";
|
|
58
|
+
CONTEXT_ACTIONS["DESTROY"] = "3";
|
|
59
|
+
})(CONTEXT_ACTIONS || (CONTEXT_ACTIONS = {}));
|
|
60
|
+
|
|
61
|
+
export { A, APP, BEHAVIORS, BODY, CATCHMOVE, CATCH_VIEW, CHANGE, CLASS, CLICK_VIEW, COMMENT, COMPILE_MODE, CONFIRM, CONTAINER, CONTEXT_ACTIONS, CURRENT_TARGET, CUSTOM_WRAPPER, DATASET, DATE, DOCUMENT_ELEMENT_NAME, DOCUMENT_FRAGMENT, EVENT_CALLBACK_RESULT, EXTERNAL_CLASSES, FOCUS, HEAD, HOOKS_APP_ID, HTML, ID, INPUT, KEY_CODE, OBJECT, ON_HIDE, ON_LOAD, ON_READY, ON_SHOW, OPTIONS, PAGE_INIT, PROPERTY_THRESHOLD, PROPS, PURE_VIEW, ROOT_STR, SET_DATA, SET_TIMEOUT, STATIC_VIEW, STYLE, TARGET, TARO_RUNTIME, TIME_STAMP, TOUCHMOVE, TYPE, UID, VALUE, VIEW };
|
|
62
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/constants/index.ts"],"sourcesContent":["export const PROPERTY_THRESHOLD = 2046\nexport const TARO_RUNTIME = 'Taro runtime'\nexport const HOOKS_APP_ID = 'taro-app'\nexport const SET_DATA = '小程序 setData'\nexport const PAGE_INIT = '页面初始化'\nexport const ROOT_STR = 'root'\nexport const HTML = 'html'\nexport const HEAD = 'head'\nexport const BODY = 'body'\nexport const APP = 'app'\nexport const CONTAINER = 'container'\nexport const DOCUMENT_ELEMENT_NAME = '#document'\nexport const DOCUMENT_FRAGMENT = 'document-fragment'\nexport const ID = 'id'\nexport const UID = 'uid'\nexport const CLASS = 'class'\nexport const STYLE = 'style'\nexport const FOCUS = 'focus'\nexport const VIEW = 'view'\nexport const STATIC_VIEW = 'static-view'\nexport const PURE_VIEW = 'pure-view'\nexport const CLICK_VIEW = 'click-view'\nexport const PROPS = 'props'\nexport const DATASET = 'dataset'\nexport const OBJECT = 'object'\nexport const VALUE = 'value'\nexport const INPUT = 'input'\nexport const CHANGE = 'change'\nexport const CUSTOM_WRAPPER = 'custom-wrapper'\nexport const TARGET = 'target'\nexport const CURRENT_TARGET = 'currentTarget'\nexport const TYPE = 'type'\nexport const CONFIRM = 'confirm'\nexport const TIME_STAMP = 'timeStamp'\nexport const KEY_CODE = 'keyCode'\nexport const TOUCHMOVE = 'touchmove'\nexport const DATE = 'Date'\nexport const SET_TIMEOUT = 'setTimeout'\nexport const COMPILE_MODE = 'compileMode'\nexport const CATCHMOVE = 'catchMove'\nexport const CATCH_VIEW = 'catch-view'\nexport const COMMENT = 'comment'\nexport const ON_LOAD = 'onLoad'\nexport const ON_READY = 'onReady'\nexport const ON_SHOW = 'onShow'\nexport const ON_HIDE = 'onHide'\nexport const OPTIONS = 'options'\nexport const EXTERNAL_CLASSES = 'externalClasses'\nexport const EVENT_CALLBACK_RESULT = 'e_result'\nexport const BEHAVIORS = 'behaviors'\nexport const A = 'a'\n\n// 页面上下文切换时的行为\nexport enum CONTEXT_ACTIONS {\n INIT = '0',\n RESTORE = '1',\n RECOVER = '2',\n DESTROY = '3'\n}\n"],"names":[],"mappings":"AAAO,MAAM,kBAAkB,GAAG;AAC3B,MAAM,YAAY,GAAG;AACrB,MAAM,YAAY,GAAG;AACrB,MAAM,QAAQ,GAAG;AACjB,MAAM,SAAS,GAAG;AAClB,MAAM,QAAQ,GAAG;AACjB,MAAM,IAAI,GAAG;AACb,MAAM,IAAI,GAAG;AACb,MAAM,IAAI,GAAG;AACb,MAAM,GAAG,GAAG;AACZ,MAAM,SAAS,GAAG;AAClB,MAAM,qBAAqB,GAAG;AAC9B,MAAM,iBAAiB,GAAG;AAC1B,MAAM,EAAE,GAAG;AACX,MAAM,GAAG,GAAG;AACZ,MAAM,KAAK,GAAG;AACd,MAAM,KAAK,GAAG;AACd,MAAM,KAAK,GAAG;AACd,MAAM,IAAI,GAAG;AACb,MAAM,WAAW,GAAG;AACpB,MAAM,SAAS,GAAG;AAClB,MAAM,UAAU,GAAG;AACnB,MAAM,KAAK,GAAG;AACd,MAAM,OAAO,GAAG;AAChB,MAAM,MAAM,GAAG;AACf,MAAM,KAAK,GAAG;AACd,MAAM,KAAK,GAAG;AACd,MAAM,MAAM,GAAG;AACf,MAAM,cAAc,GAAG;AACvB,MAAM,MAAM,GAAG;AACf,MAAM,cAAc,GAAG;AACvB,MAAM,IAAI,GAAG;AACb,MAAM,OAAO,GAAG;AAChB,MAAM,UAAU,GAAG;AACnB,MAAM,QAAQ,GAAG;AACjB,MAAM,SAAS,GAAG;AAClB,MAAM,IAAI,GAAG;AACb,MAAM,WAAW,GAAG;AACpB,MAAM,YAAY,GAAG;AACrB,MAAM,SAAS,GAAG;AAClB,MAAM,UAAU,GAAG;AACnB,MAAM,OAAO,GAAG;AAChB,MAAM,OAAO,GAAG;AAChB,MAAM,QAAQ,GAAG;AACjB,MAAM,OAAO,GAAG;AAChB,MAAM,OAAO,GAAG;AAChB,MAAM,OAAO,GAAG;AAChB,MAAM,gBAAgB,GAAG;AACzB,MAAM,qBAAqB,GAAG;AAC9B,MAAM,SAAS,GAAG;AAClB,MAAM,CAAC,GAAG;AAEjB;IACY;AAAZ,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,GAAU;AACV,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,GAAa;AACb,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,GAAa;AACb,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,GAAa;AACf,CAAC,EALW,eAAe,KAAf,eAAe,GAK1B,EAAA,CAAA,CAAA;;;;"}
|