@nstudio/ui-collectionview 5.1.9-alpha.3 → 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.
- package/angular/collectionview.component.d.ts +6 -4
- package/angular/esm2022/collectionview.component.mjs +525 -0
- package/angular/{esm2020 → esm2022}/index.mjs +5 -5
- package/angular/{fesm2020 → fesm2022}/nstudio-ui-collectionview-angular.mjs +105 -77
- package/angular/fesm2022/nstudio-ui-collectionview-angular.mjs.map +1 -0
- package/angular/package.json +4 -10
- package/common.d.ts +6 -4
- package/common.js +10 -4
- package/common.js.map +1 -1
- package/index.android.js.map +1 -1
- package/index.d.ts +15 -12
- package/index.ios.d.ts +3 -0
- package/index.ios.js +93 -51
- package/index.ios.js.map +1 -1
- package/package.json +2 -3
- package/react/index.js.map +1 -1
- package/svelte/index.d.ts +0 -1
- package/svelte/index.js.map +1 -1
- package/vue/component.js.map +1 -1
- package/angular/esm2020/collectionview.component.mjs +0 -497
- package/angular/fesm2015/nstudio-ui-collectionview-angular.mjs +0 -528
- package/angular/fesm2015/nstudio-ui-collectionview-angular.mjs.map +0 -1
- package/angular/fesm2020/nstudio-ui-collectionview-angular.mjs.map +0 -1
- /package/angular/{esm2020 → esm2022}/nstudio-ui-collectionview-angular.mjs +0 -0
@@ -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
|
-
|
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,
|
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
|
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.
|
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
|
-
|
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
|
-
|
245
|
+
onItemDisplayInternal(args) {
|
240
246
|
if (!args.view) {
|
241
247
|
return;
|
242
248
|
}
|
243
|
-
|
244
|
-
|
245
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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:
|
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
|
-
}] }]
|
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
|
-
|
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:
|
463
|
+
}], ctorParameters: () => [{ type: i0.TemplateRef }, { type: CollectionViewComponent, decorators: [{
|
440
464
|
type: Host
|
441
|
-
}] }]
|
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
|
-
|
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:
|
492
|
+
}], ctorParameters: () => [{ type: i0.TemplateRef }, { type: CollectionViewComponent, decorators: [{
|
467
493
|
type: Host
|
468
|
-
}] }]
|
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
|
-
|
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:
|
521
|
+
}], ctorParameters: () => [{ type: i0.TemplateRef }, { type: CollectionViewComponent, decorators: [{
|
494
522
|
type: Host
|
495
|
-
}] }]
|
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
|
-
|
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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"}
|
package/angular/package.json
CHANGED
@@ -1,10 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@nstudio/ui-collectionview-angular",
|
3
|
-
"module": "
|
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
|
-
"
|
16
|
-
"
|
17
|
-
"
|
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
|
/**
|
@@ -74,6 +74,7 @@ export declare abstract class CollectionViewBase extends View implements Collect
|
|
74
74
|
static knownFunctions: string[];
|
75
75
|
isBounceEnabled: boolean;
|
76
76
|
isScrollEnabled: boolean;
|
77
|
+
isAnimationEnabled: boolean;
|
77
78
|
reverseLayout: boolean;
|
78
79
|
loadingMore: boolean;
|
79
80
|
orientation: CoreTypes.OrientationType;
|
@@ -209,6 +210,7 @@ export declare const itemsProperty: Property<CollectionViewBase, Function>;
|
|
209
210
|
export declare const spanSizeProperty: Property<CollectionViewBase, Function>;
|
210
211
|
export declare const isScrollEnabledProperty: Property<CollectionViewBase, boolean>;
|
211
212
|
export declare const isBounceEnabledProperty: Property<CollectionViewBase, boolean>;
|
213
|
+
export declare const isAnimationEnabledProperty: Property<CollectionViewBase, boolean>;
|
212
214
|
export declare const reverseLayoutProperty: Property<CollectionViewBase, boolean>;
|
213
215
|
export declare const loadMoreThresholdProperty: Property<CollectionViewBase, number>;
|
214
216
|
export declare const reorderingEnabledProperty: Property<CollectionViewBase, boolean>;
|
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"] =
|
15
|
-
CLogTypes[CLogTypes["info"] =
|
16
|
-
CLogTypes[CLogTypes["warning"] =
|
17
|
-
CLogTypes[CLogTypes["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);
|
@@ -667,6 +667,12 @@ export const isBounceEnabledProperty = new Property({
|
|
667
667
|
valueConverter: booleanConverter
|
668
668
|
});
|
669
669
|
isBounceEnabledProperty.register(CollectionViewBase);
|
670
|
+
export const isAnimationEnabledProperty = new Property({
|
671
|
+
name: 'isAnimationEnabled',
|
672
|
+
defaultValue: true,
|
673
|
+
valueConverter: booleanConverter
|
674
|
+
});
|
675
|
+
isAnimationEnabledProperty.register(CollectionViewBase);
|
670
676
|
export const reverseLayoutProperty = new Property({
|
671
677
|
name: 'reverseLayout',
|
672
678
|
defaultValue: false,
|