Skip to content

Commit 360393f

Browse files
devversionjelbourn
authored andcommitted
fix(stackblitz): drag and drop examples not working (angular#522)
* Since the `DragDropModule` is not added to the StackBlitz template, the drag & drop examples don't work if opened in StackBlitz. * Moves the `DemoMaterialModule` into a separate file because having one big files is confusing and makes it hard to debug the StackBlitz.
1 parent 7ff68df commit 360393f

File tree

4 files changed

+96
-87
lines changed

4 files changed

+96
-87
lines changed

src/app/shared/stackblitz/stackblitz-writer.spec.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ describe('StackblitzWriter', () => {
7474
}
7575
flushMicrotasks();
7676

77-
expect(form.elements.length).toBe(14);
77+
expect(form.elements.length).toBe(15);
7878

7979
// Should have correct tags
8080
expect(form.elements[0].getAttribute('name')).toBe('tags[0]');
@@ -96,9 +96,10 @@ describe('StackblitzWriter', () => {
9696
expect(form.elements[8].getAttribute('name')).toBe('files[polyfills.ts]');
9797
expect(form.elements[9].getAttribute('name')).toBe('files[.angular-cli.json]');
9898
expect(form.elements[10].getAttribute('name')).toBe('files[main.ts]');
99-
expect(form.elements[11].getAttribute('name')).toBe('files[app/test.ts]');
100-
expect(form.elements[12].getAttribute('name')).toBe('files[app/test.html]');
101-
expect(form.elements[13].getAttribute('name')).toBe('files[app/src/detail.ts]');
99+
expect(form.elements[11].getAttribute('name')).toBe('files[material-module.ts]');
100+
expect(form.elements[12].getAttribute('name')).toBe('files[app/test.ts]');
101+
expect(form.elements[13].getAttribute('name')).toBe('files[app/test.html]');
102+
expect(form.elements[14].getAttribute('name')).toBe('files[app/src/detail.ts]');
102103
}));
103104
});
104105

@@ -115,6 +116,7 @@ const TEST_URLS = [
115116
'/assets/stackblitz/polyfills.ts',
116117
'/assets/stackblitz/.angular-cli.json',
117118
'/assets/stackblitz/main.ts',
119+
'/assets/stackblitz/material-module.ts',
118120
'http://material.angular.io/test.ts',
119121
'http://material.angular.io/test.html',
120122
'http://material.angular.io/src/detail.ts',

src/app/shared/stackblitz/stackblitz-writer.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ const TEMPLATE_FILES = [
1818
'styles.css',
1919
'polyfills.ts',
2020
'.angular-cli.json',
21-
'main.ts'
21+
'main.ts',
22+
'material-module.ts',
2223
];
2324

2425
const TAGS: string[] = ['angular', 'material', 'example'];

src/assets/stackblitz/main.ts

Lines changed: 3 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,15 @@
11
import './polyfills';
22

3-
import {CdkTableModule} from '@angular/cdk/table';
4-
import {CdkTreeModule} from '@angular/cdk/tree';
53
import {HttpClientModule} from '@angular/common/http';
64
import {NgModule} from '@angular/core';
75
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
8-
import {
9-
MatAutocompleteModule,
10-
MatBadgeModule,
11-
MatBottomSheetModule,
12-
MatButtonModule,
13-
MatButtonToggleModule,
14-
MatCardModule,
15-
MatCheckboxModule,
16-
MatChipsModule,
17-
MatDatepickerModule,
18-
MatDialogModule,
19-
MatDividerModule,
20-
MatExpansionModule,
21-
MatGridListModule,
22-
MatIconModule,
23-
MatInputModule,
24-
MatListModule,
25-
MatMenuModule,
26-
MatNativeDateModule,
27-
MatPaginatorModule,
28-
MatProgressBarModule,
29-
MatProgressSpinnerModule,
30-
MatRadioModule,
31-
MatRippleModule,
32-
MatSelectModule,
33-
MatSidenavModule,
34-
MatSliderModule,
35-
MatSlideToggleModule,
36-
MatSnackBarModule,
37-
MatSortModule,
38-
MatStepperModule,
39-
MatTableModule,
40-
MatTabsModule,
41-
MatToolbarModule,
42-
MatTooltipModule,
43-
MatTreeModule,
44-
} from '@angular/material';
6+
import {MatNativeDateModule} from '@angular/material';
457
import {BrowserModule} from '@angular/platform-browser';
468
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
479
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
48-
import {MaterialDocsExample} from './app/material-docs-example';
10+
import {DemoMaterialModule} from './material-module';
4911

50-
@NgModule({
51-
exports: [
52-
CdkTableModule,
53-
CdkTreeModule,
54-
MatAutocompleteModule,
55-
MatBadgeModule,
56-
MatBottomSheetModule,
57-
MatButtonModule,
58-
MatButtonToggleModule,
59-
MatCardModule,
60-
MatCheckboxModule,
61-
MatChipsModule,
62-
MatStepperModule,
63-
MatDatepickerModule,
64-
MatDialogModule,
65-
MatDividerModule,
66-
MatExpansionModule,
67-
MatGridListModule,
68-
MatIconModule,
69-
MatInputModule,
70-
MatListModule,
71-
MatMenuModule,
72-
MatNativeDateModule,
73-
MatPaginatorModule,
74-
MatProgressBarModule,
75-
MatProgressSpinnerModule,
76-
MatRadioModule,
77-
MatRippleModule,
78-
MatSelectModule,
79-
MatSidenavModule,
80-
MatSliderModule,
81-
MatSlideToggleModule,
82-
MatSnackBarModule,
83-
MatSortModule,
84-
MatTableModule,
85-
MatTabsModule,
86-
MatToolbarModule,
87-
MatTooltipModule,
88-
MatTreeModule,
89-
]
90-
})
91-
export class DemoMaterialModule {}
12+
import {MaterialDocsExample} from './app/material-docs-example';
9213

9314
@NgModule({
9415
imports: [
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
import {DragDropModule} from '@angular/cdk/drag-drop';
2+
import {CdkTableModule} from '@angular/cdk/table';
3+
import {CdkTreeModule} from '@angular/cdk/tree';
4+
import {NgModule} from '@angular/core';
5+
import {
6+
MatAutocompleteModule,
7+
MatBadgeModule,
8+
MatBottomSheetModule,
9+
MatButtonModule,
10+
MatButtonToggleModule,
11+
MatCardModule,
12+
MatCheckboxModule,
13+
MatChipsModule,
14+
MatDatepickerModule,
15+
MatDialogModule,
16+
MatDividerModule,
17+
MatExpansionModule,
18+
MatGridListModule,
19+
MatIconModule,
20+
MatInputModule,
21+
MatListModule,
22+
MatMenuModule,
23+
MatNativeDateModule,
24+
MatPaginatorModule,
25+
MatProgressBarModule,
26+
MatProgressSpinnerModule,
27+
MatRadioModule,
28+
MatRippleModule,
29+
MatSelectModule,
30+
MatSidenavModule,
31+
MatSliderModule,
32+
MatSlideToggleModule,
33+
MatSnackBarModule,
34+
MatSortModule,
35+
MatStepperModule,
36+
MatTableModule,
37+
MatTabsModule,
38+
MatToolbarModule,
39+
MatTooltipModule,
40+
MatTreeModule,
41+
} from '@angular/material';
42+
43+
@NgModule({
44+
exports: [
45+
CdkTableModule,
46+
CdkTreeModule,
47+
DragDropModule,
48+
MatAutocompleteModule,
49+
MatBadgeModule,
50+
MatBottomSheetModule,
51+
MatButtonModule,
52+
MatButtonToggleModule,
53+
MatCardModule,
54+
MatCheckboxModule,
55+
MatChipsModule,
56+
MatStepperModule,
57+
MatDatepickerModule,
58+
MatDialogModule,
59+
MatDividerModule,
60+
MatExpansionModule,
61+
MatGridListModule,
62+
MatIconModule,
63+
MatInputModule,
64+
MatListModule,
65+
MatMenuModule,
66+
MatNativeDateModule,
67+
MatPaginatorModule,
68+
MatProgressBarModule,
69+
MatProgressSpinnerModule,
70+
MatRadioModule,
71+
MatRippleModule,
72+
MatSelectModule,
73+
MatSidenavModule,
74+
MatSliderModule,
75+
MatSlideToggleModule,
76+
MatSnackBarModule,
77+
MatSortModule,
78+
MatTableModule,
79+
MatTabsModule,
80+
MatToolbarModule,
81+
MatTooltipModule,
82+
MatTreeModule,
83+
]
84+
})
85+
export class DemoMaterialModule {}

0 commit comments

Comments
 (0)