@snabcentr/client-ui 3.6.1 → 3.6.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -17,12 +17,16 @@ export declare class HoverImageCarouselComponent {
17
17
  */
18
18
  currentIndex: WritableSignal<number>;
19
19
  /**
20
- * Обработчик события mousemove.
20
+ * Обработчик события `mousemove.silent`.
21
21
  *
22
22
  * @param offsetX Отступ курсора мыши по оси X от края {@link HTMLElement}.
23
23
  * @param target Объект {@link HTMLElement} в котором лежат изображения
24
24
  */
25
25
  private onHover;
26
+ /**
27
+ * Обработчик события `mouseleave.silent`.
28
+ */
29
+ private onLeave;
26
30
  static ɵfac: i0.ɵɵFactoryDeclaration<HoverImageCarouselComponent, never>;
27
31
  static ɵcmp: i0.ɵɵComponentDeclaration<HoverImageCarouselComponent, "sc-hover-image-carousel", never, { "images": { "alias": "images"; "required": false; }; "isShowActions": { "alias": "isShowActions"; "required": false; }; }, {}, never, never, true, never>;
28
32
  }
@@ -20,7 +20,7 @@ export class HoverImageCarouselComponent {
20
20
  this.currentIndex = signal(0);
21
21
  }
22
22
  /**
23
- * Обработчик события mousemove.
23
+ * Обработчик события `mousemove.silent`.
24
24
  *
25
25
  * @param offsetX Отступ курсора мыши по оси X от края {@link HTMLElement}.
26
26
  * @param target Объект {@link HTMLElement} в котором лежат изображения
@@ -29,17 +29,27 @@ export class HoverImageCarouselComponent {
29
29
  if (this.images.length <= 1 || offsetX < 0) {
30
30
  return;
31
31
  }
32
+ // new Event().preventDefault
32
33
  const elementWidth = target.offsetWidth;
33
34
  const hoverPercentage = offsetX / elementWidth;
34
35
  const newIndex = Math.floor(hoverPercentage * this.images.length);
35
36
  this.currentIndex.set(newIndex);
36
37
  }
38
+ /**
39
+ * Обработчик события `mouseleave.silent`.
40
+ */
41
+ onLeave() {
42
+ if (this.images.length <= 1) {
43
+ return;
44
+ }
45
+ this.currentIndex.set(0);
46
+ }
37
47
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: HoverImageCarouselComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
38
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: HoverImageCarouselComponent, isStandalone: true, selector: "sc-hover-image-carousel", inputs: { images: "images", isShowActions: "isShowActions" }, host: { listeners: { "mousemove.silent": "onHover($event.offsetX,$event.target)" } }, ngImport: i0, template: "<div\n class=\"overflow-hidden rounded-xl\"\n [class.mb-2]=\"images.length <= 1 && isShowActions\"\n [style.aspect-ratio]=\"'20/19'\"\n>\n <img\n [src]=\"images[currentIndex()]\"\n class=\"size-full rounded-xl object-contain\"\n />\n</div>\n\n@if (images.length > 1 && isShowActions) {\n <tui-pagination\n size=\"s\"\n [length]=\"images.length\"\n [index]=\"currentIndex()\"\n />\n}\n", dependencies: [{ kind: "component", type: TuiPagination, selector: "tui-pagination", inputs: ["length", "focusable", "size", "disabled", "activePadding", "sidePadding", "content", "index"], outputs: ["indexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
48
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: HoverImageCarouselComponent, isStandalone: true, selector: "sc-hover-image-carousel", inputs: { images: "images", isShowActions: "isShowActions" }, host: { listeners: { "mousemove.silent": "onHover($event.offsetX,$event.target)", "mouseleave.silent": "onLeave()" } }, ngImport: i0, template: "<div\n class=\"overflow-hidden rounded-xl\"\n [class.mb-2]=\"images.length <= 1 && isShowActions\"\n [style.aspect-ratio]=\"'20/19'\"\n>\n <img\n [src]=\"images[currentIndex()]\"\n class=\"size-full rounded-xl object-contain\"\n />\n</div>\n\n@if (images.length > 1 && isShowActions) {\n <tui-pagination\n size=\"s\"\n [length]=\"images.length\"\n [index]=\"currentIndex()\"\n (indexChange)=\"currentIndex.set($event)\"\n (mousemove.silent)=\"$event.stopPropagation()\"\n />\n}\n", dependencies: [{ kind: "component", type: TuiPagination, selector: "tui-pagination", inputs: ["length", "focusable", "size", "disabled", "activePadding", "sidePadding", "content", "index"], outputs: ["indexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
39
49
  }
40
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: HoverImageCarouselComponent, decorators: [{
41
51
  type: Component,
42
- args: [{ selector: 'sc-hover-image-carousel', standalone: true, imports: [TuiPagination], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"overflow-hidden rounded-xl\"\n [class.mb-2]=\"images.length <= 1 && isShowActions\"\n [style.aspect-ratio]=\"'20/19'\"\n>\n <img\n [src]=\"images[currentIndex()]\"\n class=\"size-full rounded-xl object-contain\"\n />\n</div>\n\n@if (images.length > 1 && isShowActions) {\n <tui-pagination\n size=\"s\"\n [length]=\"images.length\"\n [index]=\"currentIndex()\"\n />\n}\n" }]
52
+ args: [{ standalone: true, selector: 'sc-hover-image-carousel', imports: [TuiPagination], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"overflow-hidden rounded-xl\"\n [class.mb-2]=\"images.length <= 1 && isShowActions\"\n [style.aspect-ratio]=\"'20/19'\"\n>\n <img\n [src]=\"images[currentIndex()]\"\n class=\"size-full rounded-xl object-contain\"\n />\n</div>\n\n@if (images.length > 1 && isShowActions) {\n <tui-pagination\n size=\"s\"\n [length]=\"images.length\"\n [index]=\"currentIndex()\"\n (indexChange)=\"currentIndex.set($event)\"\n (mousemove.silent)=\"$event.stopPropagation()\"\n />\n}\n" }]
43
53
  }], propDecorators: { images: [{
44
54
  type: Input
45
55
  }], isShowActions: [{
@@ -47,5 +57,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
47
57
  }], onHover: [{
48
58
  type: HostListener,
49
59
  args: ['mousemove.silent', ['$event.offsetX', '$event.target']]
60
+ }], onLeave: [{
61
+ type: HostListener,
62
+ args: ['mouseleave.silent']
50
63
  }] } });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG92ZXItaW1hZ2UtY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhdGFsb2cvaG92ZXItaW1hZ2UtY2Fyb3VzZWwvaG92ZXItaW1hZ2UtY2Fyb3VzZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhdGFsb2cvaG92ZXItaW1hZ2UtY2Fyb3VzZWwvaG92ZXItaW1hZ2UtY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFOUM7O0dBRUc7QUFRSCxNQUFNLE9BQU8sMkJBQTJCO0lBUHhDO1FBUUk7O1dBRUc7UUFFSSxXQUFNLEdBQWEsRUFBRSxDQUFDO1FBRTdCOztXQUVHO1FBRUksa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFFckM7O1dBRUc7UUFDSSxpQkFBWSxHQUEyQixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FtQjNEO0lBakJHOzs7OztPQUtHO0lBRUssT0FBTyxDQUFDLE9BQWUsRUFBRSxNQUFtQjtRQUNoRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekMsT0FBTztRQUNYLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3hDLE1BQU0sZUFBZSxHQUFHLE9BQU8sR0FBRyxZQUFZLENBQUM7UUFDL0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwQyxDQUFDOytHQWxDUSwyQkFBMkI7bUdBQTNCLDJCQUEyQix1T0NieEMsMGJBa0JBLDRDRFRjLGFBQWE7OzRGQUlkLDJCQUEyQjtrQkFQdkMsU0FBUzsrQkFDSSx5QkFBeUIsY0FDdkIsSUFBSSxXQUNQLENBQUMsYUFBYSxDQUFDLG1CQUVQLHVCQUF1QixDQUFDLE1BQU07OEJBT3hDLE1BQU07c0JBRFosS0FBSztnQkFPQyxhQUFhO3NCQURuQixLQUFLO2dCQWVFLE9BQU87c0JBRGQsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIHNpZ25hbCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFR1aVBhZ2luYXRpb24gfSBmcm9tICdAdGFpZ2EtdWkva2l0JztcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0L/RgNC+0YHQvNC+0YLRgNCwINC40LfQvtCx0YDQsNC20LXQvdC40Lkg0YfQtdGA0LXQtyDRgdC+0LHRi9GC0LjQtSDQvdCw0LLQtdC00LXQvdC40Y8uXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2MtaG92ZXItaW1hZ2UtY2Fyb3VzZWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1R1aVBhZ2luYXRpb25dLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ob3Zlci1pbWFnZS1jYXJvdXNlbC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEhvdmVySW1hZ2VDYXJvdXNlbENvbXBvbmVudCB7XG4gICAgLyoqXG4gICAgICog0JzQsNGB0YHQuNCyINC40LfQvtCx0YDQsNC20LXQvdC40LkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaW1hZ2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0Log0YfRgtC+INC90LXQvtCx0YXQvtC00LjQvNC+INC+0YLQvtCx0YDQsNC30LjRgtGMINGN0LvQtdC80LXQvdGC0Ysg0YPQv9GA0LDQstC70LXQvdC40Y8uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaXNTaG93QWN0aW9uczogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgV3JpdGFibGVTaWduYWx9INC00LvRjyDQvtGC0YHQu9C10LbQuNCy0LDQvdC40Y8g0YLQtdC60YPRidC10LPQviDQuNC90LTQtdC60YHQsCDQuNC30L7QsdGA0LDQttC10L3QuNGPLlxuICAgICAqL1xuICAgIHB1YmxpYyBjdXJyZW50SW5kZXg6IFdyaXRhYmxlU2lnbmFsPG51bWJlcj4gPSBzaWduYWwoMCk7XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YDQsNCx0L7RgtGH0LjQuiDRgdC+0LHRi9GC0LjRjyBtb3VzZW1vdmUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb2Zmc2V0WCDQntGC0YHRgtGD0L8g0LrRg9GA0YHQvtGA0LAg0LzRi9GI0Lgg0L/QviDQvtGB0LggWCDQvtGCINC60YDQsNGPIHtAbGluayBIVE1MRWxlbWVudH0uXG4gICAgICogQHBhcmFtIHRhcmdldCDQntCx0YrQtdC60YIge0BsaW5rIEhUTUxFbGVtZW50fSDQsiDQutC+0YLQvtGA0L7QvCDQu9C10LbQsNGCINC40LfQvtCx0YDQsNC20LXQvdC40Y9cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZW1vdmUuc2lsZW50JywgWyckZXZlbnQub2Zmc2V0WCcsICckZXZlbnQudGFyZ2V0J10pXG4gICAgcHJpdmF0ZSBvbkhvdmVyKG9mZnNldFg6IG51bWJlciwgdGFyZ2V0OiBIVE1MRWxlbWVudCkge1xuICAgICAgICBpZiAodGhpcy5pbWFnZXMubGVuZ3RoIDw9IDEgfHwgb2Zmc2V0WCA8IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVsZW1lbnRXaWR0aCA9IHRhcmdldC5vZmZzZXRXaWR0aDtcbiAgICAgICAgY29uc3QgaG92ZXJQZXJjZW50YWdlID0gb2Zmc2V0WCAvIGVsZW1lbnRXaWR0aDtcbiAgICAgICAgY29uc3QgbmV3SW5kZXggPSBNYXRoLmZsb29yKGhvdmVyUGVyY2VudGFnZSAqIHRoaXMuaW1hZ2VzLmxlbmd0aCk7XG4gICAgICAgIHRoaXMuY3VycmVudEluZGV4LnNldChuZXdJbmRleCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwib3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQteGxcIlxuICAgIFtjbGFzcy5tYi0yXT1cImltYWdlcy5sZW5ndGggPD0gMSAmJiBpc1Nob3dBY3Rpb25zXCJcbiAgICBbc3R5bGUuYXNwZWN0LXJhdGlvXT1cIicyMC8xOSdcIlxuPlxuICAgIDxpbWdcbiAgICAgICAgW3NyY109XCJpbWFnZXNbY3VycmVudEluZGV4KCldXCJcbiAgICAgICAgY2xhc3M9XCJzaXplLWZ1bGwgcm91bmRlZC14bCBvYmplY3QtY29udGFpblwiXG4gICAgLz5cbjwvZGl2PlxuXG5AaWYgKGltYWdlcy5sZW5ndGggPiAxICYmIGlzU2hvd0FjdGlvbnMpIHtcbiAgICA8dHVpLXBhZ2luYXRpb25cbiAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICBbbGVuZ3RoXT1cImltYWdlcy5sZW5ndGhcIlxuICAgICAgICBbaW5kZXhdPVwiY3VycmVudEluZGV4KClcIlxuICAgIC8+XG59XG4iXX0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG92ZXItaW1hZ2UtY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhdGFsb2cvaG92ZXItaW1hZ2UtY2Fyb3VzZWwvaG92ZXItaW1hZ2UtY2Fyb3VzZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhdGFsb2cvaG92ZXItaW1hZ2UtY2Fyb3VzZWwvaG92ZXItaW1hZ2UtY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFOUM7O0dBRUc7QUFRSCxNQUFNLE9BQU8sMkJBQTJCO0lBUHhDO1FBUUk7O1dBRUc7UUFFSSxXQUFNLEdBQWEsRUFBRSxDQUFDO1FBRTdCOztXQUVHO1FBRUksa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFFckM7O1dBRUc7UUFDSSxpQkFBWSxHQUEyQixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7S0ErQjNEO0lBN0JHOzs7OztPQUtHO0lBRUssT0FBTyxDQUFDLE9BQWUsRUFBRSxNQUFtQjtRQUNoRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekMsT0FBTztRQUNYLENBQUM7UUFDRCw2QkFBNkI7UUFDN0IsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN4QyxNQUFNLGVBQWUsR0FBRyxPQUFPLEdBQUcsWUFBWSxDQUFDO1FBQy9DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBRUssT0FBTztRQUNYLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDMUIsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDOytHQTlDUSwyQkFBMkI7bUdBQTNCLDJCQUEyQix5UUNieEMsdWlCQW9CQSw0Q0RYYyxhQUFhOzs0RkFJZCwyQkFBMkI7a0JBUHZDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLHlCQUF5QixXQUMxQixDQUFDLGFBQWEsQ0FBQyxtQkFFUCx1QkFBdUIsQ0FBQyxNQUFNOzhCQU94QyxNQUFNO3NCQURaLEtBQUs7Z0JBT0MsYUFBYTtzQkFEbkIsS0FBSztnQkFlRSxPQUFPO3NCQURkLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLENBQUM7Z0JBZ0I3RCxPQUFPO3NCQURkLFlBQVk7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCwgc2lnbmFsLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHVpUGFnaW5hdGlvbiB9IGZyb20gJ0B0YWlnYS11aS9raXQnO1xuXG4vKipcbiAqINCa0L7QvNC/0L7QvdC10L3RgiDQv9GA0L7RgdC80L7RgtGA0LAg0LjQt9C+0LHRgNCw0LbQtdC90LjQuSDRh9C10YDQtdC3INGB0L7QsdGL0YLQuNC1INC90LDQstC10LTQtdC90LjRjy5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3NjLWhvdmVyLWltYWdlLWNhcm91c2VsJyxcbiAgICBpbXBvcnRzOiBbVHVpUGFnaW5hdGlvbl0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2hvdmVyLWltYWdlLWNhcm91c2VsLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSG92ZXJJbWFnZUNhcm91c2VsQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiDQnNCw0YHRgdC40LIg0LjQt9C+0LHRgNCw0LbQtdC90LjQuS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpbWFnZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDRh9GC0L4g0L3QtdC+0LHRhdC+0LTQuNC80L4g0L7RgtC+0LHRgNCw0LfQuNGC0Ywg0Y3Qu9C10LzQtdC90YLRiyDRg9C/0YDQsNCy0LvQtdC90LjRjy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpc1Nob3dBY3Rpb25zOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBXcml0YWJsZVNpZ25hbH0g0LTQu9GPINC+0YLRgdC70LXQttC40LLQsNC90LjRjyDRgtC10LrRg9GJ0LXQs9C+INC40L3QtNC10LrRgdCwINC40LfQvtCx0YDQsNC20LXQvdC40Y8uXG4gICAgICovXG4gICAgcHVibGljIGN1cnJlbnRJbmRleDogV3JpdGFibGVTaWduYWw8bnVtYmVyPiA9IHNpZ25hbCgwKTtcblxuICAgIC8qKlxuICAgICAqINCe0LHRgNCw0LHQvtGC0YfQuNC6INGB0L7QsdGL0YLQuNGPIGBtb3VzZW1vdmUuc2lsZW50YC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvZmZzZXRYINCe0YLRgdGC0YPQvyDQutGD0YDRgdC+0YDQsCDQvNGL0YjQuCDQv9C+INC+0YHQuCBYINC+0YIg0LrRgNCw0Y8ge0BsaW5rIEhUTUxFbGVtZW50fS5cbiAgICAgKiBAcGFyYW0gdGFyZ2V0INCe0LHRitC10LrRgiB7QGxpbmsgSFRNTEVsZW1lbnR9INCyINC60L7RgtC+0YDQvtC8INC70LXQttCw0YIg0LjQt9C+0LHRgNCw0LbQtdC90LjRj1xuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlbW92ZS5zaWxlbnQnLCBbJyRldmVudC5vZmZzZXRYJywgJyRldmVudC50YXJnZXQnXSlcbiAgICBwcml2YXRlIG9uSG92ZXIob2Zmc2V0WDogbnVtYmVyLCB0YXJnZXQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmltYWdlcy5sZW5ndGggPD0gMSB8fCBvZmZzZXRYIDwgMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIG5ldyBFdmVudCgpLnByZXZlbnREZWZhdWx0XG4gICAgICAgIGNvbnN0IGVsZW1lbnRXaWR0aCA9IHRhcmdldC5vZmZzZXRXaWR0aDtcbiAgICAgICAgY29uc3QgaG92ZXJQZXJjZW50YWdlID0gb2Zmc2V0WCAvIGVsZW1lbnRXaWR0aDtcbiAgICAgICAgY29uc3QgbmV3SW5kZXggPSBNYXRoLmZsb29yKGhvdmVyUGVyY2VudGFnZSAqIHRoaXMuaW1hZ2VzLmxlbmd0aCk7XG4gICAgICAgIHRoaXMuY3VycmVudEluZGV4LnNldChuZXdJbmRleCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdGA0LDQsdC+0YLRh9C40Log0YHQvtCx0YvRgtC40Y8gYG1vdXNlbGVhdmUuc2lsZW50YC5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlLnNpbGVudCcpXG4gICAgcHJpdmF0ZSBvbkxlYXZlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pbWFnZXMubGVuZ3RoIDw9IDEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY3VycmVudEluZGV4LnNldCgwKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJvdmVyZmxvdy1oaWRkZW4gcm91bmRlZC14bFwiXG4gICAgW2NsYXNzLm1iLTJdPVwiaW1hZ2VzLmxlbmd0aCA8PSAxICYmIGlzU2hvd0FjdGlvbnNcIlxuICAgIFtzdHlsZS5hc3BlY3QtcmF0aW9dPVwiJzIwLzE5J1wiXG4+XG4gICAgPGltZ1xuICAgICAgICBbc3JjXT1cImltYWdlc1tjdXJyZW50SW5kZXgoKV1cIlxuICAgICAgICBjbGFzcz1cInNpemUtZnVsbCByb3VuZGVkLXhsIG9iamVjdC1jb250YWluXCJcbiAgICAvPlxuPC9kaXY+XG5cbkBpZiAoaW1hZ2VzLmxlbmd0aCA+IDEgJiYgaXNTaG93QWN0aW9ucykge1xuICAgIDx0dWktcGFnaW5hdGlvblxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIFtsZW5ndGhdPVwiaW1hZ2VzLmxlbmd0aFwiXG4gICAgICAgIFtpbmRleF09XCJjdXJyZW50SW5kZXgoKVwiXG4gICAgICAgIChpbmRleENoYW5nZSk9XCJjdXJyZW50SW5kZXguc2V0KCRldmVudClcIlxuICAgICAgICAobW91c2Vtb3ZlLnNpbGVudCk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgIC8+XG59XG4iXX0=
@@ -3316,7 +3316,7 @@ class HoverImageCarouselComponent {
3316
3316
  this.currentIndex = signal(0);
3317
3317
  }
3318
3318
  /**
3319
- * Обработчик события mousemove.
3319
+ * Обработчик события `mousemove.silent`.
3320
3320
  *
3321
3321
  * @param offsetX Отступ курсора мыши по оси X от края {@link HTMLElement}.
3322
3322
  * @param target Объект {@link HTMLElement} в котором лежат изображения
@@ -3325,17 +3325,27 @@ class HoverImageCarouselComponent {
3325
3325
  if (this.images.length <= 1 || offsetX < 0) {
3326
3326
  return;
3327
3327
  }
3328
+ // new Event().preventDefault
3328
3329
  const elementWidth = target.offsetWidth;
3329
3330
  const hoverPercentage = offsetX / elementWidth;
3330
3331
  const newIndex = Math.floor(hoverPercentage * this.images.length);
3331
3332
  this.currentIndex.set(newIndex);
3332
3333
  }
3334
+ /**
3335
+ * Обработчик события `mouseleave.silent`.
3336
+ */
3337
+ onLeave() {
3338
+ if (this.images.length <= 1) {
3339
+ return;
3340
+ }
3341
+ this.currentIndex.set(0);
3342
+ }
3333
3343
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: HoverImageCarouselComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3334
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: HoverImageCarouselComponent, isStandalone: true, selector: "sc-hover-image-carousel", inputs: { images: "images", isShowActions: "isShowActions" }, host: { listeners: { "mousemove.silent": "onHover($event.offsetX,$event.target)" } }, ngImport: i0, template: "<div\n class=\"overflow-hidden rounded-xl\"\n [class.mb-2]=\"images.length <= 1 && isShowActions\"\n [style.aspect-ratio]=\"'20/19'\"\n>\n <img\n [src]=\"images[currentIndex()]\"\n class=\"size-full rounded-xl object-contain\"\n />\n</div>\n\n@if (images.length > 1 && isShowActions) {\n <tui-pagination\n size=\"s\"\n [length]=\"images.length\"\n [index]=\"currentIndex()\"\n />\n}\n", dependencies: [{ kind: "component", type: TuiPagination, selector: "tui-pagination", inputs: ["length", "focusable", "size", "disabled", "activePadding", "sidePadding", "content", "index"], outputs: ["indexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3344
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: HoverImageCarouselComponent, isStandalone: true, selector: "sc-hover-image-carousel", inputs: { images: "images", isShowActions: "isShowActions" }, host: { listeners: { "mousemove.silent": "onHover($event.offsetX,$event.target)", "mouseleave.silent": "onLeave()" } }, ngImport: i0, template: "<div\n class=\"overflow-hidden rounded-xl\"\n [class.mb-2]=\"images.length <= 1 && isShowActions\"\n [style.aspect-ratio]=\"'20/19'\"\n>\n <img\n [src]=\"images[currentIndex()]\"\n class=\"size-full rounded-xl object-contain\"\n />\n</div>\n\n@if (images.length > 1 && isShowActions) {\n <tui-pagination\n size=\"s\"\n [length]=\"images.length\"\n [index]=\"currentIndex()\"\n (indexChange)=\"currentIndex.set($event)\"\n (mousemove.silent)=\"$event.stopPropagation()\"\n />\n}\n", dependencies: [{ kind: "component", type: TuiPagination, selector: "tui-pagination", inputs: ["length", "focusable", "size", "disabled", "activePadding", "sidePadding", "content", "index"], outputs: ["indexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3335
3345
  }
3336
3346
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: HoverImageCarouselComponent, decorators: [{
3337
3347
  type: Component,
3338
- args: [{ selector: 'sc-hover-image-carousel', standalone: true, imports: [TuiPagination], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"overflow-hidden rounded-xl\"\n [class.mb-2]=\"images.length <= 1 && isShowActions\"\n [style.aspect-ratio]=\"'20/19'\"\n>\n <img\n [src]=\"images[currentIndex()]\"\n class=\"size-full rounded-xl object-contain\"\n />\n</div>\n\n@if (images.length > 1 && isShowActions) {\n <tui-pagination\n size=\"s\"\n [length]=\"images.length\"\n [index]=\"currentIndex()\"\n />\n}\n" }]
3348
+ args: [{ standalone: true, selector: 'sc-hover-image-carousel', imports: [TuiPagination], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"overflow-hidden rounded-xl\"\n [class.mb-2]=\"images.length <= 1 && isShowActions\"\n [style.aspect-ratio]=\"'20/19'\"\n>\n <img\n [src]=\"images[currentIndex()]\"\n class=\"size-full rounded-xl object-contain\"\n />\n</div>\n\n@if (images.length > 1 && isShowActions) {\n <tui-pagination\n size=\"s\"\n [length]=\"images.length\"\n [index]=\"currentIndex()\"\n (indexChange)=\"currentIndex.set($event)\"\n (mousemove.silent)=\"$event.stopPropagation()\"\n />\n}\n" }]
3339
3349
  }], propDecorators: { images: [{
3340
3350
  type: Input
3341
3351
  }], isShowActions: [{
@@ -3343,6 +3353,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
3343
3353
  }], onHover: [{
3344
3354
  type: HostListener,
3345
3355
  args: ['mousemove.silent', ['$event.offsetX', '$event.target']]
3356
+ }], onLeave: [{
3357
+ type: HostListener,
3358
+ args: ['mouseleave.silent']
3346
3359
  }] } });
3347
3360
 
3348
3361
  /**