| 110 | } |
| 111 | |
| 112 | export class Skeleton implements ISkeleton { |
| 113 | private panels = new Map<string, Panel>(); |
| 114 | |
| 115 | private configTransducers: IPublicTypeConfigTransducer[] = []; |
| 116 | |
| 117 | private containers = new Map<string, WidgetContainer<any>>(); |
| 118 | |
| 119 | readonly leftArea: Area<DockConfig | PanelDockConfig | DialogDockConfig>; |
| 120 | |
| 121 | readonly topArea: Area<DockConfig | DividerConfig | PanelDockConfig | DialogDockConfig>; |
| 122 | |
| 123 | readonly subTopArea: Area<DockConfig | DividerConfig | PanelDockConfig | DialogDockConfig>; |
| 124 | |
| 125 | readonly toolbar: Area<DockConfig | DividerConfig | PanelDockConfig | DialogDockConfig>; |
| 126 | |
| 127 | readonly leftFixedArea: Area<IPublicTypePanelConfig, Panel>; |
| 128 | |
| 129 | readonly leftFloatArea: Area<IPublicTypePanelConfig, Panel>; |
| 130 | |
| 131 | readonly rightArea: Area<IPublicTypePanelConfig, Panel>; |
| 132 | |
| 133 | @obx readonly mainArea: Area<WidgetConfig | IPublicTypePanelConfig, Widget | Panel>; |
| 134 | |
| 135 | readonly bottomArea: Area<IPublicTypePanelConfig, Panel>; |
| 136 | |
| 137 | readonly stages: Area<StageConfig, Stage>; |
| 138 | |
| 139 | readonly widgets: IWidget[] = []; |
| 140 | |
| 141 | readonly focusTracker = new FocusTracker(); |
| 142 | |
| 143 | constructor(readonly editor: IEditor, readonly viewName: string = 'global') { |
| 144 | makeObservable(this); |
| 145 | this.leftArea = new Area( |
| 146 | this, |
| 147 | 'leftArea', |
| 148 | (config) => { |
| 149 | if (isWidget(config)) { |
| 150 | return config; |
| 151 | } |
| 152 | return this.createWidget(config); |
| 153 | }, |
| 154 | false, |
| 155 | ); |
| 156 | this.topArea = new Area( |
| 157 | this, |
| 158 | 'topArea', |
| 159 | (config) => { |
| 160 | if (isWidget(config)) { |
| 161 | return config; |
| 162 | } |
| 163 | return this.createWidget(config); |
| 164 | }, |
| 165 | false, |
| 166 | ); |
| 167 | this.subTopArea = new Area( |
| 168 | this, |
| 169 | 'subTopArea', |
nothing calls this directly
no outgoing calls
no test coverage detected
searching dependent graphs…