@viewfly/core 0.0.29 → 0.0.30

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,6 @@
1
1
  import { JSXComponent, JSXElement, JSXText } from './jsx-element';
2
2
  import { NativeNode } from './injection-tokens';
3
+ import { Component } from './component';
3
4
  export interface ListenDelegate {
4
5
  delegate: () => any;
5
6
  listenFn: ((...args: any[]) => any) | void;
@@ -11,10 +12,15 @@ export interface ObjectChanges {
11
12
  }
12
13
  export declare const refKey = "ref";
13
14
  export declare function getObjectChanges(newProps: Record<string, any>, oldProps: Record<string, any>): ObjectChanges;
15
+ export interface ArrayChanges<T> {
16
+ remove: T[];
17
+ add: T[];
18
+ }
19
+ export declare function getArrayChanges<T>(left: T[], right: T[]): ArrayChanges<T>;
14
20
  export declare function classToString(config: unknown): string;
15
21
  export declare function styleToObject(style: string | Record<string, any>): Record<string, any>;
16
22
  export interface Atom {
17
- jsxNode: JSXElement | JSXText | JSXComponent;
23
+ jsxNode: JSXElement | JSXText | JSXComponent | Component;
18
24
  parent: Atom | null;
19
25
  nativeNode: NativeNode | null;
20
26
  child: Atom | null;
@@ -1,25 +1,36 @@
1
1
  import { AbstractType, InjectFlags, InjectionToken, Injector, Provider, ReflectiveInjector, Type } from '../di/_api';
2
- import { JSXComponent, Key, Props } from './jsx-element';
2
+ import { JSXTypeof, Key, Props } from './jsx-element';
3
+ import { ComponentView } from './_utils';
3
4
  import { JSXInternal } from './types';
4
5
  /**
5
6
  * Viewfly 组件管理类,用于管理组件的生命周期,上下文等
6
7
  */
7
- export declare class Component extends ReflectiveInjector {
8
- jsxNode: JSXComponent;
8
+ export declare class Component extends ReflectiveInjector implements JSXTypeof<JSXInternal.ComponentSetup> {
9
+ private parentComponent;
10
+ type: JSXInternal.ComponentSetup;
9
11
  props: Props;
10
12
  key?: Key | undefined;
13
+ $$typeOf: JSXInternal.ComponentSetup<any>;
11
14
  destroyCallbacks: LifeCycleCallback[];
12
15
  mountCallbacks: LifeCycleCallback[];
13
16
  propsChangedCallbacks: PropsChangedCallback<any>[];
14
17
  updatedCallbacks: LifeCycleCallback[];
15
18
  instance: JSXInternal.ComponentInstance<Props>;
16
19
  template: JSXInternal.JSXNode;
20
+ changedSubComponents: Set<Component>;
21
+ get dirty(): boolean;
22
+ get changed(): boolean;
23
+ $$view: ComponentView;
24
+ protected _dirty: boolean;
25
+ protected _changed: boolean;
17
26
  private updatedDestroyCallbacks;
18
27
  private propsChangedDestroyCallbacks;
19
28
  private unWatch?;
20
29
  private isFirstRending;
21
30
  private refs;
22
- constructor(context: Injector, jsxNode: JSXComponent, props: Props, key?: Key | undefined);
31
+ constructor(parentComponent: Injector | null, type: JSXInternal.ComponentSetup, props: Props, key?: Key | undefined);
32
+ markAsDirtied(): void;
33
+ markAsChanged(changedComponent?: Component): void;
23
34
  render(): any;
24
35
  update(newProps: Props, forceUpdate?: boolean): any;
25
36
  provide<T>(providers: Provider<T> | Provider<T>[]): void;
@@ -1,6 +1,6 @@
1
1
  import { Component } from './component';
2
2
  import { JSXInternal } from './types';
3
- import { ComponentView, ListenDelegate } from './_utils';
3
+ import { ListenDelegate } from './_utils';
4
4
  export interface Props {
5
5
  children?: JSXInternal.JSXNode | JSXInternal.JSXNode[];
6
6
  [key: string]: any;
@@ -11,44 +11,29 @@ export type Key = number | string;
11
11
  export declare function jsx(name: string, props: Props, key?: Key): JSXElement;
12
12
  export declare function jsx(setup: JSXInternal.ComponentSetup, props: Props, key?: Key): JSXComponent;
13
13
  export declare const jsxs: typeof jsx;
14
- export interface JSXTypeof {
15
- $$typeOf: string | JSXInternal.ComponentSetup;
16
- is(target: JSXTypeof): boolean;
14
+ export interface JSXTypeof<T extends string | Symbol | JSXInternal.ComponentSetup = string | Symbol | JSXInternal.ComponentSetup> {
15
+ $$typeOf: T;
17
16
  }
18
- export declare class JSXText implements JSXTypeof {
17
+ export declare class JSXText implements JSXTypeof<Symbol> {
19
18
  text: string;
20
- $$typeOf: string;
19
+ $$typeOf: symbol;
21
20
  constructor(text: string);
22
- is(target: JSXTypeof): boolean;
23
21
  }
24
- export declare class JSXElement implements JSXTypeof {
22
+ export declare class JSXElement implements JSXTypeof<string> {
25
23
  type: string;
26
24
  props: Props;
27
25
  key?: Key | undefined;
28
- static create(name: string, props: Props, key?: Key): JSXElement;
29
26
  $$typeOf: string;
27
+ static createInstance(type: string, props: Props, key?: Key): JSXElement;
30
28
  on?: Record<string, ListenDelegate>;
31
29
  constructor(type: string, props: Props, key?: Key | undefined);
32
- is(target: JSXTypeof): boolean;
33
30
  }
34
- export declare class JSXComponent implements JSXTypeof {
31
+ export declare class JSXComponent implements JSXTypeof<JSXInternal.ComponentSetup> {
35
32
  type: JSXInternal.ComponentSetup;
36
- readonly props: Props;
37
- private factory;
38
- readonly key?: Key | undefined;
33
+ props: Props;
34
+ factory: (parentComponent: Component) => Component;
35
+ key?: Key | undefined;
39
36
  $$typeOf: JSXInternal.ComponentSetup<any>;
40
- $$view: ComponentView;
41
- parentComponent: JSXComponent | null;
42
- instance: Component;
43
- changedSubComponents: Set<JSXComponent>;
44
- get dirty(): boolean;
45
- get changed(): boolean;
46
- protected _dirty: boolean;
47
- protected _changed: boolean;
48
- constructor(type: JSXInternal.ComponentSetup, props: Props, factory: (parentComponent: Component, jsxNode: JSXComponent) => Component, key?: Key | undefined);
49
- markAsDirtied(): void;
50
- markAsChanged(changedComponent?: JSXComponent): void;
51
- reset(): void;
52
- is(target: JSXTypeof): boolean;
53
- createInstance(injector: Component): Component;
37
+ constructor(type: JSXInternal.ComponentSetup, props: Props, factory: (parentComponent: Component) => Component, key?: Key | undefined);
38
+ createInstance(parentComponent: Component): Component;
54
39
  }
@@ -1,4 +1,3 @@
1
1
  import { NativeNode, NativeRenderer } from './injection-tokens';
2
- import { JSXComponent } from './jsx-element';
3
2
  import { Component } from './component';
4
- export declare function createRenderer(jsxComponent: JSXComponent, nativeRenderer: NativeRenderer, parentComponent: Component): (host: NativeNode) => void;
3
+ export declare function createRenderer(component: Component, nativeRenderer: NativeRenderer): (host: NativeNode) => void;
@@ -1,10 +1,11 @@
1
+ import { Component } from './component';
1
2
  import { JSXInternal } from './types';
2
- import { JSXComponent } from './jsx-element';
3
+ import { Injector } from '../di/_api';
3
4
  /**
4
5
  * Viewfly 根组件,用于实现组件状态更新事件通知
5
6
  */
6
- export declare class RootComponent extends JSXComponent {
7
+ export declare class RootComponent extends Component {
7
8
  onChange: (() => void) | null;
8
- constructor(factory: JSXInternal.ComponentSetup, {}: {});
9
- markAsChanged(changedComponent?: JSXComponent): void;
9
+ constructor(parentInjector: Injector | null, factory: JSXInternal.ComponentSetup);
10
+ markAsChanged(changedComponent?: Component): void;
10
11
  }