@creative-web-solution/front-library 7.1.23 → 7.1.25
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 +16 -0
- package/Events/EventsManager.ts +16 -16
- package/Events/Gesture.ts +6 -1
- package/Events/KeyboardHandler.ts +3 -3
- package/Helpers/Defer.ts +12 -10
- package/Modules/Popin/Popin.ts +1 -3
- package/Modules/Popin/PopinController.ts +2 -2
- package/Modules/SkinSelect.ts +3 -3
- package/README.md +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
|
+
## 7.1.26
|
|
4
|
+
|
|
5
|
+
* Use $target instead of e.target in EventManager callbacks
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
## 7.1.25
|
|
9
|
+
|
|
10
|
+
* [Defer] Fix type
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
## 7.1.24
|
|
14
|
+
|
|
15
|
+
* [Gesture] Fix currentTarget
|
|
16
|
+
* [EventsManager] Callback signature harmonization
|
|
17
|
+
|
|
18
|
+
|
|
3
19
|
## 7.1.23
|
|
4
20
|
|
|
5
21
|
* [TransitionHelpers] Fix delay issue
|
package/Events/EventsManager.ts
CHANGED
|
@@ -71,15 +71,21 @@ function passiveTestFnc() {return;}
|
|
|
71
71
|
}() );
|
|
72
72
|
|
|
73
73
|
|
|
74
|
-
function getDelegation( $element: Node,
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
function getDelegation( $element: Node, callback: ( e: Event, $target: Element ) => void, selector?: string ) {
|
|
75
|
+
if (selector) {
|
|
76
|
+
return e => {
|
|
77
|
+
const $target = e.target.closest( selector );
|
|
77
78
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
if ( !$target || !$element.contains( $target ) ) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
callback.call( $target, e, $target );
|
|
84
|
+
};
|
|
85
|
+
}
|
|
81
86
|
|
|
82
|
-
|
|
87
|
+
return e => {
|
|
88
|
+
callback.call( $element, e, $element as Element );
|
|
83
89
|
};
|
|
84
90
|
}
|
|
85
91
|
|
|
@@ -153,14 +159,8 @@ export const on = function( $elements: any, options: FLib.Events.EventsManager.O
|
|
|
153
159
|
};
|
|
154
160
|
|
|
155
161
|
if ( useNativeDOMEvents ) {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
$element.addEventListener( eventName, data.delegate, eventOptions );
|
|
160
|
-
}
|
|
161
|
-
else {
|
|
162
|
-
$element.addEventListener( eventName, cbFunction, eventOptions );
|
|
163
|
-
}
|
|
162
|
+
data.delegate = getDelegation( $element, cbFunction, options.selector );
|
|
163
|
+
$element.addEventListener( eventName, data.delegate, eventOptions );
|
|
164
164
|
DOMRegistry.push( data );
|
|
165
165
|
}
|
|
166
166
|
else {
|
|
@@ -178,7 +178,7 @@ export const one = function( $elements: any, options: FLib.Events.EventsManager.
|
|
|
178
178
|
|
|
179
179
|
function _internalCallback( this: any, e ) {
|
|
180
180
|
off( $elements || this, options );
|
|
181
|
-
options.callback.call( this, e );
|
|
181
|
+
options.callback.call( this, e, this );
|
|
182
182
|
}
|
|
183
183
|
|
|
184
184
|
on( $elements, {
|
package/Events/Gesture.ts
CHANGED
|
@@ -483,7 +483,12 @@ class GestureManager {
|
|
|
483
483
|
|
|
484
484
|
const touchCoords = getPos( e );
|
|
485
485
|
|
|
486
|
-
this
|
|
486
|
+
if (this.#options.selector) {
|
|
487
|
+
this.#$currentTargetElement = e.target?.closest(this.#options.selector) ?? this.#$element;
|
|
488
|
+
}
|
|
489
|
+
else {
|
|
490
|
+
this.#$currentTargetElement = this.#$element
|
|
491
|
+
}
|
|
487
492
|
|
|
488
493
|
if ( this.#options.start ) {
|
|
489
494
|
this.#options.start.call( this.#$currentTargetElement, e, this.#$currentTargetElement, touchCoords, 'start' );
|
|
@@ -64,7 +64,7 @@ export default class KeyboardHandler {
|
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
|
|
67
|
-
#onKeypress = ( e: KeyboardEvent ): void => {
|
|
67
|
+
#onKeypress = ( e: KeyboardEvent, $target: HTMLElement ): void => {
|
|
68
68
|
const key = e.key;
|
|
69
69
|
|
|
70
70
|
// Block all key except tab, CTRL R, CMD R or F5
|
|
@@ -78,12 +78,12 @@ export default class KeyboardHandler {
|
|
|
78
78
|
e.preventDefault();
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
this.#handleCallbacks( e,
|
|
81
|
+
this.#handleCallbacks( e, $target, [ 'onKey' ] );
|
|
82
82
|
|
|
83
83
|
const FNC = this.#eventsName.get( key );
|
|
84
84
|
|
|
85
85
|
if ( FNC ) {
|
|
86
|
-
this.#handleCallbacks( e,
|
|
86
|
+
this.#handleCallbacks( e, $target, FNC( e ) );
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
|
package/Helpers/Defer.ts
CHANGED
|
@@ -1,32 +1,34 @@
|
|
|
1
|
+
export type DeferredPromise<T> = Promise<T | undefined> & { resolve: ( a?: T | PromiseLike<T> ) => void; reject: ( a?: T | PromiseLike<T> ) => void; }
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Deferred promise
|
|
3
5
|
*
|
|
4
6
|
* @example
|
|
5
|
-
* let
|
|
7
|
+
* let prom = defer()
|
|
6
8
|
*
|
|
7
9
|
* // To resolve:
|
|
8
|
-
*
|
|
10
|
+
* prom.resolve()
|
|
9
11
|
*
|
|
10
12
|
* // To reject:
|
|
11
|
-
*
|
|
13
|
+
* prom.reject()
|
|
12
14
|
*
|
|
13
15
|
* @returns - a promise with a resolve and reject function
|
|
14
16
|
*/
|
|
15
|
-
export function defer():
|
|
16
|
-
let res: (a
|
|
17
|
-
rej: (a
|
|
17
|
+
export function defer<T>(): DeferredPromise<T> {
|
|
18
|
+
let res: (a?: T | PromiseLike<T> ) => void,
|
|
19
|
+
rej: (a?: T | PromiseLike<T> ) => void;
|
|
18
20
|
|
|
19
|
-
const promise = new Promise( ( resolve, reject ) => {
|
|
21
|
+
const promise = new Promise<T | undefined>( ( resolve, reject ) => {
|
|
20
22
|
res = resolve;
|
|
21
23
|
rej = reject;
|
|
22
|
-
} ) as
|
|
24
|
+
} ) as DeferredPromise<T>;
|
|
23
25
|
|
|
24
|
-
promise.resolve = ( a
|
|
26
|
+
promise.resolve = ( a?: T | PromiseLike<T> ) => {
|
|
25
27
|
res( a );
|
|
26
28
|
return promise;
|
|
27
29
|
};
|
|
28
30
|
|
|
29
|
-
promise.reject = ( a
|
|
31
|
+
promise.reject = ( a?: T | PromiseLike<T> )=> {
|
|
30
32
|
rej( a );
|
|
31
33
|
return promise;
|
|
32
34
|
};
|
package/Modules/Popin/Popin.ts
CHANGED
|
@@ -399,15 +399,13 @@ export default class Popin {
|
|
|
399
399
|
}
|
|
400
400
|
|
|
401
401
|
|
|
402
|
-
#openPopinHandler = ( e: Event ): void => {
|
|
402
|
+
#openPopinHandler = ( e: Event, $target: HTMLElement ): void => {
|
|
403
403
|
e.preventDefault();
|
|
404
404
|
|
|
405
405
|
if ( this.#loadingPromise ) {
|
|
406
406
|
return;
|
|
407
407
|
}
|
|
408
408
|
|
|
409
|
-
const $target = e.target as HTMLElement;
|
|
410
|
-
|
|
411
409
|
if ( $target.nodeName === 'FORM' ) {
|
|
412
410
|
this.#_loadForm( $target as HTMLFormElement );
|
|
413
411
|
return;
|
|
@@ -104,10 +104,10 @@ export default class PopinController implements FLib.Popin.Controller {
|
|
|
104
104
|
|
|
105
105
|
|
|
106
106
|
|
|
107
|
-
#openPopinHandler = ( e: Event): void => {
|
|
107
|
+
#openPopinHandler = ( e: Event, $target: HTMLElement): void => {
|
|
108
108
|
e.preventDefault();
|
|
109
109
|
|
|
110
|
-
this.#parseElement(
|
|
110
|
+
this.#parseElement( $target );
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
|
package/Modules/SkinSelect.ts
CHANGED
|
@@ -457,11 +457,11 @@ export default class SkinSelect implements FLib.SkinSelect.SkinSelect {
|
|
|
457
457
|
|
|
458
458
|
|
|
459
459
|
// Handle click on the skinned ul>li list
|
|
460
|
-
#fakeOptionsClickHandler = ( e: MouseEvent ): void => {
|
|
461
|
-
if (
|
|
460
|
+
#fakeOptionsClickHandler = ( e: MouseEvent, $target: HTMLElement ): void => {
|
|
461
|
+
if ( !$target.matches( '.' + this.#options.itemClassName ) ) {
|
|
462
462
|
return;
|
|
463
463
|
}
|
|
464
|
-
this.selectByOption(
|
|
464
|
+
this.selectByOption( $target );
|
|
465
465
|
}
|
|
466
466
|
|
|
467
467
|
|
package/README.md
CHANGED
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@creative-web-solution/front-library",
|
|
3
3
|
"title": "Frontend library",
|
|
4
4
|
"description": "Frontend functions and modules",
|
|
5
|
-
"version": "7.1.
|
|
5
|
+
"version": "7.1.25",
|
|
6
6
|
"homepage": "https://github.com/creative-web-solution/front-library",
|
|
7
7
|
"author": "Creative Web Solution <contact@cws-studio.com> (https://www.cws-studio.com)",
|
|
8
8
|
"keywords": [],
|