Skip to content

Commit d127f01

Browse files
committed
Add progress bar
1 parent 2830523 commit d127f01

File tree

2 files changed

+59
-2
lines changed

2 files changed

+59
-2
lines changed

CHANGELOG.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10-
## [0.1.0] - 2023-05-05
10+
## [1.0.0] - 2023-05-05
1111

1212
### Added
1313

1414
- Badge class
1515
- Button class
1616
- Link class
1717
- Spinner class
18-
- Toast class
18+
- Toast class
19+
- Progress BAr class

neptune.js

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,4 +310,60 @@ export class Toast {
310310
document.body.appendChild(newToast);
311311
}
312312
}
313+
}
314+
315+
/**
316+
* @class ProgressBar
317+
* @description Create a new Neptune Progress Bar
318+
*
319+
* @param {any} config Add your configuration
320+
*
321+
* parent -> class or id of your target element, when null its document.body
322+
*
323+
* size -> xs, s, m, l, xl
324+
*
325+
* style -> primary, cta, information, success, warning, error
326+
*
327+
* progress -> set the progress of the par width a number
328+
*
329+
* @example
330+
* const myProgressBAr = new ProgressBar({
331+
* size: "l",
332+
* style: "primary",
333+
* progress: 30
334+
* });
335+
*/
336+
export class ProgressBar {
337+
constructor(config) {
338+
// Create Progress Bar
339+
const newProgressBar = document.createElement('div');
340+
newProgressBar.classList.add('progress');
341+
342+
// Create Bar
343+
const newBar = document.createElement('div');
344+
newBar.classList.add('progress-bar');
345+
newProgressBar.appendChild(newBar);
346+
347+
// Setup Size
348+
if (config.size != null) {
349+
newProgressBar.classList.add('progress-' + config.size);
350+
}
351+
352+
// Setup Style
353+
if (config.style != null) {
354+
newProgressBar.classList.add('progress-' + config.style);
355+
}
356+
357+
// Handle Progress
358+
if (config.progress != null) {
359+
newBar.style.width = config.progress + '%';
360+
}
361+
362+
// Append to parent element
363+
if (config.parent != null) {
364+
document.querySelector(config.parent).appendChild(newProgressBar);
365+
} else {
366+
document.body.appendChild(newProgressBar);
367+
}
368+
}
313369
}

0 commit comments

Comments
 (0)