@creative-web-solution/front-library 7.0.7 → 7.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 +15 -0
- package/DOM/Class.ts +10 -12
- package/DOM/DocumentSize.ts +3 -1
- package/DOM/Filter.ts +0 -2
- package/DOM/Index.ts +1 -3
- package/DOM/Manipulation.ts +0 -3
- package/DOM/Matrix.ts +12 -12
- package/DOM/Offset.ts +4 -5
- package/DOM/OuterSize.ts +12 -12
- package/DOM/PageToDOM.ts +2 -2
- package/DOM/Position.ts +3 -3
- package/DOM/Size.ts +3 -7
- package/DOM/StrToDOM.ts +0 -1
- package/DOM/Styles.ts +3 -12
- package/DOM/Traversing.ts +0 -6
- package/DOM/WindowScroll.ts +3 -1
- package/DOM/WindowSize.ts +3 -1
- package/DOM/Wrap.ts +0 -1
- package/Events/DeviceOrientation.ts +27 -31
- package/Events/EventsManager.ts +10 -25
- package/Events/Gesture.ts +36 -37
- package/Events/HistoryController.ts +11 -17
- package/Events/ImageLoad.ts +35 -19
- package/Events/IntersectObserver.ts +15 -19
- package/Events/KeyboardHandler.ts +10 -8
- package/Events/MediaQueriesEvents.ts +53 -51
- package/Events/OnAnimationEnd.ts +2 -3
- package/Events/OnTransitionEnd.ts +3 -3
- package/Events/PubSub.ts +5 -8
- package/Events/TouchHover.ts +18 -21
- package/Events/WindowEvents.ts +26 -30
- package/Helpers/Colors.ts +7 -23
- package/Helpers/Cookie.ts +5 -12
- package/Helpers/Coordinates.ts +0 -7
- package/Helpers/Debounce.ts +3 -7
- package/Helpers/Defer.ts +1 -1
- package/Helpers/GetValue.ts +0 -2
- package/Helpers/Insert.ts +0 -1
- package/Helpers/Sequential.ts +0 -2
- package/Helpers/Slice.ts +0 -3
- package/Helpers/Throttle.ts +0 -1
- package/Helpers/TransitionHelpers.ts +8 -6
- package/Helpers/Type.ts +1 -14
- package/Helpers/Unique.ts +3 -3
- package/Helpers/UrlParser.ts +13 -22
- package/Helpers/Wait.ts +1 -1
- package/Modules/Accordion/Tab.ts +18 -16
- package/Modules/Accordion/index.ts +24 -16
- package/Modules/Autocomplete.ts +95 -101
- package/Modules/DragSlider.ts +72 -63
- package/Modules/GlobalState.ts +60 -53
- package/Modules/LoadGMap.ts +4 -7
- package/Modules/Notifications/Notification.ts +28 -32
- package/Modules/Notifications/index.ts +43 -36
- package/Modules/Popin/Popin.ts +100 -110
- package/Modules/Popin/PopinAccessibility.ts +8 -8
- package/Modules/Popin/PopinBackground.ts +11 -11
- package/Modules/Popin/PopinController.ts +23 -29
- package/Modules/Popin/Tools.ts +18 -19
- package/Modules/QuickTemplate.ts +4 -6
- package/Modules/ScrollSnap.ts +110 -104
- package/Modules/SkinCheckbox.ts +51 -37
- package/Modules/SkinFile.ts +62 -52
- package/Modules/SkinRadio.ts +62 -42
- package/Modules/SkinSelect.ts +116 -100
- package/Modules/Slider/Slide.ts +49 -52
- package/Modules/Slider/Slider.ts +100 -136
- package/Modules/Slider/SliderControls.ts +60 -59
- package/Modules/Tabs/Tab.ts +27 -23
- package/Modules/Tabs/index.ts +35 -25
- package/Modules/Validator/Date.ts +2 -1
- package/Modules/Validator/Equals.ts +1 -1
- package/Modules/Validator/Internal/Input.ts +370 -0
- package/Modules/Validator/Internal/InputValidator.ts +99 -0
- package/Modules/Validator/Internal/ValidatorFunctionsController.ts +58 -0
- package/Modules/Validator/Max.ts +1 -1
- package/Modules/Validator/Min.ts +1 -1
- package/Modules/Validator/MultiRequired.ts +5 -5
- package/Modules/Validator/Number.ts +1 -0
- package/Modules/Validator/Pattern.ts +1 -1
- package/Modules/Validator/Recaptcha.ts +1 -0
- package/Modules/Validator/Required.ts +3 -2
- package/Modules/Validator/ServerCheck.ts +23 -15
- package/Modules/Validator/Tools/GetQueryFromForm.ts +1 -6
- package/Modules/Validator/Tools/IsDate.ts +2 -3
- package/Modules/Validator/Tools/IsEmail.ts +2 -5
- package/Modules/Validator/Tools/IsEmpty.ts +0 -2
- package/Modules/Validator/Tools/IsNumber.ts +0 -2
- package/Modules/Validator/Tools/IsUrl.ts +1 -3
- package/Modules/Validator/Tools/Label.ts +5 -15
- package/Modules/Validator/Tools/RadioButton.ts +4 -10
- package/Modules/Validator/Url.ts +1 -0
- package/Modules/Validator/index.ts +36 -36
- package/Modules/YouTubePlayer.ts +18 -16
- package/README.md +1 -1
- package/Types/Accordion.d.ts +36 -0
- package/Types/Autocomplete.d.ts +95 -0
- package/Types/DOM.d.ts +69 -0
- package/Types/DragSlider.d.ts +56 -0
- package/Types/EventsHelpers.d.ts +390 -0
- package/Types/GLImageTransition.d.ts +47 -43
- package/Types/GlobalState.d.ts +9 -0
- package/Types/Helpers.d.ts +30 -0
- package/Types/Notifications.d.ts +48 -44
- package/Types/Popin.d.ts +95 -0
- package/Types/ScrollSnap.d.ts +66 -0
- package/Types/SkinCheckbox.d.ts +26 -0
- package/Types/SkinFile.d.ts +38 -0
- package/Types/SkinRadio.d.ts +28 -0
- package/Types/SkinSelect.d.ts +59 -0
- package/Types/Slider.d.ts +106 -0
- package/Types/Tabs.d.ts +26 -0
- package/Types/Validator.d.ts +72 -0
- package/Types/YouTubePlayer.d.ts +27 -0
- package/Types/index.d.ts +22 -21
- package/WebGL/GLImageTransition/GLImageTransition.ts +83 -80
- package/WebGL/GLImageTransition/Presets/Cellular.ts +11 -11
- package/WebGL/GLImageTransition/Presets/Fade.ts +2 -3
- package/WebGL/GLImageTransition/Presets/HorizontalMovingGrid.ts +9 -9
- package/WebGL/GLImageTransition/Presets/PresetSample.ts +11 -9
- package/WebGL/GLImageTransition/Presets/Solarisation.ts +7 -12
- package/package.json +1 -1
- package/Modules/Template.ts +0 -209
- package/Types/AccordionTypes.d.ts +0 -29
- package/Types/AutocompleteTypes.d.ts +0 -85
- package/Types/DOMTypes.d.ts +0 -62
- package/Types/DragSliderTypes.d.ts +0 -52
- package/Types/EventsHelpersTypes.d.ts +0 -370
- package/Types/GlobalStateTypes.d.ts +0 -5
- package/Types/HelpersTypes.d.ts +0 -23
- package/Types/MediaPreloaderTypes.d.ts +0 -12
- package/Types/PopinTypes.d.ts +0 -83
- package/Types/ScrollSnapTypes.d.ts +0 -62
- package/Types/SkinCheckboxTypes.d.ts +0 -23
- package/Types/SkinFileTypes.d.ts +0 -34
- package/Types/SkinRadioTypes.d.ts +0 -24
- package/Types/SkinSelectTypes.d.ts +0 -48
- package/Types/SliderTypes.d.ts +0 -97
- package/Types/TabsTypes.d.ts +0 -22
- package/Types/ValidatorTypes.d.ts +0 -61
- package/Types/YouTubePlayerTypes.d.ts +0 -23
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Simple fade between 2 images
|
|
3
3
|
*/
|
|
4
|
-
export default class Fade implements
|
|
4
|
+
export default class Fade implements FLib.GLImageTransition.Preset {
|
|
5
5
|
|
|
6
|
-
get fsSource() {
|
|
6
|
+
get fsSource(): string {
|
|
7
7
|
return `
|
|
8
8
|
#ifdef GL_ES
|
|
9
9
|
precision mediump float;
|
|
@@ -27,5 +27,4 @@ export default class Fade implements GLImageTransitionPreset {
|
|
|
27
27
|
}
|
|
28
28
|
`;
|
|
29
29
|
}
|
|
30
|
-
|
|
31
30
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Reveal the next image by moving horizontally the columns of a "grid"
|
|
3
3
|
* Insipred by @patriciogv's Ikeda Data Stream - 2015
|
|
4
4
|
*/
|
|
5
|
-
export default class HorizontalMovingGrid implements
|
|
5
|
+
export default class HorizontalMovingGrid implements FLib.GLImageTransition.Preset {
|
|
6
6
|
|
|
7
7
|
#speed: number;
|
|
8
8
|
#grid: number[];
|
|
@@ -10,7 +10,7 @@ export default class HorizontalMovingGrid implements GLImageTransitionPreset {
|
|
|
10
10
|
#U_GRID!: WebGLUniformLocation | null;
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
get fsSource() {
|
|
13
|
+
get fsSource(): string {
|
|
14
14
|
return `
|
|
15
15
|
#ifdef GL_ES
|
|
16
16
|
precision mediump float;
|
|
@@ -73,21 +73,21 @@ export default class HorizontalMovingGrid implements GLImageTransitionPreset {
|
|
|
73
73
|
`;
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
-
get speed() {
|
|
76
|
+
get speed(): number {
|
|
77
77
|
return this.#speed;
|
|
78
78
|
}
|
|
79
|
-
get grid() {
|
|
79
|
+
get grid(): number[] {
|
|
80
80
|
return this.#grid;
|
|
81
81
|
}
|
|
82
|
-
get U_SPEED() {
|
|
82
|
+
get U_SPEED(): WebGLUniformLocation | null {
|
|
83
83
|
return this.#U_SPEED;
|
|
84
84
|
}
|
|
85
|
-
get U_GRID() {
|
|
85
|
+
get U_GRID(): WebGLUniformLocation | null {
|
|
86
86
|
return this.#U_GRID;
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
|
|
90
|
-
constructor( speed
|
|
90
|
+
constructor( speed = 1, grid: number[] = [ 100, 50 ] ) {
|
|
91
91
|
this.#speed = speed;
|
|
92
92
|
this.#grid = grid;
|
|
93
93
|
}
|
|
@@ -96,7 +96,7 @@ export default class HorizontalMovingGrid implements GLImageTransitionPreset {
|
|
|
96
96
|
/**
|
|
97
97
|
* Create specific uniform for this preset
|
|
98
98
|
*/
|
|
99
|
-
addUniform( GL: WebGLRenderingContext, SHADER_PROGRAM: WebGLProgram ) {
|
|
99
|
+
addUniform( GL: WebGLRenderingContext, SHADER_PROGRAM: WebGLProgram ): void {
|
|
100
100
|
this.#U_SPEED = GL.getUniformLocation( SHADER_PROGRAM, 'uSpeed' );
|
|
101
101
|
this.#U_GRID = GL.getUniformLocation( SHADER_PROGRAM, 'uGrid' );
|
|
102
102
|
}
|
|
@@ -105,7 +105,7 @@ export default class HorizontalMovingGrid implements GLImageTransitionPreset {
|
|
|
105
105
|
/**
|
|
106
106
|
* Update the uniform of this preset during render
|
|
107
107
|
*/
|
|
108
|
-
updateUniform( GL: WebGLRenderingContext ) {
|
|
108
|
+
updateUniform( GL: WebGLRenderingContext ): void {
|
|
109
109
|
GL.uniform1f( this.#U_SPEED, this.#speed );
|
|
110
110
|
GL.uniform2fv( this.#U_GRID, this.#grid );
|
|
111
111
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Preset sample
|
|
3
3
|
*/
|
|
4
|
-
export default class PresetSample implements
|
|
4
|
+
export default class PresetSample implements FLib.GLImageTransition.Preset {
|
|
5
5
|
|
|
6
6
|
#myUniformValue: number;
|
|
7
7
|
#U_MY_UNIFORM!: WebGLUniformLocation | null;
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
// Fragment shader source code
|
|
11
|
-
get fsSource() {
|
|
11
|
+
get fsSource(): string {
|
|
12
12
|
return `
|
|
13
13
|
#ifdef GL_ES
|
|
14
14
|
precision mediump float;
|
|
@@ -33,13 +33,13 @@ export default class PresetSample implements GLImageTransitionPreset {
|
|
|
33
33
|
gl_FragColor = vec4( color, 1.0 );
|
|
34
34
|
}
|
|
35
35
|
`;
|
|
36
|
-
}
|
|
36
|
+
}
|
|
37
37
|
|
|
38
|
-
get myUniformValue() {
|
|
38
|
+
get myUniformValue(): number {
|
|
39
39
|
return this.#myUniformValue;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
get U_MY_UNIFORM() {
|
|
42
|
+
get U_MY_UNIFORM(): WebGLUniformLocation | null {
|
|
43
43
|
return this.#U_MY_UNIFORM;
|
|
44
44
|
}
|
|
45
45
|
|
|
@@ -55,7 +55,7 @@ export default class PresetSample implements GLImageTransitionPreset {
|
|
|
55
55
|
/**
|
|
56
56
|
* Create specific uniforms for this preset
|
|
57
57
|
*/
|
|
58
|
-
addUniform( GL: WebGLRenderingContext, SHADER_PROGRAM: WebGLProgram ) {
|
|
58
|
+
addUniform( GL: WebGLRenderingContext, SHADER_PROGRAM: WebGLProgram ): void {
|
|
59
59
|
this.#U_MY_UNIFORM = GL.getUniformLocation( SHADER_PROGRAM, 'uMyUniform' );
|
|
60
60
|
}
|
|
61
61
|
|
|
@@ -63,7 +63,7 @@ export default class PresetSample implements GLImageTransitionPreset {
|
|
|
63
63
|
/**
|
|
64
64
|
* Update the uniforms of this preset during render
|
|
65
65
|
*/
|
|
66
|
-
updateUniform( GL: WebGLRenderingContext ) {
|
|
66
|
+
updateUniform( GL: WebGLRenderingContext ): void {
|
|
67
67
|
GL.uniform1f( this.#U_MY_UNIFORM, this.#myUniformValue );
|
|
68
68
|
}
|
|
69
69
|
|
|
@@ -71,13 +71,15 @@ export default class PresetSample implements GLImageTransitionPreset {
|
|
|
71
71
|
/**
|
|
72
72
|
* Called each time before a transition
|
|
73
73
|
*/
|
|
74
|
-
onTransitionStart() {
|
|
74
|
+
onTransitionStart(): void {
|
|
75
|
+
// Code here
|
|
75
76
|
}
|
|
76
77
|
|
|
77
78
|
|
|
78
79
|
/**
|
|
79
80
|
* Called each time after a transition
|
|
80
81
|
*/
|
|
81
|
-
onTransitionEnd() {
|
|
82
|
+
onTransitionEnd(): void {
|
|
83
|
+
// Code here
|
|
82
84
|
}
|
|
83
85
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* All colors go to white on the current image et go to the color of the next one
|
|
3
3
|
*/
|
|
4
|
-
export default class Solarisation implements
|
|
4
|
+
export default class Solarisation implements FLib.GLImageTransition.Preset {
|
|
5
5
|
|
|
6
6
|
#fadeToBlack: boolean;
|
|
7
7
|
#fadeToBlackValue: number;
|
|
8
8
|
#U_FADE_TO_BLACK!: WebGLUniformLocation | null;
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
get fsSource() {
|
|
11
|
+
get fsSource(): string {
|
|
12
12
|
return `
|
|
13
13
|
#ifdef GL_ES
|
|
14
14
|
precision mediump float;
|
|
@@ -39,11 +39,11 @@ export default class Solarisation implements GLImageTransitionPreset {
|
|
|
39
39
|
`;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
get fadeToBlack() {
|
|
42
|
+
get fadeToBlack(): boolean {
|
|
43
43
|
return this.#fadeToBlack;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
get U_FADE_TO_BLACK() {
|
|
46
|
+
get U_FADE_TO_BLACK(): WebGLUniformLocation | null {
|
|
47
47
|
return this.#U_FADE_TO_BLACK;
|
|
48
48
|
}
|
|
49
49
|
|
|
@@ -52,7 +52,7 @@ export default class Solarisation implements GLImageTransitionPreset {
|
|
|
52
52
|
/**
|
|
53
53
|
* Solarisation constructor
|
|
54
54
|
*
|
|
55
|
-
* @param
|
|
55
|
+
* @param fadeToBlack - Fade to black instead of white
|
|
56
56
|
*/
|
|
57
57
|
constructor( fadeToBlack = false ) {
|
|
58
58
|
this.#fadeToBlack = fadeToBlack;
|
|
@@ -62,21 +62,16 @@ export default class Solarisation implements GLImageTransitionPreset {
|
|
|
62
62
|
|
|
63
63
|
/**
|
|
64
64
|
* Create specific uniforms for this preset
|
|
65
|
-
*
|
|
66
|
-
* @param {WebGLRenderingContext} GL
|
|
67
|
-
* @param {WebGLProgram} SHADER_PROGRAM
|
|
68
65
|
*/
|
|
69
|
-
addUniform( GL, SHADER_PROGRAM ) {
|
|
66
|
+
addUniform( GL: WebGLRenderingContext, SHADER_PROGRAM: WebGLProgram ): void {
|
|
70
67
|
this.#U_FADE_TO_BLACK = GL.getUniformLocation( SHADER_PROGRAM, 'uFadeToBlack' );
|
|
71
68
|
}
|
|
72
69
|
|
|
73
70
|
|
|
74
71
|
/**
|
|
75
72
|
* Update the uniforms of this preset during render
|
|
76
|
-
*
|
|
77
|
-
* @param {WebGLRenderingContext} GL
|
|
78
73
|
*/
|
|
79
|
-
updateUniform( GL ) {
|
|
74
|
+
updateUniform( GL: WebGLRenderingContext ): void {
|
|
80
75
|
GL.uniform1f( this.#U_FADE_TO_BLACK, this.#fadeToBlackValue );
|
|
81
76
|
}
|
|
82
77
|
}
|
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.0
|
|
5
|
+
"version": "7.1.0",
|
|
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": [],
|
package/Modules/Template.ts
DELETED
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
// From underscore
|
|
2
|
-
|
|
3
|
-
const _ = {};
|
|
4
|
-
|
|
5
|
-
// By default, Underscore uses ERB-style template delimiters, change the
|
|
6
|
-
// following template settings to use alternative delimiters.
|
|
7
|
-
const templateSettings = {
|
|
8
|
-
"evaluate": /<%([\s\S]+?)%>/g,
|
|
9
|
-
"interpolate": /<%=([\s\S]+?)%>/g,
|
|
10
|
-
"escape": /<%-([\s\S]+?)%>/g
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
// When customizing `templateSettings`, if you don't want to define an
|
|
14
|
-
// interpolation, evaluation or escaping regex, we need one that is
|
|
15
|
-
// guaranteed not to match.
|
|
16
|
-
const noMatch = /(.)^/;
|
|
17
|
-
|
|
18
|
-
// Certain characters need to be escaped so that they can be put into a
|
|
19
|
-
// string literal.
|
|
20
|
-
const escapes = {
|
|
21
|
-
"'": "'",
|
|
22
|
-
'\\': '\\',
|
|
23
|
-
'\r': 'r',
|
|
24
|
-
'\n': 'n',
|
|
25
|
-
'\t': 't',
|
|
26
|
-
'\u2028': 'u2028',
|
|
27
|
-
'\u2029': 'u2029'
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
const escaper = /\\|'|\r|\n|\t|\u2028|\u2029/g;
|
|
31
|
-
|
|
32
|
-
// List of HTML entities for escaping.
|
|
33
|
-
const entityMap = {
|
|
34
|
-
"escape": {
|
|
35
|
-
'&': '&',
|
|
36
|
-
'<': '<',
|
|
37
|
-
'>': '>',
|
|
38
|
-
'"': '"',
|
|
39
|
-
"'": '''
|
|
40
|
-
},
|
|
41
|
-
"unescape": {}
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
function objectKeys(obj) {
|
|
45
|
-
if (obj !== Object(obj)) {
|
|
46
|
-
return [];
|
|
47
|
-
}
|
|
48
|
-
return Object.keys(obj);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// Invert the keys and values of an object. The values must be serializable.
|
|
52
|
-
function invert(obj) {
|
|
53
|
-
let result = {},
|
|
54
|
-
keys = objectKeys(obj);
|
|
55
|
-
|
|
56
|
-
for (let i = 0, length = keys.length; i < length; i++) {
|
|
57
|
-
result[obj[keys[i]]] = keys[i];
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
return result;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
entityMap.unescape = invert( entityMap.escape );
|
|
64
|
-
|
|
65
|
-
// "Regexes" containing the keys and values listed immediately above.
|
|
66
|
-
let entityRegexes = {
|
|
67
|
-
escape: new RegExp(
|
|
68
|
-
'[' + objectKeys(entityMap.escape).join('') + ']',
|
|
69
|
-
'g'
|
|
70
|
-
),
|
|
71
|
-
unescape: new RegExp(
|
|
72
|
-
'(' + objectKeys(entityMap.unescape).join('|') + ')',
|
|
73
|
-
'g'
|
|
74
|
-
)
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
// Functions for escaping and unescaping strings to/from HTML interpolation.
|
|
78
|
-
;['escape', 'unescape'].forEach(method => {
|
|
79
|
-
_[method] = function(string) {
|
|
80
|
-
if (string == null) {
|
|
81
|
-
return '';
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
return ('' + string).replace(entityRegexes[method], match => {
|
|
85
|
-
return entityMap[method][match];
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
})
|
|
89
|
-
|
|
90
|
-
// Fill in a given object with default properties.
|
|
91
|
-
function defaults(...obj) {
|
|
92
|
-
obj.forEach(source => {
|
|
93
|
-
if (source) {
|
|
94
|
-
for (let prop in source) {
|
|
95
|
-
if (obj[prop] === void 0) {
|
|
96
|
-
obj[prop] = source[prop];
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
return obj;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
// JavaScript micro-templating, similar to John Resig's implementation.
|
|
106
|
-
// Underscore templating handles arbitrary delimiters, preserves whitespace,
|
|
107
|
-
// and correctly escapes quotes within interpolated code.
|
|
108
|
-
/**
|
|
109
|
-
* Micro templating from Underscore
|
|
110
|
-
*
|
|
111
|
-
* @param text
|
|
112
|
-
* @param data
|
|
113
|
-
* @param [settings]
|
|
114
|
-
* @param [settings.evaluate=/<%([\s\S]+?)%>/g]
|
|
115
|
-
* @param [settings.interpolate=/<%=([\s\S]+?)%>/g]
|
|
116
|
-
* @param [settings.escape=/<%-([\s\S]+?)%>/g]
|
|
117
|
-
*
|
|
118
|
-
* @see extra/modules/template.md
|
|
119
|
-
*
|
|
120
|
-
* @example
|
|
121
|
-
* let tplFunction = template( html );
|
|
122
|
-
* let html = tplFunction( { "text": "hey!!" } );
|
|
123
|
-
*
|
|
124
|
-
* @example
|
|
125
|
-
*
|
|
126
|
-
* let html = template( html, { "text": "hey!!" } );
|
|
127
|
-
*/
|
|
128
|
-
export default function template( text: string, data?, settings? ) {
|
|
129
|
-
let render, index, source, tpl
|
|
130
|
-
|
|
131
|
-
settings = defaults({}, templateSettings, settings)
|
|
132
|
-
|
|
133
|
-
// Combine delimiters into one regular expression via alternation.
|
|
134
|
-
let matcher = new RegExp(
|
|
135
|
-
[
|
|
136
|
-
(settings.escape || noMatch).source,
|
|
137
|
-
(settings.interpolate || noMatch).source,
|
|
138
|
-
(settings.evaluate || noMatch).source
|
|
139
|
-
].join('|') + '|$',
|
|
140
|
-
'g'
|
|
141
|
-
)
|
|
142
|
-
|
|
143
|
-
// Compile the template source, escaping string literals appropriately.
|
|
144
|
-
index = 0;
|
|
145
|
-
source = "__p+='";
|
|
146
|
-
|
|
147
|
-
text.replace(
|
|
148
|
-
matcher,
|
|
149
|
-
(match, escape, interpolate, evaluate, offset) => {
|
|
150
|
-
source += text.slice(index, offset).replace(escaper, match => {
|
|
151
|
-
return '\\' + escapes[match];
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
if (escape) {
|
|
155
|
-
source +=
|
|
156
|
-
"'+\n((__t=(" +
|
|
157
|
-
escape +
|
|
158
|
-
"))==null?'':_.escape(__t))+\n'";
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
if (interpolate) {
|
|
162
|
-
source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'";
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
if (evaluate) {
|
|
166
|
-
source += "';\n" + evaluate + "\n__p+='";
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
index = offset + match.length;
|
|
170
|
-
|
|
171
|
-
return match;
|
|
172
|
-
}
|
|
173
|
-
);
|
|
174
|
-
|
|
175
|
-
source += "';\n";
|
|
176
|
-
|
|
177
|
-
// If a variable is not specified, place data values in local scope.
|
|
178
|
-
if (!settings.variable) {
|
|
179
|
-
source = 'with(obj||{}){\n' + source + '}\n';
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
source =
|
|
183
|
-
"var __t,__p='',__j=Array.prototype.join," +
|
|
184
|
-
"print=function(){__p+=__j.call(arguments,'');};\n" +
|
|
185
|
-
source +
|
|
186
|
-
'return __p;\n';
|
|
187
|
-
|
|
188
|
-
try {
|
|
189
|
-
render = new Function(settings.variable || 'obj', '_', source);
|
|
190
|
-
} catch (e) {
|
|
191
|
-
e.source = source;
|
|
192
|
-
throw e;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
if (data) {
|
|
196
|
-
return render(data, _);
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
tpl = function(data) {
|
|
200
|
-
/** @ts-expect-error */
|
|
201
|
-
return render.call(this, data, _);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
// Provide the compiled function source as a convenience for precompilation.
|
|
205
|
-
tpl.source = 'function(' + (settings.variable || 'obj') + '){\n' + source + '}';
|
|
206
|
-
|
|
207
|
-
return tpl;
|
|
208
|
-
}
|
|
209
|
-
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
type AutocompleteLayerPositionType = 'top' | 'bottom';
|
|
2
|
-
|
|
3
|
-
type AccordionAnimationFunctionType = ( $tab: HTMLElement, $panel: HTMLElement ) => Promise<void>;
|
|
4
|
-
type AccordionCallbackType = ( $tab: HTMLElement, $panel: HTMLElement ) => void;
|
|
5
|
-
type AccordionCloseCallbackType = ( $tab: HTMLElement, $panel: HTMLElement, autoclose: boolean ) => void;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
type AccordionOptionsType = {
|
|
9
|
-
/** Default: 'button[aria-expanded]' */
|
|
10
|
-
tabSelector: string;
|
|
11
|
-
/** Default: false */
|
|
12
|
-
allowMultipleTab?: boolean;
|
|
13
|
-
/** Default: false */
|
|
14
|
-
atLeastOneOpen?: boolean;
|
|
15
|
-
onOpenAtStart?: AccordionCallbackType;
|
|
16
|
-
onOpen?: AccordionCallbackType;
|
|
17
|
-
onClose?: AccordionCloseCallbackType;
|
|
18
|
-
animations?: {
|
|
19
|
-
open?: AccordionAnimationFunctionType;
|
|
20
|
-
close?: AccordionAnimationFunctionType;
|
|
21
|
-
destroy?: AccordionAnimationFunctionType;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
type AccordionTabOptionsType = AccordionOptionsType & {
|
|
27
|
-
onOpenTab: (( tab: Tab ) => void) | null;
|
|
28
|
-
index: number;
|
|
29
|
-
}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
type AutocompleteItemType = {
|
|
2
|
-
name: string;
|
|
3
|
-
[ key: string ]: any;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
type AutocompleteOptionsType = {
|
|
7
|
-
$searchField: HTMLElement;
|
|
8
|
-
/** @default document.body */
|
|
9
|
-
$panelWrapper?: HTMLElement;
|
|
10
|
-
/** @default 200 */
|
|
11
|
-
maxHeight?: number;
|
|
12
|
-
/** @default false */
|
|
13
|
-
useCache?: boolean;
|
|
14
|
-
/** @default 3 */
|
|
15
|
-
minchar?: number;
|
|
16
|
-
/** @default AutocompleteLayerPosition.top */
|
|
17
|
-
layerPosition?: AutocompleteLayerPosition;
|
|
18
|
-
source?: ( query: string | null, callback: ( results: AutocompleteItemType[] ) => void ) => void;
|
|
19
|
-
url?: string;
|
|
20
|
-
/**
|
|
21
|
-
* Use CSS or Javascript for the position of the layer
|
|
22
|
-
* @default false
|
|
23
|
-
*/
|
|
24
|
-
cssPositionning?: boolean;
|
|
25
|
-
/**
|
|
26
|
-
* Update or not the text field with the selected value
|
|
27
|
-
* @default true
|
|
28
|
-
*/
|
|
29
|
-
updateOnSelect?: boolean;
|
|
30
|
-
onSelect?: ({ item, query, resultsList }) => void;
|
|
31
|
-
queryParams?: ( query: string ) => { "search": string };
|
|
32
|
-
normalize?: ( data: any ) => { success: boolean, results: AutocompleteItemType[] };
|
|
33
|
-
/**
|
|
34
|
-
* Allow to manipulate the displayed value of items
|
|
35
|
-
* @default ({item, query, resultList}) => item.name
|
|
36
|
-
*/
|
|
37
|
-
renderFieldValue?: (options: { item: AutocompleteItemType, query: string, resultList: AutocompleteItemType[] }) => string;
|
|
38
|
-
/**
|
|
39
|
-
* @default ({resultItem, query, index, itemsList, cssClass}) => `<li role="option" data-idx="${index}" class="${cssClass.item}"><a class="${cssClass.link}">${resultItem.markedName}</a></li>`
|
|
40
|
-
*/
|
|
41
|
-
render?: ( options: { resultItem: AutocompleteItemType, query: string, index: number, itemsList: AutocompleteItemType[], cssClass: AutocompleteClassnameType }) => string;
|
|
42
|
-
/**
|
|
43
|
-
* @default ({resultList, query, cssClass}) => `<ul role="listbox" class="${cssClass.list}">${resultList.join('')}</ul>`
|
|
44
|
-
*/
|
|
45
|
-
renderList?: ( options: { resultList: AutocompleteItemType[], query: string, cssClass: AutocompleteClassnameType }) => string;
|
|
46
|
-
/**
|
|
47
|
-
* @default ({errorMsg, query, cssClass}) => `<li class="${cssClass.error}">${errorMsg}</li>`
|
|
48
|
-
*/
|
|
49
|
-
renderError?: (options: { errorMsg: string, query: string, cssClass: AutocompleteClassnameType }) => string;
|
|
50
|
-
/**
|
|
51
|
-
* Allow to wrap the query with a tag in the result item name
|
|
52
|
-
* @default ({resultItem, reQuery, query, index, resultList, cssClass}) => {resultItem.name && (resultItem.markedName = resultItem.name.replace(reQuery,`<mark class="${cssClass.mark}">$1</mark>`));}
|
|
53
|
-
*/
|
|
54
|
-
renderMark?: ( options: { resultItem: AutocompleteItemType, reQuery?: RegExp, query: string, index: number, resultList: AutocompleteItemType[], cssClass: AutocompleteClassnameType }) => void;
|
|
55
|
-
l10n?: AutocompleteL10NType;
|
|
56
|
-
className?: AutocompleteClassnameType;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
type AutocompleteL10NType = {
|
|
61
|
-
/** @default No result */
|
|
62
|
-
noResult?: string;
|
|
63
|
-
/** @default Server error */
|
|
64
|
-
error?: string;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
type AutocompleteClassnameType = {
|
|
68
|
-
/** @default ac-layer */
|
|
69
|
-
layer?: string;
|
|
70
|
-
/** @default ac-list */
|
|
71
|
-
list?: string;
|
|
72
|
-
/** @default acl-itm */
|
|
73
|
-
item?: string;
|
|
74
|
-
/** @default acl-lnk */
|
|
75
|
-
link?: string;
|
|
76
|
-
/** @default acl-mrk */
|
|
77
|
-
mark?: string;
|
|
78
|
-
/** @default acl-error */
|
|
79
|
-
error?: string;
|
|
80
|
-
/** @default hover */
|
|
81
|
-
hover?: string;
|
|
82
|
-
/** @default disable */
|
|
83
|
-
disable?: string;
|
|
84
|
-
}
|
|
85
|
-
|
package/Types/DOMTypes.d.ts
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
type ClassInputType = Element | Element[] | Node | NodeList;
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
interface OffsetType {
|
|
5
|
-
top: number;
|
|
6
|
-
y: number;
|
|
7
|
-
left: number;
|
|
8
|
-
x: number;
|
|
9
|
-
right: number;
|
|
10
|
-
bottom: number;
|
|
11
|
-
width: number;
|
|
12
|
-
height: number;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
type DOMSizeType = {
|
|
17
|
-
width: number;
|
|
18
|
-
height: number;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
type DOMPositionType = {
|
|
23
|
-
left: number;
|
|
24
|
-
top: number;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
type MatrixTranslateType = {
|
|
29
|
-
tx: number;
|
|
30
|
-
ty: number;
|
|
31
|
-
tz: number;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
type MatrixTransformType = {
|
|
36
|
-
tx: number;
|
|
37
|
-
ty: number;
|
|
38
|
-
tz: number;
|
|
39
|
-
rx: number;
|
|
40
|
-
ry: number;
|
|
41
|
-
rz: number;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
type MatrixMatrixType = {
|
|
46
|
-
m11: number;
|
|
47
|
-
m21: number;
|
|
48
|
-
m31: number;
|
|
49
|
-
m41: number;
|
|
50
|
-
m12: number;
|
|
51
|
-
m22: number;
|
|
52
|
-
m32: number;
|
|
53
|
-
m42: number;
|
|
54
|
-
m13: number;
|
|
55
|
-
m23: number;
|
|
56
|
-
m33: number;
|
|
57
|
-
m43: number;
|
|
58
|
-
m14: number;
|
|
59
|
-
m24: number;
|
|
60
|
-
m34: number;
|
|
61
|
-
m44: number;
|
|
62
|
-
}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
type DragSliderCallbackParam = {
|
|
2
|
-
item: any;
|
|
3
|
-
xPos: number;
|
|
4
|
-
moveMaxSize: number;
|
|
5
|
-
isAtStart: boolean;
|
|
6
|
-
isAtEnd: boolean;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
type DragSliderItemType = {
|
|
10
|
-
index: number;
|
|
11
|
-
isFirst: boolean;
|
|
12
|
-
isLast: boolean;
|
|
13
|
-
$item: HTMLElement;
|
|
14
|
-
info: OffsetType;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
type DeltaMoveType = {
|
|
18
|
-
x: number;
|
|
19
|
-
deltaX: number;
|
|
20
|
-
deltaY: number;
|
|
21
|
-
newX: number;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
type DragSliderCallback = ( data: DragSliderCallbackParam ) => void;
|
|
25
|
-
|
|
26
|
-
type DragSliderOptions = {
|
|
27
|
-
viewportSelector: string;
|
|
28
|
-
listSelector: string;
|
|
29
|
-
itemSelector: string;
|
|
30
|
-
dragClass: string;
|
|
31
|
-
/** @default is-locked */
|
|
32
|
-
lockedClass?: string;
|
|
33
|
-
onStartDrag?: DragSliderCallback;
|
|
34
|
-
onDrag?: DragSliderCallback;
|
|
35
|
-
onStopDrag?: DragSliderCallback;
|
|
36
|
-
onSnap?: DragSliderCallback;
|
|
37
|
-
onSnapUpdate?: DragSliderCallback;
|
|
38
|
-
onMouseEnter?: DragSliderCallback;
|
|
39
|
-
onMouseLeave?: DragSliderCallback;
|
|
40
|
-
onInit?: DragSliderCallback;
|
|
41
|
-
onChangeState?: ( isDragging: boolean ) => void;
|
|
42
|
-
/**
|
|
43
|
-
* In px.
|
|
44
|
-
* @default 40
|
|
45
|
-
*/
|
|
46
|
-
swipeTresholdMin?: number;
|
|
47
|
-
/**
|
|
48
|
-
* In % (0.5 = 50% of the size of one item).
|
|
49
|
-
* @default 0.5
|
|
50
|
-
*/
|
|
51
|
-
swipeTresholdSize?:number;
|
|
52
|
-
}
|