webcimes-modal 1.0.2 → 1.1.1

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/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "webcimes-modal",
3
- "version": "1.0.2",
3
+ "version": "1.1.1",
4
4
  "description": "Simply create and animate modals. It works with vanilla javascript + html + css.",
5
- "main": "webcimes-modal.js",
5
+ "main": "./dist/js/udm/webcimes-modal.udm.min.js",
6
6
  "scripts": {
7
- "test": "echo \"Error: no test specified\" && exit 1"
7
+ "build": "webpack --config webpack.config.ts --node-env=production",
8
+ "build:dev": "webpack --config webpack.config.ts --node-env=development"
8
9
  },
9
10
  "repository": {
10
11
  "type": "git",
@@ -24,5 +25,16 @@
24
25
  "bugs": {
25
26
  "url": "https://github.com/WebCimes/webcimes-modal/issues"
26
27
  },
27
- "homepage": "https://github.com/WebCimes/webcimes-modal#readme"
28
+ "homepage": "https://github.com/WebCimes/webcimes-modal#readme",
29
+ "devDependencies": {
30
+ "css-loader": "^6.8.1",
31
+ "css-minimizer-webpack-plugin": "^5.0.1",
32
+ "mini-css-extract-plugin": "^2.7.6",
33
+ "remove-files-webpack-plugin": "^1.5.0",
34
+ "ts-loader": "^9.4.4",
35
+ "ts-node": "^10.9.1",
36
+ "typescript": "^5.2.2",
37
+ "webpack": "^5.88.2",
38
+ "webpack-cli": "^5.1.4"
39
+ }
28
40
  }
@@ -0,0 +1,416 @@
1
+ /**
2
+ * Copyright (c) 2023 WebCimes - RICHARD Florian (https://webcimes.com)
3
+ * MIT License - https://choosealicense.com/licenses/mit/
4
+ * Date: 2023-03-25
5
+ */
6
+
7
+ /*
8
+ -----------------------
9
+ WEBCIMES MODAL
10
+ -----------------------
11
+ */
12
+
13
+ .webcimesModals,
14
+ .webcimesModals *,
15
+ .webcimesModals *::before,
16
+ .webcimesModals *::after
17
+ {
18
+ -webkit-box-sizing: border-box;
19
+ -moz-box-sizing: border-box;
20
+ box-sizing: border-box;
21
+ }
22
+ .webcimesModals
23
+ {
24
+ --webcimes-modals-background: rgba(0,0,0,0.8);
25
+ --webcimes-modals-z-index: 5;
26
+
27
+ position: fixed;
28
+ background: var(--webcimes-modals-background);
29
+ top: 0;
30
+ bottom: 0;
31
+ left: 0;
32
+ right: 0;
33
+ display: flex;
34
+ align-items: center;
35
+ justify-content: center;
36
+ z-index: var(--webcimes-modals-z-index);
37
+ }
38
+ .webcimesModals > .modal
39
+ {
40
+ --modal-color: inherit;
41
+ --modal-background: #fff;
42
+ --modal-border-color: #ddd;
43
+ --modal-box-shadow: 1px 1px 3px 0px #444;
44
+ --modal-title-font-size: 24px;
45
+ --modal-button-cancel-background: rgba(102,102,102,1);
46
+ --modal-button-cancel-background-hover: rgba(102,102,102,0.7);
47
+ --modal-button-cancel-color: #fff;
48
+ --modal-button-cancel-color-hover: #fff;
49
+ --modal-button-confirm-background: rgba(0,0,0,1);
50
+ --modal-button-confirm-background-hover: rgba(0,0,0,0.7);
51
+ --modal-button-confirm-color: #fff;
52
+ --modal-button-confirm-color-hover: #fff;
53
+
54
+ position: absolute;
55
+ border-radius: 5px;
56
+ overflow:auto;
57
+ color: var(--modal-color);
58
+ background: var(--modal-background);
59
+ -webkit-box-shadow: var(--modal-box-shadow);
60
+ -moz-box-shadow: var(--modal-box-shadow);
61
+ -o-box-shadow: var(--modal-box-shadow);
62
+ box-shadow: var(--modal-box-shadow);
63
+ }
64
+ .webcimesModals > .modal button
65
+ {
66
+ font-family: inherit;
67
+ font-size: inherit;
68
+ font-weight: inherit;
69
+ border: none;
70
+ background: none;
71
+ }
72
+ .webcimesModals > .modal > .modalHeader
73
+ {
74
+ position: relative;
75
+ background: var(--modal-background);
76
+ padding: 20px 40px;
77
+ border-bottom: 1px solid var(--modal-border-color);
78
+ display: flex;
79
+ align-items: center;
80
+ }
81
+ .webcimesModals > .modal > .modalHeader.sticky
82
+ {
83
+ position: sticky;
84
+ top: 0;
85
+ }
86
+ .webcimesModals > .modal > .modalHeader.movable
87
+ {
88
+ cursor: move;
89
+ touch-action: none;
90
+ }
91
+ .webcimesModals > .modal > .modalHeader > .title
92
+ {
93
+ flex: 1;
94
+ overflow: hidden;
95
+ text-overflow: ellipsis;
96
+ font-size: var(--modal-title-font-size);
97
+ }
98
+ .webcimesModals > .modal > .modalHeader > .close
99
+ {
100
+ position: absolute;
101
+ height: 20px;
102
+ width: 12px;
103
+ right: 15px;
104
+ top: 50%;
105
+ margin-top: -10px;
106
+ background-image: url("../images/times.svg");
107
+ cursor: pointer;
108
+ opacity: 1;
109
+ -webkit-transition: opacity 0.6s ease 0s;
110
+ -moz-transition: opacity 0.6s ease 0s;
111
+ -o-transition: opacity 0.6s ease 0s;
112
+ transition: opacity 0.6s ease 0s;
113
+ }
114
+ .webcimesModals > .modal > .modalHeader > .close:hover
115
+ {
116
+ opacity: 0.5;
117
+ }
118
+ .webcimesModals > .modal > .modalBody
119
+ {
120
+ padding: 20px 40px;
121
+ }
122
+ .webcimesModals > .modal > .modalBody.movable
123
+ {
124
+ cursor: move;
125
+ }
126
+ .webcimesModals > .modal > .modalFooter
127
+ {
128
+ background: var(--modal-background);
129
+ padding: 20px 40px;
130
+ border-top: 1px solid var(--modal-border-color);
131
+ display: flex;
132
+ justify-content: flex-end;
133
+ flex-wrap: wrap;
134
+ }
135
+ .webcimesModals > .modal > .modalFooter.sticky
136
+ {
137
+ position: sticky;
138
+ bottom: 0;
139
+ }
140
+ .webcimesModals > .modal > .modalFooter.movable
141
+ {
142
+ cursor: move;
143
+ touch-action: none;
144
+ }
145
+ .webcimesModals > .modal > .modalFooter button
146
+ {
147
+ max-width: 100%;
148
+ flex: 0 0 auto;
149
+ border-radius: 5px;
150
+ padding: 10px 30px;
151
+ margin: 5px;
152
+ cursor: pointer;
153
+ text-overflow: ellipsis;
154
+ overflow: hidden;
155
+ -webkit-transition: color 0.6s ease 0s, background 0.6s ease 0s;
156
+ -moz-transition: color 0.6s ease 0s, background 0.6s ease 0s;
157
+ -o-transition: color 0.6s ease 0s, background 0.6s ease 0s;
158
+ transition: color 0.6s ease 0s, background 0.6s ease 0s;
159
+ }
160
+ .webcimesModals > .modal > .modalFooter button.cancel
161
+ {
162
+ background: var(--modal-button-cancel-background);
163
+ color: var(--modal-button-cancel-color);
164
+ }
165
+ .webcimesModals > .modal > .modalFooter button.cancel:hover
166
+ {
167
+ background: var(--modal-button-cancel-background-hover);
168
+ color: var(--modal-button-cancel-color-hover);
169
+ }
170
+ .webcimesModals > .modal > .modalFooter button.confirm
171
+ {
172
+ background: var(--modal-button-confirm-background);
173
+ color: var(--modal-button-confirm-color);
174
+ }
175
+ .webcimesModals > .modal > .modalFooter button.confirm:hover
176
+ {
177
+ background: var(--modal-button-confirm-background-hover);
178
+ color: var(--modal-button-confirm-color-hover);
179
+ }
180
+
181
+ /* ANIMATIONS */
182
+
183
+ @-webkit-keyframes animFadeIn
184
+ {
185
+ 0%
186
+ {
187
+ opacity: 0;
188
+ }
189
+ 100%
190
+ {
191
+ opacity: 1;
192
+ }
193
+ }
194
+ @keyframes animFadeIn
195
+ {
196
+ 0%
197
+ {
198
+ opacity:0;
199
+ }
200
+ 100%
201
+ {
202
+ opacity:1;
203
+ }
204
+ }
205
+ .animFadeIn
206
+ {
207
+ -webkit-animation-duration: 0.5s;
208
+ animation-duration: 0.5s;
209
+ -webkit-animation-fill-mode: both;
210
+ animation-fill-mode: both;
211
+ -webkit-animation-name: animFadeIn;
212
+ animation-name: animFadeIn;
213
+ }
214
+
215
+ @-webkit-keyframes animFadeOut
216
+ {
217
+ 0%
218
+ {
219
+ opacity: 1;
220
+ }
221
+ 100%
222
+ {
223
+ opacity: 0;
224
+ }
225
+ }
226
+ @keyframes animFadeOut
227
+ {
228
+ 0%
229
+ {
230
+ opacity: 1;
231
+ }
232
+ 100%
233
+ {
234
+ opacity: 0;
235
+ }
236
+ }
237
+ .animFadeOut
238
+ {
239
+ -webkit-animation-duration: 0.5s;
240
+ animation-duration: 0.5s;
241
+ -webkit-animation-fill-mode: both;
242
+ animation-fill-mode: both;
243
+ -webkit-animation-name: animFadeOut;
244
+ animation-name: animFadeOut;
245
+ }
246
+
247
+ @-webkit-keyframes animDropDown
248
+ {
249
+ 0%
250
+ {
251
+ -webkit-transform: translateY(-20vh);
252
+ -moz-transform: translateY(-20vh);
253
+ -ms-transform: translateY(-20vh);
254
+ -o-transform: translateY(-20vh);
255
+ transform: translateY(-20vh);
256
+ opacity: 0;
257
+ }
258
+ 100%
259
+ {
260
+ -webkit-transform: translateY(0);
261
+ -moz-transform: translateY(0);
262
+ -ms-transform: translateY(0);
263
+ -o-transform: translateY(0);
264
+ transform: translateY(0);
265
+ opacity: 1;
266
+ }
267
+ }
268
+
269
+ @keyframes animDropDown
270
+ {
271
+ 0%
272
+ {
273
+ -webkit-transform: translateY(-20vh);
274
+ -moz-transform: translateY(-20vh);
275
+ -ms-transform: translateY(-20vh);
276
+ -o-transform: translateY(-20vh);
277
+ transform: translateY(-20vh);
278
+ opacity: 0;
279
+ }
280
+ 100%
281
+ {
282
+ -webkit-transform: translateY(0);
283
+ -moz-transform: translateY(0);
284
+ -ms-transform: translateY(0);
285
+ -o-transform: translateY(0);
286
+ transform: translateY(0);
287
+ opacity: 1;
288
+ }
289
+ }
290
+ .animDropDown
291
+ {
292
+ -webkit-animation-duration: 0.5s;
293
+ animation-duration: 0.5s;
294
+ -webkit-animation-fill-mode: both;
295
+ animation-fill-mode: both;
296
+ -webkit-animation-name: animDropDown;
297
+ animation-name: animDropDown;
298
+ }
299
+
300
+ @-webkit-keyframes animDropUp
301
+ {
302
+ 0%
303
+ {
304
+ -webkit-transform: translateY(0);
305
+ -moz-transform: translateY(0);
306
+ -ms-transform: translateY(0);
307
+ -o-transform: translateY(0);
308
+ transform: translateY(0);
309
+ opacity: 1;
310
+ }
311
+ 100%
312
+ {
313
+ -webkit-transform: translateY(-20vh);
314
+ -moz-transform: translateY(-20vh);
315
+ -ms-transform: translateY(-20vh);
316
+ -o-transform: translateY(-20vh);
317
+ transform: translateY(-20vh);
318
+ opacity: 0;
319
+ }
320
+ }
321
+
322
+ @keyframes animDropUp
323
+ {
324
+ 0%
325
+ {
326
+ -webkit-transform: translateY(0);
327
+ -moz-transform: translateY(0);
328
+ -ms-transform: translateY(0);
329
+ -o-transform: translateY(0);
330
+ transform: translateY(0);
331
+ opacity: 1;
332
+ }
333
+ 100%
334
+ {
335
+ -webkit-transform: translateY(-20vh);
336
+ -moz-transform: translateY(-20vh);
337
+ -ms-transform: translateY(-20vh);
338
+ -o-transform: translateY(-20vh);
339
+ transform: translateY(-20vh);
340
+ opacity: 0;
341
+ }
342
+ }
343
+ .animDropUp
344
+ {
345
+ -webkit-animation-duration: 0.5s;
346
+ animation-duration: 0.5s;
347
+ -webkit-animation-fill-mode: both;
348
+ animation-fill-mode: both;
349
+ -webkit-animation-name: animDropUp;
350
+ animation-name: animDropUp;
351
+ }
352
+
353
+ @-webkit-keyframes animGrowShrink
354
+ {
355
+ 0%
356
+ {
357
+ -webkit-transform: scale(1);
358
+ -moz-transform: scale(1);
359
+ -ms-transform: scale(1);
360
+ -o-transform: scale(1);
361
+ transform: scale(1);
362
+ }
363
+ 50%
364
+ {
365
+ -webkit-transform: scale(1.2);
366
+ -moz-transform: scale(1.2);
367
+ -ms-transform: scale(1.2);
368
+ -o-transform: scale(1.2);
369
+ transform: scale(1.2);
370
+ }
371
+ 100%
372
+ {
373
+ -webkit-transform: scale(1);
374
+ -moz-transform: scale(1);
375
+ -ms-transform: scale(1);
376
+ -o-transform: scale(1);
377
+ transform: scale(1);
378
+ }
379
+ }
380
+
381
+ @keyframes animGrowShrink
382
+ {
383
+ 0%
384
+ {
385
+ -webkit-transform: scale(1);
386
+ -moz-transform: scale(1);
387
+ -ms-transform: scale(1);
388
+ -o-transform: scale(1);
389
+ transform: scale(1);
390
+ }
391
+ 50%
392
+ {
393
+ -webkit-transform: scale(1.1);
394
+ -moz-transform: scale(1.1);
395
+ -ms-transform: scale(1.1);
396
+ -o-transform: scale(1.1);
397
+ transform: scale(1.1);
398
+ }
399
+ 100%
400
+ {
401
+ -webkit-transform: scale(1);
402
+ -moz-transform: scale(1);
403
+ -ms-transform: scale(1);
404
+ -o-transform: scale(1);
405
+ transform: scale(1);
406
+ }
407
+ }
408
+ .animGrowShrink
409
+ {
410
+ -webkit-animation-duration: 0.5s;
411
+ animation-duration: 0.5s;
412
+ -webkit-animation-fill-mode: both;
413
+ animation-fill-mode: both;
414
+ -webkit-animation-name: animGrowShrink;
415
+ animation-name: animGrowShrink;
416
+ }
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M193.94 256L296.5 153.44l21.15-21.15c3.12-3.12 3.12-8.19 0-11.31l-22.63-22.63c-3.12-3.12-8.19-3.12-11.31 0L160 222.06 36.29 98.34c-3.12-3.12-8.19-3.12-11.31 0L2.34 120.97c-3.12 3.12-3.12 8.19 0 11.31L126.06 256 2.34 379.71c-3.12 3.12-3.12 8.19 0 11.31l22.63 22.63c3.12 3.12 8.19 3.12 11.31 0L160 289.94 262.56 392.5l21.15 21.15c3.12 3.12 8.19 3.12 11.31 0l22.63-22.63c3.12-3.12 3.12-8.19 0-11.31L193.94 256z"/></svg>
@@ -291,7 +291,7 @@ export class WebcimesModal
291
291
 
292
292
  // Create modal
293
293
  this.webcimesModals.insertAdjacentHTML("beforeend",
294
- `<div class="modal `+(this.options.setClass?this.options.setClass:'')+` `+this.options.animationOnShow+`" `+(this.options.setClass?'id="'+this.options.setId+'"':'')+`>
294
+ `<div class="modal `+(this.options.setClass?this.options.setClass:'')+` `+this.options.animationOnShow+`" `+(this.options.setId?'id="'+this.options.setId+'"':'')+`>
295
295
  `+(this.options.titleHtml||this.options.showCloseButton?
296
296
  `<div class="modalHeader `+(this.options.stickyHeader?'sticky':'')+` `+(this.options.moveFromHeader?'movable':'')+`">
297
297
  `+(this.options.titleHtml?'<div class="title">'+this.options.titleHtml+'</div>':'')+`
package/tsconfig.json CHANGED
@@ -1,13 +1,20 @@
1
1
  {
2
2
  "compilerOptions": {
3
- "module": "ES6",
4
- "target": "ES6",
5
- "removeComments": false,
6
- "sourceMap": true,
7
- "noImplicitAny": true,
8
- "strictNullChecks": true,
3
+ "module": "ESNext",
4
+ "target": "ESNext",
5
+ "removeComments": false,
6
+ "sourceMap": true,
7
+ "noImplicitAny": true,
8
+ "strictNullChecks": true,
9
+ "allowSyntheticDefaultImports": true,
10
+ "esModuleInterop": true
11
+ },
12
+ "ts-node": {
13
+ "compilerOptions": {
14
+ "module": "CommonJS"
15
+ }
9
16
  },
10
17
  "files": [
11
- "webcimes-modal.ts",
18
+ "src/ts/webcimes-modal.ts",
12
19
  ]
13
- }
20
+ }
@@ -0,0 +1,147 @@
1
+ // Generated using webpack-cli https://github.com/webpack/webpack-cli
2
+
3
+ import path from 'path';
4
+ import webpack from "webpack";
5
+ import TerserPlugin from "terser-webpack-plugin";
6
+ import MiniCssExtractPlugin from "mini-css-extract-plugin";
7
+ import CssMinimizerPlugin from "css-minimizer-webpack-plugin";
8
+ import RemovePlugin from "remove-files-webpack-plugin";
9
+
10
+ const isProduction = process.env.NODE_ENV == 'production';
11
+
12
+ // Config UDM
13
+ const configUDM: webpack.Configuration = {
14
+ mode: (isProduction ? "production" : "development"),
15
+ // devtool: (isProduction ? false : "source-map"),
16
+ devtool: "source-map",
17
+ entry: {
18
+ "webcimes-modal.udm": "./src/ts/webcimes-modal.ts",
19
+ "webcimes-modal.udm.min": "./src/ts/webcimes-modal.ts",
20
+ },
21
+ optimization: {
22
+ minimize: true,
23
+ minimizer: [
24
+ new TerserPlugin({
25
+ test: /\.min\.js$/i,
26
+ extractComments: false,
27
+ }),
28
+ ],
29
+ },
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
+ module: {
38
+ rules: [
39
+ {
40
+ test: /\.(ts)$/i,
41
+ use: "ts-loader",
42
+ },
43
+ ],
44
+ },
45
+ };
46
+
47
+ // Config ESM
48
+ const configESM: webpack.Configuration = {
49
+ mode: (isProduction ? "production" : "development"),
50
+ // devtool: (isProduction ? false : "source-map"),
51
+ devtool: "source-map",
52
+ entry: {
53
+ "webcimes-modal.esm": "./src/ts/webcimes-modal.ts",
54
+ "webcimes-modal.esm.min": "./src/ts/webcimes-modal.ts",
55
+ },
56
+ optimization: {
57
+ minimize: true,
58
+ minimizer: [
59
+ new TerserPlugin({
60
+ test: /\.min\.js$/i,
61
+ extractComments: false,
62
+ }),
63
+ ],
64
+ },
65
+ experiments: {
66
+ outputModule: true,
67
+ },
68
+ output: {
69
+ filename: "js/esm/[name].js",
70
+ path: path.resolve(__dirname, "dist"),
71
+ // publicPath: "/dist/",
72
+ libraryTarget: "module",
73
+ clean: false, // Clean the output directory before emit.
74
+ },
75
+ module: {
76
+ rules: [
77
+ {
78
+ test: /\.(ts)$/i,
79
+ use: "ts-loader",
80
+ },
81
+ ],
82
+ },
83
+ };
84
+
85
+ // Config CSS + Remove plugin
86
+ const configCSS: webpack.Configuration = {
87
+ mode: (isProduction ? "production" : "development"),
88
+ // devtool: (isProduction ? false : "source-map"),
89
+ devtool: "source-map",
90
+ entry: {
91
+ "webcimes-modal": "./src/css/webcimes-modal.css",
92
+ "webcimes-modal.min": "./src/css/webcimes-modal.css",
93
+ },
94
+ optimization: {
95
+ minimize: true,
96
+ minimizer: [
97
+ new CssMinimizerPlugin({
98
+ test: /\.min\.css$/i,
99
+ }),
100
+ ],
101
+ },
102
+ output: {
103
+ filename: "css/[name].js",
104
+ path: path.resolve(__dirname, "dist"),
105
+ // publicPath: "/dist/",
106
+ clean: false, // Clean the output directory before emit.
107
+ },
108
+ module: {
109
+ rules: [
110
+ {
111
+ test: /\.css$/i,
112
+ // use: ['style-loader', 'css-loader'],
113
+ use: [MiniCssExtractPlugin.loader, "css-loader"],
114
+ },
115
+ {
116
+ test: /\.(svg|png|jpg|jpeg|gif)$/i,
117
+ type: 'asset/resource',
118
+ generator: {
119
+ filename: 'images/[name][ext][query]', // Correct bug asset/ressource url wrong path with css files subfolder https://github.com/webpack-contrib/mini-css-extract-plugin/issues/1005
120
+ },
121
+ },
122
+ ],
123
+ },
124
+ plugins: [
125
+ new MiniCssExtractPlugin({filename: "css/[name].css"}),
126
+ new RemovePlugin({
127
+ before: {
128
+ include: [
129
+ './dist' // Delete dist folder before running webpack build
130
+ ]
131
+ },
132
+ after: {
133
+ test: [
134
+ {
135
+ folder: './dist/css',
136
+ method: (absoluteItemPath) => {
137
+ return new RegExp(/(\.js|\.js\.map)$/, 'm').test(absoluteItemPath); // Delete extra empty js file (can't ouput directly css)
138
+ },
139
+ }
140
+ ],
141
+ }
142
+ }),
143
+ ],
144
+ };
145
+
146
+ // Export
147
+ export default [configUDM, configESM, configCSS];
@@ -1 +0,0 @@
1
- {"version":3,"file":"webcimes-modal.js","sourceRoot":"","sources":["webcimes-modal.ts"],"names":[],"mappings":"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"}