UNPKG

@nativescript-community/ui-pager

Version:

A NativeScript Pager / Carousel component that allows the user to swipe left and right through pages of data.

1 lines 24.6 kB
{"version":3,"file":"nativescript-community-ui-pager-angular.mjs","sources":["../../../../src/ui-pager/angular/pager-items-comp.ts","../../../../src/ui-pager/angular/index.ts","../../../../src/ui-pager/angular/nativescript-community-ui-pager-angular.ts"],"sourcesContent":["import {\n AfterContentInit,\n Component,\n ContentChild,\n Directive,\n DoCheck,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Host,\n Inject,\n InjectionToken,\n Input,\n IterableDiffer,\n IterableDiffers,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { Pager, PagerError, PagerItem, PagerLog } from '@nativescript-community/ui-pager';\nimport { extractSingleViewRecursive, isInvisibleNode, isListLikeIterable, registerElement } from '@nativescript/angular';\nimport { EventData, KeyedTemplate, LayoutBase, Template, Trace, View, isIOS } from '@nativescript/core';\nimport { ObservableArray } from '@nativescript/core/data/observable-array';\nimport { profile } from '@nativescript/core/profiling';\nimport { ItemEventData, ItemsSource } from '@nativescript/core/ui/list-view';\n\nregisterElement('Pager', () => Pager);\nregisterElement('PagerItem', () => PagerItem);\n\nconst NG_VIEW = '_ngViewRef';\n\nexport interface PagerTemplatedItemsView {\n items: any[] | ItemsSource;\n itemTemplate: string | Template;\n itemTemplates?: string | KeyedTemplate[];\n\n refresh(): void;\n\n on(event: 'itemDisposing' | 'itemLoading', callback: (args: ItemEventData) => void, thisArg?: any);\n\n off(event: 'itemLoading' | 'itemDisposing', callback: (args: EventData) => void, thisArg?: any);\n}\n\nexport class ItemContext {\n constructor(public $implicit?: any, public item?: any, public index?: number, public even?: boolean, public odd?: boolean) {}\n}\n\nexport interface SetupItemViewArgs {\n view: EmbeddedViewRef<any>;\n data: any;\n index: number;\n context: ItemContext;\n}\n@Component({\n template: ''\n})\nexport abstract class TemplatedItemsComponent implements DoCheck, OnDestroy, AfterContentInit {\n public abstract get nativeElement(): Pager;\n\n protected templatedItemsView: Pager;\n protected _items: any;\n protected _differ: IterableDiffer<KeyedTemplate>;\n protected _templateMap: Map<string, KeyedTemplate>;\n private _selectedIndex: number;\n @ViewChild('loader', { read: ViewContainerRef, static: false }) loader: ViewContainerRef;\n\n @Output()\n public setupItemView = new EventEmitter<SetupItemViewArgs>();\n\n @ContentChild(TemplateRef, { static: false }) itemTemplateQuery: TemplateRef<ItemContext>;\n\n itemTemplate: TemplateRef<ItemContext>;\n\n @Input()\n get items() {\n return this._items;\n }\n\n set items(value: any) {\n this._items = value;\n let needDiffer = true;\n if (value instanceof ObservableArray) {\n needDiffer = false;\n }\n if (needDiffer && !this._differ && isListLikeIterable(value)) {\n this._differ = this._iterableDiffers.find(this._items).create((_index, item) => item);\n }\n\n this.templatedItemsView.items = this._items;\n }\n\n @Input()\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n set selectedIndex(value) {\n this._selectedIndex = value;\n this.templatedItemsView.selectedIndex = this._selectedIndex;\n }\n\n ngAfterViewInit() {\n if (!!this._selectedIndex) {\n setTimeout(() => {\n if (isIOS) {\n this.templatedItemsView.scrollToIndexAnimated(this._selectedIndex, false);\n }\n this.templatedItemsView.selectedIndex = this._selectedIndex;\n });\n }\n }\n\n constructor(_elementRef: ElementRef, private _iterableDiffers: IterableDiffers) {\n this.templatedItemsView = _elementRef.nativeElement;\n\n this.templatedItemsView.on('itemLoading', this.onItemLoading, this);\n this.templatedItemsView.on('itemDisposing', this.onItemDisposing, this);\n }\n\n ngAfterContentInit() {\n if (Trace.isEnabled()) {\n PagerLog('TemplatedItemsView.ngAfterContentInit()');\n }\n this.setItemTemplates();\n }\n\n ngOnDestroy() {\n this.templatedItemsView.off('itemLoading', this.onItemLoading, this);\n this.templatedItemsView.off('itemDisposing', this.onItemDisposing, this);\n }\n\n private setItemTemplates() {\n if (!this.items) return;\n // The itemTemplateQuery may be changed after list items are added that contain <template> inside,\n // so cache and use only the original template to avoid errors.\n this.itemTemplate = this.itemTemplateQuery;\n\n if (this._templateMap) {\n if (Trace.isEnabled()) {\n PagerLog('Setting templates');\n }\n\n const templates: KeyedTemplate[] = [];\n this._templateMap.forEach((value) => {\n templates.push(value);\n });\n this.templatedItemsView.itemTemplates = templates;\n }\n }\n\n public registerTemplate(key: string, template: TemplateRef<ItemContext>) {\n if (Trace.isEnabled()) {\n PagerLog(`registerTemplate for key: ${key}`);\n }\n\n if (!this._templateMap) {\n this._templateMap = new Map<string, KeyedTemplate>();\n }\n\n const keyedTemplate = {\n key,\n createView: this.getItemTemplateViewFactory(template)\n };\n\n this._templateMap.set(key, keyedTemplate);\n }\n\n @profile\n public onItemLoading(args: ItemEventData) {\n if (!args.view && !this.itemTemplate) {\n return;\n }\n\n if (!this.items) return;\n\n const index = args.index;\n const items = (args.object as any).items;\n const currentItem = typeof items.getItem === 'function' ? items.getItem(index) : items[index];\n let viewRef: EmbeddedViewRef<ItemContext>;\n\n if (args.view) {\n if (Trace.isEnabled()) {\n PagerLog(`onItemLoading: ${index} - Reusing existing view`);\n }\n\n viewRef = args.view[NG_VIEW];\n // Getting angular view from original element (in cases when ProxyViewContainer\n // is used NativeScript internally wraps it in a StackLayout)\n if (!viewRef && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {\n viewRef = args.view.getChildAt(0)[NG_VIEW];\n }\n\n if (!viewRef && Trace.isEnabled()) {\n PagerError(`ViewReference not found for item ${index}. View recycling is not working`);\n }\n }\n\n if (!viewRef) {\n if (Trace.isEnabled()) {\n PagerLog(`onItemLoading: ${index} - Creating view from template`);\n }\n\n viewRef = this.loader.createEmbeddedView(this.itemTemplate, new ItemContext(), 0);\n args.view = getItemViewRoot(viewRef);\n args.view[NG_VIEW] = viewRef;\n }\n\n this.setupViewRef(viewRef, currentItem, index);\n\n this.detectChangesOnChild(viewRef, index);\n }\n\n @profile\n public onItemDisposing(args: ItemEventData) {\n if (!args.view) {\n return;\n }\n let viewRef: EmbeddedViewRef<ItemContext>;\n\n if (args.view) {\n if (Trace.isEnabled()) {\n PagerLog(`onItemDisposing: ${args.index} - Removing angular view`);\n }\n\n viewRef = args.view[NG_VIEW];\n // Getting angular view from original element (in cases when ProxyViewContainer\n // is used NativeScript internally wraps it in a StackLayout)\n if (!viewRef && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {\n viewRef = args.view.getChildAt(0)[NG_VIEW];\n }\n\n if (!viewRef && Trace.isEnabled()) {\n PagerError(`ViewReference not found for item ${args.index}. View disposing is not working`);\n }\n }\n\n if (viewRef) {\n if (Trace.isEnabled()) {\n PagerLog(`onItemDisposing: ${args.index} - Disposing view reference`);\n }\n\n viewRef.destroy();\n }\n }\n\n public setupViewRef(viewRef: EmbeddedViewRef<ItemContext>, data: any, index: number): void {\n const context = viewRef.context;\n context.$implicit = data;\n context.item = data;\n context.index = index;\n context.even = index % 2 === 0;\n context.odd = !context.even;\n\n this.setupItemView.next({\n view: viewRef,\n data,\n index,\n context\n });\n }\n\n protected getItemTemplateViewFactory(template: TemplateRef<ItemContext>): () => View {\n return () => {\n const viewRef = this.loader.createEmbeddedView(template, new ItemContext(), 0);\n const resultView = getItemViewRoot(viewRef);\n resultView[NG_VIEW] = viewRef;\n\n return resultView;\n };\n }\n\n @profile\n private detectChangesOnChild(viewRef: EmbeddedViewRef<ItemContext>, index: number) {\n if (Trace.isEnabled()) {\n PagerLog(`Manually detect changes in child: ${index}`);\n }\n\n viewRef.markForCheck();\n viewRef.detectChanges();\n }\n\n ngDoCheck() {\n if (this._differ) {\n if (Trace.isEnabled()) {\n PagerLog('ngDoCheck() - execute differ');\n }\n\n const changes = this._differ.diff(this._items);\n if (changes) {\n if (Trace.isEnabled()) {\n PagerLog('ngDoCheck() - refresh');\n }\n\n this.templatedItemsView.refresh();\n }\n }\n }\n}\n\nexport interface ComponentView {\n rootNodes: any[];\n\n destroy(): void;\n}\n\nexport type RootLocator = (nodes: any[], nestLevel: number) => View;\n\nexport function getItemViewRoot(viewRef: ComponentView, rootLocator: RootLocator = extractSingleViewRecursive as any): View {\n return rootLocator(viewRef.rootNodes, 0);\n}\n\nexport const TEMPLATED_ITEMS_COMPONENT = new InjectionToken<TemplatedItemsComponent>('TemplatedItemsComponent');\n\n@Directive({\n selector: '[pagerItem]'\n})\nexport class PagerItemDirective implements OnInit {\n private item: PagerItem;\n\n constructor(\n private templateRef: TemplateRef<any>,\n @Inject(TEMPLATED_ITEMS_COMPONENT)\n @Host()\n private owner: TemplatedItemsComponent,\n private viewContainer: ViewContainerRef\n ) {}\n\n private ensureItem() {\n if (!this.item) {\n this.item = new PagerItem();\n }\n }\n\n private applyConfig() {\n this.ensureItem();\n }\n\n ngOnInit() {\n this.applyConfig();\n\n const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\n // Filter out text nodes and comments\n const realViews = viewRef.rootNodes.filter((node) => !isInvisibleNode(node));\n\n if (realViews.length > 0) {\n const view = realViews[0];\n this.item.addChild(view);\n this.owner.nativeElement._addChildFromBuilder('PagerItem', this.item);\n }\n }\n}\n\n@Directive({ selector: '[pagerTemplateKey]' })\nexport class TemplateKeyDirective {\n constructor(\n private templateRef: TemplateRef<any>,\n @Inject(TEMPLATED_ITEMS_COMPONENT)\n @Host()\n private comp: TemplatedItemsComponent\n ) {}\n\n @Input()\n set pagerTemplateKey(value: any) {\n if (this.comp && this.templateRef) {\n this.comp.registerTemplate(value, this.templateRef);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, IterableDiffers, NO_ERRORS_SCHEMA, NgModule, forwardRef } from '@angular/core';\n\nimport { Pager } from '@nativescript-community/ui-pager';\nimport { PagerItemDirective, TEMPLATED_ITEMS_COMPONENT, TemplateKeyDirective, TemplatedItemsComponent } from './pager-items-comp';\n\nexport { PagerItemDirective, TemplatedItemsComponent, TemplateKeyDirective } from './pager-items-comp';\n\n@Component({\n selector: 'Pager',\n template: ` <DetachedContainer>\n <Placeholder #loader></Placeholder>\n </DetachedContainer>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TEMPLATED_ITEMS_COMPONENT,\n useExisting: forwardRef(() => PagerComponent)\n }\n ]\n})\nexport class PagerComponent extends TemplatedItemsComponent {\n public get nativeElement(): Pager {\n return this.templatedItemsView;\n }\n\n constructor(_elementRef: ElementRef, _iterableDiffers: IterableDiffers) {\n super(_elementRef, _iterableDiffers);\n }\n}\n\n@NgModule({\n declarations: [PagerComponent, TemplateKeyDirective, PagerItemDirective],\n exports: [PagerComponent, TemplateKeyDirective, PagerItemDirective],\n schemas: [NO_ERRORS_SCHEMA]\n})\nexport class PagerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}