@nstudio/ui-collectionview 4.0.70 → 5.0.4

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.
@@ -310,13 +310,13 @@ export class CollectionViewComponent {
310
310
  }
311
311
  }
312
312
  }
313
- CollectionViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: CollectionViewComponent, deps: [{ token: ElementRef }, { token: IterableDiffers }, { token: NativeScriptRendererFactory }, { token: NgZone }], target: i0.ɵɵFactoryTarget.Component });
314
- CollectionViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: CollectionViewComponent, selector: "CollectionView", inputs: { autoReuseViews: "autoReuseViews", itemTemplate: "itemTemplate", items: "items" }, outputs: { setupItemView: "setupItemView" }, host: { listeners: { "itemLoading": "onItemLoading($event)", "itemRecycling": "onItemRecyclingInternal($event)", "itemDisposing": "onItemDisposingInternal($event)" } }, queries: [{ propertyName: "itemTemplateQuery", first: true, predicate: TemplateRef, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "loader", first: true, predicate: ["loader"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: `
313
+ CollectionViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CollectionViewComponent, deps: [{ token: ElementRef }, { token: IterableDiffers }, { token: NativeScriptRendererFactory }, { token: NgZone }], target: i0.ɵɵFactoryTarget.Component });
314
+ CollectionViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: CollectionViewComponent, selector: "CollectionView", inputs: { autoReuseViews: "autoReuseViews", itemTemplate: "itemTemplate", items: "items" }, outputs: { setupItemView: "setupItemView" }, host: { listeners: { "itemLoading": "onItemLoading($event)", "itemRecycling": "onItemRecyclingInternal($event)", "itemDisposing": "onItemDisposingInternal($event)" } }, queries: [{ propertyName: "itemTemplateQuery", first: true, predicate: TemplateRef, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "loader", first: true, predicate: ["loader"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: `
315
315
  <DetachedContainer>
316
316
  <Placeholder #loader></Placeholder>
317
317
  </DetachedContainer>
318
318
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
319
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: CollectionViewComponent, decorators: [{
319
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CollectionViewComponent, decorators: [{
320
320
  type: Component,
321
321
  args: [{
322
322
  selector: 'CollectionView',
@@ -381,9 +381,9 @@ export class TemplateKeyDirective {
381
381
  }
382
382
  }
383
383
  }
384
- TemplateKeyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: TemplateKeyDirective, deps: [{ token: i0.TemplateRef }, { token: CollectionViewComponent, host: true }], target: i0.ɵɵFactoryTarget.Directive });
385
- TemplateKeyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: TemplateKeyDirective, selector: "[cvTemplateKey]", inputs: { cvTemplateKey: "cvTemplateKey" }, ngImport: i0 });
386
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: TemplateKeyDirective, decorators: [{
384
+ TemplateKeyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TemplateKeyDirective, deps: [{ token: i0.TemplateRef }, { token: CollectionViewComponent, host: true }], target: i0.ɵɵFactoryTarget.Directive });
385
+ TemplateKeyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: TemplateKeyDirective, selector: "[cvTemplateKey]", inputs: { cvTemplateKey: "cvTemplateKey" }, ngImport: i0 });
386
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TemplateKeyDirective, decorators: [{
387
387
  type: Directive,
388
388
  args: [{ selector: '[cvTemplateKey]' }]
389
389
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: CollectionViewComponent, decorators: [{
@@ -5,10 +5,10 @@ import * as i0 from "@angular/core";
5
5
  export { CollectionViewComponent, TemplateKeyDirective } from './collectionview.component';
6
6
  export class CollectionViewModule {
7
7
  }
8
- CollectionViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: CollectionViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- CollectionViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.2", ngImport: i0, type: CollectionViewModule, declarations: [CollectionViewComponent, TemplateKeyDirective], exports: [CollectionViewComponent, TemplateKeyDirective] });
10
- CollectionViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: CollectionViewModule });
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: CollectionViewModule, decorators: [{
8
+ CollectionViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CollectionViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ CollectionViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: CollectionViewModule, declarations: [CollectionViewComponent, TemplateKeyDirective], exports: [CollectionViewComponent, TemplateKeyDirective] });
10
+ CollectionViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CollectionViewModule });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CollectionViewModule, decorators: [{
12
12
  type: NgModule,
13
13
  args: [{
14
14
  declarations: [CollectionViewComponent, TemplateKeyDirective],
@@ -312,13 +312,13 @@ class CollectionViewComponent {
312
312
  }
313
313
  }
314
314
  }
315
- CollectionViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: CollectionViewComponent, deps: [{ token: ElementRef }, { token: IterableDiffers }, { token: NativeScriptRendererFactory }, { token: NgZone }], target: i0.ɵɵFactoryTarget.Component });
316
- CollectionViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: CollectionViewComponent, selector: "CollectionView", inputs: { autoReuseViews: "autoReuseViews", itemTemplate: "itemTemplate", items: "items" }, outputs: { setupItemView: "setupItemView" }, host: { listeners: { "itemLoading": "onItemLoading($event)", "itemRecycling": "onItemRecyclingInternal($event)", "itemDisposing": "onItemDisposingInternal($event)" } }, queries: [{ propertyName: "itemTemplateQuery", first: true, predicate: TemplateRef, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "loader", first: true, predicate: ["loader"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: `
315
+ CollectionViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CollectionViewComponent, deps: [{ token: ElementRef }, { token: IterableDiffers }, { token: NativeScriptRendererFactory }, { token: NgZone }], target: i0.ɵɵFactoryTarget.Component });
316
+ CollectionViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: CollectionViewComponent, selector: "CollectionView", inputs: { autoReuseViews: "autoReuseViews", itemTemplate: "itemTemplate", items: "items" }, outputs: { setupItemView: "setupItemView" }, host: { listeners: { "itemLoading": "onItemLoading($event)", "itemRecycling": "onItemRecyclingInternal($event)", "itemDisposing": "onItemDisposingInternal($event)" } }, queries: [{ propertyName: "itemTemplateQuery", first: true, predicate: TemplateRef, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "loader", first: true, predicate: ["loader"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: `
317
317
  <DetachedContainer>
318
318
  <Placeholder #loader></Placeholder>
319
319
  </DetachedContainer>
320
320
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
321
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: CollectionViewComponent, decorators: [{
321
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CollectionViewComponent, decorators: [{
322
322
  type: Component,
323
323
  args: [{
324
324
  selector: 'CollectionView',
@@ -385,9 +385,9 @@ class TemplateKeyDirective {
385
385
  }
386
386
  }
387
387
  }
388
- TemplateKeyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: TemplateKeyDirective, deps: [{ token: i0.TemplateRef }, { token: CollectionViewComponent, host: true }], target: i0.ɵɵFactoryTarget.Directive });
389
- TemplateKeyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: TemplateKeyDirective, selector: "[cvTemplateKey]", inputs: { cvTemplateKey: "cvTemplateKey" }, ngImport: i0 });
390
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: TemplateKeyDirective, decorators: [{
388
+ TemplateKeyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TemplateKeyDirective, deps: [{ token: i0.TemplateRef }, { token: CollectionViewComponent, host: true }], target: i0.ɵɵFactoryTarget.Directive });
389
+ TemplateKeyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: TemplateKeyDirective, selector: "[cvTemplateKey]", inputs: { cvTemplateKey: "cvTemplateKey" }, ngImport: i0 });
390
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TemplateKeyDirective, decorators: [{
391
391
  type: Directive,
392
392
  args: [{ selector: '[cvTemplateKey]' }]
393
393
  }], ctorParameters: function () {
@@ -401,10 +401,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
401
401
  // External
402
402
  class CollectionViewModule {
403
403
  }
404
- CollectionViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: CollectionViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
405
- CollectionViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.2", ngImport: i0, type: CollectionViewModule, declarations: [CollectionViewComponent, TemplateKeyDirective], exports: [CollectionViewComponent, TemplateKeyDirective] });
406
- CollectionViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: CollectionViewModule });
407
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: CollectionViewModule, decorators: [{
404
+ CollectionViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CollectionViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
405
+ CollectionViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: CollectionViewModule, declarations: [CollectionViewComponent, TemplateKeyDirective], exports: [CollectionViewComponent, TemplateKeyDirective] });
406
+ CollectionViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CollectionViewModule });
407
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CollectionViewModule, decorators: [{
408
408
  type: NgModule,
409
409
  args: [{
410
410
  declarations: [CollectionViewComponent, TemplateKeyDirective],
@@ -311,13 +311,13 @@ class CollectionViewComponent {
311
311
  }
312
312
  }
313
313
  }
314
- CollectionViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: CollectionViewComponent, deps: [{ token: ElementRef }, { token: IterableDiffers }, { token: NativeScriptRendererFactory }, { token: NgZone }], target: i0.ɵɵFactoryTarget.Component });
315
- CollectionViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: CollectionViewComponent, selector: "CollectionView", inputs: { autoReuseViews: "autoReuseViews", itemTemplate: "itemTemplate", items: "items" }, outputs: { setupItemView: "setupItemView" }, host: { listeners: { "itemLoading": "onItemLoading($event)", "itemRecycling": "onItemRecyclingInternal($event)", "itemDisposing": "onItemDisposingInternal($event)" } }, queries: [{ propertyName: "itemTemplateQuery", first: true, predicate: TemplateRef, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "loader", first: true, predicate: ["loader"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: `
314
+ CollectionViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CollectionViewComponent, deps: [{ token: ElementRef }, { token: IterableDiffers }, { token: NativeScriptRendererFactory }, { token: NgZone }], target: i0.ɵɵFactoryTarget.Component });
315
+ CollectionViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: CollectionViewComponent, selector: "CollectionView", inputs: { autoReuseViews: "autoReuseViews", itemTemplate: "itemTemplate", items: "items" }, outputs: { setupItemView: "setupItemView" }, host: { listeners: { "itemLoading": "onItemLoading($event)", "itemRecycling": "onItemRecyclingInternal($event)", "itemDisposing": "onItemDisposingInternal($event)" } }, queries: [{ propertyName: "itemTemplateQuery", first: true, predicate: TemplateRef, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "loader", first: true, predicate: ["loader"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: `
316
316
  <DetachedContainer>
317
317
  <Placeholder #loader></Placeholder>
318
318
  </DetachedContainer>
319
319
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
320
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: CollectionViewComponent, decorators: [{
320
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CollectionViewComponent, decorators: [{
321
321
  type: Component,
322
322
  args: [{
323
323
  selector: 'CollectionView',
@@ -382,9 +382,9 @@ class TemplateKeyDirective {
382
382
  }
383
383
  }
384
384
  }
385
- TemplateKeyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: TemplateKeyDirective, deps: [{ token: i0.TemplateRef }, { token: CollectionViewComponent, host: true }], target: i0.ɵɵFactoryTarget.Directive });
386
- TemplateKeyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: TemplateKeyDirective, selector: "[cvTemplateKey]", inputs: { cvTemplateKey: "cvTemplateKey" }, ngImport: i0 });
387
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: TemplateKeyDirective, decorators: [{
385
+ TemplateKeyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TemplateKeyDirective, deps: [{ token: i0.TemplateRef }, { token: CollectionViewComponent, host: true }], target: i0.ɵɵFactoryTarget.Directive });
386
+ TemplateKeyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: TemplateKeyDirective, selector: "[cvTemplateKey]", inputs: { cvTemplateKey: "cvTemplateKey" }, ngImport: i0 });
387
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TemplateKeyDirective, decorators: [{
388
388
  type: Directive,
389
389
  args: [{ selector: '[cvTemplateKey]' }]
390
390
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: CollectionViewComponent, decorators: [{
@@ -396,10 +396,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
396
396
  // External
397
397
  class CollectionViewModule {
398
398
  }
399
- CollectionViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: CollectionViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
400
- CollectionViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.2", ngImport: i0, type: CollectionViewModule, declarations: [CollectionViewComponent, TemplateKeyDirective], exports: [CollectionViewComponent, TemplateKeyDirective] });
401
- CollectionViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: CollectionViewModule });
402
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: CollectionViewModule, decorators: [{
399
+ CollectionViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CollectionViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
400
+ CollectionViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: CollectionViewModule, declarations: [CollectionViewComponent, TemplateKeyDirective], exports: [CollectionViewComponent, TemplateKeyDirective] });
401
+ CollectionViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CollectionViewModule });
402
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CollectionViewModule, decorators: [{
403
403
  type: NgModule,
404
404
  args: [{
405
405
  declarations: [CollectionViewComponent, TemplateKeyDirective],
package/index.ios.d.ts CHANGED
@@ -14,7 +14,6 @@ export declare class CollectionView extends CollectionViewBase {
14
14
  private _dataSource;
15
15
  private _delegate;
16
16
  private _preparingCell;
17
- private _sizes;
18
17
  private _map;
19
18
  _measureCellMap: Map<string, {
20
19
  cell: CollectionViewCell;
@@ -30,7 +29,6 @@ export declare class CollectionView extends CollectionViewBase {
30
29
  draggingStartDelta: [number, number];
31
30
  nativeViewProtected: UICollectionView;
32
31
  constructor();
33
- get ios(): UICollectionView;
34
32
  createNativeView(): UICollectionView;
35
33
  onTemplateAdded(t: any): void;
36
34
  initNativeView(): void;
@@ -69,9 +67,7 @@ export declare class CollectionView extends CollectionViewBase {
69
67
  _getItemTemplateType(indexPath: any): string;
70
68
  getItemTemplateContent(index: any, templateType: any): any;
71
69
  _prepareCell(cell: CollectionViewCell, indexPath: NSIndexPath, templateType: string, notForCellSizeComp?: boolean): [number, number];
72
- getCellSize(index: number): number[];
73
- storeCellSize(index: number, value: any): void;
74
- clearCellSize(): void;
70
+ getCellSize(index: number): any;
75
71
  private measureCell;
76
72
  layoutCell(index: number, cell: CollectionViewCell, cellView: View): any;
77
73
  private clearRealizedCells;
@@ -103,6 +99,7 @@ interface ViewItemIndex {
103
99
  declare type ItemView = View & ViewItemIndex;
104
100
  declare class CollectionViewCell extends UICollectionViewCell {
105
101
  owner: WeakRef<ItemView>;
102
+ currentIndex: number;
106
103
  get view(): ItemView;
107
104
  }
108
105
  declare class ReorderLongPressImpl extends NSObject {
package/index.ios.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { ChangeType, ContentView, Observable, Property, ProxyViewContainer, Trace, Utils, View, paddingBottomProperty, paddingLeftProperty, paddingRightProperty, paddingTopProperty, profile } from '@nativescript/core';
2
- import { CLog, CLogTypes, CollectionViewBase, ListViewViewTypes, isBounceEnabledProperty, isScrollEnabledProperty, itemTemplatesProperty, orientationProperty, reorderLongPressEnabledProperty, reorderingEnabledProperty, reverseLayoutProperty, scrollBarIndicatorVisibleProperty } from './common';
2
+ import { reorderLongPressEnabledProperty, reorderingEnabledProperty, reverseLayoutProperty, scrollBarIndicatorVisibleProperty } from '.';
3
+ import { CLog, CLogTypes, CollectionViewBase, ListViewViewTypes, isBounceEnabledProperty, isScrollEnabledProperty, itemTemplatesProperty, orientationProperty } from './common';
3
4
  export * from './common';
4
5
  const infinity = Utils.layout.makeMeasureSpec(0, Utils.layout.UNSPECIFIED);
5
6
  export var ContentInsetAdjustmentBehavior;
@@ -43,11 +44,7 @@ export class CollectionView extends CollectionViewBase {
43
44
  this.needsScrollStartEvent = false;
44
45
  this.isScrolling = false;
45
46
  this._map = new Map();
46
- this._sizes = new Array();
47
- }
48
- // @ts-ignore
49
- get ios() {
50
- return this.nativeViewProtected;
47
+ // this._sizes = new Array<number[]>();
51
48
  }
52
49
  createNativeView() {
53
50
  let layout;
@@ -73,35 +70,27 @@ export class CollectionView extends CollectionViewBase {
73
70
  }
74
71
  onTemplateAdded(t) {
75
72
  super.onTemplateAdded(t);
76
- if (this.ios) {
77
- this.ios.registerClassForCellWithReuseIdentifier(CollectionViewCell.class(), t.key.toLowerCase());
73
+ if (this.nativeViewProtected) {
74
+ this.nativeViewProtected.registerClassForCellWithReuseIdentifier(CollectionViewCell.class(), t.key.toLowerCase());
78
75
  }
79
76
  }
80
77
  initNativeView() {
81
78
  super.initNativeView();
79
+ const nativeView = this.nativeView;
82
80
  this._dataSource = CollectionViewDataSource.initWithOwner(this);
83
- this.ios.dataSource = this._dataSource;
84
- const layoutStyle = CollectionViewBase.layoutStyles[this.layoutStyle];
85
- if (layoutStyle && layoutStyle.createDelegate) {
86
- this._delegate = layoutStyle.createDelegate();
87
- }
88
- else {
89
- this._delegate = UICollectionViewDelegateImpl.initWithOwner(this);
90
- }
91
- this._delegate._owner = new WeakRef(this);
81
+ nativeView.dataSource = this._dataSource;
82
+ // delegate will be set in first onLayout because we need computed _effectiveColWidth and _effectiveRowHeight
92
83
  this._measureCellMap = new Map();
93
- this.ios.delegate = this._delegate;
94
84
  this._setNativeClipToBounds();
95
85
  }
96
86
  disposeNativeView() {
97
87
  if (Trace.isEnabled()) {
98
88
  CLog(CLogTypes.log, 'disposeNativeView');
99
89
  }
100
- if (this.ios) {
101
- this.ios.delegate = null;
102
- this.ios.dataSource = null;
103
- }
90
+ const nativeView = this.nativeView;
91
+ nativeView.delegate = null;
104
92
  this._delegate = null;
93
+ nativeView.dataSource = null;
105
94
  this._dataSource = null;
106
95
  this._layout = null;
107
96
  this.reorderLongPressHandler = null;
@@ -132,14 +121,14 @@ export class CollectionView extends CollectionViewBase {
132
121
  }
133
122
  getViewForItemAtIndex(index) {
134
123
  let result;
135
- if (this.ios) {
136
- const cell = this.ios.cellForItemAtIndexPath(NSIndexPath.indexPathForRowInSection(index, 0));
124
+ if (this.nativeViewProtected) {
125
+ const cell = this.nativeViewProtected.cellForItemAtIndexPath(NSIndexPath.indexPathForRowInSection(index, 0));
137
126
  return cell?.view;
138
127
  }
139
128
  return result;
140
129
  }
141
130
  startDragging(index, pointer) {
142
- if (this.reorderEnabled && this.ios) {
131
+ if (this.reorderEnabled && this.nativeViewProtected) {
143
132
  this.manualDragging = true;
144
133
  this.draggingStartDelta = null;
145
134
  if (pointer) {
@@ -150,15 +139,16 @@ export class CollectionView extends CollectionViewBase {
150
139
  this.draggingStartDelta = [point.x - size.width / 2, point.y - size.height / 2];
151
140
  }
152
141
  }
153
- this.ios.beginInteractiveMovementForItemAtIndexPath(NSIndexPath.indexPathForRowInSection(index, 0));
142
+ this.nativeViewProtected.beginInteractiveMovementForItemAtIndexPath(NSIndexPath.indexPathForRowInSection(index, 0));
154
143
  this.scrollEnabledBeforeDragging = this.isScrollEnabled;
155
- this.ios.scrollEnabled = false;
144
+ this.nativeViewProtected.scrollEnabled = false;
156
145
  }
157
146
  }
158
147
  onReorderingTouch(event) {
159
148
  if (!this.manualDragging) {
160
149
  return;
161
150
  }
151
+ const collectionView = this.nativeViewProtected;
162
152
  const pointer = event.getActivePointers()[0];
163
153
  switch (event.action) {
164
154
  case 'move':
@@ -168,24 +158,18 @@ export class CollectionView extends CollectionViewBase {
168
158
  x -= this.draggingStartDelta[0];
169
159
  y -= this.draggingStartDelta[1];
170
160
  }
171
- if (this.ios) {
172
- this.ios.updateInteractiveMovementTargetPosition(CGPointMake(x, y));
173
- }
161
+ collectionView.updateInteractiveMovementTargetPosition(CGPointMake(x, y));
174
162
  break;
175
163
  case 'up':
176
164
  this.manualDragging = false;
177
- if (this.ios) {
178
- this.ios.endInteractiveMovement();
179
- this.ios.scrollEnabled = this.scrollEnabledBeforeDragging;
180
- }
165
+ collectionView && collectionView.endInteractiveMovement();
166
+ this.nativeViewProtected.scrollEnabled = this.scrollEnabledBeforeDragging;
181
167
  this.handleReorderEnd();
182
168
  break;
183
169
  case 'cancel':
184
170
  this.manualDragging = false;
185
- if (this.ios) {
186
- this.ios.cancelInteractiveMovement();
187
- this.ios.scrollEnabled = this.scrollEnabledBeforeDragging;
188
- }
171
+ collectionView && collectionView.cancelInteractiveMovement();
172
+ this.nativeViewProtected.scrollEnabled = this.scrollEnabledBeforeDragging;
189
173
  this.handleReorderEnd();
190
174
  break;
191
175
  }
@@ -203,31 +187,30 @@ export class CollectionView extends CollectionViewBase {
203
187
  this.reorderEndingRow = -1;
204
188
  }
205
189
  onReorderLongPress(gesture) {
206
- if (!this.ios) {
190
+ const collectionView = this.nativeViewProtected;
191
+ if (!collectionView) {
207
192
  return;
208
193
  }
209
194
  switch (gesture.state) {
210
195
  case 1 /* UIGestureRecognizerState.Began */:
211
- const selectedIndexPath = this.ios.indexPathForItemAtPoint(gesture.locationInView(this.ios));
212
- this.ios.beginInteractiveMovementForItemAtIndexPath(selectedIndexPath);
196
+ const selectedIndexPath = collectionView.indexPathForItemAtPoint(gesture.locationInView(collectionView));
197
+ collectionView.beginInteractiveMovementForItemAtIndexPath(selectedIndexPath);
213
198
  break;
214
199
  case 2 /* UIGestureRecognizerState.Changed */:
215
- this.ios.updateInteractiveMovementTargetPosition(gesture.locationInView(this.ios));
200
+ collectionView.updateInteractiveMovementTargetPosition(gesture.locationInView(collectionView));
216
201
  break;
217
202
  case 3 /* UIGestureRecognizerState.Ended */:
218
- this.ios.endInteractiveMovement();
203
+ collectionView.endInteractiveMovement();
219
204
  this.handleReorderEnd();
220
205
  break;
221
206
  default:
222
- this.ios.cancelInteractiveMovement();
207
+ collectionView.cancelInteractiveMovement();
223
208
  this.handleReorderEnd();
224
209
  break;
225
210
  }
226
211
  }
227
212
  [contentInsetAdjustmentBehaviorProperty.setNative](value) {
228
- if (this.ios) {
229
- this.ios.contentInsetAdjustmentBehavior = value;
230
- }
213
+ this.nativeViewProtected.contentInsetAdjustmentBehavior = value;
231
214
  }
232
215
  [paddingTopProperty.setNative](value) {
233
216
  this._setPadding({ top: Utils.layout.toDeviceIndependentPixels(this.effectivePaddingTop) });
@@ -254,33 +237,25 @@ export class CollectionView extends CollectionViewBase {
254
237
  this.updateScrollBarVisibility(this.scrollBarIndicatorVisible);
255
238
  }
256
239
  [isScrollEnabledProperty.setNative](value) {
257
- if (this.ios) {
258
- this.ios.scrollEnabled = value;
259
- }
240
+ this.nativeViewProtected.scrollEnabled = value;
260
241
  this.scrollEnabledBeforeDragging = value;
261
242
  }
262
243
  [isBounceEnabledProperty.setNative](value) {
263
- if (this.ios) {
264
- this.ios.bounces = value;
265
- // this.ios.alwaysBounceHorizontal = value;
266
- }
244
+ this.nativeViewProtected.bounces = value;
245
+ // this.nativeViewProtected.alwaysBounceHorizontal = value;
267
246
  }
268
247
  [itemTemplatesProperty.getDefault]() {
269
248
  return null;
270
249
  }
271
250
  [reverseLayoutProperty.setNative](value) {
272
- if (this.ios) {
273
- this.ios.transform = value ? CGAffineTransformMakeRotation(-Math.PI) : null;
274
- }
251
+ this.nativeViewProtected.transform = value ? CGAffineTransformMakeRotation(-Math.PI) : null;
275
252
  }
276
253
  [reorderLongPressEnabledProperty.setNative](value) {
277
254
  if (value) {
278
255
  if (!this.reorderLongPressGesture) {
279
256
  this.reorderLongPressHandler = ReorderLongPressImpl.initWithOwner(new WeakRef(this));
280
257
  this.reorderLongPressGesture = UILongPressGestureRecognizer.alloc().initWithTargetAction(this.reorderLongPressHandler, 'longPress');
281
- if (this.ios) {
282
- this.ios.addGestureRecognizer(this.reorderLongPressGesture);
283
- }
258
+ this.nativeViewProtected.addGestureRecognizer(this.reorderLongPressGesture);
284
259
  }
285
260
  else {
286
261
  this.reorderLongPressGesture.enabled = true;
@@ -307,14 +282,14 @@ export class CollectionView extends CollectionViewBase {
307
282
  this.updateScrollBarVisibility(value);
308
283
  }
309
284
  updateScrollBarVisibility(value) {
310
- if (!this.ios) {
285
+ if (!this.nativeViewProtected) {
311
286
  return;
312
287
  }
313
288
  if (this.orientation === 'horizontal') {
314
- this.ios.showsHorizontalScrollIndicator = value;
289
+ this.nativeViewProtected.showsHorizontalScrollIndicator = value;
315
290
  }
316
291
  else {
317
- this.ios.showsVerticalScrollIndicator = value;
292
+ this.nativeViewProtected.showsVerticalScrollIndicator = value;
318
293
  }
319
294
  }
320
295
  eachChildView(callback) {
@@ -332,13 +307,36 @@ export class CollectionView extends CollectionViewBase {
332
307
  const p = CollectionViewBase.plugins[k];
333
308
  p.onLayout && p.onLayout(this, left, top, right, bottom);
334
309
  });
335
- const layoutView = this.ios?.collectionViewLayout;
310
+ const layoutView = this.nativeViewProtected.collectionViewLayout;
336
311
  if (!layoutView) {
337
312
  return;
338
313
  }
339
- if ((layoutView instanceof UICollectionViewFlowLayout && this._effectiveColWidth) || this._effectiveRowHeight) {
340
- // @ts-ignore
341
- layoutView.estimatedItemSize = layoutView.itemSize = CGSizeMake(Utils.layout.toDeviceIndependentPixels(this._effectiveColWidth), Utils.layout.toDeviceIndependentPixels(this._effectiveRowHeight));
314
+ if (!this._delegate) {
315
+ const layoutStyle = CollectionViewBase.layoutStyles[this.layoutStyle];
316
+ if (layoutStyle && layoutStyle.createDelegate) {
317
+ this._delegate = layoutStyle.createDelegate(this);
318
+ }
319
+ else {
320
+ // if we use fixed col and row size we want a delegate
321
+ // without collectionViewLayoutSizeForItemAtIndexPath
322
+ // because it is not needed and faster
323
+ if (this._effectiveColWidth && this._effectiveRowHeight) {
324
+ this._delegate = UICollectionViewDelegateFixedSizeImpl.initWithOwner(this);
325
+ }
326
+ else {
327
+ this._delegate = UICollectionViewDelegateImpl.initWithOwner(this);
328
+ }
329
+ }
330
+ // this._delegate._owner = new WeakRef(this);
331
+ this.nativeViewProtected.delegate = this._delegate;
332
+ }
333
+ if (layoutView instanceof UICollectionViewFlowLayout) {
334
+ if (this._effectiveRowHeight && this._effectiveColWidth) {
335
+ layoutView.itemSize = CGSizeMake(Utils.layout.toDeviceIndependentPixels(this._effectiveColWidth), Utils.layout.toDeviceIndependentPixels(this._effectiveRowHeight));
336
+ }
337
+ else {
338
+ layoutView.estimatedItemSize = CGSizeMake(Utils.layout.toDeviceIndependentPixels(this._effectiveColWidth), Utils.layout.toDeviceIndependentPixels(this._effectiveRowHeight));
339
+ }
342
340
  }
343
341
  layoutView.invalidateLayout();
344
342
  // there is no need to call refresh if it was triggered before with same size.
@@ -352,42 +350,49 @@ export class CollectionView extends CollectionViewBase {
352
350
  return this.orientation === 'horizontal';
353
351
  }
354
352
  onSourceCollectionChanged(event) {
355
- if (!this.ios || this._dataUpdatesSuspended) {
353
+ const view = this.nativeViewProtected;
354
+ if (!view || this._dataUpdatesSuspended || !this._lastLayoutKey) {
356
355
  return;
357
356
  }
358
357
  if (Trace.isEnabled()) {
359
358
  CLog(CLogTypes.log, 'onItemsChanged', ChangeType.Update, event.action, event.index, event.addedCount, event.removed && event.removed.length);
360
359
  }
361
360
  // we need to clear stored cell sizes and it wont be correct anymore
362
- this.clearCellSize();
361
+ // this.clearCellSize();
362
+ const sizes = this._delegate instanceof UICollectionViewDelegateImpl ? this._delegate.cachedSizes : null;
363
363
  switch (event.action) {
364
364
  case ChangeType.Delete: {
365
365
  const indexes = NSMutableArray.new();
366
366
  for (let index = 0; index < event.addedCount; index++) {
367
367
  indexes.addObject(NSIndexPath.indexPathForRowInSection(event.index + index, 0));
368
+ if (sizes) {
369
+ sizes.removeObjectAtIndex(event.index);
370
+ }
368
371
  }
372
+ // this._sizes.splice(event.index, event.addedCount);
369
373
  this.unbindUnusedCells(event.removed);
370
374
  if (Trace.isEnabled()) {
371
375
  CLog(CLogTypes.info, 'deleteItemsAtIndexPaths', indexes.count);
372
376
  }
373
- this.ios.performBatchUpdatesCompletion(() => {
374
- if (this.ios) {
375
- this.ios.deleteItemsAtIndexPaths(indexes);
376
- }
377
+ view.performBatchUpdatesCompletion(() => {
378
+ view.deleteItemsAtIndexPaths(indexes);
377
379
  }, null);
378
380
  return;
379
381
  }
380
382
  case ChangeType.Update: {
381
383
  const indexes = NSMutableArray.new();
382
384
  indexes.addObject(NSIndexPath.indexPathForRowInSection(event.index, 0));
385
+ if (sizes) {
386
+ sizes.replaceObjectAtIndexWithObject(event.index, NSValue.valueWithCGSize(CGSizeZero));
387
+ }
388
+ // this._sizes[event.index] = null;
383
389
  if (Trace.isEnabled()) {
384
390
  CLog(CLogTypes.info, 'reloadItemsAtIndexPaths', event.index, indexes.count);
385
391
  }
392
+ // TODO: for now we dont animate to be like android
386
393
  UIView.performWithoutAnimation(() => {
387
- this.ios.performBatchUpdatesCompletion(() => {
388
- if (this.ios) {
389
- this.ios.reloadItemsAtIndexPaths(indexes);
390
- }
394
+ view.performBatchUpdatesCompletion(() => {
395
+ view.reloadItemsAtIndexPaths(indexes);
391
396
  }, null);
392
397
  });
393
398
  return;
@@ -396,55 +401,63 @@ export class CollectionView extends CollectionViewBase {
396
401
  const indexes = NSMutableArray.new();
397
402
  for (let index = 0; index < event.addedCount; index++) {
398
403
  indexes.addObject(NSIndexPath.indexPathForRowInSection(event.index + index, 0));
404
+ if (sizes) {
405
+ sizes.insertObjectAtIndex(NSValue.valueWithCGSize(CGSizeZero), event.index);
406
+ }
407
+ // this._sizes.splice(index, 0, null);
399
408
  }
400
409
  if (Trace.isEnabled()) {
401
410
  CLog(CLogTypes.info, 'insertItemsAtIndexPaths', indexes.count);
402
411
  }
403
- this.ios.performBatchUpdatesCompletion(() => {
404
- if (this.ios) {
405
- this.ios.insertItemsAtIndexPaths(indexes);
406
- }
412
+ view.performBatchUpdatesCompletion(() => {
413
+ view.insertItemsAtIndexPaths(indexes);
407
414
  }, null);
408
415
  return;
409
416
  }
410
417
  case ChangeType.Splice: {
411
- this.ios.performBatchUpdatesCompletion(() => {
412
- if (!this.ios) {
413
- return;
414
- }
418
+ view.performBatchUpdatesCompletion(() => {
415
419
  const added = event.addedCount;
416
420
  const removed = (event.removed && event.removed.length) || 0;
417
421
  if (added > 0 && added === removed) {
418
422
  const indexes = NSMutableArray.new();
419
423
  for (let index = 0; index < added; index++) {
420
424
  indexes.addObject(NSIndexPath.indexPathForRowInSection(event.index + index, 0));
425
+ if (sizes) {
426
+ sizes.replaceObjectAtIndexWithObject(event.index + index, NSValue.valueWithCGSize(CGSizeZero));
427
+ }
428
+ // this._sizes[event.index + index] = null;
421
429
  }
422
- this.ios.reloadItemsAtIndexPaths(indexes);
430
+ view.reloadItemsAtIndexPaths(indexes);
423
431
  }
424
432
  else {
425
433
  if (event.addedCount > 0) {
426
434
  const indexes = NSMutableArray.alloc().init();
427
435
  for (let index = 0; index < event.addedCount; index++) {
428
436
  indexes.addObject(NSIndexPath.indexPathForItemInSection(event.index + index, 0));
437
+ if (sizes) {
438
+ sizes.insertObjectAtIndex(NSValue.valueWithCGSize(CGSizeZero), event.index);
439
+ }
440
+ // this._sizes.splice(event.index, 0, null);
429
441
  }
430
- this.ios.insertItemsAtIndexPaths(indexes);
442
+ view.insertItemsAtIndexPaths(indexes);
431
443
  }
432
444
  if (event.removed && event.removed.length > 0) {
433
445
  const indexes = NSMutableArray.new();
434
446
  for (let index = 0; index < event.removed.length; index++) {
435
447
  indexes.addObject(NSIndexPath.indexPathForItemInSection(event.index + index, 0));
448
+ if (sizes) {
449
+ sizes.removeObjectAtIndex(event.index);
450
+ }
436
451
  }
452
+ // this._sizes.splice(event.index, event.removed.length);
437
453
  this.unbindUnusedCells(event.removed);
438
454
  if (Trace.isEnabled()) {
439
455
  CLog(CLogTypes.info, 'deleteItemsAtIndexPaths', indexes.count);
440
456
  }
441
- this.ios.performBatchUpdatesCompletion(() => {
442
- if (this.ios) {
443
- this.ios.deleteItemsAtIndexPaths(indexes);
444
- }
445
- }, null);
457
+ view.deleteItemsAtIndexPaths(indexes);
446
458
  }
447
459
  }
460
+ // view.collectionViewLayout.invalidateLayout();
448
461
  }, null);
449
462
  return;
450
463
  }
@@ -453,13 +466,12 @@ export class CollectionView extends CollectionViewBase {
453
466
  }
454
467
  onItemTemplatesChanged(oldValue, newValue) {
455
468
  super.onItemTemplatesChanged(oldValue, newValue);
456
- if (!this.ios) {
469
+ if (!this.nativeViewProtected) {
457
470
  return;
458
471
  }
472
+ const view = this.nativeViewProtected;
459
473
  this._itemTemplatesInternal.forEach((t) => {
460
- if (this.ios) {
461
- this.ios.registerClassForCellWithReuseIdentifier(CollectionViewCell.class(), t.key.toLowerCase());
462
- }
474
+ view.registerClassForCellWithReuseIdentifier(CollectionViewCell.class(), t.key.toLowerCase());
463
475
  });
464
476
  }
465
477
  unbindUnusedCells(removedDataItems) {
@@ -473,27 +485,34 @@ export class CollectionView extends CollectionViewBase {
473
485
  }, this);
474
486
  }
475
487
  refreshVisibleItems() {
476
- if (!this.ios) {
488
+ const view = this.nativeViewProtected;
489
+ if (!view) {
477
490
  return;
478
491
  }
479
- const visibles = this.ios.indexPathsForVisibleItems;
492
+ const sizes = this._delegate instanceof UICollectionViewDelegateImpl ? this._delegate.cachedSizes : null;
493
+ const visibles = view.indexPathsForVisibleItems;
494
+ if (sizes) {
495
+ const indexes = Array.from(visibles);
496
+ indexes.forEach((value) => {
497
+ sizes.replaceObjectAtIndexWithObject(value.row, NSValue.valueWithCGSize(CGSizeZero));
498
+ });
499
+ }
480
500
  UIView.performWithoutAnimation(() => {
481
- this.ios.performBatchUpdatesCompletion(() => {
482
- if (this.ios) {
483
- this.ios.reloadItemsAtIndexPaths(visibles);
484
- }
501
+ view.performBatchUpdatesCompletion(() => {
502
+ view.reloadItemsAtIndexPaths(visibles);
485
503
  }, null);
486
504
  });
487
505
  }
488
506
  isItemAtIndexVisible(itemIndex) {
489
- if (!this.ios) {
507
+ const view = this.nativeViewProtected;
508
+ if (!view) {
490
509
  return false;
491
510
  }
492
- const indexes = Array.from(this.ios.indexPathsForVisibleItems);
511
+ const indexes = Array.from(view.indexPathsForVisibleItems);
493
512
  return indexes.some((visIndex) => visIndex.row === itemIndex);
494
513
  }
495
514
  refresh() {
496
- if (!this.isLoaded || !this.ios) {
515
+ if (!this.isLoaded || !this.nativeView) {
497
516
  this._isDataDirty = true;
498
517
  return;
499
518
  }
@@ -503,7 +522,11 @@ export class CollectionView extends CollectionViewBase {
503
522
  CLog(CLogTypes.info, 'refresh');
504
523
  }
505
524
  // we need to clear stored cell sizes and it wont be correct anymore
506
- this.clearCellSize();
525
+ // this.clearCellSize();
526
+ const sizes = this._delegate instanceof UICollectionViewDelegateImpl ? this._delegate.cachedSizes : null;
527
+ if (sizes) {
528
+ sizes.removeAllObjects();
529
+ }
507
530
  // clear bindingContext when it is not observable because otherwise bindings to items won't reevaluate
508
531
  this._map.forEach((view, nativeView, map) => {
509
532
  if (!(view.bindingContext instanceof Observable)) {
@@ -513,7 +536,7 @@ export class CollectionView extends CollectionViewBase {
513
536
  // TODO: this is ugly look here: https://github.com/nativescript-vue/nativescript-vue/issues/525
514
537
  // this.clearRealizedCells();
515
538
  // dispatch_async(main_queue, () => {
516
- this.ios.reloadData();
539
+ this.nativeViewProtected.reloadData();
517
540
  // });
518
541
  const args = {
519
542
  eventName: CollectionViewBase.dataPopulatedEvent,
@@ -523,18 +546,17 @@ export class CollectionView extends CollectionViewBase {
523
546
  }
524
547
  //@ts-ignore
525
548
  get scrollOffset() {
526
- return (this.isHorizontal() ? this.ios?.contentOffset.x : this.ios?.contentOffset.y) || 0;
549
+ const view = this.nativeViewProtected;
550
+ return (this.isHorizontal() ? view?.contentOffset.x : view?.contentOffset.y) || 0;
527
551
  }
528
552
  get verticalOffsetX() {
529
- return this.ios?.contentOffset.x || 0;
553
+ return this.nativeViewProtected?.contentOffset.x || 0;
530
554
  }
531
555
  get verticalOffsetY() {
532
- return this.ios?.contentOffset.y || 0;
556
+ return this.nativeViewProtected?.contentOffset.y || 0;
533
557
  }
534
558
  scrollToIndex(index, animated = true) {
535
- if (this.ios) {
536
- this.ios.scrollToItemAtIndexPathAtScrollPositionAnimated(NSIndexPath.indexPathForItemInSection(index, 0), this.orientation === 'vertical' ? 1 /* UICollectionViewScrollPosition.Top */ : 8 /* UICollectionViewScrollPosition.Left */, animated);
537
- }
559
+ this.nativeViewProtected.scrollToItemAtIndexPathAtScrollPositionAnimated(NSIndexPath.indexPathForItemInSection(index, 0), this.orientation === 'vertical' ? 1 /* UICollectionViewScrollPosition.Top */ : 8 /* UICollectionViewScrollPosition.Left */, animated);
538
560
  }
539
561
  requestLayout() {
540
562
  // When preparing cell don't call super - no need to invalidate our measure when cell desiredSize is changed.
@@ -543,9 +565,7 @@ export class CollectionView extends CollectionViewBase {
543
565
  }
544
566
  }
545
567
  _setNativeClipToBounds() {
546
- if (this.ios) {
547
- this.ios.clipsToBounds = true;
548
- }
568
+ this.nativeView.clipsToBounds = true;
549
569
  }
550
570
  notifyForItemAtIndex(listView, cell, view, eventName, indexPath, bindingContext) {
551
571
  const args = { eventName, object: listView, index: indexPath.row, view, ios: cell, bindingContext };
@@ -556,7 +576,7 @@ export class CollectionView extends CollectionViewBase {
556
576
  const selector = this._itemTemplateSelector;
557
577
  let type = this._defaultTemplate.key;
558
578
  if (selector) {
559
- type = selector(this.getItemAtIndex(indexPath.item), indexPath.item, this.items);
579
+ type = selector.call(this, this.getItemAtIndex(indexPath.item), indexPath.item, this.items);
560
580
  }
561
581
  return type.toLowerCase();
562
582
  }
@@ -591,30 +611,41 @@ export class CollectionView extends CollectionViewBase {
591
611
  cell.view.nativeViewProtected.removeFromSuperview();
592
612
  cell.owner = new WeakRef(view);
593
613
  }
614
+ cell.currentIndex = indexPath.row;
594
615
  if (notForCellSizeComp) {
595
616
  this._map.set(cell, view);
596
617
  }
597
618
  if (view && !view.parent) {
598
619
  this._addView(view);
599
620
  const innerView = NSCellView.new();
621
+ innerView.autoresizingMask = 2 /* UIViewAutoresizing.FlexibleWidth */ | 16 /* UIViewAutoresizing.FlexibleHeight */;
600
622
  innerView.view = new WeakRef(view);
601
- if (!notForCellSizeComp || this.autoReloadItemOnLayout) {
623
+ if (notForCellSizeComp && this.autoReloadItemOnLayout) {
602
624
  // for a cell to update correctly on cell layout change we need
603
625
  // to do it ourself instead of "propagating it"
604
626
  view['performLayout'] = () => {
605
- if (notForCellSizeComp) {
606
- this.measureCell(cell, view, indexPath);
607
- this.layoutCell(indexPath.row, cell, view);
608
- if (this.ios) {
609
- this.ios.collectionViewLayout.invalidateLayout();
627
+ if (!this._preparingCell) {
628
+ const nativeView = this.nativeViewProtected;
629
+ const sizes = this._delegate instanceof UICollectionViewDelegateImpl ? this._delegate.cachedSizes : null;
630
+ if (sizes) {
631
+ sizes.replaceObjectAtIndexWithObject(cell.currentIndex, NSValue.valueWithCGSize(CGSizeZero));
610
632
  }
633
+ // TODO: for now we dont animate to be like android
634
+ UIView.performWithoutAnimation(() => {
635
+ nativeView.performBatchUpdatesCompletion(() => {
636
+ this.measureCell(cell, view, cell.currentIndex);
637
+ // this.layoutCell(indexPath.row, cell, view);
638
+ // cell.layoutIfNeeded();
639
+ }, null);
640
+ });
641
+ this.nativeViewProtected.collectionViewLayout.invalidateLayout();
611
642
  }
612
643
  };
613
644
  }
614
645
  innerView.addSubview(view.nativeViewProtected);
615
646
  cell.contentView.addSubview(innerView);
616
647
  }
617
- cellSize = this.measureCell(cell, view, indexPath);
648
+ cellSize = this.measureCell(cell, view, indexPath.row);
618
649
  if (notForCellSizeComp) {
619
650
  view.notify({ eventName: CollectionViewBase.bindedEvent });
620
651
  }
@@ -628,7 +659,8 @@ export class CollectionView extends CollectionViewBase {
628
659
  return cellSize;
629
660
  }
630
661
  getCellSize(index) {
631
- let result = this._sizes[index];
662
+ // let result = this._sizes[index];
663
+ let result;
632
664
  // CLog(CLogTypes.log, 'getCellSize', index, result, this._effectiveColWidth, this._effectiveRowHeight, this.getMeasuredWidth(), this.getMeasuredHeight());
633
665
  if (!result) {
634
666
  let width = this._effectiveColWidth;
@@ -657,19 +689,18 @@ export class CollectionView extends CollectionViewBase {
657
689
  // return undefined;
658
690
  return result;
659
691
  }
660
- storeCellSize(index, value) {
661
- this._sizes[index] = value;
662
- }
663
- clearCellSize() {
664
- this._sizes = new Array();
665
- }
666
- measureCell(cell, cellView, index) {
692
+ // public storeCellSize(index: number, value) {
693
+ // this._sizes[index] = value;
694
+ // }
695
+ // public clearCellSize() {
696
+ // this._sizes = new Array<number[]>();
697
+ // }
698
+ measureCell(cell, cellView, position) {
667
699
  if (cellView) {
668
700
  let width = this._effectiveColWidth;
669
701
  let height = this._effectiveRowHeight;
670
702
  const horizontal = this.isHorizontal();
671
703
  if (this.spanSize) {
672
- const position = index.row;
673
704
  const dataItem = this.getItemAtIndex(position);
674
705
  const spanSize = this.spanSize(dataItem, position);
675
706
  if (horizontal) {
@@ -690,19 +721,20 @@ export class CollectionView extends CollectionViewBase {
690
721
  ? Utils.layout.makeMeasureSpec(this._innerHeight, Utils.layout.UNSPECIFIED)
691
722
  : infinity;
692
723
  if (Trace.isEnabled()) {
693
- CLog(CLogTypes.log, 'measureCell', index.row, width, height, widthMeasureSpec, heightMeasureSpec);
724
+ CLog(CLogTypes.log, 'measureCell', position, width, height, widthMeasureSpec, heightMeasureSpec);
694
725
  }
695
726
  const measuredSize = View.measureChild(this, cellView, widthMeasureSpec, heightMeasureSpec);
696
727
  const result = [measuredSize.measuredWidth, measuredSize.measuredHeight];
697
- this.storeCellSize(index.row, result);
728
+ // this.storeCellSize(index.row, result);
698
729
  return result;
699
730
  }
700
731
  return undefined;
701
732
  }
702
733
  layoutCell(index, cell, cellView) {
703
- const cellSize = this.getCellSize(index);
734
+ // const cellSize = this.getCellSize(index);
704
735
  cellView['iosIgnoreSafeArea'] = true;
705
- View.layoutChild(this, cellView, 0, 0, cellSize[0], cellSize[1]);
736
+ const size = cell.bounds.size;
737
+ View.layoutChild(this, cellView, 0, 0, Utils.layout.toDevicePixels(size.width), Utils.layout.toDevicePixels(size.height));
706
738
  if (Trace.isEnabled()) {
707
739
  CLog(CLogTypes.log, 'layoutCell', index, cellView.getMeasuredWidth(), cellView.getMeasuredHeight());
708
740
  }
@@ -759,6 +791,7 @@ export class CollectionView extends CollectionViewBase {
759
791
  collectionViewCellForItemAtIndexPath(collectionView, indexPath) {
760
792
  const templateType = this._getItemTemplateType(indexPath);
761
793
  let cell = collectionView.dequeueReusableCellWithReuseIdentifierForIndexPath(templateType, indexPath);
794
+ const firstRender = !cell.view;
762
795
  if (!cell) {
763
796
  cell = CollectionViewCell.new();
764
797
  }
@@ -766,8 +799,9 @@ export class CollectionView extends CollectionViewBase {
766
799
  CLog(CLogTypes.log, 'collectionViewCellForItemAtIndexPath', indexPath.row, templateType, !!cell.view, cell);
767
800
  }
768
801
  this._prepareCell(cell, indexPath, templateType);
802
+ // the cell layout will be called from NSCellView layoutSubviews
769
803
  const cellView = cell.view;
770
- if (cellView['isLayoutRequired']) {
804
+ if (!firstRender && cellView['isLayoutRequired']) {
771
805
  this.layoutCell(indexPath.row, cell, cellView);
772
806
  }
773
807
  return cell;
@@ -785,14 +819,13 @@ export class CollectionView extends CollectionViewBase {
785
819
  });
786
820
  }
787
821
  }
788
- if (this.hasListeners(CollectionViewBase.displayItemEvent)) {
789
- this.notify({
790
- eventName: CollectionViewBase.displayItemEvent,
791
- index: indexPath.row,
792
- object: this,
793
- cell,
794
- });
795
- }
822
+ // if (this.hasListeners(CollectionViewBase.displayItemEvent) ) {
823
+ // this.notify<CollectionViewItemDisplayEventData>({
824
+ // eventName: CollectionViewBase.displayItemEvent,
825
+ // index:indexPath.row,
826
+ // object: this,
827
+ // });
828
+ // }
796
829
  if (cell.preservesSuperviewLayoutMargins) {
797
830
  cell.preservesSuperviewLayoutMargins = false;
798
831
  }
@@ -1041,19 +1074,7 @@ var UICollectionViewDelegateImpl = /** @class */ (function (_super) {
1041
1074
  }
1042
1075
  return indexPath;
1043
1076
  };
1044
- UICollectionViewDelegateImpl.prototype.collectionViewDidHighlightItemAtIndexPath = function (collectionView, indexPath) {
1045
- var owner = this._owner.deref();
1046
- if (owner) {
1047
- return owner.collectionViewDidHighlightItemAtIndexPath(collectionView, indexPath);
1048
- }
1049
- };
1050
- UICollectionViewDelegateImpl.prototype.collectionViewDidUnhighlightItemAtIndexPath = function (collectionView, indexPath) {
1051
- var owner = this._owner.deref();
1052
- if (owner) {
1053
- return owner.collectionViewDidUnhighlightItemAtIndexPath(collectionView, indexPath);
1054
- }
1055
- };
1056
- UICollectionViewDelegateImpl.prototype.collectionViewLayoutSizeForItemAtIndexPath = function (collectionView, collectionViewLayout, indexPath) {
1077
+ UICollectionViewDelegateImpl.prototype.collectionViewLayoutComputedSizeForItemAtIndexPath = function (collectionView, collectionViewLayout, indexPath) {
1057
1078
  var owner = this._owner.deref();
1058
1079
  if (owner) {
1059
1080
  return owner.collectionViewLayoutSizeForItemAtIndexPath(collectionView, collectionViewLayout, indexPath);
@@ -1098,6 +1119,68 @@ var UICollectionViewDelegateImpl = /** @class */ (function (_super) {
1098
1119
  };
1099
1120
  UICollectionViewDelegateImpl.ObjCProtocols = [UICollectionViewDelegate, UICollectionViewDelegateFlowLayout];
1100
1121
  return UICollectionViewDelegateImpl;
1122
+ }(UICollectionViewCacheDelegateFlowLayout));
1123
+ var UICollectionViewDelegateFixedSizeImpl = /** @class */ (function (_super) {
1124
+ __extends(UICollectionViewDelegateFixedSizeImpl, _super);
1125
+ function UICollectionViewDelegateFixedSizeImpl() {
1126
+ return _super !== null && _super.apply(this, arguments) || this;
1127
+ }
1128
+ UICollectionViewDelegateFixedSizeImpl.initWithOwner = function (owner) {
1129
+ var delegate = UICollectionViewDelegateFixedSizeImpl.new();
1130
+ delegate._owner = new WeakRef(owner);
1131
+ return delegate;
1132
+ };
1133
+ UICollectionViewDelegateFixedSizeImpl.prototype.collectionViewWillDisplayCellForItemAtIndexPath = function (collectionView, cell, indexPath) {
1134
+ var owner = this._owner.deref();
1135
+ if (owner) {
1136
+ owner.collectionViewWillDisplayCellForItemAtIndexPath(collectionView, cell, indexPath);
1137
+ }
1138
+ };
1139
+ UICollectionViewDelegateFixedSizeImpl.prototype.collectionViewDidSelectItemAtIndexPath = function (collectionView, indexPath) {
1140
+ var owner = this._owner.deref();
1141
+ if (owner) {
1142
+ return owner.collectionViewDidSelectItemAtIndexPath(collectionView, indexPath);
1143
+ }
1144
+ return indexPath;
1145
+ };
1146
+ UICollectionViewDelegateFixedSizeImpl.prototype.scrollViewDidScroll = function (scrollView) {
1147
+ var owner = this._owner.deref();
1148
+ if (owner) {
1149
+ owner.scrollViewDidScroll(scrollView);
1150
+ }
1151
+ };
1152
+ UICollectionViewDelegateFixedSizeImpl.prototype.scrollViewWillBeginDragging = function (scrollView) {
1153
+ var owner = this._owner.deref();
1154
+ if (owner) {
1155
+ owner.scrollViewWillBeginDragging(scrollView);
1156
+ }
1157
+ };
1158
+ UICollectionViewDelegateFixedSizeImpl.prototype.scrollViewDidEndDecelerating = function (scrollView) {
1159
+ var owner = this._owner.deref();
1160
+ if (owner) {
1161
+ owner.scrollViewDidEndDecelerating(scrollView);
1162
+ }
1163
+ };
1164
+ UICollectionViewDelegateFixedSizeImpl.prototype.scrollViewWillEndDraggingWithVelocityTargetContentOffset = function (scrollView, velocity, targetContentOffset) {
1165
+ var owner = this._owner.deref();
1166
+ if (owner) {
1167
+ owner.scrollViewWillEndDraggingWithVelocityTargetContentOffset(scrollView, velocity, targetContentOffset);
1168
+ }
1169
+ };
1170
+ UICollectionViewDelegateFixedSizeImpl.prototype.scrollViewDidEndDraggingWillDecelerate = function (scrollView, decelerate) {
1171
+ var owner = this._owner.deref();
1172
+ if (owner) {
1173
+ owner.scrollViewDidEndDraggingWillDecelerate(scrollView, decelerate);
1174
+ }
1175
+ };
1176
+ UICollectionViewDelegateFixedSizeImpl.prototype.scrollViewDidEndScrollingAnimation = function (scrollView) {
1177
+ var owner = this._owner.deref();
1178
+ if (owner) {
1179
+ owner.scrollViewDidEndScrollingAnimation(scrollView);
1180
+ }
1181
+ };
1182
+ UICollectionViewDelegateFixedSizeImpl.ObjCProtocols = [UICollectionViewDelegate, UICollectionViewDelegateFlowLayout];
1183
+ return UICollectionViewDelegateFixedSizeImpl;
1101
1184
  }(NSObject));
1102
1185
  var ReorderLongPressImpl = /** @class */ (function (_super) {
1103
1186
  __extends(ReorderLongPressImpl, _super);
package/index.ios.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../../packages/ui-collectionview/index.ios.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../../packages/ui-collectionview/index.ios.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nstudio/ui-collectionview",
3
- "version": "4.0.70",
3
+ "version": "5.0.4",
4
4
  "description": "Customized NativeScript CollectionView for high performance lists. Supports vertical and horizontal modes, templating, and more.",
5
5
  "main": "index",
6
6
  "typings": "index.d.ts",
Binary file
@@ -0,0 +1,2 @@
1
+ #import <UIKit/UIKit.h>
2
+ #import "UICollectionViewCacheDelegateFlowLayout.h"
@@ -0,0 +1,6 @@
1
+ @interface UICollectionViewCacheDelegateFlowLayout: NSObject <UICollectionViewDelegateFlowLayout>
2
+
3
+ @property (nonatomic, retain) NSMutableArray* cachedSizes;
4
+
5
+ - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout computedSizeForItemAtIndexPath:(NSIndexPath *)indexPath;
6
+ @end
@@ -0,0 +1,36 @@
1
+ #import "UICollectionViewCacheDelegateFlowLayout.h"
2
+
3
+ @implementation UICollectionViewCacheDelegateFlowLayout
4
+ @synthesize cachedSizes;
5
+ - (instancetype)init
6
+ {
7
+ self = [super init];
8
+ if (self) {
9
+ self.cachedSizes = [NSMutableArray new];
10
+ }
11
+ return self;
12
+ }
13
+ - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout computedSizeForItemAtIndexPath:(NSIndexPath *)indexPath
14
+ {
15
+ return CGSizeZero;
16
+ }
17
+
18
+ - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
19
+ {
20
+ NSInteger index = indexPath.row;
21
+ if (index < [self.cachedSizes count]) {
22
+ NSValue* value = [self.cachedSizes objectAtIndex:indexPath.row];
23
+ if (value != nil && !CGSizeEqualToSize([value CGSizeValue], CGSizeZero)) {
24
+ return [value CGSizeValue];
25
+ }
26
+ CGSize size = [self collectionView:collectionView layout:collectionViewLayout computedSizeForItemAtIndexPath:indexPath];
27
+ [self.cachedSizes replaceObjectAtIndex:indexPath.row withObject:[NSValue valueWithCGSize:size]];
28
+ return size;
29
+ } else {
30
+ CGSize size = [self collectionView:collectionView layout:collectionViewLayout computedSizeForItemAtIndexPath:indexPath];
31
+ [self.cachedSizes addObject:[NSValue valueWithCGSize:size]];
32
+ return size;
33
+ }
34
+ }
35
+
36
+ @end
@@ -0,0 +1,5 @@
1
+ module NSCollectionView {
2
+ umbrella header "NSCollectionView.h"
3
+ export *
4
+ module * { export * }
5
+ }