@ks89/angular-modal-gallery 11.1.0-rc.1 → 11.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.
- package/CHANGELOG.md +19 -0
- package/README.md +1 -0
- package/esm2022/lib/directives/keyboard-navigation.directive.mjs +7 -1
- package/esm2022/lib/directives/swipe.directive.mjs +6 -4
- package/fesm2022/ks89-angular-modal-gallery.mjs +11 -3
- package/fesm2022/ks89-angular-modal-gallery.mjs.map +1 -1
- package/lib/directives/keyboard-navigation.directive.d.ts +9 -0
- package/lib/directives/swipe.directive.d.ts +5 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
# 11.1.0
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
- add sources to improve LCP, loading and fetchpriority attributes #260 (implemented by @luca-peruzzo)
|
|
6
|
+
|
|
7
|
+
### Tests
|
|
8
|
+
|
|
9
|
+
- add missing `keyboard-navigation.directive` test file
|
|
10
|
+
|
|
11
|
+
### Examples
|
|
12
|
+
|
|
13
|
+
- fix bad 'add image' button CSS in all examples
|
|
14
|
+
|
|
15
|
+
### Docs
|
|
16
|
+
|
|
17
|
+
- fix bad docs in `swipe.directive`
|
|
18
|
+
|
|
19
|
+
|
|
1
20
|
# 11.1.0-rc.1
|
|
2
21
|
|
|
3
22
|
### Features
|
package/README.md
CHANGED
|
@@ -182,6 +182,7 @@ From version @ks89/angular-modal-gallery >= 11.0.0, **mousetrap and hammerjs hav
|
|
|
182
182
|
|
|
183
183
|
**More than 100 releases in two years**, and more to come... :)
|
|
184
184
|
|
|
185
|
+
- 08/16/2023 - 11.1.0 - @ks89/angular-modal-gallery - [HERE](https://github.com/Ks89/angular-modal-gallery/releases)
|
|
185
186
|
- 08/06/2023 - 11.1.0-rc.1 - @ks89/angular-modal-gallery - [HERE](https://github.com/Ks89/angular-modal-gallery/releases)
|
|
186
187
|
- 07/08/2023 - 11.0.0 - @ks89/angular-modal-gallery - [HERE](https://github.com/Ks89/angular-modal-gallery/releases)
|
|
187
188
|
- 06/01/2023 - 11.0.0-rc.1 - @ks89/angular-modal-gallery - [HERE](https://github.com/Ks89/angular-modal-gallery/releases)
|
|
@@ -23,8 +23,14 @@
|
|
|
23
23
|
*/
|
|
24
24
|
import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';
|
|
25
25
|
import * as i0 from "@angular/core";
|
|
26
|
+
/**
|
|
27
|
+
* Directive to manage keyboard navigation.
|
|
28
|
+
*/
|
|
26
29
|
class KeyboardNavigationDirective {
|
|
27
30
|
constructor() {
|
|
31
|
+
/**
|
|
32
|
+
* Output to emit keyboard `code` of the pressed key (keydown).
|
|
33
|
+
*/
|
|
28
34
|
this.keyboardNavigation = new EventEmitter();
|
|
29
35
|
}
|
|
30
36
|
/**
|
|
@@ -56,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
|
|
|
56
62
|
type: HostListener,
|
|
57
63
|
args: ['window:keydown', ['$event']]
|
|
58
64
|
}] } });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQtbmF2aWdhdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rczg5L2FuZ3VsYXItbW9kYWwtZ2FsbGVyeS9zcmMvbGliL2RpcmVjdGl2ZXMva2V5Ym9hcmQtbmF2aWdhdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFckY7O0dBRUc7QUFDSCxNQUdhLDJCQUEyQjtJQUh4QztRQVVFOztXQUVHO1FBRUgsdUJBQWtCLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7S0FldkU7SUFiQzs7Ozs7T0FLRztJQUVILFNBQVMsQ0FBQyxDQUFnQjtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDOzhHQXpCVSwyQkFBMkI7a0dBQTNCLDJCQUEyQjs7U0FBM0IsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBSHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtpQkFDbkM7OEJBTUMsTUFBTTtzQkFETCxLQUFLO2dCQU9OLGtCQUFrQjtzQkFEakIsTUFBTTtnQkFVUCxTQUFTO3NCQURSLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxuXG4gQ29weXJpZ2h0IChDKSAyMDE3LTIwMjMgU3RlZmFubyBDYXBwYSAoS3M4OSlcblxuIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuXG4gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cblxuIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OIElORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiBTT0ZUV0FSRS5cbiAqL1xuXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHRvIG1hbmFnZSBrZXlib2FyZCBuYXZpZ2F0aW9uLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdba3NLZXlib2FyZE5hdmlnYXRpb25dJ1xufSlcbmV4cG9ydCBjbGFzcyBLZXlib2FyZE5hdmlnYXRpb25EaXJlY3RpdmUge1xuICAvKipcbiAgICogQm9vbGVhbiBpbnB1dCB0byBza2lwIGtleWJvYXJkIG5hdmlnYXRpb24uXG4gICAqL1xuICBASW5wdXQoKVxuICBpc09wZW46IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIE91dHB1dCB0byBlbWl0IGtleWJvYXJkIGBjb2RlYCBvZiB0aGUgcHJlc3NlZCBrZXkgKGtleWRvd24pLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGtleWJvYXJkTmF2aWdhdGlvbjogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvKipcbiAgICogTGlzdGVuZXIgdG8gY2F0Y2gga2V5Ym9hcmQncyBldmVudHMgYW5kIGNhbGwgdGhlIHJpZ2h0IG1ldGhvZCBiYXNlZCBvbiB0aGUga2V5LlxuICAgKiBGb3IgaW5zdGFuY2UsIHByZXNzaW5nIGVzYywgdGhpcyB3aWxsIGNhbGwgYGNsb3NlR2FsbGVyeShBY3Rpb24uS0VZQk9BUkQpYCBhbmQgc28gb24uXG4gICAqIElmIHlvdSBwYXNzZWQgYSB2YWxpZCBga2V5Ym9hcmRDb25maWdgIGVzYywgcmlnaHQgYW5kIGxlZnQgYnV0dG9ucyB3aWxsIGJlIGN1c3RvbWl6ZWQgYmFzZWQgb24geW91ciBkYXRhLlxuICAgKiBAcGFyYW0gZSBLZXlib2FyZEV2ZW50IGNhdWdodCBieSB0aGUgbGlzdGVuZXIuXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5RG93bihlOiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzT3Blbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmtleWJvYXJkTmF2aWdhdGlvbi5lbWl0KGUuY29kZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -25,23 +25,25 @@ import { Directive, EventEmitter, HostListener, Output } from '@angular/core';
|
|
|
25
25
|
import * as i0 from "@angular/core";
|
|
26
26
|
// Inspired from https://stackblitz.com/edit/angular-swipe-events-with-hostlistner?file=src%2Fapp%2Fapp.component.ts
|
|
27
27
|
/**
|
|
28
|
-
* Directive to
|
|
29
|
-
* In fact, it listens for a click on all elements that aren't 'inside' and it emits
|
|
30
|
-
* an event using `@Output clickOutside`.
|
|
28
|
+
* Directive to manage swipe events on touch devices.
|
|
31
29
|
*/
|
|
32
30
|
class SwipeDirective {
|
|
33
31
|
constructor() {
|
|
34
32
|
this.defaultTouch = { x: 0, y: 0, time: 0 };
|
|
35
33
|
/**
|
|
34
|
+
* Output to emit swipe left event. Payload is empty.
|
|
36
35
|
*/
|
|
37
36
|
this.swipeLeft = new EventEmitter();
|
|
38
37
|
/**
|
|
38
|
+
* Output to emit swipe right event. Payload is empty.
|
|
39
39
|
*/
|
|
40
40
|
this.swipeRight = new EventEmitter();
|
|
41
41
|
/**
|
|
42
|
+
* Output to emit swipe up event. Payload is empty.
|
|
42
43
|
*/
|
|
43
44
|
this.swipeUp = new EventEmitter();
|
|
44
45
|
/**
|
|
46
|
+
* Output to emit swipe down event. Payload is empty.
|
|
45
47
|
*/
|
|
46
48
|
this.swipeDown = new EventEmitter();
|
|
47
49
|
}
|
|
@@ -112,4 +114,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
|
|
|
112
114
|
type: HostListener,
|
|
113
115
|
args: ['touchcancel', ['$event']]
|
|
114
116
|
}] } });
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpcGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3M4OS9hbmd1bGFyLW1vZGFsLWdhbGxlcnkvc3JjL2xpYi9kaXJlY3RpdmVzL3N3aXBlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBUyxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR3JGLG9IQUFvSDtBQUVwSDs7R0FFRztBQUNILE1BR2EsY0FBYztJQUgzQjtRQUlFLGlCQUFZLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBRXZDOztXQUVHO1FBRUgsY0FBUyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3pEOztXQUVHO1FBRUgsZUFBVSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzFEOztXQUVHO1FBRUgsWUFBTyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3ZEOztXQUVHO1FBRUgsY0FBUyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0tBNkMxRDtJQTNDQzs7O09BR0c7SUFJSCxXQUFXLENBQUMsS0FBaUI7UUFDM0IsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hELG1CQUFtQjtRQUNuQixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssWUFBWSxFQUFFO1lBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1NBQzFDO2FBQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRTtZQUNwQyxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQy9DLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDL0MsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztZQUV6RCwyREFBMkQ7WUFDM0QsSUFBSSxTQUFTLEdBQUcsR0FBRyxFQUFFO2dCQUNuQix5Q0FBeUM7Z0JBQ3pDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ3pCLGdDQUFnQztvQkFDaEMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFO3dCQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7cUJBQ3hCO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7cUJBQ3ZCO2lCQUNGO2dCQUVELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ3pCLGdDQUFnQztvQkFDaEMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFO3dCQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7cUJBQ3ZCO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7cUJBQ3JCO2lCQUNGO2FBQ0Y7U0FDRjtJQUNILENBQUM7OEdBakVVLGNBQWM7a0dBQWQsY0FBYzs7U0FBZCxjQUFjOzJGQUFkLGNBQWM7a0JBSDFCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7aUJBQ3RCOzhCQVFDLFNBQVM7c0JBRFIsTUFBTTtnQkFNUCxVQUFVO3NCQURULE1BQU07Z0JBTVAsT0FBTztzQkFETixNQUFNO2dCQU1QLFNBQVM7c0JBRFIsTUFBTTtnQkFVUCxXQUFXO3NCQUhWLFlBQVk7dUJBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDckMsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUNuQyxZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gVGhlIE1JVCBMaWNlbnNlIChNSVQpXG5cbiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMyBTdGVmYW5vIENhcHBhIChLczg5KVxuXG4gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cbiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG4gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT04gSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG4vLyBJbnNwaXJlZCBmcm9tIGh0dHBzOi8vc3RhY2tibGl0ei5jb20vZWRpdC9hbmd1bGFyLXN3aXBlLWV2ZW50cy13aXRoLWhvc3RsaXN0bmVyP2ZpbGU9c3JjJTJGYXBwJTJGYXBwLmNvbXBvbmVudC50c1xuXG4vKipcbiAqIERpcmVjdGl2ZSB0byBtYW5hZ2Ugc3dpcGUgZXZlbnRzIG9uIHRvdWNoIGRldmljZXMuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1trc1N3aXBlXSdcbn0pXG5leHBvcnQgY2xhc3MgU3dpcGVEaXJlY3RpdmUge1xuICBkZWZhdWx0VG91Y2ggPSB7IHg6IDAsIHk6IDAsIHRpbWU6IDAgfTtcblxuICAvKipcbiAgICogT3V0cHV0IHRvIGVtaXQgc3dpcGUgbGVmdCBldmVudC4gUGF5bG9hZCBpcyBlbXB0eS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBzd2lwZUxlZnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgLyoqXG4gICAqIE91dHB1dCB0byBlbWl0IHN3aXBlIHJpZ2h0IGV2ZW50LiBQYXlsb2FkIGlzIGVtcHR5LlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHN3aXBlUmlnaHQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgLyoqXG4gICAqIE91dHB1dCB0byBlbWl0IHN3aXBlIHVwIGV2ZW50LiBQYXlsb2FkIGlzIGVtcHR5LlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHN3aXBlVXA6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgLyoqXG4gICAqIE91dHB1dCB0byBlbWl0IHN3aXBlIGRvd24gZXZlbnQuIFBheWxvYWQgaXMgZW1wdHkuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgc3dpcGVEb3duOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBjYWxsZWQgYnkgQW5ndWxhciBpdHNlbGYgZXZlcnkgY2xpY2sgdGhhbmtzIHRvIGBASG9zdExpc3RlbmVyYC5cbiAgICogQHBhcmFtIGV2ZW50IFRvdWNoRXZlbnQgcGF5bG9hZCByZWNlaXZlZCBvbiB0b3VjaFxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcigndG91Y2hzdGFydCcsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ3RvdWNoZW5kJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcigndG91Y2hjYW5jZWwnLCBbJyRldmVudCddKVxuICBoYW5kbGVUb3VjaChldmVudDogVG91Y2hFdmVudCkge1xuICAgIGxldCB0b3VjaCA9IGV2ZW50LnRvdWNoZXNbMF0gfHwgZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF07XG4gICAgLy8gY2hlY2sgdGhlIGV2ZW50c1xuICAgIGlmIChldmVudC50eXBlID09PSAndG91Y2hzdGFydCcpIHtcbiAgICAgIHRoaXMuZGVmYXVsdFRvdWNoLnggPSB0b3VjaC5wYWdlWDtcbiAgICAgIHRoaXMuZGVmYXVsdFRvdWNoLnkgPSB0b3VjaC5wYWdlWTtcbiAgICAgIHRoaXMuZGVmYXVsdFRvdWNoLnRpbWUgPSBldmVudC50aW1lU3RhbXA7XG4gICAgfSBlbHNlIGlmIChldmVudC50eXBlID09PSAndG91Y2hlbmQnKSB7XG4gICAgICBsZXQgZGVsdGFYID0gdG91Y2gucGFnZVggLSB0aGlzLmRlZmF1bHRUb3VjaC54O1xuICAgICAgbGV0IGRlbHRhWSA9IHRvdWNoLnBhZ2VZIC0gdGhpcy5kZWZhdWx0VG91Y2gueTtcbiAgICAgIGxldCBkZWx0YVRpbWUgPSBldmVudC50aW1lU3RhbXAgLSB0aGlzLmRlZmF1bHRUb3VjaC50aW1lO1xuXG4gICAgICAvLyBzaW11bGF0ZSBhIHN3aXBlIC0+IGxlc3MgdGhhbiA1MDAgbXMgYW5kIG1vcmUgdGhhbiA2MCBweFxuICAgICAgaWYgKGRlbHRhVGltZSA8IDUwMCkge1xuICAgICAgICAvLyB0b3VjaCBtb3ZlbWVudCBsYXN0ZWQgbGVzcyB0aGFuIDUwMCBtc1xuICAgICAgICBpZiAoTWF0aC5hYnMoZGVsdGFYKSA+IDYwKSB7XG4gICAgICAgICAgLy8gZGVsdGEgeCBpcyBhdCBsZWFzdCA2MCBwaXhlbHNcbiAgICAgICAgICBpZiAoZGVsdGFYID4gMCkge1xuICAgICAgICAgICAgdGhpcy5zd2lwZVJpZ2h0LmVtaXQoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zd2lwZUxlZnQuZW1pdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChNYXRoLmFicyhkZWx0YVkpID4gNjApIHtcbiAgICAgICAgICAvLyBkZWx0YSB5IGlzIGF0IGxlYXN0IDYwIHBpeGVsc1xuICAgICAgICAgIGlmIChkZWx0YVkgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnN3aXBlRG93bi5lbWl0KCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3dpcGVVcC5lbWl0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -1223,8 +1223,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
|
|
|
1223
1223
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
1224
1224
|
SOFTWARE.
|
|
1225
1225
|
*/
|
|
1226
|
+
/**
|
|
1227
|
+
* Directive to manage keyboard navigation.
|
|
1228
|
+
*/
|
|
1226
1229
|
class KeyboardNavigationDirective {
|
|
1227
1230
|
constructor() {
|
|
1231
|
+
/**
|
|
1232
|
+
* Output to emit keyboard `code` of the pressed key (keydown).
|
|
1233
|
+
*/
|
|
1228
1234
|
this.keyboardNavigation = new EventEmitter();
|
|
1229
1235
|
}
|
|
1230
1236
|
/**
|
|
@@ -1434,23 +1440,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
|
|
|
1434
1440
|
*/
|
|
1435
1441
|
// Inspired from https://stackblitz.com/edit/angular-swipe-events-with-hostlistner?file=src%2Fapp%2Fapp.component.ts
|
|
1436
1442
|
/**
|
|
1437
|
-
* Directive to
|
|
1438
|
-
* In fact, it listens for a click on all elements that aren't 'inside' and it emits
|
|
1439
|
-
* an event using `@Output clickOutside`.
|
|
1443
|
+
* Directive to manage swipe events on touch devices.
|
|
1440
1444
|
*/
|
|
1441
1445
|
class SwipeDirective {
|
|
1442
1446
|
constructor() {
|
|
1443
1447
|
this.defaultTouch = { x: 0, y: 0, time: 0 };
|
|
1444
1448
|
/**
|
|
1449
|
+
* Output to emit swipe left event. Payload is empty.
|
|
1445
1450
|
*/
|
|
1446
1451
|
this.swipeLeft = new EventEmitter();
|
|
1447
1452
|
/**
|
|
1453
|
+
* Output to emit swipe right event. Payload is empty.
|
|
1448
1454
|
*/
|
|
1449
1455
|
this.swipeRight = new EventEmitter();
|
|
1450
1456
|
/**
|
|
1457
|
+
* Output to emit swipe up event. Payload is empty.
|
|
1451
1458
|
*/
|
|
1452
1459
|
this.swipeUp = new EventEmitter();
|
|
1453
1460
|
/**
|
|
1461
|
+
* Output to emit swipe down event. Payload is empty.
|
|
1454
1462
|
*/
|
|
1455
1463
|
this.swipeDown = new EventEmitter();
|
|
1456
1464
|
}
|