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.
@@ -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
- * Init modal
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
- if(typeof this.options.beforeShow === 'function')
318
- {
319
- // Set a timeout of zero, to wait for some dom to load
320
- setTimeout(() => {
321
- this.options.beforeShow();
322
- }, 0);
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
- // Generated using webpack-cli https://github.com/webpack/webpack-cli
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 == 'production';
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: (isProduction ? "production" : "development"),
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
- "webcimes-modal.udm.min": "./src/ts/webcimes-modal.ts",
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: /\.min\.js$/i,
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: (isProduction ? "production" : "development"),
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: /\.min\.js$/i,
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/esm/[name].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: (isProduction ? "production" : "development"),
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: /\.min\.css$/i,
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":""}