@mintplayer/ng-swiper 18.0.0 → 18.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/esm2022/index.mjs +2 -4
  2. package/esm2022/observe-size/index.mjs +3 -0
  3. package/esm2022/observe-size/mintplayer-ng-swiper-observe-size.mjs +5 -0
  4. package/esm2022/observe-size/src/observe-size.directive.mjs +51 -0
  5. package/esm2022/observe-size/src/size.mjs +2 -0
  6. package/esm2022/swiper/index.mjs +4 -0
  7. package/esm2022/swiper/mintplayer-ng-swiper-swiper.mjs +5 -0
  8. package/esm2022/swiper/src/directives/index.mjs +3 -0
  9. package/esm2022/swiper/src/directives/swipe/swipe.directive.mjs +105 -0
  10. package/esm2022/swiper/src/directives/swipe-container/swipe-container.directive.mjs +229 -0
  11. package/esm2022/swiper/src/interfaces/index.mjs +4 -0
  12. package/esm2022/swiper/src/interfaces/last-touch.mjs +2 -0
  13. package/esm2022/swiper/src/interfaces/point.mjs +2 -0
  14. package/esm2022/swiper/src/interfaces/start-touch.mjs +2 -0
  15. package/esm2022/swiper/src/swiper.module.mjs +19 -0
  16. package/fesm2022/mintplayer-ng-swiper-observe-size.mjs +58 -0
  17. package/fesm2022/mintplayer-ng-swiper-observe-size.mjs.map +1 -0
  18. package/fesm2022/mintplayer-ng-swiper-swiper.mjs +348 -0
  19. package/fesm2022/mintplayer-ng-swiper-swiper.mjs.map +1 -0
  20. package/fesm2022/mintplayer-ng-swiper.mjs +2 -343
  21. package/fesm2022/mintplayer-ng-swiper.mjs.map +1 -1
  22. package/index.d.ts +2 -3
  23. package/observe-size/index.d.ts +3 -0
  24. package/observe-size/src/observe-size.directive.d.ts +19 -0
  25. package/observe-size/src/size.d.ts +5 -0
  26. package/package.json +13 -1
  27. package/swiper/index.d.ts +4 -0
  28. package/{lib → swiper/src}/directives/index.d.ts +1 -0
  29. package/swiper/src/directives/swipe/swipe.directive.d.ts +18 -0
  30. package/{lib → swiper/src}/directives/swipe-container/swipe-container.directive.d.ts +7 -3
  31. package/{lib → swiper/src}/interfaces/index.d.ts +1 -0
  32. package/{lib → swiper/src}/interfaces/last-touch.d.ts +1 -0
  33. package/{lib → swiper/src}/interfaces/point.d.ts +1 -0
  34. package/{lib → swiper/src}/interfaces/start-touch.d.ts +1 -0
  35. package/{lib → swiper/src}/swiper.module.d.ts +1 -0
  36. package/esm2022/lib/directives/index.mjs +0 -3
  37. package/esm2022/lib/directives/swipe/swipe.directive.mjs +0 -119
  38. package/esm2022/lib/directives/swipe-container/swipe-container.directive.mjs +0 -216
  39. package/esm2022/lib/interfaces/index.mjs +0 -4
  40. package/esm2022/lib/interfaces/last-touch.mjs +0 -2
  41. package/esm2022/lib/interfaces/point.mjs +0 -2
  42. package/esm2022/lib/interfaces/start-touch.mjs +0 -2
  43. package/esm2022/lib/swiper.module.mjs +0 -19
  44. package/lib/directives/swipe/swipe.directive.d.ts +0 -21
package/esm2022/index.mjs CHANGED
@@ -1,4 +1,2 @@
1
- export * from './lib/swiper.module';
2
- export * from './lib/directives';
3
- export * from './lib/interfaces';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctc3dpcGVyL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3N3aXBlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzJzsiXX0=
1
+ export const libraryName = '@mintplayer/ng-swiper';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctc3dpcGVyL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgbGlicmFyeU5hbWUgPSAnQG1pbnRwbGF5ZXIvbmctc3dpcGVyJzsiXX0=
@@ -0,0 +1,3 @@
1
+ export * from './src/size';
2
+ export * from './src/observe-size.directive';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctc3dpcGVyL29ic2VydmUtc2l6ZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMvc2l6ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3JjL29ic2VydmUtc2l6ZS5kaXJlY3RpdmUnOyJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWludHBsYXllci1uZy1zd2lwZXItb2JzZXJ2ZS1zaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLXN3aXBlci9vYnNlcnZlLXNpemUvbWludHBsYXllci1uZy1zd2lwZXItb2JzZXJ2ZS1zaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,51 @@
1
+ import { isPlatformServer } from '@angular/common';
2
+ import { Directive, Inject, PLATFORM_ID } from '@angular/core';
3
+ import { BehaviorSubject, map } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ export class BsObserveSizeDirective {
6
+ element;
7
+ platformId;
8
+ zone;
9
+ constructor(element, platformId, zone) {
10
+ this.element = element;
11
+ this.platformId = platformId;
12
+ this.zone = zone;
13
+ if (!isPlatformServer(this.platformId)) {
14
+ this.observer = new ResizeObserver((entries) => {
15
+ // console.log('resized', entries[0].contentRect);
16
+ this.zone.run(() => this.size$.next(entries[0].contentRect));
17
+ });
18
+ }
19
+ this.width$ = this.size$.pipe(map(size => size?.width));
20
+ this.height$ = this.size$.pipe(map(size => size?.height));
21
+ }
22
+ observer;
23
+ size$ = new BehaviorSubject(undefined);
24
+ width$;
25
+ height$;
26
+ ngAfterViewInit() {
27
+ const el = this.element.nativeElement;
28
+ this.observer?.observe(el);
29
+ this.size$.next({ width: el.clientWidth, height: el.clientHeight });
30
+ }
31
+ ngOnDestroy() {
32
+ if (this.observer) {
33
+ this.observer.unobserve(this.element.nativeElement);
34
+ this.observer.disconnect();
35
+ }
36
+ }
37
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsObserveSizeDirective, deps: [{ token: i0.ElementRef }, { token: PLATFORM_ID }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
38
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: BsObserveSizeDirective, isStandalone: true, selector: "[bsObserveSize]", exportAs: ["bsObserveSize"], ngImport: i0 });
39
+ }
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsObserveSizeDirective, decorators: [{
41
+ type: Directive,
42
+ args: [{
43
+ selector: '[bsObserveSize]',
44
+ standalone: true,
45
+ exportAs: 'bsObserveSize'
46
+ }]
47
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: undefined, decorators: [{
48
+ type: Inject,
49
+ args: [PLATFORM_ID]
50
+ }] }, { type: i0.NgZone }] });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2ZS1zaXplLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1zd2lwZXIvb2JzZXJ2ZS1zaXplL3NyYy9vYnNlcnZlLXNpemUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBaUIsU0FBUyxFQUFjLE1BQU0sRUFBcUIsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxlQUFlLEVBQXVCLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFRakUsTUFBTSxPQUFPLHNCQUFzQjtJQUNiO0lBQWtEO0lBQXlCO0lBQS9GLFlBQW9CLE9BQW1CLEVBQStCLFVBQWUsRUFBVSxJQUFZO1FBQXZGLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFBK0IsZUFBVSxHQUFWLFVBQVUsQ0FBSztRQUFVLFNBQUksR0FBSixJQUFJLENBQVE7UUFDekcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxjQUFjLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDN0Msa0RBQWtEO2dCQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUMvRCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVPLFFBQVEsQ0FBa0I7SUFDbEMsS0FBSyxHQUFHLElBQUksZUFBZSxDQUFtQixTQUFTLENBQUMsQ0FBQztJQUN6RCxNQUFNLENBQWlDO0lBQ3ZDLE9BQU8sQ0FBaUM7SUFFeEMsZUFBZTtRQUNiLE1BQU0sRUFBRSxHQUFnQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUNuRCxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQzt1R0E3QlUsc0JBQXNCLDRDQUNnQixXQUFXOzJGQURqRCxzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBTGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxlQUFlO2lCQUMxQjs7MEJBRTJDLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEluamVjdCwgTmdab25lLCBPbkRlc3Ryb3ksIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgbWFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNpemUgfSBmcm9tICcuL3NpemUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYnNPYnNlcnZlU2l6ZV0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgZXhwb3J0QXM6ICdic09ic2VydmVTaXplJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQnNPYnNlcnZlU2l6ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLCBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueSwgcHJpdmF0ZSB6b25lOiBOZ1pvbmUpIHtcclxuICAgIGlmICghaXNQbGF0Zm9ybVNlcnZlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZygncmVzaXplZCcsIGVudHJpZXNbMF0uY29udGVudFJlY3QpO1xyXG4gICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4gdGhpcy5zaXplJC5uZXh0KGVudHJpZXNbMF0uY29udGVudFJlY3QpKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy53aWR0aCQgPSB0aGlzLnNpemUkLnBpcGUobWFwKHNpemUgPT4gc2l6ZT8ud2lkdGgpKTtcclxuICAgIHRoaXMuaGVpZ2h0JCA9IHRoaXMuc2l6ZSQucGlwZShtYXAoc2l6ZSA9PiBzaXplPy5oZWlnaHQpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb2JzZXJ2ZXI/OiBSZXNpemVPYnNlcnZlcjtcclxuICBzaXplJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2l6ZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICB3aWR0aCQ6IE9ic2VydmFibGU8bnVtYmVyIHwgdW5kZWZpbmVkPjtcclxuICBoZWlnaHQkOiBPYnNlcnZhYmxlPG51bWJlciB8IHVuZGVmaW5lZD47XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIGNvbnN0IGVsOiBIVE1MRWxlbWVudCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG4gICAgdGhpcy5vYnNlcnZlcj8ub2JzZXJ2ZShlbCk7XHJcbiAgICB0aGlzLnNpemUkLm5leHQoeyB3aWR0aDogZWwuY2xpZW50V2lkdGgsIGhlaWdodDogZWwuY2xpZW50SGVpZ2h0IH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy5vYnNlcnZlcikge1xyXG4gICAgICB0aGlzLm9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgIHRoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xyXG4gICAgfVxyXG4gIH1cclxufSJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1zd2lwZXIvb2JzZXJ2ZS1zaXplL3NyYy9zaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNpemUge1xyXG4gICAgd2lkdGg6IG51bWJlcjtcclxuICAgIGhlaWdodDogbnVtYmVyO1xyXG59Il19
@@ -0,0 +1,4 @@
1
+ export * from './src/directives';
2
+ export * from './src/interfaces';
3
+ export * from './src/swiper.module';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctc3dpcGVyL3N3aXBlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3JjL2RpcmVjdGl2ZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NyYy9pbnRlcmZhY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9zcmMvc3dpcGVyLm1vZHVsZSc7Il19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWludHBsYXllci1uZy1zd2lwZXItc3dpcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLXN3aXBlci9zd2lwZXIvbWludHBsYXllci1uZy1zd2lwZXItc3dpcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,3 @@
1
+ export * from './swipe/swipe.directive';
2
+ export * from './swipe-container/swipe-container.directive';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctc3dpcGVyL3N3aXBlci9zcmMvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNkNBQTZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3N3aXBlL3N3aXBlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3N3aXBlLWNvbnRhaW5lci9zd2lwZS1jb250YWluZXIuZGlyZWN0aXZlJzsiXX0=
@@ -0,0 +1,105 @@
1
+ import { Directive, HostBinding, HostListener, Input } from "@angular/core";
2
+ import { BsObserveSizeDirective } from "@mintplayer/ng-swiper/observe-size";
3
+ import { combineLatest, filter, take } from "rxjs";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../swipe-container/swipe-container.directive";
6
+ import * as i2 from "@mintplayer/ng-swiper/observe-size";
7
+ export class BsSwipeDirective {
8
+ container;
9
+ constructor(container, observeSize) {
10
+ this.container = container;
11
+ this.observeSize = observeSize;
12
+ // container.orientation$.pipe(takeUntilDestroyed())
13
+ // .subscribe(orientation => this.hostClass = (orientation === 'vertical') ? 'd-block' : 'd-inline-block');
14
+ }
15
+ observeSize;
16
+ //#region Offside
17
+ offside = false;
18
+ //#endregion
19
+ classes = true;
20
+ hostClass;
21
+ onTouchStart(ev) {
22
+ if (ev.touches.length === 1) {
23
+ ev.preventDefault();
24
+ this.container.pendingAnimation?.finish();
25
+ setTimeout(() => {
26
+ this.container.startTouch$.next({
27
+ position: {
28
+ x: ev.touches[0].clientX,
29
+ y: ev.touches[0].clientY,
30
+ },
31
+ timestamp: Date.now(),
32
+ });
33
+ this.container.lastTouch$.next({
34
+ position: {
35
+ x: ev.touches[0].clientX,
36
+ y: ev.touches[0].clientY,
37
+ },
38
+ isTouching: true,
39
+ });
40
+ }, 20);
41
+ }
42
+ }
43
+ onTouchMove(ev) {
44
+ this.container.lastTouch$.next({
45
+ position: {
46
+ x: ev.touches[0].clientX,
47
+ y: ev.touches[0].clientY,
48
+ },
49
+ isTouching: true,
50
+ });
51
+ }
52
+ onTouchEnd(ev) {
53
+ combineLatest([this.container.startTouch$, this.container.lastTouch$])
54
+ .pipe(filter(([startTouch, lastTouch]) => !!startTouch && !!lastTouch))
55
+ .pipe(take(1))
56
+ .subscribe(([startTouch, lastTouch]) => {
57
+ if (!!startTouch && !!lastTouch) {
58
+ const dx = lastTouch.position.x - startTouch.position.x;
59
+ this.container.onSwipe(dx);
60
+ }
61
+ });
62
+ }
63
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsSwipeDirective, deps: [{ token: i1.BsSwipeContainerDirective }, { token: i2.BsObserveSizeDirective }], target: i0.ɵɵFactoryTarget.Directive });
64
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: BsSwipeDirective, selector: "[bsSwipe]", inputs: { offside: "offside" }, host: { listeners: { "touchstart": "onTouchStart($event)", "touchmove": "onTouchMove($event)", "touchend": "onTouchEnd($event)" }, properties: { "class.align-top": "this.classes", "class.d-inline-block": "this.classes", "class.float-none": "this.classes", "class.w-100": "this.classes", "class.pe-auto": "this.classes", "class.me-0": "this.classes", "class": "this.hostClass" } }, hostDirectives: [{ directive: i2.BsObserveSizeDirective }], ngImport: i0 });
65
+ }
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsSwipeDirective, decorators: [{
67
+ type: Directive,
68
+ args: [{
69
+ selector: '[bsSwipe]',
70
+ hostDirectives: [BsObserveSizeDirective]
71
+ }]
72
+ }], ctorParameters: () => [{ type: i1.BsSwipeContainerDirective }, { type: i2.BsObserveSizeDirective }], propDecorators: { offside: [{
73
+ type: Input
74
+ }], classes: [{
75
+ type: HostBinding,
76
+ args: ['class.align-top']
77
+ }, {
78
+ type: HostBinding,
79
+ args: ['class.d-inline-block']
80
+ }, {
81
+ type: HostBinding,
82
+ args: ['class.float-none']
83
+ }, {
84
+ type: HostBinding,
85
+ args: ['class.w-100']
86
+ }, {
87
+ type: HostBinding,
88
+ args: ['class.pe-auto']
89
+ }, {
90
+ type: HostBinding,
91
+ args: ['class.me-0']
92
+ }], hostClass: [{
93
+ type: HostBinding,
94
+ args: ['class']
95
+ }], onTouchStart: [{
96
+ type: HostListener,
97
+ args: ['touchstart', ['$event']]
98
+ }], onTouchMove: [{
99
+ type: HostListener,
100
+ args: ['touchmove', ['$event']]
101
+ }], onTouchEnd: [{
102
+ type: HostListener,
103
+ args: ['touchend', ['$event']]
104
+ }] } });
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpcGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLXN3aXBlci9zd2lwZXIvc3JjL2RpcmVjdGl2ZXMvc3dpcGUvc3dpcGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBT25ELE1BQU0sT0FBTyxnQkFBZ0I7SUFFUDtJQUFwQixZQUFvQixTQUFvQyxFQUFFLFdBQW1DO1FBQXpFLGNBQVMsR0FBVCxTQUFTLENBQTJCO1FBQ3RELElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLG9EQUFvRDtRQUNwRCw2R0FBNkc7SUFDL0csQ0FBQztJQUVELFdBQVcsQ0FBeUI7SUFFcEMsaUJBQWlCO0lBQ0QsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQyxZQUFZO0lBUVosT0FBTyxHQUFHLElBQUksQ0FBQztJQUVPLFNBQVMsQ0FBVTtJQUd6QyxZQUFZLENBQUMsRUFBYztRQUN6QixJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVCLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxDQUFDO1lBRTFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO29CQUM5QixRQUFRLEVBQUU7d0JBQ1IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTzt3QkFDeEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTztxQkFDekI7b0JBQ0QsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7aUJBQ3RCLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7b0JBQzdCLFFBQVEsRUFBRTt3QkFDUixDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPO3dCQUN4QixDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPO3FCQUN6QjtvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDakIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ1QsQ0FBQztJQUNILENBQUM7SUFHRCxXQUFXLENBQUMsRUFBYztRQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDN0IsUUFBUSxFQUFFO2dCQUNSLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87Z0JBQ3hCLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87YUFDekI7WUFDRCxVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsVUFBVSxDQUFDLEVBQWM7UUFDdkIsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNuRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ3RFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDYixTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2hDLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUN4RCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO3VHQXZFVSxnQkFBZ0I7MkZBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFKNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsY0FBYyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3pDO21JQVlpQixPQUFPO3NCQUF0QixLQUFLO2dCQVNOLE9BQU87c0JBTk4sV0FBVzt1QkFBQyxpQkFBaUI7O3NCQUM3QixXQUFXO3VCQUFDLHNCQUFzQjs7c0JBQ2xDLFdBQVc7dUJBQUMsa0JBQWtCOztzQkFDOUIsV0FBVzt1QkFBQyxhQUFhOztzQkFDekIsV0FBVzt1QkFBQyxlQUFlOztzQkFDM0IsV0FBVzt1QkFBQyxZQUFZO2dCQUdILFNBQVM7c0JBQTlCLFdBQVc7dUJBQUMsT0FBTztnQkFHcEIsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkEwQnRDLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBWXJDLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEJzT2JzZXJ2ZVNpemVEaXJlY3RpdmUgfSBmcm9tIFwiQG1pbnRwbGF5ZXIvbmctc3dpcGVyL29ic2VydmUtc2l6ZVwiO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgZmlsdGVyLCB0YWtlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IEJzU3dpcGVDb250YWluZXJEaXJlY3RpdmUgfSBmcm9tIFwiLi4vc3dpcGUtY29udGFpbmVyL3N3aXBlLWNvbnRhaW5lci5kaXJlY3RpdmVcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2JzU3dpcGVdJyxcbiAgaG9zdERpcmVjdGl2ZXM6IFtCc09ic2VydmVTaXplRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBCc1N3aXBlRGlyZWN0aXZlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRhaW5lcjogQnNTd2lwZUNvbnRhaW5lckRpcmVjdGl2ZSwgb2JzZXJ2ZVNpemU6IEJzT2JzZXJ2ZVNpemVEaXJlY3RpdmUpIHtcbiAgICB0aGlzLm9ic2VydmVTaXplID0gb2JzZXJ2ZVNpemU7XG4gICAgLy8gY29udGFpbmVyLm9yaWVudGF0aW9uJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgIC8vICAgLnN1YnNjcmliZShvcmllbnRhdGlvbiA9PiB0aGlzLmhvc3RDbGFzcyA9IChvcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJykgPyAnZC1ibG9jaycgOiAnZC1pbmxpbmUtYmxvY2snKTtcbiAgfVxuXG4gIG9ic2VydmVTaXplOiBCc09ic2VydmVTaXplRGlyZWN0aXZlO1xuXG4gIC8vI3JlZ2lvbiBPZmZzaWRlXG4gIEBJbnB1dCgpIHB1YmxpYyBvZmZzaWRlID0gZmFsc2U7XG4gIC8vI2VuZHJlZ2lvblxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYWxpZ24tdG9wJylcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kLWlubGluZS1ibG9jaycpXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZmxvYXQtbm9uZScpXG4gIEBIb3N0QmluZGluZygnY2xhc3Mudy0xMDAnKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnBlLWF1dG8nKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1lLTAnKVxuICBjbGFzc2VzID0gdHJ1ZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgaG9zdENsYXNzPzogc3RyaW5nO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBbJyRldmVudCddKVxuICBvblRvdWNoU3RhcnQoZXY6IFRvdWNoRXZlbnQpIHtcbiAgICBpZiAoZXYudG91Y2hlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLmNvbnRhaW5lci5wZW5kaW5nQW5pbWF0aW9uPy5maW5pc2goKTtcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyLnN0YXJ0VG91Y2gkLm5leHQoe1xuICAgICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgICB4OiBldi50b3VjaGVzWzBdLmNsaWVudFgsXG4gICAgICAgICAgICB5OiBldi50b3VjaGVzWzBdLmNsaWVudFksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KCksXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNvbnRhaW5lci5sYXN0VG91Y2gkLm5leHQoe1xuICAgICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgICB4OiBldi50b3VjaGVzWzBdLmNsaWVudFgsXG4gICAgICAgICAgICB5OiBldi50b3VjaGVzWzBdLmNsaWVudFksXG4gICAgICAgICAgfSxcbiAgICAgICAgICBpc1RvdWNoaW5nOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH0sIDIwKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd0b3VjaG1vdmUnLCBbJyRldmVudCddKVxuICBvblRvdWNoTW92ZShldjogVG91Y2hFdmVudCkge1xuICAgIHRoaXMuY29udGFpbmVyLmxhc3RUb3VjaCQubmV4dCh7XG4gICAgICBwb3NpdGlvbjoge1xuICAgICAgICB4OiBldi50b3VjaGVzWzBdLmNsaWVudFgsXG4gICAgICAgIHk6IGV2LnRvdWNoZXNbMF0uY2xpZW50WSxcbiAgICAgIH0sXG4gICAgICBpc1RvdWNoaW5nOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigndG91Y2hlbmQnLCBbJyRldmVudCddKVxuICBvblRvdWNoRW5kKGV2OiBUb3VjaEV2ZW50KSB7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5jb250YWluZXIuc3RhcnRUb3VjaCQsIHRoaXMuY29udGFpbmVyLmxhc3RUb3VjaCRdKVxuICAgICAgLnBpcGUoZmlsdGVyKChbc3RhcnRUb3VjaCwgbGFzdFRvdWNoXSkgPT4gISFzdGFydFRvdWNoICYmICEhbGFzdFRvdWNoKSlcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKChbc3RhcnRUb3VjaCwgbGFzdFRvdWNoXSkgPT4ge1xuICAgICAgICBpZiAoISFzdGFydFRvdWNoICYmICEhbGFzdFRvdWNoKSB7XG4gICAgICAgICAgY29uc3QgZHggPSBsYXN0VG91Y2gucG9zaXRpb24ueCAtIHN0YXJ0VG91Y2gucG9zaXRpb24ueDtcbiAgICAgICAgICB0aGlzLmNvbnRhaW5lci5vblN3aXBlKGR4KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxufVxuIl19
@@ -0,0 +1,229 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
+ import { animate, style } from '@angular/animations';
4
+ import { ContentChildren, Directive, EventEmitter, forwardRef, HostBinding, Inject, Input, Output } from '@angular/core';
5
+ import { BehaviorSubject, combineLatest, debounceTime, delay, filter, map, mergeMap, take } from 'rxjs';
6
+ import { BsObserveSizeDirective } from '@mintplayer/ng-swiper/observe-size';
7
+ import { BsSwipeDirective } from '../swipe/swipe.directive';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/animations";
10
+ import * as i2 from "@mintplayer/ng-swiper/observe-size";
11
+ export class BsSwipeContainerDirective {
12
+ animationBuilder;
13
+ observeSize;
14
+ constructor(element, animationBuilder, document, observeSize) {
15
+ this.animationBuilder = animationBuilder;
16
+ this.observeSize = observeSize;
17
+ this.containerElement = element;
18
+ this.document = document;
19
+ this.offset$ = combineLatest([this.startTouch$, this.lastTouch$, this.imageIndex$, this.isViewInited$])
20
+ .pipe(map(([startTouch, lastTouch, imageIndex, isViewInited]) => {
21
+ if (!isViewInited) {
22
+ return (-imageIndex * 100);
23
+ }
24
+ else if (!!startTouch && !!lastTouch) {
25
+ return (-imageIndex * 100 + (lastTouch.position.x - startTouch.position.x) / this.containerElement.nativeElement.clientWidth * 100);
26
+ }
27
+ else {
28
+ return (-imageIndex * 100);
29
+ }
30
+ }));
31
+ this.padLeft$ = this.swipes$.pipe(map(swipes => {
32
+ if (!swipes) {
33
+ return 0;
34
+ }
35
+ let count = 0;
36
+ for (const s of swipes) {
37
+ if (!s.offside) {
38
+ break;
39
+ }
40
+ else {
41
+ count++;
42
+ }
43
+ }
44
+ return count;
45
+ }));
46
+ this.padRight$ = this.swipes$.pipe(map(swipes => {
47
+ if (!swipes) {
48
+ return 0;
49
+ }
50
+ let count = 0;
51
+ for (const s of swipes.toArray().reverse()) {
52
+ if (!s.offside) {
53
+ break;
54
+ }
55
+ else {
56
+ count++;
57
+ }
58
+ }
59
+ return count;
60
+ }));
61
+ this.offsetLeft$ = combineLatest([this.offset$, this.padLeft$])
62
+ .pipe(map(([offset, padLeft]) => offset - padLeft * 100));
63
+ this.offsetRight$ = combineLatest([this.offset$, this.padLeft$, this.padRight$])
64
+ .pipe(map(([offset, padLeft, padRight]) => -(offset - padLeft * 100) - (padRight - 1) * 100));
65
+ this.offsetLeft$.pipe(takeUntilDestroyed())
66
+ .subscribe(offsetLeft => this.offsetLeft = offsetLeft);
67
+ this.offsetRight$.pipe(takeUntilDestroyed())
68
+ .subscribe(offsetRight => this.offsetRight = offsetRight);
69
+ this.imageIndex$.pipe(takeUntilDestroyed())
70
+ .subscribe(imageIndex => this.imageIndexChange.emit(imageIndex));
71
+ this.actualSwipes$ = this.swipes$
72
+ .pipe(map(swipes => {
73
+ if (swipes) {
74
+ return swipes.filter(swipe => !swipe.offside);
75
+ }
76
+ else {
77
+ return [];
78
+ }
79
+ }));
80
+ this.slideSizes$ = this.actualSwipes$
81
+ .pipe(delay(400), filter(swipes => !!swipes))
82
+ .pipe(mergeMap(swipes => combineLatest(swipes.map(swipe => swipe.observeSize.size$))));
83
+ this.currentSlideHeight$ = combineLatest([this.slideSizes$, this.imageIndex$])
84
+ .pipe(map(([slideSizes, imageIndex]) => {
85
+ const maxHeight = Math.max(...slideSizes.map(s => s?.height ?? 1));
86
+ console.log('maxHeight', { maxHeight, slideSizes });
87
+ const currHeight = slideSizes[imageIndex]?.height ?? maxHeight;
88
+ // switch (orientation) {
89
+ // case 'horizontal':
90
+ return currHeight;
91
+ // case 'vertical':
92
+ // return maxHeight;
93
+ // }
94
+ }))
95
+ .pipe(debounceTime(10));
96
+ }
97
+ offsetLeft = null;
98
+ offsetRight = null;
99
+ offsetTop = null;
100
+ offsetBottom = null;
101
+ set swipes(value) {
102
+ setTimeout(() => this.swipes$.next(value));
103
+ }
104
+ minimumOffset = 50;
105
+ //#region ImageIndex
106
+ get imageIndex() {
107
+ return this.imageIndex$.value;
108
+ }
109
+ set imageIndex(value) {
110
+ this.imageIndex$.next(value);
111
+ }
112
+ imageIndexChange = new EventEmitter();
113
+ //#endregion
114
+ actualSwipes$;
115
+ isViewInited$ = new BehaviorSubject(false);
116
+ startTouch$ = new BehaviorSubject(null);
117
+ lastTouch$ = new BehaviorSubject(null);
118
+ swipes$ = new BehaviorSubject(null);
119
+ // TODO: slide sizes instead
120
+ slideSizes$;
121
+ imageIndex$ = new BehaviorSubject(0);
122
+ currentSlideHeight$;
123
+ pendingAnimation;
124
+ containerElement;
125
+ document;
126
+ // TODO: Don't just keep px, but both px and % using currentslidesize$
127
+ offset$;
128
+ offsetLeft$;
129
+ offsetRight$;
130
+ padLeft$;
131
+ padRight$;
132
+ ngAfterViewInit() {
133
+ this.isViewInited$.next(true);
134
+ }
135
+ animateToIndexByDx(dx) {
136
+ combineLatest([this.imageIndex$, this.actualSwipes$]).pipe(take(1))
137
+ .subscribe(([imageIndex, actualSwipes]) => {
138
+ const direction = dx > 0 ? 'left' : 'right';
139
+ let newIndex;
140
+ if (Math.abs(dx) < this.minimumOffset) {
141
+ newIndex = imageIndex;
142
+ }
143
+ else {
144
+ newIndex = imageIndex + (direction === 'right' ? 1 : -1);
145
+ }
146
+ this.animateToIndex(imageIndex, newIndex, dx, actualSwipes?.length ?? 1);
147
+ });
148
+ }
149
+ animateToIndex(oldIndex, newIndex, dx, totalSlides) {
150
+ this.pendingAnimation = this.animationBuilder.build([
151
+ style({ 'margin-left': (-(oldIndex + 1) * this.containerElement.nativeElement.clientWidth + dx) + 'px', 'margin-right': ((oldIndex + 1) * this.containerElement.nativeElement.clientWidth - dx) + 'px' }),
152
+ animate('500ms ease', style({ 'margin-left': (-(newIndex + 1) * this.containerElement.nativeElement.clientWidth) + 'px', 'margin-right': ((newIndex + 1) * this.containerElement.nativeElement.clientWidth) + 'px' })),
153
+ ]).create(this.containerElement.nativeElement);
154
+ this.pendingAnimation.onDone(() => {
155
+ // Correct the image index
156
+ if (newIndex === -1) {
157
+ this.imageIndex$.next(totalSlides - 1);
158
+ }
159
+ else if (newIndex === totalSlides) {
160
+ this.imageIndex$.next(0);
161
+ }
162
+ else {
163
+ this.imageIndex$.next(newIndex);
164
+ }
165
+ this.startTouch$.next(null);
166
+ this.lastTouch$.next(null);
167
+ this.pendingAnimation?.destroy();
168
+ this.pendingAnimation = undefined;
169
+ });
170
+ this.pendingAnimation.play();
171
+ }
172
+ onSwipe(dx) {
173
+ this.animateToIndexByDx(dx);
174
+ }
175
+ previous() {
176
+ this.gotoAnimate(-1, 'relative');
177
+ }
178
+ next() {
179
+ this.gotoAnimate(1, 'relative');
180
+ }
181
+ goto(index) {
182
+ this.gotoAnimate(index, 'absolute');
183
+ }
184
+ gotoAnimate(index, type) {
185
+ this.pendingAnimation?.finish();
186
+ setTimeout(() => {
187
+ combineLatest([this.actualSwipes$, this.imageIndex$]).pipe(take(1)).subscribe(([actualSwipes, imageIndex]) => {
188
+ this.pendingAnimation?.finish();
189
+ const idx = (type === 'relative') ? imageIndex + index : index;
190
+ this.animateToIndex(imageIndex, idx, 0, actualSwipes?.length ?? 1);
191
+ });
192
+ }, 20);
193
+ }
194
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsSwipeContainerDirective, deps: [{ token: i0.ElementRef }, { token: i1.AnimationBuilder }, { token: DOCUMENT }, { token: i2.BsObserveSizeDirective }], target: i0.ɵɵFactoryTarget.Directive });
195
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: BsSwipeContainerDirective, selector: "[bsSwipeContainer]", inputs: { minimumOffset: "minimumOffset", imageIndex: "imageIndex" }, outputs: { imageIndexChange: "imageIndexChange" }, host: { properties: { "style.margin-left.%": "this.offsetLeft", "style.margin-right.%": "this.offsetRight", "style.margin-top.%": "this.offsetTop", "style.margin-bottom.%": "this.offsetBottom" } }, queries: [{ propertyName: "swipes", predicate: i0.forwardRef(() => BsSwipeDirective) }], exportAs: ["bsSwipeContainer"], hostDirectives: [{ directive: i2.BsObserveSizeDirective }], ngImport: i0 });
196
+ }
197
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsSwipeContainerDirective, decorators: [{
198
+ type: Directive,
199
+ args: [{
200
+ selector: '[bsSwipeContainer]',
201
+ exportAs: 'bsSwipeContainer',
202
+ hostDirectives: [BsObserveSizeDirective]
203
+ }]
204
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.AnimationBuilder }, { type: undefined, decorators: [{
205
+ type: Inject,
206
+ args: [DOCUMENT]
207
+ }] }, { type: i2.BsObserveSizeDirective }], propDecorators: { offsetLeft: [{
208
+ type: HostBinding,
209
+ args: ['style.margin-left.%']
210
+ }], offsetRight: [{
211
+ type: HostBinding,
212
+ args: ['style.margin-right.%']
213
+ }], offsetTop: [{
214
+ type: HostBinding,
215
+ args: ['style.margin-top.%']
216
+ }], offsetBottom: [{
217
+ type: HostBinding,
218
+ args: ['style.margin-bottom.%']
219
+ }], swipes: [{
220
+ type: ContentChildren,
221
+ args: [forwardRef(() => BsSwipeDirective)]
222
+ }], minimumOffset: [{
223
+ type: Input
224
+ }], imageIndex: [{
225
+ type: Input
226
+ }], imageIndexChange: [{
227
+ type: Output
228
+ }] } });
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpcGUtY29udGFpbmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1zd2lwZXIvc3dpcGVyL3NyYy9kaXJlY3RpdmVzL3N3aXBlLWNvbnRhaW5lci9zd2lwZS1jb250YWluZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFxQyxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RixPQUFPLEVBQWlCLGVBQWUsRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDL0osT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBYyxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEgsT0FBTyxFQUFFLHNCQUFzQixFQUFRLE1BQU0sb0NBQW9DLENBQUM7QUFHbEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFPNUQsTUFBTSxPQUFPLHlCQUF5QjtJQUVLO0lBQTZFO0lBQXRILFlBQVksT0FBbUIsRUFBVSxnQkFBa0MsRUFBb0IsUUFBYSxFQUFVLFdBQW1DO1FBQWhILHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFBMkMsZ0JBQVcsR0FBWCxXQUFXLENBQXdCO1FBQ3ZKLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUM7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBYSxRQUFRLENBQUM7UUFD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NEVBRWlELFFBQVE7MkZBRmxGLHlCQUF5QixvYUEyRkYsZ0JBQWdCOzsyRkEzRnZDLHlCQUF5QjtrQkFMckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixjQUFjLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDekM7OzBCQUcrRSxNQUFNOzJCQUFDLFFBQVE7OEVBcUZ6RCxVQUFVO3NCQUE3QyxXQUFXO3VCQUFDLHFCQUFxQjtnQkFDRyxXQUFXO3NCQUEvQyxXQUFXO3VCQUFDLHNCQUFzQjtnQkFDQSxTQUFTO3NCQUEzQyxXQUFXO3VCQUFDLG9CQUFvQjtnQkFDSyxZQUFZO3NCQUFqRCxXQUFXO3VCQUFDLHVCQUF1QjtnQkFDcUIsTUFBTTtzQkFBOUQsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7Z0JBRzFDLGFBQWE7c0JBQXJCLEtBQUs7Z0JBTWMsVUFBVTtzQkFBN0IsS0FBSztnQkFHSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBhbmltYXRlLCBBbmltYXRpb25CdWlsZGVyLCBBbmltYXRpb25QbGF5ZXIsIHN0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb250ZW50Q2hpbGRyZW4sIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dCwgT3V0cHV0LCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZGVib3VuY2VUaW1lLCBkZWxheSwgZmlsdGVyLCBtYXAsIG1lcmdlTWFwLCBPYnNlcnZhYmxlLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCc09ic2VydmVTaXplRGlyZWN0aXZlLCBTaXplIH0gZnJvbSAnQG1pbnRwbGF5ZXIvbmctc3dpcGVyL29ic2VydmUtc2l6ZSc7XG5pbXBvcnQgeyBMYXN0VG91Y2ggfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2xhc3QtdG91Y2gnO1xuaW1wb3J0IHsgU3RhcnRUb3VjaCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc3RhcnQtdG91Y2gnO1xuaW1wb3J0IHsgQnNTd2lwZURpcmVjdGl2ZSB9IGZyb20gJy4uL3N3aXBlL3N3aXBlLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tic1N3aXBlQ29udGFpbmVyXScsXG4gIGV4cG9ydEFzOiAnYnNTd2lwZUNvbnRhaW5lcicsXG4gIGhvc3REaXJlY3RpdmVzOiBbQnNPYnNlcnZlU2l6ZURpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgQnNTd2lwZUNvbnRhaW5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnQ6IEVsZW1lbnRSZWYsIHByaXZhdGUgYW5pbWF0aW9uQnVpbGRlcjogQW5pbWF0aW9uQnVpbGRlciwgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQ6IGFueSwgcHJpdmF0ZSBvYnNlcnZlU2l6ZTogQnNPYnNlcnZlU2l6ZURpcmVjdGl2ZSkge1xuICAgIHRoaXMuY29udGFpbmVyRWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgdGhpcy5kb2N1bWVudCA9IDxEb2N1bWVudD5kb2N1bWVudDtcbiAgICB0aGlzLm9mZnNldCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnN0YXJ0VG91Y2gkLCB0aGlzLmxhc3RUb3VjaCQsIHRoaXMuaW1hZ2VJbmRleCQsIHRoaXMuaXNWaWV3SW5pdGVkJF0pXG4gICAgICAucGlwZShtYXAoKFtzdGFydFRvdWNoLCBsYXN0VG91Y2gsIGltYWdlSW5kZXgsIGlzVmlld0luaXRlZF0pID0+IHtcbiAgICAgICAgaWYgKCFpc1ZpZXdJbml0ZWQpIHtcbiAgICAgICAgICByZXR1cm4gKC1pbWFnZUluZGV4ICogMTAwKTtcbiAgICAgICAgfSBlbHNlIGlmICghIXN0YXJ0VG91Y2ggJiYgISFsYXN0VG91Y2gpIHtcbiAgICAgICAgICByZXR1cm4gKC1pbWFnZUluZGV4ICogMTAwICsgKGxhc3RUb3VjaC5wb3NpdGlvbi54IC0gc3RhcnRUb3VjaC5wb3NpdGlvbi54KSAvIHRoaXMuY29udGFpbmVyRWxlbWVudC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoICogMTAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gKC1pbWFnZUluZGV4ICogMTAwKTtcbiAgICAgICAgfVxuICAgICAgfSkpO1xuXG4gICAgICB0aGlzLnBhZExlZnQkID0gdGhpcy5zd2lwZXMkLnBpcGUobWFwKHN3aXBlcyA9PiB7XG4gICAgICAgIGlmICghc3dpcGVzKSB7XG4gICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY291bnQgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IHMgb2Ygc3dpcGVzKSB7XG4gICAgICAgICAgaWYgKCFzLm9mZnNpZGUpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb3VudCsrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY291bnQ7XG4gICAgICB9KSk7XG5cbiAgICAgIHRoaXMucGFkUmlnaHQkID0gdGhpcy5zd2lwZXMkLnBpcGUobWFwKHN3aXBlcyA9PiB7XG4gICAgICAgIGlmICghc3dpcGVzKSB7XG4gICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY291bnQgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IHMgb2Ygc3dpcGVzLnRvQXJyYXkoKS5yZXZlcnNlKCkpIHtcbiAgICAgICAgICBpZiAoIXMub2Zmc2lkZSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvdW50Kys7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb3VudDtcbiAgICAgIH0pKTtcblxuICAgIHRoaXMub2Zmc2V0TGVmdCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLm9mZnNldCQsIHRoaXMucGFkTGVmdCRdKVxuICAgICAgLnBpcGUobWFwKChbb2Zmc2V0LCBwYWRMZWZ0XSkgPT4gb2Zmc2V0IC0gcGFkTGVmdCAqIDEwMCkpO1xuICAgIHRoaXMub2Zmc2V0UmlnaHQkID0gY29tYmluZUxhdGVzdChbdGhpcy5vZmZzZXQkLCB0aGlzLnBhZExlZnQkLCB0aGlzLnBhZFJpZ2h0JF0pXG4gICAgICAucGlwZShtYXAoKFtvZmZzZXQsIHBhZExlZnQsIHBhZFJpZ2h0XSkgPT4gLShvZmZzZXQgLSBwYWRMZWZ0ICogMTAwKSAtIChwYWRSaWdodCAtIDEpICogMTAwKSk7XG4gICAgdGhpcy5vZmZzZXRMZWZ0JC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZShvZmZzZXRMZWZ0ID0+IHRoaXMub2Zmc2V0TGVmdCA9IG9mZnNldExlZnQpO1xuICAgIHRoaXMub2Zmc2V0UmlnaHQkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKG9mZnNldFJpZ2h0ID0+IHRoaXMub2Zmc2V0UmlnaHQgPSBvZmZzZXRSaWdodCk7XG4gICAgdGhpcy5pbWFnZUluZGV4JC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZShpbWFnZUluZGV4ID0+IHRoaXMuaW1hZ2VJbmRleENoYW5nZS5lbWl0KGltYWdlSW5kZXgpKTtcblxuICAgIHRoaXMuYWN0dWFsU3dpcGVzJCA9IHRoaXMuc3dpcGVzJFxuICAgICAgLnBpcGUobWFwKHN3aXBlcyA9PiB7XG4gICAgICAgIGlmIChzd2lwZXMpIHtcbiAgICAgICAgICByZXR1cm4gc3dpcGVzLmZpbHRlcihzd2lwZSA9PiAhc3dpcGUub2Zmc2lkZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICB9KSk7XG5cbiAgICB0aGlzLnNsaWRlU2l6ZXMkID0gdGhpcy5hY3R1YWxTd2lwZXMkXG4gICAgICAucGlwZShkZWxheSg0MDApLCBmaWx0ZXIoc3dpcGVzID0+ICEhc3dpcGVzKSlcbiAgICAgIC5waXBlKG1lcmdlTWFwKHN3aXBlcyA9PiBjb21iaW5lTGF0ZXN0KHN3aXBlcy5tYXAoc3dpcGUgPT4gc3dpcGUub2JzZXJ2ZVNpemUuc2l6ZSQpKSkpO1xuXG4gICAgdGhpcy5jdXJyZW50U2xpZGVIZWlnaHQkID0gY29tYmluZUxhdGVzdChbdGhpcy5zbGlkZVNpemVzJCwgdGhpcy5pbWFnZUluZGV4JF0pXG4gICAgICAucGlwZShtYXAoKFtzbGlkZVNpemVzLCBpbWFnZUluZGV4XSkgPT4ge1xuICAgICAgICBjb25zdCBtYXhIZWlnaHQgPSBNYXRoLm1heCguLi5zbGlkZVNpemVzLm1hcChzID0+IHM/LmhlaWdodCA/PyAxKSk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdtYXhIZWlnaHQnLCB7bWF4SGVpZ2h0LCBzbGlkZVNpemVzfSk7XG4gICAgICAgIGNvbnN0IGN1cnJIZWlnaHQ6IG51bWJlciA9IHNsaWRlU2l6ZXNbaW1hZ2VJbmRleF0/LmhlaWdodCA/PyBtYXhIZWlnaHQ7XG4gICAgICAgIC8vIHN3aXRjaCAob3JpZW50YXRpb24pIHtcbiAgICAgICAgLy8gICBjYXNlICdob3Jpem9udGFsJzpcbiAgICAgICAgICAgIHJldHVybiBjdXJySGVpZ2h0O1xuICAgICAgICAvLyAgIGNhc2UgJ3ZlcnRpY2FsJzpcbiAgICAgICAgLy8gICAgIHJldHVybiBtYXhIZWlnaHQ7XG4gICAgICAgIC8vIH1cbiAgICAgIH0pKVxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwKSk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1hcmdpbi1sZWZ0LiUnKSBvZmZzZXRMZWZ0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXJnaW4tcmlnaHQuJScpIG9mZnNldFJpZ2h0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXJnaW4tdG9wLiUnKSBvZmZzZXRUb3A6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1hcmdpbi1ib3R0b20uJScpIG9mZnNldEJvdHRvbTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBCc1N3aXBlRGlyZWN0aXZlKSkgc2V0IHN3aXBlcyh2YWx1ZTogUXVlcnlMaXN0PEJzU3dpcGVEaXJlY3RpdmU+KSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnN3aXBlcyQubmV4dCh2YWx1ZSkpO1xuICB9XG4gIEBJbnB1dCgpIG1pbmltdW1PZmZzZXQgPSA1MDtcblxuICAvLyNyZWdpb24gSW1hZ2VJbmRleFxuICBwdWJsaWMgZ2V0IGltYWdlSW5kZXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW1hZ2VJbmRleCQudmFsdWU7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIHNldCBpbWFnZUluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLmltYWdlSW5kZXgkLm5leHQodmFsdWUpO1xuICB9XG4gIEBPdXRwdXQoKSBpbWFnZUluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIC8vI2VuZHJlZ2lvblxuICBcbiAgYWN0dWFsU3dpcGVzJDogT2JzZXJ2YWJsZTxCc1N3aXBlRGlyZWN0aXZlW10+O1xuICBpc1ZpZXdJbml0ZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHN0YXJ0VG91Y2gkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTdGFydFRvdWNoIHwgbnVsbD4obnVsbCk7XG4gIGxhc3RUb3VjaCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PExhc3RUb3VjaCB8IG51bGw+KG51bGwpO1xuICBzd2lwZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxRdWVyeUxpc3Q8QnNTd2lwZURpcmVjdGl2ZT4gfCBudWxsPihudWxsKTtcbiAgLy8gVE9ETzogc2xpZGUgc2l6ZXMgaW5zdGVhZFxuICBzbGlkZVNpemVzJDogT2JzZXJ2YWJsZTwoU2l6ZSB8IHVuZGVmaW5lZClbXT47XG4gIGltYWdlSW5kZXgkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICBjdXJyZW50U2xpZGVIZWlnaHQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gIHBlbmRpbmdBbmltYXRpb24/OiBBbmltYXRpb25QbGF5ZXI7XG4gIGNvbnRhaW5lckVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBkb2N1bWVudDogRG9jdW1lbnQ7XG5cbiAgLy8gVE9ETzogRG9uJ3QganVzdCBrZWVwIHB4LCBidXQgYm90aCBweCBhbmQgJSB1c2luZyBjdXJyZW50c2xpZGVzaXplJFxuICBvZmZzZXQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gIG9mZnNldExlZnQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gIG9mZnNldFJpZ2h0JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICBwYWRMZWZ0JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICBwYWRSaWdodCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5pc1ZpZXdJbml0ZWQkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBhbmltYXRlVG9JbmRleEJ5RHgoZHg6IG51bWJlcikge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuaW1hZ2VJbmRleCQsIHRoaXMuYWN0dWFsU3dpcGVzJF0pLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKFtpbWFnZUluZGV4LCBhY3R1YWxTd2lwZXNdKSA9PiB7XG4gICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IGR4ID4gMCA/ICdsZWZ0JyA6ICdyaWdodCc7XG4gICAgICBcbiAgICAgICAgbGV0IG5ld0luZGV4OiBudW1iZXI7XG4gICAgICAgIGlmIChNYXRoLmFicyhkeCkgPCB0aGlzLm1pbmltdW1PZmZzZXQpIHtcbiAgICAgICAgICBuZXdJbmRleCA9IGltYWdlSW5kZXg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3SW5kZXggPSBpbWFnZUluZGV4ICsgKGRpcmVjdGlvbiA9PT0gJ3JpZ2h0JyA/IDEgOiAtMSk7XG4gICAgICAgIH1cbiAgXG4gICAgICAgIHRoaXMuYW5pbWF0ZVRvSW5kZXgoaW1hZ2VJbmRleCwgbmV3SW5kZXgsIGR4LCBhY3R1YWxTd2lwZXM/Lmxlbmd0aCA/PyAxKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgYW5pbWF0ZVRvSW5kZXgob2xkSW5kZXg6IG51bWJlciwgbmV3SW5kZXg6IG51bWJlciwgZHg6IG51bWJlciwgdG90YWxTbGlkZXM6IG51bWJlcikge1xuICAgIHRoaXMucGVuZGluZ0FuaW1hdGlvbiA9IHRoaXMuYW5pbWF0aW9uQnVpbGRlci5idWlsZChbXG4gICAgICBzdHlsZSh7ICdtYXJnaW4tbGVmdCc6ICgtKG9sZEluZGV4ICsgMSkgKiB0aGlzLmNvbnRhaW5lckVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCArIGR4KSArICdweCcsICdtYXJnaW4tcmlnaHQnOiAoKG9sZEluZGV4ICsgMSkgKiB0aGlzLmNvbnRhaW5lckVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCAtIGR4KSArICdweCcgfSksXG4gICAgICBhbmltYXRlKCc1MDBtcyBlYXNlJywgc3R5bGUoeyAnbWFyZ2luLWxlZnQnOiAoLShuZXdJbmRleCArIDEpICogdGhpcy5jb250YWluZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGgpICsgJ3B4JywgJ21hcmdpbi1yaWdodCc6ICgobmV3SW5kZXggKyAxKSAqIHRoaXMuY29udGFpbmVyRWxlbWVudC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoKSArICdweCcgfSkpLFxuICAgIF0pLmNyZWF0ZSh0aGlzLmNvbnRhaW5lckVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy5wZW5kaW5nQW5pbWF0aW9uLm9uRG9uZSgoKSA9PiB7XG4gICAgICAvLyBDb3JyZWN0IHRoZSBpbWFnZSBpbmRleFxuICAgICAgaWYgKG5ld0luZGV4ID09PSAtMSkge1xuICAgICAgICB0aGlzLmltYWdlSW5kZXgkLm5leHQodG90YWxTbGlkZXMgLSAxKTtcbiAgICAgIH0gZWxzZSBpZiAobmV3SW5kZXggPT09IHRvdGFsU2xpZGVzKSB7XG4gICAgICAgIHRoaXMuaW1hZ2VJbmRleCQubmV4dCgwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW1hZ2VJbmRleCQubmV4dChuZXdJbmRleCk7XG4gICAgICB9XG4gICAgICB0aGlzLnN0YXJ0VG91Y2gkLm5leHQobnVsbCk7XG4gICAgICB0aGlzLmxhc3RUb3VjaCQubmV4dChudWxsKTtcbiAgICAgIHRoaXMucGVuZGluZ0FuaW1hdGlvbj8uZGVzdHJveSgpO1xuICAgICAgdGhpcy5wZW5kaW5nQW5pbWF0aW9uID0gdW5kZWZpbmVkO1xuICAgIH0pO1xuICAgIHRoaXMucGVuZGluZ0FuaW1hdGlvbi5wbGF5KCk7XG4gIH1cblxuICBvblN3aXBlKGR4OiBudW1iZXIpIHtcbiAgICB0aGlzLmFuaW1hdGVUb0luZGV4QnlEeChkeCk7XG4gIH1cblxuICBwcmV2aW91cygpIHtcbiAgICB0aGlzLmdvdG9BbmltYXRlKC0xLCAncmVsYXRpdmUnKTtcbiAgfVxuXG4gIG5leHQoKSB7XG4gICAgdGhpcy5nb3RvQW5pbWF0ZSgxLCAncmVsYXRpdmUnKTtcbiAgfVxuXG4gIGdvdG8oaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuZ290b0FuaW1hdGUoaW5kZXgsICdhYnNvbHV0ZScpO1xuICB9XG5cbiAgcHJpdmF0ZSBnb3RvQW5pbWF0ZShpbmRleDogbnVtYmVyLCB0eXBlOiAnYWJzb2x1dGUnIHwgJ3JlbGF0aXZlJykge1xuICAgIHRoaXMucGVuZGluZ0FuaW1hdGlvbj8uZmluaXNoKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmFjdHVhbFN3aXBlcyQsIHRoaXMuaW1hZ2VJbmRleCRdKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoW2FjdHVhbFN3aXBlcywgaW1hZ2VJbmRleF0pID0+IHtcbiAgICAgICAgdGhpcy5wZW5kaW5nQW5pbWF0aW9uPy5maW5pc2goKTtcbiAgICAgICAgY29uc3QgaWR4ID0gKHR5cGUgPT09ICdyZWxhdGl2ZScpID8gaW1hZ2VJbmRleCArIGluZGV4IDogaW5kZXg7XG4gICAgICAgIHRoaXMuYW5pbWF0ZVRvSW5kZXgoaW1hZ2VJbmRleCwgaWR4LCAwLCBhY3R1YWxTd2lwZXM/Lmxlbmd0aCA/PyAxKTtcbiAgICAgIH0pO1xuICAgIH0sIDIwKTtcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,4 @@
1
+ export * from './last-touch';
2
+ export * from './point';
3
+ export * from './start-touch';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctc3dpcGVyL3N3aXBlci9zcmMvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGFzdC10b3VjaCc7XG5leHBvcnQgKiBmcm9tICcuL3BvaW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3RhcnQtdG91Y2gnOyJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFzdC10b3VjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1zd2lwZXIvc3dpcGVyL3NyYy9pbnRlcmZhY2VzL2xhc3QtdG91Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvaW50IH0gZnJvbSBcIi4vcG9pbnRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBMYXN0VG91Y2gge1xuICAgIHBvc2l0aW9uOiBQb2ludDtcbiAgICBpc1RvdWNoaW5nOiBib29sZWFuO1xufVxuICAiXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctc3dpcGVyL3N3aXBlci9zcmMvaW50ZXJmYWNlcy9wb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBQb2ludCB7XG4gICAgeDogbnVtYmVyO1xuICAgIHk6IG51bWJlcjtcbn1cbiAgIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtdG91Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctc3dpcGVyL3N3aXBlci9zcmMvaW50ZXJmYWNlcy9zdGFydC10b3VjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9pbnQgfSBmcm9tIFwiLi9wb2ludFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXJ0VG91Y2gge1xuICAgIHBvc2l0aW9uOiBQb2ludDtcbiAgICB0aW1lc3RhbXA6IG51bWJlcjtcbn1cbiAgIl19
@@ -0,0 +1,19 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { BsSwipeDirective } from './directives/swipe/swipe.directive';
4
+ import { BsSwipeContainerDirective } from './directives/swipe-container/swipe-container.directive';
5
+ import * as i0 from "@angular/core";
6
+ export class BsSwiperModule {
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsSwiperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: BsSwiperModule, declarations: [BsSwipeDirective, BsSwipeContainerDirective], imports: [CommonModule], exports: [BsSwipeDirective, BsSwipeContainerDirective] });
9
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsSwiperModule, imports: [CommonModule] });
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsSwiperModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ imports: [CommonModule],
15
+ declarations: [BsSwipeDirective, BsSwipeContainerDirective],
16
+ exports: [BsSwipeDirective, BsSwipeContainerDirective],
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpcGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1zd2lwZXIvc3dpcGVyL3NyYy9zd2lwZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDOztBQU9uRyxNQUFNLE9BQU8sY0FBYzt1R0FBZCxjQUFjO3dHQUFkLGNBQWMsaUJBSFYsZ0JBQWdCLEVBQUUseUJBQXlCLGFBRGhELFlBQVksYUFFWixnQkFBZ0IsRUFBRSx5QkFBeUI7d0dBRTFDLGNBQWMsWUFKZixZQUFZOzsyRkFJWCxjQUFjO2tCQUwxQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsWUFBWSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUseUJBQXlCLENBQUM7b0JBQzNELE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLHlCQUF5QixDQUFDO2lCQUN2RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQnNTd2lwZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9zd2lwZS9zd2lwZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQnNTd2lwZUNvbnRhaW5lckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9zd2lwZS1jb250YWluZXIvc3dpcGUtY29udGFpbmVyLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtCc1N3aXBlRGlyZWN0aXZlLCBCc1N3aXBlQ29udGFpbmVyRGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW0JzU3dpcGVEaXJlY3RpdmUsIEJzU3dpcGVDb250YWluZXJEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBCc1N3aXBlck1vZHVsZSB7fVxuIl19
@@ -0,0 +1,58 @@
1
+ import { isPlatformServer } from '@angular/common';
2
+ import * as i0 from '@angular/core';
3
+ import { PLATFORM_ID, Directive, Inject } from '@angular/core';
4
+ import { map, BehaviorSubject } from 'rxjs';
5
+
6
+ class BsObserveSizeDirective {
7
+ element;
8
+ platformId;
9
+ zone;
10
+ constructor(element, platformId, zone) {
11
+ this.element = element;
12
+ this.platformId = platformId;
13
+ this.zone = zone;
14
+ if (!isPlatformServer(this.platformId)) {
15
+ this.observer = new ResizeObserver((entries) => {
16
+ // console.log('resized', entries[0].contentRect);
17
+ this.zone.run(() => this.size$.next(entries[0].contentRect));
18
+ });
19
+ }
20
+ this.width$ = this.size$.pipe(map(size => size?.width));
21
+ this.height$ = this.size$.pipe(map(size => size?.height));
22
+ }
23
+ observer;
24
+ size$ = new BehaviorSubject(undefined);
25
+ width$;
26
+ height$;
27
+ ngAfterViewInit() {
28
+ const el = this.element.nativeElement;
29
+ this.observer?.observe(el);
30
+ this.size$.next({ width: el.clientWidth, height: el.clientHeight });
31
+ }
32
+ ngOnDestroy() {
33
+ if (this.observer) {
34
+ this.observer.unobserve(this.element.nativeElement);
35
+ this.observer.disconnect();
36
+ }
37
+ }
38
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsObserveSizeDirective, deps: [{ token: i0.ElementRef }, { token: PLATFORM_ID }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
39
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: BsObserveSizeDirective, isStandalone: true, selector: "[bsObserveSize]", exportAs: ["bsObserveSize"], ngImport: i0 });
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsObserveSizeDirective, decorators: [{
42
+ type: Directive,
43
+ args: [{
44
+ selector: '[bsObserveSize]',
45
+ standalone: true,
46
+ exportAs: 'bsObserveSize'
47
+ }]
48
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: undefined, decorators: [{
49
+ type: Inject,
50
+ args: [PLATFORM_ID]
51
+ }] }, { type: i0.NgZone }] });
52
+
53
+ /**
54
+ * Generated bundle index. Do not edit.
55
+ */
56
+
57
+ export { BsObserveSizeDirective };
58
+ //# sourceMappingURL=mintplayer-ng-swiper-observe-size.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mintplayer-ng-swiper-observe-size.mjs","sources":["../../../../libs/mintplayer-ng-swiper/observe-size/src/observe-size.directive.ts","../../../../libs/mintplayer-ng-swiper/observe-size/mintplayer-ng-swiper-observe-size.ts"],"sourcesContent":["import { isPlatformServer } from '@angular/common';\r\nimport { AfterViewInit, Directive, ElementRef, Inject, NgZone, OnDestroy, PLATFORM_ID } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject, map } from 'rxjs';\r\nimport { Size } from './size';\r\n\r\n@Directive({\r\n selector: '[bsObserveSize]',\r\n standalone: true,\r\n exportAs: 'bsObserveSize'\r\n})\r\nexport class BsObserveSizeDirective implements AfterViewInit, OnDestroy {\r\n constructor(private element: ElementRef, @Inject(PLATFORM_ID) private platformId: any, private zone: NgZone) {\r\n if (!isPlatformServer(this.platformId)) {\r\n this.observer = new ResizeObserver((entries) => {\r\n // console.log('resized', entries[0].contentRect);\r\n this.zone.run(() => this.size$.next(entries[0].contentRect));\r\n });\r\n }\r\n\r\n this.width$ = this.size$.pipe(map(size => size?.width));\r\n this.height$ = this.size$.pipe(map(size => size?.height));\r\n }\r\n\r\n private observer?: ResizeObserver;\r\n size$ = new BehaviorSubject<Size | undefined>(undefined);\r\n width$: Observable<number | undefined>;\r\n height$: Observable<number | undefined>;\r\n\r\n ngAfterViewInit() {\r\n const el: HTMLElement = this.element.nativeElement;\r\n this.observer?.observe(el);\r\n this.size$.next({ width: el.clientWidth, height: el.clientHeight });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.observer) {\r\n this.observer.unobserve(this.element.nativeElement);\r\n this.observer.disconnect();\r\n }\r\n }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAUa,sBAAsB,CAAA;AACb,IAAA,OAAA,CAAA;AAAkD,IAAA,UAAA,CAAA;AAAyB,IAAA,IAAA,CAAA;AAA/F,IAAA,WAAA,CAAoB,OAAmB,EAA+B,UAAe,EAAU,IAAY,EAAA;QAAvF,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QAA+B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAK;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QACzG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,CAAC,OAAO,KAAI;;gBAE7C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;AAC/D,aAAC,CAAC,CAAC;SACJ;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;KAC3D;AAEO,IAAA,QAAQ,CAAkB;AAClC,IAAA,KAAK,GAAG,IAAI,eAAe,CAAmB,SAAS,CAAC,CAAC;AACzD,IAAA,MAAM,CAAiC;AACvC,IAAA,OAAO,CAAiC;IAExC,eAAe,GAAA;AACb,QAAA,MAAM,EAAE,GAAgB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;AACnD,QAAA,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;KACrE;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;SAC5B;KACF;AA7BU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,4CACgB,WAAW,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2FADjD,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,eAAe;AAC1B,iBAAA,CAAA;;0BAE2C,MAAM;2BAAC,WAAW,CAAA;;;ACX9D;;AAEG;;;;"}