otimus-library 0.2.51 → 0.2.53

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.
@@ -26,11 +26,11 @@ export class OcTabsComponent {
26
26
  this.ocClick.emit();
27
27
  }
28
28
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcTabsComponent, deps: [{ token: i1.StyleThemeService }], target: i0.ɵɵFactoryTarget.Component }); }
29
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: OcTabsComponent, isStandalone: true, selector: "oc-tabs", inputs: { ocStyle: "ocStyle" }, outputs: { ocClick: "ocClick" }, queries: [{ propertyName: "ocTabs", predicate: OcTabComponent }], ngImport: i0, template: "<div class=\"oc-tabs\" [ngClass]=\"{\n shui: ocStyle === 'shui'\n}\">\n <div class=\"row\">\n @for(tab of ocTabs; track $index) {\n <button [ngClass]=\"{\n 'oc-selected': tab.tabIndex === activeTabIndex\n }\" class=\"oc-tab\" (click)=\"selectTab(tab.tabIndex); \n handleTabClick()\" type=\"button\">{{tab.ocTitle}}</button>\n }\n </div>\n <ng-content></ng-content>\n</div>", styles: [".oc-tabs .row{display:flex;gap:1px}.oc-tab{border:none;padding:.75rem 1.3rem;cursor:pointer;border-radius:8px 8px 0 0;background-color:transparent;border-bottom:2px solid #f7f7f7;transition:.15s ease;color:#7e8485}.oc-tab:hover{background-color:#f8f9ff}.oc-tab.oc-selected{border-bottom:2px solid #5505a2;background-color:#f8f9ff;color:#5505a2}.row{max-width:100%;transform:rotateX(180deg);overflow-x:auto}.row .oc-tab{transform:rotateX(180deg)}::-webkit-scrollbar{height:3px}.oc-tabs.shui .row{display:flex;gap:1rem}.oc-tabs.shui .oc-tab{border-bottom:3px solid transparent;font-weight:600;color:#00000080}.oc-tabs.shui .oc-tab:hover{background-color:transparent;border-bottom:3px solid #0169b2}.oc-tabs.shui .oc-tab.oc-selected{border-bottom:3px solid #0169b2;background-color:transparent;color:#00000080}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
29
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: OcTabsComponent, isStandalone: true, selector: "oc-tabs", inputs: { ocStyle: "ocStyle" }, outputs: { ocClick: "ocClick" }, queries: [{ propertyName: "ocTabs", predicate: OcTabComponent }], ngImport: i0, template: "<div class=\"oc-tabs\" [ngClass]=\"{\n shui: ocStyle === 'shui'\n}\">\n <div class=\"row\">\n @for(tab of ocTabs; track $index) {\n <button [ngClass]=\"{\n 'oc-selected': tab.tabIndex === activeTabIndex\n }\" class=\"oc-tab\" (click)=\"selectTab(tab.tabIndex); \n handleTabClick()\" type=\"button\">{{tab.ocTitle}}</button>\n }\n <div class=\"row-content\">\n <ng-content select=\"[row]\"></ng-content>\n </div>\n </div>\n <ng-content></ng-content>\n</div>", styles: [".oc-tabs .row{display:flex;gap:1px}.oc-tab{border:none;padding:.75rem 1.3rem;cursor:pointer;border-radius:8px 8px 0 0;background-color:transparent;border-bottom:2px solid #f7f7f7;transition:.15s ease;color:#7e8485}.oc-tab:hover{background-color:#f8f9ff}.oc-tab.oc-selected{border-bottom:2px solid #5505a2;background-color:#f8f9ff;color:#5505a2}.row{max-width:100%;transform:rotateX(180deg);overflow-x:auto}.row .oc-tab{transform:rotateX(180deg);white-space:nowrap}.row .row-content{width:100%;transform:rotateX(180deg)}::-webkit-scrollbar{height:3px}.oc-tabs.shui .row{display:flex;gap:1rem}.oc-tabs.shui .oc-tab{border-bottom:3px solid transparent;font-weight:600;color:#00000080}.oc-tabs.shui .oc-tab:hover{background-color:transparent;border-bottom:3px solid #0169b2}.oc-tabs.shui .oc-tab.oc-selected{border-bottom:3px solid #0169b2;background-color:transparent;color:#00000080}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
30
30
  }
31
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcTabsComponent, decorators: [{
32
32
  type: Component,
33
- args: [{ selector: 'oc-tabs', standalone: true, imports: [CommonModule], template: "<div class=\"oc-tabs\" [ngClass]=\"{\n shui: ocStyle === 'shui'\n}\">\n <div class=\"row\">\n @for(tab of ocTabs; track $index) {\n <button [ngClass]=\"{\n 'oc-selected': tab.tabIndex === activeTabIndex\n }\" class=\"oc-tab\" (click)=\"selectTab(tab.tabIndex); \n handleTabClick()\" type=\"button\">{{tab.ocTitle}}</button>\n }\n </div>\n <ng-content></ng-content>\n</div>", styles: [".oc-tabs .row{display:flex;gap:1px}.oc-tab{border:none;padding:.75rem 1.3rem;cursor:pointer;border-radius:8px 8px 0 0;background-color:transparent;border-bottom:2px solid #f7f7f7;transition:.15s ease;color:#7e8485}.oc-tab:hover{background-color:#f8f9ff}.oc-tab.oc-selected{border-bottom:2px solid #5505a2;background-color:#f8f9ff;color:#5505a2}.row{max-width:100%;transform:rotateX(180deg);overflow-x:auto}.row .oc-tab{transform:rotateX(180deg)}::-webkit-scrollbar{height:3px}.oc-tabs.shui .row{display:flex;gap:1rem}.oc-tabs.shui .oc-tab{border-bottom:3px solid transparent;font-weight:600;color:#00000080}.oc-tabs.shui .oc-tab:hover{background-color:transparent;border-bottom:3px solid #0169b2}.oc-tabs.shui .oc-tab.oc-selected{border-bottom:3px solid #0169b2;background-color:transparent;color:#00000080}\n"] }]
33
+ args: [{ selector: 'oc-tabs', standalone: true, imports: [CommonModule], template: "<div class=\"oc-tabs\" [ngClass]=\"{\n shui: ocStyle === 'shui'\n}\">\n <div class=\"row\">\n @for(tab of ocTabs; track $index) {\n <button [ngClass]=\"{\n 'oc-selected': tab.tabIndex === activeTabIndex\n }\" class=\"oc-tab\" (click)=\"selectTab(tab.tabIndex); \n handleTabClick()\" type=\"button\">{{tab.ocTitle}}</button>\n }\n <div class=\"row-content\">\n <ng-content select=\"[row]\"></ng-content>\n </div>\n </div>\n <ng-content></ng-content>\n</div>", styles: [".oc-tabs .row{display:flex;gap:1px}.oc-tab{border:none;padding:.75rem 1.3rem;cursor:pointer;border-radius:8px 8px 0 0;background-color:transparent;border-bottom:2px solid #f7f7f7;transition:.15s ease;color:#7e8485}.oc-tab:hover{background-color:#f8f9ff}.oc-tab.oc-selected{border-bottom:2px solid #5505a2;background-color:#f8f9ff;color:#5505a2}.row{max-width:100%;transform:rotateX(180deg);overflow-x:auto}.row .oc-tab{transform:rotateX(180deg);white-space:nowrap}.row .row-content{width:100%;transform:rotateX(180deg)}::-webkit-scrollbar{height:3px}.oc-tabs.shui .row{display:flex;gap:1rem}.oc-tabs.shui .oc-tab{border-bottom:3px solid transparent;font-weight:600;color:#00000080}.oc-tabs.shui .oc-tab:hover{background-color:transparent;border-bottom:3px solid #0169b2}.oc-tabs.shui .oc-tab.oc-selected{border-bottom:3px solid #0169b2;background-color:transparent;color:#00000080}\n"] }]
34
34
  }], ctorParameters: () => [{ type: i1.StyleThemeService }], propDecorators: { ocTabs: [{
35
35
  type: ContentChildren,
36
36
  args: [OcTabComponent]
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
39
39
  }], ocClick: [{
40
40
  type: Output
41
41
  }] } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtdGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vdGltdXMtbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvb2MtdGFicy9vYy10YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy10YWJzL29jLXRhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBR2YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTs7OztBQVc5QyxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUUvQyxZQUFPLEdBQXFCLFFBQVEsQ0FBQTtRQUNuQyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQTtRQUU1QyxtQkFBYyxHQUFXLENBQUMsQ0FBQTtJQUxpQyxDQUFDO0lBTzVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFBO1FBQ3JFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDbkIsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3ZDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFBO1lBQ2hCLEdBQUcsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxLQUFLLEtBQUssQ0FBQTtRQUM5QixDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFBO0lBQzdCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUNyQixDQUFDOytHQXZCVSxlQUFlO21HQUFmLGVBQWUsMkpBRVQsY0FBYyw2QkN2QmpDLG9aQVlNLGsyQkRLTSxZQUFZOzs0RkFJWCxlQUFlO2tCQVAzQixTQUFTOytCQUNFLFNBQVMsY0FDUCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7c0ZBTVUsTUFBTTtzQkFBdEMsZUFBZTt1QkFBQyxjQUFjO2dCQUN0QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBRdWVyeUxpc3QsXG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT3V0cHV0LFxuICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE9jVGFiQ29tcG9uZW50IH0gZnJvbSAnLi4vb2MtdGFiL29jLXRhYi5jb21wb25lbnQnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBTdHlsZVRoZW1lU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0eWxlLXRoZW1lLnNlcnZpY2UnXG5pbXBvcnQgeyBPY1N0eWxlVGhlbWVUeXBlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9vYy1zdHlsZS10aGVtZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2MtdGFicycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vb2MtdGFicy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vYy10YWJzLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgT2NUYWJzQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3R5bGVUaGVtZVNlcnZpY2U6IFN0eWxlVGhlbWVTZXJ2aWNlKSB7fVxuICBAQ29udGVudENoaWxkcmVuKE9jVGFiQ29tcG9uZW50KSBvY1RhYnMhOiBRdWVyeUxpc3Q8T2NUYWJDb21wb25lbnQ+XG4gIEBJbnB1dCgpIG9jU3R5bGU6IE9jU3R5bGVUaGVtZVR5cGUgPSAnb3RpbXVzJ1xuICBAT3V0cHV0KCkgb2NDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKVxuXG4gIGFjdGl2ZVRhYkluZGV4OiBudW1iZXIgPSAwXG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMub2NTdHlsZSA9IHRoaXMuc3R5bGVUaGVtZVNlcnZpY2UuZ2V0U3R5bGVUaGVtZSgpIHx8IHRoaXMub2NTdHlsZVxuICAgIHRoaXMuc2VsZWN0VGFiKDApXG4gIH1cblxuICBzZWxlY3RUYWIoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMub2NUYWJzLnRvQXJyYXkoKS5mb3JFYWNoKCh0YWIsIGkpID0+IHtcbiAgICAgIHRhYi50YWJJbmRleCA9IGlcbiAgICAgIHRhYi5vY0lzQWN0aXZlID0gaSA9PT0gaW5kZXhcbiAgICB9KVxuICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSBpbmRleFxuICB9XG5cbiAgaGFuZGxlVGFiQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5vY0NsaWNrLmVtaXQoKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwib2MtdGFic1wiIFtuZ0NsYXNzXT1cIntcbiAgc2h1aTogb2NTdHlsZSA9PT0gJ3NodWknXG59XCI+XG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICBAZm9yKHRhYiBvZiBvY1RhYnM7IHRyYWNrICRpbmRleCkge1xuICAgIDxidXR0b24gW25nQ2xhc3NdPVwie1xuICAgICAgICAnb2Mtc2VsZWN0ZWQnOiB0YWIudGFiSW5kZXggPT09IGFjdGl2ZVRhYkluZGV4XG4gICAgICB9XCIgY2xhc3M9XCJvYy10YWJcIiAoY2xpY2spPVwic2VsZWN0VGFiKHRhYi50YWJJbmRleCk7IFxuICAgICAgaGFuZGxlVGFiQ2xpY2soKVwiIHR5cGU9XCJidXR0b25cIj57e3RhYi5vY1RpdGxlfX08L2J1dHRvbj5cbiAgICB9XG4gIDwvZGl2PlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj4iXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtdGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vdGltdXMtbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvb2MtdGFicy9vYy10YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy10YWJzL29jLXRhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBR2YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTs7OztBQVc5QyxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUUvQyxZQUFPLEdBQXFCLFFBQVEsQ0FBQTtRQUNuQyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQTtRQUU1QyxtQkFBYyxHQUFXLENBQUMsQ0FBQTtJQUxpQyxDQUFDO0lBTzVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFBO1FBQ3JFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDbkIsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3ZDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFBO1lBQ2hCLEdBQUcsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxLQUFLLEtBQUssQ0FBQTtRQUM5QixDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFBO0lBQzdCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUNyQixDQUFDOytHQXZCVSxlQUFlO21HQUFmLGVBQWUsMkpBRVQsY0FBYyw2QkN2QmpDLG1mQWVNLDQ2QkRFTSxZQUFZOzs0RkFJWCxlQUFlO2tCQVAzQixTQUFTOytCQUNFLFNBQVMsY0FDUCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7c0ZBTVUsTUFBTTtzQkFBdEMsZUFBZTt1QkFBQyxjQUFjO2dCQUN0QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBRdWVyeUxpc3QsXG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT3V0cHV0LFxuICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE9jVGFiQ29tcG9uZW50IH0gZnJvbSAnLi4vb2MtdGFiL29jLXRhYi5jb21wb25lbnQnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBTdHlsZVRoZW1lU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0eWxlLXRoZW1lLnNlcnZpY2UnXG5pbXBvcnQgeyBPY1N0eWxlVGhlbWVUeXBlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9vYy1zdHlsZS10aGVtZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2MtdGFicycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vb2MtdGFicy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vYy10YWJzLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgT2NUYWJzQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3R5bGVUaGVtZVNlcnZpY2U6IFN0eWxlVGhlbWVTZXJ2aWNlKSB7fVxuICBAQ29udGVudENoaWxkcmVuKE9jVGFiQ29tcG9uZW50KSBvY1RhYnMhOiBRdWVyeUxpc3Q8T2NUYWJDb21wb25lbnQ+XG4gIEBJbnB1dCgpIG9jU3R5bGU6IE9jU3R5bGVUaGVtZVR5cGUgPSAnb3RpbXVzJ1xuICBAT3V0cHV0KCkgb2NDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKVxuXG4gIGFjdGl2ZVRhYkluZGV4OiBudW1iZXIgPSAwXG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMub2NTdHlsZSA9IHRoaXMuc3R5bGVUaGVtZVNlcnZpY2UuZ2V0U3R5bGVUaGVtZSgpIHx8IHRoaXMub2NTdHlsZVxuICAgIHRoaXMuc2VsZWN0VGFiKDApXG4gIH1cblxuICBzZWxlY3RUYWIoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMub2NUYWJzLnRvQXJyYXkoKS5mb3JFYWNoKCh0YWIsIGkpID0+IHtcbiAgICAgIHRhYi50YWJJbmRleCA9IGlcbiAgICAgIHRhYi5vY0lzQWN0aXZlID0gaSA9PT0gaW5kZXhcbiAgICB9KVxuICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSBpbmRleFxuICB9XG5cbiAgaGFuZGxlVGFiQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5vY0NsaWNrLmVtaXQoKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwib2MtdGFic1wiIFtuZ0NsYXNzXT1cIntcbiAgc2h1aTogb2NTdHlsZSA9PT0gJ3NodWknXG59XCI+XG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICBAZm9yKHRhYiBvZiBvY1RhYnM7IHRyYWNrICRpbmRleCkge1xuICAgIDxidXR0b24gW25nQ2xhc3NdPVwie1xuICAgICAgICAnb2Mtc2VsZWN0ZWQnOiB0YWIudGFiSW5kZXggPT09IGFjdGl2ZVRhYkluZGV4XG4gICAgICB9XCIgY2xhc3M9XCJvYy10YWJcIiAoY2xpY2spPVwic2VsZWN0VGFiKHRhYi50YWJJbmRleCk7IFxuICAgICAgaGFuZGxlVGFiQ2xpY2soKVwiIHR5cGU9XCJidXR0b25cIj57e3RhYi5vY1RpdGxlfX08L2J1dHRvbj5cbiAgICB9XG4gICAgPGRpdiBjbGFzcz1cInJvdy1jb250ZW50XCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcm93XVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PiJdfQ==
@@ -5,6 +5,7 @@ import * as i1 from "@angular/common";
5
5
  export class OcToggleComponent {
6
6
  constructor() {
7
7
  this._ocChecked = false;
8
+ this.ocSize = 'medium';
8
9
  this.ocColor = 'green';
9
10
  this.ocCheckedChange = new EventEmitter();
10
11
  }
@@ -19,16 +20,18 @@ export class OcToggleComponent {
19
20
  this.ocChecked = !this.ocChecked;
20
21
  }
21
22
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OcToggleComponent, isStandalone: true, selector: "oc-toggle", inputs: { ocChecked: "ocChecked", ocColor: "ocColor" }, outputs: { ocCheckedChange: "ocCheckedChange" }, ngImport: i0, template: "<label class=\"switch\">\n <input [checked]=\"ocChecked\" (click)=\"toggleChecked()\" type=\"checkbox\">\n <span class=\"slider round\" [ngClass]=\"[ocColor]\"></span>\n</label>", styles: [".switch{position:relative;display:inline-block;width:60px;height:33px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;box-shadow:0 0 20px #00dda32b;background-color:#ccc;-webkit-transition:.4s;transition:.4s;border:1px solid #ffffff}.slider:before{position:absolute;content:\"\";height:26px;width:26px;left:4px;background-color:#fff;-webkit-transition:.4s;transition:.4s;bottom:2.5px}input:checked+.slider.purple{background-color:#5505a2}input:checked+.slider.green{background-color:#00dda3}input:focus+.slider{box-shadow:0 0 1px #2196f3}input:checked+.slider:before{-webkit-transform:translateX(25px);-ms-transform:translateX(25px);transform:translate(25px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
23
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OcToggleComponent, isStandalone: true, selector: "oc-toggle", inputs: { ocSize: "ocSize", ocChecked: "ocChecked", ocColor: "ocColor" }, outputs: { ocCheckedChange: "ocCheckedChange" }, ngImport: i0, template: "<label class=\"switch\" [ngClass]=\"{\n large: ocSize ==='large',\n medium: ocSize ==='medium',\n}\">\n <input [checked]=\"ocChecked\" (click)=\"toggleChecked()\" type=\"checkbox\">\n <span class=\"slider round\" [ngClass]=\"[ocColor]\"></span>\n</label>", styles: [".switch{position:relative;display:inline-block;width:48px;height:28px}.switch input:checked+.slider:before{-webkit-transform:translateX(18px);-ms-transform:translateX(18px);transform:translate(18px);box-shadow:0 0 16px #00dda3}.switch input:checked+.slider.purple:before{box-shadow:0 0 16px #7866e9}.switch.large{width:60px;height:33px}.switch.large input:checked+.slider:before{-webkit-transform:translateX(25px);-ms-transform:translateX(25px);transform:translate(25px)}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:#ccc;-webkit-transition:.4s;transition:.4s;border:1px solid #ffffff}.slider:before{position:absolute;content:\"\";height:21px;width:21px;left:4px;background-color:#fff;-webkit-transition:.4s;transition:.4s;bottom:2.5px}.switch.large .slider:before{height:26px;width:26px}input:checked+.slider.purple{background-color:#5505a2}input:checked+.slider.green{background-color:#00dda3}input:focus+.slider{box-shadow:0 0 1px #00dda3}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
23
24
  }
24
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcToggleComponent, decorators: [{
25
26
  type: Component,
26
- args: [{ selector: 'oc-toggle', standalone: true, imports: [CommonModule], template: "<label class=\"switch\">\n <input [checked]=\"ocChecked\" (click)=\"toggleChecked()\" type=\"checkbox\">\n <span class=\"slider round\" [ngClass]=\"[ocColor]\"></span>\n</label>", styles: [".switch{position:relative;display:inline-block;width:60px;height:33px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;box-shadow:0 0 20px #00dda32b;background-color:#ccc;-webkit-transition:.4s;transition:.4s;border:1px solid #ffffff}.slider:before{position:absolute;content:\"\";height:26px;width:26px;left:4px;background-color:#fff;-webkit-transition:.4s;transition:.4s;bottom:2.5px}input:checked+.slider.purple{background-color:#5505a2}input:checked+.slider.green{background-color:#00dda3}input:focus+.slider{box-shadow:0 0 1px #2196f3}input:checked+.slider:before{-webkit-transform:translateX(25px);-ms-transform:translateX(25px);transform:translate(25px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}\n"] }]
27
- }], propDecorators: { ocChecked: [{
27
+ args: [{ selector: 'oc-toggle', standalone: true, imports: [CommonModule], template: "<label class=\"switch\" [ngClass]=\"{\n large: ocSize ==='large',\n medium: ocSize ==='medium',\n}\">\n <input [checked]=\"ocChecked\" (click)=\"toggleChecked()\" type=\"checkbox\">\n <span class=\"slider round\" [ngClass]=\"[ocColor]\"></span>\n</label>", styles: [".switch{position:relative;display:inline-block;width:48px;height:28px}.switch input:checked+.slider:before{-webkit-transform:translateX(18px);-ms-transform:translateX(18px);transform:translate(18px);box-shadow:0 0 16px #00dda3}.switch input:checked+.slider.purple:before{box-shadow:0 0 16px #7866e9}.switch.large{width:60px;height:33px}.switch.large input:checked+.slider:before{-webkit-transform:translateX(25px);-ms-transform:translateX(25px);transform:translate(25px)}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:#ccc;-webkit-transition:.4s;transition:.4s;border:1px solid #ffffff}.slider:before{position:absolute;content:\"\";height:21px;width:21px;left:4px;background-color:#fff;-webkit-transition:.4s;transition:.4s;bottom:2.5px}.switch.large .slider:before{height:26px;width:26px}input:checked+.slider.purple{background-color:#5505a2}input:checked+.slider.green{background-color:#00dda3}input:focus+.slider{box-shadow:0 0 1px #00dda3}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}\n"] }]
28
+ }], propDecorators: { ocSize: [{
29
+ type: Input
30
+ }], ocChecked: [{
28
31
  type: Input
29
32
  }], ocColor: [{
30
33
  type: Input
31
34
  }], ocCheckedChange: [{
32
35
  type: Output
33
36
  }] } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtdG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy10b2dnbGUvb2MtdG9nZ2xlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy10b2dnbGUvb2MtdG9nZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFTdkUsTUFBTSxPQUFPLGlCQUFpQjtJQVA5QjtRQVFFLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFXbkIsWUFBTyxHQUF1QixPQUFPLENBQUM7UUFFckMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0tBS3pEO0lBaEJDLElBQWEsU0FBUyxDQUFDLEtBQWM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUE7UUFDdkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQzVDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUE7SUFDeEIsQ0FBQztJQU1ELGFBQWE7UUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDOytHQWxCVSxpQkFBaUI7bUdBQWpCLGlCQUFpQiw4S0NWOUIscUxBR1EsZzBCREdLLFlBQVk7OzRGQUlaLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxXQUFXLGNBQ1QsSUFBSSxXQUNQLENBQUUsWUFBWSxDQUFFOzhCQU9aLFNBQVM7c0JBQXJCLEtBQUs7Z0JBU0csT0FBTztzQkFBZixLQUFLO2dCQUVJLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2MtdG9nZ2xlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogWyBDb21tb25Nb2R1bGUgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL29jLXRvZ2dsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vYy10b2dnbGUuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIE9jVG9nZ2xlQ29tcG9uZW50IHtcbiAgX29jQ2hlY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHNldCBvY0NoZWNrZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9vY0NoZWNrZWQgPSB2YWx1ZVxuICAgIHRoaXMub2NDaGVja2VkQ2hhbmdlLmVtaXQodGhpcy5fb2NDaGVja2VkKVxuICB9XG5cbiAgZ2V0IG9jQ2hlY2tlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fb2NDaGVja2VkXG4gIH1cblxuICBASW5wdXQoKSBvY0NvbG9yOiAncHVycGxlJyB8ICdncmVlbicgPSAnZ3JlZW4nO1xuXG4gIEBPdXRwdXQoKSBvY0NoZWNrZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgdG9nZ2xlQ2hlY2tlZCgpIHtcbiAgICB0aGlzLm9jQ2hlY2tlZCA9ICF0aGlzLm9jQ2hlY2tlZDtcbiAgfVxufVxuXG5cbiIsIjxsYWJlbCBjbGFzcz1cInN3aXRjaFwiPlxuICA8aW5wdXQgW2NoZWNrZWRdPVwib2NDaGVja2VkXCIgKGNsaWNrKT1cInRvZ2dsZUNoZWNrZWQoKVwiIHR5cGU9XCJjaGVja2JveFwiPlxuICA8c3BhbiBjbGFzcz1cInNsaWRlciByb3VuZFwiIFtuZ0NsYXNzXT1cIltvY0NvbG9yXVwiPjwvc3Bhbj5cbjwvbGFiZWw+Il19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtdG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy10b2dnbGUvb2MtdG9nZ2xlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy10b2dnbGUvb2MtdG9nZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBOzs7QUFTdEUsTUFBTSxPQUFPLGlCQUFpQjtJQVA5QjtRQVFFLGVBQVUsR0FBWSxLQUFLLENBQUE7UUFFbEIsV0FBTSxHQUF1QixRQUFRLENBQUE7UUFVckMsWUFBTyxHQUF1QixPQUFPLENBQUE7UUFFcEMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFBO0tBS3hEO0lBaEJDLElBQWEsU0FBUyxDQUFDLEtBQWM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUE7UUFDdkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQzVDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUE7SUFDeEIsQ0FBQztJQU1ELGFBQWE7UUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQTtJQUNsQyxDQUFDOytHQW5CVSxpQkFBaUI7bUdBQWpCLGlCQUFpQixnTUNWOUIsb1FBTVEsOG1DREFJLFlBQVk7OzRGQUlYLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxXQUFXLGNBQ1QsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDOzhCQU9kLE1BQU07c0JBQWQsS0FBSztnQkFDTyxTQUFTO3NCQUFyQixLQUFLO2dCQVNHLE9BQU87c0JBQWYsS0FBSztnQkFFSSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvYy10b2dnbGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL29jLXRvZ2dsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vYy10b2dnbGUuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBPY1RvZ2dsZUNvbXBvbmVudCB7XG4gIF9vY0NoZWNrZWQ6IGJvb2xlYW4gPSBmYWxzZVxuXG4gIEBJbnB1dCgpIG9jU2l6ZTogJ21lZGl1bScgfCAnbGFyZ2UnID0gJ21lZGl1bSdcbiAgQElucHV0KCkgc2V0IG9jQ2hlY2tlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX29jQ2hlY2tlZCA9IHZhbHVlXG4gICAgdGhpcy5vY0NoZWNrZWRDaGFuZ2UuZW1pdCh0aGlzLl9vY0NoZWNrZWQpXG4gIH1cblxuICBnZXQgb2NDaGVja2VkKCkge1xuICAgIHJldHVybiB0aGlzLl9vY0NoZWNrZWRcbiAgfVxuXG4gIEBJbnB1dCgpIG9jQ29sb3I6ICdwdXJwbGUnIHwgJ2dyZWVuJyA9ICdncmVlbidcblxuICBAT3V0cHV0KCkgb2NDaGVja2VkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpXG5cbiAgdG9nZ2xlQ2hlY2tlZCgpIHtcbiAgICB0aGlzLm9jQ2hlY2tlZCA9ICF0aGlzLm9jQ2hlY2tlZFxuICB9XG59XG4iLCI8bGFiZWwgY2xhc3M9XCJzd2l0Y2hcIiBbbmdDbGFzc109XCJ7XG4gIGxhcmdlOiBvY1NpemUgPT09J2xhcmdlJyxcbiAgbWVkaXVtOiBvY1NpemUgPT09J21lZGl1bScsXG59XCI+XG4gIDxpbnB1dCBbY2hlY2tlZF09XCJvY0NoZWNrZWRcIiAoY2xpY2spPVwidG9nZ2xlQ2hlY2tlZCgpXCIgdHlwZT1cImNoZWNrYm94XCI+XG4gIDxzcGFuIGNsYXNzPVwic2xpZGVyIHJvdW5kXCIgW25nQ2xhc3NdPVwiW29jQ29sb3JdXCI+PC9zcGFuPlxuPC9sYWJlbD4iXX0=
@@ -1,23 +1,37 @@
1
- import { Directive, HostListener, Input } from '@angular/core';
1
+ import { Directive, Input, } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class OcTooltipDirective {
4
- constructor(elRef, renderer) {
4
+ constructor(elRef, renderer, zone, cdr) {
5
5
  this.elRef = elRef;
6
6
  this.renderer = renderer;
7
+ this.zone = zone;
8
+ this.cdr = cdr;
7
9
  this.content = '';
8
10
  this.side = 'mouse';
9
- this.created = false;
10
11
  this.tooltip = null;
11
- this.mouseingInterval = null;
12
+ this.moveScheduled = false;
13
+ this.zone.runOutsideAngular(() => {
14
+ this.setupEvents();
15
+ });
12
16
  }
13
- createToolTip() {
14
- if (this.created) {
15
- return this.tooltip;
17
+ setupEvents() {
18
+ this.elRef.nativeElement.addEventListener('mouseover', (e) => this.onMouseOver(e));
19
+ this.elRef.nativeElement.addEventListener('mousemove', (e) => this.onMouseMove(e));
20
+ this.elRef.nativeElement.addEventListener('mouseout', (e) => this.onMouseOut(e));
21
+ }
22
+ createTooltip() {
23
+ if (!this.tooltip) {
24
+ this.tooltip = this.renderer.createElement('div');
25
+ this.renderer.addClass(this.tooltip, 'oc-tooltip');
26
+ this.renderer.setStyle(this.tooltip, 'position', 'absolute');
27
+ this.renderer.setStyle(this.tooltip, 'pointer-events', 'none');
28
+ this.renderer.setStyle(this.tooltip, 'z-index', '1000');
29
+ this.renderer.setStyle(this.tooltip, 'display', 'none');
30
+ this.renderer.appendChild(document.body, this.tooltip);
16
31
  }
17
- this.tooltip = this.renderer.createElement('div');
18
- const htmlRegex = /<([a-z][a-z0-9]*)\b[^>]*>(.*?)<\/\1>/is;
19
- if (htmlRegex.test(this.content)) {
20
- this.content = this.content.replace('>', ' style="margin: 0">');
32
+ this.tooltip.innerHTML = '';
33
+ const isHTML = new DOMParser().parseFromString(this.content, 'text/html').body.children.length > 0;
34
+ if (isHTML) {
21
35
  this.renderer.setProperty(this.tooltip, 'innerHTML', this.content);
22
36
  }
23
37
  else {
@@ -25,74 +39,95 @@ export class OcTooltipDirective {
25
39
  this.renderer.appendChild(this.tooltip, text);
26
40
  this.renderer.setStyle(this.tooltip, 'color', '#7E8485');
27
41
  }
28
- this.renderer.addClass(this.tooltip, 'oc-tooltip');
29
42
  if (this.side === 'mouse') {
30
43
  this.renderer.addClass(this.tooltip, 'mouse-tracking');
31
44
  }
32
- this.renderer.setStyle(this.tooltip, 'position', 'absolute');
33
- this.renderer.setStyle(this.tooltip, 'pointer-events', 'none');
34
- this.renderer.setStyle(this.tooltip, 'z-index', '1000');
35
- document.body.appendChild(this.tooltip);
36
- this.created = true;
37
45
  return this.tooltip;
38
46
  }
39
47
  onMouseOver(event) {
40
- if (!this.content) {
48
+ if (!this.content)
41
49
  return;
50
+ if (!this.tooltip)
51
+ this.createTooltip();
52
+ this.renderer.setStyle(this.tooltip, 'display', 'block');
53
+ if (this.side === 'mouse') {
54
+ this.updateTooltipPosition(event);
55
+ }
56
+ else {
57
+ this.positionTooltipFixed();
42
58
  }
43
- this.tooltip = this.createToolTip();
44
- this.updateTooltipPosition(event);
59
+ this.cdr.markForCheck();
45
60
  }
46
61
  onMouseMove(event) {
47
- if (this.tooltip) {
48
- if (this.side === 'mouse') {
62
+ if (!this.tooltip || this.side !== 'mouse')
63
+ return;
64
+ if (!this.moveScheduled) {
65
+ this.moveScheduled = true;
66
+ requestAnimationFrame(() => {
49
67
  this.updateTooltipPosition(event);
50
- }
51
- else {
52
- this.positionTooltipFixed();
53
- }
68
+ this.moveScheduled = false;
69
+ });
54
70
  }
55
71
  }
56
- updateTooltipPosition(event) {
72
+ onMouseOut(event) {
73
+ if (this.tooltip &&
74
+ event.relatedTarget instanceof Node &&
75
+ this.tooltip.contains(event.relatedTarget)) {
76
+ return; // evita flicker se mouse entra no tooltip
77
+ }
57
78
  if (this.tooltip) {
58
- this.renderer.setStyle(this.tooltip, 'left', `${event.pageX + 12}px`);
59
- this.renderer.setStyle(this.tooltip, 'top', `${event.pageY + 12}px`);
79
+ this.renderer.setStyle(this.tooltip, 'display', 'none');
60
80
  }
81
+ this.cdr.markForCheck();
82
+ }
83
+ updateTooltipPosition(event) {
84
+ if (!this.tooltip)
85
+ return;
86
+ const left = event.pageX + 12;
87
+ const top = event.pageY + 12;
88
+ this.renderer.setStyle(this.tooltip, 'left', `${left}px`);
89
+ this.renderer.setStyle(this.tooltip, 'top', `${top}px`);
61
90
  }
62
91
  positionTooltipFixed() {
63
- if (!this.tooltip) {
92
+ if (!this.tooltip)
64
93
  return;
65
- }
66
94
  const rect = this.elRef.nativeElement.getBoundingClientRect();
67
95
  const width = this.elRef.nativeElement.offsetWidth;
68
96
  const height = this.elRef.nativeElement.offsetHeight;
69
- if (this.side === 'right') {
70
- this.renderer.setStyle(this.tooltip, 'left', `${rect.right + 10}px`);
71
- this.renderer.setStyle(this.tooltip, 'top', `${rect.top + height / 2}px`);
72
- }
73
- else if (this.side === 'left') {
74
- this.renderer.setStyle(this.tooltip, 'left', `${rect.left - this.tooltip.offsetWidth - 10}px`);
75
- this.renderer.setStyle(this.tooltip, 'top', `${rect.top + height / 2}px`);
76
- }
77
- else if (this.side === 'upon' || this.side === 'top') {
78
- this.renderer.setStyle(this.tooltip, 'left', `${rect.left + width / 2}px`);
79
- this.renderer.setStyle(this.tooltip, 'top', `${rect.top - this.tooltip.offsetHeight - 10}px`);
80
- }
81
- else if (this.side === 'bottom') {
82
- this.renderer.setStyle(this.tooltip, 'left', `${rect.left + width / 2}px`);
83
- this.renderer.setStyle(this.tooltip, 'top', `${rect.bottom + 10}px`);
97
+ const scrollX = window.scrollX;
98
+ const scrollY = window.scrollY;
99
+ let left = 0;
100
+ let top = 0;
101
+ switch (this.side) {
102
+ case 'right':
103
+ left = scrollX + rect.right + 10;
104
+ top = scrollY + rect.top + height / 2;
105
+ break;
106
+ case 'left':
107
+ left = scrollX + rect.left - this.tooltip.offsetWidth - 10;
108
+ top = scrollY + rect.top + height / 2;
109
+ break;
110
+ case 'upon':
111
+ case 'top':
112
+ left = scrollX + rect.left + width / 2;
113
+ top = scrollY + rect.top - this.tooltip.offsetHeight - 10;
114
+ break;
115
+ case 'bottom':
116
+ left = scrollX + rect.left + width / 2;
117
+ top = scrollY + rect.bottom + 10;
118
+ break;
84
119
  }
120
+ this.renderer.setStyle(this.tooltip, 'left', `${left}px`);
121
+ this.renderer.setStyle(this.tooltip, 'top', `${top}px`);
85
122
  }
86
- onMouseOut() {
87
- if (this.tooltip) {
88
- document.body.removeChild(this.tooltip);
89
- this.created = false;
123
+ ngOnDestroy() {
124
+ if (this.tooltip && this.tooltip.parentNode) {
125
+ this.tooltip.parentNode.removeChild(this.tooltip);
90
126
  this.tooltip = null;
91
127
  }
92
- this.mouseingInterval = null;
93
128
  }
94
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcTooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
95
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: OcTooltipDirective, isStandalone: true, selector: "[ocTooltip]", inputs: { content: "content", side: "side" }, host: { listeners: { "mouseover": "onMouseOver($event)", "mousemove": "onMouseMove($event)", "mouseout": "onMouseOut()" } }, ngImport: i0 }); }
129
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcTooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
130
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: OcTooltipDirective, isStandalone: true, selector: "[ocTooltip]", inputs: { content: "content", side: "side" }, ngImport: i0 }); }
96
131
  }
97
132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcTooltipDirective, decorators: [{
98
133
  type: Directive,
@@ -100,18 +135,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
100
135
  selector: '[ocTooltip]',
101
136
  standalone: true,
102
137
  }]
103
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { content: [{
138
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { content: [{
104
139
  type: Input
105
140
  }], side: [{
106
141
  type: Input
107
- }], onMouseOver: [{
108
- type: HostListener,
109
- args: ['mouseover', ['$event']]
110
- }], onMouseMove: [{
111
- type: HostListener,
112
- args: ['mousemove', ['$event']]
113
- }], onMouseOut: [{
114
- type: HostListener,
115
- args: ['mouseout']
116
142
  }] } });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtdG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vdGltdXMtbGlicmFyeS9zcmMvbGliL2RpcmVjdGl2ZXMvb2MtdG9vbHRpcC9vYy10b29sdGlwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUE7O0FBTXJGLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFDVSxLQUFpQixFQUNqQixRQUFtQjtRQURuQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFHcEIsWUFBTyxHQUFXLEVBQUUsQ0FBQTtRQUNwQixTQUFJLEdBQTJELE9BQU8sQ0FBQTtRQUV2RSxZQUFPLEdBQVksS0FBSyxDQUFBO1FBQ3hCLFlBQU8sR0FBdUIsSUFBSSxDQUFBO1FBdUMxQyxxQkFBZ0IsR0FBZSxJQUFJLENBQUE7SUE3Q2hDLENBQUM7SUFRSixhQUFhO1FBQ1gsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsT0FBTyxJQUFJLENBQUMsT0FBUSxDQUFBO1FBQ3RCLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2pELE1BQU0sU0FBUyxHQUFHLHdDQUF3QyxDQUFBO1FBQzFELElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQyxDQUFBO1lBQy9ELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsV0FB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Q2xELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQTtRQUVwRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFDcEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzNFLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFDOUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzNFLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQy9GLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBR0QsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtZQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtRQUNyQixDQUFDO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQTtJQUM5QixDQUFDOytHQXBHVSxrQkFBa0I7bUdBQWxCLGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFKOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO3VHQU9VLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBa0NOLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBV3JDLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBMENyQyxVQUFVO3NCQURULFlBQVk7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW29jVG9vbHRpcF0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBPY1Rvb2x0aXBEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHt9XG5cbiAgQElucHV0KCkgY29udGVudDogc3RyaW5nID0gJydcbiAgQElucHV0KCkgc2lkZTogJ2JvdHRvbScgfCAndXBvbicgfCAnbGVmdCcgfCAncmlnaHQnIHwgJ3RvcCcgfCAnbW91c2UnID0gJ21vdXNlJ1xuXG4gIHByaXZhdGUgY3JlYXRlZDogYm9vbGVhbiA9IGZhbHNlXG4gIHByaXZhdGUgdG9vbHRpcDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbFxuXG4gIGNyZWF0ZVRvb2xUaXAoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICBpZiAodGhpcy5jcmVhdGVkKSB7XG4gICAgICByZXR1cm4gdGhpcy50b29sdGlwIVxuICAgIH1cblxuICAgIHRoaXMudG9vbHRpcCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgICBjb25zdCBodG1sUmVnZXggPSAvPChbYS16XVthLXowLTldKilcXGJbXj5dKj4oLio/KTxcXC9cXDE+L2lzXG4gICAgaWYgKGh0bWxSZWdleC50ZXN0KHRoaXMuY29udGVudCkpIHtcbiAgICAgIHRoaXMuY29udGVudCA9IHRoaXMuY29udGVudC5yZXBsYWNlKCc+JywgJyBzdHlsZT1cIm1hcmdpbjogMFwiPicpXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMudG9vbHRpcCwgJ2lubmVySFRNTCcsIHRoaXMuY29udGVudClcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdGV4dCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dCh0aGlzLmNvbnRlbnQpXG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMudG9vbHRpcCwgdGV4dClcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwLCAnY29sb3InLCAnIzdFODQ4NScpXG4gICAgfVxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwLCAnb2MtdG9vbHRpcCcpXG4gICAgaWYgKHRoaXMuc2lkZSA9PT0gJ21vdXNlJykge1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnRvb2x0aXAsICdtb3VzZS10cmFja2luZycpXG4gICAgfVxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwLCAncG9zaXRpb24nLCAnYWJzb2x1dGUnKVxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwLCAncG9pbnRlci1ldmVudHMnLCAnbm9uZScpXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXAsICd6LWluZGV4JywgJzEwMDAnKVxuXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLnRvb2x0aXAgYXMgYW55KVxuICAgIHRoaXMuY3JlYXRlZCA9IHRydWVcbiAgICByZXR1cm4gdGhpcy50b29sdGlwXG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZW92ZXInLCBbJyRldmVudCddKVxuICBvbk1vdXNlT3ZlcihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb250ZW50KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGhpcy50b29sdGlwID0gdGhpcy5jcmVhdGVUb29sVGlwKClcbiAgICB0aGlzLnVwZGF0ZVRvb2x0aXBQb3NpdGlvbihldmVudClcbiAgfVxuXG4gIG1vdXNlaW5nSW50ZXJ2YWw6IGFueSB8IG51bGwgPSBudWxsXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbW92ZScsIFsnJGV2ZW50J10pXG4gIG9uTW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMudG9vbHRpcCkge1xuICAgICAgaWYgKHRoaXMuc2lkZSA9PT0gJ21vdXNlJykge1xuICAgICAgICB0aGlzLnVwZGF0ZVRvb2x0aXBQb3NpdGlvbihldmVudClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucG9zaXRpb25Ub29sdGlwRml4ZWQoKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVG9vbHRpcFBvc2l0aW9uKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMudG9vbHRpcCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXAsICdsZWZ0JywgYCR7ZXZlbnQucGFnZVggKyAxMn1weGApXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcCwgJ3RvcCcsIGAke2V2ZW50LnBhZ2VZICsgMTJ9cHhgKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcG9zaXRpb25Ub29sdGlwRml4ZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnRvb2x0aXApIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCByZWN0ID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGhcbiAgICBjb25zdCBoZWlnaHQgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0XG5cbiAgICBpZiAodGhpcy5zaWRlID09PSAncmlnaHQnKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcCwgJ2xlZnQnLCBgJHtyZWN0LnJpZ2h0ICsgMTB9cHhgKVxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXAsICd0b3AnLCBgJHtyZWN0LnRvcCArIGhlaWdodCAvIDJ9cHhgKVxuICAgIH0gZWxzZSBpZiAodGhpcy5zaWRlID09PSAnbGVmdCcpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwLCAnbGVmdCcsIGAke3JlY3QubGVmdCAtIHRoaXMudG9vbHRpcC5vZmZzZXRXaWR0aCAtIDEwfXB4YClcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwLCAndG9wJywgYCR7cmVjdC50b3AgKyBoZWlnaHQgLyAyfXB4YClcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2lkZSA9PT0gJ3Vwb24nIHx8IHRoaXMuc2lkZSA9PT0gJ3RvcCcpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwLCAnbGVmdCcsIGAke3JlY3QubGVmdCArIHdpZHRoIC8gMn1weGApXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcCwgJ3RvcCcsIGAke3JlY3QudG9wIC0gdGhpcy50b29sdGlwLm9mZnNldEhlaWdodCAtIDEwfXB4YClcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2lkZSA9PT0gJ2JvdHRvbScpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwLCAnbGVmdCcsIGAke3JlY3QubGVmdCArIHdpZHRoIC8gMn1weGApXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcCwgJ3RvcCcsIGAke3JlY3QuYm90dG9tICsgMTB9cHhgKVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlb3V0JylcbiAgb25Nb3VzZU91dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50b29sdGlwKSB7XG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRoaXMudG9vbHRpcClcbiAgICAgIHRoaXMuY3JlYXRlZCA9IGZhbHNlXG4gICAgICB0aGlzLnRvb2x0aXAgPSBudWxsXG4gICAgfVxuXG4gICAgdGhpcy5tb3VzZWluZ0ludGVydmFsID0gbnVsbFxuICB9XG59XG4iXX0=
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtdG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vdGltdXMtbGlicmFyeS9zcmMvbGliL2RpcmVjdGl2ZXMvb2MtdG9vbHRpcC9vYy10b29sdGlwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssR0FLTixNQUFNLGVBQWUsQ0FBQTs7QUFNdEIsTUFBTSxPQUFPLGtCQUFrQjtJQU83QixZQUNVLEtBQWlCLEVBQ2pCLFFBQW1CLEVBQ25CLElBQVksRUFDWixHQUFzQjtRQUh0QixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBVnZCLFlBQU8sR0FBVyxFQUFFLENBQUE7UUFDcEIsU0FBSSxHQUEyRCxPQUFPLENBQUE7UUFFdkUsWUFBTyxHQUF1QixJQUFJLENBQUE7UUFDbEMsa0JBQWEsR0FBRyxLQUFLLENBQUE7UUFRM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ3BCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDOUYsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFD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LEVBQUUsSUFBSTtpQkFDakI7NEpBRVUsT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIFJlbmRlcmVyMixcbiAgTmdab25lLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbb2NUb29sdGlwXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE9jVG9vbHRpcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGNvbnRlbnQ6IHN0cmluZyA9ICcnXG4gIEBJbnB1dCgpIHNpZGU6ICdib3R0b20nIHwgJ3Vwb24nIHwgJ2xlZnQnIHwgJ3JpZ2h0JyB8ICd0b3AnIHwgJ21vdXNlJyA9ICdtb3VzZSdcblxuICBwcml2YXRlIHRvb2x0aXA6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGxcbiAgcHJpdmF0ZSBtb3ZlU2NoZWR1bGVkID0gZmFsc2VcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuc2V0dXBFdmVudHMoKVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIHNldHVwRXZlbnRzKCkge1xuICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCAoZTogTW91c2VFdmVudCkgPT4gdGhpcy5vbk1vdXNlT3ZlcihlKSlcbiAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgKGU6IE1vdXNlRXZlbnQpID0+IHRoaXMub25Nb3VzZU1vdmUoZSkpXG4gICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3V0JywgKGU6IE1vdXNlRXZlbnQpID0+IHRoaXMub25Nb3VzZU91dChlKSlcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVG9vbHRpcCgpOiBIVE1MRWxlbWVudCB7XG4gICAgaWYgKCF0aGlzLnRvb2x0aXApIHtcbiAgICAgIHRoaXMudG9vbHRpcCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2JykgYXMgSFRNTEVsZW1lbnRcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwLCAnb2MtdG9vbHRpcCcpXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcCwgJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJylcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwLCAncG9pbnRlci1ldmVudHMnLCAnbm9uZScpXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcCwgJ3otaW5kZXgnLCAnMTAwMCcpXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcCwgJ2Rpc3BsYXknLCAnbm9uZScpXG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHRoaXMudG9vbHRpcClcbiAgICB9XG5cbiAgICB0aGlzLnRvb2x0aXAuaW5uZXJIVE1MID0gJydcblxuICAgIGNvbnN0IGlzSFRNTCA9XG4gICAgICBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKHRoaXMuY29udGVudCwgJ3RleHQvaHRtbCcpLmJvZHkuY2hpbGRyZW4ubGVuZ3RoID4gMFxuICAgIGlmIChpc0hUTUwpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy50b29sdGlwLCAnaW5uZXJIVE1MJywgdGhpcy5jb250ZW50KVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0ZXh0ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVUZXh0KHRoaXMuY29udGVudClcbiAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy50b29sdGlwLCB0ZXh0KVxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXAsICdjb2xvcicsICcjN0U4NDg1JylcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zaWRlID09PSAnbW91c2UnKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudG9vbHRpcCwgJ21vdXNlLXRyYWNraW5nJylcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy50b29sdGlwXG4gIH1cblxuICBvbk1vdXNlT3ZlcihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb250ZW50KSByZXR1cm5cblxuICAgIGlmICghdGhpcy50b29sdGlwKSB0aGlzLmNyZWF0ZVRvb2x0aXAoKVxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwLCAnZGlzcGxheScsICdibG9jaycpXG5cbiAgICBpZiAodGhpcy5zaWRlID09PSAnbW91c2UnKSB7XG4gICAgICB0aGlzLnVwZGF0ZVRvb2x0aXBQb3NpdGlvbihldmVudClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wb3NpdGlvblRvb2x0aXBGaXhlZCgpXG4gICAgfVxuXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKClcbiAgfVxuXG4gIG9uTW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnRvb2x0aXAgfHwgdGhpcy5zaWRlICE9PSAnbW91c2UnKSByZXR1cm5cblxuICAgIGlmICghdGhpcy5tb3ZlU2NoZWR1bGVkKSB7XG4gICAgICB0aGlzLm1vdmVTY2hlZHVsZWQgPSB0cnVlXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZVRvb2x0aXBQb3NpdGlvbihldmVudClcbiAgICAgICAgdGhpcy5tb3ZlU2NoZWR1bGVkID0gZmFsc2VcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgb25Nb3VzZU91dChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMudG9vbHRpcCAmJlxuICAgICAgZXZlbnQucmVsYXRlZFRhcmdldCBpbnN0YW5jZW9mIE5vZGUgJiZcbiAgICAgIHRoaXMudG9vbHRpcC5jb250YWlucyhldmVudC5yZWxhdGVkVGFyZ2V0KVxuICAgICkge1xuICAgICAgcmV0dXJuIC8vIGV2aXRhIGZsaWNrZXIgc2UgbW91c2UgZW50cmEgbm8gdG9vbHRpcFxuICAgIH1cblxuICAgIGlmICh0aGlzLnRvb2x0aXApIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwLCAnZGlzcGxheScsICdub25lJylcbiAgICB9XG5cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVUb29sdGlwUG9zaXRpb24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudG9vbHRpcCkgcmV0dXJuXG5cbiAgICBjb25zdCBsZWZ0ID0gZXZlbnQucGFnZVggKyAxMlxuICAgIGNvbnN0IHRvcCA9IGV2ZW50LnBhZ2VZICsgMTJcblxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwLCAnbGVmdCcsIGAke2xlZnR9cHhgKVxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwLCAndG9wJywgYCR7dG9wfXB4YClcbiAgfVxuXG4gIHByaXZhdGUgcG9zaXRpb25Ub29sdGlwRml4ZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnRvb2x0aXApIHJldHVyblxuXG4gICAgY29uc3QgcmVjdCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgIGNvbnN0IHdpZHRoID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoXG4gICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodFxuXG4gICAgY29uc3Qgc2Nyb2xsWCA9IHdpbmRvdy5zY3JvbGxYXG4gICAgY29uc3Qgc2Nyb2xsWSA9IHdpbmRvdy5zY3JvbGxZXG5cbiAgICBsZXQgbGVmdCA9IDBcbiAgICBsZXQgdG9wID0gMFxuXG4gICAgc3dpdGNoICh0aGlzLnNpZGUpIHtcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgbGVmdCA9IHNjcm9sbFggKyByZWN0LnJpZ2h0ICsgMTBcbiAgICAgICAgdG9wID0gc2Nyb2xsWSArIHJlY3QudG9wICsgaGVpZ2h0IC8gMlxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgIGxlZnQgPSBzY3JvbGxYICsgcmVjdC5sZWZ0IC0gdGhpcy50b29sdGlwLm9mZnNldFdpZHRoIC0gMTBcbiAgICAgICAgdG9wID0gc2Nyb2xsWSArIHJlY3QudG9wICsgaGVpZ2h0IC8gMlxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAndXBvbic6XG4gICAgICBjYXNlICd0b3AnOlxuICAgICAgICBsZWZ0ID0gc2Nyb2xsWCArIHJlY3QubGVmdCArIHdpZHRoIC8gMlxuICAgICAgICB0b3AgPSBzY3JvbGxZICsgcmVjdC50b3AgLSB0aGlzLnRvb2x0aXAub2Zmc2V0SGVpZ2h0IC0gMTBcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgIGxlZnQgPSBzY3JvbGxYICsgcmVjdC5sZWZ0ICsgd2lkdGggLyAyXG4gICAgICAgIHRvcCA9IHNjcm9sbFkgKyByZWN0LmJvdHRvbSArIDEwXG4gICAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXAsICdsZWZ0JywgYCR7bGVmdH1weGApXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXAsICd0b3AnLCBgJHt0b3B9cHhgKVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudG9vbHRpcCAmJiB0aGlzLnRvb2x0aXAucGFyZW50Tm9kZSkge1xuICAgICAgdGhpcy50b29sdGlwLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy50b29sdGlwKVxuICAgICAgdGhpcy50b29sdGlwID0gbnVsbFxuICAgIH1cbiAgfVxufVxuIl19