@tarojs/runtime 4.0.0-beta.1 → 4.0.0-beta.3
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 +14 -0
- 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 +123 -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 +4 -0
- package/dist/bom/raf.js +33 -0
- package/dist/bom/raf.js.map +1 -0
- package/dist/bom/window.d.ts +25 -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 +151 -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 +40 -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 +74 -0
- package/dist/dom-external/node.js.map +1 -0
- package/dist/dsl/common.d.ts +15 -0
- package/dist/dsl/common.js +332 -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 +84 -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} +92 -89
- package/dist/{runtime.h5.js → index.cjs.js} +4251 -2493
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/instance-4c64b022.d.ts +92 -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 +7 -0
- package/dist/perf.js +28 -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 +599 -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 +92 -89
- package/dist/runtime.esm.js +4077 -3317
- 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 +2 -0
- package/dist/utils/lodash.js +22 -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 +16 -11
- package/dist/runtime.cjs.js +0 -4628
- package/dist/runtime.h5.d.ts +0 -800
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import env from "./env.js";
|
|
2
|
+
export { hooks } from '@tarojs/shared';
|
|
3
|
+
export { document } from "./bom/document.js";
|
|
4
|
+
export { getComputedStyle } from "./bom/getComputedStyle.js";
|
|
5
|
+
export { History } from "./bom/history.js";
|
|
6
|
+
export { Location } from "./bom/location.js";
|
|
7
|
+
export { nav as navigator } from "./bom/navigator.js";
|
|
8
|
+
export { caf as cancelAnimationFrame, now, raf as requestAnimationFrame } from "./bom/raf.js";
|
|
9
|
+
export { parseUrl, URL } from "./bom/URL.js";
|
|
10
|
+
export { URLSearchParams } from "./bom/URLSearchParams.js";
|
|
11
|
+
export { history, location, window } from "./bom/window.js";
|
|
12
|
+
export { TaroElement } from "./dom/element.js";
|
|
13
|
+
export { createEvent, eventHandler, TaroEvent } from "./dom/event.js";
|
|
14
|
+
export { FormElement } from "./dom/form.js";
|
|
15
|
+
export { TaroNode } from "./dom/node.js";
|
|
16
|
+
export { TaroRootElement } from "./dom/root.js";
|
|
17
|
+
export { Style } from "./dom/style.js";
|
|
18
|
+
export { SVGElement } from "./dom/svg.js";
|
|
19
|
+
export { TaroText } from "./dom/text.js";
|
|
20
|
+
export { MutationObserver } from "./dom-external/mutation-observer/index.js";
|
|
21
|
+
export { env };
|
|
22
|
+
export * from "./constants/index.js";
|
|
23
|
+
export { Current, getCurrentInstance } from "./current.js";
|
|
24
|
+
export { eventSource } from "./dom/event-source.js";
|
|
25
|
+
export { createComponentConfig, createPageConfig, createRecursiveComponentConfig, getOnHideEventKey, getOnReadyEventKey, getOnShowEventKey, getPageInstance, getPath, injectPageInstance, removePageInstance, safeExecute, stringify } from "./dsl/common.js";
|
|
26
|
+
export * from "./emitter/emitter.js";
|
|
27
|
+
export { hydrate } from "./hydrate.js";
|
|
28
|
+
export { nextTick } from "./next-tick.js";
|
|
29
|
+
export { options } from "./options.js";
|
|
30
|
+
export * from "./utils/index.js";
|
|
31
|
+
export * from "./instance-4c64b022.js";
|
|
32
|
+
export * from "./index-26658829.js";
|
|
33
|
+
export * from "./polyfill/index.js";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import './dom-external/index.js';
|
|
2
|
+
export { default as env } from './env.js';
|
|
3
|
+
export { Events, hooks } from '@tarojs/shared';
|
|
4
|
+
export { document } from './bom/document.js';
|
|
5
|
+
export { getComputedStyle } from './bom/getComputedStyle.js';
|
|
6
|
+
export { History } from './bom/history.js';
|
|
7
|
+
export { Location } from './bom/location.js';
|
|
8
|
+
export { nav as navigator } from './bom/navigator.js';
|
|
9
|
+
export { caf as cancelAnimationFrame, now, raf as requestAnimationFrame } from './bom/raf.js';
|
|
10
|
+
export { URL, parseUrl } from './bom/URL.js';
|
|
11
|
+
export { URLSearchParams } from './bom/URLSearchParams.js';
|
|
12
|
+
export { history, location, window } from './bom/window.js';
|
|
13
|
+
export { TaroElement } from './dom/element.js';
|
|
14
|
+
export { TaroEvent, createEvent, eventHandler } from './dom/event.js';
|
|
15
|
+
export { FormElement } from './dom/form.js';
|
|
16
|
+
export { TaroNode } from './dom/node.js';
|
|
17
|
+
export { TaroRootElement } from './dom/root.js';
|
|
18
|
+
export { Style } from './dom/style.js';
|
|
19
|
+
export { SVGElement } from './dom/svg.js';
|
|
20
|
+
export { TaroText } from './dom/text.js';
|
|
21
|
+
export { MutationObserver } from './dom-external/mutation-observer/index.js';
|
|
22
|
+
export { A, APP, BEHAVIORS, BODY, CATCHMOVE, CATCH_VIEW, CHANGE, CLASS, 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 } from './constants/index.js';
|
|
23
|
+
export { Current, getCurrentInstance } from './current.js';
|
|
24
|
+
export { eventSource } from './dom/event-source.js';
|
|
25
|
+
export { createComponentConfig, createPageConfig, createRecursiveComponentConfig, getOnHideEventKey, getOnReadyEventKey, getOnShowEventKey, getPageInstance, getPath, injectPageInstance, removePageInstance, safeExecute, stringify } from './dsl/common.js';
|
|
26
|
+
export { eventCenter } from './emitter/emitter.js';
|
|
27
|
+
export { hydrate } from './hydrate.js';
|
|
28
|
+
export { nextTick } from './next-tick.js';
|
|
29
|
+
export { options } from './options.js';
|
|
30
|
+
export { convertNumber2PX, customWrapperCache, extend, getComponentsAlias, incrementId, isComment, isElement, isHasExtractProp, isParentBinded, isText, shortcutAttr } from './utils/index.js';
|
|
31
|
+
export { handlePolyfill } from './polyfill/index.js';
|
|
32
|
+
export { throttle } from './utils/lodash.js';
|
|
33
|
+
export { addLeadingSlash, getCurrentPage, getHomePage, hasBasename, stripBasename, stripSuffix, stripTrailing } from './utils/router.js';
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import VueCtor from 'vue';
|
|
2
|
+
import { ComponentOptions, VNode } from "vue";
|
|
3
|
+
import { Component as Vue3Component } from '@vue/runtime-core';
|
|
4
|
+
import { Component, ComponentClass } from 'react';
|
|
5
|
+
import { CombinedVueInstance } from 'vue/types/vue';
|
|
6
|
+
import { TaroElement } from "./dom/element.js";
|
|
7
|
+
import { MpEvent, TFunc } from "./index-26658829.js";
|
|
8
|
+
interface Instance<T = Record<string, any>> extends Component<T>, Show, PageInstance {
|
|
9
|
+
tid?: string;
|
|
10
|
+
node?: TaroElement;
|
|
11
|
+
$forceUpdate?(): void;
|
|
12
|
+
$nextTick?(cb: () => void): void;
|
|
13
|
+
$options: Instance;
|
|
14
|
+
}
|
|
15
|
+
interface VueAppInstance extends ComponentOptions<VueCtor> {
|
|
16
|
+
$options: AppInstance;
|
|
17
|
+
}
|
|
18
|
+
type VueInstance<M = Record<string, any>, P = Record<string, any>> = CombinedVueInstance<VueCtor, Record<string, any>, M, P, Record<never, any>> & VueInternal;
|
|
19
|
+
interface VueInternal {
|
|
20
|
+
_render(): VNode;
|
|
21
|
+
_update(vnode: VNode, hyrate: boolean): void;
|
|
22
|
+
}
|
|
23
|
+
interface PageProps {
|
|
24
|
+
tid?: string;
|
|
25
|
+
}
|
|
26
|
+
interface ReactPageComponent<T = PageProps> extends ComponentClass<T>, PageInstance {
|
|
27
|
+
}
|
|
28
|
+
interface ReactPageInstance<T = PageProps> extends Component<T>, PageInstance {
|
|
29
|
+
componentDidShow?(): void;
|
|
30
|
+
componentDidHide?(): void;
|
|
31
|
+
}
|
|
32
|
+
interface ReactAppInstance<T = AppInstance> extends Component<T>, AppInstance {
|
|
33
|
+
}
|
|
34
|
+
interface PageLifeCycle extends Show {
|
|
35
|
+
eh?(event: MpEvent): void;
|
|
36
|
+
onAddToFavorites?(): void;
|
|
37
|
+
onLoad?(options: Record<string, unknown>, cb?: TFunc): void;
|
|
38
|
+
onOptionMenuClick?(): void;
|
|
39
|
+
onPageScroll?(obj: {
|
|
40
|
+
scrollTop: number;
|
|
41
|
+
}): void;
|
|
42
|
+
onPullDownRefresh?(): void;
|
|
43
|
+
onPullIntercept?(): void;
|
|
44
|
+
onPopMenuClick?(): void;
|
|
45
|
+
onReachBottom?(): void;
|
|
46
|
+
onReady?(): void;
|
|
47
|
+
onResize?(options: unknown): void;
|
|
48
|
+
onSaveExitState?(): void;
|
|
49
|
+
onShareAppMessage?(obj: {
|
|
50
|
+
from: string;
|
|
51
|
+
target?: TaroElement;
|
|
52
|
+
webViewUrl: string;
|
|
53
|
+
}): void;
|
|
54
|
+
onShareTimeline?(): void;
|
|
55
|
+
onTabItemTap?(obj: {
|
|
56
|
+
index: string;
|
|
57
|
+
pagePath: string;
|
|
58
|
+
text: string;
|
|
59
|
+
}): void;
|
|
60
|
+
onTitleClick?(): void;
|
|
61
|
+
onUnload?(): void;
|
|
62
|
+
}
|
|
63
|
+
interface PageInstance extends PageLifeCycle {
|
|
64
|
+
/** 页面的初始数据 */
|
|
65
|
+
data?: Record<string, unknown>;
|
|
66
|
+
/** 页面路径 */
|
|
67
|
+
path?: string;
|
|
68
|
+
/** 页面的组件选项 */
|
|
69
|
+
options?: Record<string, unknown>;
|
|
70
|
+
/** 页面渲染引擎类型 */
|
|
71
|
+
renderer?: 'webview' | 'skyline';
|
|
72
|
+
}
|
|
73
|
+
interface Show {
|
|
74
|
+
componentDidShow?(): void;
|
|
75
|
+
componentDidHide?(): void;
|
|
76
|
+
onShow?(): void;
|
|
77
|
+
onHide?(): void;
|
|
78
|
+
}
|
|
79
|
+
interface AppInstance extends Show {
|
|
80
|
+
componentDidShow?(options?: Record<string, unknown>): void;
|
|
81
|
+
mount?(component: React.ComponentClass | ComponentOptions<VueCtor> | Vue3Component, id: string, cb: (...args: any[]) => void): void;
|
|
82
|
+
mount?(component: React.ComponentClass | ComponentOptions<VueCtor> | Vue3Component, id: string, getCtx: (...args: any[]) => void, cb: (...args: any[]) => void): void;
|
|
83
|
+
onError?(error: string): void;
|
|
84
|
+
onLaunch?(options?: Record<string, unknown>): void;
|
|
85
|
+
onPageNotFound?(res: any): void;
|
|
86
|
+
onUnhandledRejection?(error: any): void;
|
|
87
|
+
onShow?(options?: Record<string, unknown>): void;
|
|
88
|
+
unmount?(id: string, cb?: () => void): void;
|
|
89
|
+
taroGlobalData?: Record<any, any>;
|
|
90
|
+
config?: Record<any, any>;
|
|
91
|
+
}
|
|
92
|
+
export { Instance, VueAppInstance, VueInstance, PageProps, ReactPageComponent, ReactPageInstance, ReactAppInstance, PageLifeCycle, PageInstance, AppInstance };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Current } from './current.js';
|
|
2
|
+
import env from './env.js';
|
|
3
|
+
|
|
4
|
+
const TIMEOUT = 100;
|
|
5
|
+
const nextTick = (cb, ctx) => {
|
|
6
|
+
const beginTime = Date.now();
|
|
7
|
+
const router = Current.router;
|
|
8
|
+
const timerFunc = () => {
|
|
9
|
+
setTimeout(function () {
|
|
10
|
+
ctx ? cb.call(ctx) : cb();
|
|
11
|
+
}, 1);
|
|
12
|
+
};
|
|
13
|
+
if (router === null)
|
|
14
|
+
return timerFunc();
|
|
15
|
+
const path = router.$taroPath;
|
|
16
|
+
/**
|
|
17
|
+
* 三种情况
|
|
18
|
+
* 1. 调用 nextTick 时,pendingUpdate 已经从 true 变为 false(即已更新完成),那么需要光等 100ms
|
|
19
|
+
* 2. 调用 nextTick 时,pendingUpdate 为 true,那么刚好可以搭上便车
|
|
20
|
+
* 3. 调用 nextTick 时,pendingUpdate 还是 false,框架仍未启动更新逻辑,这时最多轮询 100ms,等待 pendingUpdate 变为 true。
|
|
21
|
+
*/
|
|
22
|
+
function next() {
|
|
23
|
+
var _a, _b, _c;
|
|
24
|
+
const pageElement = env.document.getElementById(path);
|
|
25
|
+
if (pageElement === null || pageElement === void 0 ? void 0 : pageElement.pendingUpdate) {
|
|
26
|
+
if (process.env.TARO_PLATFORM === 'web') {
|
|
27
|
+
// eslint-disable-next-line dot-notation
|
|
28
|
+
(_c = (_b = (_a = pageElement.firstChild) === null || _a === void 0 ? void 0 : _a['componentOnReady']) === null || _b === void 0 ? void 0 : _b.call(_a).then(() => {
|
|
29
|
+
timerFunc();
|
|
30
|
+
})) !== null && _c !== void 0 ? _c : timerFunc();
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
pageElement.enqueueUpdateCallback(cb, ctx);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
else if (Date.now() - beginTime > TIMEOUT) {
|
|
37
|
+
timerFunc();
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
setTimeout(() => next(), 20);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
next();
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export { nextTick };
|
|
47
|
+
//# sourceMappingURL=next-tick.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-tick.js","sources":["../src/next-tick.ts"],"sourcesContent":["import { Current } from './current'\nimport { TaroRootElement } from './dom/root'\nimport env from './env'\n\nimport type { TFunc } from './interface'\n\nconst TIMEOUT = 100\n\nexport const nextTick = (cb: TFunc, ctx?: Record<string, any>) => {\n const beginTime = Date.now()\n const router = Current.router\n\n const timerFunc = () => {\n setTimeout(function () {\n ctx ? cb.call(ctx) : cb()\n }, 1)\n }\n\n if (router === null) return timerFunc()\n\n const path = router.$taroPath\n\n /**\n * 三种情况\n * 1. 调用 nextTick 时,pendingUpdate 已经从 true 变为 false(即已更新完成),那么需要光等 100ms\n * 2. 调用 nextTick 时,pendingUpdate 为 true,那么刚好可以搭上便车\n * 3. 调用 nextTick 时,pendingUpdate 还是 false,框架仍未启动更新逻辑,这时最多轮询 100ms,等待 pendingUpdate 变为 true。\n */\n function next () {\n const pageElement: TaroRootElement | null = env.document.getElementById<TaroRootElement>(path)\n if (pageElement?.pendingUpdate) {\n if (process.env.TARO_PLATFORM === 'web') {\n // eslint-disable-next-line dot-notation\n pageElement.firstChild?.['componentOnReady']?.().then(() => {\n timerFunc()\n }) ?? timerFunc()\n } else {\n pageElement.enqueueUpdateCallback(cb, ctx)\n }\n } else if (Date.now() - beginTime > TIMEOUT) {\n timerFunc()\n } else {\n setTimeout(() => next(), 20)\n }\n }\n\n next()\n}\n"],"names":[],"mappings":";;;AAMA,MAAM,OAAO,GAAG,GAAG,CAAA;MAEN,QAAQ,GAAG,CAAC,EAAS,EAAE,GAAyB,KAAI;AAC/D,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;AAC5B,IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAE7B,MAAM,SAAS,GAAG,MAAK;AACrB,QAAA,UAAU,CAAC,YAAA;AACT,YAAA,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAA;SAC1B,EAAE,CAAC,CAAC,CAAA;AACP,KAAC,CAAA;IAED,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,SAAS,EAAE,CAAA;AAEvC,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAA;AAE7B;;;;;AAKG;AACH,IAAA,SAAS,IAAI,GAAA;;QACX,MAAM,WAAW,GAA2B,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAkB,IAAI,CAAC,CAAA;AAC9F,QAAA,IAAI,WAAW,KAAX,IAAA,IAAA,WAAW,uBAAX,WAAW,CAAE,aAAa,EAAE;AAC9B,YAAA,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,KAAK,EAAE;;AAEvC,gBAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,WAAW,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,kBAAkB,CAAC,MAAK,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,CAAA,CAAA,IAAI,CAAC,MAAK;AACzD,oBAAA,SAAS,EAAE,CAAA;AACb,iBAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,SAAS,EAAE,CAAA;AAClB,aAAA;AAAM,iBAAA;AACL,gBAAA,WAAW,CAAC,qBAAqB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;AAC3C,aAAA;AACF,SAAA;aAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,EAAE;AAC3C,YAAA,SAAS,EAAE,CAAA;AACZ,SAAA;AAAM,aAAA;YACL,UAAU,CAAC,MAAM,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;AAC7B,SAAA;KACF;AAED,IAAA,IAAI,EAAE,CAAA;AACR;;;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TaroElement } from "./dom/element.js";
|
|
2
|
+
import { TaroText } from "./dom/text.js";
|
|
3
|
+
import { Element, Text } from "./dom-external/inner-html/parser.js";
|
|
4
|
+
interface Options {
|
|
5
|
+
prerender: boolean;
|
|
6
|
+
debug: boolean;
|
|
7
|
+
html?: {
|
|
8
|
+
skipElements: Set<string>;
|
|
9
|
+
voidElements: Set<string>;
|
|
10
|
+
closingElements: Set<string>;
|
|
11
|
+
transformText?: (taroText: TaroText, text: Text) => TaroText;
|
|
12
|
+
transformElement?: (taroElement: TaroElement, element: Element) => TaroElement;
|
|
13
|
+
renderHTMLTag: boolean;
|
|
14
|
+
};
|
|
15
|
+
miniGlobal?: any;
|
|
16
|
+
}
|
|
17
|
+
export { Options };
|
package/dist/options.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sources":["../src/options.ts"],"sourcesContent":["import type { Options } from './interface'\n\nexport const options: Options = {\n prerender: true,\n debug: false\n}\n"],"names":[],"mappings":"AAEa,MAAA,OAAO,GAAY;AAC9B,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,KAAK,EAAE,KAAK;;;;;"}
|
package/dist/perf.d.ts
ADDED
package/dist/perf.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { options } from './options.js';
|
|
2
|
+
|
|
3
|
+
class Performance {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.recorder = new Map();
|
|
6
|
+
}
|
|
7
|
+
start(id) {
|
|
8
|
+
if (!options.debug) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
this.recorder.set(id, Date.now());
|
|
12
|
+
}
|
|
13
|
+
stop(id) {
|
|
14
|
+
if (!options.debug) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const now = Date.now();
|
|
18
|
+
const prev = this.recorder.get(id);
|
|
19
|
+
this.recorder.delete(id);
|
|
20
|
+
const time = now - prev;
|
|
21
|
+
// eslint-disable-next-line no-console
|
|
22
|
+
console.log(`${id} 时长: ${time}ms`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
const perf = new Performance();
|
|
26
|
+
|
|
27
|
+
export { perf };
|
|
28
|
+
//# sourceMappingURL=perf.js.map
|
package/dist/perf.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"perf.js","sources":["../src/perf.ts"],"sourcesContent":["import { options } from './options'\n\nclass Performance {\n private recorder = new Map<string, number>()\n\n public start (id: string) {\n if (!options.debug) {\n return\n }\n this.recorder.set(id, Date.now())\n }\n\n public stop (id: string) {\n if (!options.debug) {\n return\n }\n const now = Date.now()\n const prev = this.recorder.get(id)!\n this.recorder.delete(id)\n const time = now - prev\n // eslint-disable-next-line no-console\n console.log(`${id} 时长: ${time}ms`)\n }\n}\n\nexport const perf = new Performance()\n"],"names":[],"mappings":";;AAEA,MAAM,WAAW,CAAA;AAAjB,IAAA,WAAA,GAAA;AACU,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAA;KAoB7C;AAlBQ,IAAA,KAAK,CAAE,EAAU,EAAA;AACtB,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YAClB,OAAM;AACP,SAAA;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;KAClC;AAEM,IAAA,IAAI,CAAE,EAAU,EAAA;AACrB,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YAClB,OAAM;AACP,SAAA;AACD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAE,CAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AACxB,QAAA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAA;;QAEvB,OAAO,CAAC,GAAG,CAAC,CAAA,EAAG,EAAE,CAAQ,KAAA,EAAA,IAAI,CAAI,EAAA,CAAA,CAAC,CAAA;KACnC;AACF,CAAA;AAEY,MAAA,IAAI,GAAG,IAAI,WAAW;;;;"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { isFunction } from '@tarojs/shared';
|
|
2
|
+
|
|
3
|
+
function handleArrayFindPolyfill() {
|
|
4
|
+
if (!isFunction(Array.prototype.find)) {
|
|
5
|
+
Object.defineProperty(Array.prototype, 'find', {
|
|
6
|
+
value(predicate) {
|
|
7
|
+
if (this == null) {
|
|
8
|
+
throw new TypeError('"this" is null or not defined');
|
|
9
|
+
}
|
|
10
|
+
const o = Object(this);
|
|
11
|
+
const len = o.length >>> 0;
|
|
12
|
+
if (!isFunction(predicate)) {
|
|
13
|
+
throw new TypeError('predicate must be a function');
|
|
14
|
+
}
|
|
15
|
+
const thisArg = arguments[1];
|
|
16
|
+
let k = 0;
|
|
17
|
+
while (k < len) {
|
|
18
|
+
const kValue = o[k];
|
|
19
|
+
if (predicate.call(thisArg, kValue, k, o)) {
|
|
20
|
+
return kValue;
|
|
21
|
+
}
|
|
22
|
+
k++;
|
|
23
|
+
}
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function handleArrayIncludesPolyfill() {
|
|
30
|
+
if (!isFunction(Array.prototype.includes)) {
|
|
31
|
+
Object.defineProperty(Array.prototype, 'includes', {
|
|
32
|
+
value(searchElement, fromIndex) {
|
|
33
|
+
if (this == null) {
|
|
34
|
+
throw new TypeError('"this" is null or not defined');
|
|
35
|
+
}
|
|
36
|
+
const o = Object(this);
|
|
37
|
+
const len = o.length >>> 0;
|
|
38
|
+
if (len === 0) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
const n = fromIndex | 0;
|
|
42
|
+
let k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
|
|
43
|
+
while (k < len) {
|
|
44
|
+
if (o[k] === searchElement) {
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
k++;
|
|
48
|
+
}
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export { handleArrayFindPolyfill, handleArrayIncludesPolyfill };
|
|
56
|
+
//# sourceMappingURL=array.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.js","sources":["../../src/polyfill/array.ts"],"sourcesContent":["import { isFunction } from '@tarojs/shared'\n\nexport function handleArrayFindPolyfill () {\n if (!isFunction(Array.prototype.find)) {\n Object.defineProperty(Array.prototype, 'find', {\n value (predicate) {\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined')\n }\n const o = Object(this)\n const len = o.length >>> 0\n if (!isFunction(predicate)) {\n throw new TypeError('predicate must be a function')\n }\n const thisArg = arguments[1]\n let k = 0\n while (k < len) {\n const kValue = o[k]\n if (predicate.call(thisArg, kValue, k, o)) {\n return kValue\n }\n k++\n }\n return undefined\n }\n })\n }\n}\n\nexport function handleArrayIncludesPolyfill () {\n if (!isFunction(Array.prototype.includes)) {\n Object.defineProperty(Array.prototype, 'includes', {\n value (searchElement, fromIndex) {\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined')\n }\n const o = Object(this)\n const len = o.length >>> 0\n if (len === 0) {\n return false\n }\n const n = fromIndex | 0\n let k = Math.max(n >= 0 ? n : len - Math.abs(n), 0)\n while (k < len) {\n if (o[k] === searchElement) {\n return true\n }\n k++\n }\n return false\n }\n })\n }\n}\n"],"names":[],"mappings":";;SAEgB,uBAAuB,GAAA;IACrC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;QACrC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE;AAC7C,YAAA,KAAK,CAAE,SAAS,EAAA;gBACd,IAAI,IAAI,IAAI,IAAI,EAAE;AAChB,oBAAA,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAA;AACrD,iBAAA;AACD,gBAAA,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;AACtB,gBAAA,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAA;AAC1B,gBAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;AAC1B,oBAAA,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAA;AACpD,iBAAA;AACD,gBAAA,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;gBAC5B,IAAI,CAAC,GAAG,CAAC,CAAA;gBACT,OAAO,CAAC,GAAG,GAAG,EAAE;AACd,oBAAA,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AACnB,oBAAA,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACzC,wBAAA,OAAO,MAAM,CAAA;AACd,qBAAA;AACD,oBAAA,CAAC,EAAE,CAAA;AACJ,iBAAA;AACD,gBAAA,OAAO,SAAS,CAAA;aACjB;AACF,SAAA,CAAC,CAAA;AACH,KAAA;AACH,CAAC;SAEe,2BAA2B,GAAA;IACzC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;QACzC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE;YACjD,KAAK,CAAE,aAAa,EAAE,SAAS,EAAA;gBAC7B,IAAI,IAAI,IAAI,IAAI,EAAE;AAChB,oBAAA,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAA;AACrD,iBAAA;AACD,gBAAA,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;AACtB,gBAAA,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAA;gBAC1B,IAAI,GAAG,KAAK,CAAC,EAAE;AACb,oBAAA,OAAO,KAAK,CAAA;AACb,iBAAA;AACD,gBAAA,MAAM,CAAC,GAAG,SAAS,GAAG,CAAC,CAAA;gBACvB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBACnD,OAAO,CAAC,GAAG,GAAG,EAAE;AACd,oBAAA,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE;AAC1B,wBAAA,OAAO,IAAI,CAAA;AACZ,qBAAA;AACD,oBAAA,CAAC,EAAE,CAAA;AACJ,iBAAA;AACD,gBAAA,OAAO,KAAK,CAAA;aACb;AACF,SAAA,CAAC,CAAA;AACH,KAAA;AACH;;;;"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { isObject } from '@tarojs/shared';
|
|
2
|
+
import { handleArrayFindPolyfill, handleArrayIncludesPolyfill } from './array.js';
|
|
3
|
+
import { handleIntersectionObserverPolyfill } from './intersection-observer.js';
|
|
4
|
+
import { handleObjectAssignPolyfill, handleObjectEntriesPolyfill, handleObjectDefinePropertyPolyfill } from './object.js';
|
|
5
|
+
|
|
6
|
+
function handlePolyfill() {
|
|
7
|
+
if (process.env.SUPPORT_TARO_POLYFILL === 'enabled' || process.env.SUPPORT_TARO_POLYFILL === 'Object' || process.env.SUPPORT_TARO_POLYFILL === 'Object.assign') {
|
|
8
|
+
handleObjectAssignPolyfill();
|
|
9
|
+
}
|
|
10
|
+
if (process.env.SUPPORT_TARO_POLYFILL === 'enabled' || process.env.SUPPORT_TARO_POLYFILL === 'Object' || process.env.SUPPORT_TARO_POLYFILL === 'Object.entries') {
|
|
11
|
+
handleObjectEntriesPolyfill();
|
|
12
|
+
}
|
|
13
|
+
if (process.env.SUPPORT_TARO_POLYFILL === 'enabled' || process.env.SUPPORT_TARO_POLYFILL === 'Object' || process.env.SUPPORT_TARO_POLYFILL === 'Object.defineProperty') {
|
|
14
|
+
handleObjectDefinePropertyPolyfill();
|
|
15
|
+
}
|
|
16
|
+
if (process.env.SUPPORT_TARO_POLYFILL === 'enabled' || process.env.SUPPORT_TARO_POLYFILL === 'Array' || process.env.SUPPORT_TARO_POLYFILL === 'Array.find') {
|
|
17
|
+
handleArrayFindPolyfill();
|
|
18
|
+
}
|
|
19
|
+
if (process.env.SUPPORT_TARO_POLYFILL === 'enabled' || process.env.SUPPORT_TARO_POLYFILL === 'Array' || process.env.SUPPORT_TARO_POLYFILL === 'Array.includes') {
|
|
20
|
+
handleArrayIncludesPolyfill();
|
|
21
|
+
}
|
|
22
|
+
// Exit early if we're not running in a browser.
|
|
23
|
+
if (process.env.TARO_PLATFORM === 'web' && isObject(window)) {
|
|
24
|
+
if (process.env.SUPPORT_TARO_POLYFILL === 'enabled' || process.env.SUPPORT_TARO_POLYFILL === 'IntersectionObserver') {
|
|
25
|
+
handleIntersectionObserverPolyfill();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (process.env.SUPPORT_TARO_POLYFILL !== 'disabled' && process.env.TARO_PLATFORM !== 'web') {
|
|
30
|
+
handlePolyfill();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export { handlePolyfill };
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/polyfill/index.ts"],"sourcesContent":["import { isObject } from '@tarojs/shared'\n\nimport { handleArrayFindPolyfill, handleArrayIncludesPolyfill } from './array'\nimport { handleIntersectionObserverPolyfill } from './intersection-observer'\nimport { handleObjectAssignPolyfill, handleObjectDefinePropertyPolyfill, handleObjectEntriesPolyfill } from './object'\n\nfunction handlePolyfill () {\n if (process.env.SUPPORT_TARO_POLYFILL === 'enabled' || process.env.SUPPORT_TARO_POLYFILL === 'Object' || process.env.SUPPORT_TARO_POLYFILL === 'Object.assign') {\n handleObjectAssignPolyfill()\n }\n if (process.env.SUPPORT_TARO_POLYFILL === 'enabled' || process.env.SUPPORT_TARO_POLYFILL === 'Object' || process.env.SUPPORT_TARO_POLYFILL === 'Object.entries') {\n handleObjectEntriesPolyfill()\n }\n if (process.env.SUPPORT_TARO_POLYFILL === 'enabled' || process.env.SUPPORT_TARO_POLYFILL === 'Object' || process.env.SUPPORT_TARO_POLYFILL === 'Object.defineProperty') {\n handleObjectDefinePropertyPolyfill()\n }\n if (process.env.SUPPORT_TARO_POLYFILL === 'enabled' || process.env.SUPPORT_TARO_POLYFILL === 'Array' || process.env.SUPPORT_TARO_POLYFILL === 'Array.find') {\n handleArrayFindPolyfill()\n }\n if (process.env.SUPPORT_TARO_POLYFILL === 'enabled' || process.env.SUPPORT_TARO_POLYFILL === 'Array' || process.env.SUPPORT_TARO_POLYFILL === 'Array.includes') {\n handleArrayIncludesPolyfill()\n }\n // Exit early if we're not running in a browser.\n if (process.env.TARO_PLATFORM === 'web' && isObject(window)) {\n if (process.env.SUPPORT_TARO_POLYFILL === 'enabled' || process.env.SUPPORT_TARO_POLYFILL === 'IntersectionObserver') {\n handleIntersectionObserverPolyfill()\n }\n }\n}\n\nif (process.env.SUPPORT_TARO_POLYFILL !== 'disabled' && process.env.TARO_PLATFORM !== 'web') {\n handlePolyfill()\n}\n\nexport { handlePolyfill }\n\n"],"names":[],"mappings":";;;;;AAMA,SAAS,cAAc,GAAA;IACrB,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,eAAe,EAAE;AAC9J,QAAA,0BAA0B,EAAE,CAAA;AAC7B,KAAA;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,gBAAgB,EAAE;AAC/J,QAAA,2BAA2B,EAAE,CAAA;AAC9B,KAAA;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,uBAAuB,EAAE;AACtK,QAAA,kCAAkC,EAAE,CAAA;AACrC,KAAA;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,YAAY,EAAE;AAC1J,QAAA,uBAAuB,EAAE,CAAA;AAC1B,KAAA;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,gBAAgB,EAAE;AAC9J,QAAA,2BAA2B,EAAE,CAAA;AAC9B,KAAA;;AAED,IAAA,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC3D,QAAA,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,sBAAsB,EAAE;AACnH,YAAA,kCAAkC,EAAE,CAAA;AACrC,SAAA;AACF,KAAA;AACH,CAAC;AAED,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,KAAK,EAAE;AAC3F,IAAA,cAAc,EAAE,CAAA;AACjB;;;;"}
|