@egjs/ngx-infinitegrid 3.3.0 → 4.1.2-beta.1

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 +586 -750
  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 +134 -311
  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 +214 -475
  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 +57 -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, } 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, _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._platform = _platform;
29
16
  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();
17
+ this.trackBy = ((_, item) => item.key);
18
+ this.groupBy = ((_, item) => item.groupKey);
43
19
  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
- });
20
+ this._renderer = new Renderer();
21
+ this._isChange = false;
22
+ for (const name in INFINITEGRID_EVENTS) {
23
+ const eventName = INFINITEGRID_EVENTS[name];
24
+ this[eventName] = new EventEmitter();
25
+ }
65
26
  }
66
- /**
67
- * @return {?}
68
- */
69
27
  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
- }
28
+ this._updateVisibleChildren();
83
29
  }
84
- /**
85
- * @param {?} changes
86
- * @return {?}
87
- */
88
- ngOnChanges(changes) {
89
- /** @type {?} */
90
- const ig = this.ig;
91
- if (!ig) {
30
+ ngOnChanges() {
31
+ this._isChange = true;
32
+ this._updateVisibleChildren();
33
+ }
34
+ ngAfterViewInit() {
35
+ var _a;
36
+ if (!isPlatformBrowser(this._platform)) {
92
37
  return;
93
38
  }
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,
39
+ const GridClass = this.constructor.GridClass;
40
+ const defaultOptions = GridClass.defaultOptions;
41
+ const options = {};
42
+ const containerElement = (_a = this._containerRef) === null || _a === void 0 ? void 0 : _a.nativeElement;
43
+ for (const name in defaultOptions) {
44
+ if (name in this && typeof this[name] !== "undefined") {
45
+ options[name] = this[name];
46
+ }
47
+ }
48
+ if (containerElement) {
49
+ options.container = containerElement;
50
+ }
51
+ options.renderer = this._renderer;
52
+ const wrapper = this._wrapperRef || this.elementRef;
53
+ const grid = new GridClass(wrapper.nativeElement, options);
54
+ for (const name in INFINITEGRID_EVENTS) {
55
+ const eventName = INFINITEGRID_EVENTS[name];
56
+ grid.on(eventName, (e) => {
57
+ this[eventName].emit(e);
103
58
  });
104
59
  }
60
+ this.vanillaGrid = grid;
61
+ this._renderer.on("requestUpdate", () => {
62
+ this._isChange = true;
63
+ this._updateVisibleChildren();
64
+ });
65
+ mountRenderingItems(this._getItemInfos(), {
66
+ grid,
67
+ useFirstRender: this.useFirstRender,
68
+ useLoading: this.useLoading,
69
+ usePlaceholder: this.usePlaceholder,
70
+ horizontal: this.horizontal,
71
+ status: this.status,
72
+ });
73
+ this._renderer.updated();
105
74
  }
106
- /**
107
- * @return {?}
108
- */
109
75
  ngAfterViewChecked() {
110
- if (!this.isChange) {
76
+ if (!this._isChange) {
111
77
  return;
112
78
  }
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');
79
+ const children = [].slice.call(this.getContainerElement().children);
80
+ if (this.visibleItems.length !== children.length) {
81
+ return;
120
82
  }
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;
83
+ this._isChange = false;
84
+ const GridClass = this.constructor.GridClass;
85
+ const propertyTypes = GridClass.propertyTypes;
86
+ const grid = this.vanillaGrid;
87
+ for (const name in propertyTypes) {
88
+ if (name in this) {
89
+ grid[name] = this[name];
156
90
  }
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
91
  }
92
+ this._renderer.updated(children);
179
93
  }
180
- /**
181
- * @return {?}
182
- */
183
94
  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));
95
+ var _a;
96
+ (_a = this.vanillaGrid) === null || _a === void 0 ? void 0 : _a.destroy();
216
97
  }
217
- /**
218
- * @private
219
- * @return {?}
220
- */
221
- toItems() {
222
- /** @type {?} */
223
- const groupBy = this.groupBy;
224
- /** @type {?} */
98
+ _getItemInfos() {
99
+ const items = this.items;
225
100
  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
- })));
101
+ const groupBy = this.groupBy;
102
+ return items.map((item, i) => {
103
+ return {
104
+ groupKey: groupBy(i, item),
105
+ key: trackBy(i, item),
106
+ data: item,
107
+ };
108
+ });
236
109
  }
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
- }
110
+ _updateVisibleChildren() {
111
+ this.visibleItems = getRenderingItems(this._getItemInfos(), {
112
+ grid: this.vanillaGrid,
113
+ useFirstRender: this.useFirstRender,
114
+ useLoading: this.useLoading,
115
+ usePlaceholder: this.usePlaceholder,
116
+ horizontal: this.horizontal,
117
+ status: this.status,
118
+ });
248
119
  }
249
120
  }
250
121
  NgxInfiniteGridComponent.decorators = [
251
122
  { type: Component, args: [{
252
- selector: 'ngx-infinitegrid, [NgxInfiniteGrid]',
253
- template: TEMPLATE
254
- }] }
123
+ selector: 'ngx-infinite-grid, [NgxInfiniteGrid]',
124
+ template: '<slot></slot>',
125
+ styles: [':host { display: block }']
126
+ },] }
255
127
  ];
256
- /** @nocollapse */
257
128
  NgxInfiniteGridComponent.ctorParameters = () => [
258
- { type: ElementRef }
129
+ { type: ElementRef },
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWluZmluaXRlZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaW5maW5pdGVncmlkL3NyYy9saWIvbmd4LWluZmluaXRlZ3JpZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE9BQU8sRUFDNEIsU0FBUyxFQUFFLFVBQVUsRUFDdEQsWUFBWSxFQUFFLEtBQUssRUFBd0IsTUFBTSxFQUFFLFNBQVMsRUFDNUQsV0FBVyxFQUFFLE1BQU0sR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEQsT0FBTyxFQUNMLGlCQUFpQixFQUtqQixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBTW5CLFFBQVEsR0FDVCxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR3hFLFdBQVc7QUFRWCxNQUFNLE9BQU8sd0JBQ1gsU0FBUSx3QkFBd0I7SUE2Q2hDLFlBQXNCLFVBQXNCLEVBQStCLFNBQWlCO1FBQzFGLEtBQUssRUFBRSxDQUFDO1FBRFksZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUErQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBZG5GLFVBQUssR0FBa0MsRUFBRSxDQUFDO1FBQzFDLFlBQU8sR0FBb0MsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRSxZQUFPLEdBQW9DLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFNMUUsaUJBQVksR0FBdUIsRUFBRSxDQUFDO1FBR3JDLGNBQVMsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzNCLGNBQVMsR0FBRyxL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KlxuICogZWdqcy1pbmZpbml0ZWdyaWRcbiAqIENvcHlyaWdodCAoYykgMjAyMS1wcmVzZW50IE5BVkVSIENvcnAuXG4gKiBNSVQgbGljZW5zZVxuICovXG5pbXBvcnQge1xuICBBZnRlclZpZXdDaGVja2VkLCBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPdXRwdXQsIFZpZXdDaGlsZCxcbiAgUExBVEZPUk1fSUQsIEluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7XG4gIGdldFJlbmRlcmluZ0l0ZW1zLFxuICBJbmZpbml0ZUdyaWRGdW5jdGlvbixcbiAgSW5maW5pdGVHcmlkSXRlbSxcbiAgSW5maW5pdGVHcmlkSXRlbUluZm8sXG4gIEluZmluaXRlR3JpZE9wdGlvbnMsXG4gIElORklOSVRFR1JJRF9FVkVOVFMsXG4gIG1vdW50UmVuZGVyaW5nSXRlbXMsXG4gIE9uQ29udGVudEVycm9yLFxuICBPblJlbmRlckNvbXBsZXRlLFxuICBPblJlcXVlc3RBcHBlbmQsXG4gIE9uUmVxdWVzdFByZXBlbmQsXG4gIE9uQ2hhbmdlU2Nyb2xsLFxuICBSZW5kZXJlcixcbn0gZnJvbSAnQGVnanMvaW5maW5pdGVncmlkJztcbmltcG9ydCB7IE5neEluZmluaXRlR3JpZEludGVyZmFjZSB9IGZyb20gJy4vbmd4LWluZmluaXRlZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTmd4SW5maW5pdGVHcmlkUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuLy8gQGR5bmFtaWNcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC1pbmZpbml0ZS1ncmlkLCBbTmd4SW5maW5pdGVHcmlkXScsXG4gIHRlbXBsYXRlOiAnPHNsb3Q+PC9zbG90PicsXG4gIHN0eWxlczogW1xuICAgICc6aG9zdCB7IGRpc3BsYXk6IGJsb2NrIH0nLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hJbmZpbml0ZUdyaWRDb21wb25lbnRcbiAgZXh0ZW5kcyBOZ3hJbmZpbml0ZUdyaWRJbnRlcmZhY2VcbiAgaW1wbGVtZW50cyBSZXF1aXJlZDxJbmZpbml0ZUdyaWRPcHRpb25zPixcbiAgTmd4SW5maW5pdGVHcmlkUHJvcHMsXG4gIEFmdGVyVmlld0luaXQsIEFmdGVyVmlld0NoZWNrZWQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgcHVibGljIHN0YXRpYyBHcmlkQ2xhc3M6IEluZmluaXRlR3JpZEZ1bmN0aW9uO1xuICBASW5wdXQoKSBncmlkQ29uc3RydWN0b3IhOiBOZ3hJbmZpbml0ZUdyaWRQcm9wc1snZ3JpZENvbnN0cnVjdG9yJ107XG4gIEBJbnB1dCgpIHJlbmRlcmVyITogTmd4SW5maW5pdGVHcmlkUHJvcHNbJ3JlbmRlcmVyJ107XG4gIEBJbnB1dCgpIGNvbnRhaW5lciE6IE5neEluZmluaXRlR3JpZFByb3BzWydjb250YWluZXInXTtcbiAgQElucHV0KCkgY29udGFpbmVyVGFnITogTmd4SW5maW5pdGVHcmlkUHJvcHNbJ2NvbnRhaW5lclRhZyddO1xuICBASW5wdXQoKSB0aHJlc2hvbGQhOiBOZ3hJbmZpbml0ZUdyaWRQcm9wc1sndGhyZXNob2xkJ107XG4gIEBJbnB1dCgpIHVzZVJlY3ljbGUhOiBOZ3hJbmZpbml0ZUdyaWRQcm9wc1sndXNlUmVjeWNsZSddO1xuICBASW5wdXQoKSBob3Jpem9udGFsITogTmd4SW5maW5pdGVHcmlkUHJvcHNbJ2hvcml6b250YWwnXTtcbiAgQElucHV0KCkgcGVyY2VudGFnZSE6IE5neEluZmluaXRlR3JpZFByb3BzWydwZXJjZW50YWdlJ107XG4gIEBJbnB1dCgpIGlzRXF1YWxTaXplITogTmd4SW5maW5pdGVHcmlkUHJvcHNbJ2lzRXF1YWxTaXplJ107XG4gIEBJbnB1dCgpIGlzQ29uc3RhbnRTaXplITogTmd4SW5maW5pdGVHcmlkUHJvcHNbJ2lzQ29uc3RhbnRTaXplJ107XG4gIEBJbnB1dCgpIGdhcCE6IE5neEluZmluaXRlR3JpZFByb3BzWydnYXAnXTtcbiAgQElucHV0KCkgYXR0cmlidXRlUHJlZml4ITogTmd4SW5maW5pdGVHcmlkUHJvcHNbJ2F0dHJpYnV0ZVByZWZpeCddO1xuICBASW5wdXQoKSByZXNpemVEZWJvdW5jZSE6IE5neEluZmluaXRlR3JpZFByb3BzWydyZXNpemVEZWJvdW5jZSddO1xuICBASW5wdXQoKSBtYXhSZXNpemVEZWJvdW5jZSE6IE5neEluZmluaXRlR3JpZFByb3BzWydtYXhSZXNpemVEZWJvdW5jZSddO1xuICBASW5wdXQoKSBhdXRvUmVzaXplITogTmd4SW5maW5pdGVHcmlkUHJvcHNbJ2F1dG9SZXNpemUnXTtcbiAgQElucHV0KCkgdXNlRml0ITogTmd4SW5maW5pdGVHcmlkUHJvcHNbJ3VzZUZpdCddO1xuICBASW5wdXQoKSB1c2VUcmFuc2Zvcm0hOiBOZ3hJbmZpbml0ZUdyaWRQcm9wc1sndXNlVHJhbnNmb3JtJ107XG4gIEBJbnB1dCgpIHJlbmRlck9uUHJvcGVydHlDaGFuZ2UhOiBOZ3hJbmZpbml0ZUdyaWRQcm9wc1sncmVuZGVyT25Qcm9wZXJ0eUNoYW5nZSddO1xuICBASW5wdXQoKSBwcmVzZXJ2ZVVJT25EZXN0cm95ITogTmd4SW5maW5pdGVHcmlkUHJvcHNbJ3ByZXNlcnZlVUlPbkRlc3Ryb3knXTtcbiAgQElucHV0KCkgZGVmYXVsdERpcmVjdGlvbiE6IE5neEluZmluaXRlR3JpZFByb3BzWydkZWZhdWx0RGlyZWN0aW9uJ107XG4gIEBJbnB1dCgpIGV4dGVybmFsSXRlbVJlbmRlcmVyITogTmd4SW5maW5pdGVHcmlkUHJvcHNbJ2V4dGVybmFsSXRlbVJlbmRlcmVyJ107XG4gIEBJbnB1dCgpIGV4dGVybmFsQ29udGFpbmVyTWFuYWdlciE6IE5neEluZmluaXRlR3JpZFByb3BzWydleHRlcm5hbENvbnRhaW5lck1hbmFnZXInXTtcbiAgQElucHV0KCkgdXNlUGxhY2Vob2xkZXIhOiBOZ3hJbmZpbml0ZUdyaWRQcm9wc1sndXNlRmlyc3RSZW5kZXInXTtcbiAgQElucHV0KCkgdXNlTG9hZGluZyE6IE5neEluZmluaXRlR3JpZFByb3BzWyd1c2VMb2FkaW5nJ107XG4gIEBJbnB1dCgpIHN0YXR1cyE6IE5neEluZmluaXRlR3JpZFByb3BzWydzdGF0dXMnXTtcbiAgQElucHV0KCkgdXNlRmlyc3RSZW5kZXIhOiBOZ3hJbmZpbml0ZUdyaWRQcm9wc1sndXNlRmlyc3RSZW5kZXInXTtcbiAgQElucHV0KCkgaXRlbXM6IE5neEluZmluaXRlR3JpZFByb3BzWydpdGVtcyddID0gW107XG4gIEBJbnB1dCgpIHRyYWNrQnk6IE5neEluZmluaXRlR3JpZFByb3BzWyd0cmFja0J5J10gPSAoKF8sIGl0ZW0pID0+IGl0ZW0ua2V5KTtcbiAgQElucHV0KCkgZ3JvdXBCeTogTmd4SW5maW5pdGVHcmlkUHJvcHNbJ2dyb3VwQnknXSA9ICgoXywgaXRlbSkgPT4gaXRlbS5ncm91cEtleSk7XG4gIEBPdXRwdXQoKSByZW5kZXJDb21wbGV0ZSE6IEV2ZW50RW1pdHRlcjxPblJlbmRlckNvbXBsZXRlPjtcbiAgQE91dHB1dCgpIGNvbnRlbnRFcnJvciE6IEV2ZW50RW1pdHRlcjxPbkNvbnRlbnRFcnJvcj47XG4gIEBPdXRwdXQoKSBjaGFuZ2VTY3JvbGwhOiBFdmVudEVtaXR0ZXI8T25DaGFuZ2VTY3JvbGw+O1xuICBAT3V0cHV0KCkgcmVxdWVzdEFwcGVuZCE6IEV2ZW50RW1pdHRlcjxPblJlcXVlc3RBcHBlbmQ+O1xuICBAT3V0cHV0KCkgcmVxdWVzdFByZXBlbmQhOiBFdmVudEVtaXR0ZXI8T25SZXF1ZXN0UHJlcGVuZD47XG4gIHB1YmxpYyB2aXNpYmxlSXRlbXM6IEluZmluaXRlR3JpZEl0ZW1bXSA9IFtdO1xuICBAVmlld0NoaWxkKCd3cmFwcGVyUmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pIF93cmFwcGVyUmVmITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyUmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pIF9jb250YWluZXJSZWYhOiBFbGVtZW50UmVmO1xuICBwcml2YXRlIF9yZW5kZXJlciA9IG5ldyBSZW5kZXJlcigpO1xuICBwcml2YXRlIF9pc0NoYW5nZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIF9wbGF0Zm9ybTogT2JqZWN0KSB7XG4gICAgc3VwZXIoKTtcbiAgICBmb3IgKGNvbnN0IG5hbWUgaW4gSU5GSU5JVEVHUklEX0VWRU5UUykge1xuICAgICAgY29uc3QgZXZlbnROYW1lID0gKElORklOSVRFR1JJRF9FVkVOVFMgYXMgYW55KVtuYW1lXTtcbiAgICAgICh0aGlzIGFzIGFueSlbZXZlbnROYW1lXSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl91cGRhdGVWaXNpYmxlQ2hpbGRyZW4oKTtcbiAgfVxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICB0aGlzLl9pc0NoYW5nZSA9IHRydWU7XG4gICAgdGhpcy5fdXBkYXRlVmlzaWJsZUNoaWxkcmVuKCk7XG4gIH1cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5fcGxhdGZvcm0pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IEdyaWRDbGFzcyA9ICh0aGlzLmNvbnN0cnVjdG9yIGFzIHR5cGVvZiBOZ3hJbmZpbml0ZUdyaWRDb21wb25lbnQpLkdyaWRDbGFzcztcbiAgICBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IEdyaWRDbGFzcy5kZWZhdWx0T3B0aW9ucztcbiAgICBjb25zdCBvcHRpb25zOiBQYXJ0aWFsPEluZmluaXRlR3JpZE9wdGlvbnM+ID0ge307XG4gICAgY29uc3QgY29udGFpbmVyRWxlbWVudCA9IHRoaXMuX2NvbnRhaW5lclJlZj8ubmF0aXZlRWxlbWVudDtcblxuICAgIGZvciAoY29uc3QgbmFtZSBpbiBkZWZhdWx0T3B0aW9ucykge1xuICAgICAgaWYgKG5hbWUgaW4gdGhpcyAmJiB0eXBlb2YgKHRoaXMgYXMgYW55KVtuYW1lXSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAob3B0aW9ucyBhcyBhbnkpW25hbWVdID0gKHRoaXMgYXMgYW55KVtuYW1lXTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNvbnRhaW5lckVsZW1lbnQpIHtcbiAgICAgIG9wdGlvbnMuY29udGFpbmVyID0gY29udGFpbmVyRWxlbWVudDtcbiAgICB9XG4gICAgb3B0aW9ucy5yZW5kZXJlciA9IHRoaXMuX3JlbmRlcmVyO1xuICAgIGNvbnN0IHdyYXBwZXIgPSB0aGlzLl93cmFwcGVyUmVmISB8fCB0aGlzLmVsZW1lbnRSZWY7XG5cbiAgICBjb25zdCBncmlkID0gbmV3IEdyaWRDbGFzcyh3cmFwcGVyLm5hdGl2ZUVsZW1lbnQsIG9wdGlvbnMpO1xuXG4gICAgZm9yIChjb25zdCBuYW1lIGluIElORklOSVRFR1JJRF9FVkVOVFMpIHtcbiAgICAgIGNvbnN0IGV2ZW50TmFtZSA9IChJTkZJTklURUdSSURfRVZFTlRTIGFzIGFueSlbbmFtZV07XG5cbiAgICAgIGdyaWQub24oZXZlbnROYW1lLCAoZTogYW55KSA9PiB7XG4gICAgICAgICh0aGlzIGFzIGFueSlbZXZlbnROYW1lXS5lbWl0KGUgYXMgYW55KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMudmFuaWxsYUdyaWQgPSBncmlkO1xuICAgIHRoaXMuX3JlbmRlcmVyLm9uKFwicmVxdWVzdFVwZGF0ZVwiLCAoKSA9PiB7XG4gICAgICB0aGlzLl9pc0NoYW5nZSA9IHRydWU7XG4gICAgICB0aGlzLl91cGRhdGVWaXNpYmxlQ2hpbGRyZW4oKTtcbiAgICB9KTtcblxuICAgIG1vdW50UmVuZGVyaW5nSXRlbXModGhpcy5fZ2V0SXRlbUluZm9zKCksIHtcbiAgICAgIGdyaWQsXG4gICAgICB1c2VGaXJzdFJlbmRlcjogdGhpcy51c2VGaXJzdFJlbmRlcixcbiAgICAgIHVzZUxvYWRpbmc6IHRoaXMudXNlTG9hZGluZyxcbiAgICAgIHVzZVBsYWNlaG9sZGVyOiB0aGlzLnVzZVBsYWNlaG9sZGVyLFxuICAgICAgaG9yaXpvbnRhbDogdGhpcy5ob3Jpem9udGFsLFxuICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1cyxcbiAgICB9KTtcbiAgICB0aGlzLl9yZW5kZXJlci51cGRhdGVkKCk7XG4gIH1cbiAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgIGlmICghdGhpcy5faXNDaGFuZ2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY2hpbGRyZW4gPSBbXS5zbGljZS5jYWxsKHRoaXMuZ2V0Q29udGFpbmVyRWxlbWVudCgpLmNoaWxkcmVuKTtcblxuICAgIGlmICh0aGlzLnZpc2libGVJdGVtcy5sZW5ndGggIT09IGNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9pc0NoYW5nZSA9IGZhbHNlO1xuICAgIGNvbnN0IEdyaWRDbGFzcyA9ICh0aGlzLmNvbnN0cnVjdG9yIGFzIHR5cGVvZiBOZ3hJbmZpbml0ZUdyaWRDb21wb25lbnQpLkdyaWRDbGFzcztcbiAgICBjb25zdCBwcm9wZXJ0eVR5cGVzID0gR3JpZENsYXNzLnByb3BlcnR5VHlwZXM7XG4gICAgY29uc3QgZ3JpZCA9IHRoaXMudmFuaWxsYUdyaWQ7XG5cbiAgICBmb3IgKGNvbnN0IG5hbWUgaW4gcHJvcGVydHlUeXBlcykge1xuICAgICAgaWYgKG5hbWUgaW4gdGhpcykge1xuICAgICAgICAoZ3JpZCBhcyBhbnkpW25hbWVdID0gKHRoaXMgYXMgYW55KVtuYW1lXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9yZW5kZXJlci51cGRhdGVkKGNoaWxkcmVuKTtcbiAgfVxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnZhbmlsbGFHcmlkPy5kZXN0cm95KCk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRJdGVtSW5mb3MoKTogSW5maW5pdGVHcmlkSXRlbUluZm9bXSB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgIGNvbnN0IHRyYWNrQnkgPSB0aGlzLnRyYWNrQnk7XG4gICAgY29uc3QgZ3JvdXBCeSA9IHRoaXMuZ3JvdXBCeTtcblxuICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0sIGkpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGdyb3VwS2V5OiBncm91cEJ5KGksIGl0ZW0pLFxuICAgICAgICBrZXk6IHRyYWNrQnkoaSwgaXRlbSksXG4gICAgICAgIGRhdGE6IGl0ZW0sXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG4gIHByaXZhdGUgX3VwZGF0ZVZpc2libGVDaGlsZHJlbigpIHtcbiAgICB0aGlzLnZpc2libGVJdGVtcyA9IGdldFJlbmRlcmluZ0l0ZW1zKHRoaXMuX2dldEl0ZW1JbmZvcygpLCB7XG4gICAgICBncmlkOiB0aGlzLnZhbmlsbGFHcmlkLFxuICAgICAgdXNlRmlyc3RSZW5kZXI6IHRoaXMudXNlRmlyc3RSZW5kZXIsXG4gICAgICB1c2VMb2FkaW5nOiB0aGlzLnVzZUxvYWRpbmcsXG4gICAgICB1c2VQbGFjZWhvbGRlcjogdGhpcy51c2VQbGFjZWhvbGRlcixcbiAgICAgIGhvcml6b250YWw6IHRoaXMuaG9yaXpvbnRhbCxcbiAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -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=