@viewfly/core 0.0.1-alpha.6 → 0.0.1-alpha.8

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.
@@ -1,5 +1,5 @@
1
1
  import { Provider, ReflectiveInjector, AbstractType, Type, InjectionToken, InjectFlags, Injector } from '@tanbo/di';
2
- import { JSXProps, JSXElement, Props } from './jsx-element';
2
+ import { JSXProps, JSXElement, Props, Key, JSXTypeof } from './jsx-element';
3
3
  export declare class JSXComponent {
4
4
  createInstance: (injector: Component) => Component;
5
5
  constructor(createInstance: (injector: Component) => Component);
@@ -11,9 +11,11 @@ export interface ComponentSetup<T extends JSXProps<any> = JSXProps<any>> {
11
11
  /**
12
12
  * Viewfly 组件管理类,用于管理组件的生命周期,上下文等
13
13
  */
14
- export declare class Component extends ReflectiveInjector {
14
+ export declare class Component extends ReflectiveInjector implements JSXTypeof {
15
15
  setup: ComponentSetup;
16
16
  config?: JSXProps<any> | null | undefined;
17
+ key?: Key | undefined;
18
+ $$typeOf: ComponentSetup<JSXProps<any>>;
17
19
  destroyCallbacks: LifeCycleCallback[];
18
20
  mountCallbacks: LifeCycleCallback[];
19
21
  propsChangedCallbacks: PropsChangedCallback<any>[];
@@ -27,7 +29,8 @@ export declare class Component extends ReflectiveInjector {
27
29
  private updatedDestroyCallbacks;
28
30
  private propsChangedDestroyCallbacks;
29
31
  private isFirstRending;
30
- constructor(context: Injector, setup: ComponentSetup, config?: JSXProps<any> | null | undefined);
32
+ constructor(context: Injector, setup: ComponentSetup, config?: JSXProps<any> | null | undefined, key?: Key | undefined);
33
+ is(target: JSXTypeof): boolean;
31
34
  addProvide<T>(providers: Provider<T> | Provider<T>[]): void;
32
35
  init(): {
33
36
  template: JSXTemplate;
@@ -6,30 +6,41 @@ export interface JSXProps<T = JSXChildNode | JSXChildNode[]> {
6
6
  [key: symbol]: any;
7
7
  }
8
8
  export declare const Fragment: () => never;
9
- export declare function jsx<T extends JSXChildNode>(name: string, config?: JSXProps<T> | null): JSXElement;
10
- export declare function jsx<T extends JSXChildNode>(setup: ComponentSetup, config?: JSXProps<T> | null): JSXComponent;
11
- export declare function jsxs<T extends JSXChildNode[]>(name: string, config?: JSXProps<T> | null): JSXElement;
12
- export declare function jsxs<T extends JSXChildNode[]>(setup: ComponentSetup, config?: JSXProps<T> | null): JSXComponent;
9
+ export type Key = number | string;
10
+ export declare function jsx<T extends JSXChildNode>(name: string, config?: JSXProps<T> | null, key?: Key): JSXElement;
11
+ export declare function jsx<T extends JSXChildNode>(setup: ComponentSetup, config?: JSXProps<T> | null, key?: Key): JSXComponent;
12
+ export declare function jsxs<T extends JSXChildNode[]>(name: string, config?: JSXProps<T> | null, key?: Key): JSXElement;
13
+ export declare function jsxs<T extends JSXChildNode[]>(setup: ComponentSetup, config?: JSXProps<T> | null, key?: Key): JSXComponent;
14
+ export interface JSXTypeof {
15
+ $$typeOf: string | ComponentSetup;
16
+ is(target: JSXTypeof): boolean;
17
+ }
13
18
  export interface VElementListeners {
14
19
  [listenKey: string]: <T extends Event>(ev: T) => any;
15
20
  }
16
- export declare class JSXText {
21
+ export declare class JSXText implements JSXTypeof {
17
22
  text: string;
23
+ $$typeOf: string;
18
24
  constructor(text: string);
25
+ is(target: JSXTypeof): boolean;
19
26
  }
20
- export type VNode = JSXElement | JSXComponent | JSXText;
27
+ export type JSXNode = JSXElement | JSXComponent | JSXText;
21
28
  export declare class Props {
22
29
  attrs: Map<string, any>;
23
30
  styles: Map<string, string | number>;
24
- classes: Set<string>;
31
+ classes: string;
25
32
  listeners: VElementListeners;
26
- children: VNode[];
33
+ children: JSXNode[];
27
34
  constructor(props?: JSXProps<JSXChildNode> | JSXProps<JSXChildNode[]> | null);
35
+ static classToString(config: unknown): any;
28
36
  static classToArray(config: unknown): string[];
29
37
  }
30
- export declare class JSXElement {
38
+ export declare class JSXElement implements JSXTypeof {
31
39
  name: string;
32
40
  config?: JSXProps<any> | null | undefined;
41
+ key?: Key | undefined;
42
+ $$typeOf: string;
33
43
  props: Props;
34
- constructor(name: string, config?: JSXProps<any> | null | undefined);
44
+ constructor(name: string, config?: JSXProps<any> | null | undefined, key?: Key | undefined);
45
+ is(target: JSXTypeof): boolean;
35
46
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@viewfly/core",
3
- "version": "0.0.1-alpha.6",
3
+ "version": "0.0.1-alpha.8",
4
4
  "description": "Viewfly is a simple and easy-to-use JavaScript framework with an intuitive development experience.",
5
5
  "main": "./bundles/index.js",
6
6
  "module": "./bundles/index.esm.js",
@@ -37,5 +37,5 @@
37
37
  "bugs": {
38
38
  "url": "https://github.com/viewfly/viewfly.git/issues"
39
39
  },
40
- "gitHead": "aedb326658afa6a712aebe3f22fe5209ae18a9f9"
40
+ "gitHead": "462b51e8623348002ba7c6ba2caf7df131534506"
41
41
  }