@libs-ui/components-scroll-overlay 0.2.141 → 0.2.143

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.
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import { Directive, ElementRef, Renderer2, computed, effect, inject, input, output, signal, untracked } from "@angular/core";
3
- import { Subject, Subscription, fromEvent, interval, switchMap, takeUntil, tap } from "rxjs";
4
3
  import { checkMouseOverInContainer, getDragEventByElement } from '@libs-ui/utils';
4
+ import { Subject, Subscription, fromEvent, interval, switchMap, takeUntil, tap } from "rxjs";
5
5
  import * as i0 from "@angular/core";
6
6
  export class LibsUiComponentsScrollOverlayDirective {
7
7
  // #region PROPERTY
@@ -353,4 +353,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
353
353
  standalone: true
354
354
  }]
355
355
  }], ctorParameters: () => [] });
356
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLW92ZXJsYXkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL3Njcm9sbC1vdmVybGF5L3NyYy9zY3JvbGwtb3ZlcmxheS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFhLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEksT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQXdCLFNBQVMsRUFBRSxRQUFRLEVBQXVCLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXhJLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU1sRixNQUFNLE9BQU8sc0NBQXNDO0lBQ2pELG1CQUFtQjtJQUNGLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRSxFQUFFLENBQUE7OzRCQUViLElBQUksQ0FBQyxjQUFjLEVBQUU7OzsyQkFHdEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFOzs7Ozs7O2tCQU9uQyxJQUFJLENBQUMsY0FBYyxFQUFFOzs7Ozs7Ozs7Ozs7O2lCQWF0QixJQUFJLENBQUMsY0FBYyxFQUFFOzs7Ozs7Ozs7MkJBU1gsSUFBSSxDQUFDLGdCQUFnQixFQUFFOzs7MkJBR3ZCLElBQUksQ0FBQyxxQkFBcUIsRUFBRTs7Ozs4QkFJekIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEdBQUMsQ0FBQztrQkFDckMsSUFBSSxDQUFDLGdCQUFnQixFQUFFOzs7Ozs7Ozs2QkFRWixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsR0FBQyxDQUFDO2lCQUNyQyxJQUFJLENBQUMsZ0JBQWdC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QUM7UUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7d0dBNVlVLHNDQUFzQzs0RkFBdEMsc0NBQXNDOzs0RkFBdEMsc0NBQXNDO2tCQUxsRCxTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLDBDQUEwQztvQkFDcEQsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0LCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSwgZmlsdGVyLCBmcm9tRXZlbnQsIGludGVydmFsLCBtZXJnZU1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IElTY3JvbGxPdmVybGF5T3B0aW9ucywgVFlQRV9TQ1JPTExfRElSRUNUSU9OIH0gZnJvbSBcIi4vc2Nyb2xsLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgY2hlY2tNb3VzZU92ZXJJbkNvbnRhaW5lciwgZ2V0RHJhZ0V2ZW50QnlFbGVtZW50IH0gZnJvbSAnQGxpYnMtdWkvdXRpbHMnO1xuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW0xpYnNVaUNvbXBvbmVudHNTY3JvbGxPdmVybGF5RGlyZWN0aXZlXScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c1Njcm9sbE92ZXJsYXlEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvLyAjcmVnaW9uIFBST1BFUlRZXG4gIHByaXZhdGUgcmVhZG9ubHkgc3R5bGVzID0gY29tcHV0ZWQoKCk9PmBcbiAgICAgIC5zY3JvbGxiYXItdHJhY2t7XG4gICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiR7dGhpcy5zY3JvbGxiYXJDb2xvcigpfTtcbiAgICAgIH1cbiAgICAgIC5zY3JvbGxiYXItdHJhY2s6aG92ZXJ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6JHt0aGlzLnNjcm9sbGJhckhvdmVyQ29sb3IoKX07XG4gICAgICB9XG4gICAgICAuc2Nyb2xsYmFyLXRyYWNrLVgge1xuICAgICAgICB3aWR0aDoxMDAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgaGVpZ2h0OiAke3RoaXMuc2Nyb2xsYmFyV2lkdGgoKX1weDtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLCB2aXNpYmlsaXR5IDAuM3MgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLnNjcm9sbGJhci10cmFjay1ZIHtcbiAgICAgICAgaGVpZ2h0OjEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgd2lkdGg6ICR7dGhpcy5zY3JvbGxiYXJXaWR0aCgpfXB4O1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UsIHZpc2liaWxpdHkgMC4zcyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAuc2Nyb2xsYmFyLXRodW1ie1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiR7dGhpcy5zY3JvbGxUaHVtYkNvbG9yKCl9O1xuICAgICAgfVxuICAgICAgLnNjcm9sbGJhci10aHVtYjpob3ZlcntcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjoke3RoaXMuc2Nyb2xsVGh1bWJIb3ZlckNvbG9yKCl9O1xuICAgICAgfVxuXG4gICAgICAuc2Nyb2xsYmFyLXRodW1iLVgge1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtICR7dGhpcy5zY3JvbGxiYXJQYWRkaW5nKCkqMn1weCk7XG4gICAgICAgIGJvdHRvbjogJHt0aGlzLnNjcm9sbGJhclBhZGRpbmcoKX1weDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBjdXJzb3I6IG1vdmU7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgfVxuXG4gICAgICAuc2Nyb2xsYmFyLXRodW1iLVkge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gJHt0aGlzLnNjcm9sbGJhclBhZGRpbmcoKSoyfXB4KTtcbiAgICAgICAgcmlnaHQ6ICR7dGhpcy5zY3JvbGxiYXJQYWRkaW5nKCl9cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgY3Vyc29yOiBtb3ZlO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIH1cbiAgYCwge30pXG4gIHByaXZhdGUgaXNTY3JvbGxUaHVtYiA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUga2VlcERpc3BsYXlUaHVtYiA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgc3Vic1ggPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgc3Vic1kgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgc2Nyb2xsYmFyV2lkdGggPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKT8uc2Nyb2xsYmFyV2lkdGggfHwgMTIpOyAvLyBDaGnhu4F1IHLhu5luZyB0aGFuaCBjdeG7mW5cbiAgcHJpdmF0ZSBzY3JvbGxiYXJQYWRkaW5nID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCk/LnNjcm9sbGJhclBhZGRpbmcgfHwgMik7IC8vIENoaeG7gXUgcuG7mW5nIHRoYW5oIGN14buZblxuICBwcml2YXRlIHNjcm9sbGJhckNvbG9yID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCk/LnNjcm9sbGJhckNvbG9yIHx8ICcnKTtcbiAgcHJpdmF0ZSBzY3JvbGxiYXJIb3ZlckNvbG9yID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCk/LnNjcm9sbGJhckNvbG9yIHx8ICcjQ0REMEQ2NDAnKTtcbiAgcHJpdmF0ZSBzY3JvbGxUaHVtYkNvbG9yID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCk/LnNjcm9sbFRodW1iQ29sb3IgfHwgJyNDREQwRDYnKTtcbiAgcHJpdmF0ZSBzY3JvbGxUaHVtYkhvdmVyQ29sb3IgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKT8uc2Nyb2xsVGh1bWJIb3ZlckNvbG9yIHx8ICcjOUNBMkFEJyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGl2Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhY2tYOiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRodW1iWDogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFja1k6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGh1bWJZOiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBwcml2YXRlIHJlYWRvbmx5IG9uRGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLy8gI3JlZ2lvbiBJTlBVVFxuICByZWFkb25seSBkZWJ1Z01vZGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGNsYXNzQ29udGFpbmVyID0gaW5wdXQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+KCcnLCB7IHRyYW5zZm9ybTogdmFsdWUgPT4gdmFsdWUgPz8gJycgfSk7XG4gIHJlYWRvbmx5IG9wdGlvbnMgPSBpbnB1dDxJU2Nyb2xsT3ZlcmxheU9wdGlvbnMgfCB1bmRlZmluZWQ+KE9iamVjdC5hc3NpZ24oe30pKTtcbiAgcmVhZG9ubHkgZWxlbWVudENoZWNrU2Nyb2xsWCA9IGlucHV0PEhUTUxFbGVtZW50PigpO1xuICByZWFkb25seSBlbGVtZW50Q2hlY2tTY3JvbGxZID0gaW5wdXQ8SFRNTEVsZW1lbnQ+KCk7XG5cbiAgLy8gI3JlZ2lvbiBPVVRQVVRcbiAgcmVhZG9ubHkgb3V0U2Nyb2xsID0gb3V0cHV0PEV2ZW50PigpO1xuICByZWFkb25seSBvdXRTY3JvbGxYID0gb3V0cHV0PEV2ZW50PigpO1xuICByZWFkb25seSBvdXRTY3JvbGxZID0gb3V0cHV0PEV2ZW50PigpO1xuICByZWFkb25seSBvdXRTY3JvbGxUb3AgPSBvdXRwdXQ8RXZlbnQ+KCk7XG4gIHJlYWRvbmx5IG91dFNjcm9sbEJvdHRvbSA9IG91dHB1dDxFdmVudD4oKTtcblxuICAvLyAjcmVnaW9uIElOSkVDVFxuICBwcml2YXRlIGVsZW1lbnQgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVuZGVyMiA9IGluamVjdChSZW5kZXJlcjIpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zKCk7XG4gICAgICB0aGlzLmRpdkNvbnRhaW5lci5jbGFzc05hbWUgPSAnJztcbiAgICAgIHRoaXMuY2xhc3NDb250YWluZXIoKT8uc3BsaXQoJyAnKS5mb3JFYWNoKGNsYXNzTmFtZSA9PiB7XG4gICAgICAgIGlmICghY2xhc3NOYW1lKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGl2Q29udGFpbmVyLmNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKTtcbiAgICAgIH0pO1xuXG4gICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICBpZiAob3B0aW9ucz8uc2Nyb2xsWCAhPT0gJ2hpZGRlbicpIHtcbiAgICAgICAgICB0aGlzLnN1YnNYLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgdGhpcy50cmFja1guY2xhc3NOYW1lID0gJyc7XG4gICAgICAgICAgdGhpcy50aHVtYlguY2xhc3NOYW1lID0gJyc7XG4gICAgICAgICAgdGhpcy5jcmVhdGVTY3JvbGxiYXIoJ1gnLCB0aGlzLnRyYWNrWCwgdGhpcy50aHVtYlgpO1xuICAgICAgICAgIHRoaXMuYmluZEV2ZW50c1Njcm9sbEJhcignWCcsIHRoaXMudHJhY2tYKTtcblxuICAgICAgICAgIHRoaXMuaGFuZGxlckRyYWdBbmREcm9wVGh1bWIoJ1gnKTtcbiAgICAgICAgICB0aGlzLmhhbmRsZXJDbGlja1RyYWNrKCdYJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucz8uc2Nyb2xsWSAhPT0gJ2hpZGRlbicpIHtcbiAgICAgICAgICB0aGlzLnRyYWNrWS5jbGFzc05hbWUgPSAnJztcbiAgICAgICAgICB0aGlzLnRodW1iWS5jbGFzc05hbWUgPSAnJztcbiAgICAgICAgICB0aGlzLnN1YnNZLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgdGhpcy5jcmVhdGVTY3JvbGxiYXIoJ1knLCB0aGlzLnRyYWNrWSwgdGhpcy50aHVtYlkpO1xuICAgICAgICAgIHRoaXMuYmluZEV2ZW50c1Njcm9sbEJhcignWScsIHRoaXMudHJhY2tZKTtcblxuICAgICAgICAgIHRoaXMuaGFuZGxlckRyYWdBbmREcm9wVGh1bWIoJ1knKTtcbiAgICAgICAgICB0aGlzLmhhbmRsZXJDbGlja1RyYWNrKCdZJyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgfSk7XG4gIH1cblxuICAvLyAjcmVnaW9uIEZVTkNUSU9OU1xuICBwcml2YXRlIGdldCBFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVNjcm9sbGJhcihzY3JvbGxEaXJlY3Rpb246IFRZUEVfU0NST0xMX0RJUkVDVElPTiwgdHJhY2tFbDogSFRNTEVsZW1lbnQsIHRodW1iRWw6IEhUTUxFbGVtZW50KSB7XG4gICAgY29uc3QgaWRTdHlsZVRhZyA9IFwiI2lkLXN0eWxlLXRhZy1jdXN0b20tc2Nyb2xsLW92ZXJsYXlcIlxuICAgIGNvbnN0IHN0eWxlRWxDdXN0b21TY3JvbGxPdmVybGF5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWRTdHlsZVRhZyk7XG5cbiAgICBpZiAoIXN0eWxlRWxDdXN0b21TY3JvbGxPdmVybGF5KSB7XG4gICAgICBjb25zdCBzdHlsZUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICAgIHN0eWxlRWwuc2V0QXR0cmlidXRlKCdpZCcsIGlkU3R5bGVUYWcpO1xuICAgICAgc3R5bGVFbC5pbm5lckhUTUwgPSB0aGlzLnN0eWxlcygpO1xuICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmQoc3R5bGVFbCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3R5bGVzUHJvcGVydHkgPSB7XG4gICAgICBcImJveC1zaXppbmdcIjogXCJib3JkZXItYm94XCIsXG4gICAgICBcInNjcm9sbGJhci13aWR0aFwiOiBcIm5vbmVcIixcbiAgICAgIFwic2Nyb2xsYmFyLWNvbG9yXCI6IFwidHJhbnNwYXJlbnQgdHJhbnNwYXJlbnRcIixcbiAgICAgIFwib3ZlcmZsb3dcIjogXCJoaWRkZW5cIixcbiAgICAgIFwib3ZlcmZsb3cteFwiOiBgJHt0aGlzLm9wdGlvbnMoKT8uc2Nyb2xsWCB8fCAnc2Nyb2xsJ31gLFxuICAgICAgXCJvdmVyZmxvdy15XCI6IGAke3RoaXMub3B0aW9ucygpPy5zY3JvbGxZIHx8ICdzY3JvbGwnfWBcbiAgICB9IGFzIGFueTtcblxuICAgIE9iamVjdC5rZXlzKHN0eWxlc1Byb3BlcnR5KS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICB0aGlzLnJlbmRlcjIuc2V0U3R5bGUodGhpcy5FbGVtZW50LCBrZXksIHN0eWxlc1Byb3BlcnR5W2tleV0sIDEpO1xuICAgIH0pO1xuXG4gICAgdHJhY2tFbC5jbGFzc0xpc3QuYWRkKGBzY3JvbGxiYXItdHJhY2tgKTtcbiAgICB0cmFja0VsLmNsYXNzTGlzdC5hZGQoYHNjcm9sbGJhci10cmFjay0ke3Njcm9sbERpcmVjdGlvbn1gKTtcblxuICAgIHRodW1iRWwuY2xhc3NMaXN0LmFkZChgc2Nyb2xsYmFyLXRodW1iYCk7XG4gICAgdGh1bWJFbC5jbGFzc0xpc3QuYWRkKGBzY3JvbGxiYXItdGh1bWItJHtzY3JvbGxEaXJlY3Rpb259YCk7XG4gICAgdHJhY2tFbC5hcHBlbmRDaGlsZCh0aHVtYkVsKTtcbiAgICBpZiAodGhpcy5FbGVtZW50LmNsYXNzTmFtZSkge1xuICAgICAgdGhpcy5FbGVtZW50LmNsYXNzTmFtZS5zcGxpdCgnICcpLmZvckVhY2goKGNsYXNzTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmIChjbGFzc05hbWUgJiYgKFsndy1mdWxsJywgJ3ctc2NyZWVuJywgJ2gtZnVsbCcsICdoLXNjcmVlbiddLmluY2x1ZGVzKGNsYXNzTmFtZSkgfHwgY2xhc3NOYW1lLmluY2x1ZGVzKCdtaW4taC0nKSB8fCBjbGFzc05hbWUuaW5jbHVkZXMoJ21pbi13LScpIHx8IC9eKCE/KShofHcpLVxcW1swLTldK3B4XFxdJC8udGVzdChjbGFzc05hbWUpKSAmJiAhdGhpcy5kaXZDb250YWluZXIuY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzTmFtZSkpIHtcbiAgICAgICAgICB0aGlzLmRpdkNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgfSk7XG4gICAgICBpZiAoIXRoaXMuRWxlbWVudC5jbGFzc05hbWUuaW5jbHVkZXMoJ21pbi1oLScpKSB7XG4gICAgICAgIHRoaXMuZGl2Q29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ21pbi1oLTAnKTtcblxuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLkVsZW1lbnQuY2xhc3NOYW1lLmluY2x1ZGVzKCdtaW4tdy0nKSkge1xuICAgICAgICB0aGlzLmRpdkNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdtaW4tdy0wJyk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZGl2Q29udGFpbmVyLmFwcGVuZENoaWxkKHRyYWNrRWwpO1xuXG4gICAgaWYgKCF0aGlzLmRpdkNvbnRhaW5lci5zdHlsZS5wb3NpdGlvbikge1xuICAgICAgdGhpcy5FbGVtZW50LnBhcmVudEVsZW1lbnQ/Lmluc2VydEJlZm9yZSh0aGlzLmRpdkNvbnRhaW5lciwgdGhpcy5FbGVtZW50KTtcbiAgICAgIHRoaXMuZGl2Q29udGFpbmVyLnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcbiAgICB9XG4gICAgdGhpcy5kaXZDb250YWluZXIuYXBwZW5kKHRoaXMuRWxlbWVudCk7XG4gICAgdGhpcy51cGRhdGVTY3JvbGxiYXJTaXplKHNjcm9sbERpcmVjdGlvbik7XG4gIH1cblxuICBwcml2YXRlIGJpbmRFdmVudHNTY3JvbGxCYXIoc2Nyb2xsRGlyZWN0aW9uOiBUWVBFX1NDUk9MTF9ESVJFQ1RJT04sIHRyYWNrRWw6IEhUTUxFbGVtZW50KSB7XG4gICAgbGV0IHNjcm9sbExlZnQgPSB0aGlzLkVsZW1lbnQuc2Nyb2xsTGVmdDtcbiAgICBsZXQgc2Nyb2xsVG9wID0gdGhpcy5FbGVtZW50LnNjcm9sbFRvcDtcbiAgICBjb25zdCBzdWJzOiBTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQ8RXZlbnQ+KHRoaXMuRWxlbWVudCwgJ3Njcm9sbCcpLnBpcGUodGFwKChldmVudCkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5FbGVtZW50O1xuXG4gICAgICB0aGlzLm91dFNjcm9sbC5lbWl0KGV2ZW50KTtcbiAgICAgIGlmIChzY3JvbGxEaXJlY3Rpb24gPT09ICdYJykge1xuICAgICAgICBpZiAodGFyZ2V0LnNjcm9sbExlZnQgJiYgKHRhcmdldC5zY3JvbGxMZWZ0ICsgdGFyZ2V0Lm9mZnNldFdpZHRoID49IHRhcmdldC5zY3JvbGxXaWR0aCkpIHtcbiAgICAgICAgICB0YXJnZXQuc2Nyb2xsTGVmdCA9IHRhcmdldC5zY3JvbGxXaWR0aCAtIHRhcmdldC5vZmZzZXRXaWR0aCAtICh0YXJnZXQub2Zmc2V0V2lkdGggLSB0YXJnZXQuY2xpZW50V2lkdGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRhcmdldC5zY3JvbGxMZWZ0ICE9PSBzY3JvbGxMZWZ0KSB7XG4gICAgICAgICAgdGhpcy5vdXRTY3JvbGxYLmVtaXQoZXZlbnQpO1xuXG4gICAgICAgIH1cbiAgICAgICAgc2Nyb2xsTGVmdCA9IHRhcmdldC5zY3JvbGxMZWZ0O1xuICAgICAgICB0aGlzLnVwZGF0ZVNjcm9sbGJhclBvc2l0aW9uKHNjcm9sbERpcmVjdGlvbik7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodGFyZ2V0LnNjcm9sbFRvcCA9PT0gc2Nyb2xsVG9wKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgdGhpcy51cGRhdGVTY3JvbGxiYXJQb3NpdGlvbihzY3JvbGxEaXJlY3Rpb24pO1xuICAgICAgc2Nyb2xsVG9wID0gdGFyZ2V0LnNjcm9sbFRvcDtcbiAgICAgIHRoaXMub3V0U2Nyb2xsWS5lbWl0KGV2ZW50KTtcblxuICAgICAgaWYgKHRhcmdldC5zY3JvbGxUb3AgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3V0U2Nyb2xsVG9wLmVtaXQoZXZlbnQpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGFyZ2V0LnNjcm9sbEhlaWdodCA8PSB0YXJnZXQuc2Nyb2xsVG9wICsgdGFyZ2V0Lm9mZnNldEhlaWdodCArIDMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3V0U2Nyb2xsQm90dG9tLmVtaXQoZXZlbnQpO1xuICAgICAgfVxuICAgIH0pLCB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kpKS5zdWJzY3JpYmUoKTtcblxuICAgIHN1YnMuYWRkKGZyb21FdmVudChkb2N1bWVudCwgJ3Jlc2l6ZScpLnBpcGUodGFwKHRoaXMudXBkYXRlU2Nyb2xsYmFyU2l6ZS5iaW5kKHRoaXMsIHNjcm9sbERpcmVjdGlvbikpLCB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kpKS5zdWJzY3JpYmUoKSk7XG5cbiAgICBjb25zdCBtb3VzZUxlYXZlID0gZnJvbUV2ZW50KHRoaXMuZGl2Q29udGFpbmVyLCAnbW91c2VsZWF2ZScpO1xuICAgIGNvbnN0IG1vdXNlZW50ZXIgPSBmcm9tRXZlbnQodGhpcy5kaXZDb250YWluZXIsICdtb3VzZWVudGVyJyk7XG5cbiAgICBzdWJzLmFkZChtb3VzZWVudGVyLnBpcGUodGFwKCgpID0+IHtcbiAgICAgIHRyYWNrRWwuc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcbiAgICAgIHRyYWNrRWwuc3R5bGUub3BhY2l0eSA9ICcxJztcbiAgICAgIHRoaXMudXBkYXRlU2Nyb2xsYmFyU2l6ZShzY3JvbGxEaXJlY3Rpb24pO1xuICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IGludGVydmFsKDEwMDApLnBpcGUodGFrZVVudGlsKG1vdXNlTGVhdmUpKSksXG4gICAgICB0YXAodGhpcy51cGRhdGVTY3JvbGxiYXJTaXplLmJpbmQodGhpcywgc2Nyb2xsRGlyZWN0aW9uKSksXG4gICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kpXG4gICAgKS5zdWJzY3JpYmUoKSk7XG5cbiAgICBzdWJzLmFkZChtb3VzZUxlYXZlLnBpcGUodGFwKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmtlZXBEaXNwbGF5VGh1bWIoKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0cmFja0VsLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgIHRyYWNrRWwuc3R5bGUub3BhY2l0eSA9ICcwJztcbiAgICB9KSwgdGFrZVVudGlsKHRoaXMub25EZXN0cm95KSkuc3Vic2NyaWJlKCkpO1xuXG4gICAgaWYgKHNjcm9sbERpcmVjdGlvbiA9PT0gJ1gnKSB7XG4gICAgICB0aGlzLnN1YnNYID0gc3VicztcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChzY3JvbGxEaXJlY3Rpb24gPT09ICdZJykge1xuICAgICAgdGhpcy5zdWJzWSA9IHN1YnM7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNsaWNrVHJhY2soc2Nyb2xsRGlyZWN0aW9uOiBUWVBFX1NDUk9MTF9ESVJFQ1RJT04pIHtcbiAgICBjb25zdCBlbGVtZW50VHJhY2sgPSBzY3JvbGxEaXJlY3Rpb24gPT09ICdYJyA/IHRoaXMudHJhY2tYIDogdGhpcy50cmFja1k7XG4gICAgY29uc3QgZWxlbWVudFRodW1iID0gc2Nyb2xsRGlyZWN0aW9uID09PSAnWCcgPyB0aGlzLnRodW1iWCA6IHRoaXMudGh1bWJZO1xuICAgIGNvbnN0IHN1YnMgPSBzY3JvbGxEaXJlY3Rpb24gPT09ICdYJyA/IHRoaXMuc3Vic1ggOiB0aGlzLnN1YnNZO1xuXG4gICAgc3Vicy5hZGQoZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGVsZW1lbnRUcmFjaywgJ2NsaWNrJykuc3Vic2NyaWJlKGUgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNTY3JvbGxUaHVtYigpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICgoc2Nyb2xsRGlyZWN0aW9uID09PSAnWCcgJiYgZS5jbGllbnRYIDwgZWxlbWVudFRodW1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQpIHx8IChzY3JvbGxEaXJlY3Rpb24gPT09ICdZJyAmJiBlLmNsaWVudFkgPCBlbGVtZW50VGh1bWIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wKSkge1xuICAgICAgICB0aGlzLnVwZGF0ZVNjcm9sbFBvc2l0aW9uQnlVc2VyQWN0aW9uKHNjcm9sbERpcmVjdGlvbiwgZSwgJ3Ntb290aCcsIDApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChzY3JvbGxEaXJlY3Rpb24gPT09ICdYJykge1xuICAgICAgICB0aGlzLnVwZGF0ZVNjcm9sbFBvc2l0aW9uQnlVc2VyQWN0aW9uKHNjcm9sbERpcmVjdGlvbiwgZSwgJ3Ntb290aCcsIC0xICogZWxlbWVudFRodW1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy51cGRhdGVTY3JvbGxQb3NpdGlvbkJ5VXNlckFjdGlvbihzY3JvbGxEaXJlY3Rpb24sIGUsICdzbW9vdGgnLCAtMSAqIGVsZW1lbnRUaHVtYi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQpO1xuICAgIH0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyRHJhZ0FuZERyb3BUaHVtYihzY3JvbGxEaXJlY3Rpb246IFRZUEVfU0NST0xMX0RJUkVDVElPTikge1xuICAgIGNvbnN0IGVsZW1lbnRUcmFjayA9IHNjcm9sbERpcmVjdGlvbiA9PT0gJ1gnID8gdGhpcy50cmFja1ggOiB0aGlzLnRyYWNrWTtcbiAgICBjb25zdCBlbGVtZW50VGh1bWIgPSBzY3JvbGxEaXJlY3Rpb24gPT09ICdYJyA/IHRoaXMudGh1bWJYIDogdGhpcy50aHVtYlk7XG4gICAgY29uc3Qgc3VicyA9IHNjcm9sbERpcmVjdGlvbiA9PT0gJ1gnID8gdGhpcy5zdWJzWCA6IHRoaXMuc3Vic1k7XG4gICAgbGV0IGxlbmd0aFRodW1iVG9Qb2ludENsaWNrID0gMDtcblxuICAgIHN1YnMuYWRkKGdldERyYWdFdmVudEJ5RWxlbWVudCh7XG4gICAgICBlbGVtZW50TW91c2VEb3duOiBlbGVtZW50VGh1bWIsXG4gICAgICBmdW5jdGlvbk1vdXNlRG93bjogKG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5pc1Njcm9sbFRodW1iLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5rZWVwRGlzcGxheVRodW1iLnNldCh0cnVlKTtcbiAgICAgICAgaWYgKHNjcm9sbERpcmVjdGlvbiA9PT0gJ1gnKSB7XG4gICAgICAgICAgbGVuZ3RoVGh1bWJUb1BvaW50Q2xpY2sgPSBlbGVtZW50VGh1bWIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCAtIG1vdXNlRXZlbnQuY2xpZW50WDtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGVuZ3RoVGh1bWJUb1BvaW50Q2xpY2sgPSBlbGVtZW50VGh1bWIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIC0gbW91c2VFdmVudC5jbGllbnRZO1xuICAgICAgfSxcbiAgICAgIGZ1bmN0aW9uTW91c2VVcDogKG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5rZWVwRGlzcGxheVRodW1iLnNldChmYWxzZSk7XG4gICAgICAgIGxlbmd0aFRodW1iVG9Qb2ludENsaWNrID0gMDtcbiAgICAgICAgaWYgKCFjaGVja01vdXNlT3ZlckluQ29udGFpbmVyKG1vdXNlRXZlbnQsIHRoaXMuRWxlbWVudCkpIHtcbiAgICAgICAgICBlbGVtZW50VHJhY2suc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgICAgIGVsZW1lbnRUcmFjay5zdHlsZS5vcGFjaXR5ID0gJzAnO1xuICAgICAgICB9XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNTY3JvbGxUaHVtYi5zZXQoZmFsc2UpO1xuICAgICAgICB9LCAyNTApO1xuICAgICAgfSxcbiAgICAgIG9uRGVzdHJveTogdGhpcy5vbkRlc3Ryb3lcbiAgICB9KS5zdWJzY3JpYmUoKG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlU2Nyb2xsUG9zaXRpb25CeVVzZXJBY3Rpb24oc2Nyb2xsRGlyZWN0aW9uLCBtb3VzZUV2ZW50LCAnYXV0bycsIGxlbmd0aFRodW1iVG9Qb2ludENsaWNrKVxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU2Nyb2xsUG9zaXRpb25CeVVzZXJBY3Rpb24oc2Nyb2xsRGlyZWN0aW9uOiBUWVBFX1NDUk9MTF9ESVJFQ1RJT04sIGU6IE1vdXNlRXZlbnQsIGJlaGF2aW9yOiAnYXV0bycgfCAnc21vb3RoJywgbGVuZ3RoVGh1bWJUb1BvaW50Q2xpY2sgPSAwKSB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAoc2Nyb2xsRGlyZWN0aW9uID09PSAnWCcpIHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5FbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgY29uc3QgY29udGVudFdpZHRoID0gKHRoaXMuZWxlbWVudENoZWNrU2Nyb2xsWCgpIHx8IHRoaXMuRWxlbWVudCkuc2Nyb2xsV2lkdGg7XG4gICAgICBjb25zdCB0aHVtYlBvc2l0aW9uID0gZS5jbGllbnRYIC0gdGhpcy5FbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgKyBsZW5ndGhUaHVtYlRvUG9pbnRDbGljaztcbiAgICAgIGNvbnN0IHNjcm9sbExlZnQgPSAodGh1bWJQb3NpdGlvbiAvIChjb250YWluZXJXaWR0aCAtIHRoaXMudGh1bWJYLm9mZnNldFdpZHRoKSkgKiAoY29udGVudFdpZHRoIC0gY29udGFpbmVyV2lkdGgpO1xuXG4gICAgICB0aGlzLkVsZW1lbnQuc2Nyb2xsKHsgbGVmdDogc2Nyb2xsTGVmdCwgYmVoYXZpb3IgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGNvbnRhaW5lckhlaWdodCA9IHRoaXMuRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgY29uc3QgY29udGVudEhlaWdodCA9ICh0aGlzLmVsZW1lbnRDaGVja1Njcm9sbFkoKSB8fCB0aGlzLkVsZW1lbnQpLnNjcm9sbEhlaWdodDtcbiAgICBjb25zdCB0aHVtYlBvc2l0aW9uID0gZS5jbGllbnRZIC0gdGhpcy5FbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIGxlbmd0aFRodW1iVG9Qb2ludENsaWNrO1xuICAgIGNvbnN0IHNjcm9sbFRvcCA9ICh0aHVtYlBvc2l0aW9uIC8gKGNvbnRhaW5lckhlaWdodCAtIHRoaXMudGh1bWJZLm9mZnNldEhlaWdodCkpICogKGNvbnRlbnRIZWlnaHQgLSBjb250YWluZXJIZWlnaHQpO1xuXG4gICAgdGhpcy5FbGVtZW50LnNjcm9sbCh7IHRvcDogc2Nyb2xsVG9wLCBiZWhhdmlvciB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU2Nyb2xsYmFyU2l6ZShzY3JvbGxEaXJlY3Rpb246IFRZUEVfU0NST0xMX0RJUkVDVElPTikge1xuICAgIGlmIChzY3JvbGxEaXJlY3Rpb24gPT09ICdYJykge1xuICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLkVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICBjb25zdCBjb250ZW50V2lkdGggPSAodGhpcy5lbGVtZW50Q2hlY2tTY3JvbGxYKCkgfHwgdGhpcy5FbGVtZW50KS5zY3JvbGxXaWR0aDtcbiAgICAgIGNvbnN0IHRodW1iV2lkdGggPSAoY29udGFpbmVyV2lkdGggLyBjb250ZW50V2lkdGgpICogKGNvbnRhaW5lcldpZHRoKTtcblxuICAgICAgdGhpcy50aHVtYlguc3R5bGUud2lkdGggPSBgJHt0aHVtYldpZHRofXB4YDtcbiAgICAgIHRoaXMudHJhY2tYLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICBpZiAoY29udGVudFdpZHRoID4gY29udGFpbmVyV2lkdGgpIHtcbiAgICAgICAgdGhpcy50cmFja1guc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZVNjcm9sbGJhclBvc2l0aW9uKHNjcm9sbERpcmVjdGlvbik7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb250YWluZXJIZWlnaHQgPSB0aGlzLkVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgIGNvbnN0IGNvbnRlbnRIZWlnaHQgPSAodGhpcy5lbGVtZW50Q2hlY2tTY3JvbGxZKCkgfHwgdGhpcy5FbGVtZW50KS5zY3JvbGxIZWlnaHQ7XG4gICAgY29uc3QgdGh1bWJIZWlnaHQgPSAoY29udGFpbmVySGVpZ2h0IC8gY29udGVudEhlaWdodCkgKiAoY29udGFpbmVySGVpZ2h0KTtcblxuICAgIHRoaXMudGh1bWJZLnN0eWxlLmhlaWdodCA9IGAke3RodW1iSGVpZ2h0IDwgNDAgPyA0MCA6IHRodW1iSGVpZ2h0fXB4YDtcbiAgICB0aGlzLnRyYWNrWS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIGlmIChjb250ZW50SGVpZ2h0ID4gY29udGFpbmVySGVpZ2h0KSB7XG4gICAgICB0aGlzLnRyYWNrWS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZVNjcm9sbGJhclBvc2l0aW9uKCdZJyk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVNjcm9sbGJhclBvc2l0aW9uKHNjcm9sbERpcmVjdGlvbjogVFlQRV9TQ1JPTExfRElSRUNUSU9OKSB7XG4gICAgaWYgKHNjcm9sbERpcmVjdGlvbiA9PT0gJ1gnKSB7XG4gICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgIGNvbnN0IGNvbnRlbnRXaWR0aCA9ICh0aGlzLmVsZW1lbnRDaGVja1Njcm9sbFgoKSB8fCB0aGlzLkVsZW1lbnQpLnNjcm9sbFdpZHRoO1xuICAgICAgY29uc3Qgc2Nyb2xsTGVmdCA9IHRoaXMuRWxlbWVudC5zY3JvbGxMZWZ0O1xuICAgICAgY29uc3QgdGh1bWJQb3NpdGlvbiA9IChzY3JvbGxMZWZ0IC8gKGNvbnRlbnRXaWR0aCAtIGNvbnRhaW5lcldpZHRoKSkgKiAoY29udGFpbmVyV2lkdGggLSB0aGlzLnRodW1iWC5vZmZzZXRXaWR0aCk7XG5cbiAgICAgIHRoaXMudGh1bWJYLnN0eWxlLmxlZnQgPSBgJHt0aHVtYlBvc2l0aW9ufXB4YDtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjb250YWluZXJIZWlnaHQgPSB0aGlzLkVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgIGNvbnN0IGNvbnRlbnRIZWlnaHQgPSAodGhpcy5lbGVtZW50Q2hlY2tTY3JvbGxZKCkgfHwgdGhpcy5FbGVtZW50KS5zY3JvbGxIZWlnaHQ7XG4gICAgY29uc3Qgc2Nyb2xsVG9wID0gdGhpcy5FbGVtZW50LnNjcm9sbFRvcDtcbiAgICBjb25zdCB0aHVtYlBvc2l0aW9uID0gKHNjcm9sbFRvcCAvIChjb250ZW50SGVpZ2h0IC0gY29udGFpbmVySGVpZ2h0KSkgKiAoY29udGFpbmVySGVpZ2h0IC0gdGhpcy50aHVtYlkub2Zmc2V0SGVpZ2h0KTtcblxuICAgIHRoaXMudGh1bWJZLnN0eWxlLnRvcCA9IGAke3RodW1iUG9zaXRpb259cHhgO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kaXZDb250YWluZXIucmVtb3ZlKCk7XG4gICAgdGhpcy5zdWJzWC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3Vic1kudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm9uRGVzdHJveS5uZXh0KCk7XG4gICAgdGhpcy5vbkRlc3Ryb3kuY29tcGxldGUoKTtcbiAgfVxuXG59Il19
356
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLW92ZXJsYXkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL3Njcm9sbC1vdmVybGF5L3NyYy9zY3JvbGwtb3ZlcmxheS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFhLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEksT0FBTyxFQUFFLHlCQUF5QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFPN0YsTUFBTSxPQUFPLHNDQUFzQztJQUNqRCxtQkFBbUI7SUFDRixNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDOzs0QkFFZixJQUFJLENBQUMsY0FBYyxFQUFFOzs7MkJBR3RCLElBQUksQ0FBQyxtQkFBbUIsRUFBRTs7Ozs7OztrQkFPbkMsSUFBSSxDQUFDLGNBQWMsRUFBRTs7Ozs7Ozs7Ozs7OztpQkFhdEIsSUFBSSxDQUFDLGNBQWMsRUFBRTs7Ozs7Ozs7OzJCQVNYLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTs7OzJCQUd2QixJQUFJLENBQUMscUJBQXFCLEVBQUU7Ozs7OEJBSXpCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUM7a0JBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTs7Ozs7Ozs7NkJBUVosSUFBSSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQztpQkFDdkMsSUFBSSxDQUFDLGdCQUFnQixF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O1FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO3dHQTVZVSxzQ0FBc0M7NEZBQXRDLHNDQUFzQzs7NEZBQXRDLHNDQUFzQztrQkFMbEQsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSwwQ0FBMEM7b0JBQ3BELFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBSZW5kZXJlcjIsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgY2hlY2tNb3VzZU92ZXJJbkNvbnRhaW5lciwgZ2V0RHJhZ0V2ZW50QnlFbGVtZW50IH0gZnJvbSAnQGxpYnMtdWkvdXRpbHMnO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBmcm9tRXZlbnQsIGludGVydmFsLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IElTY3JvbGxPdmVybGF5T3B0aW9ucywgVFlQRV9TQ1JPTExfRElSRUNUSU9OIH0gZnJvbSBcIi4vc2Nyb2xsLmludGVyZmFjZVwiO1xuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW0xpYnNVaUNvbXBvbmVudHNTY3JvbGxPdmVybGF5RGlyZWN0aXZlXScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c1Njcm9sbE92ZXJsYXlEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvLyAjcmVnaW9uIFBST1BFUlRZXG4gIHByaXZhdGUgcmVhZG9ubHkgc3R5bGVzID0gY29tcHV0ZWQoKCkgPT4gYFxuICAgICAgLnNjcm9sbGJhci10cmFja3tcbiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6JHt0aGlzLnNjcm9sbGJhckNvbG9yKCl9O1xuICAgICAgfVxuICAgICAgLnNjcm9sbGJhci10cmFjazpob3ZlcntcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjoke3RoaXMuc2Nyb2xsYmFySG92ZXJDb2xvcigpfTtcbiAgICAgIH1cbiAgICAgIC5zY3JvbGxiYXItdHJhY2stWCB7XG4gICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBoZWlnaHQ6ICR7dGhpcy5zY3JvbGxiYXJXaWR0aCgpfXB4O1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UsIHZpc2liaWxpdHkgMC4zcyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAuc2Nyb2xsYmFyLXRyYWNrLVkge1xuICAgICAgICBoZWlnaHQ6MTAwJTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogJHt0aGlzLnNjcm9sbGJhcldpZHRoKCl9cHg7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgdmlzaWJpbGl0eSAwLjNzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5zY3JvbGxiYXItdGh1bWJ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6JHt0aGlzLnNjcm9sbFRodW1iQ29sb3IoKX07XG4gICAgICB9XG4gICAgICAuc2Nyb2xsYmFyLXRodW1iOmhvdmVye1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiR7dGhpcy5zY3JvbGxUaHVtYkhvdmVyQ29sb3IoKX07XG4gICAgICB9XG5cbiAgICAgIC5zY3JvbGxiYXItdGh1bWItWCB7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gJHt0aGlzLnNjcm9sbGJhclBhZGRpbmcoKSAqIDJ9cHgpO1xuICAgICAgICBib3R0b246ICR7dGhpcy5zY3JvbGxiYXJQYWRkaW5nKCl9cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgY3Vyc29yOiBtb3ZlO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIH1cblxuICAgICAgLnNjcm9sbGJhci10aHVtYi1ZIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICR7dGhpcy5zY3JvbGxiYXJQYWRkaW5nKCkgKiAyfXB4KTtcbiAgICAgICAgcmlnaHQ6ICR7dGhpcy5zY3JvbGxiYXJQYWRkaW5nKCl9cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgY3Vyc29yOiBtb3ZlO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIH1cbiAgYCwge30pXG4gIHByaXZhdGUgaXNTY3JvbGxUaHVtYiA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUga2VlcERpc3BsYXlUaHVtYiA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgc3Vic1ggPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgc3Vic1kgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgc2Nyb2xsYmFyV2lkdGggPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKT8uc2Nyb2xsYmFyV2lkdGggfHwgMTIpOyAvLyBDaGnhu4F1IHLhu5luZyB0aGFuaCBjdeG7mW5cbiAgcHJpdmF0ZSBzY3JvbGxiYXJQYWRkaW5nID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCk/LnNjcm9sbGJhclBhZGRpbmcgfHwgMik7IC8vIENoaeG7gXUgcuG7mW5nIHRoYW5oIGN14buZblxuICBwcml2YXRlIHNjcm9sbGJhckNvbG9yID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCk/LnNjcm9sbGJhckNvbG9yIHx8ICcnKTtcbiAgcHJpdmF0ZSBzY3JvbGxiYXJIb3ZlckNvbG9yID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCk/LnNjcm9sbGJhckNvbG9yIHx8ICcjQ0REMEQ2NDAnKTtcbiAgcHJpdmF0ZSBzY3JvbGxUaHVtYkNvbG9yID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCk/LnNjcm9sbFRodW1iQ29sb3IgfHwgJyNDREQwRDYnKTtcbiAgcHJpdmF0ZSBzY3JvbGxUaHVtYkhvdmVyQ29sb3IgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKT8uc2Nyb2xsVGh1bWJIb3ZlckNvbG9yIHx8ICcjOUNBMkFEJyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGl2Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhY2tYOiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRodW1iWDogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFja1k6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGh1bWJZOiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBwcml2YXRlIHJlYWRvbmx5IG9uRGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLy8gI3JlZ2lvbiBJTlBVVFxuICByZWFkb25seSBkZWJ1Z01vZGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGNsYXNzQ29udGFpbmVyID0gaW5wdXQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+KCcnLCB7IHRyYW5zZm9ybTogdmFsdWUgPT4gdmFsdWUgPz8gJycgfSk7XG4gIHJlYWRvbmx5IG9wdGlvbnMgPSBpbnB1dDxJU2Nyb2xsT3ZlcmxheU9wdGlvbnMgfCB1bmRlZmluZWQ+KE9iamVjdC5hc3NpZ24oe30pKTtcbiAgcmVhZG9ubHkgZWxlbWVudENoZWNrU2Nyb2xsWCA9IGlucHV0PEhUTUxFbGVtZW50PigpO1xuICByZWFkb25seSBlbGVtZW50Q2hlY2tTY3JvbGxZID0gaW5wdXQ8SFRNTEVsZW1lbnQ+KCk7XG5cbiAgLy8gI3JlZ2lvbiBPVVRQVVRcbiAgcmVhZG9ubHkgb3V0U2Nyb2xsID0gb3V0cHV0PEV2ZW50PigpO1xuICByZWFkb25seSBvdXRTY3JvbGxYID0gb3V0cHV0PEV2ZW50PigpO1xuICByZWFkb25seSBvdXRTY3JvbGxZID0gb3V0cHV0PEV2ZW50PigpO1xuICByZWFkb25seSBvdXRTY3JvbGxUb3AgPSBvdXRwdXQ8RXZlbnQ+KCk7XG4gIHJlYWRvbmx5IG91dFNjcm9sbEJvdHRvbSA9IG91dHB1dDxFdmVudD4oKTtcblxuICAvLyAjcmVnaW9uIElOSkVDVFxuICBwcml2YXRlIGVsZW1lbnQgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVuZGVyMiA9IGluamVjdChSZW5kZXJlcjIpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zKCk7XG4gICAgICB0aGlzLmRpdkNvbnRhaW5lci5jbGFzc05hbWUgPSAnJztcbiAgICAgIHRoaXMuY2xhc3NDb250YWluZXIoKT8uc3BsaXQoJyAnKS5mb3JFYWNoKGNsYXNzTmFtZSA9PiB7XG4gICAgICAgIGlmICghY2xhc3NOYW1lKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGl2Q29udGFpbmVyLmNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKTtcbiAgICAgIH0pO1xuXG4gICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICBpZiAob3B0aW9ucz8uc2Nyb2xsWCAhPT0gJ2hpZGRlbicpIHtcbiAgICAgICAgICB0aGlzLnN1YnNYLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgdGhpcy50cmFja1guY2xhc3NOYW1lID0gJyc7XG4gICAgICAgICAgdGhpcy50aHVtYlguY2xhc3NOYW1lID0gJyc7XG4gICAgICAgICAgdGhpcy5jcmVhdGVTY3JvbGxiYXIoJ1gnLCB0aGlzLnRyYWNrWCwgdGhpcy50aHVtYlgpO1xuICAgICAgICAgIHRoaXMuYmluZEV2ZW50c1Njcm9sbEJhcignWCcsIHRoaXMudHJhY2tYKTtcblxuICAgICAgICAgIHRoaXMuaGFuZGxlckRyYWdBbmREcm9wVGh1bWIoJ1gnKTtcbiAgICAgICAgICB0aGlzLmhhbmRsZXJDbGlja1RyYWNrKCdYJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucz8uc2Nyb2xsWSAhPT0gJ2hpZGRlbicpIHtcbiAgICAgICAgICB0aGlzLnRyYWNrWS5jbGFzc05hbWUgPSAnJztcbiAgICAgICAgICB0aGlzLnRodW1iWS5jbGFzc05hbWUgPSAnJztcbiAgICAgICAgICB0aGlzLnN1YnNZLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgdGhpcy5jcmVhdGVTY3JvbGxiYXIoJ1knLCB0aGlzLnRyYWNrWSwgdGhpcy50aHVtYlkpO1xuICAgICAgICAgIHRoaXMuYmluZEV2ZW50c1Njcm9sbEJhcignWScsIHRoaXMudHJhY2tZKTtcblxuICAgICAgICAgIHRoaXMuaGFuZGxlckRyYWdBbmREcm9wVGh1bWIoJ1knKTtcbiAgICAgICAgICB0aGlzLmhhbmRsZXJDbGlja1RyYWNrKCdZJyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgfSk7XG4gIH1cblxuICAvLyAjcmVnaW9uIEZVTkNUSU9OU1xuICBwcml2YXRlIGdldCBFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVNjcm9sbGJhcihzY3JvbGxEaXJlY3Rpb246IFRZUEVfU0NST0xMX0RJUkVDVElPTiwgdHJhY2tFbDogSFRNTEVsZW1lbnQsIHRodW1iRWw6IEhUTUxFbGVtZW50KSB7XG4gICAgY29uc3QgaWRTdHlsZVRhZyA9IFwiI2lkLXN0eWxlLXRhZy1jdXN0b20tc2Nyb2xsLW92ZXJsYXlcIlxuICAgIGNvbnN0IHN0eWxlRWxDdXN0b21TY3JvbGxPdmVybGF5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWRTdHlsZVRhZyk7XG5cbiAgICBpZiAoIXN0eWxlRWxDdXN0b21TY3JvbGxPdmVybGF5KSB7XG4gICAgICBjb25zdCBzdHlsZUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICAgIHN0eWxlRWwuc2V0QXR0cmlidXRlKCdpZCcsIGlkU3R5bGVUYWcpO1xuICAgICAgc3R5bGVFbC5pbm5lckhUTUwgPSB0aGlzLnN0eWxlcygpO1xuICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmQoc3R5bGVFbCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3R5bGVzUHJvcGVydHkgPSB7XG4gICAgICBcImJveC1zaXppbmdcIjogXCJib3JkZXItYm94XCIsXG4gICAgICBcInNjcm9sbGJhci13aWR0aFwiOiBcIm5vbmVcIixcbiAgICAgIFwic2Nyb2xsYmFyLWNvbG9yXCI6IFwidHJhbnNwYXJlbnQgdHJhbnNwYXJlbnRcIixcbiAgICAgIFwib3ZlcmZsb3dcIjogXCJoaWRkZW5cIixcbiAgICAgIFwib3ZlcmZsb3cteFwiOiBgJHt0aGlzLm9wdGlvbnMoKT8uc2Nyb2xsWCB8fCAnc2Nyb2xsJ31gLFxuICAgICAgXCJvdmVyZmxvdy15XCI6IGAke3RoaXMub3B0aW9ucygpPy5zY3JvbGxZIHx8ICdzY3JvbGwnfWBcbiAgICB9IGFzIGFueTtcblxuICAgIE9iamVjdC5rZXlzKHN0eWxlc1Byb3BlcnR5KS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICB0aGlzLnJlbmRlcjIuc2V0U3R5bGUodGhpcy5FbGVtZW50LCBrZXksIHN0eWxlc1Byb3BlcnR5W2tleV0sIDEpO1xuICAgIH0pO1xuXG4gICAgdHJhY2tFbC5jbGFzc0xpc3QuYWRkKGBzY3JvbGxiYXItdHJhY2tgKTtcbiAgICB0cmFja0VsLmNsYXNzTGlzdC5hZGQoYHNjcm9sbGJhci10cmFjay0ke3Njcm9sbERpcmVjdGlvbn1gKTtcblxuICAgIHRodW1iRWwuY2xhc3NMaXN0LmFkZChgc2Nyb2xsYmFyLXRodW1iYCk7XG4gICAgdGh1bWJFbC5jbGFzc0xpc3QuYWRkKGBzY3JvbGxiYXItdGh1bWItJHtzY3JvbGxEaXJlY3Rpb259YCk7XG4gICAgdHJhY2tFbC5hcHBlbmRDaGlsZCh0aHVtYkVsKTtcbiAgICBpZiAodGhpcy5FbGVtZW50LmNsYXNzTmFtZSkge1xuICAgICAgdGhpcy5FbGVtZW50LmNsYXNzTmFtZS5zcGxpdCgnICcpLmZvckVhY2goKGNsYXNzTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmIChjbGFzc05hbWUgJiYgKFsndy1mdWxsJywgJ3ctc2NyZWVuJywgJ2gtZnVsbCcsICdoLXNjcmVlbiddLmluY2x1ZGVzKGNsYXNzTmFtZSkgfHwgY2xhc3NOYW1lLmluY2x1ZGVzKCdtaW4taC0nKSB8fCBjbGFzc05hbWUuaW5jbHVkZXMoJ21pbi13LScpIHx8IC9eKCE/KShofHcpLVxcW1swLTldK3B4XFxdJC8udGVzdChjbGFzc05hbWUpKSAmJiAhdGhpcy5kaXZDb250YWluZXIuY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzTmFtZSkpIHtcbiAgICAgICAgICB0aGlzLmRpdkNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgfSk7XG4gICAgICBpZiAoIXRoaXMuRWxlbWVudC5jbGFzc05hbWUuaW5jbHVkZXMoJ21pbi1oLScpKSB7XG4gICAgICAgIHRoaXMuZGl2Q29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ21pbi1oLTAnKTtcblxuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLkVsZW1lbnQuY2xhc3NOYW1lLmluY2x1ZGVzKCdtaW4tdy0nKSkge1xuICAgICAgICB0aGlzLmRpdkNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdtaW4tdy0wJyk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZGl2Q29udGFpbmVyLmFwcGVuZENoaWxkKHRyYWNrRWwpO1xuXG4gICAgaWYgKCF0aGlzLmRpdkNvbnRhaW5lci5zdHlsZS5wb3NpdGlvbikge1xuICAgICAgdGhpcy5FbGVtZW50LnBhcmVudEVsZW1lbnQ/Lmluc2VydEJlZm9yZSh0aGlzLmRpdkNvbnRhaW5lciwgdGhpcy5FbGVtZW50KTtcbiAgICAgIHRoaXMuZGl2Q29udGFpbmVyLnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcbiAgICB9XG4gICAgdGhpcy5kaXZDb250YWluZXIuYXBwZW5kKHRoaXMuRWxlbWVudCk7XG4gICAgdGhpcy51cGRhdGVTY3JvbGxiYXJTaXplKHNjcm9sbERpcmVjdGlvbik7XG4gIH1cblxuICBwcml2YXRlIGJpbmRFdmVudHNTY3JvbGxCYXIoc2Nyb2xsRGlyZWN0aW9uOiBUWVBFX1NDUk9MTF9ESVJFQ1RJT04sIHRyYWNrRWw6IEhUTUxFbGVtZW50KSB7XG4gICAgbGV0IHNjcm9sbExlZnQgPSB0aGlzLkVsZW1lbnQuc2Nyb2xsTGVmdDtcbiAgICBsZXQgc2Nyb2xsVG9wID0gdGhpcy5FbGVtZW50LnNjcm9sbFRvcDtcbiAgICBjb25zdCBzdWJzOiBTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQ8RXZlbnQ+KHRoaXMuRWxlbWVudCwgJ3Njcm9sbCcpLnBpcGUodGFwKChldmVudCkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5FbGVtZW50O1xuXG4gICAgICB0aGlzLm91dFNjcm9sbC5lbWl0KGV2ZW50KTtcbiAgICAgIGlmIChzY3JvbGxEaXJlY3Rpb24gPT09ICdYJykge1xuICAgICAgICBpZiAodGFyZ2V0LnNjcm9sbExlZnQgJiYgKHRhcmdldC5zY3JvbGxMZWZ0ICsgdGFyZ2V0Lm9mZnNldFdpZHRoID49IHRhcmdldC5zY3JvbGxXaWR0aCkpIHtcbiAgICAgICAgICB0YXJnZXQuc2Nyb2xsTGVmdCA9IHRhcmdldC5zY3JvbGxXaWR0aCAtIHRhcmdldC5vZmZzZXRXaWR0aCAtICh0YXJnZXQub2Zmc2V0V2lkdGggLSB0YXJnZXQuY2xpZW50V2lkdGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRhcmdldC5zY3JvbGxMZWZ0ICE9PSBzY3JvbGxMZWZ0KSB7XG4gICAgICAgICAgdGhpcy5vdXRTY3JvbGxYLmVtaXQoZXZlbnQpO1xuXG4gICAgICAgIH1cbiAgICAgICAgc2Nyb2xsTGVmdCA9IHRhcmdldC5zY3JvbGxMZWZ0O1xuICAgICAgICB0aGlzLnVwZGF0ZVNjcm9sbGJhclBvc2l0aW9uKHNjcm9sbERpcmVjdGlvbik7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodGFyZ2V0LnNjcm9sbFRvcCA9PT0gc2Nyb2xsVG9wKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgdGhpcy51cGRhdGVTY3JvbGxiYXJQb3NpdGlvbihzY3JvbGxEaXJlY3Rpb24pO1xuICAgICAgc2Nyb2xsVG9wID0gdGFyZ2V0LnNjcm9sbFRvcDtcbiAgICAgIHRoaXMub3V0U2Nyb2xsWS5lbWl0KGV2ZW50KTtcblxuICAgICAgaWYgKHRhcmdldC5zY3JvbGxUb3AgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3V0U2Nyb2xsVG9wLmVtaXQoZXZlbnQpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGFyZ2V0LnNjcm9sbEhlaWdodCA8PSB0YXJnZXQuc2Nyb2xsVG9wICsgdGFyZ2V0Lm9mZnNldEhlaWdodCArIDMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3V0U2Nyb2xsQm90dG9tLmVtaXQoZXZlbnQpO1xuICAgICAgfVxuICAgIH0pLCB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kpKS5zdWJzY3JpYmUoKTtcblxuICAgIHN1YnMuYWRkKGZyb21FdmVudChkb2N1bWVudCwgJ3Jlc2l6ZScpLnBpcGUodGFwKHRoaXMudXBkYXRlU2Nyb2xsYmFyU2l6ZS5iaW5kKHRoaXMsIHNjcm9sbERpcmVjdGlvbikpLCB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kpKS5zdWJzY3JpYmUoKSk7XG5cbiAgICBjb25zdCBtb3VzZUxlYXZlID0gZnJvbUV2ZW50KHRoaXMuZGl2Q29udGFpbmVyLCAnbW91c2VsZWF2ZScpO1xuICAgIGNvbnN0IG1vdXNlZW50ZXIgPSBmcm9tRXZlbnQodGhpcy5kaXZDb250YWluZXIsICdtb3VzZWVudGVyJyk7XG5cbiAgICBzdWJzLmFkZChtb3VzZWVudGVyLnBpcGUodGFwKCgpID0+IHtcbiAgICAgIHRyYWNrRWwuc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcbiAgICAgIHRyYWNrRWwuc3R5bGUub3BhY2l0eSA9ICcxJztcbiAgICAgIHRoaXMudXBkYXRlU2Nyb2xsYmFyU2l6ZShzY3JvbGxEaXJlY3Rpb24pO1xuICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IGludGVydmFsKDEwMDApLnBpcGUodGFrZVVudGlsKG1vdXNlTGVhdmUpKSksXG4gICAgICB0YXAodGhpcy51cGRhdGVTY3JvbGxiYXJTaXplLmJpbmQodGhpcywgc2Nyb2xsRGlyZWN0aW9uKSksXG4gICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kpXG4gICAgKS5zdWJzY3JpYmUoKSk7XG5cbiAgICBzdWJzLmFkZChtb3VzZUxlYXZlLnBpcGUodGFwKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmtlZXBEaXNwbGF5VGh1bWIoKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0cmFja0VsLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgIHRyYWNrRWwuc3R5bGUub3BhY2l0eSA9ICcwJztcbiAgICB9KSwgdGFrZVVudGlsKHRoaXMub25EZXN0cm95KSkuc3Vic2NyaWJlKCkpO1xuXG4gICAgaWYgKHNjcm9sbERpcmVjdGlvbiA9PT0gJ1gnKSB7XG4gICAgICB0aGlzLnN1YnNYID0gc3VicztcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChzY3JvbGxEaXJlY3Rpb24gPT09ICdZJykge1xuICAgICAgdGhpcy5zdWJzWSA9IHN1YnM7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNsaWNrVHJhY2soc2Nyb2xsRGlyZWN0aW9uOiBUWVBFX1NDUk9MTF9ESVJFQ1RJT04pIHtcbiAgICBjb25zdCBlbGVtZW50VHJhY2sgPSBzY3JvbGxEaXJlY3Rpb24gPT09ICdYJyA/IHRoaXMudHJhY2tYIDogdGhpcy50cmFja1k7XG4gICAgY29uc3QgZWxlbWVudFRodW1iID0gc2Nyb2xsRGlyZWN0aW9uID09PSAnWCcgPyB0aGlzLnRodW1iWCA6IHRoaXMudGh1bWJZO1xuICAgIGNvbnN0IHN1YnMgPSBzY3JvbGxEaXJlY3Rpb24gPT09ICdYJyA/IHRoaXMuc3Vic1ggOiB0aGlzLnN1YnNZO1xuXG4gICAgc3Vicy5hZGQoZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGVsZW1lbnRUcmFjaywgJ2NsaWNrJykuc3Vic2NyaWJlKGUgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNTY3JvbGxUaHVtYigpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICgoc2Nyb2xsRGlyZWN0aW9uID09PSAnWCcgJiYgZS5jbGllbnRYIDwgZWxlbWVudFRodW1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQpIHx8IChzY3JvbGxEaXJlY3Rpb24gPT09ICdZJyAmJiBlLmNsaWVudFkgPCBlbGVtZW50VGh1bWIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wKSkge1xuICAgICAgICB0aGlzLnVwZGF0ZVNjcm9sbFBvc2l0aW9uQnlVc2VyQWN0aW9uKHNjcm9sbERpcmVjdGlvbiwgZSwgJ3Ntb290aCcsIDApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChzY3JvbGxEaXJlY3Rpb24gPT09ICdYJykge1xuICAgICAgICB0aGlzLnVwZGF0ZVNjcm9sbFBvc2l0aW9uQnlVc2VyQWN0aW9uKHNjcm9sbERpcmVjdGlvbiwgZSwgJ3Ntb290aCcsIC0xICogZWxlbWVudFRodW1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy51cGRhdGVTY3JvbGxQb3NpdGlvbkJ5VXNlckFjdGlvbihzY3JvbGxEaXJlY3Rpb24sIGUsICdzbW9vdGgnLCAtMSAqIGVsZW1lbnRUaHVtYi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQpO1xuICAgIH0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyRHJhZ0FuZERyb3BUaHVtYihzY3JvbGxEaXJlY3Rpb246IFRZUEVfU0NST0xMX0RJUkVDVElPTikge1xuICAgIGNvbnN0IGVsZW1lbnRUcmFjayA9IHNjcm9sbERpcmVjdGlvbiA9PT0gJ1gnID8gdGhpcy50cmFja1ggOiB0aGlzLnRyYWNrWTtcbiAgICBjb25zdCBlbGVtZW50VGh1bWIgPSBzY3JvbGxEaXJlY3Rpb24gPT09ICdYJyA/IHRoaXMudGh1bWJYIDogdGhpcy50aHVtYlk7XG4gICAgY29uc3Qgc3VicyA9IHNjcm9sbERpcmVjdGlvbiA9PT0gJ1gnID8gdGhpcy5zdWJzWCA6IHRoaXMuc3Vic1k7XG4gICAgbGV0IGxlbmd0aFRodW1iVG9Qb2ludENsaWNrID0gMDtcblxuICAgIHN1YnMuYWRkKGdldERyYWdFdmVudEJ5RWxlbWVudCh7XG4gICAgICBlbGVtZW50TW91c2VEb3duOiBlbGVtZW50VGh1bWIsXG4gICAgICBmdW5jdGlvbk1vdXNlRG93bjogKG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5pc1Njcm9sbFRodW1iLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5rZWVwRGlzcGxheVRodW1iLnNldCh0cnVlKTtcbiAgICAgICAgaWYgKHNjcm9sbERpcmVjdGlvbiA9PT0gJ1gnKSB7XG4gICAgICAgICAgbGVuZ3RoVGh1bWJUb1BvaW50Q2xpY2sgPSBlbGVtZW50VGh1bWIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCAtIG1vdXNlRXZlbnQuY2xpZW50WDtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGVuZ3RoVGh1bWJUb1BvaW50Q2xpY2sgPSBlbGVtZW50VGh1bWIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIC0gbW91c2VFdmVudC5jbGllbnRZO1xuICAgICAgfSxcbiAgICAgIGZ1bmN0aW9uTW91c2VVcDogKG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5rZWVwRGlzcGxheVRodW1iLnNldChmYWxzZSk7XG4gICAgICAgIGxlbmd0aFRodW1iVG9Qb2ludENsaWNrID0gMDtcbiAgICAgICAgaWYgKCFjaGVja01vdXNlT3ZlckluQ29udGFpbmVyKG1vdXNlRXZlbnQsIHRoaXMuRWxlbWVudCkpIHtcbiAgICAgICAgICBlbGVtZW50VHJhY2suc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgICAgIGVsZW1lbnRUcmFjay5zdHlsZS5vcGFjaXR5ID0gJzAnO1xuICAgICAgICB9XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNTY3JvbGxUaHVtYi5zZXQoZmFsc2UpO1xuICAgICAgICB9LCAyNTApO1xuICAgICAgfSxcbiAgICAgIG9uRGVzdHJveTogdGhpcy5vbkRlc3Ryb3lcbiAgICB9KS5zdWJzY3JpYmUoKG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlU2Nyb2xsUG9zaXRpb25CeVVzZXJBY3Rpb24oc2Nyb2xsRGlyZWN0aW9uLCBtb3VzZUV2ZW50LCAnYXV0bycsIGxlbmd0aFRodW1iVG9Qb2ludENsaWNrKVxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU2Nyb2xsUG9zaXRpb25CeVVzZXJBY3Rpb24oc2Nyb2xsRGlyZWN0aW9uOiBUWVBFX1NDUk9MTF9ESVJFQ1RJT04sIGU6IE1vdXNlRXZlbnQsIGJlaGF2aW9yOiAnYXV0bycgfCAnc21vb3RoJywgbGVuZ3RoVGh1bWJUb1BvaW50Q2xpY2sgPSAwKSB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAoc2Nyb2xsRGlyZWN0aW9uID09PSAnWCcpIHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5FbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgY29uc3QgY29udGVudFdpZHRoID0gKHRoaXMuZWxlbWVudENoZWNrU2Nyb2xsWCgpIHx8IHRoaXMuRWxlbWVudCkuc2Nyb2xsV2lkdGg7XG4gICAgICBjb25zdCB0aHVtYlBvc2l0aW9uID0gZS5jbGllbnRYIC0gdGhpcy5FbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgKyBsZW5ndGhUaHVtYlRvUG9pbnRDbGljaztcbiAgICAgIGNvbnN0IHNjcm9sbExlZnQgPSAodGh1bWJQb3NpdGlvbiAvIChjb250YWluZXJXaWR0aCAtIHRoaXMudGh1bWJYLm9mZnNldFdpZHRoKSkgKiAoY29udGVudFdpZHRoIC0gY29udGFpbmVyV2lkdGgpO1xuXG4gICAgICB0aGlzLkVsZW1lbnQuc2Nyb2xsKHsgbGVmdDogc2Nyb2xsTGVmdCwgYmVoYXZpb3IgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGNvbnRhaW5lckhlaWdodCA9IHRoaXMuRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgY29uc3QgY29udGVudEhlaWdodCA9ICh0aGlzLmVsZW1lbnRDaGVja1Njcm9sbFkoKSB8fCB0aGlzLkVsZW1lbnQpLnNjcm9sbEhlaWdodDtcbiAgICBjb25zdCB0aHVtYlBvc2l0aW9uID0gZS5jbGllbnRZIC0gdGhpcy5FbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIGxlbmd0aFRodW1iVG9Qb2ludENsaWNrO1xuICAgIGNvbnN0IHNjcm9sbFRvcCA9ICh0aHVtYlBvc2l0aW9uIC8gKGNvbnRhaW5lckhlaWdodCAtIHRoaXMudGh1bWJZLm9mZnNldEhlaWdodCkpICogKGNvbnRlbnRIZWlnaHQgLSBjb250YWluZXJIZWlnaHQpO1xuXG4gICAgdGhpcy5FbGVtZW50LnNjcm9sbCh7IHRvcDogc2Nyb2xsVG9wLCBiZWhhdmlvciB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU2Nyb2xsYmFyU2l6ZShzY3JvbGxEaXJlY3Rpb246IFRZUEVfU0NST0xMX0RJUkVDVElPTikge1xuICAgIGlmIChzY3JvbGxEaXJlY3Rpb24gPT09ICdYJykge1xuICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLkVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICBjb25zdCBjb250ZW50V2lkdGggPSAodGhpcy5lbGVtZW50Q2hlY2tTY3JvbGxYKCkgfHwgdGhpcy5FbGVtZW50KS5zY3JvbGxXaWR0aDtcbiAgICAgIGNvbnN0IHRodW1iV2lkdGggPSAoY29udGFpbmVyV2lkdGggLyBjb250ZW50V2lkdGgpICogKGNvbnRhaW5lcldpZHRoKTtcblxuICAgICAgdGhpcy50aHVtYlguc3R5bGUud2lkdGggPSBgJHt0aHVtYldpZHRofXB4YDtcbiAgICAgIHRoaXMudHJhY2tYLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICBpZiAoY29udGVudFdpZHRoID4gY29udGFpbmVyV2lkdGgpIHtcbiAgICAgICAgdGhpcy50cmFja1guc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZVNjcm9sbGJhclBvc2l0aW9uKHNjcm9sbERpcmVjdGlvbik7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb250YWluZXJIZWlnaHQgPSB0aGlzLkVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgIGNvbnN0IGNvbnRlbnRIZWlnaHQgPSAodGhpcy5lbGVtZW50Q2hlY2tTY3JvbGxZKCkgfHwgdGhpcy5FbGVtZW50KS5zY3JvbGxIZWlnaHQ7XG4gICAgY29uc3QgdGh1bWJIZWlnaHQgPSAoY29udGFpbmVySGVpZ2h0IC8gY29udGVudEhlaWdodCkgKiAoY29udGFpbmVySGVpZ2h0KTtcblxuICAgIHRoaXMudGh1bWJZLnN0eWxlLmhlaWdodCA9IGAke3RodW1iSGVpZ2h0IDwgNDAgPyA0MCA6IHRodW1iSGVpZ2h0fXB4YDtcbiAgICB0aGlzLnRyYWNrWS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIGlmIChjb250ZW50SGVpZ2h0ID4gY29udGFpbmVySGVpZ2h0KSB7XG4gICAgICB0aGlzLnRyYWNrWS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZVNjcm9sbGJhclBvc2l0aW9uKCdZJyk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVNjcm9sbGJhclBvc2l0aW9uKHNjcm9sbERpcmVjdGlvbjogVFlQRV9TQ1JPTExfRElSRUNUSU9OKSB7XG4gICAgaWYgKHNjcm9sbERpcmVjdGlvbiA9PT0gJ1gnKSB7XG4gICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgIGNvbnN0IGNvbnRlbnRXaWR0aCA9ICh0aGlzLmVsZW1lbnRDaGVja1Njcm9sbFgoKSB8fCB0aGlzLkVsZW1lbnQpLnNjcm9sbFdpZHRoO1xuICAgICAgY29uc3Qgc2Nyb2xsTGVmdCA9IHRoaXMuRWxlbWVudC5zY3JvbGxMZWZ0O1xuICAgICAgY29uc3QgdGh1bWJQb3NpdGlvbiA9IChzY3JvbGxMZWZ0IC8gKGNvbnRlbnRXaWR0aCAtIGNvbnRhaW5lcldpZHRoKSkgKiAoY29udGFpbmVyV2lkdGggLSB0aGlzLnRodW1iWC5vZmZzZXRXaWR0aCk7XG5cbiAgICAgIHRoaXMudGh1bWJYLnN0eWxlLmxlZnQgPSBgJHt0aHVtYlBvc2l0aW9ufXB4YDtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjb250YWluZXJIZWlnaHQgPSB0aGlzLkVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgIGNvbnN0IGNvbnRlbnRIZWlnaHQgPSAodGhpcy5lbGVtZW50Q2hlY2tTY3JvbGxZKCkgfHwgdGhpcy5FbGVtZW50KS5zY3JvbGxIZWlnaHQ7XG4gICAgY29uc3Qgc2Nyb2xsVG9wID0gdGhpcy5FbGVtZW50LnNjcm9sbFRvcDtcbiAgICBjb25zdCB0aHVtYlBvc2l0aW9uID0gKHNjcm9sbFRvcCAvIChjb250ZW50SGVpZ2h0IC0gY29udGFpbmVySGVpZ2h0KSkgKiAoY29udGFpbmVySGVpZ2h0IC0gdGhpcy50aHVtYlkub2Zmc2V0SGVpZ2h0KTtcblxuICAgIHRoaXMudGh1bWJZLnN0eWxlLnRvcCA9IGAke3RodW1iUG9zaXRpb259cHhgO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kaXZDb250YWluZXIucmVtb3ZlKCk7XG4gICAgdGhpcy5zdWJzWC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3Vic1kudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm9uRGVzdHJveS5uZXh0KCk7XG4gICAgdGhpcy5vbkRlc3Ryb3kuY29tcGxldGUoKTtcbiAgfVxuXG59Il19
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { computed, signal, input, output, inject, ElementRef, Renderer2, effect, untracked, Directive } from '@angular/core';
3
- import { Subscription, Subject, fromEvent, tap, takeUntil, switchMap, interval } from 'rxjs';
4
3
  import { getDragEventByElement, checkMouseOverInContainer } from '@libs-ui/utils';
4
+ import { Subscription, Subject, fromEvent, tap, takeUntil, switchMap, interval } from 'rxjs';
5
5
 
6
6
  /* eslint-disable @typescript-eslint/no-explicit-any */
7
7
  class LibsUiComponentsScrollOverlayDirective {
@@ -1 +1 @@
1
- {"version":3,"file":"libs-ui-components-scroll-overlay.mjs","sources":["../../../../../libs-ui/components/scroll-overlay/src/scroll-overlay.directive.ts","../../../../../libs-ui/components/scroll-overlay/src/scroll.interface.ts","../../../../../libs-ui/components/scroll-overlay/src/libs-ui-components-scroll-overlay.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Directive, ElementRef, OnDestroy, Renderer2, computed, effect, inject, input, output, signal, untracked } from \"@angular/core\";\nimport { Subject, Subscription, debounceTime, filter, fromEvent, interval, mergeMap, startWith, switchMap, takeUntil, tap } from \"rxjs\";\nimport { IScrollOverlayOptions, TYPE_SCROLL_DIRECTION } from \"./scroll.interface\";\nimport { checkMouseOverInContainer, getDragEventByElement } from '@libs-ui/utils';\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[LibsUiComponentsScrollOverlayDirective]',\n standalone: true\n})\nexport class LibsUiComponentsScrollOverlayDirective implements OnDestroy {\n // #region PROPERTY\n private readonly styles = computed(()=>`\n .scrollbar-track{\n background-color:${this.scrollbarColor()};\n }\n .scrollbar-track:hover{\n background-color:${this.scrollbarHoverColor()};\n }\n .scrollbar-track-X {\n width:100%;\n position: absolute;\n bottom: 0;\n left: 0;\n height: ${this.scrollbarWidth()}px;\n visibility: hidden;\n cursor: pointer;\n opacity: 0;\n z-index: 1;\n transition: opacity 0.3s ease, visibility 0.3s ease;\n }\n\n .scrollbar-track-Y {\n height:100%;\n position: absolute;\n top: 0;\n right: 0;\n width: ${this.scrollbarWidth()}px;\n visibility: hidden;\n cursor: pointer;\n opacity: 0;\n z-index: 1;\n transition: opacity 0.3s ease, visibility 0.3s ease;\n }\n\n .scrollbar-thumb{\n background-color:${this.scrollThumbColor()};\n }\n .scrollbar-thumb:hover{\n background-color:${this.scrollThumbHoverColor()};\n }\n\n .scrollbar-thumb-X {\n height: calc(100% - ${this.scrollbarPadding()*2}px);\n botton: ${this.scrollbarPadding()}px;\n border-radius: 4px;\n cursor: move;\n transition: background-color 0.3s;\n position: absolute;\n }\n\n .scrollbar-thumb-Y {\n width: calc(100% - ${this.scrollbarPadding()*2}px);\n right: ${this.scrollbarPadding()}px;\n border-radius: 4px;\n cursor: move;\n transition: background-color 0.3s;\n position: absolute;\n }\n `, {})\n private isScrollThumb = signal<boolean>(false);\n private keepDisplayThumb = signal<boolean>(false);\n private subsX = new Subscription();\n private subsY = new Subscription();\n private scrollbarWidth = computed(() => this.options()?.scrollbarWidth || 12); // Chiều rộng thanh cuộn\n private scrollbarPadding = computed(() => this.options()?.scrollbarPadding || 2); // Chiều rộng thanh cuộn\n private scrollbarColor = computed(() => this.options()?.scrollbarColor || '');\n private scrollbarHoverColor = computed(() => this.options()?.scrollbarColor || '#CDD0D640');\n private scrollThumbColor = computed(() => this.options()?.scrollThumbColor || '#CDD0D6');\n private scrollThumbHoverColor = computed(() => this.options()?.scrollThumbHoverColor || '#9CA2AD');\n private readonly divContainer = document.createElement('div');\n private readonly trackX: HTMLElement = document.createElement('div');\n private readonly thumbX: HTMLElement = document.createElement('div');\n private readonly trackY: HTMLElement = document.createElement('div');\n private readonly thumbY: HTMLElement = document.createElement('div');\n private readonly onDestroy = new Subject<void>();\n\n // #region INPUT\n readonly debugMode = input<boolean>(false);\n readonly classContainer = input<string, string | undefined>('', { transform: value => value ?? '' });\n readonly options = input<IScrollOverlayOptions | undefined>(Object.assign({}));\n readonly elementCheckScrollX = input<HTMLElement>();\n readonly elementCheckScrollY = input<HTMLElement>();\n\n // #region OUTPUT\n readonly outScroll = output<Event>();\n readonly outScrollX = output<Event>();\n readonly outScrollY = output<Event>();\n readonly outScrollTop = output<Event>();\n readonly outScrollBottom = output<Event>();\n\n // #region INJECT\n private element = inject(ElementRef);\n private render2 = inject(Renderer2);\n\n constructor() {\n effect(() => {\n const options = this.options();\n this.divContainer.className = '';\n this.classContainer()?.split(' ').forEach(className => {\n if (!className) {\n return;\n }\n this.divContainer.classList.add(className);\n });\n\n untracked(() => {\n if (options?.scrollX !== 'hidden') {\n this.subsX.unsubscribe();\n this.trackX.className = '';\n this.thumbX.className = '';\n this.createScrollbar('X', this.trackX, this.thumbX);\n this.bindEventsScrollBar('X', this.trackX);\n\n this.handlerDragAndDropThumb('X');\n this.handlerClickTrack('X');\n }\n\n if (options?.scrollY !== 'hidden') {\n this.trackY.className = '';\n this.thumbY.className = '';\n this.subsY.unsubscribe();\n this.createScrollbar('Y', this.trackY, this.thumbY);\n this.bindEventsScrollBar('Y', this.trackY);\n\n this.handlerDragAndDropThumb('Y');\n this.handlerClickTrack('Y');\n }\n });\n\n });\n }\n\n // #region FUNCTIONS\n private get Element(): HTMLElement {\n return this.element.nativeElement;\n }\n\n private createScrollbar(scrollDirection: TYPE_SCROLL_DIRECTION, trackEl: HTMLElement, thumbEl: HTMLElement) {\n const idStyleTag = \"#id-style-tag-custom-scroll-overlay\"\n const styleElCustomScrollOverlay = document.getElementById(idStyleTag);\n\n if (!styleElCustomScrollOverlay) {\n const styleEl = document.createElement('style');\n styleEl.setAttribute('id', idStyleTag);\n styleEl.innerHTML = this.styles();\n document.head.append(styleEl);\n }\n\n const stylesProperty = {\n \"box-sizing\": \"border-box\",\n \"scrollbar-width\": \"none\",\n \"scrollbar-color\": \"transparent transparent\",\n \"overflow\": \"hidden\",\n \"overflow-x\": `${this.options()?.scrollX || 'scroll'}`,\n \"overflow-y\": `${this.options()?.scrollY || 'scroll'}`\n } as any;\n\n Object.keys(stylesProperty).forEach(key => {\n this.render2.setStyle(this.Element, key, stylesProperty[key], 1);\n });\n\n trackEl.classList.add(`scrollbar-track`);\n trackEl.classList.add(`scrollbar-track-${scrollDirection}`);\n\n thumbEl.classList.add(`scrollbar-thumb`);\n thumbEl.classList.add(`scrollbar-thumb-${scrollDirection}`);\n trackEl.appendChild(thumbEl);\n if (this.Element.className) {\n this.Element.className.split(' ').forEach((className: string) => {\n if (className && (['w-full', 'w-screen', 'h-full', 'h-screen'].includes(className) || className.includes('min-h-') || className.includes('min-w-') || /^(!?)(h|w)-\\[[0-9]+px\\]$/.test(className)) && !this.divContainer.classList.contains(className)) {\n this.divContainer.classList.add(className);\n }\n\n });\n if (!this.Element.className.includes('min-h-')) {\n this.divContainer.classList.add('min-h-0');\n\n }\n if (!this.Element.className.includes('min-w-')) {\n this.divContainer.classList.add('min-w-0');\n }\n }\n this.divContainer.appendChild(trackEl);\n\n if (!this.divContainer.style.position) {\n this.Element.parentElement?.insertBefore(this.divContainer, this.Element);\n this.divContainer.style.position = 'relative';\n }\n this.divContainer.append(this.Element);\n this.updateScrollbarSize(scrollDirection);\n }\n\n private bindEventsScrollBar(scrollDirection: TYPE_SCROLL_DIRECTION, trackEl: HTMLElement) {\n let scrollLeft = this.Element.scrollLeft;\n let scrollTop = this.Element.scrollTop;\n const subs: Subscription = fromEvent<Event>(this.Element, 'scroll').pipe(tap((event) => {\n const target = this.Element;\n\n this.outScroll.emit(event);\n if (scrollDirection === 'X') {\n if (target.scrollLeft && (target.scrollLeft + target.offsetWidth >= target.scrollWidth)) {\n target.scrollLeft = target.scrollWidth - target.offsetWidth - (target.offsetWidth - target.clientWidth);\n }\n\n if (target.scrollLeft !== scrollLeft) {\n this.outScrollX.emit(event);\n\n }\n scrollLeft = target.scrollLeft;\n this.updateScrollbarPosition(scrollDirection);\n\n return;\n }\n\n if (target.scrollTop === scrollTop) {\n return\n }\n this.updateScrollbarPosition(scrollDirection);\n scrollTop = target.scrollTop;\n this.outScrollY.emit(event);\n\n if (target.scrollTop === 0) {\n return this.outScrollTop.emit(event);\n }\n\n if (target.scrollHeight <= target.scrollTop + target.offsetHeight + 3) {\n return this.outScrollBottom.emit(event);\n }\n }), takeUntil(this.onDestroy)).subscribe();\n\n subs.add(fromEvent(document, 'resize').pipe(tap(this.updateScrollbarSize.bind(this, scrollDirection)), takeUntil(this.onDestroy)).subscribe());\n\n const mouseLeave = fromEvent(this.divContainer, 'mouseleave');\n const mouseenter = fromEvent(this.divContainer, 'mouseenter');\n\n subs.add(mouseenter.pipe(tap(() => {\n trackEl.style.visibility = 'visible';\n trackEl.style.opacity = '1';\n this.updateScrollbarSize(scrollDirection);\n }),\n switchMap(() => interval(1000).pipe(takeUntil(mouseLeave))),\n tap(this.updateScrollbarSize.bind(this, scrollDirection)),\n takeUntil(this.onDestroy)\n ).subscribe());\n\n subs.add(mouseLeave.pipe(tap(() => {\n if (this.keepDisplayThumb()) {\n return;\n }\n trackEl.style.visibility = 'hidden';\n trackEl.style.opacity = '0';\n }), takeUntil(this.onDestroy)).subscribe());\n\n if (scrollDirection === 'X') {\n this.subsX = subs;\n\n return;\n }\n\n if (scrollDirection === 'Y') {\n this.subsY = subs;\n\n return;\n }\n }\n\n protected handlerClickTrack(scrollDirection: TYPE_SCROLL_DIRECTION) {\n const elementTrack = scrollDirection === 'X' ? this.trackX : this.trackY;\n const elementThumb = scrollDirection === 'X' ? this.thumbX : this.thumbY;\n const subs = scrollDirection === 'X' ? this.subsX : this.subsY;\n\n subs.add(fromEvent<MouseEvent>(elementTrack, 'click').subscribe(e => {\n if (this.isScrollThumb()) {\n return;\n }\n if ((scrollDirection === 'X' && e.clientX < elementThumb.getBoundingClientRect().left) || (scrollDirection === 'Y' && e.clientY < elementThumb.getBoundingClientRect().top)) {\n this.updateScrollPositionByUserAction(scrollDirection, e, 'smooth', 0);\n return;\n }\n\n if (scrollDirection === 'X') {\n this.updateScrollPositionByUserAction(scrollDirection, e, 'smooth', -1 * elementThumb.getBoundingClientRect().width);\n return;\n }\n this.updateScrollPositionByUserAction(scrollDirection, e, 'smooth', -1 * elementThumb.getBoundingClientRect().height);\n }));\n }\n\n protected handlerDragAndDropThumb(scrollDirection: TYPE_SCROLL_DIRECTION) {\n const elementTrack = scrollDirection === 'X' ? this.trackX : this.trackY;\n const elementThumb = scrollDirection === 'X' ? this.thumbX : this.thumbY;\n const subs = scrollDirection === 'X' ? this.subsX : this.subsY;\n let lengthThumbToPointClick = 0;\n\n subs.add(getDragEventByElement({\n elementMouseDown: elementThumb,\n functionMouseDown: (mouseEvent: MouseEvent) => {\n this.isScrollThumb.set(true);\n this.keepDisplayThumb.set(true);\n if (scrollDirection === 'X') {\n lengthThumbToPointClick = elementThumb.getBoundingClientRect().left - mouseEvent.clientX;\n return;\n }\n lengthThumbToPointClick = elementThumb.getBoundingClientRect().top - mouseEvent.clientY;\n },\n functionMouseUp: (mouseEvent: MouseEvent) => {\n this.keepDisplayThumb.set(false);\n lengthThumbToPointClick = 0;\n if (!checkMouseOverInContainer(mouseEvent, this.Element)) {\n elementTrack.style.visibility = 'hidden';\n elementTrack.style.opacity = '0';\n }\n setTimeout(() => {\n this.isScrollThumb.set(false);\n }, 250);\n },\n onDestroy: this.onDestroy\n }).subscribe((mouseEvent: MouseEvent) => {\n this.updateScrollPositionByUserAction(scrollDirection, mouseEvent, 'auto', lengthThumbToPointClick)\n }));\n }\n\n private updateScrollPositionByUserAction(scrollDirection: TYPE_SCROLL_DIRECTION, e: MouseEvent, behavior: 'auto' | 'smooth', lengthThumbToPointClick = 0) {\n e.stopPropagation();\n if (scrollDirection === 'X') {\n const containerWidth = this.Element.offsetWidth;\n const contentWidth = (this.elementCheckScrollX() || this.Element).scrollWidth;\n const thumbPosition = e.clientX - this.Element.getBoundingClientRect().left + lengthThumbToPointClick;\n const scrollLeft = (thumbPosition / (containerWidth - this.thumbX.offsetWidth)) * (contentWidth - containerWidth);\n\n this.Element.scroll({ left: scrollLeft, behavior });\n return;\n }\n const containerHeight = this.Element.offsetHeight;\n const contentHeight = (this.elementCheckScrollY() || this.Element).scrollHeight;\n const thumbPosition = e.clientY - this.Element.getBoundingClientRect().top + lengthThumbToPointClick;\n const scrollTop = (thumbPosition / (containerHeight - this.thumbY.offsetHeight)) * (contentHeight - containerHeight);\n\n this.Element.scroll({ top: scrollTop, behavior });\n }\n\n private updateScrollbarSize(scrollDirection: TYPE_SCROLL_DIRECTION) {\n if (scrollDirection === 'X') {\n const containerWidth = this.Element.offsetWidth;\n const contentWidth = (this.elementCheckScrollX() || this.Element).scrollWidth;\n const thumbWidth = (containerWidth / contentWidth) * (containerWidth);\n\n this.thumbX.style.width = `${thumbWidth}px`;\n this.trackX.style.display = 'none';\n if (contentWidth > containerWidth) {\n this.trackX.style.display = 'block';\n }\n this.updateScrollbarPosition(scrollDirection);\n\n return;\n }\n\n const containerHeight = this.Element.offsetHeight;\n const contentHeight = (this.elementCheckScrollY() || this.Element).scrollHeight;\n const thumbHeight = (containerHeight / contentHeight) * (containerHeight);\n\n this.thumbY.style.height = `${thumbHeight < 40 ? 40 : thumbHeight}px`;\n this.trackY.style.display = 'none';\n if (contentHeight > containerHeight) {\n this.trackY.style.display = 'block';\n }\n\n this.updateScrollbarPosition('Y');\n }\n\n private updateScrollbarPosition(scrollDirection: TYPE_SCROLL_DIRECTION) {\n if (scrollDirection === 'X') {\n const containerWidth = this.Element.offsetWidth;\n const contentWidth = (this.elementCheckScrollX() || this.Element).scrollWidth;\n const scrollLeft = this.Element.scrollLeft;\n const thumbPosition = (scrollLeft / (contentWidth - containerWidth)) * (containerWidth - this.thumbX.offsetWidth);\n\n this.thumbX.style.left = `${thumbPosition}px`;\n\n return;\n }\n const containerHeight = this.Element.offsetHeight;\n const contentHeight = (this.elementCheckScrollY() || this.Element).scrollHeight;\n const scrollTop = this.Element.scrollTop;\n const thumbPosition = (scrollTop / (contentHeight - containerHeight)) * (containerHeight - this.thumbY.offsetHeight);\n\n this.thumbY.style.top = `${thumbPosition}px`;\n }\n\n ngOnDestroy(): void {\n this.divContainer.remove();\n this.subsX.unsubscribe();\n this.subsY.unsubscribe();\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n\n}","export type TYPE_SCROLL_DIRECTION = 'X' | 'Y';\nexport type TYPE_SCROLL_OVERFLOW = 'hidden' | 'scroll';\nexport interface IScrollOverlayOptions {\n scrollbarWidth?: number;\n scrollbarColor?: string;\n scrollbarHoverColor?: string;\n scrollThumbColor?: string;\n scrollThumbHoverColor?: string;\n scrollbarPadding?: number;\n scrollX?: TYPE_SCROLL_OVERFLOW;\n scrollY?: TYPE_SCROLL_OVERFLOW;\n};","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libs-ui-components-scroll-overlay.mjs","sources":["../../../../../libs-ui/components/scroll-overlay/src/scroll-overlay.directive.ts","../../../../../libs-ui/components/scroll-overlay/src/scroll.interface.ts","../../../../../libs-ui/components/scroll-overlay/src/libs-ui-components-scroll-overlay.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Directive, ElementRef, OnDestroy, Renderer2, computed, effect, inject, input, output, signal, untracked } from \"@angular/core\";\nimport { checkMouseOverInContainer, getDragEventByElement } from '@libs-ui/utils';\nimport { Subject, Subscription, fromEvent, interval, switchMap, takeUntil, tap } from \"rxjs\";\nimport { IScrollOverlayOptions, TYPE_SCROLL_DIRECTION } from \"./scroll.interface\";\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[LibsUiComponentsScrollOverlayDirective]',\n standalone: true\n})\nexport class LibsUiComponentsScrollOverlayDirective implements OnDestroy {\n // #region PROPERTY\n private readonly styles = computed(() => `\n .scrollbar-track{\n background-color:${this.scrollbarColor()};\n }\n .scrollbar-track:hover{\n background-color:${this.scrollbarHoverColor()};\n }\n .scrollbar-track-X {\n width:100%;\n position: absolute;\n bottom: 0;\n left: 0;\n height: ${this.scrollbarWidth()}px;\n visibility: hidden;\n cursor: pointer;\n opacity: 0;\n z-index: 1;\n transition: opacity 0.3s ease, visibility 0.3s ease;\n }\n\n .scrollbar-track-Y {\n height:100%;\n position: absolute;\n top: 0;\n right: 0;\n width: ${this.scrollbarWidth()}px;\n visibility: hidden;\n cursor: pointer;\n opacity: 0;\n z-index: 1;\n transition: opacity 0.3s ease, visibility 0.3s ease;\n }\n\n .scrollbar-thumb{\n background-color:${this.scrollThumbColor()};\n }\n .scrollbar-thumb:hover{\n background-color:${this.scrollThumbHoverColor()};\n }\n\n .scrollbar-thumb-X {\n height: calc(100% - ${this.scrollbarPadding() * 2}px);\n botton: ${this.scrollbarPadding()}px;\n border-radius: 4px;\n cursor: move;\n transition: background-color 0.3s;\n position: absolute;\n }\n\n .scrollbar-thumb-Y {\n width: calc(100% - ${this.scrollbarPadding() * 2}px);\n right: ${this.scrollbarPadding()}px;\n border-radius: 4px;\n cursor: move;\n transition: background-color 0.3s;\n position: absolute;\n }\n `, {})\n private isScrollThumb = signal<boolean>(false);\n private keepDisplayThumb = signal<boolean>(false);\n private subsX = new Subscription();\n private subsY = new Subscription();\n private scrollbarWidth = computed(() => this.options()?.scrollbarWidth || 12); // Chiều rộng thanh cuộn\n private scrollbarPadding = computed(() => this.options()?.scrollbarPadding || 2); // Chiều rộng thanh cuộn\n private scrollbarColor = computed(() => this.options()?.scrollbarColor || '');\n private scrollbarHoverColor = computed(() => this.options()?.scrollbarColor || '#CDD0D640');\n private scrollThumbColor = computed(() => this.options()?.scrollThumbColor || '#CDD0D6');\n private scrollThumbHoverColor = computed(() => this.options()?.scrollThumbHoverColor || '#9CA2AD');\n private readonly divContainer = document.createElement('div');\n private readonly trackX: HTMLElement = document.createElement('div');\n private readonly thumbX: HTMLElement = document.createElement('div');\n private readonly trackY: HTMLElement = document.createElement('div');\n private readonly thumbY: HTMLElement = document.createElement('div');\n private readonly onDestroy = new Subject<void>();\n\n // #region INPUT\n readonly debugMode = input<boolean>(false);\n readonly classContainer = input<string, string | undefined>('', { transform: value => value ?? '' });\n readonly options = input<IScrollOverlayOptions | undefined>(Object.assign({}));\n readonly elementCheckScrollX = input<HTMLElement>();\n readonly elementCheckScrollY = input<HTMLElement>();\n\n // #region OUTPUT\n readonly outScroll = output<Event>();\n readonly outScrollX = output<Event>();\n readonly outScrollY = output<Event>();\n readonly outScrollTop = output<Event>();\n readonly outScrollBottom = output<Event>();\n\n // #region INJECT\n private element = inject(ElementRef);\n private render2 = inject(Renderer2);\n\n constructor() {\n effect(() => {\n const options = this.options();\n this.divContainer.className = '';\n this.classContainer()?.split(' ').forEach(className => {\n if (!className) {\n return;\n }\n this.divContainer.classList.add(className);\n });\n\n untracked(() => {\n if (options?.scrollX !== 'hidden') {\n this.subsX.unsubscribe();\n this.trackX.className = '';\n this.thumbX.className = '';\n this.createScrollbar('X', this.trackX, this.thumbX);\n this.bindEventsScrollBar('X', this.trackX);\n\n this.handlerDragAndDropThumb('X');\n this.handlerClickTrack('X');\n }\n\n if (options?.scrollY !== 'hidden') {\n this.trackY.className = '';\n this.thumbY.className = '';\n this.subsY.unsubscribe();\n this.createScrollbar('Y', this.trackY, this.thumbY);\n this.bindEventsScrollBar('Y', this.trackY);\n\n this.handlerDragAndDropThumb('Y');\n this.handlerClickTrack('Y');\n }\n });\n\n });\n }\n\n // #region FUNCTIONS\n private get Element(): HTMLElement {\n return this.element.nativeElement;\n }\n\n private createScrollbar(scrollDirection: TYPE_SCROLL_DIRECTION, trackEl: HTMLElement, thumbEl: HTMLElement) {\n const idStyleTag = \"#id-style-tag-custom-scroll-overlay\"\n const styleElCustomScrollOverlay = document.getElementById(idStyleTag);\n\n if (!styleElCustomScrollOverlay) {\n const styleEl = document.createElement('style');\n styleEl.setAttribute('id', idStyleTag);\n styleEl.innerHTML = this.styles();\n document.head.append(styleEl);\n }\n\n const stylesProperty = {\n \"box-sizing\": \"border-box\",\n \"scrollbar-width\": \"none\",\n \"scrollbar-color\": \"transparent transparent\",\n \"overflow\": \"hidden\",\n \"overflow-x\": `${this.options()?.scrollX || 'scroll'}`,\n \"overflow-y\": `${this.options()?.scrollY || 'scroll'}`\n } as any;\n\n Object.keys(stylesProperty).forEach(key => {\n this.render2.setStyle(this.Element, key, stylesProperty[key], 1);\n });\n\n trackEl.classList.add(`scrollbar-track`);\n trackEl.classList.add(`scrollbar-track-${scrollDirection}`);\n\n thumbEl.classList.add(`scrollbar-thumb`);\n thumbEl.classList.add(`scrollbar-thumb-${scrollDirection}`);\n trackEl.appendChild(thumbEl);\n if (this.Element.className) {\n this.Element.className.split(' ').forEach((className: string) => {\n if (className && (['w-full', 'w-screen', 'h-full', 'h-screen'].includes(className) || className.includes('min-h-') || className.includes('min-w-') || /^(!?)(h|w)-\\[[0-9]+px\\]$/.test(className)) && !this.divContainer.classList.contains(className)) {\n this.divContainer.classList.add(className);\n }\n\n });\n if (!this.Element.className.includes('min-h-')) {\n this.divContainer.classList.add('min-h-0');\n\n }\n if (!this.Element.className.includes('min-w-')) {\n this.divContainer.classList.add('min-w-0');\n }\n }\n this.divContainer.appendChild(trackEl);\n\n if (!this.divContainer.style.position) {\n this.Element.parentElement?.insertBefore(this.divContainer, this.Element);\n this.divContainer.style.position = 'relative';\n }\n this.divContainer.append(this.Element);\n this.updateScrollbarSize(scrollDirection);\n }\n\n private bindEventsScrollBar(scrollDirection: TYPE_SCROLL_DIRECTION, trackEl: HTMLElement) {\n let scrollLeft = this.Element.scrollLeft;\n let scrollTop = this.Element.scrollTop;\n const subs: Subscription = fromEvent<Event>(this.Element, 'scroll').pipe(tap((event) => {\n const target = this.Element;\n\n this.outScroll.emit(event);\n if (scrollDirection === 'X') {\n if (target.scrollLeft && (target.scrollLeft + target.offsetWidth >= target.scrollWidth)) {\n target.scrollLeft = target.scrollWidth - target.offsetWidth - (target.offsetWidth - target.clientWidth);\n }\n\n if (target.scrollLeft !== scrollLeft) {\n this.outScrollX.emit(event);\n\n }\n scrollLeft = target.scrollLeft;\n this.updateScrollbarPosition(scrollDirection);\n\n return;\n }\n\n if (target.scrollTop === scrollTop) {\n return\n }\n this.updateScrollbarPosition(scrollDirection);\n scrollTop = target.scrollTop;\n this.outScrollY.emit(event);\n\n if (target.scrollTop === 0) {\n return this.outScrollTop.emit(event);\n }\n\n if (target.scrollHeight <= target.scrollTop + target.offsetHeight + 3) {\n return this.outScrollBottom.emit(event);\n }\n }), takeUntil(this.onDestroy)).subscribe();\n\n subs.add(fromEvent(document, 'resize').pipe(tap(this.updateScrollbarSize.bind(this, scrollDirection)), takeUntil(this.onDestroy)).subscribe());\n\n const mouseLeave = fromEvent(this.divContainer, 'mouseleave');\n const mouseenter = fromEvent(this.divContainer, 'mouseenter');\n\n subs.add(mouseenter.pipe(tap(() => {\n trackEl.style.visibility = 'visible';\n trackEl.style.opacity = '1';\n this.updateScrollbarSize(scrollDirection);\n }),\n switchMap(() => interval(1000).pipe(takeUntil(mouseLeave))),\n tap(this.updateScrollbarSize.bind(this, scrollDirection)),\n takeUntil(this.onDestroy)\n ).subscribe());\n\n subs.add(mouseLeave.pipe(tap(() => {\n if (this.keepDisplayThumb()) {\n return;\n }\n trackEl.style.visibility = 'hidden';\n trackEl.style.opacity = '0';\n }), takeUntil(this.onDestroy)).subscribe());\n\n if (scrollDirection === 'X') {\n this.subsX = subs;\n\n return;\n }\n\n if (scrollDirection === 'Y') {\n this.subsY = subs;\n\n return;\n }\n }\n\n protected handlerClickTrack(scrollDirection: TYPE_SCROLL_DIRECTION) {\n const elementTrack = scrollDirection === 'X' ? this.trackX : this.trackY;\n const elementThumb = scrollDirection === 'X' ? this.thumbX : this.thumbY;\n const subs = scrollDirection === 'X' ? this.subsX : this.subsY;\n\n subs.add(fromEvent<MouseEvent>(elementTrack, 'click').subscribe(e => {\n if (this.isScrollThumb()) {\n return;\n }\n if ((scrollDirection === 'X' && e.clientX < elementThumb.getBoundingClientRect().left) || (scrollDirection === 'Y' && e.clientY < elementThumb.getBoundingClientRect().top)) {\n this.updateScrollPositionByUserAction(scrollDirection, e, 'smooth', 0);\n return;\n }\n\n if (scrollDirection === 'X') {\n this.updateScrollPositionByUserAction(scrollDirection, e, 'smooth', -1 * elementThumb.getBoundingClientRect().width);\n return;\n }\n this.updateScrollPositionByUserAction(scrollDirection, e, 'smooth', -1 * elementThumb.getBoundingClientRect().height);\n }));\n }\n\n protected handlerDragAndDropThumb(scrollDirection: TYPE_SCROLL_DIRECTION) {\n const elementTrack = scrollDirection === 'X' ? this.trackX : this.trackY;\n const elementThumb = scrollDirection === 'X' ? this.thumbX : this.thumbY;\n const subs = scrollDirection === 'X' ? this.subsX : this.subsY;\n let lengthThumbToPointClick = 0;\n\n subs.add(getDragEventByElement({\n elementMouseDown: elementThumb,\n functionMouseDown: (mouseEvent: MouseEvent) => {\n this.isScrollThumb.set(true);\n this.keepDisplayThumb.set(true);\n if (scrollDirection === 'X') {\n lengthThumbToPointClick = elementThumb.getBoundingClientRect().left - mouseEvent.clientX;\n return;\n }\n lengthThumbToPointClick = elementThumb.getBoundingClientRect().top - mouseEvent.clientY;\n },\n functionMouseUp: (mouseEvent: MouseEvent) => {\n this.keepDisplayThumb.set(false);\n lengthThumbToPointClick = 0;\n if (!checkMouseOverInContainer(mouseEvent, this.Element)) {\n elementTrack.style.visibility = 'hidden';\n elementTrack.style.opacity = '0';\n }\n setTimeout(() => {\n this.isScrollThumb.set(false);\n }, 250);\n },\n onDestroy: this.onDestroy\n }).subscribe((mouseEvent: MouseEvent) => {\n this.updateScrollPositionByUserAction(scrollDirection, mouseEvent, 'auto', lengthThumbToPointClick)\n }));\n }\n\n private updateScrollPositionByUserAction(scrollDirection: TYPE_SCROLL_DIRECTION, e: MouseEvent, behavior: 'auto' | 'smooth', lengthThumbToPointClick = 0) {\n e.stopPropagation();\n if (scrollDirection === 'X') {\n const containerWidth = this.Element.offsetWidth;\n const contentWidth = (this.elementCheckScrollX() || this.Element).scrollWidth;\n const thumbPosition = e.clientX - this.Element.getBoundingClientRect().left + lengthThumbToPointClick;\n const scrollLeft = (thumbPosition / (containerWidth - this.thumbX.offsetWidth)) * (contentWidth - containerWidth);\n\n this.Element.scroll({ left: scrollLeft, behavior });\n return;\n }\n const containerHeight = this.Element.offsetHeight;\n const contentHeight = (this.elementCheckScrollY() || this.Element).scrollHeight;\n const thumbPosition = e.clientY - this.Element.getBoundingClientRect().top + lengthThumbToPointClick;\n const scrollTop = (thumbPosition / (containerHeight - this.thumbY.offsetHeight)) * (contentHeight - containerHeight);\n\n this.Element.scroll({ top: scrollTop, behavior });\n }\n\n private updateScrollbarSize(scrollDirection: TYPE_SCROLL_DIRECTION) {\n if (scrollDirection === 'X') {\n const containerWidth = this.Element.offsetWidth;\n const contentWidth = (this.elementCheckScrollX() || this.Element).scrollWidth;\n const thumbWidth = (containerWidth / contentWidth) * (containerWidth);\n\n this.thumbX.style.width = `${thumbWidth}px`;\n this.trackX.style.display = 'none';\n if (contentWidth > containerWidth) {\n this.trackX.style.display = 'block';\n }\n this.updateScrollbarPosition(scrollDirection);\n\n return;\n }\n\n const containerHeight = this.Element.offsetHeight;\n const contentHeight = (this.elementCheckScrollY() || this.Element).scrollHeight;\n const thumbHeight = (containerHeight / contentHeight) * (containerHeight);\n\n this.thumbY.style.height = `${thumbHeight < 40 ? 40 : thumbHeight}px`;\n this.trackY.style.display = 'none';\n if (contentHeight > containerHeight) {\n this.trackY.style.display = 'block';\n }\n\n this.updateScrollbarPosition('Y');\n }\n\n private updateScrollbarPosition(scrollDirection: TYPE_SCROLL_DIRECTION) {\n if (scrollDirection === 'X') {\n const containerWidth = this.Element.offsetWidth;\n const contentWidth = (this.elementCheckScrollX() || this.Element).scrollWidth;\n const scrollLeft = this.Element.scrollLeft;\n const thumbPosition = (scrollLeft / (contentWidth - containerWidth)) * (containerWidth - this.thumbX.offsetWidth);\n\n this.thumbX.style.left = `${thumbPosition}px`;\n\n return;\n }\n const containerHeight = this.Element.offsetHeight;\n const contentHeight = (this.elementCheckScrollY() || this.Element).scrollHeight;\n const scrollTop = this.Element.scrollTop;\n const thumbPosition = (scrollTop / (contentHeight - containerHeight)) * (containerHeight - this.thumbY.offsetHeight);\n\n this.thumbY.style.top = `${thumbPosition}px`;\n }\n\n ngOnDestroy(): void {\n this.divContainer.remove();\n this.subsX.unsubscribe();\n this.subsY.unsubscribe();\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n\n}","export type TYPE_SCROLL_DIRECTION = 'X' | 'Y';\nexport type TYPE_SCROLL_OVERFLOW = 'hidden' | 'scroll';\nexport interface IScrollOverlayOptions {\n scrollbarWidth?: number;\n scrollbarColor?: string;\n scrollbarHoverColor?: string;\n scrollThumbColor?: string;\n scrollThumbHoverColor?: string;\n scrollbarPadding?: number;\n scrollX?: TYPE_SCROLL_OVERFLOW;\n scrollY?: TYPE_SCROLL_OVERFLOW;\n};","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libs-ui/components-scroll-overlay",
3
- "version": "0.2.141",
3
+ "version": "0.2.143",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.2.0",
6
6
  "@angular/core": "^18.2.0"