51dcc1dc68af151441da5c0cd4646ff0c54d8ede49fe4eaf8d92ca82e3250b83111a7825edc886c8d7a6a80e93654c6ec31c4b12d94935ad8db92f62737430 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { AreaStyleMixin } from './mixin/areaStyle.js';
  2. import TextStyleMixin from './mixin/textStyle.js';
  3. import { LineStyleMixin } from './mixin/lineStyle.js';
  4. import { ItemStyleMixin } from './mixin/itemStyle.js';
  5. import GlobalModel from './Global.js';
  6. import { ModelOption } from '../util/types.js';
  7. interface Model<Opt = ModelOption> extends LineStyleMixin, ItemStyleMixin, TextStyleMixin, AreaStyleMixin {
  8. }
  9. declare class Model<Opt = ModelOption> {
  10. parentModel: Model;
  11. ecModel: GlobalModel;
  12. option: Opt;
  13. constructor(option?: Opt, parentModel?: Model, ecModel?: GlobalModel);
  14. init(option: Opt, parentModel?: Model, ecModel?: GlobalModel, ...rest: any): void;
  15. /**
  16. * Merge the input option to me.
  17. */
  18. mergeOption(option: Opt, ecModel?: GlobalModel): void;
  19. get<R extends keyof Opt>(path: R, ignoreParent?: boolean): Opt[R];
  20. get<R extends keyof Opt>(path: readonly [R], ignoreParent?: boolean): Opt[R];
  21. get<R extends keyof Opt, S extends keyof Opt[R]>(path: readonly [R, S], ignoreParent?: boolean): Opt[R][S];
  22. get<R extends keyof Opt, S extends keyof Opt[R], T extends keyof Opt[R][S]>(path: readonly [R, S, T], ignoreParent?: boolean): Opt[R][S][T];
  23. getShallow<R extends keyof Opt>(key: R, ignoreParent?: boolean): Opt[R];
  24. getModel<R extends keyof Opt>(path: R, parentModel?: Model): Model<Opt[R]>;
  25. getModel<R extends keyof Opt>(path: readonly [R], parentModel?: Model): Model<Opt[R]>;
  26. getModel<R extends keyof Opt, S extends keyof Opt[R]>(path: readonly [R, S], parentModel?: Model): Model<Opt[R][S]>;
  27. getModel<Ra extends keyof Opt, Rb extends keyof Opt, S extends keyof Opt[Rb]>(path: readonly [Ra] | readonly [Rb, S], parentModel?: Model): Model<Opt[Ra]> | Model<Opt[Rb][S]>;
  28. getModel<R extends keyof Opt, S extends keyof Opt[R], T extends keyof Opt[R][S]>(path: readonly [R, S, T], parentModel?: Model): Model<Opt[R][S][T]>;
  29. /**
  30. * If model has option
  31. */
  32. isEmpty(): boolean;
  33. restoreData(): void;
  34. clone(): Model<Opt>;
  35. parsePath(path: string | readonly string[]): readonly string[];
  36. resolveParentPath(path: readonly string[]): string[];
  37. isAnimationEnabled(): boolean;
  38. private _doGet;
  39. }
  40. export default Model;