import StyleComponent from './style-component'; import { TOPIC_TYPE } from '../common/constants'; import { Point } from '../common/utils'; import Boundary, { BoundaryData } from './boundary'; import Summary, { SummaryData } from './summary'; import Marker, { MarkerData } from './marker'; import Notes, { NotesData } from './notes'; import Numbering, { NumberingData } from './numbering'; import Extension, { ExtensionData } from './topic-extension'; import BaseComponent from './base-component'; import { StyleData } from './style'; import { ImageData } from './topic-image'; import Sheet from './sheet'; export interface TopicImage extends BaseComponent { } export interface TopicData { id: string; title: string; style?: StyleData; class?: string; position?: Point; structureClass?: string; branch?: string; width?: number; labels?: string; numbering?: NumberingData; href?: string; notes?: NotesData; image?: ImageData; children?: { [index: string]: Array; }; markers?: Array; boundaries?: Array; summaries?: Array; extensions?: Array; } interface TopicModelInitOptions { type: typeof TOPIC_TYPE.ATTACHED | typeof TOPIC_TYPE.DETACHED | typeof TOPIC_TYPE.CALLOUT | typeof TOPIC_TYPE.SUMMARY; index?: number; } export default class Topic extends StyleComponent { componentType: string; modelEvents: { addTopic: string; removeTopic: string; moveChildTopic: string; addBoundary: string; removeBoundary: string; addSummary: string; removeSummary: string; addImage: string; removeImage: string; addMarker: string; removeMarker: string; addLabel: string; removeLabel: string; addNotes: string; removeNotes: string; addHref: string; removeHref: string; addNumbering: string; removeNumbering: string; changeTitle: string; changePosition: string; changeStructureClass: string; changeCustomWidth: string; extensionEventMap: { add: { [x: string]: string; }; remove: { [x: string]: string; }; }; labelsChanged: string; informationChanged: string; }; _topicType: string; _childrenTopicMap: { [index: string]: Array; }; _boundaries: Array; _summaries: Array; _markers: Array; _image: TopicImage; _notes: Notes; _numbering: Numbering; _extensionMap: { [index: string]: Extension; }; constructor(data: TopicData, options?: TopicModelInitOptions); init(sheet: Sheet): void; _initChildren(): void; _initBoundaries(): void; _initSummaries(): void; _initMarkers(): void; _initImage(): void; _initNotes(): void; _initNumbering(): void; _initExtensionMap(): void; getType(): string; getChildren(): TopicData; getChildrenByType(typeList: string | Array): Array; addChildTopic(childTopicData: TopicData, options?: TopicModelInitOptions): Topic; _addChildTopic(childTopicData: TopicData, options: TopicModelInitOptions): Topic; getChildIndexByType(topicType: string, topic: Topic): number; removeChildTopic(childTopic: Topic): void; moveChildTopic(from: number, to: number): void; getBoundaries(): Array; addBoundary(boundaryData: BoundaryData, options?: Object): Boundary; _addBoundary(boundaryData: BoundaryData, options?: Object): Boundary; removeBoundary(boundary: Boundary): void; getSummaries(): Array; addSummary(summaryData: SummaryData, summaryTopicData: TopicData, options?: { index?: number; }): void; _addSummary(summaryData: SummaryData, options?: { index?: number; }, isInit?: boolean): Summary; removeSummary(summary: Summary): void; _removeSummary(summary: Summary): void; _canCollapse(): boolean; isFolded(): boolean; extendTopic(): void; collapseTopic(): void; getMarkers(): Array; addMarker(markerData: MarkerData, options?: Object): void; _addMarker(markerData: MarkerData, options?: Object): Marker; removeMarker(markerData: MarkerData): void; getImage(): TopicImage; addImage(imageData: ImageData, options?: Object): void; _addImage(imageData: ImageData, options?: Object): TopicImage; removeImage(): void; /** @important 没有Label Model */ getLabels(): Array; addLabel(newLabel: string, options?: { index?: number; }): void; removeLabels(): void; removeLabel(label?: string): void; getNotes(): Notes; addNotes(notesData: NotesData, options?: Object): Notes; _addNotes(notesData: NotesData, options?: any): Notes; removeNotes(): void; getHref(): string; addHref(href: string): void; removeHref(): void; getNumbering(): Numbering; addNumbering(numberingData: NumberingData, options?: any): void; _addNumbering(numberingData: NumberingData, options?: any): Numbering; changeNumbering(key: string, value: string): void; removeNumbering(): void; isRootTopic(): boolean; getTitle(): string; changeTitle(title: string): void; /** * For floating topic */ getPosition(): Point; changePosition(position: Point): void; getStructureClass(): string; changeStructureClass(structureClass: string): void; getCustomWidth(): number; changeCustomWidth(customWidth: number): void; addExtension(provider: string, extensionData: ExtensionData, options?: Object): void; _addExtension(provider: string, extensionData: ExtensionData, options?: Object): Extension; removeExtension(provider: string): void; getExtensions(): Array; getExtension(provider: string): Extension; getAudioNotes(): Extension; addAudioNotes(audioNotesData: ExtensionData, options?: Object): void; removeAudioNotes(): void; getTaskInfo(): Extension; addTaskInfo(taskInfoData: ExtensionData, options?: any): void; removeTaskInfo(): void; getUnbalancedMapInfo(): Extension; addUnbalancedMapInfo(unbalancedMapData: ExtensionData, options?: any): void; removeUnbalancedMapInfo(): void; remove(): void; } export {};