@nativescript-community/ui-collectionview 4.0.53 → 4.0.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"nativescript-community-ui-collectionview-angular.mjs","sources":["../../../../src/collectionview/angular/collectionview-comp.ts","../../../../src/collectionview/angular/index.ts"],"sourcesContent":["import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Directive,\n DoCheck,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Host,\n Inject,\n Input,\n IterableDiffer,\n IterableDiffers,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ɵisListLikeIterable as isListLikeIterable\n} from '@angular/core';\nimport { CLog, CLogTypes, CollectionView, CollectionViewItemEventData, ListViewViewTypes } from '@nativescript-community/ui-collectionview';\nimport { extractSingleViewRecursive, registerElement } from '@nativescript/angular';\nimport { KeyedTemplate, LayoutBase, ObservableArray, Trace, View } from '@nativescript/core';\n\nregisterElement('CollectionView', () => CollectionView);\n\nconst NG_VIEW = '_ngViewRef';\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\n@Component({\n selector: 'CollectionView',\n template: `\n <DetachedContainer>\n <Placeholder #loader></Placeholder>\n </DetachedContainer>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CollectionViewComponent implements DoCheck, OnDestroy, AfterContentInit {\n public get nativeElement(): any {\n return this._collectionView;\n }\n public get listView(): any {\n return this._collectionView;\n }\n\n @ViewChild('loader', { read: ViewContainerRef, static: true }) public loader: ViewContainerRef;\n @Output() public setupItemView = new EventEmitter<SetupItemViewArgs>();\n @ContentChild(TemplateRef, { read: TemplateRef, static: true }) public itemTemplateQuery: TemplateRef<ItemContext>;\n\n @Input()\n public get itemTemplate() {\n return this._itemTemplate;\n }\n public set itemTemplate(value: any) {\n this._itemTemplate = value;\n this._collectionView.refresh();\n }\n @Input()\n public get items() {\n return this._items;\n }\n public 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._collectionView.items = this._items;\n }\n\n private _collectionView: CollectionView;\n private _items: any;\n private _differ: IterableDiffer<KeyedTemplate>;\n private _itemTemplate: TemplateRef<ItemContext>;\n private _templateMap: Map<string, KeyedTemplate>;\n\n constructor(@Inject(ElementRef) _elementRef: ElementRef, @Inject(IterableDiffers) private _iterableDiffers: IterableDiffers) {\n this._collectionView = _elementRef.nativeElement;\n\n this._collectionView.on(CollectionView.itemLoadingEvent, this.onItemLoading, this);\n this._collectionView.itemViewLoader = this.itemViewLoader;\n }\n\n private itemViewLoader = (viewType) => {\n switch (viewType) {\n case ListViewViewTypes.ItemView:\n if (this._itemTemplate && this.loader) {\n const nativeItem = this.loader.createEmbeddedView(this._itemTemplate, new ItemContext(), 0);\n const typedView = getItemViewRoot(nativeItem);\n typedView[NG_VIEW] = nativeItem;\n return typedView;\n }\n break;\n }\n return null;\n };\n\n public ngAfterContentInit() {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'CollectionView.ngAfterContentInit()');\n }\n this.setItemTemplates();\n }\n\n public ngOnDestroy() {\n this._collectionView.off(CollectionView.itemLoadingEvent, this.onItemLoading, this);\n }\n\n public ngDoCheck() {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'ngDoCheck() - execute differ? ' + this._differ);\n }\n if (this._differ) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'ngDoCheck() - execute differ');\n }\n const changes = this._differ.diff(this._items);\n if (changes) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'ngDoCheck() - refresh');\n }\n this.refresh();\n }\n }\n }\n\n public registerTemplate(key: string, template: TemplateRef<ItemContext>) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'registerTemplate for key: ' + key);\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 // @HostListener('itemLoadingInternal', ['$event'])\n public onItemLoading(args: CollectionViewItemEventData) {\n if (!args.view && !this.itemTemplate) {\n return;\n }\n if (!this.items) return;\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 (Trace.isEnabled()) {\n CLog(CLogTypes.info, `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 if (Trace.isEnabled()) {\n CLog(CLogTypes.info, `ViewReference not found for item ${index}. View recycling is not working`);\n }\n }\n\n if (!viewRef) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, `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 public setupViewRef(view: EmbeddedViewRef<ItemContext>, data: any, index: number): void {\n const context = view.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 context,\n data,\n index,\n view\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 private setItemTemplates() {\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 CLog(CLogTypes.info, 'Setting templates');\n }\n\n const templates: KeyedTemplate[] = [];\n this._templateMap.forEach((value) => {\n templates.push(value);\n });\n this._collectionView.itemTemplates = templates;\n } else {\n // If the map was not initialized this means that there are no named templates, so we register the default one.\n this._collectionView.itemTemplate = this.getItemTemplateViewFactory(this.itemTemplate);\n }\n }\n\n private detectChangesOnChild(viewRef: EmbeddedViewRef<ItemContext>, index: number) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'Manually detect changes in child: ' + index);\n }\n viewRef.markForCheck();\n viewRef.detectChanges();\n }\n\n private refresh() {\n if (this._collectionView) {\n this._collectionView.refresh();\n }\n }\n}\n\nexport interface ComponentView {\n rootNodes: any[];\n destroy(): void;\n}\n\nexport type RootLocator = (nodes: any[], nestLevel: number) => View;\n\nexport function getItemViewRoot(viewRef: ComponentView, rootLocator: RootLocator = extractSingleViewRecursive): View {\n const rootView = rootLocator(viewRef.rootNodes, 0);\n return rootView;\n}\n\n@Directive({ selector: '[cvTemplateKey]' })\nexport class TemplateKeyDirective {\n constructor(private templateRef: TemplateRef<any>, @Host() private collectionView: CollectionViewComponent) {}\n\n @Input()\n set cvTemplateKey(value: any) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'cvTemplateKey: ' + value);\n }\n if (this.collectionView && this.templateRef) {\n this.collectionView.registerTemplate(value.toLowerCase(), this.templateRef);\n }\n }\n}\n","// External\nimport { NO_ERRORS_SCHEMA, NgModule } from '@angular/core';\n\nimport { CollectionViewComponent, TemplateKeyDirective } from './collectionview-comp';\nexport { CollectionViewComponent, TemplateKeyDirective } from './collectionview-comp';\n\n@NgModule({\n declarations: [CollectionViewComponent, TemplateKeyDirective],\n exports: [CollectionViewComponent, TemplateKeyDirective],\n schemas: [NO_ERRORS_SCHEMA]\n})\nexport class CollectionViewModule {}\n"],"names":["isListLikeIterable"],"mappings":"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"}
1
+ {"version":3,"file":"nativescript-community-ui-collectionview-angular.mjs","sources":["../../../../src/collectionview/angular/collectionview-comp.ts","../../../../src/collectionview/angular/index.ts"],"sourcesContent":["import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n ContentChild,\n Directive,\n DoCheck,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Host,\n HostListener,\n Inject,\n Input,\n IterableDiffer,\n IterableDiffers,\n NgZone,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ɵisListLikeIterable as isListLikeIterable\n} from '@angular/core';\nimport { CLog, CLogTypes, CollectionView, CollectionViewItemEventData, ListViewViewTypes } from '@nativescript-community/ui-collectionview';\nimport { DetachedLoader, NativeScriptRendererFactory, extractSingleViewRecursive, registerElement } from '@nativescript/angular';\nimport { KeyedTemplate, LayoutBase, ObservableArray, Trace, View } from '@nativescript/core';\n\nregisterElement('CollectionView', () => CollectionView);\n\nconst NG_VIEW = '_ngViewRef';\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\n@Component({\n selector: 'CollectionView',\n template: `\n <DetachedContainer>\n <Placeholder #loader></Placeholder>\n </DetachedContainer>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CollectionViewComponent implements DoCheck, OnDestroy, AfterContentInit {\n public get nativeElement(): any {\n return this._collectionView;\n }\n public get listView(): any {\n return this._collectionView;\n }\n\n @ViewChild('loader', { read: ViewContainerRef, static: true }) public loader: ViewContainerRef;\n @Output() public setupItemView = new EventEmitter<SetupItemViewArgs>();\n @ContentChild(TemplateRef, { read: TemplateRef, static: true }) public itemTemplateQuery: TemplateRef<ItemContext>;\n\n @Input() autoReuseViews = false;\n\n detachedLoaderFactory() {\n const ref = this.loader.createComponent(DetachedLoader, {\n index: 0\n });\n this.loader.detach(0);\n return ref;\n }\n\n @Input()\n public get itemTemplate() {\n return this._itemTemplate;\n }\n public set itemTemplate(value: any) {\n this._itemTemplate = value;\n this._collectionView.refresh();\n }\n @Input()\n public get items() {\n return this._items;\n }\n public 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._collectionView.items = this._items;\n }\n\n private _collectionView: CollectionView;\n private _items: any;\n private _differ: IterableDiffer<KeyedTemplate>;\n private _itemTemplate: TemplateRef<ItemContext>;\n private _templateMap: Map<string, KeyedTemplate>;\n\n constructor(\n @Inject(ElementRef) private _elementRef: ElementRef,\n @Inject(IterableDiffers) private _iterableDiffers: IterableDiffers,\n @Inject(NativeScriptRendererFactory) private _renderer: NativeScriptRendererFactory,\n @Inject(NgZone) private _ngZone: NgZone\n ) {\n this._collectionView = _elementRef.nativeElement;\n\n this._collectionView.on(CollectionView.itemLoadingEvent, this.onItemLoading, this);\n this._collectionView.itemViewLoader = this.itemViewLoader;\n }\n\n private itemViewLoader = (viewType) =>\n this._ngZone.run(() => {\n switch (viewType) {\n case ListViewViewTypes.ItemView:\n if (this._itemTemplate && this.loader) {\n const typedView = this.getOrCreate(this._itemTemplate);\n return typedView;\n }\n break;\n }\n return null;\n });\n\n public ngAfterContentInit() {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'CollectionView.ngAfterContentInit()');\n }\n this.setItemTemplates();\n }\n\n public ngOnDestroy() {\n this._collectionView.off(CollectionView.itemLoadingEvent, this.onItemLoading, this);\n }\n\n public ngDoCheck() {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'ngDoCheck() - execute differ? ' + this._differ);\n }\n if (this._differ) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'ngDoCheck() - execute differ');\n }\n const changes = this._differ.diff(this._items);\n if (changes) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'ngDoCheck() - refresh');\n }\n this.refresh();\n }\n }\n }\n\n public registerTemplate(key: string, template: TemplateRef<ItemContext>) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'registerTemplate for key: ' + key);\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 @HostListener('itemLoading', ['$event'])\n public onItemLoading(args: CollectionViewItemEventData) {\n if (!args.view && !this.itemTemplate) {\n return;\n }\n if (!this.items) return;\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 (Trace.isEnabled()) {\n CLog(CLogTypes.info, `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 if (Trace.isEnabled()) {\n CLog(CLogTypes.info, `ViewReference not found for item ${index}. View recycling is not working`);\n }\n }\n\n if (!viewRef) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, `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 @HostListener('itemRecycling', ['$event'])\n public onItemRecyclingInternal(args: any) {\n if (!args.view) {\n return;\n }\n let ngView: EmbeddedViewRef<any> = args.view[NG_VIEW];\n\n // Getting angular view from original element (in cases when ProxyViewContainer\n // is used NativeScript internally wraps it in a StackLayout)\n if (!ngView && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {\n ngView = args.view.getChildAt(0)[NG_VIEW];\n }\n // console.log('recycling', args.view);\n\n if (ngView) {\n ngView.detach();\n }\n }\n\n @HostListener('itemDisposing', ['$event'])\n public onItemDisposingInternal(args: any) {\n if (!args.view) {\n return;\n }\n if (args.view.parent) {\n args.view.parent.removeChild(args.view);\n }\n // console.log('disposing');\n let ngView: EmbeddedViewRef<any> = args.view[NG_VIEW];\n // console.log('disposing', args.view);\n\n // Getting angular view from original element (in cases when ProxyViewContainer\n // is used NativeScript internally wraps it in a StackLayout)\n if (!ngView && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {\n ngView = args.view.getChildAt(0)[NG_VIEW];\n }\n\n if (ngView) {\n ngView.detach();\n this.storeViewRef(ngView);\n }\n }\n\n public setupViewRef(view: EmbeddedViewRef<ItemContext>, data: any, index: number): void {\n const context = view.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 context,\n data,\n index,\n view\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 viewPool = new Map<\n TemplateRef<ItemContext>,\n {\n scrapSize: number;\n scrapHead: Set<EmbeddedViewRef<ItemContext>>;\n }\n >();\n private storeViewRef(viewRef: EmbeddedViewRef<any>) {\n const templateRef = this.viewToTemplate.get(viewRef);\n if (templateRef) {\n const scrap = this.viewPool.get(templateRef);\n if (scrap) {\n if (scrap.scrapHead.size >= scrap.scrapSize) {\n viewRef.destroy();\n this.viewToLoader.get(viewRef)?.destroy();\n } else {\n scrap.scrapHead.add(viewRef);\n }\n }\n }\n }\n viewToTemplate = new WeakMap<EmbeddedViewRef<any>, TemplateRef<any>>();\n viewToLoader = new WeakMap<EmbeddedViewRef<any>, ComponentRef<DetachedLoader>>();\n\n private getOrCreate(templateRef: TemplateRef<ItemContext>) {\n return this._ngZone.run(() => {\n let viewRef = this.getView(templateRef);\n if (!viewRef) {\n const loader = this.detachedLoaderFactory();\n // viewRef = this.loader.createEmbeddedView(templateRef, new ItemContext(), 0);\n viewRef = loader.instance.vc.createEmbeddedView(templateRef, new ItemContext(), 0);\n this.viewToLoader.set(viewRef, loader);\n this.viewToTemplate.set(viewRef, templateRef);\n }\n viewRef.detach();\n const resultView = getItemViewRoot(viewRef);\n resultView[NG_VIEW] = viewRef;\n resultView.reusable = this.autoReuseViews;\n return resultView;\n });\n }\n private getView(templateRef: TemplateRef<ItemContext>) {\n const pool = this.getViewPool(templateRef);\n while (pool.scrapHead.size > 0) {\n const viewRef: EmbeddedViewRef<ItemContext> = pool.scrapHead.values().next().value;\n pool.scrapHead.delete(viewRef);\n if (!viewRef.destroyed) {\n return viewRef;\n }\n }\n return null;\n }\n\n private getViewPool(templateRef: TemplateRef<ItemContext>) {\n if (!this.viewPool.has(templateRef)) {\n this.viewPool.set(templateRef, {\n scrapSize: this.autoReuseViews ? Infinity : 0,\n scrapHead: new Set<EmbeddedViewRef<ItemContext>>()\n });\n }\n return this.viewPool.get(templateRef);\n }\n\n private setItemTemplates() {\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 CLog(CLogTypes.info, 'Setting templates');\n }\n\n const templates: KeyedTemplate[] = [];\n this._templateMap.forEach((value) => {\n templates.push(value);\n });\n this._collectionView.itemTemplates = templates;\n } else {\n // If the map was not initialized this means that there are no named templates, so we register the default one.\n this._collectionView.itemTemplate = this.getItemTemplateViewFactory(this.itemTemplate);\n }\n }\n\n private detectChangesOnChild(viewRef: EmbeddedViewRef<ItemContext>, index: number) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'Manually detect changes in child: ' + index);\n }\n viewRef.markForCheck();\n viewRef.detectChanges();\n }\n\n private refresh() {\n if (this._collectionView) {\n this._collectionView.refresh();\n }\n }\n}\n\nexport interface ComponentView {\n rootNodes: any[];\n destroy(): void;\n}\n\nexport type RootLocator = (nodes: any[], nestLevel: number) => View;\n\nexport function getItemViewRoot(viewRef: ComponentView, rootLocator: RootLocator = extractSingleViewRecursive): View {\n const rootView = rootLocator(viewRef.rootNodes, 0);\n return rootView;\n}\n\n@Directive({ selector: '[cvTemplateKey]' })\nexport class TemplateKeyDirective {\n constructor(private templateRef: TemplateRef<any>, @Host() private collectionView: CollectionViewComponent) {}\n\n @Input()\n set cvTemplateKey(value: any) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'cvTemplateKey: ' + value);\n }\n if (this.collectionView && this.templateRef) {\n this.collectionView.registerTemplate(value.toLowerCase(), this.templateRef);\n }\n }\n}\n","// External\nimport { NO_ERRORS_SCHEMA, NgModule } from '@angular/core';\n\nimport { CollectionViewComponent, TemplateKeyDirective } from './collectionview-comp';\nexport { CollectionViewComponent, TemplateKeyDirective } from './collectionview-comp';\n\n@NgModule({\n declarations: [CollectionViewComponent, TemplateKeyDirective],\n exports: [CollectionViewComponent, TemplateKeyDirective],\n schemas: [NO_ERRORS_SCHEMA]\n})\nexport class CollectionViewModule {}\n"],"names":["isListLikeIterable"],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, ɵisListLikeIterable, ElementRef, IterableDiffers, TemplateRef, ViewContainerRef, Component, ChangeDetectionStrategy, Inject, ViewChild, Output, ContentChild, Input, Directive, Host, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
2
+ import { EventEmitter, ɵisListLikeIterable, ElementRef, IterableDiffers, NgZone, TemplateRef, ViewContainerRef, Component, ChangeDetectionStrategy, Inject, ViewChild, Output, ContentChild, Input, HostListener, Directive, Host, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
3
3
  import { CollectionView, ListViewViewTypes, CLog, CLogTypes } from '@nativescript-community/ui-collectionview';
4
- import { registerElement, extractSingleViewRecursive } from '@nativescript/angular';
4
+ import * as i1 from '@nativescript/angular';
5
+ import { registerElement, DetachedLoader, NativeScriptRendererFactory, extractSingleViewRecursive } from '@nativescript/angular';
5
6
  import { ObservableArray, Trace, LayoutBase } from '@nativescript/core';
6
7
 
7
8
  const _c0 = ["loader"];
@@ -17,22 +18,27 @@ class ItemContext {
17
18
  }
18
19
  }
19
20
  class CollectionViewComponent {
20
- constructor(_elementRef, _iterableDiffers) {
21
+ constructor(_elementRef, _iterableDiffers, _renderer, _ngZone) {
22
+ this._elementRef = _elementRef;
21
23
  this._iterableDiffers = _iterableDiffers;
24
+ this._renderer = _renderer;
25
+ this._ngZone = _ngZone;
22
26
  this.setupItemView = new EventEmitter();
23
- this.itemViewLoader = (viewType) => {
27
+ this.autoReuseViews = false;
28
+ this.itemViewLoader = (viewType) => this._ngZone.run(() => {
24
29
  switch (viewType) {
25
30
  case ListViewViewTypes.ItemView:
26
31
  if (this._itemTemplate && this.loader) {
27
- const nativeItem = this.loader.createEmbeddedView(this._itemTemplate, new ItemContext(), 0);
28
- const typedView = getItemViewRoot(nativeItem);
29
- typedView[NG_VIEW] = nativeItem;
32
+ const typedView = this.getOrCreate(this._itemTemplate);
30
33
  return typedView;
31
34
  }
32
35
  break;
33
36
  }
34
37
  return null;
35
- };
38
+ });
39
+ this.viewPool = new Map();
40
+ this.viewToTemplate = new WeakMap();
41
+ this.viewToLoader = new WeakMap();
36
42
  this._collectionView = _elementRef.nativeElement;
37
43
  this._collectionView.on(CollectionView.itemLoadingEvent, this.onItemLoading, this);
38
44
  this._collectionView.itemViewLoader = this.itemViewLoader;
@@ -43,6 +49,13 @@ class CollectionViewComponent {
43
49
  get listView() {
44
50
  return this._collectionView;
45
51
  }
52
+ detachedLoaderFactory() {
53
+ const ref = this.loader.createComponent(DetachedLoader, {
54
+ index: 0
55
+ });
56
+ this.loader.detach(0);
57
+ return ref;
58
+ }
46
59
  get itemTemplate() {
47
60
  return this._itemTemplate;
48
61
  }
@@ -136,6 +149,34 @@ class CollectionViewComponent {
136
149
  this.setupViewRef(viewRef, currentItem, index);
137
150
  this.detectChangesOnChild(viewRef, index);
138
151
  }
152
+ onItemRecyclingInternal(args) {
153
+ if (!args.view) {
154
+ return;
155
+ }
156
+ let ngView = args.view[NG_VIEW];
157
+ if (!ngView && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {
158
+ ngView = args.view.getChildAt(0)[NG_VIEW];
159
+ }
160
+ if (ngView) {
161
+ ngView.detach();
162
+ }
163
+ }
164
+ onItemDisposingInternal(args) {
165
+ if (!args.view) {
166
+ return;
167
+ }
168
+ if (args.view.parent) {
169
+ args.view.parent.removeChild(args.view);
170
+ }
171
+ let ngView = args.view[NG_VIEW];
172
+ if (!ngView && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {
173
+ ngView = args.view.getChildAt(0)[NG_VIEW];
174
+ }
175
+ if (ngView) {
176
+ ngView.detach();
177
+ this.storeViewRef(ngView);
178
+ }
179
+ }
139
180
  setupViewRef(view, data, index) {
140
181
  const context = view.context;
141
182
  context.$implicit = data;
@@ -158,6 +199,57 @@ class CollectionViewComponent {
158
199
  return resultView;
159
200
  };
160
201
  }
202
+ storeViewRef(viewRef) {
203
+ const templateRef = this.viewToTemplate.get(viewRef);
204
+ if (templateRef) {
205
+ const scrap = this.viewPool.get(templateRef);
206
+ if (scrap) {
207
+ if (scrap.scrapHead.size >= scrap.scrapSize) {
208
+ viewRef.destroy();
209
+ this.viewToLoader.get(viewRef)?.destroy();
210
+ }
211
+ else {
212
+ scrap.scrapHead.add(viewRef);
213
+ }
214
+ }
215
+ }
216
+ }
217
+ getOrCreate(templateRef) {
218
+ return this._ngZone.run(() => {
219
+ let viewRef = this.getView(templateRef);
220
+ if (!viewRef) {
221
+ const loader = this.detachedLoaderFactory();
222
+ viewRef = loader.instance.vc.createEmbeddedView(templateRef, new ItemContext(), 0);
223
+ this.viewToLoader.set(viewRef, loader);
224
+ this.viewToTemplate.set(viewRef, templateRef);
225
+ }
226
+ viewRef.detach();
227
+ const resultView = getItemViewRoot(viewRef);
228
+ resultView[NG_VIEW] = viewRef;
229
+ resultView.reusable = this.autoReuseViews;
230
+ return resultView;
231
+ });
232
+ }
233
+ getView(templateRef) {
234
+ const pool = this.getViewPool(templateRef);
235
+ while (pool.scrapHead.size > 0) {
236
+ const viewRef = pool.scrapHead.values().next().value;
237
+ pool.scrapHead.delete(viewRef);
238
+ if (!viewRef.destroyed) {
239
+ return viewRef;
240
+ }
241
+ }
242
+ return null;
243
+ }
244
+ getViewPool(templateRef) {
245
+ if (!this.viewPool.has(templateRef)) {
246
+ this.viewPool.set(templateRef, {
247
+ scrapSize: this.autoReuseViews ? Infinity : 0,
248
+ scrapHead: new Set()
249
+ });
250
+ }
251
+ return this.viewPool.get(templateRef);
252
+ }
161
253
  setItemTemplates() {
162
254
  this.itemTemplate = this.itemTemplateQuery;
163
255
  if (this._templateMap) {
@@ -187,7 +279,7 @@ class CollectionViewComponent {
187
279
  }
188
280
  }
189
281
  }
190
- CollectionViewComponent.ɵfac = function CollectionViewComponent_Factory(t) { return new (t || CollectionViewComponent)(i0.ɵɵdirectiveInject(ElementRef), i0.ɵɵdirectiveInject(IterableDiffers)); };
282
+ CollectionViewComponent.ɵfac = function CollectionViewComponent_Factory(t) { return new (t || CollectionViewComponent)(i0.ɵɵdirectiveInject(ElementRef), i0.ɵɵdirectiveInject(IterableDiffers), i0.ɵɵdirectiveInject(NativeScriptRendererFactory), i0.ɵɵdirectiveInject(NgZone)); };
191
283
  CollectionViewComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CollectionViewComponent, selectors: [["CollectionView"]], contentQueries: function CollectionViewComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
192
284
  i0.ɵɵcontentQuery(dirIndex, TemplateRef, 7, TemplateRef);
193
285
  } if (rf & 2) {
@@ -198,7 +290,9 @@ CollectionViewComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CollectionViewCom
198
290
  } if (rf & 2) {
199
291
  let _t;
200
292
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.loader = _t.first);
201
- } }, inputs: { itemTemplate: "itemTemplate", items: "items" }, outputs: { setupItemView: "setupItemView" }, decls: 3, vars: 0, consts: [["loader", ""]], template: function CollectionViewComponent_Template(rf, ctx) { if (rf & 1) {
293
+ } }, hostBindings: function CollectionViewComponent_HostBindings(rf, ctx) { if (rf & 1) {
294
+ i0.ɵɵlistener("itemLoading", function CollectionViewComponent_itemLoading_HostBindingHandler($event) { return ctx.onItemLoading($event); })("itemRecycling", function CollectionViewComponent_itemRecycling_HostBindingHandler($event) { return ctx.onItemRecyclingInternal($event); })("itemDisposing", function CollectionViewComponent_itemDisposing_HostBindingHandler($event) { return ctx.onItemDisposingInternal($event); });
295
+ } }, inputs: { autoReuseViews: "autoReuseViews", itemTemplate: "itemTemplate", items: "items" }, outputs: { setupItemView: "setupItemView" }, decls: 3, vars: 0, consts: [["loader", ""]], template: function CollectionViewComponent_Template(rf, ctx) { if (rf & 1) {
202
296
  i0.ɵɵelementStart(0, "DetachedContainer");
203
297
  i0.ɵɵelement(1, "Placeholder", null, 0);
204
298
  i0.ɵɵelementEnd();
@@ -220,6 +314,12 @@ CollectionViewComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CollectionViewCom
220
314
  }] }, { type: i0.IterableDiffers, decorators: [{
221
315
  type: Inject,
222
316
  args: [IterableDiffers]
317
+ }] }, { type: i1.NativeScriptRendererFactory, decorators: [{
318
+ type: Inject,
319
+ args: [NativeScriptRendererFactory]
320
+ }] }, { type: i0.NgZone, decorators: [{
321
+ type: Inject,
322
+ args: [NgZone]
223
323
  }] }]; }, { loader: [{
224
324
  type: ViewChild,
225
325
  args: ['loader', { read: ViewContainerRef, static: true }]
@@ -228,10 +328,21 @@ CollectionViewComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CollectionViewCom
228
328
  }], itemTemplateQuery: [{
229
329
  type: ContentChild,
230
330
  args: [TemplateRef, { read: TemplateRef, static: true }]
331
+ }], autoReuseViews: [{
332
+ type: Input
231
333
  }], itemTemplate: [{
232
334
  type: Input
233
335
  }], items: [{
234
336
  type: Input
337
+ }], onItemLoading: [{
338
+ type: HostListener,
339
+ args: ['itemLoading', ['$event']]
340
+ }], onItemRecyclingInternal: [{
341
+ type: HostListener,
342
+ args: ['itemRecycling', ['$event']]
343
+ }], onItemDisposingInternal: [{
344
+ type: HostListener,
345
+ args: ['itemDisposing', ['$event']]
235
346
  }] }); })();
236
347
  function getItemViewRoot(viewRef, rootLocator = extractSingleViewRecursive) {
237
348
  const rootView = rootLocator(viewRef.rootNodes, 0);
@@ -1 +1 @@
1
- {"version":3,"file":"nativescript-community-ui-collectionview-angular.mjs","sources":["../../../../src/collectionview/angular/collectionview-comp.ts","../../../../src/collectionview/angular/index.ts"],"sourcesContent":["import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Directive,\n DoCheck,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Host,\n Inject,\n Input,\n IterableDiffer,\n IterableDiffers,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ɵisListLikeIterable as isListLikeIterable\n} from '@angular/core';\nimport { CLog, CLogTypes, CollectionView, CollectionViewItemEventData, ListViewViewTypes } from '@nativescript-community/ui-collectionview';\nimport { extractSingleViewRecursive, registerElement } from '@nativescript/angular';\nimport { KeyedTemplate, LayoutBase, ObservableArray, Trace, View } from '@nativescript/core';\n\nregisterElement('CollectionView', () => CollectionView);\n\nconst NG_VIEW = '_ngViewRef';\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\n@Component({\n selector: 'CollectionView',\n template: `\n <DetachedContainer>\n <Placeholder #loader></Placeholder>\n </DetachedContainer>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CollectionViewComponent implements DoCheck, OnDestroy, AfterContentInit {\n public get nativeElement(): any {\n return this._collectionView;\n }\n public get listView(): any {\n return this._collectionView;\n }\n\n @ViewChild('loader', { read: ViewContainerRef, static: true }) public loader: ViewContainerRef;\n @Output() public setupItemView = new EventEmitter<SetupItemViewArgs>();\n @ContentChild(TemplateRef, { read: TemplateRef, static: true }) public itemTemplateQuery: TemplateRef<ItemContext>;\n\n @Input()\n public get itemTemplate() {\n return this._itemTemplate;\n }\n public set itemTemplate(value: any) {\n this._itemTemplate = value;\n this._collectionView.refresh();\n }\n @Input()\n public get items() {\n return this._items;\n }\n public 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._collectionView.items = this._items;\n }\n\n private _collectionView: CollectionView;\n private _items: any;\n private _differ: IterableDiffer<KeyedTemplate>;\n private _itemTemplate: TemplateRef<ItemContext>;\n private _templateMap: Map<string, KeyedTemplate>;\n\n constructor(@Inject(ElementRef) _elementRef: ElementRef, @Inject(IterableDiffers) private _iterableDiffers: IterableDiffers) {\n this._collectionView = _elementRef.nativeElement;\n\n this._collectionView.on(CollectionView.itemLoadingEvent, this.onItemLoading, this);\n this._collectionView.itemViewLoader = this.itemViewLoader;\n }\n\n private itemViewLoader = (viewType) => {\n switch (viewType) {\n case ListViewViewTypes.ItemView:\n if (this._itemTemplate && this.loader) {\n const nativeItem = this.loader.createEmbeddedView(this._itemTemplate, new ItemContext(), 0);\n const typedView = getItemViewRoot(nativeItem);\n typedView[NG_VIEW] = nativeItem;\n return typedView;\n }\n break;\n }\n return null;\n };\n\n public ngAfterContentInit() {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'CollectionView.ngAfterContentInit()');\n }\n this.setItemTemplates();\n }\n\n public ngOnDestroy() {\n this._collectionView.off(CollectionView.itemLoadingEvent, this.onItemLoading, this);\n }\n\n public ngDoCheck() {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'ngDoCheck() - execute differ? ' + this._differ);\n }\n if (this._differ) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'ngDoCheck() - execute differ');\n }\n const changes = this._differ.diff(this._items);\n if (changes) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'ngDoCheck() - refresh');\n }\n this.refresh();\n }\n }\n }\n\n public registerTemplate(key: string, template: TemplateRef<ItemContext>) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'registerTemplate for key: ' + key);\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 // @HostListener('itemLoadingInternal', ['$event'])\n public onItemLoading(args: CollectionViewItemEventData) {\n if (!args.view && !this.itemTemplate) {\n return;\n }\n if (!this.items) return;\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 (Trace.isEnabled()) {\n CLog(CLogTypes.info, `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 if (Trace.isEnabled()) {\n CLog(CLogTypes.info, `ViewReference not found for item ${index}. View recycling is not working`);\n }\n }\n\n if (!viewRef) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, `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 public setupViewRef(view: EmbeddedViewRef<ItemContext>, data: any, index: number): void {\n const context = view.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 context,\n data,\n index,\n view\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 private setItemTemplates() {\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 CLog(CLogTypes.info, 'Setting templates');\n }\n\n const templates: KeyedTemplate[] = [];\n this._templateMap.forEach((value) => {\n templates.push(value);\n });\n this._collectionView.itemTemplates = templates;\n } else {\n // If the map was not initialized this means that there are no named templates, so we register the default one.\n this._collectionView.itemTemplate = this.getItemTemplateViewFactory(this.itemTemplate);\n }\n }\n\n private detectChangesOnChild(viewRef: EmbeddedViewRef<ItemContext>, index: number) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'Manually detect changes in child: ' + index);\n }\n viewRef.markForCheck();\n viewRef.detectChanges();\n }\n\n private refresh() {\n if (this._collectionView) {\n this._collectionView.refresh();\n }\n }\n}\n\nexport interface ComponentView {\n rootNodes: any[];\n destroy(): void;\n}\n\nexport type RootLocator = (nodes: any[], nestLevel: number) => View;\n\nexport function getItemViewRoot(viewRef: ComponentView, rootLocator: RootLocator = extractSingleViewRecursive): View {\n const rootView = rootLocator(viewRef.rootNodes, 0);\n return rootView;\n}\n\n@Directive({ selector: '[cvTemplateKey]' })\nexport class TemplateKeyDirective {\n constructor(private templateRef: TemplateRef<any>, @Host() private collectionView: CollectionViewComponent) {}\n\n @Input()\n set cvTemplateKey(value: any) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'cvTemplateKey: ' + value);\n }\n if (this.collectionView && this.templateRef) {\n this.collectionView.registerTemplate(value.toLowerCase(), this.templateRef);\n }\n }\n}\n","// External\nimport { NO_ERRORS_SCHEMA, NgModule } from '@angular/core';\n\nimport { CollectionViewComponent, TemplateKeyDirective } from './collectionview-comp';\nexport { CollectionViewComponent, TemplateKeyDirective } from './collectionview-comp';\n\n@NgModule({\n declarations: [CollectionViewComponent, TemplateKeyDirective],\n exports: [CollectionViewComponent, TemplateKeyDirective],\n schemas: [NO_ERRORS_SCHEMA]\n})\nexport class CollectionViewModule {}\n"],"names":["isListLikeIterable"],"mappings":"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"}
1
+ {"version":3,"file":"nativescript-community-ui-collectionview-angular.mjs","sources":["../../../../src/collectionview/angular/collectionview-comp.ts","../../../../src/collectionview/angular/index.ts"],"sourcesContent":["import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n ContentChild,\n Directive,\n DoCheck,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Host,\n HostListener,\n Inject,\n Input,\n IterableDiffer,\n IterableDiffers,\n NgZone,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ɵisListLikeIterable as isListLikeIterable\n} from '@angular/core';\nimport { CLog, CLogTypes, CollectionView, CollectionViewItemEventData, ListViewViewTypes } from '@nativescript-community/ui-collectionview';\nimport { DetachedLoader, NativeScriptRendererFactory, extractSingleViewRecursive, registerElement } from '@nativescript/angular';\nimport { KeyedTemplate, LayoutBase, ObservableArray, Trace, View } from '@nativescript/core';\n\nregisterElement('CollectionView', () => CollectionView);\n\nconst NG_VIEW = '_ngViewRef';\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\n@Component({\n selector: 'CollectionView',\n template: `\n <DetachedContainer>\n <Placeholder #loader></Placeholder>\n </DetachedContainer>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CollectionViewComponent implements DoCheck, OnDestroy, AfterContentInit {\n public get nativeElement(): any {\n return this._collectionView;\n }\n public get listView(): any {\n return this._collectionView;\n }\n\n @ViewChild('loader', { read: ViewContainerRef, static: true }) public loader: ViewContainerRef;\n @Output() public setupItemView = new EventEmitter<SetupItemViewArgs>();\n @ContentChild(TemplateRef, { read: TemplateRef, static: true }) public itemTemplateQuery: TemplateRef<ItemContext>;\n\n @Input() autoReuseViews = false;\n\n detachedLoaderFactory() {\n const ref = this.loader.createComponent(DetachedLoader, {\n index: 0\n });\n this.loader.detach(0);\n return ref;\n }\n\n @Input()\n public get itemTemplate() {\n return this._itemTemplate;\n }\n public set itemTemplate(value: any) {\n this._itemTemplate = value;\n this._collectionView.refresh();\n }\n @Input()\n public get items() {\n return this._items;\n }\n public 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._collectionView.items = this._items;\n }\n\n private _collectionView: CollectionView;\n private _items: any;\n private _differ: IterableDiffer<KeyedTemplate>;\n private _itemTemplate: TemplateRef<ItemContext>;\n private _templateMap: Map<string, KeyedTemplate>;\n\n constructor(\n @Inject(ElementRef) private _elementRef: ElementRef,\n @Inject(IterableDiffers) private _iterableDiffers: IterableDiffers,\n @Inject(NativeScriptRendererFactory) private _renderer: NativeScriptRendererFactory,\n @Inject(NgZone) private _ngZone: NgZone\n ) {\n this._collectionView = _elementRef.nativeElement;\n\n this._collectionView.on(CollectionView.itemLoadingEvent, this.onItemLoading, this);\n this._collectionView.itemViewLoader = this.itemViewLoader;\n }\n\n private itemViewLoader = (viewType) =>\n this._ngZone.run(() => {\n switch (viewType) {\n case ListViewViewTypes.ItemView:\n if (this._itemTemplate && this.loader) {\n const typedView = this.getOrCreate(this._itemTemplate);\n return typedView;\n }\n break;\n }\n return null;\n });\n\n public ngAfterContentInit() {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'CollectionView.ngAfterContentInit()');\n }\n this.setItemTemplates();\n }\n\n public ngOnDestroy() {\n this._collectionView.off(CollectionView.itemLoadingEvent, this.onItemLoading, this);\n }\n\n public ngDoCheck() {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'ngDoCheck() - execute differ? ' + this._differ);\n }\n if (this._differ) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'ngDoCheck() - execute differ');\n }\n const changes = this._differ.diff(this._items);\n if (changes) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'ngDoCheck() - refresh');\n }\n this.refresh();\n }\n }\n }\n\n public registerTemplate(key: string, template: TemplateRef<ItemContext>) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'registerTemplate for key: ' + key);\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 @HostListener('itemLoading', ['$event'])\n public onItemLoading(args: CollectionViewItemEventData) {\n if (!args.view && !this.itemTemplate) {\n return;\n }\n if (!this.items) return;\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 (Trace.isEnabled()) {\n CLog(CLogTypes.info, `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 if (Trace.isEnabled()) {\n CLog(CLogTypes.info, `ViewReference not found for item ${index}. View recycling is not working`);\n }\n }\n\n if (!viewRef) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, `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 @HostListener('itemRecycling', ['$event'])\n public onItemRecyclingInternal(args: any) {\n if (!args.view) {\n return;\n }\n let ngView: EmbeddedViewRef<any> = args.view[NG_VIEW];\n\n // Getting angular view from original element (in cases when ProxyViewContainer\n // is used NativeScript internally wraps it in a StackLayout)\n if (!ngView && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {\n ngView = args.view.getChildAt(0)[NG_VIEW];\n }\n // console.log('recycling', args.view);\n\n if (ngView) {\n ngView.detach();\n }\n }\n\n @HostListener('itemDisposing', ['$event'])\n public onItemDisposingInternal(args: any) {\n if (!args.view) {\n return;\n }\n if (args.view.parent) {\n args.view.parent.removeChild(args.view);\n }\n // console.log('disposing');\n let ngView: EmbeddedViewRef<any> = args.view[NG_VIEW];\n // console.log('disposing', args.view);\n\n // Getting angular view from original element (in cases when ProxyViewContainer\n // is used NativeScript internally wraps it in a StackLayout)\n if (!ngView && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {\n ngView = args.view.getChildAt(0)[NG_VIEW];\n }\n\n if (ngView) {\n ngView.detach();\n this.storeViewRef(ngView);\n }\n }\n\n public setupViewRef(view: EmbeddedViewRef<ItemContext>, data: any, index: number): void {\n const context = view.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 context,\n data,\n index,\n view\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 viewPool = new Map<\n TemplateRef<ItemContext>,\n {\n scrapSize: number;\n scrapHead: Set<EmbeddedViewRef<ItemContext>>;\n }\n >();\n private storeViewRef(viewRef: EmbeddedViewRef<any>) {\n const templateRef = this.viewToTemplate.get(viewRef);\n if (templateRef) {\n const scrap = this.viewPool.get(templateRef);\n if (scrap) {\n if (scrap.scrapHead.size >= scrap.scrapSize) {\n viewRef.destroy();\n this.viewToLoader.get(viewRef)?.destroy();\n } else {\n scrap.scrapHead.add(viewRef);\n }\n }\n }\n }\n viewToTemplate = new WeakMap<EmbeddedViewRef<any>, TemplateRef<any>>();\n viewToLoader = new WeakMap<EmbeddedViewRef<any>, ComponentRef<DetachedLoader>>();\n\n private getOrCreate(templateRef: TemplateRef<ItemContext>) {\n return this._ngZone.run(() => {\n let viewRef = this.getView(templateRef);\n if (!viewRef) {\n const loader = this.detachedLoaderFactory();\n // viewRef = this.loader.createEmbeddedView(templateRef, new ItemContext(), 0);\n viewRef = loader.instance.vc.createEmbeddedView(templateRef, new ItemContext(), 0);\n this.viewToLoader.set(viewRef, loader);\n this.viewToTemplate.set(viewRef, templateRef);\n }\n viewRef.detach();\n const resultView = getItemViewRoot(viewRef);\n resultView[NG_VIEW] = viewRef;\n resultView.reusable = this.autoReuseViews;\n return resultView;\n });\n }\n private getView(templateRef: TemplateRef<ItemContext>) {\n const pool = this.getViewPool(templateRef);\n while (pool.scrapHead.size > 0) {\n const viewRef: EmbeddedViewRef<ItemContext> = pool.scrapHead.values().next().value;\n pool.scrapHead.delete(viewRef);\n if (!viewRef.destroyed) {\n return viewRef;\n }\n }\n return null;\n }\n\n private getViewPool(templateRef: TemplateRef<ItemContext>) {\n if (!this.viewPool.has(templateRef)) {\n this.viewPool.set(templateRef, {\n scrapSize: this.autoReuseViews ? Infinity : 0,\n scrapHead: new Set<EmbeddedViewRef<ItemContext>>()\n });\n }\n return this.viewPool.get(templateRef);\n }\n\n private setItemTemplates() {\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 CLog(CLogTypes.info, 'Setting templates');\n }\n\n const templates: KeyedTemplate[] = [];\n this._templateMap.forEach((value) => {\n templates.push(value);\n });\n this._collectionView.itemTemplates = templates;\n } else {\n // If the map was not initialized this means that there are no named templates, so we register the default one.\n this._collectionView.itemTemplate = this.getItemTemplateViewFactory(this.itemTemplate);\n }\n }\n\n private detectChangesOnChild(viewRef: EmbeddedViewRef<ItemContext>, index: number) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'Manually detect changes in child: ' + index);\n }\n viewRef.markForCheck();\n viewRef.detectChanges();\n }\n\n private refresh() {\n if (this._collectionView) {\n this._collectionView.refresh();\n }\n }\n}\n\nexport interface ComponentView {\n rootNodes: any[];\n destroy(): void;\n}\n\nexport type RootLocator = (nodes: any[], nestLevel: number) => View;\n\nexport function getItemViewRoot(viewRef: ComponentView, rootLocator: RootLocator = extractSingleViewRecursive): View {\n const rootView = rootLocator(viewRef.rootNodes, 0);\n return rootView;\n}\n\n@Directive({ selector: '[cvTemplateKey]' })\nexport class TemplateKeyDirective {\n constructor(private templateRef: TemplateRef<any>, @Host() private collectionView: CollectionViewComponent) {}\n\n @Input()\n set cvTemplateKey(value: any) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'cvTemplateKey: ' + value);\n }\n if (this.collectionView && this.templateRef) {\n this.collectionView.registerTemplate(value.toLowerCase(), this.templateRef);\n }\n }\n}\n","// External\nimport { NO_ERRORS_SCHEMA, NgModule } from '@angular/core';\n\nimport { CollectionViewComponent, TemplateKeyDirective } from './collectionview-comp';\nexport { CollectionViewComponent, TemplateKeyDirective } from './collectionview-comp';\n\n@NgModule({\n declarations: [CollectionViewComponent, TemplateKeyDirective],\n exports: [CollectionViewComponent, TemplateKeyDirective],\n schemas: [NO_ERRORS_SCHEMA]\n})\nexport class CollectionViewModule {}\n"],"names":["isListLikeIterable"],"mappings":"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"}
package/index-common.d.ts CHANGED
@@ -28,6 +28,8 @@ export interface Plugin {
28
28
  }
29
29
  export declare abstract class CollectionViewBase extends View implements CollectionViewDefinition {
30
30
  static itemLoadingEvent: string;
31
+ static itemRecyclingEvent: string;
32
+ static itemDisposingEvent: string;
31
33
  static bindedEvent: string;
32
34
  static scrollEvent: string;
33
35
  static scrollStartEvent: string;
@@ -124,6 +126,7 @@ export declare abstract class CollectionViewBase extends View implements Collect
124
126
  removeTemplate(key: any): void;
125
127
  onItemTemplatesChanged(oldValue: any, newValue: any): void;
126
128
  onItemTemplateChanged(oldValue: any, newValue: any): void;
129
+ onItemsChanged(oldValue: any, newValue: any): void;
127
130
  onItemTemplatesPropertyChanged(oldValue: any, newValue: any): void;
128
131
  onItemTemplatePropertyChanged(oldValue: any, newValue: any): void;
129
132
  onItemsChangedInternal: (oldValue: any, newValue: any) => void;
package/index-common.js CHANGED
@@ -63,16 +63,7 @@ let CollectionViewBase = CollectionViewBase_1 = class CollectionViewBase extends
63
63
  this.plugins = [];
64
64
  this._itemIdGenerator = null;
65
65
  this.onItemsChangedInternal = (oldValue, newValue) => {
66
- const getItem = newValue && newValue.getItem;
67
- this.isItemsSourceIn = typeof getItem === 'function';
68
- this.getItemAtIndex = this.isItemsSourceIn ? (index) => this.items.getItem(index) : (index) => this.items[index];
69
- if (oldValue instanceof Observable) {
70
- removeWeakEventListener(oldValue, ObservableArray.changeEvent, this.onSourceCollectionChangedInternal, this);
71
- }
72
- if (newValue instanceof Observable) {
73
- addWeakEventListener(newValue, ObservableArray.changeEvent, this.onSourceCollectionChangedInternal, this);
74
- }
75
- this.refresh();
66
+ this.onItemsChanged(oldValue, newValue);
76
67
  };
77
68
  this.onSpanSizeChangedInternal = (oldValue, newValue) => {
78
69
  this.spanSize = newValue;
@@ -316,6 +307,18 @@ let CollectionViewBase = CollectionViewBase_1 = class CollectionViewBase extends
316
307
  }
317
308
  }
318
309
  onItemTemplateChanged(oldValue, newValue) { }
310
+ onItemsChanged(oldValue, newValue) {
311
+ const getItem = newValue && newValue.getItem;
312
+ this.isItemsSourceIn = typeof getItem === 'function';
313
+ this.getItemAtIndex = this.isItemsSourceIn ? (index) => this.items.getItem(index) : (index) => this.items[index];
314
+ if (oldValue instanceof Observable) {
315
+ removeWeakEventListener(oldValue, ObservableArray.changeEvent, this.onSourceCollectionChangedInternal, this);
316
+ }
317
+ if (newValue instanceof Observable) {
318
+ addWeakEventListener(newValue, ObservableArray.changeEvent, this.onSourceCollectionChangedInternal, this);
319
+ }
320
+ this.refresh();
321
+ }
319
322
  onItemTemplatesPropertyChanged(oldValue, newValue) {
320
323
  this.onItemTemplatesChanged(oldValue, newValue);
321
324
  }
@@ -407,6 +410,8 @@ let CollectionViewBase = CollectionViewBase_1 = class CollectionViewBase extends
407
410
  }
408
411
  };
409
412
  CollectionViewBase.itemLoadingEvent = 'itemLoading';
413
+ CollectionViewBase.itemRecyclingEvent = 'itemRecycling';
414
+ CollectionViewBase.itemDisposingEvent = 'itemDisposing';
410
415
  CollectionViewBase.bindedEvent = 'binded';
411
416
  CollectionViewBase.scrollEvent = 'scroll';
412
417
  CollectionViewBase.scrollStartEvent = 'scrollStart';
@@ -1 +1 @@
1
- {"version":3,"file":"index-common.js","sourceRoot":"../src/","sources":["index-common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-common.js","sourceRoot":"../src/","sources":["index-common.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ export declare class CollectionView extends CollectionViewBase {
17
17
  layoutManager: androidx.recyclerview.widget.RecyclerView.LayoutManager;
18
18
  owner?: WeakRef<CollectionView>;
19
19
  };
20
+ private recyclerListener;
20
21
  private templateTypeNumberString;
21
22
  private templateStringTypeNumber;
22
23
  private _currentNativeItemType;
@@ -36,6 +37,8 @@ export declare class CollectionView extends CollectionViewBase {
36
37
  nestedScrollingEnabled: boolean;
37
38
  itemViewCacheSize: number;
38
39
  extraLayoutSpace: number;
40
+ recycledViewPool: com.nativescript.collectionview.RecycledViewPool;
41
+ recycledViewPoolDisposeListener: com.nativescript.collectionview.RecycledViewPool.ViewPoolListener;
39
42
  createNativeView(): any;
40
43
  initNativeView(): void;
41
44
  disposeNativeView(): void;
@@ -54,6 +57,11 @@ export declare class CollectionView extends CollectionViewBase {
54
57
  get android(): androidx.recyclerview.widget.RecyclerView;
55
58
  get layoutManager(): androidsupportv7widgetRecyclerView.LayoutManager;
56
59
  _getViewLayoutParams(): androidviewViewGroup.LayoutParams;
60
+ defaultPoolSize: number;
61
+ desiredPoolSize: Map<string, number>;
62
+ private setNativePoolSize;
63
+ private setPoolSizes;
64
+ setPoolSize(key: string, size: number): void;
57
65
  protected updateScrollBarVisibility(value: any): void;
58
66
  private enumerateViewHolders;
59
67
  startDragging(index: number): void;
@@ -91,6 +99,8 @@ export declare class CollectionView extends CollectionViewBase {
91
99
  onItemIdGeneratorChanged(oldValue: any, newValue: any): void;
92
100
  clearTemplateTypes(): void;
93
101
  getItemViewType(position: number): number;
102
+ templateKeyToNativeItem(key: string): number;
103
+ nativeItemToTemplateKey(item: number): string;
94
104
  disposeViewHolderViews(): void;
95
105
  getKeyByValue(viewType: number): string;
96
106
  onCreateViewHolder(parent: android.view.ViewGroup, viewType: number): CollectionViewCellHolder;