test(snapshot): build all tests into a single app (#11910)

* fix(lint): unused import

* fix(searchbar): caret moving to the end when typing

* refactor(template): fix component template (#11839)

fix #11838

* chore(issue-template): change link to new org name

* docs(github): rename driftyco references to ionic-team

* fix(toolbar): use the correct contrast color for MD toolbar

fixes #11848

* docs(searchbar): add default values for inputs (#11856)

Complete missing defaults for animated and showCancelButton.

* docs(tabs): rename Angular 2 to Angular (#11837)

* docs(tabs): change double quotes to single quotes (#11836)

* docs(api-tabs): improved typo

* Update tab.ts

* docs(slides): change double quotes to single quotes (#11835)

* docs(api-slides): improve typo

* Update slides.ts

* docs(platform): change double quotes to single quotes (#11834)

* docs(nav-controller): add type to usage example (#11833)

* docs(util): hide normalizeURL (#11735)

* docs(checkbox): rename Angular 2 to Angular (#11831)

* docs(api-checkbox): renamed Angular 2 to Angular

* Update checkbox.ts

* docs(checkbox): improve usage example (#11832)

* docs(api-checkbox): improve typo

* Update chip.ts

* docs(menu): update menu-controller link
Closes #11877. Closes https://github.com/ionic-team/ionic-site/issues/1129

* feat(snapshot): init new "components" for global testing

* feat(snapshot): add app component

* feat(snapshot): add assistive touch

* feat(snapshot): add more components

* feat(snapshot): add more components

* fix(snapshot): add trailing line

* fix(snapshot): remove not working tests

* fix(snapshot): correct name of group
This commit is contained in:
Amit Moryossef
2017-06-05 21:03:32 +03:00
committed by Brandy Carney
parent 1c25acbb1f
commit 7d8696c050
11 changed files with 1180 additions and 0 deletions

View File

@ -0,0 +1,11 @@
import { Component } from '@angular/core';
import {ComponentsPage} from '../pages/components/components';
import {AssistiveTouchProvider} from "../providers/assistive-touch/assistive-touch";
@Component({
template: `<assistive-touch></assistive-touch>
<ion-nav [root]="root"></ion-nav>`
})
export class AppComponent {
root = ComponentsPage;
}

View File

@ -0,0 +1,21 @@
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule } from '../../../../../';
import { AppComponent } from './app.component';
import { ComponentsModule } from '../pages/components/components.module';
import {AssistiveTouchComponentModule} from '../components/assistive-touch/assistive-touch.module';
@NgModule({
declarations: [
AppComponent,
],
imports: [
BrowserModule,
IonicModule.forRoot(AppComponent, {}),
ComponentsModule,
AssistiveTouchComponentModule
],
bootstrap: [IonicApp]
})
export class AppModule {}

View File

@ -0,0 +1,5 @@
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);

View File

@ -0,0 +1 @@
<ion-icon name="radio-button-on"></ion-icon>

View File

@ -0,0 +1,21 @@
import {NgModule} from '@angular/core';
import {AssistiveTouchComponent} from './assistive-touch';
import {IonicPageModule} from '../../../../../../module';
import {AssistiveTouchProvider} from '../../providers/assistive-touch/assistive-touch';
@NgModule({
declarations: [
AssistiveTouchComponent,
],
imports: [
IonicPageModule.forChild(AssistiveTouchComponent),
],
exports: [
AssistiveTouchComponent
],
providers: [
AssistiveTouchProvider
]
})
export class AssistiveTouchComponentModule {
}

View File

@ -0,0 +1,24 @@
.app-root {
contain: none !important;
position: initial !important;
}
assistive-touch {
@include padding(10px);
@include border-radius(15px);
z-index: 9999999;
position: absolute;
display: block;
contain: strict;
background-color: rgba(0, 0, 0, 0.7);
width: 60px;
height: 60px;
text-align: center;
font-size: 34px;
color: white;
}

View File

@ -0,0 +1,84 @@
import {AfterViewInit, Component, ElementRef, Renderer2} from '@angular/core';
import {DomController} from '../../../../../../platform/dom-controller';
import {AssistiveTouchProvider} from '../../providers/assistive-touch/assistive-touch';
@Component({
selector: 'assistive-touch',
templateUrl: 'assistive-touch.html',
host: {
'(click)': 'openControl()'
}
})
export class AssistiveTouchComponent implements AfterViewInit {
private sideX = 'right';
private sideY = 'bottom';
private currentX: number = 2;
private currentY: number = 150;
private elemWidthOffset: number;
private elemHeightOffset: number;
constructor(private assistive: AssistiveTouchProvider, public element: ElementRef, public renderer: Renderer2, public domCtrl: DomController) {
}
ngAfterViewInit() {
const hammer = new (<any>(window))['Hammer'](this.element.nativeElement);
hammer.get('pan').set({direction: (<any>(window))['Hammer'].DIRECTION_ALL});
hammer.on('panmove', this.handlePan.bind(this));
hammer.on('panend', this.panEnd.bind(this));
const rect = this.element.nativeElement.getBoundingClientRect();
this.elemWidthOffset = rect.width / 2;
this.elemHeightOffset = rect.height / 2;
this.updatePosition();
}
private handlePan(ev: {center: {x: number, y: number}}) {
let newX = ev.center.x;
let newY = ev.center.y;
this.sideX = (newX < window.innerWidth / 2) ? 'left' : 'right';
this.sideY = (newY < window.innerHeight / 2) ? 'top' : 'bottom';
if (this.sideX === 'right')
newX = window.innerWidth - newX;
newX -= this.elemWidthOffset;
if (this.sideY === 'bottom')
newY = window.innerHeight - newY;
newY -= this.elemHeightOffset;
this.currentX = newX > 2 ? newX : 2;
this.currentY = newY > 2 ? newY : 2;
this.updatePosition();
}
private panEnd() {
if (this.currentX > this.currentY) {
this.currentY = 2;
} else {
this.currentX = 2;
}
this.updatePosition();
}
private updatePosition() {
this.domCtrl.write(() => {
this.renderer.setStyle(this.element.nativeElement, this.sideX === 'left' ? 'right' : 'left', 'auto');
this.renderer.setStyle(this.element.nativeElement, this.sideX, this.currentX + 'px');
this.renderer.setStyle(this.element.nativeElement, this.sideY === 'top' ? 'bottom' : 'top', 'auto');
this.renderer.setStyle(this.element.nativeElement, this.sideY, this.currentY + 'px');
});
}
openControl() {
// TODO when custom alerts are out, this should open a custom alert
// Allow setting direction, close, whatever
this.assistive.closeButton.emit();
}
}

View File

@ -0,0 +1,16 @@
<ion-header>
<ion-navbar>
<ion-title>Components</ion-title>
</ion-navbar>
</ion-header>
<ion-content>
<ion-list>
<ion-item-group *ngFor="let componentItem of components">
<ion-item-divider>{{componentItem.name}}</ion-item-divider>
<button ion-item *ngFor="let component of componentItem.components" (click)="open(component.component)">
<ion-label>{{component.name}}</ion-label>
</button>
</ion-item-group>
</ion-list>
</ion-content>

View File

@ -0,0 +1,417 @@
import {NgModule} from '@angular/core';
import {IonicPageModule} from '../../../../../../';
import {ComponentsPage} from './components';
import {AppModule as ActionSheetBasic} from '../../../../../action-sheet/test/basic/app/app.module';
import {AppModule as AlertBasic} from '../../../../../alert/test/basic/app/app.module';
import {AppModule as AlertDismiss} from '../../../../../alert/test/dismiss/app.module';
import {AppModule as AppAnimations} from '../../../../../app/test/animations/app.module';
import {AppModule as AppCordova} from '../../../../../app/test/cordova/app/app.module';
import {AppModule as AppGestureCollision} from '../../../../../app/test/gesture-collision/app/app.module';
import {AppModule as AppGestures} from '../../../../../app/test/gestures/app.module';
import {AppModule as AppTypography} from '../../../../../app/test/typography/app/app.module';
import {AppModule as AppUtilities} from '../../../../../app/test/utilities/app/app.module';
import {AppModule as BadgeBasic} from '../../../../../badge/test/basic/app/app.module';
import {AppModule as ButtonAnchors} from '../../../../../button/test/anchors/app/app.module';
import {AppModule as ButtonAttributes} from '../../../../../button/test/attributes/app/app.module';
import {AppModule as ButtonBasic} from '../../../../../button/test/basic/app/app.module';
import {AppModule as ButtonBlock} from '../../../../../button/test/block/app/app.module';
import {AppModule as ButtonClear} from '../../../../../button/test/clear/app/app.module';
import {AppModule as ButtonDecorator} from '../../../../../button/test/decorator/app/app.module';
import {AppModule as ButtonDynamic} from '../../../../../button/test/dynamic/app/app.module';
import {AppModule as ButtonFull} from '../../../../../button/test/full/app/app.module';
import {AppModule as ButtonIcons} from '../../../../../button/test/icons/app/app.module';
import {AppModule as ButtonOutline} from '../../../../../button/test/outline/app/app.module';
import {AppModule as ButtonRaised} from '../../../../../button/test/raised/app.module';
import {AppModule as ButtonRound} from '../../../../../button/test/round/app/app.module';
import {AppModule as ButtonSizes} from '../../../../../button/test/sizes/app/app.module';
import {AppModule as CardAdvanced} from '../../../../../card/test/advanced/app/app.module';
import {AppModule as CardBasic} from '../../../../../card/test/basic/app/app.module';
import {AppModule as CardColors} from '../../../../../card/test/colors/app/app.module';
import {AppModule as CardImages} from '../../../../../card/test/images/app/app.module';
import {AppModule as CardList} from '../../../../../card/test/list/app/app.module';
import {AppModule as CardMap} from '../../../../../card/test/map/app.module';
import {AppModule as CardSocial} from '../../../../../card/test/social/app.module';
import {AppModule as CheckboxBasic} from '../../../../../checkbox/test/basic/app/app.module';
import {AppModule as ChipBasic} from '../../../../../chip/test/basic/app/app.module';
import {AppModule as ContentBasic} from '../../../../../content/test/basic/app/app.module';
import {AppModule as ContentFullscreen} from '../../../../../content/test/fullscreen/app/app.module';
import {AppModule as ContentHeaderScroll} from '../../../../../content/test/header-scroll/app.module';
import {AppModule as ContentNoBounce} from '../../../../../content/test/no-bounce/app/app.module';
import {AppModule as ContentScrollDownOnLoad} from '../../../../../content/test/scroll-down-on-load/app/app.module';
import {AppModule as DatetimeBasic} from '../../../../../datetime/test/basic/app/app.module';
import {AppModule as DatetimeForm} from '../../../../../datetime/test/form/app.module';
import {AppModule as DatetimeIssues} from '../../../../../datetime/test/issues/app/app.module';
import {AppModule as DatetimeLabels} from '../../../../../datetime/test/labels/app/app.module';
import {AppModule as FabBasic} from '../../../../../fab/test/basic/app/app.module';
import {AppModule as GridAlignment} from '../../../../../grid/test/alignment/app.module';
import {AppModule as GridBasic} from '../../../../../grid/test/basic/app/app.module';
import {AppModule as GridCard} from '../../../../../grid/test/card/app.module';
import {AppModule as GridFull} from '../../../../../grid/test/full/app.module';
import {AppModule as GridResponsive} from '../../../../../grid/test/responsive/app.module';
import {AppModule as IconBasic} from '../../../../../icon/test/basic/app/app.module';
import {AppModule as ImgBasic} from '../../../../../img/test/basic/app/app.module';
import {AppModule as ImgCards} from '../../../../../img/test/cards/app.module';
import {AppModule as ImgLazyLoad} from '../../../../../img/test/lazy-load/app.module';
import {AppModule as ImgList} from '../../../../../img/test/list/app.module';
import {AppModule as InfiniteScrollBasic} from '../../../../../infinite-scroll/test/basic/app.module';
import {AppModule as InfiniteScrollPositionTop} from '../../../../../infinite-scroll/test/position-top/app/app.module';
import {AppModule as InfiniteScrollShortList} from '../../../../../infinite-scroll/test/short-list/app.module';
import {AppModule as InputBasicForm} from '../../../../../input/test/basic-form/app/app.module';
import {AppModule as InputClearAfterEdit} from '../../../../../input/test/clear-after-edit/app/app.module';
import {AppModule as InputClearInput} from '../../../../../input/test/clear-input/app/app.module';
import {AppModule as InputEvents} from '../../../../../input/test/events/app/app.module';
import {AppModule as InputFixedInlineLabels} from '../../../../../input/test/fixed-inline-labels/app/app.module';
import {AppModule as InputFloatingLabels} from '../../../../../input/test/floating-labels/app/app.module';
import {AppModule as InputFooterInputs} from '../../../../../input/test/footer-inputs/app/app.module';
import {AppModule as InputFormInputs} from '../../../../../input/test/form-inputs/app/app.module';
import {AppModule as InputHighlight} from '../../../../../input/test/highlight/app/app.module';
import {AppModule as InputInlineLabels} from '../../../../../input/test/inline-labels/app/app.module';
import {AppModule as InputInputFocus} from '../../../../../input/test/input-focus/app/app.module';
import {AppModule as InputInsetInputs} from '../../../../../input/test/inset-inputs/app/app.module';
import {AppModule as InputPlaceholderLabels} from '../../../../../input/test/placeholder-labels/app/app.module';
import {AppModule as InputStackedLabels} from '../../../../../input/test/stacked-labels/app/app.module';
import {AppModule as ItemButtons} from '../../../../../item/test/buttons/app/app.module';
import {AppModule as ItemColors} from '../../../../../item/test/colors/app/app.module';
import {AppModule as ItemDividers} from '../../../../../item/test/dividers/app/app.module';
import {AppModule as ItemGroups} from '../../../../../item/test/groups/app/app.module';
import {AppModule as ItemIcons} from '../../../../../item/test/icons/app/app.module';
import {AppModule as ItemImages} from '../../../../../item/test/images/app/app.module';
import {AppModule as ItemInputs} from '../../../../../item/test/inputs/app/app.module';
import {AppModule as ItemMedia} from '../../../../../item/test/media/app/app.module';
import {AppModule as ItemReorder} from '../../../../../item/test/reorder/app/app.module';
import {AppModule as ItemSliding} from '../../../../../item/test/sliding/app/app.module';
import {AppModule as ItemText} from '../../../../../item/test/text/app/app.module';
import {AppModule as ListChatList} from '../../../../../list/test/chat-list/app.module';
import {AppModule as ListHeaderScenarios} from '../../../../../list/test/header-scenarios/app/app.module';
import {AppModule as ListHeaders} from '../../../../../list/test/headers/app/app.module';
import {AppModule as ListInset} from '../../../../../list/test/inset/app/app.module';
import {AppModule as ListNoLines} from '../../../../../list/test/no-lines/app/app.module';
import {AppModule as ListRepeatHeaders} from '../../../../../list/test/repeat-headers/app.module';
import {AppModule as ListSticky} from '../../../../../list/test/sticky/app.module';
import {AppModule as LoadingBasic} from '../../../../../loading/test/basic/app/app.module';
import {AppModule as LoadingTabs} from '../../../../../tabs/test/basic/app/app.module';
import {AppModule as MenuBasic} from '../../../../../menu/test/basic/app/app.module';
// import {AppModule as MenuDisableSwipe} from '../../../../../menu/test/disable-swipe/app.module'; TODO
// import {AppModule as MenuEnableDisable} from '../../../../../menu/test/enable-disable/app.module'; TODO
import {AppModule as MenuMultiple} from '../../../../../menu/test/multiple/app/app.module';
import {AppModule as MenuOverlay} from '../../../../../menu/test/overlay/app.module';
import {AppModule as MenuPush} from '../../../../../menu/test/push/app.module';
import {AppModule as MenuReveal} from '../../../../../menu/test/reveal/app.module';
import {AppModule as ModalBasic} from '../../../../../modal/test/basic/app/app.module';
import {AppModule as NavBasic} from '../../../../../nav/test/basic/app/app.module';
import {AppModule as NavChildNavs} from '../../../../../nav/test/child-navs/app/app.module';
import {AppModule as NavInitAsync} from '../../../../../nav/test/init-async/app.module';
import {AppModule as NavInsertViews} from '../../../../../nav/test/insert-views/app.module';
import {AppModule as NavMemory} from '../../../../../nav/test/memory/app.module';
import {AppModule as NavNavPushPop} from '../../../../../nav/test/nav-push-pop/app.module';
import {AppModule as NavWorstCase} from '../../../../../nav/test/worst-case/app.module';
import {AppModule as PickerBasic} from '../../../../../picker/test/basic/app/app.module';
import {AppModule as PopoverBasic} from '../../../../../popover/test/basic/app/app.module';
import {AppModule as RadioBasic} from '../../../../../radio/test/basic/app/app.module';
import {AppModule as RangeBasic} from '../../../../../range/test/basic/app/app.module';
import {AppModule as RefresherBasic} from '../../../../../refresher/test/basic/app.module';
// import {AppModule as RefresherNavigation} from '../../../../../refresher/test/navigation/app.module'; TODO
import {AppModule as ScrollBasic} from '../../../../../scroll/test/basic/app.module';
import {AppModule as SearchbarBasic} from '../../../../../searchbar/test/basic/app/app.module';
import {AppModule as SearchbarNav} from '../../../../../searchbar/test/nav/app/app.module';
import {AppModule as SearchbarToolbar} from '../../../../../searchbar/test/toolbar/app/app.module';
import {AppModule as SegmentBasic} from '../../../../../segment/test/basic/app/app.module';
import {AppModule as SegmentNav} from '../../../../../segment/test/nav/app/app.module';
import {AppModule as SegmentSwipe} from '../../../../../segment/test/swipe/app/app.module';
import {AppModule as SelectMultipleValue} from '../../../../../select/test/multiple-value/app/app.module';
import {AppModule as SelectSingleValue} from '../../../../../select/test/single-value/app/app.module';
import {AppModule as ShowHideWhenBasic} from '../../../../../show-hide-when/test/basic/app.module';
import {AppModule as SlidesBasic} from '../../../../../slides/test/basic/app.module';
import {AppModule as SlidesControl} from '../../../../../slides/test/control/app.module';
import {AppModule as SlidesController} from '../../../../../slides/test/controller/app.module';
import {AppModule as SlidesImages} from '../../../../../slides/test/images/app.module';
import {AppModule as SlidesIntro} from '../../../../../slides/test/intro/app.module';
import {AppModule as SlidesLoop} from '../../../../../slides/test/loop/app.module';
import {AppModule as SlidesOptions} from '../../../../../slides/test/options/app.module';
import {AppModule as SlidesRTL} from '../../../../../slides/test/rtl/app.module';
import {AppModule as SlidesScroll} from '../../../../../slides/test/scroll/app.module';
import {AppModule as SpinnerBasic} from '../../../../../spinner/test/basic/app.module';
import {AppModule as SpinnerColors} from '../../../../../spinner/test/colors/app.module';
import {AppModule as SplitPaneBasic} from '../../../../../split-pane/test/basic/app/app.module';
import {AppModule as SplitPaneMenus} from '../../../../../split-pane/test/menus/app/app.module';
import {AppModule as SplitPaneNested} from '../../../../../split-pane/test/nested/app/app.module';
import {AppModule as SplitPaneTabs} from '../../../../../split-pane/test/tabs/app/app.module';
import {AppModule as TabsAdvanced} from '../../../../../tabs/test/advanced/app/app.module';
import {AppModule as TabsBadges} from '../../../../../tabs/test/badges/app/app.module';
import {AppModule as TabsBasic} from '../../../../../tabs/test/basic/app/app.module';
import {AppModule as TabsColors} from '../../../../../tabs/test/colors/app/app.module';
import {AppModule as TabsEvents} from '../../../../../tabs/test/events/app.module';
import {AppModule as TabsGhost} from '../../../../../tabs/test/ghost/app.module';
import {AppModule as TabsLifecycle} from '../../../../../tabs/test/lifecyles/app.module';
import {AppModule as TabsTabBarScenarios} from '../../../../../tabs/test/tab-bar-scenarios/app/app.module';
import {AppModule as TabsTop} from '../../../../../tabs/test/top/app.module';
import {AppModule as ToastBasic} from '../../../../../toast/test/basic/app/app.module';
import {AppModule as ToggleBasic} from '../../../../../toggle/test/basic/app/app.module';
import {AppModule as ToolbarBasic} from '../../../../../toolbar/test/basic/app/app.module';
import {AppModule as ToolbarColors} from '../../../../../toolbar/test/colors/app/app.module';
import {AppModule as ToolbarScenarios} from '../../../../../toolbar/test/scenarios/app/app.module';
import {AppModule as TypographyBasic} from '../../../../../typography/test/basic/app/app.module';
import {AppModule as VirtualScrollBasic} from '../../../../../virtual-scroll/test/basic/app.module';
import {AppModule as VirtualScrollCards} from '../../../../../virtual-scroll/test/cards/app.module';
import {AppModule as VirtualScrollImageGallery} from '../../../../../virtual-scroll/test/image-gallery/app.module';
import {AppModule as VirtualScrollInfiniteScroll} from '../../../../../virtual-scroll/test/infinite-scroll/app.module';
import {AppModule as VirtualScrollList} from '../../../../../virtual-scroll/test/list/app.module';
import {AppModule as VirtualScrollMedia} from '../../../../../virtual-scroll/test/media/app/app.module';
import {AppModule as VirtualScrollSlidingItem} from '../../../../../virtual-scroll/test/sliding-item/app.module';
import {AppModule as VirtualScrollVariableSize} from '../../../../../virtual-scroll/test/variable-size/app.module';
@NgModule({
declarations: [
ComponentsPage
],
imports: [
IonicPageModule.forChild(ComponentsPage),
ActionSheetBasic,
AlertBasic,
AlertDismiss,
AppAnimations,
AppCordova,
AppGestureCollision,
AppGestures,
AppTypography,
AppUtilities,
BadgeBasic,
ButtonAnchors,
ButtonAttributes,
ButtonBasic,
ButtonBlock,
ButtonClear,
ButtonDecorator,
ButtonDynamic,
ButtonFull,
ButtonIcons,
ButtonOutline,
ButtonRaised,
ButtonRound,
ButtonSizes,
CardAdvanced,
CardBasic,
CardColors,
CardImages,
CardList,
CardMap,
CardSocial,
CheckboxBasic,
ChipBasic,
ContentBasic,
ContentFullscreen,
ContentHeaderScroll,
ContentNoBounce,
ContentScrollDownOnLoad,
DatetimeBasic,
DatetimeForm,
DatetimeIssues,
DatetimeLabels,
FabBasic,
GridAlignment,
GridBasic,
GridCard,
GridFull,
GridResponsive,
IconBasic,
ImgBasic,
ImgCards,
ImgLazyLoad,
ImgList,
InfiniteScrollBasic,
InfiniteScrollPositionTop,
InfiniteScrollShortList,
InputBasicForm,
InputClearAfterEdit,
InputClearInput,
InputEvents,
InputFixedInlineLabels,
InputFloatingLabels,
InputFooterInputs,
InputFormInputs,
InputHighlight,
InputInlineLabels,
InputInputFocus,
InputInsetInputs,
InputPlaceholderLabels,
InputStackedLabels,
ItemButtons,
ItemColors,
ItemDividers,
ItemGroups,
ItemIcons,
ItemImages,
ItemInputs,
ItemMedia,
ItemReorder,
ItemSliding,
ItemText,
ListChatList,
ListHeaderScenarios,
ListHeaders,
ListInset,
ListNoLines,
ListRepeatHeaders,
ListSticky,
LoadingBasic,
LoadingTabs,
MenuBasic,
// MenuDisableSwipe, TODO
// MenuEnableDisable, TODO
MenuMultiple,
MenuOverlay,
MenuPush,
MenuReveal,
ModalBasic,
NavBasic,
NavChildNavs,
NavInitAsync,
NavInsertViews,
NavMemory,
NavNavPushPop,
NavWorstCase,
PickerBasic,
PopoverBasic,
RadioBasic,
RangeBasic,
RefresherBasic,
// RefresherNavigation, TODO
ScrollBasic,
SearchbarBasic,
SearchbarNav,
SearchbarToolbar,
SegmentBasic,
SegmentNav,
SegmentSwipe,
SelectMultipleValue,
SelectSingleValue,
ShowHideWhenBasic,
SlidesBasic,
SlidesControl,
SlidesController,
SlidesImages,
SlidesIntro,
SlidesLoop,
SlidesOptions,
SlidesRTL,
SlidesScroll,
SpinnerBasic,
SpinnerColors,
SplitPaneBasic,
SplitPaneMenus,
SplitPaneNested,
SplitPaneTabs,
TabsAdvanced,
TabsBadges,
TabsBasic,
TabsColors,
TabsEvents,
TabsGhost,
TabsLifecycle,
TabsTabBarScenarios,
TabsTop,
ToastBasic,
ToggleBasic,
ToolbarBasic,
ToolbarColors,
ToolbarScenarios,
TypographyBasic,
VirtualScrollBasic,
VirtualScrollCards,
VirtualScrollImageGallery,
VirtualScrollInfiniteScroll,
VirtualScrollList,
VirtualScrollMedia,
VirtualScrollSlidingItem,
VirtualScrollVariableSize,
],
entryComponents: [
ComponentsPage
]
})
export class ComponentsModule {
}

View File

@ -0,0 +1,574 @@
import {Component} from '@angular/core';
import {IonicPage} from '../../../../../../';
import {AssistiveTouchProvider} from '../../providers/assistive-touch/assistive-touch';
import {NavController} from '../../../../../../navigation/nav-controller';
import {AppComponent as ActionSheetBasic} from '../../../../../action-sheet/test/basic/app/app.component';
import {AppComponent as AlertBasic} from '../../../../../alert/test/basic/app/app.component';
import {AppComponent as AlertDismiss} from '../../../../../alert/test/dismiss/app.module';
import {AppComponent as AppAnimations} from '../../../../../app/test/animations/app.module';
import {AppComponent as AppCordova} from '../../../../../app/test/cordova/app/app.component';
import {AppComponent as AppGestureCollision} from '../../../../../app/test/gesture-collision/app/app.component';
import {AppComponent as AppGestures} from '../../../../../app/test/gestures/app.module';
import {AppComponent as AppTypography} from '../../../../../app/test/typography/app/app.component';
import {AppComponent as AppUtilities} from '../../../../../app/test/utilities/app/app.component';
import {AppComponent as BadgeBasic} from '../../../../../badge/test/basic/app/app.component';
import {AppComponent as ButtonAnchors} from '../../../../../button/test/anchors/app/app.component';
import {AppComponent as ButtonAttributes} from '../../../../../button/test/attributes/app/app.component';
import {AppComponent as ButtonBasic} from '../../../../../button/test/basic/app/app.component';
import {AppComponent as ButtonBlock} from '../../../../../button/test/block/app/app.component';
import {AppComponent as ButtonClear} from '../../../../../button/test/clear/app/app.component';
import {AppComponent as ButtonDecorator} from '../../../../../button/test/decorator/app/app.component';
import {AppComponent as ButtonDynamic} from '../../../../../button/test/dynamic/app/app.component';
import {AppComponent as ButtonFull} from '../../../../../button/test/full/app/app.component';
import {AppComponent as ButtonIcons} from '../../../../../button/test/icons/app/app.component';
import {AppComponent as ButtonOutline} from '../../../../../button/test/outline/app/app.component';
import {AppComponent as ButtonRaised} from '../../../../../button/test/raised/app.module';
import {AppComponent as ButtonRound} from '../../../../../button/test/round/app/app.component';
import {AppComponent as ButtonSizes} from '../../../../../button/test/sizes/app/app.component';
import {AppComponent as CardAdvanced} from '../../../../../card/test/advanced/app/app.component';
import {AppComponent as CardBasic} from '../../../../../card/test/basic/app/app.component';
import {AppComponent as CardColors} from '../../../../../card/test/colors/app/app.component';
import {AppComponent as CardImages} from '../../../../../card/test/images/app/app.component';
import {AppComponent as CardList} from '../../../../../card/test/list/app/app.component';
import {AppComponent as CardMap} from '../../../../../card/test/map/app.module';
import {AppComponent as CardSocial} from '../../../../../card/test/social/app.module';
import {AppComponent as CheckboxBasic} from '../../../../../checkbox/test/basic/app/app.component';
import {AppComponent as ChipBasic} from '../../../../../chip/test/basic/app/app.component';
import {AppComponent as ContentBasic} from '../../../../../content/test/basic/app/app.component';
import {AppComponent as ContentFullscreen} from '../../../../../content/test/fullscreen/app/app.component';
import {AppComponent as ContentHeaderScroll} from '../../../../../content/test/header-scroll/app.module';
import {AppComponent as ContentNoBounce} from '../../../../../content/test/no-bounce/app/app.component';
import {AppComponent as ContentScrollDownOnLoad} from '../../../../../content/test/scroll-down-on-load/app/app.component';
import {AppComponent as DatetimeBasic} from '../../../../../datetime/test/basic/app/app.component';
import {AppComponent as DatetimeForm} from '../../../../../datetime/test/form/app.module';
import {AppComponent as DatetimeIssues} from '../../../../../datetime/test/issues/app/app.component';
import {AppComponent as DatetimeLabels} from '../../../../../datetime/test/labels/app/app.component';
import {AppComponent as FabBasic} from '../../../../../fab/test/basic/app/app.component';
import {AppComponent as GridAlignment} from '../../../../../grid/test/alignment/app.module';
import {AppComponent as GridBasic} from '../../../../../grid/test/basic/app/app.component';
import {AppComponent as GridCard} from '../../../../../grid/test/card/app.module';
import {AppComponent as GridFull} from '../../../../../grid/test/full/app.module';
import {AppComponent as GridResponsive} from '../../../../../grid/test/responsive/app.module';
import {AppComponent as IconBasic} from '../../../../../icon/test/basic/app/app.component';
import {AppComponent as ImgBasic} from '../../../../../img/test/basic/app/app.component';
import {AppComponent as ImgCards} from '../../../../../img/test/cards/app.module';
import {AppComponent as ImgLazyLoad} from '../../../../../img/test/lazy-load/app.module';
import {AppComponent as ImgList} from '../../../../../img/test/list/app.module';
import {AppComponent as InfiniteScrollBasic} from '../../../../../infinite-scroll/test/basic/app.module';
import {AppComponent as InfiniteScrollPositionTop} from '../../../../../infinite-scroll/test/position-top/app/app.component';
import {AppComponent as InfiniteScrollShortList} from '../../../../../infinite-scroll/test/short-list/app.module';
import {AppComponent as InputBasicForm} from '../../../../../input/test/basic-form/app/app.component';
import {AppComponent as InputClearAfterEdit} from '../../../../../input/test/clear-after-edit/app/app.component';
import {AppComponent as InputClearInput} from '../../../../../input/test/clear-input/app/app.component';
import {AppComponent as InputEvents} from '../../../../../input/test/events/app/app.component';
import {AppComponent as InputFixedInlineLabels} from '../../../../../input/test/fixed-inline-labels/app/app.component';
import {AppComponent as InputFloatingLabels} from '../../../../../input/test/floating-labels/app/app.component';
import {AppComponent as InputFooterInputs} from '../../../../../input/test/footer-inputs/app/app.component';
import {AppComponent as InputFormInputs} from '../../../../../input/test/form-inputs/app/app.component';
import {AppComponent as InputHighlight} from '../../../../../input/test/highlight/app/app.component';
import {AppComponent as InputInlineLabels} from '../../../../../input/test/inline-labels/app/app.component';
import {AppComponent as InputInputFocus} from '../../../../../input/test/input-focus/app/app.module';
import {AppComponent as InputInsetInputs} from '../../../../../input/test/inset-inputs/app/app.component';
import {AppComponent as InputPlaceholderLabels} from '../../../../../input/test/placeholder-labels/app/app.component';
import {AppComponent as InputStackedLabels} from '../../../../../input/test/stacked-labels/app/app.component';
import {AppComponent as ItemButtons} from '../../../../../item/test/buttons/app/app.component';
import {AppComponent as ItemColors} from '../../../../../item/test/colors/app/app.component';
import {AppComponent as ItemDividers} from '../../../../../item/test/dividers/app/app.component';
import {AppComponent as ItemGroups} from '../../../../../item/test/groups/app/app.component';
import {AppComponent as ItemIcons} from '../../../../../item/test/icons/app/app.component';
import {AppComponent as ItemImages} from '../../../../../item/test/images/app/app.component';
import {AppComponent as ItemInputs} from '../../../../../item/test/inputs/app/app.component';
import {AppComponent as ItemMedia} from '../../../../../item/test/media/app/app.component';
import {AppComponent as ItemReorder} from '../../../../../item/test/reorder/app/app.module';
import {AppComponent as ItemSliding} from '../../../../../item/test/sliding/app/app.component';
import {AppComponent as ItemText} from '../../../../../item/test/text/app/app.component';
import {AppComponent as ListChatList} from '../../../../../list/test/chat-list/app.module';
import {AppComponent as ListHeaderScenarios} from '../../../../../list/test/header-scenarios/app/app.component';
import {AppComponent as ListHeaders} from '../../../../../list/test/headers/app/app.component';
import {AppComponent as ListInset} from '../../../../../list/test/inset/app/app.component';
import {AppComponent as ListNoLines} from '../../../../../list/test/no-lines/app/app.component';
import {AppComponent as ListRepeatHeaders} from '../../../../../list/test/repeat-headers/app.module';
import {AppComponent as ListSticky} from '../../../../../list/test/sticky/app.module';
import {AppComponent as LoadingBasic} from '../../../../../loading/test/basic/app/app.component';
import {AppComponent as LoadingTabs} from '../../../../../tabs/test/basic/app/app.component';
import {AppComponent as MenuBasic} from '../../../../../menu/test/basic/app/app.component';
// import {AppComponent as MenuDisableSwipe} from '../../../../../menu/test/disable-swipe/app.module';
// import {AppComponent as MenuEnableDisable} from '../../../../../menu/test/enable-disable/app.module';
import {AppComponent as MenuMultiple} from '../../../../../menu/test/multiple/app/app.component';
import {AppComponent as MenuOverlay} from '../../../../../menu/test/overlay/app.module';
import {AppComponent as MenuPush} from '../../../../../menu/test/push/app.module';
import {AppComponent as MenuReveal} from '../../../../../menu/test/reveal/app.module';
import {AppComponent as ModalBasic} from '../../../../../modal/test/basic/app/app.component';
import {AppComponent as NavBasic} from '../../../../../nav/test/basic/app/app.component';
import {AppComponent as NavChildNavs} from '../../../../../nav/test/child-navs/app/app.component';
import {AppComponent as NavInitAsync} from '../../../../../nav/test/init-async/app.module';
import {AppComponent as NavInsertViews} from '../../../../../nav/test/insert-views/app.module';
import {AppComponent as NavMemory} from '../../../../../nav/test/memory/app.module';
import {AppComponent as NavNavPushPop} from '../../../../../nav/test/nav-push-pop/app.module';
import {AppComponent as NavWorstCase} from '../../../../../nav/test/worst-case/app.module';
import {AppComponent as PickerBasic} from '../../../../../picker/test/basic/app/app.component';
import {AppComponent as PopoverBasic} from '../../../../../popover/test/basic/app/app.component';
import {AppComponent as RadioBasic} from '../../../../../radio/test/basic/app/app.component';
import {AppComponent as RangeBasic} from '../../../../../range/test/basic/app/app.component';
import {AppComponent as RefresherBasic} from '../../../../../refresher/test/basic/app.module';
// import {AppComponent as RefresherNavigation} from '../../../../../refresher/test/navigation/app.module';
import {AppComponent as ScrollBasic} from '../../../../../scroll/test/basic/app.module';
import {AppComponent as SearchbarBasic} from '../../../../../searchbar/test/basic/app/app.component';
import {AppComponent as SearchbarNav} from '../../../../../searchbar/test/nav/app/app.component';
import {AppComponent as SearchbarToolbar} from '../../../../../searchbar/test/toolbar/app/app.component';
import {AppComponent as SegmentBasic} from '../../../../../segment/test/basic/app/app.component';
import {AppComponent as SegmentNav} from '../../../../../segment/test/nav/app/app.component';
import {AppComponent as SegmentSwipe} from '../../../../../segment/test/swipe/app/app.component';
import {AppComponent as SelectMultipleValue} from '../../../../../select/test/multiple-value/app/app.component';
import {AppComponent as SelectSingleValue} from '../../../../../select/test/single-value/app/app.component';
import {AppComponent as ShowHideWhenBasic} from '../../../../../show-hide-when/test/basic/app.module';
import {AppComponent as SlidesBasic} from '../../../../../slides/test/basic/app.module';
import {AppComponent as SlidesControl} from '../../../../../slides/test/control/app.module';
import {AppComponent as SlidesController} from '../../../../../slides/test/controller/app.module';
import {AppComponent as SlidesImages} from '../../../../../slides/test/images/app.module';
import {AppComponent as SlidesIntro} from '../../../../../slides/test/intro/app.module';
import {AppComponent as SlidesLoop} from '../../../../../slides/test/loop/app.module';
import {AppComponent as SlidesOptions} from '../../../../../slides/test/options/app.module';
import {E2EApp as SlidesRTL} from '../../../../../slides/test/rtl/app.module';
import {AppComponent as SlidesScroll} from '../../../../../slides/test/scroll/app.module';
import {AppComponent as SpinnerBasic} from '../../../../../spinner/test/basic/app.module';
import {AppComponent as SpinnerColors} from '../../../../../spinner/test/colors/app.module';
import {AppComponent as SplitPaneBasic} from '../../../../../split-pane/test/basic/app/app.component';
import {AppComponent as SplitPaneMenus} from '../../../../../split-pane/test/menus/app/app.component';
import {AppComponent as SplitPaneNested} from '../../../../../split-pane/test/nested/app/app.component';
import {AppComponent as SplitPaneTabs} from '../../../../../split-pane/test/tabs/app/app.component';
import {AppComponent as TabsAdvanced} from '../../../../../tabs/test/advanced/app/app.component';
import {AppComponent as TabsBadges} from '../../../../../tabs/test/badges/app/app.component';
import {AppComponent as TabsBasic} from '../../../../../tabs/test/basic/app/app.component';
import {AppComponent as TabsColors} from '../../../../../tabs/test/colors/app/app.component';
import {AppComponent as TabsEvents} from '../../../../../tabs/test/events/app.module';
import {TabsPage as TabsGhost} from '../../../../../tabs/test/ghost/app.module';
import {AppComponent as TabsLifecycle} from '../../../../../tabs/test/lifecyles/app.module';
import {AppComponent as TabsTabBarScenarios} from '../../../../../tabs/test/tab-bar-scenarios/app/app.component';
import {AppComponent as TabsTop} from '../../../../../tabs/test/top/app.module';
import {AppComponent as ToastBasic} from '../../../../../toast/test/basic/app/app.component';
import {AppComponent as ToggleBasic} from '../../../../../toggle/test/basic/app/app.component';
import {AppComponent as ToolbarBasic} from '../../../../../toolbar/test/basic/app/app.component';
import {AppComponent as ToolbarColors} from '../../../../../toolbar/test/colors/app/app.component';
import {AppComponent as ToolbarScenarios} from '../../../../../toolbar/test/scenarios/app/app.component';
import {AppComponent as TypographyBasic} from '../../../../../typography/test/basic/app/app.component';
import {AppComponent as VirtualScrollBasic} from '../../../../../virtual-scroll/test/basic/app.module';
import {AppComponent as VirtualScrollCards} from '../../../../../virtual-scroll/test/cards/app.module';
import {AppComponent as VirtualScrollImageGallery} from '../../../../../virtual-scroll/test/image-gallery/app.module';
import {E2EApp as VirtualScrollInfiniteScroll} from '../../../../../virtual-scroll/test/infinite-scroll/app.module';
import {AppComponent as VirtualScrollList} from '../../../../../virtual-scroll/test/list/app.module';
import {AppComponent as VirtualScrollMedia} from '../../../../../virtual-scroll/test/media/app/app.component';
import {AppComponent as VirtualScrollSlidingItem} from '../../../../../virtual-scroll/test/sliding-item/app.module';
import {AppComponent as VirtualScrollVariableSize} from '../../../../../virtual-scroll/test/variable-size/app.module';
export type ComponentsGroup = { name: string, components: Array<{ name: string, component: any }> };
@IonicPage()
@Component({
templateUrl: 'components.html'
})
export class ComponentsPage {
components: Array<ComponentsGroup> = [
{
name: 'Action Sheet',
components: [
{name: 'basic', component: ActionSheetBasic}
]
}, {
name: 'Alert',
components: [
{name: 'basic', component: AlertBasic},
{name: 'dismiss', component: AlertDismiss}
]
}, {
name: 'App',
components: [
{name: 'animations', component: AppAnimations},
{name: 'cordova', component: AppCordova},
{name: 'gesture-collision', component: AppGestureCollision},
{name: 'gestures', component: AppGestures},
{name: 'typography', component: AppTypography},
{name: 'utilities', component: AppUtilities}
]
}, {
name: 'Avatar',
components: []
}, {
name: 'Backdrop',
components: []
}, {
name: 'Badge',
components: [
{name: 'basic', component: BadgeBasic}
]
}, {
name: 'Button',
components: [
{name: 'anchors', component: ButtonAnchors},
{name: 'attributes', component: ButtonAttributes},
{name: 'basic', component: ButtonBasic},
{name: 'block', component: ButtonBlock},
{name: 'clear', component: ButtonClear},
{name: 'decorator', component: ButtonDecorator},
{name: 'dynamic', component: ButtonDynamic},
{name: 'full', component: ButtonFull},
{name: 'icons', component: ButtonIcons},
{name: 'outline', component: ButtonOutline},
{name: 'raised', component: ButtonRaised},
{name: 'round', component: ButtonRound},
{name: 'sizes', component: ButtonSizes}
]
}, {
name: 'Card',
components: [
{name: 'advanced', component: CardAdvanced},
{name: 'basic', component: CardBasic},
{name: 'colors', component: CardColors},
{name: 'images', component: CardImages},
{name: 'list', component: CardList},
{name: 'map', component: CardMap},
{name: 'social', component: CardSocial}
]
}, {
name: 'Checkbox',
components: [
{name: 'basic', component: CheckboxBasic}
]
}, {
name: 'Chip',
components: [
{name: 'basic', component: ChipBasic}
]
}, {
name: 'Content',
components: [
{name: 'basic', component: ContentBasic},
{name: 'fullscreen', component: ContentFullscreen},
{name: 'header-scroll', component: ContentHeaderScroll},
{name: 'no-bounce', component: ContentNoBounce},
{name: 'scroll-down-on-load', component: ContentScrollDownOnLoad}
]
}, {
name: 'Datetime',
components: [
{name: 'basic', component: DatetimeBasic},
{name: 'form', component: DatetimeForm},
{name: 'issues', component: DatetimeIssues},
{name: 'labels', component: DatetimeLabels}
]
}, {
name: 'Fab',
components: [
{name: 'basic', component: FabBasic}
]
}, {
name: 'Grid',
components: [
{name: 'alignment', component: GridAlignment},
{name: 'basic', component: GridBasic},
{name: 'card', component: GridCard},
{name: 'full', component: GridFull},
{name: 'responsive', component: GridResponsive}
]
}, {
name: 'Icon',
components: [
{name: 'basic', component: IconBasic}
]
}, {
name: 'Img',
components: [
{name: 'basic', component: ImgBasic},
{name: 'cards', component: ImgCards},
{name: 'lazy-load', component: ImgLazyLoad},
{name: 'list', component: ImgList}
]
}, {
name: 'Infinite Scroll',
components: [
{name: 'basic', component: InfiniteScrollBasic},
{name: 'position-top', component: InfiniteScrollPositionTop},
{name: 'short-list', component: InfiniteScrollShortList}
]
}, {
name: 'Inputs',
components: [
{name: 'basic-form', component: InputBasicForm},
{name: 'clear-after-edit', component: InputClearAfterEdit},
{name: 'clear-input', component: InputClearInput},
{name: 'events', component: InputEvents},
{name: 'fixed-inline-labels', component: InputFixedInlineLabels},
{name: 'floating-labels', component: InputFloatingLabels},
{name: 'footer-inputs', component: InputFooterInputs},
{name: 'form-inputs', component: InputFormInputs},
{name: 'highlight', component: InputHighlight},
{name: 'inline-labels', component: InputInlineLabels},
{name: 'input-focus', component: InputInputFocus},
{name: 'inset-inputs', component: InputInsetInputs},
{name: 'placeholder-labels', component: InputPlaceholderLabels},
{name: 'stacked-labels', component: InputStackedLabels}
]
}, {
name: 'Item',
components: [
{name: 'buttons', component: ItemButtons},
{name: 'colors', component: ItemColors},
{name: 'dividers', component: ItemDividers},
{name: 'groups', component: ItemGroups},
{name: 'icons', component: ItemIcons},
{name: 'images', component: ItemImages},
{name: 'inputs', component: ItemInputs},
{name: 'media', component: ItemMedia},
{name: 'reorder', component: ItemReorder},
{name: 'sliding', component: ItemSliding},
{name: 'text', component: ItemText}
]
}, {
name: 'Label',
components: []
}, {
name: 'List',
components: [
{name: 'chat-list', component: ListChatList},
{name: 'header-scenarios', component: ListHeaderScenarios},
{name: 'headers', component: ListHeaders},
{name: 'inset', component: ListInset},
{name: 'no-lines', component: ListNoLines},
{name: 'repeat-headers', component: ListRepeatHeaders},
{name: 'sticky', component: ListSticky},
]
}, {
name: 'Loading',
components: [
{name: 'basic', component: LoadingBasic},
{name: 'tabs', component: LoadingTabs}
]
}, {
name: 'Menu',
components: [
{name: 'basic', component: MenuBasic},
// {name: 'disable-swipe', component: MenuDisableSwipe},
// {name: 'enable-disable', component: MenuEnableDisable},
{name: 'multiple', component: MenuMultiple},
{name: 'overlay', component: MenuOverlay},
{name: 'push', component: MenuPush},
{name: 'reveal', component: MenuReveal},
]
}, {
name: 'Modal',
components: [
{name: 'basic', component: ModalBasic}
]
}, {
name: 'Nav',
components: [
{name: 'basic', component: NavBasic},
{name: 'child-navs', component: NavChildNavs},
{name: 'init-async', component: NavInitAsync},
{name: 'insert-views', component: NavInsertViews},
{name: 'memory', component: NavMemory},
{name: 'nav-push-pop', component: NavNavPushPop},
{name: 'worst-case', component: NavWorstCase}
]
}, {
name: 'Note',
components: []
}, {
name: 'Option',
components: []
}, {
name: 'Picker',
components: [
{name: 'basic', component: PickerBasic}
]
}, {
name: 'Popover',
components: [
{name: 'basic', component: PopoverBasic}
]
}, {
name: 'Radio',
components: [
{name: 'basic', component: RadioBasic}
]
}, {
name: 'Range',
components: [
{name: 'basic', component: RangeBasic}
]
}, {
name: 'Refresher',
components: [
{name: 'basic', component: RefresherBasic},
// {name: 'navigation', component: RefresherNavigation}
]
}, {
name: 'Scroll',
components: [
{name: 'basic', component: ScrollBasic}
]
}, {
name: 'Searchbar',
components: [
{name: 'basic', component: SearchbarBasic},
{name: 'nav', component: SearchbarNav},
{name: 'toolbar', component: SearchbarToolbar},
]
}, {
name: 'Segment',
components: [
{name: 'basic', component: SegmentBasic},
{name: 'nav', component: SegmentNav},
{name: 'swipe', component: SegmentSwipe},
]
}, {
name: 'Select',
components: [
{name: 'multiple-value', component: SelectMultipleValue},
{name: 'single-value', component: SelectSingleValue}
]
}, {
name: 'Show-hide-when',
components: [
{name: 'basic', component: ShowHideWhenBasic}
]
}, {
name: 'Show-hide-when',
components: [
{name: 'basic', component: SlidesBasic},
{name: 'control', component: SlidesControl},
{name: 'controller', component: SlidesController},
{name: 'images', component: SlidesImages},
{name: 'intro', component: SlidesIntro},
{name: 'loop', component: SlidesLoop},
{name: 'options', component: SlidesOptions},
{name: 'rtl', component: SlidesRTL},
{name: 'scroll', component: SlidesScroll},
]
}, {
name: 'Spinner',
components: [
{name: 'basic', component: SpinnerBasic},
{name: 'colors', component: SpinnerColors}
]
}, {
name: 'Split-pane',
components: [
{name: 'basic', component: SplitPaneBasic},
{name: 'menus', component: SplitPaneMenus},
{name: 'nested', component: SplitPaneNested},
{name: 'tabs', component: SplitPaneTabs}
]
}, {
name: 'Tabs',
components: [
{name: 'advanced', component: TabsAdvanced},
{name: 'badges', component: TabsBadges},
{name: 'basic', component: TabsBasic},
{name: 'colors', component: TabsColors},
{name: 'events', component: TabsEvents},
{name: 'ghost', component: TabsGhost},
{name: 'lifecyles', component: TabsLifecycle},
{name: 'tab-bar-scenarios', component: TabsTabBarScenarios},
{name: 'top', component: TabsTop}
]
}, {
name: 'Thumbnail',
components: []
}, {
name: 'Toast',
components: [
{name: 'basic', component: ToastBasic}
]
}, {
name: 'Toggle',
components: [
{name: 'basic', component: ToastBasic}
]
}, {
name: 'Toggle',
components: [
{name: 'basic', component: ToggleBasic}
]
}, {
name: 'Toolbar',
components: [
{name: 'basic', component: ToolbarBasic},
{name: 'colors', component: ToolbarColors},
{name: 'scenarios', component: ToolbarScenarios}
]
}, {
name: 'Typography',
components: [
{name: 'basic', component: TypographyBasic}
]
}, {
name: 'Virtual-scroll',
components: [
{name: 'basic', component: VirtualScrollBasic},
{name: 'cards', component: VirtualScrollCards},
{name: 'image-gallery', component: VirtualScrollImageGallery},
{name: 'infinite-scroll', component: VirtualScrollInfiniteScroll},
{name: 'list', component: VirtualScrollList},
{name: 'media', component: VirtualScrollMedia},
{name: 'sliding-item', component: VirtualScrollSlidingItem},
{name: 'variable-size', component: VirtualScrollVariableSize},
]
}
];
constructor(private navCtrl: NavController, private assistive: AssistiveTouchProvider) {
assistive.closeButton.subscribe(this.close.bind(this));
}
open(component: any) {
this.navCtrl.push(component);
}
close() {
this.navCtrl.popToRoot();
}
}

View File

@ -0,0 +1,6 @@
import {EventEmitter, Injectable} from '@angular/core';
@Injectable()
export class AssistiveTouchProvider {
public closeButton: EventEmitter<any> = new EventEmitter<any>();
}