ng-virtual-list 16.7.0 → 16.7.2

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 (71) hide show
  1. package/README.md +19 -16
  2. package/esm2022/lib/components/ng-virtual-list-item.component.mjs +28 -8
  3. package/esm2022/lib/const/index.mjs +2 -1
  4. package/esm2022/lib/models/index.mjs +1 -1
  5. package/esm2022/lib/models/item-config-map.model.mjs +2 -0
  6. package/esm2022/lib/models/render-item-config.model.mjs +1 -1
  7. package/esm2022/lib/ng-virtual-list.component.mjs +63 -26
  8. package/esm2022/lib/ng-virtual-list.service.mjs +46 -9
  9. package/esm2022/lib/utils/trackBox.mjs +22 -19
  10. package/fesm2022/ng-virtual-list.mjs +154 -56
  11. package/fesm2022/ng-virtual-list.mjs.map +1 -1
  12. package/lib/components/ng-virtual-list-item.component.d.ts +25 -5
  13. package/lib/const/index.d.ts +1 -0
  14. package/lib/models/index.d.ts +2 -2
  15. package/lib/models/item-config-map.model.d.ts +23 -0
  16. package/lib/models/render-item-config.model.d.ts +5 -1
  17. package/lib/ng-virtual-list.component.d.ts +25 -8
  18. package/lib/ng-virtual-list.service.d.ts +7 -0
  19. package/lib/utils/trackBox.d.ts +4 -4
  20. package/package.json +1 -1
  21. package/esm2020/lib/components/ng-virtual-list-item.component.mjs +0 -198
  22. package/esm2020/lib/const/index.mjs +0 -51
  23. package/esm2020/lib/enums/direction.mjs +0 -2
  24. package/esm2020/lib/enums/directions.mjs +0 -18
  25. package/esm2020/lib/enums/index.mjs +0 -5
  26. package/esm2020/lib/enums/method-for-selecting-types.mjs +0 -22
  27. package/esm2020/lib/enums/method-for-selecting.mjs +0 -2
  28. package/esm2020/lib/enums/methods-for-selecting.mjs +0 -22
  29. package/esm2020/lib/enums/snapping-method.mjs +0 -2
  30. package/esm2020/lib/enums/snapping-methods.mjs +0 -18
  31. package/esm2020/lib/models/base-virtual-list-item-component.mjs +0 -9
  32. package/esm2020/lib/models/collection.model.mjs +0 -3
  33. package/esm2020/lib/models/component.model.mjs +0 -2
  34. package/esm2020/lib/models/index.mjs +0 -2
  35. package/esm2020/lib/models/item.model.mjs +0 -2
  36. package/esm2020/lib/models/render-collection.model.mjs +0 -3
  37. package/esm2020/lib/models/render-item-config.model.mjs +0 -2
  38. package/esm2020/lib/models/render-item.model.mjs +0 -3
  39. package/esm2020/lib/models/scroll-direction.model.mjs +0 -2
  40. package/esm2020/lib/models/scroll-event.model.mjs +0 -2
  41. package/esm2020/lib/models/sticky-map.model.mjs +0 -2
  42. package/esm2020/lib/ng-virtual-list.component.mjs +0 -800
  43. package/esm2020/lib/ng-virtual-list.module.mjs +0 -20
  44. package/esm2020/lib/ng-virtual-list.service.mjs +0 -94
  45. package/esm2020/lib/types/id.mjs +0 -2
  46. package/esm2020/lib/types/index.mjs +0 -2
  47. package/esm2020/lib/types/rect.mjs +0 -2
  48. package/esm2020/lib/types/size.mjs +0 -2
  49. package/esm2020/lib/utils/browser.mjs +0 -3
  50. package/esm2020/lib/utils/buffer-interpolation.mjs +0 -27
  51. package/esm2020/lib/utils/cacheMap.mjs +0 -167
  52. package/esm2020/lib/utils/debounce.mjs +0 -31
  53. package/esm2020/lib/utils/disposableComponent.mjs +0 -29
  54. package/esm2020/lib/utils/eventEmitter.mjs +0 -106
  55. package/esm2020/lib/utils/index.mjs +0 -5
  56. package/esm2020/lib/utils/isDirection.mjs +0 -15
  57. package/esm2020/lib/utils/isMethodForSelecting.mjs +0 -18
  58. package/esm2020/lib/utils/scrollEvent.mjs +0 -42
  59. package/esm2020/lib/utils/snapping-method.mjs +0 -9
  60. package/esm2020/lib/utils/toggleClassName.mjs +0 -15
  61. package/esm2020/lib/utils/trackBox.mjs +0 -762
  62. package/esm2020/lib/utils/tracker.mjs +0 -143
  63. package/esm2020/ng-virtual-list.mjs +0 -5
  64. package/esm2020/public-api.mjs +0 -10
  65. package/esm2022/lib/models/sticky-map.model.mjs +0 -2
  66. package/fesm2015/ng-virtual-list.mjs +0 -2582
  67. package/fesm2015/ng-virtual-list.mjs.map +0 -1
  68. package/fesm2020/ng-virtual-list.mjs +0 -2586
  69. package/fesm2020/ng-virtual-list.mjs.map +0 -1
  70. package/lib/models/sticky-map.model.d.ts +0 -14
  71. package/lib/utils/disposableComponent.d.ts +0 -15
@@ -1,42 +0,0 @@
1
- /**
2
- * Scroll event.
3
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/15.x/projects/ng-virtual-list/src/lib/utils/scrollEvent.ts
4
- * @author Evgenii Grebennikov
5
- * @email djonnyx@gmail.com
6
- */
7
- export class ScrollEvent {
8
- get direction() { return this._direction; }
9
- get scrollSize() { return this._scrollSize; }
10
- get scrollWeight() { return this._scrollWeight; }
11
- get isVertical() { return this._isVertical; }
12
- get listSize() { return this._listSize; }
13
- get size() { return this._size; }
14
- get isStart() { return this._isStart; }
15
- get isEnd() { return this._isEnd; }
16
- get delta() { return this._delta; }
17
- get scrollDelta() { return this._scrollDelta; }
18
- constructor(params) {
19
- this._direction = 1;
20
- this._scrollSize = 0;
21
- this._scrollWeight = 0;
22
- this._isVertical = true;
23
- this._listSize = 0;
24
- this._size = 0;
25
- this._isStart = true;
26
- this._isEnd = false;
27
- this._delta = 0;
28
- this._scrollDelta = 0;
29
- const { direction, isVertical, container, list, delta, scrollDelta } = params;
30
- this._direction = direction;
31
- this._isVertical = isVertical;
32
- this._scrollSize = isVertical ? container.scrollTop : container.scrollLeft;
33
- this._scrollWeight = isVertical ? container.scrollHeight : container.scrollWidth;
34
- this._listSize = isVertical ? list.offsetHeight : list.offsetWidth;
35
- this._size = isVertical ? container.offsetHeight : container.offsetWidth;
36
- this._isEnd = (this._scrollSize + this._size) === this._scrollWeight;
37
- this._delta = delta;
38
- this._scrollDelta = scrollDelta;
39
- this._isStart = this._scrollSize === 0;
40
- }
41
- }
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsRXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi91dGlscy9zY3JvbGxFdmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQTs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBRXBCLElBQUksU0FBUyxLQUFLLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFHM0MsSUFBSSxVQUFVLEtBQUssT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUc3QyxJQUFJLFlBQVksS0FBSyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBR2pELElBQUksVUFBVSxLQUFLLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFHN0MsSUFBSSxRQUFRLEtBQUssT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUd6QyxJQUFJLElBQUksS0FBSyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBR2pDLElBQUksT0FBTyxLQUFLLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFHdkMsSUFBSSxLQUFLLEtBQUssT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUduQyxJQUFJLEtBQUssS0FBSyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBR25DLElBQUksV0FBVyxLQUFLLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFFL0MsWUFBWSxNQUEwQjtRQTlCOUIsZUFBVSxHQUFvQixDQUFDLENBQUM7UUFHaEMsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFHeEIsa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFHMUIsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFHNUIsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUd0QixVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBR2xCLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFHekIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUd4QixXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBR25CLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBSTdCLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUM5RSxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQztRQUMzRSxJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztRQUNqRixJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNuRSxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztRQUN6RSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUNyRSxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElTY3JvbGxFdmVudCwgU2Nyb2xsRGlyZWN0aW9uIH0gZnJvbSBcIi4uL21vZGVsc1wiO1xyXG5cclxuaW50ZXJmYWNlIElTY3JvbGxFdmVudFBhcmFtcyB7XHJcbiAgICBkaXJlY3Rpb246IFNjcm9sbERpcmVjdGlvbjtcclxuICAgIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XHJcbiAgICBsaXN0OiBIVE1MRWxlbWVudDtcclxuICAgIGRlbHRhOiBudW1iZXI7XHJcbiAgICBzY3JvbGxEZWx0YTogbnVtYmVyO1xyXG4gICAgaXNWZXJ0aWNhbDogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNjcm9sbCBldmVudC5cclxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL0Rqb25ueVgvbmctdmlydHVhbC1saXN0L2Jsb2IvMTUueC9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi91dGlscy9zY3JvbGxFdmVudC50c1xyXG4gKiBAYXV0aG9yIEV2Z2VuaWkgR3JlYmVubmlrb3ZcclxuICogQGVtYWlsIGRqb25ueXhAZ21haWwuY29tXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU2Nyb2xsRXZlbnQgaW1wbGVtZW50cyBJU2Nyb2xsRXZlbnQge1xyXG4gICAgcHJpdmF0ZSBfZGlyZWN0aW9uOiBTY3JvbGxEaXJlY3Rpb24gPSAxO1xyXG4gICAgZ2V0IGRpcmVjdGlvbigpIHsgcmV0dXJuIHRoaXMuX2RpcmVjdGlvbjsgfVxyXG5cclxuICAgIHByaXZhdGUgX3Njcm9sbFNpemU6IG51bWJlciA9IDA7XHJcbiAgICBnZXQgc2Nyb2xsU2l6ZSgpIHsgcmV0dXJuIHRoaXMuX3Njcm9sbFNpemU7IH1cclxuXHJcbiAgICBwcml2YXRlIF9zY3JvbGxXZWlnaHQ6IG51bWJlciA9IDA7XHJcbiAgICBnZXQgc2Nyb2xsV2VpZ2h0KCkgeyByZXR1cm4gdGhpcy5fc2Nyb2xsV2VpZ2h0OyB9XHJcblxyXG4gICAgcHJpdmF0ZSBfaXNWZXJ0aWNhbDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBnZXQgaXNWZXJ0aWNhbCgpIHsgcmV0dXJuIHRoaXMuX2lzVmVydGljYWw7IH1cclxuXHJcbiAgICBwcml2YXRlIF9saXN0U2l6ZTogbnVtYmVyID0gMDtcclxuICAgIGdldCBsaXN0U2l6ZSgpIHsgcmV0dXJuIHRoaXMuX2xpc3RTaXplOyB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2l6ZTogbnVtYmVyID0gMDtcclxuICAgIGdldCBzaXplKCkgeyByZXR1cm4gdGhpcy5fc2l6ZTsgfVxyXG5cclxuICAgIHByaXZhdGUgX2lzU3RhcnQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgZ2V0IGlzU3RhcnQoKSB7IHJldHVybiB0aGlzLl9pc1N0YXJ0OyB9XHJcblxyXG4gICAgcHJpdmF0ZSBfaXNFbmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGdldCBpc0VuZCgpIHsgcmV0dXJuIHRoaXMuX2lzRW5kOyB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZGVsdGE6IG51bWJlciA9IDA7XHJcbiAgICBnZXQgZGVsdGEoKSB7IHJldHVybiB0aGlzLl9kZWx0YTsgfVxyXG5cclxuICAgIHByaXZhdGUgX3Njcm9sbERlbHRhOiBudW1iZXIgPSAwO1xyXG4gICAgZ2V0IHNjcm9sbERlbHRhKCkgeyByZXR1cm4gdGhpcy5fc2Nyb2xsRGVsdGE7IH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihwYXJhbXM6IElTY3JvbGxFdmVudFBhcmFtcykge1xyXG4gICAgICAgIGNvbnN0IHsgZGlyZWN0aW9uLCBpc1ZlcnRpY2FsLCBjb250YWluZXIsIGxpc3QsIGRlbHRhLCBzY3JvbGxEZWx0YSB9ID0gcGFyYW1zO1xyXG4gICAgICAgIHRoaXMuX2RpcmVjdGlvbiA9IGRpcmVjdGlvbjtcclxuICAgICAgICB0aGlzLl9pc1ZlcnRpY2FsID0gaXNWZXJ0aWNhbDtcclxuICAgICAgICB0aGlzLl9zY3JvbGxTaXplID0gaXNWZXJ0aWNhbCA/IGNvbnRhaW5lci5zY3JvbGxUb3AgOiBjb250YWluZXIuc2Nyb2xsTGVmdDtcclxuICAgICAgICB0aGlzLl9zY3JvbGxXZWlnaHQgPSBpc1ZlcnRpY2FsID8gY29udGFpbmVyLnNjcm9sbEhlaWdodCA6IGNvbnRhaW5lci5zY3JvbGxXaWR0aDtcclxuICAgICAgICB0aGlzLl9saXN0U2l6ZSA9IGlzVmVydGljYWwgPyBsaXN0Lm9mZnNldEhlaWdodCA6IGxpc3Qub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgdGhpcy5fc2l6ZSA9IGlzVmVydGljYWwgPyBjb250YWluZXIub2Zmc2V0SGVpZ2h0IDogY29udGFpbmVyLm9mZnNldFdpZHRoO1xyXG4gICAgICAgIHRoaXMuX2lzRW5kID0gKHRoaXMuX3Njcm9sbFNpemUgKyB0aGlzLl9zaXplKSA9PT0gdGhpcy5fc2Nyb2xsV2VpZ2h0O1xyXG4gICAgICAgIHRoaXMuX2RlbHRhID0gZGVsdGE7XHJcbiAgICAgICAgdGhpcy5fc2Nyb2xsRGVsdGEgPSBzY3JvbGxEZWx0YTtcclxuICAgICAgICB0aGlzLl9pc1N0YXJ0ID0gdGhpcy5fc2Nyb2xsU2l6ZSA9PT0gMDtcclxuICAgIH1cclxufSJdfQ==
@@ -1,9 +0,0 @@
1
- import { SnappingMethods } from "../enums";
2
- const ADVANCED_PATTERNS = [SnappingMethods.ADVANCED, 'advanced'], DEFAULT_PATTERN = [SnappingMethods.NORMAL, 'normal'];
3
- export const isSnappingMethodAdvenced = (method) => {
4
- return ADVANCED_PATTERNS.includes(method);
5
- };
6
- export const isSnappingMethodDefault = (method) => {
7
- return DEFAULT_PATTERN.includes(method);
8
- };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcHBpbmctbWV0aG9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvdXRpbHMvc25hcHBpbmctbWV0aG9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBa0IsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRTNELE1BQU0saUJBQWlCLEdBQTBCLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsRUFDbkYsZUFBZSxHQUEwQixDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFFaEYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxNQUFzQixFQUFXLEVBQUU7SUFDeEUsT0FBTyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDOUMsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxNQUFzQixFQUFXLEVBQUU7SUFDdkUsT0FBTyxlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNuYXBwaW5nTWV0aG9kLCBTbmFwcGluZ01ldGhvZHMgfSBmcm9tIFwiLi4vZW51bXNcIjtcclxuXHJcbmNvbnN0IEFEVkFOQ0VEX1BBVFRFUk5TOiBBcnJheTxTbmFwcGluZ01ldGhvZD4gPSBbU25hcHBpbmdNZXRob2RzLkFEVkFOQ0VELCAnYWR2YW5jZWQnXSxcclxuICAgIERFRkFVTFRfUEFUVEVSTjogQXJyYXk8U25hcHBpbmdNZXRob2Q+ID0gW1NuYXBwaW5nTWV0aG9kcy5OT1JNQUwsICdub3JtYWwnXTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc1NuYXBwaW5nTWV0aG9kQWR2ZW5jZWQgPSAobWV0aG9kOiBTbmFwcGluZ01ldGhvZCk6IGJvb2xlYW4gPT4ge1xyXG4gICAgcmV0dXJuIEFEVkFOQ0VEX1BBVFRFUk5TLmluY2x1ZGVzKG1ldGhvZCk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBpc1NuYXBwaW5nTWV0aG9kRGVmYXVsdCA9IChtZXRob2Q6IFNuYXBwaW5nTWV0aG9kKTogYm9vbGVhbiA9PiB7XHJcbiAgICByZXR1cm4gREVGQVVMVF9QQVRURVJOLmluY2x1ZGVzKG1ldGhvZCk7XHJcbn0iXX0=
@@ -1,15 +0,0 @@
1
- /**
2
- * Switch css classes
3
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/15.x/projects/ng-virtual-list/src/lib/utils/toggleClassName.ts
4
- * @author Evgenii Grebennikov
5
- * @email djonnyx@gmail.com
6
- */
7
- export const toggleClassName = (el, className, removeClassName) => {
8
- if (!el.classList.contains(className)) {
9
- el.classList.add(className);
10
- }
11
- if (removeClassName) {
12
- el.classList.remove(removeClassName);
13
- }
14
- };
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlQ2xhc3NOYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvdXRpbHMvdG9nZ2xlQ2xhc3NOYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsRUFBZSxFQUFFLFNBQWlCLEVBQUUsZUFBd0IsRUFBRSxFQUFFO0lBQzVGLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUNuQyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUMvQjtJQUNELElBQUksZUFBZSxFQUFFO1FBQ2pCLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBQ3hDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi8qKlxyXG4gKiBTd2l0Y2ggY3NzIGNsYXNzZXNcclxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL0Rqb25ueVgvbmctdmlydHVhbC1saXN0L2Jsb2IvMTUueC9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi91dGlscy90b2dnbGVDbGFzc05hbWUudHNcclxuICogQGF1dGhvciBFdmdlbmlpIEdyZWJlbm5pa292XHJcbiAqIEBlbWFpbCBkam9ubnl4QGdtYWlsLmNvbVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHRvZ2dsZUNsYXNzTmFtZSA9IChlbDogSFRNTEVsZW1lbnQsIGNsYXNzTmFtZTogc3RyaW5nLCByZW1vdmVDbGFzc05hbWU/OiBzdHJpbmcpID0+IHtcclxuICAgIGlmICghZWwuY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzTmFtZSkpIHtcclxuICAgICAgICBlbC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7XHJcbiAgICB9XHJcbiAgICBpZiAocmVtb3ZlQ2xhc3NOYW1lKSB7XHJcbiAgICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZShyZW1vdmVDbGFzc05hbWUpO1xyXG4gICAgfVxyXG59O1xyXG4iXX0=