From 71628f18379e525508642600be065d7cc7463a6e Mon Sep 17 00:00:00 2001 From: Vani Date: Tue, 29 May 2018 22:17:59 -0700 Subject: [PATCH] docs(animations): updated animation docs (#24206) PR Close #24206 --- .../animations/e2e/src/app.e2e-spec.ts | 540 ++++++++---------- .../examples/animations/e2e/src/auto.po.ts | 19 + .../animations/e2e/src/enter-leave.po.ts | 19 + .../animations/e2e/src/filter-stagger.po.ts | 20 + .../animations/e2e/src/hero-groups.ts | 19 + .../animations/e2e/src/open-close.po.ts | 33 ++ .../animations/e2e/src/status-slider.po.ts | 28 + .../examples/animations/e2e/src/toggle.po.ts | 25 + .../examples/animations/e2e/src/util.ts | 19 + .../animations/src/app/about.component.css | 0 .../animations/src/app/about.component.html | 3 + .../animations/src/app/about.component.ts | 15 + .../animations/src/app/animations.1.ts | 11 + .../examples/animations/src/app/animations.ts | 74 +++ .../animations/src/app/app.component.1.ts | 35 ++ .../animations/src/app/app.component.css | 7 + .../animations/src/app/app.component.html | 21 + .../animations/src/app/app.component.ts | 47 ++ .../animations/src/app/app.module.1.ts | 13 + .../examples/animations/src/app/app.module.ts | 88 +-- .../src/app/hero-list-auto-page.component.ts | 20 + .../src/app/hero-list-auto.component.html | 9 + .../src/app/hero-list-auto.component.ts | 40 +- .../src/app/hero-list-basic.component.ts | 70 --- ...ero-list-combined-transitions.component.ts | 59 -- .../hero-list-enter-leave-page.component.ts | 20 + .../hero-list-enter-leave-states.component.ts | 63 -- .../app/hero-list-enter-leave.component.ts | 37 +- .../src/app/hero-list-group-page.component.ts | 20 + .../src/app/hero-list-groups.component.ts | 50 +- .../app/hero-list-inline-styles.component.ts | 60 -- .../src/app/hero-list-multistep.component.ts | 71 --- .../src/app/hero-list-page.component.css | 94 +++ .../src/app/hero-list-page.component.html | 19 + .../src/app/hero-list-page.component.ts | 81 +++ .../src/app/hero-list-timings.component.ts | 58 -- .../src/app/hero-list-twoway.component.ts | 58 -- .../src/app/hero-team-builder.component.ts | 99 ---- .../animations/src/app/hero.service.ts | 54 -- .../examples/animations/src/app/hero.ts | 4 + .../animations/src/app/home.component.css | 0 .../animations/src/app/home.component.html | 3 + .../animations/src/app/home.component.ts | 15 + .../src/app/insert-remove.component.css | 12 + .../src/app/insert-remove.component.html | 10 + .../src/app/insert-remove.component.ts | 29 + .../animations/src/app/mock-heroes.ts | 15 + .../src/app/open-close-page.component.ts | 20 + .../src/app/open-close.component.1.html | 10 + .../src/app/open-close.component.1.ts | 40 ++ .../src/app/open-close.component.2.html | 12 + .../src/app/open-close.component.2.ts | 24 + .../src/app/open-close.component.3.html | 15 + .../src/app/open-close.component.3.ts | 48 ++ .../src/app/open-close.component.4.html | 12 + .../src/app/open-close.component.4.ts | 47 ++ .../src/app/open-close.component.css | 12 + .../src/app/open-close.component.html | 13 + .../src/app/open-close.component.ts | 110 ++++ .../src/app/status-slider-page.component.ts | 12 + .../src/app/status-slider.component.css | 13 + .../src/app/status-slider.component.html | 7 + .../src/app/status-slider.component.ts | 52 ++ .../app/toggle-animations-page.component.ts | 13 + .../examples/animations/src/index.html | 5 - .../examples/animations/stackblitz.json | 8 +- aio/content/guide/animations.md | 522 ++++++++--------- .../guide/complex-animation-sequences.md | 104 ++++ aio/content/guide/reusable-animations.md | 40 ++ aio/content/guide/route-animations.md | 139 +++++ aio/content/guide/transition-and-triggers.md | 308 ++++++++++ .../images/guide/animations/keyframes-500.png | Bin 0 -> 25160 bytes .../guide/animations/keyframes-offset-500.png | Bin 0 -> 25120 bytes .../guide/animations/keyframes-pulsation.png | Bin 0 -> 44991 bytes .../images/guide/animations/open-closed.png | Bin 0 -> 32863 bytes .../guide/animations/route-animation.gif | Bin 0 -> 197748 bytes .../animations/triggering-the-animation.png | Bin 0 -> 41425 bytes .../guide/animations/wildcard-3-states.png | Bin 0 -> 56234 bytes .../guide/animations/wildcard-state-500.png | Bin 0 -> 47830 bytes aio/content/navigation.json | 38 +- 80 files changed, 2437 insertions(+), 1293 deletions(-) create mode 100644 aio/content/examples/animations/e2e/src/auto.po.ts create mode 100644 aio/content/examples/animations/e2e/src/enter-leave.po.ts create mode 100644 aio/content/examples/animations/e2e/src/filter-stagger.po.ts create mode 100644 aio/content/examples/animations/e2e/src/hero-groups.ts create mode 100644 aio/content/examples/animations/e2e/src/open-close.po.ts create mode 100644 aio/content/examples/animations/e2e/src/status-slider.po.ts create mode 100644 aio/content/examples/animations/e2e/src/toggle.po.ts create mode 100644 aio/content/examples/animations/e2e/src/util.ts create mode 100644 aio/content/examples/animations/src/app/about.component.css create mode 100644 aio/content/examples/animations/src/app/about.component.html create mode 100644 aio/content/examples/animations/src/app/about.component.ts create mode 100644 aio/content/examples/animations/src/app/animations.1.ts create mode 100644 aio/content/examples/animations/src/app/animations.ts create mode 100644 aio/content/examples/animations/src/app/app.component.1.ts create mode 100644 aio/content/examples/animations/src/app/app.component.css create mode 100644 aio/content/examples/animations/src/app/app.component.html create mode 100644 aio/content/examples/animations/src/app/app.component.ts create mode 100644 aio/content/examples/animations/src/app/app.module.1.ts create mode 100644 aio/content/examples/animations/src/app/hero-list-auto-page.component.ts create mode 100644 aio/content/examples/animations/src/app/hero-list-auto.component.html delete mode 100644 aio/content/examples/animations/src/app/hero-list-basic.component.ts delete mode 100644 aio/content/examples/animations/src/app/hero-list-combined-transitions.component.ts create mode 100644 aio/content/examples/animations/src/app/hero-list-enter-leave-page.component.ts delete mode 100644 aio/content/examples/animations/src/app/hero-list-enter-leave-states.component.ts create mode 100644 aio/content/examples/animations/src/app/hero-list-group-page.component.ts delete mode 100644 aio/content/examples/animations/src/app/hero-list-inline-styles.component.ts delete mode 100644 aio/content/examples/animations/src/app/hero-list-multistep.component.ts create mode 100644 aio/content/examples/animations/src/app/hero-list-page.component.css create mode 100644 aio/content/examples/animations/src/app/hero-list-page.component.html create mode 100644 aio/content/examples/animations/src/app/hero-list-page.component.ts delete mode 100644 aio/content/examples/animations/src/app/hero-list-timings.component.ts delete mode 100644 aio/content/examples/animations/src/app/hero-list-twoway.component.ts delete mode 100644 aio/content/examples/animations/src/app/hero-team-builder.component.ts delete mode 100644 aio/content/examples/animations/src/app/hero.service.ts create mode 100644 aio/content/examples/animations/src/app/hero.ts create mode 100644 aio/content/examples/animations/src/app/home.component.css create mode 100644 aio/content/examples/animations/src/app/home.component.html create mode 100644 aio/content/examples/animations/src/app/home.component.ts create mode 100644 aio/content/examples/animations/src/app/insert-remove.component.css create mode 100644 aio/content/examples/animations/src/app/insert-remove.component.html create mode 100644 aio/content/examples/animations/src/app/insert-remove.component.ts create mode 100644 aio/content/examples/animations/src/app/mock-heroes.ts create mode 100644 aio/content/examples/animations/src/app/open-close-page.component.ts create mode 100644 aio/content/examples/animations/src/app/open-close.component.1.html create mode 100644 aio/content/examples/animations/src/app/open-close.component.1.ts create mode 100644 aio/content/examples/animations/src/app/open-close.component.2.html create mode 100644 aio/content/examples/animations/src/app/open-close.component.2.ts create mode 100644 aio/content/examples/animations/src/app/open-close.component.3.html create mode 100644 aio/content/examples/animations/src/app/open-close.component.3.ts create mode 100644 aio/content/examples/animations/src/app/open-close.component.4.html create mode 100644 aio/content/examples/animations/src/app/open-close.component.4.ts create mode 100644 aio/content/examples/animations/src/app/open-close.component.css create mode 100644 aio/content/examples/animations/src/app/open-close.component.html create mode 100644 aio/content/examples/animations/src/app/open-close.component.ts create mode 100644 aio/content/examples/animations/src/app/status-slider-page.component.ts create mode 100644 aio/content/examples/animations/src/app/status-slider.component.css create mode 100644 aio/content/examples/animations/src/app/status-slider.component.html create mode 100644 aio/content/examples/animations/src/app/status-slider.component.ts create mode 100644 aio/content/examples/animations/src/app/toggle-animations-page.component.ts create mode 100644 aio/content/guide/complex-animation-sequences.md create mode 100644 aio/content/guide/reusable-animations.md create mode 100644 aio/content/guide/route-animations.md create mode 100644 aio/content/guide/transition-and-triggers.md create mode 100644 aio/content/images/guide/animations/keyframes-500.png create mode 100644 aio/content/images/guide/animations/keyframes-offset-500.png create mode 100644 aio/content/images/guide/animations/keyframes-pulsation.png create mode 100644 aio/content/images/guide/animations/open-closed.png create mode 100644 aio/content/images/guide/animations/route-animation.gif create mode 100644 aio/content/images/guide/animations/triggering-the-animation.png create mode 100644 aio/content/images/guide/animations/wildcard-3-states.png create mode 100644 aio/content/images/guide/animations/wildcard-state-500.png diff --git a/aio/content/examples/animations/e2e/src/app.e2e-spec.ts b/aio/content/examples/animations/e2e/src/app.e2e-spec.ts index 524335223d..8632f944a8 100644 --- a/aio/content/examples/animations/e2e/src/app.e2e-spec.ts +++ b/aio/content/examples/animations/e2e/src/app.e2e-spec.ts @@ -1,351 +1,259 @@ 'use strict'; // necessary for es6 output in node -import { browser, element, by, ElementFinder } from 'protractor'; -import { logging, promise } from 'selenium-webdriver'; +import { browser } from 'protractor'; +import { logging } from 'selenium-webdriver'; +import * as openClose from './open-close.po'; +import * as statusSlider from './status-slider.po'; +import * as toggle from './toggle.po'; +import * as enterLeave from './enter-leave.po'; +import * as auto from './auto.po'; +import * as filterStagger from './filter-stagger.po'; +import * as heroGroups from './hero-groups'; +import { getLinkById, sleepFor } from './util'; -/** - * The tests here basically just checking that the end styles - * of each animation are in effect. - * - * Relies on the Angular testability only becoming stable once - * animation(s) have finished. - * - * Ideally we'd use https://developer.mozilla.org/en-US/docs/Web/API/Document/getAnimations - * but they're not supported in Chrome at the moment. The upcoming nganimate polyfill - * may also add some introspection support. - */ describe('Animation Tests', () => { + const openCloseHref = getLinkById('open-close'); + const statusSliderHref = getLinkById('status'); + const toggleHref = getLinkById('toggle'); + const enterLeaveHref = getLinkById('enter-leave'); + const autoHref = getLinkById('auto'); + const filterHref = getLinkById('heroes'); + const heroGroupsHref = getLinkById('hero-groups'); - const INACTIVE_COLOR = 'rgba(238, 238, 238, 1)'; - const ACTIVE_COLOR = 'rgba(207, 216, 220, 1)'; - const NO_TRANSFORM_MATRIX_REGEX = /matrix\(1,\s*0,\s*0,\s*1,\s*0,\s*0\)/; - - beforeEach(() => { + beforeAll(() => { browser.get(''); }); - describe('basic states', () => { + describe('Open/Close Component', () => { - let host: ElementFinder; - - beforeEach(() => { - host = element(by.css('app-hero-list-basic')); + beforeAll(async () => { + await openCloseHref.click(); + sleepFor(); }); - it('animates between active and inactive', () => { - addInactiveHero(); + it('should be open', async () => { + let text = await openClose.getComponentText(); + const toggleButton = openClose.getToggleButton(); + const container = openClose.getComponentContainer(); - let li = host.element(by.css('li')); + if (text.includes('Closed')) { + await toggleButton.click(); + sleepFor(); + } - expect(getScaleX(li)).toBe(1.0); - expect(li.getCssValue('backgroundColor')).toBe(INACTIVE_COLOR); + text = await openClose.getComponentText(); + const containerHeight = await container.getCssValue('height'); - li.click(); - browser.driver.sleep(300); - expect(getScaleX(li)).toBe(1.1); - expect(li.getCssValue('backgroundColor')).toBe(ACTIVE_COLOR); - - li.click(); - browser.driver.sleep(300); - expect(getScaleX(li)).toBe(1.0); - expect(li.getCssValue('backgroundColor')).toBe(INACTIVE_COLOR); + expect(text).toContain('The box is now Open!'); + expect(containerHeight).toBe('200px'); }); - }); + it('should be closed', async () => { + let text = await openClose.getComponentText(); + const toggleButton = openClose.getToggleButton(); + const container = openClose.getComponentContainer(); - describe('styles inline in transitions', () => { + if (text.includes('Open')) { + await toggleButton.click(); + sleepFor(); + } - let host: ElementFinder; + text = await openClose.getComponentText(); + const containerHeight = await container.getCssValue('height'); - beforeEach(function() { - host = element(by.css('app-hero-list-inline-styles')); + expect(text).toContain('The box is now Closed!'); + expect(containerHeight).toBe('100px'); }); - it('are not kept after animation', () => { - addInactiveHero(); + it('should log animation events', async () => { + const toggleButton = openClose.getToggleButton(); + const loggingCheckbox = openClose.getLoggingCheckbox(); + await loggingCheckbox.click(); + await toggleButton.click(); - let li = host.element(by.css('li')); + const logs = await browser.manage().logs().get(logging.Type.BROWSER); - li.click(); - browser.driver.sleep(300); - expect(getScaleX(li)).toBe(1.0); - expect(li.getCssValue('backgroundColor')).toBe(INACTIVE_COLOR); - }); + const animationMessages = logs.filter(({ message }) => message.indexOf('Animation') !== -1 ? true : false); - }); - - describe('combined transition syntax', () => { - - let host: ElementFinder; - - beforeEach(() => { - host = element(by.css('app-hero-list-combined-transitions')); - }); - - it('animates between active and inactive', () => { - addInactiveHero(); - - let li = host.element(by.css('li')); - - expect(getScaleX(li)).toBe(1.0); - expect(li.getCssValue('backgroundColor')).toBe(INACTIVE_COLOR); - - li.click(); - browser.driver.sleep(300); - expect(getScaleX(li)).toBe(1.1); - expect(li.getCssValue('backgroundColor')).toBe(ACTIVE_COLOR); - - li.click(); - browser.driver.sleep(300); - expect(getScaleX(li)).toBe(1.0); - expect(li.getCssValue('backgroundColor')).toBe(INACTIVE_COLOR); - }); - - }); - - describe('two-way transition syntax', () => { - - let host: ElementFinder; - - beforeEach(() => { - host = element(by.css('app-hero-list-twoway')); - }); - - it('animates between active and inactive', () => { - addInactiveHero(); - - let li = host.element(by.css('li')); - - expect(getScaleX(li)).toBe(1.0); - expect(li.getCssValue('backgroundColor')).toBe(INACTIVE_COLOR); - - li.click(); - browser.driver.sleep(300); - expect(getScaleX(li)).toBe(1.1); - expect(li.getCssValue('backgroundColor')).toBe(ACTIVE_COLOR); - - li.click(); - browser.driver.sleep(300); - expect(getScaleX(li)).toBe(1.0); - expect(li.getCssValue('backgroundColor')).toBe(INACTIVE_COLOR); - }); - - }); - - describe('enter & leave', () => { - - let host: ElementFinder; - - beforeEach(() => { - host = element(by.css('app-hero-list-enter-leave')); - }); - - it('adds and removes element', () => { - addInactiveHero(); - - let li = host.element(by.css('li')); - expect(li.getCssValue('transform')).toMatch(NO_TRANSFORM_MATRIX_REGEX); - - removeHero(); - expect(li.isPresent()).toBe(false); - }); - - }); - - describe('enter & leave & states', () => { - - let host: ElementFinder; - - beforeEach(function() { - host = element(by.css('app-hero-list-enter-leave-states')); - }); - - it('adds and removes and animates between active and inactive', () => { - addInactiveHero(); - - let li = host.element(by.css('li')); - - expect(li.getCssValue('transform')).toMatch(NO_TRANSFORM_MATRIX_REGEX); - - li.click(); - browser.driver.sleep(300); - expect(getScaleX(li)).toBe(1.1); - - li.click(); - browser.driver.sleep(300); - expect(li.getCssValue('transform')).toMatch(NO_TRANSFORM_MATRIX_REGEX); - - removeHero(); - expect(li.isPresent()).toBe(false); - }); - - }); - - describe('auto style calc', () => { - - let host: ElementFinder; - - beforeEach(function() { - host = element(by.css('app-hero-list-auto')); - }); - - it('adds and removes element', () => { - addInactiveHero(); - - let li = host.element(by.css('li')); - expect(li.getCssValue('height')).toBe('50px'); - - removeHero(); - expect(li.isPresent()).toBe(false); - }); - - }); - - describe('different timings', () => { - - let host: ElementFinder; - - beforeEach(() => { - host = element(by.css('app-hero-list-timings')); - }); - - it('adds and removes element', () => { - addInactiveHero(); - - let li = host.element(by.css('li')); - expect(li.getCssValue('transform')).toMatch(NO_TRANSFORM_MATRIX_REGEX); - expect(li.getCssValue('opacity')).toMatch('1'); - - removeHero(); - expect(li.isPresent()).toBe(false); - }); - - }); - - describe('multiple keyframes', () => { - - let host: ElementFinder; - - beforeEach(() => { - host = element(by.css('app-hero-list-multistep')); - }); - - it('adds and removes element', () => { - addInactiveHero(); - - let li = host.element(by.css('li')); - expect(li.getCssValue('transform')).toMatch(NO_TRANSFORM_MATRIX_REGEX); - expect(li.getCssValue('opacity')).toMatch('1'); - - removeHero(); - expect(li.isPresent()).toBe(false); - }); - - }); - - describe('parallel groups', () => { - - let host: ElementFinder; - - beforeEach(() => { - host = element(by.css('app-hero-list-groups')); - }); - - it('adds and removes element', () => { - addInactiveHero(); - - let li = host.element(by.css('li')); - expect(li.getCssValue('transform')).toMatch(NO_TRANSFORM_MATRIX_REGEX); - expect(li.getCssValue('opacity')).toMatch('1'); - - removeHero(700); - expect(li.isPresent()).toBe(false); - }); - - }); - - describe('adding active heroes', () => { - - let host: ElementFinder; - - beforeEach(() => { - host = element(by.css('app-hero-list-basic')); - }); - - it('animates between active and inactive', () => { - addActiveHero(); - - let li = host.element(by.css('li')); - - expect(getScaleX(li)).toBe(1.1); - expect(li.getCssValue('backgroundColor')).toBe(ACTIVE_COLOR); - - li.click(); - browser.driver.sleep(300); - expect(getScaleX(li)).toBe(1.0); - expect(li.getCssValue('backgroundColor')).toBe(INACTIVE_COLOR); - - li.click(); - browser.driver.sleep(300); - expect(getScaleX(li)).toBe(1.1); - expect(li.getCssValue('backgroundColor')).toBe(ACTIVE_COLOR); + expect(animationMessages.length).toBeGreaterThan(0); }); }); - describe('callbacks', () => { - it('fires a callback on start and done', () => { - addActiveHero(); - browser.manage().logs().get(logging.Type.BROWSER) - .then((logs: logging.Entry[]) => { - const animationMessages = logs.filter((log) => { - return log.message.indexOf('Animation') !== -1 ? true : false; - }); + describe('Status Slider Component', () => { + const activeColor = 'rgba(255, 165, 0, 1)'; + const inactiveColor = 'rgba(0, 0, 255, 1)'; - expect(animationMessages.length).toBeGreaterThan(0); - }); + beforeAll(async () => { + await statusSliderHref.click(); + sleepFor(2000); + }); + + it('should be inactive with an orange background', async () => { + let text = await statusSlider.getComponentText(); + const toggleButton = statusSlider.getToggleButton(); + const container = statusSlider.getComponentContainer(); + + if (text === 'Active') { + await toggleButton.click(); + sleepFor(2000); + } + + text = await statusSlider.getComponentText(); + const bgColor = await container.getCssValue('backgroundColor'); + + expect(text).toBe('Inactive'); + expect(bgColor).toBe(inactiveColor); + }); + + it('should be active with a blue background', async () => { + let text = await statusSlider.getComponentText(); + const toggleButton = statusSlider.getToggleButton(); + const container = statusSlider.getComponentContainer(); + + if (text === 'Inactive') { + await toggleButton.click(); + sleepFor(2000); + } + + text = await statusSlider.getComponentText(); + const bgColor = await container.getCssValue('backgroundColor'); + + expect(text).toBe('Active'); + expect(bgColor).toBe(activeColor); }); }); - function addActiveHero(sleep?: number) { - sleep = sleep || 500; - element(by.buttonText('Add active hero')).click(); - browser.driver.sleep(sleep); - } - - function addInactiveHero(sleep?: number) { - sleep = sleep || 500; - element(by.buttonText('Add inactive hero')).click(); - browser.driver.sleep(sleep); - } - - function removeHero(sleep?: number) { - sleep = sleep || 500; - element(by.buttonText('Remove hero')).click(); - browser.driver.sleep(sleep); - } - - function getScaleX(el: ElementFinder) { - return Promise.all([ - getBoundingClientWidth(el), - getOffsetWidth(el) - ]).then(function(promiseResolutions) { - let clientWidth = promiseResolutions[0]; - let offsetWidth = promiseResolutions[1]; - return clientWidth / offsetWidth; + describe('Toggle Animations Component', () => { + beforeAll(async () => { + await toggleHref.click(); + sleepFor(); }); - } - function getBoundingClientWidth(el: ElementFinder) { - return browser.executeScript( - 'return arguments[0].getBoundingClientRect().width', - el.getWebElement() - ) as PromiseLike; - } + it('should disabled animations on the child element', async () => { + const toggleButton = toggle.getToggleAnimationsButton(); - function getOffsetWidth(el: ElementFinder) { - return browser.executeScript( - 'return arguments[0].offsetWidth', - el.getWebElement() - ) as PromiseLike; - } + await toggleButton.click(); + + const container = toggle.getComponentContainer(); + const cssClasses = await container.getAttribute('class'); + + expect(cssClasses).toContain('ng-animate-disabled'); + }); + }); + + describe('Enter/Leave Component', () => { + beforeAll(async () => { + await enterLeaveHref.click(); + sleepFor(100); + }); + + it('should attach a flyInOut trigger to the list of items', async () => { + const heroesList = enterLeave.getHeroesList(); + const hero = heroesList.get(0); + const cssClasses = await hero.getAttribute('class'); + const transform = await hero.getCssValue('transform'); + + expect(cssClasses).toContain('ng-trigger-flyInOut'); + expect(transform).toBe('matrix(1, 0, 0, 1, 0, 0)'); + }); + + it('should remove the hero from the list when clicked', async () => { + const heroesList = enterLeave.getHeroesList(); + const total = await heroesList.count(); + const hero = heroesList.get(0); + + await hero.click(); + await sleepFor(100); + const newTotal = await heroesList.count(); + + expect(newTotal).toBeLessThan(total); + }); + }); + + describe('Auto Calculation Component', () => { + beforeAll(async () => { + await autoHref.click(); + sleepFor(0); + }); + + it('should attach a shrinkOut trigger to the list of items', async () => { + const heroesList = auto.getHeroesList(); + const hero = heroesList.get(0); + const cssClasses = await hero.getAttribute('class'); + + expect(cssClasses).toContain('ng-trigger-shrinkOut'); + }); + + it('should remove the hero from the list when clicked', async () => { + const heroesList = auto.getHeroesList(); + const total = await heroesList.count(); + const hero = heroesList.get(0); + + await hero.click(); + await sleepFor(250); + const newTotal = await heroesList.count(); + + expect(newTotal).toBeLessThan(total); + }); + }); + + describe('Filter/Stagger Component', () => { + beforeAll(async () => { + await filterHref.click(); + sleepFor(); + }); + + it('should attach a filterAnimations trigger to the list container', async () => { + const heroesList = filterStagger.getComponentContainer(); + const cssClasses = await heroesList.getAttribute('class'); + + expect(cssClasses).toContain('ng-trigger-filterAnimation'); + }); + + it('should filter down the list when a search is performed', async () => { + const heroesList = filterStagger.getHeroesList(); + const total = await heroesList.count(); + const formInput = filterStagger.getFormInput(); + + await formInput.sendKeys('Mag'); + await sleepFor(500); + const newTotal = await heroesList.count(); + + expect(newTotal).toBeLessThan(total); + expect(newTotal).toBe(2); + }); + }); + + describe('Hero Groups Component', () => { + beforeAll(async () => { + await heroGroupsHref.click(); + sleepFor(300); + }); + + it('should attach a flyInOut trigger to the list of items', async () => { + const heroesList = heroGroups.getHeroesList(); + const hero = heroesList.get(0); + const cssClasses = await hero.getAttribute('class'); + const transform = await hero.getCssValue('transform'); + const opacity = await hero.getCssValue('opacity'); + + expect(cssClasses).toContain('ng-trigger-flyInOut'); + expect(transform).toBe('matrix(1, 0, 0, 1, 0, 0)'); + expect(opacity).toBe('1'); + }); + + it('should remove the hero from the list when clicked', async () => { + const heroesList = heroGroups.getHeroesList(); + const total = await heroesList.count(); + const hero = heroesList.get(0); + + await hero.click(); + await sleepFor(300); + const newTotal = await heroesList.count(); + + expect(newTotal).toBeLessThan(total); + }); + }); }); + + diff --git a/aio/content/examples/animations/e2e/src/auto.po.ts b/aio/content/examples/animations/e2e/src/auto.po.ts new file mode 100644 index 0000000000..fbaa38e85b --- /dev/null +++ b/aio/content/examples/animations/e2e/src/auto.po.ts @@ -0,0 +1,19 @@ +import { by } from 'protractor'; +import { locate } from './util'; + +export function getPage() { + return by.css('app-hero-list-auto-page'); +} + +export function getComponent() { + return by.css('app-hero-list-auto'); +} + +export function getComponentContainer() { + const findContainer = () => by.css('ul'); + return locate(getComponent(), findContainer()); +} + +export function getHeroesList() { + return getComponentContainer().all(by.css('li')); +} diff --git a/aio/content/examples/animations/e2e/src/enter-leave.po.ts b/aio/content/examples/animations/e2e/src/enter-leave.po.ts new file mode 100644 index 0000000000..62ac5858c2 --- /dev/null +++ b/aio/content/examples/animations/e2e/src/enter-leave.po.ts @@ -0,0 +1,19 @@ +import { by } from 'protractor'; +import { locate } from './util'; + +export function getPage() { + return by.css('app-hero-list-enter-leave-page'); +} + +export function getComponent() { + return by.css('app-hero-list-enter-leave'); +} + +export function getComponentContainer() { + const findContainer = () => by.css('ul'); + return locate(getComponent(), findContainer()); +} + +export function getHeroesList() { + return getComponentContainer().all(by.css('li')); +} diff --git a/aio/content/examples/animations/e2e/src/filter-stagger.po.ts b/aio/content/examples/animations/e2e/src/filter-stagger.po.ts new file mode 100644 index 0000000000..235b95483a --- /dev/null +++ b/aio/content/examples/animations/e2e/src/filter-stagger.po.ts @@ -0,0 +1,20 @@ +import { by } from 'protractor'; +import { locate } from './util'; + +export function getPage() { + return by.css('app-hero-list-page'); +} + +export function getComponentContainer() { + const findContainer = () => by.css('ul'); + return locate(getPage(), findContainer()); +} + +export function getHeroesList() { + return getComponentContainer().all(by.css('li')); +} + +export function getFormInput() { + const formInput = () => by.css('form > input'); + return locate(getPage(), formInput()); +} diff --git a/aio/content/examples/animations/e2e/src/hero-groups.ts b/aio/content/examples/animations/e2e/src/hero-groups.ts new file mode 100644 index 0000000000..69700adcc6 --- /dev/null +++ b/aio/content/examples/animations/e2e/src/hero-groups.ts @@ -0,0 +1,19 @@ +import { by } from 'protractor'; +import { locate } from './util'; + +export function getPage() { + return by.css('app-hero-list-groups-page'); +} + +export function getComponent() { + return by.css('app-hero-list-groups'); +} + +export function getComponentContainer() { + const findContainer = () => by.css('ul'); + return locate(getComponent(), findContainer()); +} + +export function getHeroesList() { + return getComponentContainer().all(by.css('li')); +} diff --git a/aio/content/examples/animations/e2e/src/open-close.po.ts b/aio/content/examples/animations/e2e/src/open-close.po.ts new file mode 100644 index 0000000000..cc34558db6 --- /dev/null +++ b/aio/content/examples/animations/e2e/src/open-close.po.ts @@ -0,0 +1,33 @@ +import { by } from 'protractor'; +import { locate } from './util'; + +export function getPage() { + return by.css('app-open-close-page'); +} + +export function getComponent() { + return by.css('app-open-close'); +} + +export function getToggleButton() { + const toggleButton = () => by.buttonText('Toggle Open/Close'); + return locate(getComponent(), toggleButton()); +} + +export function getLoggingCheckbox() { + const loggingCheckbox = () => by.css('section > input[type="checkbox"]'); + return locate(getPage(), loggingCheckbox()); +} + +export function getComponentContainer() { + const findContainer = () => by.css('div'); + return locate(getComponent(), findContainer()); +} + +export async function getComponentText() { + const findContainerText = () => by.css('div'); + const contents = locate(getComponent(), findContainerText()); + const componentText = await contents.getText(); + + return componentText; +} diff --git a/aio/content/examples/animations/e2e/src/status-slider.po.ts b/aio/content/examples/animations/e2e/src/status-slider.po.ts new file mode 100644 index 0000000000..81d0b285cd --- /dev/null +++ b/aio/content/examples/animations/e2e/src/status-slider.po.ts @@ -0,0 +1,28 @@ +import { by } from 'protractor'; +import { locate } from './util'; + +export function getPage() { + return by.css('app-status-slider-page'); +} + +export function getComponent() { + return by.css('app-status-slider'); +} + +export function getToggleButton() { + const toggleButton = () => by.buttonText('Toggle Status'); + return locate(getComponent(), toggleButton()); +} + +export function getComponentContainer() { + const findContainer = () => by.css('div'); + return locate(getComponent(), findContainer()); +} + +export async function getComponentText() { + const findContainerText = () => by.css('div'); + const contents = locate(getComponent(), findContainerText()); + const componentText = await contents.getText(); + + return componentText; +} diff --git a/aio/content/examples/animations/e2e/src/toggle.po.ts b/aio/content/examples/animations/e2e/src/toggle.po.ts new file mode 100644 index 0000000000..28575a55a2 --- /dev/null +++ b/aio/content/examples/animations/e2e/src/toggle.po.ts @@ -0,0 +1,25 @@ +import { by } from 'protractor'; +import { locate } from './util'; + +export function getPage() { + return by.css('app-toggle-animations-child-page'); +} + +export function getComponent() { + return by.css('app-open-close-toggle'); +} + +export function getToggleButton() { + const toggleButton = () => by.buttonText('Toggle Open/Closed'); + return locate(getComponent(), toggleButton()); +} + +export function getToggleAnimationsButton() { + const toggleAnimationsButton = () => by.buttonText('Toggle Animations'); + return locate(getComponent(), toggleAnimationsButton()); +} + +export function getComponentContainer() { + const findContainer = () => by.css('div'); + return locate(getComponent()).all(findContainer()).get(0); +} diff --git a/aio/content/examples/animations/e2e/src/util.ts b/aio/content/examples/animations/e2e/src/util.ts new file mode 100644 index 0000000000..b6c0ef1be7 --- /dev/null +++ b/aio/content/examples/animations/e2e/src/util.ts @@ -0,0 +1,19 @@ +import { Locator, ElementFinder, browser, by, element } from 'protractor'; + +/** + * + * locate(finder1, finder2) => element(finder1).element(finder2).element(finderN); + */ +export function locate(locator: Locator, ...locators: Locator[]) { + return locators.reduce((current: ElementFinder, next: Locator) => { + return current.element(next); + }, element(locator)) as ElementFinder; +} + +export async function sleepFor(time = 1000) { + return await browser.sleep(time); +} + +export function getLinkById(id: string) { + return element(by.css(`a[id=${id}]`)); +} diff --git a/aio/content/examples/animations/src/app/about.component.css b/aio/content/examples/animations/src/app/about.component.css new file mode 100644 index 0000000000..e69de29bb2 diff --git a/aio/content/examples/animations/src/app/about.component.html b/aio/content/examples/animations/src/app/about.component.html new file mode 100644 index 0000000000..6ef2412703 --- /dev/null +++ b/aio/content/examples/animations/src/app/about.component.html @@ -0,0 +1,3 @@ +

+ Angular's animations library makes it easy to define and apply animation effects such as page and list transitions. +

diff --git a/aio/content/examples/animations/src/app/about.component.ts b/aio/content/examples/animations/src/app/about.component.ts new file mode 100644 index 0000000000..d8a4231199 --- /dev/null +++ b/aio/content/examples/animations/src/app/about.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-about', + templateUrl: './about.component.html', + styleUrls: ['./about.component.css'] +}) +export class AboutComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/aio/content/examples/animations/src/app/animations.1.ts b/aio/content/examples/animations/src/app/animations.1.ts new file mode 100644 index 0000000000..ae7558f53d --- /dev/null +++ b/aio/content/examples/animations/src/app/animations.1.ts @@ -0,0 +1,11 @@ +// #docregion +import { animation, style, animate } from '@angular/animations'; + +export const transAnimation = animation([ + style({ + height: '{{ height }}', + opacity: '{{ opacity }}', + backgroundColor: '{{ backgroundColor }}' + }), + animate('{{ time }}') +]); diff --git a/aio/content/examples/animations/src/app/animations.ts b/aio/content/examples/animations/src/app/animations.ts new file mode 100644 index 0000000000..d525647354 --- /dev/null +++ b/aio/content/examples/animations/src/app/animations.ts @@ -0,0 +1,74 @@ +// #docregion reusable +import { + animation, trigger, animateChild, group, + transition, animate, style, query +} from '@angular/animations'; + +export const transAnimation = animation([ + style({ + height: '{{ height }}', + opacity: '{{ opacity }}', + backgroundColor: '{{ backgroundColor }}' + }), + animate('{{ time }}') +]); +// #enddocregion reusable + +// Routable animations +// #docregion route-animations +export const slideInAnimation = +// #docregion style-view + trigger('routeAnimations', [ + transition('HomePage <=> AboutPage', [ + style({ position: 'relative' }), + query(':enter, :leave', [ + style({ + position: 'absolute', + top: 0, + left: 0, + width: '100%' + }) + ]), +// #enddocregion style-view +// #docregion query + query(':enter', [ + style({ left: '-100%'}) + ]), + query(':leave', animateChild()), + group([ + query(':leave', [ + animate('300ms ease-out', style({ left: '100%'})) + ]), + query(':enter', [ + animate('300ms ease-out', style({ left: '0%'})) + ]) + ]), + query(':enter', animateChild()), + ]), + transition('* <=> FilterPage', [ + style({ position: 'relative' }), + query(':enter, :leave', [ + style({ + position: 'absolute', + top: 0, + left: 0, + width: '100%' + }) + ]), + query(':enter', [ + style({ left: '-100%'}) + ]), + query(':leave', animateChild()), + group([ + query(':leave', [ + animate('200ms ease-out', style({ left: '100%'})) + ]), + query(':enter', [ + animate('300ms ease-out', style({ left: '0%'})) + ]) + ]), + query(':enter', animateChild()), + ]) + // #enddocregion query + ]); + // #enddocregion route-animations diff --git a/aio/content/examples/animations/src/app/app.component.1.ts b/aio/content/examples/animations/src/app/app.component.1.ts new file mode 100644 index 0000000000..39e2022dad --- /dev/null +++ b/aio/content/examples/animations/src/app/app.component.1.ts @@ -0,0 +1,35 @@ +// #docplaster +// #docregion imports +import { Component, HostBinding } from '@angular/core'; +import { + trigger, + state, + style, + animate, + transition, + // ... +} from '@angular/animations'; + +// #enddocregion imports + +// #docregion decorator, toggle-app-animations +@Component({ + selector: 'app-root', + templateUrl: 'app.component.html', + styleUrls: ['app.component.css'], + animations: [ + // animation triggers go here + ] +}) +// #enddocregion decorator +export class AppComponent { + @HostBinding('@.disabled') + public animationsDisabled = false; +// #enddocregion toggle-app-animations + + toggleAnimations() { + this.animationsDisabled = !this.animationsDisabled; + } +// #docregion toggle-app-animations +} +// #enddocregion toggle-app-animations diff --git a/aio/content/examples/animations/src/app/app.component.css b/aio/content/examples/animations/src/app/app.component.css new file mode 100644 index 0000000000..04d8866ac2 --- /dev/null +++ b/aio/content/examples/animations/src/app/app.component.css @@ -0,0 +1,7 @@ +:host { + display: block; +} + +section { + margin-top: 100px; +} diff --git a/aio/content/examples/animations/src/app/app.component.html b/aio/content/examples/animations/src/app/app.component.html new file mode 100644 index 0000000000..c2d1188f70 --- /dev/null +++ b/aio/content/examples/animations/src/app/app.component.html @@ -0,0 +1,21 @@ +

Animations

+ +Toggle All Animations + + + + +
+ +
+ \ No newline at end of file diff --git a/aio/content/examples/animations/src/app/app.component.ts b/aio/content/examples/animations/src/app/app.component.ts new file mode 100644 index 0000000000..4a0b559939 --- /dev/null +++ b/aio/content/examples/animations/src/app/app.component.ts @@ -0,0 +1,47 @@ +// #docplaster +// #docregion imports +import { Component, HostBinding } from '@angular/core'; +import { + trigger, + state, + style, + animate, + transition, + // ... +} from '@angular/animations'; + +// #enddocregion imports +import { RouterOutlet } from '@angular/router'; +import { slideInAnimation } from './animations'; + +// #docregion decorator, toggle-app-animations, define +@Component({ + selector: 'app-root', + templateUrl: 'app.component.html', + styleUrls: ['app.component.css'], + animations: [ +// #enddocregion decorator + slideInAnimation +// #docregion decorator + // animation triggers go here + ] +}) +// #enddocregion decorator, define +export class AppComponent { + @HostBinding('@.disabled') + public animationsDisabled = false; +// #enddocregion toggle-app-animations + +// #docregion prepare-router-outlet + prepareRoute(outlet: RouterOutlet) { + return outlet && outlet.activatedRouteData && outlet.activatedRouteData['animation']; + } + +// #enddocregion prepare-router-outlet + + toggleAnimations() { + this.animationsDisabled = !this.animationsDisabled; + } +// #docregion toggle-app-animations +} +// #enddocregion toggle-app-animations diff --git a/aio/content/examples/animations/src/app/app.module.1.ts b/aio/content/examples/animations/src/app/app.module.1.ts new file mode 100644 index 0000000000..d2ba898f78 --- /dev/null +++ b/aio/content/examples/animations/src/app/app.module.1.ts @@ -0,0 +1,13 @@ +import { NgModule } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; + +@NgModule({ + imports: [ + BrowserModule, + BrowserAnimationsModule + ], + declarations: [ ], + bootstrap: [ ] +}) +export class AppModule { } diff --git a/aio/content/examples/animations/src/app/app.module.ts b/aio/content/examples/animations/src/app/app.module.ts index b1ac87cca2..8109d6269b 100644 --- a/aio/content/examples/animations/src/app/app.module.ts +++ b/aio/content/examples/animations/src/app/app.module.ts @@ -1,43 +1,63 @@ -// #docplaster +// #docregion route-animation-data import { NgModule } from '@angular/core'; -// #docregion animations-module import { BrowserModule } from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; -// #enddocregion animations-module - -import { HeroTeamBuilderComponent } from './hero-team-builder.component'; -import { HeroListBasicComponent } from './hero-list-basic.component'; -import { HeroListInlineStylesComponent } from './hero-list-inline-styles.component'; -import { HeroListEnterLeaveComponent } from './hero-list-enter-leave.component'; -import { HeroListEnterLeaveStatesComponent } from './hero-list-enter-leave-states.component'; -import { HeroListCombinedTransitionsComponent } from './hero-list-combined-transitions.component'; -import { HeroListTwowayComponent } from './hero-list-twoway.component'; -import { HeroListAutoComponent } from './hero-list-auto.component'; +import { RouterModule } from '@angular/router'; +import { AppComponent } from './app.component'; +import { OpenCloseComponent } from './open-close.component'; +import { OpenClosePageComponent } from './open-close-page.component'; +import { OpenCloseChildComponent } from './open-close.component.4'; +import { ToggleAnimationsPageComponent } from './toggle-animations-page.component'; +import { StatusSliderComponent } from './status-slider.component'; +import { StatusSliderPageComponent } from './status-slider-page.component'; +import { HeroListPageComponent } from './hero-list-page.component'; +import { HeroListGroupPageComponent } from './hero-list-group-page.component'; import { HeroListGroupsComponent } from './hero-list-groups.component'; -import { HeroListMultistepComponent } from './hero-list-multistep.component'; -import { HeroListTimingsComponent } from './hero-list-timings.component'; -// #docregion animations-module +import { HeroListEnterLeavePageComponent } from './hero-list-enter-leave-page.component'; +import { HeroListEnterLeaveComponent } from './hero-list-enter-leave.component'; +import { HeroListAutoCalcPageComponent } from './hero-list-auto-page.component'; +import { HeroListAutoComponent } from './hero-list-auto.component'; +import { HomeComponent } from './home.component'; +import { AboutComponent } from './about.component'; + @NgModule({ - imports: [ BrowserModule, BrowserAnimationsModule ], - // ... more stuff ... -// #enddocregion animations-module - declarations: [ - HeroTeamBuilderComponent, - HeroListBasicComponent, - HeroListInlineStylesComponent, - HeroListCombinedTransitionsComponent, - HeroListTwowayComponent, - HeroListEnterLeaveComponent, - HeroListEnterLeaveStatesComponent, - HeroListAutoComponent, - HeroListTimingsComponent, - HeroListMultistepComponent, - HeroListGroupsComponent + imports: [ + BrowserModule, + BrowserAnimationsModule, + RouterModule.forRoot([ + { path: '', pathMatch: 'full', redirectTo: '/enter-leave' }, + { path: 'open-close', component: OpenClosePageComponent }, + { path: 'status', component: StatusSliderPageComponent }, + { path: 'toggle', component: ToggleAnimationsPageComponent }, + { path: 'heroes', component: HeroListPageComponent, data: {animation: 'FilterPage'} }, + { path: 'hero-groups', component: HeroListGroupPageComponent }, + { path: 'enter-leave', component: HeroListEnterLeavePageComponent }, + { path: 'auto', component: HeroListAutoCalcPageComponent }, + { path: 'home', component: HomeComponent, data: {animation: 'HomePage'} }, + { path: 'about', component: AboutComponent, data: {animation: 'AboutPage'} }, + + ]) ], - bootstrap: [ HeroTeamBuilderComponent ] -// #docregion animations-module + // #enddocregion route-animation-data + declarations: [ + AppComponent, + StatusSliderComponent, + OpenCloseComponent, + OpenCloseChildComponent, + OpenClosePageComponent, + StatusSliderPageComponent, + ToggleAnimationsPageComponent, + HeroListPageComponent, + HeroListGroupsComponent, + HeroListGroupPageComponent, + HeroListEnterLeavePageComponent, + HeroListEnterLeaveComponent, + HeroListAutoCalcPageComponent, + HeroListAutoComponent, + HomeComponent, + AboutComponent + ], + bootstrap: [AppComponent] }) export class AppModule { } -// #enddocregion animations-module - diff --git a/aio/content/examples/animations/src/app/hero-list-auto-page.component.ts b/aio/content/examples/animations/src/app/hero-list-auto-page.component.ts new file mode 100644 index 0000000000..78f17da64b --- /dev/null +++ b/aio/content/examples/animations/src/app/hero-list-auto-page.component.ts @@ -0,0 +1,20 @@ +import { Component } from '@angular/core'; +import { HEROES } from './mock-heroes'; + +@Component({ + selector: 'app-hero-list-auto-page', + template: ` +
+

Automatic Calculation

+ + +
+ ` +}) +export class HeroListAutoCalcPageComponent { + heroes = HEROES.slice(); + + onRemove(id: number) { + this.heroes = this.heroes.filter(hero => hero.id !== id); + } +} diff --git a/aio/content/examples/animations/src/app/hero-list-auto.component.html b/aio/content/examples/animations/src/app/hero-list-auto.component.html new file mode 100644 index 0000000000..bb99794f0c --- /dev/null +++ b/aio/content/examples/animations/src/app/hero-list-auto.component.html @@ -0,0 +1,9 @@ +
    +
  • +
    + {{ hero.id }} + {{ hero.name }} +
    +
  • +
\ No newline at end of file diff --git a/aio/content/examples/animations/src/app/hero-list-auto.component.ts b/aio/content/examples/animations/src/app/hero-list-auto.component.ts index 97a5ff99de..a4489bafd0 100644 --- a/aio/content/examples/animations/src/app/hero-list-auto.component.ts +++ b/aio/content/examples/animations/src/app/hero-list-auto.component.ts @@ -1,6 +1,8 @@ import { Component, - Input + Input, + Output, + EventEmitter } from '@angular/core'; import { trigger, @@ -10,38 +12,30 @@ import { transition } from '@angular/animations'; -import { Hero } from './hero.service'; +import { Hero } from './hero'; @Component({ selector: 'app-hero-list-auto', - // #docregion template - template: ` -
    -
  • - {{hero.name}} -
  • -
- `, - // #enddocregion template - styleUrls: ['./hero-list.component.css'], - - /* When the element leaves (transition "in => void" occurs), - * get the element's current computed height and animate - * it down to 0. - */ - // #docregion animationdef + templateUrl: 'hero-list-auto.component.html', + styleUrls: ['./hero-list-page.component.css'], + // #docregion auto-calc animations: [ trigger('shrinkOut', [ - state('in', style({height: '*'})), + state('in', style({ height: '*' })), transition('* => void', [ - style({height: '*'}), - animate(250, style({height: 0})) + style({ height: '*' }), + animate(250, style({ height: 0 })) ]) ]) ] - // #enddocregion animationdef + // #enddocregion auto-calc }) export class HeroListAutoComponent { @Input() heroes: Hero[]; + + @Output() remove = new EventEmitter(); + + removeHero(id: number) { + this.remove.emit(id); + } } diff --git a/aio/content/examples/animations/src/app/hero-list-basic.component.ts b/aio/content/examples/animations/src/app/hero-list-basic.component.ts deleted file mode 100644 index ce23628d6f..0000000000 --- a/aio/content/examples/animations/src/app/hero-list-basic.component.ts +++ /dev/null @@ -1,70 +0,0 @@ -// #docplaster -// #docregion -// #docregion imports -import { - Component, - Input -} from '@angular/core'; -import { - trigger, - state, - style, - animate, - transition -} from '@angular/animations'; -// #enddocregion imports - -import { Hero } from './hero.service'; - -@Component({ - selector: 'app-hero-list-basic', - // #enddocregion - /* The click event calls hero.toggleState(), which - * causes the state of that hero to switch from - * active to inactive or vice versa. - */ - // #docregion - // #docregion template - template: ` -
    -
  • - {{hero.name}} -
  • -
- `, - // #enddocregion template - styleUrls: ['./hero-list.component.css'], - // #enddocregion - /** - * Define two states, "inactive" and "active", and the end - * styles that apply whenever the element is in those states. - * Then define animations for transitioning between the states, - * one in each direction - */ - // #docregion - // #docregion animationdef - animations: [ - trigger('heroState', [ - // #docregion states - state('inactive', style({ - backgroundColor: '#eee', - transform: 'scale(1)' - })), - state('active', style({ - backgroundColor: '#cfd8dc', - transform: 'scale(1.1)' - })), - // #enddocregion states - // #docregion transitions - transition('inactive => active', animate('100ms ease-in')), - transition('active => inactive', animate('100ms ease-out')) - // #enddocregion transitions - ]) - ] - // #enddocregion animationdef -}) -export class HeroListBasicComponent { - @Input() heroes: Hero[]; -} diff --git a/aio/content/examples/animations/src/app/hero-list-combined-transitions.component.ts b/aio/content/examples/animations/src/app/hero-list-combined-transitions.component.ts deleted file mode 100644 index 2811254c81..0000000000 --- a/aio/content/examples/animations/src/app/hero-list-combined-transitions.component.ts +++ /dev/null @@ -1,59 +0,0 @@ -// #docregion -// #docregion imports -import { - Component, - Input -} from '@angular/core'; -import { - trigger, - state, - style, - animate, - transition -} from '@angular/animations'; -// #enddocregion imports - -import { Hero } from './hero.service'; - -@Component({ - selector: 'app-hero-list-combined-transitions', - // #docregion template - template: ` -
    -
  • - {{hero.name}} -
  • -
- `, - // #enddocregion template - styleUrls: ['./hero-list.component.css'], - /* - * Define two states, "inactive" and "active", and the end - * styles that apply whenever the element is in those states. - * Then define an animated transition between these two - * states, in *both* directions. - */ - // #docregion animationdef - animations: [ - trigger('heroState', [ - state('inactive', style({ - backgroundColor: '#eee', - transform: 'scale(1)' - })), - state('active', style({ - backgroundColor: '#cfd8dc', - transform: 'scale(1.1)' - })), - // #docregion transitions - transition('inactive => active, active => inactive', - animate('100ms ease-out')) - // #enddocregion transitions - ]) - ] - // #enddocregion animationdef -}) -export class HeroListCombinedTransitionsComponent { - @Input() heroes: Hero[]; -} diff --git a/aio/content/examples/animations/src/app/hero-list-enter-leave-page.component.ts b/aio/content/examples/animations/src/app/hero-list-enter-leave-page.component.ts new file mode 100644 index 0000000000..ea81624527 --- /dev/null +++ b/aio/content/examples/animations/src/app/hero-list-enter-leave-page.component.ts @@ -0,0 +1,20 @@ +import { Component } from '@angular/core'; +import { HEROES } from './mock-heroes'; + +@Component({ + selector: 'app-hero-list-enter-leave-page', + template: ` +
+

Enter/Leave

+ + +
+ ` +}) +export class HeroListEnterLeavePageComponent { + heroes = HEROES.slice(); + + onRemove(id: number) { + this.heroes = this.heroes.filter(hero => hero.id !== id); + } +} diff --git a/aio/content/examples/animations/src/app/hero-list-enter-leave-states.component.ts b/aio/content/examples/animations/src/app/hero-list-enter-leave-states.component.ts deleted file mode 100644 index 291234dab9..0000000000 --- a/aio/content/examples/animations/src/app/hero-list-enter-leave-states.component.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { - Component, - Input -} from '@angular/core'; -import { - trigger, - state, - style, - animate, - transition -} from '@angular/animations'; - -import { Hero } from './hero.service'; - -@Component({ - selector: 'app-hero-list-enter-leave-states', - // #docregion template - template: ` -
    -
  • - {{hero.name}} -
  • -
- `, - // #enddocregion template - styleUrls: ['./hero-list.component.css'], - /* The elements here have two possible states based - * on the hero state, "active", or "inactive". We animate - * six transitions: Between the two states in both directions, - * and between each state and void. With this we can animate - * the enter and leave of elements differently based on which - * state they are in when they are added and removed. - */ - // #docregion animationdef - animations: [ - trigger('heroState', [ - state('inactive', style({transform: 'translateX(0) scale(1)'})), - state('active', style({transform: 'translateX(0) scale(1.1)'})), - transition('inactive => active', animate('100ms ease-in')), - transition('active => inactive', animate('100ms ease-out')), - transition('void => inactive', [ - style({transform: 'translateX(-100%) scale(1)'}), - animate(100) - ]), - transition('inactive => void', [ - animate(100, style({transform: 'translateX(100%) scale(1)'})) - ]), - transition('void => active', [ - style({transform: 'translateX(0) scale(0)'}), - animate(200) - ]), - transition('active => void', [ - animate(200, style({transform: 'translateX(0) scale(0)'})) - ]) - ]) - ] - // #enddocregion animationdef -}) -export class HeroListEnterLeaveStatesComponent { - @Input() heroes: Hero[]; -} diff --git a/aio/content/examples/animations/src/app/hero-list-enter-leave.component.ts b/aio/content/examples/animations/src/app/hero-list-enter-leave.component.ts index 0a888698c3..164adb8ab9 100644 --- a/aio/content/examples/animations/src/app/hero-list-enter-leave.component.ts +++ b/aio/content/examples/animations/src/app/hero-list-enter-leave.component.ts @@ -1,6 +1,8 @@ import { Component, - Input + Input, + Output, + EventEmitter } from '@angular/core'; import { trigger, @@ -10,42 +12,45 @@ import { transition } from '@angular/animations'; -import { Hero } from './hero.service'; +import { Hero } from './hero'; @Component({ selector: 'app-hero-list-enter-leave', // #docregion template template: ` -
    +
    • - {{hero.name}} + [@flyInOut]="'in'" (click)="removeHero(hero.id)"> +
      + {{ hero.id }} + {{ hero.name }} +
    `, // #enddocregion template - styleUrls: ['./hero-list.component.css'], - /* The element here always has the state "in" when it - * is present. We animate two transitions: From void - * to in and from in to void, to achieve an animated - * enter and leave transition. The element enters from - * the left and leaves to the right using translateX. - */ + styleUrls: ['./hero-list-page.component.css'], // #docregion animationdef animations: [ trigger('flyInOut', [ - state('in', style({transform: 'translateX(0)'})), + state('in', style({ transform: 'translateX(0)' })), transition('void => *', [ - style({transform: 'translateX(-100%)'}), + style({ transform: 'translateX(-100%)' }), animate(100) ]), transition('* => void', [ - animate(100, style({transform: 'translateX(100%)'})) + animate(100, style({ transform: 'translateX(100%)' })) ]) ]) ] // #enddocregion animationdef }) export class HeroListEnterLeaveComponent { - @Input() heroes: Hero[]; + @Input() heroes: Hero[]; + + @Output() remove = new EventEmitter(); + + removeHero(id: number) { + this.remove.emit(id); + } } diff --git a/aio/content/examples/animations/src/app/hero-list-group-page.component.ts b/aio/content/examples/animations/src/app/hero-list-group-page.component.ts new file mode 100644 index 0000000000..b400126ff0 --- /dev/null +++ b/aio/content/examples/animations/src/app/hero-list-group-page.component.ts @@ -0,0 +1,20 @@ +import { Component } from '@angular/core'; +import { HEROES } from './mock-heroes'; + +@Component({ + selector: 'app-hero-list-groups-page', + template: ` +
    +

    Hero List Group

    + + +
    + ` +}) +export class HeroListGroupPageComponent { + heroes = HEROES.slice(); + + onRemove(id: number) { + this.heroes = this.heroes.filter(hero => hero.id !== id); + } +} diff --git a/aio/content/examples/animations/src/app/hero-list-groups.component.ts b/aio/content/examples/animations/src/app/hero-list-groups.component.ts index d17b47d213..2893b91e81 100644 --- a/aio/content/examples/animations/src/app/hero-list-groups.component.ts +++ b/aio/content/examples/animations/src/app/hero-list-groups.component.ts @@ -1,6 +1,8 @@ import { Component, - Input + Input, + Output, + EventEmitter } from '@angular/core'; import { trigger, @@ -11,45 +13,31 @@ import { group } from '@angular/animations'; -import { Hero } from './hero.service'; +import { Hero } from './hero'; @Component({ selector: 'app-hero-list-groups', template: ` -
      +
      • - {{hero.name}} + [@flyInOut]="'in'" (click)="removeHero(hero.id)"> +
        + {{ hero.id }} + {{ hero.name }} +
      `, - styleUrls: ['./hero-list.component.css'], - styles: [` - li { - padding: 0 !important; - text-align: center; - } - `], - /* The element here always has the state "in" when it - * is present. We animate two transitions: From void - * to in and from in to void, to achieve an animated - * enter and leave transition. - * - * The transitions have *parallel group* that allow - * animating several properties at the same time but - * with different timing configurations. On enter - * (void => *) we start the opacity animation 0.1s - * earlier than the translation/width animation. - * On leave (* => void) we do the opposite - - * the translation/width animation begins immediately - * and the opacity animation 0.1s later. - */ + styleUrls: ['./hero-list-page.component.css'], // #docregion animationdef animations: [ trigger('flyInOut', [ - state('in', style({width: 120, transform: 'translateX(0)', opacity: 1})), + state('in', style({ + width: 120, + transform: 'translateX(0)', opacity: 1 + })), transition('void => *', [ - style({width: 10, transform: 'translateX(50px)', opacity: 0}), + style({ width: 10, transform: 'translateX(50px)', opacity: 0 }), group([ animate('0.3s 0.1s ease', style({ transform: 'translateX(0)', @@ -77,4 +65,10 @@ import { Hero } from './hero.service'; }) export class HeroListGroupsComponent { @Input() heroes: Hero[]; + + @Output() remove = new EventEmitter(); + + removeHero(id: number) { + this.remove.emit(id); + } } diff --git a/aio/content/examples/animations/src/app/hero-list-inline-styles.component.ts b/aio/content/examples/animations/src/app/hero-list-inline-styles.component.ts deleted file mode 100644 index 43fe2b7ce3..0000000000 --- a/aio/content/examples/animations/src/app/hero-list-inline-styles.component.ts +++ /dev/null @@ -1,60 +0,0 @@ -// #docregion -// #docregion imports -import { - Component, - Input, -} from '@angular/core'; -import { - trigger, - style, - animate, - transition -} from '@angular/animations'; -// #enddocregion imports - -import { Hero } from './hero.service'; - -@Component({ - selector: 'app-hero-list-inline-styles', - // #docregion template - template: ` -
        -
      • - {{hero.name}} -
      • -
      - `, - // #enddocregion template - styleUrls: ['./hero-list.component.css'], - /** - * Define two states, "inactive" and "active", and the end - * styles that apply whenever the element is in those states. - * Then define an animation for the inactive => active transition. - * This animation has no end styles, but only styles that are - * defined inline inside the transition and thus are only kept - * as long as the animation is running. - */ - // #docregion animationdef - animations: [ - trigger('heroState', [ - // #docregion transitions - transition('inactive => active', [ - style({ - backgroundColor: '#cfd8dc', - transform: 'scale(1.3)' - }), - animate('80ms ease-in', style({ - backgroundColor: '#eee', - transform: 'scale(1)' - })) - ]), - // #enddocregion transitions - ]) - ] - // #enddocregion animationdef -}) -export class HeroListInlineStylesComponent { - @Input() heroes: Hero[]; -} diff --git a/aio/content/examples/animations/src/app/hero-list-multistep.component.ts b/aio/content/examples/animations/src/app/hero-list-multistep.component.ts deleted file mode 100644 index 7e77bff1a4..0000000000 --- a/aio/content/examples/animations/src/app/hero-list-multistep.component.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { - Component, - Input, -} from '@angular/core'; -import { - trigger, - state, - style, - animate, - transition, - keyframes, - AnimationEvent -} from '@angular/animations'; - -import { Hero } from './hero.service'; - -@Component({ - selector: 'app-hero-list-multistep', - // #docregion template - template: ` -
        -
      • - {{hero.name}} -
      • -
      - `, - // #enddocregion template - styleUrls: ['./hero-list.component.css'], - /* The element here always has the state "in" when it - * is present. We animate two transitions: From void - * to in and from in to void, to achieve an animated - * enter and leave transition. Each transition is - * defined in terms of multiple keyframes, to give it - * a bounce effect. - */ - // #docregion animationdef - animations: [ - trigger('flyInOut', [ - state('in', style({transform: 'translateX(0)'})), - transition('void => *', [ - animate(300, keyframes([ - style({opacity: 0, transform: 'translateX(-100%)', offset: 0}), - style({opacity: 1, transform: 'translateX(15px)', offset: 0.3}), - style({opacity: 1, transform: 'translateX(0)', offset: 1.0}) - ])) - ]), - transition('* => void', [ - animate(300, keyframes([ - style({opacity: 1, transform: 'translateX(0)', offset: 0}), - style({opacity: 1, transform: 'translateX(-15px)', offset: 0.7}), - style({opacity: 0, transform: 'translateX(100%)', offset: 1.0}) - ])) - ]) - ]) - ] - // #enddocregion animationdef -}) -export class HeroListMultistepComponent { - @Input() heroes: Hero[]; - - animationStarted(event: AnimationEvent) { - console.warn('Animation started: ', event); - } - - animationDone(event: AnimationEvent) { - console.warn('Animation done: ', event); - } -} diff --git a/aio/content/examples/animations/src/app/hero-list-page.component.css b/aio/content/examples/animations/src/app/hero-list-page.component.css new file mode 100644 index 0000000000..67a3fb0c9c --- /dev/null +++ b/aio/content/examples/animations/src/app/hero-list-page.component.css @@ -0,0 +1,94 @@ +.heroes { + margin: 0 0 2em 0; + list-style-type: none; + padding: 0; + width: 15em; +} + +.heroes li { + position: relative; + height: 2.3em; + overflow:hidden; + margin: .5em; +} + +.heroes li > .inner { + cursor: pointer; + background-color: #EEE; + padding: .3em 0; + height: 1.6em; + border-radius: 4px; + width: 19em; +} + +.heroes li:hover > .inner { + color: #607D8B; + background-color: #DDD; + transform: translateX(.1em); +} + +.heroes a { + color: #888; + text-decoration: none; + position: relative; + display: block; + width: 250px; +} + +.heroes a:hover { + color:#607D8B; +} + +.heroes .badge { + display: inline-block; + font-size: small; + color: white; + padding: 0.8em 0.7em 0 0.7em; + background-color: #607D8B; + line-height: 1em; + position: relative; + left: -1px; + top: -4px; + height: 1.8em; + min-width: 16px; + text-align: right; + margin-right: .8em; + border-radius: 4px 0 0 4px; +} + +.button { + background-color: #eee; + border: none; + padding: 5px 10px; + border-radius: 4px; + cursor: pointer; + cursor: hand; + font-family: Arial; +} + +button:hover { + background-color: #cfd8dc; +} + +button.delete { + position: relative; + left: 24em; + top: -32px; + background-color: gray !important; + color: white; + display: inherit; + padding: 5px 8px; + width: 2em; +} + +input { + font-size: 100%; + margin-bottom: 2px; + width: 11em; +} + +.heroes input { + position: relative; + top: -3px; + width: 12em; +} diff --git a/aio/content/examples/animations/src/app/hero-list-page.component.html b/aio/content/examples/animations/src/app/hero-list-page.component.html new file mode 100644 index 0000000000..9e07b62581 --- /dev/null +++ b/aio/content/examples/animations/src/app/hero-list-page.component.html @@ -0,0 +1,19 @@ + +

      Filter/Stagger

      + +
      + +
      + + +
        + +
      • +
        + {{ hero.id }} + {{ hero.name }} +
        +
      • + +
      + \ No newline at end of file diff --git a/aio/content/examples/animations/src/app/hero-list-page.component.ts b/aio/content/examples/animations/src/app/hero-list-page.component.ts new file mode 100644 index 0000000000..746c195d19 --- /dev/null +++ b/aio/content/examples/animations/src/app/hero-list-page.component.ts @@ -0,0 +1,81 @@ +// #docplaster +import { Component, HostBinding, OnInit } from '@angular/core'; +import { trigger, transition, animate, style, query, stagger } from '@angular/animations'; +import { HEROES } from './mock-heroes'; + +// #docregion filter-animations +@Component({ +// #enddocregion filter-animations + selector: 'app-hero-list-page', + templateUrl: 'hero-list-page.component.html', + styleUrls: ['hero-list-page.component.css'], +// #docregion page-animations, filter-animations + animations: [ +// #enddocregion filter-animations + trigger('pageAnimations', [ + transition(':enter', [ + query('.hero, form', [ + style({opacity: 0, transform: 'translateY(-100px)'}), + stagger(-30, [ + animate('500ms cubic-bezier(0.35, 0, 0.25, 1)', style({ opacity: 1, transform: 'none' })) + ]) + ]) + ]) + ]), +// #enddocregion page-animations +// #docregion increment +// #docregion filter-animations + trigger('filterAnimation', [ + transition(':enter, * => 0, * => -1', []), + transition(':increment', [ + query(':enter', [ + style({ opacity: 0, width: '0px' }), + stagger(50, [ + animate('300ms ease-out', style({ opacity: 1, width: '*' })), + ]), + ], { optional: true }) + ]), + transition(':decrement', [ + query(':leave', [ + stagger(50, [ + animate('300ms ease-out', style({ opacity: 0, width: '0px' })), + ]), + ]) + ]), + ]), + // #enddocregion increment +// #docregion page-animations + ] +}) +export class HeroListPageComponent implements OnInit { +// #enddocregion filter-animations + @HostBinding('@pageAnimations') + public animatePage = true; + + _heroes = []; +// #docregion filter-animations + heroTotal = -1; +// #enddocregion filter-animations + get heroes() { + return this._heroes; + } + + ngOnInit() { + this._heroes = HEROES; + } + + updateCriteria(criteria: string) { + criteria = criteria ? criteria.trim() : ''; + + this._heroes = HEROES.filter(hero => hero.name.toLowerCase().includes(criteria.toLowerCase())); + const newTotal = this.heroes.length; + + if (this.heroTotal !== newTotal) { + this.heroTotal = newTotal; + } else if (!criteria) { + this.heroTotal = -1; + } + } +// #docregion filter-animations +} +// #enddocregion filter-animations diff --git a/aio/content/examples/animations/src/app/hero-list-timings.component.ts b/aio/content/examples/animations/src/app/hero-list-timings.component.ts deleted file mode 100644 index b410c22cb9..0000000000 --- a/aio/content/examples/animations/src/app/hero-list-timings.component.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { - Component, - Input -} from '@angular/core'; -import { - trigger, - state, - style, - animate, - transition -} from '@angular/animations'; - -import { Hero } from './hero.service'; - -@Component({ - selector: 'app-hero-list-timings', - template: ` -
        -
      • - {{hero.name}} -
      • -
      - `, - styleUrls: ['./hero-list.component.css'], - /* The element here always has the state "in" when it - * is present. We animate two transitions: From void - * to in and from in to void, to achieve an animated - * enter and leave transition. The element enters from - * the left and leaves to the right using translateX, - * and fades in/out using opacity. We use different easings - * for enter and leave. - */ - // #docregion animationdef - animations: [ - trigger('flyInOut', [ - state('in', style({opacity: 1, transform: 'translateX(0)'})), - transition('void => *', [ - style({ - opacity: 0, - transform: 'translateX(-100%)' - }), - animate('0.2s ease-in') - ]), - transition('* => void', [ - animate('0.2s 0.1s ease-out', style({ - opacity: 0, - transform: 'translateX(100%)' - })) - ]) - ]) - ] - // #enddocregion animationdef -}) -export class HeroListTimingsComponent { - @Input() heroes: Hero[]; -} diff --git a/aio/content/examples/animations/src/app/hero-list-twoway.component.ts b/aio/content/examples/animations/src/app/hero-list-twoway.component.ts deleted file mode 100644 index ef0be5fce7..0000000000 --- a/aio/content/examples/animations/src/app/hero-list-twoway.component.ts +++ /dev/null @@ -1,58 +0,0 @@ -// #docregion -// #docregion imports -import { - Component, - Input -} from '@angular/core'; -import { - trigger, - state, - style, - animate, - transition -} from '@angular/animations'; -// #enddocregion imports - -import { Hero } from './hero.service'; - -@Component({ - selector: 'app-hero-list-twoway', - // #docregion template - template: ` -
        -
      • - {{hero.name}} -
      • -
      - `, - // #enddocregion template - styleUrls: ['./hero-list.component.css'], - /* - * Define two states, "inactive" and "active", and the end - * styles that apply whenever the element is in those states. - * Then define an animated transition between these two - * states, in *both* directions. - */ - // #docregion animationdef - animations: [ - trigger('heroState', [ - state('inactive', style({ - backgroundColor: '#eee', - transform: 'scale(1)' - })), - state('active', style({ - backgroundColor: '#cfd8dc', - transform: 'scale(1.1)' - })), - // #docregion transitions - transition('inactive <=> active', animate('100ms ease-out')) - // #enddocregion transitions - ]) - ] - // #enddocregion animationdef -}) -export class HeroListTwowayComponent { - @Input() heroes: Hero[]; -} diff --git a/aio/content/examples/animations/src/app/hero-team-builder.component.ts b/aio/content/examples/animations/src/app/hero-team-builder.component.ts deleted file mode 100644 index 8a1904ea4f..0000000000 --- a/aio/content/examples/animations/src/app/hero-team-builder.component.ts +++ /dev/null @@ -1,99 +0,0 @@ -import { Component } from '@angular/core'; - -import { Hero, HeroService } from './hero.service'; - -@Component({ - selector: 'app-root', - template: ` -
      - - - -
      - -
      -
      -

      Basic State

      -

      Switch between active/inactive on click.

      - -
      -
      -

      Styles inline in transitions

      -

      Animated effect on click, no persistend end styles.

      - -
      -
      -

      Combined transition syntax

      -

      Switch between active/inactive on click. Define just one transition used in both directions.

      - -
      -
      -

      Two-way transition syntax

      -

      Switch between active/inactive on click. Define just one transition used in both directions using the <=> syntax.

      - -
      -
      -

      Enter & Leave

      -

      Enter and leave animations using the void state.

      - -
      -
      -
      -
      -

      Enter & Leave & States

      -

      - Enter and leave animations combined with active/inactive state animations. - Different enter and leave transitions depending on state. -

      - -
      -
      -

      Auto Style Calc

      -

      Leave animation from the current computed height using the auto-style value *.

      - -
      -
      -

      Different Timings

      -

      Enter and leave animations with different easings, ease-in for enter, ease-out for leave.

      - -
      -
      -

      Multiple Keyframes

      -

      Enter and leave animations with three keyframes in each, to give the transition some bounce.

      - -
      -
      -

      Parallel Groups

      -

      Enter and leave animations with multiple properties animated in parallel with different timings.

      - -
      -
      - `, - styles: [` - .buttons { - text-align: center; - } - button { - padding: 1.5em 3em; - } - .columns { - display: flex; - flex-direction: row; - } - .column { - flex: 1; - padding: 10px; - } - .column p { - min-height: 6em; - } - `], - providers: [HeroService] -}) -export class HeroTeamBuilderComponent { - heroes: Hero[]; - - constructor(private heroService: HeroService) { - this.heroes = heroService.heroes; - } -} diff --git a/aio/content/examples/animations/src/app/hero.service.ts b/aio/content/examples/animations/src/app/hero.service.ts deleted file mode 100644 index c0053d0185..0000000000 --- a/aio/content/examples/animations/src/app/hero.service.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Injectable } from '@angular/core'; - -// #docregion hero -export class Hero { - constructor(public name: string, public state = 'inactive') { } - - toggleState() { - this.state = this.state === 'active' ? 'inactive' : 'active'; - } -} -// #enddocregion hero - -const ALL_HEROES = [ - 'Windstorm', - 'RubberMan', - 'Bombasto', - 'Magneta', - 'Dynama', - 'Narco', - 'Celeritas', - 'Dr IQ', - 'Magma', - 'Tornado', - 'Mr. Nice' -].map(name => new Hero(name)); - -@Injectable() -export class HeroService { - - heroes: Hero[] = []; - - canAdd() { - return this.heroes.length < ALL_HEROES.length; - } - - canRemove() { - return this.heroes.length > 0; - } - - addActive(active = true) { - let hero = ALL_HEROES[this.heroes.length]; - hero.state = active ? 'active' : 'inactive'; - this.heroes.push(hero); - } - - addInactive() { - this.addActive(false); - } - - remove() { - this.heroes.length -= 1; - } - -} diff --git a/aio/content/examples/animations/src/app/hero.ts b/aio/content/examples/animations/src/app/hero.ts new file mode 100644 index 0000000000..e3eac516da --- /dev/null +++ b/aio/content/examples/animations/src/app/hero.ts @@ -0,0 +1,4 @@ +export class Hero { + id: number; + name: string; +} diff --git a/aio/content/examples/animations/src/app/home.component.css b/aio/content/examples/animations/src/app/home.component.css new file mode 100644 index 0000000000..e69de29bb2 diff --git a/aio/content/examples/animations/src/app/home.component.html b/aio/content/examples/animations/src/app/home.component.html new file mode 100644 index 0000000000..0fb44758d8 --- /dev/null +++ b/aio/content/examples/animations/src/app/home.component.html @@ -0,0 +1,3 @@ +

      + Welcome to Animations in Angular! +

      diff --git a/aio/content/examples/animations/src/app/home.component.ts b/aio/content/examples/animations/src/app/home.component.ts new file mode 100644 index 0000000000..33fd77077e --- /dev/null +++ b/aio/content/examples/animations/src/app/home.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-home', + templateUrl: './home.component.html', + styleUrls: ['./home.component.css'] +}) +export class HomeComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/aio/content/examples/animations/src/app/insert-remove.component.css b/aio/content/examples/animations/src/app/insert-remove.component.css new file mode 100644 index 0000000000..bc0cb127de --- /dev/null +++ b/aio/content/examples/animations/src/app/insert-remove.component.css @@ -0,0 +1,12 @@ +:host { + display: block; +} + +.insert-remove-container { + border: 1px solid #dddddd; + margin-top: 1em; + padding: 20px 20px 0px 20px; + color: #000000; + font-weight: bold; + font-size: 20px; +} diff --git a/aio/content/examples/animations/src/app/insert-remove.component.html b/aio/content/examples/animations/src/app/insert-remove.component.html new file mode 100644 index 0000000000..f40238dbea --- /dev/null +++ b/aio/content/examples/animations/src/app/insert-remove.component.html @@ -0,0 +1,10 @@ + + + + +
      +

      The box is inserted

      +
      + diff --git a/aio/content/examples/animations/src/app/insert-remove.component.ts b/aio/content/examples/animations/src/app/insert-remove.component.ts new file mode 100644 index 0000000000..596f8e7168 --- /dev/null +++ b/aio/content/examples/animations/src/app/insert-remove.component.ts @@ -0,0 +1,29 @@ +// #docplaster +import { Component } from '@angular/core'; +import { trigger, transition, animate, style } from '@angular/animations'; + +@Component({ + selector: 'app-insert-remove', + animations: [ +// #docregion enter-leave-trigger + trigger('myInsertRemoveTrigger', [ + transition(':enter', [ + style({ opacity: 0 }), + animate('5s', style({ opacity: 1 })), + ]), + transition(':leave', [ + animate('5s', style({ opacity: 0 })) + ]) + ]), +// #enddocregion enter-leave-trigger + ], + templateUrl: 'insert-remove.component.html', + styleUrls: ['insert-remove.component.css'] +}) +export class InsertRemoveComponent { + isShown = false; + + toggle() { + this.isShown = !this.isShown; + } +} diff --git a/aio/content/examples/animations/src/app/mock-heroes.ts b/aio/content/examples/animations/src/app/mock-heroes.ts new file mode 100644 index 0000000000..1771a7103b --- /dev/null +++ b/aio/content/examples/animations/src/app/mock-heroes.ts @@ -0,0 +1,15 @@ +// #docregion +import { Hero } from './hero'; + +export const HEROES: Hero[] = [ + { id: 11, name: 'Mr. Nice' }, + { id: 12, name: 'Narco' }, + { id: 13, name: 'Bombasto' }, + { id: 14, name: 'Celeritas' }, + { id: 15, name: 'Magneta' }, + { id: 16, name: 'RubberMan' }, + { id: 17, name: 'Dynama' }, + { id: 18, name: 'Dr IQ' }, + { id: 19, name: 'Magma' }, + { id: 20, name: 'Tornado' } +]; diff --git a/aio/content/examples/animations/src/app/open-close-page.component.ts b/aio/content/examples/animations/src/app/open-close-page.component.ts new file mode 100644 index 0000000000..72bc45caf6 --- /dev/null +++ b/aio/content/examples/animations/src/app/open-close-page.component.ts @@ -0,0 +1,20 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-open-close-page', + template: ` +
      +

      Open Close Component

      + Console Log Animation Events + + +
      + ` +}) +export class OpenClosePageComponent { + logging = false; + + toggleLogging() { + this.logging = !this.logging; + } +} diff --git a/aio/content/examples/animations/src/app/open-close.component.1.html b/aio/content/examples/animations/src/app/open-close.component.1.html new file mode 100644 index 0000000000..4edd5000fa --- /dev/null +++ b/aio/content/examples/animations/src/app/open-close.component.1.html @@ -0,0 +1,10 @@ + + + + +
      +

      The box is now {{ isOpen ? 'Open' : 'Closed' }}!

      +
      + diff --git a/aio/content/examples/animations/src/app/open-close.component.1.ts b/aio/content/examples/animations/src/app/open-close.component.1.ts new file mode 100644 index 0000000000..77e33258ea --- /dev/null +++ b/aio/content/examples/animations/src/app/open-close.component.1.ts @@ -0,0 +1,40 @@ +import { Component } from '@angular/core'; +import { trigger, transition, state, animate, style, keyframes } from '@angular/animations'; + +@Component({ + selector: 'app-open-close', + animations: [ +// #docregion trigger + trigger('openClose', [ + state('open', style({ + height: '200px', + opacity: 1, + backgroundColor: 'yellow' + })), + state('close', style({ + height: '100px', + opacity: 0.5, + backgroundColor: 'green' + })), + // ... + transition('* => *', [ + animate('1s', keyframes ( [ + style({ opacity: 0.1, offset: 0.1 }), + style({ opacity: 0.6, offset: 0.2 }), + style({ opacity: 1, offset: 0.5 }), + style({ opacity: 0.2, offset: 0.7 }) + ])) + ]) + ]) +// #enddocregion trigger + ], + templateUrl: 'open-close.component.html', + styleUrls: ['open-close.component.css'] +}) +export class OpenCloseKeyframeComponent { + isOpen = false; + + toggle() { + this.isOpen = !this.isOpen; + } +} diff --git a/aio/content/examples/animations/src/app/open-close.component.2.html b/aio/content/examples/animations/src/app/open-close.component.2.html new file mode 100644 index 0000000000..2b1e1cd70c --- /dev/null +++ b/aio/content/examples/animations/src/app/open-close.component.2.html @@ -0,0 +1,12 @@ + + + + +
      + +

      The box is now {{ isOpen ? 'Open' : 'Closed' }}!

      + +
      + diff --git a/aio/content/examples/animations/src/app/open-close.component.2.ts b/aio/content/examples/animations/src/app/open-close.component.2.ts new file mode 100644 index 0000000000..5f13d0d838 --- /dev/null +++ b/aio/content/examples/animations/src/app/open-close.component.2.ts @@ -0,0 +1,24 @@ +import { Component } from '@angular/core'; +import { trigger, transition, state, animate, style } from '@angular/animations'; + +@Component({ + selector: 'app-open-close-boolean', +// #docregion trigger-boolean + animations: [ + trigger('openClose', [ + state('true', style({ height: '*' })), + state('false', style({ height: '0px' })), + transition('false <=> true', animate(500)) + ]) + ], +// #enddocregion trigger-boolean + templateUrl: 'open-close.component.2.html', + styleUrls: ['open-close.component.css'] +}) +export class OpenCloseBooleanComponent { + isOpen = false; + + toggle() { + this.isOpen = !this.isOpen; + } +} diff --git a/aio/content/examples/animations/src/app/open-close.component.3.html b/aio/content/examples/animations/src/app/open-close.component.3.html new file mode 100644 index 0000000000..4097a6034e --- /dev/null +++ b/aio/content/examples/animations/src/app/open-close.component.3.html @@ -0,0 +1,15 @@ + + + + +
      + +

      The box is now {{ isOpen ? 'Open' : 'Closed' }}!

      + +
      + diff --git a/aio/content/examples/animations/src/app/open-close.component.3.ts b/aio/content/examples/animations/src/app/open-close.component.3.ts new file mode 100644 index 0000000000..ddd6f09f2b --- /dev/null +++ b/aio/content/examples/animations/src/app/open-close.component.3.ts @@ -0,0 +1,48 @@ +// #docplaster +// #docregion reusable +import { Component } from '@angular/core'; +import { useAnimation, transition, trigger, style, animate } from '@angular/animations'; +import { transAnimation } from './animations'; + +@Component({ +// #enddocregion reusable + selector: 'app-open-close-reusable', +// #docregion runtime + animations: [ + transition('open => closed', [ + style({ + height: '200 px', + opacity: '{{ opacity }}', + backgroundcolor: 'yelow' + }), + animate('{{ time }}'), + ], { + params: { + time: '1s', + opacity: '1' + } + }), +// #enddocregion runtime +// #docregion reusable + trigger('openClose', [ + transition('open => closed', [ + useAnimation(transAnimation, { + params: { + height: 0, + opacity: 1, + backgroundColor: 'red', + time: '1s' + } + }) + ]) + ]) +// #docregion runtime + ], +// #enddocregion runtime +// #enddocregion reusable + templateUrl: 'open-close.component.html', + styleUrls: ['open-close.component.css'] +// #docregion reusable +}) +// #enddocregion reusable +export class OpenCloseReusableComponent { } diff --git a/aio/content/examples/animations/src/app/open-close.component.4.html b/aio/content/examples/animations/src/app/open-close.component.4.html new file mode 100644 index 0000000000..36efb2be57 --- /dev/null +++ b/aio/content/examples/animations/src/app/open-close.component.4.html @@ -0,0 +1,12 @@ + + +
      +
      +

      The box is now {{ isOpen ? 'Open' : 'Closed' }}!

      +
      +
      + \ No newline at end of file diff --git a/aio/content/examples/animations/src/app/open-close.component.4.ts b/aio/content/examples/animations/src/app/open-close.component.4.ts new file mode 100644 index 0000000000..8d03512faf --- /dev/null +++ b/aio/content/examples/animations/src/app/open-close.component.4.ts @@ -0,0 +1,47 @@ +// #docplaster +// #docregion +import { Component } from '@angular/core'; +import { trigger, transition, state, animate, style } from '@angular/animations'; + +// #docregion toggle-animation +@Component({ +// #enddocregion toggle-animation + selector: 'app-open-close-toggle', + templateUrl: 'open-close.component.4.html', + styleUrls: ['open-close.component.css'], + // #docregion toggle-animation + animations: [ + trigger('childAnimation', [ + // ... +// #enddocregion toggle-animation + state('open', style({ + width: '250px', + opacity: 1, + backgroundColor: 'yellow' + })), + state('closed', style({ + width: '100px', + opacity: 0.5, + backgroundColor: 'green' + })), + transition('* => *', [ + animate('1s') + ]), +// #docregion toggle-animation + ]), + ], +}) +export class OpenCloseChildComponent { + isDisabled = false; + isOpen = false; +// #enddocregion toggle-animation + toggleAnimations() { + this.isDisabled = !this.isDisabled; + } + + toggle() { + this.isOpen = !this.isOpen; + } +// #docregion toggle-animation +} +// #enddocregion toggle-animation diff --git a/aio/content/examples/animations/src/app/open-close.component.css b/aio/content/examples/animations/src/app/open-close.component.css new file mode 100644 index 0000000000..0ba9d678f8 --- /dev/null +++ b/aio/content/examples/animations/src/app/open-close.component.css @@ -0,0 +1,12 @@ +:host { + display: block; +} + +.open-close-container { + border: 1px solid #dddddd; + margin-top: 1em; + padding: 20px 20px 0px 20px; + color: #000000; + font-weight: bold; + font-size: 20px; +} diff --git a/aio/content/examples/animations/src/app/open-close.component.html b/aio/content/examples/animations/src/app/open-close.component.html new file mode 100644 index 0000000000..b58a2e812d --- /dev/null +++ b/aio/content/examples/animations/src/app/open-close.component.html @@ -0,0 +1,13 @@ + + + + +
      +

      The box is now {{ isOpen ? 'Open' : 'Closed' }}!

      +
      + diff --git a/aio/content/examples/animations/src/app/open-close.component.ts b/aio/content/examples/animations/src/app/open-close.component.ts new file mode 100644 index 0000000000..f5ca38e47f --- /dev/null +++ b/aio/content/examples/animations/src/app/open-close.component.ts @@ -0,0 +1,110 @@ +// #docplaster +import { Component, Input } from '@angular/core'; +import { trigger, transition, state, animate, style, AnimationEvent } from '@angular/animations'; + +// #docregion component, events1 +@Component({ + selector: 'app-open-close', +// #docregion trigger, trigger-wildcard1, trigger-transition + animations: [ + trigger('openClose', [ +// #enddocregion events1 +// #docregion state1, events1 + // ... +// #enddocregion events1 + state('open', style({ + height: '200px', + opacity: 1, + backgroundColor: 'yellow' + })), +// #enddocregion state1 +// #docregion state2 + state('closed', style({ + height: '100px', + opacity: 0.5, + backgroundColor: 'green' + })), +// #enddocregion state2, trigger-wildcard1 +// #docregion transition1 + transition('open => closed', [ + animate('1s') + ]), +// #enddocregion transition1 +// #docregion transition2 + transition('closed => open', [ + animate('0.5s') + ]), +// #enddocregion trigger, component +// #enddocregion transition2 +// #docregion trigger-wildcard1 + transition('* => closed', [ + animate('1s') + ]), + transition('* => open', [ + animate('0.5s') + ]), +// #enddocregion trigger-wildcard1 +// #docregion trigger-wildcard2 + transition('open <=> closed', [ + animate('0.5s') + ]), +// #enddocregion trigger-wildcard2 +// #docregion transition4 + transition ('* => open', [ + animate ('1s', + style ({ opacity: '*' }), + ), + ]), +// #enddocregion transition4 +// #docregion transition3 + transition('* => *', [ + animate('1s') + ]), +// #enddocregion transition3, trigger-transition +// #docregion trigger, component, trigger-wildcard1, events1 + ]), + ], +// #enddocregion trigger, trigger-wildcard1 + templateUrl: 'open-close.component.html', + styleUrls: ['open-close.component.css'] +}) +// #docregion events +export class OpenCloseComponent { +// #enddocregion events1, events + isOpen = true; + + toggle() { + this.isOpen = !this.isOpen; + } + +// #enddocregion component + @Input() logging = false; +// #docregion events1, events + onAnimationEvent ( event: AnimationEvent ) { +// #enddocregion events1, events + if (!this.logging) { + return; + } +// #docregion events + // openClose is trigger name in this example + console.warn(`Animation Trigger: ${event.triggerName}`); + + // phaseName is start or done + console.warn(`Phase: ${event.phaseName}`); + + // in our example, totalTime is 1000 or 1 second + console.warn(`Total time: ${event.totalTime}`); + + // in our example, fromState is either open or closed + console.warn(`From: ${event.fromState}`); + + // in our example, toState either open or closed + console.warn(`To: ${event.toState}`); + + // the HTML element itself, the button in this case + console.warn(`Element: ${event.element}`); +// #docregion events1 + } +// #docregion component +} +// #enddocregion component diff --git a/aio/content/examples/animations/src/app/status-slider-page.component.ts b/aio/content/examples/animations/src/app/status-slider-page.component.ts new file mode 100644 index 0000000000..93f60e254d --- /dev/null +++ b/aio/content/examples/animations/src/app/status-slider-page.component.ts @@ -0,0 +1,12 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-status-slider-page', + template: ` +
      +

      Status Slider

      + +
      + ` +}) +export class StatusSliderPageComponent {} diff --git a/aio/content/examples/animations/src/app/status-slider.component.css b/aio/content/examples/animations/src/app/status-slider.component.css new file mode 100644 index 0000000000..b29dcd2113 --- /dev/null +++ b/aio/content/examples/animations/src/app/status-slider.component.css @@ -0,0 +1,13 @@ +:host { + display: block; +} + +.box { + width: 300px; + border: 5px solid black; + display: block; + line-height: 300px; + text-align: center; + font-size: 50px; + color: white; +} diff --git a/aio/content/examples/animations/src/app/status-slider.component.html b/aio/content/examples/animations/src/app/status-slider.component.html new file mode 100644 index 0000000000..bf6d092889 --- /dev/null +++ b/aio/content/examples/animations/src/app/status-slider.component.html @@ -0,0 +1,7 @@ + + +
      + {{ status == 'active' ? 'Active' : 'Inactive' }} +
      diff --git a/aio/content/examples/animations/src/app/status-slider.component.ts b/aio/content/examples/animations/src/app/status-slider.component.ts new file mode 100644 index 0000000000..fa39b9e688 --- /dev/null +++ b/aio/content/examples/animations/src/app/status-slider.component.ts @@ -0,0 +1,52 @@ +import { Component } from '@angular/core'; +import { trigger, transition, state, animate, style, keyframes } from '@angular/animations'; + +@Component({ + selector: 'app-status-slider', + templateUrl: 'status-slider.component.html', + styleUrls: ['status-slider.component.css'], + animations: [ + trigger('slideStatus', [ + state('inactive', style({ backgroundColor: 'blue' })), + state('active', style({ backgroundColor: 'orange' })), + +// #docregion keyframesWithOffsets + transition('* => active', [ + animate('2s', keyframes([ + style({ backgroundColor: 'blue', offset: 0}), + style({ backgroundColor: 'red', offset: 0.8}), + style({ backgroundColor: 'orange', offset: 1.0}) + ])), + ]), + transition('* => inactive', [ + animate('2s', keyframes([ + style({ backgroundColor: 'orange', offset: 0}), + style({ backgroundColor: 'red', offset: 0.2}), + style({ backgroundColor: 'blue', offset: 1.0}) + ])) + ]), +// #enddocregion keyframesWithOffsets + +// #docregion keyframes + transition('* => active', [ + animate('2s', keyframes([ + style({ backgroundColor: 'blue' }), + style({ backgroundColor: 'red' }), + style({ backgroundColor: 'orange' }) + ])) +// #enddocregion keyframes + ]), + ]) + ] +}) +export class StatusSliderComponent { + status: 'active' | 'inactive' = 'inactive'; + + toggle() { + if (this.status === 'active') { + this.status = 'inactive'; + } else { + this.status = 'active'; + } + } +} diff --git a/aio/content/examples/animations/src/app/toggle-animations-page.component.ts b/aio/content/examples/animations/src/app/toggle-animations-page.component.ts new file mode 100644 index 0000000000..443960155e --- /dev/null +++ b/aio/content/examples/animations/src/app/toggle-animations-page.component.ts @@ -0,0 +1,13 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-toggle-animations-child-page', + template: ` +
      +

      Toggle Animations

      + + +
      + ` +}) +export class ToggleAnimationsPageComponent {} diff --git a/aio/content/examples/animations/src/index.html b/aio/content/examples/animations/src/index.html index fcd0ca2a3c..c1078687e7 100644 --- a/aio/content/examples/animations/src/index.html +++ b/aio/content/examples/animations/src/index.html @@ -8,12 +8,7 @@ -

      External H1 Title for E2E test

      - -
        -
      • External list for E2E test
      • -
      diff --git a/aio/content/examples/animations/stackblitz.json b/aio/content/examples/animations/stackblitz.json index 4fface319e..bc7b0bc2f1 100644 --- a/aio/content/examples/animations/stackblitz.json +++ b/aio/content/examples/animations/stackblitz.json @@ -1,7 +1,9 @@ { - "description": "Angular Animations", + "description": "Angular Animations Guide", "files":[ "!**/*.d.ts", - "!**/*.js" - ] + "!**/*.js", + "!**/*.[1,2,3].*" + ], + "tags": ["animations"] } diff --git a/aio/content/guide/animations.md b/aio/content/guide/animations.md index b214696d0a..b92e922066 100644 --- a/aio/content/guide/animations.md +++ b/aio/content/guide/animations.md @@ -1,354 +1,334 @@ -# Animations +# Introduction to Angular animations -Motion is an important aspect in the design of modern web applications. Good -user interfaces transition smoothly between states with engaging animations -that call attention where it's needed. Well-designed animations can make a UI not only -more fun but also easier to use. +Animation provides the illusion of motion: HTML elements change styling over time. Well-designed animations can make your application more fun and easier to use, but they aren't just cosmetic. Animations can improve your app and user experience in a number of ways: -## Overview +* Without animations, web page transitions can seem abrupt and jarring. -Angular's animation system lets you build animations that run with the same kind of native -performance found in pure CSS animations. You can also tightly integrate your -animation logic with the rest of your application code, for ease of control. +* Motion greatly enhances the user experience, so animations give users a chance to detect the application's response to their actions. -
      +* Good animations intuitively call the user's attention to where it is needed. -Angular animations are built on top of the standard [Web Animations API](https://w3c.github.io/web-animations/) -and run natively on [browsers that support it](http://caniuse.com/#feat=web-animation). +Typically, animations involve multiple style *transformations* over time. An HTML element can move, change color, grow or shrink, fade, or slide off the page. These changes can occur simultaneously or sequentially. You can control the timing of each transformation. -As of Angular 6, If the Web Animations API is not supported natively by the browser, then Angular will use CSS -keyframes as a fallback instead (automatically). This means that the polyfill is no longer required unless any -code uses [AnimationBuilder](/api/animations/AnimationBuilder). If your code does use AnimationBuilder, then -uncomment the `web-animations-js` polyfill from the `polyfills.ts` file generated by Angular CLI. -
      +Angular's animation system is built on CSS functionality, which means you can animate any property that the browser considers animatable. This includes positions, sizes, transforms, colors, borders, and more. The W3C maintains a list of animatable properties on its [CSS Transitions](https://www.w3.org/TR/css-transitions-1/) page. -
      -The examples in this page are available as a . +## About this guide -
      +This guide covers the basic Angular animation features to get you started on adding Angular animations to your project. -## Setup +The features described in this guide — and the more advanced features described in the related Angular animations guides — are demonstrated in an example app available as a . -Before you can add animations to your application, you need -to import a few animation-specific modules and functions to the root application module. +#### Prerequisites - +The guide assumes that you're familiar with building basic Angular apps, as described in the following sections: -#### Example basics +* [Tutorial](tutorial) +* [Architecture Overview](guide/architecture) -The animations examples in this guide animate a list of heroes. -A `Hero` class has a `name` property, a `state` property that indicates if the hero is active or not, -and a `toggleState()` method to switch between the states. +## Getting started - +The main Angular modules for animations are `@angular/animations` and `@angular/platform-browser`. When you create a new project using the CLI, these dependencies are automatically added to your project. -Across the top of the screen (`app.hero-team-builder.component.ts`) -are a series of buttons that add and remove heroes from the list (via the `HeroService`). -The buttons trigger changes to the list that all of the example components see at the same time. +To get started with adding Angular animations to your project, import the animation-specific modules along with standard Angular functionality. -{@a example-transitioning-between-states} +### Step 1: Enabling the animations module -## Transitioning between two states +Import `BrowserAnimationsModule`, which introduces the animation capabilities into your Angular root application module. -A simple transition animation - -You can build a simple animation that transitions an element between two states -driven by a model attribute. - - -Animations can be defined inside `@Component` metadata. - - - -With these, you can define an *animation trigger* called `heroState` in the component -metadata. It uses animations to transition between two states: `active` and `inactive`. When a -hero is active, the element appears in a slightly larger size and lighter color. - - - -
      - -In this example, you are defining animation styles (color and transform) inline in the -animation metadata. - -
      - -Now, using the `[@triggerName]` syntax, attach the animation that you just defined to -one or more elements in the component's template. - - - -Here, the animation trigger applies to every element repeated by an `ngFor`. Each of -the repeated elements animates independently. The value of the -attribute is bound to the expression `hero.state` and is always either `active` or `inactive`. - -With this setup, an animated transition appears whenever a hero object changes state. -Here's the full component implementation: - - - -## States and transitions - -Angular animations are defined as logical **states** and **transitions** -between states. - -An animation state is a string value that you define in your application code. In the example -above, the states `'active'` and `'inactive'` are based on the logical state of -hero objects. The source of the state can be a simple object attribute, as it was in this case, -or it can be a value computed in a method. The important thing is that you can read it into the -component's template. - -You can define *styles* for each animation state: - - - -These `state` definitions specify the *end styles* of each state. -They are applied to the element once it has transitioned to that state, and stay -*as long as it remains in that state*. In effect, you're defining what styles the element has in different states. - -After you define states, you can define *transitions* between the states. Each transition -controls the timing of switching between one set of styles and the next: - - - -
      - In Angular animations you define states and transitions between states -
      - -If several transitions have the same timing configuration, you can combine -them into the same `transition` definition: - - - -When both directions of a transition have the same timing, as in the previous -example, you can use the shorthand syntax `<=>`: - - - -You can also apply a style during an animation but not keep it around -after the animation finishes. You can define such styles inline, in the `transition`. In this example, -the element receives one set of styles immediately and is then animated to the next. -When the transition finishes, none of these styles are kept because they're not -defined in a `state`. - - - -### The wildcard state `*` - -The `*` ("wildcard") state matches *any* animation state. This is useful for defining styles and -transitions that apply regardless of which state the animation is in. For example: - -* The `active => *` transition applies when the element's state changes from `active` to anything else. -* The `* => *` transition applies when *any* change between two states takes place. - -
      - The wildcard state can be used to match many different transitions at once -
      - -### The `void` state - -The special state called `void` can apply to any animation. It applies -when the element is *not* attached to a view, perhaps because it has not yet been -added or because it has been removed. The `void` state is useful for defining enter and -leave animations. - -For example the `* => void` transition applies when the element leaves the view, -regardless of what state it was in before it left. - -
      - The void state can be used for enter and leave transitions -
      - -The wildcard state `*` also matches `void`. - -## Example: Entering and leaving - -Enter and leave animations - -Using the `void` and `*` states you can define transitions that animate the -entering and leaving of elements: - -* Enter: `void => *` -* Leave: `* => void` - -For example, in the `animations` array below there are two transitions that use -the `void => *` and `* => void` syntax to animate the element in and out of the view. - - - -Note that in this case the styles are applied to the void state directly in the -transition definitions, and not in a separate `state(void)` definition. Thus, the transforms -are different on enter and leave: the element enters from the left -and leaves to the right. - -
      - -These two common animations have their own aliases: - - - transition(':enter', [ ... ]); // void => * - transition(':leave', [ ... ]); // * => void + +
      + +**Note:** When you use the CLI to create your app, the root application module `app.module.ts` is placed in the `src/app` folder.
      -## Example: Entering and leaving from different states +### Step 2: Importing animation functions into component files -Enter and leave animations combined with state animations +If you plan to use specific animation functions in component files, import those functions from `@angular/animations`. -You can also combine this animation with the earlier state transition animation by -using the hero state as the animation state. This lets you configure -different transitions for entering and leaving based on what the state of the hero -is: + + -* Inactive hero enter: `void => inactive` -* Active hero enter: `void => active` -* Inactive hero leave: `inactive => void` -* Active hero leave: `active => void` +
      -This gives you fine-grained control over each transition: +**Note:** See a [summary of available animation functions](guide/animations#animation-api-summary) at the end of this guide. +
      + +### Step 3: Adding the animation metadata property + +In the component file, add a metadata property called `animations:` within the `@Component()` decorator. You put the trigger that defines an animation within the `animations` metadata property. + + + + +## Animating a simple transition + +Let's animate a simple transition that changes a single HTML element from one state to another. For example, you can specify that a button displays either **Open** or **Closed** based on the user's last action. When the button is in the `open` state, it's visible and yellow. When it's the `closed` state, it's transparent and green. + +In HTML, these attributes are set using ordinary CSS styles such as color and opacity. In Angular, use the `style()` function to specify a set of CSS styles for use with animations. You can collect a set of styles in an animation state, and give the state a name, such as `open` or `closed`.
      - This example transitions between active, inactive, and void states +open and closed states
      - +### Animation state and styles -## Animatable properties and units +Use Angular's `state()` function to define different states to call at the end of each transition. This function takes two arguments: a unique name like `open` or `closed` and a `style()` function. -Since Angular's animation support builds on top of Web Animations, you can animate any property -that the browser considers *animatable*. This includes positions, sizes, transforms, colors, -borders, and many others. The W3C maintains -[a list of animatable properties](https://www.w3.org/TR/css3-transitions/#animatable-properties) -on its [CSS Transitions page](https://www.w3.org/TR/css3-transitions). +Use the `style()` function to define a set of styles to associate with a given state name. Note that the style attributes must be in [*camelCase*](guide/glossary#case-conventions). -For positional properties that have a numeric value, you can define a unit by providing -the value as a string with the appropriate suffix: +Let's see how Angular's `state()` function works with the `style⁣­(⁠)` function to set CSS style attributes. In this code snippet, multiple style attributes are set at the same time for the state. In the `open` state, the button has a height of 200 pixels, an opacity of 1, and a background color of yellow. -* `'50px'` -* `'3em'` -* `'100%'` + + -If you don't provide a unit when specifying dimension, Angular assumes the default of `px`: +In the `closed` state, shown below, the button has a height of 100 pixels, an opacity of 0.5, and a background color of green. -* `50` is the same as saying `'50px'` + + -## Automatic property calculation +### Transitions and timing -Animation with automated height calculation +In Angular, you can set multiple styles without any animation. However, without further refinement, the button instantly transforms with no fade, no shrinkage, or other visible indicator that a change is occurring. -Sometimes you don't know the value of a dimensional style property until runtime. -For example, elements often have widths and heights that -depend on their content and the screen size. These properties are often tricky -to animate with CSS. +To make the change less abrupt, we need to define an animation *transition* to specify the changes that occur between one state and another over a period of time. The `transition()` function accepts two arguments: the first argument accepts an expression that defines the direction between two transition states, and the second argument accepts an `animate()` function. -In these cases, you can use a special `*` property value so that the value of the -property is computed at runtime and then plugged into the animation. -In this example, the leave animation takes whatever height the element has before it -leaves and animates from that height to zero: +Use the `animate()` function to define the length, delay, and easing of a transition, and to designate the style function for defining styles while transitions are taking place. You can also use the `animate()` function to define the `keyframes()` function for multi-step animations. These definitions are placed in the second argument of the `animate()` function. - +#### Animation metadata: duration, delay, and easing -## Animation timing +The `animate()` function (second argument of the transition function) accepts the `timings` and `styles` input parameters. -There are three timing properties you can tune for every animated transition: -the duration, the delay, and the easing function. They are all combined into -a single transition *timing string*. +The `timings` parameter takes a string defined in three parts. -### Duration +>`animate ('duration delay easing')` -The duration controls how long the animation takes to run from start to finish. -You can define a duration in three ways: +The first part, `duration`, is required. The duration can be expressed in milliseconds as a simple number without quotes, or in seconds with quotes and a time specifier. For example, a duration of a tenth of a second can be expressed as follows: * As a plain number, in milliseconds: `100` + * In a string, as milliseconds: `'100ms'` + * In a string, as seconds: `'0.1s'` -### Delay - -The delay controls the length of time between the animation trigger and the beginning -of the transition. You can define one by adding it to the same string -following the duration. It also has the same format options as the duration: +The second argument, `delay`, has the same syntax as `duration`. For example: * Wait for 100ms and then run for 200ms: `'0.2s 100ms'` -### Easing +The third argument, `easing`, controls how the animation [accelerates and decelerates](http://easings.net/) during its runtime. For example, `ease-in` causes the animation to begin slowly, and to pick up speed as it progresses. -The [easing function](http://easings.net/) controls how the animation accelerates -and decelerates during its runtime. For example, an `ease-in` function causes -the animation to begin relatively slowly but pick up speed as it progresses. You -can control the easing by adding it as a *third* value in the string after the duration -and the delay (or as the *second* value when there is no delay): +* Wait for 100ms, run for 200ms. Use a deceleration curve to start out fast and slowly decelerate to a resting point: `'0.2s 100ms ease-out'` -* Wait for 100ms and then run for 200ms, with easing: `'0.2s 100ms ease-out'` -* Run for 200ms, with easing: `'0.2s ease-in-out'` +* Run for 200ms, with no delay. Use a standard curve to start slow, accelerate in the middle, and then decelerate slowly at the end: `'0.2s ease-in-out'` -Animations with specific timings +* Start immediately, run for 200ms. Use a acceleration curve to start slow and end at full velocity: `'0.2s ease-in'` -### Example +
      -Here are a couple of custom timings in action. Both enter and leave last for -200 milliseconds, that is `0.2s`, but they have different easings. The leave begins after a -slight delay of 10 milliseconds as specified in `'0.2s 10 ease-out'`: +**Note:** See the Angular Material Design website's topic on [Natural easing curves](https://material.io/design/motion/speed.html#easing) for general information on easing curves. +
      - +This example provides a state transition from `open` to `closed` with a one second transition between states. -## Multi-step animations with keyframes + + -Animations with some bounce implemented with keyframes +In the code snippet above, the `=>` operator indicates unidirectional transitions, and `<=>` is bidirectional. Within the transition, `animate()` specifies how long the transition takes. In this case, the state change from `open` to `closed` takes one second, expressed here as `1s`. -Animation *keyframes* go beyond a simple transition to a more intricate animation -that goes through one or more intermediate styles when transitioning between two sets of styles. +This example adds a state transition from the `closed` state to the `open` state with a 0.5 second transition animation arc. -For each keyframe, you specify an *offset* that defines at which point -in the animation that keyframe applies. The offset is a number between zero, -which marks the beginning of the animation, and one, which marks the end. + + -This example adds some "bounce" to the enter and leave animations with -keyframes: +
      - +**Note:** Some additional notes on using styles within `state` and `transition` functions. -Note that the offsets are *not* defined in terms of absolute time. They are relative -measures from zero to one. The final timeline of the animation is based on the combination -of keyframe offsets, duration, delay, and easing. +* Use `state()` to define styles that are applied at the end of each transition, they persist after the animation has completed. -Defining offsets for keyframes is optional. If you omit them, offsets with even -spacing are automatically assigned. For example, three keyframes without predefined -offsets receive offsets `0`, `0.5`, and `1`. +* Use `transition()` to define intermediate styles, which create the illusion of motion during the animation. -## Parallel animation groups +* When animations are disabled, `transition()` styles can be skipped, but `state()` styles can't. -Parallel animations with different timings, implemented with groups +* You can include multiple state pairs within the same `transition()` argument:
      `transition( 'on => off, off => void' )`. +
      -You've seen how to animate multiple style properties at the same time: -just put all of them into the same `style()` definition. +### Triggering the animation -But you may also want to configure different *timings* for animations that happen -in parallel. For example, you may want to animate two CSS properties but use a -different easing function for each one. +An animation requires a *trigger*, so that it knows when to start. The `trigger()` function collects the states and transitions, and gives the animation a name, so that you can attach it to the triggering element in the HTML template. -For this you can use animation *groups*. In this example, using groups both on -enter and leave allows for two different timing configurations. Both -are applied to the same element in parallel, but run independently of each other: +The `trigger()` function describes the property name to watch for changes. When a change occurs, the trigger initiates the actions included in its definition. These actions can be transitions or other functions, as we'll see later on. - +In this example, we'll name the trigger `openClose`, and attach it to the `button` element. The trigger describes the open and closed states, and the timings for the two transitions. -One group animates the element transform and width; the other group animates the opacity. +
      +triggering the animation +
      -## Animation callbacks +
      -A callback is fired when an animation is started and also when it is done. +**Note:** Within each `trigger()` function call, an element can only be in one state at any given time. However, it's possible for multiple triggers to be active at once. +
      -In the keyframes example, you have a `trigger` called `@flyInOut`. You can hook -those callbacks like this: +### Defining animations and attaching them to the HTML template - +Animations are defined in the metadata of the component that controls the HTML element to be animated. Put the code that defines your animations under the `animations:` property within the `@Component()` decorator. -The callbacks receive an `AnimationEvent` that contains useful properties such as -`fromState`, `toState` and `totalTime`. + + -Those callbacks will fire whether or not an animation is picked up. +When you've defined an animation trigger for a component, you can attach it to an element in that component's template by wrapping the trigger name in brackets and preceding it with an `@` symbol. Then, you can bind the trigger to a template expression using standard Angular property binding syntax as shown below, where `triggerName` is the name of the trigger, and `expression` evaluates to a defined animation state. + +``` +
      ...
      ; +``` + +The animation is executed or triggered when the expression value changes to a new state. + +The following code snippet binds the trigger to the value of the `isOpen` property. + + + + +In this example, when the `isOpen` expression evaluates to a defined state of `open` or `closed`, it notifies the trigger `openClose` of a state change. Then it's up to the `openClose` code to handle the state change and kick off a state change animation. + +For elements entering or leaving a page (inserted or removed from the DOM), you can make the animations conditional. For example, use `*ngIf` with the animation trigger in the HTML template. + +
      + +**Note:** In the component file, set the trigger that defines the animations as the value of the `animations:` property in the `@Component()` decorator. + +In the HTML template file, use the trigger name to attach the defined animations to the HTML element to be animated. + +
      + +### Code review + +Here are the code files discussed in the transition example. + + + + + + + + + + + + + + +### Summary + +You learned to add animation to a simple transition between two states, using `style()` and `state()` along with `animate()` for the timing. + +You can learn about more advanced features in Angular animations under the Animation section, beginning with advanced techniques in [transition and triggers](guide/transition-and-triggers). + +{@a animation-api-summary} +## Animations API summary + +The functional API provided by the `@angular/animations` module provides a domain-specific language (DSL) for creating and controlling animations in Angular applications. See the [API reference](api/animations) for a complete listing and syntax details of the core functions and related data structures. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +Function name + +What it does +
      trigger()Kicks off the animation and serves as a container for all other animation function calls. HTML template binds to triggerName. Use the first argument to declare a unique trigger name. Uses array syntax.
      style()Defines one or more CSS styles to use in animations. Controls the visual appearance of HTML elements during animations. Uses object syntax.
      state()Creates a named set of CSS styles that should be applied on successful transition to a given state. The state can then be referenced by name within other animation functions.
      animate()Specifies the timing information for a transition. Optional values for delay and easing. Can contain style() calls within.
      transition()Defines the animation sequence between two named states. Uses array syntax.
      keyframes()Allows a sequential change between styles within a specified time interval. Use within animate(). Can include multiple style() calls within each keyframe(). Uses array syntax.
      group()Specifies a group of animation steps (inner animations) to be run in parallel. Animation continues only after all inner animation steps have completed. Used within sequence() or transition().
      query()Use to find one or more inner HTML elements within the current element.
      sequence()Specifies a list of animation steps that are run sequentially, one by one.
      stagger()Staggers the starting time for animations for multiple elements.
      animation()Produces a reusable animation that can be invoked from elsewhere. Used together with useAnimation().
      useAnimation()Activates a reusable animation. Used with animation().
      animateChild()Allows animations on child components to be run within the same timeframe as the parent.
      + +## More on Angular animations + +You may also be interested in the following: + +* [Transition and triggers](guide/transition-and-triggers) +* [Complex animation sequences](guide/complex-animation-sequences) +* [Reusable animations](guide/reusable-animations) +* [Route transition animations](guide/route-animations) + +
      + +Check out this full animation [demo](http://animationsftw.in/#/) with accompanying [presentation](https://www.youtube.com/watch?v=JhNo3Wvj6UQ&feature=youtu.be&t=2h47m53s), shown at the AngularConnect conference in November 2017. +
      diff --git a/aio/content/guide/complex-animation-sequences.md b/aio/content/guide/complex-animation-sequences.md new file mode 100644 index 0000000000..929030d432 --- /dev/null +++ b/aio/content/guide/complex-animation-sequences.md @@ -0,0 +1,104 @@ +# Complex animation sequences + +#### Prerequisites + +A basic understanding of the following concepts: + +* [Introduction to Angular animations](guide/animations) +* [Transition and triggers](guide/transition-and-triggers) + +
      + +So far, we've learned simple animations of single HTML elements. Angular also lets you animate coordinated sequences, such as an entire grid or list of elements as they enter and leave a page. You can choose to run multiple animations in parallel, or run discrete animations sequentially, one following another. + +Functions that control complex animation sequences are as follows: + +* `query()` finds one or more inner HTML elements. +* `stagger()` applies a cascading delay to animations for multiple elements. +* `group()` runs multiple animation steps in parallel. +* `sequence()` runs animation steps one after another. + +{@a complex-sequence} + +## Animate multiple elements using query() and stagger() functions + +The `query()` function allows you to find inner elements within the element that is being animated. This function targets specific HTML elements within a parent component and applies animations to each element individually. Angular intelligently handles setup, teardown, and cleanup as it coordinates the elements across the page. + +The `stagger()` function allows you to define a timing gap between each queried item that is animated and thus animates elements with a delay between them. + +The Filter/Stagger tab in the live example shows a list of heroes with an introductory sequence. The entire list of heroes cascades in, with a slight delay from top to bottom. + +The following example demonstrates how to use `query()` and `stagger()` functions on the entry of an animated element. + +* Use `query()` to look for any element entering or leaving the page. The query specifies elements meeting certain CSS class criteria. + +* For each of these elements, use `style()` to set the same initial style for the element. Make it invisible and use `transform` to move it out of position so that it can slide into place. + +* Use `stagger()` to delay each animation by 30 milliseconds. + +* Animate each element on screen for 0.5 seconds using a custom-defined easing curve, simultaneously fading it in and un-transforming it. + + + +## Parallel animation using group() function + +You've seen how to add a delay between each successive animation. But you may also want to configure animations that happen in parallel. For example, you may want to animate two CSS properties of the same element but use a different `easing` function for each one. For this, you can use the animation `group()` function. + +
      + +**Note:** The `group()` function is used to group animation *steps*, rather than animated elements. +
      + +In the following example, using groups on both `:enter` and `:leave` allow for two different timing configurations. They're applied to the same element in parallel, but run independently. + + + +## Sequential vs. parallel animations + +Complex animations can have many things happening at once. But what if you want to create an animation involving several animations happening one after the other? Earlier we used `group()` to run multiple animations all at the same time, in parallel. + +A second function called `sequence()` lets you run those same animations one after the other. Within `sequence()`, the animation steps consist of either `style()` or `animate()` function calls. + +* Use `style()` to apply the provided styling data immediately. +* Use `animate()` to apply styling data over a given time interval. + +## Filter animation example + +Let's take a look at another animation on the live example page. Under the Filter/Stagger tab, enter some text into the **Search Heroes** text box, such as `Magnet` or `tornado`. + +The filter works in real time as you type. Elements leave the page as you type each new letter and the filter gets progressively stricter. The heroes list gradually re-enters the page as you delete each letter in the filter box. + +The HTML template contains a trigger called `filterAnimation`. + + + +The component file contains three transitions. + + + +The animation does the following: + +* Ignores any animations that are performed when the user first opens or navigates to this page. The filter narrows what is already there, so it assumes that any HTML elements to be animated already exist in the DOM. + +* Performs a filter match for matches. + +For each match: + +* Hides the element by making it completely transparent and infinitely narrow, by setting its opacity and width to 0. + +* Animates in the element over 300 milliseconds. During the animation, the element assumes its default width and opacity. + +* If there are multiple matching elements, staggers in each element starting at the top of the page, with a 50-millisecond delay between each element. + +## Animation sequence summary + +Angular functions for animating multiple elements start with `query()` to find inner elements, for example gathering all images within a `
      `. The remaining functions, `stagger()`, `group()`, and `sequence()`, apply cascades or allow you to control how multiple animation steps are applied. + +## More on Angular animations + +You may also be interested in the following: + +* [Introduction to Angular animations](guide/animations) +* [Transition and triggers](guide/transition-and-triggers) +* [Reusable animations](guide/reusable-animations) +* [Route transition animations](guide/route-animations) \ No newline at end of file diff --git a/aio/content/guide/reusable-animations.md b/aio/content/guide/reusable-animations.md new file mode 100644 index 0000000000..cdf01c36a2 --- /dev/null +++ b/aio/content/guide/reusable-animations.md @@ -0,0 +1,40 @@ +# Reusable animations + +#### Prerequisites + +A basic understanding of the following concepts: + +* [Introduction to Angular animations](guide/animations) +* [Transition and triggers](guide/transition-and-triggers) + +
      + +The [AnimationOptions](https://angular.io/api/animations/AnimationOptions) interface in Angular animations enables you to create animations that you can reuse across different components. + +## Creating reusable animations + +To create a reusable animation, use the [`animation()`](https://angular.io/api/animations/animation) method to define an animation in a separate `.ts` file and declare this animation definition as a `const` export variable. You can then import and reuse this animation in any of your app components using the [`useAnimation()`](https://angular.io/api/animations/useAnimation) API. + + + + +In the above code snippet, `transAnimation` is made reusable by declaring it as an export variable. + +
      + +**Note:** The `height`, `opacity`, `backgroundColor`, and `time` inputs are replaced during runtime. +
      + +You can import the reusable `transAnimation` variable in your component class and reuse it using the `useAnimation()` method as shown below. + + + + +## More on Angular animations + +You may also be interested in the following: + +* [Introduction to Angular animations](guide/animations) +* [Transition and triggers](guide/transition-and-triggers) +* [Complex animation Sequences](guide/complex-animation-sequences) +* [Route transition animations](guide/route-animations) \ No newline at end of file diff --git a/aio/content/guide/route-animations.md b/aio/content/guide/route-animations.md new file mode 100644 index 0000000000..2c3a893bda --- /dev/null +++ b/aio/content/guide/route-animations.md @@ -0,0 +1,139 @@ +# Route transition animations + +#### Prerequisites + +A basic understanding of the following concepts: + +* [Introduction to Angular animations](guide/animations) +* [Transition and triggers](guide/transition-and-triggers) +* [Reusable animations](guide/reusable-animations) + +
      + +Routing enables users to navigate between different routes in an application. When a user navigates from one route to another, the Angular router maps the URL path to a relevant component and displays its view. Animating this route transition can greatly enhance the user experience. + +The Angular router comes with high-level animation functions that let you animate the transitions between views when a route changes. To produce an animation sequence when switching between routes, you need to define nested animation sequences. Start with the top-level component that hosts the view, and nest additional animations in the components that host the embedded views. + +To enable routing transition animation, do the following: + +1. Import the routing module into the application and create a routing configuration that defines the possible routes. +2. Add a router outlet to tell the Angular router where to place the activated components in the DOM. +3. Define the animation. + + +Let's illustrate a router transition animation by navigating between two routes, *Home* and *About* associated with the `HomeComponent` and `AboutComponent` views respectively. Both of these component views are children of the top-most view, hosted by `AppComponent`. We'll implement a router transition animation that slides in the new view to the right and slides out the old view when the user navigates between the two routes. + +
      + +
      +Animations in action +
      + +## Route configuration + +To begin, configure a set of routes using methods available in the `RouterModule` class. This route configuration tells the router how to navigate. + +Use the `RouterModule.forRoot` method to define a set of routes. Also, import this `RouterModule` to the `imports` array of the main module, `AppModule`. + +
      + +**Note:** Use the `RouterModule.forRoot` method in the root module, `AppModule`, to register top-level application routes and providers. For feature modules, call the `RouterModule.forChild` method to register additional routes. + +
      + +The following configuration defines the possible routes for the application. + + + + +The `home` and `about` paths are associated with the `HomeComponent` and `AboutComponent` views. The route configuration tells the Angular router to instantiate the `HomeComponent` and `AboutComponent` views when the navigation matches the corresponding path. + +In addition to `path` and `component`, the `data` property of each route defines the key animation-specific configuration associated with a route. The `data` property value is passed into `AppComponent` when the route changes. You can also pass additional data in route config that is consumed within the animation. The data property value has to match the transitions defined in the `routeAnimation` trigger, which we'll define later. + +
      + +**Note:** The `data` property names that you use can be arbitrary. For example, the name *animation* used in the example above is an arbitrary choice. + +
      + +## Router outlet + +After configuring the routes, tell the Angular router where to render the views when matched with a route. You can set a router outlet by inserting a `` container inside the root `AppComponent` template. + +The `` container has an attribute directive that contains data about active routes and their states, based on the `data` property that we set in the route configuration. + + + + +`AppComponent` defines a method that can detect when a view changes. The method assigns an animation state value to the animation trigger (`@routeAnimation`) based on the route configuration `data` property value. Here's an example of an `AppComponent` method that detects when a route change happens. + + + + +Here, the `prepareRoute()` method takes the value of the output directive (established through `#outlet="outlet"`) and returns a string value representing the state of the animation based on the custom data of the current active route. You can use this data to control which transition to execute for each route. + +## Animation definition + +Animations can be defined directly inside your components. For this example we are defining the animations in a separate file, which allows us to re-use the animations. + +The following code snippet defines a reusable animation named `slideInAnimation`. + + + + + +The animation definition does several things: + +* Defines two transitions. A single trigger can define multiple states and transitions. +* Adjusts the styles of the host and child views to control their relative positions during the transition. +* Uses `query()` to determine which child view is entering and which is leaving the host view. + +A route change activates the animation trigger, and a transition matching the state change is applied. + +
      + +**Note:** The transition states must match the `data` property value defined in the route configuration. +
      + +Make the animation definition available in your application by adding the reusable animation (`slideInAnimation`) to the `animations` metadata of the `AppComponent`. + + + + +### Styling the host and child components + +During a transition, a new view is inserted directly after the old one and both elements appear on screen at the same time. To prevent this, apply additional styling to the host view, and to the removed and inserted child views. The host view must use relative positioning, and the child views must use absolute positioning. Adding styling to the views animates the containers in place, without the DOM moving things around. + + + + +### Querying the view containers + +Use the `query()` method to find and animate elements within the current host component. The `query(":enter")` statement returns the view that is being inserted, and `query(":leave")` returns the view that is being removed. + +Let's assume that we are routing from the *Home => About*. + + + + +The animation code does the following after styling the views: + +* `query(':enter style({ left: '-100%'})` matches the view that is added and hides the newly added view by positioning it to the far left. +* Calls `animateChild()` on the view that is leaving, to run its child animations. +* Uses `group()` function to make the inner animations run in parallel. +* Within the `group()` function: + * Queries the view that is removed and animates it to slide far to the right. + * Slides in the new view by animating the view with an easing function and duration.
      + This animation results in the `about` view sliding from the left to right. +* Calls the `animateChild()` method on the new view to run its child animations after the main animation completes. + +You now have a basic routable animation that animates routing from one view to another. + +## More on Angular animations + +You may also be interested in the following: + +* [Introduction to Angular animations](guide/animations) +* [Transition and triggers](guide/transition-and-triggers) +* [Complex animation sequences](guide/complex-animation-sequences) +* [Reusable animations](guide/reusable-animations) diff --git a/aio/content/guide/transition-and-triggers.md b/aio/content/guide/transition-and-triggers.md new file mode 100644 index 0000000000..73743fa56c --- /dev/null +++ b/aio/content/guide/transition-and-triggers.md @@ -0,0 +1,308 @@ +# Animations transitions and triggers + +You learned the basics of Angular animations in the [introduction](guide/animations) page. + +In this guide, we go into greater depth on special transition states such as `*` (wildcard) and `void`, and show how these special states are used for elements entering and leaving a view. The chapter also explores on multiple animation triggers, animation callbacks and sequence-based animation using keyframes. + +## Predefined states and wildcard matching + +In Angular, transition states can be defined explicitly through the `state()` function, or using the predefined `*` (wildcard) and `void` states. + +### Wildcard state + +An asterisk `*` or *wildcard* matches any animation state. This is useful for defining transitions that apply regardless of the HTML element's start or end state. + +For example, a transition of `open => *` applies when the element's state changes from open to anything else. + +
      +wildcard state expressions +
      + +Here's another code sample using the wildcard state together with our previous example using the `open` and `closed` states. Instead of defining each state-to-state transition pair, we're now saying that any transition to `closed` takes 1 second, and any transition to `open` takes 0.5 seconds. + +This allows us to add new states without having to include separate transitions for each one. + + + + +Use a double arrow syntax to specify state-to-state transitions in both directions. + + + + +### Using wildcard state with multiple transition states + +In our two-state button example, the wildcard isn't that useful because there are only two possible states, `open` and `closed`. Wildcard states are better when an element in one particular state has multiple potential states that it can change to. If our button can change from `open` to either `closed` or something like `inProgress`, using a wildcard state could reduce the amount of coding needed. + +
      +wildcard state with 3 states +
      + + + + + + +The `* => *` transition applies when any change between two states takes place. + +Transitions are matched in the order in which they are defined. Thus, you can apply other transitions on top of the `* => *` (any-to-any) transition. For example, define style changes or animations that would apply just to `open => closed`, or just to `closed => open`, and then use `* => *` as a fallback for state pairings that aren't otherwise called out. + +To do this, list the more specific transitions *before* `* => *`. + +### Using wildcards with styles + +Use the wildcard `*` with a style to tell the animation to use whatever the current style value is, and animate with that. Wildcard is a fallback value that's used if the state being animated isn't declared within the trigger. + + + + +### Void state + +You can use the `void` state to configure transitions for an element that is entering or leaving a page. See [Animating entering and leaving a view](#enter-leave-view). + + +### Combining wildcard and void states + +You can combine wildcard and void states in a transition to trigger animations that enter and leave the page: + +* A transition of `* => void` applies when the element leaves a view, regardless of what state it was in before it left. + +* A transition of `void => *` applies when the element enters a view, regardless of what state it assumes when entering. + +* The wildcard state `*` matches to *any* state, including `void`. + +## Animating entering and leaving a view + +This section shows how to animate elements entering or leaving a page. + +
      + +**Note:** For our purposes, an element entering or leaving a view is equivalent to being inserted or removed from the DOM. + +
      + +Now we'll add a new behavior: + +* When you add a hero to the list of heroes, it appears to fly onto the page from the left. +* When you remove a hero from the list, it appears to fly out to the right. + + + + +In the above code, we applied the `void` state when the HTML element isn't attached to a view. + + +{@a enter-leave-view} + +## :enter and :leave aliases + +`:enter` and `:leave` are aliases for the `void => *` and `* => void` transitions. These aliases are used by several animation functions. + + +transition ( ':enter', [ ... ] ); // alias for void => * +transition ( ':leave', [ ... ] ); // alias for * => void + + +It's harder to target an element that is entering a view because it isn't in the DOM yet. +So, use the aliases `:enter` and `:leave` to target HTML elements that are inserted or removed from a view. + +### Use of \*ngIf and \*ngFor with :enter and :leave + +The `:enter` transition runs when any `*ngIf` or `*ngFor` views are placed on the page, and `:leave` runs when those views are removed from the page. + +In this example, we have a special trigger for the enter and leave animation called `myInsertRemoveTrigger`. The HTML template contains the following code. + + + + +In the component file, the `:enter` transition sets an initial opacity of 0, and then animates it to change that opacity to 1 as the element is inserted into the view. + + + + +Note that this example doesn't need to use `state()`. + +## :increment and :decrement in transitions + +The `transition()` function takes additional selector values, `:increment` and `:decrement`. Use these to kick off a transition when a numeric value has increased or decreased in value. + +
      + +**Note:** The following example uses `query()` and `stagger()` methods, which is discussed in the [complex sequences](guide/complex-animation-sequences#complex-sequence) page. + +
      + + + +## Boolean values in transitions + +If a trigger contains a boolean value as a binding value, then this value can be matched using a `transition()` expression that compares `true` and `false`, or `1` and `0`. + + + + +In the code snippet above, the HTML template binds a `
      ` element to a trigger named `openClose` with a status expression of `isOpen`, and with possible values of `true` and `false`. This is an alternative to the practice of creating two named states of `open` and `close`. + +In the component code, in the `@Component` metadata under the `animations:` property, when the state evaluates to `true` (meaning "open" here), the associated HTML element's height is a wildcard style or default. In this case, use whatever height the element already had before the animation started. When the element is "closed," the element animates to a height of 0, which makes it invisible. + + + + +## Multiple animation triggers + +You can define more than one animation trigger for a component. You can attach animation triggers to different elements, and the parent-child relationships among the elements affect how and when the animations run. + +### Parent-child animations + +Each time an animation is triggered in Angular, the parent animation always get priority and child animations are blocked. In order for a child animation to run, the parent animation must query each of the elements containing child animations and then allow the animations to run using the [`animateChild()`](https://angular.io/api/animations/animateChild) function. + +#### Disabling an animation on an HTML element + +A special animation control binding called `@.disabled` can be placed on an HTML element to disable animations on that element, as well as any nested elements. When true, the `@.disabled` binding prevents all animations from rendering. + +The code sample below shows how to use this feature. + + + + + + + + + + + +When the `@.disabled` binding is true, the `@childAnimation` trigger doesn't kick off. + +When an element within an HTML template has animations disabled using the `@.disabled` host binding, animations are disabled on all inner elements as well. You can't selectively disable multiple animations on a single element. + +However, selective child animations can still be run on a disabled parent in one of the following ways: + +* A parent animation can use the [`query()`](https://angular.io/api/animations/query) function to collect inner elements located in disabled areas of the HTML template. Those elements can still animate. + +* A subanimation can be queried by a parent and then later animated with the `animateChild()` function. + +#### Disabling all animations + +To disable all animations for an Angular app, place the `@.disabled` host binding on the topmost Angular component. + + + + +
      + +**Note:** Disabling animations application-wide is useful during end-to-end (E2E) testing. +
      + +## Animation callbacks + +The animation `trigger()` function emits *callbacks* when it starts and when it finishes. In the example below we have a component that contains an `openClose` trigger. + + + + +In the HTML template, the animation event is passed back via `$event`, as `@trigger.start` and `@trigger.done`, where `trigger` is the name of the trigger being used. In our example, the trigger `openClose` appears as follows. + + + + +A potential use for animation callbacks could be to cover for a slow API call, such as a database lookup. For example, you could set up the **InProgress** button to have its own looping animation where it pulsates or does some other visual motion while the backend system operation finishes. + +Then, another animation can be called when the current animation finishes. For example, the button goes from the `inProgress` state to the `closed` state when the API call is completed. + +An animation can influence an end user to *perceive* the operation as faster, even when it isn't. Thus, a simple animation can be a cost-effective way to keep users happy, rather than seeking to improve the speed of a server call and having to compensate for circumstances beyond your control, such as an unreliable network connection. + +Callbacks can serve as a debugging tool, for example in conjunction with `console.warn()` to view the application's progress in a browser's Developer JavaScript Console. The following code snippet creates console log output for our original example, a button with the two states of `open` and `closed`. + + + + +{@a keyframes} + +## Keyframes + +In the previous section, we saw a simple two-state transition. Now we'll create an animation with multiple steps run in sequence using *keyframes*. + +Angular's `keyframe()` function is similar to keyframes in CSS. Keyframes allow several style changes within a single timing segment. For example, our button, instead of fading, could change color several times over a single 2-second timespan. + +
      +keyframes +
      + +The code for this color change might look like this. + + + + +### Offset + +Keyframes include an *offset* that defines the point in the animation where each style change occurs. Offsets are relative measures from zero to one, marking the beginning and end of the animation, respectively. + +Defining offsets for keyframes is optional. If you omit them, evenly spaced offsets are automatically assigned. For example, three keyframes without predefined offsets receive offsets of 0, 0.5, and 1. Specifying an offset of 0.8 for the middle transition in the above example might look like this. + +
      +keyframes with offset +
      + +The code with offsets specified would be as follows. + + + + +You can combine keyframes with `duration`, `delay`, and `easing` within a single animation. + +### Keyframes with a pulsation + +Use ketframes to create a pulse effect in your animations by defining styles at specific offset throughout the animation. + +Here's an example of using keyframes to create a pulse effect: + +* The original `open` and `closed` states, with the original changes in height, color, and opacity, occurring over a timeframe of 1 second + +* A keyframes sequence inserted in the middle that causes the button to appear to pulsate irregularly over the course of that same 1-second timeframe + +
      +keyframes with irregular pulsation +
      + +The code snippet for this animation might look like this. + + + + +### Animatable properties and units + +Angular's animation support builds on top of web animations, so you can animate any property that the browser considers animatable. This includes positions, sizes, transforms, colors, borders, and more. The W3C maintains a list of animatable properties on its [CSS Transitions](https://www.w3.org/TR/css-transitions-1/) page. + +For positional properties with a numeric value, define a unit by providing the value as a string, in quotes, with the appropriate suffix: + +* 50 pixels: `'50px'` +* Relative font size: `'3em'` +* Percentage: `'100%'` + +If you don't provide a unit when specifying dimension, Angular assumes a default unit of pixels, or px. Expressing 50 pixels as `50` is the same as saying `'50px'`. + +### Automatic property calculation with wildcards + +Sometimes you don't know the value of a dimensional style property until runtime. For example, elements often have widths and heights that depend on their content and the screen size. These properties are often challenging to animate using CSS. + +In these cases, you can use a special wildcard `*` property value under `style()`, so that the value of that particular style property is computed at runtime and then plugged into the animation. + +In this example, we have a trigger called `shrinkOut`, used when an HTML element leaves the page. The animation takes whatever height the element has before it leaves, and animates from that height to zero. + + + +### Keyframes summary + +The `keyframes()` function in Angular allows you to specify multiple interim styles within a single transition, with an optional offset to define the point in the animation where each style change occurs. + +## More on Angular animations + +You may also be interested in the following: + +* [Introduction to Angular animations](guide/animations) +* [Complex animation sequences](guide/complex-animation-sequences) +* [Reusable animations](guide/reusable-animations) +* [Route transition animations](guide/route-animations) \ No newline at end of file diff --git a/aio/content/images/guide/animations/keyframes-500.png b/aio/content/images/guide/animations/keyframes-500.png new file mode 100644 index 0000000000000000000000000000000000000000..2f2ce86ed6ec7c99ba38646fcd67b505cb82a8c1 GIT binary patch literal 25160 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 bD8TUz(e=iMwe_d}>p@0RULyOx!L$DbLyJY} literal 0 HcmV?d00001 diff --git a/aio/content/images/guide/animations/keyframes-offset-500.png b/aio/content/images/guide/animations/keyframes-offset-500.png new file mode 100644 index 0000000000000000000000000000000000000000..adc2359133fac9e02f632750869b5c47b45a2b11 GIT binary patch literal 25120 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 YI3Fw46E-^ZfA?X?N-9ZYi0M85f7X-sYXATM literal 0 HcmV?d00001 diff --git a/aio/content/images/guide/animations/keyframes-pulsation.png b/aio/content/images/guide/animations/keyframes-pulsation.png new file mode 100644 index 0000000000000000000000000000000000000000..2f5c1eb05bbeed3265cf4dc70b42f45fa266dbe4 GIT binary patch literal 44991 zcmbrmby!v3);3HDC=JrxAie4CE(Pf>>FySg?ve&Y*hqItDc#*Eu|Zn8;al6^dCu{D zzVm+nd|Ve7u=bp5#u{tPG4A^wM7~y$MSDT?0tN;KOVIzXKlhQca5ZzWc5<_JbfAFV*TmG(-A$N^3Odlgzy38(d#8U7a4n7uk9u^SqTXtRn5J-TNQ;6+gAhfA{{Y z&426d=$#MR-9%Z2zx||GR^#i?sz{A%8jmbN$o)?`!|Nz4m__;O~q7>LA1hwW`0Y z>>m^Ua}}^*kr%+e{LlL!^1{v7ToVRH3`Sl`{H+)4K@L(jNl$ezN{TC<+$ZEDWVq*v z%)yxaNM@jU1b7THv!8^+)P%$_9O+i5bcA+h@N_$T9<3f3Ts$~fg3T`G+NRbtwLB|R)#%sZg2X5=krDp&!zJwdBL5I0=*9nB_;Z~d zA=p@2_TP=5*ZPnVehhMaN;LSZGn{x;KE~f26U=~)5Q6c3*8hwE7et{wf%NyN{Tx6? z7gQ^A{J%%QEc*rj_tdrsfR6l#Ts0_vkASRs{&yn;ml!e3G7@;Ag=c?{fWUP7_afo= zWhjs}<6vVC{%(XEjO+jRVuDDhF%g*h-phFWA0zyT68U>EVsTi=!Kr3q)GdFH0Bjfe z-;4SGvt3Cv+Qn~QIkKdUwVu(rnP=l8>_g6YE8ga~;bZWlz7BpT zzI@vDSH8>NGfs&YleeiFtW>y0{A;H0vpF2IBsbW5-B$qm%{t*80uQRA%1YJk-s{Xtwr*oxDIpk%x12oo1K9 z)b$f#3^{VhS^V<7Hm55<(*Zl0b0q#LKupv7ad zOox-2TV?QG;c@wn6XL^9EgP58?th1E!7aNSPUa&QhEDpb&F3Pi3qw?YvB92c$*wk* z%VxSCIdkagbcii0TOF*FC`;xomFs)Nzu-P+Q0TrtOGwqIyM6MHWkgZ~Pk?syJ!Qay z42(UF)K1&gYI1qQ;vkn=mR(JxhR^-=NzHl~@u0e@Fs<)lecEsaXJ4IGW$S4aR&h@> z{?Jj&F)Qz?*B4YGE(ZANgN52yKk=|^7_11!PiL9y4OS)( zxLywjnf0O)a+rQt_TI@k?Im_3NEDxP-!E?*JZxNZSY)p=vI0|>YUw+N-ai}%rXi90 zje{vCBsg%NJL`F_xIfF6UIt8Q4H>)Oc_%`#;Kj6hZ2D))yS>s%B_;?Brb%&Elk;ZG z_rs>mIGH927sE!MDeX6je_RMQa`&rF1OjJblEHg}kup|8v`=DqP~k2CD|pepd(ubF zdm1wPV&tWBvp^yhb>4QZ(vV2P$a7;5>r@uG-|rw2|MQ7=zV&@%zWpd{t;WSd0ie95 zKS#}{X~6$#?6DA>@**RQGn-Jvg(Qd>I+cx@En=Sbyd_7l97v+YLwsZEi&(*TP+yg1 zT4-{%Jrb*w$mZ>A;S-M=lt6*{%h{^AA6~Xu-UVq_QV+s}6e+0>e(9`4jh%N-=@f#5 z(NL_U$-nB{M;ct7-dCG-{l~Wh?(%gK!VprLU!A1L*=TrcqU9qdLs1e}fVW})Ftg%V^Y$L)Tnj^pbD6H{ti zWjiSyRu|#L`RSA8a)epxI{yfMCPYNo^7MFTznEYNW}x(xR|^x3J0wcLO&gvPdiDFP zs)>gLVQ`-qt?2U2l$tDsCe}wEl(72?B3MKMrckTFu*; zwswOUA+D%%ktp8cEuqTO`;{H6OZJU9%Fk*baOQ^eLgD*Z<+z4w{n8oJmTEen{_pb??v-f z)r*cD4+z9e2L~>5i3g-l`kwUQ+m{>_i9Qrt zH&xXx0-kzUETHql^M)R{QtX8rQexK2RiBF)Eel|A+;H31Z+d^Pca1nb(AIBCpoD40 zxM7MNwDK%kQSZ){XHkgydRDJ=`|Ov~^DaAuobOKcnX{^PK`gqt|9Cw$X~35hF1k>9 zhDcBpL)OW5x@ibCu^0yUL`LM63q;2%a$d19FR^7b)CkG%RFs?u1wfB03QPtKAP!2k z846uSLx)918;!&@kMIqoW0v>1&tP&++O0kIR#~*sNTJiww79Vhx4>yM_wGjfmjjao zVikYeiLa_{vJ~=hHflPPmN>Mh#ms9_lU_HrFDe~`;>qX!cn$?zAVm5zzyHKBFInJd zo0TOe@)uy9NxH6Q#vkl$j!h?o`|1ad#^sgnlx!cLZj~%cY^%=*%*uczQr-~XP}%?K z-xDKdRTb6j9;MAgPY+o*q~KYHC`&?W6;zO0m!r)4KMGrur>Nf8WO;hKsB2X^+MlU{ zE0J5wv-g%;+6b&qDIML-Bb)xj125r%#*J~|AU>L580`s6h$?FXSwU0sFjof*qo)Dr zlmw2t9xuw}^J?XB?9?$@j1k;zj)}&yl=ufWwm^@NQ`>M!Py~GFer`I?JNQmv5|_MYT3jxL<>dfgYIP+0IyF zSFB?*1dou{A)C}|_)(R$)@Z@xK9W8+0f-bdRs-(r1s4HF%bMY}R_aFT+q69Nk%hDK z_ScvAMMF)J?BSbW65r%l9kneQ70Auz&Tbp?;&Dl71xV@cV&C#GC1&TwYn4oM;!N$GMQy4re4 zz$ojxD#Z&g#luNERYf1%s8zed(30WN`NRms7AXC0&v!33@`QaG?k^iVQh`XtfVK6v z#M0KO=+jL+)+gJ_HlA7&TG@6QBo4N&hbGXxD=BdB9qJyLboY2?E3&n{g+>7;MXu({ zflm+iI7*$utS6LV2bwB;2#%YvybWl4wVPOt6*-%*&8AxCz|r*G!!i6EdUCn|Cn<`y zARWY@?P$T|=-2`?4*WcvJY1@lQz#Bij*&cVxbMsx9jQR+94L^MOUCC?RS0a3rh$K$xre(LyGtTfQ`LIK>md< ztWWWp79r)AwvezIZD9dTVF<)#_Z+n)g={HllJQ%LO{uYHF%bVSa07?mv@E%Q%A`0? z;Rhye=Z)?ZbP+~c#A4tiXTKQc94l}$9@^rzoh?hTu~v&0ee_a@59A2E4>-$OE4W;C z9ZO02l0v3r_qY{8%=s=Rb?4?62P@+WhfrbP_cFYAq#3sia`KXq8aIJd>j1+(r4It_ zC$~Xg$nvvwo19E!sB(gp8Gk4je;mL6igK~@R6l2^7)vV11G%8gtL%6bC?sl0QJHw> zba5{aUm=i_rFK{VDY8UeY{QOuXuhhJKyaqKlG&FU@aji_W;ZC*YgZea1bv1NWwjGmdln&fJ{Q zfS7$l9I!oUF&9N~gu|Lk6rwwD;M3ij%Te>ryEv%{@xBtL-#?JDJR(B;@_hCf1;avj z1>$5U#7DrJZdKT%-?xU?I_g3~C%ib6i_8a4uYtfu8p(8uA(l*7*JIgP_KhjUW?wu$ zm+`#&irbX3gb<0#y2#_Tncz_$BSecGAlQO%gHk|5KOg(5b z`}+`U%P?5u2XXle^^lIoi^^v)#pF%sqyle8MegiusYlVyIg#97^Td+gj3X*d?0vE) zN{YmxC))0o-tXt&Y2qB^>*9)20B>n^+@_w-?h22RZ884)4HK_rxJ z$8A@O8PVs&dxLHVz-h#(UQqGuOu&n9tE*%42j!fxa!1eFU0$D-1QUIZTavZ8k=OdO zt~gh6=kAkhKT*EntOhaLVfTlNxyH>Tp$gilc<2cuf^Z&9!iuR)4fm)>co>%JZkfr5 zy?$&0MBEArW4X1h*Qw=g!i7k;i=3JGw8n&o-@m^3!c20A94FK?C(cqBPLM@TZiRdP z+t_y&K3ttX&(B3hQG#eL1)5{X?JoE*lFoyyC%hPSsx0ICBtfL!M^#` z%fIR@5nBrGtwg^QDkCit9!==4rywtIW-`>pT3Ig#)uJCo0nNo`WA?o!gW6z-;erM7wk5J|*%q(D>qK3klmjbQVVY&!Swz zL(adM{O{>SZ{)#jUqatfr44kQZ4X{`-d%inj>BwJ!8bNWwm}V?@KG;}a*1gGwQxqH#=5^ZM&Pmj{fZcMD@uMfY2+XQRnL-mx(GC30g< zxMO=_T;I6|_g$AH(WH9r&Tc?}bPMFvNx4^9#5JBS7&lgy#QDP~M#+%E5S?DcNTKMF z&%)i_22GyKUooz~xc?AA3BQa8Nu79WVhKhVs^hY98y|L>=Ts>=QR?av&J?w)WC-!t zjym(8CYh7Puo3z7DFjt=5wm>T=;>Aq#ntbS@&vX$*QislvQYsBGRRcPbx8Oyu$10a z?rb%4F8iKgAVryXW!kP{9L_NC;o_YtG|P%k^3zii6NUV?#q+9q|HXE$LNk!|W2fnh zx|(jO4n>}Sg|3L#w`oN=O; zAyy1O$Yoo?p&-qM6cD*MHz-ah^bC=kd4OS^2k=`Lclv?g(&iDBNwJ$9xrk4&|^j*g+(1 zO+wID4(qb{UBNOJ^Wh;yjHzQZSgX2CQi%Yg`EJo zWR~)ffC;?i*wo2c$sK1Ce=}9g-DbR~Vft#Y)%&OKLGUaYMJGZ{NgYr04`=Sj1Yf~@ zQBG$5eW8p)uA}_2=>jXBYyOb@XjYKR1+XcTx5O6~&zKROCza^3M|)1ck=5zQZzuRJ zIi8`r;xfci&K456*s*ZVTgo0UbSl@ibjRMw9y^$yU=}aTqwcR6QgS&5{(j>?lXInm z$C(WzZZZ+iJ)g{%|0FkndkuJesjBy~o(5IvQNl98ghJx1ODs$@vj|AyMh+CdA_oAw z_zR?MEL*qYu{2=cxI!n;V+qgBqxIqQ`rcYc$Ag+Bdv{_u(J=8z{&E4akXIF&6XtUg z-RE|({p5Y0!W)9cbD7NFJJsQ0qS6!NHAjfF=Av%>+~=`~kTX!_TSw5#>EpaM7KJ#E z!{yJI-J#lT$c?=if?^56wHO52#(^K;k*dDfXP2#GI3(EA=^iz#c<9+)L7@P|fc{1t z;`mLivC7wczJadZwRhAm+}4xbd(Zg~C%%MZN%y~eDA%eqd{-I{j&R}*z|T>^vm05) zNJ4lctB5$!Z5ZVw$Fe&R?MJC9&-@^`38F#~h50@YIrpF+-mH$gloh>AwC+!OT>i)0 zpn>v9z5Im27MqV;^kM>my!d`W!>gKwcUc4Q7(&LGMW?U6zyI7ImI144U-f~7Y+iT0 z8%LGP%pOq)EShdZWz^tljA=>H^#)O$28qn;6Bb-rI6ET9+*B9Uz6(#!&SXjxH7o_i z`ONRA{my|Jn_#522VoJ!g)2fpkHmY*ipcAC?Uc2*S01)akS*zyae22R`ow5MY(e$y zW1JJX#ADH#-WJE{nJu`D!q_J3-6G+foOo+`h4hyYO-TFQQ7tUFGDRith=P!^E7DmlAA*V1H)Je;*23M{);3>-n;(UU zeUMahs-&0CQ6NN5Qnqn^uIWW4qK|&LlHaic1hC+TlYH&x&p8TJ)kHN-O|!ysaM4L9 z3le@5d|3mbjbgyc33p?Q(o2!0`J8RO$E{4zBLS^{4`q~ZXT!80A(9yc>$kI6Iae>_ zA1Cqh=xxDAep&NL#BjCH(`-zHb_vaw; zB3-V^wC6;B9(x^f_ZxocC9WQ(blX=owB5iXMMdDdD*eSzSX9#*x#LYUb?pyA71j5) zNW*6%oWsUjkdQp+x>p{6;JjYCowz<^W9elW*tKhlG7dx7L=(7(ff4_&btV2 z{TkKnMCPfkng^GMgPL5 z#9J}`b>sSpqTR7fL>wf#Om>xW@dgwKC{zl55d?A9RvrsQX!*S&j{TdL!3pd~*0Pi1 z6;>_my;qDm2%i+Hicq?+FlnMmNxNI*h(QM~Y}OyZ-KdQ$=x z90LE3+(@P|`Gu3sHG@mela(9cUE$m%V~g;_-c6dJuC>i~YrcN>!m)QZoF-7>+D zGMc7yqw0iWn%~LJ8AO%8Nk8RHPU{Pe4t;K}(`~pfC4=g}PD@^CNuSs-IZE#`omR@l z6$IK((w#-#LE}DF09nA*@=b~1y1%_NI%IY84j|LavUP#kAnW69x#vz@w@yZ&$?ydE zyKm4<_57RRfPv$XCV2R?h)gqp7S_e=UKyj0wf0=GrYh<_G8r`lvpN?YXOtipCk0p~mKR>1v`Q z03i5<1Moq67u8Y8`}a7EmvW|g6vEo`m$0Tc0>pkb*(5t`J{1+#8>{jPlX*fp_doMU zWqjg>P0n7&y)ex+0?y9PMPbovOK2l(T2Yzd>SCffed7kj!nHZ%aH(!eWCunIL2e?-dCc5S!V`=Fyie^4WCN~yvcW8O{tnJ})siALdM$5>)CEl^>2jXOj2Gf+7a|My? ztkC(mWG9(aw(zfxY5wDoOQiVlxM{+Zi{Y4c>i&eeldHtkZLx&G?wh$^SmOfFY zF#HXasSR;rzT#O%6Z%b$qRIoKkKE=<^5`P8fwNP>q!c$pY_BGF;c@X^9VC zZVi%xT#zft^FlltLun7_-DV^{pv?`hOge=FdbL+5f2LVC|21 zD!KH{jN&R#E)9oZtn1-ED$pYx$0@*SJka0ljhvAA%9Ia3u;ec9TzzQ1My;I9C{N0l zhcgMOX+AhNX}2UX>E?K27dKcfv+yra@sk*Uckt^|RLLNmYc=(}0VPk8R;ZVF*I3>Q zE5+kiv%{@=ZN^TE+#MvV!M!^<55@46k0s_E&Ap*e3iL0Uu6R}0*OJ~rCYdxqj4>mW z(Lv^xrFQ!6$_H$y5KmX_E0V%jn91vyt2XlCX4j;TQJAOqC{=qw0|}gBGp@;GB%d=- zpdN?UXHiIE{?PGs*O8LM)Urny#Yh{5H@0t!aq=bw*^77=BX}BJ@E~Dw_h4pgx|XOs zR^!h4v4m1#LiSf)T?g4}c4Xy_COF~>inye-THexNF@&>EDrNIcOqOX^cTP^_x!Ld+ zb~6;}>hFtwW9T0I9iR+n;Fg&0mpxQYq?a6j&L=D+P$){Eb_?H~D@=w_;;if~I=6Dc zlCy}eD|FQu{s*fMrotpDgTq?5RYUEFy0I8F8Q}Auump>ZBUm4E2a@U+G^$YFR{As= zWr_y2hq@Y)se9~XyT*}5MDxfa(M_p2PXl>!x=6RT_cG^7xJ*<{6DZaTfH?*MOQcsi zHt8PaU|2v$gF9JiE@REQQ4C6#@t+E2%mBd|;j}W3YSYI@wo_VC*g^JHA5oI!Wfp9Yv>$)qq>t1wd++QpmQtp1=IsdOFAi zMec~jFxkMIHKYxcBn7_fq4-3U!6YV|2tmOxiD74lPV>^uUr5NMew%$?Ul`J|&mi3% zGVVIJ$P@8rE-qSs(QH-{4f*~wOm>Fl{0wW$jg@PV4&Yp_4w&6evenIePhuNH0D zsCl=#+;|^$3X)Z7$Ptv3Ia6c&DN)#dG2O$w|KzIrWIC9MTeZANp)enELjAr6M@a)T z629rX={=6orizVdZ5k!AYX!fzc>yuD1&iuf1v72)D9lnH!3W(&0EgC|S?Ts?mDaBS zM9lu8u{lfngHM4mTjVv-}aK~o;NNq~WP z7rrA=MW945KK}^oOL)+5)U=7tlxDPT)#TLOayBYx-;=KbNhiP5?MJ@Z{B4qrA)sH~ z_w8peik$|?GoB6(9OeYU*&D&f|Hnjxv82dN_5!`GGvU?+KRN_Bbf=U0B$tUd%-1js1GK)7&8Ks<^|}Pv#Dy?YMZa# zh*vYf9*%atMAIXyg4+Wa)H?PEyeV(`Y^Px58GWDK!UlzSF*yt(7%l`<>^>6L7&Njn zOew+8%{1YuS7nIiOV8wRb=kpQ>`{I5?LwZ*&V3nSF`)6d&(dZ+)N!fW{Zb34-wpzM z@X*ROB(hFM1&_6xr#n8Q=^CzG%v$Gs))=&iUbHZ0&2k7+ngG}}uXcd-lCr-Uj(^J>WglE*GJ-aWRHmk?biOrzo7els8oItCJ3-MrB0WH!)iyqji8O+5D|a!@TFf<(CM zg1$q&V#>OW_81k`oFVPdx!)iB{h5>)QjAlOSUu)=nh%|bOufL&M{iB#Q2LM!u z^CLLNggD&+YD|Y@>&GreP|9Lxp_?wK2M&{@rg?cwzPW_9mK}B1+vAHL?LFfRnI3^l z)o&^Lz5|^=nu1o6vj`~k_!S4iG^*;oc|-flo=WS(a!t~MG`}T;D{3($6wXsfF5mqI zolwTd2OqEAn@anQ-|_Z%mxhlqy^Mt6Tvm0zsWG@v<{N&!k_v9;72bgOtXd%pId0$_ z>B7b{gstnf7)qB?N@@Mm~GdrP1|;Npb|N@H}2w^vg~6 zM0m!i$Yu;@8Mz5>Xe?#iA-0O}#oM8sZ~GOTqTu84lKf|8K2WRV6lAVbI;Xz0SFbU5 zp4iIu+K6o6#Z%wlQ^EQqbjx(<&u6|(9`z*z9^$NfbJn;B&q7WO>dC`@TP51YU>kZRO0rSm>KjFWv%6x zkHn=t9NfISvlR7hZG!5NR-i%>_cg=|6}YF1k)e)+xYHK~?~0yb>@&FpSz{Z{CcN}}?edy0EY-5_Q{QrT;M z2}uZ0s|LK|^w$7j6SvTUs(uU- z*CjerycWg$y<4kR|D%Mw9J3zEU8+G*tm1m@en9>~5Cl4-$tXoUV$w|M714ec#t`*K z{Pxoq&~Dw5(X3+uJ>(Gv@hS$w+LjdeeQZKf%N+laHYK1SbRsh0GsutyiNTA(5SLYT z*ubEXYM=sRWK#gqQ1*9%3+4~0 zG6%T>9ShNxK!C~)rheVv=XAMDTjSTfWPFp^8LXIG3%4owk&}V?3p5)=3YteMC3)>~ z*b|){c-cO%`qXQ5dVMDhvFsa4Qwn(0vAAi`zxh}UA}k@^4qI>#eYq{^KfrG1Oa z0pO(pIKZsoBJCqeEtMBZS3Oil{co<2%O+QLEk|`;?R(fH?lQTvX~;pBb@4nXooZO! zR)8>Q%jwhpuZb^*)4ow%WAfu0J<$;05J^#2;g{}>CAORtdN`kQIjHU%1hf$jV_OjO zJ|S#!$jz73{Fnpw+#EN5KzneyV3}vJ^_7A3WM?Fc9tEG3nRo01gS7Mh2b*R5wf^O2 zLmJ!15vFgDwSy(R)~>A%>@u>df4mxDlxU>S0{MS#<@fRU7MNn3^`Re%wB18Rm6F8# zi9sp){ueVf06ISuif_mO1+KFJbq~mPmRWd-1?>S)mN7sj3M3x$CLZ$#*C(4Sk8fm2 zY3-L9xOXY|Rnq;cLO!i8ujQq&898(_W??ofMdPs~0bK4h@(NqP3CazGEs)W5XLMvs zGMCH~(6pWQQ^zACO}3v;DkAvD*JW6~@%Q8XEqZdB*7@Fs05>(JkQTK7_v+%Hr-s=q zB=wT1Ue)N?&Bd|>$SUOgYN$iKP%|xo7uez`VyI5jft;QmGZ*0Z07e$78U(aIj$5U^S4SY{4Jm$L%VW*$8y4OX?o!C8)b%et&%`O- za(#MyU?ImAgguKP^ZE%3@XDS_wjR*P>t@yOYy>Zx^a{wc619x{H9Qt9@O7$;gDl@n zYwf+?Un|W)B^+NDl=#W~`D-DY%K9Khs)+DnF`8yFh%%?-Wzn#0l1+baPJz}H51ze! z<Iz5aoLQ2uhX==V2|!&gwz z-U9cDQzdaxzSAa5KW%Bctl^fLm^#T)XydbU+bl@%un3(pN33zf2}`=#zRwc3DL??!bC9?I(?2h{2*^%@mXbOLi~$O#u!JOAjD6EL9qXn2j0TEL{hg{KEvl6wJ44#;D@zLZmCr||^Fs(u1t7WqZs3_`-Ol(qV#kawjo$6G9{j%B^ z1o2)9{4$m9n>ysHiV>I2P;w>&`At^&_TSX3-YG;sBs|Ck!yQ(ozj@jhy9Y6YBk|YQ zOTyl7&f7jTOxA?jN+~9%b2%=`d5}y?6Y(l^+$z-KY1lSK-~w*bJzC6;E0g}7cg0Pe zS|%^>v3Ws`BR1TO3Go1&{;K=4iOuxa#Few4hW^dd;g@7Q+5jN%#Po1`QClnuKEGV? zG}7~z%Puerr9xLGWG(g&J}342{ewrtD(LoPw}sJvJ!C=DwzB+%Na6K zOktXPfR>W8%LjQj0*iVJz>BziS?dfOBAx&pLzb{MkOzMV1T!UPRu|aycwk_O&3?4m zT5XUv^On65k@!-WYrU;u2Z#SzXmyr6P(*h2cu`@o(Sk#2_xsLiAh&I`pNM^;onVzK zRz3+8)LQ(ZkwKhZiqYMpgzP>7|2IG#Z2v`tOLa`>ET)|3+;k;dmk56e%gkjL~W3Nx}_>4MYxwYVirRd&pJEqQsFZk2atEI9wwMo2DQc0_gup z_C&BEG(LDs;e$4aXb?Rgy(`e=DIGxN(fb7>T}j?_Q#23qL#`fPAoQE&v!;R4@YHQ? z;S%(fvgooYjyB}))eIxIFJ)|wam;$hQoT_WY{{8--hAl|q+St7v3_rMT-xcD%|MH3 z^%JV#7eo5WB7SlXiPU|gE&Z4)E4_X_rzJb{DL&RM)9Q5xx(uG?-k!u>_RrLd`djXb zG_x~EOz5}Y`E{2+P9Iw@z&Qn$B(dt7BACyi!ung}6q+BWM$rmFB>!#4-WPP(r29qA*m<_IRvZ|BX2lH9T)lRU9}AL z!i}7%5~2fMXLF+z6T!jJ%2(Zo=EWlpy05lURHbd~J>4W^2?+;Q)H@e=W<2QX1QH(5kq*nwm*`Va;~9SWvXE%w}}a|Ll@= z)74QqEyLB1b7j$=_f%u8ztIoDWddVxjNcDF=$;zT=Q2H2ZGjOYkl2tLTQ+i^7O_8_ z7M#^2S-cG;vDks!Gz|x^sJ^=w5`lcoUs6X~S!z%?)>JET@8>;Qz06Zer(a{1%M*C5 zh@R(|SZ@T5PA@v$^FiEQ-@v~TpAq_FK3o`OpUGhc`_M+(`?|Ff~sn&VimnrlBhRM^V}8!gp%XF_=sHpgl`5A zBFMwlTH{W^upv*ty=o@czy_r(W3!vTbUpF6&-=c+BL=k;uL}3Jlr{Uz7tf#7m|Odh zSJ!dttws&&^d4$#HmrHs%VJR zbJ+xmuhzQ==i?T)d<5pu*}x?m8>;B#qR-`mC8s5^2tX5faK+UVH24KLIXa zDJ*}h5#SbEs3xVu`5vH9dh&r4;()Z?Wp5fwG>n{JikGq zDe%lX+OL~UhVygWn7LC6k}7uL=x=q=P@q#bqG1_~>pAgx%byG+SU}t_#)28)Uu6Sp z=q;b)S2aN|SU~Rd9o7Y4JBdD1i4cK-EmDOl;Fc&}Vs{P`RtGy_No5FL$4pm`gfOy5FpN~Cf!K(wm@LnAa0_7 zKUT|;)os|&vz}XwZHm_Zg;}nK(8{Ko(f)dsgi{NBrBJr;gqj`t1cLmaNtfTJ5^o75 zK8)WVa8%eOy6T7>00_5w(=mOt%h`McsI#EA%yIvS3aHeeLPK*daU~`w^?)~e!k?}9 z>!`RW7dx)48362J#GC^t!{uDLM(2zIS$Nm{YJqAM4F^D`+Wad&dJ703lYm5~2RUQM z84!vsO$ZAKIs>}q#w`Fc9VC$%$%xXkuTPC36JAWZ`Pl=1`gmX|TD$q4B3xye*%VDg zKa7Z`+!?zc7sBH>D>ueuM*|#DjlJG8b01b&&FG8KW;-XVe&n-kGiy^y-WFnfy-fXb zQ6HOc2+d;rkek{&u4$N@BcX*a3xLY&Fk7solZ(7Uy-39c(8y#oMC|~<`V8_gROht_ z2JphAvmhigtIPu7%lWSUQ9vC-*GKA^Z5;zdI@VHXg2g~o#$fjJ0dc=!$st+vVOP}! zDESx!$`|MX6=&T+<66KZSeaN*6?4*aD^d1^ceelKLU1-8xzxnhi-QGDYPN!6pjM>D z>%=rV?OseTbn~^%D0f-0D+{*8jlc3)iM#-l77ovZ#l0Cl8#^J-lz+|lf`)=>y3>~e zv5jp;wL?4U89-JzP{4Rrpd2kz0&u$G^VeCl1EsNB*YQ=pYkEVbH|VFy9HjPmjuCHwm@| zYgXu6e|Ry;<@MXRKGOP+9>36_-LDyy5Y&CTE%pw41SsH0O>6+Bd3WQz6$uezzg9=U z!vR14?`Au^PvqIwzb=06T~(w~x8HeZmKf%|X3=kz5XsAI2r98z%P*Q3kcO;N3@$){^sUjc9k8wyKei<=TTnBAZ~E0 zCb;BAygh}}?9%i`BEBz3dmaCu;w1^{*RJ)FpJ`dDPt$d~Mx$U6kbvac*tTby+(Y|l z%ou{MoGci#aoq6~Fs09;Ti0J_gi2PXwDsPyA1{P>v=UR0{58W;B$+eMk{zcv5U7|R z%vYZRsd)OkXg5}B=Y+&v#d~CGwp;@}NX@O73=!K{<+a8fx0dAAl}L{59j<+&_gsw- z;dN=2`p8BI)27otp0c@EB^}81NNsnr-TTL2WybVcVF|MDUQeJ!oCwJCNdE^oJ|L`N z^6U%w_?S~HQ8~+IU)gy3eL1N}oIk}nrq}HYe|XTSs3^&`BcN^rYRftUkd1ABJ@i?e zmJZ1_-&;Zvtovi5DR+PSEjz+G6Ca=7cg~&ke_r)_XyKqLfn)1QFEnFc%7krU%9AiF z4Le$CQH&?E?$Sdf(Il<_f-t%PKrm~RMP)wT6@Vi6s&k%o9S9y9gNguEl*^ofXT}@; z8xVyHBoB53i5h%FaIoxtxHw~12h|__nB8*>yvurqwTAQ-Ori=Poy{9jOm;r5tF7Lr z&=8abKT!uQ(j!KEYDhd95w@%HTU<4{>6CVSCBN0Y4`{bk+9Nx5$6)2&21k@d(Z}h@ z=|G=WTiGHyRv=aI=Nvd&zu@B11*C>$c#d|ksl6_*H<{Odf2w#F{+5GQN!0)Durcw2%ag{lWg8a5`Yasb>?}8@& z56CX7t|)3wTZMTui$*B`gvW!k@7x9YC=w)bj^O6-7uFN3W6 z{UZ?1rvOC(3tPs<#QZJ=K%JT#Yx5TNRDScv7ZZe41PK6ntWEuL zYzi#)QUxHy8`+b5BoDl=E{|&k>a#2WyrSW0uk*!#sZ;kzX5(8rRU>9eo;|BErQa`Y zBHZ}XYy2*{DlI%$B3_>EJkq@;^{0`S;b}IOW{^Tcdr36tyxE(veFA92lhfRs5m2xx zxXyFpNCg*PyaC5k3JA4qKd(W3a~WXLZ6NPMJ@dM)tnUTdf}4T$)ZSfr5M4B*jU1s? zo#A8ru?zKmB?W~^5`S;kLDY0(~Y_rU5sCL;uMVZOr?91pYN zS}1|v7>-hx!=;JxpQdP461FT-{iyiJ*Wsh>EyXBbAY^#SEtq#;8Gn3pH}gvs25?X3x%Ee+%bF0P4!3 zi+U)1<+8QzO$Pylt&i6hf|W)Mff{)Olkzjugwf`mY0>8Mcm^!qpt6#i8JgU*TCZIN z@85;RHBaa(_P%gemGZf^3d!A>O$n%WS?Q-{L}+Tye&mm_L&CSQ;a$NOgRZNFAH1_t z@g0=|wj^)IiiYPnA2RnBVwy`N5OEowmiv3RM{_*S8mM)Oqp&jbNN7V-(+T`(zb zUp_p}pun}|*bbxC*+AW&TIi1h2ZCk<06U+h!azg=pZU3Ku+)^OO-iI`(S9C`L`XCl z3=euJo-2~?^B6H-3d$McVhz#SfZknslxer)q&7LG2uK4-8dAE3S;oTcBFRvca=$=8{34HEAovhQ8|*HsmTbzIXIv?ta5ZbOnzU zHgbqYils+eWLnu>3R_2FpV7S>5zDPMYxB7($bFDTkPuc+5{&DQl0u=2OG)wwmCY$4 zwAW&fSX3lxrD8ESj(>I8Ad)I*{YF4yOJNhH|9QY>Ccj!Ky+JJZwLKmYF1;c5K%;=Q zAIuIxj+SU~WS8!=4I04t2foc8{S~ z%3(7Qs2jH@nqMGK(vV}E)t?m-rmqgoWn3s5@Fc!Uib{R_!Ra8PrIcu1>7+@ z`2(|FuAf-4BqoBpPis#Pd54O(C$@=_e(+TB@mjSL@iwd_-5a|*xk-O84^(HPC_4&9oK6Trmk0Fnhz_0KB-{^0AGbD zfSR;6v5JV}Cy`JM!*=)eoy?L^Qa$rg>oOGnL8d7S-;)(WkKv@gptt;S0}aN>2I!iW zu&|bXH9l#ZU$wOpVvcYARic>*)!%~qrN0GJ8;2AJh}j@s98(ClG$a&r;%AYdenl;~ zaY<2rjJ*(Q&q4IWi#wNZIZn%<(L`OwWcq)|dh4*Ny6ycN5CLgKy1P@lQyQeZJEa9A zL`v!I?(Qz7JEWz%1nCsvH}`WM&-c97`xn=>*lX{-)}Cw5F~_*?&$za31&(#QJdHxQ zA7`0kx?kiv2Tz{vO2ri}B$=1jBlv#Wj9(_A|I(ZmaETdD`|v#$OEz*Y_Lu$$mkLwd z{D_FgU>qh>Wx9vsv;ubu*V%5`yGF_9AkSDxMJ9Co@;}k?BI(;$)j%QA*}_e%f-%cg ztOUHr263bFOUbDY7o;U8!K7nNZG#1qlH(4Csu*gLnUA+Ta8|$A4EB=Axcb^5DiKLi zUFY@mK&)rVZ2t6jj)c?)fw8?wzuGz*I0XK&iDwV8%((ALoo zx@&Ui^4|laO&rA0=X(}rxKM9gE2t?)i1u7OyY)}D(I-h!e-SKnS{W1#A@~CCUHzcz z&$P259}oDJ30K56gff`*I>|dq%Fx1R2TPZW6Rv{Zl(Kp5^rWPeh@s+A3q9F=^jx$q z`k~ATwqtFO@>yZcC%u;b;i9}@rshF`5u?O2!_l~)u*4*pq<$g8T#aC#TKUhv7KV`I z>puIb4`Q9g;xk3AY}hG9)@>#i3$;4O^;C5Til;p{aoZ|gL_2)bO3R5}Ob7u|Bxur! z5g@|&z8YSKCNiH4KHeta6dE{FaaV~(V@&^svj5|aftO!l_NYz1YKR^5H^n<(BEf2e zUr!$dTf>3zF$PJKodvq|UA}$1K!w)~m!-1i0!hmT9Vix~I*ccNe3qOFChBszS(INi znjBWPfte;A;_@F~djP(V*dKHL=k24VyCi2ITaj%H5>2XsC~ZTz*FO+gPw!Y(&<4g5 zB0e;Yl~cPs9dR`HC?*ZT71OQY8`*pA9dqwcuK1OhhPXqDK8wR5!ymyex^uhOUa&N7 z)lI`qu43w?cs7}Dmg4=JN$TsLKQz8LctK0J9ma>t>E6|og_Ib&ewX~Dj}3PQ5syhK z^ve`RK-9npu(c2xNrbdO5+zJ$0#wNBs8m)%kcJ33e#oRWY$;8)WhYet_V<{wst!r! zmPhE8r`vwpqPxb#E?|8UAmq1oFt3txeCEt}AyrG=1cs9p+Kk zJI2)C>hXo8kM(%l!%KG%uLn`%SdAnkOww(!+y7 z`4p4X@EX&BVMq~T=~EX&lj{$9?Lr2;r32IptFiQC504TMw(@THIH?1-5$c)pc9wsnXspbPZyuY=`N^G}+eSb2~6Xe2MKq7sn1V6-)dh z!y0ok!Y}@l`+f<24H=HjP6M)UuErr;3K2&F*NYq}{C?VaXC?T8(l*SMo%c3BK&lHA z3k@*F(d=eR)%z7`e27hC7j3lzxa}CWikMjme~w(n%$qI;^44bCF@&e%H_m3yM@$~9 zXZU&VkCPt?jVq;uh#6UPwQdUsXj#{_nB$>AiztJlpi@^CsF1i!oy zo!&l0)~aw5_2tM+TfI3HFpx1AnGv_Y`uMZ8zRQ`>lA$J*)3StkDQ*?ZFs+Vs{5Oh^ z>H0T+cIzq1AJ#<~W&lHQ4v}=?@Z@vHDqM$sLck7!BsZ1GPgf9><2Qre`imT+pN>iY zps~KOpKmy5qq1R0AZGlU)nrSDOIg#jXr81WE)U$Wi-TAJ3{L59sa!rnHGeq#YDkTI zw9>>;6}gd^=FSvahoH;xjf9lsI%DrfnK}TRhKFGNxWIb%t)LMPd zmDeIO`@#;Hv4HX5llt;8P#7aXb7+sHmRFRGOAssbm!!BPCR@Dld#{*|E3xMH2XFijqBhy7 zIrOvJ_s0v}X5Xrq)8op4?{?wWpA7!@i6AqnGwI=_r9X&e4ta9UK&V~ju}DriL;)kD zzffpy`op(Qk=)3VAhkUruCWzN!umi)c0GeL1USFMV00S%Ta z?Eti2(-SpaIvN@p#xi*$tol*?cxS&Z`C@X)CrA6fyiyGSnUsvnUn{z#+claRaJkJd zVDUM?Mh4&Yg1daUXeeGf%1w6&HJ}wD*f1Y|*eS$tGJ!2w1Y1A*1kyD5O+6QNqWX18 zeLfDH#!#*1K=mMNa?K2ZP-=&i#A1asiz%%piDJ2%gYBRxxg|7Btx!$hiVU-w?o(j% zj|DkCvFkNIzZCxW4pz0pA&j6h0T&>$(#b@CJgWTNL{!8x(z-kvzWZvwOm$~OTTZ_H z!>_w2La+UtbD)kG0co+g?{;jTHP#A3{2DPmbdGCAl|5eYId^o!S-^wC7#m*KhQvkn$kasg7$e^=Zj;E7qC#++Gh2BSslncM& zgo*Hq0SB5x{xn$oB5?@0VZiID0e**O;89Iz7DWPne|*KNf)t~L^kv?_#A}twKoquy zb-itEhl2C%11+DsE0d+r+yeZRHp9$NJto}&=b_C_;DIti`TcoS-E%KcH1@y zI^B5*gIE}gt^wDrxsC;Djb1g$OI^oVLU-PcqlRxm%xZl+J907+ukA9ugR|8QJ#Y3s zF}v2uPS@D;48o z@`U4fNBBp2tuJPaGt6&WYEIA8Loec!1s-+0O3}yg@Uvr`tbHl$b+E?a814jNtIS*F zd`B#7bCtjGhabLjauxMT7HOXmLTIS zqETJ%zWmbalsNX~JG}eQ;+%OiEnD5{YDKNG>*{xP}gsc3{s&aj;5M{ibHvkZE2HS6 zUbi?K`U_XEP*)e|VuI`vpP`sEzz(XKRn3Dnz($wnmK^DcEV{^qVhKd9#m`{H0@UHN zrDB34*MTl78iV4^pd^ky*tK`rDQqLY$oO1QF^WijISg+&@;hskYr{5gXeym4YD0YP zyZ(^dk4_ugQt~J&8&Z-;DL;MQW)L@N{8U+*%dIWkq$NWAyb4*7L1w&0O2gbpQj7F$ zF2n~YLBQNwNeDfU&<@I(wa1N1!&-tcAqRLjRRULsIhAf&IXdN*tC`G8@8-1m>UWwG zQ!yzlz9r)$&!3{7`t}fO1BA*%f#=1pGspt>UZbE?F-S!G9h-SV{@pl8I@TGcf)P;>tDT;zr*$eDq+2J!BAC#n}U7Hvl|HWT)(-!b0hsON!|Q0In6tC4^(&ZZNratJN86VlTM-c@Gu3TA`Ab)5hajUoAe>_-mVAi zgufoI_GqBeH0zEhrbKEwabGc?ZL%FQSz%$YFH5+Nnh?n@MX0Wg_8pod1BUu~WCAXE zYNbrVYc2KXteekaBqPC?32pZmYd@rjRw%5^D$CkBq>D{0FKER(c(rntVe001TE$wy zPP>_hh(P&!7v!^TKhz5XG}=_H`A9NzIgBp`6*?H^U?7ZEVAjqeKpXn^uO|?Gvx(Q{ z{Q};pP+=}niFzza^ODq3FS^Vb3aJVaL)un&+U7f?*m(pCDNgHppA2A8M}7o@iq;15 zUNd8u-B_<-Du+z6%D;PwTtdy7h&GFbfzQxLuWb>W>-~Zmgb5Fk6K=lZ$cKP0f!Y_g zZ1}BYugLmu1lW{&A?gj)*Rba~V242&0|6HTzM?$FE==EGUKjbg>L=t#ATU`ZU7rrJ zs{2RSbwB}v@u_z`#iIWtYQXOYQYLsXIbHO%a4(#|jP>u~>`O=(c5jc%2?^oIS-Kw$9rE z0Ngn!ivU)LpgAZRPmDx9w8XXE^ZqC#u4$0E@@Fs#y}$iKPwK54PY%R865K%Qi3?3b z2xxDykcSmghlVF~{8(=@Te=#9n%edAH>mCoLtt7E$kH~bcn{vCzB4-~ROS-FpqU6R9&+?W4v!+s%U!BER^9+BJ>>80= zQhDr5Q~B$AU)|X@#3ZetIh*)cY$p7XMM435X7pk*m;&DOnd;gW+1-F|`6Vtp{eFV9 zf^+)C&m<^(6#B#1HF4*;vic+D5)bOI<-TSv4LgOPG##xI7MyopT6Zbuy%_@89_D#H zmk3BL%DD%HdvMWKv-5WTx1}U*C0)9!ZK$d?k8v}lGJ6!FP^_nCYJbFZ74<~fr+lit zV>cq<1KXB|H8k0QUn7?v_i%f|3dj!p$~yI_7%ZFOkd*k;THPJ$`cK4a28o?tk%0Nd z<~ubKwhzM}uMVmK;(KoG7WNF~66E!UV)ySf=HBlXCARBi$XPnCv-h<}@8#k}zq-P) z)8IoCUm!W7+X(bu|439`TZ|URH{U{yt8D@d2D8v?BSdoy^n`JEjDveAmYFdnsztI% z%=%^%f;Su=Xz=GRk~wV?+kv@_-MAa}V6~&|2$baAuTFuSWT~DCzY$DLgYHZAG=Nnp z84NX^!LOMKTxug9c1KgF(R!`HJ}Vj&^9P4>1P=M$tqOPo7ahP|IBCqIa4m>H9EV@T z+wZp%8E-W#>~CxBT-W`~b`UGH4_wFYXOPS0B@Hp!ziJ-HNRll7LDFtHnw;&~qC+pH z2Dha2g%&&CGx4;qJahYkM`x;6-!W*|>s62H!>m{%Dmlbc^s3q+Y3*U*F0VtN~ z(>AE!)XLVmZa!;)?6vYiipY7vI0TOk0&3g_lqXL13m{J%2JR(BuuRq+eSLa#1{LaI zP#k0=@d2`^5!&Ctdz%FP46fLHM;D^1wswjHg+YHc(HV%E2anzCb4(qGLlpbN@l4Mg zS`Vo24wU@p(dheO zQ49~ViNUA_pfL?uYKG@|gU{v-J}@0Dlt$D$(A{s9H$@)Fh3RbuldbC5a?T40%Pcn7 zV5B!0b9frq;=z_Bo|?${%N1ZB?s2=5kN`a=eM6&-vP!P|Mqx*(uC34e7~(x}qGE9k0K;L7jGis57>7=6_@K)c<*hCtg6-tb>s;E;zFWLJX#bi+liS*OLdgzRq+8dw4fq1el;S54inB56x6s;uvxYFtt2UNMTkODJ> zd3=NbM9*VAE4={JDZC(JWv-aUnk0y**VlrPKRIYKJ zUcI_i)#PVSJoMMw-FLGWp|+%N(P5`nsz@az$*yofI;X*UsW&NlX;p;H0&CrgYRQ zfL5<|yx8!1N<7`nGn!cGC&PnY+xA(quO84>+%#&OdKjRdb6e+@q0h9Cq;jS2?U<)n z{zKIueftUGj4;kS%Uha#B)M`yU7qmLWS4XUzsi0n4q0*Thil zh*`{4fF<%NnE?Q>#EYW|&e+vgubsDd-cj4fZBJx!0l2X!IxP@UJny1JEa8Fy$x-{k zmoI8N14S!eF1*^Y*9gEW2w!{g9HWcc=6rjoTb933 znn~jc;yLNYMqDr@av5c7^on*ggSa>410kx0O6DX(eWA+1F;~jzkm#?F#qzuxi3On- zafwX>>z}w@Bs(4goQTw68B~w_I4aI%t)s59ji>_i!k-X@Sipl*ZGjm222hO&zMqLG z1r%DBRWz~_&<|pw5-`-iX$G>piF1nr64-$zzi$pmX-tF+XkXS-$L;5I?@{Q+?^d$*)v`edA4tRl`exGjZ=|MswS90?+p-2WLJPkrNRU~}AFy#s z3#8jdP3q)qe1dW+X207I5dMr4_@c*yi^ANHk&sI*nxcCsfQgh;KG0=Majof{;nI26 zpYQIXFh1sF=OXzK#UTR{3Z4!}y+yRx@O3@4$O}IY!8eiV%$kZkhK;cpUlp)Ynz>n+nTuMu@J2o zOAv)vP^g!&Y>RbD5J#gDPJ1n=sP76?4v0D&Ro=c&Do47pN`gZr-0v#WABy6!YSM~H zcD-#o#@Vnti3Wj>`+dH!*?2}$(Dx6ujM92Q7si-cbj5LXuA{T-e^vWJqfG6-Y0$<1 z0G!ouAQhA!&t%;g^tB%#U*cu|?;3WsFv{}O2(^mN=puSC=G%c5fg#HqIqWDy_f{~> z94FfNoaW-C*wa5u@E@G02FeI01+hwNu-n&0Uj6D!-4?F8s@lDwtg4On6y2e-{cK_r z)&7j|`8Lu&{BW2&q3sbZJuYHhx3__(Ytj02nqLJz`LCtwc^<@C&%IJy=Ikr6_V7Fy zzHos_jOYL567aEuVya!AfbS(2G5R=rx>fgps(#L<%5OmlYBm1m4x>ktd8yaiH+F~ma{!{ZiUKQD=y zeWCxDSD9gI6vW*y3_rJ?sDq%8YWY=B8c&M6ueR!rT_hP<@K{E5J%63NE)eor< zzT4I0a{7svE2zg^bypeJk-wS>KTPjF32MM6*e9>lh|Vm26{AwuZW0{|nVcPNL-5`B z5hlH3L}9n`D2>W1k^lZ3hJJGaLybhz*RXJsDwYvhX>3om>&^4i;mt{G^@yY>_YtYg z*+Zl|^la!oyoJ5Svpa`U?X+?|=JW3qrZpylB;dP3Y9ZQ3jLkgX@iP0 z=OY{Vk3=jiqm;}alGJW1wN!ah-c~+djO*k`oF@E~=)4#1qun{$VM}?e|I_m8CUn>P9BG@`}YwuX(p0S&cLK8|tc_t<2G14ppl}S>Fh>;;NJ?G{03H3I8!S=z` zQv6#Y$|=j@LG4m3zTbi|qW7!K;xcpfG2{{IakFAga<;KTjNcFgZExFhWAGDBC*BV| zyp-r&h1Nk$rB3se4-`#i^d(QXytuGQ5X|GHKwG8Z39Vy4E)gM__11hPT}oTni=KTF zTt)};1qY!i=uz?9HV&uAp|QepV+jxj0(QfjmQ3l)s23>s*lHHzC90>j}cGV&L zB<_d?r0VP^@we3NmDBb`VT5ewPs$ zSM!t`UCSeH$efvXLNNP{+o8~!_7gkUlu`wY{Ln1#%|~@Q4tmzoEqJ4M-@4{|zz~RV z-shJkMBaMP_;5F2^DajM@#cJl96&GkmFbQSnOZLz5sK1)b;Q~pmqnaLsa3oAsI6+B zI`&>=&ah*I%gK(V^V2&3T&kkP} zF1 zwF;W^sI4hq2il3>>n>D|+$HWuO1hzXmHEfVZBsk9ZJTkHSATL&f*H85TAcY~aMXWx zx{B&7nN!M}*Ycze1PMy~;-k`k)8@b|Lsn^i@`cnj2&!#0DMz1AF9L)1H*>6zlkV1$ zO>Fdq`_m%q8W~-$dRcHY|Mie%TKzz4`>Jj2i(OmAAoTraaDBs^VNo<&{fCne_fI)C#aH?PYco+(i-)|b5|vBJW?|x&155nmQp>T8StdF!$7Y)`$hm*f z)y`tzR~|%7z8@5SO5-Xn(hEPL>5Pe-*1Zt)3zsJGDO%2*PFgVJjggZ}o|vdz9B3oY zBIQnQziN_cR+0EN`wO?J&KW&-JAc@Z%?nuIdzf_MI}hQOcQd_Y&8j-4ZiJs&2HQ?T zmwi7hCdy4i)|Zn33-0X@6K z^zm<9g*Em+`h5F{e|*2PoG&VncQ_~xP>i4?m{rWHa+=>y2-?|~?4FI1NT9aLnk^_z z!B$$5#AFGV6(W5oUYl^`bJUMPBYul=OHJPPB%80!ub*F6BVDwLZ~5LC*mmNHVeWrZ z=`o`lp;yTz)hkP{QpDM&r2|&G4mIJM^XNLJCiyCfK)ss2XV+?h9rreiMwtvC?yb7i zq>6OZJLgE!sF?C49vD&hJvUp__*S1=MPFTT7zK71y?CGDZKm)dlU-rI05iK|7DtOt zBjulfN;j!LqHfhTUk$(Wl#V&%37_he9q+6~y}CPVT*1Q@>b8}7yEH0u$}-#IQ^Fw0m)JI_(3(x_fm@EyE& ze@4Z8F}#^!Eie?anN%0&gww%e)A#gNqK8pZpvLt9$w7xc26=0R8=k$d}&-XbtG@lXMJeCBqqFTe^%5-0ovCj zT}OtJ9A*kuX@;0w-}|O+d-UPYa9p~HNu3Og5xZeoUri@j-Husm*WO7s3d z%aHIDRv4K(5L!+QDfRDAygAclYHM99?kD8lL!#0&*KryaeHP4c`9)vP` z+`VBFE<)t{!gE6;y!ltHTq~U2^!l`qVy2eyE&QJZkDC?iO$m84(;!mR3Y@^h%C<|* zz3;8(i6%vkN)FX{1fF1TF*`}@=ET~4{ z@iz_&VyKe0t!32{7BloZvb}n^Xr}A=7kh%(|y{nFCUn9bAuo^#cY1+p=(&86VmZ zyy)&Mou50L*uque$FjAz$o#;$Idq zm;TVH{JnpidxGba?%qkuz&MEYb);M6r_yrz_lX zFg{AilQ$B6fA&B}4VV$kezupNE)NuI|(?>5-w=#urd$nTl)TD}%jK64l(WiJ~P#ISQ-NPCAlIgR7%WSSH z*Ln2naBj624=iX#GxHMqcy~jV2%1J)(L$$Qdj7NJ%>_>&WzlK!u8XtzSLb=fqO04? z)veQTish}_y65{L14Gw0r~l~6H!!MC%3da5l`40O#@|-nzuw@H#u(3Pc`sauOeX%r zn$)y(Ft&f}%b!1vQ)cIr@5gU8-*Vm2*XYQ}kmxW)Wkq(h3j9iHvd#Idw@QzWhw}`Q zL7qmGyrkMT-)HHi>~gYKuT8D|agHT&J)$vfIl#oC#L{yy;@kgKK=?oHC5riBW7o!> z-kk`n7tqGCuF{(DQ0(?VS@fm5T=TGz!i|T2!kea}R%5lCaJArNLoyjpW;H^!)EEsd zPIl>SdBpMlFxI}}V|;U_GJDdIaiF$xp`fIxpsv&;cvC}XO~^D7GR?!37Cn*2YRLFT zu!I_|p9WWQiXDaiH5u2V4RV;Q(L>o#UbGW?x+8{Sq(~4#^Cxw(k7G3+5&pI&6a^w1 z=cY1n_P@$+o#$0TEnC<#cM*7C#&G=X0{H2BKYaK~dZ&VGc zrkEF7LFcNyU$%~LE}oLbVzcBmU~BD$n}bnrdQSSyp06^L;lNzyyzt?;o^O`0>=^di z?H7Scg1sS+Mccx3JY5S#KP_q{zulZ;JEp;fUTSzY+`K1&vMICErI4i+#49%Zn(Xqa zT~^b(#8gMfPZ95IsHlW!v#k1@p>u(4N7AdrQAlVfq0ot0g@3Ag{KEX)eoVf_B->0k z3v?YS3X38k@-Gz6)_<7F?@?2Q4UTeG?W@UKnUOJ_63UcNa@I)_pwG4}Td0dZAKFvZ z5hCuCRVBI-EcMQ8+Ej;^YS6Xj+x_{fiX*djxayK4vRyWcv(L%fTW=@csY5?!H9jkg zAI41z+^1GkbqY&t?m_&E1GJ5}W~;s1GZLlPN-2-n!I%E7x6*Z=Ln5v5_pH6?i0{}D z%gQ4|t4?b4?o6yhr(^DULe6{E0v9&F(pPO!wvgwc5_O`Ic)#jK6aK>$^VKGWvIw5g zpIX$&TW{R^a^Xb0NNF>X^{Wyge|s3$PzS9V{y>ELaVOjJp8-z7{j=NJN~=Q{Ry;73 zMx2CgtRDtYou;QMdLrHfon1XcJN$tUtzSO124#) z++b5t{Uhs?Fu9QULr^KabSV&jP91b9@9ieX@(DTdDUIZx@$J#RH0<82IKSiBVMt86V`kW^^{K%*4^S};MEitjS*7K@lCp3MCe|(`8`ZCA z>Kle5#VxAUj760Tm_F5Y!c z9`nt>MZEYoCas;xGmgLS0eLI@j~_pz5d8n&ywWH^d|>+jKJOcb6%^z*gW_P>ggk8j zKF}h(;PIpni7ev%@1cL5alI}ZC@X{B|9sbfzOuhFLcR3!GPe0Q_VTMc4uM6S!odH_ zu_EYnl!p3ySFP?QVAqwqo#{&QTatA#i%I6%|DLRap3I2NxGMIbke|rEG4$`pkG+IW zG9Ei`Sa7-OVOLAQg``Bs2t7PDfCY3IcT+pO+f4 zEY$B`N%?mLz{79j2I{G%MkcbJNjVW_EONn6VKKTz0)@XIW8EnG1`vI|09_Cynji0f zqOft?gYI=9Yren7_}GZlGZK*FllYw=)j$J8oP*&k7FEW~2gUzhiaxr?BdJ_8FX*Y~ zy8s$Q$+s-}+^qC~1`O7WpuC0&X%;7Arc57288-L;YIcFZfZsj*rDttFW0>oeXWEm?Az`(19T&E z@eF(`py?HfMY3@)D-bM%fZ|-`TP$lszdvrbpqE;YUELTq0R9-#ie~^Ffqt^*Zi@JD z+1mxBzhljx9YH#H!$-8m3zz}BVUQTny>5Ql*M{a+0W~ZS=;P20DrY1XpkVXy`$ucW zK?Z~!WKSs%fIQ~rm3#nDs-dn|%;!LXL`eNxZ4dapF@1sVY7%7FCjlMklU<$I<8&c9 zt#ud7bH=wwO!aSXx8szMZfJ$g{m9qe~E%o2(XDkS2ah7 z9~%kdIilo?AY@6qRO>=E^H7id!ZZiOmA3b2KyGZx0~i1iB-Wrhhx*~DCZx}l>Gwtm z2_n%v;(gTLHSMhwY(8?%rAYfEMUR2UMvx|+awnTSO9>(6z)U8FV zZmfv&*a}mb8D$c>&!};-00wcrYj7!8=l$FPj5d$ju0$3!F6I!@$<7C0^<+{yveKS8 zs@oSE1=h||MtVi;rx{fx^DxF*X>9(AARuD7JOV?%>B6AH%N!Jj8ZN+neI16)%CD)* zxGwzPVTT7x`I^T75G$$En48x>9f7B%QRVwqtfZzffRZ*LYhxx99f5XG)!yIROgwWp zvPqjz0qyt*g3`Y&4m5|*yAu4LARL+YXtzOGGeXKAgDs0aEvieR+2zlX)Lr5fxY$$= zL1CT%8{9lc&>9Yt2vWr>oC2(?c|A|?>-jAJHR>~bflI*Y3IzW6Ir&Pfhx<>bs~=8K zfXC8&J%XIxl#E{YdRHU`0H0T=$w5PbHtZ;Eu2sYjuSr*i{!To_D9{4ru|z)imoETA zA%BQ+dk)g$Z52=NL-T30zE*1@xYTOkBwnn?xiy4zGx@Tae!%EV#Qx3}FrJV`H@b&s z8*JxKftxK=4r2m!t{RL&opvP`=#EA?@UXXBe1y|n2P4mz2!7}DkZ&{Efvdc8$l%vm z4c#Cx2G^E90d$$T7O0FeDjXmR0PWevqHR?J%WIw}Y(_aTQAh*Do=-^3R=c{pjt8R3 z+QNK)=ivr2QoP`D9rFZr`CSRy#IZIN?ReH9*4-CUBWgf&3EvICJ-E5%BSNPt2D^xH zI9pI~fdI+HCsCF-Hr=iM8HUSoUBrbycQB^EojJ)^tooQ}MA2EwKi4IDN8IW#nh#~b z_52<*?ywA90O}QkxAB7$Oa7g-`IwcU{8}gyL!FzaI>Fp_^b*qMqAs)ol(KVx2r`H} zhNFs@xKI6OaZ{$vnTrq;4)h6T-I;9YHTDPiP{!ycLB>LsMzeGLqBmbA&z*gItu#?w>fQb070{77sO^q zhV!td?}(J4KNkrD#=O6?cl=ARH_Kw7*IkfHq0eA#?nEm2WFC0lqfeYWo^ zk4(sBA|cAwBY6uH4fwRQ@?lJkT3WzIVhgs#$Bv`yOuV6%o zAc}1Wa}f$is0}pfOVt_O@d9&Vgc49NRrFl+k-OA;u)c}F$4b<9*AAV3Tg^D-_uuK5 z98AY#s<(@1<_HC04Ft*`Ng3q;%FVDD0#zz`{)%xI(UdhAAouKTknf_UXf0F{tDXB^ zoHb@*Um0nwk4Qw0s=hJqnF{KHGKED<4Tn2*vEfIEU#2fgm#NcA-Q2_p*Z}I87v8zD zg!$vE?nYM(ZvR=ntz=;-<3by9^zfO*cA;;MmzsiYtMpn-t~~UX-eez9zUNb|@uQQs z#&=@m3Vlw`-1Jr?!DB}?zxyDjo@2Bn?(d8{i4LpsBQA-_6R(h0yZL$nJJPc|dOLbJ zX{+R6xU9B+&~K3vhKflGMKnNh7_qS#Z5CrThM>Dj4Uf;k^t7O}e_Q|1OQ6$}eBCGK z;8&RGn(G30Q7X-QVWUiJL&RF1#wg0?Nyw%T!`oot?`#IbM*mdE zK}^i3|4$@I4%uNL2(cXf@97GVgI~T3{9mZ|k>V`|hyc}LvvA!1hF6e4lo}kI?d>)F zJ76FoYB2%`S?NDbAo2g5j=(p5iwO?em~68B@3&VA{K%k%)wLHy^xx1Hoc;wIV1ecMwYMW`Ur}z`(z;t#(aF*AN~tf7 z+fQ(3N@dm8fCzR`@*9nn6w0>L*@J=|X<2Tc%Hx4&YKxk8s?^?HyETs>jUT?^#D(?d zvDCjmZeoxKUt`f;gcDZZEhhY|R3wl=XBmgm+3;nbKTJD%Df-;8Iw{UdX73V}!uzdc zqY2%TE`t_I?mdUf0uKOE4k8I(T5ZJ#(Bv%W6i_R4;VGGwt`3s7fdui13=<)9m$TlaH5wb&&F$^=B%nCbyw0vOcRjOyw0grU4Pyo3akcoxZI-r(}$;#Cc9MO+^snC>^k-fVJ%a8>TUFbO z5nK%P9VaOKN7dq5fXCAf2>ky@(tifJo&u0VkpDCIU?6oPwFBVbjqg$<4bHOsz+uy~ z2EdS$K>90|x|k}g({-EY(S6V|^=JP-<9Ct+ft6Yu60A3$^%EdP6e|SFbV9)1#$Xz! z9VAEys5*BP0OYx6!7$R!B5qGW#IXS=Qrvg>aI{g~cNB0TKv_kZjVm_DwLJr(aUw{} zTMgbT1T-`jY6sEy^Sj_rMfHFP#nyhkXd6dsRH`a9n-V3JmjA}6;lcL2CMpwnW$*$@uhXIIO9f8X3`6?~#^jAN>59sT!jlO+^#IdJTu zi2!u^JNneF+`@r&2Z^jtlfFI#O~bsq6~je%1g$WG41MqVx_8W;n?w3xmO%(a2(*^y z&KOmrKmchvjAc#hE5}$9sJ$@Qv>hv_vk1N!uGi&024q2r^FMGa*t5ynR3VJFNcgQJ z16wFStui#jM+x-^A~hUHOX*;sehh(hL^K{vW;6aSiNhHb<~o`H*)rh*U7*{i=Qw(- z_3zeJ#}D-4^8&I*A=**nnPO$*%l+@y8Z|R2aw*nWn&cTbftdM;$2m|?3~MqHqH2n) zlFx%8n?bW{T4WNT<*8yzAPYi+xV3IUJlg}5+*>tWR3@h{X}P4F@~tjaIKRJ zeLb6j*iZh^h)~1=P;E7-`J-Q;YtWnFN_mhY;pp12#bMNqaixJ*Q#zZ02Mi5RtxM?S z+GnP*m%RqL+WA1Z(6A%Nf)|Bybq#v*>IDwcJ(3A9Yc&GA_sl>0F-dG~%5*^SHU>kH zTRV7QA3|pId_x3wdhOa>0Q_F*2zCVU@uLh??d%XU2Q`H?%Q;?3kY0g7xq(Mq^hr0f zeO8uIsE9hF7A-S?Q@P;+3yF5zTlUFAvR(G$ngQZDZC0gR0jIbeNVx0Ehed?aS7tk3 zY21gUi426JoDsxj3*f0E0S`|VEAYFxtQg}Lh-cT20*d0b`?nsEkagp41qf9$rIJ4R zqRz@HPj3k9&75e(0e@Y8A9OP(%TNqTI0WQIWB{R5fb1bFRF$EqP%an(&zk{9CT(hv zV9chh!UB=zc*7s^kTR_SxRzx*c-HWd$^@}bN&cOcsYRiFzTA3E96H9eH2Qe88E$7X zj6fWo;l4OzM!<442|{B0f1JEhcl)64@lZUZLFR6xI2ZePPgX6h4KSD(Yk>`$0Q0#Z)|se-vrnwy=FY$rf|_{>+{eA$9Hwby zMbNwUwK}m=FUB0SvKcDRI#k;k=+HgdZpTW#V_gVe+?F&%@H{ z0lRrA(9Ndj;R_X_Ia~$)1&vGcey>*j=^y7FvSm+NVp`Q?Vm6mtM}6lZDy|n90`b!k zG~qk468ITG6cW0QKhLsg+^7$G$b+fuA(j=pcH?4GdXkJ7Zn#ZPk!E5#!);OCz|)Ma z;a53!o6LcHQX}}g%f5f^wL=PyRnFtrqW+Cy6hffbp(noVV&r-6Z!s8Dzw5Zth?5&+ zF(|LG5~UT06{I!xu&%}@yK!vTU=EC?YKA2nW~GsHsiZ`Dkq1kr8%=OUbtsZ4+xZPX zb0%bY3g`DWg~EBb%W^nq!f2TzTlqZiSv?Q{r+AA)_vAfOep5S1{!l~uE8D%b%e1loD<(RhK~*7Gz6^| zV@Db-c$10kQF=?0W=k}eN&Yd;I;q|D7EB_`d^xM+$(a2(0rgniB%LlPjy1z)*w4Om zDR5Dy>ohhqcV3EYNPN%V`V_M$>HBZC45Y!KTF4|rG)PUO`O#&Efll6*M2M^>TC<%t zP7yZ%Do|d_I0)-#Cl#$US?rUyc+7@mMmxHjjE0WHL)Y)z`&XJrw0Ca^Zj+Qhwrf=- zBQc5fvr@s^;$4&_CzYSiOmGmi3vY|hVbF*LTTcnQl&5?R$_*-dA*t*Qeu_Sf;$cEY z2l++b5?NU|*(qS6HDTuE!^nVoE_(^0uEjC2Hj7xkU*f}#(*+yTqN?NyPRmvvlb(Z0 z$xZOoNw!Q3=a^B>L0Lq7sP8F4F$@i&6_;p3%Fw#|Jm$15e@KWf2Sj_HgFTzwEr4BO zC4zZAObXhxo76#S)ywhS@azz!_pqtZ?udkZ)!!W67(BF@R;dvw=A}y1`(2RMV!QKC z2kqyO{Rczz{G)9>-f<-1-ih;tqPMF&(&{2!h$(3oc9ZrDMm^wxp44Xwe(UgtuXu?1 z;O8kbF~c#@5no}`v@_^E)8JY5MZar?YnQPRegk`G$qO&^kc%8B3Nuft>XKYE>dm}O zXYWKGC8GX{vEGzX z?48oDJ1ItzImY$$`n|R(LQ@cw5QcGkFLBK@lX!+Q(0WM=hgn0A#C&CfbCTHxQtq_N zH$H0y@#?iNyyhjs3-}#tPBM4{W|`!m2wSp<#@Fxho8k1#3v* zPBpDDuvTnRiY(h$&ENWO^bmZEr{{RjsDMv zoBiV4=vx-+vHX|XW|#|Ws~f8aSCh&(c+?0ZS5?Y-ecv9|f6=kunWUjxF z2o0i|VLSzv7#=GV&<2F(5)G<+cBe3nqSr6fcI{SwNh+Vt=iOLt&wXH1$-KW@w8D&C5>KevG z7wum()6etGr#Yyx-M{SW*L$r}OK%z8C2*5q8~)9{aS*}W)wHPb*yr?noRjxd^VEE! z%|zN3*}J78y{O4nc{s22Z{I9)iKP3YiBBWcTX10QEfm3epf#P`JFXL{wW$~EFYi`N zkEr36s*;YBLA53mx@UL4kT^3}C^e!B$pu7;{1nNaSumvUY|(S;^tp3%v9^@6m#R~# zo=jJbHD`#hjod5gUn5-Fv;VgkVxU|{9ULPgJ6RdWD#YO&Tc{kQt{kh3 za?ZIF<*NJZ`d!!WzHk5gi^t>pdB2{oG3|8kk$D^;%hD5a5u>d~2 zA3AyS_>Za{swuiIHE^of|NVbk5h3MZ2MVdRviGqOc@-Uqg!~#$iju=VIqOneJx}!@ z?9_)BAcQX5!!?_X3+_SWYqU4ac)k9D6i8Q8f7NtcS8)g9MK9khZS0$2r9GA>!|$RyFTpvm=S;82 zJthtR^W|=4ryD;#UVkO)lht^2_&6qXgNh^%KZjp$$~%W!?BGde|B#b4@vQam>799f z`LgCaz&+$K$s``Vj_Gn@-SNTHg|5STJ%w38^I*MT#3FFD%P+a1pmuLfDjGl#oTtkE zc$MGtws0^GIqy;rx!IR#?Whkj^fJ2{@krYi9p~xeS*i6c%JY5#F!X28`c7AQ?lKUh zeNHxdU&=3k`O#EEQ{;W1oA@2R?qmR?+1>a?zWv63kHP0W7NgPYXz% z`gTxV-Fh$$5F=mR{E}C<_Lje9Qz1lR!8r)f=N$A0FtH{fpdF>KY(%vpBq+M?Y+viE+LD#3G>d8eE)QUWrS-1kuE+q zLCjQ~!?iDlwAZhAJGzVmhiJZ;?RoU0-daLz@h()!0F>n{qbzE074)48N9!TEgTB)` zXg#Yn8|W8z{pPw$2^SuUy`_Iixmr3bf3AF}oN&AGvT>*V> znkKt-y2Pw@v!CSmZ6iktzeALCmw+8@Uk@rl@Gr=~{tc+6qKI%i5Xi<)07K0i=r0C& zwvMct#d_hNW+7jg;2*`m@10v>eR=pW$S3Ef!-@n6KX!HfY-j=00f$@Sb+PK3;E4uM zsgI)zWK4bhg&u5@YCdchIY`Is?MOFOmFpjqlni`Jl~}HL59PK98k8bu1B8c(V*w$F z&Y3&5b)$fe^T$dwaJsfnSK|4YG`_NSC|%bVHTAlcyl5*XK>=DuZvBMp0g^|T#N}Pa zuJfv!mvtVS^1A~^z77BA%`v%xfDQ&qUA$a2Ye9c?RLAW0zCYFBhumPa>09z&qyG_8 zD-NUw;jfCa&!j6#!;5khZD1ZjD*(|gnabfnv!#uT>Rk3sj)cnekoH$TI*&*va}2Z7 za{~H9RCwBp7|9YK^x2IU5ZV(RGrfD*F{F7QJ(&{`@Qp*m9jy|T(>T@!ESStwbL1uk zG0qA2l!S5lajQ(P4qH)#N%_emxC-Pl zd4qXxwVe5!>!DyUrjn{D?JcO8p>s*W{6%l(1e0ql*r!dtJyz z+V`c%^a7UAo*kcM3ti_2^4)>6XDTOwJXUz*u&jeU@ESh(DidsnuQOVPnOmFRCULH% zpci@glR1=07k^Q>Y04+PUYnB(ndUoNlPsxRXPG#EA%zBV6Hu}JD6Yp=;X7vcrV4B$Y)Y^T5Y#Y7u1hR)xOm9wc?C_NN3Y0 zWq5uy(h2u<(O@*r|MNPke=H;Xlegp9Y1g3h5gE0Gu zMDkL%;N|{O+Epl6c0)?_f;@*uO}uxla>1zPq5UvVs&4m?z`1DU#^|euu@nk8bWCcg z{Qegta_T|4%4C&uIl=OiOR4{z)q0CFn>J?FPQ=p2JMW+SIO?~DQqBGVWK10rTREk1 z2om=fV#8}x{Xt|Yw8)Hh=NrI@ecKXUmH-YtOdXlI;}J)`%(Vo_v885&SLA)m#=j`G zQuhIlA5bnBn90xCaT2bh9{t0mFYTCK(v(!PkkcZshvo5(v8}V!=)(a?p?+L?-6|%e zTi;YKOCf#V95Z5aHESVSG)s56nlwVyDivbPx>W$qh@? zWHTQT482CXaP>V)*HR$U@mD!+3y!=a0Jz!Toxgod;gFO~h4cr>*-uWlubIx` z?lmD|l8s7=hR+xvPAIGKmOscDO!@B{bH`Xx>B?r-3!uO&aLR9qVITk%{8d9RD)Za| zizB8@_96TQo3#KqSI_9ffU`TWsAQteBH+z&RLnhf?Q4`}QBVeoQ9q@d@lgm-c=|&0 zhv=>1N)KBEkQl8vi4fH##%4p)-?AZLW!~DXtN{p&Ro_@HS}r@P*V+Ij@IgGPe|WFjHeSg$r9w$%M6&TZ!N5GBTsa-REB%;`L@GHVH9U5tTXwU z$k9EXjr6GLHnQu+?%7}UHWRQdD<`*qAHz6RMxm{9o7U#R`5Y!s@w7_I^`{(8`aE;` zqtI8{w$ZZg^V;Mb?9|pWAlPyEQ=EFWZCtNkdxQ$JIJVxHq?I^KJZMa~L;y7{i&Vb4 z<`^0L`rNna8rqubdP0tHSC`Jc=l{YV2M)Tr=6y4$J80XdA3ku4V41SI{kjnSmb@1u zr$(RIg0THCS&Zu+-Bp|6abzWNEz!$ z>#F%PT?HP0-PTNQqp%!J34bbFI$m2DH9`9KNFk9W%l z&g|W{_Ct0X6FeukH1vNMU5DLs`k6?eRdoI>2}({Dz-MZs>JGZFv~&oZK6e`1 zdC6aPFik>vk$7OlmiL_som5ml>O0^hp>(5*569{%9*sP^Ey?-d!tYXk_l$fAiHkx7 z6W5voya;U-ZmwZdEor(Mp!Z&2fLA!Ak6v61k zmC6CDQN)A{|Khi1kzEC$i5k@d!Q5iGZNZoTB_U>mUR@mF7Nge z+V)kT@l;0v$n=RfQ*`77KU65f|ikx`>)vbBCV`|db3 z$73x1K-XXx4H!McUUYH9MWp-eGnNnjY1+`=?X=u3wBj|LnhxCIvll^LG>Ij~L>U>BA7{Wk!v5SFTF4n7Rc)^J?& zh%2=jT?yZ<<}i&T+E88}HfT>MXH^ruvaHtXf4uG+sihpnu!X&Ox$U5zRb!blXQ#4n zE4noDs2`*OZngLfZ0`x3lpf?Z-I-{xEk&z^nrt~r3GcLoZFF0OUbM1~c2pa2 z+;hA!_N*^mCa64nUckQS0akY4a)ZC@cU-7WrT5FBo+~e#&rWXd@o<{=rruaB;={A; zt=D>mO65lb6`;FeZvev5*D4&QH0y}yS=}Wi@!<_^n{2F^JrqwnKQUV?2V80NY+NC` z>0E8Ip8;g*A5nEU3ntK(R3>4UdPd+Ug`r%;}7*f=-$I%rMb>jG@sqw_8?mL+-=KA|eNAK#ig zl-E9Hww%q8Z?hHy=#iWux50TbV6T$HctZPcyT)46;M_WWRG?oOFSp7{OVy=sjTdB+q?>!k~S1UN8X*>nUL4R-1B=sJpPe_=iY z#Jl}<^QLw00(g|?y9mb#zIwj`yjRA~PqWIG@&M!DpIU+6yRlUv(?+)inDj&de_Z)2 za9ajb$K?e-D3RkF>(06)Q{=ypycgu~{`)8W`)@UXp3WVi6@fcEY+*15z+R?QR%?g|-=Y zfc_oT))1ZWStDj95Ip%)KF{%@O-W|A8PG-&ILO34=Ny^fHyYWclY65;yFWI>Zj|4C zW$41aKh-nV;;yGCx0s$+;O1o$Wpqmtwvap@2;|h+xGT*5aS~3Sq9gisS({{i6fyZU zNkFj&0*6y4<%}?aU3*PjGlOFA1$EoWIO?fyqxiaDC_PhBh}M_t+n*J#0cgB*+=S@n zEj%F-%21n()Io_y!V#0=kunK@YmdIMS%`T~;jVHcOUn(Pk1J6T`Yy_|KkrIZIcGB;wE+4edLw!~gr5P&Y zF%rgdz%azvx&ZZ&N?gxrmJP1x;ZEsca$J^Nkh)##EknjT$1-6U@v)$Feoe+Hf98pO zU_uD_J+XOjU&P2Hg+rtN;g23&z`Bq`G0M^iWWKA=&L{k;E0zaF1p~k~@;ByYNRXv< z-fqXG*ax1gr=1vIPY{nxEdI=}eO$Si1`!ML1`U;Z^H28p*fSKQn_q0~jEofhz8>h$Zm=bk0OxppO< zsE+o4Z#G4lx|Q{x&djimmXr}LRO?OSDDqIrW#KbI2HCoEho;Rdc-)zR0J1Pv+~C^% zA(&7|Y+If;g{~{~xV2Kg1Yy#qc|l#U3#Q?GV--*{sGL0Y#bJ>Ln#gkC%N}|8ojm;+GnPvznnZGp{*% zwC`WNb`xvHo|_px$AegtU|siv=8L6)(;;7KZ~F*+udbLOPa?Yrpc_K=I@hz(vk4ks zFc;bGPGh1+?N7Gj8zA%_tMo?T~@qi ziNW*LnixQP$#@NUe%$VlZ4V=U_g`0EvNXM-+EI^#KO!Q^DdoIUQG%(Nodory)%H@S#_Ch~oCR#^0 zn5CH612S5J4W#M*%hf3x81*zHrQ^XSFRS> zUMT>zfYDFpFF~G{s0iR)g;#9urN9Wp7n>TQ( z`a4fPLJeyqP{q^QznbH|=`!;oV#hZ~-Id?h4dT>y^f8X{+K2imtwBvDiZ5f_x?qT% zc+owL1TV+L)M3xDcYLJrl&1k_*_`1mt+NE95eTx6b6?}sS(|^|yxJP{WBh&6xi@>p z_XpHBSJORheE4)l4YclPy5)he1+4&6blFLB2Tam7A0!)FbD+R1E}iwo1!dxem8@K? zjGs2$@fO3f1fhvP1&N3W>5h*~tHSs|6gI6*kWXzU%}Gd^w?JoIDybA7$}}X1=1Dq6 zh_D}3*4GF``Ii<H6QuA)2ToU9Yf^{cAhqSy@mlde)(GJCLmXY?WJ96C02PXCRsA=o7H6<`hD zY%>z9RH1H4c6BY6czGlT7X`|X>Eo(6Gi2P!~5ITCHbk>+Ry(0|!Qk1&a^9hp67I4!WZ|@u`xEreJ z7G+`Ow+DmRE%l}B#Ek-9CmI>n)*kTLzYmW|)&8~NC!cj2t63*QaVQtGBFmKocy8L| zE1c&wMd2YfH=<{e5^QP=r>u&=x2O$erCMr|{iOW0$C0M!D#Zi^C!FrUQV~5W*9?4w z)4%(-(qEx3+b!-B<>H&p{Kdfa zZU%zX6MeJ8@b}qwZcv8u>x!lG^ZU+6jj}7Ty$a<@0PIaR;HpVs$ZwcMQl;*ou zXIO+YrR~lfKby;JCZW3g^ti^qq>nRT;ApcTCBnR>ngAD?%sNfo*FSFdvOB;2tw`H48PCu>7IL zt;!ABd+lv>h&WTl5urulDgS7Rnp=k*=Gei!`6MSKJP5CmJ#w3&oM~~$O=brPQ`9iu zLjV1{G}IdZ=qPvAn*@UWh<;zxCG#vXBtr_g<`cd4j;v7iZs@Z%s3t0*TYuZ{i#TcK zT|O90`Sy=NBJ-4&n%ZtgWezcd=({;Y=Jfc*4HhI?5`Bqgn}<0QuK59FqOlkHW;_#l$-1VJ+G3R_HKIk-y2znF*pn_cs6{U|S@c*| zKXunKnzsOtKbGEmkp1X*LnI#h-Im4joD%uS^&#pLzxIS02yyO0|3~`ZQ3@sSpBq8pHxO&8ux3 zxShpZy~8#0i}ikw1y{y_javlyRrgW`Pm?4`t#Ph*)5jn5K=nsCVoxR$o&7)bT#RTA zzXgt59!#=;Tv0F?X6rSdO_0q?gh}rR0^@j{lB>zUun|VsK7Xv>e9ASqd zSgk%07HX6*6hNP9e`MriTtP-hwhJ`1NpMurW+yMd=WarjZ-N ziz=Q~`d-RwI-v|Qr$ZT+%-{EDV>IA+ZMQISo;_2!v|zeW6&|$}8-7e~;#BQTo;@Sq z)o(R!E#hcil7)drsQTV%ebi;t%A1k<-t7WcT#Id*jaE&hOye-wg#q52DW?@<-dO*1 z5Q1e0c|>4{=cJv~uUD8LcukK?glklA620Y~DffAzQ7f<^>%PSe~$kj@m#AiX5*4v z9vLsOGx*FQdux=D-dcN=3<8;!H`EL%%P*NIq+2)oY5p|tVFEdUJ}J}`T4r9B-nFK= zR$0-UU)c|J?ZZ^)zs5+$!&dXUCJ*q1w~cs>=LTcP4@|=EfI(5g7kXyA%RJpgqGp#I zM+Vu9d)E`Hx#mCByYi=l+0F)?AEC{v2c>68{h=MWb-l-2eIa%Z6ApF;yP1b8?a zMI)w6qm2?wR;9}e1DX^e>Y4OJb{$P-CgVNNW4~iFFe2KR3oy6l293E1s8i=pZ*Pd? zFt?xgNH89da+0ds-H$j+<#Nf;Wmu}d$0}18-S!2zap8cAbnm(1WT#|zubuakKJgK$ zY>W&KNO75~?hSh+4-|9Fl|58~-piX;Q_Mw8cqZaIU>$6V9g|z`20SZpmyEMx9^Pu2 z7JBrg zt!bxN=)rks<3sY)JBiQE$rbChP|t%JyW#iq)l>=>?C%*iX`U~zR>L|&%6mKmr$)Di zZ&gnyiOceJ%ao;}N~0`}AV5IQXI`(Y(8{SVtCqU;8vE)$_9^W%^c%$5l)BH?=cx)R z3Q&d13PuXtQ6caz@rA*diBI*1f5J)HR3nic+G_rj8EcBFpgZZj6~*Db*lV4t8jmIX z<&=kM)T9F*WdV>9=5YJu7nD>a9&lLy!4QPIf^BxZ|~ZWk=_!f#WpQ2+n;+mrgYa=bLfiCvJ_3 zUdcf{+4)|gC;8kaa^=loL0w48VffS=A(o4Bu4~_ht&&lRiX!m-eAvb+lVY5)KOQPy z_5^tpS$mLoQ9{*Or~iX?85Q{=$;_}^GkvXS3qwW0MC2X}WR4iY8A8;^ydH69G$jh< zHqh8{Qb||;Ny4@+Cd$})`}d7AOpU+ZI(IW7PF4MHl46A?SorPAm$7xE{Z+YM`|>)w z+0>`j69Q#AoHqs^q)UI~j&g)U=T9(Mf;sF|v23)N4*{R~Ar*8zA^3J$k;l-Z{UsxI z`aiJApzw~qr~gW@mqbk~uJ*9J`xr~J{@-*#f^WttReaoZPwa>P7h1h8M*o|k?q~bg Uvp-%jp8|d?&FoBDj1dq22Xj3W^Z)<= literal 0 HcmV?d00001 diff --git a/aio/content/images/guide/animations/open-closed.png b/aio/content/images/guide/animations/open-closed.png new file mode 100644 index 0000000000000000000000000000000000000000..fed1d588f5df11aafd53acf599c62710ec234bb5 GIT binary patch literal 32863 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 literal 0 HcmV?d00001 diff --git a/aio/content/images/guide/animations/route-animation.gif b/aio/content/images/guide/animations/route-animation.gif new file mode 100644 index 0000000000000000000000000000000000000000..20fa0d65715695eba5c74e689e327108f64f1d84 GIT binary patch literal 197748 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 literal 0 HcmV?d00001 diff --git a/aio/content/images/guide/animations/triggering-the-animation.png b/aio/content/images/guide/animations/triggering-the-animation.png new file mode 100644 index 0000000000000000000000000000000000000000..72425d81592a2b8936ac6c68e7e56a357b200150 GIT binary patch literal 41425 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 Z(QgYztleb#vIPiusVnO!l_}bU{R>R;I8*=t literal 0 HcmV?d00001 diff --git a/aio/content/images/guide/animations/wildcard-3-states.png b/aio/content/images/guide/animations/wildcard-3-states.png new file mode 100644 index 0000000000000000000000000000000000000000..341a619fe7a8c4f9acaa93ab1d7a1afa23729665 GIT binary patch literal 56234 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

      _^n{f?{NPp}9-K*fkvPW~wNE~0sn-Q*feD1C0_ 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 literal 0 HcmV?d00001 diff --git a/aio/content/navigation.json b/aio/content/navigation.json index b576808105..a3ccf3daa2 100644 --- a/aio/content/navigation.json +++ b/aio/content/navigation.json @@ -202,14 +202,10 @@ "url": "guide/pipes", "title": "Pipes", "tooltip": "Pipes transform displayed values within a template." - }, - { - "url": "guide/animations", - "title": "Animations", - "tooltip": "A guide to Angular's animation system." } ] }, + { "title": "Forms", "tooltip": "Angular Forms", @@ -387,6 +383,38 @@ "title": "Routing & Navigation", "tooltip": "Discover the basics of screen navigation with the Angular Router." }, + { + "title": "Animations", + "tooltip": "A guide to Angular's animation system.", + "children": [ + { + "url": "guide/animations", + "title": "Introduction", + "tooltip": "Basic techniques in Angular animations." + }, + { + "url": "guide/transition-and-triggers", + "title": "Transition and Triggers", + "tooltip": "Advanced techniques in transition and triggers." + }, + { + "url": "guide/complex-animation-sequences", + "title": "Complex Sequences", + "tooltip": "Complex Angular animation sequences." + }, + { + "url": "guide/reusable-animations", + "title": "Reusable Animations", + "tooltip": "Creating reusable animations." + }, + { + "url": "guide/route-animations", + "title": "Route Transition Animations", + "tooltip": "Animate route transitions." + } + ] + }, + { "url": "guide/testing", "title": "Testing",