Skip to content

Commit 24e8bfd

Browse files
committed
feat(vue-to-horizon): 同步 origin/dev 的工具代码到 vue-adapter
1 parent a230320 commit 24e8bfd

File tree

314 files changed

+60110
-70994
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

314 files changed

+60110
-70994
lines changed
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
import { TYPE_FRAGMENT as Fragment, TYPE_PROFILER as Profiler, TYPE_STRICT_MODE as StrictMode, TYPE_SUSPENSE as Suspense } from './src/external/JSXElementType';
2+
import { Component, PureComponent } from './src/renderer/components/BaseClassComponent';
3+
import { createRef } from './src/renderer/components/CreateRef';
4+
import { Children } from './src/external/ChildrenUtil';
5+
import { createElement, cloneElement, isValidElement, registerComponent } from './src/external/JSXElement';
6+
import { createContext } from './src/renderer/components/context/CreateContext';
7+
import { lazy } from './src/renderer/components/Lazy';
8+
import { forwardRef } from './src/renderer/components/ForwardRef';
9+
import { memo } from './src/renderer/components/Memo';
10+
import './src/external/devtools';
11+
import { useCallback, useContext, useEffect, useImperativeHandle, useLayoutEffect, useRenderEffect, useMemo, useReducer, useRef, useState, useDebugValue } from './src/renderer/hooks/HookExternal';
12+
import { isContextProvider, isContextConsumer, isElement, isValidElementType, isForwardRef, isFragment, isLazy, isMemo, isPortal } from './src/external/HorizonIs';
13+
import { createStore, useStore, clearStore } from './src/horizonx/store/StoreHandler';
14+
import * as reduxAdapter from './src/horizonx/adapters/redux';
15+
import { watch } from './src/horizonx/proxy/watch';
16+
import { act } from './src/external/TestUtil';
17+
import { render, createPortal, unstable_batchedUpdates, findDOMNode, unmountComponentAtNode } from './src/dom/DOMExternal';
18+
import { syncUpdates as flushSync } from './src/renderer/TreeBuilder';
19+
import { getProcessingVNode } from './src/renderer/GlobalVar';
20+
declare const Horizon: {
21+
Children: {
22+
forEach: (children: any, func: any, context?: any) => void;
23+
map: (children: any, func: Function, context?: any) => any[];
24+
count: (children: any) => number;
25+
only: (children: any) => any;
26+
toArray: (children: any) => any[];
27+
};
28+
createRef: typeof createRef;
29+
Component: typeof Component;
30+
PureComponent: typeof PureComponent;
31+
createContext: typeof createContext;
32+
forwardRef: typeof forwardRef;
33+
getProcessingVNode: typeof getProcessingVNode;
34+
lazy: typeof lazy;
35+
memo: typeof memo;
36+
useDebugValue: () => void;
37+
useCallback: typeof useCallback;
38+
useContext: typeof useContext;
39+
useEffect: typeof useEffect;
40+
useImperativeHandle: typeof useImperativeHandle;
41+
useLayoutEffect: typeof useLayoutEffect;
42+
useRenderEffect: typeof useRenderEffect;
43+
useMemo: typeof useMemo;
44+
useReducer: typeof useReducer;
45+
useRef: typeof useRef;
46+
useState: typeof useState;
47+
Fragment: number;
48+
Profiler: number;
49+
StrictMode: number;
50+
Suspense: number;
51+
createElement: typeof createElement;
52+
cloneElement: typeof cloneElement;
53+
isValidElement: typeof isValidElement;
54+
render: typeof render;
55+
createPortal: typeof createPortal;
56+
unstable_batchedUpdates: typeof unstable_batchedUpdates;
57+
findDOMNode: typeof findDOMNode;
58+
unmountComponentAtNode: typeof unmountComponentAtNode;
59+
act: typeof act;
60+
flushSync: typeof flushSync;
61+
createStore: typeof createStore;
62+
useStore: typeof useStore;
63+
clearStore: typeof clearStore;
64+
reduxAdapter: typeof reduxAdapter;
65+
watch: typeof watch;
66+
isFragment: typeof isFragment;
67+
isElement: typeof isElement;
68+
isValidElementType: typeof isValidElementType;
69+
isForwardRef: typeof isForwardRef;
70+
isLazy: typeof isLazy;
71+
isMemo: typeof isMemo;
72+
isPortal: typeof isPortal;
73+
isContextProvider: typeof isContextProvider;
74+
isContextConsumer: typeof isContextConsumer;
75+
registerComponent: typeof registerComponent;
76+
};
77+
export declare const version: string;
78+
export { Children, createRef, Component, PureComponent, createContext, forwardRef, getProcessingVNode, lazy, memo, useDebugValue, useCallback, useContext, useEffect, useImperativeHandle, useLayoutEffect, useRenderEffect, useMemo, useReducer, useRef, useState, Fragment, Profiler, StrictMode, Suspense, createElement, cloneElement, isValidElement, render, createPortal, unstable_batchedUpdates, findDOMNode, unmountComponentAtNode, act, flushSync, createStore, useStore, clearStore, reduxAdapter, watch, isFragment, isElement, isValidElementType, isForwardRef, isLazy, isMemo, isPortal, isContextProvider, isContextConsumer, registerComponent, };
79+
export default Horizon;
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { TYPE_FRAGMENT as Fragment } from './src/external/JSXElementType';
2+
import { jsx, jsx as jsxs } from './src/external/JSXElement';
3+
export { jsx, jsxs, Fragment };
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { asyncUpdates } from '../renderer/Renderer';
2+
import { createPortal } from '../renderer/components/CreatePortal';
3+
import type { Container } from './DOMOperator';
4+
import { Callback } from '../renderer/UpdateHandler';
5+
declare function executeRender(children: any, container: Container, callback?: Callback): Element | Text;
6+
declare function findDOMNode(domOrEle?: Element): null | Element | Text;
7+
declare function destroy(container: Container): boolean;
8+
export { createPortal, asyncUpdates as unstable_batchedUpdates, findDOMNode, executeRender as render, destroy as unmountComponentAtNode, };
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/**
2+
* 文件整体功能:给dom节点赋 VNode 的结构体和事件初始化标记
3+
*/
4+
import type { VNode } from '../renderer/Types';
5+
import type { Container, Props } from './DOMOperator';
6+
export declare function getDom(vNode: VNode): Element | Text | null;
7+
export declare function saveVNode(vNode: VNode, dom: Element | Text | Container): void;
8+
export declare function getVNode(dom: Node | Container): VNode | null;
9+
export declare function getNearestVNode(dom: Node): null | VNode;
10+
export declare function getVNodeProps(dom: Element | Text): Props | null;
11+
export declare function updateVNodeProps(dom: Element | Text, props: Props): void;
12+
export declare function getNonDelegatedListenerMap(dom: Element | Text): Map<string, EventListener>;
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import type { VNode } from '../renderer/Types';
2+
export declare type Props = Record<string, any> & {
3+
autoFocus?: boolean;
4+
children?: any;
5+
dangerouslySetInnerHTML?: any;
6+
disabled?: boolean;
7+
hidden?: boolean;
8+
style?: {
9+
display?: string;
10+
};
11+
};
12+
export declare type Container = (Element & {
13+
_treeRoot?: VNode | null;
14+
}) | (Document & {
15+
_treeRoot?: VNode | null;
16+
});
17+
export declare function getNSCtx(parentNS: string, type: string, dom?: Container): string;
18+
export declare function prepareForSubmit(): void;
19+
export declare function resetAfterSubmit(): void;
20+
export declare function newDom(tagName: string, props: Props, parentNamespace: string, vNode: VNode): Element;
21+
export declare function initDomProps(dom: Element, tagName: string, rawProps: Props): boolean;
22+
export declare function getPropChangeList(dom: Element, type: string, lastRawProps: Props, nextRawProps: Props): Object;
23+
export declare function isTextChild(type: string, props: Props): boolean;
24+
export declare function newTextDom(text: string, processing: VNode): Text;
25+
export declare function submitDomUpdate(tag: string, vNode: VNode): void;
26+
export declare function clearText(dom: Element): void;
27+
export declare function appendChildElement(parent: Element | Container, child: Element | Text): void;
28+
export declare function insertDomBefore(parent: Element | Container, child: Element | Text, beforeChild: Element | Text): void;
29+
export declare function removeChildDom(parent: Element | Container, child: Element | Text): void;
30+
export declare function hideDom(tag: string, dom: Element | Text): void;
31+
export declare function unHideDom(tag: string, dom: Element | Text, props: Props): void;
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export declare function setDomProps(dom: Element, props: Object, isNativeTag: boolean, isInit: boolean): void;
2+
export declare function compareProps(oldProps: Object, newProps: Object): Object;
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/**
2+
* 对一些没有写单位的样式进行适配,例如:width: 10 => width: 10px
3+
* 对空值或布尔值进行适配,转为空字符串
4+
* 去掉多余空字符
5+
*/
6+
export declare function adjustStyleValue(name: any, value: any): any;
7+
/**
8+
* 设置 DOM 节点的 style 属性
9+
*/
10+
export declare function setStyles(dom: any, styles: any): void;
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
/**
2+
* 给 dom 设置属性
3+
* attrName 指代码中属性设置的属性名称(如 class)
4+
* 多数情况 attrName 仅用作初始 DOM 节点对象使用,而 property 更多用于页面交互
5+
*/
6+
export declare function updateCommonProp(dom: Element, attrName: string, value: any, isNativeTag: boolean): void;
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
export declare function hasSelectionProperties(dom: any): boolean;
2+
export declare function getSelectionInfo(): {
3+
focusedDom: import("./utils/Interface").HorizonDom;
4+
selectionRange: {
5+
start: number;
6+
end: number;
7+
};
8+
};
9+
export interface SelectionData {
10+
focusedDom: HTMLInputElement | HTMLTextAreaElement | void;
11+
selectionRange?: {
12+
start: number;
13+
end: number;
14+
};
15+
}
16+
export declare function resetSelectionRange(preSelectionRangeData: SelectionData): void;
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { HorizonDom } from './Interface';
2+
import { Props } from '../DOMOperator';
3+
/**
4+
* 获取当前聚焦的 input 或者 textarea 元素
5+
* @param doc 指定 document
6+
*/
7+
export declare function getFocusedDom(doc?: Document): HorizonDom | null;
8+
export declare function getIFrameFocusedDom(): HorizonDom;
9+
export declare function isElement(dom: any): boolean;
10+
export declare function isText(dom: any): boolean;
11+
export declare function isComment(dom: any): boolean;
12+
export declare function isDocument(dom: any): boolean;
13+
export declare function isDocumentFragment(dom: any): boolean;
14+
export declare function getDomTag(dom: any): any;
15+
export declare function isInputElement(dom: Element): dom is HTMLInputElement;
16+
export declare function shouldAutoFocus(tagName: string, props: Props): boolean;

0 commit comments

Comments
 (0)