@egjs/ngx-infinitegrid 3.2.5 → 4.1.2-beta.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 (57) hide show
  1. package/README.md +111 -178
  2. package/bundles/egjs-ngx-infinitegrid.umd.js +587 -751
  3. package/bundles/egjs-ngx-infinitegrid.umd.js.map +1 -1
  4. package/bundles/egjs-ngx-infinitegrid.umd.min.js +12 -12
  5. package/bundles/egjs-ngx-infinitegrid.umd.min.js.map +1 -1
  6. package/egjs-ngx-infinitegrid.d.ts +5 -1
  7. package/egjs-ngx-infinitegrid.metadata.json +1 -1
  8. package/esm2015/egjs-ngx-infinitegrid.js +7 -7
  9. package/esm2015/lib/consts.js +20 -23
  10. package/esm2015/lib/grids/ngx-frame-infinitegrid.component.js +19 -0
  11. package/esm2015/lib/grids/ngx-justified-infinitegrid.component.js +21 -0
  12. package/esm2015/lib/grids/ngx-masonry-infinitegrid.component.js +20 -0
  13. package/esm2015/lib/grids/ngx-packing-infinitegrid.component.js +20 -0
  14. package/esm2015/lib/ngx-infinitegrid.component.js +135 -312
  15. package/esm2015/lib/ngx-infinitegrid.interface.js +10 -18
  16. package/esm2015/lib/ngx-infinitegrid.module.js +14 -21
  17. package/esm2015/lib/ngx-infinitegrid.service.js +5 -10
  18. package/esm2015/lib/types.js +2 -5
  19. package/esm2015/public-api.js +5 -13
  20. package/fesm2015/egjs-ngx-infinitegrid.js +215 -476
  21. package/fesm2015/egjs-ngx-infinitegrid.js.map +1 -1
  22. package/lib/consts.d.ts +1 -1
  23. package/lib/grids/ngx-frame-infinitegrid.component.d.ts +8 -0
  24. package/lib/grids/ngx-justified-infinitegrid.component.d.ts +10 -0
  25. package/lib/grids/ngx-masonry-infinitegrid.component.d.ts +9 -0
  26. package/lib/grids/ngx-packing-infinitegrid.component.d.ts +9 -0
  27. package/lib/ngx-infinitegrid.component.d.ts +58 -37
  28. package/lib/ngx-infinitegrid.interface.d.ts +9 -5
  29. package/lib/ngx-infinitegrid.service.d.ts +1 -1
  30. package/lib/types.d.ts +18 -4
  31. package/package.json +19 -16
  32. package/public-api.d.ts +1 -5
  33. package/esm2015/lib/ngx-framelayout.component.js +0 -28
  34. package/esm2015/lib/ngx-gridlayout.component.js +0 -28
  35. package/esm2015/lib/ngx-justifiedlayout.component.js +0 -28
  36. package/esm2015/lib/ngx-packinglayout.component.js +0 -28
  37. package/esm2015/lib/ngx-squarelayout.component.js +0 -28
  38. package/esm5/egjs-ngx-infinitegrid.js +0 -10
  39. package/esm5/lib/consts.js +0 -8
  40. package/esm5/lib/ngx-framelayout.component.js +0 -33
  41. package/esm5/lib/ngx-gridlayout.component.js +0 -33
  42. package/esm5/lib/ngx-infinitegrid.component.js +0 -385
  43. package/esm5/lib/ngx-infinitegrid.interface.js +0 -25
  44. package/esm5/lib/ngx-infinitegrid.module.js +0 -42
  45. package/esm5/lib/ngx-infinitegrid.service.js +0 -21
  46. package/esm5/lib/ngx-justifiedlayout.component.js +0 -33
  47. package/esm5/lib/ngx-packinglayout.component.js +0 -33
  48. package/esm5/lib/ngx-squarelayout.component.js +0 -33
  49. package/esm5/lib/types.js +0 -5
  50. package/esm5/public-api.js +0 -16
  51. package/fesm5/egjs-ngx-infinitegrid.js +0 -611
  52. package/fesm5/egjs-ngx-infinitegrid.js.map +0 -1
  53. package/lib/ngx-framelayout.component.d.ts +0 -5
  54. package/lib/ngx-gridlayout.component.d.ts +0 -5
  55. package/lib/ngx-justifiedlayout.component.d.ts +0 -5
  56. package/lib/ngx-packinglayout.component.d.ts +0 -5
  57. package/lib/ngx-squarelayout.component.d.ts +0 -5
@@ -1,347 +1,170 @@
1
1
  /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2
+ * egjs-infinitegrid
3
+ * Copyright (c) 2021-present NAVER Corp.
4
+ * MIT license
4
5
  */
5
- import { Component, ViewChild, ElementRef, Input, Output, EventEmitter, } from '@angular/core';
6
- import NativeInfiniteGrid, { GridLayout, categorize, ItemManager, IGNORE_CLASSNAME, INFINITEGRID_EVENTS, } from '@egjs/infinitegrid';
7
- import ListDiffer from '@egjs/list-differ';
8
- import { TEMPLATE } from './consts';
9
- import NgxinfiniteGridInterface from './ngx-infinitegrid.interface';
10
- export class NgxInfiniteGridComponent extends NgxinfiniteGridInterface {
11
- /**
12
- * @param {?} elRef
13
- */
14
- constructor(elRef) {
6
+ import { Component, ElementRef, EventEmitter, Input, Output, ViewChild, PLATFORM_ID, Inject, ChangeDetectionStrategy, ChangeDetectorRef, } from '@angular/core';
7
+ import { isPlatformBrowser } from '@angular/common';
8
+ import { getRenderingItems, INFINITEGRID_EVENTS, mountRenderingItems, Renderer, } from '@egjs/infinitegrid';
9
+ import { NgxInfiniteGridInterface } from './ngx-infinitegrid.interface';
10
+ // @dynamic
11
+ export class NgxInfiniteGridComponent extends NgxInfiniteGridInterface {
12
+ constructor(elementRef, _detectorRef, _platform) {
15
13
  super();
16
- this.elRef = elRef;
17
- this.trackBy = ((/**
18
- * @param {?} _
19
- * @param {?} item
20
- * @return {?}
21
- */
22
- (_, item) => item.key));
23
- this.groupBy = ((/**
24
- * @param {?} _
25
- * @param {?} item
26
- * @return {?}
27
- */
28
- (_, item) => item.groupKey));
14
+ this.elementRef = elementRef;
15
+ this._detectorRef = _detectorRef;
16
+ this._platform = _platform;
29
17
  this.items = [];
30
- this.useFirstRender = false;
31
- this.layoutType = GridLayout;
32
- this.options = {};
33
- this.layoutOptions = {};
34
- this.append = new EventEmitter();
35
- this.prepend = new EventEmitter();
36
- this.imageError = new EventEmitter();
37
- this.contentError = new EventEmitter();
38
- // tslint:disable-next-line: no-output-native
39
- this.change = new EventEmitter();
40
- this.layoutComplete = new EventEmitter();
41
- this.visibleChange = new EventEmitter();
42
- this.render = new EventEmitter();
18
+ this.trackBy = ((_, item) => item.key);
19
+ this.groupBy = ((_, item) => item.groupKey);
43
20
  this.visibleItems = [];
44
- this.layoutState = '';
45
- this.isChange = false;
46
- this.visibleDiffer = new ListDiffer([], (/**
47
- * @param {?} item
48
- * @return {?}
49
- */
50
- item => item.itemKey));
51
- this.nextFunction = (/**
52
- * @return {?}
53
- */
54
- () => { });
55
- this.setStatus = (/**
56
- * @param {?} status
57
- * @param {?=} applyScrollPos
58
- * @param {?=} syncElements
59
- * @return {?}
60
- */
61
- (status, applyScrollPos, syncElements = this.getElements()) => {
62
- this.ig.setStatus(status, applyScrollPos, syncElements);
63
- return this;
64
- });
21
+ this._renderer = new Renderer();
22
+ this._isChange = false;
23
+ for (const name in INFINITEGRID_EVENTS) {
24
+ const eventName = INFINITEGRID_EVENTS[name];
25
+ this[eventName] = new EventEmitter();
26
+ }
65
27
  }
66
- /**
67
- * @return {?}
68
- */
69
28
  ngOnInit() {
70
- /** @type {?} */
71
- const groups = categorize(this.items);
72
- if (this.status) {
73
- const { startCursor, endCursor } = this.status._infinite;
74
- this.updateVisibleItems(ItemManager.pluck(groups.slice(startCursor, endCursor + 1), 'items').map((/**
75
- * @param {?} item
76
- * @return {?}
77
- */
78
- item => item.data)));
79
- }
80
- else if (this.useFirstRender) {
81
- this.updateVisibleItems(this.items);
82
- }
29
+ this._updateVisibleChildren();
83
30
  }
84
- /**
85
- * @param {?} changes
86
- * @return {?}
87
- */
88
- ngOnChanges(changes) {
89
- /** @type {?} */
90
- const ig = this.ig;
91
- if (!ig) {
31
+ ngOnChanges() {
32
+ this._isChange = true;
33
+ this._updateVisibleChildren();
34
+ }
35
+ ngAfterViewInit() {
36
+ var _a;
37
+ if (!isPlatformBrowser(this._platform)) {
92
38
  return;
93
39
  }
94
- /** @type {?} */
95
- const result = ig.beforeSync(this.toItems());
96
- this.layoutState = result === 'relayout' ? result : this.layoutState || result;
97
- this.updateVisibleItems(this.getVisibleItems());
98
- this.isChange = true;
99
- if (changes.loading) {
100
- ig.setLoadingBar({
101
- append: this.loading,
102
- prepend: this.loading,
40
+ const GridClass = this.constructor.GridClass;
41
+ const defaultOptions = GridClass.defaultOptions;
42
+ const options = {};
43
+ const containerElement = (_a = this._containerRef) === null || _a === void 0 ? void 0 : _a.nativeElement;
44
+ for (const name in defaultOptions) {
45
+ if (name in this && typeof this[name] !== "undefined") {
46
+ options[name] = this[name];
47
+ }
48
+ }
49
+ if (containerElement) {
50
+ options.container = containerElement;
51
+ }
52
+ options.renderer = this._renderer;
53
+ const wrapper = this._wrapperRef || this.elementRef;
54
+ const grid = new GridClass(wrapper.nativeElement, options);
55
+ for (const name in INFINITEGRID_EVENTS) {
56
+ const eventName = INFINITEGRID_EVENTS[name];
57
+ grid.on(eventName, (e) => {
58
+ this[eventName].emit(e);
103
59
  });
104
60
  }
61
+ this.vanillaGrid = grid;
62
+ this._renderer.on("requestUpdate", () => {
63
+ this._isChange = true;
64
+ this._updateVisibleChildren();
65
+ });
66
+ mountRenderingItems(this._getItemInfos(), {
67
+ grid,
68
+ useFirstRender: this.useFirstRender,
69
+ useLoading: this.useLoading,
70
+ usePlaceholder: this.usePlaceholder,
71
+ horizontal: this.horizontal,
72
+ status: this.status,
73
+ });
74
+ this._renderer.updated();
105
75
  }
106
- /**
107
- * @return {?}
108
- */
109
76
  ngAfterViewChecked() {
110
- if (!this.isChange) {
77
+ if (!this._isChange || !this.vanillaGrid) {
111
78
  return;
112
79
  }
113
- this.isChange = false;
114
- this.ig.sync(this.getElements());
115
- /** @type {?} */
116
- const layoutState = this.layoutState;
117
- if (layoutState) {
118
- this.layoutState = '';
119
- this.ig.layout(layoutState === 'relayout');
120
- }
121
- this.nextFunction();
122
- this.nextFunction = (/**
123
- * @return {?}
124
- */
125
- () => { });
126
- }
127
- /**
128
- * @return {?}
129
- */
130
- ngAfterViewInit() {
131
- /** @type {?} */
132
- const ref = this.wrapperRef || this.elRef;
133
- this.ig = new NativeInfiniteGrid(ref.nativeElement, Object.assign({}, this.options, { renderExternal: true })).on('render', (/**
134
- * @param {?} __0
135
- * @return {?}
136
- */
137
- ({ next }) => {
138
- setTimeout((/**
139
- * @return {?}
140
- */
141
- () => {
142
- this.nextFunction = next;
143
- this.updateVisibleItems(this.getVisibleItems());
144
- this.isChange = true;
145
- }));
146
- }));
147
- /** @type {?} */
148
- const ig = this.ig;
149
- INFINITEGRID_EVENTS.forEach((/**
150
- * @param {?} name
151
- * @return {?}
152
- */
153
- name => {
154
- if (!this[name]) {
155
- return;
80
+ this._isChange = false;
81
+ const GridClass = this.constructor.GridClass;
82
+ const propertyTypes = GridClass.propertyTypes;
83
+ const grid = this.vanillaGrid;
84
+ for (const name in propertyTypes) {
85
+ if (name in this) {
86
+ grid[name] = this[name];
156
87
  }
157
- ig.on((/** @type {?} */ (name)), (/**
158
- * @param {?} e
159
- * @return {?}
160
- */
161
- e => {
162
- ((/** @type {?} */ (this)))[name].emit(Object.assign({}, e, { currentTarget: this }));
163
- }));
164
- }));
165
- ig.setLayout(this.layoutType, Object.assign({}, this.layoutOptions));
166
- if (this.loading) {
167
- ig.setLoadingBar({
168
- prepend: this.loading,
169
- append: this.loading,
170
- });
171
- }
172
- if (this.status) {
173
- this.setStatus(this.status, true);
174
- }
175
- else {
176
- ig.beforeSync(this.toItems());
177
- ig.layout(true);
178
88
  }
89
+ this._renderer.updated();
179
90
  }
180
- /**
181
- * @return {?}
182
- */
183
91
  ngOnDestroy() {
184
- this.ig.destroy();
185
- }
186
- /**
187
- * @private
188
- * @return {?}
189
- */
190
- getElements() {
191
- /** @type {?} */
192
- const ref = this.containerRef || this.wrapperRef || this.elRef;
193
- /** @type {?} */
194
- const elements = [].slice.call(ref.nativeElement.children);
195
- if (this.loading) {
196
- return elements.filter((/**
197
- * @param {?} el
198
- * @return {?}
199
- */
200
- el => {
201
- return el.className.indexOf(IGNORE_CLASSNAME) < 0;
202
- }));
203
- }
204
- return elements;
205
- }
206
- /**
207
- * @private
208
- * @return {?}
209
- */
210
- getVisibleItems() {
211
- return this.ig.getRenderingItems().map((/**
212
- * @param {?} item
213
- * @return {?}
214
- */
215
- item => item.data));
92
+ var _a;
93
+ (_a = this.vanillaGrid) === null || _a === void 0 ? void 0 : _a.destroy();
216
94
  }
217
- /**
218
- * @private
219
- * @return {?}
220
- */
221
- toItems() {
222
- /** @type {?} */
223
- const groupBy = this.groupBy;
224
- /** @type {?} */
95
+ _getItemInfos() {
96
+ const items = this.items;
225
97
  const trackBy = this.trackBy;
226
- return this.items.map((/**
227
- * @param {?} item
228
- * @param {?} i
229
- * @return {?}
230
- */
231
- (item, i) => ({
232
- groupKey: groupBy(i, item),
233
- itemKey: trackBy(i, item),
234
- data: item,
235
- })));
98
+ const groupBy = this.groupBy;
99
+ return items.map((item, i) => {
100
+ return {
101
+ groupKey: groupBy(i, item),
102
+ key: trackBy(i, item),
103
+ data: item,
104
+ };
105
+ });
236
106
  }
237
- /**
238
- * @private
239
- * @param {?} items
240
- * @return {?}
241
- */
242
- updateVisibleItems(items) {
243
- const { added, changed, removed } = this.visibleDiffer.update(items);
244
- this.visibleItems = items;
245
- if (added.length || changed.length || removed.length) {
246
- this.visibleChange.emit(items);
247
- }
107
+ _updateVisibleChildren() {
108
+ this.visibleItems = getRenderingItems(this._getItemInfos(), {
109
+ grid: this.vanillaGrid,
110
+ useFirstRender: this.useFirstRender,
111
+ useLoading: this.useLoading,
112
+ usePlaceholder: this.usePlaceholder,
113
+ horizontal: this.horizontal,
114
+ status: this.status,
115
+ });
116
+ this._detectorRef.markForCheck();
248
117
  }
249
118
  }
250
119
  NgxInfiniteGridComponent.decorators = [
251
120
  { type: Component, args: [{
252
- selector: 'ngx-infinitegrid, [NgxInfiniteGrid]',
253
- template: TEMPLATE
254
- }] }
121
+ selector: 'ngx-infinite-grid, [NgxInfiniteGrid]',
122
+ template: '<slot></slot>',
123
+ changeDetection: ChangeDetectionStrategy.OnPush,
124
+ styles: [':host { display: block }']
125
+ },] }
255
126
  ];
256
- /** @nocollapse */
257
127
  NgxInfiniteGridComponent.ctorParameters = () => [
258
- { type: ElementRef }
128
+ { type: ElementRef },
129
+ { type: ChangeDetectorRef },
130
+ { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }
259
131
  ];
260
132
  NgxInfiniteGridComponent.propDecorators = {
261
- trackBy: [{ type: Input }],
262
- groupBy: [{ type: Input }],
263
- items: [{ type: Input }],
133
+ gridConstructor: [{ type: Input }],
134
+ renderer: [{ type: Input }],
135
+ container: [{ type: Input }],
136
+ containerTag: [{ type: Input }],
137
+ threshold: [{ type: Input }],
138
+ useRecycle: [{ type: Input }],
139
+ horizontal: [{ type: Input }],
140
+ percentage: [{ type: Input }],
141
+ isEqualSize: [{ type: Input }],
142
+ isConstantSize: [{ type: Input }],
143
+ gap: [{ type: Input }],
144
+ attributePrefix: [{ type: Input }],
145
+ resizeDebounce: [{ type: Input }],
146
+ maxResizeDebounce: [{ type: Input }],
147
+ autoResize: [{ type: Input }],
148
+ useFit: [{ type: Input }],
149
+ useTransform: [{ type: Input }],
150
+ renderOnPropertyChange: [{ type: Input }],
151
+ preserveUIOnDestroy: [{ type: Input }],
152
+ defaultDirection: [{ type: Input }],
153
+ externalItemRenderer: [{ type: Input }],
154
+ externalContainerManager: [{ type: Input }],
155
+ usePlaceholder: [{ type: Input }],
156
+ useLoading: [{ type: Input }],
264
157
  status: [{ type: Input }],
265
- loading: [{ type: Input }],
266
158
  useFirstRender: [{ type: Input }],
267
- layoutType: [{ type: Input }],
268
- options: [{ type: Input }],
269
- layoutOptions: [{ type: Input }],
270
- append: [{ type: Output }],
271
- prepend: [{ type: Output }],
272
- imageError: [{ type: Output }],
159
+ items: [{ type: Input }],
160
+ trackBy: [{ type: Input }],
161
+ groupBy: [{ type: Input }],
162
+ renderComplete: [{ type: Output }],
273
163
  contentError: [{ type: Output }],
274
- change: [{ type: Output }],
275
- layoutComplete: [{ type: Output }],
276
- visibleChange: [{ type: Output }],
277
- render: [{ type: Output }],
278
- wrapperRef: [{ type: ViewChild, args: ['wrapper', { static: false },] }],
279
- containerRef: [{ type: ViewChild, args: ['container', { static: false },] }]
164
+ changeScroll: [{ type: Output }],
165
+ requestAppend: [{ type: Output }],
166
+ requestPrepend: [{ type: Output }],
167
+ _wrapperRef: [{ type: ViewChild, args: ['wrapperRef', { static: false },] }],
168
+ _containerRef: [{ type: ViewChild, args: ['containerRef', { static: false },] }]
280
169
  };
281
- if (false) {
282
- /** @type {?} */
283
- NgxInfiniteGridComponent.prototype.trackBy;
284
- /** @type {?} */
285
- NgxInfiniteGridComponent.prototype.groupBy;
286
- /** @type {?} */
287
- NgxInfiniteGridComponent.prototype.items;
288
- /** @type {?} */
289
- NgxInfiniteGridComponent.prototype.status;
290
- /** @type {?} */
291
- NgxInfiniteGridComponent.prototype.loading;
292
- /** @type {?} */
293
- NgxInfiniteGridComponent.prototype.useFirstRender;
294
- /** @type {?} */
295
- NgxInfiniteGridComponent.prototype.layoutType;
296
- /** @type {?} */
297
- NgxInfiniteGridComponent.prototype.options;
298
- /** @type {?} */
299
- NgxInfiniteGridComponent.prototype.layoutOptions;
300
- /** @type {?} */
301
- NgxInfiniteGridComponent.prototype.append;
302
- /** @type {?} */
303
- NgxInfiniteGridComponent.prototype.prepend;
304
- /** @type {?} */
305
- NgxInfiniteGridComponent.prototype.imageError;
306
- /** @type {?} */
307
- NgxInfiniteGridComponent.prototype.contentError;
308
- /** @type {?} */
309
- NgxInfiniteGridComponent.prototype.change;
310
- /** @type {?} */
311
- NgxInfiniteGridComponent.prototype.layoutComplete;
312
- /** @type {?} */
313
- NgxInfiniteGridComponent.prototype.visibleChange;
314
- /** @type {?} */
315
- NgxInfiniteGridComponent.prototype.render;
316
- /** @type {?} */
317
- NgxInfiniteGridComponent.prototype.wrapperRef;
318
- /** @type {?} */
319
- NgxInfiniteGridComponent.prototype.containerRef;
320
- /** @type {?} */
321
- NgxInfiniteGridComponent.prototype.visibleItems;
322
- /**
323
- * @type {?}
324
- * @private
325
- */
326
- NgxInfiniteGridComponent.prototype.layoutState;
327
- /**
328
- * @type {?}
329
- * @private
330
- */
331
- NgxInfiniteGridComponent.prototype.isChange;
332
- /**
333
- * @type {?}
334
- * @private
335
- */
336
- NgxInfiniteGridComponent.prototype.visibleDiffer;
337
- /**
338
- * @type {?}
339
- * @private
340
- */
341
- NgxInfiniteGridComponent.prototype.nextFunction;
342
- /** @type {?} */
343
- NgxInfiniteGridComponent.prototype.setStatus;
344
- /** @type {?} */
345
- NgxInfiniteGridComponent.prototype.elRef;
346
- }
347
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWluZmluaXRlZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZWdqcy9uZ3gtaW5maW5pdGVncmlkLyIsInNvdXJjZXMiOlsibGliL25neC1pbmZpbml0ZWdyaWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFVLFNBQVMsRUFBRSxVQUFVLEVBQ3hDLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxHQUU1QixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLGtCQUFrQixFQUFFLEVBQ3pCLFVBQVUsRUFFVixVQUFVLEVBQ1YsV0FBVyxFQUtYLGdCQUFnQixFQUVoQixtQkFBbUIsR0FDcEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLFVBQVUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sd0JBQXdCLE1BQU0sOEJBQThCLENBQUM7QUFRcEUsTUFBTSxPQUFPLHdCQUNYLFNBQVEsd0JBQXdCOzs7O0lBa0NoQyxZQUFtQixLQUFpQjtRQUNsQyxLQUFLLEVBQUUsQ0FBQztRQURTLFVBQUssR0FBTCxLQUFLLENBQVk7UUE5QnBCLFlBQU8sR0FBd0M7Ozs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFDLENBQUM7UUFDdkUsWUFBTyxHQUF3Qzs7Ozs7UUFBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUMsQ0FBQztRQUM1RSxVQUFLLEdBQVksRUFBRSxDQUFDO1FBR3BCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLGVBQVUsR0FBc0IsVUFBVSxDQUFDO1FBQzNDLFlBQU8sR0FBa0MsRUFBRSxDQUFDO1FBQzVDLGtCQUFhLEdBQWdDLEVBQUUsQ0FBQztRQUUvQyxXQUFNLEdBQXNC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VTs7O3NCQWlDdkMsS0FBSztzQkFDTCxLQUFLO29CQUNMLEtBQUs7cUJBQ0wsS0FBSztzQkFDTCxLQUFLOzZCQUNMLEtBQUs7eUJBQ0wsS0FBSztzQkFDTCxLQUFLOzRCQUNMLEtBQUs7cUJBRUwsTUFBTTtzQkFDTixNQUFNO3lCQUNOLE1BQU07MkJBQ04sTUFBTTtxQkFFTixNQUFNOzZCQUNOLE1BQU07NEJBQ04sTUFBTTtxQkFDTixNQUFNO3lCQUVOLFNBQVMsU0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOzJCQUN0QyxTQUFTLFNBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs7OztJQXJCekMsMkNBQXVGOztJQUN2RiwyQ0FBNEY7O0lBQzVGLHlDQUFvQzs7SUFDcEMsMENBQTZDOztJQUM3QywyQ0FBc0M7O0lBQ3RDLGtEQUF1Qzs7SUFDdkMsOENBQTJEOztJQUMzRCwyQ0FBNEQ7O0lBQzVELGlEQUFnRTs7SUFFaEUsMENBQWdFOztJQUNoRSwyQ0FBaUU7O0lBQ2pFLDhDQUFvRTs7SUFDcEUsZ0RBQXNFOztJQUV0RSwwQ0FBZ0U7O0lBQ2hFLGtEQUF3RTs7SUFDeEUsaURBQXVFOztJQUN2RSwwQ0FBZ0U7O0lBRWhFLDhDQUFnRTs7SUFDaEUsZ0RBQW9FOztJQUVwRSxnREFBa0M7Ozs7O0lBRWxDLCtDQUF5Qjs7Ozs7SUFDekIsNENBQXlCOzs7OztJQUN6QixpREFBMkY7Ozs7O0lBQzNGLGdEQUFpQzs7SUF3RmpDLDZDQUdDOztJQXpGVyx5Q0FBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLFxuICBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgT25DaGFuZ2VzLFxuICBBZnRlclZpZXdJbml0LCBBZnRlclZpZXdDaGVja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IE5hdGl2ZUluZmluaXRlR3JpZCwge1xuICBHcmlkTGF5b3V0LFxuICBJTGF5b3V0LFxuICBjYXRlZ29yaXplLFxuICBJdGVtTWFuYWdlcixcbiAgSUl0ZW0sXG4gIElJbmZpbml0ZUdyaWRTdGF0dXMsXG4gIElJbmZpbml0ZUdyaWRJdGVtLFxuICBTdHlsZVR5cGUsXG4gIElHTk9SRV9DTEFTU05BTUUsXG4gIElJbmZpbml0ZUdyaWRPcHRpb25zLFxuICBJTkZJTklURUdSSURfRVZFTlRTLFxufSBmcm9tICdAZWdqcy9pbmZpbml0ZWdyaWQnO1xuaW1wb3J0IExpc3REaWZmZXIgZnJvbSAnQGVnanMvbGlzdC1kaWZmZXInO1xuaW1wb3J0IHsgVEVNUExBVEUgfSBmcm9tICcuL2NvbnN0cyc7XG5pbXBvcnQgTmd4aW5maW5pdGVHcmlkSW50ZXJmYWNlIGZyb20gJy4vbmd4LWluZmluaXRlZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSW5maW5pdGVHcmlkVHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtaW5maW5pdGVncmlkLCBbTmd4SW5maW5pdGVHcmlkXScsXG4gIHRlbXBsYXRlOiBURU1QTEFURSxcbiAgc3R5bGVzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hJbmZpbml0ZUdyaWRDb21wb25lbnRcbiAgZXh0ZW5kcyBOZ3hpbmZpbml0ZUdyaWRJbnRlcmZhY2VcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIEFmdGVyVmlld0NoZWNrZWQsXG4gIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBwdWJsaWMgdHJhY2tCeTogKChpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpID0+IGFueSkgPSAoKF8sIGl0ZW0pID0+IGl0ZW0ua2V5KTtcbiAgQElucHV0KCkgcHVibGljIGdyb3VwQnk6ICgoaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSA9PiBhbnkpID0gKChfLCBpdGVtKSA9PiBpdGVtLmdyb3VwS2V5KTtcbiAgQElucHV0KCkgcHVibGljIGl0ZW1zOiBJSXRlbVtdID0gW107XG4gIEBJbnB1dCgpIHB1YmxpYyBzdGF0dXMhOiBJSW5maW5pdGVHcmlkU3RhdHVzO1xuICBASW5wdXQoKSBwdWJsaWMgbG9hZGluZyE6IEhUTUxFbGVtZW50O1xuICBASW5wdXQoKSBwdWJsaWMgdXNlRmlyc3RSZW5kZXIgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGxheW91dFR5cGU6IG5ldyAoKSA9PiBJTGF5b3V0ID0gR3JpZExheW91dDtcbiAgQElucHV0KCkgcHVibGljIG9wdGlvbnM6IFBhcnRpYWw8SUluZmluaXRlR3JpZE9wdGlvbnM+ID0ge307XG4gIEBJbnB1dCgpIHB1YmxpYyBsYXlvdXRPcHRpb25zOiBQYXJ0aWFsPElMYXlvdXRbJ29wdGlvbnMnXT4gPSB7fTtcblxuICBAT3V0cHV0KCkgcHVibGljIGFwcGVuZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcHJlcGVuZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgaW1hZ2VFcnJvcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgY29udGVudEVycm9yOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1vdXRwdXQtbmF0aXZlXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBsYXlvdXRDb21wbGV0ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgdmlzaWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVuZGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAVmlld0NoaWxkKCd3cmFwcGVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIHdyYXBwZXJSZWY6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KSBjb250YWluZXJSZWY6IEVsZW1lbnRSZWY7XG5cbiAgcHVibGljIHZpc2libGVJdGVtczogSUl0ZW1bXSA9IFtdO1xuXG4gIHByaXZhdGUgbGF5b3V0U3RhdGUgPSAnJztcbiAgcHJpdmF0ZSBpc0NoYW5nZSA9IGZhbHNlO1xuICBwcml2YXRlIHZpc2libGVEaWZmZXI6IExpc3REaWZmZXI8SUl0ZW0+ID0gbmV3IExpc3REaWZmZXI8SUl0ZW0+KFtdLCBpdGVtID0+IGl0ZW0uaXRlbUtleSk7XG4gIHByaXZhdGUgbmV4dEZ1bmN0aW9uID0gKCkgPT4geyB9O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbFJlZjogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKCk7XG4gIH1cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgZ3JvdXBzID0gY2F0ZWdvcml6ZSh0aGlzLml0ZW1zKTtcblxuICAgIGlmICh0aGlzLnN0YXR1cykge1xuICAgICAgY29uc3QgeyBzdGFydEN1cnNvciwgZW5kQ3Vyc29yIH0gPSB0aGlzLnN0YXR1cy5faW5maW5pdGU7XG5cbiAgICAgIHRoaXMudXBkYXRlVmlzaWJsZUl0ZW1zKEl0ZW1NYW5hZ2VyLnBsdWNrKGdyb3Vwcy5zbGljZShzdGFydEN1cnNvciwgZW5kQ3Vyc29yICsgMSksICdpdGVtcycpLm1hcChpdGVtID0+IGl0ZW0uZGF0YSkpO1xuICAgIH0gZWxzZSBpZiAodGhpcy51c2VGaXJzdFJlbmRlcikge1xuICAgICAgdGhpcy51cGRhdGVWaXNpYmxlSXRlbXModGhpcy5pdGVtcyk7XG4gICAgfVxuICB9XG4gIG5nT25DaGFuZ2VzKGNoYW5nZXMpIHtcbiAgICBjb25zdCBpZyA9IHRoaXMuaWc7XG4gICAgaWYgKCFpZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSBpZy5iZWZvcmVTeW5jKHRoaXMudG9JdGVtcygpKTtcblxuICAgIHRoaXMubGF5b3V0U3RhdGUgPSByZXN1bHQgPT09ICdyZWxheW91dCcgPyByZXN1bHQgOiB0aGlzLmxheW91dFN0YXRlIHx8IHJlc3VsdDtcbiAgICB0aGlzLnVwZGF0ZVZpc2libGVJdGVtcyh0aGlzLmdldFZpc2libGVJdGVtcygpKTtcbiAgICB0aGlzLmlzQ2hhbmdlID0gdHJ1ZTtcblxuICAgIGlmIChjaGFuZ2VzLmxvYWRpbmcpIHtcbiAgICAgIGlnLnNldExvYWRpbmdCYXIoe1xuICAgICAgICBhcHBlbmQ6IHRoaXMubG9hZGluZyxcbiAgICAgICAgcHJlcGVuZDogdGhpcy5sb2FkaW5nLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICBpZiAoIXRoaXMuaXNDaGFuZ2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc0NoYW5nZSA9IGZhbHNlO1xuICAgIHRoaXMuaWcuc3luYyh0aGlzLmdldEVsZW1lbnRzKCkpO1xuXG4gICAgY29uc3QgbGF5b3V0U3RhdGUgPSB0aGlzLmxheW91dFN0YXRlO1xuICAgIGlmIChsYXlvdXRTdGF0ZSkge1xuICAgICAgdGhpcy5sYXlvdXRTdGF0ZSA9ICcnO1xuICAgICAgdGhpcy5pZy5sYXlvdXQobGF5b3V0U3RhdGUgPT09ICdyZWxheW91dCcpO1xuICAgIH1cbiAgICB0aGlzLm5leHRGdW5jdGlvbigpO1xuICAgIHRoaXMubmV4dEZ1bmN0aW9uID0gKCkgPT4geyB9O1xuICB9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBjb25zdCByZWYgPSB0aGlzLndyYXBwZXJSZWYgfHwgdGhpcy5lbFJlZjtcblxuICAgIHRoaXMuaWcgPSBuZXcgTmF0aXZlSW5maW5pdGVHcmlkKHJlZi5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICByZW5kZXJFeHRlcm5hbDogdHJ1ZSxcbiAgICB9KS5vbigncmVuZGVyJywgKHsgbmV4dCB9KSA9PiB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5uZXh0RnVuY3Rpb24gPSBuZXh0O1xuICAgICAgICB0aGlzLnVwZGF0ZVZpc2libGVJdGVtcyh0aGlzLmdldFZpc2libGVJdGVtcygpKTtcbiAgICAgICAgdGhpcy5pc0NoYW5nZSA9IHRydWU7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBjb25zdCBpZyA9IHRoaXMuaWc7XG5cbiAgICBJTkZJTklURUdSSURfRVZFTlRTLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICBpZiAoIXRoaXNbbmFtZV0pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWcub24obmFtZSBhcyBhbnksIGUgPT4ge1xuICAgICAgICAodGhpcyBhcyBhbnkpW25hbWVdLmVtaXQoeyAuLi5lLCBjdXJyZW50VGFyZ2V0OiB0aGlzIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgaWcuc2V0TGF5b3V0KHRoaXMubGF5b3V0VHlwZSwgeyAuLi50aGlzLmxheW91dE9wdGlvbnMgfSk7XG5cblxuICAgIGlmICh0aGlzLmxvYWRpbmcpIHtcbiAgICAgIGlnLnNldExvYWRpbmdCYXIoe1xuICAgICAgICBwcmVwZW5kOiB0aGlzLmxvYWRpbmcsXG4gICAgICAgIGFwcGVuZDogdGhpcy5sb2FkaW5nLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnN0YXR1cykge1xuICAgICAgdGhpcy5zZXRTdGF0dXModGhpcy5zdGF0dXMsIHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZy5iZWZvcmVTeW5jKHRoaXMudG9JdGVtcygpKTtcbiAgICAgIGlnLmxheW91dCh0cnVlKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIHNldFN0YXR1cyA9IChzdGF0dXM6IElJbmZpbml0ZUdyaWRTdGF0dXMsIGFwcGx5U2Nyb2xsUG9zPzogYm9vbGVhbiwgc3luY0VsZW1lbnRzOiBIVE1MRWxlbWVudFtdID0gdGhpcy5nZXRFbGVtZW50cygpKTogTmd4SW5maW5pdGVHcmlkQ29tcG9uZW50ID0+IHtcbiAgICB0aGlzLmlnLnNldFN0YXR1cyhzdGF0dXMsIGFwcGx5U2Nyb2xsUG9zLCBzeW5jRWxlbWVudHMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmlnLmRlc3Ryb3koKTtcbiAgfVxuICBwcml2YXRlIGdldEVsZW1lbnRzKCkge1xuICAgIGNvbnN0IHJlZiA9IHRoaXMuY29udGFpbmVyUmVmIHx8IHRoaXMud3JhcHBlclJlZiB8fCB0aGlzLmVsUmVmO1xuXG4gICAgY29uc3QgZWxlbWVudHMgPSBbXS5zbGljZS5jYWxsKHJlZi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuKTtcblxuICAgIGlmICh0aGlzLmxvYWRpbmcpIHtcbiAgICAgIHJldHVybiBlbGVtZW50cy5maWx0ZXIoZWwgPT4ge1xuICAgICAgICByZXR1cm4gZWwuY2xhc3NOYW1lLmluZGV4T2YoSUdOT1JFX0NMQVNTTkFNRSkgPCAwO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBlbGVtZW50cztcbiAgfVxuICBwcml2YXRlIGdldFZpc2libGVJdGVtcygpIHtcbiAgICByZXR1cm4gdGhpcy5pZy5nZXRSZW5kZXJpbmdJdGVtcygpLm1hcChpdGVtID0+IGl0ZW0uZGF0YSk7XG4gIH1cbiAgcHJpdmF0ZSB0b0l0ZW1zKCkge1xuICAgIGNvbnN0IGdyb3VwQnkgPSB0aGlzLmdyb3VwQnk7XG4gICAgY29uc3QgdHJhY2tCeSA9IHRoaXMudHJhY2tCeTtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5tYXAoKGl0ZW0sIGkpID0+ICh7XG4gICAgICBncm91cEtleTogZ3JvdXBCeShpLCBpdGVtKSxcbiAgICAgIGl0ZW1LZXk6IHRyYWNrQnkoaSwgaXRlbSksXG4gICAgICBkYXRhOiBpdGVtLFxuICAgIH0pKTtcbiAgfVxuICBwcml2YXRlIHVwZGF0ZVZpc2libGVJdGVtcyhpdGVtczogSUl0ZW1bXSkge1xuICAgIGNvbnN0IHsgYWRkZWQsIGNoYW5nZWQsIHJlbW92ZWQgfSA9IHRoaXMudmlzaWJsZURpZmZlci51cGRhdGUoaXRlbXMpO1xuXG4gICAgdGhpcy52aXNpYmxlSXRlbXMgPSBpdGVtcztcbiAgICBpZiAoYWRkZWQubGVuZ3RoIHx8IGNoYW5nZWQubGVuZ3RoIHx8IHJlbW92ZWQubGVuZ3RoKSB7XG4gICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChpdGVtcyk7XG4gICAgfVxuICB9XG59XG4iXX0=
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWluZmluaXRlZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaW5maW5pdGVncmlkL3NyYy9saWIvbmd4LWluZmluaXRlZ3JpZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE9BQU8sRUFDNEIsU0FBUyxFQUFFLFVBQVUsRUFDdEQsWUFBWSxFQUFFLEtBQUssRUFBd0IsTUFBTSxFQUFFLFNBQVMsRUFDNUQsV0FBVyxFQUFFLE1BQU0sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsR0FDaEUsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEQsT0FBTyxFQUNMLGlCQUFpQixFQUtqQixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBTW5CLFFBQVEsR0FDVCxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR3hFLFdBQVc7QUFTWCxNQUFNLE9BQU8sd0JBQ1gsU0FBUSx3QkFBd0I7SUE2Q2hDLFlBQ1ksVUFBc0IsRUFDeEIsWUFBK0IsRUFDVixTQUFpQjtRQUU5QyxLQUFLLEVBQUUsQ0FBQztRQUpFLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQW1CO1FBQ1YsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQWpCdkMsVUFBSyxHQUFrQyxFQUFFLENBQUM7UUFDMUMsWUFBTyxHQUFvQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25FLFlBQU8sR0FBb0MsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQU0xRSxpQkFBWSxHQUF1QixF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IGVnanMtaW5maW5pdGVncmlkXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEtcHJlc2VudCBOQVZFUiBDb3JwLlxuICogTUlUIGxpY2Vuc2VcbiAqL1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCwgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT3V0cHV0LCBWaWV3Q2hpbGQsXG4gIFBMQVRGT1JNX0lELCBJbmplY3QsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7XG4gIGdldFJlbmRlcmluZ0l0ZW1zLFxuICBJbmZpbml0ZUdyaWRGdW5jdGlvbixcbiAgSW5maW5pdGVHcmlkSXRlbSxcbiAgSW5maW5pdGVHcmlkSXRlbUluZm8sXG4gIEluZmluaXRlR3JpZE9wdGlvbnMsXG4gIElORklOSVRFR1JJRF9FVkVOVFMsXG4gIG1vdW50UmVuZGVyaW5nSXRlbXMsXG4gIE9uQ29udGVudEVycm9yLFxuICBPblJlbmRlckNvbXBsZXRlLFxuICBPblJlcXVlc3RBcHBlbmQsXG4gIE9uUmVxdWVzdFByZXBlbmQsXG4gIE9uQ2hhbmdlU2Nyb2xsLFxuICBSZW5kZXJlcixcbn0gZnJvbSAnQGVnanMvaW5maW5pdGVncmlkJztcbmltcG9ydCB7IE5neEluZmluaXRlR3JpZEludGVyZmFjZSB9IGZyb20gJy4vbmd4LWluZmluaXRlZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTmd4SW5maW5pdGVHcmlkUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuLy8gQGR5bmFtaWNcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC1pbmZpbml0ZS1ncmlkLCBbTmd4SW5maW5pdGVHcmlkXScsXG4gIHRlbXBsYXRlOiAnPHNsb3Q+PC9zbG90PicsXG4gIHN0eWxlczogW1xuICAgICc6aG9zdCB7IGRpc3BsYXk6IGJsb2NrIH0nLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd4SW5maW5pdGVHcmlkQ29tcG9uZW50XG4gIGV4dGVuZHMgTmd4SW5maW5pdGVHcmlkSW50ZXJmYWNlXG4gIGltcGxlbWVudHMgUmVxdWlyZWQ8SW5maW5pdGVHcmlkT3B0aW9ucz4sXG4gIE5neEluZmluaXRlR3JpZFByb3BzLFxuICBBZnRlclZpZXdJbml0LCBBZnRlclZpZXdDaGVja2VkLCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBzdGF0aWMgR3JpZENsYXNzOiBJbmZpbml0ZUdyaWRGdW5jdGlvbjtcbiAgQElucHV0KCkgZ3JpZENvbnN0cnVjdG9yITogTmd4SW5maW5pdGVHcmlkUHJvcHNbJ2dyaWRDb25zdHJ1Y3RvciddO1xuICBASW5wdXQoKSByZW5kZXJlciE6IE5neEluZmluaXRlR3JpZFByb3BzWydyZW5kZXJlciddO1xuICBASW5wdXQoKSBjb250YWluZXIhOiBOZ3hJbmZpbml0ZUdyaWRQcm9wc1snY29udGFpbmVyJ107XG4gIEBJbnB1dCgpIGNvbnRhaW5lclRhZyE6IE5neEluZmluaXRlR3JpZFByb3BzWydjb250YWluZXJUYWcnXTtcbiAgQElucHV0KCkgdGhyZXNob2xkITogTmd4SW5maW5pdGVHcmlkUHJvcHNbJ3RocmVzaG9sZCddO1xuICBASW5wdXQoKSB1c2VSZWN5Y2xlITogTmd4SW5maW5pdGVHcmlkUHJvcHNbJ3VzZVJlY3ljbGUnXTtcbiAgQElucHV0KCkgaG9yaXpvbnRhbCE6IE5neEluZmluaXRlR3JpZFByb3BzWydob3Jpem9udGFsJ107XG4gIEBJbnB1dCgpIHBlcmNlbnRhZ2UhOiBOZ3hJbmZpbml0ZUdyaWRQcm9wc1sncGVyY2VudGFnZSddO1xuICBASW5wdXQoKSBpc0VxdWFsU2l6ZSE6IE5neEluZmluaXRlR3JpZFByb3BzWydpc0VxdWFsU2l6ZSddO1xuICBASW5wdXQoKSBpc0NvbnN0YW50U2l6ZSE6IE5neEluZmluaXRlR3JpZFByb3BzWydpc0NvbnN0YW50U2l6ZSddO1xuICBASW5wdXQoKSBnYXAhOiBOZ3hJbmZpbml0ZUdyaWRQcm9wc1snZ2FwJ107XG4gIEBJbnB1dCgpIGF0dHJpYnV0ZVByZWZpeCE6IE5neEluZmluaXRlR3JpZFByb3BzWydhdHRyaWJ1dGVQcmVmaXgnXTtcbiAgQElucHV0KCkgcmVzaXplRGVib3VuY2UhOiBOZ3hJbmZpbml0ZUdyaWRQcm9wc1sncmVzaXplRGVib3VuY2UnXTtcbiAgQElucHV0KCkgbWF4UmVzaXplRGVib3VuY2UhOiBOZ3hJbmZpbml0ZUdyaWRQcm9wc1snbWF4UmVzaXplRGVib3VuY2UnXTtcbiAgQElucHV0KCkgYXV0b1Jlc2l6ZSE6IE5neEluZmluaXRlR3JpZFByb3BzWydhdXRvUmVzaXplJ107XG4gIEBJbnB1dCgpIHVzZUZpdCE6IE5neEluZmluaXRlR3JpZFByb3BzWyd1c2VGaXQnXTtcbiAgQElucHV0KCkgdXNlVHJhbnNmb3JtITogTmd4SW5maW5pdGVHcmlkUHJvcHNbJ3VzZVRyYW5zZm9ybSddO1xuICBASW5wdXQoKSByZW5kZXJPblByb3BlcnR5Q2hhbmdlITogTmd4SW5maW5pdGVHcmlkUHJvcHNbJ3JlbmRlck9uUHJvcGVydHlDaGFuZ2UnXTtcbiAgQElucHV0KCkgcHJlc2VydmVVSU9uRGVzdHJveSE6IE5neEluZmluaXRlR3JpZFByb3BzWydwcmVzZXJ2ZVVJT25EZXN0cm95J107XG4gIEBJbnB1dCgpIGRlZmF1bHREaXJlY3Rpb24hOiBOZ3hJbmZpbml0ZUdyaWRQcm9wc1snZGVmYXVsdERpcmVjdGlvbiddO1xuICBASW5wdXQoKSBleHRlcm5hbEl0ZW1SZW5kZXJlciE6IE5neEluZmluaXRlR3JpZFByb3BzWydleHRlcm5hbEl0ZW1SZW5kZXJlciddO1xuICBASW5wdXQoKSBleHRlcm5hbENvbnRhaW5lck1hbmFnZXIhOiBOZ3hJbmZpbml0ZUdyaWRQcm9wc1snZXh0ZXJuYWxDb250YWluZXJNYW5hZ2VyJ107XG4gIEBJbnB1dCgpIHVzZVBsYWNlaG9sZGVyITogTmd4SW5maW5pdGVHcmlkUHJvcHNbJ3VzZUZpcnN0UmVuZGVyJ107XG4gIEBJbnB1dCgpIHVzZUxvYWRpbmchOiBOZ3hJbmZpbml0ZUdyaWRQcm9wc1sndXNlTG9hZGluZyddO1xuICBASW5wdXQoKSBzdGF0dXMhOiBOZ3hJbmZpbml0ZUdyaWRQcm9wc1snc3RhdHVzJ107XG4gIEBJbnB1dCgpIHVzZUZpcnN0UmVuZGVyITogTmd4SW5maW5pdGVHcmlkUHJvcHNbJ3VzZUZpcnN0UmVuZGVyJ107XG4gIEBJbnB1dCgpIGl0ZW1zOiBOZ3hJbmZpbml0ZUdyaWRQcm9wc1snaXRlbXMnXSA9IFtdO1xuICBASW5wdXQoKSB0cmFja0J5OiBOZ3hJbmZpbml0ZUdyaWRQcm9wc1sndHJhY2tCeSddID0gKChfLCBpdGVtKSA9PiBpdGVtLmtleSk7XG4gIEBJbnB1dCgpIGdyb3VwQnk6IE5neEluZmluaXRlR3JpZFByb3BzWydncm91cEJ5J10gPSAoKF8sIGl0ZW0pID0+IGl0ZW0uZ3JvdXBLZXkpO1xuICBAT3V0cHV0KCkgcmVuZGVyQ29tcGxldGUhOiBFdmVudEVtaXR0ZXI8T25SZW5kZXJDb21wbGV0ZT47XG4gIEBPdXRwdXQoKSBjb250ZW50RXJyb3IhOiBFdmVudEVtaXR0ZXI8T25Db250ZW50RXJyb3I+O1xuICBAT3V0cHV0KCkgY2hhbmdlU2Nyb2xsITogRXZlbnRFbWl0dGVyPE9uQ2hhbmdlU2Nyb2xsPjtcbiAgQE91dHB1dCgpIHJlcXVlc3RBcHBlbmQhOiBFdmVudEVtaXR0ZXI8T25SZXF1ZXN0QXBwZW5kPjtcbiAgQE91dHB1dCgpIHJlcXVlc3RQcmVwZW5kITogRXZlbnRFbWl0dGVyPE9uUmVxdWVzdFByZXBlbmQ+O1xuICBwdWJsaWMgdmlzaWJsZUl0ZW1zOiBJbmZpbml0ZUdyaWRJdGVtW10gPSBbXTtcbiAgQFZpZXdDaGlsZCgnd3JhcHBlclJlZicsIHsgc3RhdGljOiBmYWxzZSB9KSBfd3JhcHBlclJlZiE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lclJlZicsIHsgc3RhdGljOiBmYWxzZSB9KSBfY29udGFpbmVyUmVmITogRWxlbWVudFJlZjtcbiAgcHJpdmF0ZSBfcmVuZGVyZXIgPSBuZXcgUmVuZGVyZXIoKTtcbiAgcHJpdmF0ZSBfaXNDaGFuZ2UgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIF9kZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBfcGxhdGZvcm06IE9iamVjdCxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICBmb3IgKGNvbnN0IG5hbWUgaW4gSU5GSU5JVEVHUklEX0VWRU5UUykge1xuICAgICAgY29uc3QgZXZlbnROYW1lID0gKElORklOSVRFR1JJRF9FVkVOVFMgYXMgYW55KVtuYW1lXTtcbiAgICAgICh0aGlzIGFzIGFueSlbZXZlbnROYW1lXSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl91cGRhdGVWaXNpYmxlQ2hpbGRyZW4oKTtcbiAgfVxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICB0aGlzLl9pc0NoYW5nZSA9IHRydWU7XG4gICAgdGhpcy5fdXBkYXRlVmlzaWJsZUNoaWxkcmVuKCk7XG4gIH1cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5fcGxhdGZvcm0pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IEdyaWRDbGFzcyA9ICh0aGlzLmNvbnN0cnVjdG9yIGFzIHR5cGVvZiBOZ3hJbmZpbml0ZUdyaWRDb21wb25lbnQpLkdyaWRDbGFzcztcbiAgICBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IEdyaWRDbGFzcy5kZWZhdWx0T3B0aW9ucztcbiAgICBjb25zdCBvcHRpb25zOiBQYXJ0aWFsPEluZmluaXRlR3JpZE9wdGlvbnM+ID0ge307XG4gICAgY29uc3QgY29udGFpbmVyRWxlbWVudCA9IHRoaXMuX2NvbnRhaW5lclJlZj8ubmF0aXZlRWxlbWVudDtcblxuICAgIGZvciAoY29uc3QgbmFtZSBpbiBkZWZhdWx0T3B0aW9ucykge1xuICAgICAgaWYgKG5hbWUgaW4gdGhpcyAmJiB0eXBlb2YgKHRoaXMgYXMgYW55KVtuYW1lXSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAob3B0aW9ucyBhcyBhbnkpW25hbWVdID0gKHRoaXMgYXMgYW55KVtuYW1lXTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNvbnRhaW5lckVsZW1lbnQpIHtcbiAgICAgIG9wdGlvbnMuY29udGFpbmVyID0gY29udGFpbmVyRWxlbWVudDtcbiAgICB9XG4gICAgb3B0aW9ucy5yZW5kZXJlciA9IHRoaXMuX3JlbmRlcmVyO1xuICAgIGNvbnN0IHdyYXBwZXIgPSB0aGlzLl93cmFwcGVyUmVmISB8fCB0aGlzLmVsZW1lbnRSZWY7XG5cbiAgICBjb25zdCBncmlkID0gbmV3IEdyaWRDbGFzcyh3cmFwcGVyLm5hdGl2ZUVsZW1lbnQsIG9wdGlvbnMpO1xuXG4gICAgZm9yIChjb25zdCBuYW1lIGluIElORklOSVRFR1JJRF9FVkVOVFMpIHtcbiAgICAgIGNvbnN0IGV2ZW50TmFtZSA9IChJTkZJTklURUdSSURfRVZFTlRTIGFzIGFueSlbbmFtZV07XG5cbiAgICAgIGdyaWQub24oZXZlbnROYW1lLCAoZTogYW55KSA9PiB7XG4gICAgICAgICh0aGlzIGFzIGFueSlbZXZlbnROYW1lXS5lbWl0KGUgYXMgYW55KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMudmFuaWxsYUdyaWQgPSBncmlkO1xuICAgIHRoaXMuX3JlbmRlcmVyLm9uKFwicmVxdWVzdFVwZGF0ZVwiLCAoKSA9PiB7XG4gICAgICB0aGlzLl9pc0NoYW5nZSA9IHRydWU7XG4gICAgICB0aGlzLl91cGRhdGVWaXNpYmxlQ2hpbGRyZW4oKTtcbiAgICB9KTtcblxuICAgIG1vdW50UmVuZGVyaW5nSXRlbXModGhpcy5fZ2V0SXRlbUluZm9zKCksIHtcbiAgICAgIGdyaWQsXG4gICAgICB1c2VGaXJzdFJlbmRlcjogdGhpcy51c2VGaXJzdFJlbmRlcixcbiAgICAgIHVzZUxvYWRpbmc6IHRoaXMudXNlTG9hZGluZyxcbiAgICAgIHVzZVBsYWNlaG9sZGVyOiB0aGlzLnVzZVBsYWNlaG9sZGVyLFxuICAgICAgaG9yaXpvbnRhbDogdGhpcy5ob3Jpem9udGFsLFxuICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1cyxcbiAgICB9KTtcbiAgICB0aGlzLl9yZW5kZXJlci51cGRhdGVkKCk7XG4gIH1cbiAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgIGlmICghdGhpcy5faXNDaGFuZ2UgfHwgIXRoaXMudmFuaWxsYUdyaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5faXNDaGFuZ2UgPSBmYWxzZTtcbiAgICBjb25zdCBHcmlkQ2xhc3MgPSAodGhpcy5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgTmd4SW5maW5pdGVHcmlkQ29tcG9uZW50KS5HcmlkQ2xhc3M7XG4gICAgY29uc3QgcHJvcGVydHlUeXBlcyA9IEdyaWRDbGFzcy5wcm9wZXJ0eVR5cGVzO1xuICAgIGNvbnN0IGdyaWQgPSB0aGlzLnZhbmlsbGFHcmlkO1xuXG4gICAgZm9yIChjb25zdCBuYW1lIGluIHByb3BlcnR5VHlwZXMpIHtcbiAgICAgIGlmIChuYW1lIGluIHRoaXMpIHtcbiAgICAgICAgKGdyaWQgYXMgYW55KVtuYW1lXSA9ICh0aGlzIGFzIGFueSlbbmFtZV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fcmVuZGVyZXIudXBkYXRlZCgpO1xuICB9XG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudmFuaWxsYUdyaWQ/LmRlc3Ryb3koKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEl0ZW1JbmZvcygpOiBJbmZpbml0ZUdyaWRJdGVtSW5mb1tdIHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuaXRlbXM7XG4gICAgY29uc3QgdHJhY2tCeSA9IHRoaXMudHJhY2tCeTtcbiAgICBjb25zdCBncm91cEJ5ID0gdGhpcy5ncm91cEJ5O1xuXG4gICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbSwgaSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZ3JvdXBLZXk6IGdyb3VwQnkoaSwgaXRlbSksXG4gICAgICAgIGtleTogdHJhY2tCeShpLCBpdGVtKSxcbiAgICAgICAgZGF0YTogaXRlbSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSBfdXBkYXRlVmlzaWJsZUNoaWxkcmVuKCkge1xuICAgIHRoaXMudmlzaWJsZUl0ZW1zID0gZ2V0UmVuZGVyaW5nSXRlbXModGhpcy5fZ2V0SXRlbUluZm9zKCksIHtcbiAgICAgIGdyaWQ6IHRoaXMudmFuaWxsYUdyaWQsXG4gICAgICB1c2VGaXJzdFJlbmRlcjogdGhpcy51c2VGaXJzdFJlbmRlcixcbiAgICAgIHVzZUxvYWRpbmc6IHRoaXMudXNlTG9hZGluZyxcbiAgICAgIHVzZVBsYWNlaG9sZGVyOiB0aGlzLnVzZVBsYWNlaG9sZGVyLFxuICAgICAgaG9yaXpvbnRhbDogdGhpcy5ob3Jpem9udGFsLFxuICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1cyxcbiAgICB9KTtcbiAgICB0aGlzLl9kZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIl19
@@ -1,21 +1,13 @@
1
+ import { __decorate } from "tslib";
1
2
  /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3
+ * egjs-infinitegrid
4
+ * Copyright (c) 2021-present NAVER Corp.
5
+ * MIT license
4
6
  */
5
- import * as tslib_1 from "tslib";
6
- import NativeInfiniteGrid, { withInfiniteGridMethods } from '@egjs/infinitegrid';
7
- export default class NgxInfiniteGridInterface {
7
+ import { withInfiniteGridMethods } from '@egjs/infinitegrid';
8
+ export class NgxInfiniteGridInterface {
8
9
  }
9
- tslib_1.__decorate([
10
- withInfiniteGridMethods,
11
- tslib_1.__metadata("design:type", NativeInfiniteGrid)
12
- ], NgxInfiniteGridInterface.prototype, "ig", void 0);
13
- if (false) {
14
- /**
15
- * @type {?}
16
- * @protected
17
- */
18
- NgxInfiniteGridInterface.prototype.ig;
19
- }
20
- // WARNING: interface has both a type and a value, skipping emit
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWluZmluaXRlZ3JpZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZWdqcy9uZ3gtaW5maW5pdGVncmlkLyIsInNvdXJjZXMiOlsibGliL25neC1pbmZpbml0ZWdyaWQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxrQkFBa0IsRUFBRSxFQUF1Qix1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSXRHLE1BQU0sQ0FBQyxPQUFPLE9BQU8sd0JBQXdCO0NBSTVDO0FBRkM7SUFEQyx1QkFBdUI7c0NBQ1Qsa0JBQWtCO29EQUFDOzs7Ozs7SUFEbEMsc0NBQ2tDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE5hdGl2ZUluZmluaXRlR3JpZCwgeyBJSW5maW5pdGVHcmlkU3RhdHVzLCB3aXRoSW5maW5pdGVHcmlkTWV0aG9kcyB9IGZyb20gJ0BlZ2pzL2luZmluaXRlZ3JpZCc7XG5pbXBvcnQgeyBJbmZpbml0ZUdyaWRUeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBOZ3hJbmZpbml0ZUdyaWRDb21wb25lbnQgfSBmcm9tICcuL25neC1pbmZpbml0ZWdyaWQuY29tcG9uZW50JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmd4SW5maW5pdGVHcmlkSW50ZXJmYWNlIHtcbiAgQHdpdGhJbmZpbml0ZUdyaWRNZXRob2RzXG4gIHByb3RlY3RlZCBpZyE6IE5hdGl2ZUluZmluaXRlR3JpZDtcblxufVxuZXhwb3J0IGRlZmF1bHQgaW50ZXJmYWNlIE5neEluZmluaXRlR3JpZEludGVyZmFjZSBleHRlbmRzIEluZmluaXRlR3JpZFR5cGU8Tmd4SW5maW5pdGVHcmlkQ29tcG9uZW50PiB7IH1cbiJdfQ==
10
+ __decorate([
11
+ withInfiniteGridMethods
12
+ ], NgxInfiniteGridInterface.prototype, "vanillaGrid", void 0);
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWluZmluaXRlZ3JpZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaW5maW5pdGVncmlkL3NyYy9saWIvbmd4LWluZmluaXRlZ3JpZC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7QUFDSCxPQUE0QixFQUF1Qix1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR3ZHLE1BQU0sT0FBTyx3QkFBd0I7Q0FHcEM7QUFEQztJQURDLHVCQUF1Qjs2REFDb0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGVnanMtaW5maW5pdGVncmlkXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEtcHJlc2VudCBOQVZFUiBDb3JwLlxuICogTUlUIGxpY2Vuc2VcbiAqL1xuaW1wb3J0IFZhbmlsbGFJbmZpbml0ZUdyaWQsIHsgSW5maW5pdGVHcmlkTWV0aG9kcywgd2l0aEluZmluaXRlR3JpZE1ldGhvZHMgfSBmcm9tICdAZWdqcy9pbmZpbml0ZWdyaWQnO1xuaW1wb3J0IHsgTmd4SW5maW5pdGVHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi9uZ3gtaW5maW5pdGVncmlkLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjbGFzcyBOZ3hJbmZpbml0ZUdyaWRJbnRlcmZhY2Uge1xuICBAd2l0aEluZmluaXRlR3JpZE1ldGhvZHNcbiAgcHJvdGVjdGVkIHZhbmlsbGFHcmlkITogVmFuaWxsYUluZmluaXRlR3JpZDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTmd4SW5maW5pdGVHcmlkSW50ZXJmYWNlIGV4dGVuZHMgSW5maW5pdGVHcmlkTWV0aG9kczxOZ3hJbmZpbml0ZUdyaWRDb21wb25lbnQ+IHsgfVxuIl19
@@ -1,38 +1,31 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
1
+ import { CommonModule } from '@angular/common';
5
2
  import { NgModule } from '@angular/core';
6
3
  import { NgxInfiniteGridComponent } from './ngx-infinitegrid.component';
7
- import { NgxGridLayoutComponent } from './ngx-gridlayout.component';
8
- import { NgxJustifiedLayoutComponent } from './ngx-justifiedlayout.component';
9
- import { NgxSquareLayoutComponent } from './ngx-squarelayout.component';
10
- import { NgxFrameLayoutComponent } from './ngx-framelayout.component';
11
- import { NgxPackingLayoutComponent } from './ngx-packinglayout.component';
12
- import { CommonModule } from '@angular/common';
4
+ import { NgxMasonryInfiniteGridComponent } from './grids/ngx-masonry-infinitegrid.component';
5
+ import { NgxJustifiedInfiniteGridComponent } from './grids/ngx-justified-infinitegrid.component';
6
+ import { NgxFrameInfiniteGridComponent } from './grids/ngx-frame-infinitegrid.component';
7
+ import { NgxPackingInfiniteGridComponent } from './grids/ngx-packing-infinitegrid.component';
13
8
  export class NgxInfiniteGridModule {
14
9
  }
15
10
  NgxInfiniteGridModule.decorators = [
16
11
  { type: NgModule, args: [{
17
12
  declarations: [
18
13
  NgxInfiniteGridComponent,
19
- NgxGridLayoutComponent,
20
- NgxJustifiedLayoutComponent,
21
- NgxSquareLayoutComponent,
22
- NgxFrameLayoutComponent,
23
- NgxPackingLayoutComponent,
14
+ NgxMasonryInfiniteGridComponent,
15
+ NgxJustifiedInfiniteGridComponent,
16
+ NgxFrameInfiniteGridComponent,
17
+ NgxPackingInfiniteGridComponent,
24
18
  ],
25
19
  imports: [
26
20
  CommonModule,
27
21
  ],
28
22
  exports: [
29
23
  NgxInfiniteGridComponent,
30
- NgxGridLayoutComponent,
31
- NgxJustifiedLayoutComponent,
32
- NgxSquareLayoutComponent,
33
- NgxFrameLayoutComponent,
34
- NgxPackingLayoutComponent,
24
+ NgxMasonryInfiniteGridComponent,
25
+ NgxJustifiedInfiniteGridComponent,
26
+ NgxFrameInfiniteGridComponent,
27
+ NgxPackingInfiniteGridComponent,
35
28
  ],
36
29
  },] }
37
30
  ];
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWluZmluaXRlZ3JpZC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZWdqcy9uZ3gtaW5maW5pdGVncmlkLyIsInNvdXJjZXMiOlsibGliL25neC1pbmZpbml0ZWdyaWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQXVCL0MsTUFBTSxPQUFPLHFCQUFxQjs7O1lBckJqQyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFO29CQUNaLHdCQUF3QjtvQkFDeEIsc0JBQXNCO29CQUN0QiwyQkFBMkI7b0JBQzNCLHdCQUF3QjtvQkFDeEIsdUJBQXVCO29CQUN2Qix5QkFBeUI7aUJBQzFCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxZQUFZO2lCQUNiO2dCQUNELE9BQU8sRUFBRTtvQkFDUCx3QkFBd0I7b0JBQ3hCLHNCQUFzQjtvQkFDdEIsMkJBQTJCO29CQUMzQix3QkFBd0I7b0JBQ3hCLHVCQUF1QjtvQkFDdkIseUJBQXlCO2lCQUMxQjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neEluZmluaXRlR3JpZENvbXBvbmVudCB9IGZyb20gJy4vbmd4LWluZmluaXRlZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmd4R3JpZExheW91dENvbXBvbmVudCB9IGZyb20gJy4vbmd4LWdyaWRsYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IE5neEp1c3RpZmllZExheW91dENvbXBvbmVudCB9IGZyb20gJy4vbmd4LWp1c3RpZmllZGxheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmd4U3F1YXJlTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9uZ3gtc3F1YXJlbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ3hGcmFtZUxheW91dENvbXBvbmVudCB9IGZyb20gJy4vbmd4LWZyYW1lbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ3hQYWNraW5nTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9uZ3gtcGFja2luZ2xheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTmd4SW5maW5pdGVHcmlkQ29tcG9uZW50LFxuICAgIE5neEdyaWRMYXlvdXRDb21wb25lbnQsXG4gICAgTmd4SnVzdGlmaWVkTGF5b3V0Q29tcG9uZW50LFxuICAgIE5neFNxdWFyZUxheW91dENvbXBvbmVudCxcbiAgICBOZ3hGcmFtZUxheW91dENvbXBvbmVudCxcbiAgICBOZ3hQYWNraW5nTGF5b3V0Q29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTmd4SW5maW5pdGVHcmlkQ29tcG9uZW50LFxuICAgIE5neEdyaWRMYXlvdXRDb21wb25lbnQsXG4gICAgTmd4SnVzdGlmaWVkTGF5b3V0Q29tcG9uZW50LFxuICAgIE5neFNxdWFyZUxheW91dENvbXBvbmVudCxcbiAgICBOZ3hGcmFtZUxheW91dENvbXBvbmVudCxcbiAgICBOZ3hQYWNraW5nTGF5b3V0Q29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hJbmZpbml0ZUdyaWRNb2R1bGUgeyB9XG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWluZmluaXRlZ3JpZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaW5maW5pdGVncmlkL3NyYy9saWIvbmd4LWluZmluaXRlZ3JpZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDN0YsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDakcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDekYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUF3QjdGLE1BQU0sT0FBTyxxQkFBcUI7OztZQW5CakMsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRTtvQkFDWix3QkFBd0I7b0JBQ3hCLCtCQUErQjtvQkFDL0IsaUNBQWlDO29CQUNqQyw2QkFBNkI7b0JBQzdCLCtCQUErQjtpQkFDaEM7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLFlBQVk7aUJBQ2I7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLHdCQUF3QjtvQkFDeEIsK0JBQStCO29CQUMvQixpQ0FBaUM7b0JBQ2pDLDZCQUE2QjtvQkFDN0IsK0JBQStCO2lCQUNoQzthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hJbmZpbml0ZUdyaWRDb21wb25lbnQgfSBmcm9tICcuL25neC1pbmZpbml0ZWdyaWQuY29tcG9uZW50JztcbmltcG9ydCB7IE5neE1hc29ucnlJbmZpbml0ZUdyaWRDb21wb25lbnQgfSBmcm9tICcuL2dyaWRzL25neC1tYXNvbnJ5LWluZmluaXRlZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmd4SnVzdGlmaWVkSW5maW5pdGVHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi9ncmlkcy9uZ3gtanVzdGlmaWVkLWluZmluaXRlZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmd4RnJhbWVJbmZpbml0ZUdyaWRDb21wb25lbnQgfSBmcm9tICcuL2dyaWRzL25neC1mcmFtZS1pbmZpbml0ZWdyaWQuY29tcG9uZW50JztcbmltcG9ydCB7IE5neFBhY2tpbmdJbmZpbml0ZUdyaWRDb21wb25lbnQgfSBmcm9tICcuL2dyaWRzL25neC1wYWNraW5nLWluZmluaXRlZ3JpZC5jb21wb25lbnQnO1xuXG5cblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBOZ3hJbmZpbml0ZUdyaWRDb21wb25lbnQsXG4gICAgTmd4TWFzb25yeUluZmluaXRlR3JpZENvbXBvbmVudCxcbiAgICBOZ3hKdXN0aWZpZWRJbmZpbml0ZUdyaWRDb21wb25lbnQsXG4gICAgTmd4RnJhbWVJbmZpbml0ZUdyaWRDb21wb25lbnQsXG4gICAgTmd4UGFja2luZ0luZmluaXRlR3JpZENvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIE5neEluZmluaXRlR3JpZENvbXBvbmVudCxcbiAgICBOZ3hNYXNvbnJ5SW5maW5pdGVHcmlkQ29tcG9uZW50LFxuICAgIE5neEp1c3RpZmllZEluZmluaXRlR3JpZENvbXBvbmVudCxcbiAgICBOZ3hGcmFtZUluZmluaXRlR3JpZENvbXBvbmVudCxcbiAgICBOZ3hQYWNraW5nSW5maW5pdGVHcmlkQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hJbmZpbml0ZUdyaWRNb2R1bGUgeyB9XG4iXX0=