import { UniElement } from './index' import { UniElementType, UniElementStyles } from './UniElementType' import { UniViewElement } from './index' import { UniTextElement } from './index' import { UniImageElement } from './index' import { UniRichTextNativeElement } from './index' import { UniNativeView } from './UniNativeView' import { UniNativeTextView } from './UniNativeTextView' import { UniNativeImageView } from './UniNativeImageView' import { UniNativeScrollView, UniNativeScrollViewOptions } from './UniNativeScrollView' import { UniNativeCustomView } from './UniNativeCustomView' import { UniNativeRichTextNativeView } from './UniNativeRichTextNativelView' import { UniTextLayout } from './index' import { UniText } from './index' declare global { /** * 页面对象 */ interface UniPage { /** * 以下属性在DOM层封装 * - Android平台:kt层封装 * - iOS平台:c层实现 * - 鸿蒙平台:c层实现 */ /** * 获取当前页面是否处于可复用状态, * 仅内部使用(不公开给开发者),用于解决image组件在复用场景时会闪以下复用前的图片 * 当页面中的list等复用组件处于复用状态时,将会将此状态设置为true,处于非复用状态时设置为false * iamge组件在更新src时如果当前页面处于isRecycling状态,需要先同步清空UI显示内容,避免显示复用前的图片 */ isRecycling(): boolean /** * 设置当前页面是否处于可复用状态 */ setRecycling(value: boolean): void /** * 创建UniElement * 仅内部使用,c层实现,在线程1中创建 * @param type - UniElementType类型 * @param flatten - Element是否被拍平(扁平化) * true表示可拍平,false表示不可拍平,默认值false * @param style - 同时设置多个CSS样式 * 注意:在Android平台仅支持排版CSS,为了各平台统一,编译生成的代码应该只设置排版相关CSS */ // 废弃通过类型创建UniElement的API,改用下面创建指定类型的UniElement // createElement(type: UniElementType, flatten: boolean): UniElement // createElement(type: UniElementType, flatten: boolean, style?: UniElementStyles | null): UniElement /** * 创建view组件的Element * @internal */ createViewElement(flatten: boolean, style?: UniElementStyles | null): UniViewElement /** * 创建text组件的Element * @internal */ createTextElement(flatten: boolean, style?: UniElementStyles | null): UniTextElement /** * 创建image组件的Element * @internal */ createImageElement(flatten: boolean, style?: UniElementStyles | null): UniImageElement /** * 创建scroll-view组件的Element * @internal */ createScrollViewElement(): UniScrollViewElement /** * 创建nested-scroll-header组件的Element * @internal */ createNestedScrollHeaderElement(): UniNestedScrollHeaderElement /** * 创建nested-scroll-body组件的Element * @internal */ createNestedScrollBodyElement(): UniNestedScrollBodyElement /** * 创建native-viewe组件的Element * @internal */ createNativeViewElement(): UniNativeViewElement /** * 创建rich-text-native组件的Element * @internal */ createRichTextNativeElement(): UniRichTextNativeElement /** * 创建注释节点的Element * @internal */ createComment(data: string): UniElement /** * 目前该API仅限特定场景使用,比如 * 123 * 123 * @internal */ createTextNode(data?: string | null): UniText /** * Android平台Kotlin层实现 * 用于Android平台线程2中创建 * @internal */ createElement(type: UniElementType): UniElement /** * Android平台Kotlin层实现 * 用于Android平台线程1中创建UniTextLayout * @internal */ createTextLayout(id?: number | null): UniTextLayout /** * 增加TextLayout内部计数器,解决非text节点不需要创建TextLayout时能同时增加计数,确保内部id与UniTextElement的内部id一致 * @internal */ increaseTextLayoutCounter(count: number): void /** * 创建原生View(view) * @param flatten 原生View是否被拍平(扁平化),true表示可拍平,false表示不可拍平,默认值false * @internal */ createNativeView(flatten: boolean): UniNativeView /** * 创建原生文本View(text) * @internal */ createNativeTextView(flatten: boolean): UniNativeTextView /** * 创建原生图片View(image) * @internal */ createNativeImageView(flatten: boolean): UniNativeImageView /** * 创建原生滚动View(scroll-view) * @internal */ createNativeScrollView(options: UniNativeScrollViewOptions): UniNativeScrollView /** * 创建原生自定义View(native-view) * @internal */ createNativeCustomView(): UniNativeCustomView /** * 创建原生富文本View(rich-text-native) */ createNativeRichTextNativeView(): UniNativeRichTextNativeView // 废弃通过类型创建NativeView的API,改用上面创建指定类型的原生View // createNativeView(type: UniNativeViewType, flatten: boolean): UniNativeBaseView // createNativeView(type: UniNativeViewType, flatten: boolean): T /** * 增加原生view内部计数器,解决一些虚拟节点只需要创建UniElement,不需要创建UniNativeView的场景 * @param count - 增加计数器值,默认值为1 * @internal */ increaseNativeViewCounter(count: number): void /** * 通过内部NodeID查找节点 * @param id * 内部Node id * @internal */ getNodeById(id: number): UniElement | null /** * 通过id属性查找元素 * @param id * 元素的id值 * @internal */ getElementById(id: string): UniElement | null /** * 定义CSS变量 * @param key - css变量名称 * @param value - css变量值,空字符串则表示移除变量定义 * @internal */ defineStyleVariable(key: string, value: string): void /** * 获取DOM数据 * @return {UTSJSONObject} 对象中包含以下字段数据 * children - Array[UTSJSONObject]类型,如果没有子,则此数据不存在 * attributes - UTSJSONObject类型,所有的属性列表:key为字符串类型属性名称,value为字符串类型属性值 * 属性名称存在中划线时,保留中划线 * styles - UTSJSONObject类型,所有的样式列表:key为字符串类型样式名称,value为字符串类型样式值 * 样式名称存在中划线时,保留中划线 * computedLayouts - UTSJSONObject类型,包括left/top/width/height,单位为逻辑像素值 * vueComponentId - string类型,vue组件标识,仅蒸汽模式存在 * vueComponentName - string类型,vue组件名称,仅蒸汽模式存在 * VueComponentPath - string类型,vue组件路径,仅蒸汽模式存在 * @internal */ getDom(): UTSJSONObject } }