egreact
Version:
A react render for egret 一个为 egret 而生的 react 渲染器
61 lines (60 loc) • 2.61 kB
TypeScript
import React from 'react';
import egretProps from './egret/index';
import euiProps from './eui/index';
import customProps from './custom';
import type { IPropsHandlers, IElementProps } from '../type';
export declare type NodeProps<T> = {
children?: React.ReactNode;
ref?: React.Ref<T>;
key?: React.Key;
} & IElementProps;
declare type InferClass<T> = T extends {
__Class: new (...args: any[]) => infer U;
} ? U : any;
export declare type TransProp<T> = {
[key in Exclude<keyof T, `${string}__${string}`>]?: T[key] extends (args: any) => any ? Parameters<T[key]>[0]['newValue'] : T[key];
} & NodeProps<InferClass<T>>;
declare global {
namespace JSX {
interface IntrinsicElements {
displayObject: TransProp<typeof egretProps.displayObject>;
displayObjectContainer: TransProp<typeof egretProps.displayObjectContainer>;
shape: TransProp<typeof egretProps.shape>;
sprite: TransProp<typeof egretProps.sprite>;
bitmap: TransProp<typeof egretProps.bitmap>;
bitmapText: TransProp<typeof egretProps.bitmapText>;
textField: TransProp<typeof egretProps.textField>;
'eui-component': TransProp<typeof euiProps.component>;
'eui-group': TransProp<typeof euiProps.group>;
'eui-image': TransProp<typeof euiProps.image>;
'eui-bitmapLabel': TransProp<typeof euiProps.bitmapLabel>;
'eui-label': TransProp<typeof euiProps.label>;
'eui-rect': TransProp<typeof euiProps.rect>;
'eui-scroller': TransProp<typeof euiProps.scroller>;
'eui-button': TransProp<typeof euiProps.button>;
'eui-dataGroup': TransProp<typeof euiProps.dataGroup>;
'eui-editableText': TransProp<typeof euiProps.editableText>;
'eui-list': TransProp<typeof euiProps.list>;
'eui-itemRenderer': TransProp<typeof euiProps.itemRenderer>;
objectContainer: TransProp<typeof customProps.objectContainer>;
arrayContainer: TransProp<typeof customProps.arrayContainer>;
primitive: TransProp<typeof customProps.primitive>;
font: TransProp<typeof customProps.font>;
}
}
}
export interface Catalogue {
[name: string]: IPropsHandlers;
}
export declare let catalogueMap: Catalogue;
export declare const extend: (newCatalogue: Catalogue) => {
[x: string]: IPropsHandlers;
};
export declare type EventCategoryInfo = {
category: any;
withPrefix: boolean;
};
export declare const EVENT_CATEGORY_MAP: {
[key: string]: EventCategoryInfo;
};
export {};