1/*
2 * Copyright (C) 2022 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17import {ClipboardModule} from '@angular/cdk/clipboard';
18import {DragDropModule} from '@angular/cdk/drag-drop';
19import {CdkMenuModule} from '@angular/cdk/menu';
20import {ScrollingModule} from '@angular/cdk/scrolling';
21import {CommonModule} from '@angular/common';
22import {HttpClientModule} from '@angular/common/http';
23import {CUSTOM_ELEMENTS_SCHEMA, ErrorHandler, NgModule} from '@angular/core';
24import {FormsModule, ReactiveFormsModule} from '@angular/forms';
25import {MatButtonModule} from '@angular/material/button';
26import {MatCardModule} from '@angular/material/card';
27import {MatCheckboxModule} from '@angular/material/checkbox';
28import {MatDialogModule} from '@angular/material/dialog';
29import {MatDividerModule} from '@angular/material/divider';
30import {MatFormFieldModule} from '@angular/material/form-field';
31import {MatGridListModule} from '@angular/material/grid-list';
32import {MatIconModule} from '@angular/material/icon';
33import {MatInputModule} from '@angular/material/input';
34import {MatListModule} from '@angular/material/list';
35import {MatProgressBarModule} from '@angular/material/progress-bar';
36import {MatProgressSpinnerModule} from '@angular/material/progress-spinner';
37import {MatRadioModule} from '@angular/material/radio';
38import {MatSelectModule} from '@angular/material/select';
39import {MatSliderModule} from '@angular/material/slider';
40import {MatSnackBarModule} from '@angular/material/snack-bar';
41import {MatTabsModule} from '@angular/material/tabs';
42import {MatToolbarModule} from '@angular/material/toolbar';
43import {MatTooltipModule} from '@angular/material/tooltip';
44import {BrowserModule, Title} from '@angular/platform-browser';
45import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
46import {CollapsedSectionsComponent} from 'viewers/components/collapsed_sections_component';
47import {CollapsibleSectionTitleComponent} from 'viewers/components/collapsible_section_title_component';
48import {CoordinatesTableComponent} from 'viewers/components/coordinates_table_component';
49import {HierarchyComponent} from 'viewers/components/hierarchy_component';
50import {HierarchyTreeNodeDataViewComponent} from 'viewers/components/hierarchy_tree_node_data_view_component';
51import {ImeAdditionalPropertiesComponent} from 'viewers/components/ime_additional_properties_component';
52import {PropertiesComponent} from 'viewers/components/properties_component';
53import {PropertiesTableComponent} from 'viewers/components/properties_table_component';
54import {PropertyTreeNodeDataViewComponent} from 'viewers/components/property_tree_node_data_view_component';
55import {RectsComponent} from 'viewers/components/rects/rects_component';
56import {SelectWithFilterComponent} from 'viewers/components/select_with_filter_component';
57import {SurfaceFlingerPropertyGroupsComponent} from 'viewers/components/surface_flinger_property_groups_component';
58import {TransformMatrixComponent} from 'viewers/components/transform_matrix_component';
59import {TreeComponent} from 'viewers/components/tree_component';
60import {TreeNodeComponent} from 'viewers/components/tree_node_component';
61import {UserOptionsComponent} from 'viewers/components/user_options_component';
62import {ViewerInputMethodComponent} from 'viewers/components/viewer_input_method_component';
63import {ViewCapturePropertyGroupsComponent} from 'viewers/components/view_capture_property_groups_component';
64import {ProtologScrollDirective} from 'viewers/viewer_protolog/scroll_strategy/protolog_scroll_directive';
65import {ViewerProtologComponent} from 'viewers/viewer_protolog/viewer_protolog_component';
66import {ViewerScreenRecordingComponent} from 'viewers/viewer_screen_recording/viewer_screen_recording_component';
67import {ViewerSurfaceFlingerComponent} from 'viewers/viewer_surface_flinger/viewer_surface_flinger_component';
68import {TransactionsScrollDirective} from 'viewers/viewer_transactions/scroll_strategy/transactions_scroll_directive';
69import {ViewerTransactionsComponent} from 'viewers/viewer_transactions/viewer_transactions_component';
70import {ViewerTransitionsComponent} from 'viewers/viewer_transitions/viewer_transitions_component';
71import {ViewerViewCaptureComponent} from 'viewers/viewer_view_capture/viewer_view_capture_component';
72import {ViewerWindowManagerComponent} from 'viewers/viewer_window_manager/viewer_window_manager_component';
73import {AdbProxyComponent} from './components/adb_proxy_component';
74import {AppComponent} from './components/app_component';
75import {
76  MatDrawer,
77  MatDrawerContainer,
78  MatDrawerContent,
79} from './components/bottomnav/bottom_drawer_component';
80import {CollectTracesComponent} from './components/collect_traces_component';
81import {LoadProgressComponent} from './components/load_progress_component';
82import {ShortcutsComponent} from './components/shortcuts_component';
83import {SnackBarComponent} from './components/snack_bar_component';
84import {DefaultTimelineRowComponent} from './components/timeline/expanded-timeline/default_timeline_row_component';
85import {ExpandedTimelineComponent} from './components/timeline/expanded-timeline/expanded_timeline_component';
86import {TransitionTimelineComponent} from './components/timeline/expanded-timeline/transition_timeline_component';
87import {MiniTimelineComponent} from './components/timeline/mini-timeline/mini_timeline_component';
88import {SliderComponent} from './components/timeline/mini-timeline/slider_component';
89import {TimelineComponent} from './components/timeline/timeline_component';
90import {TraceConfigComponent} from './components/trace_config_component';
91import {TraceViewComponent} from './components/trace_view_component';
92import {UploadTracesComponent} from './components/upload_traces_component';
93import {WebAdbComponent} from './components/web_adb_component';
94import {GlobalErrorHandler} from './global_error_handler';
95
96@NgModule({
97  declarations: [
98    AppComponent,
99    ViewerWindowManagerComponent,
100    ViewerSurfaceFlingerComponent,
101    ViewerInputMethodComponent,
102    ViewerProtologComponent,
103    ViewerTransactionsComponent,
104    ViewerScreenRecordingComponent,
105    ViewerTransitionsComponent,
106    ViewerViewCaptureComponent,
107    CollectTracesComponent,
108    UploadTracesComponent,
109    AdbProxyComponent,
110    WebAdbComponent,
111    TraceConfigComponent,
112    HierarchyComponent,
113    PropertiesComponent,
114    RectsComponent,
115    TraceViewComponent,
116    TreeComponent,
117    TreeNodeComponent,
118    HierarchyTreeNodeDataViewComponent,
119    PropertyTreeNodeDataViewComponent,
120    SurfaceFlingerPropertyGroupsComponent,
121    TransformMatrixComponent,
122    PropertiesTableComponent,
123    ImeAdditionalPropertiesComponent,
124    CoordinatesTableComponent,
125    TimelineComponent,
126    MiniTimelineComponent,
127    ExpandedTimelineComponent,
128    DefaultTimelineRowComponent,
129    TransitionTimelineComponent,
130    SnackBarComponent,
131    MatDrawer,
132    MatDrawerContent,
133    MatDrawerContainer,
134    LoadProgressComponent,
135    SliderComponent,
136    ProtologScrollDirective,
137    TransactionsScrollDirective,
138    ViewCapturePropertyGroupsComponent,
139    SelectWithFilterComponent,
140    ShortcutsComponent,
141    CollapsedSectionsComponent,
142    CollapsibleSectionTitleComponent,
143    UserOptionsComponent,
144  ],
145  imports: [
146    BrowserModule,
147    HttpClientModule,
148    CommonModule,
149    MatCardModule,
150    MatButtonModule,
151    MatGridListModule,
152    FormsModule,
153    MatListModule,
154    MatCheckboxModule,
155    MatDividerModule,
156    MatIconModule,
157    MatProgressSpinnerModule,
158    MatProgressBarModule,
159    MatFormFieldModule,
160    MatInputModule,
161    MatSelectModule,
162    BrowserAnimationsModule,
163    HttpClientModule,
164    MatSliderModule,
165    MatRadioModule,
166    MatTooltipModule,
167    MatToolbarModule,
168    MatTabsModule,
169    MatSnackBarModule,
170    ScrollingModule,
171    DragDropModule,
172    ClipboardModule,
173    ReactiveFormsModule,
174    CdkMenuModule,
175    MatDialogModule,
176  ],
177  providers: [Title, {provide: ErrorHandler, useClass: GlobalErrorHandler}],
178  schemas: [CUSTOM_ELEMENTS_SCHEMA],
179  bootstrap: [AppComponent],
180})
181export class AppModule {}
182