Skip to content
This repository was archived by the owner on Dec 25, 2023. It is now read-only.

Commit fbb4f57

Browse files
nagmat84kamil4
andauthored
Complete revise (#7)
* First major cleanup. * More refactoring. * Fixed a spelling error. * Fixed an error with `classList.add` * Unfolded basicTasks and removed dependency. * Welcome to the modern world :-) * Next try * Update src/scripts/main.js Co-authored-by: Kamil Iskra <[email protected]> * Update src/scripts/main.js Co-authored-by: Kamil Iskra <[email protected]> * Incorporated PR #2 to handle no selections. * Added pointer to dialog to ready callback. * Forgotten compilation. * Removed unnessary and bothering CSS settings which are likely to be overriden anyway. * Fixed demo to new use new interface. Co-authored-by: Kamil Iskra <[email protected]>
1 parent c5620df commit fbb4f57

File tree

14 files changed

+619
-393
lines changed

14 files changed

+619
-393
lines changed

README.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,3 +263,31 @@ basicModal.show({
263263

264264
})
265265
```
266+
267+
## Contributing
268+
269+
### Installing the development dependencies
270+
271+
Run
272+
273+
npm install
274+
275+
## Compilation
276+
277+
Run
278+
279+
npm run compile
280+
281+
it will create a minimized version of the JS code and a CSS style file from the SASS sources in `./dist`.
282+
283+
## Browser Compatibility
284+
285+
The build system uses [Gulp Babel](https://babeljs.io) to "transpile" modern ECMA Script code for older browsers.
286+
The build system reads `babel.config.json` for a list of minimum supported browser versions.
287+
This file should be updated once in a while.
288+
According to [Babel Docs | Config Options | Tagets](https://babeljs.io/docs/en/options#targets) the following targets are supported: `android`, `chrome`, `edge`, `electron`, `firefox`, `ie`, `ios`, `node`, `opera`, `rhino`, `safari`, and `samsung`.
289+
A list of browser versions can be obtained via
290+
291+
npx browserslist --mobile-to-desktop ">0.5%, not dead"
292+
293+
(see [Babel Docs | @babel/preset-env](https://babeljs.io/docs/en/babel-preset-env.html)).

babel.config.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"targets": {
3+
"chrome": "93",
4+
"edge": "96",
5+
"firefox": "95",
6+
"ie": "11",
7+
"ios": "12",
8+
"opera": "82",
9+
"safari": "14",
10+
"samsung": "16"
11+
}
12+
}

bower.json

Lines changed: 0 additions & 29 deletions
This file was deleted.

demos/default.html

Lines changed: 52 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,10 @@
5858

5959
<script>
6060

61-
var popup = {
61+
/**
62+
* @type ModalDialogConfiguration
63+
*/
64+
const popup = {
6265
body: '<p>This is a dead-simple popup!<br>The message can be filled with anything you want.</p>',
6366
buttons: {
6467
cancel: {
@@ -69,9 +72,12 @@
6972
}
7073
}
7174

72-
var callback = {
75+
/**
76+
* @type ModalDialogConfiguration
77+
*/
78+
const callback = {
7379
body: '<p>Take a look at the console to see if the callback has been executed.</p>',
74-
callback: function() { console.log('callback fired') },
80+
readyCB: function() { console.log('callback fired') },
7581
buttons: {
7682
cancel: {
7783
title: 'Dismiss',
@@ -81,7 +87,10 @@
8187
}
8288
}
8389

84-
var alert = {
90+
/**
91+
* @type ModalDialogConfiguration
92+
*/
93+
const alert = {
8594
body: '<p>This is a dead-simple alert!<br>The message can be filled with anything you want.</p>',
8695
buttons: {
8796
action: {
@@ -91,7 +100,10 @@
91100
}
92101
}
93102

94-
var longAlert = {
103+
/**
104+
* @type ModalDialogConfiguration
105+
*/
106+
const longAlert = {
95107
body: '<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Id quaerat, autem quia nulla modi esse voluptatum placeat laborum ab. Aliquid iure, saepe totam delectus, debitis nesciunt facilis ex cumque. Obcaecati natus ad asperiores necessitatibus perferendis repellat, vitae quo ex, sapiente officiis, assumenda et ipsam commodi sint blanditiis temporibus inventore? Maiores obcaecati nesciunt perferendis, explicabo, sapiente sed ad veritatis reiciendis, labore iusto fugiat. Optio doloribus, dolor aut! A cumque quam neque corporis, dignissimos earum distinctio aut? Perferendis ipsa dolores, fugiat temporibus asperiores nemo aliquam modi officia animi facere quam tenetur aspernatur quasi quisquam, porro consequatur, iure eos nihil mollitia corporis reiciendis. Aliquid hic, consectetur dignissimos porro quasi atque, animi, quod voluptatem unde ex, iure impedit laborum ad optio debitis delectus iste. Voluptates, dolorem quod sit alias. Quisquam fugit, impedit nam placeat nemo fugiat consequatur, velit error sint vel quaerat repellat quis tenetur? Minus culpa aperiam atque quam dolores suscipit delectus ipsum officia esse, nobis reprehenderit, maiores tempora, pariatur enim, sed blanditiis fuga ad exercitationem quo voluptas. Placeat officiis cum autem molestiae libero, vero quod earum iste ut voluptas ipsam delectus optio aliquam quasi impedit illum magni maxime? Optio aut reprehenderit pariatur saepe quia necessitatibus distinctio, architecto assumenda nihil nesciunt. Quod architecto sapiente officiis dicta corporis vitae quas laboriosam veritatis numquam quae quis obcaecati iste, incidunt natus quisquam! Numquam cum fugiat harum vero ad sit cupiditate possimus, voluptatem ea illo, repellendus provident perferendis iste aut iure esse nobis assumenda natus laboriosam, quidem doloribus nisi saepe accusantium officia. Iste, recusandae, ipsum. Dicta at quia aliquid, fugit tenetur voluptatum ipsa quam explicabo numquam illo reprehenderit voluptas, eius perferendis maxime voluptates ducimus inventore accusantium minima! Eos dolore accusamus, quasi quos, possimus, fuga, qui maiores non consectetur quisquam atque reprehenderit ullam! Quaerat, cupiditate voluptates at eaque, asperiores minima praesentium officiis expedita neque ratione error consequuntur saepe nisi, possimus vitae dicta. Ullam delectus accusantium, ipsam nesciunt, reiciendis corporis tempore sequi quibusdam natus maxime debitis laudantium voluptate ipsum esse tempora. Alias aliquid, rerum quas eius soluta accusamus incidunt ducimus voluptas esse eligendi distinctio hic voluptates odit, natus unde asperiores sit officia velit, corporis placeat consectetur quidem exercitationem. Perspiciatis ex aliquam non soluta vero aliquid corrupti laudantium, animi saepe nemo neque, quia quis magnam id dolores iste dolore, dolor sit quidem veniam impedit consequatur, ullam nostrum expedita? Earum blanditiis nulla ex, facilis! Nihil quae ducimus consectetur aliquam quo deleniti quisquam mollitia aspernatur. Libero commodi, ipsam perspiciatis obcaecati deleniti cupiditate voluptate, ratione explicabo accusantium quis adipisci magnam, sed. Amet, nemo accusantium. Ut veritatis, porro reprehenderit sunt itaque, beatae recusandae distinctio maxime nulla animi ab ullam. Quibusdam accusamus ipsum sunt incidunt, fugit esse necessitatibus optio ducimus odio, non totam numquam, repellat architecto molestias quos? Nulla aliquid enim aliquam sequi accusantium repudiandae hic delectus quam atque dicta soluta fuga blanditiis incidunt esse neque sunt voluptas sint ullam animi illum, repellat eligendi! Temporibus dolorem et ducimus perferendis ea omnis, eligendi placeat maxime sapiente alias repudiandae magni vel veniam illo ex voluptas natus necessitatibus porro sed in magnam accusamus quas dignissimos? Est, id, fuga.</p>',
96108
buttons: {
97109
action: {
@@ -101,7 +113,10 @@
101113
}
102114
}
103115

104-
var prompt = {
116+
/**
117+
* @type ModalDialogConfiguration
118+
*/
119+
const prompt = {
105120
body: '<p>This type of modal can be used to ask the user questions. Are you sure you want to continue?</p>',
106121
buttons: {
107122
cancel: {
@@ -115,7 +130,10 @@
115130
}
116131
}
117132

118-
var input = {
133+
/**
134+
* @type ModalDialogConfiguration
135+
*/
136+
const input = {
119137
body: '<p>This type of modal can be used to ask the user questions. Please enter your name:</p><input class="basicModal__text" type="text" name="name" placeholder="Jane Doe">',
120138
buttons: {
121139
cancel: {
@@ -125,18 +143,21 @@
125143
action: {
126144
title: 'Continue',
127145
fn: function(data) {
128-
129-
if (data.name.length<1) return basicModal.error('name')
130-
131-
console.log(data)
132-
basicModal.close()
133-
146+
if (data.name.length<1) {
147+
basicModal.focusError('name')
148+
} else {
149+
console.log(data)
150+
basicModal.close()
151+
}
134152
}
135153
}
136154
}
137155
}
138156

139-
var select = {
157+
/**
158+
* @type ModalDialogConfiguration
159+
*/
160+
const select = {
140161
body: '<p>This type of modal can be used to ask the user questions.</p><select name="options"><option disabled selected>Choose an option...</option><option>Option A</option><option>Option B</option></select>',
141162
buttons: {
142163
cancel: {
@@ -146,43 +167,40 @@
146167
action: {
147168
title: 'Continue',
148169
fn: function(data) {
149-
150-
if (data.options==='Choose an option...') return basicModal.error('options')
151-
152-
console.log(data)
153-
basicModal.close()
154-
170+
if (data.options==='Choose an option...') {
171+
basicModal.focusError('options')
172+
} else {
173+
console.log(data)
174+
basicModal.close()
175+
}
155176
}
156177
}
157178
}
158179
}
159180

160-
var login = {
181+
/**
182+
* @type ModalDialogConfiguration
183+
*/
184+
const login = {
161185
body: '<p style="margin: 5% 0 14%; color: #666;"><strong style="display: block; margin: 0 0 5%; color: #444; text-transform: uppercase; letter-spacing: 2px;">Login</strong>Login with username "admin" and password "1234". Invalid input will be highlighted.</p><input class="basicModal__text" type="text" placeholder="username" name="username"><input class="basicModal__text" type="password" placeholder="password" name="password">',
162186
class: basicModal.THEME.small,
163187
buttons: {
164188
cancel: {
165189
title: 'Cancel',
166-
class: basicModal.THEME.xclose,
190+
classList: [basicModal.THEME.xclose],
167191
fn: basicModal.close
168192
},
169193
action: {
170194
title: 'Login',
171195
fn: function(data) {
172-
173196
if (data.username!=='admin') {
174-
basicModal.error('username')
175-
return false
197+
basicModal.focusError('username')
198+
} else if (data.password!=='1234') {
199+
basicModal.focusError('password')
200+
} else {
201+
console.log(data)
202+
basicModal.close()
176203
}
177-
178-
if (data.password!=='1234') {
179-
basicModal.error('password')
180-
return false
181-
}
182-
183-
console.log(data)
184-
basicModal.close()
185-
186204
}
187205
}
188206
}

dist/basicModal.min.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)