@libs-ui/components-minimap 0.2.200 → 0.2.203

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.
@@ -49,8 +49,8 @@ export class LibsUiComponentsMinimapDirective {
49
49
  // #region FUNCTIONS
50
50
  imgElementInitStyleAndAddToBody() {
51
51
  const rectElement = this.Element.getBoundingClientRect();
52
- this.containerElement.classList.add('position-absolute', 'd-flex', 'invisible', 'mo-lib-directive-minimap-container');
53
- this.imgElement.classList.add('position-relative', 'w-100', 'h-100', 'mo-lib-overflow-hidden');
52
+ this.containerElement.classList.add('position-absolute', 'd-flex', 'invisible', 'libs-ui-directive-minimap-container');
53
+ this.imgElement.classList.add('position-relative', 'w-100', 'h-100', 'overflow-hidden');
54
54
  setStylesElement(this.containerElement, {
55
55
  zIndex: `${this.styleImageElement()?.zIndex ?? '1300'}`,
56
56
  background: `${this.styleImageElement()?.background ?? 'white'}`,
@@ -65,7 +65,7 @@ export class LibsUiComponentsMinimapDirective {
65
65
  document.body.appendChild(this.containerElement);
66
66
  }
67
67
  viewPortElementInitStyleAndAddToImgElement() {
68
- this.viewPortElement.classList.add('position-fixed', 'mo-lib-border-primary-general', 'invisible', 'mo-lib-directive-minimap-rectangle');
68
+ this.viewPortElement.classList.add('position-fixed', 'libs-ui-border-primary-general', 'invisible', 'libs-ui-directive-minimap-rectangle');
69
69
  setStylesElement(this.viewPortElement, {
70
70
  zIndex: `${this.styleRectangleElement()?.zIndex ?? '1301'}`,
71
71
  background: `${this.styleRectangleElement()?.background ?? 'transparent'}`,
@@ -177,7 +177,7 @@ export class LibsUiComponentsMinimapDirective {
177
177
  ratioX = this.reverseMultiplication(ratioX, scaleX);
178
178
  ratioY = this.reverseMultiplication(ratioY, scaleY);
179
179
  nodeClone.style.transform = `scale(${ratioX},${ratioY})`;
180
- nodeClone.classList.add('mo-lib-overflow-unset');
180
+ nodeClone.classList.add('overflow-unset');
181
181
  this.imgElement.append(nodeClone);
182
182
  const translateX = (nodeClone.getBoundingClientRect().left - this.imgElement.getBoundingClientRect().left) / ratioX;
183
183
  const translateY = (nodeClone.getBoundingClientRect().top - this.imgElement.getBoundingClientRect().top) / ratioY;
@@ -226,4 +226,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
226
226
  standalone: true,
227
227
  }]
228
228
  }] });
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaW1hcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvbWluaW1hcC9zcmMvbWluaW1hcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBT2pFLE1BQU0sT0FBTyxnQ0FBZ0M7SUFDM0MsbUJBQW1CO0lBQ1gsTUFBTSxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUNoQyxnQkFBZ0IsR0FBZ0IsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5RCxVQUFVLEdBQWdCLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEQsZUFBZSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsU0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFDeEMsYUFBYTtJQUViLGdCQUFnQjtJQUNQLHlCQUF5QixHQUFHLEtBQUssQ0FBNkIsK0JBQStCLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksK0JBQStCLEVBQUUsQ0FBQyxDQUFDO0lBQzdKLHFCQUFxQixHQUFHLEtBQUssQ0FBNkIsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDakcsYUFBYSxHQUFHLEtBQUssRUFBZSxDQUFDO0lBQ3JDLHFCQUFxQixHQUFHLEtBQUssRUFBdUIsQ0FBQztJQUNyRCxpQkFBaUIsR0FBRyxLQUFLLEVBQXVCLENBQUM7SUFDMUQsYUFBYTtJQUViLGlCQUFpQjtJQUNSLG1CQUFtQixHQUFHLE1BQU0sRUFBMkIsQ0FBQztJQUNqRSxhQUFhO0lBRWIsaUJBQWlCO0lBQ1QsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RDLGFBQWE7SUFFYixlQUFlO1FBQ2IsTUFBTSxNQUFNLEdBQUcsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3BFLE1BQU0sUUFBUSxHQUFHLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUVyRSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzVCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNoQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNoRCxJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsMENBQTBDLEVBQUUsQ0FBQztZQUVsRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFFMUQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNyRixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQztnQkFDNUIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDMUIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDOUIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUMvQixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLEVBQ0EsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxvQkFBb0I7SUFDWiwrQkFBK0I7UUFDckMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRXpELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsb0NBQW9DLENBQUMsQ0FBQztRQUN0SCxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1FBQy9GLGdCQUFnQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN0QyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLElBQUksTUFBTSxFQUFFO1lBQ3ZELFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFVBQVUsSUFBSSxPQUFPLEVBQUU7WUFDaEUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxJQUFJLG1CQUFtQixFQUFFO1lBQ3BFLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFlBQVksSUFBSSxLQUFLLEVBQUU7WUFDbEUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsS0FBSyxJQUFJLEtBQUssSUFBSTtZQUN0RCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLElBQUksS0FBSyxJQUFJO1NBQ3pELEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMseUJBQXlCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVPLDBDQUEwQztRQUNoRCxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsK0JBQStCLEVBQUUsV0FBVyxFQUFFLG9DQUFvQyxDQUFDLENBQUM7UUFDekksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGVBQXlDLEVBQUU7WUFDL0QsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRTtZQUMzRCxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsRUFBRSxVQUFVLElBQUksYUFBYSxFQUFFO1lBQzFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLE1BQU0sSUFBSSxNQUFNLEVBQUU7WUFDM0QsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsWUFBWSxJQUFJLEdBQUcsRUFBRTtZQUNwRSxNQUFNLEVBQUUsTUFBTTtTQUNmLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxXQUFvQjtRQUNwRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxJQUFJLENBQUM7WUFFN0UsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLEdBQUcsSUFBSSxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDNUYsQ0FBQztJQUNPLHlCQUF5QixDQUFDLFdBQW9CO1FBQ3BELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxLQUFLLElBQUksQ0FBQztZQUUzRSxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUMvRixDQUFDO0lBRU8sU0FBUztRQUNmLElBQUksUUFBb0IsQ0FBQztRQUN6QixNQUFNLG9CQUFvQixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO1lBQ2pELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNsRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDMUQsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFM0MsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM1QixLQUFLLEdBQUc7b0JBQ04sT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLE1BQU0sR0FBRyxTQUFTLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxLQUFLLEdBQUcsQ0FBQztvQkFDbkYsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLE1BQU0sR0FBRyxTQUFTLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQztpQkFDckUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFFNUMsT0FBTztZQUNULENBQUM7WUFFRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFLENBQUM7Z0JBQy9CLFFBQVEsR0FBRyxLQUFLLENBQUM7Z0JBRWpCLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNkLE9BQU87WUFDVCxDQUFDO1lBRUQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUM7WUFDOUQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUM7WUFFOUQsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztnQkFDbEIsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLFNBQVM7Z0JBQ3pDLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxTQUFTO2FBQ3hDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUdGLHFCQUFxQixDQUFDLEVBQUMsZ0JBQWdCLEVBQUMsSUFBSSxDQUFDLGVBQWUsRUFBQyxnQkFBZ0IsRUFBQyxJQUFJLENBQUMsZUFBZSxFQUFDLFNBQVMsRUFBQyxJQUFJLENBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUM5SixTQUFTLENBQVEsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsb0JBQW9CLENBQUMsS0FBbUIsQ0FBQyxDQUFDLENBQUM7UUFDaEwsU0FBUyxDQUFRLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3JKLENBQUM7SUFFTyxRQUFRO1FBQ2QsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDcEUsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUM5RCxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBRWhFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBQ08sZUFBZTtRQUNyQixJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDbEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFnQixDQUFDO1FBRS9HLElBQUksWUFBWSxJQUFJLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzdELE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNwSCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFN0QsTUFBTSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdDQUFnQztZQUNyRSxNQUFNLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFFRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRU8scUJBQXFCLENBQUMsSUFBWSxFQUFFLElBQVk7UUFDdEQsSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDZCxPQUFPLElBQUksR0FBRyxJQUFJLENBQUM7UUFDckIsQ0FBQztRQUVELE9BQU8sSUFBSSxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRU8sb0JBQW9CLENBQUMsU0FBOEIsRUFBRSxhQUFtRDtRQUM5RyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUVsRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3BGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEYsSUFBSSxPQUFPLEdBQUcsYUFBYSxDQUFDLE9BQU8sR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2hELElBQUksTUFBTSxHQUFHLGFBQWEsQ0FBQyxPQUFPLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUVoRCxJQUFJLE9BQU8sR0FBRyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDN0IsT0FBTyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDM0IsQ0FBQztRQUNELElBQUksT0FBTyxHQUFHLEtBQUssSUFBSSxTQUFTLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN4RCxPQUFPLEdBQUcsU0FBUyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNyRCxDQUFDO1FBQ0QsSUFBSSxNQUFNLEdBQUcsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzNCLE1BQU0sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDO1FBQ3pCLENBQUM7UUFDRCxJQUFJLE1BQU0sR0FBRyxNQUFNLElBQUksU0FBUyxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDeEQsTUFBTSxHQUFHLFNBQVMsQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckQsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLE9BQU8sSUFBSSxDQUFDO1FBQ2pELElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDO1FBQy9DLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLEtBQUssSUFBSSxDQUFDO1FBQ2hELElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztJQUNoRSxDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQzVDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQWdCLENBQUM7UUFDL0UsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFbEQsTUFBTSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDcEQsTUFBTSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDcEQsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsU0FBUyxNQUFNLElBQUksTUFBTSxHQUFHLENBQUM7UUFDekQsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVsQyxNQUFNLFVBQVUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3BILE1BQU0sVUFBVSxHQUFHLENBQUMsU0FBUyxDQUFDLHFCQUFxQixFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDbEgsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUMxRCxNQUFNLEtBQUssR0FBRztZQUNaLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxNQUFNLEdBQUcsU0FBUyxDQUFDLElBQUksR0FBRyxlQUFlLENBQUMsS0FBSyxHQUFHLENBQUM7WUFDdEYsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLE1BQU0sR0FBRyxTQUFTLENBQUMsR0FBRyxHQUFHLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQztTQUN4RSxDQUFDO1FBRWhCLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLFNBQVMsTUFBTSxJQUFJLE1BQU0sZ0JBQWdCLFVBQVUsT0FBTyxVQUFVLEtBQUssQ0FBQztRQUN0RyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTyxNQUFNO1FBQ1osSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFZCxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFTyxNQUFNO1FBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTyxJQUFJO1FBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFZLE9BQU87UUFDakIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDL0QsQ0FBQztJQUVELGFBQWE7SUFDYixXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7d0dBalFVLGdDQUFnQzs0RkFBaEMsZ0NBQWdDOzs0RkFBaEMsZ0NBQWdDO2tCQUw1QyxTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLG9DQUFvQztvQkFDOUMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIGlucHV0LCBPbkRlc3Ryb3ksIG91dHB1dCwgUmVuZGVyZXIyLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElCb3VuZGluZ0NsaWVudFJlY3QgfSBmcm9tICdAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzJztcbmltcG9ydCB7IGdldERyYWdFdmVudEJ5RWxlbWVudCwgc2V0U3R5bGVzRWxlbWVudCB9IGZyb20gJ0BsaWJzLXVpL3V0aWxzJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCwgdGFrZVVudGlsLCB0YXAsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJTWluaU1hcEZ1bmN0aW9uQ29udHJvbCwgSU1pbmlNYXBTdHlsZUNvbmZpZyB9IGZyb20gJy4vbWluaW1hcC5pbnRlcmZhY2UnO1xuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiBcIltMaWJzVWlDb21wb25lbnRzTWluaW1hcERpcmVjdGl2ZV1cIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c01pbmltYXBEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAvLyAjcmVnaW9uIFBST1BFUlRZXG4gIHByaXZhdGUgaXNTaG93ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSBjb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0RJVicpO1xuICBwcml2YXRlIGltZ0VsZW1lbnQ6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnRElWJyk7XG4gIHByaXZhdGUgdmlld1BvcnRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnRElWJyk7XG4gIHByaXZhdGUgb25EZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgLy8gI2VuZHJlZ2lvblxuXG4gIC8vICNyZWdpb24gSU5QVVRcbiAgcmVhZG9ubHkgY2xhc3NOYW1lRmxhZ0VsZW1lbnRTY2FsZSA9IGlucHV0PHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPignbW8tbWluaW1hcC1mbGFnLWVsZW1lbnQtc2NhbGUnLCB7IHRyYW5zZm9ybTogdmFsID0+IHZhbCA/PyAnbW8tbWluaW1hcC1mbGFnLWVsZW1lbnQtc2NhbGUnIH0pO1xuICByZWFkb25seSB0aW1lclN0YXJ0RHJhd01pbmltYXAgPSBpbnB1dDxudW1iZXIsIG51bWJlciB8IHVuZGVmaW5lZD4oMjUwLCB7IHRyYW5zZm9ybTogdmFsID0+IHZhbCA/PyAyNTAgfSk7XG4gIHJlYWRvbmx5IGVsZW1lbnRTY3JvbGwgPSBpbnB1dDxIVE1MRWxlbWVudD4oKTtcbiAgcmVhZG9ubHkgc3R5bGVSZWN0YW5nbGVFbGVtZW50ID0gaW5wdXQ8SU1pbmlNYXBTdHlsZUNvbmZpZz4oKTtcbiAgcmVhZG9ubHkgc3R5bGVJbWFnZUVsZW1lbnQgPSBpbnB1dDxJTWluaU1hcFN0eWxlQ29uZmlnPigpO1xuICAvLyAjZW5kcmVnaW9uXG5cbiAgLy8gI3JlZ2lvbiBPVVRQVVRcbiAgcmVhZG9ubHkgb3V0RnVuY3Rpb25Db250cm9scyA9IG91dHB1dDxJTWluaU1hcEZ1bmN0aW9uQ29udHJvbD4oKTtcbiAgLy8gI2VuZHJlZ2lvblxuXG4gIC8vICNyZWdpb24gSU5KRUNUXG4gIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZW5kZXJlcjIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgLy8gI2VuZHJlZ2lvblxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBjb25maWcgPSB7IGF0dHJpYnV0ZXM6IHRydWUsIGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9O1xuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIodGhpcy51cGRhdGVNaW5pTWFwLmJpbmQodGhpcykpO1xuXG4gICAgb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLkVsZW1lbnQsIGNvbmZpZyk7XG4gICAgdGhpcy5vbkRlc3Ryb3kuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY29udGFpbmVyRWxlbWVudD8ucmVtb3ZlKCk7XG4gICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgfSk7XG5cbiAgICB0aW1lcih0aGlzLnRpbWVyU3RhcnREcmF3TWluaW1hcCgpKS5waXBlKHRhcCgoKSA9PiB7XG4gICAgICB0aGlzLmltZ0VsZW1lbnRJbml0U3R5bGVBbmRBZGRUb0JvZHkoKTtcbiAgICAgIHRoaXMudmlld1BvcnRFbGVtZW50SW5pdFN0eWxlQW5kQWRkVG9JbWdFbGVtZW50KCk7XG5cbiAgICAgIGNvbnN0IHJlY3RJbWFnZSA9IHRoaXMuaW1nRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgdGhpcy5zZXRQb3NpdGlvblJlY3RhbmdsZShyZWN0SW1hZ2UsIHsgY2xpZW50WDogcmVjdEltYWdlLngsIGNsaWVudFk6IHJlY3RJbWFnZS55IH0pO1xuICAgICAgdGhpcy51cGRhdGVNaW5pTWFwKCk7XG4gICAgICB0aGlzLm91dEZ1bmN0aW9uQ29udHJvbHMuZW1pdCh7XG4gICAgICAgIHNob3c6IHRoaXMuc2hvdy5iaW5kKHRoaXMpLFxuICAgICAgICBoaWRkZW46IHRoaXMuaGlkZGVuLmJpbmQodGhpcyksXG4gICAgICAgIHRvZ2dsZTogdGhpcy50b2dnbGUuYmluZCh0aGlzKVxuICAgICAgfSk7XG4gICAgICB0aGlzLmluaXRFdmVudCgpO1xuICAgIH0pLFxuICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95KSkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvLyAjcmVnaW9uIEZVTkNUSU9OU1xuICBwcml2YXRlIGltZ0VsZW1lbnRJbml0U3R5bGVBbmRBZGRUb0JvZHkoKSB7XG4gICAgY29uc3QgcmVjdEVsZW1lbnQgPSB0aGlzLkVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQuY2xhc3NMaXN0LmFkZCgncG9zaXRpb24tYWJzb2x1dGUnLCAnZC1mbGV4JywgJ2ludmlzaWJsZScsICdtby1saWItZGlyZWN0aXZlLW1pbmltYXAtY29udGFpbmVyJyk7XG4gICAgdGhpcy5pbWdFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3Bvc2l0aW9uLXJlbGF0aXZlJywgJ3ctMTAwJywgJ2gtMTAwJywgJ21vLWxpYi1vdmVyZmxvdy1oaWRkZW4nKTtcbiAgICBzZXRTdHlsZXNFbGVtZW50KHRoaXMuY29udGFpbmVyRWxlbWVudCwge1xuICAgICAgekluZGV4OiBgJHt0aGlzLnN0eWxlSW1hZ2VFbGVtZW50KCk/LnpJbmRleCA/PyAnMTMwMCd9YCxcbiAgICAgIGJhY2tncm91bmQ6IGAke3RoaXMuc3R5bGVJbWFnZUVsZW1lbnQoKT8uYmFja2dyb3VuZCA/PyAnd2hpdGUnfWAsXG4gICAgICBib3JkZXI6IGAke3RoaXMuc3R5bGVJbWFnZUVsZW1lbnQoKT8uYm9yZGVyID8/ICcxcHggc29saWQgI0U2RTdFQSd9YCxcbiAgICAgIGJvcmRlclJhZGl1czogYCR7dGhpcy5zdHlsZUltYWdlRWxlbWVudCgpPy5ib3JkZXJSYWRpdXMgPz8gJzRweCd9YCxcbiAgICAgIHdpZHRoOiBgJHt0aGlzLnN0eWxlSW1hZ2VFbGVtZW50KCk/LndpZHRoID8/ICcxOTgnfXB4YCxcbiAgICAgIGhlaWdodDogYCR7dGhpcy5zdHlsZUltYWdlRWxlbWVudCgpPy5oZWlnaHQgPz8gJzEwOCd9cHhgXG4gICAgfSwgdGhpcy5yZW5kZXJlcjIpO1xuICAgIHRoaXMuc3R5bGVSZWN0VG9wQm90dG9tRWxlbWVudChyZWN0RWxlbWVudCk7XG4gICAgdGhpcy5zdHlsZVJlY3RMZWZ0UmlnaHRFbGVtZW50KHJlY3RFbGVtZW50KTtcbiAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQuYXBwZW5kKHRoaXMuaW1nRWxlbWVudCk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmNvbnRhaW5lckVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSB2aWV3UG9ydEVsZW1lbnRJbml0U3R5bGVBbmRBZGRUb0ltZ0VsZW1lbnQoKSB7XG4gICAgdGhpcy52aWV3UG9ydEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgncG9zaXRpb24tZml4ZWQnLCAnbW8tbGliLWJvcmRlci1wcmltYXJ5LWdlbmVyYWwnLCAnaW52aXNpYmxlJywgJ21vLWxpYi1kaXJlY3RpdmUtbWluaW1hcC1yZWN0YW5nbGUnKTtcbiAgICBzZXRTdHlsZXNFbGVtZW50KHRoaXMudmlld1BvcnRFbGVtZW50IGFzIHVua25vd24gYXMgSFRNTEVsZW1lbnQsIHtcbiAgICAgIHpJbmRleDogYCR7dGhpcy5zdHlsZVJlY3RhbmdsZUVsZW1lbnQoKT8uekluZGV4ID8/ICcxMzAxJ31gLFxuICAgICAgYmFja2dyb3VuZDogYCR7dGhpcy5zdHlsZVJlY3RhbmdsZUVsZW1lbnQoKT8uYmFja2dyb3VuZCA/PyAndHJhbnNwYXJlbnQnfWAsXG4gICAgICBib3JkZXI6IGAke3RoaXMuc3R5bGVSZWN0YW5nbGVFbGVtZW50KCk/LmJvcmRlciA/PyAnbm9uZSd9YCxcbiAgICAgIGJvcmRlclJhZGl1czogYCR7dGhpcy5zdHlsZVJlY3RhbmdsZUVsZW1lbnQoKT8uYm9yZGVyUmFkaXVzID8/ICcwJ31gLFxuICAgICAgY3Vyc29yOiAnZ3JhYidcbiAgICB9LCB0aGlzLnJlbmRlcmVyMik7XG4gICAgdGhpcy5jb250YWluZXJFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMudmlld1BvcnRFbGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgc3R5bGVSZWN0VG9wQm90dG9tRWxlbWVudChyZWN0RWxlbWVudDogRE9NUmVjdCkge1xuICAgIGlmICh0aGlzLnN0eWxlSW1hZ2VFbGVtZW50KCk/LmJvdHRvbSkge1xuICAgICAgdGhpcy5jb250YWluZXJFbGVtZW50LnN0eWxlLmJvdHRvbSA9IGAke3RoaXMuc3R5bGVJbWFnZUVsZW1lbnQoKT8uYm90dG9tfXB4YDtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQuc3R5bGUudG9wID0gYCR7dGhpcy5zdHlsZUltYWdlRWxlbWVudCgpPy50b3AgPz8gcmVjdEVsZW1lbnQudG9wfXB4YDtcbiAgfVxuICBwcml2YXRlIHN0eWxlUmVjdExlZnRSaWdodEVsZW1lbnQocmVjdEVsZW1lbnQ6IERPTVJlY3QpIHtcbiAgICBpZiAodGhpcy5zdHlsZUltYWdlRWxlbWVudCgpPy5yaWdodCkge1xuICAgICAgdGhpcy5jb250YWluZXJFbGVtZW50LnN0eWxlLnJpZ2h0ID0gYCR7dGhpcy5zdHlsZUltYWdlRWxlbWVudCgpPy5yaWdodH1weGA7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jb250YWluZXJFbGVtZW50LnN0eWxlLmxlZnQgPSBgJHt0aGlzLnN0eWxlSW1hZ2VFbGVtZW50KCk/LmxlZnQgPz8gcmVjdEVsZW1lbnQubGVmdH1weGA7XG4gIH1cblxuICBwcml2YXRlIGluaXRFdmVudCgpIHtcbiAgICBsZXQgcHJlRXZlbnQ6IE1vdXNlRXZlbnQ7XG4gICAgY29uc3QgaGFuZGxlclNjcm9sbEVsZW1lbnQgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHJlY3RWaWV3UG9ydCA9IHRoaXMudmlld1BvcnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgcmVjdEltYWdlID0gdGhpcy5pbWdFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgeyByYXRpb1gsIHJhdGlvWSB9ID0gdGhpcy5nZXRSYXRpbygpO1xuXG4gICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3Njcm9sbCcpIHtcbiAgICAgICAgZXZlbnQgPSB7XG4gICAgICAgICAgY2xpZW50WDogdGhpcy5FbGVtZW50LnNjcm9sbExlZnQgKiByYXRpb1ggKyByZWN0SW1hZ2UubGVmdCArIHJlY3RWaWV3UG9ydC53aWR0aCAvIDIsXG4gICAgICAgICAgY2xpZW50WTogdGhpcy5FbGVtZW50LnNjcm9sbFRvcCAqIHJhdGlvWSArIHJlY3RJbWFnZS50b3AgKyByZWN0Vmlld1BvcnQuaGVpZ2h0IC8gMlxuICAgICAgICB9IGFzIE1vdXNlRXZlbnQ7XG4gICAgICAgIHRoaXMuc2V0UG9zaXRpb25SZWN0YW5nbGUocmVjdEltYWdlLCBldmVudCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ21vdXNlZG93bicpIHtcbiAgICAgICAgcHJlRXZlbnQgPSBldmVudDtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoIXByZUV2ZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGlzdGFuY2VYID0gKGV2ZW50LmNsaWVudFggLSBwcmVFdmVudC5jbGllbnRYKSAvIHJhdGlvWDtcbiAgICAgIGNvbnN0IGRpc3RhbmNlWSA9IChldmVudC5jbGllbnRZIC0gcHJlRXZlbnQuY2xpZW50WSkgLyByYXRpb1k7XG5cbiAgICAgIHByZUV2ZW50ID0gZXZlbnQ7XG4gICAgICB0aGlzLkVsZW1lbnQuc2Nyb2xsKHtcbiAgICAgICAgbGVmdDogdGhpcy5FbGVtZW50LnNjcm9sbExlZnQgKyBkaXN0YW5jZVgsXG4gICAgICAgIHRvcDogdGhpcy5FbGVtZW50LnNjcm9sbFRvcCArIGRpc3RhbmNlWVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIFxuICAgIGdldERyYWdFdmVudEJ5RWxlbWVudCh7ZWxlbWVudE1vdXNlRG93bjp0aGlzLnZpZXdQb3J0RWxlbWVudCxlbGVtZW50TW91c2VNb3ZlOnRoaXMudmlld1BvcnRFbGVtZW50LG9uRGVzdHJveTp0aGlzLm9uRGVzdHJveX0pLnN1YnNjcmliZShoYW5kbGVyU2Nyb2xsRWxlbWVudCk7XG4gICAgZnJvbUV2ZW50PEV2ZW50Pih0aGlzLkVsZW1lbnQsICdzY3JvbGwnKS5waXBlKHRhcChldmVudCA9PiBldmVudC5zdG9wUHJvcGFnYXRpb24oKSksIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSkpLnN1YnNjcmliZSgoZXZlbnQpID0+IGhhbmRsZXJTY3JvbGxFbGVtZW50KGV2ZW50IGFzIE1vdXNlRXZlbnQpKTtcbiAgICBmcm9tRXZlbnQ8RXZlbnQ+KHdpbmRvdywgJ3Jlc2l6ZScpLnBpcGUodGFwKGV2ZW50ID0+IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpKSwgdGFrZVVudGlsKHRoaXMub25EZXN0cm95KSkuc3Vic2NyaWJlKHRoaXMudXBkYXRlTWluaU1hcC5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmF0aW8oKSB7XG4gICAgY29uc3QgcmVjdENvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCByYXRpb1ggPSByZWN0Q29udGFpbmVyLndpZHRoIC8gdGhpcy5FbGVtZW50LnNjcm9sbFdpZHRoO1xuICAgIGNvbnN0IHJhdGlvWSA9IHJlY3RDb250YWluZXIuaGVpZ2h0IC8gdGhpcy5FbGVtZW50LnNjcm9sbEhlaWdodDtcblxuICAgIHJldHVybiB7IHJhdGlvWDogcmF0aW9YLCByYXRpb1k6IHJhdGlvWSB9O1xuICB9XG4gIHByaXZhdGUgZ2V0U2NhbGVFbGVtZW50KCkge1xuICAgIGxldCB7IHNjYWxlWCwgc2NhbGVZIH0gPSB7IHNjYWxlWDogMSwgc2NhbGVZOiAxIH07XG4gICAgY29uc3QgZWxlbWVudFNjYWxlID0gdGhpcy5FbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUodGhpcy5jbGFzc05hbWVGbGFnRWxlbWVudFNjYWxlKCkpPy5bMF0gYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBpZiAoZWxlbWVudFNjYWxlICYmIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudFNjYWxlKS50cmFuc2Zvcm0pIHtcbiAgICAgIGNvbnN0IG1hdHJpeCA9IGdldENvbXB1dGVkU3R5bGUodGhpcy5FbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUodGhpcy5jbGFzc05hbWVGbGFnRWxlbWVudFNjYWxlKCkpWzBdKS50cmFuc2Zvcm07XG4gICAgICBjb25zdCBtYXRyaXhBcnJheSA9IG1hdHJpeC5yZXBsYWNlKFwibWF0cml4KFwiLCBcIlwiKS5zcGxpdChcIixcIik7XG5cbiAgICAgIHNjYWxlWCA9IHBhcnNlRmxvYXQobWF0cml4QXJyYXlbMF0pOyAvLyBjb252ZXJ0IGZyb20gc3RyaW5nIHRvIG51bWJlclxuICAgICAgc2NhbGVZID0gcGFyc2VGbG9hdChtYXRyaXhBcnJheVszXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgc2NhbGVYLCBzY2FsZVksIGVsZW1lbnRTY2FsZSB9O1xuICB9XG5cbiAgcHJpdmF0ZSByZXZlcnNlTXVsdGlwbGljYXRpb24oYXZnMTogbnVtYmVyLCBhdmcyOiBudW1iZXIpIHtcbiAgICBpZiAoYXZnMiA8PSAxKSB7XG4gICAgICByZXR1cm4gYXZnMSAqIGF2ZzI7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF2ZzEgLyBhdmcyO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQb3NpdGlvblJlY3RhbmdsZShyZWN0SW1hZ2U6IElCb3VuZGluZ0NsaWVudFJlY3QsIG1vdXNlUG9zaXRpb246IHsgY2xpZW50WDogbnVtYmVyLCBjbGllbnRZOiBudW1iZXIgfSkge1xuICAgIGNvbnN0IHsgcmF0aW9YLCByYXRpb1kgfSA9IHRoaXMuZ2V0UmF0aW8oKTtcbiAgICBjb25zdCB7IHNjYWxlWCwgc2NhbGVZIH0gPSB0aGlzLmdldFNjYWxlRWxlbWVudCgpO1xuXG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLkVsZW1lbnQuY2xpZW50V2lkdGggKiB0aGlzLnJldmVyc2VNdWx0aXBsaWNhdGlvbihyYXRpb1gsIHNjYWxlWCk7XG4gICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5FbGVtZW50LmNsaWVudEhlaWdodCAqIHRoaXMucmV2ZXJzZU11bHRpcGxpY2F0aW9uKHJhdGlvWSwgc2NhbGVZKTtcbiAgICBsZXQgbGVmdFN2ZyA9IG1vdXNlUG9zaXRpb24uY2xpZW50WCAtIHdpZHRoIC8gMjtcbiAgICBsZXQgdG9wU3ZnID0gbW91c2VQb3NpdGlvbi5jbGllbnRZIC0gaGVpZ2h0IC8gMjtcblxuICAgIGlmIChsZWZ0U3ZnIDwgcmVjdEltYWdlLmxlZnQpIHtcbiAgICAgIGxlZnRTdmcgPSByZWN0SW1hZ2UubGVmdDtcbiAgICB9XG4gICAgaWYgKGxlZnRTdmcgKyB3aWR0aCA+PSByZWN0SW1hZ2UubGVmdCArIHJlY3RJbWFnZS53aWR0aCkge1xuICAgICAgbGVmdFN2ZyA9IHJlY3RJbWFnZS5sZWZ0ICsgcmVjdEltYWdlLndpZHRoIC0gd2lkdGg7XG4gICAgfVxuICAgIGlmICh0b3BTdmcgPCByZWN0SW1hZ2UudG9wKSB7XG4gICAgICB0b3BTdmcgPSByZWN0SW1hZ2UudG9wO1xuICAgIH1cbiAgICBpZiAodG9wU3ZnICsgaGVpZ2h0ID49IHJlY3RJbWFnZS50b3AgKyByZWN0SW1hZ2UuaGVpZ2h0KSB7XG4gICAgICB0b3BTdmcgPSByZWN0SW1hZ2UudG9wICsgcmVjdEltYWdlLmhlaWdodCAtIGhlaWdodDtcbiAgICB9XG4gICAgdGhpcy52aWV3UG9ydEVsZW1lbnQuc3R5bGUubGVmdCA9IGAke2xlZnRTdmd9cHhgO1xuICAgIHRoaXMudmlld1BvcnRFbGVtZW50LnN0eWxlLnRvcCA9IGAke3RvcFN2Z31weGA7XG4gICAgdGhpcy52aWV3UG9ydEVsZW1lbnQuc3R5bGUud2lkdGggPSBgJHt3aWR0aH1weGA7XG4gICAgdGhpcy52aWV3UG9ydEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gYCR7TWF0aC5yb3VuZChoZWlnaHQpfXB4YDtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTWluaU1hcCgpIHtcbiAgICB0aGlzLmltZ0VsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQ/LnJlbW92ZSgpO1xuICAgIGxldCB7IHJhdGlvWCwgcmF0aW9ZIH0gPSB0aGlzLmdldFJhdGlvKCk7XG4gICAgY29uc3Qgbm9kZUNsb25lID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xvbmVOb2RlKHRydWUpIGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IHsgc2NhbGVYLCBzY2FsZVkgfSA9IHRoaXMuZ2V0U2NhbGVFbGVtZW50KCk7XG5cbiAgICByYXRpb1ggPSB0aGlzLnJldmVyc2VNdWx0aXBsaWNhdGlvbihyYXRpb1gsIHNjYWxlWCk7XG4gICAgcmF0aW9ZID0gdGhpcy5yZXZlcnNlTXVsdGlwbGljYXRpb24ocmF0aW9ZLCBzY2FsZVkpO1xuICAgIG5vZGVDbG9uZS5zdHlsZS50cmFuc2Zvcm0gPSBgc2NhbGUoJHtyYXRpb1h9LCR7cmF0aW9ZfSlgO1xuICAgIG5vZGVDbG9uZS5jbGFzc0xpc3QuYWRkKCdtby1saWItb3ZlcmZsb3ctdW5zZXQnKTtcbiAgICB0aGlzLmltZ0VsZW1lbnQuYXBwZW5kKG5vZGVDbG9uZSk7XG5cbiAgICBjb25zdCB0cmFuc2xhdGVYID0gKG5vZGVDbG9uZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IC0gdGhpcy5pbWdFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQpIC8gcmF0aW9YO1xuICAgIGNvbnN0IHRyYW5zbGF0ZVkgPSAobm9kZUNsb25lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCAtIHRoaXMuaW1nRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3ApIC8gcmF0aW9ZO1xuICAgIGNvbnN0IHZpZXdQb3J0RWxlbWVudCA9IHRoaXMudmlld1BvcnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHJlY3RJbWFnZSA9IHRoaXMuaW1nRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBldmVudCA9IHtcbiAgICAgIGNsaWVudFg6IHRoaXMuRWxlbWVudC5zY3JvbGxMZWZ0ICogcmF0aW9YICsgcmVjdEltYWdlLmxlZnQgKyB2aWV3UG9ydEVsZW1lbnQud2lkdGggLyAyLFxuICAgICAgY2xpZW50WTogdGhpcy5FbGVtZW50LnNjcm9sbFRvcCAqIHJhdGlvWSArIHJlY3RJbWFnZS50b3AgKyB2aWV3UG9ydEVsZW1lbnQuaGVpZ2h0IC8gMlxuICAgIH0gYXMgTW91c2VFdmVudDtcblxuICAgIG5vZGVDbG9uZS5zdHlsZS50cmFuc2Zvcm0gPSBgc2NhbGUoJHtyYXRpb1h9LCR7cmF0aW9ZfSkgdHJhbnNsYXRlKC0ke3RyYW5zbGF0ZVh9cHgsLSR7dHJhbnNsYXRlWX1weClgO1xuICAgIHRoaXMuc2V0UG9zaXRpb25SZWN0YW5nbGUocmVjdEltYWdlLCBldmVudCk7XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZSgpIHtcbiAgICBpZiAodGhpcy5pc1Nob3coKSkge1xuICAgICAgdGhpcy5oaWRkZW4oKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvdygpO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWRkZW4oKSB7XG4gICAgdGhpcy5pc1Nob3cuc2V0KGZhbHNlKTtcbiAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQ/LmNsYXNzTGlzdC5hZGQoJ2ludmlzaWJsZScpO1xuICAgIHRoaXMudmlld1BvcnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2ludmlzaWJsZScpO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93KCkge1xuICAgIHRoaXMuaXNTaG93LnNldCh0cnVlKTtcbiAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQ/LmNsYXNzTGlzdC5yZW1vdmUoJ2ludmlzaWJsZScpO1xuICAgIHRoaXMudmlld1BvcnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2ludmlzaWJsZScpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFNjcm9sbCgpIHx8IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgLy8gI2VuZHJlZ2lvblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uRGVzdHJveS5uZXh0KCk7XG4gICAgdGhpcy5vbkRlc3Ryb3kuY29tcGxldGUoKTtcbiAgfVxufSJdfQ==
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaW1hcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvbWluaW1hcC9zcmMvbWluaW1hcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBT2pFLE1BQU0sT0FBTyxnQ0FBZ0M7SUFDM0MsbUJBQW1CO0lBQ1gsTUFBTSxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUNoQyxnQkFBZ0IsR0FBZ0IsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5RCxVQUFVLEdBQWdCLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEQsZUFBZSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsU0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFDeEMsYUFBYTtJQUViLGdCQUFnQjtJQUNQLHlCQUF5QixHQUFHLEtBQUssQ0FBNkIsK0JBQStCLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksK0JBQStCLEVBQUUsQ0FBQyxDQUFDO0lBQzdKLHFCQUFxQixHQUFHLEtBQUssQ0FBNkIsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFD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QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFZCxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFTyxNQUFNO1FBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTyxJQUFJO1FBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFZLE9BQU87UUFDakIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDL0QsQ0FBQztJQUVELGFBQWE7SUFDYixXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7d0dBalFVLGdDQUFnQzs0RkFBaEMsZ0NBQWdDOzs0RkFBaEMsZ0NBQWdDO2tCQUw1QyxTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLG9DQUFvQztvQkFDOUMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIGlucHV0LCBPbkRlc3Ryb3ksIG91dHB1dCwgUmVuZGVyZXIyLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElCb3VuZGluZ0NsaWVudFJlY3QgfSBmcm9tICdAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzJztcbmltcG9ydCB7IGdldERyYWdFdmVudEJ5RWxlbWVudCwgc2V0U3R5bGVzRWxlbWVudCB9IGZyb20gJ0BsaWJzLXVpL3V0aWxzJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCwgdGFrZVVudGlsLCB0YXAsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJTWluaU1hcEZ1bmN0aW9uQ29udHJvbCwgSU1pbmlNYXBTdHlsZUNvbmZpZyB9IGZyb20gJy4vbWluaW1hcC5pbnRlcmZhY2UnO1xuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiBcIltMaWJzVWlDb21wb25lbnRzTWluaW1hcERpcmVjdGl2ZV1cIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c01pbmltYXBEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAvLyAjcmVnaW9uIFBST1BFUlRZXG4gIHByaXZhdGUgaXNTaG93ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSBjb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0RJVicpO1xuICBwcml2YXRlIGltZ0VsZW1lbnQ6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnRElWJyk7XG4gIHByaXZhdGUgdmlld1BvcnRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnRElWJyk7XG4gIHByaXZhdGUgb25EZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgLy8gI2VuZHJlZ2lvblxuXG4gIC8vICNyZWdpb24gSU5QVVRcbiAgcmVhZG9ubHkgY2xhc3NOYW1lRmxhZ0VsZW1lbnRTY2FsZSA9IGlucHV0PHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPignbW8tbWluaW1hcC1mbGFnLWVsZW1lbnQtc2NhbGUnLCB7IHRyYW5zZm9ybTogdmFsID0+IHZhbCA/PyAnbW8tbWluaW1hcC1mbGFnLWVsZW1lbnQtc2NhbGUnIH0pO1xuICByZWFkb25seSB0aW1lclN0YXJ0RHJhd01pbmltYXAgPSBpbnB1dDxudW1iZXIsIG51bWJlciB8IHVuZGVmaW5lZD4oMjUwLCB7IHRyYW5zZm9ybTogdmFsID0+IHZhbCA/PyAyNTAgfSk7XG4gIHJlYWRvbmx5IGVsZW1lbnRTY3JvbGwgPSBpbnB1dDxIVE1MRWxlbWVudD4oKTtcbiAgcmVhZG9ubHkgc3R5bGVSZWN0YW5nbGVFbGVtZW50ID0gaW5wdXQ8SU1pbmlNYXBTdHlsZUNvbmZpZz4oKTtcbiAgcmVhZG9ubHkgc3R5bGVJbWFnZUVsZW1lbnQgPSBpbnB1dDxJTWluaU1hcFN0eWxlQ29uZmlnPigpO1xuICAvLyAjZW5kcmVnaW9uXG5cbiAgLy8gI3JlZ2lvbiBPVVRQVVRcbiAgcmVhZG9ubHkgb3V0RnVuY3Rpb25Db250cm9scyA9IG91dHB1dDxJTWluaU1hcEZ1bmN0aW9uQ29udHJvbD4oKTtcbiAgLy8gI2VuZHJlZ2lvblxuXG4gIC8vICNyZWdpb24gSU5KRUNUXG4gIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZW5kZXJlcjIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgLy8gI2VuZHJlZ2lvblxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBjb25maWcgPSB7IGF0dHJpYnV0ZXM6IHRydWUsIGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9O1xuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIodGhpcy51cGRhdGVNaW5pTWFwLmJpbmQodGhpcykpO1xuXG4gICAgb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLkVsZW1lbnQsIGNvbmZpZyk7XG4gICAgdGhpcy5vbkRlc3Ryb3kuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY29udGFpbmVyRWxlbWVudD8ucmVtb3ZlKCk7XG4gICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgfSk7XG5cbiAgICB0aW1lcih0aGlzLnRpbWVyU3RhcnREcmF3TWluaW1hcCgpKS5waXBlKHRhcCgoKSA9PiB7XG4gICAgICB0aGlzLmltZ0VsZW1lbnRJbml0U3R5bGVBbmRBZGRUb0JvZHkoKTtcbiAgICAgIHRoaXMudmlld1BvcnRFbGVtZW50SW5pdFN0eWxlQW5kQWRkVG9JbWdFbGVtZW50KCk7XG5cbiAgICAgIGNvbnN0IHJlY3RJbWFnZSA9IHRoaXMuaW1nRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgdGhpcy5zZXRQb3NpdGlvblJlY3RhbmdsZShyZWN0SW1hZ2UsIHsgY2xpZW50WDogcmVjdEltYWdlLngsIGNsaWVudFk6IHJlY3RJbWFnZS55IH0pO1xuICAgICAgdGhpcy51cGRhdGVNaW5pTWFwKCk7XG4gICAgICB0aGlzLm91dEZ1bmN0aW9uQ29udHJvbHMuZW1pdCh7XG4gICAgICAgIHNob3c6IHRoaXMuc2hvdy5iaW5kKHRoaXMpLFxuICAgICAgICBoaWRkZW46IHRoaXMuaGlkZGVuLmJpbmQodGhpcyksXG4gICAgICAgIHRvZ2dsZTogdGhpcy50b2dnbGUuYmluZCh0aGlzKVxuICAgICAgfSk7XG4gICAgICB0aGlzLmluaXRFdmVudCgpO1xuICAgIH0pLFxuICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95KSkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvLyAjcmVnaW9uIEZVTkNUSU9OU1xuICBwcml2YXRlIGltZ0VsZW1lbnRJbml0U3R5bGVBbmRBZGRUb0JvZHkoKSB7XG4gICAgY29uc3QgcmVjdEVsZW1lbnQgPSB0aGlzLkVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQuY2xhc3NMaXN0LmFkZCgncG9zaXRpb24tYWJzb2x1dGUnLCAnZC1mbGV4JywgJ2ludmlzaWJsZScsICdsaWJzLXVpLWRpcmVjdGl2ZS1taW5pbWFwLWNvbnRhaW5lcicpO1xuICAgIHRoaXMuaW1nRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdwb3NpdGlvbi1yZWxhdGl2ZScsICd3LTEwMCcsICdoLTEwMCcsICdvdmVyZmxvdy1oaWRkZW4nKTtcbiAgICBzZXRTdHlsZXNFbGVtZW50KHRoaXMuY29udGFpbmVyRWxlbWVudCwge1xuICAgICAgekluZGV4OiBgJHt0aGlzLnN0eWxlSW1hZ2VFbGVtZW50KCk/LnpJbmRleCA/PyAnMTMwMCd9YCxcbiAgICAgIGJhY2tncm91bmQ6IGAke3RoaXMuc3R5bGVJbWFnZUVsZW1lbnQoKT8uYmFja2dyb3VuZCA/PyAnd2hpdGUnfWAsXG4gICAgICBib3JkZXI6IGAke3RoaXMuc3R5bGVJbWFnZUVsZW1lbnQoKT8uYm9yZGVyID8/ICcxcHggc29saWQgI0U2RTdFQSd9YCxcbiAgICAgIGJvcmRlclJhZGl1czogYCR7dGhpcy5zdHlsZUltYWdlRWxlbWVudCgpPy5ib3JkZXJSYWRpdXMgPz8gJzRweCd9YCxcbiAgICAgIHdpZHRoOiBgJHt0aGlzLnN0eWxlSW1hZ2VFbGVtZW50KCk/LndpZHRoID8/ICcxOTgnfXB4YCxcbiAgICAgIGhlaWdodDogYCR7dGhpcy5zdHlsZUltYWdlRWxlbWVudCgpPy5oZWlnaHQgPz8gJzEwOCd9cHhgXG4gICAgfSwgdGhpcy5yZW5kZXJlcjIpO1xuICAgIHRoaXMuc3R5bGVSZWN0VG9wQm90dG9tRWxlbWVudChyZWN0RWxlbWVudCk7XG4gICAgdGhpcy5zdHlsZVJlY3RMZWZ0UmlnaHRFbGVtZW50KHJlY3RFbGVtZW50KTtcbiAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQuYXBwZW5kKHRoaXMuaW1nRWxlbWVudCk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmNvbnRhaW5lckVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSB2aWV3UG9ydEVsZW1lbnRJbml0U3R5bGVBbmRBZGRUb0ltZ0VsZW1lbnQoKSB7XG4gICAgdGhpcy52aWV3UG9ydEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgncG9zaXRpb24tZml4ZWQnLCAnbGlicy11aS1ib3JkZXItcHJpbWFyeS1nZW5lcmFsJywgJ2ludmlzaWJsZScsICdsaWJzLXVpLWRpcmVjdGl2ZS1taW5pbWFwLXJlY3RhbmdsZScpO1xuICAgIHNldFN0eWxlc0VsZW1lbnQodGhpcy52aWV3UG9ydEVsZW1lbnQgYXMgdW5rbm93biBhcyBIVE1MRWxlbWVudCwge1xuICAgICAgekluZGV4OiBgJHt0aGlzLnN0eWxlUmVjdGFuZ2xlRWxlbWVudCgpPy56SW5kZXggPz8gJzEzMDEnfWAsXG4gICAgICBiYWNrZ3JvdW5kOiBgJHt0aGlzLnN0eWxlUmVjdGFuZ2xlRWxlbWVudCgpPy5iYWNrZ3JvdW5kID8/ICd0cmFuc3BhcmVudCd9YCxcbiAgICAgIGJvcmRlcjogYCR7dGhpcy5zdHlsZVJlY3RhbmdsZUVsZW1lbnQoKT8uYm9yZGVyID8/ICdub25lJ31gLFxuICAgICAgYm9yZGVyUmFkaXVzOiBgJHt0aGlzLnN0eWxlUmVjdGFuZ2xlRWxlbWVudCgpPy5ib3JkZXJSYWRpdXMgPz8gJzAnfWAsXG4gICAgICBjdXJzb3I6ICdncmFiJ1xuICAgIH0sIHRoaXMucmVuZGVyZXIyKTtcbiAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy52aWV3UG9ydEVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdHlsZVJlY3RUb3BCb3R0b21FbGVtZW50KHJlY3RFbGVtZW50OiBET01SZWN0KSB7XG4gICAgaWYgKHRoaXMuc3R5bGVJbWFnZUVsZW1lbnQoKT8uYm90dG9tKSB7XG4gICAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQuc3R5bGUuYm90dG9tID0gYCR7dGhpcy5zdHlsZUltYWdlRWxlbWVudCgpPy5ib3R0b219cHhgO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY29udGFpbmVyRWxlbWVudC5zdHlsZS50b3AgPSBgJHt0aGlzLnN0eWxlSW1hZ2VFbGVtZW50KCk/LnRvcCA/PyByZWN0RWxlbWVudC50b3B9cHhgO1xuICB9XG4gIHByaXZhdGUgc3R5bGVSZWN0TGVmdFJpZ2h0RWxlbWVudChyZWN0RWxlbWVudDogRE9NUmVjdCkge1xuICAgIGlmICh0aGlzLnN0eWxlSW1hZ2VFbGVtZW50KCk/LnJpZ2h0KSB7XG4gICAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQuc3R5bGUucmlnaHQgPSBgJHt0aGlzLnN0eWxlSW1hZ2VFbGVtZW50KCk/LnJpZ2h0fXB4YDtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQuc3R5bGUubGVmdCA9IGAke3RoaXMuc3R5bGVJbWFnZUVsZW1lbnQoKT8ubGVmdCA/PyByZWN0RWxlbWVudC5sZWZ0fXB4YDtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEV2ZW50KCkge1xuICAgIGxldCBwcmVFdmVudDogTW91c2VFdmVudDtcbiAgICBjb25zdCBoYW5kbGVyU2Nyb2xsRWxlbWVudCA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgY29uc3QgcmVjdFZpZXdQb3J0ID0gdGhpcy52aWV3UG9ydEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCByZWN0SW1hZ2UgPSB0aGlzLmltZ0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCB7IHJhdGlvWCwgcmF0aW9ZIH0gPSB0aGlzLmdldFJhdGlvKCk7XG5cbiAgICAgIGlmIChldmVudC50eXBlID09PSAnc2Nyb2xsJykge1xuICAgICAgICBldmVudCA9IHtcbiAgICAgICAgICBjbGllbnRYOiB0aGlzLkVsZW1lbnQuc2Nyb2xsTGVmdCAqIHJhdGlvWCArIHJlY3RJbWFnZS5sZWZ0ICsgcmVjdFZpZXdQb3J0LndpZHRoIC8gMixcbiAgICAgICAgICBjbGllbnRZOiB0aGlzLkVsZW1lbnQuc2Nyb2xsVG9wICogcmF0aW9ZICsgcmVjdEltYWdlLnRvcCArIHJlY3RWaWV3UG9ydC5oZWlnaHQgLyAyXG4gICAgICAgIH0gYXMgTW91c2VFdmVudDtcbiAgICAgICAgdGhpcy5zZXRQb3NpdGlvblJlY3RhbmdsZShyZWN0SW1hZ2UsIGV2ZW50KTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChldmVudC50eXBlID09PSAnbW91c2Vkb3duJykge1xuICAgICAgICBwcmVFdmVudCA9IGV2ZW50O1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICghcHJlRXZlbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkaXN0YW5jZVggPSAoZXZlbnQuY2xpZW50WCAtIHByZUV2ZW50LmNsaWVudFgpIC8gcmF0aW9YO1xuICAgICAgY29uc3QgZGlzdGFuY2VZID0gKGV2ZW50LmNsaWVudFkgLSBwcmVFdmVudC5jbGllbnRZKSAvIHJhdGlvWTtcblxuICAgICAgcHJlRXZlbnQgPSBldmVudDtcbiAgICAgIHRoaXMuRWxlbWVudC5zY3JvbGwoe1xuICAgICAgICBsZWZ0OiB0aGlzLkVsZW1lbnQuc2Nyb2xsTGVmdCArIGRpc3RhbmNlWCxcbiAgICAgICAgdG9wOiB0aGlzLkVsZW1lbnQuc2Nyb2xsVG9wICsgZGlzdGFuY2VZXG4gICAgICB9KTtcbiAgICB9O1xuXG5cbiAgICBnZXREcmFnRXZlbnRCeUVsZW1lbnQoeyBlbGVtZW50TW91c2VEb3duOiB0aGlzLnZpZXdQb3J0RWxlbWVudCwgZWxlbWVudE1vdXNlTW92ZTogdGhpcy52aWV3UG9ydEVsZW1lbnQsIG9uRGVzdHJveTogdGhpcy5vbkRlc3Ryb3kgfSkuc3Vic2NyaWJlKGhhbmRsZXJTY3JvbGxFbGVtZW50KTtcbiAgICBmcm9tRXZlbnQ8RXZlbnQ+KHRoaXMuRWxlbWVudCwgJ3Njcm9sbCcpLnBpcGUodGFwKGV2ZW50ID0+IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpKSwgdGFrZVVudGlsKHRoaXMub25EZXN0cm95KSkuc3Vic2NyaWJlKChldmVudCkgPT4gaGFuZGxlclNjcm9sbEVsZW1lbnQoZXZlbnQgYXMgTW91c2VFdmVudCkpO1xuICAgIGZyb21FdmVudDxFdmVudD4od2luZG93LCAncmVzaXplJykucGlwZSh0YXAoZXZlbnQgPT4gZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkpLCB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kpKS5zdWJzY3JpYmUodGhpcy51cGRhdGVNaW5pTWFwLmJpbmQodGhpcykpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSYXRpbygpIHtcbiAgICBjb25zdCByZWN0Q29udGFpbmVyID0gdGhpcy5jb250YWluZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHJhdGlvWCA9IHJlY3RDb250YWluZXIud2lkdGggLyB0aGlzLkVsZW1lbnQuc2Nyb2xsV2lkdGg7XG4gICAgY29uc3QgcmF0aW9ZID0gcmVjdENvbnRhaW5lci5oZWlnaHQgLyB0aGlzLkVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xuXG4gICAgcmV0dXJuIHsgcmF0aW9YOiByYXRpb1gsIHJhdGlvWTogcmF0aW9ZIH07XG4gIH1cbiAgcHJpdmF0ZSBnZXRTY2FsZUVsZW1lbnQoKSB7XG4gICAgbGV0IHsgc2NhbGVYLCBzY2FsZVkgfSA9IHsgc2NhbGVYOiAxLCBzY2FsZVk6IDEgfTtcbiAgICBjb25zdCBlbGVtZW50U2NhbGUgPSB0aGlzLkVsZW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSh0aGlzLmNsYXNzTmFtZUZsYWdFbGVtZW50U2NhbGUoKSk/LlswXSBhcyBIVE1MRWxlbWVudDtcblxuICAgIGlmIChlbGVtZW50U2NhbGUgJiYgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50U2NhbGUpLnRyYW5zZm9ybSkge1xuICAgICAgY29uc3QgbWF0cml4ID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLkVsZW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSh0aGlzLmNsYXNzTmFtZUZsYWdFbGVtZW50U2NhbGUoKSlbMF0pLnRyYW5zZm9ybTtcbiAgICAgIGNvbnN0IG1hdHJpeEFycmF5ID0gbWF0cml4LnJlcGxhY2UoXCJtYXRyaXgoXCIsIFwiXCIpLnNwbGl0KFwiLFwiKTtcblxuICAgICAgc2NhbGVYID0gcGFyc2VGbG9hdChtYXRyaXhBcnJheVswXSk7IC8vIGNvbnZlcnQgZnJvbSBzdHJpbmcgdG8gbnVtYmVyXG4gICAgICBzY2FsZVkgPSBwYXJzZUZsb2F0KG1hdHJpeEFycmF5WzNdKTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBzY2FsZVgsIHNjYWxlWSwgZWxlbWVudFNjYWxlIH07XG4gIH1cblxuICBwcml2YXRlIHJldmVyc2VNdWx0aXBsaWNhdGlvbihhdmcxOiBudW1iZXIsIGF2ZzI6IG51bWJlcikge1xuICAgIGlmIChhdmcyIDw9IDEpIHtcbiAgICAgIHJldHVybiBhdmcxICogYXZnMjtcbiAgICB9XG5cbiAgICByZXR1cm4gYXZnMSAvIGF2ZzI7XG4gIH1cblxuICBwcml2YXRlIHNldFBvc2l0aW9uUmVjdGFuZ2xlKHJlY3RJbWFnZTogSUJvdW5kaW5nQ2xpZW50UmVjdCwgbW91c2VQb3NpdGlvbjogeyBjbGllbnRYOiBudW1iZXIsIGNsaWVudFk6IG51bWJlciB9KSB7XG4gICAgY29uc3QgeyByYXRpb1gsIHJhdGlvWSB9ID0gdGhpcy5nZXRSYXRpbygpO1xuICAgIGNvbnN0IHsgc2NhbGVYLCBzY2FsZVkgfSA9IHRoaXMuZ2V0U2NhbGVFbGVtZW50KCk7XG5cbiAgICBjb25zdCB3aWR0aCA9IHRoaXMuRWxlbWVudC5jbGllbnRXaWR0aCAqIHRoaXMucmV2ZXJzZU11bHRpcGxpY2F0aW9uKHJhdGlvWCwgc2NhbGVYKTtcbiAgICBjb25zdCBoZWlnaHQgPSB0aGlzLkVsZW1lbnQuY2xpZW50SGVpZ2h0ICogdGhpcy5yZXZlcnNlTXVsdGlwbGljYXRpb24ocmF0aW9ZLCBzY2FsZVkpO1xuICAgIGxldCBsZWZ0U3ZnID0gbW91c2VQb3NpdGlvbi5jbGllbnRYIC0gd2lkdGggLyAyO1xuICAgIGxldCB0b3BTdmcgPSBtb3VzZVBvc2l0aW9uLmNsaWVudFkgLSBoZWlnaHQgLyAyO1xuXG4gICAgaWYgKGxlZnRTdmcgPCByZWN0SW1hZ2UubGVmdCkge1xuICAgICAgbGVmdFN2ZyA9IHJlY3RJbWFnZS5sZWZ0O1xuICAgIH1cbiAgICBpZiAobGVmdFN2ZyArIHdpZHRoID49IHJlY3RJbWFnZS5sZWZ0ICsgcmVjdEltYWdlLndpZHRoKSB7XG4gICAgICBsZWZ0U3ZnID0gcmVjdEltYWdlLmxlZnQgKyByZWN0SW1hZ2Uud2lkdGggLSB3aWR0aDtcbiAgICB9XG4gICAgaWYgKHRvcFN2ZyA8IHJlY3RJbWFnZS50b3ApIHtcbiAgICAgIHRvcFN2ZyA9IHJlY3RJbWFnZS50b3A7XG4gICAgfVxuICAgIGlmICh0b3BTdmcgKyBoZWlnaHQgPj0gcmVjdEltYWdlLnRvcCArIHJlY3RJbWFnZS5oZWlnaHQpIHtcbiAgICAgIHRvcFN2ZyA9IHJlY3RJbWFnZS50b3AgKyByZWN0SW1hZ2UuaGVpZ2h0IC0gaGVpZ2h0O1xuICAgIH1cbiAgICB0aGlzLnZpZXdQb3J0RWxlbWVudC5zdHlsZS5sZWZ0ID0gYCR7bGVmdFN2Z31weGA7XG4gICAgdGhpcy52aWV3UG9ydEVsZW1lbnQuc3R5bGUudG9wID0gYCR7dG9wU3ZnfXB4YDtcbiAgICB0aGlzLnZpZXdQb3J0RWxlbWVudC5zdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YDtcbiAgICB0aGlzLnZpZXdQb3J0RWxlbWVudC5zdHlsZS5oZWlnaHQgPSBgJHtNYXRoLnJvdW5kKGhlaWdodCl9cHhgO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVNaW5pTWFwKCkge1xuICAgIHRoaXMuaW1nRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZD8ucmVtb3ZlKCk7XG4gICAgbGV0IHsgcmF0aW9YLCByYXRpb1kgfSA9IHRoaXMuZ2V0UmF0aW8oKTtcbiAgICBjb25zdCBub2RlQ2xvbmUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbG9uZU5vZGUodHJ1ZSkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgeyBzY2FsZVgsIHNjYWxlWSB9ID0gdGhpcy5nZXRTY2FsZUVsZW1lbnQoKTtcblxuICAgIHJhdGlvWCA9IHRoaXMucmV2ZXJzZU11bHRpcGxpY2F0aW9uKHJhdGlvWCwgc2NhbGVYKTtcbiAgICByYXRpb1kgPSB0aGlzLnJldmVyc2VNdWx0aXBsaWNhdGlvbihyYXRpb1ksIHNjYWxlWSk7XG4gICAgbm9kZUNsb25lLnN0eWxlLnRyYW5zZm9ybSA9IGBzY2FsZSgke3JhdGlvWH0sJHtyYXRpb1l9KWA7XG4gICAgbm9kZUNsb25lLmNsYXNzTGlzdC5hZGQoJ292ZXJmbG93LXVuc2V0Jyk7XG4gICAgdGhpcy5pbWdFbGVtZW50LmFwcGVuZChub2RlQ2xvbmUpO1xuXG4gICAgY29uc3QgdHJhbnNsYXRlWCA9IChub2RlQ2xvbmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCAtIHRoaXMuaW1nRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0KSAvIHJhdGlvWDtcbiAgICBjb25zdCB0cmFuc2xhdGVZID0gKG5vZGVDbG9uZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgLSB0aGlzLmltZ0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wKSAvIHJhdGlvWTtcbiAgICBjb25zdCB2aWV3UG9ydEVsZW1lbnQgPSB0aGlzLnZpZXdQb3J0RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCByZWN0SW1hZ2UgPSB0aGlzLmltZ0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgZXZlbnQgPSB7XG4gICAgICBjbGllbnRYOiB0aGlzLkVsZW1lbnQuc2Nyb2xsTGVmdCAqIHJhdGlvWCArIHJlY3RJbWFnZS5sZWZ0ICsgdmlld1BvcnRFbGVtZW50LndpZHRoIC8gMixcbiAgICAgIGNsaWVudFk6IHRoaXMuRWxlbWVudC5zY3JvbGxUb3AgKiByYXRpb1kgKyByZWN0SW1hZ2UudG9wICsgdmlld1BvcnRFbGVtZW50LmhlaWdodCAvIDJcbiAgICB9IGFzIE1vdXNlRXZlbnQ7XG5cbiAgICBub2RlQ2xvbmUuc3R5bGUudHJhbnNmb3JtID0gYHNjYWxlKCR7cmF0aW9YfSwke3JhdGlvWX0pIHRyYW5zbGF0ZSgtJHt0cmFuc2xhdGVYfXB4LC0ke3RyYW5zbGF0ZVl9cHgpYDtcbiAgICB0aGlzLnNldFBvc2l0aW9uUmVjdGFuZ2xlKHJlY3RJbWFnZSwgZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGUoKSB7XG4gICAgaWYgKHRoaXMuaXNTaG93KCkpIHtcbiAgICAgIHRoaXMuaGlkZGVuKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNob3coKTtcbiAgfVxuXG4gIHByaXZhdGUgaGlkZGVuKCkge1xuICAgIHRoaXMuaXNTaG93LnNldChmYWxzZSk7XG4gICAgdGhpcy5jb250YWluZXJFbGVtZW50Py5jbGFzc0xpc3QuYWRkKCdpbnZpc2libGUnKTtcbiAgICB0aGlzLnZpZXdQb3J0RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdpbnZpc2libGUnKTtcbiAgfVxuXG4gIHByaXZhdGUgc2hvdygpIHtcbiAgICB0aGlzLmlzU2hvdy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5jb250YWluZXJFbGVtZW50Py5jbGFzc0xpc3QucmVtb3ZlKCdpbnZpc2libGUnKTtcbiAgICB0aGlzLnZpZXdQb3J0RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdpbnZpc2libGUnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRTY3JvbGwoKSB8fCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIC8vICNlbmRyZWdpb25cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5vbkRlc3Ryb3kubmV4dCgpO1xuICAgIHRoaXMub25EZXN0cm95LmNvbXBsZXRlKCk7XG4gIH1cbn0iXX0=
@@ -50,8 +50,8 @@ class LibsUiComponentsMinimapDirective {
50
50
  // #region FUNCTIONS
51
51
  imgElementInitStyleAndAddToBody() {
52
52
  const rectElement = this.Element.getBoundingClientRect();
53
- this.containerElement.classList.add('position-absolute', 'd-flex', 'invisible', 'mo-lib-directive-minimap-container');
54
- this.imgElement.classList.add('position-relative', 'w-100', 'h-100', 'mo-lib-overflow-hidden');
53
+ this.containerElement.classList.add('position-absolute', 'd-flex', 'invisible', 'libs-ui-directive-minimap-container');
54
+ this.imgElement.classList.add('position-relative', 'w-100', 'h-100', 'overflow-hidden');
55
55
  setStylesElement(this.containerElement, {
56
56
  zIndex: `${this.styleImageElement()?.zIndex ?? '1300'}`,
57
57
  background: `${this.styleImageElement()?.background ?? 'white'}`,
@@ -66,7 +66,7 @@ class LibsUiComponentsMinimapDirective {
66
66
  document.body.appendChild(this.containerElement);
67
67
  }
68
68
  viewPortElementInitStyleAndAddToImgElement() {
69
- this.viewPortElement.classList.add('position-fixed', 'mo-lib-border-primary-general', 'invisible', 'mo-lib-directive-minimap-rectangle');
69
+ this.viewPortElement.classList.add('position-fixed', 'libs-ui-border-primary-general', 'invisible', 'libs-ui-directive-minimap-rectangle');
70
70
  setStylesElement(this.viewPortElement, {
71
71
  zIndex: `${this.styleRectangleElement()?.zIndex ?? '1301'}`,
72
72
  background: `${this.styleRectangleElement()?.background ?? 'transparent'}`,
@@ -178,7 +178,7 @@ class LibsUiComponentsMinimapDirective {
178
178
  ratioX = this.reverseMultiplication(ratioX, scaleX);
179
179
  ratioY = this.reverseMultiplication(ratioY, scaleY);
180
180
  nodeClone.style.transform = `scale(${ratioX},${ratioY})`;
181
- nodeClone.classList.add('mo-lib-overflow-unset');
181
+ nodeClone.classList.add('overflow-unset');
182
182
  this.imgElement.append(nodeClone);
183
183
  const translateX = (nodeClone.getBoundingClientRect().left - this.imgElement.getBoundingClientRect().left) / ratioX;
184
184
  const translateY = (nodeClone.getBoundingClientRect().top - this.imgElement.getBoundingClientRect().top) / ratioY;
@@ -1 +1 @@
1
- {"version":3,"file":"libs-ui-components-minimap.mjs","sources":["../../../../../libs-ui/components/minimap/src/minimap.directive.ts","../../../../../libs-ui/components/minimap/src/libs-ui-components-minimap.ts"],"sourcesContent":["import { AfterViewInit, Directive, ElementRef, inject, input, OnDestroy, output, Renderer2, signal } from '@angular/core';\nimport { IBoundingClientRect } from '@libs-ui/interfaces-types';\nimport { getDragEventByElement, setStylesElement } from '@libs-ui/utils';\nimport { fromEvent, Subject, takeUntil, tap, timer } from 'rxjs';\nimport { IMiniMapFunctionControl, IMiniMapStyleConfig } from './minimap.interface';\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: \"[LibsUiComponentsMinimapDirective]\",\n standalone: true,\n})\nexport class LibsUiComponentsMinimapDirective implements AfterViewInit, OnDestroy {\n // #region PROPERTY\n private isShow = signal<boolean>(false);\n private containerElement: HTMLElement = document.createElement('DIV');\n private imgElement: HTMLElement = document.createElement('DIV');\n private viewPortElement = document.createElement('DIV');\n private onDestroy = new Subject<void>();\n // #endregion\n\n // #region INPUT\n readonly classNameFlagElementScale = input<string, string | undefined>('mo-minimap-flag-element-scale', { transform: val => val ?? 'mo-minimap-flag-element-scale' });\n readonly timerStartDrawMinimap = input<number, number | undefined>(250, { transform: val => val ?? 250 });\n readonly elementScroll = input<HTMLElement>();\n readonly styleRectangleElement = input<IMiniMapStyleConfig>();\n readonly styleImageElement = input<IMiniMapStyleConfig>();\n // #endregion\n\n // #region OUTPUT\n readonly outFunctionControls = output<IMiniMapFunctionControl>();\n // #endregion\n\n // #region INJECT\n private elementRef = inject(ElementRef);\n private renderer2 = inject(Renderer2);\n // #endregion\n\n ngAfterViewInit(): void {\n const config = { attributes: true, childList: true, subtree: true };\n const observer = new MutationObserver(this.updateMiniMap.bind(this));\n\n observer.observe(this.Element, config);\n this.onDestroy.subscribe(() => {\n this.containerElement?.remove();\n observer.disconnect();\n });\n\n timer(this.timerStartDrawMinimap()).pipe(tap(() => {\n this.imgElementInitStyleAndAddToBody();\n this.viewPortElementInitStyleAndAddToImgElement();\n\n const rectImage = this.imgElement.getBoundingClientRect();\n\n this.setPositionRectangle(rectImage, { clientX: rectImage.x, clientY: rectImage.y });\n this.updateMiniMap();\n this.outFunctionControls.emit({\n show: this.show.bind(this),\n hidden: this.hidden.bind(this),\n toggle: this.toggle.bind(this)\n });\n this.initEvent();\n }),\n takeUntil(this.onDestroy)).subscribe();\n }\n\n // #region FUNCTIONS\n private imgElementInitStyleAndAddToBody() {\n const rectElement = this.Element.getBoundingClientRect();\n\n this.containerElement.classList.add('position-absolute', 'd-flex', 'invisible', 'mo-lib-directive-minimap-container');\n this.imgElement.classList.add('position-relative', 'w-100', 'h-100', 'mo-lib-overflow-hidden');\n setStylesElement(this.containerElement, {\n zIndex: `${this.styleImageElement()?.zIndex ?? '1300'}`,\n background: `${this.styleImageElement()?.background ?? 'white'}`,\n border: `${this.styleImageElement()?.border ?? '1px solid #E6E7EA'}`,\n borderRadius: `${this.styleImageElement()?.borderRadius ?? '4px'}`,\n width: `${this.styleImageElement()?.width ?? '198'}px`,\n height: `${this.styleImageElement()?.height ?? '108'}px`\n }, this.renderer2);\n this.styleRectTopBottomElement(rectElement);\n this.styleRectLeftRightElement(rectElement);\n this.containerElement.append(this.imgElement);\n document.body.appendChild(this.containerElement);\n }\n\n private viewPortElementInitStyleAndAddToImgElement() {\n this.viewPortElement.classList.add('position-fixed', 'mo-lib-border-primary-general', 'invisible', 'mo-lib-directive-minimap-rectangle');\n setStylesElement(this.viewPortElement as unknown as HTMLElement, {\n zIndex: `${this.styleRectangleElement()?.zIndex ?? '1301'}`,\n background: `${this.styleRectangleElement()?.background ?? 'transparent'}`,\n border: `${this.styleRectangleElement()?.border ?? 'none'}`,\n borderRadius: `${this.styleRectangleElement()?.borderRadius ?? '0'}`,\n cursor: 'grab'\n }, this.renderer2);\n this.containerElement.appendChild(this.viewPortElement);\n }\n\n private styleRectTopBottomElement(rectElement: DOMRect) {\n if (this.styleImageElement()?.bottom) {\n this.containerElement.style.bottom = `${this.styleImageElement()?.bottom}px`;\n\n return;\n }\n this.containerElement.style.top = `${this.styleImageElement()?.top ?? rectElement.top}px`;\n }\n private styleRectLeftRightElement(rectElement: DOMRect) {\n if (this.styleImageElement()?.right) {\n this.containerElement.style.right = `${this.styleImageElement()?.right}px`;\n\n return;\n }\n this.containerElement.style.left = `${this.styleImageElement()?.left ?? rectElement.left}px`;\n }\n\n private initEvent() {\n let preEvent: MouseEvent;\n const handlerScrollElement = (event: MouseEvent) => {\n const rectViewPort = this.viewPortElement.getBoundingClientRect();\n const rectImage = this.imgElement.getBoundingClientRect();\n const { ratioX, ratioY } = this.getRatio();\n\n if (event.type === 'scroll') {\n event = {\n clientX: this.Element.scrollLeft * ratioX + rectImage.left + rectViewPort.width / 2,\n clientY: this.Element.scrollTop * ratioY + rectImage.top + rectViewPort.height / 2\n } as MouseEvent;\n this.setPositionRectangle(rectImage, event);\n\n return;\n }\n\n if (event.type === 'mousedown') {\n preEvent = event;\n\n return;\n }\n if (!preEvent) {\n return;\n }\n\n const distanceX = (event.clientX - preEvent.clientX) / ratioX;\n const distanceY = (event.clientY - preEvent.clientY) / ratioY;\n\n preEvent = event;\n this.Element.scroll({\n left: this.Element.scrollLeft + distanceX,\n top: this.Element.scrollTop + distanceY\n });\n };\n\n \n getDragEventByElement({elementMouseDown:this.viewPortElement,elementMouseMove:this.viewPortElement,onDestroy:this.onDestroy}).subscribe(handlerScrollElement);\n fromEvent<Event>(this.Element, 'scroll').pipe(tap(event => event.stopPropagation()), takeUntil(this.onDestroy)).subscribe((event) => handlerScrollElement(event as MouseEvent));\n fromEvent<Event>(window, 'resize').pipe(tap(event => event.stopPropagation()), takeUntil(this.onDestroy)).subscribe(this.updateMiniMap.bind(this));\n }\n\n private getRatio() {\n const rectContainer = this.containerElement.getBoundingClientRect();\n const ratioX = rectContainer.width / this.Element.scrollWidth;\n const ratioY = rectContainer.height / this.Element.scrollHeight;\n\n return { ratioX: ratioX, ratioY: ratioY };\n }\n private getScaleElement() {\n let { scaleX, scaleY } = { scaleX: 1, scaleY: 1 };\n const elementScale = this.Element.getElementsByClassName(this.classNameFlagElementScale())?.[0] as HTMLElement;\n\n if (elementScale && getComputedStyle(elementScale).transform) {\n const matrix = getComputedStyle(this.Element.getElementsByClassName(this.classNameFlagElementScale())[0]).transform;\n const matrixArray = matrix.replace(\"matrix(\", \"\").split(\",\");\n\n scaleX = parseFloat(matrixArray[0]); // convert from string to number\n scaleY = parseFloat(matrixArray[3]);\n }\n\n return { scaleX, scaleY, elementScale };\n }\n\n private reverseMultiplication(avg1: number, avg2: number) {\n if (avg2 <= 1) {\n return avg1 * avg2;\n }\n\n return avg1 / avg2;\n }\n\n private setPositionRectangle(rectImage: IBoundingClientRect, mousePosition: { clientX: number, clientY: number }) {\n const { ratioX, ratioY } = this.getRatio();\n const { scaleX, scaleY } = this.getScaleElement();\n\n const width = this.Element.clientWidth * this.reverseMultiplication(ratioX, scaleX);\n const height = this.Element.clientHeight * this.reverseMultiplication(ratioY, scaleY);\n let leftSvg = mousePosition.clientX - width / 2;\n let topSvg = mousePosition.clientY - height / 2;\n\n if (leftSvg < rectImage.left) {\n leftSvg = rectImage.left;\n }\n if (leftSvg + width >= rectImage.left + rectImage.width) {\n leftSvg = rectImage.left + rectImage.width - width;\n }\n if (topSvg < rectImage.top) {\n topSvg = rectImage.top;\n }\n if (topSvg + height >= rectImage.top + rectImage.height) {\n topSvg = rectImage.top + rectImage.height - height;\n }\n this.viewPortElement.style.left = `${leftSvg}px`;\n this.viewPortElement.style.top = `${topSvg}px`;\n this.viewPortElement.style.width = `${width}px`;\n this.viewPortElement.style.height = `${Math.round(height)}px`;\n }\n\n private updateMiniMap() {\n this.imgElement.firstElementChild?.remove();\n let { ratioX, ratioY } = this.getRatio();\n const nodeClone = this.elementRef.nativeElement.cloneNode(true) as HTMLElement;\n const { scaleX, scaleY } = this.getScaleElement();\n\n ratioX = this.reverseMultiplication(ratioX, scaleX);\n ratioY = this.reverseMultiplication(ratioY, scaleY);\n nodeClone.style.transform = `scale(${ratioX},${ratioY})`;\n nodeClone.classList.add('mo-lib-overflow-unset');\n this.imgElement.append(nodeClone);\n\n const translateX = (nodeClone.getBoundingClientRect().left - this.imgElement.getBoundingClientRect().left) / ratioX;\n const translateY = (nodeClone.getBoundingClientRect().top - this.imgElement.getBoundingClientRect().top) / ratioY;\n const viewPortElement = this.viewPortElement.getBoundingClientRect();\n const rectImage = this.imgElement.getBoundingClientRect();\n const event = {\n clientX: this.Element.scrollLeft * ratioX + rectImage.left + viewPortElement.width / 2,\n clientY: this.Element.scrollTop * ratioY + rectImage.top + viewPortElement.height / 2\n } as MouseEvent;\n\n nodeClone.style.transform = `scale(${ratioX},${ratioY}) translate(-${translateX}px,-${translateY}px)`;\n this.setPositionRectangle(rectImage, event);\n }\n\n private toggle() {\n if (this.isShow()) {\n this.hidden();\n\n return;\n }\n\n this.show();\n }\n\n private hidden() {\n this.isShow.set(false);\n this.containerElement?.classList.add('invisible');\n this.viewPortElement.classList.add('invisible');\n }\n\n private show() {\n this.isShow.set(true);\n this.containerElement?.classList.remove('invisible');\n this.viewPortElement.classList.remove('invisible');\n }\n\n private get Element(): HTMLElement {\n return this.elementScroll() || this.elementRef.nativeElement;\n }\n\n // #endregion\n ngOnDestroy(): void {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\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-minimap.mjs","sources":["../../../../../libs-ui/components/minimap/src/minimap.directive.ts","../../../../../libs-ui/components/minimap/src/libs-ui-components-minimap.ts"],"sourcesContent":["import { AfterViewInit, Directive, ElementRef, inject, input, OnDestroy, output, Renderer2, signal } from '@angular/core';\nimport { IBoundingClientRect } from '@libs-ui/interfaces-types';\nimport { getDragEventByElement, setStylesElement } from '@libs-ui/utils';\nimport { fromEvent, Subject, takeUntil, tap, timer } from 'rxjs';\nimport { IMiniMapFunctionControl, IMiniMapStyleConfig } from './minimap.interface';\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: \"[LibsUiComponentsMinimapDirective]\",\n standalone: true,\n})\nexport class LibsUiComponentsMinimapDirective implements AfterViewInit, OnDestroy {\n // #region PROPERTY\n private isShow = signal<boolean>(false);\n private containerElement: HTMLElement = document.createElement('DIV');\n private imgElement: HTMLElement = document.createElement('DIV');\n private viewPortElement = document.createElement('DIV');\n private onDestroy = new Subject<void>();\n // #endregion\n\n // #region INPUT\n readonly classNameFlagElementScale = input<string, string | undefined>('mo-minimap-flag-element-scale', { transform: val => val ?? 'mo-minimap-flag-element-scale' });\n readonly timerStartDrawMinimap = input<number, number | undefined>(250, { transform: val => val ?? 250 });\n readonly elementScroll = input<HTMLElement>();\n readonly styleRectangleElement = input<IMiniMapStyleConfig>();\n readonly styleImageElement = input<IMiniMapStyleConfig>();\n // #endregion\n\n // #region OUTPUT\n readonly outFunctionControls = output<IMiniMapFunctionControl>();\n // #endregion\n\n // #region INJECT\n private elementRef = inject(ElementRef);\n private renderer2 = inject(Renderer2);\n // #endregion\n\n ngAfterViewInit(): void {\n const config = { attributes: true, childList: true, subtree: true };\n const observer = new MutationObserver(this.updateMiniMap.bind(this));\n\n observer.observe(this.Element, config);\n this.onDestroy.subscribe(() => {\n this.containerElement?.remove();\n observer.disconnect();\n });\n\n timer(this.timerStartDrawMinimap()).pipe(tap(() => {\n this.imgElementInitStyleAndAddToBody();\n this.viewPortElementInitStyleAndAddToImgElement();\n\n const rectImage = this.imgElement.getBoundingClientRect();\n\n this.setPositionRectangle(rectImage, { clientX: rectImage.x, clientY: rectImage.y });\n this.updateMiniMap();\n this.outFunctionControls.emit({\n show: this.show.bind(this),\n hidden: this.hidden.bind(this),\n toggle: this.toggle.bind(this)\n });\n this.initEvent();\n }),\n takeUntil(this.onDestroy)).subscribe();\n }\n\n // #region FUNCTIONS\n private imgElementInitStyleAndAddToBody() {\n const rectElement = this.Element.getBoundingClientRect();\n\n this.containerElement.classList.add('position-absolute', 'd-flex', 'invisible', 'libs-ui-directive-minimap-container');\n this.imgElement.classList.add('position-relative', 'w-100', 'h-100', 'overflow-hidden');\n setStylesElement(this.containerElement, {\n zIndex: `${this.styleImageElement()?.zIndex ?? '1300'}`,\n background: `${this.styleImageElement()?.background ?? 'white'}`,\n border: `${this.styleImageElement()?.border ?? '1px solid #E6E7EA'}`,\n borderRadius: `${this.styleImageElement()?.borderRadius ?? '4px'}`,\n width: `${this.styleImageElement()?.width ?? '198'}px`,\n height: `${this.styleImageElement()?.height ?? '108'}px`\n }, this.renderer2);\n this.styleRectTopBottomElement(rectElement);\n this.styleRectLeftRightElement(rectElement);\n this.containerElement.append(this.imgElement);\n document.body.appendChild(this.containerElement);\n }\n\n private viewPortElementInitStyleAndAddToImgElement() {\n this.viewPortElement.classList.add('position-fixed', 'libs-ui-border-primary-general', 'invisible', 'libs-ui-directive-minimap-rectangle');\n setStylesElement(this.viewPortElement as unknown as HTMLElement, {\n zIndex: `${this.styleRectangleElement()?.zIndex ?? '1301'}`,\n background: `${this.styleRectangleElement()?.background ?? 'transparent'}`,\n border: `${this.styleRectangleElement()?.border ?? 'none'}`,\n borderRadius: `${this.styleRectangleElement()?.borderRadius ?? '0'}`,\n cursor: 'grab'\n }, this.renderer2);\n this.containerElement.appendChild(this.viewPortElement);\n }\n\n private styleRectTopBottomElement(rectElement: DOMRect) {\n if (this.styleImageElement()?.bottom) {\n this.containerElement.style.bottom = `${this.styleImageElement()?.bottom}px`;\n\n return;\n }\n this.containerElement.style.top = `${this.styleImageElement()?.top ?? rectElement.top}px`;\n }\n private styleRectLeftRightElement(rectElement: DOMRect) {\n if (this.styleImageElement()?.right) {\n this.containerElement.style.right = `${this.styleImageElement()?.right}px`;\n\n return;\n }\n this.containerElement.style.left = `${this.styleImageElement()?.left ?? rectElement.left}px`;\n }\n\n private initEvent() {\n let preEvent: MouseEvent;\n const handlerScrollElement = (event: MouseEvent) => {\n const rectViewPort = this.viewPortElement.getBoundingClientRect();\n const rectImage = this.imgElement.getBoundingClientRect();\n const { ratioX, ratioY } = this.getRatio();\n\n if (event.type === 'scroll') {\n event = {\n clientX: this.Element.scrollLeft * ratioX + rectImage.left + rectViewPort.width / 2,\n clientY: this.Element.scrollTop * ratioY + rectImage.top + rectViewPort.height / 2\n } as MouseEvent;\n this.setPositionRectangle(rectImage, event);\n\n return;\n }\n\n if (event.type === 'mousedown') {\n preEvent = event;\n\n return;\n }\n if (!preEvent) {\n return;\n }\n\n const distanceX = (event.clientX - preEvent.clientX) / ratioX;\n const distanceY = (event.clientY - preEvent.clientY) / ratioY;\n\n preEvent = event;\n this.Element.scroll({\n left: this.Element.scrollLeft + distanceX,\n top: this.Element.scrollTop + distanceY\n });\n };\n\n\n getDragEventByElement({ elementMouseDown: this.viewPortElement, elementMouseMove: this.viewPortElement, onDestroy: this.onDestroy }).subscribe(handlerScrollElement);\n fromEvent<Event>(this.Element, 'scroll').pipe(tap(event => event.stopPropagation()), takeUntil(this.onDestroy)).subscribe((event) => handlerScrollElement(event as MouseEvent));\n fromEvent<Event>(window, 'resize').pipe(tap(event => event.stopPropagation()), takeUntil(this.onDestroy)).subscribe(this.updateMiniMap.bind(this));\n }\n\n private getRatio() {\n const rectContainer = this.containerElement.getBoundingClientRect();\n const ratioX = rectContainer.width / this.Element.scrollWidth;\n const ratioY = rectContainer.height / this.Element.scrollHeight;\n\n return { ratioX: ratioX, ratioY: ratioY };\n }\n private getScaleElement() {\n let { scaleX, scaleY } = { scaleX: 1, scaleY: 1 };\n const elementScale = this.Element.getElementsByClassName(this.classNameFlagElementScale())?.[0] as HTMLElement;\n\n if (elementScale && getComputedStyle(elementScale).transform) {\n const matrix = getComputedStyle(this.Element.getElementsByClassName(this.classNameFlagElementScale())[0]).transform;\n const matrixArray = matrix.replace(\"matrix(\", \"\").split(\",\");\n\n scaleX = parseFloat(matrixArray[0]); // convert from string to number\n scaleY = parseFloat(matrixArray[3]);\n }\n\n return { scaleX, scaleY, elementScale };\n }\n\n private reverseMultiplication(avg1: number, avg2: number) {\n if (avg2 <= 1) {\n return avg1 * avg2;\n }\n\n return avg1 / avg2;\n }\n\n private setPositionRectangle(rectImage: IBoundingClientRect, mousePosition: { clientX: number, clientY: number }) {\n const { ratioX, ratioY } = this.getRatio();\n const { scaleX, scaleY } = this.getScaleElement();\n\n const width = this.Element.clientWidth * this.reverseMultiplication(ratioX, scaleX);\n const height = this.Element.clientHeight * this.reverseMultiplication(ratioY, scaleY);\n let leftSvg = mousePosition.clientX - width / 2;\n let topSvg = mousePosition.clientY - height / 2;\n\n if (leftSvg < rectImage.left) {\n leftSvg = rectImage.left;\n }\n if (leftSvg + width >= rectImage.left + rectImage.width) {\n leftSvg = rectImage.left + rectImage.width - width;\n }\n if (topSvg < rectImage.top) {\n topSvg = rectImage.top;\n }\n if (topSvg + height >= rectImage.top + rectImage.height) {\n topSvg = rectImage.top + rectImage.height - height;\n }\n this.viewPortElement.style.left = `${leftSvg}px`;\n this.viewPortElement.style.top = `${topSvg}px`;\n this.viewPortElement.style.width = `${width}px`;\n this.viewPortElement.style.height = `${Math.round(height)}px`;\n }\n\n private updateMiniMap() {\n this.imgElement.firstElementChild?.remove();\n let { ratioX, ratioY } = this.getRatio();\n const nodeClone = this.elementRef.nativeElement.cloneNode(true) as HTMLElement;\n const { scaleX, scaleY } = this.getScaleElement();\n\n ratioX = this.reverseMultiplication(ratioX, scaleX);\n ratioY = this.reverseMultiplication(ratioY, scaleY);\n nodeClone.style.transform = `scale(${ratioX},${ratioY})`;\n nodeClone.classList.add('overflow-unset');\n this.imgElement.append(nodeClone);\n\n const translateX = (nodeClone.getBoundingClientRect().left - this.imgElement.getBoundingClientRect().left) / ratioX;\n const translateY = (nodeClone.getBoundingClientRect().top - this.imgElement.getBoundingClientRect().top) / ratioY;\n const viewPortElement = this.viewPortElement.getBoundingClientRect();\n const rectImage = this.imgElement.getBoundingClientRect();\n const event = {\n clientX: this.Element.scrollLeft * ratioX + rectImage.left + viewPortElement.width / 2,\n clientY: this.Element.scrollTop * ratioY + rectImage.top + viewPortElement.height / 2\n } as MouseEvent;\n\n nodeClone.style.transform = `scale(${ratioX},${ratioY}) translate(-${translateX}px,-${translateY}px)`;\n this.setPositionRectangle(rectImage, event);\n }\n\n private toggle() {\n if (this.isShow()) {\n this.hidden();\n\n return;\n }\n\n this.show();\n }\n\n private hidden() {\n this.isShow.set(false);\n this.containerElement?.classList.add('invisible');\n this.viewPortElement.classList.add('invisible');\n }\n\n private show() {\n this.isShow.set(true);\n this.containerElement?.classList.remove('invisible');\n this.viewPortElement.classList.remove('invisible');\n }\n\n private get Element(): HTMLElement {\n return this.elementScroll() || this.elementRef.nativeElement;\n }\n\n // #endregion\n ngOnDestroy(): void {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\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,10 +1,10 @@
1
1
  {
2
2
  "name": "@libs-ui/components-minimap",
3
- "version": "0.2.200",
3
+ "version": "0.2.203",
4
4
  "peerDependencies": {
5
5
  "@angular/core": "^18.2.0",
6
- "@libs-ui/interfaces-types": "^0.2.200",
7
- "@libs-ui/utils": "^0.2.200",
6
+ "@libs-ui/interfaces-types": "^0.2.203",
7
+ "@libs-ui/utils": "^0.2.203",
8
8
  "rxjs": "~7.8.0"
9
9
  },
10
10
  "sideEffects": false,