Skip to content

Commit 6d7f417

Browse files
devversionjelbourn
authored andcommitted
build: restructure demo-app in favor of bazel (#13965)
Restructures the demo-app by no longer mixing up the `demo-app` name. Currently the `demo-app` consists of two parts: * The demo-app * And the accessibility demos As you can tell above, this is pretty much confusing because it's technically just consisting of: * Accessibility demos * Library demos This change cleans up the naming and makes sure that the modules are structured in a best-practice way. It's odd to have the `DemoAppModule` (*not the root module*) that includes all library demos as a folder next to the actual demo components. This makes it extremely hard to convert the demo-app to Bazel because we cannot target all `.ts` files through `glob` because it only matches files inside of the same folder (or Bazel package). In order to make it easy to run the demo-app with Bazel, and to just clean it up, the folder structure should be as followed: ``` src/a11y-demo/ | ... src/dev-app/ | ${DEMO_COMPONENT} | ... | BUILD.bazel | index.html | BUILD.bazel ```
1 parent 39888f3 commit 6d7f417

File tree

280 files changed

+564
-516
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

280 files changed

+564
-516
lines changed

.circleci/config.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -157,10 +157,10 @@ jobs:
157157
- run: ./scripts/circleci/run-saucelabs-tests.sh
158158

159159
# -----------------------------------------------------------------------------------------
160-
# Job that builds the demo-app with AOT. In order to speed up this job, the release output
160+
# Job that builds the dev-app with AOT. In order to speed up this job, the release output
161161
# from the workspace storage will be attached to this job.
162162
# -----------------------------------------------------------------------------------------
163-
build_demoapp_aot:
163+
build_devapp_aot:
164164
<<: *job_defaults
165165
steps:
166166
- *checkout_code
@@ -197,7 +197,7 @@ jobs:
197197

198198
# -------------------------------------------------------------------------------------------
199199
# Job that builds all release packages with Gulp. The built packages can be then used in the
200-
# same workflow to publish snapshot builds or test the demo-app with the release packages.
200+
# same workflow to publish snapshot builds or test the dev-app with the release packages.
201201
# -------------------------------------------------------------------------------------------
202202
build_release_packages:
203203
<<: *job_defaults
@@ -298,7 +298,7 @@ workflows:
298298
release_output:
299299
jobs:
300300
- build_release_packages
301-
- build_demoapp_aot:
301+
- build_devapp_aot:
302302
requires:
303303
- build_release_packages
304304
- publish_snapshots:

.github/CODEOWNERS

+53-52
Original file line numberDiff line numberDiff line change
@@ -94,58 +94,59 @@
9494
/guides/** @jelbourn
9595
/src/material-examples/** @jelbourn
9696

97-
# Demo app
98-
/src/demo-app/* @jelbourn
99-
/src/demo-app/a11y/** @jelbourn
100-
/src/demo-app/autocomplete/** @crisbeto
101-
/src/demo-app/badge/** @jelbourn
102-
/src/demo-app/baseline/** @mmalerba
103-
/src/demo-app/bottom-sheet/** @jelbourn @crisbeto
104-
/src/demo-app/button-toggle/** @jelbourn
105-
/src/demo-app/button/** @jelbourn
106-
/src/demo-app/card/** @jelbourn
107-
/src/demo-app/checkbox/** @jelbourn @devversion
108-
/src/demo-app/chips/** @jelbourn
109-
/src/demo-app/connected-overlay/** @jelbourn @crisbeto
110-
/src/demo-app/dataset/** @andrewseguin
111-
/src/demo-app/datepicker/** @mmalerba
112-
/src/demo-app/demo-app/** @jelbourn
113-
/src/demo-app/dialog/** @jelbourn @crisbeto
114-
/src/demo-app/drawer/** @mmalerba
115-
/src/demo-app/drag-drop/** @crisbeto
116-
/src/demo-app/example/** @andrewseguin
117-
/src/demo-app/examples-page/** @andrewseguin
118-
/src/demo-app/expansion/** @josephperrott
119-
/src/demo-app/focus-origin/** @mmalerba
120-
/src/demo-app/gestures/** @jelbourn
121-
/src/demo-app/grid-list/** @jelbourn
122-
/src/demo-app/icon/** @jelbourn
123-
/src/demo-app/input/** @mmalerba
124-
/src/demo-app/list/** @jelbourn @crisbeto @devversion
125-
/src/demo-app/live-announcer/** @jelbourn
126-
/src/demo-app/menu/** @crisbeto
127-
/src/demo-app/overlay/** @jelbourn @crisbeto
128-
/src/demo-app/paginator/** @andrewseguin
129-
/src/demo-app/platform/** @jelbourn @devversion
130-
/src/demo-app/portal/** @jelbourn
131-
/src/demo-app/progress-bar/** @jelbourn @crisbeto @josephperrott
132-
/src/demo-app/progress-spinner/** @jelbourn @crisbeto @josephperrott
133-
/src/demo-app/radio/** @jelbourn @devversion
134-
/src/demo-app/ripple/** @devversion
135-
/src/demo-app/screen-type/** @josephperrott
136-
/src/demo-app/select/** @crisbeto
137-
/src/demo-app/sidenav/** @mmalerba
138-
/src/demo-app/slide-toggle/** @devversion
139-
/src/demo-app/slider/** @mmalerba
140-
/src/demo-app/snack-bar/** @jelbourn @crisbeto @josephperrott
141-
/src/demo-app/stepper/** @mmalerba
142-
/src/demo-app/table/** @andrewseguin
143-
/src/demo-app/tabs/** @andrewseguin
144-
/src/demo-app/toolbar/** @devversion
145-
/src/demo-app/tooltip/** @andrewseguin
146-
/src/demo-app/tree/** @jelbourn
147-
/src/demo-app/typography/** @crisbeto
148-
/src/demo-app/virtual-scroll/** @mmalerba
97+
# Accessibility demos
98+
/src/a11y-demo/**/* @jelbourn
99+
100+
# Dev-app
101+
/src/dev-app/* @jelbourn
102+
/src/dev-app/autocomplete/** @crisbeto
103+
/src/dev-app/badge/** @jelbourn
104+
/src/dev-app/baseline/** @mmalerba
105+
/src/dev-app/bottom-sheet/** @jelbourn @crisbeto
106+
/src/dev-app/button-toggle/** @jelbourn
107+
/src/dev-app/button/** @jelbourn
108+
/src/dev-app/card/** @jelbourn
109+
/src/dev-app/checkbox/** @jelbourn @devversion
110+
/src/dev-app/chips/** @jelbourn
111+
/src/dev-app/connected-overlay/** @jelbourn @crisbeto
112+
/src/dev-app/dataset/** @andrewseguin
113+
/src/dev-app/datepicker/** @mmalerba
114+
/src/dev-app/dialog/** @jelbourn @crisbeto
115+
/src/dev-app/drawer/** @mmalerba
116+
/src/dev-app/drag-drop/** @crisbeto
117+
/src/dev-app/example/** @andrewseguin
118+
/src/dev-app/examples-page/** @andrewseguin
119+
/src/dev-app/expansion/** @josephperrott
120+
/src/dev-app/focus-origin/** @mmalerba
121+
/src/dev-app/gestures/** @jelbourn
122+
/src/dev-app/grid-list/** @jelbourn
123+
/src/dev-app/icon/** @jelbourn
124+
/src/dev-app/input/** @mmalerba
125+
/src/dev-app/list/** @jelbourn @crisbeto @devversion
126+
/src/dev-app/menu/** @crisbeto
127+
/src/dev-app/live-announcer/** @jelbourn
128+
/src/dev-app/overlay/** @jelbourn @crisbeto
129+
/src/dev-app/paginator/** @andrewseguin
130+
/src/dev-app/platform/** @jelbourn @devversion
131+
/src/dev-app/portal/** @jelbourn
132+
/src/dev-app/progress-bar/** @jelbourn @crisbeto @josephperrott
133+
/src/dev-app/progress-spinner/** @jelbourn @crisbeto @josephperrott
134+
/src/dev-app/radio/** @jelbourn @devversion
135+
/src/dev-app/ripple/** @devversion
136+
/src/dev-app/screen-type/** @josephperrott
137+
/src/dev-app/select/** @crisbeto
138+
/src/dev-app/sidenav/** @mmalerba
139+
/src/dev-app/slide-toggle/** @devversion
140+
/src/dev-app/slider/** @mmalerba
141+
/src/dev-app/snack-bar/** @jelbourn @crisbeto @josephperrott
142+
/src/dev-app/stepper/** @mmalerba
143+
/src/dev-app/table/** @andrewseguin
144+
/src/dev-app/tabs/** @andrewseguin
145+
/src/dev-app/toolbar/** @devversion
146+
/src/dev-app/tooltip/** @andrewseguin
147+
/src/dev-app/tree/** @jelbourn
148+
/src/dev-app/typography/** @crisbeto
149+
/src/dev-app/virtual-scroll/** @mmalerba
149150

150151
# E2E app
151152
/e2e/* @jelbourn

CODE_REVIEWS.md

+1-1

firebase.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"hosting": {
3-
"public": "dist/packages/demo-app",
3+
"public": "dist/packages/dev-app",
44
"rewrites": [
55
{
66
"source": "/**/!(*.@(js|ts|html|css|json|svg|png|jpg|jpeg))",

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
},
1414
"scripts": {
1515
"build": "gulp :publish:build-releases",
16-
"demo-app": "gulp serve:devapp",
16+
"dev-app": "gulp serve:devapp",
1717
"test": "gulp test",
1818
"lint": "gulp lint",
1919
"e2e": "gulp e2e",

src/a11y-demo/BUILD.bazel

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package(default_visibility=["//visibility:public"])
2+
3+
load("//:packages.bzl", "MATERIAL_TARGETS")
4+
load("//tools:defaults.bzl", "ng_module")
5+
load("//tools:sass_generate_binaries.bzl", "sass_generate_binaries")
6+
7+
# Generate sass binaries for all nested SCSS files.
8+
sass_generate_binaries("a11y_demo_scss", glob(["**/*.scss"]))
9+
10+
ng_module(
11+
name = "a11y-demo",
12+
srcs = glob(["**/*.ts"], exclude=["**/*.spec.ts"]),
13+
assets = glob(["**/*.html"]) + [":a11y_demo_scss"],
14+
deps = [
15+
"@angular//packages/core",
16+
"@angular//packages/router",
17+
"//src/cdk/table",
18+
] + MATERIAL_TARGETS
19+
)

src/demo-app/a11y/a11y-module.ts renamed to src/a11y-demo/a11y-demo-module.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ import {CommonModule} from '@angular/common';
1010
import {NgModule} from '@angular/core';
1111
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
1212
import {RouterModule} from '@angular/router';
13-
import {DemoMaterialModule} from '../demo-material-module';
14-
import {AccessibilityDemo, AccessibilityHome} from './a11y';
13+
import {AccessibilityDemoHome, AccessibilityDemoRoot} from './a11y-demo';
14+
import {ACCESSIBILITY_DEMO_ROUTES} from './a11y-demo-routes';
15+
import {DemoMaterialModule} from './a11y-material-module';
1516
import {AutocompleteAccessibilityDemo} from './autocomplete/autocomplete-a11y';
1617
import {ButtonToggleAccessibilityDemo} from './button-toggle/button-toggle-a11y';
1718
import {ButtonAccessibilityDemo} from './button/button-a11y';
@@ -36,7 +37,6 @@ import {MenuAccessibilityDemo} from './menu/menu-a11y';
3637
import {ProgressBarAccessibilityDemo} from './progress-bar/progress-bar-a11y';
3738
import {ProgressSpinnerAccessibilityDemo} from './progress-spinner/progress-spinner-a11y';
3839
import {RadioAccessibilityDemo} from './radio/radio-a11y';
39-
import {ACCESSIBILITY_DEMO_ROUTES} from './routes';
4040
import {SelectAccessibilityDemo} from './select/select-a11y';
4141
import {SidenavBasicAccessibilityDemo} from './sidenav/basic-sidenav-a11y';
4242
import {SidenavDualAccessibilityDemo} from './sidenav/dual-sidenav-a11y';
@@ -75,8 +75,8 @@ export class AccessibilityRoutingModule {}
7575
ReactiveFormsModule,
7676
],
7777
declarations: [
78-
AccessibilityDemo,
79-
AccessibilityHome,
78+
AccessibilityDemoHome,
79+
AccessibilityDemoRoot,
8080
AutocompleteAccessibilityDemo,
8181
ButtonAccessibilityDemo,
8282
ButtonToggleAccessibilityDemo,

src/demo-app/a11y/routes.ts renamed to src/a11y-demo/a11y-demo-routes.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import {DialogAccessibilityDemo} from './dialog/dialog-a11y';
1717
import {ExpansionPanelAccessibilityDemo} from './expansion/expansion-a11y';
1818
import {GridListAccessibilityDemo} from './grid-list/grid-list-a11y';
1919
import {RadioAccessibilityDemo} from './radio/radio-a11y';
20-
import {AccessibilityHome} from './a11y';
20+
import {AccessibilityDemoHome} from './a11y-demo';
2121
import {ToolbarAccessibilityDemo} from './toolbar/toolbar-a11y';
2222
import {DatepickerAccessibilityDemo} from './datepicker/datepicker-a11y';
2323
import {IconAccessibilityDemo} from './icon/icon-a11y';
@@ -40,7 +40,7 @@ import {SidenavDualAccessibilityDemo} from './sidenav/dual-sidenav-a11y';
4040
import {SidenavMobileAccessibilityDemo} from './sidenav/mobile-sidenav-a11y';
4141

4242
export const ACCESSIBILITY_DEMO_ROUTES: Routes = [
43-
{path: '', component: AccessibilityHome},
43+
{path: '', component: AccessibilityDemoHome},
4444
{path: 'autocomplete', component: AutocompleteAccessibilityDemo},
4545
{path: 'button', component: ButtonAccessibilityDemo},
4646
{path: 'button-toggle', component: ButtonToggleAccessibilityDemo},
File renamed without changes.
File renamed without changes.

src/demo-app/a11y/a11y.ts renamed to src/a11y-demo/a11y-demo.ts

+10-13
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,13 @@ import {Component, ElementRef, OnDestroy, ViewChild} from '@angular/core';
1010
import {NavigationEnd, Router} from '@angular/router';
1111
import {Subscription} from 'rxjs';
1212

13-
14-
@Component({
15-
moduleId: module.id,
16-
selector: 'accessibility-home',
17-
template: `<p>Welcome to the accessibility demos for Angular Material!</p>`,
18-
})
19-
export class AccessibilityHome {}
20-
2113
@Component({
2214
moduleId: module.id,
23-
selector: 'accessibility-demo',
24-
templateUrl: 'a11y.html',
25-
styleUrls: ['a11y.css'],
15+
templateUrl: 'a11y-demo.html',
16+
styleUrls: ['a11y-demo.css'],
2617
})
27-
export class AccessibilityDemo implements OnDestroy {
18+
export class AccessibilityDemoRoot implements OnDestroy {
2819
currentComponent = '';
29-
3020
fullscreen = false;
3121

3222
private _routerSubscription = Subscription.EMPTY;
@@ -90,3 +80,10 @@ export class AccessibilityDemo implements OnDestroy {
9080
this._routerSubscription.unsubscribe();
9181
}
9282
}
83+
84+
@Component({
85+
moduleId: module.id,
86+
selector: 'accessibility-home',
87+
template: `<p>Welcome to the accessibility examples for Angular Material!</p>`,
88+
})
89+
export class AccessibilityDemoHome {}

src/a11y-demo/a11y-material-module.ts

+77
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
/**
2+
* @license
3+
* Copyright Google LLC All Rights Reserved.
4+
*
5+
* Use of this source code is governed by an MIT-style license that can be
6+
* found in the LICENSE file at https://angular.io/license
7+
*/
8+
9+
import {CdkTableModule} from '@angular/cdk/table';
10+
import {NgModule} from '@angular/core';
11+
import {
12+
MatAutocompleteModule,
13+
MatButtonModule,
14+
MatButtonToggleModule,
15+
MatCardModule,
16+
MatCheckboxModule,
17+
MatChipsModule,
18+
MatDatepickerModule,
19+
MatDialogModule,
20+
MatExpansionModule,
21+
MatGridListModule,
22+
MatIconModule,
23+
MatInputModule,
24+
MatListModule,
25+
MatMenuModule,
26+
MatPaginatorModule,
27+
MatProgressBarModule,
28+
MatProgressSpinnerModule,
29+
MatRadioModule,
30+
MatSelectModule,
31+
MatSidenavModule,
32+
MatSliderModule,
33+
MatSlideToggleModule,
34+
MatSnackBarModule,
35+
MatTableModule,
36+
MatTabsModule,
37+
MatToolbarModule,
38+
MatTooltipModule,
39+
} from '@angular/material';
40+
41+
/**
42+
* NgModule that includes all Material modules that are required to serve the dev-app.
43+
*/
44+
@NgModule({
45+
exports: [
46+
CdkTableModule,
47+
MatAutocompleteModule,
48+
MatButtonModule,
49+
MatButtonToggleModule,
50+
MatCardModule,
51+
MatCheckboxModule,
52+
MatChipsModule,
53+
MatTableModule,
54+
MatDatepickerModule,
55+
MatDialogModule,
56+
MatExpansionModule,
57+
MatGridListModule,
58+
MatIconModule,
59+
MatInputModule,
60+
MatListModule,
61+
MatMenuModule,
62+
MatPaginatorModule,
63+
MatProgressBarModule,
64+
MatProgressSpinnerModule,
65+
MatRadioModule,
66+
MatSelectModule,
67+
MatSidenavModule,
68+
MatSliderModule,
69+
MatSlideToggleModule,
70+
MatSnackBarModule,
71+
MatTableModule,
72+
MatTabsModule,
73+
MatToolbarModule,
74+
MatTooltipModule,
75+
]
76+
})
77+
export class DemoMaterialModule {}
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)