@nstudio/ui-collectionview 5.1.9-alpha.4 → 5.1.9-alpha.5

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.
@@ -4,11 +4,11 @@ import { CollectionViewComponent, TemplateKeyDirective, TemplateHeaderDirective,
4
4
  import * as i0 from "@angular/core";
5
5
  export { CollectionViewComponent, TemplateKeyDirective, TemplateHeaderDirective, TemplateFooterDirective } from './collectionview.component';
6
6
  export class CollectionViewModule {
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CollectionViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.9", ngImport: i0, type: CollectionViewModule, declarations: [CollectionViewComponent, TemplateKeyDirective, TemplateHeaderDirective, TemplateFooterDirective], exports: [CollectionViewComponent, TemplateKeyDirective, TemplateHeaderDirective, TemplateFooterDirective] });
9
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CollectionViewModule });
7
10
  }
8
- CollectionViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CollectionViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- CollectionViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: CollectionViewModule, declarations: [CollectionViewComponent, TemplateKeyDirective, TemplateHeaderDirective, TemplateFooterDirective], exports: [CollectionViewComponent, TemplateKeyDirective, TemplateHeaderDirective, TemplateFooterDirective] });
10
- CollectionViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CollectionViewModule });
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CollectionViewModule, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CollectionViewModule, decorators: [{
12
12
  type: NgModule,
13
13
  args: [{
14
14
  declarations: [CollectionViewComponent, TemplateKeyDirective, TemplateHeaderDirective, TemplateFooterDirective],
@@ -16,4 +16,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
16
16
  schemas: [NO_ERRORS_SCHEMA],
17
17
  }]
18
18
  }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy91aS1jb2xsZWN0aW9udmlldy9hbmd1bGFyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFdBQVc7QUFDWCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUM3SSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsb0JBQW9CLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQU83SSxNQUFNLE9BQU8sb0JBQW9COztpSEFBcEIsb0JBQW9CO2tIQUFwQixvQkFBb0IsaUJBSmhCLHVCQUF1QixFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixhQUNwRyx1QkFBdUIsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUI7a0hBRzlGLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQUxoQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHVCQUF1QixFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixDQUFDO29CQUMvRyxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsQ0FBQztvQkFDMUcsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRXh0ZXJuYWxcbmltcG9ydCB7IE5PX0VSUk9SU19TQ0hFTUEsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbGxlY3Rpb25WaWV3Q29tcG9uZW50LCBUZW1wbGF0ZUtleURpcmVjdGl2ZSwgVGVtcGxhdGVIZWFkZXJEaXJlY3RpdmUsIFRlbXBsYXRlRm9vdGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9jb2xsZWN0aW9udmlldy5jb21wb25lbnQnO1xuZXhwb3J0IHsgQ29sbGVjdGlvblZpZXdDb21wb25lbnQsIFRlbXBsYXRlS2V5RGlyZWN0aXZlLCBUZW1wbGF0ZUhlYWRlckRpcmVjdGl2ZSwgVGVtcGxhdGVGb290ZXJEaXJlY3RpdmUgfSBmcm9tICcuL2NvbGxlY3Rpb252aWV3LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0NvbGxlY3Rpb25WaWV3Q29tcG9uZW50LCBUZW1wbGF0ZUtleURpcmVjdGl2ZSwgVGVtcGxhdGVIZWFkZXJEaXJlY3RpdmUsIFRlbXBsYXRlRm9vdGVyRGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW0NvbGxlY3Rpb25WaWV3Q29tcG9uZW50LCBUZW1wbGF0ZUtleURpcmVjdGl2ZSwgVGVtcGxhdGVIZWFkZXJEaXJlY3RpdmUsIFRlbXBsYXRlRm9vdGVyRGlyZWN0aXZlXSxcbiAgc2NoZW1hczogW05PX0VSUk9SU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBDb2xsZWN0aW9uVmlld01vZHVsZSB7fVxuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy91aS1jb2xsZWN0aW9udmlldy9hbmd1bGFyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFdBQVc7QUFDWCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUM3SSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsb0JBQW9CLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQU83SSxNQUFNLE9BQU8sb0JBQW9CO3VHQUFwQixvQkFBb0I7d0dBQXBCLG9CQUFvQixpQkFKaEIsdUJBQXVCLEVBQUUsb0JBQW9CLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCLGFBQ3BHLHVCQUF1QixFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLHVCQUF1Qjt3R0FHOUYsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQUxoQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHVCQUF1QixFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixDQUFDO29CQUMvRyxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsQ0FBQztvQkFDMUcsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRXh0ZXJuYWxcbmltcG9ydCB7IE5PX0VSUk9SU19TQ0hFTUEsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbGxlY3Rpb25WaWV3Q29tcG9uZW50LCBUZW1wbGF0ZUtleURpcmVjdGl2ZSwgVGVtcGxhdGVIZWFkZXJEaXJlY3RpdmUsIFRlbXBsYXRlRm9vdGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9jb2xsZWN0aW9udmlldy5jb21wb25lbnQnO1xuZXhwb3J0IHsgQ29sbGVjdGlvblZpZXdDb21wb25lbnQsIFRlbXBsYXRlS2V5RGlyZWN0aXZlLCBUZW1wbGF0ZUhlYWRlckRpcmVjdGl2ZSwgVGVtcGxhdGVGb290ZXJEaXJlY3RpdmUgfSBmcm9tICcuL2NvbGxlY3Rpb252aWV3LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0NvbGxlY3Rpb25WaWV3Q29tcG9uZW50LCBUZW1wbGF0ZUtleURpcmVjdGl2ZSwgVGVtcGxhdGVIZWFkZXJEaXJlY3RpdmUsIFRlbXBsYXRlRm9vdGVyRGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW0NvbGxlY3Rpb25WaWV3Q29tcG9uZW50LCBUZW1wbGF0ZUtleURpcmVjdGl2ZSwgVGVtcGxhdGVIZWFkZXJEaXJlY3RpdmUsIFRlbXBsYXRlRm9vdGVyRGlyZWN0aXZlXSxcbiAgc2NoZW1hczogW05PX0VSUk9SU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBDb2xsZWN0aW9uVmlld01vZHVsZSB7fVxuIl19
@@ -8,6 +8,11 @@ import { ObservableArray, Trace, LayoutBase } from '@nativescript/core';
8
8
  registerElement('CollectionView', () => CollectionView);
9
9
  const NG_VIEW = '_ngViewRef';
10
10
  class ItemContext {
11
+ $implicit;
12
+ item;
13
+ index;
14
+ even;
15
+ odd;
11
16
  constructor($implicit, item, index, even, odd) {
12
17
  this.$implicit = $implicit;
13
18
  this.item = item;
@@ -17,12 +22,20 @@ class ItemContext {
17
22
  }
18
23
  }
19
24
  class CollectionViewComponent {
25
+ _elementRef;
26
+ _iterableDiffers;
27
+ _renderer;
28
+ _ngZone;
20
29
  get nativeElement() {
21
30
  return this._collectionView;
22
31
  }
23
32
  get listView() {
24
33
  return this._collectionView;
25
34
  }
35
+ loader;
36
+ setupItemView = new EventEmitter();
37
+ itemTemplateQuery;
38
+ autoReuseViews = false;
26
39
  detachedLoaderFactory() {
27
40
  const ref = this.loader.createComponent(DetachedLoader, {
28
41
  index: 0,
@@ -64,43 +77,48 @@ class CollectionViewComponent {
64
77
  }
65
78
  this._collectionView.items = this._items;
66
79
  }
80
+ _collectionView;
81
+ _items;
82
+ _differ;
83
+ _itemTemplate;
84
+ _templateMap;
85
+ _headerTemplate;
86
+ _headerTemplateMap;
87
+ _footerTemplate;
88
+ _footerTemplateMap;
89
+ _loaders;
67
90
  constructor(_elementRef, _iterableDiffers, _renderer, _ngZone) {
68
91
  this._elementRef = _elementRef;
69
92
  this._iterableDiffers = _iterableDiffers;
70
93
  this._renderer = _renderer;
71
94
  this._ngZone = _ngZone;
72
- this.setupItemView = new EventEmitter();
73
- this.autoReuseViews = false;
74
- this.itemViewLoader = (viewType) => {
75
- this._ngZone.run(() => {
76
- switch (viewType) {
77
- case ViewTemplateType.Item:
78
- if (this._itemTemplate) {
79
- return this.getOrCreate(this._itemTemplate);
80
- }
81
- break;
82
- case ViewTemplateType.Header:
83
- if (this._headerTemplate) {
84
- return this.getOrCreate(this._headerTemplate);
85
- }
86
- break;
87
- case ViewTemplateType.Footer:
88
- if (this._footerTemplate) {
89
- return this.getOrCreate(this._footerTemplate);
90
- }
91
- break;
92
- }
93
- return null;
94
- });
95
- };
96
- this.viewPool = new Map();
97
- this.viewToTemplate = new WeakMap();
98
- this.viewToLoader = new WeakMap();
99
95
  this._collectionView = _elementRef.nativeElement;
100
96
  this._collectionView.on(CollectionView.itemLoadingEvent, this.onItemLoading, this);
101
97
  this._collectionView.itemViewLoader = this.itemViewLoader;
102
98
  this._loaders = [];
103
99
  }
100
+ itemViewLoader = (viewType) => {
101
+ this._ngZone.run(() => {
102
+ switch (viewType) {
103
+ case ViewTemplateType.Item:
104
+ if (this._itemTemplate) {
105
+ return this.getOrCreate(this._itemTemplate);
106
+ }
107
+ break;
108
+ case ViewTemplateType.Header:
109
+ if (this._headerTemplate) {
110
+ return this.getOrCreate(this._headerTemplate);
111
+ }
112
+ break;
113
+ case ViewTemplateType.Footer:
114
+ if (this._footerTemplate) {
115
+ return this.getOrCreate(this._footerTemplate);
116
+ }
117
+ break;
118
+ }
119
+ return null;
120
+ });
121
+ };
104
122
  ngAfterContentInit() {
105
123
  if (Trace.isEnabled()) {
106
124
  CLog(CLogTypes.info, 'CollectionView.ngAfterContentInit()');
@@ -199,12 +217,7 @@ class CollectionViewComponent {
199
217
  if (Trace.isEnabled()) {
200
218
  CLog(CLogTypes.info, `onItemLoading: ${index} - Reusing existing view`);
201
219
  }
202
- viewRef = args.view[NG_VIEW];
203
- // Getting angular view from original element (in cases when ProxyViewContainer
204
- // is used NativeScript internally wraps it in a StackLayout)
205
- if (!viewRef && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {
206
- viewRef = args.view.getChildAt(0)[NG_VIEW];
207
- }
220
+ viewRef = this.getNgView(args.view);
208
221
  if (!viewRef && Trace.isEnabled()) {
209
222
  if (Trace.isEnabled()) {
210
223
  CLog(CLogTypes.info, `ViewReference not found for item ${index}. View recycling is not working`);
@@ -214,9 +227,7 @@ class CollectionViewComponent {
214
227
  if (Trace.isEnabled()) {
215
228
  CLog(CLogTypes.info, `onItemLoading: ${index} - Creating view from template`);
216
229
  }
217
- viewRef = this.loader.createEmbeddedView(this.itemTemplate, new ItemContext(), 0);
218
- args.view = getItemViewRoot(viewRef);
219
- args.view[NG_VIEW] = viewRef;
230
+ viewRef = this.getOrCreate(this.itemTemplate);
220
231
  }
221
232
  this.setupViewRef(viewRef, currentItem, index);
222
233
  this.detectChangesOnChild(viewRef, index);
@@ -225,32 +236,40 @@ class CollectionViewComponent {
225
236
  if (!args.view) {
226
237
  return;
227
238
  }
228
- let ngView = args.view[NG_VIEW];
229
- // Getting angular view from original element (in cases when ProxyViewContainer
230
- // is used NativeScript internally wraps it in a StackLayout)
231
- if (!ngView && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {
232
- ngView = args.view.getChildAt(0)[NG_VIEW];
233
- }
239
+ const ngView = this.getNgView(args.view);
234
240
  // console.log('recycling', args.view);
235
241
  if (ngView) {
236
242
  ngView.detach();
237
243
  }
238
244
  }
239
- onItemDisposingInternal(args) {
245
+ onItemDisplayInternal(args) {
240
246
  if (!args.view) {
241
247
  return;
242
248
  }
243
- let ngView = args.view[NG_VIEW];
244
- // Getting angular view from original element (in cases when ProxyViewContainer
245
- // is used NativeScript internally wraps it in a StackLayout)
246
- if (!ngView && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {
247
- ngView = args.view.getChildAt(0)[NG_VIEW];
249
+ const ngView = this.getNgView(args.view);
250
+ if (ngView) {
251
+ ngView.reattach();
248
252
  }
253
+ }
254
+ onItemDisposingInternal(args) {
255
+ if (!args.view) {
256
+ return;
257
+ }
258
+ const ngView = this.getNgView(args.view);
249
259
  if (ngView) {
250
260
  ngView.detach();
251
261
  this.storeViewRef(ngView);
252
262
  }
253
263
  }
264
+ getNgView(view) {
265
+ const ngView = view[NG_VIEW];
266
+ // Getting angular view from original element (in cases when ProxyViewContainer
267
+ // is used NativeScript internally wraps it in a StackLayout)
268
+ if (!ngView && view instanceof LayoutBase && view.getChildrenCount() > 0) {
269
+ return view.getChildAt(0)[NG_VIEW];
270
+ }
271
+ return ngView;
272
+ }
254
273
  setupViewRef(view, data, index) {
255
274
  const context = view.context;
256
275
  context.$implicit = data;
@@ -267,12 +286,10 @@ class CollectionViewComponent {
267
286
  }
268
287
  getItemTemplateViewFactory(template) {
269
288
  return () => {
270
- const viewRef = this.loader.createEmbeddedView(template, new ItemContext(), 0);
271
- const resultView = getItemViewRoot(viewRef);
272
- resultView[NG_VIEW] = viewRef;
273
- return resultView;
289
+ return this.getOrCreate(template);
274
290
  };
275
291
  }
292
+ viewPool = new Map();
276
293
  storeViewRef(viewRef) {
277
294
  const templateRef = this.viewToTemplate.get(viewRef);
278
295
  if (templateRef) {
@@ -288,6 +305,8 @@ class CollectionViewComponent {
288
305
  }
289
306
  }
290
307
  }
308
+ viewToTemplate = new WeakMap();
309
+ viewToLoader = new WeakMap();
291
310
  getOrCreate(templateRef) {
292
311
  return this._ngZone.run(() => {
293
312
  let viewRef = this.getView(templateRef);
@@ -355,14 +374,14 @@ class CollectionViewComponent {
355
374
  this._collectionView.refresh();
356
375
  }
357
376
  }
358
- }
359
- CollectionViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CollectionViewComponent, deps: [{ token: ElementRef }, { token: IterableDiffers }, { token: NativeScriptRendererFactory }, { token: NgZone }], target: i0.ɵɵFactoryTarget.Component });
360
- CollectionViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CollectionViewComponent, selector: "CollectionView", inputs: { autoReuseViews: "autoReuseViews", itemTemplate: "itemTemplate", headerItemTemplate: "headerItemTemplate", footerItemTemplate: "footerItemTemplate", 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: `
377
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CollectionViewComponent, deps: [{ token: ElementRef }, { token: IterableDiffers }, { token: NativeScriptRendererFactory }, { token: NgZone }], target: i0.ɵɵFactoryTarget.Component });
378
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: CollectionViewComponent, selector: "CollectionView", inputs: { autoReuseViews: "autoReuseViews", itemTemplate: "itemTemplate", headerItemTemplate: "headerItemTemplate", footerItemTemplate: "footerItemTemplate", items: "items" }, outputs: { setupItemView: "setupItemView" }, host: { listeners: { "itemLoading": "onItemLoading($event)", "itemRecycling": "onItemRecyclingInternal($event)", "displayItem": "onItemDisplayInternal($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: `
361
379
  <DetachedContainer>
362
380
  <Placeholder #loader></Placeholder>
363
381
  </DetachedContainer>
364
382
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
365
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CollectionViewComponent, decorators: [{
383
+ }
384
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CollectionViewComponent, decorators: [{
366
385
  type: Component,
367
386
  args: [{
368
387
  selector: 'CollectionView',
@@ -373,7 +392,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
373
392
  `,
374
393
  changeDetection: ChangeDetectionStrategy.OnPush,
375
394
  }]
376
- }], ctorParameters: function () { return [{ type: i0.ElementRef, decorators: [{
395
+ }], ctorParameters: () => [{ type: i0.ElementRef, decorators: [{
377
396
  type: Inject,
378
397
  args: [ElementRef]
379
398
  }] }, { type: i0.IterableDiffers, decorators: [{
@@ -385,7 +404,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
385
404
  }] }, { type: i0.NgZone, decorators: [{
386
405
  type: Inject,
387
406
  args: [NgZone]
388
- }] }]; }, propDecorators: { loader: [{
407
+ }] }], propDecorators: { loader: [{
389
408
  type: ViewChild,
390
409
  args: ['loader', { read: ViewContainerRef, static: true }]
391
410
  }], setupItemView: [{
@@ -409,6 +428,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
409
428
  }], onItemRecyclingInternal: [{
410
429
  type: HostListener,
411
430
  args: ['itemRecycling', ['$event']]
431
+ }], onItemDisplayInternal: [{
432
+ type: HostListener,
433
+ args: ['displayItem', ['$event']]
412
434
  }], onItemDisposingInternal: [{
413
435
  type: HostListener,
414
436
  args: ['itemDisposing', ['$event']]
@@ -418,6 +440,8 @@ function getItemViewRoot(viewRef, rootLocator = extractSingleViewRecursive) {
418
440
  return rootView;
419
441
  }
420
442
  class TemplateKeyDirective {
443
+ templateRef;
444
+ collectionView;
421
445
  constructor(templateRef, collectionView) {
422
446
  this.templateRef = templateRef;
423
447
  this.collectionView = collectionView;
@@ -430,18 +454,20 @@ class TemplateKeyDirective {
430
454
  this.collectionView.registerTemplate(value.toLowerCase(), this.templateRef);
431
455
  }
432
456
  }
457
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: TemplateKeyDirective, deps: [{ token: i0.TemplateRef }, { token: CollectionViewComponent, host: true }], target: i0.ɵɵFactoryTarget.Directive });
458
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.9", type: TemplateKeyDirective, selector: "[cvTemplateKey]", inputs: { cvTemplateKey: "cvTemplateKey" }, ngImport: i0 });
433
459
  }
434
- TemplateKeyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TemplateKeyDirective, deps: [{ token: i0.TemplateRef }, { token: CollectionViewComponent, host: true }], target: i0.ɵɵFactoryTarget.Directive });
435
- TemplateKeyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: TemplateKeyDirective, selector: "[cvTemplateKey]", inputs: { cvTemplateKey: "cvTemplateKey" }, ngImport: i0 });
436
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TemplateKeyDirective, decorators: [{
460
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: TemplateKeyDirective, decorators: [{
437
461
  type: Directive,
438
462
  args: [{ selector: '[cvTemplateKey]' }]
439
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: CollectionViewComponent, decorators: [{
463
+ }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: CollectionViewComponent, decorators: [{
440
464
  type: Host
441
- }] }]; }, propDecorators: { cvTemplateKey: [{
465
+ }] }], propDecorators: { cvTemplateKey: [{
442
466
  type: Input
443
467
  }] } });
444
468
  class TemplateHeaderDirective {
469
+ templateRef;
470
+ collectionView;
445
471
  constructor(templateRef, collectionView) {
446
472
  this.templateRef = templateRef;
447
473
  this.collectionView = collectionView;
@@ -455,20 +481,22 @@ class TemplateHeaderDirective {
455
481
  this.collectionView.registerTemplateSupplemental(value || ViewTemplateType.Header, this.templateRef, 'header');
456
482
  }
457
483
  }
484
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: TemplateHeaderDirective, deps: [{ token: i0.TemplateRef }, { token: CollectionViewComponent, host: true }], target: i0.ɵɵFactoryTarget.Directive });
485
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.9", type: TemplateHeaderDirective, selector: "[cvTemplateHeader]", inputs: { cvTemplateHeader: "cvTemplateHeader" }, ngImport: i0 });
458
486
  }
459
- TemplateHeaderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TemplateHeaderDirective, deps: [{ token: i0.TemplateRef }, { token: CollectionViewComponent, host: true }], target: i0.ɵɵFactoryTarget.Directive });
460
- TemplateHeaderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: TemplateHeaderDirective, selector: "[cvTemplateHeader]", inputs: { cvTemplateHeader: "cvTemplateHeader" }, ngImport: i0 });
461
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TemplateHeaderDirective, decorators: [{
487
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: TemplateHeaderDirective, decorators: [{
462
488
  type: Directive,
463
489
  args: [{
464
490
  selector: '[cvTemplateHeader]',
465
491
  }]
466
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: CollectionViewComponent, decorators: [{
492
+ }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: CollectionViewComponent, decorators: [{
467
493
  type: Host
468
- }] }]; }, propDecorators: { cvTemplateHeader: [{
494
+ }] }], propDecorators: { cvTemplateHeader: [{
469
495
  type: Input
470
496
  }] } });
471
497
  class TemplateFooterDirective {
498
+ templateRef;
499
+ collectionView;
472
500
  constructor(templateRef, collectionView) {
473
501
  this.templateRef = templateRef;
474
502
  this.collectionView = collectionView;
@@ -482,27 +510,27 @@ class TemplateFooterDirective {
482
510
  this.collectionView.registerTemplateSupplemental(value || ViewTemplateType.Footer, this.templateRef, 'footer');
483
511
  }
484
512
  }
513
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: TemplateFooterDirective, deps: [{ token: i0.TemplateRef }, { token: CollectionViewComponent, host: true }], target: i0.ɵɵFactoryTarget.Directive });
514
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.9", type: TemplateFooterDirective, selector: "[cvTemplateFooter]", inputs: { cvTemplateFooter: "cvTemplateFooter" }, ngImport: i0 });
485
515
  }
486
- TemplateFooterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TemplateFooterDirective, deps: [{ token: i0.TemplateRef }, { token: CollectionViewComponent, host: true }], target: i0.ɵɵFactoryTarget.Directive });
487
- TemplateFooterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: TemplateFooterDirective, selector: "[cvTemplateFooter]", inputs: { cvTemplateFooter: "cvTemplateFooter" }, ngImport: i0 });
488
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TemplateFooterDirective, decorators: [{
516
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: TemplateFooterDirective, decorators: [{
489
517
  type: Directive,
490
518
  args: [{
491
519
  selector: '[cvTemplateFooter]',
492
520
  }]
493
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: CollectionViewComponent, decorators: [{
521
+ }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: CollectionViewComponent, decorators: [{
494
522
  type: Host
495
- }] }]; }, propDecorators: { cvTemplateFooter: [{
523
+ }] }], propDecorators: { cvTemplateFooter: [{
496
524
  type: Input
497
525
  }] } });
498
526
 
499
527
  // External
500
528
  class CollectionViewModule {
529
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CollectionViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
530
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.9", ngImport: i0, type: CollectionViewModule, declarations: [CollectionViewComponent, TemplateKeyDirective, TemplateHeaderDirective, TemplateFooterDirective], exports: [CollectionViewComponent, TemplateKeyDirective, TemplateHeaderDirective, TemplateFooterDirective] });
531
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CollectionViewModule });
501
532
  }
502
- CollectionViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CollectionViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
503
- CollectionViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: CollectionViewModule, declarations: [CollectionViewComponent, TemplateKeyDirective, TemplateHeaderDirective, TemplateFooterDirective], exports: [CollectionViewComponent, TemplateKeyDirective, TemplateHeaderDirective, TemplateFooterDirective] });
504
- CollectionViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CollectionViewModule });
505
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CollectionViewModule, decorators: [{
533
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CollectionViewModule, decorators: [{
506
534
  type: NgModule,
507
535
  args: [{
508
536
  declarations: [CollectionViewComponent, TemplateKeyDirective, TemplateHeaderDirective, TemplateFooterDirective],
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nstudio-ui-collectionview-angular.mjs","sources":["../../../../../packages/ui-collectionview/angular/collectionview.component.ts","../../../../../packages/ui-collectionview/angular/index.ts","../../../../../packages/ui-collectionview/angular/nstudio-ui-collectionview-angular.ts"],"sourcesContent":["import { AfterContentInit, ChangeDetectionStrategy, Component, ComponentRef, ContentChild, Directive, DoCheck, ElementRef, EmbeddedViewRef, EventEmitter, Host, HostListener, Inject, Input, IterableDiffer, IterableDiffers, NgZone, OnDestroy, Output, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { CLog, CLogTypes, CollectionView, CollectionViewItemEventData, ViewTemplateType } from '@nstudio/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(public $implicit?: any, public item?: any, public index?: number, public even?: boolean, public odd?: boolean) {}\n}\n\nexport interface SetupItemViewArgs {\n view: EmbeddedViewRef<any>;\n data: any;\n index: number;\n context: ItemContext;\n}\n\n@Component({\n selector: 'CollectionView',\n template: `\n <DetachedContainer>\n <Placeholder #loader></Placeholder>\n </DetachedContainer>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CollectionViewComponent implements DoCheck, OnDestroy, AfterContentInit {\n public get nativeElement() {\n return this._collectionView;\n }\n public get listView() {\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: TemplateRef<ItemContext>) {\n this._itemTemplate = value;\n // this._collectionView.refresh();\n }\n @Input()\n public get headerItemTemplate() {\n return this._headerTemplate;\n }\n public set headerItemTemplate(value: TemplateRef<ItemContext>) {\n this._headerTemplate = value;\n }\n @Input()\n public get footerItemTemplate() {\n return this._footerTemplate;\n }\n public set footerItemTemplate(value: TemplateRef<ItemContext>) {\n this._footerTemplate = value;\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 _headerTemplate: TemplateRef<ItemContext>;\n private _headerTemplateMap: Map<string, KeyedTemplate>;\n private _footerTemplate: TemplateRef<ItemContext>;\n private _footerTemplateMap: Map<string, KeyedTemplate>;\n private _loaders: ComponentRef<DetachedLoader>[];\n\n constructor(@Inject(ElementRef) private _elementRef: ElementRef, @Inject(IterableDiffers) private _iterableDiffers: IterableDiffers, @Inject(NativeScriptRendererFactory) private _renderer: NativeScriptRendererFactory, @Inject(NgZone) private _ngZone: NgZone) {\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 ViewTemplateType.Item:\n if (this._itemTemplate) {\n return this.getOrCreate(this._itemTemplate);\n }\n break;\n case ViewTemplateType.Header:\n if (this._headerTemplate) {\n return this.getOrCreate(this._headerTemplate);\n }\n break;\n case ViewTemplateType.Footer:\n if (this._footerTemplate) {\n return this.getOrCreate(this._footerTemplate);\n }\n break;\n }\n return null;\n });\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 if (this._headerTemplateMap) {\n this._headerTemplateMap.clear();\n }\n if (this._footerTemplateMap) {\n this._footerTemplateMap.clear();\n }\n this._templateMap = null;\n this._headerTemplateMap = null;\n this._footerTemplateMap = 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 public registerTemplateSupplemental(key: string, template: TemplateRef<ItemContext>, type: 'header' | 'footer') {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'registerTemplate for key: ' + key);\n }\n\n switch (type) {\n case 'header':\n // if (!this._headerTemplateMap) {\n // this._headerTemplateMap = new Map<string, KeyedTemplate>();\n // }\n // this._headerTemplateMap.set(key, keyedTemplate);\n this._collectionView.headerKey = key;\n this.headerItemTemplate = template;\n this._collectionView.headerItemTemplate = this.getItemTemplateViewFactory(template);\n break;\n case 'footer':\n // if (!this._footerTemplateMap) {\n // this._footerTemplateMap = new Map<string, KeyedTemplate>();\n // }\n\n // this._footerTemplateMap.set(key, keyedTemplate);\n\n this._collectionView.footerKey = key;\n this.footerItemTemplate = template;\n this._collectionView.footerItemTemplate = this.getItemTemplateViewFactory(template);\n break;\n }\n }\n\n @HostListener('itemLoading', ['$event'])\n public onItemLoading(args: CollectionViewItemEventData) {\n if (!args.view && !this.itemTemplate) {\n return;\n }\n if (!this.items) return;\n const index = args.index;\n const items = (args.object as any).items;\n const currentItem = typeof items.getItem === 'function' ? items.getItem(index) : items[index];\n let viewRef: EmbeddedViewRef<ItemContext>;\n\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, `onItemLoading: ${index} - Reusing existing view`);\n }\n\n viewRef = this.getNgView(args.view);\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 viewRef = this.getOrCreate(this.itemTemplate) as any;\n }\n this.setupViewRef(viewRef, currentItem, index);\n this.detectChangesOnChild(viewRef, index);\n }\n @HostListener('itemRecycling', ['$event'])\n public onItemRecyclingInternal(args: any) {\n if (!args.view) {\n return;\n }\n const ngView = this.getNgView(args.view);\n // console.log('recycling', args.view);\n\n if (ngView) {\n ngView.detach();\n }\n }\n\n @HostListener('displayItem', ['$event'])\n public onItemDisplayInternal(args: CollectionViewItemEventData) {\n if (!args.view) {\n return;\n }\n const ngView = this.getNgView(args.view);\n\n if (ngView) {\n ngView.reattach();\n }\n }\n\n @HostListener('itemDisposing', ['$event'])\n public onItemDisposingInternal(args: any) {\n if (!args.view) {\n return;\n }\n const ngView = this.getNgView(args.view);\n\n if (ngView) {\n ngView.detach();\n this.storeViewRef(ngView);\n }\n }\n\n private getNgView(view: View): EmbeddedViewRef<unknown> {\n const ngView = 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 (!ngView && view instanceof LayoutBase && view.getChildrenCount() > 0) {\n return view.getChildAt(0)[NG_VIEW];\n }\n return ngView;\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 getItemTemplateViewFactory(template: TemplateRef<ItemContext>): () => View {\n return () => {\n return this.getOrCreate(template);\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 = loader.instance.vc.createEmbeddedView(templateRef, new ItemContext(), 0);\n this.viewToLoader.set(viewRef, loader);\n this.viewToTemplate.set(viewRef, templateRef);\n }\n viewRef.detach();\n const resultView = getItemViewRoot(viewRef);\n resultView[NG_VIEW] = viewRef;\n resultView.reusable = this.autoReuseViews;\n return resultView;\n });\n }\n private getView(templateRef: TemplateRef<ItemContext>) {\n const pool = this.getViewPool(templateRef);\n while (pool.scrapHead.size > 0) {\n const viewRef: EmbeddedViewRef<ItemContext> = pool.scrapHead.values().next().value;\n pool.scrapHead.delete(viewRef);\n if (!viewRef.destroyed) {\n return viewRef;\n }\n }\n return null;\n }\n\n private getViewPool(templateRef: TemplateRef<ItemContext>) {\n if (!this.viewPool.has(templateRef)) {\n this.viewPool.set(templateRef, {\n scrapSize: this.autoReuseViews ? Infinity : 0,\n scrapHead: new Set<EmbeddedViewRef<ItemContext>>(),\n });\n }\n return this.viewPool.get(templateRef);\n }\n\n private setItemTemplates() {\n // The itemTemplateQuery may be changed after list items are added that contain <template> inside,\n // so cache and use only the original template to avoid errors.\n this.itemTemplate = this.itemTemplateQuery;\n\n if (this._templateMap) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'Setting templates');\n }\n\n const templates: KeyedTemplate[] = [];\n this._templateMap.forEach((value) => {\n templates.push(value);\n });\n this._collectionView.itemTemplates = templates;\n } else {\n // If the map was not initialized this means that there are no named templates, so we register the default one.\n this._collectionView.itemTemplate = this.getItemTemplateViewFactory(this.itemTemplate);\n }\n }\n\n private detectChangesOnChild(viewRef: EmbeddedViewRef<ItemContext>, index: number) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'Manually detect changes in child: ' + index);\n }\n viewRef.markForCheck();\n viewRef.detectChanges();\n }\n\n private refresh() {\n if (this._collectionView) {\n this._collectionView.refresh();\n }\n }\n}\n\nexport interface ComponentView {\n rootNodes: any[];\n destroy(): void;\n}\n\nexport type RootLocator = (nodes: any[], nestLevel: number) => View;\n\nexport function getItemViewRoot(viewRef: ComponentView, rootLocator: RootLocator = extractSingleViewRecursive): View {\n const rootView = rootLocator(viewRef.rootNodes, 0);\n return rootView;\n}\n\n@Directive({ selector: '[cvTemplateKey]' })\nexport class TemplateKeyDirective {\n constructor(private templateRef: TemplateRef<any>, @Host() private collectionView: CollectionViewComponent) {}\n\n @Input()\n set cvTemplateKey(value: any) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'cvTemplateKey: ' + value);\n }\n if (this.collectionView && this.templateRef) {\n this.collectionView.registerTemplate(value.toLowerCase(), this.templateRef);\n }\n }\n}\n\n@Directive({\n selector: '[cvTemplateHeader]',\n})\nexport class TemplateHeaderDirective {\n constructor(private templateRef: TemplateRef<any>, @Host() private collectionView: CollectionViewComponent) {}\n\n @Input()\n set cvTemplateHeader(value: any) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'cvTemplateHeader: ' + value);\n }\n if (this.collectionView && this.templateRef) {\n // TODO: allow keying of multiple headers per section\n this.collectionView.registerTemplateSupplemental(value || ViewTemplateType.Header, this.templateRef, 'header');\n }\n }\n}\n\n@Directive({\n selector: '[cvTemplateFooter]',\n})\nexport class TemplateFooterDirective {\n constructor(private templateRef: TemplateRef<any>, @Host() private collectionView: CollectionViewComponent) {}\n\n @Input()\n set cvTemplateFooter(value: any) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'cvTemplateFooter: ' + value);\n }\n if (this.collectionView && this.templateRef) {\n // TODO: allow keying of multiple footers per section\n this.collectionView.registerTemplateSupplemental(value || ViewTemplateType.Footer, this.templateRef, 'footer');\n }\n }\n}\n","// External\nimport { NO_ERRORS_SCHEMA, NgModule } from '@angular/core';\n\nimport { CollectionViewComponent, TemplateKeyDirective, TemplateHeaderDirective, TemplateFooterDirective } from './collectionview.component';\nexport { CollectionViewComponent, TemplateKeyDirective, TemplateHeaderDirective, TemplateFooterDirective } from './collectionview.component';\n\n@NgModule({\n declarations: [CollectionViewComponent, TemplateKeyDirective, TemplateHeaderDirective, TemplateFooterDirective],\n exports: [CollectionViewComponent, TemplateKeyDirective, TemplateHeaderDirective, TemplateFooterDirective],\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,10 +1,6 @@
1
1
  {
2
2
  "name": "@nstudio/ui-collectionview-angular",
3
- "module": "fesm2015/nstudio-ui-collectionview-angular.mjs",
4
- "es2020": "fesm2020/nstudio-ui-collectionview-angular.mjs",
5
- "esm2020": "esm2020/nstudio-ui-collectionview-angular.mjs",
6
- "fesm2020": "fesm2020/nstudio-ui-collectionview-angular.mjs",
7
- "fesm2015": "fesm2015/nstudio-ui-collectionview-angular.mjs",
3
+ "module": "fesm2022/nstudio-ui-collectionview-angular.mjs",
8
4
  "typings": "index.d.ts",
9
5
  "exports": {
10
6
  "./package.json": {
@@ -12,11 +8,9 @@
12
8
  },
13
9
  ".": {
14
10
  "types": "./index.d.ts",
15
- "esm2020": "./esm2020/nstudio-ui-collectionview-angular.mjs",
16
- "es2020": "./fesm2020/nstudio-ui-collectionview-angular.mjs",
17
- "es2015": "./fesm2015/nstudio-ui-collectionview-angular.mjs",
18
- "node": "./fesm2015/nstudio-ui-collectionview-angular.mjs",
19
- "default": "./fesm2020/nstudio-ui-collectionview-angular.mjs"
11
+ "esm2022": "./esm2022/nstudio-ui-collectionview-angular.mjs",
12
+ "esm": "./esm2022/nstudio-ui-collectionview-angular.mjs",
13
+ "default": "./fesm2022/nstudio-ui-collectionview-angular.mjs"
20
14
  }
21
15
  },
22
16
  "sideEffects": false,
package/common.d.ts CHANGED
@@ -21,10 +21,10 @@ export declare enum ContentInsetAdjustmentBehavior {
21
21
  ScrollableAxes = 3
22
22
  }
23
23
  export declare enum CLogTypes {
24
- log,
25
- info,
26
- warning,
27
- error
24
+ log = 0,
25
+ info = 1,
26
+ warning = 2,
27
+ error = 3
28
28
  }
29
29
  export declare const CLog: (type: CLogTypes, ...args: any[]) => void;
30
30
  /**
package/common.js CHANGED
@@ -11,10 +11,10 @@ export var ContentInsetAdjustmentBehavior;
11
11
  })(ContentInsetAdjustmentBehavior || (ContentInsetAdjustmentBehavior = {}));
12
12
  export var CLogTypes;
13
13
  (function (CLogTypes) {
14
- CLogTypes[CLogTypes["log"] = Trace.messageType.log] = "log";
15
- CLogTypes[CLogTypes["info"] = Trace.messageType.info] = "info";
16
- CLogTypes[CLogTypes["warning"] = Trace.messageType.warn] = "warning";
17
- CLogTypes[CLogTypes["error"] = Trace.messageType.error] = "error";
14
+ CLogTypes[CLogTypes["log"] = 0] = "log";
15
+ CLogTypes[CLogTypes["info"] = 1] = "info";
16
+ CLogTypes[CLogTypes["warning"] = 2] = "warning";
17
+ CLogTypes[CLogTypes["error"] = 3] = "error";
18
18
  })(CLogTypes || (CLogTypes = {}));
19
19
  export const CLog = (type, ...args) => {
20
20
  Trace.write(args.map((a) => (a && typeof a === 'object' ? a.toString() : a)).join(' '), CollectionViewTraceCategory, type);