diff --git a/src/components/snapshot/test/basic/app/app.component.ts b/src/components/snapshot/test/basic/app/app.component.ts new file mode 100644 index 0000000000..20972dd584 --- /dev/null +++ b/src/components/snapshot/test/basic/app/app.component.ts @@ -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: ` + ` +}) +export class AppComponent { + root = ComponentsPage; +} diff --git a/src/components/snapshot/test/basic/app/app.module.ts b/src/components/snapshot/test/basic/app/app.module.ts new file mode 100644 index 0000000000..221ebd6038 --- /dev/null +++ b/src/components/snapshot/test/basic/app/app.module.ts @@ -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 {} diff --git a/src/components/snapshot/test/basic/app/main.ts b/src/components/snapshot/test/basic/app/main.ts new file mode 100644 index 0000000000..6af7a5b2ae --- /dev/null +++ b/src/components/snapshot/test/basic/app/main.ts @@ -0,0 +1,5 @@ +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app.module'; + +platformBrowserDynamic().bootstrapModule(AppModule); diff --git a/src/components/snapshot/test/basic/components/assistive-touch/assistive-touch.html b/src/components/snapshot/test/basic/components/assistive-touch/assistive-touch.html new file mode 100644 index 0000000000..1582ab01ea --- /dev/null +++ b/src/components/snapshot/test/basic/components/assistive-touch/assistive-touch.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/snapshot/test/basic/components/assistive-touch/assistive-touch.module.ts b/src/components/snapshot/test/basic/components/assistive-touch/assistive-touch.module.ts new file mode 100644 index 0000000000..3e2a5f3a2c --- /dev/null +++ b/src/components/snapshot/test/basic/components/assistive-touch/assistive-touch.module.ts @@ -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 { +} diff --git a/src/components/snapshot/test/basic/components/assistive-touch/assistive-touch.scss b/src/components/snapshot/test/basic/components/assistive-touch/assistive-touch.scss new file mode 100644 index 0000000000..496c65842b --- /dev/null +++ b/src/components/snapshot/test/basic/components/assistive-touch/assistive-touch.scss @@ -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; +} diff --git a/src/components/snapshot/test/basic/components/assistive-touch/assistive-touch.ts b/src/components/snapshot/test/basic/components/assistive-touch/assistive-touch.ts new file mode 100644 index 0000000000..b8380c35af --- /dev/null +++ b/src/components/snapshot/test/basic/components/assistive-touch/assistive-touch.ts @@ -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 ((window))['Hammer'](this.element.nativeElement); + hammer.get('pan').set({direction: ((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(); + } +} diff --git a/src/components/snapshot/test/basic/pages/components/components.html b/src/components/snapshot/test/basic/pages/components/components.html new file mode 100644 index 0000000000..63b63a50da --- /dev/null +++ b/src/components/snapshot/test/basic/pages/components/components.html @@ -0,0 +1,16 @@ + + + Components + + + + + + + {{componentItem.name}} + + + + diff --git a/src/components/snapshot/test/basic/pages/components/components.module.ts b/src/components/snapshot/test/basic/pages/components/components.module.ts new file mode 100644 index 0000000000..c55f6d8c3e --- /dev/null +++ b/src/components/snapshot/test/basic/pages/components/components.module.ts @@ -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 { +} diff --git a/src/components/snapshot/test/basic/pages/components/components.ts b/src/components/snapshot/test/basic/pages/components/components.ts new file mode 100644 index 0000000000..4389e6960b --- /dev/null +++ b/src/components/snapshot/test/basic/pages/components/components.ts @@ -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 = [ + { + 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(); + } +} diff --git a/src/components/snapshot/test/basic/providers/assistive-touch/assistive-touch.ts b/src/components/snapshot/test/basic/providers/assistive-touch/assistive-touch.ts new file mode 100644 index 0000000000..cb5afde693 --- /dev/null +++ b/src/components/snapshot/test/basic/providers/assistive-touch/assistive-touch.ts @@ -0,0 +1,6 @@ +import {EventEmitter, Injectable} from '@angular/core'; + +@Injectable() +export class AssistiveTouchProvider { + public closeButton: EventEmitter = new EventEmitter(); +}