webcimes-modal 1.1.1 → 1.1.3
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/README.md +20 -8
- package/demo/demo_esm.html +2 -2
- package/demo/demo_udm.html +2 -2
- package/dist/css/webcimes-modal.css +1 -417
- package/dist/css/webcimes-modal.css.map +1 -1
- package/dist/js/webcimes-modal.esm.d.ts +119 -0
- package/dist/js/webcimes-modal.esm.js +2 -0
- package/dist/js/webcimes-modal.esm.js.map +1 -0
- package/dist/js/webcimes-modal.udm.d.ts +119 -0
- package/dist/js/webcimes-modal.udm.js +2 -0
- package/dist/js/webcimes-modal.udm.js.map +1 -0
- package/package.json +7 -4
- package/src/ts/webcimes-modal.d.ts +119 -0
- package/src/ts/webcimes-modal.d.ts.map +1 -0
- package/src/ts/webcimes-modal.ts +55 -41
- package/test/script.js +29 -0
- package/test/test.html +55 -0
- package/tsconfig.json +4 -1
- package/webpack.config.ts +30 -27
- package/dist/css/webcimes-modal.min.css +0 -2
- package/dist/css/webcimes-modal.min.css.map +0 -1
- package/dist/js/esm/webcimes-modal.esm.js +0 -396
- package/dist/js/esm/webcimes-modal.esm.js.map +0 -1
- package/dist/js/esm/webcimes-modal.esm.min.js +0 -2
- package/dist/js/esm/webcimes-modal.esm.min.js.map +0 -1
- package/dist/js/udm/webcimes-modal.udm.js +0 -421
- package/dist/js/udm/webcimes-modal.udm.js.map +0 -1
- package/dist/js/udm/webcimes-modal.udm.min.js +0 -2
- package/dist/js/udm/webcimes-modal.udm.min.js.map +0 -1
package/src/ts/webcimes-modal.ts
CHANGED
|
@@ -6,6 +6,21 @@
|
|
|
6
6
|
|
|
7
7
|
"use strict";
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Global
|
|
11
|
+
*/
|
|
12
|
+
declare global {
|
|
13
|
+
/** Events */
|
|
14
|
+
interface GlobalEventHandlersEventMap {
|
|
15
|
+
beforeShow: CustomEvent;
|
|
16
|
+
afterShow: CustomEvent;
|
|
17
|
+
beforeDestroy: CustomEvent;
|
|
18
|
+
afterDestroy: CustomEvent;
|
|
19
|
+
onCancelButton: CustomEvent;
|
|
20
|
+
onConfirmButton: CustomEvent;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
9
24
|
/**
|
|
10
25
|
* Options
|
|
11
26
|
*/
|
|
@@ -73,23 +88,33 @@ interface Options {
|
|
|
73
88
|
*/
|
|
74
89
|
export class WebcimesModal
|
|
75
90
|
{
|
|
91
|
+
/** Get the dom element containing all modals */
|
|
76
92
|
public webcimesModals: HTMLElement;
|
|
93
|
+
|
|
94
|
+
/** Get the dom element of the current modal */
|
|
77
95
|
public modal: HTMLElement;
|
|
96
|
+
|
|
97
|
+
/** Options of the current modal */
|
|
78
98
|
private options: Options;
|
|
99
|
+
|
|
79
100
|
private eventCancelButton: () => void = () => {
|
|
80
101
|
// Callback on cancel button
|
|
102
|
+
this.modal.dispatchEvent(new CustomEvent("onCancelButton"));
|
|
81
103
|
if(typeof this.options.onCancelButton === 'function')
|
|
82
104
|
{
|
|
83
105
|
this.options.onCancelButton();
|
|
84
106
|
}
|
|
85
107
|
};
|
|
108
|
+
|
|
86
109
|
private eventConfirmButton: () => void = () => {
|
|
87
110
|
// Callback on confirm button
|
|
111
|
+
this.modal.dispatchEvent(new CustomEvent("onConfirmButton"));
|
|
88
112
|
if(typeof this.options.onConfirmButton === 'function')
|
|
89
113
|
{
|
|
90
114
|
this.options.onConfirmButton();
|
|
91
115
|
}
|
|
92
116
|
};
|
|
117
|
+
|
|
93
118
|
private eventClickOutside: (e: Event) => void = (e) => {
|
|
94
119
|
if(e.target == this.webcimesModals)
|
|
95
120
|
{
|
|
@@ -110,10 +135,12 @@ export class WebcimesModal
|
|
|
110
135
|
}
|
|
111
136
|
}
|
|
112
137
|
};
|
|
138
|
+
|
|
113
139
|
private eventClickCloseButton: () => void = () => {
|
|
114
140
|
// Destroy modal
|
|
115
141
|
this.destroy();
|
|
116
142
|
};
|
|
143
|
+
|
|
117
144
|
private eventDragModalOnTop: (e: Event) => void = (e) => {
|
|
118
145
|
// Only if target is not close button (for bug in chrome)
|
|
119
146
|
if(!(<HTMLElement>e.target).closest(".close"))
|
|
@@ -127,10 +154,15 @@ export class WebcimesModal
|
|
|
127
154
|
}
|
|
128
155
|
}
|
|
129
156
|
};
|
|
157
|
+
|
|
130
158
|
private position: {x: number, y: number};
|
|
159
|
+
|
|
131
160
|
private offset: {x: number, y: number};
|
|
161
|
+
|
|
132
162
|
private isDragging: boolean = false;
|
|
163
|
+
|
|
133
164
|
private moveFromElements: HTMLElement[] = [];
|
|
165
|
+
|
|
134
166
|
private eventDragStart: (e: Event) => void = (e) => {
|
|
135
167
|
// Start drag only if it's not a button
|
|
136
168
|
if(!(<HTMLElement>e.target).closest("button"))
|
|
@@ -155,6 +187,7 @@ export class WebcimesModal
|
|
|
155
187
|
}
|
|
156
188
|
}
|
|
157
189
|
};
|
|
190
|
+
|
|
158
191
|
private eventMove: (e: Event) => void = (e) => {
|
|
159
192
|
if(this.isDragging)
|
|
160
193
|
{
|
|
@@ -178,15 +211,18 @@ export class WebcimesModal
|
|
|
178
211
|
this.modal.style.top = (this.position.y + this.offset.y)+'px';
|
|
179
212
|
}
|
|
180
213
|
};
|
|
214
|
+
|
|
181
215
|
private eventDragStop: () => void = () => {
|
|
182
216
|
this.isDragging = false;
|
|
183
217
|
};
|
|
218
|
+
|
|
184
219
|
private eventPreventSelectText: (e: Event) => void = (e) => {
|
|
185
220
|
if(this.isDragging)
|
|
186
221
|
{
|
|
187
222
|
e.preventDefault();
|
|
188
223
|
}
|
|
189
224
|
};
|
|
225
|
+
|
|
190
226
|
private eventResize: () => void = () => {
|
|
191
227
|
this.modal.style.removeProperty("left");
|
|
192
228
|
this.modal.style.removeProperty("top");
|
|
@@ -195,35 +231,6 @@ export class WebcimesModal
|
|
|
195
231
|
|
|
196
232
|
/**
|
|
197
233
|
* Create modal
|
|
198
|
-
* @param {Object} options
|
|
199
|
-
* @param {string | null} options.setId - set a specific id on the modal. default "null"
|
|
200
|
-
* @param {string | null} options.setClass - set a specific class on the modal, default "null"
|
|
201
|
-
* @param {string} options.width - width (specify unit), default "auto"
|
|
202
|
-
* @param {string} options.height - height (specify unit), default "auto"
|
|
203
|
-
* @param {string | null} options.titleHtml - html for title, default "null"
|
|
204
|
-
* @param {string | null} options.bodyHtml - html for body, default "null"
|
|
205
|
-
* @param {string | null} options.buttonCancelHtml - html for cancel button, default "null"
|
|
206
|
-
* @param {string | null} options.buttonConfirmHtml - html for confirm button, default "null"
|
|
207
|
-
* @param {boolean} options.closeOnCancelButton - close modal after trigger cancel button, default "true"
|
|
208
|
-
* @param {boolean} options.closeOnConfirmButton - close modal after trigger confirm button, default "true"
|
|
209
|
-
* @param {boolean} options.showCloseButton - show close button, default "true"
|
|
210
|
-
* @param {boolean} options.allowCloseOutside - allow the modal to close when clicked outside, default "true"
|
|
211
|
-
* @param {boolean} options.allowMovement - ability to move modal, default "true"
|
|
212
|
-
* @param {boolean} options.moveFromHeader - if allowMovement is set to "true", ability to move modal from header, default "true"
|
|
213
|
-
* @param {boolean} options.moveFromBody - if allowMovement is set to "true", ability to move modal from body, default "false"
|
|
214
|
-
* @param {boolean} options.moveFromFooter - if allowMovement is set to "true", ability to move modal from footer, default "true"
|
|
215
|
-
* @param {boolean} options.stickyHeader - keep header sticky (visible) when scrolling, default "true"
|
|
216
|
-
* @param {boolean} options.stickyFooter - keep footer sticky (visible) when scrolling, default "true"
|
|
217
|
-
* @param {string | null} options.style - add extra css style to modal, default null
|
|
218
|
-
* @param {"animDropDown" | "animFadeIn"} options.animationOnShow - "animDropDown" or "animFadeIn" for show animation, default "animDropDown"
|
|
219
|
-
* @param {"animDropUp" | "animFadeOut"} options.animationOnDestroy - "animDropUp" or "animFadeOut" for destroy animation, default "animDropUp"
|
|
220
|
-
* @param {number} options.animationDuration - animation duration in ms, default "500"
|
|
221
|
-
* @param {() => void} options.beforeShow - callback before show modal
|
|
222
|
-
* @param {() => void} options.afterShow - callback after show modal
|
|
223
|
-
* @param {() => void} options.beforeDestroy - callback before destroy modal
|
|
224
|
-
* @param {() => void} options.afterDestroy - callback after destroy modal
|
|
225
|
-
* @param {() => void} options.onCancelButton - callback after triggering cancel button
|
|
226
|
-
* @param {() => void} options.onConfirmButton - callback after triggering confirm button
|
|
227
234
|
*/
|
|
228
235
|
constructor(options: Options)
|
|
229
236
|
{
|
|
@@ -265,9 +272,9 @@ export class WebcimesModal
|
|
|
265
272
|
}
|
|
266
273
|
|
|
267
274
|
/**
|
|
268
|
-
*
|
|
275
|
+
* Initialization of the current modal
|
|
269
276
|
*/
|
|
270
|
-
init()
|
|
277
|
+
private init()
|
|
271
278
|
{
|
|
272
279
|
// Create webcimesModals
|
|
273
280
|
if(!document.querySelector(".webcimesModals"))
|
|
@@ -286,7 +293,11 @@ export class WebcimesModal
|
|
|
286
293
|
}
|
|
287
294
|
else
|
|
288
295
|
{
|
|
296
|
+
// Get webcimesModals
|
|
289
297
|
this.webcimesModals = <HTMLElement>document.querySelector(".webcimesModals");
|
|
298
|
+
|
|
299
|
+
// Remove animFadeOut in case of create new modal after destroy the last one before (during animation duration)
|
|
300
|
+
this.webcimesModals.classList.remove("animFadeOut");
|
|
290
301
|
}
|
|
291
302
|
|
|
292
303
|
// Create modal
|
|
@@ -313,14 +324,14 @@ export class WebcimesModal
|
|
|
313
324
|
);
|
|
314
325
|
this.modal = <HTMLElement>this.webcimesModals.lastElementChild;
|
|
315
326
|
|
|
316
|
-
// Callback before show modal
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
}
|
|
323
|
-
}
|
|
327
|
+
// Callback before show modal (set a timeout of zero, to wait for some dom to load)
|
|
328
|
+
setTimeout(() => {
|
|
329
|
+
this.modal.dispatchEvent(new CustomEvent("beforeShow"));
|
|
330
|
+
if(typeof this.options.beforeShow === 'function')
|
|
331
|
+
{
|
|
332
|
+
this.options.beforeShow();
|
|
333
|
+
}
|
|
334
|
+
}, 0);
|
|
324
335
|
|
|
325
336
|
// Set animation duration for modal
|
|
326
337
|
this.modal.style.setProperty("animation-duration", this.options.animationDuration+"ms");
|
|
@@ -330,6 +341,7 @@ export class WebcimesModal
|
|
|
330
341
|
this.modal.classList.remove(this.options.animationOnShow);
|
|
331
342
|
|
|
332
343
|
// Callback after show modal
|
|
344
|
+
this.modal.dispatchEvent(new CustomEvent("afterShow"));
|
|
333
345
|
if(typeof this.options.afterShow === 'function')
|
|
334
346
|
{
|
|
335
347
|
this.options.afterShow();
|
|
@@ -430,14 +442,15 @@ export class WebcimesModal
|
|
|
430
442
|
}
|
|
431
443
|
|
|
432
444
|
/**
|
|
433
|
-
* Destroy modal
|
|
445
|
+
* Destroy current modal
|
|
434
446
|
*/
|
|
435
|
-
destroy()
|
|
447
|
+
public destroy()
|
|
436
448
|
{
|
|
437
449
|
// If modal is not already destroying
|
|
438
450
|
if(!this.modal.getAttribute("data-destroying"))
|
|
439
451
|
{
|
|
440
452
|
// Callback before destroy modal
|
|
453
|
+
this.modal.dispatchEvent(new CustomEvent("beforeDestroy"));
|
|
441
454
|
if(typeof this.options.beforeDestroy === 'function')
|
|
442
455
|
{
|
|
443
456
|
this.options.beforeDestroy();
|
|
@@ -505,6 +518,7 @@ export class WebcimesModal
|
|
|
505
518
|
}
|
|
506
519
|
|
|
507
520
|
// Callback after destroy modal
|
|
521
|
+
this.modal.dispatchEvent(new CustomEvent("afterDestroy"));
|
|
508
522
|
if(typeof this.options.afterDestroy === 'function')
|
|
509
523
|
{
|
|
510
524
|
this.options.afterDestroy();
|
package/test/script.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// Import webcimes-modal
|
|
2
|
+
import {WebcimesModal} from "../dist/js/webcimes-modal.esm.js";
|
|
3
|
+
|
|
4
|
+
// Wait for dom content loaded
|
|
5
|
+
document.addEventListener("DOMContentLoaded", function()
|
|
6
|
+
{
|
|
7
|
+
let modal1 = new WebcimesModal({
|
|
8
|
+
titleHtml: "My title",
|
|
9
|
+
bodyHtml: "My Body",
|
|
10
|
+
afterDestroy: () => {
|
|
11
|
+
console.log("destroy modal 1");
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
document.querySelector(".modalBody")?.addEventListener("click", (e) => {
|
|
16
|
+
|
|
17
|
+
modal1.modal.addEventListener("afterDestroy", () => {
|
|
18
|
+
console.log("event");
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
new WebcimesModal({
|
|
22
|
+
titleHtml: "My title 2",
|
|
23
|
+
bodyHtml: "My Body 2",
|
|
24
|
+
afterDestroy: () => {
|
|
25
|
+
console.log("after destroy modal 2");
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
});
|
package/test/test.html
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="Author" content="WebCimes">
|
|
6
|
+
<meta name="Copyright" content="© https://webcimes.com">
|
|
7
|
+
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
|
8
|
+
<title>Demo webcimes-modal ESM</title>
|
|
9
|
+
<link rel="stylesheet" href="../dist/css/webcimes-modal.css">
|
|
10
|
+
<script type="importmap">
|
|
11
|
+
{
|
|
12
|
+
"imports": {
|
|
13
|
+
"webcimes-modal": "../dist/js/webcimes-modal.esm.js"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
</script>
|
|
17
|
+
<script type="module" src="script.js"></script>
|
|
18
|
+
</head>
|
|
19
|
+
<body>
|
|
20
|
+
<div style="display:none;">
|
|
21
|
+
<div class="test">
|
|
22
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dui sapien eget mi proin sed libero enim. Quis lectus nulla at volutpat diam ut venenatis tellus. Odio eu feugiat pretium nibh ipsum consequat nisl vel. Ultricies integer quis auctor elit sed.
|
|
23
|
+
<br>
|
|
24
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dui sapien eget mi proin sed libero enim. Quis lectus nulla at volutpat diam ut venenatis tellus. Odio eu feugiat pretium nibh ipsum consequat nisl vel. Ultricies integer quis auctor elit sed.
|
|
25
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dui sapien eget mi proin sed libero enim. Quis lectus nulla at volutpat diam ut venenatis tellus. Odio eu feugiat pretium nibh ipsum consequat nisl vel. Ultricies integer quis auctor elit sed.
|
|
26
|
+
<br>
|
|
27
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dui sapien eget mi proin sed libero enim. Quis lectus nulla at volutpat diam ut venenatis tellus. Odio eu feugiat pretium nibh ipsum consequat nisl vel. Ultricies integer quis auctor elit sed.
|
|
28
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dui sapien eget mi proin sed libero enim. Quis lectus nulla at volutpat diam ut venenatis tellus. Odio eu feugiat pretium nibh ipsum consequat nisl vel. Ultricies integer quis auctor elit sed.
|
|
29
|
+
<br>
|
|
30
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dui sapien eget mi proin sed libero enim. Quis lectus nulla at volutpat diam ut venenatis tellus. Odio eu feugiat pretium nibh ipsum consequat nisl vel. Ultricies integer quis auctor elit sed.
|
|
31
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dui sapien eget mi proin sed libero enim. Quis lectus nulla at volutpat diam ut venenatis tellus. Odio eu feugiat pretium nibh ipsum consequat nisl vel. Ultricies integer quis auctor elit sed.
|
|
32
|
+
<br>
|
|
33
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dui sapien eget mi proin sed libero enim. Quis lectus nulla at volutpat diam ut venenatis tellus. Odio eu feugiat pretium nibh ipsum consequat nisl vel. Ultricies integer quis auctor elit sed.
|
|
34
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dui sapien eget mi proin sed libero enim. Quis lectus nulla at volutpat diam ut venenatis tellus. Odio eu feugiat pretium nibh ipsum consequat nisl vel. Ultricies integer quis auctor elit sed.
|
|
35
|
+
<br>
|
|
36
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dui sapien eget mi proin sed libero enim. Quis lectus nulla at volutpat diam ut venenatis tellus. Odio eu feugiat pretium nibh ipsum consequat nisl vel. Ultricies integer quis auctor elit sed.
|
|
37
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dui sapien eget mi proin sed libero enim. Quis lectus nulla at volutpat diam ut venenatis tellus. Odio eu feugiat pretium nibh ipsum consequat nisl vel. Ultricies integer quis auctor elit sed.
|
|
38
|
+
<br>
|
|
39
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dui sapien eget mi proin sed libero enim. Quis lectus nulla at volutpat diam ut venenatis tellus. Odio eu feugiat pretium nibh ipsum consequat nisl vel. Ultricies integer quis auctor elit sed.
|
|
40
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dui sapien eget mi proin sed libero enim. Quis lectus nulla at volutpat diam ut venenatis tellus. Odio eu feugiat pretium nibh ipsum consequat nisl vel. Ultricies integer quis auctor elit sed.
|
|
41
|
+
<br>
|
|
42
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dui sapien eget mi proin sed libero enim. Quis lectus nulla at volutpat diam ut venenatis tellus. Odio eu feugiat pretium nibh ipsum consequat nisl vel. Ultricies integer quis auctor elit sed.
|
|
43
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dui sapien eget mi proin sed libero enim. Quis lectus nulla at volutpat diam ut venenatis tellus. Odio eu feugiat pretium nibh ipsum consequat nisl vel. Ultricies integer quis auctor elit sed.
|
|
44
|
+
<br>
|
|
45
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dui sapien eget mi proin sed libero enim. Quis lectus nulla at volutpat diam ut venenatis tellus. Odio eu feugiat pretium nibh ipsum consequat nisl vel. Ultricies integer quis auctor elit sed.
|
|
46
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dui sapien eget mi proin sed libero enim. Quis lectus nulla at volutpat diam ut venenatis tellus. Odio eu feugiat pretium nibh ipsum consequat nisl vel. Ultricies integer quis auctor elit sed.
|
|
47
|
+
<br>
|
|
48
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dui sapien eget mi proin sed libero enim. Quis lectus nulla at volutpat diam ut venenatis tellus. Odio eu feugiat pretium nibh ipsum consequat nisl vel. Ultricies integer quis auctor elit sed.
|
|
49
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dui sapien eget mi proin sed libero enim. Quis lectus nulla at volutpat diam ut venenatis tellus. Odio eu feugiat pretium nibh ipsum consequat nisl vel. Ultricies integer quis auctor elit sed.
|
|
50
|
+
<br>
|
|
51
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dui sapien eget mi proin sed libero enim. Quis lectus nulla at volutpat diam ut venenatis tellus. Odio eu feugiat pretium nibh ipsum consequat nisl vel. Ultricies integer quis auctor elit sed.
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
</body>
|
|
55
|
+
</html>
|
package/tsconfig.json
CHANGED
|
@@ -3,11 +3,14 @@
|
|
|
3
3
|
"module": "ESNext",
|
|
4
4
|
"target": "ESNext",
|
|
5
5
|
"removeComments": false,
|
|
6
|
+
"declaration": true,
|
|
7
|
+
"declarationMap": true,
|
|
6
8
|
"sourceMap": true,
|
|
7
9
|
"noImplicitAny": true,
|
|
8
10
|
"strictNullChecks": true,
|
|
9
11
|
"allowSyntheticDefaultImports": true,
|
|
10
|
-
"esModuleInterop": true
|
|
12
|
+
"esModuleInterop": true,
|
|
13
|
+
"moduleResolution": "node",
|
|
11
14
|
},
|
|
12
15
|
"ts-node": {
|
|
13
16
|
"compilerOptions": {
|
package/webpack.config.ts
CHANGED
|
@@ -1,39 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import path from 'path';
|
|
1
|
+
import path from "path";
|
|
4
2
|
import webpack from "webpack";
|
|
5
3
|
import TerserPlugin from "terser-webpack-plugin";
|
|
6
4
|
import MiniCssExtractPlugin from "mini-css-extract-plugin";
|
|
7
5
|
import CssMinimizerPlugin from "css-minimizer-webpack-plugin";
|
|
8
6
|
import RemovePlugin from "remove-files-webpack-plugin";
|
|
9
|
-
|
|
10
|
-
const isProduction = process.env.NODE_ENV ==
|
|
7
|
+
import TypescriptDeclarationPlugin from "typescript-declaration-webpack-plugin";
|
|
8
|
+
// const isProduction = process.env.NODE_ENV == "production";
|
|
11
9
|
|
|
12
10
|
// Config UDM
|
|
13
11
|
const configUDM: webpack.Configuration = {
|
|
14
|
-
mode:
|
|
15
|
-
// devtool: (isProduction ? false : "source-map"),
|
|
12
|
+
mode: "production",
|
|
16
13
|
devtool: "source-map",
|
|
17
14
|
entry: {
|
|
18
15
|
"webcimes-modal.udm": "./src/ts/webcimes-modal.ts",
|
|
19
|
-
|
|
16
|
+
},
|
|
17
|
+
output: {
|
|
18
|
+
filename: "js/[name].js",
|
|
19
|
+
path: path.resolve(__dirname, "dist"),
|
|
20
|
+
libraryTarget: "umd",
|
|
21
|
+
clean: false, // Clean the output directory before emit.
|
|
20
22
|
},
|
|
21
23
|
optimization: {
|
|
22
24
|
minimize: true,
|
|
23
25
|
minimizer: [
|
|
24
26
|
new TerserPlugin({
|
|
25
|
-
test: /\.
|
|
27
|
+
test: /\.js$/i,
|
|
26
28
|
extractComments: false,
|
|
27
29
|
}),
|
|
28
30
|
],
|
|
29
31
|
},
|
|
30
|
-
output: {
|
|
31
|
-
filename: "js/udm/[name].js",
|
|
32
|
-
path: path.resolve(__dirname, "dist"),
|
|
33
|
-
// publicPath: "/dist/",
|
|
34
|
-
libraryTarget: "umd",
|
|
35
|
-
clean: false, // Clean the output directory before emit.
|
|
36
|
-
},
|
|
37
32
|
module: {
|
|
38
33
|
rules: [
|
|
39
34
|
{
|
|
@@ -42,22 +37,27 @@ const configUDM: webpack.Configuration = {
|
|
|
42
37
|
},
|
|
43
38
|
],
|
|
44
39
|
},
|
|
40
|
+
plugins: [
|
|
41
|
+
new TypescriptDeclarationPlugin({
|
|
42
|
+
out: "./js/webcimes-modal.udm.d.ts",
|
|
43
|
+
removeMergedDeclarations: false,
|
|
44
|
+
removeComments: false,
|
|
45
|
+
}),
|
|
46
|
+
],
|
|
45
47
|
};
|
|
46
48
|
|
|
47
49
|
// Config ESM
|
|
48
50
|
const configESM: webpack.Configuration = {
|
|
49
|
-
mode:
|
|
50
|
-
// devtool: (isProduction ? false : "source-map"),
|
|
51
|
+
mode: "production",
|
|
51
52
|
devtool: "source-map",
|
|
52
53
|
entry: {
|
|
53
54
|
"webcimes-modal.esm": "./src/ts/webcimes-modal.ts",
|
|
54
|
-
"webcimes-modal.esm.min": "./src/ts/webcimes-modal.ts",
|
|
55
55
|
},
|
|
56
56
|
optimization: {
|
|
57
57
|
minimize: true,
|
|
58
58
|
minimizer: [
|
|
59
59
|
new TerserPlugin({
|
|
60
|
-
test: /\.
|
|
60
|
+
test: /\.js$/i,
|
|
61
61
|
extractComments: false,
|
|
62
62
|
}),
|
|
63
63
|
],
|
|
@@ -66,9 +66,8 @@ const configESM: webpack.Configuration = {
|
|
|
66
66
|
outputModule: true,
|
|
67
67
|
},
|
|
68
68
|
output: {
|
|
69
|
-
filename: "js/
|
|
69
|
+
filename: "js/[name].js",
|
|
70
70
|
path: path.resolve(__dirname, "dist"),
|
|
71
|
-
// publicPath: "/dist/",
|
|
72
71
|
libraryTarget: "module",
|
|
73
72
|
clean: false, // Clean the output directory before emit.
|
|
74
73
|
},
|
|
@@ -80,29 +79,33 @@ const configESM: webpack.Configuration = {
|
|
|
80
79
|
},
|
|
81
80
|
],
|
|
82
81
|
},
|
|
82
|
+
plugins: [
|
|
83
|
+
new TypescriptDeclarationPlugin({
|
|
84
|
+
out: "./js/webcimes-modal.esm.d.ts",
|
|
85
|
+
removeMergedDeclarations: false,
|
|
86
|
+
removeComments: false,
|
|
87
|
+
}),
|
|
88
|
+
],
|
|
83
89
|
};
|
|
84
90
|
|
|
85
91
|
// Config CSS + Remove plugin
|
|
86
92
|
const configCSS: webpack.Configuration = {
|
|
87
|
-
mode:
|
|
88
|
-
// devtool: (isProduction ? false : "source-map"),
|
|
93
|
+
mode: "production",
|
|
89
94
|
devtool: "source-map",
|
|
90
95
|
entry: {
|
|
91
96
|
"webcimes-modal": "./src/css/webcimes-modal.css",
|
|
92
|
-
"webcimes-modal.min": "./src/css/webcimes-modal.css",
|
|
93
97
|
},
|
|
94
98
|
optimization: {
|
|
95
99
|
minimize: true,
|
|
96
100
|
minimizer: [
|
|
97
101
|
new CssMinimizerPlugin({
|
|
98
|
-
test: /\.
|
|
102
|
+
test: /\.css$/i,
|
|
99
103
|
}),
|
|
100
104
|
],
|
|
101
105
|
},
|
|
102
106
|
output: {
|
|
103
107
|
filename: "css/[name].js",
|
|
104
108
|
path: path.resolve(__dirname, "dist"),
|
|
105
|
-
// publicPath: "/dist/",
|
|
106
109
|
clean: false, // Clean the output directory before emit.
|
|
107
110
|
},
|
|
108
111
|
module: {
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
.webcimesModals,.webcimesModals *,.webcimesModals :after,.webcimesModals :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.webcimesModals{--webcimes-modals-background:rgba(0,0,0,.8);--webcimes-modals-z-index:5;align-items:center;background:var(--webcimes-modals-background);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:var(--webcimes-modals-z-index)}.webcimesModals>.modal{--modal-color:inherit;--modal-background:#fff;--modal-border-color:#ddd;--modal-box-shadow:1px 1px 3px 0px #444;--modal-title-font-size:24px;--modal-button-cancel-background:#666;--modal-button-cancel-background-hover:hsla(0,0%,40%,.7);--modal-button-cancel-color:#fff;--modal-button-cancel-color-hover:#fff;--modal-button-confirm-background:#000;--modal-button-confirm-background-hover:rgba(0,0,0,.7);--modal-button-confirm-color:#fff;--modal-button-confirm-color-hover:#fff;background:var(--modal-background);border-radius:5px;-webkit-box-shadow:var(--modal-box-shadow);-moz-box-shadow:var(--modal-box-shadow);-o-box-shadow:var(--modal-box-shadow);box-shadow:var(--modal-box-shadow);color:var(--modal-color);overflow:auto;position:absolute}.webcimesModals>.modal button{background:none;border:none;font-family:inherit;font-size:inherit;font-weight:inherit}.webcimesModals>.modal>.modalHeader{align-items:center;background:var(--modal-background);border-bottom:1px solid var(--modal-border-color);display:flex;padding:20px 40px;position:relative}.webcimesModals>.modal>.modalHeader.sticky{position:sticky;top:0}.webcimesModals>.modal>.modalHeader.movable{cursor:move;touch-action:none}.webcimesModals>.modal>.modalHeader>.title{flex:1;font-size:var(--modal-title-font-size);overflow:hidden;text-overflow:ellipsis}.webcimesModals>.modal>.modalHeader>.close{background-image:url(../images/times.svg);cursor:pointer;height:20px;margin-top:-10px;opacity:1;position:absolute;right:15px;top:50%;-webkit-transition:opacity .6s ease 0s;-moz-transition:opacity .6s ease 0s;-o-transition:opacity .6s ease 0s;transition:opacity .6s ease 0s;width:12px}.webcimesModals>.modal>.modalHeader>.close:hover{opacity:.5}.webcimesModals>.modal>.modalBody{padding:20px 40px}.webcimesModals>.modal>.modalBody.movable{cursor:move}.webcimesModals>.modal>.modalFooter{background:var(--modal-background);border-top:1px solid var(--modal-border-color);display:flex;flex-wrap:wrap;justify-content:flex-end;padding:20px 40px}.webcimesModals>.modal>.modalFooter.sticky{bottom:0;position:sticky}.webcimesModals>.modal>.modalFooter.movable{cursor:move;touch-action:none}.webcimesModals>.modal>.modalFooter button{border-radius:5px;cursor:pointer;flex:0 0 auto;margin:5px;max-width:100%;overflow:hidden;padding:10px 30px;text-overflow:ellipsis;-webkit-transition:color .6s ease 0s,background .6s ease 0s;-moz-transition:color .6s ease 0s,background .6s ease 0s;-o-transition:color .6s ease 0s,background .6s ease 0s;transition:color .6s ease 0s,background .6s ease 0s}.webcimesModals>.modal>.modalFooter button.cancel{background:var(--modal-button-cancel-background);color:var(--modal-button-cancel-color)}.webcimesModals>.modal>.modalFooter button.cancel:hover{background:var(--modal-button-cancel-background-hover);color:var(--modal-button-cancel-color-hover)}.webcimesModals>.modal>.modalFooter button.confirm{background:var(--modal-button-confirm-background);color:var(--modal-button-confirm-color)}.webcimesModals>.modal>.modalFooter button.confirm:hover{background:var(--modal-button-confirm-background-hover);color:var(--modal-button-confirm-color-hover)}@-webkit-keyframes animFadeIn{0%{opacity:0}to{opacity:1}}@keyframes animFadeIn{0%{opacity:0}to{opacity:1}}.animFadeIn{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:animFadeIn;animation-name:animFadeIn}@-webkit-keyframes animFadeOut{0%{opacity:1}to{opacity:0}}@keyframes animFadeOut{0%{opacity:1}to{opacity:0}}.animFadeOut{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:animFadeOut;animation-name:animFadeOut}@-webkit-keyframes animDropDown{0%{opacity:0;-webkit-transform:translateY(-20vh);-moz-transform:translateY(-20vh);-ms-transform:translateY(-20vh);-o-transform:translateY(-20vh);transform:translateY(-20vh)}to{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}}@keyframes animDropDown{0%{opacity:0;-webkit-transform:translateY(-20vh);-moz-transform:translateY(-20vh);-ms-transform:translateY(-20vh);-o-transform:translateY(-20vh);transform:translateY(-20vh)}to{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}}.animDropDown{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:animDropDown;animation-name:animDropDown}@-webkit-keyframes animDropUp{0%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-20vh);-moz-transform:translateY(-20vh);-ms-transform:translateY(-20vh);-o-transform:translateY(-20vh);transform:translateY(-20vh)}}@keyframes animDropUp{0%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-20vh);-moz-transform:translateY(-20vh);-ms-transform:translateY(-20vh);-o-transform:translateY(-20vh);transform:translateY(-20vh)}}.animDropUp{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:animDropUp;animation-name:animDropUp}@-webkit-keyframes animGrowShrink{0%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2)}to{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}}@keyframes animGrowShrink{0%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-ms-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}to{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}}.animGrowShrink{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:animGrowShrink;animation-name:animGrowShrink}
|
|
2
|
-
/*# sourceMappingURL=webcimes-modal.min.css.map*/
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"css/webcimes-modal.min.css","mappings":"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","sources":["webpack://webcimes-modal/./src/css/webcimes-modal.css"],"sourcesContent":["/**\r\n * Copyright (c) 2023 WebCimes - RICHARD Florian (https://webcimes.com)\r\n * MIT License - https://choosealicense.com/licenses/mit/\r\n * Date: 2023-03-25\r\n */\r\n\r\n/*\r\n-----------------------\r\n WEBCIMES MODAL\r\n-----------------------\r\n*/\r\n\r\n.webcimesModals,\r\n.webcimesModals *,\r\n.webcimesModals *::before,\r\n.webcimesModals *::after\r\n{ \r\n\t-webkit-box-sizing: border-box;\r\n\t-moz-box-sizing: border-box;\r\n\tbox-sizing: border-box;\r\n}\r\n.webcimesModals\r\n{\r\n\t--webcimes-modals-background: rgba(0,0,0,0.8);\r\n\t--webcimes-modals-z-index: 5;\r\n\r\n\tposition: fixed;\r\n\tbackground: var(--webcimes-modals-background);\r\n\ttop: 0;\r\n\tbottom: 0;\r\n\tleft: 0;\r\n\tright: 0;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\tz-index: var(--webcimes-modals-z-index);\r\n}\r\n.webcimesModals > .modal\r\n{\r\n\t--modal-color: inherit;\r\n\t--modal-background: #fff;\r\n\t--modal-border-color: #ddd;\r\n\t--modal-box-shadow: 1px 1px 3px 0px #444;\r\n\t--modal-title-font-size: 24px;\r\n\t--modal-button-cancel-background: rgba(102,102,102,1);\r\n\t--modal-button-cancel-background-hover: rgba(102,102,102,0.7);\r\n\t--modal-button-cancel-color: #fff;\r\n\t--modal-button-cancel-color-hover: #fff;\r\n\t--modal-button-confirm-background: rgba(0,0,0,1);\r\n\t--modal-button-confirm-background-hover: rgba(0,0,0,0.7);\r\n\t--modal-button-confirm-color: #fff;\r\n\t--modal-button-confirm-color-hover: #fff;\r\n\t\r\n\tposition: absolute;\r\n\tborder-radius: 5px;\r\n\toverflow:auto;\r\n\tcolor: var(--modal-color);\r\n\tbackground: var(--modal-background);\r\n\t-webkit-box-shadow: var(--modal-box-shadow);\r\n\t-moz-box-shadow: var(--modal-box-shadow);\r\n\t-o-box-shadow: var(--modal-box-shadow);\r\n\tbox-shadow: var(--modal-box-shadow);\r\n}\r\n.webcimesModals > .modal button\r\n{\r\n\tfont-family: inherit;\r\n\tfont-size: inherit;\r\n\tfont-weight: inherit;\r\n\tborder: none;\r\n\tbackground: none;\r\n}\r\n.webcimesModals > .modal > .modalHeader\r\n{\r\n\tposition: relative;\r\n\tbackground: var(--modal-background);\r\n\tpadding: 20px 40px;\r\n\tborder-bottom: 1px solid var(--modal-border-color);\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n}\r\n.webcimesModals > .modal > .modalHeader.sticky\r\n{\r\n\tposition: sticky;\r\n\ttop: 0;\r\n}\r\n.webcimesModals > .modal > .modalHeader.movable\r\n{\r\n\tcursor: move;\r\n\ttouch-action: none;\r\n}\r\n.webcimesModals > .modal > .modalHeader > .title\r\n{\r\n\tflex: 1;\r\n\toverflow: hidden;\r\n\ttext-overflow: ellipsis;\r\n\tfont-size: var(--modal-title-font-size);\r\n}\r\n.webcimesModals > .modal > .modalHeader > .close\r\n{\r\n\tposition: absolute;\r\n\theight: 20px;\r\n\twidth: 12px;\r\n\tright: 15px;\r\n\ttop: 50%;\r\n\tmargin-top: -10px;\r\n\tbackground-image: url(\"../images/times.svg\");\r\n cursor: pointer;\r\n\topacity: 1;\r\n -webkit-transition: opacity 0.6s ease 0s;\r\n -moz-transition: opacity 0.6s ease 0s;\r\n -o-transition: opacity 0.6s ease 0s;\r\n transition: opacity 0.6s ease 0s;\r\n}\r\n.webcimesModals > .modal > .modalHeader > .close:hover\r\n{\r\n\topacity: 0.5;\r\n}\r\n.webcimesModals > .modal > .modalBody\r\n{\r\n\tpadding: 20px 40px;\r\n}\r\n.webcimesModals > .modal > .modalBody.movable\r\n{\r\n\tcursor: move;\r\n}\r\n.webcimesModals > .modal > .modalFooter\r\n{\r\n\tbackground: var(--modal-background);\r\n\tpadding: 20px 40px;\r\n\tborder-top: 1px solid var(--modal-border-color);\r\n\tdisplay: flex;\r\n\tjustify-content: flex-end;\r\n\tflex-wrap: wrap;\r\n}\r\n.webcimesModals > .modal > .modalFooter.sticky\r\n{\r\n\tposition: sticky;\r\n\tbottom: 0;\r\n}\r\n.webcimesModals > .modal > .modalFooter.movable\r\n{\r\n\tcursor: move;\r\n\ttouch-action: none;\r\n}\r\n.webcimesModals > .modal > .modalFooter button\r\n{\r\n\tmax-width: 100%;\r\n\tflex: 0 0 auto;\r\n\tborder-radius: 5px;\r\n\tpadding: 10px 30px;\r\n\tmargin: 5px;\r\n\tcursor: pointer;\r\n\ttext-overflow: ellipsis;\r\n\toverflow: hidden;\r\n -webkit-transition: color 0.6s ease 0s, background 0.6s ease 0s;\r\n -moz-transition: color 0.6s ease 0s, background 0.6s ease 0s;\r\n -o-transition: color 0.6s ease 0s, background 0.6s ease 0s;\r\n transition: color 0.6s ease 0s, background 0.6s ease 0s;\r\n}\r\n.webcimesModals > .modal > .modalFooter button.cancel\r\n{\r\n\tbackground: var(--modal-button-cancel-background);\r\n\tcolor: var(--modal-button-cancel-color);\r\n}\r\n.webcimesModals > .modal > .modalFooter button.cancel:hover\r\n{\r\n\tbackground: var(--modal-button-cancel-background-hover);\r\n\tcolor: var(--modal-button-cancel-color-hover);\r\n}\r\n.webcimesModals > .modal > .modalFooter button.confirm\r\n{\r\n\tbackground: var(--modal-button-confirm-background);\r\n\tcolor: var(--modal-button-confirm-color);\r\n}\r\n.webcimesModals > .modal > .modalFooter button.confirm:hover\r\n{\r\n\tbackground: var(--modal-button-confirm-background-hover);\r\n\tcolor: var(--modal-button-confirm-color-hover);\r\n}\r\n\r\n/* ANIMATIONS */\r\n\r\n@-webkit-keyframes animFadeIn\r\n{\r\n\t0%\r\n\t{\r\n\t\topacity: 0;\r\n\t} \r\n\t100%\r\n\t{\r\n\t\topacity: 1;\r\n\t}\r\n}\r\n@keyframes animFadeIn\r\n{\r\n\t0%\r\n\t{\r\n\t\topacity:0;\r\n\t} \r\n\t100%\r\n\t{\r\n\t\topacity:1;\r\n\t}\r\n}\r\n.animFadeIn\r\n{\r\n\t-webkit-animation-duration: 0.5s;\r\n\tanimation-duration: 0.5s;\r\n\t-webkit-animation-fill-mode: both;\r\n\tanimation-fill-mode: both;\r\n\t-webkit-animation-name: animFadeIn;\r\n\tanimation-name: animFadeIn;\r\n}\r\n\r\n@-webkit-keyframes animFadeOut\r\n{\r\n\t0%\r\n\t{\r\n\t\topacity: 1;\r\n\t} \r\n\t100%\r\n\t{\r\n\t\topacity: 0;\r\n\t}\r\n}\r\n@keyframes animFadeOut\r\n{\r\n\t0%\r\n\t{\r\n\t\topacity: 1;\r\n\t} \r\n\t100%\r\n\t{\r\n\t\topacity: 0;\r\n\t}\r\n}\r\n.animFadeOut\r\n{\r\n\t-webkit-animation-duration: 0.5s;\r\n\tanimation-duration: 0.5s;\r\n\t-webkit-animation-fill-mode: both;\r\n\tanimation-fill-mode: both;\r\n\t-webkit-animation-name: animFadeOut;\r\n\tanimation-name: animFadeOut;\r\n}\r\n\r\n@-webkit-keyframes animDropDown\r\n{\r\n\t0%\r\n\t{\r\n\t\t-webkit-transform: translateY(-20vh);\r\n\t\t-moz-transform: translateY(-20vh);\r\n\t\t-ms-transform: translateY(-20vh);\r\n\t\t-o-transform: translateY(-20vh);\r\n\t\ttransform: translateY(-20vh);\r\n\t\topacity: 0;\r\n\t} \r\n\t100%\r\n\t{\r\n\t\t-webkit-transform: translateY(0);\r\n\t\t-moz-transform: translateY(0);\r\n\t\t-ms-transform: translateY(0);\r\n\t\t-o-transform: translateY(0);\r\n\t\ttransform: translateY(0);\r\n\t\topacity: 1;\r\n\t}\r\n}\r\n\r\n@keyframes animDropDown\r\n{\r\n\t0%\r\n\t{\r\n\t\t-webkit-transform: translateY(-20vh);\r\n\t\t-moz-transform: translateY(-20vh);\r\n\t\t-ms-transform: translateY(-20vh);\r\n\t\t-o-transform: translateY(-20vh);\r\n\t\ttransform: translateY(-20vh);\r\n\t\topacity: 0;\r\n\t} \r\n\t100%\r\n\t{\r\n\t\t-webkit-transform: translateY(0);\r\n\t\t-moz-transform: translateY(0);\r\n\t\t-ms-transform: translateY(0);\r\n\t\t-o-transform: translateY(0);\r\n\t\ttransform: translateY(0);\r\n\t\topacity: 1;\r\n\t}\r\n}\r\n.animDropDown\r\n{\r\n\t-webkit-animation-duration: 0.5s;\r\n\tanimation-duration: 0.5s;\r\n\t-webkit-animation-fill-mode: both;\r\n\tanimation-fill-mode: both;\r\n\t-webkit-animation-name: animDropDown;\r\n\tanimation-name: animDropDown;\r\n}\r\n\r\n@-webkit-keyframes animDropUp\r\n{\r\n\t0%\r\n\t{\r\n\t\t-webkit-transform: translateY(0);\r\n\t\t-moz-transform: translateY(0);\r\n\t\t-ms-transform: translateY(0);\r\n\t\t-o-transform: translateY(0);\r\n\t\ttransform: translateY(0);\r\n\t\topacity: 1;\r\n\t} \r\n\t100%\r\n\t{\r\n\t\t-webkit-transform: translateY(-20vh);\r\n\t\t-moz-transform: translateY(-20vh);\r\n\t\t-ms-transform: translateY(-20vh);\r\n\t\t-o-transform: translateY(-20vh);\r\n\t\ttransform: translateY(-20vh);\r\n\t\topacity: 0;\r\n\t}\r\n}\r\n\r\n@keyframes animDropUp\r\n{\r\n\t0%\r\n\t{\r\n\t\t-webkit-transform: translateY(0);\r\n\t\t-moz-transform: translateY(0);\r\n\t\t-ms-transform: translateY(0);\r\n\t\t-o-transform: translateY(0);\r\n\t\ttransform: translateY(0);\r\n\t\topacity: 1;\r\n\t} \r\n\t100%\r\n\t{\r\n\t\t-webkit-transform: translateY(-20vh);\r\n\t\t-moz-transform: translateY(-20vh);\r\n\t\t-ms-transform: translateY(-20vh);\r\n\t\t-o-transform: translateY(-20vh);\r\n\t\ttransform: translateY(-20vh);\r\n\t\topacity: 0;\r\n\t}\r\n}\r\n.animDropUp\r\n{\r\n\t-webkit-animation-duration: 0.5s;\r\n\tanimation-duration: 0.5s;\r\n\t-webkit-animation-fill-mode: both;\r\n\tanimation-fill-mode: both;\r\n\t-webkit-animation-name: animDropUp;\r\n\tanimation-name: animDropUp;\r\n}\r\n\r\n@-webkit-keyframes animGrowShrink\r\n{\r\n\t0%\r\n\t{\r\n\t\t-webkit-transform: scale(1);\r\n\t\t-moz-transform: scale(1);\r\n\t\t-ms-transform: scale(1);\r\n\t\t-o-transform: scale(1);\r\n\t\ttransform: scale(1);\r\n\t}\r\n\t50%\r\n\t{\r\n\t\t-webkit-transform: scale(1.2);\r\n\t\t-moz-transform: scale(1.2);\r\n\t\t-ms-transform: scale(1.2);\r\n\t\t-o-transform: scale(1.2);\r\n\t\ttransform: scale(1.2);\r\n\t}\r\n\t100%\r\n\t{\r\n\t\t-webkit-transform: scale(1);\r\n\t\t-moz-transform: scale(1);\r\n\t\t-ms-transform: scale(1);\r\n\t\t-o-transform: scale(1);\r\n\t\ttransform: scale(1);\r\n\t}\r\n}\r\n\r\n@keyframes animGrowShrink\r\n{\r\n\t0%\r\n\t{\r\n\t\t-webkit-transform: scale(1);\r\n\t\t-moz-transform: scale(1);\r\n\t\t-ms-transform: scale(1);\r\n\t\t-o-transform: scale(1);\r\n\t\ttransform: scale(1);\r\n\t}\r\n\t50%\r\n\t{\r\n\t\t-webkit-transform: scale(1.1);\r\n\t\t-moz-transform: scale(1.1);\r\n\t\t-ms-transform: scale(1.1);\r\n\t\t-o-transform: scale(1.1);\r\n\t\ttransform: scale(1.1);\r\n\t}\r\n\t100%\r\n\t{\r\n\t\t-webkit-transform: scale(1);\r\n\t\t-moz-transform: scale(1);\r\n\t\t-ms-transform: scale(1);\r\n\t\t-o-transform: scale(1);\r\n\t\ttransform: scale(1);\r\n\t}\r\n}\r\n.animGrowShrink\r\n{\r\n\t-webkit-animation-duration: 0.5s;\r\n\tanimation-duration: 0.5s;\r\n\t-webkit-animation-fill-mode: both;\r\n\tanimation-fill-mode: both;\r\n\t-webkit-animation-name: animGrowShrink;\r\n\tanimation-name: animGrowShrink;\r\n}"],"names":[],"sourceRoot":""}
|