@triniwiz/nativescript-pager
Version:
A Carousel/Pager plugin for NativeScript
1 lines • 25.6 kB
Source Map (JSON)
{"version":3,"file":"nativescript-nativescript-pager-angular.mjs","sources":["../../../../../packages/nativescript-pager/angular/pager-items-comp.ts","../../../../../packages/nativescript-pager/angular/index.ts","../../../../../packages/nativescript-pager/angular/nativescript-nativescript-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 NgZone,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ɵisListLikeIterable as isListLikeIterable,\n} from \"@angular/core\";\nimport { isIOS, KeyedTemplate, View } from \"@nativescript/core\";\nimport { EventData, LayoutBase, Template, Trace, profile, ObservableArray, ItemEventData,ItemsSource } from \"@nativescript/core\";\n\nimport {\n getSingleViewRecursive,\n isInvisibleNode,\n registerElement,\n} from \"@nativescript/angular\";\n\nimport {\n Pager,\n PagerError,\n PagerItem,\n PagerLog,\n} from \"@triniwiz/nativescript-pager\";\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 | Array<KeyedTemplate>;\n\n refresh(): void;\n\n on(\n event: \"itemLoading\",\n callback: (args: ItemEventData) => void,\n thisArg?: any\n );\n\n on(\n event: \"itemDisposing\",\n callback: (args: ItemEventData) => void,\n thisArg?: any\n );\n\n off(\n event: \"itemLoading\",\n callback: (args: EventData) => void,\n thisArg?: any\n );\n\n off(\n event: \"itemDisposing\",\n callback: (args: EventData) => void,\n thisArg?: any\n );\n}\n\nexport class ItemContext {\n constructor(\n public $implicit?: any,\n public item?: any,\n public index?: number,\n public even?: boolean,\n public odd?: boolean\n ) { }\n}\n\nexport interface SetupItemViewArgs {\n view: EmbeddedViewRef<any>;\n data: any;\n index: number;\n context: ItemContext;\n}\n\n@Directive()\nexport abstract class TemplatedItemsComponent\n 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 })\n loader: ViewContainerRef;\n\n @Output()\n public setupItemView = new EventEmitter<SetupItemViewArgs>();\n\n @ContentChild(TemplateRef, { static: false })\n 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\n .find(this._items)\n .create((_index, item) => {\n return item;\n });\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(\n this._selectedIndex,\n false\n );\n }\n this.templatedItemsView.selectedIndex = this._selectedIndex;\n });\n }\n }\n\n constructor(\n _elementRef: ElementRef,\n private _iterableDiffers: IterableDiffers,\n private zone: NgZone\n ) {\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(\n \"itemDisposing\",\n this.onItemDisposing,\n this\n );\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 = (<any>args.object).items;\n const currentItem =\n typeof items.getItem === \"function\"\n ? items.getItem(index)\n : 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 (\n !viewRef &&\n args.view instanceof LayoutBase &&\n args.view.getChildrenCount() > 0\n ) {\n viewRef = args.view.getChildAt(0)[NG_VIEW];\n }\n\n if (!viewRef && Trace.isEnabled()) {\n PagerError(\n `ViewReference not found for item ${index}. View recycling is not working`\n );\n }\n }\n\n if (!viewRef) {\n if (Trace.isEnabled()) {\n PagerLog(\n `onItemLoading: ${index} - Creating view from template`\n );\n }\n\n viewRef = this.loader.createEmbeddedView(\n this.itemTemplate,\n new ItemContext(),\n 0\n );\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(\n `onItemDisposing: ${args.index} - Removing angular view`\n );\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 (\n !viewRef &&\n args.view instanceof LayoutBase &&\n args.view.getChildrenCount() > 0\n ) {\n viewRef = args.view.getChildAt(0)[NG_VIEW];\n }\n\n if (!viewRef && Trace.isEnabled()) {\n PagerError(\n `ViewReference not found for item ${args.index}. View disposing is not working`\n );\n }\n }\n\n if (viewRef) {\n if (Trace.isEnabled()) {\n PagerLog(\n `onItemDisposing: ${args.index} - Disposing view reference`\n );\n }\n\n viewRef.destroy();\n }\n }\n\n public setupViewRef(\n viewRef: EmbeddedViewRef<ItemContext>,\n data: any,\n index: number\n ): 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: data,\n index: index,\n context: context,\n });\n }\n\n protected getItemTemplateViewFactory(\n template: TemplateRef<ItemContext>\n ): () => View {\n return () => {\n const viewRef = this.loader.createEmbeddedView(\n template,\n new ItemContext(),\n 0\n );\n const resultView = getItemViewRoot(viewRef);\n resultView[NG_VIEW] = viewRef;\n\n return resultView;\n };\n }\n\n @profile\n private detectChangesOnChild(\n viewRef: EmbeddedViewRef<ItemContext>,\n index: number\n ) {\n if (Trace.isEnabled()) {\n PagerLog(`Manually detect changes in child: ${index}`);\n }\n\n this.zone.run(() => {\n viewRef.markForCheck();\n viewRef.detectChanges();\n })\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: Array<any>;\n\n destroy(): void;\n}\n\nexport type RootLocator = (nodes: Array<any>, nestLevel: number) => View;\n\nexport function getItemViewRoot(\n viewRef: ComponentView,\n rootLocator: RootLocator = getSingleViewRecursive as any\n): View {\n return rootLocator(viewRef.rootNodes, 0);\n}\n\nexport const TEMPLATED_ITEMS_COMPONENT = new InjectionToken<\n TemplatedItemsComponent\n>(\"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(\n (node) => !isInvisibleNode(node)\n );\n\n if (realViews.length > 0) {\n const view = realViews[0];\n this.item.addChild(view);\n this.owner.nativeElement._addChildFromBuilder(\n \"PagerItem\",\n this.item\n );\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 {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n forwardRef,\n IterableDiffers,\n NgModule,\n NgZone,\n NO_ERRORS_SCHEMA\n} from '@angular/core';\n\nimport {Pager} from '@triniwiz/nativescript-pager';\nimport {\n PagerItemDirective,\n TEMPLATED_ITEMS_COMPONENT,\n TemplatedItemsComponent,\n TemplateKeyDirective\n} from './pager-items-comp';\n\nexport {PagerItemDirective, TemplatedItemsComponent, TemplateKeyDirective} from './pager-items-comp';\n\n@Component({\n selector: 'Pager',\n template: `\n <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})\n\nexport class PagerComponent extends TemplatedItemsComponent {\n public get nativeElement(): Pager {\n return this.templatedItemsView;\n }\n\n protected templatedItemsView: Pager;\n\n constructor(_elementRef: ElementRef, _iterableDiffers: IterableDiffers, zone: NgZone) {\n super(_elementRef, _iterableDiffers, zone);\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["isListLikeIterable"],"mappings":"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"}