diff --git a/kitchen-sink-demo/angular.json b/kitchen-sink-demo/angular.json
index aa32cc4..bbf35b9 100644
--- a/kitchen-sink-demo/angular.json
+++ b/kitchen-sink-demo/angular.json
@@ -50,6 +50,14 @@
"replaceWith": "src/environments/environment.prod.ts"
}
]
+ },
+ "augury": {
+ "fileReplacements": [
+ {
+ "replace": "src/main.ts",
+ "with": "src/main.augury.ts"
+ }
+ ]
}
}
},
@@ -61,6 +69,9 @@
"configurations": {
"production": {
"browserTarget": "kitchen-sink-demo:build:production"
+ },
+ "augury": {
+ "browserTarget": "kitchen-sink-demo:build:augury"
}
}
},
@@ -147,4 +158,4 @@
"prefix": "app"
}
}
-}
\ No newline at end of file
+}
diff --git a/kitchen-sink-demo/package.json b/kitchen-sink-demo/package.json
index 1c2c1bc..4308d64 100644
--- a/kitchen-sink-demo/package.json
+++ b/kitchen-sink-demo/package.json
@@ -5,6 +5,7 @@
"scripts": {
"ng": "ng",
"start": "ng serve",
+ "augury": "ng serve -c augury",
"build": "ng build --prod",
"test": "ng test",
"lint": "ng lint",
@@ -21,6 +22,7 @@
"@angular/platform-browser": "6.0.0",
"@angular/platform-browser-dynamic": "6.0.0",
"@angular/router": "6.0.0",
+ "@augury/core": "^0.1.3",
"core-js": "^2.4.1",
"rxjs": "6.1.0",
"zone.js": "0.8.26"
@@ -48,4 +50,4 @@
"tslint": "^5.10.0",
"typescript": "2.7.2"
}
-}
\ No newline at end of file
+}
diff --git a/kitchen-sink-demo/src/app/app-routing.module.ts b/kitchen-sink-demo/src/app/app-routing.module.ts
index e52192f..19db277 100644
--- a/kitchen-sink-demo/src/app/app-routing.module.ts
+++ b/kitchen-sink-demo/src/app/app-routing.module.ts
@@ -9,6 +9,7 @@ import { AngularDirectivesComponent } from './demos/angular-directives';
import { ChangeDetectionComponent } from './demos/change-detection';
import { StressTesterComponent } from './demos/stress-tester';
import { MetadataTestComponent } from './demos/metadata-test';
+import { LeakyFaucetComponent } from './demos/leaky-faucet';
const routes: Routes = [
{ path: '', component: HomeComponent },
@@ -22,6 +23,7 @@ const routes: Routes = [
{ path: 'change-detection', component: ChangeDetectionComponent },
{ path: 'stress-tester', component: StressTesterComponent },
{ path: 'metadata-test', component: MetadataTestComponent },
+ { path: 'leaky-faucet', component: LeakyFaucetComponent },
];
@NgModule({
diff --git a/kitchen-sink-demo/src/app/app.component.html b/kitchen-sink-demo/src/app/app.component.html
index cdd8830..7fbce4f 100644
--- a/kitchen-sink-demo/src/app/app.component.html
+++ b/kitchen-sink-demo/src/app/app.component.html
@@ -37,6 +37,9 @@
MetadataTest
+
+ Leaky Faucet
+
diff --git a/kitchen-sink-demo/src/app/app.module.ts b/kitchen-sink-demo/src/app/app.module.ts
index b5c0552..14df5bc 100644
--- a/kitchen-sink-demo/src/app/app.module.ts
+++ b/kitchen-sink-demo/src/app/app.module.ts
@@ -16,6 +16,7 @@ import { CHANGE_DETECTION_COMPONENTS } from './demos/change-detection';
import { STRESS_TESTER_COMPONENTS } from './demos/stress-tester';
import { METADATA_TEST_COMPONENTS } from './demos/metadata-test';
import { TODO_APP_SERVICES, TODO_APP_COMPONENTS } from './demos/todo-app';
+import { LeakyFaucetComponent } from './demos/leaky-faucet/components/leaky-faucet.component';
@NgModule({
declarations: [
@@ -32,6 +33,7 @@ import { TODO_APP_SERVICES, TODO_APP_COMPONENTS } from './demos/todo-app';
...STRESS_TESTER_COMPONENTS,
...METADATA_TEST_COMPONENTS,
...TODO_APP_COMPONENTS,
+ LeakyFaucetComponent,
],
imports: [
FormsModule,
diff --git a/kitchen-sink-demo/src/app/demos/leaky-faucet/components/leaky-faucet.component.spec.ts b/kitchen-sink-demo/src/app/demos/leaky-faucet/components/leaky-faucet.component.spec.ts
new file mode 100644
index 0000000..aa19267
--- /dev/null
+++ b/kitchen-sink-demo/src/app/demos/leaky-faucet/components/leaky-faucet.component.spec.ts
@@ -0,0 +1,24 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { LeakyFaucetComponent } from './leaky-faucet.component';
+
+describe('LeakyFaucetComponent', () => {
+ let component: LeakyFaucetComponent;
+ let fixture: ComponentFixture
;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ LeakyFaucetComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(LeakyFaucetComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/kitchen-sink-demo/src/app/demos/leaky-faucet/components/leaky-faucet.component.ts b/kitchen-sink-demo/src/app/demos/leaky-faucet/components/leaky-faucet.component.ts
new file mode 100644
index 0000000..7886307
--- /dev/null
+++ b/kitchen-sink-demo/src/app/demos/leaky-faucet/components/leaky-faucet.component.ts
@@ -0,0 +1,51 @@
+import { Component } from '@angular/core';
+
+@Component({
+ selector: 'leaky-faucet',
+ template: `
+
+
{{ isDripping ? 'The faucet is dripping' : 'Faucet is not dripping' }}
+
+
Faucet: {{ drip }}
+
+ `
+})
+export class LeakyFaucetComponent {
+ isDripping = false;
+ drip = 'start the drip';
+ dripRate = 50;
+
+ toggleLeak() {
+ if (!this.isDripping) {
+ return this.startLeak();
+ }
+ return this.stopLeak();
+ }
+
+ private startLeak() {
+ this.isDripping = true;
+ const message = 'This is a very fast dripping faucet!';
+ this.nextDrip(message);
+ }
+
+ private stopLeak() {
+ this.isDripping = false;
+ }
+
+ private nextDrip(message: string) {
+ setTimeout(() => {
+ if (!this.isDripping) {
+ return;
+ }
+ this.drip = message;
+ if (message.length > 0) {
+ this.nextDrip(message.slice(0, -1));
+ return;
+ }
+ this.drip = ' fixed ';
+ this.stopLeak();
+ }, this.dripRate);
+ }
+}
diff --git a/kitchen-sink-demo/src/app/demos/leaky-faucet/index.ts b/kitchen-sink-demo/src/app/demos/leaky-faucet/index.ts
new file mode 100644
index 0000000..6aef0f7
--- /dev/null
+++ b/kitchen-sink-demo/src/app/demos/leaky-faucet/index.ts
@@ -0,0 +1 @@
+export { LeakyFaucetComponent } from './components/leaky-faucet.component';
diff --git a/kitchen-sink-demo/src/main.augury.ts b/kitchen-sink-demo/src/main.augury.ts
new file mode 100644
index 0000000..1565ef9
--- /dev/null
+++ b/kitchen-sink-demo/src/main.augury.ts
@@ -0,0 +1,21 @@
+import { enableProdMode, NgZone } from '@angular/core';
+import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
+
+import { AppModule } from './app/app.module';
+import { environment } from './environments/environment';
+
+// @todo: how to not include in prod bundle?
+import { auguryBootstrap } from '@augury/core';
+import { OverlayHealthIndicator } from '../../../augury-labs/packages/plugins/overlay-health-indicator/src';
+
+auguryBootstrap({
+ platform: platformBrowserDynamic,
+ ngModule: AppModule,
+ NgZone,
+ plugins: [
+ // new PerformanceProfilerPlugin(),
+ // new PopoutZoneMonitor(),
+ // new c.CDHeatMap(),
+ new OverlayHealthIndicator(),
+ ]
+});
diff --git a/kitchen-sink-demo/src/main.ts b/kitchen-sink-demo/src/main.ts
index 833e9f8..91ec6da 100644
--- a/kitchen-sink-demo/src/main.ts
+++ b/kitchen-sink-demo/src/main.ts
@@ -8,7 +8,5 @@ if (environment.production) {
enableProdMode();
}
-// ( window).go = function() {
- platformBrowserDynamic().bootstrapModule(AppModule)
- .catch(err => console.log(err));
-// }
+platformBrowserDynamic().bootstrapModule(AppModule)
+ .catch(err => console.log(err));
diff --git a/kitchen-sink-demo/yarn.lock b/kitchen-sink-demo/yarn.lock
index 0cb246e..0f78539 100644
--- a/kitchen-sink-demo/yarn.lock
+++ b/kitchen-sink-demo/yarn.lock
@@ -174,6 +174,10 @@
dependencies:
tslib "^1.9.0"
+"@augury/core@^0.1.3":
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/@augury/core/-/core-0.1.4.tgz#dd3f9788a6428f0d521edd97f5d09d88f303f9ad"
+
"@ngtools/webpack@6.0.0":
version "6.0.0"
resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-6.0.0.tgz#e160cccd85823e9b01ee7bc5156a02510a323a34"