|
|
@ -25,10 +25,13 @@ export interface PanelEditorProps<T = any> { |
|
|
|
onChange: (options: T) => void; |
|
|
|
onChange: (options: T) => void; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export type PreservePanelOptionsHandler<TOptions> = (pluginId: string, prevOptions: any) => Partial<TOptions>; |
|
|
|
|
|
|
|
|
|
|
|
export class ReactPanelPlugin<TOptions = any> { |
|
|
|
export class ReactPanelPlugin<TOptions = any> { |
|
|
|
panel: ComponentClass<PanelProps<TOptions>>; |
|
|
|
panel: ComponentClass<PanelProps<TOptions>>; |
|
|
|
editor?: ComponentClass<PanelEditorProps<TOptions>>; |
|
|
|
editor?: ComponentClass<PanelEditorProps<TOptions>>; |
|
|
|
defaults?: TOptions; |
|
|
|
defaults?: TOptions; |
|
|
|
|
|
|
|
preserveOptions?: PreservePanelOptionsHandler<TOptions>; |
|
|
|
|
|
|
|
|
|
|
|
constructor(panel: ComponentClass<PanelProps<TOptions>>) { |
|
|
|
constructor(panel: ComponentClass<PanelProps<TOptions>>) { |
|
|
|
this.panel = panel; |
|
|
|
this.panel = panel; |
|
|
@ -41,6 +44,10 @@ export class ReactPanelPlugin<TOptions = any> { |
|
|
|
setDefaults(defaults: TOptions) { |
|
|
|
setDefaults(defaults: TOptions) { |
|
|
|
this.defaults = defaults; |
|
|
|
this.defaults = defaults; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
setPreserveOptionsHandler(handler: PreservePanelOptionsHandler<TOptions>) { |
|
|
|
|
|
|
|
this.preserveOptions = handler; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
export interface PanelSize { |
|
|
|
export interface PanelSize { |
|
|
|