From daae4f1429d0391846a083dcdea4fd9134d72be8 Mon Sep 17 00:00:00 2001 From: Novak Istvan Date: Tue, 2 Feb 2016 14:39:34 +0100 Subject: [PATCH] docs(cookbook/component-communication): first of the cookbook series closes #824 --- .../cb-component-communication/e2e-spec.js | 210 ++++++++++++++ .../cb-component-communication/ts/.gitignore | 1 + .../ts/app/app.component.html | 44 +++ .../ts/app/app.component.ts | 21 ++ .../ts/app/astronaut.component.ts | 45 +++ .../ts/app/countdown-parent.component.ts | 22 ++ .../ts/app/countdown-timer.component.ts | 33 +++ .../ts/app/hero-child.component.ts | 16 ++ .../ts/app/hero-parent.component.ts | 21 ++ .../cb-component-communication/ts/app/hero.ts | 9 + .../cb-component-communication/ts/app/main.ts | 4 + .../ts/app/mission.service.ts | 25 ++ .../ts/app/missioncontrol.component.ts | 44 +++ .../ts/app/name-child.component.ts | 20 ++ .../ts/app/name-parent.component.ts | 19 ++ .../ts/app/version-child.component.ts | 30 ++ .../ts/app/version-parent.component.ts | 28 ++ .../ts/app/voter.component.ts | 22 ++ .../ts/app/votetaker.component.ts | 26 ++ .../ts/example-config.json | 0 .../cb-component-communication/ts/index.html | 36 +++ .../cb-component-communication/ts/plnkr.json | 8 + public/docs/_includes/sidenav/_secondary.jade | 5 +- public/docs/ts/latest/_data.json | 6 + public/docs/ts/latest/cookbooks/_data.json | 11 + .../cookbooks/component-communication.jade | 257 ++++++++++++++++++ public/docs/ts/latest/cookbooks/index.jade | 27 ++ public/resources/css/layout/_layout.scss | 7 +- .../bidirectional-service.gif | Bin 0 -> 28013 bytes .../child-to-parent.gif | Bin 0 -> 18240 bytes .../contentchildren.png | Bin 0 -> 21838 bytes .../countdown-timer-anim.gif | Bin 0 -> 51282 bytes .../parent-to-child-on-changes.gif | Bin 0 -> 22226 bytes .../parent-to-child.png | Bin 0 -> 10411 bytes .../component-communication/setter.png | Bin 0 -> 18395 bytes .../unrelated-service.gif | Bin 0 -> 21830 bytes 36 files changed, 994 insertions(+), 3 deletions(-) create mode 100644 public/docs/_examples/cb-component-communication/e2e-spec.js create mode 100644 public/docs/_examples/cb-component-communication/ts/.gitignore create mode 100644 public/docs/_examples/cb-component-communication/ts/app/app.component.html create mode 100644 public/docs/_examples/cb-component-communication/ts/app/app.component.ts create mode 100644 public/docs/_examples/cb-component-communication/ts/app/astronaut.component.ts create mode 100644 public/docs/_examples/cb-component-communication/ts/app/countdown-parent.component.ts create mode 100644 public/docs/_examples/cb-component-communication/ts/app/countdown-timer.component.ts create mode 100644 public/docs/_examples/cb-component-communication/ts/app/hero-child.component.ts create mode 100644 public/docs/_examples/cb-component-communication/ts/app/hero-parent.component.ts create mode 100644 public/docs/_examples/cb-component-communication/ts/app/hero.ts create mode 100644 public/docs/_examples/cb-component-communication/ts/app/main.ts create mode 100644 public/docs/_examples/cb-component-communication/ts/app/mission.service.ts create mode 100644 public/docs/_examples/cb-component-communication/ts/app/missioncontrol.component.ts create mode 100644 public/docs/_examples/cb-component-communication/ts/app/name-child.component.ts create mode 100644 public/docs/_examples/cb-component-communication/ts/app/name-parent.component.ts create mode 100644 public/docs/_examples/cb-component-communication/ts/app/version-child.component.ts create mode 100644 public/docs/_examples/cb-component-communication/ts/app/version-parent.component.ts create mode 100644 public/docs/_examples/cb-component-communication/ts/app/voter.component.ts create mode 100644 public/docs/_examples/cb-component-communication/ts/app/votetaker.component.ts create mode 100644 public/docs/_examples/cb-component-communication/ts/example-config.json create mode 100644 public/docs/_examples/cb-component-communication/ts/index.html create mode 100644 public/docs/_examples/cb-component-communication/ts/plnkr.json create mode 100644 public/docs/ts/latest/cookbooks/_data.json create mode 100644 public/docs/ts/latest/cookbooks/component-communication.jade create mode 100644 public/docs/ts/latest/cookbooks/index.jade create mode 100644 public/resources/images/cookbooks/component-communication/bidirectional-service.gif create mode 100644 public/resources/images/cookbooks/component-communication/child-to-parent.gif create mode 100644 public/resources/images/cookbooks/component-communication/contentchildren.png create mode 100644 public/resources/images/cookbooks/component-communication/countdown-timer-anim.gif create mode 100644 public/resources/images/cookbooks/component-communication/parent-to-child-on-changes.gif create mode 100644 public/resources/images/cookbooks/component-communication/parent-to-child.png create mode 100644 public/resources/images/cookbooks/component-communication/setter.png create mode 100644 public/resources/images/cookbooks/component-communication/unrelated-service.gif diff --git a/public/docs/_examples/cb-component-communication/e2e-spec.js b/public/docs/_examples/cb-component-communication/e2e-spec.js new file mode 100644 index 0000000000..84729e0cef --- /dev/null +++ b/public/docs/_examples/cb-component-communication/e2e-spec.js @@ -0,0 +1,210 @@ +describe('Component Communication Cookbook Tests', function () { + + + beforeAll(function () { + browser.get(''); + }); + + describe('Parent-to-child communication', function() { + // #docregion parent-to-child + // ... + var _heroNames = ['Mr. IQ', 'Magneta', 'Bombasto']; + var _masterName = 'Master'; + + it('should pass properties to children properly', function () { + var parent = element.all(by.tagName('hero-parent')).get(0); + var heroes = parent.all(by.tagName('hero-child')); + + for (var i = 0; i < _heroNames.length; i++) { + var childTitle = heroes.get(i).element(by.tagName('h3')).getText(); + var childDetail = heroes.get(i).element(by.tagName('p')).getText(); + expect(childTitle).toEqual(_heroNames[i] + ' says:') + expect(childDetail).toContain(_masterName) + } + }); + // ... + // #enddocregion parent-to-child + }); + + describe('Parent-to-child communication with setter', function() { + // #docregion parent-to-child-setter + // ... + it('should display trimmed, non-empty names', function () { + var _nonEmptyNameIndex = 0; + var _nonEmptyName = '"Mr. IQ"'; + var parent = element.all(by.tagName('name-parent')).get(0); + var hero = parent.all(by.tagName('name-child')).get(_nonEmptyNameIndex); + + var displayName = hero.element(by.tagName('h3')).getText(); + expect(displayName).toEqual(_nonEmptyName) + }); + + it('should replace empty name with default name', function () { + var _emptyNameIndex = 1; + var _defaultName = '""'; + var parent = element.all(by.tagName('name-parent')).get(0); + var hero = parent.all(by.tagName('name-child')).get(_emptyNameIndex); + + var displayName = hero.element(by.tagName('h3')).getText(); + expect(displayName).toEqual(_defaultName) + }); + // ... + // #enddocregion parent-to-child-setter + }); + + describe('Parent-to-child communication with ngOnChanges', function() { + // #docregion parent-to-child-onchanges + // ... + // Test must all execute in this exact order + it('should set expected initial values', function () { + var actual = getActual(); + + var initialLabel = "Version 1.23"; + var initialLog = 'major changed from {} to 1, minor changed from {} to 23'; + + expect(actual.label).toBe(initialLabel); + expect(actual.count).toBe(1); + expect(actual.logs.get(0).getText()).toBe(initialLog); + }); + + it('should set expected values after clicking "Minor" twice', function () { + var repoTag = element(by.tagName('version-parent')); + var newMinorButton = repoTag.all(by.tagName('button')).get(0); + + newMinorButton.click().then(function() { + newMinorButton.click().then(function() { + var actual = getActual(); + + var labelAfter2Minor = "Version 1.25"; + var logAfter2Minor = 'minor changed from 24 to 25'; + + expect(actual.label).toBe(labelAfter2Minor); + expect(actual.count).toBe(3); + expect(actual.logs.get(2).getText()).toBe(logAfter2Minor); + }) + }); + }); + + it('should set expected values after clicking "Major" once', function () { + var repoTag = element(by.tagName('version-parent')); + var newMajorButton = repoTag.all(by.tagName('button')).get(1); + + newMajorButton.click().then(function() { + var actual = getActual(); + + var labelAfterMajor = "Version 2.0"; + var logAfterMajor = 'major changed from 1 to 2, minor changed from 25 to 0'; + + expect(actual.label).toBe(labelAfterMajor); + expect(actual.count).toBe(4); + expect(actual.logs.get(3).getText()).toBe(logAfterMajor); + }); + }); + + function getActual() { + var versionTag = element(by.tagName('version-child')); + var label = versionTag.element(by.tagName('h3')).getText(); + var ul = versionTag.element((by.tagName('ul'))); + var logs = ul.all(by.tagName('li')); + + return { + label: label, + logs: logs, + count: logs.count() + }; + } + // ... + // #enddocregion parent-to-child-onchanges + + }); + + describe('Child-to-parent communication', function() { + // #docregion child-to-parent + // ... + it('should not emit the event initially', function () { + var voteLabel = element(by.tagName('vote-taker')) + .element(by.tagName('h3')).getText(); + expect(voteLabel).toBe("Agree: 0, Disagree: 0"); + }); + + it('should process Agree vote', function () { + var agreeButton1 = element.all(by.tagName('my-voter')).get(0) + .all(by.tagName('button')).get(0); + agreeButton1.click().then(function() { + var voteLabel = element(by.tagName('vote-taker')) + .element(by.tagName('h3')).getText(); + expect(voteLabel).toBe("Agree: 1, Disagree: 0"); + }); + }); + + it('should process Disagree vote', function () { + var agreeButton1 = element.all(by.tagName('my-voter')).get(1) + .all(by.tagName('button')).get(1); + agreeButton1.click().then(function() { + var voteLabel = element(by.tagName('vote-taker')) + .element(by.tagName('h3')).getText(); + expect(voteLabel).toBe("Agree: 1, Disagree: 1"); + }); + }); + // ... + // #enddocregion child-to-parent + }); + + describe('Parent calls ViewChild', function() { + // #docregion parent-to-view-child + // ... + it('should stop the countdown', function () { + var stopButton = element + .all(by.tagName('countdown-parent')).get(0) + .all(by.tagName('button')).get(1); + + stopButton.click().then(function() { + var message = element(by.tagName('countdown-timer')) + .element(by.tagName('p')).getText(); + expect(message).toContain('Holding'); + }); + }); + // ... + // #enddocregion parent-to-view-child + }); + + describe('Parent and children communicate via a service', function() { + // #docregion bidirectional-service + // ... + it('should announce a mission', function () { + var missionControl = element(by.tagName('mission-control')); + var announceButton = missionControl.all(by.tagName('button')).get(0); + announceButton.click().then(function () { + var history = missionControl.all(by.tagName('li')); + expect(history.count()).toBe(1); + expect(history.get(0).getText()).toMatch(/Mission.* announced/); + }); + }); + + it('should confirm the mission by Lovell', function () { + testConfirmMission(1, 2, 'Lovell'); + }); + + it('should confirm the mission by Haise', function () { + testConfirmMission(3, 3, 'Haise'); + }); + + it('should confirm the mission by Swigert', function () { + testConfirmMission(2, 4, 'Swigert'); + }); + + function testConfirmMission(buttonIndex, expectedLogCount, astronaut) { + var _confirmedLog = ' confirmed the mission'; + var missionControl = element(by.tagName('mission-control')); + var confirmButton = missionControl.all(by.tagName('button')).get(buttonIndex); + confirmButton.click().then(function () { + var history = missionControl.all(by.tagName('li')); + expect(history.count()).toBe(expectedLogCount); + expect(history.get(expectedLogCount-1).getText()).toBe(astronaut + _confirmedLog); + }); + } + // ... + // #enddocregion bidirectional-service + }); + +}); diff --git a/public/docs/_examples/cb-component-communication/ts/.gitignore b/public/docs/_examples/cb-component-communication/ts/.gitignore new file mode 100644 index 0000000000..2cb7d2a2e9 --- /dev/null +++ b/public/docs/_examples/cb-component-communication/ts/.gitignore @@ -0,0 +1 @@ +**/*.js diff --git a/public/docs/_examples/cb-component-communication/ts/app/app.component.html b/public/docs/_examples/cb-component-communication/ts/app/app.component.html new file mode 100644 index 0000000000..6cfb5b76ed --- /dev/null +++ b/public/docs/_examples/cb-component-communication/ts/app/app.component.html @@ -0,0 +1,44 @@ +

Component Communication Cookbook

+ +Pass data from parent to child with input binding
+Intercept input property changes with a setter
+Intercept input property changes with ngOnChanges
+Parent listens for child event
+Parent calls ViewChild
+Parent and children communicate via a service
+ +
+ +
+Back to Top + +
+
+ +
+Back to Top + +
+
+ +
+Back to Top + +
+
+ +
+Back to Top +
+ +
+ +
+Back to Top +
+ +
+ +
+Back to Top +
diff --git a/public/docs/_examples/cb-component-communication/ts/app/app.component.ts b/public/docs/_examples/cb-component-communication/ts/app/app.component.ts new file mode 100644 index 0000000000..a1d11ed518 --- /dev/null +++ b/public/docs/_examples/cb-component-communication/ts/app/app.component.ts @@ -0,0 +1,21 @@ +import {Component} from 'angular2/core'; +import {HeroParentComponent} from './hero-parent.component'; +import {NameParentComponent} from './name-parent.component'; +import {VersionParentComponent} from './version-parent.component'; +import {VoteTakerComponent} from './votetaker.component'; +import {CountdownParentComponent} from './countdown-parent.component'; +import {MissionControlComponent} from './missioncontrol.component'; + +@Component({ + selector: 'app', + templateUrl: 'app/app.component.html', + directives: [ + HeroParentComponent, + NameParentComponent, + VersionParentComponent, + VoteTakerComponent, + CountdownParentComponent, + MissionControlComponent + ] +}) +export class AppComponent { } \ No newline at end of file diff --git a/public/docs/_examples/cb-component-communication/ts/app/astronaut.component.ts b/public/docs/_examples/cb-component-communication/ts/app/astronaut.component.ts new file mode 100644 index 0000000000..686543be33 --- /dev/null +++ b/public/docs/_examples/cb-component-communication/ts/app/astronaut.component.ts @@ -0,0 +1,45 @@ +// #docregion +import {Component, Input, OnDestroy} from 'angular2/core'; +import {MissionService} from './mission.service'; +import {Subscription} from 'rxjs/Subscription'; + +@Component({ + selector: 'my-astronaut', + template: ` +

+ {{astronaut}}: {{mission}} + +

+ ` +}) +export class AstronautComponent implements OnDestroy{ + @Input() astronaut: string; + mission = ""; + confirmed = false; + announced = false; + subscription:Subscription; + + constructor(private missionService: MissionService) { + this.subscription = missionService.missionAnnounced$.subscribe( + mission => { + this.mission = mission; + this.announced = true; + this.confirmed = false; + }) + } + + confirm() { + this.confirmed = true; + this.missionService.confirmMission(this.astronaut); + } + + ngOnDestroy(){ + // prevent memory leak when component destroyed + this.subscription.unsubscribe(); + } +} +// #enddocregion \ No newline at end of file diff --git a/public/docs/_examples/cb-component-communication/ts/app/countdown-parent.component.ts b/public/docs/_examples/cb-component-communication/ts/app/countdown-parent.component.ts new file mode 100644 index 0000000000..d1e2a00cc9 --- /dev/null +++ b/public/docs/_examples/cb-component-communication/ts/app/countdown-parent.component.ts @@ -0,0 +1,22 @@ +// #docregion +import {Component, ViewChild} from 'angular2/core'; +import {CountdownTimerComponent} from './countdown-timer.component'; + +@Component({ + selector:'countdown-parent', + template: ` +

Countdown to Liftoff

+ + + + `, + directives: [CountdownTimerComponent] +}) +export class CountdownParentComponent { + + @ViewChild(CountdownTimerComponent) + private _timerComponent:CountdownTimerComponent; + + start(){ this._timerComponent.start(); } + stop() { this._timerComponent.stop(); } +} \ No newline at end of file diff --git a/public/docs/_examples/cb-component-communication/ts/app/countdown-timer.component.ts b/public/docs/_examples/cb-component-communication/ts/app/countdown-timer.component.ts new file mode 100644 index 0000000000..aedbbf5906 --- /dev/null +++ b/public/docs/_examples/cb-component-communication/ts/app/countdown-timer.component.ts @@ -0,0 +1,33 @@ +// #docregion +import {Component, EventEmitter, OnInit, Output} from 'angular2/core'; + +@Component({ + selector:'countdown-timer', + template: '

{{message}}

' +}) +export class CountdownTimerComponent implements OnInit { + + intervalId = 0; + message = ''; + seconds = 11; + + private _countDown() { + clearInterval(this.intervalId); + this.intervalId = setInterval(()=>{ + this.seconds -= 1; + if (this.seconds == 0) { + this.message = "Blast off!"; + this.seconds = 11; // reset + } else { + this.message = `T-${this.seconds} seconds and counting`; + } + }, 1000); + } + + ngOnInit() { this.start(); } + start() { this._countDown(); } + stop() { + clearInterval(this.intervalId); + this.message = `Holding at T-${this.seconds} seconds`; + } +} \ No newline at end of file diff --git a/public/docs/_examples/cb-component-communication/ts/app/hero-child.component.ts b/public/docs/_examples/cb-component-communication/ts/app/hero-child.component.ts new file mode 100644 index 0000000000..748d543983 --- /dev/null +++ b/public/docs/_examples/cb-component-communication/ts/app/hero-child.component.ts @@ -0,0 +1,16 @@ +// #docregion +import {Component, Input} from 'angular2/core'; +import {Hero} from './hero'; + +@Component({ + selector: 'hero-child', + template: ` +

{{hero.name}} says:

+

I, {{hero.name}}, am at your service, {{masterName}}.

+ ` +}) +export class HeroChildComponent { + @Input() hero: Hero; + @Input('master') masterName: string; +} +// #enddocregion diff --git a/public/docs/_examples/cb-component-communication/ts/app/hero-parent.component.ts b/public/docs/_examples/cb-component-communication/ts/app/hero-parent.component.ts new file mode 100644 index 0000000000..17a2dcc93c --- /dev/null +++ b/public/docs/_examples/cb-component-communication/ts/app/hero-parent.component.ts @@ -0,0 +1,21 @@ +// #docregion +import {Component} from 'angular2/core'; +import {HeroChildComponent} from './hero-child.component'; +import {HEROES} from './hero'; + +@Component({ + selector: 'hero-parent', + template: ` +

{{master}} controls {{heroes.length}} heroes

+ + + `, + directives: [HeroChildComponent] +}) +export class HeroParentComponent { + heroes = HEROES; + master: string = 'Master'; +} +// #enddocregion diff --git a/public/docs/_examples/cb-component-communication/ts/app/hero.ts b/public/docs/_examples/cb-component-communication/ts/app/hero.ts new file mode 100644 index 0000000000..5b99f17132 --- /dev/null +++ b/public/docs/_examples/cb-component-communication/ts/app/hero.ts @@ -0,0 +1,9 @@ +export interface Hero { + name: string; +} + +export const HEROES = [ + {name: 'Mr. IQ'}, + {name: 'Magneta'}, + {name: 'Bombasto'} +]; \ No newline at end of file diff --git a/public/docs/_examples/cb-component-communication/ts/app/main.ts b/public/docs/_examples/cb-component-communication/ts/app/main.ts new file mode 100644 index 0000000000..dc1879e9b5 --- /dev/null +++ b/public/docs/_examples/cb-component-communication/ts/app/main.ts @@ -0,0 +1,4 @@ +import {bootstrap} from 'angular2/platform/browser'; +import {AppComponent} from './app.component'; + +bootstrap(AppComponent); \ No newline at end of file diff --git a/public/docs/_examples/cb-component-communication/ts/app/mission.service.ts b/public/docs/_examples/cb-component-communication/ts/app/mission.service.ts new file mode 100644 index 0000000000..b651646b4b --- /dev/null +++ b/public/docs/_examples/cb-component-communication/ts/app/mission.service.ts @@ -0,0 +1,25 @@ +// #docregion +import {Injectable} from 'angular2/core' +import {Subject} from 'rxjs/Subject'; + +@Injectable() +export class MissionService { + + // Observable string sources + private _missionAnnouncedSource = new Subject(); + private _missionConfirmedSource = new Subject(); + + // Observable string streams + missionAnnounced$ = this._missionAnnouncedSource.asObservable(); + missionConfirmed$ = this._missionConfirmedSource.asObservable(); + + // Service message commands + announceMission(mission: string) { + this._missionAnnouncedSource.next(mission) + } + + confirmMission(astronaut: string) { + this._missionConfirmedSource.next(astronaut); + } +} +// #enddocregion diff --git a/public/docs/_examples/cb-component-communication/ts/app/missioncontrol.component.ts b/public/docs/_examples/cb-component-communication/ts/app/missioncontrol.component.ts new file mode 100644 index 0000000000..2f0ac129c0 --- /dev/null +++ b/public/docs/_examples/cb-component-communication/ts/app/missioncontrol.component.ts @@ -0,0 +1,44 @@ +// #docregion +import {Component} from 'angular2/core'; +import {AstronautComponent} from './astronaut.component'; +import {MissionService} from './mission.service'; + +@Component({ + selector: 'mission-control', + template: ` +

Mission Control

+ + + +

History

+
    +
  • {{event}}
  • +
+ `, + directives: [AstronautComponent], + providers: [MissionService] +}) +export class MissionControlComponent { + astronauts = ['Lovell', 'Swigert', 'Haise'] + history: string[] = []; + missions = ['Fly to the moon!', + 'Fly to mars!', + 'Fly to Vegas!']; + nextMission = 0; + + constructor(private missionService: MissionService) { + missionService.missionConfirmed$.subscribe( + astronaut => { + this.history.push(`${astronaut} confirmed the mission`); + }) + } + + announce() { + let mission = this.missions[this.nextMission++]; + this.missionService.announceMission(mission); + this.history.push(`Mission "${mission}" announced`); + if (this.nextMission >= this.missions.length) { this.nextMission = 0; } + } +} +// #enddocregion \ No newline at end of file diff --git a/public/docs/_examples/cb-component-communication/ts/app/name-child.component.ts b/public/docs/_examples/cb-component-communication/ts/app/name-child.component.ts new file mode 100644 index 0000000000..a02fa7949e --- /dev/null +++ b/public/docs/_examples/cb-component-communication/ts/app/name-child.component.ts @@ -0,0 +1,20 @@ +// #docregion +import {Component, Input} from 'angular2/core'; + +@Component({ + selector: 'name-child', + template: ` +

"{{name}}"

+ ` +}) +export class NameChildComponent { + _name: string = ''; + + @Input() + set name(name: string) { + this._name = (name && name.trim()) || ''; + } + + get name() { return this._name; } +} +// #enddocregion diff --git a/public/docs/_examples/cb-component-communication/ts/app/name-parent.component.ts b/public/docs/_examples/cb-component-communication/ts/app/name-parent.component.ts new file mode 100644 index 0000000000..ec99f31675 --- /dev/null +++ b/public/docs/_examples/cb-component-communication/ts/app/name-parent.component.ts @@ -0,0 +1,19 @@ +// #docregion +import {Component} from 'angular2/core'; +import {NameChildComponent} from './name-child.component'; + +@Component({ + selector: 'name-parent', + template: ` +

Master controls {{names.length}} names

+ + + `, + directives: [NameChildComponent] +}) +export class NameParentComponent { + // Displays 'Mr. IQ', '', 'Bombasto' + names = ['Mr. IQ', ' ', ' Bombasto ']; +} +// #enddocregion diff --git a/public/docs/_examples/cb-component-communication/ts/app/version-child.component.ts b/public/docs/_examples/cb-component-communication/ts/app/version-child.component.ts new file mode 100644 index 0000000000..944c2888f6 --- /dev/null +++ b/public/docs/_examples/cb-component-communication/ts/app/version-child.component.ts @@ -0,0 +1,30 @@ +// #docregion +import {Component, Input, OnChanges, SimpleChange} from 'angular2/core'; + +@Component({ + selector: 'version-child', + template: ` +

Version {{major}}.{{minor}}

+

Change log:

+
    +
  • {{change}}
  • +
+ ` +}) +export class VersionChildComponent implements OnChanges { + @Input() major: number; + @Input() minor: number; + changeLog: string[] = []; + + ngOnChanges(changes: {[propKey:string]: SimpleChange}){ + let log: string[] = []; + for (let propName in changes) { + let changedProp = changes[propName]; + let from = JSON.stringify(changedProp.previousValue); + let to = JSON.stringify(changedProp.currentValue); + log.push( `${propName} changed from ${from} to ${to}`); + } + this.changeLog.push(log.join(', ')); + } +} +// #enddocregion \ No newline at end of file diff --git a/public/docs/_examples/cb-component-communication/ts/app/version-parent.component.ts b/public/docs/_examples/cb-component-communication/ts/app/version-parent.component.ts new file mode 100644 index 0000000000..fa3cff767a --- /dev/null +++ b/public/docs/_examples/cb-component-communication/ts/app/version-parent.component.ts @@ -0,0 +1,28 @@ +// #docregion +import {Component} from 'angular2/core'; +import {VersionChildComponent} from './version-child.component'; + +@Component({ + selector: 'version-parent', + template: ` +

Source code version

+ + + + `, + directives: [VersionChildComponent] +}) +export class VersionParentComponent { + major: number = 1; + minor: number = 23; + + newMinor() { + this.minor++; + } + + newMajor() { + this.major++; + this.minor = 0; + } +} +// #enddocregion diff --git a/public/docs/_examples/cb-component-communication/ts/app/voter.component.ts b/public/docs/_examples/cb-component-communication/ts/app/voter.component.ts new file mode 100644 index 0000000000..1c5fd16e25 --- /dev/null +++ b/public/docs/_examples/cb-component-communication/ts/app/voter.component.ts @@ -0,0 +1,22 @@ +// #docregion +import {Component, EventEmitter, Input, Output} from 'angular2/core'; + +@Component({ + selector: 'my-voter', + template: ` +

{{name}}

+ + + ` +}) +export class VoterComponent { + @Input() name: string; + @Output() onVoted = new EventEmitter(); + voted = false; + + vote(agreed:boolean){ + this.onVoted.emit(agreed); + this.voted = true; + } +} +// #enddocregion \ No newline at end of file diff --git a/public/docs/_examples/cb-component-communication/ts/app/votetaker.component.ts b/public/docs/_examples/cb-component-communication/ts/app/votetaker.component.ts new file mode 100644 index 0000000000..02aeda9fd9 --- /dev/null +++ b/public/docs/_examples/cb-component-communication/ts/app/votetaker.component.ts @@ -0,0 +1,26 @@ +// #docregion +import {Component} from 'angular2/core'; +import {VoterComponent} from './voter.component'; + +@Component({ + selector: 'vote-taker', + template: ` +

Should mankind colonize the Universe?

+

Agree: {{agreed}}, Disagree: {{disagreed}}

+ + + `, + directives: [VoterComponent] +}) +export class VoteTakerComponent { + agreed = 0; + disagreed = 0; + voters = ['Mr. IQ', 'Ms. Universe', 'Bombasto'] + + onVoted(agreed: boolean) { + agreed ? this.agreed++ : this.disagreed++; + } +} +// #enddocregion \ No newline at end of file diff --git a/public/docs/_examples/cb-component-communication/ts/example-config.json b/public/docs/_examples/cb-component-communication/ts/example-config.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/public/docs/_examples/cb-component-communication/ts/index.html b/public/docs/_examples/cb-component-communication/ts/index.html new file mode 100644 index 0000000000..549f836c4c --- /dev/null +++ b/public/docs/_examples/cb-component-communication/ts/index.html @@ -0,0 +1,36 @@ + + + + + Passing information from parent to child + + + + + + + + + + + + + + + loading... + + + diff --git a/public/docs/_examples/cb-component-communication/ts/plnkr.json b/public/docs/_examples/cb-component-communication/ts/plnkr.json new file mode 100644 index 0000000000..3c83b2d0f9 --- /dev/null +++ b/public/docs/_examples/cb-component-communication/ts/plnkr.json @@ -0,0 +1,8 @@ +{ + "description": "Component Communication Cookbook samples", + "files":[ + "!**/*.d.ts", + "!**/*.js" + ], + "tags":["cookbook", "component"] +} \ No newline at end of file diff --git a/public/docs/_includes/sidenav/_secondary.jade b/public/docs/_includes/sidenav/_secondary.jade index 0a5bb47506..f43406def7 100644 --- a/public/docs/_includes/sidenav/_secondary.jade +++ b/public/docs/_includes/sidenav/_secondary.jade @@ -3,7 +3,8 @@ if secondaryPath - var data = secondaryPath._data - var listType = data._listtype - - var ordered = listType == "ordered" ? "is-ordered" : "" + - var isOrdered = listType == "ordered" || listType == "alpha" + - var ordered = isOrdered ? "is-ordered" : "" - var items = listType == 'api' ? secondaryPath : data - var number = 1 @@ -26,7 +27,7 @@ if secondaryPath - var path = "/docs/" + current.path[1] + "/" + current.path[2] + "/" + current.path[3] + "/" + slug // ORDERED LIST VALUES - if listType == 'ordered' + if isOrdered - var num = number++ - var name = (listType == "ordered") ? num + '. ' + page.title : page.title; diff --git a/public/docs/ts/latest/_data.json b/public/docs/ts/latest/_data.json index f9ea1d922d..87fcd6d9d3 100644 --- a/public/docs/ts/latest/_data.json +++ b/public/docs/ts/latest/_data.json @@ -23,6 +23,12 @@ "banner": "Angular 2 is currently in Beta." }, + "cookbooks": { + "icon": "list", + "title": "Cookbook Recipes", + "banner": "How to solve common implementation challenges." + }, + "testing": { "icon": "list", "title": "Testing Guides", diff --git a/public/docs/ts/latest/cookbooks/_data.json b/public/docs/ts/latest/cookbooks/_data.json new file mode 100644 index 0000000000..eff6f5f019 --- /dev/null +++ b/public/docs/ts/latest/cookbooks/_data.json @@ -0,0 +1,11 @@ +{ + "_listtype": "alpha", + + "index": { + "title": "Cookbooks" + }, + + "component-communication": { + "title": "Component Communication" + } +} \ No newline at end of file diff --git a/public/docs/ts/latest/cookbooks/component-communication.jade b/public/docs/ts/latest/cookbooks/component-communication.jade new file mode 100644 index 0000000000..b623cbd02f --- /dev/null +++ b/public/docs/ts/latest/cookbooks/component-communication.jade @@ -0,0 +1,257 @@ +include ../../../../_includes/_util-fns + + +:marked + This cookbook contains recipes for common component communication scenarios + in which two or more components share information. + +// + .l-sub-section + :marked + For an in-depth look at each fundamental concepts in component communication, we can find detailed description and + samples in the [Component Communication]() document. + + +:marked + ## Table of contents + + [Pass data from parent to child with input binding](#parent-to-child) + + [Intercept input property changes with a setter](#parent-to-child-setter) + + [Intercept input property changes with *ngOnChanges*](#parent-to-child-on-changes) + + [Parent listens for child event](#child-to-parent) + + [Parent calls a *ViewChild*](#parent-to-view-child) + + [Parent and children communicate via a service](#bidirectional-service) + +:marked + **See the [live example](/resources/live-examples/cb-component-communication/ts/plnkr.html)**. + +.l-main-section + +:marked + ## Pass data from parent to child with input binding + + `HeroChildComponent` has two ***input properties***, + typically adorned with [@Input decorations](docs/ts/latest/guide/template-syntax.html#inputs-outputs). + ++makeExample('cb-component-communication/ts/app/hero-child.component.ts') +:marked + The second `@Input` aliases the child component property name `masterName` as `'master'`. + + The `HeroParentComponent` nests the child `HeroChildComponent` inside an `*ngFor` repeater, + binding its `master` string property to the child's `master` alias + and each iteration's `hero` instance to the child's `hero` property. + ++makeExample('cb-component-communication/ts/app/hero-parent.component.ts') +:marked + The running application displays three heroes: + +figure.image-display + img(src="/resources/images/cookbooks/component-communication/parent-to-child.png" alt="Parent-to-child") + +:marked + ### Test it + + E2E test that all children were instantiated and displayed as expected: + ++makeExample('cb-component-communication/e2e-spec.js', 'parent-to-child') + +:marked + [Back to top](#top) + +.l-main-section + +:marked + ## Intercept input property changes with a setter + + Use an input property setter to intercept and act upon a value from the parent. + + The setter of the `name` input property in the child `NameChildComponent` + trims the whitespace from a name and replaces an empty value with default text. + ++makeExample('cb-component-communication/ts/app/name-child.component.ts') + +:marked + Here's the `NameParentComponent` demonstrating name variations including a name with all spaces: + ++makeExample('cb-component-communication/ts/app/name-parent.component.ts') + +figure.image-display + img(src="/resources/images/cookbooks/component-communication/setter.png" alt="Parent-to-child-setter") + +:marked + ### Test it + + E2E tests of input property setter with empty and non-empty names: + ++makeExample('cb-component-communication/e2e-spec.js', 'parent-to-child-setter') + +:marked + [Back to top](#top) + +.l-main-section + +:marked + ## Intercept input property changes with *ngOnChanges* + + Detect and act upon changes to input property values with the `ngOnChanges` method of the `OnChanges` lifecycle hook interface. +.l-sub-section + :marked + May prefer this approach to the property setter when watching multiple, interacting input properties. + + Learn about `ngOnChanges` in the [LifeCycle Hooks](../guide/lifecycle-hooks.html) chapter. +:marked + This `VersionChildComponent` detects changes to the `major` and `minor` input properties and composes a log message reporting these changes: + ++makeExample('cb-component-communication/ts/app/version-child.component.ts') + +:marked + The `VersionParentComponent` supplies the `minor` and `major` values and binds buttons to methods that change them. + ++makeExample('cb-component-communication/ts/app/version-parent.component.ts') + +:marked + Here's the output of a button-pushing sequence: + +figure.image-display + img(src="/resources/images/cookbooks/component-communication/parent-to-child-on-changes.gif" alt="Parent-to-child-onchanges") + +:marked + ### Test it + + Test that ***both*** input properties are set initially and that button clicks trigger + the expected `ngOnChanges` calls and values: + ++makeExample('cb-component-communication/e2e-spec.js', 'parent-to-child-onchanges') + +:marked + [Back to top](#top) + +.l-main-section + +:marked + ## Parent listens for child event + + The child component exposes an `EventEmitter` property with which it `emits`events when something happens. + The parent binds to that event property and reacts to those events. + + The child's `EventEmitter` property is an ***output property***, + typically adorned with an [@Output decoration](docs/ts/latest/guide/template-syntax.html#inputs-outputs) + as seen in this `VoterComponent`: + ++makeExample('cb-component-communication/ts/app/voter.component.ts') + +:marked + Clicking a button triggers emission of a `true` or `false` (the boolean *payload*). + + The parent `VoteTakerComponent` binds an event handler (`onVoted`) that responds to the child event + payload (`$event`) and updates a counter. + ++makeExample('cb-component-communication/ts/app/votetaker.component.ts') + +:marked + The framework passes the event argument — represented by `$event` — to the handler method, + and the method processes it: + +figure.image-display + img(src="/resources/images/cookbooks/component-communication/child-to-parent.gif" alt="Child-to-parent") + +:marked + ### Test it + + Test that clicking the *Agree* and *Disagree* buttons update the appropriate counters: + ++makeExample('cb-component-communication/e2e-spec.js', 'child-to-parent') + +:marked + [Back to top](#top) + +.l-main-section + +:marked + ## Parent calls a *ViewChild* + A parent can call a child component once it has been located by a property adorned with a `@ViewChild` decorator property. + + This `CountdownTimerComponent` keeps counting down to zero and launching rockets. + It has `start` and `stop` methods that control the countdown. ++makeExample('cb-component-communication/ts/app/countdown-timer.component.ts') +:marked + The parent `CountdownParentComponent` cannot bind to the child's `start` and `stop` methods. + But it can obtain a reference to the child component by applying a `@ViewChild` decorator + to a receiver property (`timerComponent`) after giving that decorator the type of component to find. + Once it has that reference, it can access *any property or method* of the child component. + + Here it wires its own buttons to the child's start` and `stop`. + ++makeExample('cb-component-communication/ts/app/countdown-parent.component.ts') +:marked + +figure.image-display + img(src="/resources/images/cookbooks/component-communication/countdown-timer-anim.gif" alt="countdown timer") +:marked + ### Test it + + Test that clicking the *Stop* button pauses the countdown timer: + ++makeExample('cb-component-communication/e2e-spec.js', 'parent-to-view-child') + +:marked + [Back to top](#top) + +.l-main-section + +:marked + ## Parent and children communicate via a service + + A parent component and its children share a service whose interface enables bi-directional communication + *within the family*. + + The scope of the service instance is the parent component and its children. + Components outside this component subtree have no access to the service or their communications. + + This `MissionService` connects the `MissionControlComponent` to multiple `AstronautComponent` children. + ++makeExample('cb-component-communication/ts/app/mission.service.ts') +:marked + The `MissionControlComponent` both provides the instance of the service that it shares with its children + (through the `providers` metadata array) and injects that instance into itself through its constructor: + ++makeExample('cb-component-communication/ts/app/missioncontrol.component.ts') + +:marked + The `AstronoutComponent` also injects the service in its constructor. + Each `AstronoutComponent` is a child of the `MissionControlComponent` and therefore receives its parent's service instance: + ++makeExample('cb-component-communication/ts/app/astronaut.component.ts') + +.l-sub-section + :marked + Notice that we capture the `subscription` and unsubscribe when the `AstronautComponent` is destroyed. + This is a memory-leak guard step. There is no actual risk in this app because the + lifetime of a `AstronautComponent` is the same as the lifetime of the app itself. + That *would not* always be true in a more complex application. + + We do not add this guard to the `MissionControlComponent` because, as the parent, + it controls the lifetime of the `MissionService`. +:marked + The *History* log demonstrates that messages travel in both directions between + the parent `MissionControlComponent` and the `AstronoutComponent` children, + facilitated by the service: + +figure.image-display + img(src="/resources/images/cookbooks/component-communication/bidirectional-service.gif" alt="bidirectional-service") + +:marked + ### Test it + + Tests click buttons of both the parent `MissionControlComponent` and the `AstronoutComponent` children + and verify that the *History* meets expectations: + ++makeExample('cb-component-communication/e2e-spec.js', 'bidirectional-service') + +:marked + [Back to top](#top) diff --git a/public/docs/ts/latest/cookbooks/index.jade b/public/docs/ts/latest/cookbooks/index.jade new file mode 100644 index 0000000000..87fba289f6 --- /dev/null +++ b/public/docs/ts/latest/cookbooks/index.jade @@ -0,0 +1,27 @@ +include ../../../../_includes/_util-fns + +:marked + # Angular 2 Cookbooks + + The *Cookbook* documentation series offers answers to common implementation questions. + + Each cookbook is a collection of recipes focused on a particular Angular 2 feature or application challenge + such as data binding, cross-component interaction, and communicating with a remote server via HTTP. + +.l-sub-section + :marked + We have one cookbook so far with more on the way. +:marked + Recipes are deliberately brief and code-centric. Each recipe links to a chapter of the Developer Guide or the API Guide + where you can learn more about the purpose, context, and design choices behind the code snippets. + + Each cookbook links to a live sample with every recipe included. + + ## Feedback + + Cookbooks are a perpetual *work-in-progress*. We welcome feedback! Leave a comment by clicking the icon in upper right corner of the banner. + + Post *documentation* issues and pull requests on the + [angular.io](https://github.com/angular/angular.io) github repository. + + Post issues with *Angular 2 itself* to the [angular](https://github.com/angular/angular) github repository. diff --git a/public/resources/css/layout/_layout.scss b/public/resources/css/layout/_layout.scss index d5d280be14..3f0babea9a 100644 --- a/public/resources/css/layout/_layout.scss +++ b/public/resources/css/layout/_layout.scss @@ -224,4 +224,9 @@ .l-layer-10 { z-index: $layer-10; -} \ No newline at end of file +} + +/* + * Other + */ +.to-top {margin-top: $unit * 8; display: block;} diff --git a/public/resources/images/cookbooks/component-communication/bidirectional-service.gif b/public/resources/images/cookbooks/component-communication/bidirectional-service.gif new file mode 100644 index 0000000000000000000000000000000000000000..a0d8c07dd122375630324ce50ebb94a097f8f157 GIT binary patch literal 28013 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 literal 0 HcmV?d00001 diff --git a/public/resources/images/cookbooks/component-communication/child-to-parent.gif b/public/resources/images/cookbooks/component-communication/child-to-parent.gif new file mode 100644 index 0000000000000000000000000000000000000000..05225d09a5cc75176bc562b26f37cadaa4014e21 GIT binary patch literal 18240 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 literal 0 HcmV?d00001 diff --git a/public/resources/images/cookbooks/component-communication/contentchildren.png b/public/resources/images/cookbooks/component-communication/contentchildren.png new file mode 100644 index 0000000000000000000000000000000000000000..097feb688c14618f1938b937ca158adca617721c GIT binary patch literal 21838 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 GM*a_L!S3Av literal 0 HcmV?d00001 diff --git a/public/resources/images/cookbooks/component-communication/countdown-timer-anim.gif b/public/resources/images/cookbooks/component-communication/countdown-timer-anim.gif new file mode 100644 index 0000000000000000000000000000000000000000..31df3ec69faab0ac057ed209d11e38561fe96376 GIT binary patch literal 51282 zcmeFYcTkgE|L%Jyfh6=$q=t|{s3L?WRSZ28X`%uuh9ZKf1VN+|lF(adQUs(63QCnC zXy`?ds)8a05CugAL7Ix2=Xu|=e|ztF&z$qu*|X0)*Q}Y`lm9aJWL@jJ*5_+xZmOm2 z3J1jjAAr9Ehri@lpFgKB3w^`Pxb4+DR|9Gv~CMUTSxI zG(3=hreV@^!_4P~HGPInFD(ufnq-mGXOZ7zQS;pXK<+;F?*8_)B>SW$`^-N3@(%m* zKIa4Z_&X=nI43nZCv`ZNH#wL0xgW@%=APN%Uf$te)8X@%{C)Ck{0|gL^G~Yr&#dv! zFZVzAru<+vg&rs=KQyx@w5Ef0pv-bw{=urDU!Ig-lXUQ0-jr0+lzE`? zn#}U1%!B8ej{F0a*W}mKlpm<3sl2A6ys4?YsiWpEHPtj7td6F?)bY3aI{NOl(|yLSj;KN-8}qJtH&gR(4Kq-tGK?!aGI9C8cHM6?ZGE?%l7hdGN5d zuD+qM=}~h_Yun@YjweqUon75My?y-ygG0}TN1l(4jZaKYy?FU*dgk?;#sF(9H`dxG zEZjG|A>8M)PvB74>Z<3*ID4#TbdV`hz%(=~w3fVKU`E%E*uOj;%u6H-=myPk`Y{>( z_aft#Z2^EGc_b-)Z`!YmmrT_R8WSmz0vNzC>Pw{7n&%=%K-dnxs~f`*mXP@|pjX>h zG32NUB9Y9zM#y4jCz2gJXr*ROVM)tnG+FW~lR#$_qvetmOdp$B61r2#GY0Gjm99Ojbu^28gMg(3lR z;-!H+tsIRrF&DF?ri{Y!ixwaOYx4tjwQ#R`Wl4p~}!;TuQNMCr^0Es;fV$tnyl`|9;v ziI;YCaY9hicsk(NvdCp7Kqqk6mey3pT~nUMNU>V2tI$HjR`>mcfQKS0g~XxxZkV80 z>t+|%*EJThz?@=m77EEpgo-P`(X2XtaWO(Dr(kJ@XoQCeMc1=Y01z}H5l_W@DA&ki zS7yxgBS6Bgu>zn<#w_N^`HO_pTDPR43nMxZFmcUB+A9uwI2bE#)HWF_qHrbWyu=m> zODE{Zo2T{%}3f_-8u$)IKZXfq(FqPp?U@_e*guXV-_yEL=gv z90{zSu$iSPyre(AIpNJ0v54j33b#tP_iJA2x<2PjUDgHf77A2O6$1UsmB61=o0`lKj{&e4;&qJ{-2WIZ8op zajV2c;zw22+~=PD!s!p~j^gajj>EiNmE2DBli#a}y&C&)=t3*E^769i%GcN&78$zEM~cIS+0-|;tAeom*RZksuRftjhq1gc!F zYe}@aA)Yt+FdIfu2ct87)8i;d`fZ^<0>npF4San4F(s> z4Ou%a@%1~UhH0P}%Al?|zse`%_Gf>Xk&;-b?bvcm^a)QpeJHBy*#pJk1xJGu@JeSJulkW=)x)zH>2(O-cR=*y_53v3I3E#U|c5%l0-w z-_-PMj)4tKxL>rEAx~es3Vc&B1PHYn7eVMEc`+b=x>P}#>1qyU*pA380g6Qso}Bye zRAiBzG#i7>ok<2l%;Hp#M7!cvx0#~>kYi=lQqX9bR45(cP&34-4`*=M=1Qn>(xqTU zfJyp{svhzMTWDN&I(zg!&VAQ})oR7cP$;2xVoU(%i#reG*ETtCMsYi?b#f#TW9qpn zL7Ku{VsSds5;?`lpn=b{y`op`-GtAj*8@_l?I-8$w&{@vfz8j}eht}v z%;b6))NeWWJ#V{x`NYGJSI_3Q+O|8^k{^bBw0yTWB*fzvM2*bnSt}B4JA+WGw?#eLsl+o+3vH;7RU3(6HPbL zW7|9OgZ3sLl;f!j%oY9ix~Z)F&AUH~Vjthzn|vioyMN*BveqgUOg*9@J~y^<>cZZu z#u$yP7rH*q`(mJCqn0R(4mv;16*JvA*Nq_5#(MGVIK3waULt*g@WF|2?HQ_8(TQtU zA8YA%##~&_`$B~%zVsYbYQFcF>*~5d$@Gh@Mijwzk`!tH_-hpMzdu2;=?{70Ik0{A zzW8DL&^&Jafx~Q~*Qu9vZ$Y@674^b!(1@S-(*i|CwId{f8*=Af1TA}|UoT13TrPIF zKS8DBGeCX=`8s2abK&sm{uuUSO{L-?PNY!>GMg}CmK?haV?hY+qqBHdwH3>lFs zfWsvSa{TqZ%S96TzPqQj#!lf%%46Sf3g*f7)#0UMzDG%Ku6J?uY;HtHia#j@?+tZd zgR-;iGYlPzAY%s3?MI#f%ZIQ{kI!|)irI#K3l*{%jDN6Qn;{PnvJDx#Kt+`0ZGv_& z74pk3H$irAJ?qlm+xgpTwQ9%AYo4FfD!08FBrE^0Hk()F{7}W@$u~d3QY}88j#Vat&diLjalmBA5W06;1G;+}8wp zJp3ZZ$z#nSU$btaWmwe*TmzXvx&A_rT@5NV3C9Tcc=?JLb9LVhztuP0Y6+};oCA9 zOA(5F!XUSpuA6Q)m9A}@R~KEO%4nITF5hRbM68Lhd09J?otsyeSYh~3iIa{%P!t=lsjH9Ut<`x66Txf`dARQ|I7?ViA}ayJ|U;# zW*6iu@*%#d#d+5R_U&fMjH41q9}P-K23=1uJ_?w3YGxP@2^93&ZMAQCINkCLzU9^GtZI_wJ#*_? z?yXjb%x^DX?qryYcE+jP?4Z_c%fW0F)!@LYtgx!=aHsto+F*u?+XWvYG|3z4&d5n! z$)RiKraR@P1?OhQ=ibuJ6>f1)Yt1dH$}P#wEn~||aWZ=Y3)X7M``({7_bRWJEj+}| zqvvkkBd6Of!MEwn@mnu$KiR#_5XtY-&hK%`?+eZ!$ju*W%^#l0f4-YPCQ>k=T`=WT z@G`hyI=A3;Yr*VH!Q3ue_a=0=m$=t!5o_xjLplws=lFypRg48#32@}N6+UGMnW9-A z2HD%=Bw_;Kp8&ZSBFwZl=RqdNYPLg?G8V8+t5%8;?0B2KT^5ui+LU0?jmulMtI2oYRiC z-Acyk+XnD!%PcW&6)r>;(^}CUDMgneFn6ZDJ^7AD>|sYVs|#=|dJX#1TlCa>t{xAT zyL=X<^>-|$OH(|cjzpHxieusacm6P7E^A=x0ZC3nwF*y`U=0=pyr*+NHvckrz5-mz zHQCy>^0zAVXH~E-zPtuqwz+c0F-V|u{7&0R<7k{5xfrHtE8@ zScw}DmM%1$DhKc8OKm`OQdq@xfRd6>TwpLOrpUeNuEZG&O`>Ka#^Jii{nPi(PDY{3 zqC^Y$EHu$NuNwp^oDtR+Ee9`Mo|1w4;2vnyX&4nfRP_%!S$epnU!cj&&>pAUl7pco zaDR~0%J!3)rb)OU)Q0)XspN{{0CC(r9 zSu;Oz9Xr{J77oAdUA->u%iL0lDDDB-MhTu#F;5URsH;H#xDF_4n6)WLnZ41KxUZc( z-FWzVD_TIwHcwHtOW-_jtFvw~bV*Ry3?%cc#L`(=mi5F<(IQR*Q07G*oS?<_RGVVk zag7ZD)sxN1yrp691!bmSjyS*ubl+H3YCHjS0sef$Vp1l9-mOhN?Kud60Jll_GAE1
~1w;{-Kx;o~2pisWz%HzX^ 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 YgQR>w+P!buDl(;v5!x{Xfg$bx1%O;U?f?J) literal 0 HcmV?d00001 diff --git a/public/resources/images/cookbooks/component-communication/parent-to-child-on-changes.gif b/public/resources/images/cookbooks/component-communication/parent-to-child-on-changes.gif new file mode 100644 index 0000000000000000000000000000000000000000..4ff7657f5b3a59c04deadc94335c4716e4a9dd4d GIT binary patch literal 22226 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 literal 0 HcmV?d00001 diff --git a/public/resources/images/cookbooks/component-communication/parent-to-child.png b/public/resources/images/cookbooks/component-communication/parent-to-child.png new file mode 100644 index 0000000000000000000000000000000000000000..03b9a19c4a21d4dc701c881fa2740add4d60b9fe GIT binary patch literal 10411 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�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 literal 0 HcmV?d00001 diff --git a/public/resources/images/cookbooks/component-communication/unrelated-service.gif b/public/resources/images/cookbooks/component-communication/unrelated-service.gif new file mode 100644 index 0000000000000000000000000000000000000000..cfa92270e2eb72601bfd24cf3771e49ad2bc5d9c GIT binary patch literal 21830 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 Wl1S{3ZJH6|fHYT0dejUJ9o7J8Wxpo? literal 0 HcmV?d00001