@maplander/components 0.21.24 → 0.21.26

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.
@@ -2,6 +2,7 @@
2
2
  * @fileoverview added by tsickle
3
3
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
+ import * as tslib_1 from "tslib";
5
6
  import { Injectable } from '@angular/core';
6
7
  import { Address, Currency, NewPropertyLite } from '@maplander/types';
7
8
  import { ConstantsComponents } from '../../constantsComponents';
@@ -285,6 +286,87 @@ var MarkersService = /** @class */ (function () {
285
286
  response.markers = list;
286
287
  return response;
287
288
  };
289
+ /**
290
+ * @param {?} list
291
+ * @return {?}
292
+ */
293
+ MarkersService.prototype.buildNewSpider = /**
294
+ * @param {?} list
295
+ * @return {?}
296
+ */
297
+ function (list) {
298
+ var e_1, _a;
299
+ /** @type {?} */
300
+ var response = { markers: [], polyLines: [] };
301
+ /** @type {?} */
302
+ var newList = [];
303
+ try {
304
+ for (var list_1 = tslib_1.__values(list), list_1_1 = list_1.next(); !list_1_1.done; list_1_1 = list_1.next()) {
305
+ var listElement = list_1_1.value;
306
+ newList.push({
307
+ id: listElement.id,
308
+ location: listElement.location,
309
+ price: listElement.price,
310
+ currency: listElement.currency,
311
+ url: listElement.url,
312
+ extras: {}
313
+ });
314
+ }
315
+ }
316
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
317
+ finally {
318
+ try {
319
+ if (list_1_1 && !list_1_1.done && (_a = list_1.return)) _a.call(list_1);
320
+ }
321
+ finally { if (e_1) throw e_1.error; }
322
+ }
323
+ newList.map((/**
324
+ * @param {?} el
325
+ * @return {?}
326
+ */
327
+ function (el) {
328
+ el.extras['repeat'] = false;
329
+ /** @type {?} */
330
+ var size = list.filter((/**
331
+ * @param {?} item
332
+ * @return {?}
333
+ */
334
+ function (item) {
335
+ return el.location.latitude === item.location.latitude && el.location.longitude === item.location.longitude;
336
+ }));
337
+ /** @type {?} */
338
+ var distance = 12 * size.length / 2.0;
339
+ /** @type {?} */
340
+ var radiansBetweenAnnotations = (Math.PI * 2) / size.length;
341
+ if (!el.extras['repeat'] && size.length > 1) {
342
+ /** @type {?} */
343
+ var locationShare = Object.assign({}, el.location);
344
+ for (var i = 0; i < size.length; i++) {
345
+ /** @type {?} */
346
+ var heading = radiansBetweenAnnotations * i;
347
+ size[i]['repeat'] = true;
348
+ /** @type {?} */
349
+ var newLocation = MarkersService.calculateLocationFrom(locationShare, heading, distance);
350
+ response.polyLines.push({
351
+ path: [
352
+ {
353
+ latitude: Number(locationShare.latitude),
354
+ longitude: Number(locationShare.longitude)
355
+ },
356
+ {
357
+ latitude: Number(newLocation.latitude),
358
+ longitude: Number(newLocation.longitude)
359
+ }
360
+ ]
361
+ });
362
+ size[i].location = newLocation;
363
+ }
364
+ }
365
+ return el;
366
+ }));
367
+ response.markers = list;
368
+ return response;
369
+ };
288
370
  /**
289
371
  * @private
290
372
  * @param {?} entity
@@ -344,4 +426,4 @@ if (false) {
344
426
  */
345
427
  MarkersService.prototype._converter;
346
428
  }
347
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Vycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1hcGxhbmRlci9jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL21hcmtlcnMvbWFya2Vycy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxPQUFPLEVBRVAsUUFBUSxFQUVSLGVBQWUsRUFJaEIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUk5RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ2xDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBSTFGO0lBR0Usd0JBQ1UsaUJBQW1DLEVBQ25DLGlCQUFtQyxFQUNuQyxVQUFvQztRQUZwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDbkMsZUFBVSxHQUFWLFVBQVUsQ0FBMEI7SUFFOUMsQ0FBQzs7Ozs7O0lBRWMsd0NBQXlCOzs7OztJQUF4QyxVQUF5QyxJQUFzQjs7WUFDekQsSUFBSSxHQUFxQixJQUFJO1FBQ2pDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLE9BQU87Ozs7UUFBQyxVQUFDLE9BQU87WUFDbkQsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRTtnQkFDMUIsSUFBSSxHQUFHLE9BQU8sQ0FBQzthQUNoQjtRQUNILENBQUMsRUFBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzs7Ozs7O0lBRWMsMENBQTJCOzs7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QUM7O2dCQTlLRixVQUFVOzs7O2dCQU5ILGdCQUFnQjtnQkFEaEIsZ0JBQWdCO2dCQUdoQix3QkFBd0I7O0lBbUxoQyxxQkFBQztDQUFBLEFBL0tELElBK0tDO1NBOUtZLGNBQWM7Ozs7OztJQUd2QiwyQ0FBMkM7Ozs7O0lBQzNDLDJDQUEyQzs7Ozs7SUFDM0Msb0NBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBZGRyZXNzLFxyXG4gIENFUixcclxuICBDdXJyZW5jeSxcclxuICBHZW9QdCxcclxuICBOZXdQcm9wZXJ0eUxpdGUsXHJcbiAgTmV3UHJvcGVydHlMaXRlU3VnZ2VzdCxcclxuICBPZmZlcmluZ1R5cGVFbnVtLFxyXG4gIFByb3BlcnR5VHlwZUVudW1cclxufSBmcm9tICdAbWFwbGFuZGVyL3R5cGVzJztcclxuaW1wb3J0IHtDb25zdGFudHNDb21wb25lbnRzfSBmcm9tICcuLi8uLi9jb25zdGFudHNDb21wb25lbnRzJztcclxuaW1wb3J0IHtNYXJrZXJ9IGZyb20gJy4uLy4uL3V0aWxzL21vZGVscy9tYXJrZXInO1xyXG5pbXBvcnQge1Byb3BlcnR5Q2FyZEluZm99IGZyb20gJy4uLy4uL3V0aWxzL21vZGVscy9wcm9wZXJ0eS1jYXJkLWluZm8nO1xyXG5pbXBvcnQge1Byb3BlcnR5VHlwZUl0ZW19IGZyb20gJy4uLy4uL3V0aWxzL21vZGVscy9wcm9wZXJ0eS10eXBlLWl0ZW0nO1xyXG5pbXBvcnQge09mZmVyaW5nVHlwZVBpcGV9IGZyb20gJy4uLy4uL3BpcGVzL29mZmVyaW5nLXR5cGUvb2ZmZXJpbmctdHlwZS5waXBlJztcclxuaW1wb3J0IHtQcm9wZXJ0eVR5cGVQaXBlfSBmcm9tICcuLi8uLi9waXBlcy9wcm9wZXJ0eS10eXBlL3Byb3BlcnR5LXR5cGUucGlwZSc7XHJcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHtDdXJyZW5jeUNvbnZlcnRlclNlcnZpY2V9IGZyb20gJy4uL2N1cnJlbmN5LWNvbnZlcnRlci9jdXJyZW5jeS1jb252ZXJ0ZXIuc2VydmljZSc7XHJcblxyXG5kZWNsYXJlIHZhciBnb29nbGU6IGFueTtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE1hcmtlcnNTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9wcm9wZXJ0eVR5cGVQaXBlOiBQcm9wZXJ0eVR5cGVQaXBlLFxyXG4gICAgcHJpdmF0ZSBfb2ZmZXJpbmdUeXBlUGlwZTogT2ZmZXJpbmdUeXBlUGlwZSxcclxuICAgIHByaXZhdGUgX2NvbnZlcnRlcjogQ3VycmVuY3lDb252ZXJ0ZXJTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBnZXRQcm9wZXJ0eVR5cGVJdGVtQnlUeXBlKHR5cGU6IFByb3BlcnR5VHlwZUVudW0pOiBQcm9wZXJ0eVR5cGVJdGVtIHtcclxuICAgIGxldCBpdGVtOiBQcm9wZXJ0eVR5cGVJdGVtID0gbnVsbDtcclxuICAgIENvbnN0YW50c0NvbXBvbmVudHMuUHJvcGVydHlUeXBlTGlzdC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgIGlmIChlbGVtZW50LnZhbHVlID09PSB0eXBlKSB7XHJcbiAgICAgICAgaXRlbSA9IGVsZW1lbnQ7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGl0ZW07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyB2YWxpZGF0ZVByb3BlcnR5SW5GYXZvcml0ZXMocHJvcGVydHlJZDogc3RyaW5nLCBmYXZvcml0ZXM6IE5ld1Byb3BlcnR5TGl0ZVtdKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZhdm9yaXRlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAocHJvcGVydHlJZCA9PT0gZmF2b3JpdGVzW2ldLmlkKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGNhbGN1bGF0ZUxvY2F0aW9uRnJvbShsb2NhdGlvbjogR2VvUHQsIGJlYXJpbmdJblJhZGlhbnM6IG51bWJlciwgZGlzdGFuY2VJbk1ldHJlczogbnVtYmVyKTogR2VvUHQge1xyXG4gICAgY29uc3QgY29vcmRpbmF0ZUxhdGl0dWRlSW5SYWRpYW5zID0gbG9jYXRpb24ubGF0aXR1ZGUgKiBNYXRoLlBJIC8gMTgwO1xyXG4gICAgY29uc3QgY29vcmRpbmF0ZUxvbmdpdHVkZUluUmFkaWFucyA9IGxvY2F0aW9uLmxvbmdpdHVkZSAqIE1hdGguUEkgLyAxODA7XHJcbiAgICBjb25zdCBkaXN0YW5jZUNvbXBhcmVkVG9FYXJ0aCA9IGRpc3RhbmNlSW5NZXRyZXMgLyA2Mzc4MTAwLjA7XHJcbiAgICBjb25zdCByZXN1bHRMYXRpdHVkZUluUmFkaWFucyA9IE1hdGguYXNpbihNYXRoLnNpbihjb29yZGluYXRlTGF0aXR1ZGVJblJhZGlhbnMpICogTWF0aC5jb3MoZGlzdGFuY2VDb21wYXJlZFRvRWFydGgpICtcclxuICAgICAgTWF0aC5jb3MoY29vcmRpbmF0ZUxhdGl0dWRlSW5SYWRpYW5zKSAqIE1hdGguc2luKGRpc3RhbmNlQ29tcGFyZWRUb0VhcnRoKSAqIE1hdGguY29zKGJlYXJpbmdJblJhZGlhbnMpKTtcclxuICAgIGNvbnN0IHJlc3VsdExvbmdpdHVkZUluUmFkaWFucyA9IGNvb3JkaW5hdGVMb25naXR1ZGVJblJhZGlhbnMgKyBNYXRoLmF0YW4yKE1hdGguc2luKGJlYXJpbmdJblJhZGlhbnMpICpcclxuICAgICAgTWF0aC5zaW4oZGlzdGFuY2VDb21wYXJlZFRvRWFydGgpICogTWF0aC5jb3MoY29vcmRpbmF0ZUxhdGl0dWRlSW5SYWRpYW5zKSwgTWF0aC5jb3MoZGlzdGFuY2VDb21wYXJlZFRvRWFydGgpIC1cclxuICAgICAgTWF0aC5zaW4oY29vcmRpbmF0ZUxhdGl0dWRlSW5SYWRpYW5zKSAqIE1hdGguc2luKHJlc3VsdExhdGl0dWRlSW5SYWRpYW5zKSk7XHJcbiAgICBjb25zdCBuZXdDb29yZGluYXRlczogYW55ID0ge307XHJcbiAgICBuZXdDb29yZGluYXRlcy5sYXRpdHVkZSA9IHJlc3VsdExhdGl0dWRlSW5SYWRpYW5zICogMTgwIC8gTWF0aC5QSTtcclxuICAgIG5ld0Nvb3JkaW5hdGVzLmxvbmdpdHVkZSA9IHJlc3VsdExvbmdpdHVkZUluUmFkaWFucyAqIDE4MCAvIE1hdGguUEk7XHJcbiAgICByZXR1cm4gbmV3Q29vcmRpbmF0ZXM7XHJcbiAgfVxyXG5cclxuICBidWlsZFVSTChjb25maWc6IHtcclxuICAgIHByb3BlcnR5SWQ6IHN0cmluZyxcclxuICAgIG9mZmVyaW5nOiBPZmZlcmluZ1R5cGVFbnVtLFxyXG4gICAgcHJvcGVydHlUeXBlOiBQcm9wZXJ0eVR5cGVFbnVtLFxyXG4gICAgYWRkcmVzczogQWRkcmVzc1xyXG4gIH0pOiBzdHJpbmcge1xyXG4gICAgbGV0IHVybCA9ICdwcm9wZXJ0eS8nO1xyXG4gICAgdXJsICs9IGAke3RoaXMuX3Byb3BlcnR5VHlwZVBpcGUudHJhbnNmb3JtKGNvbmZpZy5wcm9wZXJ0eVR5cGUsIHRydWUpfS1gO1xyXG4gICAgdXJsICs9IGAke3RoaXMuX29mZmVyaW5nVHlwZVBpcGUudHJhbnNmb3JtKGNvbmZpZy5vZmZlcmluZywgJyAnKS5yZXBsYWNlKC8gL2csICcnKX0tYDtcclxuICAgIHVybCArPSBjb25maWcuYWRkcmVzcy5jb2xvbnkgPyBgJHtjb25maWcuYWRkcmVzcy5jb2xvbnl9LWAgOiAnJztcclxuICAgIHVybCArPSBjb25maWcuYWRkcmVzcy5jaXR5ID8gYCR7Y29uZmlnLmFkZHJlc3MuY2l0eX0tYCA6ICcnO1xyXG4gICAgdXJsICs9IGNvbmZpZy5wcm9wZXJ0eUlkO1xyXG4gICAgdXJsID0gVXRpbHMucmVtb3ZlRGlhY3JpdGljcyh1cmwpLnJlcGxhY2UoLyAvZywgJy0nKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgcmV0dXJuIHVybDtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlUHJvcGVydGllc0luUG9seShwcm9wZXJ0aWVzOiBNYXJrZXJbXSwgcGF0aHM6IGFueVtdKTogTWFya2VyW10ge1xyXG4gICAgY29uc3QgcG9seWdvbiA9IG5ldyBnb29nbGUubWFwcy5Qb2x5Z29uKHtwYXRoczogcGF0aHN9KTtcclxuICAgIGlmIChwcm9wZXJ0aWVzICYmIHByb3BlcnRpZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBwcm9wZXJ0aWVzLm1hcCgoZWw6IE1hcmtlcikgPT4ge1xyXG4gICAgICAgIGVsLmV4dHJhc1snc2hvd0luUG9seWdvbiddID0gZmFsc2U7XHJcbiAgICAgICAgY29uc3QgY3VzdG9tTGF0TG5nID0gbmV3IGdvb2dsZS5tYXBzLkxhdExuZyhlbC5sb2NhdGlvbi5sYXRpdHVkZSwgZWwubG9jYXRpb24ubG9uZ2l0dWRlKTtcclxuICAgICAgICBpZiAoZ29vZ2xlLm1hcHMuZ2VvbWV0cnkucG9seS5jb250YWluc0xvY2F0aW9uKGN1c3RvbUxhdExuZywgcG9seWdvbikpIHtcclxuICAgICAgICAgIGVsLmV4dHJhc1snc2hvd0luUG9seWdvbiddID0gdHJ1ZTtcclxuICAgICAgICAgIHJldHVybiBlbDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZWwuZXh0cmFzWydzaG93SW5Qb2x5Z29uJ10gPSBmYWxzZTtcclxuICAgICAgICAgIHJldHVybiBlbDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBwcm9wZXJ0aWVzID0gcHJvcGVydGllcy5maWx0ZXIoKGUpID0+IHtcclxuICAgICAgICBpZiAoZS5leHRyYXNbJ3Nob3dJblBvbHlnb24nXSkge1xyXG4gICAgICAgICAgcmV0dXJuIGU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHByb3BlcnRpZXM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtYXJrZXJzVG9DdXJyZW5jeShtYXJrZXJzOiBNYXJrZXJbXSwgdG9DdXJyZW5jeTogQ3VycmVuY3ksIGN1cnJlbmNpZXM6IENFUltdKTogTWFya2VyW10ge1xyXG4gICAgbWFya2VycyA9IG1hcmtlcnMubWFwPE1hcmtlcj4oaXRlbSA9PiB7XHJcbiAgICAgIGlmIChDdXJyZW5jeVtpdGVtLmluZm8uY3VycmVuY3ldICE9PSB0b0N1cnJlbmN5KSB7XHJcbiAgICAgICAgaXRlbS5pbmZvLnByaWNlID0gdGhpcy5fY29udmVydGVyLm51bWJlcihpdGVtLmluZm8ucHJpY2UsIGN1cnJlbmNpZXMsIEN1cnJlbmN5W2l0ZW0uaW5mby5jdXJyZW5jeV0sIHRvQ3VycmVuY3kpO1xyXG4gICAgICAgIGl0ZW0uaW5mby5jdXJyZW5jeSA9IHRvQ3VycmVuY3kudG9TdHJpbmcoKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gaXRlbTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIG1hcmtlcnM7XHJcbiAgfVxyXG5cclxuICBidWlsZE1hcmtlcnMoZW50aXRpZXM6IE5ld1Byb3BlcnR5TGl0ZVtdIHwgTmV3UHJvcGVydHlMaXRlU3VnZ2VzdFtdLCBmYXZvcml0ZXM/OiBOZXdQcm9wZXJ0eUxpdGVbXSk6IE1hcmtlcltdIHtcclxuICAgIGNvbnN0IG1hcmtlcnM6IE1hcmtlcltdID0gW107XHJcbiAgICBlbnRpdGllcy5mb3JFYWNoKChlbnRpdHkpID0+IHtcclxuICAgICAgY29uc3QgbTogTWFya2VyID0ge1xyXG4gICAgICAgIGxvY2F0aW9uOiBlbnRpdHkuYWRkcmVzcy5sb2NhdGlvbixcclxuICAgICAgICBob3ZlcjogZmFsc2UsXHJcbiAgICAgICAgdmlzaXRlZDogZmFsc2UsXHJcbiAgICAgICAgdHlwZTogTWFya2Vyc1NlcnZpY2UuZ2V0UHJvcGVydHlUeXBlSXRlbUJ5VHlwZShlbnRpdHkudHlwZSksXHJcbiAgICAgICAgaW5mbzogdGhpcy5jcmVhdGVQcm9wZXJ0eUluZm9DYXJkKGVudGl0eSksXHJcbiAgICAgICAgaXNGYXZvcml0ZTogZmFsc2UsXHJcbiAgICAgICAgZXh0cmFzOiB7fVxyXG4gICAgICB9O1xyXG4gICAgICBpZiAoZW50aXR5IGluc3RhbmNlb2YgTmV3UHJvcGVydHlMaXRlKSB7XHJcbiAgICAgICAgbS5pc0Zhdm9yaXRlID0gZmF2b3JpdGVzICYmIGZhdm9yaXRlcy5sZW5ndGggPiAwID8gTWFya2Vyc1NlcnZpY2UudmFsaWRhdGVQcm9wZXJ0eUluRmF2b3JpdGVzKGVudGl0eS5pZCwgZmF2b3JpdGVzKSA6IGZhbHNlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG0uaXNGYXZvcml0ZSA9IGZhdm9yaXRlcyAmJiBmYXZvcml0ZXMubGVuZ3RoID4gMCA/IE1hcmtlcnNTZXJ2aWNlLnZhbGlkYXRlUHJvcGVydHlJbkZhdm9yaXRlcyhlbnRpdHkucHJvcGVydHlJZCwgZmF2b3JpdGVzKSA6IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIG1hcmtlcnMucHVzaChtKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIG1hcmtlcnM7XHJcbiAgfVxyXG5cclxuICBidWlsZFNwaWRlcihsaXN0OiBNYXJrZXJbXSk6IHsgbWFya2VyczogTWFya2VyW10sIHBvbHlMaW5lczogYW55W10gfSB7XHJcbiAgICBjb25zdCByZXNwb25zZSA9IHttYXJrZXJzOiBbXSwgcG9seUxpbmVzOiBbXX07XHJcbiAgICBsaXN0Lm1hcCgoZWwpID0+IHtcclxuICAgICAgZWwuZXh0cmFzWydyZXBlYXQnXSA9IGZhbHNlO1xyXG4gICAgICBjb25zdCBzaXplID0gbGlzdC5maWx0ZXIoaXRlbSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGVsLmxvY2F0aW9uLmxhdGl0dWRlID09PSBpdGVtLmxvY2F0aW9uLmxhdGl0dWRlICYmIGVsLmxvY2F0aW9uLmxvbmdpdHVkZSA9PT0gaXRlbS5sb2NhdGlvbi5sb25naXR1ZGU7XHJcbiAgICAgIH0pO1xyXG4gICAgICBjb25zdCBkaXN0YW5jZSA9IDEyICogc2l6ZS5sZW5ndGggLyAyLjA7XHJcbiAgICAgIGNvbnN0IHJhZGlhbnNCZXR3ZWVuQW5ub3RhdGlvbnMgPSAoTWF0aC5QSSAqIDIpIC8gc2l6ZS5sZW5ndGg7XHJcbiAgICAgIGlmICghZWwuZXh0cmFzWydyZXBlYXQnXSAmJiBzaXplLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBjb25zdCBsb2NhdGlvblNoYXJlOiBhbnkgPSBPYmplY3QuYXNzaWduKHt9LCBlbC5sb2NhdGlvbik7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzaXplLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBjb25zdCBoZWFkaW5nID0gcmFkaWFuc0JldHdlZW5Bbm5vdGF0aW9ucyAqIGk7XHJcbiAgICAgICAgICBzaXplW2ldWydyZXBlYXQnXSA9IHRydWU7XHJcbiAgICAgICAgICBjb25zdCBuZXdMb2NhdGlvbiA9IE1hcmtlcnNTZXJ2aWNlLmNhbGN1bGF0ZUxvY2F0aW9uRnJvbShsb2NhdGlvblNoYXJlLCBoZWFkaW5nLCBkaXN0YW5jZSk7XHJcbiAgICAgICAgICByZXNwb25zZS5wb2x5TGluZXMucHVzaCh7XHJcbiAgICAgICAgICAgIHBhdGg6IFtcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsYXRpdHVkZTogTnVtYmVyKGxvY2F0aW9uU2hhcmUubGF0aXR1ZGUpLFxyXG4gICAgICAgICAgICAgICAgbG9uZ2l0dWRlOiBOdW1iZXIobG9jYXRpb25TaGFyZS5sb25naXR1ZGUpXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsYXRpdHVkZTogTnVtYmVyKG5ld0xvY2F0aW9uLmxhdGl0dWRlKSxcclxuICAgICAgICAgICAgICAgIGxvbmdpdHVkZTogTnVtYmVyKG5ld0xvY2F0aW9uLmxvbmdpdHVkZSlcclxuICAgICAgICAgICAgICB9XVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBzaXplW2ldLmxvY2F0aW9uID0gbmV3TG9jYXRpb247XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBlbDtcclxuICAgIH0pO1xyXG4gICAgcmVzcG9uc2UubWFya2VycyA9IGxpc3Q7XHJcbiAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVByb3BlcnR5SW5mb0NhcmQoZW50aXR5OiBOZXdQcm9wZXJ0eUxpdGUgfCBOZXdQcm9wZXJ0eUxpdGVTdWdnZXN0KTogUHJvcGVydHlDYXJkSW5mbyB7XHJcbiAgICByZXR1cm4gIHtcclxuICAgICAgYWRkcmVzczogbmV3IEFkZHJlc3MoZW50aXR5LmFkZHJlc3MgfHwgbnVsbCksXHJcbiAgICAgIGF1dGhVc2VyczogKGVudGl0eSBpbnN0YW5jZW9mIE5ld1Byb3BlcnR5TGl0ZSkgPyBlbnRpdHkuYXV0aFVzZXJzIDogJycsXHJcbiAgICAgIGN1cnJlbmN5OiBlbnRpdHkuY3VycmVuY3ksXHJcbiAgICAgIHByb3BlcnR5SWQ6IChlbnRpdHkgaW5zdGFuY2VvZiBOZXdQcm9wZXJ0eUxpdGUpID8gZW50aXR5LmlkIDogZW50aXR5LnByb3BlcnR5SWQsXHJcbiAgICAgIGltYWdlOiBlbnRpdHkuaW1hZ2UsXHJcbiAgICAgIG9mZmVyaW5nOiBlbnRpdHkub2ZmZXJpbmcsXHJcbiAgICAgIHByaWNlOiBlbnRpdHkucHJpY2UsXHJcbiAgICAgIHR5cGU6IGVudGl0eS50eXBlLFxyXG4gICAgICB1cmw6IHRoaXMuYnVpbGRVUkwoe1xyXG4gICAgICAgIGFkZHJlc3M6IGVudGl0eS5hZGRyZXNzLFxyXG4gICAgICAgIG9mZmVyaW5nOiBlbnRpdHkub2ZmZXJpbmcsXHJcbiAgICAgICAgcHJvcGVydHlUeXBlOiBlbnRpdHkudHlwZSxcclxuICAgICAgICBwcm9wZXJ0eUlkOiAoZW50aXR5IGluc3RhbmNlb2YgTmV3UHJvcGVydHlMaXRlKSA/IGVudGl0eS5pZCA6IGVudGl0eS5wcm9wZXJ0eUlkXHJcbiAgICAgIH0pLFxyXG4gICAgICBzdGF0dXM6IChlbnRpdHkgaW5zdGFuY2VvZiBOZXdQcm9wZXJ0eUxpdGUpID8gZW50aXR5LnN0YXR1cyA6IG51bGwsXHJcbiAgICAgIGZlYXR1cmVzOiAoZW50aXR5IGluc3RhbmNlb2YgTmV3UHJvcGVydHlMaXRlKSA/IGVudGl0eS5mZWF0dXJlcyA6IG51bGwsXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
429
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Vycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1hcGxhbmRlci9jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL21hcmtlcnMvbWFya2Vycy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsT0FBTyxFQUVQLFFBQVEsRUFFUixlQUFlLEVBSWhCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFJOUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDOUUsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUNsQyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUkxRjtJQUdFLHdCQUNVLGlCQUFtQyxFQUNuQyxpQkFBbUMsRUFDbkMsVUFBb0M7UUFGcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLGVBQVUsR0FBVixVQUFVLENBQTBCO0lBRTlDLENBQUM7Ozs7OztJQUVjLHdDQUF5Qjs7Ozs7SUFBeEMsVUFBeUMsSUFBc0I7O1lBQ3pELElBQUksR0FBcUIsSUFBSTtRQUNqQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPOzs7O1FBQUMsVUFBQyxPQUFPO1lBQ25ELElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUU7Z0JBQzFCLElBQUksR0FBRyxPQUFPLENBQUM7YUFDaEI7UUFDSCxDQUFDLEVBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7Ozs7OztJQUVjLDBDQUEyQjs7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Ozs7SUFHdkIsMkNBQTJDOzs7OztJQUMzQywyQ0FBMkM7Ozs7O0lBQzNDLG9DQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWRkcmVzcyxcclxuICBDRVIsXHJcbiAgQ3VycmVuY3ksXHJcbiAgR2VvUHQsXHJcbiAgTmV3UHJvcGVydHlMaXRlLFxyXG4gIE5ld1Byb3BlcnR5TGl0ZVN1Z2dlc3QsXHJcbiAgT2ZmZXJpbmdUeXBlRW51bSxcclxuICBQcm9wZXJ0eVR5cGVFbnVtXHJcbn0gZnJvbSAnQG1hcGxhbmRlci90eXBlcyc7XHJcbmltcG9ydCB7Q29uc3RhbnRzQ29tcG9uZW50c30gZnJvbSAnLi4vLi4vY29uc3RhbnRzQ29tcG9uZW50cyc7XHJcbmltcG9ydCB7TWFya2VyfSBmcm9tICcuLi8uLi91dGlscy9tb2RlbHMvbWFya2VyJztcclxuaW1wb3J0IHtQcm9wZXJ0eUNhcmRJbmZvfSBmcm9tICcuLi8uLi91dGlscy9tb2RlbHMvcHJvcGVydHktY2FyZC1pbmZvJztcclxuaW1wb3J0IHtQcm9wZXJ0eVR5cGVJdGVtfSBmcm9tICcuLi8uLi91dGlscy9tb2RlbHMvcHJvcGVydHktdHlwZS1pdGVtJztcclxuaW1wb3J0IHtPZmZlcmluZ1R5cGVQaXBlfSBmcm9tICcuLi8uLi9waXBlcy9vZmZlcmluZy10eXBlL29mZmVyaW5nLXR5cGUucGlwZSc7XHJcbmltcG9ydCB7UHJvcGVydHlUeXBlUGlwZX0gZnJvbSAnLi4vLi4vcGlwZXMvcHJvcGVydHktdHlwZS9wcm9wZXJ0eS10eXBlLnBpcGUnO1xyXG5pbXBvcnQge1V0aWxzfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7Q3VycmVuY3lDb252ZXJ0ZXJTZXJ2aWNlfSBmcm9tICcuLi9jdXJyZW5jeS1jb252ZXJ0ZXIvY3VycmVuY3ktY29udmVydGVyLnNlcnZpY2UnO1xyXG5cclxuZGVjbGFyZSB2YXIgZ29vZ2xlOiBhbnk7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBNYXJrZXJzU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfcHJvcGVydHlUeXBlUGlwZTogUHJvcGVydHlUeXBlUGlwZSxcclxuICAgIHByaXZhdGUgX29mZmVyaW5nVHlwZVBpcGU6IE9mZmVyaW5nVHlwZVBpcGUsXHJcbiAgICBwcml2YXRlIF9jb252ZXJ0ZXI6IEN1cnJlbmN5Q29udmVydGVyU2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0UHJvcGVydHlUeXBlSXRlbUJ5VHlwZSh0eXBlOiBQcm9wZXJ0eVR5cGVFbnVtKTogUHJvcGVydHlUeXBlSXRlbSB7XHJcbiAgICBsZXQgaXRlbTogUHJvcGVydHlUeXBlSXRlbSA9IG51bGw7XHJcbiAgICBDb25zdGFudHNDb21wb25lbnRzLlByb3BlcnR5VHlwZUxpc3QuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICBpZiAoZWxlbWVudC52YWx1ZSA9PT0gdHlwZSkge1xyXG4gICAgICAgIGl0ZW0gPSBlbGVtZW50O1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBpdGVtO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgdmFsaWRhdGVQcm9wZXJ0eUluRmF2b3JpdGVzKHByb3BlcnR5SWQ6IHN0cmluZywgZmF2b3JpdGVzOiBOZXdQcm9wZXJ0eUxpdGVbXSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmYXZvcml0ZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKHByb3BlcnR5SWQgPT09IGZhdm9yaXRlc1tpXS5pZCkge1xyXG4gICAgICAgIHJlc3VsdCA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBjYWxjdWxhdGVMb2NhdGlvbkZyb20obG9jYXRpb246IEdlb1B0LCBiZWFyaW5nSW5SYWRpYW5zOiBudW1iZXIsIGRpc3RhbmNlSW5NZXRyZXM6IG51bWJlcik6IEdlb1B0IHtcclxuICAgIGNvbnN0IGNvb3JkaW5hdGVMYXRpdHVkZUluUmFkaWFucyA9IGxvY2F0aW9uLmxhdGl0dWRlICogTWF0aC5QSSAvIDE4MDtcclxuICAgIGNvbnN0IGNvb3JkaW5hdGVMb25naXR1ZGVJblJhZGlhbnMgPSBsb2NhdGlvbi5sb25naXR1ZGUgKiBNYXRoLlBJIC8gMTgwO1xyXG4gICAgY29uc3QgZGlzdGFuY2VDb21wYXJlZFRvRWFydGggPSBkaXN0YW5jZUluTWV0cmVzIC8gNjM3ODEwMC4wO1xyXG4gICAgY29uc3QgcmVzdWx0TGF0aXR1ZGVJblJhZGlhbnMgPSBNYXRoLmFzaW4oTWF0aC5zaW4oY29vcmRpbmF0ZUxhdGl0dWRlSW5SYWRpYW5zKSAqIE1hdGguY29zKGRpc3RhbmNlQ29tcGFyZWRUb0VhcnRoKSArXHJcbiAgICAgIE1hdGguY29zKGNvb3JkaW5hdGVMYXRpdHVkZUluUmFkaWFucykgKiBNYXRoLnNpbihkaXN0YW5jZUNvbXBhcmVkVG9FYXJ0aCkgKiBNYXRoLmNvcyhiZWFyaW5nSW5SYWRpYW5zKSk7XHJcbiAgICBjb25zdCByZXN1bHRMb25naXR1ZGVJblJhZGlhbnMgPSBjb29yZGluYXRlTG9uZ2l0dWRlSW5SYWRpYW5zICsgTWF0aC5hdGFuMihNYXRoLnNpbihiZWFyaW5nSW5SYWRpYW5zKSAqXHJcbiAgICAgIE1hdGguc2luKGRpc3RhbmNlQ29tcGFyZWRUb0VhcnRoKSAqIE1hdGguY29zKGNvb3JkaW5hdGVMYXRpdHVkZUluUmFkaWFucyksIE1hdGguY29zKGRpc3RhbmNlQ29tcGFyZWRUb0VhcnRoKSAtXHJcbiAgICAgIE1hdGguc2luKGNvb3JkaW5hdGVMYXRpdHVkZUluUmFkaWFucykgKiBNYXRoLnNpbihyZXN1bHRMYXRpdHVkZUluUmFkaWFucykpO1xyXG4gICAgY29uc3QgbmV3Q29vcmRpbmF0ZXM6IGFueSA9IHt9O1xyXG4gICAgbmV3Q29vcmRpbmF0ZXMubGF0aXR1ZGUgPSByZXN1bHRMYXRpdHVkZUluUmFkaWFucyAqIDE4MCAvIE1hdGguUEk7XHJcbiAgICBuZXdDb29yZGluYXRlcy5sb25naXR1ZGUgPSByZXN1bHRMb25naXR1ZGVJblJhZGlhbnMgKiAxODAgLyBNYXRoLlBJO1xyXG4gICAgcmV0dXJuIG5ld0Nvb3JkaW5hdGVzO1xyXG4gIH1cclxuXHJcbiAgYnVpbGRVUkwoY29uZmlnOiB7XHJcbiAgICBwcm9wZXJ0eUlkOiBzdHJpbmcsXHJcbiAgICBvZmZlcmluZzogT2ZmZXJpbmdUeXBlRW51bSxcclxuICAgIHByb3BlcnR5VHlwZTogUHJvcGVydHlUeXBlRW51bSxcclxuICAgIGFkZHJlc3M6IEFkZHJlc3NcclxuICB9KTogc3RyaW5nIHtcclxuICAgIGxldCB1cmwgPSAncHJvcGVydHkvJztcclxuICAgIHVybCArPSBgJHt0aGlzLl9wcm9wZXJ0eVR5cGVQaXBlLnRyYW5zZm9ybShjb25maWcucHJvcGVydHlUeXBlLCB0cnVlKX0tYDtcclxuICAgIHVybCArPSBgJHt0aGlzLl9vZmZlcmluZ1R5cGVQaXBlLnRyYW5zZm9ybShjb25maWcub2ZmZXJpbmcsICcgJykucmVwbGFjZSgvIC9nLCAnJyl9LWA7XHJcbiAgICB1cmwgKz0gY29uZmlnLmFkZHJlc3MuY29sb255ID8gYCR7Y29uZmlnLmFkZHJlc3MuY29sb255fS1gIDogJyc7XHJcbiAgICB1cmwgKz0gY29uZmlnLmFkZHJlc3MuY2l0eSA/IGAke2NvbmZpZy5hZGRyZXNzLmNpdHl9LWAgOiAnJztcclxuICAgIHVybCArPSBjb25maWcucHJvcGVydHlJZDtcclxuICAgIHVybCA9IFV0aWxzLnJlbW92ZURpYWNyaXRpY3ModXJsKS5yZXBsYWNlKC8gL2csICctJykudG9Mb3dlckNhc2UoKTtcclxuICAgIHJldHVybiB1cmw7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZVByb3BlcnRpZXNJblBvbHkocHJvcGVydGllczogTWFya2VyW10sIHBhdGhzOiBhbnlbXSk6IE1hcmtlcltdIHtcclxuICAgIGNvbnN0IHBvbHlnb24gPSBuZXcgZ29vZ2xlLm1hcHMuUG9seWdvbih7cGF0aHM6IHBhdGhzfSk7XHJcbiAgICBpZiAocHJvcGVydGllcyAmJiBwcm9wZXJ0aWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgcHJvcGVydGllcy5tYXAoKGVsOiBNYXJrZXIpID0+IHtcclxuICAgICAgICBlbC5leHRyYXNbJ3Nob3dJblBvbHlnb24nXSA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IGN1c3RvbUxhdExuZyA9IG5ldyBnb29nbGUubWFwcy5MYXRMbmcoZWwubG9jYXRpb24ubGF0aXR1ZGUsIGVsLmxvY2F0aW9uLmxvbmdpdHVkZSk7XHJcbiAgICAgICAgaWYgKGdvb2dsZS5tYXBzLmdlb21ldHJ5LnBvbHkuY29udGFpbnNMb2NhdGlvbihjdXN0b21MYXRMbmcsIHBvbHlnb24pKSB7XHJcbiAgICAgICAgICBlbC5leHRyYXNbJ3Nob3dJblBvbHlnb24nXSA9IHRydWU7XHJcbiAgICAgICAgICByZXR1cm4gZWw7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGVsLmV4dHJhc1snc2hvd0luUG9seWdvbiddID0gZmFsc2U7XHJcbiAgICAgICAgICByZXR1cm4gZWw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcHJvcGVydGllcyA9IHByb3BlcnRpZXMuZmlsdGVyKChlKSA9PiB7XHJcbiAgICAgICAgaWYgKGUuZXh0cmFzWydzaG93SW5Qb2x5Z29uJ10pIHtcclxuICAgICAgICAgIHJldHVybiBlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBwcm9wZXJ0aWVzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWFya2Vyc1RvQ3VycmVuY3kobWFya2VyczogTWFya2VyW10sIHRvQ3VycmVuY3k6IEN1cnJlbmN5LCBjdXJyZW5jaWVzOiBDRVJbXSk6IE1hcmtlcltdIHtcclxuICAgIG1hcmtlcnMgPSBtYXJrZXJzLm1hcDxNYXJrZXI+KGl0ZW0gPT4ge1xyXG4gICAgICBpZiAoQ3VycmVuY3lbaXRlbS5pbmZvLmN1cnJlbmN5XSAhPT0gdG9DdXJyZW5jeSkge1xyXG4gICAgICAgIGl0ZW0uaW5mby5wcmljZSA9IHRoaXMuX2NvbnZlcnRlci5udW1iZXIoaXRlbS5pbmZvLnByaWNlLCBjdXJyZW5jaWVzLCBDdXJyZW5jeVtpdGVtLmluZm8uY3VycmVuY3ldLCB0b0N1cnJlbmN5KTtcclxuICAgICAgICBpdGVtLmluZm8uY3VycmVuY3kgPSB0b0N1cnJlbmN5LnRvU3RyaW5nKCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBtYXJrZXJzO1xyXG4gIH1cclxuXHJcbiAgYnVpbGRNYXJrZXJzKGVudGl0aWVzOiBOZXdQcm9wZXJ0eUxpdGVbXSB8IE5ld1Byb3BlcnR5TGl0ZVN1Z2dlc3RbXSwgZmF2b3JpdGVzPzogTmV3UHJvcGVydHlMaXRlW10pOiBNYXJrZXJbXSB7XHJcbiAgICBjb25zdCBtYXJrZXJzOiBNYXJrZXJbXSA9IFtdO1xyXG4gICAgZW50aXRpZXMuZm9yRWFjaCgoZW50aXR5KSA9PiB7XHJcbiAgICAgIGNvbnN0IG06IE1hcmtlciA9IHtcclxuICAgICAgICBsb2NhdGlvbjogZW50aXR5LmFkZHJlc3MubG9jYXRpb24sXHJcbiAgICAgICAgaG92ZXI6IGZhbHNlLFxyXG4gICAgICAgIHZpc2l0ZWQ6IGZhbHNlLFxyXG4gICAgICAgIHR5cGU6IE1hcmtlcnNTZXJ2aWNlLmdldFByb3BlcnR5VHlwZUl0ZW1CeVR5cGUoZW50aXR5LnR5cGUpLFxyXG4gICAgICAgIGluZm86IHRoaXMuY3JlYXRlUHJvcGVydHlJbmZvQ2FyZChlbnRpdHkpLFxyXG4gICAgICAgIGlzRmF2b3JpdGU6IGZhbHNlLFxyXG4gICAgICAgIGV4dHJhczoge31cclxuICAgICAgfTtcclxuICAgICAgaWYgKGVudGl0eSBpbnN0YW5jZW9mIE5ld1Byb3BlcnR5TGl0ZSkge1xyXG4gICAgICAgIG0uaXNGYXZvcml0ZSA9IGZhdm9yaXRlcyAmJiBmYXZvcml0ZXMubGVuZ3RoID4gMCA/IE1hcmtlcnNTZXJ2aWNlLnZhbGlkYXRlUHJvcGVydHlJbkZhdm9yaXRlcyhlbnRpdHkuaWQsIGZhdm9yaXRlcykgOiBmYWxzZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBtLmlzRmF2b3JpdGUgPSBmYXZvcml0ZXMgJiYgZmF2b3JpdGVzLmxlbmd0aCA+IDAgPyBNYXJrZXJzU2VydmljZS52YWxpZGF0ZVByb3BlcnR5SW5GYXZvcml0ZXMoZW50aXR5LnByb3BlcnR5SWQsIGZhdm9yaXRlcykgOiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBtYXJrZXJzLnB1c2gobSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBtYXJrZXJzO1xyXG4gIH1cclxuXHJcbiAgYnVpbGRTcGlkZXIobGlzdDogTWFya2VyW10pOiB7IG1hcmtlcnM6IE1hcmtlcltdLCBwb2x5TGluZXM6IGFueVtdIH0ge1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSB7bWFya2VyczogW10sIHBvbHlMaW5lczogW119O1xyXG4gICAgbGlzdC5tYXAoKGVsKSA9PiB7XHJcbiAgICAgIGVsLmV4dHJhc1sncmVwZWF0J10gPSBmYWxzZTtcclxuICAgICAgY29uc3Qgc2l6ZSA9IGxpc3QuZmlsdGVyKGl0ZW0gPT4ge1xyXG4gICAgICAgIHJldHVybiBlbC5sb2NhdGlvbi5sYXRpdHVkZSA9PT0gaXRlbS5sb2NhdGlvbi5sYXRpdHVkZSAmJiBlbC5sb2NhdGlvbi5sb25naXR1ZGUgPT09IGl0ZW0ubG9jYXRpb24ubG9uZ2l0dWRlO1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgZGlzdGFuY2UgPSAxMiAqIHNpemUubGVuZ3RoIC8gMi4wO1xyXG4gICAgICBjb25zdCByYWRpYW5zQmV0d2VlbkFubm90YXRpb25zID0gKE1hdGguUEkgKiAyKSAvIHNpemUubGVuZ3RoO1xyXG4gICAgICBpZiAoIWVsLmV4dHJhc1sncmVwZWF0J10gJiYgc2l6ZS5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgY29uc3QgbG9jYXRpb25TaGFyZTogYW55ID0gT2JqZWN0LmFzc2lnbih7fSwgZWwubG9jYXRpb24pO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2l6ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgY29uc3QgaGVhZGluZyA9IHJhZGlhbnNCZXR3ZWVuQW5ub3RhdGlvbnMgKiBpO1xyXG4gICAgICAgICAgc2l6ZVtpXVsncmVwZWF0J10gPSB0cnVlO1xyXG4gICAgICAgICAgY29uc3QgbmV3TG9jYXRpb24gPSBNYXJrZXJzU2VydmljZS5jYWxjdWxhdGVMb2NhdGlvbkZyb20obG9jYXRpb25TaGFyZSwgaGVhZGluZywgZGlzdGFuY2UpO1xyXG4gICAgICAgICAgcmVzcG9uc2UucG9seUxpbmVzLnB1c2goe1xyXG4gICAgICAgICAgICBwYXRoOiBbXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbGF0aXR1ZGU6IE51bWJlcihsb2NhdGlvblNoYXJlLmxhdGl0dWRlKSxcclxuICAgICAgICAgICAgICAgIGxvbmdpdHVkZTogTnVtYmVyKGxvY2F0aW9uU2hhcmUubG9uZ2l0dWRlKVxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbGF0aXR1ZGU6IE51bWJlcihuZXdMb2NhdGlvbi5sYXRpdHVkZSksXHJcbiAgICAgICAgICAgICAgICBsb25naXR1ZGU6IE51bWJlcihuZXdMb2NhdGlvbi5sb25naXR1ZGUpXHJcbiAgICAgICAgICAgICAgfV1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgc2l6ZVtpXS5sb2NhdGlvbiA9IG5ld0xvY2F0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZWw7XHJcbiAgICB9KTtcclxuICAgIHJlc3BvbnNlLm1hcmtlcnMgPSBsaXN0O1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gIH1cclxuXHJcbiAgYnVpbGROZXdTcGlkZXIobGlzdDogQXJyYXk8eyBpZDogc3RyaW5nLCBsb2NhdGlvbjogR2VvUHQsIHByaWNlOiBudW1iZXIsXHJcbiAgICBjdXJyZW5jeTogc3RyaW5nLCB1cmw6IHN0cmluZyB9Pik6IHsgbWFya2VyczogTWFya2VyW10sIHBvbHlMaW5lczogYW55W10gfSB7XHJcbiAgICBjb25zdCByZXNwb25zZSA9IHttYXJrZXJzOiBbXSwgcG9seUxpbmVzOiBbXX07XHJcbiAgICBjb25zdCBuZXdMaXN0ID0gW107XHJcbiAgICBmb3IgKGNvbnN0IGxpc3RFbGVtZW50IG9mIGxpc3QpIHtcclxuICAgICAgbmV3TGlzdC5wdXNoKHtcclxuICAgICAgICBpZDogbGlzdEVsZW1lbnQuaWQsXHJcbiAgICAgICAgbG9jYXRpb246IGxpc3RFbGVtZW50LmxvY2F0aW9uLFxyXG4gICAgICAgIHByaWNlOiBsaXN0RWxlbWVudC5wcmljZSxcclxuICAgICAgICBjdXJyZW5jeTogbGlzdEVsZW1lbnQuY3VycmVuY3ksXHJcbiAgICAgICAgdXJsOiBsaXN0RWxlbWVudC51cmwsXHJcbiAgICAgICAgZXh0cmFzOiB7fVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIG5ld0xpc3QubWFwKChlbCkgPT4ge1xyXG4gICAgICBlbC5leHRyYXNbJ3JlcGVhdCddID0gZmFsc2U7XHJcbiAgICAgIGNvbnN0IHNpemUgPSBsaXN0LmZpbHRlcihpdGVtID0+IHtcclxuICAgICAgICByZXR1cm4gZWwubG9jYXRpb24ubGF0aXR1ZGUgPT09IGl0ZW0ubG9jYXRpb24ubGF0aXR1ZGUgJiYgZWwubG9jYXRpb24ubG9uZ2l0dWRlID09PSBpdGVtLmxvY2F0aW9uLmxvbmdpdHVkZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnN0IGRpc3RhbmNlID0gMTIgKiBzaXplLmxlbmd0aCAvIDIuMDtcclxuICAgICAgY29uc3QgcmFkaWFuc0JldHdlZW5Bbm5vdGF0aW9ucyA9IChNYXRoLlBJICogMikgLyBzaXplLmxlbmd0aDtcclxuICAgICAgaWYgKCFlbC5leHRyYXNbJ3JlcGVhdCddICYmIHNpemUubGVuZ3RoID4gMSkge1xyXG4gICAgICAgIGNvbnN0IGxvY2F0aW9uU2hhcmU6IGFueSA9IE9iamVjdC5hc3NpZ24oe30sIGVsLmxvY2F0aW9uKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemUubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGNvbnN0IGhlYWRpbmcgPSByYWRpYW5zQmV0d2VlbkFubm90YXRpb25zICogaTtcclxuICAgICAgICAgIHNpemVbaV1bJ3JlcGVhdCddID0gdHJ1ZTtcclxuICAgICAgICAgIGNvbnN0IG5ld0xvY2F0aW9uID0gTWFya2Vyc1NlcnZpY2UuY2FsY3VsYXRlTG9jYXRpb25Gcm9tKGxvY2F0aW9uU2hhcmUsIGhlYWRpbmcsIGRpc3RhbmNlKTtcclxuICAgICAgICAgIHJlc3BvbnNlLnBvbHlMaW5lcy5wdXNoKHtcclxuICAgICAgICAgICAgcGF0aDogW1xyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGxhdGl0dWRlOiBOdW1iZXIobG9jYXRpb25TaGFyZS5sYXRpdHVkZSksXHJcbiAgICAgICAgICAgICAgICBsb25naXR1ZGU6IE51bWJlcihsb2NhdGlvblNoYXJlLmxvbmdpdHVkZSlcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGxhdGl0dWRlOiBOdW1iZXIobmV3TG9jYXRpb24ubGF0aXR1ZGUpLFxyXG4gICAgICAgICAgICAgICAgbG9uZ2l0dWRlOiBOdW1iZXIobmV3TG9jYXRpb24ubG9uZ2l0dWRlKVxyXG4gICAgICAgICAgICAgIH1dXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHNpemVbaV0ubG9jYXRpb24gPSBuZXdMb2NhdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGVsO1xyXG4gICAgfSk7XHJcbiAgICByZXNwb25zZS5tYXJrZXJzID0gbGlzdDtcclxuICAgIHJldHVybiByZXNwb25zZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlUHJvcGVydHlJbmZvQ2FyZChlbnRpdHk6IE5ld1Byb3BlcnR5TGl0ZSB8IE5ld1Byb3BlcnR5TGl0ZVN1Z2dlc3QpOiBQcm9wZXJ0eUNhcmRJbmZvIHtcclxuICAgIHJldHVybiAge1xyXG4gICAgICBhZGRyZXNzOiBuZXcgQWRkcmVzcyhlbnRpdHkuYWRkcmVzcyB8fCBudWxsKSxcclxuICAgICAgYXV0aFVzZXJzOiAoZW50aXR5IGluc3RhbmNlb2YgTmV3UHJvcGVydHlMaXRlKSA/IGVudGl0eS5hdXRoVXNlcnMgOiAnJyxcclxuICAgICAgY3VycmVuY3k6IGVudGl0eS5jdXJyZW5jeSxcclxuICAgICAgcHJvcGVydHlJZDogKGVudGl0eSBpbnN0YW5jZW9mIE5ld1Byb3BlcnR5TGl0ZSkgPyBlbnRpdHkuaWQgOiBlbnRpdHkucHJvcGVydHlJZCxcclxuICAgICAgaW1hZ2U6IGVudGl0eS5pbWFnZSxcclxuICAgICAgb2ZmZXJpbmc6IGVudGl0eS5vZmZlcmluZyxcclxuICAgICAgcHJpY2U6IGVudGl0eS5wcmljZSxcclxuICAgICAgdHlwZTogZW50aXR5LnR5cGUsXHJcbiAgICAgIHVybDogdGhpcy5idWlsZFVSTCh7XHJcbiAgICAgICAgYWRkcmVzczogZW50aXR5LmFkZHJlc3MsXHJcbiAgICAgICAgb2ZmZXJpbmc6IGVudGl0eS5vZmZlcmluZyxcclxuICAgICAgICBwcm9wZXJ0eVR5cGU6IGVudGl0eS50eXBlLFxyXG4gICAgICAgIHByb3BlcnR5SWQ6IChlbnRpdHkgaW5zdGFuY2VvZiBOZXdQcm9wZXJ0eUxpdGUpID8gZW50aXR5LmlkIDogZW50aXR5LnByb3BlcnR5SWRcclxuICAgICAgfSksXHJcbiAgICAgIHN0YXR1czogKGVudGl0eSBpbnN0YW5jZW9mIE5ld1Byb3BlcnR5TGl0ZSkgPyBlbnRpdHkuc3RhdHVzIDogbnVsbCxcclxuICAgICAgZmVhdHVyZXM6IChlbnRpdHkgaW5zdGFuY2VvZiBOZXdQcm9wZXJ0eUxpdGUpID8gZW50aXR5LmZlYXR1cmVzIDogbnVsbCxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -2838,9 +2838,9 @@ class FiltersComponent {
2838
2838
  */
2839
2839
  openComponent(open) {
2840
2840
  if (open) {
2841
+ this.changeFilter.emit({ type: 'init', payload: { filter: null, value: null } });
2841
2842
  this._render.setStyle(this._ref.nativeElement, 'visibility', 'visible');
2842
2843
  this._render.setStyle(this._ref.nativeElement, 'opacity', '1');
2843
- this.changeFilter.emit({ type: 'init', payload: null });
2844
2844
  }
2845
2845
  else {
2846
2846
  this._render.setStyle(this._ref.nativeElement, 'opacity', '0');
@@ -6646,6 +6646,72 @@ class MarkersService {
6646
6646
  response.markers = list;
6647
6647
  return response;
6648
6648
  }
6649
+ /**
6650
+ * @param {?} list
6651
+ * @return {?}
6652
+ */
6653
+ buildNewSpider(list) {
6654
+ /** @type {?} */
6655
+ const response = { markers: [], polyLines: [] };
6656
+ /** @type {?} */
6657
+ const newList = [];
6658
+ for (const listElement of list) {
6659
+ newList.push({
6660
+ id: listElement.id,
6661
+ location: listElement.location,
6662
+ price: listElement.price,
6663
+ currency: listElement.currency,
6664
+ url: listElement.url,
6665
+ extras: {}
6666
+ });
6667
+ }
6668
+ newList.map((/**
6669
+ * @param {?} el
6670
+ * @return {?}
6671
+ */
6672
+ (el) => {
6673
+ el.extras['repeat'] = false;
6674
+ /** @type {?} */
6675
+ const size = list.filter((/**
6676
+ * @param {?} item
6677
+ * @return {?}
6678
+ */
6679
+ item => {
6680
+ return el.location.latitude === item.location.latitude && el.location.longitude === item.location.longitude;
6681
+ }));
6682
+ /** @type {?} */
6683
+ const distance = 12 * size.length / 2.0;
6684
+ /** @type {?} */
6685
+ const radiansBetweenAnnotations = (Math.PI * 2) / size.length;
6686
+ if (!el.extras['repeat'] && size.length > 1) {
6687
+ /** @type {?} */
6688
+ const locationShare = Object.assign({}, el.location);
6689
+ for (let i = 0; i < size.length; i++) {
6690
+ /** @type {?} */
6691
+ const heading = radiansBetweenAnnotations * i;
6692
+ size[i]['repeat'] = true;
6693
+ /** @type {?} */
6694
+ const newLocation = MarkersService.calculateLocationFrom(locationShare, heading, distance);
6695
+ response.polyLines.push({
6696
+ path: [
6697
+ {
6698
+ latitude: Number(locationShare.latitude),
6699
+ longitude: Number(locationShare.longitude)
6700
+ },
6701
+ {
6702
+ latitude: Number(newLocation.latitude),
6703
+ longitude: Number(newLocation.longitude)
6704
+ }
6705
+ ]
6706
+ });
6707
+ size[i].location = newLocation;
6708
+ }
6709
+ }
6710
+ return el;
6711
+ }));
6712
+ response.markers = list;
6713
+ return response;
6714
+ }
6649
6715
  /**
6650
6716
  * @private
6651
6717
  * @param {?} entity