@egjs/ngx-infinitegrid 4.10.0-beta.1 → 4.10.0

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.
Files changed (40) hide show
  1. package/esm2020/egjs-ngx-infinitegrid.mjs +5 -0
  2. package/esm2020/lib/grids/ngx-frame-infinitegrid.component.mjs +25 -0
  3. package/esm2020/lib/grids/ngx-justified-infinitegrid.component.mjs +29 -0
  4. package/esm2020/lib/grids/ngx-masonry-infinitegrid.component.mjs +31 -0
  5. package/esm2020/lib/grids/ngx-packing-infinitegrid.component.mjs +27 -0
  6. package/esm2020/lib/ngx-infinitegrid.component.mjs +232 -0
  7. package/esm2020/lib/ngx-infinitegrid.module.mjs +44 -0
  8. package/{esm2015/lib/types.js → esm2020/lib/types.mjs} +1 -1
  9. package/fesm2015/egjs-ngx-infinitegrid.mjs +388 -0
  10. package/fesm2015/egjs-ngx-infinitegrid.mjs.map +1 -0
  11. package/fesm2020/egjs-ngx-infinitegrid.mjs +398 -0
  12. package/fesm2020/egjs-ngx-infinitegrid.mjs.map +1 -0
  13. package/index.d.ts +5 -0
  14. package/lib/grids/ngx-frame-infinitegrid.component.d.ts +3 -0
  15. package/lib/grids/ngx-justified-infinitegrid.component.d.ts +3 -0
  16. package/lib/grids/ngx-masonry-infinitegrid.component.d.ts +3 -0
  17. package/lib/grids/ngx-packing-infinitegrid.component.d.ts +3 -0
  18. package/lib/ngx-infinitegrid.component.d.ts +4 -0
  19. package/lib/ngx-infinitegrid.module.d.ts +10 -0
  20. package/lib/types.d.ts +1 -0
  21. package/package.json +22 -10
  22. package/bundles/egjs-ngx-infinitegrid.umd.js +0 -664
  23. package/bundles/egjs-ngx-infinitegrid.umd.js.map +0 -1
  24. package/bundles/egjs-ngx-infinitegrid.umd.min.js +0 -2
  25. package/bundles/egjs-ngx-infinitegrid.umd.min.js.map +0 -1
  26. package/egjs-ngx-infinitegrid.d.ts +0 -6
  27. package/egjs-ngx-infinitegrid.metadata.json +0 -1
  28. package/esm2015/egjs-ngx-infinitegrid.js +0 -7
  29. package/esm2015/lib/grids/ngx-frame-infinitegrid.component.js +0 -19
  30. package/esm2015/lib/grids/ngx-justified-infinitegrid.component.js +0 -21
  31. package/esm2015/lib/grids/ngx-masonry-infinitegrid.component.js +0 -22
  32. package/esm2015/lib/grids/ngx-packing-infinitegrid.component.js +0 -20
  33. package/esm2015/lib/ngx-infinitegrid.component.js +0 -187
  34. package/esm2015/lib/ngx-infinitegrid.module.js +0 -31
  35. package/fesm2015/egjs-ngx-infinitegrid.js +0 -318
  36. package/fesm2015/egjs-ngx-infinitegrid.js.map +0 -1
  37. /package/{esm2015/lib/consts.js → esm2020/lib/consts.mjs} +0 -0
  38. /package/{esm2015/lib/ngx-infinitegrid.interface.js → esm2020/lib/ngx-infinitegrid.interface.mjs} +0 -0
  39. /package/{esm2015/private_export.js → esm2020/private_export.mjs} +0 -0
  40. /package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
@@ -0,0 +1,398 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, PLATFORM_ID, Component, Inject, Input, Output, NgModule } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+ import { isPlatformServer, CommonModule } from '@angular/common';
5
+ import { Subject, fromEvent } from 'rxjs';
6
+ import { takeUntil } from 'rxjs/operators';
7
+ import { withInfiniteGridMethods, Renderer, INFINITEGRID_EVENTS, mountRenderingItems, getRenderingItems, MasonryInfiniteGrid, JustifiedInfiniteGrid, FrameInfiniteGrid, PackingInfiniteGrid } from '@egjs/infinitegrid';
8
+ import { __decorate } from 'tslib';
9
+
10
+ class NgxInfiniteGridInterface {
11
+ }
12
+ __decorate([
13
+ withInfiniteGridMethods
14
+ ], NgxInfiniteGridInterface.prototype, "vanillaGrid", void 0);
15
+
16
+ /**
17
+ * egjs-infinitegrid
18
+ * Copyright (c) 2021-present NAVER Corp.
19
+ * MIT license
20
+ */
21
+ class NgxInfiniteGridComponent extends NgxInfiniteGridInterface {
22
+ constructor(elementRef, _platformId, _ngZone) {
23
+ super();
24
+ this.elementRef = elementRef;
25
+ this._platformId = _platformId;
26
+ this._ngZone = _ngZone;
27
+ this.items = [];
28
+ this.trackBy = ((_, item) => item.key);
29
+ this.groupBy = ((_, item) => item.groupKey);
30
+ this.infoBy = () => ({});
31
+ this.visibleItems = [];
32
+ this._renderer = new Renderer();
33
+ this._isChange = false;
34
+ this._destroy$ = new Subject();
35
+ for (const name in INFINITEGRID_EVENTS) {
36
+ const eventName = INFINITEGRID_EVENTS[name];
37
+ this[eventName] = new EventEmitter();
38
+ }
39
+ }
40
+ ngOnInit() {
41
+ this._updateVisibleChildren();
42
+ }
43
+ ngOnChanges() {
44
+ this._isChange = true;
45
+ this._updateVisibleChildren();
46
+ }
47
+ ngAfterViewInit() {
48
+ if (isPlatformServer(this._platformId)) {
49
+ return;
50
+ }
51
+ const GridClass = this.constructor.GridClass;
52
+ const defaultOptions = GridClass.defaultOptions;
53
+ const options = {};
54
+ for (const name in defaultOptions) {
55
+ if (name in this && typeof this[name] !== "undefined") {
56
+ options[name] = this[name];
57
+ }
58
+ }
59
+ options.renderer = this._renderer;
60
+ // The `InfiniteGrid` set ups `scroll` and `resize` events through `ScrollManager`
61
+ // and `ResizeWatcher`. These events force Angular to run change detection whenever
62
+ // dispatched; this happens too often.
63
+ const grid = this._ngZone.runOutsideAngular(() => new GridClass(this.elementRef.nativeElement, options));
64
+ for (const name in INFINITEGRID_EVENTS) {
65
+ const eventName = INFINITEGRID_EVENTS[name];
66
+ fromEvent(grid, eventName)
67
+ .pipe(takeUntil(this._destroy$))
68
+ .subscribe((event) => {
69
+ const emitter = this[eventName];
70
+ if (emitter && emitter.observers.length > 0) {
71
+ this._ngZone.run(() => emitter.emit(event));
72
+ }
73
+ });
74
+ }
75
+ this.vanillaGrid = grid;
76
+ fromEvent(this._renderer, 'requestUpdate')
77
+ .pipe(takeUntil(this._destroy$))
78
+ .subscribe(() => {
79
+ this._ngZone.run(() => {
80
+ this._isChange = true;
81
+ this._updateVisibleChildren();
82
+ });
83
+ });
84
+ mountRenderingItems(this._getItemInfos(), {
85
+ grid,
86
+ useFirstRender: this.useFirstRender,
87
+ useLoading: this.useLoading,
88
+ usePlaceholder: this.usePlaceholder,
89
+ horizontal: this.horizontal,
90
+ status: this.status,
91
+ });
92
+ this._renderer.updated();
93
+ }
94
+ ngAfterViewChecked() {
95
+ if (!this._isChange || !this.vanillaGrid) {
96
+ return;
97
+ }
98
+ const children = [].slice.call(this.getContainerElement().children);
99
+ if (this.visibleItems.length !== children.length) {
100
+ return;
101
+ }
102
+ this._isChange = false;
103
+ const GridClass = this.constructor.GridClass;
104
+ const propertyTypes = GridClass.propertyTypes;
105
+ const grid = this.vanillaGrid;
106
+ for (const name in propertyTypes) {
107
+ if (name in this) {
108
+ grid[name] = this[name];
109
+ }
110
+ }
111
+ this._renderer.updated(children);
112
+ }
113
+ ngOnDestroy() {
114
+ this._destroy$.next();
115
+ this.vanillaGrid?.destroy();
116
+ }
117
+ _getItemInfos() {
118
+ const items = this.items;
119
+ const trackBy = this.trackBy;
120
+ const groupBy = this.groupBy;
121
+ const infoBy = this.infoBy;
122
+ return items.map((item, i) => {
123
+ const { data, ...rest } = infoBy(i, item);
124
+ return {
125
+ groupKey: groupBy(i, item),
126
+ key: trackBy(i, item),
127
+ ...rest,
128
+ data: {
129
+ ...data,
130
+ ...item,
131
+ },
132
+ };
133
+ });
134
+ }
135
+ _updateVisibleChildren() {
136
+ this.visibleItems = getRenderingItems(this._getItemInfos(), {
137
+ grid: this.vanillaGrid,
138
+ useFirstRender: this.useFirstRender,
139
+ useLoading: this.useLoading,
140
+ usePlaceholder: this.usePlaceholder,
141
+ horizontal: this.horizontal,
142
+ status: this.status,
143
+ });
144
+ }
145
+ }
146
+ NgxInfiniteGridComponent.GridClass = null;
147
+ NgxInfiniteGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxInfiniteGridComponent, deps: [{ token: i0.ElementRef }, { token: PLATFORM_ID }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
148
+ NgxInfiniteGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: NgxInfiniteGridComponent, selector: "ngx-infinite-grid, [NgxInfiniteGrid]", inputs: { gridConstructor: "gridConstructor", renderer: "renderer", container: "container", containerTag: "containerTag", threshold: "threshold", useRecycle: "useRecycle", horizontal: "horizontal", percentage: "percentage", isEqualSize: "isEqualSize", isConstantSize: "isConstantSize", gap: "gap", attributePrefix: "attributePrefix", resizeDebounce: "resizeDebounce", maxResizeDebounce: "maxResizeDebounce", autoResize: "autoResize", useFit: "useFit", useTransform: "useTransform", renderOnPropertyChange: "renderOnPropertyChange", preserveUIOnDestroy: "preserveUIOnDestroy", defaultDirection: "defaultDirection", externalItemRenderer: "externalItemRenderer", externalContainerManager: "externalContainerManager", outlineLength: "outlineLength", outlineSize: "outlineSize", useRoundedSize: "useRoundedSize", useResizeObserver: "useResizeObserver", observeChildren: "observeChildren", scrollContainer: "scrollContainer", appliedItemChecker: "appliedItemChecker", usePlaceholder: "usePlaceholder", useLoading: "useLoading", status: "status", useFirstRender: "useFirstRender", items: "items", trackBy: "trackBy", groupBy: "groupBy", infoBy: "infoBy" }, outputs: { renderComplete: "renderComplete", contentError: "contentError", changeScroll: "changeScroll", requestAppend: "requestAppend", requestPrepend: "requestPrepend" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '<slot></slot>', isInline: true, styles: [":host{display:block}\n"] });
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxInfiniteGridComponent, decorators: [{
150
+ type: Component,
151
+ args: [{ selector: 'ngx-infinite-grid, [NgxInfiniteGrid]', template: '<slot></slot>', styles: [":host{display:block}\n"] }]
152
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
153
+ type: Inject,
154
+ args: [PLATFORM_ID]
155
+ }] }, { type: i0.NgZone }]; }, propDecorators: { gridConstructor: [{
156
+ type: Input
157
+ }], renderer: [{
158
+ type: Input
159
+ }], container: [{
160
+ type: Input
161
+ }], containerTag: [{
162
+ type: Input
163
+ }], threshold: [{
164
+ type: Input
165
+ }], useRecycle: [{
166
+ type: Input
167
+ }], horizontal: [{
168
+ type: Input
169
+ }], percentage: [{
170
+ type: Input
171
+ }], isEqualSize: [{
172
+ type: Input
173
+ }], isConstantSize: [{
174
+ type: Input
175
+ }], gap: [{
176
+ type: Input
177
+ }], attributePrefix: [{
178
+ type: Input
179
+ }], resizeDebounce: [{
180
+ type: Input
181
+ }], maxResizeDebounce: [{
182
+ type: Input
183
+ }], autoResize: [{
184
+ type: Input
185
+ }], useFit: [{
186
+ type: Input
187
+ }], useTransform: [{
188
+ type: Input
189
+ }], renderOnPropertyChange: [{
190
+ type: Input
191
+ }], preserveUIOnDestroy: [{
192
+ type: Input
193
+ }], defaultDirection: [{
194
+ type: Input
195
+ }], externalItemRenderer: [{
196
+ type: Input
197
+ }], externalContainerManager: [{
198
+ type: Input
199
+ }], outlineLength: [{
200
+ type: Input
201
+ }], outlineSize: [{
202
+ type: Input
203
+ }], useRoundedSize: [{
204
+ type: Input
205
+ }], useResizeObserver: [{
206
+ type: Input
207
+ }], observeChildren: [{
208
+ type: Input
209
+ }], scrollContainer: [{
210
+ type: Input
211
+ }], appliedItemChecker: [{
212
+ type: Input
213
+ }], usePlaceholder: [{
214
+ type: Input
215
+ }], useLoading: [{
216
+ type: Input
217
+ }], status: [{
218
+ type: Input
219
+ }], useFirstRender: [{
220
+ type: Input
221
+ }], items: [{
222
+ type: Input
223
+ }], trackBy: [{
224
+ type: Input
225
+ }], groupBy: [{
226
+ type: Input
227
+ }], infoBy: [{
228
+ type: Input
229
+ }], renderComplete: [{
230
+ type: Output
231
+ }], contentError: [{
232
+ type: Output
233
+ }], changeScroll: [{
234
+ type: Output
235
+ }], requestAppend: [{
236
+ type: Output
237
+ }], requestPrepend: [{
238
+ type: Output
239
+ }] } });
240
+
241
+ const TEMPLATE = `
242
+ <ng-template #content><ng-content></ng-content></ng-template>
243
+
244
+ <ng-template #viewer>
245
+ <div *ngIf="container === true; else noContainer" #containerRef>
246
+ <ng-template [ngTemplateOutlet]="content"></ng-template>
247
+ </div>
248
+
249
+ <ng-template #noContainer>
250
+ <ng-template [ngTemplateOutlet]="content"></ng-template>
251
+ </ng-template>
252
+ </ng-template>
253
+
254
+ <div *ngIf="elementRef.nativeElement.tagName.indexOf('NGX-') === 0; else noWrapper" #wrapperRef>
255
+ <ng-template [ngTemplateOutlet]="viewer"></ng-template>
256
+ </div>
257
+
258
+ <ng-template #noWrapper>
259
+ <ng-template [ngTemplateOutlet]="viewer"></ng-template>
260
+ </ng-template>
261
+ `;
262
+
263
+ class NgxMasonryInfiniteGridComponent extends NgxInfiniteGridComponent {
264
+ }
265
+ NgxMasonryInfiniteGridComponent.GridClass = MasonryInfiniteGrid;
266
+ NgxMasonryInfiniteGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxMasonryInfiniteGridComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
267
+ NgxMasonryInfiniteGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: NgxMasonryInfiniteGridComponent, selector: "ngx-masonry-infinite-grid, [NgxMasonryInfiniteGrid]", inputs: { column: "column", columnSize: "columnSize", columnSizeRatio: "columnSizeRatio", align: "align", columnCalculationThreshold: "columnCalculationThreshold", maxStretchColumnSize: "maxStretchColumnSize" }, usesInheritance: true, ngImport: i0, template: "\n<ng-template #content><ng-content></ng-content></ng-template>\n\n<ng-template #viewer>\n <div *ngIf=\"container === true; else noContainer\" #containerRef>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </div>\n\n <ng-template #noContainer>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </ng-template>\n</ng-template>\n\n<div *ngIf=\"elementRef.nativeElement.tagName.indexOf('NGX-') === 0; else noWrapper\" #wrapperRef>\n <ng-template [ngTemplateOutlet]=\"viewer\"></ng-template>\n</div>\n\n<ng-template #noWrapper>\n <ng-template [ngTemplateOutlet]=\"viewer\"></ng-template>\n</ng-template>\n", isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
268
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxMasonryInfiniteGridComponent, decorators: [{
269
+ type: Component,
270
+ args: [{
271
+ selector: 'ngx-masonry-infinite-grid, [NgxMasonryInfiniteGrid]',
272
+ template: TEMPLATE,
273
+ }]
274
+ }], propDecorators: { column: [{
275
+ type: Input
276
+ }], columnSize: [{
277
+ type: Input
278
+ }], columnSizeRatio: [{
279
+ type: Input
280
+ }], align: [{
281
+ type: Input
282
+ }], columnCalculationThreshold: [{
283
+ type: Input
284
+ }], maxStretchColumnSize: [{
285
+ type: Input
286
+ }] } });
287
+
288
+ class NgxJustifiedInfiniteGridComponent extends NgxInfiniteGridComponent {
289
+ }
290
+ NgxJustifiedInfiniteGridComponent.GridClass = JustifiedInfiniteGrid;
291
+ NgxJustifiedInfiniteGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxJustifiedInfiniteGridComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
292
+ NgxJustifiedInfiniteGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: NgxJustifiedInfiniteGridComponent, selector: "ngx-justified-infinite-grid, [NgxJustifiedInfiniteGrid]", inputs: { columnRange: "columnRange", rowRange: "rowRange", sizeRange: "sizeRange", displayedRow: "displayedRow", isCroppedSize: "isCroppedSize" }, usesInheritance: true, ngImport: i0, template: "\n<ng-template #content><ng-content></ng-content></ng-template>\n\n<ng-template #viewer>\n <div *ngIf=\"container === true; else noContainer\" #containerRef>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </div>\n\n <ng-template #noContainer>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </ng-template>\n</ng-template>\n\n<div *ngIf=\"elementRef.nativeElement.tagName.indexOf('NGX-') === 0; else noWrapper\" #wrapperRef>\n <ng-template [ngTemplateOutlet]=\"viewer\"></ng-template>\n</div>\n\n<ng-template #noWrapper>\n <ng-template [ngTemplateOutlet]=\"viewer\"></ng-template>\n</ng-template>\n", isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
293
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxJustifiedInfiniteGridComponent, decorators: [{
294
+ type: Component,
295
+ args: [{
296
+ selector: 'ngx-justified-infinite-grid, [NgxJustifiedInfiniteGrid]',
297
+ template: TEMPLATE,
298
+ }]
299
+ }], propDecorators: { columnRange: [{
300
+ type: Input
301
+ }], rowRange: [{
302
+ type: Input
303
+ }], sizeRange: [{
304
+ type: Input
305
+ }], displayedRow: [{
306
+ type: Input
307
+ }], isCroppedSize: [{
308
+ type: Input
309
+ }] } });
310
+
311
+ class NgxFrameInfiniteGridComponent extends NgxInfiniteGridComponent {
312
+ }
313
+ NgxFrameInfiniteGridComponent.GridClass = FrameInfiniteGrid;
314
+ NgxFrameInfiniteGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxFrameInfiniteGridComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
315
+ NgxFrameInfiniteGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: NgxFrameInfiniteGridComponent, selector: "ngx-frame-infinite-grid, [NgxFrameInfiniteGrid]", inputs: { frame: "frame", useFrameFill: "useFrameFill", rectSize: "rectSize" }, usesInheritance: true, ngImport: i0, template: "\n<ng-template #content><ng-content></ng-content></ng-template>\n\n<ng-template #viewer>\n <div *ngIf=\"container === true; else noContainer\" #containerRef>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </div>\n\n <ng-template #noContainer>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </ng-template>\n</ng-template>\n\n<div *ngIf=\"elementRef.nativeElement.tagName.indexOf('NGX-') === 0; else noWrapper\" #wrapperRef>\n <ng-template [ngTemplateOutlet]=\"viewer\"></ng-template>\n</div>\n\n<ng-template #noWrapper>\n <ng-template [ngTemplateOutlet]=\"viewer\"></ng-template>\n</ng-template>\n", isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
316
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxFrameInfiniteGridComponent, decorators: [{
317
+ type: Component,
318
+ args: [{
319
+ selector: 'ngx-frame-infinite-grid, [NgxFrameInfiniteGrid]',
320
+ template: TEMPLATE,
321
+ }]
322
+ }], propDecorators: { frame: [{
323
+ type: Input
324
+ }], useFrameFill: [{
325
+ type: Input
326
+ }], rectSize: [{
327
+ type: Input
328
+ }] } });
329
+
330
+ class NgxPackingInfiniteGridComponent extends NgxInfiniteGridComponent {
331
+ }
332
+ NgxPackingInfiniteGridComponent.GridClass = PackingInfiniteGrid;
333
+ NgxPackingInfiniteGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxPackingInfiniteGridComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
334
+ NgxPackingInfiniteGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: NgxPackingInfiniteGridComponent, selector: "ngx-packing-infinite-grid, [NgxPackingInfiniteGrid]", inputs: { aspectRatio: "aspectRatio", sizeWeight: "sizeWeight", ratioWeight: "ratioWeight", weightPriority: "weightPriority" }, usesInheritance: true, ngImport: i0, template: "\n<ng-template #content><ng-content></ng-content></ng-template>\n\n<ng-template #viewer>\n <div *ngIf=\"container === true; else noContainer\" #containerRef>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </div>\n\n <ng-template #noContainer>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </ng-template>\n</ng-template>\n\n<div *ngIf=\"elementRef.nativeElement.tagName.indexOf('NGX-') === 0; else noWrapper\" #wrapperRef>\n <ng-template [ngTemplateOutlet]=\"viewer\"></ng-template>\n</div>\n\n<ng-template #noWrapper>\n <ng-template [ngTemplateOutlet]=\"viewer\"></ng-template>\n</ng-template>\n", isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
335
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxPackingInfiniteGridComponent, decorators: [{
336
+ type: Component,
337
+ args: [{
338
+ selector: 'ngx-packing-infinite-grid, [NgxPackingInfiniteGrid]',
339
+ template: TEMPLATE,
340
+ }]
341
+ }], propDecorators: { aspectRatio: [{
342
+ type: Input
343
+ }], sizeWeight: [{
344
+ type: Input
345
+ }], ratioWeight: [{
346
+ type: Input
347
+ }], weightPriority: [{
348
+ type: Input
349
+ }] } });
350
+
351
+ class NgxInfiniteGridModule {
352
+ }
353
+ NgxInfiniteGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxInfiniteGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
354
+ NgxInfiniteGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: NgxInfiniteGridModule, declarations: [NgxInfiniteGridComponent,
355
+ NgxMasonryInfiniteGridComponent,
356
+ NgxJustifiedInfiniteGridComponent,
357
+ NgxFrameInfiniteGridComponent,
358
+ NgxPackingInfiniteGridComponent], imports: [CommonModule], exports: [NgxInfiniteGridComponent,
359
+ NgxMasonryInfiniteGridComponent,
360
+ NgxJustifiedInfiniteGridComponent,
361
+ NgxFrameInfiniteGridComponent,
362
+ NgxPackingInfiniteGridComponent] });
363
+ NgxInfiniteGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxInfiniteGridModule, imports: [CommonModule] });
364
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxInfiniteGridModule, decorators: [{
365
+ type: NgModule,
366
+ args: [{
367
+ declarations: [
368
+ NgxInfiniteGridComponent,
369
+ NgxMasonryInfiniteGridComponent,
370
+ NgxJustifiedInfiniteGridComponent,
371
+ NgxFrameInfiniteGridComponent,
372
+ NgxPackingInfiniteGridComponent,
373
+ ],
374
+ imports: [
375
+ CommonModule,
376
+ ],
377
+ exports: [
378
+ NgxInfiniteGridComponent,
379
+ NgxMasonryInfiniteGridComponent,
380
+ NgxJustifiedInfiniteGridComponent,
381
+ NgxFrameInfiniteGridComponent,
382
+ NgxPackingInfiniteGridComponent,
383
+ ],
384
+ }]
385
+ }] });
386
+
387
+ /** This shouldn't be used outside of the library, required for the Ivy compilation. */
388
+
389
+ /*
390
+ * Public API Surface of ngx-infinitegrid
391
+ */
392
+
393
+ /**
394
+ * Generated bundle index. Do not edit.
395
+ */
396
+
397
+ export { NgxInfiniteGridComponent, NgxInfiniteGridModule, NgxMasonryInfiniteGridComponent, NgxFrameInfiniteGridComponent as ɵNgxFrameInfiniteGridComponent, NgxJustifiedInfiniteGridComponent as ɵNgxJustifiedInfiniteGridComponent, NgxPackingInfiniteGridComponent as ɵNgxPackingInfiniteGridComponent };
398
+ //# sourceMappingURL=egjs-ngx-infinitegrid.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"egjs-ngx-infinitegrid.mjs","sources":["../../../projects/ngx-infinitegrid/src/lib/ngx-infinitegrid.interface.ts","../../../projects/ngx-infinitegrid/src/lib/ngx-infinitegrid.component.ts","../../../projects/ngx-infinitegrid/src/lib/consts.ts","../../../projects/ngx-infinitegrid/src/lib/grids/ngx-masonry-infinitegrid.component.ts","../../../projects/ngx-infinitegrid/src/lib/grids/ngx-justified-infinitegrid.component.ts","../../../projects/ngx-infinitegrid/src/lib/grids/ngx-frame-infinitegrid.component.ts","../../../projects/ngx-infinitegrid/src/lib/grids/ngx-packing-infinitegrid.component.ts","../../../projects/ngx-infinitegrid/src/lib/ngx-infinitegrid.module.ts","../../../projects/ngx-infinitegrid/src/private_export.ts","../../../projects/ngx-infinitegrid/src/public-api.ts","../../../projects/ngx-infinitegrid/src/egjs-ngx-infinitegrid.ts"],"sourcesContent":["/**\n * egjs-infinitegrid\n * Copyright (c) 2021-present NAVER Corp.\n * MIT license\n */\nimport VanillaInfiniteGrid, { InfiniteGridMethods, withInfiniteGridMethods } from '@egjs/infinitegrid';\nimport { NgxInfiniteGridComponent } from './ngx-infinitegrid.component';\n\nexport class NgxInfiniteGridInterface {\n @withInfiniteGridMethods\n protected vanillaGrid!: VanillaInfiniteGrid;\n}\nexport interface NgxInfiniteGridInterface extends InfiniteGridMethods<NgxInfiniteGridComponent> { }\n","/**\n * egjs-infinitegrid\n * Copyright (c) 2021-present NAVER Corp.\n * MIT license\n */\n import {\n AfterViewChecked,\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n PLATFORM_ID,\n Inject,\n NgZone\n} from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport {\n getRenderingItems,\n InfiniteGridFunction,\n InfiniteGridItem,\n InfiniteGridItemInfo,\n InfiniteGridOptions,\n INFINITEGRID_EVENTS,\n mountRenderingItems,\n OnContentError,\n OnRenderComplete,\n OnRequestAppend,\n OnRequestPrepend,\n OnChangeScroll,\n Renderer,\n} from '@egjs/infinitegrid';\nimport { NgxInfiniteGridInterface } from './ngx-infinitegrid.interface';\nimport { NgxInfiniteGridProps } from './types';\nimport Grid, { GridOptions } from '@egjs/grid';\n\n@Component({\n selector: 'ngx-infinite-grid, [NgxInfiniteGrid]',\n template: '<slot></slot>',\n styles: [\n ':host { display: block }',\n ],\n})\nexport class NgxInfiniteGridComponent\n extends NgxInfiniteGridInterface\n implements Required<InfiniteGridOptions>,\n NgxInfiniteGridProps,\n AfterViewInit, AfterViewChecked, OnChanges, OnDestroy {\n public static GridClass: InfiniteGridFunction | null = null;\n @Input() gridConstructor!: NgxInfiniteGridProps['gridConstructor'];\n @Input() renderer!: NgxInfiniteGridProps['renderer'];\n @Input() container!: NgxInfiniteGridProps['container'];\n @Input() containerTag!: NgxInfiniteGridProps['containerTag'];\n @Input() threshold!: NgxInfiniteGridProps['threshold'];\n @Input() useRecycle!: NgxInfiniteGridProps['useRecycle'];\n @Input() horizontal!: NgxInfiniteGridProps['horizontal'];\n @Input() percentage!: NgxInfiniteGridProps['percentage'];\n @Input() isEqualSize!: NgxInfiniteGridProps['isEqualSize'];\n @Input() isConstantSize!: NgxInfiniteGridProps['isConstantSize'];\n @Input() gap!: NgxInfiniteGridProps['gap'];\n @Input() attributePrefix!: NgxInfiniteGridProps['attributePrefix'];\n @Input() resizeDebounce!: NgxInfiniteGridProps['resizeDebounce'];\n @Input() maxResizeDebounce!: NgxInfiniteGridProps['maxResizeDebounce'];\n @Input() autoResize!: NgxInfiniteGridProps['autoResize'];\n @Input() useFit!: NgxInfiniteGridProps['useFit'];\n @Input() useTransform!: NgxInfiniteGridProps['useTransform'];\n @Input() renderOnPropertyChange!: NgxInfiniteGridProps['renderOnPropertyChange'];\n @Input() preserveUIOnDestroy!: NgxInfiniteGridProps['preserveUIOnDestroy'];\n @Input() defaultDirection!: NgxInfiniteGridProps['defaultDirection'];\n @Input() externalItemRenderer!: NgxInfiniteGridProps['externalItemRenderer'];\n @Input() externalContainerManager!: NgxInfiniteGridProps['externalContainerManager'];\n @Input() outlineLength!: NgxInfiniteGridProps['outlineLength'];\n @Input() outlineSize!: NgxInfiniteGridProps['outlineSize'];\n @Input() useRoundedSize!: NgxInfiniteGridProps['useRoundedSize'];\n @Input() useResizeObserver!: NgxInfiniteGridProps['useResizeObserver'];\n @Input() observeChildren!: NgxInfiniteGridProps['observeChildren'];\n @Input() scrollContainer!: NgxInfiniteGridProps['scrollContainer'];\n @Input() appliedItemChecker!: NgxInfiniteGridProps['appliedItemChecker'];\n\n @Input() usePlaceholder!: NgxInfiniteGridProps['useFirstRender'];\n @Input() useLoading!: NgxInfiniteGridProps['useLoading'];\n @Input() status!: NgxInfiniteGridProps['status'];\n @Input() useFirstRender!: NgxInfiniteGridProps['useFirstRender'];\n @Input() items: NgxInfiniteGridProps['items'] = [];\n @Input() trackBy: NgxInfiniteGridProps['trackBy'] = ((_, item) => item.key);\n @Input() groupBy: NgxInfiniteGridProps['groupBy'] = ((_, item) => item.groupKey);\n @Input() infoBy: NgxInfiniteGridProps['infoBy'] = () => ({});\n @Output() renderComplete!: EventEmitter<OnRenderComplete>;\n @Output() contentError!: EventEmitter<OnContentError>;\n @Output() changeScroll!: EventEmitter<OnChangeScroll>;\n @Output() requestAppend!: EventEmitter<OnRequestAppend>;\n @Output() requestPrepend!: EventEmitter<OnRequestPrepend>;\n public visibleItems: InfiniteGridItem[] = [];\n\n private _renderer = new Renderer();\n private _isChange = false;\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n public elementRef: ElementRef<HTMLElement>,\n @Inject(PLATFORM_ID) private _platformId: string,\n private _ngZone: NgZone\n ) {\n super();\n\n for (const name in INFINITEGRID_EVENTS) {\n const eventName = (INFINITEGRID_EVENTS as any)[name];\n (this as any)[eventName] = new EventEmitter();\n }\n }\n\n ngOnInit() {\n this._updateVisibleChildren();\n }\n\n ngOnChanges() {\n this._isChange = true;\n this._updateVisibleChildren();\n }\n\n ngAfterViewInit(): void {\n if (isPlatformServer(this._platformId)) {\n return;\n }\n\n const GridClass = (this.constructor as typeof NgxInfiniteGridComponent).GridClass;\n const defaultOptions = GridClass!.defaultOptions;\n const options: Partial<InfiniteGridOptions> = {};\n\n for (const name in defaultOptions) {\n if (name in this && typeof (this as any)[name] !== \"undefined\") {\n (options as any)[name] = (this as any)[name];\n }\n }\n\n options.renderer = this._renderer;\n\n // The `InfiniteGrid` set ups `scroll` and `resize` events through `ScrollManager`\n // and `ResizeWatcher`. These events force Angular to run change detection whenever\n // dispatched; this happens too often.\n const grid = this._ngZone.runOutsideAngular(\n () => new GridClass!(this.elementRef.nativeElement, options)\n );\n\n for (const name in INFINITEGRID_EVENTS) {\n const eventName = (INFINITEGRID_EVENTS as any)[name];\n\n fromEvent(grid, eventName)\n .pipe(takeUntil(this._destroy$))\n .subscribe((event) => {\n const emitter = (this as any)[eventName];\n if (emitter && emitter.observers.length > 0) {\n this._ngZone.run(() => emitter.emit(event));\n }\n });\n }\n\n this.vanillaGrid = grid;\n\n fromEvent(this._renderer, 'requestUpdate')\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => {\n this._ngZone.run(() => {\n this._isChange = true;\n this._updateVisibleChildren();\n });\n });\n\n mountRenderingItems(this._getItemInfos(), {\n grid,\n useFirstRender: this.useFirstRender,\n useLoading: this.useLoading,\n usePlaceholder: this.usePlaceholder,\n horizontal: this.horizontal,\n status: this.status,\n });\n this._renderer.updated();\n }\n\n ngAfterViewChecked() {\n if (!this._isChange || !this.vanillaGrid) {\n return;\n }\n const children = [].slice.call(this.getContainerElement().children);\n\n if (this.visibleItems.length !== children.length) {\n return;\n }\n this._isChange = false;\n const GridClass = (this.constructor as typeof NgxInfiniteGridComponent).GridClass;\n const propertyTypes = GridClass!.propertyTypes;\n const grid = this.vanillaGrid;\n\n for (const name in propertyTypes) {\n if (name in this) {\n (grid as any)[name] = (this as any)[name];\n }\n }\n\n this._renderer.updated(children);\n }\n\n ngOnDestroy() {\n this._destroy$.next();\n this.vanillaGrid?.destroy();\n }\n\n private _getItemInfos(): InfiniteGridItemInfo[] {\n const items = this.items;\n const trackBy = this.trackBy;\n const groupBy = this.groupBy;\n const infoBy = this.infoBy;\n\n return items.map((item, i) => {\n const {\n data,\n ...rest\n } = infoBy(i, item);\n return {\n groupKey: groupBy(i, item),\n key: trackBy(i, item),\n ...rest,\n data: {\n ...data,\n ...item,\n },\n };\n });\n }\n\n private _updateVisibleChildren() {\n this.visibleItems = getRenderingItems(this._getItemInfos(), {\n grid: this.vanillaGrid,\n useFirstRender: this.useFirstRender,\n useLoading: this.useLoading,\n usePlaceholder: this.usePlaceholder,\n horizontal: this.horizontal,\n status: this.status,\n });\n }\n}\n","export const TEMPLATE = `\n<ng-template #content><ng-content></ng-content></ng-template>\n\n<ng-template #viewer>\n <div *ngIf=\"container === true; else noContainer\" #containerRef>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </div>\n\n <ng-template #noContainer>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </ng-template>\n</ng-template>\n\n<div *ngIf=\"elementRef.nativeElement.tagName.indexOf('NGX-') === 0; else noWrapper\" #wrapperRef>\n <ng-template [ngTemplateOutlet]=\"viewer\"></ng-template>\n</div>\n\n<ng-template #noWrapper>\n <ng-template [ngTemplateOutlet]=\"viewer\"></ng-template>\n</ng-template>\n`;\n","import {\n NgxInfiniteGridComponent,\n} from '../ngx-infinitegrid.component';\nimport { Component, Input } from '@angular/core';\nimport {\n MasonryInfiniteGrid as VanillaMasonryInfiniteGrid,\n MasonryInfiniteGridOptions,\n} from \"@egjs/infinitegrid\";\nimport { TEMPLATE } from '../consts';\n\n\n@Component({\n selector: 'ngx-masonry-infinite-grid, [NgxMasonryInfiniteGrid]',\n template: TEMPLATE,\n})\nexport class NgxMasonryInfiniteGridComponent extends NgxInfiniteGridComponent\n implements Required<MasonryInfiniteGridOptions> {\n public static GridClass = VanillaMasonryInfiniteGrid;\n @Input() column!: Required<MasonryInfiniteGridOptions>['column'];\n @Input() columnSize!: Required<MasonryInfiniteGridOptions>['columnSize'];\n @Input() columnSizeRatio!: Required<MasonryInfiniteGridOptions>['columnSizeRatio'];\n @Input() align!: Required<MasonryInfiniteGridOptions>['align'];\n @Input() columnCalculationThreshold!: Required<MasonryInfiniteGridOptions>['columnCalculationThreshold'];\n @Input() maxStretchColumnSize!: Required<MasonryInfiniteGridOptions>['maxStretchColumnSize'];\n}\n","import {\n NgxInfiniteGridComponent,\n} from '../ngx-infinitegrid.component';\nimport { Component, Input } from '@angular/core';\nimport {\n JustifiedInfiniteGrid as VanillaJustifiedInfiniteGrid,\n JustifiedInfiniteGridOptions,\n} from \"@egjs/infinitegrid\";\nimport { TEMPLATE } from '../consts';\n\n\n@Component({\n selector: 'ngx-justified-infinite-grid, [NgxJustifiedInfiniteGrid]',\n template: TEMPLATE,\n})\nexport class NgxJustifiedInfiniteGridComponent extends NgxInfiniteGridComponent\n implements Required<JustifiedInfiniteGridOptions> {\n @Input() columnRange!: Required<JustifiedInfiniteGridOptions>['columnRange'];\n @Input() rowRange!: Required<JustifiedInfiniteGridOptions>['rowRange'];\n @Input() sizeRange!: Required<JustifiedInfiniteGridOptions>['sizeRange'];\n @Input() displayedRow!: Required<JustifiedInfiniteGridOptions>['displayedRow'];\n @Input() isCroppedSize!: Required<JustifiedInfiniteGridOptions>['isCroppedSize'];\n public static GridClass = VanillaJustifiedInfiniteGrid;\n}\n","import {\n NgxInfiniteGridComponent,\n} from '../ngx-infinitegrid.component';\nimport { Component, Input } from '@angular/core';\nimport {\n FrameInfiniteGrid as VanillaFrameInfiniteGrid,\n FrameInfiniteGridOptions,\n} from \"@egjs/infinitegrid\";\nimport { TEMPLATE } from '../consts';\n\n@Component({\n selector: 'ngx-frame-infinite-grid, [NgxFrameInfiniteGrid]',\n template: TEMPLATE,\n})\nexport class NgxFrameInfiniteGridComponent extends NgxInfiniteGridComponent\n implements Required<FrameInfiniteGridOptions> {\n @Input() frame!: Required<FrameInfiniteGridOptions>['frame'];\n @Input() useFrameFill!: Required<FrameInfiniteGridOptions>['useFrameFill'];\n @Input() rectSize!: Required<FrameInfiniteGridOptions>['rectSize'];\n public static GridClass = VanillaFrameInfiniteGrid;\n}\n","import {\n NgxInfiniteGridComponent,\n} from '../ngx-infinitegrid.component';\nimport { Component, Input } from '@angular/core';\nimport {\n PackingInfiniteGrid as VanillaPackingInfiniteGrid,\n PackingInfiniteGridOptions,\n} from \"@egjs/infinitegrid\";\nimport { TEMPLATE } from '../consts';\n\n\n@Component({\n selector: 'ngx-packing-infinite-grid, [NgxPackingInfiniteGrid]',\n template: TEMPLATE,\n})\nexport class NgxPackingInfiniteGridComponent extends NgxInfiniteGridComponent\n implements Required<PackingInfiniteGridOptions> {\n @Input() aspectRatio!: Required<PackingInfiniteGridOptions>['aspectRatio'];\n @Input() sizeWeight!: Required<PackingInfiniteGridOptions>['sizeWeight'];\n @Input() ratioWeight!: Required<PackingInfiniteGridOptions>['ratioWeight'];\n @Input() weightPriority!: Required<PackingInfiniteGridOptions>['weightPriority'];\n public static GridClass = VanillaPackingInfiniteGrid;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NgxInfiniteGridComponent } from './ngx-infinitegrid.component';\nimport { NgxMasonryInfiniteGridComponent } from './grids/ngx-masonry-infinitegrid.component';\nimport { NgxJustifiedInfiniteGridComponent } from './grids/ngx-justified-infinitegrid.component';\nimport { NgxFrameInfiniteGridComponent } from './grids/ngx-frame-infinitegrid.component';\nimport { NgxPackingInfiniteGridComponent } from './grids/ngx-packing-infinitegrid.component';\n\n\n\n\n@NgModule({\n declarations: [\n NgxInfiniteGridComponent,\n NgxMasonryInfiniteGridComponent,\n NgxJustifiedInfiniteGridComponent,\n NgxFrameInfiniteGridComponent,\n NgxPackingInfiniteGridComponent,\n ],\n imports: [\n CommonModule,\n ],\n exports: [\n NgxInfiniteGridComponent,\n NgxMasonryInfiniteGridComponent,\n NgxJustifiedInfiniteGridComponent,\n NgxFrameInfiniteGridComponent,\n NgxPackingInfiniteGridComponent,\n ],\n})\nexport class NgxInfiniteGridModule { }\n","/** This shouldn't be used outside of the library, required for the Ivy compilation. */\nexport { NgxJustifiedInfiniteGridComponent as ɵNgxJustifiedInfiniteGridComponent } from './lib/grids/ngx-justified-infinitegrid.component';\nexport { NgxFrameInfiniteGridComponent as ɵNgxFrameInfiniteGridComponent } from './lib/grids/ngx-frame-infinitegrid.component';\nexport { NgxPackingInfiniteGridComponent as ɵNgxPackingInfiniteGridComponent } from './lib/grids/ngx-packing-infinitegrid.component';\n","/*\n * Public API Surface of ngx-infinitegrid\n */\n\nexport * from './lib/grids/ngx-masonry-infinitegrid.component';\nexport * from './lib/ngx-infinitegrid.component';\nexport * from './lib/ngx-infinitegrid.module';\n\nexport * from './private_export';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["VanillaMasonryInfiniteGrid","VanillaJustifiedInfiniteGrid","VanillaFrameInfiniteGrid","VanillaPackingInfiniteGrid"],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@egjs/ngx-infinitegrid" />
5
+ export * from './public-api';
@@ -1,8 +1,11 @@
1
1
  import { NgxInfiniteGridComponent } from '../ngx-infinitegrid.component';
2
2
  import { FrameInfiniteGrid as VanillaFrameInfiniteGrid, FrameInfiniteGridOptions } from "@egjs/infinitegrid";
3
+ import * as i0 from "@angular/core";
3
4
  export declare class NgxFrameInfiniteGridComponent extends NgxInfiniteGridComponent implements Required<FrameInfiniteGridOptions> {
4
5
  frame: Required<FrameInfiniteGridOptions>['frame'];
5
6
  useFrameFill: Required<FrameInfiniteGridOptions>['useFrameFill'];
6
7
  rectSize: Required<FrameInfiniteGridOptions>['rectSize'];
7
8
  static GridClass: typeof VanillaFrameInfiniteGrid;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgxFrameInfiniteGridComponent, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgxFrameInfiniteGridComponent, "ngx-frame-infinite-grid, [NgxFrameInfiniteGrid]", never, { "frame": "frame"; "useFrameFill": "useFrameFill"; "rectSize": "rectSize"; }, {}, never, ["*"], false, never>;
8
11
  }
@@ -1,5 +1,6 @@
1
1
  import { NgxInfiniteGridComponent } from '../ngx-infinitegrid.component';
2
2
  import { JustifiedInfiniteGrid as VanillaJustifiedInfiniteGrid, JustifiedInfiniteGridOptions } from "@egjs/infinitegrid";
3
+ import * as i0 from "@angular/core";
3
4
  export declare class NgxJustifiedInfiniteGridComponent extends NgxInfiniteGridComponent implements Required<JustifiedInfiniteGridOptions> {
4
5
  columnRange: Required<JustifiedInfiniteGridOptions>['columnRange'];
5
6
  rowRange: Required<JustifiedInfiniteGridOptions>['rowRange'];
@@ -7,4 +8,6 @@ export declare class NgxJustifiedInfiniteGridComponent extends NgxInfiniteGridCo
7
8
  displayedRow: Required<JustifiedInfiniteGridOptions>['displayedRow'];
8
9
  isCroppedSize: Required<JustifiedInfiniteGridOptions>['isCroppedSize'];
9
10
  static GridClass: typeof VanillaJustifiedInfiniteGrid;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgxJustifiedInfiniteGridComponent, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgxJustifiedInfiniteGridComponent, "ngx-justified-infinite-grid, [NgxJustifiedInfiniteGrid]", never, { "columnRange": "columnRange"; "rowRange": "rowRange"; "sizeRange": "sizeRange"; "displayedRow": "displayedRow"; "isCroppedSize": "isCroppedSize"; }, {}, never, ["*"], false, never>;
10
13
  }
@@ -1,5 +1,6 @@
1
1
  import { NgxInfiniteGridComponent } from '../ngx-infinitegrid.component';
2
2
  import { MasonryInfiniteGrid as VanillaMasonryInfiniteGrid, MasonryInfiniteGridOptions } from "@egjs/infinitegrid";
3
+ import * as i0 from "@angular/core";
3
4
  export declare class NgxMasonryInfiniteGridComponent extends NgxInfiniteGridComponent implements Required<MasonryInfiniteGridOptions> {
4
5
  static GridClass: typeof VanillaMasonryInfiniteGrid;
5
6
  column: Required<MasonryInfiniteGridOptions>['column'];
@@ -8,4 +9,6 @@ export declare class NgxMasonryInfiniteGridComponent extends NgxInfiniteGridComp
8
9
  align: Required<MasonryInfiniteGridOptions>['align'];
9
10
  columnCalculationThreshold: Required<MasonryInfiniteGridOptions>['columnCalculationThreshold'];
10
11
  maxStretchColumnSize: Required<MasonryInfiniteGridOptions>['maxStretchColumnSize'];
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgxMasonryInfiniteGridComponent, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgxMasonryInfiniteGridComponent, "ngx-masonry-infinite-grid, [NgxMasonryInfiniteGrid]", never, { "column": "column"; "columnSize": "columnSize"; "columnSizeRatio": "columnSizeRatio"; "align": "align"; "columnCalculationThreshold": "columnCalculationThreshold"; "maxStretchColumnSize": "maxStretchColumnSize"; }, {}, never, ["*"], false, never>;
11
14
  }
@@ -1,9 +1,12 @@
1
1
  import { NgxInfiniteGridComponent } from '../ngx-infinitegrid.component';
2
2
  import { PackingInfiniteGrid as VanillaPackingInfiniteGrid, PackingInfiniteGridOptions } from "@egjs/infinitegrid";
3
+ import * as i0 from "@angular/core";
3
4
  export declare class NgxPackingInfiniteGridComponent extends NgxInfiniteGridComponent implements Required<PackingInfiniteGridOptions> {
4
5
  aspectRatio: Required<PackingInfiniteGridOptions>['aspectRatio'];
5
6
  sizeWeight: Required<PackingInfiniteGridOptions>['sizeWeight'];
6
7
  ratioWeight: Required<PackingInfiniteGridOptions>['ratioWeight'];
7
8
  weightPriority: Required<PackingInfiniteGridOptions>['weightPriority'];
8
9
  static GridClass: typeof VanillaPackingInfiniteGrid;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgxPackingInfiniteGridComponent, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgxPackingInfiniteGridComponent, "ngx-packing-infinite-grid, [NgxPackingInfiniteGrid]", never, { "aspectRatio": "aspectRatio"; "sizeWeight": "sizeWeight"; "ratioWeight": "ratioWeight"; "weightPriority": "weightPriority"; }, {}, never, ["*"], false, never>;
9
12
  }
@@ -7,6 +7,7 @@ import { AfterViewChecked, AfterViewInit, ElementRef, EventEmitter, OnChanges, O
7
7
  import { InfiniteGridFunction, InfiniteGridItem, InfiniteGridOptions, OnContentError, OnRenderComplete, OnRequestAppend, OnRequestPrepend, OnChangeScroll } from '@egjs/infinitegrid';
8
8
  import { NgxInfiniteGridInterface } from './ngx-infinitegrid.interface';
9
9
  import { NgxInfiniteGridProps } from './types';
10
+ import * as i0 from "@angular/core";
10
11
  export declare class NgxInfiniteGridComponent extends NgxInfiniteGridInterface implements Required<InfiniteGridOptions>, NgxInfiniteGridProps, AfterViewInit, AfterViewChecked, OnChanges, OnDestroy {
11
12
  elementRef: ElementRef<HTMLElement>;
12
13
  private _platformId;
@@ -48,6 +49,7 @@ export declare class NgxInfiniteGridComponent extends NgxInfiniteGridInterface i
48
49
  items: NgxInfiniteGridProps['items'];
49
50
  trackBy: NgxInfiniteGridProps['trackBy'];
50
51
  groupBy: NgxInfiniteGridProps['groupBy'];
52
+ infoBy: NgxInfiniteGridProps['infoBy'];
51
53
  renderComplete: EventEmitter<OnRenderComplete>;
52
54
  contentError: EventEmitter<OnContentError>;
53
55
  changeScroll: EventEmitter<OnChangeScroll>;
@@ -65,4 +67,6 @@ export declare class NgxInfiniteGridComponent extends NgxInfiniteGridInterface i
65
67
  ngOnDestroy(): void;
66
68
  private _getItemInfos;
67
69
  private _updateVisibleChildren;
70
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgxInfiniteGridComponent, never>;
71
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgxInfiniteGridComponent, "ngx-infinite-grid, [NgxInfiniteGrid]", never, { "gridConstructor": "gridConstructor"; "renderer": "renderer"; "container": "container"; "containerTag": "containerTag"; "threshold": "threshold"; "useRecycle": "useRecycle"; "horizontal": "horizontal"; "percentage": "percentage"; "isEqualSize": "isEqualSize"; "isConstantSize": "isConstantSize"; "gap": "gap"; "attributePrefix": "attributePrefix"; "resizeDebounce": "resizeDebounce"; "maxResizeDebounce": "maxResizeDebounce"; "autoResize": "autoResize"; "useFit": "useFit"; "useTransform": "useTransform"; "renderOnPropertyChange": "renderOnPropertyChange"; "preserveUIOnDestroy": "preserveUIOnDestroy"; "defaultDirection": "defaultDirection"; "externalItemRenderer": "externalItemRenderer"; "externalContainerManager": "externalContainerManager"; "outlineLength": "outlineLength"; "outlineSize": "outlineSize"; "useRoundedSize": "useRoundedSize"; "useResizeObserver": "useResizeObserver"; "observeChildren": "observeChildren"; "scrollContainer": "scrollContainer"; "appliedItemChecker": "appliedItemChecker"; "usePlaceholder": "usePlaceholder"; "useLoading": "useLoading"; "status": "status"; "useFirstRender": "useFirstRender"; "items": "items"; "trackBy": "trackBy"; "groupBy": "groupBy"; "infoBy": "infoBy"; }, { "renderComplete": "renderComplete"; "contentError": "contentError"; "changeScroll": "changeScroll"; "requestAppend": "requestAppend"; "requestPrepend": "requestPrepend"; }, never, never, false, never>;
68
72
  }
@@ -1,2 +1,12 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./ngx-infinitegrid.component";
3
+ import * as i2 from "./grids/ngx-masonry-infinitegrid.component";
4
+ import * as i3 from "./grids/ngx-justified-infinitegrid.component";
5
+ import * as i4 from "./grids/ngx-frame-infinitegrid.component";
6
+ import * as i5 from "./grids/ngx-packing-infinitegrid.component";
7
+ import * as i6 from "@angular/common";
1
8
  export declare class NgxInfiniteGridModule {
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgxInfiniteGridModule, never>;
10
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NgxInfiniteGridModule, [typeof i1.NgxInfiniteGridComponent, typeof i2.NgxMasonryInfiniteGridComponent, typeof i3.NgxJustifiedInfiniteGridComponent, typeof i4.NgxFrameInfiniteGridComponent, typeof i5.NgxPackingInfiniteGridComponent], [typeof i6.CommonModule], [typeof i1.NgxInfiniteGridComponent, typeof i2.NgxMasonryInfiniteGridComponent, typeof i3.NgxJustifiedInfiniteGridComponent, typeof i4.NgxFrameInfiniteGridComponent, typeof i5.NgxPackingInfiniteGridComponent]>;
11
+ static ɵinj: i0.ɵɵInjectorDeclaration<NgxInfiniteGridModule>;
2
12
  }
package/lib/types.d.ts CHANGED
@@ -16,4 +16,5 @@ export interface NgxInfiniteGridProps extends NgxInfiniteGridEvents, Required<In
16
16
  items: any[];
17
17
  trackBy: (index: number, item: any) => any;
18
18
  groupBy: (index: number, item: any) => any;
19
+ infoBy: (index: number, item: any) => Record<string, any>;
19
20
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@egjs/ngx-infinitegrid",
3
- "version": "4.10.0-beta.1",
3
+ "version": "4.10.0",
4
4
  "description": "An Angular component that can arrange items infinitely according to the type of grids",
5
5
  "repository": {
6
6
  "type": "git",
@@ -18,15 +18,27 @@
18
18
  },
19
19
  "license": "MIT",
20
20
  "dependencies": {
21
- "@egjs/infinitegrid": "~4.9.0",
22
- "tslib": "^2.0.0"
21
+ "@egjs/infinitegrid": "~4.10.0",
22
+ "tslib": "^2.3.0"
23
+ },
24
+ "module": "fesm2015/egjs-ngx-infinitegrid.mjs",
25
+ "es2020": "fesm2020/egjs-ngx-infinitegrid.mjs",
26
+ "esm2020": "esm2020/egjs-ngx-infinitegrid.mjs",
27
+ "fesm2020": "fesm2020/egjs-ngx-infinitegrid.mjs",
28
+ "fesm2015": "fesm2015/egjs-ngx-infinitegrid.mjs",
29
+ "typings": "index.d.ts",
30
+ "exports": {
31
+ "./package.json": {
32
+ "default": "./package.json"
33
+ },
34
+ ".": {
35
+ "types": "./index.d.ts",
36
+ "esm2020": "./esm2020/egjs-ngx-infinitegrid.mjs",
37
+ "es2020": "./fesm2020/egjs-ngx-infinitegrid.mjs",
38
+ "es2015": "./fesm2015/egjs-ngx-infinitegrid.mjs",
39
+ "node": "./fesm2015/egjs-ngx-infinitegrid.mjs",
40
+ "default": "./fesm2020/egjs-ngx-infinitegrid.mjs"
41
+ }
23
42
  },
24
- "main": "bundles/egjs-ngx-infinitegrid.umd.js",
25
- "module": "fesm2015/egjs-ngx-infinitegrid.js",
26
- "es2015": "fesm2015/egjs-ngx-infinitegrid.js",
27
- "esm2015": "esm2015/egjs-ngx-infinitegrid.js",
28
- "fesm2015": "fesm2015/egjs-ngx-infinitegrid.js",
29
- "typings": "egjs-ngx-infinitegrid.d.ts",
30
- "metadata": "egjs-ngx-infinitegrid.metadata.json",
31
43
  "sideEffects": false
32
44
  }