@mintplayer/ng-swiper 18.0.0 → 18.1.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 (43) 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 +106 -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/{lib → swiper/src}/swiper.module.mjs +1 -1
  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 +1 -3
  23. package/observe-size/index.d.ts +2 -0
  24. package/observe-size/src/observe-size.directive.d.ts +18 -0
  25. package/observe-size/src/size.d.ts +4 -0
  26. package/package.json +13 -1
  27. package/swiper/index.d.ts +3 -0
  28. package/swiper/src/directives/swipe/swipe.directive.d.ts +17 -0
  29. package/{lib → swiper/src}/directives/swipe-container/swipe-container.directive.d.ts +6 -3
  30. package/esm2022/lib/directives/index.mjs +0 -3
  31. package/esm2022/lib/directives/swipe/swipe.directive.mjs +0 -119
  32. package/esm2022/lib/directives/swipe-container/swipe-container.directive.mjs +0 -216
  33. package/esm2022/lib/interfaces/index.mjs +0 -4
  34. package/esm2022/lib/interfaces/last-touch.mjs +0 -2
  35. package/esm2022/lib/interfaces/point.mjs +0 -2
  36. package/esm2022/lib/interfaces/start-touch.mjs +0 -2
  37. package/lib/directives/swipe/swipe.directive.d.ts +0 -21
  38. /package/{lib → swiper/src}/directives/index.d.ts +0 -0
  39. /package/{lib → swiper/src}/interfaces/index.d.ts +0 -0
  40. /package/{lib → swiper/src}/interfaces/last-touch.d.ts +0 -0
  41. /package/{lib → swiper/src}/interfaces/point.d.ts +0 -0
  42. /package/{lib → swiper/src}/interfaces/start-touch.d.ts +0 -0
  43. /package/{lib → swiper/src}/swiper.module.d.ts +0 -0
@@ -1,119 +0,0 @@
1
- import { Directive, ElementRef, HostBinding, HostListener, Inject, Input, PLATFORM_ID } from "@angular/core";
2
- import { BehaviorSubject, combineLatest, filter, take } from "rxjs";
3
- import { BsSwipeContainerDirective } from "../swipe-container/swipe-container.directive";
4
- import { isPlatformServer } from "@angular/common";
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../swipe-container/swipe-container.directive";
7
- export class BsSwipeDirective {
8
- container;
9
- platformId;
10
- constructor(container, element, platformId) {
11
- this.container = container;
12
- this.platformId = platformId;
13
- this.element = element;
14
- }
15
- element;
16
- observer;
17
- slideHeight$ = new BehaviorSubject(0);
18
- //#region Offside
19
- offside = false;
20
- //#endregion
21
- classes = true;
22
- onTouchStart(ev) {
23
- if (ev.touches.length === 1) {
24
- ev.preventDefault();
25
- this.container.pendingAnimation?.finish();
26
- setTimeout(() => {
27
- this.container.startTouch$.next({
28
- position: {
29
- x: ev.touches[0].clientX,
30
- y: ev.touches[0].clientY,
31
- },
32
- timestamp: Date.now(),
33
- });
34
- this.container.lastTouch$.next({
35
- position: {
36
- x: ev.touches[0].clientX,
37
- y: ev.touches[0].clientY,
38
- },
39
- isTouching: true,
40
- });
41
- }, 20);
42
- }
43
- }
44
- onTouchMove(ev) {
45
- this.container.lastTouch$.next({
46
- position: {
47
- x: ev.touches[0].clientX,
48
- y: ev.touches[0].clientY,
49
- },
50
- isTouching: true,
51
- });
52
- }
53
- onTouchEnd(ev) {
54
- combineLatest([this.container.startTouch$, this.container.lastTouch$])
55
- .pipe(filter(([startTouch, lastTouch]) => !!startTouch && !!lastTouch))
56
- .pipe(take(1))
57
- .subscribe(([startTouch, lastTouch]) => {
58
- if (!!startTouch && !!lastTouch) {
59
- const dx = lastTouch.position.x - startTouch.position.x;
60
- this.container.onSwipe(dx);
61
- }
62
- });
63
- }
64
- ngAfterViewInit() {
65
- if (!isPlatformServer(this.platformId)) {
66
- this.observer = new ResizeObserver((entries) => {
67
- this.slideHeight$.next(entries[0].contentRect.height);
68
- });
69
- this.observer.observe(this.element.nativeElement);
70
- }
71
- }
72
- ngOnDestroy() {
73
- if (this.observer) {
74
- this.observer.unobserve(this.element.nativeElement);
75
- this.observer.disconnect();
76
- }
77
- }
78
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BsSwipeDirective, deps: [{ token: i1.BsSwipeContainerDirective }, { token: i0.ElementRef }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive });
79
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.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" } }, ngImport: i0 });
80
- }
81
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BsSwipeDirective, decorators: [{
82
- type: Directive,
83
- args: [{
84
- selector: '[bsSwipe]'
85
- }]
86
- }], ctorParameters: () => [{ type: i1.BsSwipeContainerDirective }, { type: i0.ElementRef }, { type: undefined, decorators: [{
87
- type: Inject,
88
- args: [PLATFORM_ID]
89
- }] }], propDecorators: { offside: [{
90
- type: Input
91
- }], classes: [{
92
- type: HostBinding,
93
- args: ['class.align-top']
94
- }, {
95
- type: HostBinding,
96
- args: ['class.d-inline-block']
97
- }, {
98
- type: HostBinding,
99
- args: ['class.float-none']
100
- }, {
101
- type: HostBinding,
102
- args: ['class.w-100']
103
- }, {
104
- type: HostBinding,
105
- args: ['class.pe-auto']
106
- }, {
107
- type: HostBinding,
108
- args: ['class.me-0']
109
- }], onTouchStart: [{
110
- type: HostListener,
111
- args: ['touchstart', ['$event']]
112
- }], onTouchMove: [{
113
- type: HostListener,
114
- args: ['touchmove', ['$event']]
115
- }], onTouchEnd: [{
116
- type: HostListener,
117
- args: ['touchend', ['$event']]
118
- }] } });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpcGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLXN3aXBlci9zcmMvbGliL2RpcmVjdGl2ZXMvc3dpcGUvc3dpcGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZJLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDekYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUtuRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRVA7SUFBcUc7SUFBekgsWUFBb0IsU0FBb0MsRUFBRSxPQUFnQyxFQUErQixVQUFlO1FBQXBILGNBQVMsR0FBVCxTQUFTLENBQTJCO1FBQWlFLGVBQVUsR0FBVixVQUFVLENBQUs7UUFDdEksSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVELE9BQU8sQ0FBMEI7SUFDakMsUUFBUSxDQUFrQjtJQUNuQixZQUFZLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFFckQsaUJBQWlCO0lBQ0QsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQyxZQUFZO0lBUVosT0FBTyxHQUFHLElBQUksQ0FBQztJQUdmLFlBQVksQ0FBQyxFQUFjO1FBQ3pCLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUIsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxT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QUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO3VHQXJGVSxnQkFBZ0IscUZBRXlFLFdBQVc7MkZBRnBHLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFINUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztpQkFDdEI7OzBCQUc4RixNQUFNOzJCQUFDLFdBQVc7eUNBUy9GLE9BQU87c0JBQXRCLEtBQUs7Z0JBU04sT0FBTztzQkFOTixXQUFXO3VCQUFDLGlCQUFpQjs7c0JBQzdCLFdBQVc7dUJBQUMsc0JBQXNCOztzQkFDbEMsV0FBVzt1QkFBQyxrQkFBa0I7O3NCQUM5QixXQUFXO3VCQUFDLGFBQWE7O3NCQUN6QixXQUFXO3VCQUFDLGVBQWU7O3NCQUMzQixXQUFXO3VCQUFDLFlBQVk7Z0JBSXpCLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBMEJ0QyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVlyQyxVQUFVO3NCQURULFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIFBMQVRGT1JNX0lEIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZmlsdGVyLCB0YWtlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IEJzU3dpcGVDb250YWluZXJEaXJlY3RpdmUgfSBmcm9tIFwiLi4vc3dpcGUtY29udGFpbmVyL3N3aXBlLWNvbnRhaW5lci5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tic1N3aXBlXSdcbn0pXG5leHBvcnQgY2xhc3MgQnNTd2lwZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb250YWluZXI6IEJzU3dpcGVDb250YWluZXJEaXJlY3RpdmUsIGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueSkge1xuICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7XG4gIH1cblxuICBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgb2JzZXJ2ZXI/OiBSZXNpemVPYnNlcnZlcjtcbiAgcHVibGljIHNsaWRlSGVpZ2h0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcblxuICAvLyNyZWdpb24gT2Zmc2lkZVxuICBASW5wdXQoKSBwdWJsaWMgb2Zmc2lkZSA9IGZhbHNlO1xuICAvLyNlbmRyZWdpb25cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFsaWduLXRvcCcpXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZC1pbmxpbmUtYmxvY2snKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZsb2F0LW5vbmUnKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnctMTAwJylcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5wZS1hdXRvJylcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tZS0wJylcbiAgY2xhc3NlcyA9IHRydWU7XG5cbiAgQEhvc3RMaXN0ZW5lcigndG91Y2hzdGFydCcsIFsnJGV2ZW50J10pXG4gIG9uVG91Y2hTdGFydChldjogVG91Y2hFdmVudCkge1xuICAgIGlmIChldi50b3VjaGVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuY29udGFpbmVyLnBlbmRpbmdBbmltYXRpb24/LmZpbmlzaCgpO1xuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jb250YWluZXIuc3RhcnRUb3VjaCQubmV4dCh7XG4gICAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICAgIHg6IGV2LnRvdWNoZXNbMF0uY2xpZW50WCxcbiAgICAgICAgICAgIHk6IGV2LnRvdWNoZXNbMF0uY2xpZW50WSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyLmxhc3RUb3VjaCQubmV4dCh7XG4gICAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICAgIHg6IGV2LnRvdWNoZXNbMF0uY2xpZW50WCxcbiAgICAgICAgICAgIHk6IGV2LnRvdWNoZXNbMF0uY2xpZW50WSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGlzVG91Y2hpbmc6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfSwgMjApO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3RvdWNobW92ZScsIFsnJGV2ZW50J10pXG4gIG9uVG91Y2hNb3ZlKGV2OiBUb3VjaEV2ZW50KSB7XG4gICAgdGhpcy5jb250YWluZXIubGFzdFRvdWNoJC5uZXh0KHtcbiAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgIHg6IGV2LnRvdWNoZXNbMF0uY2xpZW50WCxcbiAgICAgICAgeTogZXYudG91Y2hlc1swXS5jbGllbnRZLFxuICAgICAgfSxcbiAgICAgIGlzVG91Y2hpbmc6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd0b3VjaGVuZCcsIFsnJGV2ZW50J10pXG4gIG9uVG91Y2hFbmQoZXY6IFRvdWNoRXZlbnQpIHtcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmNvbnRhaW5lci5zdGFydFRvdWNoJCwgdGhpcy5jb250YWluZXIubGFzdFRvdWNoJF0pXG4gICAgICAucGlwZShmaWx0ZXIoKFtzdGFydFRvdWNoLCBsYXN0VG91Y2hdKSA9PiAhIXN0YXJ0VG91Y2ggJiYgISFsYXN0VG91Y2gpKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKFtzdGFydFRvdWNoLCBsYXN0VG91Y2hdKSA9PiB7XG4gICAgICAgIGlmICghIXN0YXJ0VG91Y2ggJiYgISFsYXN0VG91Y2gpIHtcbiAgICAgICAgICBjb25zdCBkeCA9IGxhc3RUb3VjaC5wb3NpdGlvbi54IC0gc3RhcnRUb3VjaC5wb3NpdGlvbi54O1xuICAgICAgICAgIHRoaXMuY29udGFpbmVyLm9uU3dpcGUoZHgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAoIWlzUGxhdGZvcm1TZXJ2ZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgdGhpcy5vYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoZW50cmllcykgPT4ge1xuICAgICAgICB0aGlzLnNsaWRlSGVpZ2h0JC5uZXh0KGVudHJpZXNbMF0uY29udGVudFJlY3QuaGVpZ2h0KTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5vYnNlcnZlcikge1xuICAgICAgdGhpcy5vYnNlcnZlci51bm9ic2VydmUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgdGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
@@ -1,216 +0,0 @@
1
- import { animate, AnimationBuilder, style } from '@angular/animations';
2
- import { DOCUMENT } from '@angular/common';
3
- import { ContentChildren, Directive, ElementRef, EventEmitter, forwardRef, HostBinding, Inject, Input, Output, QueryList } from '@angular/core';
4
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
- import { BehaviorSubject, combineLatest, delay, filter, map, mergeMap, take } from 'rxjs';
6
- import { BsSwipeDirective } from '../swipe/swipe.directive';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/animations";
9
- export class BsSwipeContainerDirective {
10
- animationBuilder;
11
- constructor(element, animationBuilder, document) {
12
- this.animationBuilder = animationBuilder;
13
- this.containerElement = element;
14
- this.document = document;
15
- this.offset$ = combineLatest([this.startTouch$, this.lastTouch$, this.imageIndex$, this.isViewInited$])
16
- .pipe(map(([startTouch, lastTouch, imageIndex, isViewInited]) => {
17
- if (!isViewInited) {
18
- return (-imageIndex * 100);
19
- }
20
- else if (!!startTouch && !!lastTouch) {
21
- return (-imageIndex * 100 + (lastTouch.position.x - startTouch.position.x) / this.containerElement.nativeElement.clientWidth * 100);
22
- }
23
- else {
24
- return (-imageIndex * 100);
25
- }
26
- }));
27
- this.padLeft$ = this.swipes$.pipe(map(swipes => {
28
- if (!swipes) {
29
- return 0;
30
- }
31
- let count = 0;
32
- for (const s of swipes) {
33
- if (!s.offside) {
34
- break;
35
- }
36
- else {
37
- count++;
38
- }
39
- }
40
- return count;
41
- }));
42
- this.padRight$ = this.swipes$.pipe(map(swipes => {
43
- if (!swipes) {
44
- return 0;
45
- }
46
- let count = 0;
47
- for (const s of swipes.toArray().reverse()) {
48
- if (!s.offside) {
49
- break;
50
- }
51
- else {
52
- count++;
53
- }
54
- }
55
- return count;
56
- }));
57
- this.offsetLeft$ = combineLatest([this.offset$, this.padLeft$])
58
- .pipe(map(([offset, padLeft]) => offset - padLeft * 100));
59
- this.offsetRight$ = combineLatest([this.offset$, this.padLeft$, this.padRight$])
60
- .pipe(map(([offset, padLeft, padRight]) => -(offset - padLeft * 100) - (padRight - 1) * 100));
61
- this.offsetLeft$.pipe(takeUntilDestroyed())
62
- .subscribe(offsetLeft => this.offsetLeft = offsetLeft);
63
- this.offsetRight$.pipe(takeUntilDestroyed())
64
- .subscribe(offsetRight => this.offsetRight = offsetRight);
65
- this.imageIndex$.pipe(takeUntilDestroyed())
66
- .subscribe(imageIndex => this.imageIndexChange.emit(imageIndex));
67
- this.actualSwipes$ = this.swipes$
68
- .pipe(map(swipes => {
69
- if (swipes) {
70
- return swipes.filter(swipe => !swipe.offside);
71
- }
72
- else {
73
- return [];
74
- }
75
- }));
76
- this.slideHeights$ = this.actualSwipes$
77
- .pipe(delay(400), filter(swipes => !!swipes))
78
- // .pipe(map(swipes => <QueryList<BsSwipeDirective>>swipes))
79
- .pipe(mergeMap(swipes => combineLatest(swipes.map(swipe => swipe.slideHeight$))));
80
- this.currentSlideHeight$ = combineLatest([this.slideHeights$, this.imageIndex$])
81
- .pipe(map(([slideHeights, imageIndex]) => {
82
- const maxHeight = Math.max(...slideHeights);
83
- const currHeight = slideHeights[imageIndex] ?? maxHeight;
84
- return maxHeight - (maxHeight - currHeight) /* / 2*/;
85
- }));
86
- }
87
- offsetLeft = null;
88
- offsetRight = null;
89
- offsetTop = null;
90
- offsetBottom = null;
91
- set swipes(value) {
92
- setTimeout(() => this.swipes$.next(value));
93
- }
94
- minimumOffset = 50;
95
- //#region ImageIndex
96
- get imageIndex() {
97
- return this.imageIndex$.value;
98
- }
99
- set imageIndex(value) {
100
- this.imageIndex$.next(value);
101
- }
102
- imageIndexChange = new EventEmitter();
103
- //#endregion
104
- actualSwipes$;
105
- isViewInited$ = new BehaviorSubject(false);
106
- startTouch$ = new BehaviorSubject(null);
107
- lastTouch$ = new BehaviorSubject(null);
108
- swipes$ = new BehaviorSubject(null);
109
- imageIndex$ = new BehaviorSubject(0);
110
- slideHeights$;
111
- currentSlideHeight$;
112
- pendingAnimation;
113
- containerElement;
114
- document;
115
- offset$;
116
- offsetLeft$;
117
- offsetRight$;
118
- padLeft$;
119
- padRight$;
120
- ngAfterViewInit() {
121
- this.isViewInited$.next(true);
122
- }
123
- animateToIndexByDx(dx) {
124
- combineLatest([this.imageIndex$, this.actualSwipes$]).pipe(take(1))
125
- .subscribe(([imageIndex, actualSwipes]) => {
126
- const direction = dx > 0 ? 'left' : 'right';
127
- let newIndex;
128
- if (Math.abs(dx) < this.minimumOffset) {
129
- newIndex = imageIndex;
130
- }
131
- else {
132
- newIndex = imageIndex + (direction === 'right' ? 1 : -1);
133
- }
134
- this.animateToIndex(imageIndex, newIndex, dx, actualSwipes?.length ?? 1);
135
- });
136
- }
137
- animateToIndex(oldIndex, newIndex, dx, totalSlides) {
138
- this.pendingAnimation = this.animationBuilder.build([
139
- style({ 'margin-left': (-(oldIndex + 1) * this.containerElement.nativeElement.clientWidth + dx) + 'px', 'margin-right': ((oldIndex + 1) * this.containerElement.nativeElement.clientWidth - dx) + 'px' }),
140
- animate('500ms ease', style({ 'margin-left': (-(newIndex + 1) * this.containerElement.nativeElement.clientWidth) + 'px', 'margin-right': ((newIndex + 1) * this.containerElement.nativeElement.clientWidth) + 'px' })),
141
- ]).create(this.containerElement.nativeElement);
142
- this.pendingAnimation.onDone(() => {
143
- // Correct the image index
144
- if (newIndex === -1) {
145
- this.imageIndex$.next(totalSlides - 1);
146
- }
147
- else if (newIndex === totalSlides) {
148
- this.imageIndex$.next(0);
149
- }
150
- else {
151
- this.imageIndex$.next(newIndex);
152
- }
153
- this.startTouch$.next(null);
154
- this.lastTouch$.next(null);
155
- this.pendingAnimation?.destroy();
156
- this.pendingAnimation = undefined;
157
- });
158
- this.pendingAnimation.play();
159
- }
160
- onSwipe(dx) {
161
- this.animateToIndexByDx(dx);
162
- }
163
- previous() {
164
- this.gotoAnimate(-1, 'relative');
165
- }
166
- next() {
167
- this.gotoAnimate(1, 'relative');
168
- }
169
- goto(index) {
170
- this.gotoAnimate(index, 'absolute');
171
- }
172
- gotoAnimate(index, type) {
173
- this.pendingAnimation?.finish();
174
- setTimeout(() => {
175
- combineLatest([this.actualSwipes$, this.imageIndex$]).pipe(take(1)).subscribe(([actualSwipes, imageIndex]) => {
176
- this.pendingAnimation?.finish();
177
- const idx = (type === 'relative') ? imageIndex + index : index;
178
- this.animateToIndex(imageIndex, idx, 0, actualSwipes?.length ?? 1);
179
- });
180
- }, 20);
181
- }
182
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BsSwipeContainerDirective, deps: [{ token: i0.ElementRef }, { token: i1.AnimationBuilder }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
183
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.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"], ngImport: i0 });
184
- }
185
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BsSwipeContainerDirective, decorators: [{
186
- type: Directive,
187
- args: [{
188
- selector: '[bsSwipeContainer]',
189
- exportAs: 'bsSwipeContainer'
190
- }]
191
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.AnimationBuilder }, { type: undefined, decorators: [{
192
- type: Inject,
193
- args: [DOCUMENT]
194
- }] }], propDecorators: { offsetLeft: [{
195
- type: HostBinding,
196
- args: ['style.margin-left.%']
197
- }], offsetRight: [{
198
- type: HostBinding,
199
- args: ['style.margin-right.%']
200
- }], offsetTop: [{
201
- type: HostBinding,
202
- args: ['style.margin-top.%']
203
- }], offsetBottom: [{
204
- type: HostBinding,
205
- args: ['style.margin-bottom.%']
206
- }], swipes: [{
207
- type: ContentChildren,
208
- args: [forwardRef(() => BsSwipeDirective)]
209
- }], minimumOffset: [{
210
- type: Input
211
- }], imageIndex: [{
212
- type: Input
213
- }], imageIndexChange: [{
214
- type: Output
215
- }] } });
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpcGUtY29udGFpbmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1zd2lwZXIvc3JjL2xpYi9kaXJlY3RpdmVzL3N3aXBlLWNvbnRhaW5lci9zd2lwZS1jb250YWluZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQW1CLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQWlCLGVBQWUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvSixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3RHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFNNUQsTUFBTSxPQUFPLHlCQUF5QjtJQUVLO0lBQXpDLFlBQVksT0FBbUIsRUFBVSxnQkFBa0MsRUFBb0IsUUFBYTtRQUFuRSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ3pFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUM7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBYSxRQUFRLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLEVB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QU07c0JBQTlELGVBQWU7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO2dCQUcxQyxhQUFhO3NCQUFyQixLQUFLO2dCQU1jLFVBQVU7c0JBQTdCLEtBQUs7Z0JBR0ksZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgQW5pbWF0aW9uQnVpbGRlciwgQW5pbWF0aW9uUGxheWVyLCBzdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29udGVudENoaWxkcmVuLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSG9zdEJpbmRpbmcsIEluamVjdCwgSW5wdXQsIE91dHB1dCwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRlbGF5LCBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIE9ic2VydmFibGUsIHRha2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExhc3RUb3VjaCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbGFzdC10b3VjaCc7XG5pbXBvcnQgeyBTdGFydFRvdWNoIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zdGFydC10b3VjaCc7XG5pbXBvcnQgeyBCc1N3aXBlRGlyZWN0aXZlIH0gZnJvbSAnLi4vc3dpcGUvc3dpcGUuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2JzU3dpcGVDb250YWluZXJdJyxcbiAgZXhwb3J0QXM6ICdic1N3aXBlQ29udGFpbmVyJ1xufSlcbmV4cG9ydCBjbGFzcyBCc1N3aXBlQ29udGFpbmVyRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudDogRWxlbWVudFJlZiwgcHJpdmF0ZSBhbmltYXRpb25CdWlsZGVyOiBBbmltYXRpb25CdWlsZGVyLCBASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudDogYW55KSB7XG4gICAgdGhpcy5jb250YWluZXJFbGVtZW50ID0gZWxlbWVudDtcbiAgICB0aGlzLmRvY3VtZW50ID0gPERvY3VtZW50PmRvY3VtZW50O1xuICAgIHRoaXMub2Zmc2V0JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuc3RhcnRUb3VjaCQsIHRoaXMubGFzdFRvdWNoJCwgdGhpcy5pbWFnZUluZGV4JCwgdGhpcy5pc1ZpZXdJbml0ZWQkXSlcbiAgICAgIC5waXBlKG1hcCgoW3N0YXJ0VG91Y2gsIGxhc3RUb3VjaCwgaW1hZ2VJbmRleCwgaXNWaWV3SW5pdGVkXSkgPT4ge1xuICAgICAgICBpZiAoIWlzVmlld0luaXRlZCkge1xuICAgICAgICAgIHJldHVybiAoLWltYWdlSW5kZXggKiAxMDApO1xuICAgICAgICB9IGVsc2UgaWYgKCEhc3RhcnRUb3VjaCAmJiAhIWxhc3RUb3VjaCkge1xuICAgICAgICAgIHJldHVybiAoLWltYWdlSW5kZXggKiAxMDAgKyAobGFzdFRvdWNoLnBvc2l0aW9uLnggLSBzdGFydFRvdWNoLnBvc2l0aW9uLngpIC8gdGhpcy5jb250YWluZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggKiAxMDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiAoLWltYWdlSW5kZXggKiAxMDApO1xuICAgICAgICB9XG4gICAgICB9KSk7XG5cbiAgICAgIHRoaXMucGFkTGVmdCQgPSB0aGlzLnN3aXBlcyQucGlwZShtYXAoc3dpcGVzID0+IHtcbiAgICAgICAgaWYgKCFzd2lwZXMpIHtcbiAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjb3VudCA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgcyBvZiBzd2lwZXMpIHtcbiAgICAgICAgICBpZiAoIXMub2Zmc2lkZSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvdW50Kys7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb3VudDtcbiAgICAgIH0pKTtcblxuICAgICAgdGhpcy5wYWRSaWdodCQgPSB0aGlzLnN3aXBlcyQucGlwZShtYXAoc3dpcGVzID0+IHtcbiAgICAgICAgaWYgKCFzd2lwZXMpIHtcbiAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjb3VudCA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgcyBvZiBzd2lwZXMudG9BcnJheSgpLnJldmVyc2UoKSkge1xuICAgICAgICAgIGlmICghcy5vZmZzaWRlKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY291bnQrKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvdW50O1xuICAgICAgfSkpO1xuXG4gICAgdGhpcy5vZmZzZXRMZWZ0JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMub2Zmc2V0JCwgdGhpcy5wYWRMZWZ0JF0pXG4gICAgICAucGlwZShtYXAoKFtvZmZzZXQsIHBhZExlZnRdKSA9PiBvZmZzZXQgLSBwYWRMZWZ0ICogMTAwKSk7XG4gICAgdGhpcy5vZmZzZXRSaWdodCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLm9mZnNldCQsIHRoaXMucGFkTGVmdCQsIHRoaXMucGFkUmlnaHQkXSlcbiAgICAgIC5waXBlKG1hcCgoW29mZnNldCwgcGFkTGVmdCwgcGFkUmlnaHRdKSA9PiAtKG9mZnNldCAtIHBhZExlZnQgKiAxMDApIC0gKHBhZFJpZ2h0IC0gMSkgKiAxMDApKTtcbiAgICB0aGlzLm9mZnNldExlZnQkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKG9mZnNldExlZnQgPT4gdGhpcy5vZmZzZXRMZWZ0ID0gb2Zmc2V0TGVmdCk7XG4gICAgdGhpcy5vZmZzZXRSaWdodCQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUob2Zmc2V0UmlnaHQgPT4gdGhpcy5vZmZzZXRSaWdodCA9IG9mZnNldFJpZ2h0KTtcbiAgICB0aGlzLmltYWdlSW5kZXgkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKGltYWdlSW5kZXggPT4gdGhpcy5pbWFnZUluZGV4Q2hhbmdlLmVtaXQoaW1hZ2VJbmRleCkpO1xuXG4gICAgdGhpcy5hY3R1YWxTd2lwZXMkID0gdGhpcy5zd2lwZXMkXG4gICAgICAucGlwZShtYXAoc3dpcGVzID0+IHtcbiAgICAgICAgaWYgKHN3aXBlcykge1xuICAgICAgICAgIHJldHVybiBzd2lwZXMuZmlsdGVyKHN3aXBlID0+ICFzd2lwZS5vZmZzaWRlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgIH0pKTtcblxuICAgIHRoaXMuc2xpZGVIZWlnaHRzJCA9IHRoaXMuYWN0dWFsU3dpcGVzJFxuICAgICAgLnBpcGUoZGVsYXkoNDAwKSwgZmlsdGVyKHN3aXBlcyA9PiAhIXN3aXBlcykpXG4gICAgICAvLyAucGlwZShtYXAoc3dpcGVzID0+IDxRdWVyeUxpc3Q8QnNTd2lwZURpcmVjdGl2ZT4+c3dpcGVzKSlcbiAgICAgIC5waXBlKG1lcmdlTWFwKHN3aXBlcyA9PiBjb21iaW5lTGF0ZXN0KHN3aXBlcy5tYXAoc3dpcGUgPT4gc3dpcGUuc2xpZGVIZWlnaHQkKSkpKTtcblxuICAgIHRoaXMuY3VycmVudFNsaWRlSGVpZ2h0JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuc2xpZGVIZWlnaHRzJCwgdGhpcy5pbWFnZUluZGV4JF0pXG4gICAgICAucGlwZShtYXAoKFtzbGlkZUhlaWdodHMsIGltYWdlSW5kZXhdKSA9PiB7XG4gICAgICAgIGNvbnN0IG1heEhlaWdodCA9IE1hdGgubWF4KC4uLnNsaWRlSGVpZ2h0cyk7XG4gICAgICAgIGNvbnN0IGN1cnJIZWlnaHQ6IG51bWJlciA9IHNsaWRlSGVpZ2h0c1tpbWFnZUluZGV4XSA/PyBtYXhIZWlnaHQ7XG4gICAgICAgIHJldHVybiBtYXhIZWlnaHQgLSAobWF4SGVpZ2h0IC0gY3VyckhlaWdodCkvKiAvIDIqLztcbiAgICAgIH0pKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUubWFyZ2luLWxlZnQuJScpIG9mZnNldExlZnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1hcmdpbi1yaWdodC4lJykgb2Zmc2V0UmlnaHQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1hcmdpbi10b3AuJScpIG9mZnNldFRvcDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnc3R5bGUubWFyZ2luLWJvdHRvbS4lJykgb2Zmc2V0Qm90dG9tOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IEJzU3dpcGVEaXJlY3RpdmUpKSBzZXQgc3dpcGVzKHZhbHVlOiBRdWVyeUxpc3Q8QnNTd2lwZURpcmVjdGl2ZT4pIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc3dpcGVzJC5uZXh0KHZhbHVlKSk7XG4gIH1cbiAgQElucHV0KCkgbWluaW11bU9mZnNldCA9IDUwO1xuXG4gIC8vI3JlZ2lvbiBJbWFnZUluZGV4XG4gIHB1YmxpYyBnZXQgaW1hZ2VJbmRleCgpIHtcbiAgICByZXR1cm4gdGhpcy5pbWFnZUluZGV4JC52YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IGltYWdlSW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuaW1hZ2VJbmRleCQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgQE91dHB1dCgpIGltYWdlSW5kZXhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgLy8jZW5kcmVnaW9uXG4gIFxuICBhY3R1YWxTd2lwZXMkOiBPYnNlcnZhYmxlPEJzU3dpcGVEaXJlY3RpdmVbXT47XG4gIGlzVmlld0luaXRlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgc3RhcnRUb3VjaCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFN0YXJ0VG91Y2ggfCBudWxsPihudWxsKTtcbiAgbGFzdFRvdWNoJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TGFzdFRvdWNoIHwgbnVsbD4obnVsbCk7XG4gIHN3aXBlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFF1ZXJ5TGlzdDxCc1N3aXBlRGlyZWN0aXZlPiB8IG51bGw+KG51bGwpO1xuICBpbWFnZUluZGV4JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgc2xpZGVIZWlnaHRzJDogT2JzZXJ2YWJsZTxudW1iZXJbXT47XG4gIGN1cnJlbnRTbGlkZUhlaWdodCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcbiAgcGVuZGluZ0FuaW1hdGlvbj86IEFuaW1hdGlvblBsYXllcjtcbiAgY29udGFpbmVyRWxlbWVudDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gIGRvY3VtZW50OiBEb2N1bWVudDtcblxuICBvZmZzZXQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gIG9mZnNldExlZnQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gIG9mZnNldFJpZ2h0JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICBwYWRMZWZ0JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICBwYWRSaWdodCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5pc1ZpZXdJbml0ZWQkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBhbmltYXRlVG9JbmRleEJ5RHgoZHg6IG51bWJlcikge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuaW1hZ2VJbmRleCQsIHRoaXMuYWN0dWFsU3dpcGVzJF0pLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKFtpbWFnZUluZGV4LCBhY3R1YWxTd2lwZXNdKSA9PiB7XG4gICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IGR4ID4gMCA/ICdsZWZ0JyA6ICdyaWdodCc7XG4gICAgICBcbiAgICAgICAgbGV0IG5ld0luZGV4OiBudW1iZXI7XG4gICAgICAgIGlmIChNYXRoLmFicyhkeCkgPCB0aGlzLm1pbmltdW1PZmZzZXQpIHtcbiAgICAgICAgICBuZXdJbmRleCA9IGltYWdlSW5kZXg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3SW5kZXggPSBpbWFnZUluZGV4ICsgKGRpcmVjdGlvbiA9PT0gJ3JpZ2h0JyA/IDEgOiAtMSk7XG4gICAgICAgIH1cbiAgXG4gICAgICAgIHRoaXMuYW5pbWF0ZVRvSW5kZXgoaW1hZ2VJbmRleCwgbmV3SW5kZXgsIGR4LCBhY3R1YWxTd2lwZXM/Lmxlbmd0aCA/PyAxKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgYW5pbWF0ZVRvSW5kZXgob2xkSW5kZXg6IG51bWJlciwgbmV3SW5kZXg6IG51bWJlciwgZHg6IG51bWJlciwgdG90YWxTbGlkZXM6IG51bWJlcikge1xuICAgIHRoaXMucGVuZGluZ0FuaW1hdGlvbiA9IHRoaXMuYW5pbWF0aW9uQnVpbGRlci5idWlsZChbXG4gICAgICBzdHlsZSh7ICdtYXJnaW4tbGVmdCc6ICgtKG9sZEluZGV4ICsgMSkgKiB0aGlzLmNvbnRhaW5lckVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCArIGR4KSArICdweCcsICdtYXJnaW4tcmlnaHQnOiAoKG9sZEluZGV4ICsgMSkgKiB0aGlzLmNvbnRhaW5lckVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCAtIGR4KSArICdweCcgfSksXG4gICAgICBhbmltYXRlKCc1MDBtcyBlYXNlJywgc3R5bGUoeyAnbWFyZ2luLWxlZnQnOiAoLShuZXdJbmRleCArIDEpICogdGhpcy5jb250YWluZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGgpICsgJ3B4JywgJ21hcmdpbi1yaWdodCc6ICgobmV3SW5kZXggKyAxKSAqIHRoaXMuY29udGFpbmVyRWxlbWVudC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoKSArICdweCcgfSkpLFxuICAgIF0pLmNyZWF0ZSh0aGlzLmNvbnRhaW5lckVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy5wZW5kaW5nQW5pbWF0aW9uLm9uRG9uZSgoKSA9PiB7XG4gICAgICAvLyBDb3JyZWN0IHRoZSBpbWFnZSBpbmRleFxuICAgICAgaWYgKG5ld0luZGV4ID09PSAtMSkge1xuICAgICAgICB0aGlzLmltYWdlSW5kZXgkLm5leHQodG90YWxTbGlkZXMgLSAxKTtcbiAgICAgIH0gZWxzZSBpZiAobmV3SW5kZXggPT09IHRvdGFsU2xpZGVzKSB7XG4gICAgICAgIHRoaXMuaW1hZ2VJbmRleCQubmV4dCgwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW1hZ2VJbmRleCQubmV4dChuZXdJbmRleCk7XG4gICAgICB9XG4gICAgICB0aGlzLnN0YXJ0VG91Y2gkLm5leHQobnVsbCk7XG4gICAgICB0aGlzLmxhc3RUb3VjaCQubmV4dChudWxsKTtcbiAgICAgIHRoaXMucGVuZGluZ0FuaW1hdGlvbj8uZGVzdHJveSgpO1xuICAgICAgdGhpcy5wZW5kaW5nQW5pbWF0aW9uID0gdW5kZWZpbmVkO1xuICAgIH0pO1xuICAgIHRoaXMucGVuZGluZ0FuaW1hdGlvbi5wbGF5KCk7XG4gIH1cblxuICBvblN3aXBlKGR4OiBudW1iZXIpIHtcbiAgICB0aGlzLmFuaW1hdGVUb0luZGV4QnlEeChkeCk7XG4gIH1cblxuICBwcmV2aW91cygpIHtcbiAgICB0aGlzLmdvdG9BbmltYXRlKC0xLCAncmVsYXRpdmUnKTtcbiAgfVxuXG4gIG5leHQoKSB7XG4gICAgdGhpcy5nb3RvQW5pbWF0ZSgxLCAncmVsYXRpdmUnKTtcbiAgfVxuXG4gIGdvdG8oaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuZ290b0FuaW1hdGUoaW5kZXgsICdhYnNvbHV0ZScpO1xuICB9XG5cbiAgcHJpdmF0ZSBnb3RvQW5pbWF0ZShpbmRleDogbnVtYmVyLCB0eXBlOiAnYWJzb2x1dGUnIHwgJ3JlbGF0aXZlJykge1xuICAgIHRoaXMucGVuZGluZ0FuaW1hdGlvbj8uZmluaXNoKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmFjdHVhbFN3aXBlcyQsIHRoaXMuaW1hZ2VJbmRleCRdKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoW2FjdHVhbFN3aXBlcywgaW1hZ2VJbmRleF0pID0+IHtcbiAgICAgICAgdGhpcy5wZW5kaW5nQW5pbWF0aW9uPy5maW5pc2goKTtcbiAgICAgICAgY29uc3QgaWR4ID0gKHR5cGUgPT09ICdyZWxhdGl2ZScpID8gaW1hZ2VJbmRleCArIGluZGV4IDogaW5kZXg7XG4gICAgICAgIHRoaXMuYW5pbWF0ZVRvSW5kZXgoaW1hZ2VJbmRleCwgaWR4LCAwLCBhY3R1YWxTd2lwZXM/Lmxlbmd0aCA/PyAxKTtcbiAgICAgIH0pO1xuICAgIH0sIDIwKTtcbiAgfVxuXG59XG4iXX0=
@@ -1,4 +0,0 @@
1
- export * from './last-touch';
2
- export * from './point';
3
- export * from './start-touch';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctc3dpcGVyL3NyYy9saWIvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGFzdC10b3VjaCc7XG5leHBvcnQgKiBmcm9tICcuL3BvaW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3RhcnQtdG91Y2gnOyJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFzdC10b3VjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWludHBsYXllci1uZy1zd2lwZXIvc3JjL2xpYi9pbnRlcmZhY2VzL2xhc3QtdG91Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvaW50IH0gZnJvbSBcIi4vcG9pbnRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBMYXN0VG91Y2gge1xuICAgIHBvc2l0aW9uOiBQb2ludDtcbiAgICBpc1RvdWNoaW5nOiBib29sZWFuO1xufVxuICAiXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctc3dpcGVyL3NyYy9saWIvaW50ZXJmYWNlcy9wb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBQb2ludCB7XG4gICAgeDogbnVtYmVyO1xuICAgIHk6IG51bWJlcjtcbn1cbiAgIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtdG91Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21pbnRwbGF5ZXItbmctc3dpcGVyL3NyYy9saWIvaW50ZXJmYWNlcy9zdGFydC10b3VjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9pbnQgfSBmcm9tIFwiLi9wb2ludFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXJ0VG91Y2gge1xuICAgIHBvc2l0aW9uOiBQb2ludDtcbiAgICB0aW1lc3RhbXA6IG51bWJlcjtcbn1cbiAgIl19
@@ -1,21 +0,0 @@
1
- import { AfterViewInit, ElementRef, OnDestroy } from "@angular/core";
2
- import { BehaviorSubject } from "rxjs";
3
- import { BsSwipeContainerDirective } from "../swipe-container/swipe-container.directive";
4
- import * as i0 from "@angular/core";
5
- export declare class BsSwipeDirective implements AfterViewInit, OnDestroy {
6
- private container;
7
- private platformId;
8
- constructor(container: BsSwipeContainerDirective, element: ElementRef<HTMLElement>, platformId: any);
9
- element: ElementRef<HTMLElement>;
10
- observer?: ResizeObserver;
11
- slideHeight$: BehaviorSubject<number>;
12
- offside: boolean;
13
- classes: boolean;
14
- onTouchStart(ev: TouchEvent): void;
15
- onTouchMove(ev: TouchEvent): void;
16
- onTouchEnd(ev: TouchEvent): void;
17
- ngAfterViewInit(): void;
18
- ngOnDestroy(): void;
19
- static ɵfac: i0.ɵɵFactoryDeclaration<BsSwipeDirective, never>;
20
- static ɵdir: i0.ɵɵDirectiveDeclaration<BsSwipeDirective, "[bsSwipe]", never, { "offside": { "alias": "offside"; "required": false; }; }, {}, never, never, false, never>;
21
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes