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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import { AfterContentInit, ComponentRef, DoCheck, ElementRef, EmbeddedViewRef, EventEmitter, IterableDiffers, NgZone, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';
2
- import { CollectionView, CollectionViewItemEventData } from '@nstudio/ui-collectionview';
2
+ import { CollectionViewItemEventData } from '@nstudio/ui-collectionview';
3
3
  import { DetachedLoader, NativeScriptRendererFactory } from '@nativescript/angular';
4
4
  import { View } from '@nativescript/core';
5
5
  import * as i0 from "@angular/core";
@@ -22,19 +22,15 @@ export declare class CollectionViewComponent implements DoCheck, OnDestroy, Afte
22
22
  private _iterableDiffers;
23
23
  private _renderer;
24
24
  private _ngZone;
25
- get nativeElement(): CollectionView;
26
- get listView(): CollectionView;
25
+ get nativeElement(): any;
26
+ get listView(): any;
27
27
  loader: ViewContainerRef;
28
28
  setupItemView: EventEmitter<SetupItemViewArgs>;
29
29
  itemTemplateQuery: TemplateRef<ItemContext>;
30
30
  autoReuseViews: boolean;
31
31
  detachedLoaderFactory(): ComponentRef<DetachedLoader>;
32
- get itemTemplate(): TemplateRef<ItemContext>;
33
- set itemTemplate(value: TemplateRef<ItemContext>);
34
- get headerItemTemplate(): TemplateRef<ItemContext>;
35
- set headerItemTemplate(value: TemplateRef<ItemContext>);
36
- get footerItemTemplate(): TemplateRef<ItemContext>;
37
- set footerItemTemplate(value: TemplateRef<ItemContext>);
32
+ get itemTemplate(): any;
33
+ set itemTemplate(value: any);
38
34
  get items(): any;
39
35
  set items(value: any);
40
36
  private _collectionView;
@@ -42,10 +38,6 @@ export declare class CollectionViewComponent implements DoCheck, OnDestroy, Afte
42
38
  private _differ;
43
39
  private _itemTemplate;
44
40
  private _templateMap;
45
- private _headerTemplate;
46
- private _headerTemplateMap;
47
- private _footerTemplate;
48
- private _footerTemplateMap;
49
41
  private _loaders;
50
42
  constructor(_elementRef: ElementRef, _iterableDiffers: IterableDiffers, _renderer: NativeScriptRendererFactory, _ngZone: NgZone);
51
43
  private itemViewLoader;
@@ -53,14 +45,11 @@ export declare class CollectionViewComponent implements DoCheck, OnDestroy, Afte
53
45
  ngOnDestroy(): void;
54
46
  ngDoCheck(): void;
55
47
  registerTemplate(key: string, template: TemplateRef<ItemContext>): void;
56
- registerTemplateSupplemental(key: string, template: TemplateRef<ItemContext>, type: 'header' | 'footer'): void;
57
48
  onItemLoading(args: CollectionViewItemEventData): void;
58
49
  onItemRecyclingInternal(args: any): void;
59
- onItemDisplayInternal(args: CollectionViewItemEventData): void;
60
50
  onItemDisposingInternal(args: any): void;
61
- private getNgView;
62
51
  setupViewRef(view: EmbeddedViewRef<ItemContext>, data: any, index: number): void;
63
- getItemTemplateViewFactory(template: TemplateRef<ItemContext>): () => View;
52
+ protected getItemTemplateViewFactory(template: TemplateRef<ItemContext>): () => View;
64
53
  viewPool: Map<TemplateRef<ItemContext>, {
65
54
  scrapSize: number;
66
55
  scrapHead: Set<EmbeddedViewRef<ItemContext>>;
@@ -75,7 +64,7 @@ export declare class CollectionViewComponent implements DoCheck, OnDestroy, Afte
75
64
  private detectChangesOnChild;
76
65
  private refresh;
77
66
  static ɵfac: i0.ɵɵFactoryDeclaration<CollectionViewComponent, never>;
78
- static ɵcmp: i0.ɵɵComponentDeclaration<CollectionViewComponent, "CollectionView", never, { "autoReuseViews": { "alias": "autoReuseViews"; "required": false; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; }; "headerItemTemplate": { "alias": "headerItemTemplate"; "required": false; }; "footerItemTemplate": { "alias": "footerItemTemplate"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, { "setupItemView": "setupItemView"; }, ["itemTemplateQuery"], never, false, never>;
67
+ static ɵcmp: i0.ɵɵComponentDeclaration<CollectionViewComponent, "CollectionView", never, { "autoReuseViews": { "alias": "autoReuseViews"; "required": false; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, { "setupItemView": "setupItemView"; }, ["itemTemplateQuery"], never, false, never>;
79
68
  }
80
69
  export interface ComponentView {
81
70
  rootNodes: any[];
@@ -91,19 +80,3 @@ export declare class TemplateKeyDirective {
91
80
  static ɵfac: i0.ɵɵFactoryDeclaration<TemplateKeyDirective, [null, { host: true; }]>;
92
81
  static ɵdir: i0.ɵɵDirectiveDeclaration<TemplateKeyDirective, "[cvTemplateKey]", never, { "cvTemplateKey": { "alias": "cvTemplateKey"; "required": false; }; }, {}, never, never, false, never>;
93
82
  }
94
- export declare class TemplateHeaderDirective {
95
- private templateRef;
96
- private collectionView;
97
- constructor(templateRef: TemplateRef<any>, collectionView: CollectionViewComponent);
98
- set cvTemplateHeader(value: any);
99
- static ɵfac: i0.ɵɵFactoryDeclaration<TemplateHeaderDirective, [null, { host: true; }]>;
100
- static ɵdir: i0.ɵɵDirectiveDeclaration<TemplateHeaderDirective, "[cvTemplateHeader]", never, { "cvTemplateHeader": { "alias": "cvTemplateHeader"; "required": false; }; }, {}, never, never, false, never>;
101
- }
102
- export declare class TemplateFooterDirective {
103
- private templateRef;
104
- private collectionView;
105
- constructor(templateRef: TemplateRef<any>, collectionView: CollectionViewComponent);
106
- set cvTemplateFooter(value: any);
107
- static ɵfac: i0.ɵɵFactoryDeclaration<TemplateFooterDirective, [null, { host: true; }]>;
108
- static ɵdir: i0.ɵɵDirectiveDeclaration<TemplateFooterDirective, "[cvTemplateFooter]", never, { "cvTemplateFooter": { "alias": "cvTemplateFooter"; "required": false; }; }, {}, never, never, false, never>;
109
- }
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, ElementRef, IterableDiffers, NgZone, TemplateRef, ViewContainerRef, Component, ChangeDetectionStrategy, Inject, ViewChild, Output, ContentChild, Input, HostListener, Directive, Host, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
3
- import { CollectionView, ViewTemplateType, CLog, CLogTypes } from '@nstudio/ui-collectionview';
3
+ import { CollectionView, ListViewViewTypes, CLog, CLogTypes } from '@nstudio/ui-collectionview';
4
4
  import * as i1 from '@nativescript/angular';
5
5
  import { registerElement, DetachedLoader, isListLikeIterable, NativeScriptRendererFactory, extractSingleViewRecursive } from '@nativescript/angular';
6
6
  import { ObservableArray, Trace, LayoutBase } from '@nativescript/core';
@@ -49,19 +49,7 @@ class CollectionViewComponent {
49
49
  }
50
50
  set itemTemplate(value) {
51
51
  this._itemTemplate = value;
52
- // this._collectionView.refresh();
53
- }
54
- get headerItemTemplate() {
55
- return this._headerTemplate;
56
- }
57
- set headerItemTemplate(value) {
58
- this._headerTemplate = value;
59
- }
60
- get footerItemTemplate() {
61
- return this._footerTemplate;
62
- }
63
- set footerItemTemplate(value) {
64
- this._footerTemplate = value;
52
+ this._collectionView.refresh();
65
53
  }
66
54
  get items() {
67
55
  return this._items;
@@ -82,10 +70,6 @@ class CollectionViewComponent {
82
70
  _differ;
83
71
  _itemTemplate;
84
72
  _templateMap;
85
- _headerTemplate;
86
- _headerTemplateMap;
87
- _footerTemplate;
88
- _footerTemplateMap;
89
73
  _loaders;
90
74
  constructor(_elementRef, _iterableDiffers, _renderer, _ngZone) {
91
75
  this._elementRef = _elementRef;
@@ -97,28 +81,17 @@ class CollectionViewComponent {
97
81
  this._collectionView.itemViewLoader = this.itemViewLoader;
98
82
  this._loaders = [];
99
83
  }
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
- };
84
+ itemViewLoader = (viewType) => this._ngZone.run(() => {
85
+ switch (viewType) {
86
+ case ListViewViewTypes.ItemView:
87
+ if (this._itemTemplate && this.loader) {
88
+ const typedView = this.getOrCreate(this._itemTemplate);
89
+ return typedView;
90
+ }
91
+ break;
92
+ }
93
+ return null;
94
+ });
122
95
  ngAfterContentInit() {
123
96
  if (Trace.isEnabled()) {
124
97
  CLog(CLogTypes.info, 'CollectionView.ngAfterContentInit()');
@@ -139,15 +112,7 @@ class CollectionViewComponent {
139
112
  if (this._templateMap) {
140
113
  this._templateMap.clear();
141
114
  }
142
- if (this._headerTemplateMap) {
143
- this._headerTemplateMap.clear();
144
- }
145
- if (this._footerTemplateMap) {
146
- this._footerTemplateMap.clear();
147
- }
148
115
  this._templateMap = null;
149
- this._headerTemplateMap = null;
150
- this._footerTemplateMap = null;
151
116
  }
152
117
  ngDoCheck() {
153
118
  if (Trace.isEnabled()) {
@@ -179,31 +144,6 @@ class CollectionViewComponent {
179
144
  };
180
145
  this._templateMap.set(key, keyedTemplate);
181
146
  }
182
- registerTemplateSupplemental(key, template, type) {
183
- if (Trace.isEnabled()) {
184
- CLog(CLogTypes.info, 'registerTemplate for key: ' + key);
185
- }
186
- switch (type) {
187
- case 'header':
188
- // if (!this._headerTemplateMap) {
189
- // this._headerTemplateMap = new Map<string, KeyedTemplate>();
190
- // }
191
- // this._headerTemplateMap.set(key, keyedTemplate);
192
- this._collectionView.headerKey = key;
193
- this.headerItemTemplate = template;
194
- this._collectionView.headerItemTemplate = this.getItemTemplateViewFactory(template);
195
- break;
196
- case 'footer':
197
- // if (!this._footerTemplateMap) {
198
- // this._footerTemplateMap = new Map<string, KeyedTemplate>();
199
- // }
200
- // this._footerTemplateMap.set(key, keyedTemplate);
201
- this._collectionView.footerKey = key;
202
- this.footerItemTemplate = template;
203
- this._collectionView.footerItemTemplate = this.getItemTemplateViewFactory(template);
204
- break;
205
- }
206
- }
207
147
  onItemLoading(args) {
208
148
  if (!args.view && !this.itemTemplate) {
209
149
  return;
@@ -217,7 +157,12 @@ class CollectionViewComponent {
217
157
  if (Trace.isEnabled()) {
218
158
  CLog(CLogTypes.info, `onItemLoading: ${index} - Reusing existing view`);
219
159
  }
220
- viewRef = this.getNgView(args.view);
160
+ viewRef = args.view[NG_VIEW];
161
+ // Getting angular view from original element (in cases when ProxyViewContainer
162
+ // is used NativeScript internally wraps it in a StackLayout)
163
+ if (!viewRef && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {
164
+ viewRef = args.view.getChildAt(0)[NG_VIEW];
165
+ }
221
166
  if (!viewRef && Trace.isEnabled()) {
222
167
  if (Trace.isEnabled()) {
223
168
  CLog(CLogTypes.info, `ViewReference not found for item ${index}. View recycling is not working`);
@@ -227,7 +172,9 @@ class CollectionViewComponent {
227
172
  if (Trace.isEnabled()) {
228
173
  CLog(CLogTypes.info, `onItemLoading: ${index} - Creating view from template`);
229
174
  }
230
- viewRef = this.getOrCreate(this.itemTemplate);
175
+ viewRef = this.loader.createEmbeddedView(this.itemTemplate, new ItemContext(), 0);
176
+ args.view = getItemViewRoot(viewRef);
177
+ args.view[NG_VIEW] = viewRef;
231
178
  }
232
179
  this.setupViewRef(viewRef, currentItem, index);
233
180
  this.detectChangesOnChild(viewRef, index);
@@ -236,40 +183,32 @@ class CollectionViewComponent {
236
183
  if (!args.view) {
237
184
  return;
238
185
  }
239
- const ngView = this.getNgView(args.view);
186
+ let ngView = args.view[NG_VIEW];
187
+ // Getting angular view from original element (in cases when ProxyViewContainer
188
+ // is used NativeScript internally wraps it in a StackLayout)
189
+ if (!ngView && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {
190
+ ngView = args.view.getChildAt(0)[NG_VIEW];
191
+ }
240
192
  // console.log('recycling', args.view);
241
193
  if (ngView) {
242
194
  ngView.detach();
243
195
  }
244
196
  }
245
- onItemDisplayInternal(args) {
246
- if (!args.view) {
247
- return;
248
- }
249
- const ngView = this.getNgView(args.view);
250
- if (ngView) {
251
- ngView.reattach();
252
- }
253
- }
254
197
  onItemDisposingInternal(args) {
255
198
  if (!args.view) {
256
199
  return;
257
200
  }
258
- const ngView = this.getNgView(args.view);
201
+ let ngView = args.view[NG_VIEW];
202
+ // Getting angular view from original element (in cases when ProxyViewContainer
203
+ // is used NativeScript internally wraps it in a StackLayout)
204
+ if (!ngView && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {
205
+ ngView = args.view.getChildAt(0)[NG_VIEW];
206
+ }
259
207
  if (ngView) {
260
208
  ngView.detach();
261
209
  this.storeViewRef(ngView);
262
210
  }
263
211
  }
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
- }
273
212
  setupViewRef(view, data, index) {
274
213
  const context = view.context;
275
214
  context.$implicit = data;
@@ -286,7 +225,10 @@ class CollectionViewComponent {
286
225
  }
287
226
  getItemTemplateViewFactory(template) {
288
227
  return () => {
289
- return this.getOrCreate(template);
228
+ const viewRef = this.loader.createEmbeddedView(template, new ItemContext(), 0);
229
+ const resultView = getItemViewRoot(viewRef);
230
+ resultView[NG_VIEW] = viewRef;
231
+ return resultView;
290
232
  };
291
233
  }
292
234
  viewPool = new Map();
@@ -312,6 +254,7 @@ class CollectionViewComponent {
312
254
  let viewRef = this.getView(templateRef);
313
255
  if (!viewRef) {
314
256
  const loader = this.detachedLoaderFactory();
257
+ // viewRef = this.loader.createEmbeddedView(templateRef, new ItemContext(), 0);
315
258
  viewRef = loader.instance.vc.createEmbeddedView(templateRef, new ItemContext(), 0);
316
259
  this.viewToLoader.set(viewRef, loader);
317
260
  this.viewToTemplate.set(viewRef, templateRef);
@@ -374,14 +317,14 @@ class CollectionViewComponent {
374
317
  this._collectionView.refresh();
375
318
  }
376
319
  }
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: `
320
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CollectionViewComponent, deps: [{ token: ElementRef }, { token: IterableDiffers }, { token: NativeScriptRendererFactory }, { token: NgZone }], target: i0.ɵɵFactoryTarget.Component });
321
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: CollectionViewComponent, isStandalone: false, 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: `
379
322
  <DetachedContainer>
380
323
  <Placeholder #loader></Placeholder>
381
324
  </DetachedContainer>
382
325
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
383
326
  }
384
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CollectionViewComponent, decorators: [{
327
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CollectionViewComponent, decorators: [{
385
328
  type: Component,
386
329
  args: [{
387
330
  selector: 'CollectionView',
@@ -391,6 +334,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImpor
391
334
  </DetachedContainer>
392
335
  `,
393
336
  changeDetection: ChangeDetectionStrategy.OnPush,
337
+ standalone: false,
394
338
  }]
395
339
  }], ctorParameters: () => [{ type: i0.ElementRef, decorators: [{
396
340
  type: Inject,
@@ -416,10 +360,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImpor
416
360
  type: Input
417
361
  }], itemTemplate: [{
418
362
  type: Input
419
- }], headerItemTemplate: [{
420
- type: Input
421
- }], footerItemTemplate: [{
422
- type: Input
423
363
  }], items: [{
424
364
  type: Input
425
365
  }], onItemLoading: [{
@@ -428,9 +368,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImpor
428
368
  }], onItemRecyclingInternal: [{
429
369
  type: HostListener,
430
370
  args: ['itemRecycling', ['$event']]
431
- }], onItemDisplayInternal: [{
432
- type: HostListener,
433
- args: ['displayItem', ['$event']]
434
371
  }], onItemDisposingInternal: [{
435
372
  type: HostListener,
436
373
  args: ['itemDisposing', ['$event']]
@@ -454,87 +391,29 @@ class TemplateKeyDirective {
454
391
  this.collectionView.registerTemplate(value.toLowerCase(), this.templateRef);
455
392
  }
456
393
  }
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 });
394
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: TemplateKeyDirective, deps: [{ token: i0.TemplateRef }, { token: CollectionViewComponent, host: true }], target: i0.ɵɵFactoryTarget.Directive });
395
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.4", type: TemplateKeyDirective, isStandalone: false, selector: "[cvTemplateKey]", inputs: { cvTemplateKey: "cvTemplateKey" }, ngImport: i0 });
459
396
  }
460
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: TemplateKeyDirective, decorators: [{
397
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: TemplateKeyDirective, decorators: [{
461
398
  type: Directive,
462
- args: [{ selector: '[cvTemplateKey]' }]
399
+ args: [{ selector: '[cvTemplateKey]', standalone: false }]
463
400
  }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: CollectionViewComponent, decorators: [{
464
401
  type: Host
465
402
  }] }], propDecorators: { cvTemplateKey: [{
466
403
  type: Input
467
404
  }] } });
468
- class TemplateHeaderDirective {
469
- templateRef;
470
- collectionView;
471
- constructor(templateRef, collectionView) {
472
- this.templateRef = templateRef;
473
- this.collectionView = collectionView;
474
- }
475
- set cvTemplateHeader(value) {
476
- if (Trace.isEnabled()) {
477
- CLog(CLogTypes.info, 'cvTemplateHeader: ' + value);
478
- }
479
- if (this.collectionView && this.templateRef) {
480
- // TODO: allow keying of multiple headers per section
481
- this.collectionView.registerTemplateSupplemental(value || ViewTemplateType.Header, this.templateRef, 'header');
482
- }
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 });
486
- }
487
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: TemplateHeaderDirective, decorators: [{
488
- type: Directive,
489
- args: [{
490
- selector: '[cvTemplateHeader]',
491
- }]
492
- }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: CollectionViewComponent, decorators: [{
493
- type: Host
494
- }] }], propDecorators: { cvTemplateHeader: [{
495
- type: Input
496
- }] } });
497
- class TemplateFooterDirective {
498
- templateRef;
499
- collectionView;
500
- constructor(templateRef, collectionView) {
501
- this.templateRef = templateRef;
502
- this.collectionView = collectionView;
503
- }
504
- set cvTemplateFooter(value) {
505
- if (Trace.isEnabled()) {
506
- CLog(CLogTypes.info, 'cvTemplateFooter: ' + value);
507
- }
508
- if (this.collectionView && this.templateRef) {
509
- // TODO: allow keying of multiple footers per section
510
- this.collectionView.registerTemplateSupplemental(value || ViewTemplateType.Footer, this.templateRef, 'footer');
511
- }
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 });
515
- }
516
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: TemplateFooterDirective, decorators: [{
517
- type: Directive,
518
- args: [{
519
- selector: '[cvTemplateFooter]',
520
- }]
521
- }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: CollectionViewComponent, decorators: [{
522
- type: Host
523
- }] }], propDecorators: { cvTemplateFooter: [{
524
- type: Input
525
- }] } });
526
405
 
527
406
  // External
528
407
  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 });
408
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CollectionViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
409
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.4", ngImport: i0, type: CollectionViewModule, declarations: [CollectionViewComponent, TemplateKeyDirective], exports: [CollectionViewComponent, TemplateKeyDirective] });
410
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CollectionViewModule });
532
411
  }
533
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CollectionViewModule, decorators: [{
412
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CollectionViewModule, decorators: [{
534
413
  type: NgModule,
535
414
  args: [{
536
- declarations: [CollectionViewComponent, TemplateKeyDirective, TemplateHeaderDirective, TemplateFooterDirective],
537
- exports: [CollectionViewComponent, TemplateKeyDirective, TemplateHeaderDirective, TemplateFooterDirective],
415
+ declarations: [CollectionViewComponent, TemplateKeyDirective],
416
+ exports: [CollectionViewComponent, TemplateKeyDirective],
538
417
  schemas: [NO_ERRORS_SCHEMA],
539
418
  }]
540
419
  }] });
@@ -543,5 +422,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImpor
543
422
  * Generated bundle index. Do not edit.
544
423
  */
545
424
 
546
- export { CollectionViewComponent, CollectionViewModule, TemplateFooterDirective, TemplateHeaderDirective, TemplateKeyDirective };
425
+ export { CollectionViewComponent, CollectionViewModule, TemplateKeyDirective };
547
426
  //# sourceMappingURL=nstudio-ui-collectionview-angular.mjs.map
@@ -1 +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
+ {"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, ListViewViewTypes } 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 standalone: false,\n})\nexport class CollectionViewComponent implements DoCheck, OnDestroy, AfterContentInit {\n public get nativeElement(): any {\n return this._collectionView;\n }\n public get listView(): any {\n return this._collectionView;\n }\n\n @ViewChild('loader', { read: ViewContainerRef, static: true }) public loader: ViewContainerRef;\n @Output() public setupItemView = new EventEmitter<SetupItemViewArgs>();\n @ContentChild(TemplateRef, { read: TemplateRef, static: true }) public itemTemplateQuery: TemplateRef<ItemContext>;\n\n @Input() autoReuseViews = false;\n\n detachedLoaderFactory() {\n const ref = this.loader.createComponent(DetachedLoader, {\n index: 0,\n });\n this.loader.detach(0);\n this._loaders.push(ref);\n return ref;\n }\n\n @Input()\n public get itemTemplate() {\n return this._itemTemplate;\n }\n public set itemTemplate(value: any) {\n this._itemTemplate = value;\n this._collectionView.refresh();\n }\n @Input()\n public get items() {\n return this._items;\n }\n public set items(value: any) {\n this._items = value;\n let needDiffer = true;\n if (value instanceof ObservableArray) {\n needDiffer = false;\n }\n if (needDiffer && !this._differ && isListLikeIterable(value)) {\n this._differ = this._iterableDiffers.find(this._items).create((_index, item) => item);\n }\n\n this._collectionView.items = this._items;\n }\n\n private _collectionView: CollectionView;\n private _items: any;\n private _differ: IterableDiffer<KeyedTemplate>;\n private _itemTemplate: TemplateRef<ItemContext>;\n private _templateMap: Map<string, KeyedTemplate>;\n private _loaders: ComponentRef<DetachedLoader>[];\n\n constructor(@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 ListViewViewTypes.ItemView:\n if (this._itemTemplate && this.loader) {\n const typedView = this.getOrCreate(this._itemTemplate);\n return typedView;\n }\n break;\n }\n return null;\n });\n\n public ngAfterContentInit() {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'CollectionView.ngAfterContentInit()');\n }\n this.setItemTemplates();\n }\n\n public ngOnDestroy() {\n this._collectionView.off(CollectionView.itemLoadingEvent, this.onItemLoading, this);\n this._collectionView = null;\n this._loaders.forEach((l) => l.destroy());\n this._loaders = null;\n this.viewToLoader = null;\n this.viewToTemplate = null;\n this.viewPool = null;\n\n this._items = null;\n this._differ = null;\n this._itemTemplate = null;\n if (this._templateMap) {\n this._templateMap.clear();\n }\n this._templateMap = null;\n }\n\n public ngDoCheck() {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'ngDoCheck() - execute differ? ' + this._differ);\n }\n if (this._differ) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'ngDoCheck() - execute differ');\n }\n const changes = this._differ.diff(this._items);\n if (changes) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'ngDoCheck() - refresh');\n }\n this.refresh();\n }\n }\n }\n\n public registerTemplate(key: string, template: TemplateRef<ItemContext>) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'registerTemplate for key: ' + key);\n }\n if (!this._templateMap) {\n this._templateMap = new Map<string, KeyedTemplate>();\n }\n\n const keyedTemplate = {\n key,\n createView: this.getItemTemplateViewFactory(template),\n };\n\n this._templateMap.set(key, keyedTemplate);\n }\n\n @HostListener('itemLoading', ['$event'])\n public onItemLoading(args: CollectionViewItemEventData) {\n if (!args.view && !this.itemTemplate) {\n return;\n }\n if (!this.items) return;\n const index = args.index;\n const items = (args.object as any).items;\n const currentItem = typeof items.getItem === 'function' ? items.getItem(index) : items[index];\n let viewRef: EmbeddedViewRef<ItemContext>;\n\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, `onItemLoading: ${index} - Reusing existing view`);\n }\n\n viewRef = args.view[NG_VIEW];\n // Getting angular view from original element (in cases when ProxyViewContainer\n // is used NativeScript internally wraps it in a StackLayout)\n if (!viewRef && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {\n viewRef = args.view.getChildAt(0)[NG_VIEW];\n }\n\n if (!viewRef && Trace.isEnabled()) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, `ViewReference not found for item ${index}. View recycling is not working`);\n }\n }\n\n if (!viewRef) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, `onItemLoading: ${index} - Creating view from template`);\n }\n\n viewRef = this.loader.createEmbeddedView(this.itemTemplate, new ItemContext(), 0);\n args.view = getItemViewRoot(viewRef);\n args.view[NG_VIEW] = viewRef;\n }\n\n this.setupViewRef(viewRef, currentItem, index);\n\n this.detectChangesOnChild(viewRef, index);\n }\n @HostListener('itemRecycling', ['$event'])\n public onItemRecyclingInternal(args: any) {\n if (!args.view) {\n return;\n }\n let ngView: EmbeddedViewRef<any> = args.view[NG_VIEW];\n\n // Getting angular view from original element (in cases when ProxyViewContainer\n // is used NativeScript internally wraps it in a StackLayout)\n if (!ngView && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {\n ngView = args.view.getChildAt(0)[NG_VIEW];\n }\n // console.log('recycling', args.view);\n\n if (ngView) {\n ngView.detach();\n }\n }\n\n @HostListener('itemDisposing', ['$event'])\n public onItemDisposingInternal(args: any) {\n if (!args.view) {\n return;\n }\n let ngView: EmbeddedViewRef<any> = args.view[NG_VIEW];\n\n // Getting angular view from original element (in cases when ProxyViewContainer\n // is used NativeScript internally wraps it in a StackLayout)\n if (!ngView && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {\n ngView = args.view.getChildAt(0)[NG_VIEW];\n }\n\n if (ngView) {\n ngView.detach();\n this.storeViewRef(ngView);\n }\n }\n\n public setupViewRef(view: EmbeddedViewRef<ItemContext>, data: any, index: number): void {\n const context = view.context;\n context.$implicit = data;\n context.item = data;\n context.index = index;\n context.even = index % 2 === 0;\n context.odd = !context.even;\n\n this.setupItemView.next({\n context,\n data,\n index,\n view,\n });\n }\n\n protected getItemTemplateViewFactory(template: TemplateRef<ItemContext>): () => View {\n return () => {\n const viewRef = this.loader.createEmbeddedView(template, new ItemContext(), 0);\n const resultView = getItemViewRoot(viewRef);\n resultView[NG_VIEW] = viewRef;\n\n return resultView;\n };\n }\n viewPool = new Map<\n TemplateRef<ItemContext>,\n {\n scrapSize: number;\n scrapHead: Set<EmbeddedViewRef<ItemContext>>;\n }\n >();\n private storeViewRef(viewRef: EmbeddedViewRef<any>) {\n const templateRef = this.viewToTemplate.get(viewRef);\n if (templateRef) {\n const scrap = this.viewPool.get(templateRef);\n if (scrap) {\n if (scrap.scrapHead.size >= scrap.scrapSize) {\n viewRef.destroy();\n this.viewToLoader.get(viewRef)?.destroy();\n } else {\n scrap.scrapHead.add(viewRef);\n }\n }\n }\n }\n viewToTemplate = new WeakMap<EmbeddedViewRef<any>, TemplateRef<any>>();\n viewToLoader = new WeakMap<EmbeddedViewRef<any>, ComponentRef<DetachedLoader>>();\n\n private getOrCreate(templateRef: TemplateRef<ItemContext>) {\n return this._ngZone.run(() => {\n let viewRef = this.getView(templateRef);\n if (!viewRef) {\n const loader = this.detachedLoaderFactory();\n // viewRef = this.loader.createEmbeddedView(templateRef, new ItemContext(), 0);\n viewRef = loader.instance.vc.createEmbeddedView(templateRef, new ItemContext(), 0);\n this.viewToLoader.set(viewRef, loader);\n this.viewToTemplate.set(viewRef, templateRef);\n }\n viewRef.detach();\n const resultView = getItemViewRoot(viewRef);\n resultView[NG_VIEW] = viewRef;\n resultView.reusable = this.autoReuseViews;\n return resultView;\n });\n }\n private getView(templateRef: TemplateRef<ItemContext>) {\n const pool = this.getViewPool(templateRef);\n while (pool.scrapHead.size > 0) {\n const viewRef: EmbeddedViewRef<ItemContext> = pool.scrapHead.values().next().value;\n pool.scrapHead.delete(viewRef);\n if (!viewRef.destroyed) {\n return viewRef;\n }\n }\n return null;\n }\n\n private getViewPool(templateRef: TemplateRef<ItemContext>) {\n if (!this.viewPool.has(templateRef)) {\n this.viewPool.set(templateRef, {\n scrapSize: this.autoReuseViews ? Infinity : 0,\n scrapHead: new Set<EmbeddedViewRef<ItemContext>>(),\n });\n }\n return this.viewPool.get(templateRef);\n }\n\n private setItemTemplates() {\n // The itemTemplateQuery may be changed after list items are added that contain <template> inside,\n // so cache and use only the original template to avoid errors.\n this.itemTemplate = this.itemTemplateQuery;\n\n if (this._templateMap) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'Setting templates');\n }\n\n const templates: KeyedTemplate[] = [];\n this._templateMap.forEach((value) => {\n templates.push(value);\n });\n this._collectionView.itemTemplates = templates;\n } else {\n // If the map was not initialized this means that there are no named templates, so we register the default one.\n this._collectionView.itemTemplate = this.getItemTemplateViewFactory(this.itemTemplate);\n }\n }\n\n private detectChangesOnChild(viewRef: EmbeddedViewRef<ItemContext>, index: number) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'Manually detect changes in child: ' + index);\n }\n viewRef.markForCheck();\n viewRef.detectChanges();\n }\n\n private refresh() {\n if (this._collectionView) {\n this._collectionView.refresh();\n }\n }\n}\n\nexport interface ComponentView {\n rootNodes: any[];\n destroy(): void;\n}\n\nexport type RootLocator = (nodes: any[], nestLevel: number) => View;\n\nexport function getItemViewRoot(viewRef: ComponentView, rootLocator: RootLocator = extractSingleViewRecursive): View {\n const rootView = rootLocator(viewRef.rootNodes, 0);\n return rootView;\n}\n\n@Directive({ selector: '[cvTemplateKey]', standalone: false })\nexport class TemplateKeyDirective {\n constructor(private templateRef: TemplateRef<any>, @Host() private collectionView: CollectionViewComponent) {}\n\n @Input()\n set cvTemplateKey(value: any) {\n if (Trace.isEnabled()) {\n CLog(CLogTypes.info, 'cvTemplateKey: ' + value);\n }\n if (this.collectionView && this.templateRef) {\n this.collectionView.registerTemplate(value.toLowerCase(), this.templateRef);\n }\n }\n}\n","// External\nimport { NO_ERRORS_SCHEMA, NgModule } from '@angular/core';\n\nimport { CollectionViewComponent, TemplateKeyDirective } from './collectionview.component';\nexport { CollectionViewComponent, TemplateKeyDirective } from './collectionview.component';\n\n@NgModule({\n declarations: [CollectionViewComponent, TemplateKeyDirective],\n exports: [CollectionViewComponent, TemplateKeyDirective],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class CollectionViewModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAKA,eAAe,CAAC,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,OAAO,GAAG,YAAY;MAEf,WAAW,CAAA;AACH,IAAA,SAAA;AAAwB,IAAA,IAAA;AAAmB,IAAA,KAAA;AAAuB,IAAA,IAAA;AAAuB,IAAA,GAAA;IAA5G,WAAmB,CAAA,SAAe,EAAS,IAAU,EAAS,KAAc,EAAS,IAAc,EAAS,GAAa,EAAA;QAAtG,IAAS,CAAA,SAAA,GAAT,SAAS;QAAe,IAAI,CAAA,IAAA,GAAJ,IAAI;QAAe,IAAK,CAAA,KAAA,GAAL,KAAK;QAAkB,IAAI,CAAA,IAAA,GAAJ,IAAI;QAAmB,IAAG,CAAA,GAAA,GAAH,GAAG;;AAChH;MAmBY,uBAAuB,CAAA;AAuDM,IAAA,WAAA;AAA0D,IAAA,gBAAA;AAAgF,IAAA,SAAA;AAAgE,IAAA,OAAA;AAtDlP,IAAA,IAAW,aAAa,GAAA;QACtB,OAAO,IAAI,CAAC,eAAe;;AAE7B,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,eAAe;;AAGyC,IAAA,MAAM;AAC3D,IAAA,aAAa,GAAG,IAAI,YAAY,EAAqB;AACC,IAAA,iBAAiB;IAE/E,cAAc,GAAG,KAAK;IAE/B,qBAAqB,GAAA;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,cAAc,EAAE;AACtD,YAAA,KAAK,EAAE,CAAC;AACT,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;AACvB,QAAA,OAAO,GAAG;;AAGZ,IAAA,IACW,YAAY,GAAA;QACrB,OAAO,IAAI,CAAC,aAAa;;IAE3B,IAAW,YAAY,CAAC,KAAU,EAAA;AAChC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;;AAEhC,IAAA,IACW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;;IAEpB,IAAW,KAAK,CAAC,KAAU,EAAA;AACzB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QACnB,IAAI,UAAU,GAAG,IAAI;AACrB,QAAA,IAAI,KAAK,YAAY,eAAe,EAAE;YACpC,UAAU,GAAG,KAAK;;AAEpB,QAAA,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE;YAC5D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,KAAK,IAAI,CAAC;;QAGvF,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM;;AAGlC,IAAA,eAAe;AACf,IAAA,MAAM;AACN,IAAA,OAAO;AACP,IAAA,aAAa;AACb,IAAA,YAAY;AACZ,IAAA,QAAQ;AAEhB,IAAA,WAAA,CAAwC,WAAuB,EAAmC,gBAAiC,EAA+C,SAAsC,EAA0B,OAAe,EAAA;QAAzN,IAAW,CAAA,WAAA,GAAX,WAAW;QAA+C,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB;QAAgE,IAAS,CAAA,SAAA,GAAT,SAAS;QAAuD,IAAO,CAAA,OAAA,GAAP,OAAO;AACvP,QAAA,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,aAAa;AAEhD,QAAA,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;QAClF,IAAI,CAAC,eAAe,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc;AACzD,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGZ,IAAA,cAAc,GAAG,CAAC,QAAQ,KAChC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAK;QACpB,QAAQ,QAAQ;YACd,KAAK,iBAAiB,CAAC,QAAQ;gBAC7B,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,EAAE;oBACrC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC;AACtD,oBAAA,OAAO,SAAS;;gBAElB;;AAEJ,QAAA,OAAO,IAAI;AACb,KAAC,CAAC;IAEG,kBAAkB,GAAA;AACvB,QAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;AACrB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,qCAAqC,CAAC;;QAE7D,IAAI,CAAC,gBAAgB,EAAE;;IAGlB,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;AACnF,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC3B,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AAEpB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;;AAE3B,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;;IAGnB,SAAS,GAAA;AACd,QAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;YACrB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,gCAAgC,GAAG,IAAI,CAAC,OAAO,CAAC;;AAEvE,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;AACrB,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,8BAA8B,CAAC;;AAEtD,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAC9C,IAAI,OAAO,EAAE;AACX,gBAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;AACrB,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,uBAAuB,CAAC;;gBAE/C,IAAI,CAAC,OAAO,EAAE;;;;IAKb,gBAAgB,CAAC,GAAW,EAAE,QAAkC,EAAA;AACrE,QAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;YACrB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,4BAA4B,GAAG,GAAG,CAAC;;AAE1D,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAyB;;AAGtD,QAAA,MAAM,aAAa,GAAG;YACpB,GAAG;AACH,YAAA,UAAU,EAAE,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC;SACtD;QAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC;;AAIpC,IAAA,aAAa,CAAC,IAAiC,EAAA;QACpD,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpC;;QAEF,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE;AACjB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;AACxB,QAAA,MAAM,KAAK,GAAI,IAAI,CAAC,MAAc,CAAC,KAAK;QACxC,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;AAC7F,QAAA,IAAI,OAAqC;AAEzC,QAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;YACrB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAkB,eAAA,EAAA,KAAK,CAA0B,wBAAA,CAAA,CAAC;;AAGzE,QAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;;;AAG5B,QAAA,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,YAAY,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE;AACnF,YAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;;QAG5C,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;AACjC,YAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;gBACrB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAoC,iCAAA,EAAA,KAAK,CAAiC,+BAAA,CAAA,CAAC;;;QAIpG,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;gBACrB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAkB,eAAA,EAAA,KAAK,CAAgC,8BAAA,CAAA,CAAC;;AAG/E,YAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,WAAW,EAAE,EAAE,CAAC,CAAC;AACjF,YAAA,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC;AACpC,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO;;QAG9B,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC;AAE9C,QAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC;;AAGpC,IAAA,uBAAuB,CAAC,IAAS,EAAA;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd;;QAEF,IAAI,MAAM,GAAyB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;;;AAIrD,QAAA,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,YAAY,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE;AAClF,YAAA,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;;;QAI3C,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,MAAM,EAAE;;;AAKZ,IAAA,uBAAuB,CAAC,IAAS,EAAA;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd;;QAEF,IAAI,MAAM,GAAyB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;;;AAIrD,QAAA,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,YAAY,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE;AAClF,YAAA,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;;QAG3C,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;;;AAItB,IAAA,YAAY,CAAC,IAAkC,EAAE,IAAS,EAAE,KAAa,EAAA;AAC9E,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;AAC5B,QAAA,OAAO,CAAC,SAAS,GAAG,IAAI;AACxB,QAAA,OAAO,CAAC,IAAI,GAAG,IAAI;AACnB,QAAA,OAAO,CAAC,KAAK,GAAG,KAAK;QACrB,OAAO,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC;AAC9B,QAAA,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI;AAE3B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACtB,OAAO;YACP,IAAI;YACJ,KAAK;YACL,IAAI;AACL,SAAA,CAAC;;AAGM,IAAA,0BAA0B,CAAC,QAAkC,EAAA;AACrE,QAAA,OAAO,MAAK;AACV,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,IAAI,WAAW,EAAE,EAAE,CAAC,CAAC;AAC9E,YAAA,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC;AAC3C,YAAA,UAAU,CAAC,OAAO,CAAC,GAAG,OAAO;AAE7B,YAAA,OAAO,UAAU;AACnB,SAAC;;AAEH,IAAA,QAAQ,GAAG,IAAI,GAAG,EAMf;AACK,IAAA,YAAY,CAAC,OAA6B,EAAA;QAChD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;QACpD,IAAI,WAAW,EAAE;YACf,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;YAC5C,IAAI,KAAK,EAAE;gBACT,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,KAAK,CAAC,SAAS,EAAE;oBAC3C,OAAO,CAAC,OAAO,EAAE;oBACjB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE;;qBACpC;AACL,oBAAA,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;;;;;AAKpC,IAAA,cAAc,GAAG,IAAI,OAAO,EAA0C;AACtE,IAAA,YAAY,GAAG,IAAI,OAAO,EAAsD;AAExE,IAAA,WAAW,CAAC,WAAqC,EAAA;AACvD,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAK;YAC3B,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YACvC,IAAI,CAAC,OAAO,EAAE;AACZ,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,EAAE;;AAE3C,gBAAA,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,kBAAkB,CAAC,WAAW,EAAE,IAAI,WAAW,EAAE,EAAE,CAAC,CAAC;gBAClF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC;gBACtC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC;;YAE/C,OAAO,CAAC,MAAM,EAAE;AAChB,YAAA,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC;AAC3C,YAAA,UAAU,CAAC,OAAO,CAAC,GAAG,OAAO;AAC7B,YAAA,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc;AACzC,YAAA,OAAO,UAAU;AACnB,SAAC,CAAC;;AAEI,IAAA,OAAO,CAAC,WAAqC,EAAA;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;QAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE;AAC9B,YAAA,MAAM,OAAO,GAAiC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK;AAClF,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;AAC9B,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;AACtB,gBAAA,OAAO,OAAO;;;AAGlB,QAAA,OAAO,IAAI;;AAGL,IAAA,WAAW,CAAC,WAAqC,EAAA;QACvD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AACnC,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE;gBAC7B,SAAS,EAAE,IAAI,CAAC,cAAc,GAAG,QAAQ,GAAG,CAAC;gBAC7C,SAAS,EAAE,IAAI,GAAG,EAAgC;AACnD,aAAA,CAAC;;QAEJ,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;;IAG/B,gBAAgB,GAAA;;;AAGtB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB;AAE1C,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;AACrB,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,mBAAmB,CAAC;;YAG3C,MAAM,SAAS,GAAoB,EAAE;YACrC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAClC,gBAAA,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AACvB,aAAC,CAAC;AACF,YAAA,IAAI,CAAC,eAAe,CAAC,aAAa,GAAG,SAAS;;aACzC;;AAEL,YAAA,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,YAAY,CAAC;;;IAIlF,oBAAoB,CAAC,OAAqC,EAAE,KAAa,EAAA;AAC/E,QAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;YACrB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,oCAAoC,GAAG,KAAK,CAAC;;QAEpE,OAAO,CAAC,YAAY,EAAE;QACtB,OAAO,CAAC,aAAa,EAAE;;IAGjB,OAAO,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;;;AA9UvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,kBAuDd,UAAU,EAAA,EAAA,EAAA,KAAA,EAA2C,eAAe,EAAqD,EAAA,EAAA,KAAA,EAAA,2BAA2B,aAA0D,MAAM,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAvD7N,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,4aAUpB,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAU,WAAW,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAFjB,gBAAgB,EAhBnC,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAIU,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAVnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE;;;;AAIT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;;0BAwDc,MAAM;2BAAC,UAAU;;0BAAoC,MAAM;2BAAC,eAAe;;0BAA8C,MAAM;2BAAC,2BAA2B;;0BAAmD,MAAM;2BAAC,MAAM;yCA/ClK,MAAM,EAAA,CAAA;sBAA3E,SAAS;uBAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE;gBAC5C,aAAa,EAAA,CAAA;sBAA7B;gBACsE,iBAAiB,EAAA,CAAA;sBAAvF,YAAY;uBAAC,WAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE;gBAErD,cAAc,EAAA,CAAA;sBAAtB;gBAYU,YAAY,EAAA,CAAA;sBADtB;gBASU,KAAK,EAAA,CAAA;sBADf;gBAyGM,aAAa,EAAA,CAAA;sBADnB,YAAY;uBAAC,aAAa,EAAE,CAAC,QAAQ,CAAC;gBA2ChC,uBAAuB,EAAA,CAAA;sBAD7B,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;gBAoBlC,uBAAuB,EAAA,CAAA;sBAD7B,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;;SAsJ3B,eAAe,CAAC,OAAsB,EAAE,cAA2B,0BAA0B,EAAA;IAC3G,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;AAClD,IAAA,OAAO,QAAQ;AACjB;MAGa,oBAAoB,CAAA;AACX,IAAA,WAAA;AAA+C,IAAA,cAAA;IAAnE,WAAoB,CAAA,WAA6B,EAAkB,cAAuC,EAAA;QAAtF,IAAW,CAAA,WAAA,GAAX,WAAW;QAAoC,IAAc,CAAA,cAAA,GAAd,cAAc;;IAEjF,IACI,aAAa,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;YACrB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,iBAAiB,GAAG,KAAK,CAAC;;QAEjD,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,WAAW,EAAE;AAC3C,YAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC;;;uGATpE,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,KAAK,EAAE;;0BAEP;yCAGhD,aAAa,EAAA,CAAA;sBADhB;;;ACjYH;MAWa,oBAAoB,CAAA;uGAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,iBAJhB,uBAAuB,EAAE,oBAAoB,CAClD,EAAA,OAAA,EAAA,CAAA,uBAAuB,EAAE,oBAAoB,CAAA,EAAA,CAAA;wGAG5C,oBAAoB,EAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,uBAAuB,EAAE,oBAAoB,CAAC;AAC7D,oBAAA,OAAO,EAAE,CAAC,uBAAuB,EAAE,oBAAoB,CAAC;oBACxD,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC5B,iBAAA;;;ACVD;;AAEG;;;;"}
@@ -1,8 +1,8 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./collectionview.component";
3
- export { CollectionViewComponent, TemplateKeyDirective, TemplateHeaderDirective, TemplateFooterDirective } from './collectionview.component';
3
+ export { CollectionViewComponent, TemplateKeyDirective } from './collectionview.component';
4
4
  export declare class CollectionViewModule {
5
5
  static ɵfac: i0.ɵɵFactoryDeclaration<CollectionViewModule, never>;
6
- static ɵmod: i0.ɵɵNgModuleDeclaration<CollectionViewModule, [typeof i1.CollectionViewComponent, typeof i1.TemplateKeyDirective, typeof i1.TemplateHeaderDirective, typeof i1.TemplateFooterDirective], never, [typeof i1.CollectionViewComponent, typeof i1.TemplateKeyDirective, typeof i1.TemplateHeaderDirective, typeof i1.TemplateFooterDirective]>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CollectionViewModule, [typeof i1.CollectionViewComponent, typeof i1.TemplateKeyDirective], never, [typeof i1.CollectionViewComponent, typeof i1.TemplateKeyDirective]>;
7
7
  static ɵinj: i0.ɵɵInjectorDeclaration<CollectionViewModule>;
8
8
  }
@@ -8,8 +8,6 @@
8
8
  },
9
9
  ".": {
10
10
  "types": "./index.d.ts",
11
- "esm2022": "./esm2022/nstudio-ui-collectionview-angular.mjs",
12
- "esm": "./esm2022/nstudio-ui-collectionview-angular.mjs",
13
11
  "default": "./fesm2022/nstudio-ui-collectionview-angular.mjs"
14
12
  }
15
13
  },