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,22 @@
|
|
|
1
|
+
import { AppInstance, PageInstance } from './dsl/instance.js';
|
|
2
|
+
|
|
3
|
+
interface Router {
|
|
4
|
+
params: Record<string, unknown>;
|
|
5
|
+
path: string;
|
|
6
|
+
$taroPath: string;
|
|
7
|
+
onReady: string;
|
|
8
|
+
onHide: string;
|
|
9
|
+
onShow: string;
|
|
10
|
+
exitState?: any;
|
|
11
|
+
}
|
|
12
|
+
interface Current {
|
|
13
|
+
app: AppInstance | null;
|
|
14
|
+
router: Router | null;
|
|
15
|
+
page: PageInstance | null;
|
|
16
|
+
preloadData?: any;
|
|
17
|
+
}
|
|
18
|
+
declare const Current: Current;
|
|
19
|
+
declare const getCurrentInstance: () => Current;
|
|
20
|
+
|
|
21
|
+
export { Current, getCurrentInstance };
|
|
22
|
+
export type { Router };
|
package/dist/current.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"current.js","sources":["../../src/current.ts"],"sourcesContent":["import { AppInstance, PageInstance } from './dsl/instance'\n\nexport interface Router {\n params: Record<string, unknown>\n path: string\n $taroPath: string\n onReady: string\n onHide: string\n onShow: string\n exitState?: any\n}\n\ninterface Current {\n app: AppInstance | null\n router: Router | null\n page: PageInstance | null\n preloadData?: any\n}\n\nexport const Current: Current = {\n app: null,\n router: null,\n page: null\n}\n\nexport const getCurrentInstance = () => Current\n"],"names":[],"mappings":"AAmBa,MAAA,OAAO,GAAY;AAC9B,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,IAAI,EAAE;;MAGK,kBAAkB,GAAG,MAAM;;;;"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { parseUrl } from '../bom/URL.js';
|
|
2
|
+
import { TaroElement } from './element.js';
|
|
3
|
+
|
|
4
|
+
class AnchorElement extends TaroElement {
|
|
5
|
+
get href() {
|
|
6
|
+
var _a;
|
|
7
|
+
return (_a = this.props["href" /* AnchorElementAttrs.HREF */]) !== null && _a !== void 0 ? _a : '';
|
|
8
|
+
}
|
|
9
|
+
set href(val) {
|
|
10
|
+
this.setAttribute("href" /* AnchorElementAttrs.HREF */, val);
|
|
11
|
+
}
|
|
12
|
+
get protocol() {
|
|
13
|
+
var _a;
|
|
14
|
+
return (_a = this.props["protocol" /* AnchorElementAttrs.PROTOCOL */]) !== null && _a !== void 0 ? _a : '';
|
|
15
|
+
}
|
|
16
|
+
get host() {
|
|
17
|
+
var _a;
|
|
18
|
+
return (_a = this.props["host" /* AnchorElementAttrs.HOST */]) !== null && _a !== void 0 ? _a : '';
|
|
19
|
+
}
|
|
20
|
+
get search() {
|
|
21
|
+
var _a;
|
|
22
|
+
return (_a = this.props["search" /* AnchorElementAttrs.SEARCH */]) !== null && _a !== void 0 ? _a : '';
|
|
23
|
+
}
|
|
24
|
+
get hash() {
|
|
25
|
+
var _a;
|
|
26
|
+
return (_a = this.props["hash" /* AnchorElementAttrs.HASH */]) !== null && _a !== void 0 ? _a : '';
|
|
27
|
+
}
|
|
28
|
+
get hostname() {
|
|
29
|
+
var _a;
|
|
30
|
+
return (_a = this.props["hostname" /* AnchorElementAttrs.HOSTNAME */]) !== null && _a !== void 0 ? _a : '';
|
|
31
|
+
}
|
|
32
|
+
get port() {
|
|
33
|
+
var _a;
|
|
34
|
+
return (_a = this.props["port" /* AnchorElementAttrs.PORT */]) !== null && _a !== void 0 ? _a : '';
|
|
35
|
+
}
|
|
36
|
+
get pathname() {
|
|
37
|
+
var _a;
|
|
38
|
+
return (_a = this.props["pathname" /* AnchorElementAttrs.PATHNAME */]) !== null && _a !== void 0 ? _a : '';
|
|
39
|
+
}
|
|
40
|
+
setAttribute(qualifiedName, value) {
|
|
41
|
+
if (qualifiedName === "href" /* AnchorElementAttrs.HREF */) {
|
|
42
|
+
const willSetAttr = parseUrl(value);
|
|
43
|
+
for (const k in willSetAttr) {
|
|
44
|
+
super.setAttribute(k, willSetAttr[k]);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
super.setAttribute(qualifiedName, value);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export { AnchorElement };
|
|
54
|
+
//# sourceMappingURL=anchor-element.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anchor-element.js","sources":["../../../src/dom/anchor-element.ts"],"sourcesContent":["import { parseUrl } from '../bom/URL'\nimport { TaroElement } from './element'\n\nconst enum AnchorElementAttrs {\n HREF = 'href',\n PROTOCOL = 'protocol',\n HOST = 'host',\n SEARCH = 'search',\n HASH = 'hash',\n HOSTNAME = 'hostname',\n PORT = 'port',\n PATHNAME = 'pathname'\n}\n\nexport class AnchorElement extends TaroElement {\n public get href () {\n return this.props[AnchorElementAttrs.HREF] ?? ''\n }\n\n public set href (val: string) {\n this.setAttribute(AnchorElementAttrs.HREF, val)\n }\n\n get protocol () {\n return this.props[AnchorElementAttrs.PROTOCOL] ?? ''\n }\n\n get host () {\n return this.props[AnchorElementAttrs.HOST] ?? ''\n }\n\n get search () {\n return this.props[AnchorElementAttrs.SEARCH] ?? ''\n }\n\n get hash () {\n return this.props[AnchorElementAttrs.HASH] ?? ''\n }\n\n get hostname () {\n return this.props[AnchorElementAttrs.HOSTNAME] ?? ''\n }\n\n get port () {\n return this.props[AnchorElementAttrs.PORT] ?? ''\n }\n\n get pathname () {\n return this.props[AnchorElementAttrs.PATHNAME] ?? ''\n }\n\n public setAttribute (qualifiedName: string, value: any): void {\n if (qualifiedName === AnchorElementAttrs.HREF) {\n const willSetAttr = parseUrl(value)\n for (const k in willSetAttr) {\n super.setAttribute(k, willSetAttr[k])\n }\n } else {\n super.setAttribute(qualifiedName, value)\n }\n }\n}\n"],"names":[],"mappings":";;;AAcM,MAAO,aAAc,SAAQ,WAAW,CAAA;AAC5C,IAAA,IAAW,IAAI,GAAA;;AACb,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAAyB,MAAA,+BAAA,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;;IAGlD,IAAW,IAAI,CAAE,GAAW,EAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,CAA0B,MAAA,gCAAA,GAAG,CAAC;;AAGjD,IAAA,IAAI,QAAQ,GAAA;;AACV,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAA6B,UAAA,mCAAA,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;;AAGtD,IAAA,IAAI,IAAI,GAAA;;AACN,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAAyB,MAAA,+BAAA,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;;AAGlD,IAAA,IAAI,MAAM,GAAA;;AACR,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAA2B,QAAA,iCAAA,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;;AAGpD,IAAA,IAAI,IAAI,GAAA;;AACN,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAAyB,MAAA,+BAAA,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;;AAGlD,IAAA,IAAI,QAAQ,GAAA;;AACV,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAA6B,UAAA,mCAAA,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;;AAGtD,IAAA,IAAI,IAAI,GAAA;;AACN,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAAyB,MAAA,+BAAA,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;;AAGlD,IAAA,IAAI,QAAQ,GAAA;;AACV,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,CAA6B,UAAA,mCAAA,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;;IAG/C,YAAY,CAAE,aAAqB,EAAE,KAAU,EAAA;QACpD,IAAI,aAAa,KAA4B,MAAA,gCAAE;AAC7C,YAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC;AACnC,YAAA,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE;gBAC3B,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;;;aAElC;AACL,YAAA,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC;;;AAG7C;;;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { TaroElement } from './element.js';
|
|
2
|
+
|
|
3
|
+
declare class ClassList {
|
|
4
|
+
private el;
|
|
5
|
+
private tokenList;
|
|
6
|
+
constructor(className: string, el: TaroElement);
|
|
7
|
+
get value(): string;
|
|
8
|
+
get length(): number;
|
|
9
|
+
add(): void;
|
|
10
|
+
remove(): void;
|
|
11
|
+
contains(token: string): boolean;
|
|
12
|
+
toggle(token: string, force: boolean): boolean;
|
|
13
|
+
replace(token: string, replacement_token: string): void;
|
|
14
|
+
toString(): string;
|
|
15
|
+
private checkTokenIsValid;
|
|
16
|
+
private _update;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export { ClassList };
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
class ClassList {
|
|
2
|
+
constructor(className, el) {
|
|
3
|
+
this.tokenList = [];
|
|
4
|
+
this.el = el;
|
|
5
|
+
className.trim().split(/\s+/).forEach(token => this.tokenList.push(token));
|
|
6
|
+
}
|
|
7
|
+
get value() {
|
|
8
|
+
return this.toString();
|
|
9
|
+
}
|
|
10
|
+
get length() {
|
|
11
|
+
return this.tokenList.length;
|
|
12
|
+
}
|
|
13
|
+
add() {
|
|
14
|
+
let index = 0;
|
|
15
|
+
let updated = false;
|
|
16
|
+
const tokens = arguments;
|
|
17
|
+
const length = tokens.length;
|
|
18
|
+
const tokenList = this.tokenList;
|
|
19
|
+
do {
|
|
20
|
+
const token = tokens[index];
|
|
21
|
+
if (this.checkTokenIsValid(token) && !~tokenList.indexOf(token)) {
|
|
22
|
+
tokenList.push(token);
|
|
23
|
+
updated = true;
|
|
24
|
+
}
|
|
25
|
+
} while (++index < length);
|
|
26
|
+
if (updated) {
|
|
27
|
+
this._update();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
remove() {
|
|
31
|
+
let i = 0;
|
|
32
|
+
let updated = false;
|
|
33
|
+
const tokens = arguments;
|
|
34
|
+
const length = tokens.length;
|
|
35
|
+
const tokenList = this.tokenList;
|
|
36
|
+
do {
|
|
37
|
+
const token = tokens[i] + '';
|
|
38
|
+
if (!this.checkTokenIsValid(token))
|
|
39
|
+
continue;
|
|
40
|
+
const index = tokenList.indexOf(token);
|
|
41
|
+
if (~tokenList.indexOf(token)) {
|
|
42
|
+
tokenList.splice(index, 1);
|
|
43
|
+
updated = true;
|
|
44
|
+
}
|
|
45
|
+
} while (++i < length);
|
|
46
|
+
if (updated) {
|
|
47
|
+
this._update();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
contains(token) {
|
|
51
|
+
if (!this.checkTokenIsValid(token))
|
|
52
|
+
return false;
|
|
53
|
+
return !!~this.tokenList.indexOf(token);
|
|
54
|
+
}
|
|
55
|
+
toggle(token, force) {
|
|
56
|
+
const result = this.contains(token);
|
|
57
|
+
const method = result ? force !== true && 'remove' : force !== false && 'add';
|
|
58
|
+
if (method) {
|
|
59
|
+
// @ts-ignore
|
|
60
|
+
this[method](token);
|
|
61
|
+
}
|
|
62
|
+
if (force === true || force === false) {
|
|
63
|
+
return force;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
return !result;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
replace(token, replacement_token) {
|
|
70
|
+
if (!this.checkTokenIsValid(token) || !this.checkTokenIsValid(replacement_token))
|
|
71
|
+
return;
|
|
72
|
+
const index = this.tokenList.indexOf(token);
|
|
73
|
+
if (~index) {
|
|
74
|
+
this.tokenList.splice(index, 1, replacement_token);
|
|
75
|
+
this._update();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
toString() {
|
|
79
|
+
return this.tokenList.filter(v => v !== '').join(' ');
|
|
80
|
+
}
|
|
81
|
+
checkTokenIsValid(token) {
|
|
82
|
+
if (token === '' || /\s/.test(token))
|
|
83
|
+
return false;
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
_update() {
|
|
87
|
+
this.el.className = this.value;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export { ClassList };
|
|
92
|
+
//# sourceMappingURL=class-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"class-list.js","sources":["../../../src/dom/class-list.ts"],"sourcesContent":["import type { TaroElement } from './element'\n\nexport class ClassList {\n private el: TaroElement\n\n private tokenList: string[] = []\n\n constructor (className: string, el: TaroElement) {\n this.el = el\n className.trim().split(/\\s+/).forEach(token => this.tokenList.push(token))\n }\n\n public get value () {\n return this.toString()\n }\n\n public get length () {\n return this.tokenList.length\n }\n\n add () {\n let index = 0\n let updated = false\n\n const tokens = arguments\n const length = tokens.length\n const tokenList = this.tokenList\n\n do {\n const token: string = tokens[index]\n\n if (this.checkTokenIsValid(token) && !~tokenList.indexOf(token)) {\n tokenList.push(token)\n\n updated = true\n }\n } while (++index < length)\n\n if (updated) {\n this._update()\n }\n }\n\n remove () {\n let i = 0\n let updated = false\n\n const tokens = arguments\n const length = tokens.length\n const tokenList = this.tokenList\n\n do {\n const token = tokens[i] + ''\n\n if (!this.checkTokenIsValid(token)) continue\n\n const index = tokenList.indexOf(token)\n\n if (~tokenList.indexOf(token)) {\n tokenList.splice(index, 1)\n\n updated = true\n }\n } while (++i < length)\n\n if (updated) {\n this._update()\n }\n }\n\n contains (token: string) {\n if (!this.checkTokenIsValid(token)) return false\n\n return !!~this.tokenList.indexOf(token)\n }\n\n toggle (token: string, force: boolean) {\n const result = this.contains(token)\n const method = result ? force !== true && 'remove' : force !== false && 'add'\n\n if (method) {\n // @ts-ignore\n this[method](token)\n }\n\n if (force === true || force === false) {\n return force\n } else {\n return !result\n }\n }\n\n replace (token: string, replacement_token: string) {\n if (!this.checkTokenIsValid(token) || !this.checkTokenIsValid(replacement_token)) return\n\n const index = this.tokenList.indexOf(token)\n\n if (~index) {\n this.tokenList.splice(index, 1, replacement_token)\n this._update()\n }\n }\n\n toString () {\n return this.tokenList.filter(v => v !== '').join(' ')\n }\n\n private checkTokenIsValid (token: string) {\n if (token === '' || /\\s/.test(token)) return false\n\n return true\n }\n\n private _update () {\n this.el.className = this.value\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { TaroElement } from './element.js';
|
|
2
|
+
import { createEvent } from './event.js';
|
|
3
|
+
import { FormElement } from './form.js';
|
|
4
|
+
import { TaroRootElement } from './root.js';
|
|
5
|
+
import { TaroText } from './text.js';
|
|
6
|
+
|
|
7
|
+
declare class TaroDocument extends TaroElement {
|
|
8
|
+
documentElement: TaroElement;
|
|
9
|
+
head: TaroElement;
|
|
10
|
+
body: TaroElement;
|
|
11
|
+
createEvent: typeof createEvent;
|
|
12
|
+
cookie?: string;
|
|
13
|
+
constructor();
|
|
14
|
+
createElement(type: string): TaroElement | TaroRootElement | FormElement;
|
|
15
|
+
createElementNS(_svgNS: string, type: string): TaroElement | TaroRootElement | FormElement;
|
|
16
|
+
createTextNode(text: string): TaroText;
|
|
17
|
+
getElementById<T extends TaroElement>(id: string | undefined | null): T | null;
|
|
18
|
+
querySelector<T extends TaroElement>(query: string): T | null;
|
|
19
|
+
querySelectorAll(): never[];
|
|
20
|
+
createComment(): TaroText;
|
|
21
|
+
get defaultView(): any;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { TaroDocument };
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { toCamelCase, controlledComponent, isUndefined } from '@tarojs/shared';
|
|
2
|
+
import { DOCUMENT_ELEMENT_NAME, A, ROOT_STR, COMMENT } from '../constants/index.js';
|
|
3
|
+
import { TaroElement } from './element.js';
|
|
4
|
+
import { createEvent } from './event.js';
|
|
5
|
+
import { eventSource } from './event-source.js';
|
|
6
|
+
import { FormElement } from './form.js';
|
|
7
|
+
import { TaroRootElement } from './root.js';
|
|
8
|
+
import { TaroText } from './text.js';
|
|
9
|
+
import env from '../env.js';
|
|
10
|
+
import { AnchorElement } from './anchor-element.js';
|
|
11
|
+
import { TransferElement } from './transfer.js';
|
|
12
|
+
|
|
13
|
+
class TaroDocument extends TaroElement {
|
|
14
|
+
constructor() {
|
|
15
|
+
super();
|
|
16
|
+
this.createEvent = createEvent;
|
|
17
|
+
this.nodeType = 9 /* NodeType.DOCUMENT_NODE */;
|
|
18
|
+
this.nodeName = DOCUMENT_ELEMENT_NAME;
|
|
19
|
+
}
|
|
20
|
+
createElement(type) {
|
|
21
|
+
const nodeName = type.toLowerCase();
|
|
22
|
+
let element;
|
|
23
|
+
switch (true) {
|
|
24
|
+
case nodeName === ROOT_STR:
|
|
25
|
+
element = new TaroRootElement();
|
|
26
|
+
return element;
|
|
27
|
+
case controlledComponent.has(nodeName):
|
|
28
|
+
element = new FormElement();
|
|
29
|
+
break;
|
|
30
|
+
case nodeName === A:
|
|
31
|
+
element = new AnchorElement();
|
|
32
|
+
break;
|
|
33
|
+
case nodeName === 'page-meta':
|
|
34
|
+
case nodeName === 'navigation-bar':
|
|
35
|
+
element = new TransferElement(toCamelCase(nodeName));
|
|
36
|
+
break;
|
|
37
|
+
default:
|
|
38
|
+
element = new TaroElement();
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
element.nodeName = nodeName;
|
|
42
|
+
element.tagName = type.toUpperCase();
|
|
43
|
+
return element;
|
|
44
|
+
}
|
|
45
|
+
// an ugly fake createElementNS to deal with @vue/runtime-dom's
|
|
46
|
+
// support mounting app to svg container since vue@3.0.8
|
|
47
|
+
createElementNS(_svgNS, type) {
|
|
48
|
+
return this.createElement(type);
|
|
49
|
+
}
|
|
50
|
+
createTextNode(text) {
|
|
51
|
+
return new TaroText(text);
|
|
52
|
+
}
|
|
53
|
+
getElementById(id) {
|
|
54
|
+
const el = eventSource.get(id);
|
|
55
|
+
return isUndefined(el) ? null : el;
|
|
56
|
+
}
|
|
57
|
+
querySelector(query) {
|
|
58
|
+
// 为了 Vue3 的乞丐版实现
|
|
59
|
+
if (/^#/.test(query)) {
|
|
60
|
+
return this.getElementById(query.slice(1));
|
|
61
|
+
}
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
querySelectorAll() {
|
|
65
|
+
// fake hack
|
|
66
|
+
return [];
|
|
67
|
+
}
|
|
68
|
+
// @TODO: @PERF: 在 hydrate 移除掉空的 node
|
|
69
|
+
createComment() {
|
|
70
|
+
const textnode = new TaroText('');
|
|
71
|
+
textnode.nodeName = COMMENT;
|
|
72
|
+
return textnode;
|
|
73
|
+
}
|
|
74
|
+
get defaultView() {
|
|
75
|
+
return env.window;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export { TaroDocument };
|
|
80
|
+
//# sourceMappingURL=document.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.js","sources":["../../../src/dom/document.ts"],"sourcesContent":["import { controlledComponent, isUndefined, toCamelCase } from '@tarojs/shared'\n\nimport {\n A,\n COMMENT,\n DOCUMENT_ELEMENT_NAME,\n ROOT_STR\n} from '../constants'\nimport { TaroElement } from '../dom/element'\nimport { createEvent } from '../dom/event'\nimport { eventSource } from '../dom/event-source'\nimport { FormElement } from '../dom/form'\nimport { NodeType } from '../dom/node_types'\nimport { TaroRootElement } from '../dom/root'\nimport { TaroText } from '../dom/text'\nimport env from '../env'\nimport { AnchorElement } from './anchor-element'\nimport { TransferElement } from './transfer'\n\nexport class TaroDocument extends TaroElement {\n public documentElement: TaroElement\n public head: TaroElement\n public body: TaroElement\n public createEvent = createEvent\n cookie?: string\n\n public constructor () {\n super()\n this.nodeType = NodeType.DOCUMENT_NODE\n this.nodeName = DOCUMENT_ELEMENT_NAME\n }\n\n public createElement (type: string): TaroElement | TaroRootElement | FormElement {\n const nodeName = type.toLowerCase()\n\n let element: TaroElement\n switch (true) {\n case nodeName === ROOT_STR:\n element = new TaroRootElement()\n return element\n case controlledComponent.has(nodeName):\n element = new FormElement()\n break\n case nodeName === A:\n element = new AnchorElement()\n break\n case nodeName === 'page-meta':\n case nodeName === 'navigation-bar':\n element = new TransferElement(toCamelCase(nodeName))\n break\n default:\n element = new TaroElement()\n break\n }\n\n element.nodeName = nodeName\n element.tagName = type.toUpperCase()\n\n return element\n }\n\n // an ugly fake createElementNS to deal with @vue/runtime-dom's\n // support mounting app to svg container since vue@3.0.8\n public createElementNS (_svgNS: string, type: string): TaroElement | TaroRootElement | FormElement {\n return this.createElement(type)\n }\n\n public createTextNode (text: string): TaroText {\n return new TaroText(text)\n }\n\n public getElementById<T extends TaroElement> (id: string | undefined | null): T | null {\n const el = eventSource.get(id)\n return isUndefined(el) ? null : el as T\n }\n\n public querySelector<T extends TaroElement> (query: string): T | null {\n // 为了 Vue3 的乞丐版实现\n if (/^#/.test(query)) {\n return this.getElementById<T>(query.slice(1))\n }\n return null\n }\n\n public querySelectorAll () {\n // fake hack\n return []\n }\n\n // @TODO: @PERF: 在 hydrate 移除掉空的 node\n public createComment (): TaroText {\n const textnode = new TaroText('')\n textnode.nodeName = COMMENT\n return textnode\n }\n\n get defaultView () {\n return env.window\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAmBM,MAAO,YAAa,SAAQ,WAAW,CAAA;AAO3C,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QAJF,IAAW,CAAA,WAAA,GAAG,WAAW;QAK9B,IAAI,CAAC,QAAQ,GAAA,CAAA;AACb,QAAA,IAAI,CAAC,QAAQ,GAAG,qBAAqB;;AAGhC,IAAA,aAAa,CAAE,IAAY,EAAA;AAChC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE;AAEnC,QAAA,IAAI,OAAoB;QACxB,QAAQ,IAAI;YACV,KAAK,QAAQ,KAAK,QAAQ;AACxB,gBAAA,OAAO,GAAG,IAAI,eAAe,EAAE;AAC/B,gBAAA,OAAO,OAAO;AAChB,YAAA,KAAK,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC;AACpC,gBAAA,OAAO,GAAG,IAAI,WAAW,EAAE;gBAC3B;YACF,KAAK,QAAQ,KAAK,CAAC;AACjB,gBAAA,OAAO,GAAG,IAAI,aAAa,EAAE;gBAC7B;YACF,KAAK,QAAQ,KAAK,WAAW;YAC7B,KAAK,QAAQ,KAAK,gBAAgB;gBAChC,OAAO,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACpD;AACF,YAAA;AACE,gBAAA,OAAO,GAAG,IAAI,WAAW,EAAE;gBAC3B;;AAGJ,QAAA,OAAO,CAAC,QAAQ,GAAG,QAAQ;AAC3B,QAAA,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE;AAEpC,QAAA,OAAO,OAAO;;;;IAKT,eAAe,CAAE,MAAc,EAAE,IAAY,EAAA;AAClD,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;;AAG1B,IAAA,cAAc,CAAE,IAAY,EAAA;AACjC,QAAA,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC;;AAGpB,IAAA,cAAc,CAAyB,EAA6B,EAAA;QACzE,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;AAC9B,QAAA,OAAO,WAAW,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAO;;AAGlC,IAAA,aAAa,CAAyB,KAAa,EAAA;;AAExD,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACpB,OAAO,IAAI,CAAC,cAAc,CAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;;AAE/C,QAAA,OAAO,IAAI;;IAGN,gBAAgB,GAAA;;AAErB,QAAA,OAAO,EAAE;;;IAIJ,aAAa,GAAA;AAClB,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC;AACjC,QAAA,QAAQ,CAAC,QAAQ,GAAG,OAAO;AAC3B,QAAA,OAAO,QAAQ;;AAGjB,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,GAAG,CAAC,MAAM;;AAEpB;;;;"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { ClassList } from './class-list.js';
|
|
2
|
+
import { TaroNode } from './node.js';
|
|
3
|
+
import { Style } from './style.js';
|
|
4
|
+
import { Attributes } from '../interface/element.js';
|
|
5
|
+
import { TFunc } from '../interface/utils.js';
|
|
6
|
+
import { TaroEvent } from './event.js';
|
|
7
|
+
|
|
8
|
+
declare class TaroElement extends TaroNode {
|
|
9
|
+
ctx?: any;
|
|
10
|
+
tagName: string;
|
|
11
|
+
props: Record<string, any>;
|
|
12
|
+
style: Style;
|
|
13
|
+
dataset: Record<string, unknown>;
|
|
14
|
+
innerHTML: string;
|
|
15
|
+
constructor();
|
|
16
|
+
private _stopPropagation;
|
|
17
|
+
get id(): string;
|
|
18
|
+
set id(val: string);
|
|
19
|
+
get className(): string;
|
|
20
|
+
set className(val: string);
|
|
21
|
+
get cssText(): string;
|
|
22
|
+
get classList(): ClassList;
|
|
23
|
+
get children(): TaroElement[];
|
|
24
|
+
get attributes(): Attributes[];
|
|
25
|
+
get textContent(): string;
|
|
26
|
+
set textContent(text: string);
|
|
27
|
+
hasAttribute(qualifiedName: string): boolean;
|
|
28
|
+
hasAttributes(): boolean;
|
|
29
|
+
get focus(): () => void;
|
|
30
|
+
set focus(value: () => void);
|
|
31
|
+
blur(): void;
|
|
32
|
+
setAttribute(qualifiedName: string, value: any): void;
|
|
33
|
+
removeAttribute(qualifiedName: string): void;
|
|
34
|
+
getAttribute(qualifiedName: string): string;
|
|
35
|
+
getElementsByTagName(tagName: string): TaroElement[];
|
|
36
|
+
getElementsByClassName(className: string): TaroElement[];
|
|
37
|
+
dispatchEvent(event: TaroEvent): boolean;
|
|
38
|
+
addEventListener(type: any, handler: any, options: any): void;
|
|
39
|
+
removeEventListener(type: any, handler: any, sideEffect?: boolean): void;
|
|
40
|
+
static extend(methodName: string, options: TFunc | Record<string, any>): void;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export { TaroElement };
|