@nativescript-community/ui-collectionview 6.0.11 → 6.0.13
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.
- package/CHANGELOG.md +8 -0
- package/angular/collectionview-comp.d.ts +82 -0
- package/angular/fesm2022/nativescript-community-ui-collectionview-angular.mjs +3 -3
- package/angular/fesm2022/nativescript-community-ui-collectionview-angular.mjs.map +1 -1
- package/angular/index.d.ts +5 -82
- package/angular/package.json +1 -1
- package/index.android.d.ts +140 -0
- package/index.android.js +1 -2
- package/index.android.js.map +1 -1
- package/index.ios.d.ts +178 -0
- package/index.ios.js +13 -6
- package/index.ios.js.map +1 -1
- package/package.json +6 -6
- package/svelte/index.d.ts +20 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/tsconfig.vue3.json +9 -9
- package/tsconfig.vue3.tsbuildinfo +1 -1
- package/vue/component.d.ts +38 -0
- package/vue/index.d.ts +4 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [6.0.13](https://github.com/nativescript-community/ui-collectionview/compare/v6.0.12...v6.0.13) (2025-10-10)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @nativescript-community/ui-collectionview
|
|
9
|
+
|
|
10
|
+
## [6.0.12](https://github.com/nativescript-community/ui-collectionview/compare/v6.0.11...v6.0.12) (2025-10-09)
|
|
11
|
+
|
|
12
|
+
**Note:** Version bump only for package @nativescript-community/ui-collectionview
|
|
13
|
+
|
|
6
14
|
## [6.0.11](https://github.com/nativescript-community/ui-collectionview/compare/v6.0.10...v6.0.11) (2025-10-07)
|
|
7
15
|
|
|
8
16
|
### Bug Fixes
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { AfterContentInit, ComponentRef, DoCheck, ElementRef, EmbeddedViewRef, EventEmitter, IterableDiffers, NgZone, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import { CollectionViewItemEventData } from '@nativescript-community/ui-collectionview';
|
|
3
|
+
import { DetachedLoader, NativeScriptRendererFactory } from '@nativescript/angular';
|
|
4
|
+
import { View } from '@nativescript/core';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class ItemContext {
|
|
7
|
+
$implicit?: any;
|
|
8
|
+
item?: any;
|
|
9
|
+
index?: number;
|
|
10
|
+
even?: boolean;
|
|
11
|
+
odd?: boolean;
|
|
12
|
+
constructor($implicit?: any, item?: any, index?: number, even?: boolean, odd?: boolean);
|
|
13
|
+
}
|
|
14
|
+
export interface SetupItemViewArgs {
|
|
15
|
+
view: EmbeddedViewRef<any>;
|
|
16
|
+
data: any;
|
|
17
|
+
index: number;
|
|
18
|
+
context: ItemContext;
|
|
19
|
+
}
|
|
20
|
+
export declare class CollectionViewComponent implements DoCheck, OnDestroy, AfterContentInit {
|
|
21
|
+
private _elementRef;
|
|
22
|
+
private _iterableDiffers;
|
|
23
|
+
private _renderer;
|
|
24
|
+
private _ngZone;
|
|
25
|
+
get nativeElement(): any;
|
|
26
|
+
get listView(): any;
|
|
27
|
+
loader: ViewContainerRef;
|
|
28
|
+
setupItemView: EventEmitter<SetupItemViewArgs>;
|
|
29
|
+
itemTemplateQuery: TemplateRef<ItemContext>;
|
|
30
|
+
autoReuseViews: boolean;
|
|
31
|
+
detachedLoaderFactory(): ComponentRef<DetachedLoader>;
|
|
32
|
+
get itemTemplate(): any;
|
|
33
|
+
set itemTemplate(value: any);
|
|
34
|
+
get items(): any;
|
|
35
|
+
set items(value: any);
|
|
36
|
+
private _collectionView;
|
|
37
|
+
private _items;
|
|
38
|
+
private _differ;
|
|
39
|
+
private _itemTemplate;
|
|
40
|
+
private _templateMap;
|
|
41
|
+
private _loaders;
|
|
42
|
+
constructor(_elementRef: ElementRef, _iterableDiffers: IterableDiffers, _renderer: NativeScriptRendererFactory, _ngZone: NgZone);
|
|
43
|
+
private itemViewLoader;
|
|
44
|
+
ngAfterContentInit(): void;
|
|
45
|
+
ngOnDestroy(): void;
|
|
46
|
+
ngDoCheck(): void;
|
|
47
|
+
registerTemplate(key: string, template: TemplateRef<ItemContext>): void;
|
|
48
|
+
onItemLoading(args: CollectionViewItemEventData): void;
|
|
49
|
+
onItemRecyclingInternal(args: any): void;
|
|
50
|
+
onItemDisposingInternal(args: any): void;
|
|
51
|
+
setupViewRef(view: EmbeddedViewRef<ItemContext>, data: any, index: number): void;
|
|
52
|
+
protected getItemTemplateViewFactory(template: TemplateRef<ItemContext>): () => View;
|
|
53
|
+
viewPool: Map<TemplateRef<ItemContext>, {
|
|
54
|
+
scrapSize: number;
|
|
55
|
+
scrapHead: Set<EmbeddedViewRef<ItemContext>>;
|
|
56
|
+
}>;
|
|
57
|
+
private storeViewRef;
|
|
58
|
+
viewToTemplate: WeakMap<EmbeddedViewRef<any>, TemplateRef<any>>;
|
|
59
|
+
viewToLoader: WeakMap<EmbeddedViewRef<any>, ComponentRef<DetachedLoader>>;
|
|
60
|
+
private getOrCreate;
|
|
61
|
+
private getView;
|
|
62
|
+
private getViewPool;
|
|
63
|
+
private setItemTemplates;
|
|
64
|
+
private detectChangesOnChild;
|
|
65
|
+
private refresh;
|
|
66
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CollectionViewComponent, never>;
|
|
67
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CollectionViewComponent, "CollectionView", never, { "autoReuseViews": { "alias": "autoReuseViews"; "required": false; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, { "setupItemView": "setupItemView"; }, ["itemTemplateQuery"], never, true, never>;
|
|
68
|
+
}
|
|
69
|
+
export interface ComponentView {
|
|
70
|
+
rootNodes: any[];
|
|
71
|
+
destroy(): void;
|
|
72
|
+
}
|
|
73
|
+
export type RootLocator = (nodes: any[], nestLevel: number) => View;
|
|
74
|
+
export declare function getItemViewRoot(viewRef: ComponentView, rootLocator?: RootLocator): View;
|
|
75
|
+
export declare class TemplateKeyDirective {
|
|
76
|
+
private templateRef;
|
|
77
|
+
private collectionView;
|
|
78
|
+
constructor(templateRef: TemplateRef<any>, collectionView: CollectionViewComponent);
|
|
79
|
+
set cvTemplateKey(value: any);
|
|
80
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TemplateKeyDirective, [null, { host: true; }]>;
|
|
81
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TemplateKeyDirective, "[cvTemplateKey]", never, { "cvTemplateKey": { "alias": "cvTemplateKey"; "required": false; }; }, {}, never, never, true, never>;
|
|
82
|
+
}
|
|
@@ -332,9 +332,9 @@ class CollectionViewComponent {
|
|
|
332
332
|
} }, hostBindings: function CollectionViewComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
333
333
|
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); });
|
|
334
334
|
} }, 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) {
|
|
335
|
-
i0.ɵɵ
|
|
336
|
-
i0.ɵɵ
|
|
337
|
-
i0.ɵɵ
|
|
335
|
+
i0.ɵɵelementStart(0, "DetachedContainer");
|
|
336
|
+
i0.ɵɵelement(1, "Placeholder", null, 0);
|
|
337
|
+
i0.ɵɵelementEnd();
|
|
338
338
|
} }, encapsulation: 2, changeDetection: 0 });
|
|
339
339
|
}
|
|
340
340
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CollectionViewComponent, [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nativescript-community-ui-collectionview-angular.mjs","sources":["../../../../src/collectionview/angular/collectionview-comp.ts","../../../../src/collectionview/angular/index.ts","../../../../src/collectionview/angular/nativescript-community-ui-collectionview-angular.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 NO_ERRORS_SCHEMA,\n NgZone,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { CLog, CLogTypes, CollectionView, CollectionViewItemEventData, ListViewViewTypes } from '@nativescript-community/ui-collectionview';\nimport { DetachedLoader, NativeScriptRendererFactory, extractSingleViewRecursive, isListLikeIterable, 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(\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@Component({\n selector: 'CollectionView',\n template: `\n <DetachedContainer>\n <Placeholder #loader></Placeholder>\n </DetachedContainer>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [NO_ERRORS_SCHEMA]\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 this._loaders.push(ref);\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 private _loaders: ComponentRef<DetachedLoader>[];\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 this._loaders = [];\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 this._collectionView = null;\n this._loaders.forEach((l) => l.destroy());\n this._loaders = null;\n this.viewToLoader = null;\n this.viewToTemplate = null;\n this.viewPool = null;\n\n this._items = null;\n this._differ = null;\n this._itemTemplate = null;\n if (this._templateMap) {\n this._templateMap.clear();\n }\n this._templateMap = null;\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.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 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\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(\n private templateRef: TemplateRef<any>,\n @Host() private collectionView: CollectionViewComponent\n ) {}\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 imports: [CollectionViewComponent, TemplateKeyDirective],\n exports: [CollectionViewComponent, TemplateKeyDirective],\n schemas: [NO_ERRORS_SCHEMA]\n})\nexport class CollectionViewModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"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","../../../../src/collectionview/angular/nativescript-community-ui-collectionview-angular.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 NO_ERRORS_SCHEMA,\n NgZone,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { CLog, CLogTypes, CollectionView, CollectionViewItemEventData, ListViewViewTypes } from '@nativescript-community/ui-collectionview';\nimport { DetachedLoader, NativeScriptRendererFactory, extractSingleViewRecursive, isListLikeIterable, 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(\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@Component({\n selector: 'CollectionView',\n template: `\n <DetachedContainer>\n <Placeholder #loader></Placeholder>\n </DetachedContainer>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [NO_ERRORS_SCHEMA]\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 this._loaders.push(ref);\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 private _loaders: ComponentRef<DetachedLoader>[];\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 this._loaders = [];\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 this._collectionView = null;\n this._loaders.forEach((l) => l.destroy());\n this._loaders = null;\n this.viewToLoader = null;\n this.viewToTemplate = null;\n this.viewPool = null;\n\n this._items = null;\n this._differ = null;\n this._itemTemplate = null;\n if (this._templateMap) {\n this._templateMap.clear();\n }\n this._templateMap = null;\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.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 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\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(\n private templateRef: TemplateRef<any>,\n @Host() private collectionView: CollectionViewComponent\n ) {}\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 imports: [CollectionViewComponent, TemplateKeyDirective],\n exports: [CollectionViewComponent, TemplateKeyDirective],\n schemas: [NO_ERRORS_SCHEMA]\n})\nexport class CollectionViewModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/angular/index.d.ts
CHANGED
|
@@ -1,85 +1,8 @@
|
|
|
1
|
-
import * as i0 from
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import { View } from '@nativescript/core';
|
|
6
|
-
|
|
7
|
-
declare class ItemContext {
|
|
8
|
-
$implicit?: any;
|
|
9
|
-
item?: any;
|
|
10
|
-
index?: number;
|
|
11
|
-
even?: boolean;
|
|
12
|
-
odd?: boolean;
|
|
13
|
-
constructor($implicit?: any, item?: any, index?: number, even?: boolean, odd?: boolean);
|
|
14
|
-
}
|
|
15
|
-
interface SetupItemViewArgs {
|
|
16
|
-
view: EmbeddedViewRef<any>;
|
|
17
|
-
data: any;
|
|
18
|
-
index: number;
|
|
19
|
-
context: ItemContext;
|
|
20
|
-
}
|
|
21
|
-
declare class CollectionViewComponent implements DoCheck, OnDestroy, AfterContentInit {
|
|
22
|
-
private _elementRef;
|
|
23
|
-
private _iterableDiffers;
|
|
24
|
-
private _renderer;
|
|
25
|
-
private _ngZone;
|
|
26
|
-
get nativeElement(): any;
|
|
27
|
-
get listView(): any;
|
|
28
|
-
loader: ViewContainerRef;
|
|
29
|
-
setupItemView: EventEmitter<SetupItemViewArgs>;
|
|
30
|
-
itemTemplateQuery: TemplateRef<ItemContext>;
|
|
31
|
-
autoReuseViews: boolean;
|
|
32
|
-
detachedLoaderFactory(): ComponentRef<DetachedLoader>;
|
|
33
|
-
get itemTemplate(): any;
|
|
34
|
-
set itemTemplate(value: any);
|
|
35
|
-
get items(): any;
|
|
36
|
-
set items(value: any);
|
|
37
|
-
private _collectionView;
|
|
38
|
-
private _items;
|
|
39
|
-
private _differ;
|
|
40
|
-
private _itemTemplate;
|
|
41
|
-
private _templateMap;
|
|
42
|
-
private _loaders;
|
|
43
|
-
constructor(_elementRef: ElementRef, _iterableDiffers: IterableDiffers, _renderer: NativeScriptRendererFactory, _ngZone: NgZone);
|
|
44
|
-
private itemViewLoader;
|
|
45
|
-
ngAfterContentInit(): void;
|
|
46
|
-
ngOnDestroy(): void;
|
|
47
|
-
ngDoCheck(): void;
|
|
48
|
-
registerTemplate(key: string, template: TemplateRef<ItemContext>): void;
|
|
49
|
-
onItemLoading(args: CollectionViewItemEventData): void;
|
|
50
|
-
onItemRecyclingInternal(args: any): void;
|
|
51
|
-
onItemDisposingInternal(args: any): void;
|
|
52
|
-
setupViewRef(view: EmbeddedViewRef<ItemContext>, data: any, index: number): void;
|
|
53
|
-
protected getItemTemplateViewFactory(template: TemplateRef<ItemContext>): () => View;
|
|
54
|
-
viewPool: Map<TemplateRef<ItemContext>, {
|
|
55
|
-
scrapSize: number;
|
|
56
|
-
scrapHead: Set<EmbeddedViewRef<ItemContext>>;
|
|
57
|
-
}>;
|
|
58
|
-
private storeViewRef;
|
|
59
|
-
viewToTemplate: WeakMap<EmbeddedViewRef<any>, TemplateRef<any>>;
|
|
60
|
-
viewToLoader: WeakMap<EmbeddedViewRef<any>, ComponentRef<DetachedLoader>>;
|
|
61
|
-
private getOrCreate;
|
|
62
|
-
private getView;
|
|
63
|
-
private getViewPool;
|
|
64
|
-
private setItemTemplates;
|
|
65
|
-
private detectChangesOnChild;
|
|
66
|
-
private refresh;
|
|
67
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CollectionViewComponent, never>;
|
|
68
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CollectionViewComponent, "CollectionView", never, { "autoReuseViews": { "alias": "autoReuseViews"; "required": false; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, { "setupItemView": "setupItemView"; }, ["itemTemplateQuery"], never, true, never>;
|
|
69
|
-
}
|
|
70
|
-
declare class TemplateKeyDirective {
|
|
71
|
-
private templateRef;
|
|
72
|
-
private collectionView;
|
|
73
|
-
constructor(templateRef: TemplateRef<any>, collectionView: CollectionViewComponent);
|
|
74
|
-
set cvTemplateKey(value: any);
|
|
75
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TemplateKeyDirective, [null, { host: true; }]>;
|
|
76
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TemplateKeyDirective, "[cvTemplateKey]", never, { "cvTemplateKey": { "alias": "cvTemplateKey"; "required": false; }; }, {}, never, never, true, never>;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
declare class CollectionViewModule {
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./collectionview-comp";
|
|
3
|
+
export { CollectionViewComponent, TemplateKeyDirective } from './collectionview-comp';
|
|
4
|
+
export declare class CollectionViewModule {
|
|
80
5
|
static ɵfac: i0.ɵɵFactoryDeclaration<CollectionViewModule, never>;
|
|
81
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<CollectionViewModule, never, [typeof CollectionViewComponent, typeof TemplateKeyDirective], [typeof CollectionViewComponent, typeof TemplateKeyDirective]>;
|
|
6
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<CollectionViewModule, never, [typeof i1.CollectionViewComponent, typeof i1.TemplateKeyDirective], [typeof i1.CollectionViewComponent, typeof i1.TemplateKeyDirective]>;
|
|
82
7
|
static ɵinj: i0.ɵɵInjectorDeclaration<CollectionViewModule>;
|
|
83
8
|
}
|
|
84
|
-
|
|
85
|
-
export { CollectionViewComponent, CollectionViewModule, TemplateKeyDirective };
|
package/angular/package.json
CHANGED
|
@@ -17,6 +17,6 @@
|
|
|
17
17
|
"tslib": "^2.3.0"
|
|
18
18
|
},
|
|
19
19
|
"scripts": {
|
|
20
|
-
"prepublishOnly": "node --eval \"console.error('ERROR: Trying to publish a package that has been compiled in full compilation mode. This is not allowed.\\nPlease delete and rebuild the package with partial compilation mode, before attempting to publish.\\n')\" && exit 1"
|
|
20
|
+
"prepublishOnly": "node --eval \"console.error('ERROR: Trying to publish a package that has been compiled by Ivy in full compilation mode. This is not allowed.\\nPlease delete and rebuild the package with Ivy partial compilation mode, before attempting to publish.\\n')\" && exit 1"
|
|
21
21
|
}
|
|
22
22
|
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { ChangedData, CoreTypes, View, ViewBase } from '@nativescript/core';
|
|
2
|
+
import { CollectionViewBase } from './index-common';
|
|
3
|
+
import { TypedArray } from '@nativescript-community/arraybuffers';
|
|
4
|
+
export * from './index-common';
|
|
5
|
+
declare module '@nativescript/core/ui/core/view' {
|
|
6
|
+
interface ViewCommon {
|
|
7
|
+
layoutChangeListenerIsSet: boolean;
|
|
8
|
+
layoutChangeListener: android.view.View.OnLayoutChangeListener;
|
|
9
|
+
_raiseLayoutChangedEvent(): any;
|
|
10
|
+
handleGestureTouch(event: android.view.MotionEvent): any;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export declare enum SnapPosition {
|
|
14
|
+
START = 0,
|
|
15
|
+
END = 1
|
|
16
|
+
}
|
|
17
|
+
export declare class CollectionView extends CollectionViewBase {
|
|
18
|
+
[key: symbol]: (...args: any[]) => any | void;
|
|
19
|
+
static layoutCompletedEvent: string;
|
|
20
|
+
static DEFAULT_TEMPLATE_VIEW_TYPE: number;
|
|
21
|
+
static CUSTOM_TEMPLATE_ITEM_TYPE: number;
|
|
22
|
+
nativeViewProtected: CollectionViewRecyclerView & {
|
|
23
|
+
scrollListener: com.nativescript.collectionview.OnScrollListener;
|
|
24
|
+
layoutManager: androidx.recyclerview.widget.RecyclerView.LayoutManager;
|
|
25
|
+
owner?: WeakRef<CollectionView>;
|
|
26
|
+
};
|
|
27
|
+
private recyclerListener;
|
|
28
|
+
private templateTypeNumberString;
|
|
29
|
+
private templateStringTypeNumber;
|
|
30
|
+
private _currentNativeItemType;
|
|
31
|
+
private currentSpanCount;
|
|
32
|
+
private _viewHolders;
|
|
33
|
+
private _scrollOrLoadMoreChangeCount;
|
|
34
|
+
private _nScrollListener;
|
|
35
|
+
scrolling: boolean;
|
|
36
|
+
needsScrollStartEvent: boolean;
|
|
37
|
+
private _hlayoutParams;
|
|
38
|
+
private _vlayoutParams;
|
|
39
|
+
private _lastLayoutKey;
|
|
40
|
+
private _listViewAdapter;
|
|
41
|
+
private _simpleItemTouchCallback;
|
|
42
|
+
private _itemTouchHelper;
|
|
43
|
+
animateItemUpdate: boolean;
|
|
44
|
+
nestedScrollingEnabled: boolean;
|
|
45
|
+
itemViewCacheSize: number;
|
|
46
|
+
extraLayoutSpace: number;
|
|
47
|
+
recycledViewPool: com.nativescript.collectionview.RecycledViewPool;
|
|
48
|
+
recycledViewPoolDisposeListener: com.nativescript.collectionview.RecycledViewPool.ViewPoolListener;
|
|
49
|
+
mInPropertiesSet: boolean;
|
|
50
|
+
mShouldUpdateInnerSize: boolean;
|
|
51
|
+
mShouldUpdateSpanCount: boolean;
|
|
52
|
+
mShouldRefresh: boolean;
|
|
53
|
+
onResumeNativeUpdates(): void;
|
|
54
|
+
createNativeView(): com.nativescript.collectionview.RecyclerView;
|
|
55
|
+
initNativeView(): void;
|
|
56
|
+
disposeNativeView(): void;
|
|
57
|
+
onLoaded(): void;
|
|
58
|
+
getViewForItemAtIndex(index: number): View;
|
|
59
|
+
_getSpanSize: (item: any, index: any) => number;
|
|
60
|
+
set spanSize(inter: (item: any, index: any) => number);
|
|
61
|
+
get spanSize(): (item: any, index: any) => number;
|
|
62
|
+
decorator: com.nativescript.collectionview.OverlapDecoration;
|
|
63
|
+
decoratorBuffer: TypedArray;
|
|
64
|
+
decoratorListener: com.nativescript.collectionview.OverlapDecoration.OverlapDecorationListener;
|
|
65
|
+
nativeGetItemOverlap(position: number): TypedArray;
|
|
66
|
+
private attachScrollListenerIfNecessary;
|
|
67
|
+
private detachScrollListenerIfNecessary;
|
|
68
|
+
private computeScrollEventData;
|
|
69
|
+
onScrolled(view: androidx.recyclerview.widget.RecyclerView, dx: number, dy: number): void;
|
|
70
|
+
onScrollStateChanged(view: androidx.recyclerview.widget.RecyclerView, newState: number): void;
|
|
71
|
+
addEventListener(arg: string, callback: any, thisArg?: any): void;
|
|
72
|
+
removeEventListener(arg: string, callback: any, thisArg?: any): void;
|
|
73
|
+
get android(): androidx.recyclerview.widget.RecyclerView;
|
|
74
|
+
get layoutManager(): androidsupportv7widgetRecyclerView.LayoutManager;
|
|
75
|
+
_getViewLayoutParams(): androidviewViewGroup.LayoutParams;
|
|
76
|
+
defaultPoolSize: number;
|
|
77
|
+
desiredPoolSize: Map<string, number>;
|
|
78
|
+
private setNativePoolSize;
|
|
79
|
+
private setPoolSizes;
|
|
80
|
+
setPoolSize(key: string, size: number): void;
|
|
81
|
+
protected updateScrollBarVisibility(value: any): void;
|
|
82
|
+
private enumerateViewHolders;
|
|
83
|
+
private enumerateViewHoldersAsync;
|
|
84
|
+
startDragging(index: number): void;
|
|
85
|
+
isDragging: boolean;
|
|
86
|
+
startViewHolderDragging(index: any, viewHolder: CollectionViewCellHolder): void;
|
|
87
|
+
onReorderLongPress(motionEvent: android.view.MotionEvent): void;
|
|
88
|
+
_reorderItemInSource(oldPosition: number, newPosition: number): void;
|
|
89
|
+
_longPressGesture: androidx.core.view.GestureDetectorCompat;
|
|
90
|
+
_itemTouchListerner: androidx.recyclerview.widget.RecyclerView.OnItemTouchListener;
|
|
91
|
+
onItemViewLoaderChanged(): void;
|
|
92
|
+
onItemTemplateSelectorChanged(oldValue: any, newValue: any): void;
|
|
93
|
+
onItemTemplateChanged(oldValue: any, newValue: any): void;
|
|
94
|
+
onItemTemplatesChanged(oldValue: any, newValue: any): void;
|
|
95
|
+
updateSpanCount(requestLayout?: boolean): boolean;
|
|
96
|
+
updateInnerSize(): boolean;
|
|
97
|
+
_onColWidthPropertyChanged(oldValue: CoreTypes.PercentLengthType, newValue: CoreTypes.PercentLengthType): void;
|
|
98
|
+
_onRowHeightPropertyChanged(oldValue: CoreTypes.PercentLengthType, newValue: CoreTypes.PercentLengthType): void;
|
|
99
|
+
onLayout(left: number, top: number, right: number, bottom: number): void;
|
|
100
|
+
onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
|
|
101
|
+
onSourceCollectionChanged(event: ChangedData<any>): void;
|
|
102
|
+
eachChild(callback: (child: ViewBase) => boolean): void;
|
|
103
|
+
eachChildAsync(callback: any): Promise<void>;
|
|
104
|
+
refreshVisibleItems(): void;
|
|
105
|
+
isItemAtIndexVisible(index: number): boolean;
|
|
106
|
+
findFirstVisibleItemIndex(): number;
|
|
107
|
+
findLastVisibleItemIndex(): number;
|
|
108
|
+
_layedOut: boolean;
|
|
109
|
+
refresh(forceRefresh?: boolean, updateSpanCountRequestsLayout?: boolean): void;
|
|
110
|
+
get scrollOffset(): number;
|
|
111
|
+
get verticalOffsetX(): number;
|
|
112
|
+
get verticalOffsetY(): number;
|
|
113
|
+
scrollToIndex(index: number, animated?: boolean, snap?: SnapPosition): void;
|
|
114
|
+
scrollToOffset(offSetValue: any): void;
|
|
115
|
+
private _setPadding;
|
|
116
|
+
private createComposedAdapter;
|
|
117
|
+
getItemCount(): number;
|
|
118
|
+
getItem(i: number): any;
|
|
119
|
+
getItemId(i: number): any;
|
|
120
|
+
onItemIdGeneratorChanged(oldValue: any, newValue: any): void;
|
|
121
|
+
clearTemplateTypes(): void;
|
|
122
|
+
getItemViewType(position: number): number;
|
|
123
|
+
templateKeyToNativeItem(key: string): number;
|
|
124
|
+
disposeViewHolderViews(): void;
|
|
125
|
+
getKeyByValue(viewType: number): string;
|
|
126
|
+
onCreateViewHolder(parent: android.view.ViewGroup, viewType: number): CollectionViewCellHolder;
|
|
127
|
+
notifyForItemAtIndex(eventName: string, view: View, index: number, bindingContext?: any, native?: any): any;
|
|
128
|
+
bindedViewHolders: Set<number>;
|
|
129
|
+
onBindViewHolder(holder: CollectionViewCellHolder, position: number): void;
|
|
130
|
+
onViewRecycled(holder: any): void;
|
|
131
|
+
}
|
|
132
|
+
interface CollectionViewCellHolder extends com.nativescript.collectionview.CollectionViewCellHolder {
|
|
133
|
+
new (androidView: android.view.View): CollectionViewCellHolder;
|
|
134
|
+
view: View;
|
|
135
|
+
clickListener: android.view.View.OnClickListener;
|
|
136
|
+
}
|
|
137
|
+
declare let CollectionViewCellHolder: CollectionViewCellHolder;
|
|
138
|
+
export interface CollectionViewRecyclerView extends com.nativescript.collectionview.RecyclerView {
|
|
139
|
+
new (context: any): CollectionViewRecyclerView;
|
|
140
|
+
}
|
package/index.android.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
var _a, _b;
|
|
2
|
-
/* eslint-disable no-redeclare */
|
|
3
2
|
import { ChangeType, ContentView, Length, Property, ProxyViewContainer, Trace, Utils, booleanConverter, paddingBottomProperty, paddingLeftProperty, paddingRightProperty, paddingTopProperty, profile } from '@nativescript/core';
|
|
4
3
|
import { itemOverlapProperty, reorderLongPressEnabledProperty, reorderingEnabledProperty, reverseLayoutProperty, scrollBarIndicatorVisibleProperty } from '.';
|
|
5
4
|
import { CLog, CLogTypes, CollectionViewBase, ListViewViewTypes, isScrollEnabledProperty, orientationProperty } from './index-common';
|
|
@@ -173,7 +172,6 @@ export class CollectionView extends CollectionViewBase {
|
|
|
173
172
|
view.callUnloaded();
|
|
174
173
|
}
|
|
175
174
|
view._isAddedToNativeVisualTree = false;
|
|
176
|
-
//@ts-ignore
|
|
177
175
|
view.parent = null;
|
|
178
176
|
view._tearDownUI();
|
|
179
177
|
}
|
|
@@ -1114,6 +1112,7 @@ export class CollectionView extends CollectionViewBase {
|
|
|
1114
1112
|
CollectionViewCellHolder = com.nativescript.collectionview.CollectionViewCellHolder;
|
|
1115
1113
|
}
|
|
1116
1114
|
const holder = new CollectionViewCellHolder(view.nativeView);
|
|
1115
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
1117
1116
|
const collectionView = this;
|
|
1118
1117
|
const clickListener = new android.view.View.OnClickListener({
|
|
1119
1118
|
onClick: () => {
|