Dependencies

The library is written in pure vanilla JavaScript but is designed to integrate seamlessly with popular external libraries when available. The code gracefully handles the absence of these dependencies.

Why Vanilla JS?

The library has minimal dependencies and works with:

  • Modern browsers (ES6+).
  • jQuery (for some form functions).
  • Bootstrap (for UI components).
  • Bootbox (for dialogs).
  • Notyf (for notifications, optional)

Useful Dependencies

Bootstrap

Used for tab management and modal functionality:

  • Tab initialization and navigation (src/tabs.js).
  • Modal instance management.
  • Bootstrap classes and data attributes.

jQuery

Used for enhanced form field functionality:

  • Select2 integration for improved select fields.
  • Datepicker integration for date inputs.
  • Dynamic field initialization.

Notyf

Enhanced notifications (falls back to basic alerts):

  • Toast notifications with icons.
  • Configurable duration and positioning.
  • Multiple notification types.

Bootbox

Enhanced dialog boxes:

  • Confirmation dialogs.
  • Prompt dialogs for field editing.
  • Customizable dialog options.

Graceful Degradation

The library includes conditional checks to ensure functionality even when external dependencies are not available:

// Example: jQuery availability check.
if (typeof window.jQuery !== 'function') {
    console.error('window or jQuery is not available.');
    return;
}

// Example: Bootstrap availability check.
if (typeof bootstrap !== 'undefined') {
    new bootstrap.Tab(element).show();
}

Installation Recommendations

For full functionality, include these dependencies in your project:

<!-- Bootstrap CSS and JS -->
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>

<!-- jQuery (for enhanced form features) -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>

<!-- Font Awesome (for icons in the UI) -->
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/7.0.0/css/all.min.css" rel="stylesheet" />

<!-- Optional: Bootbox for dialogs -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootbox.js/6.0.4/bootbox.all.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootbox.js/6.0.4/bootbox.locales.min.js"></script>

<!-- Optional: Notyf for notifications -->
<link href="https://cdn.jsdelivr.net/npm/[email protected]/notyf.min.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/[email protected]/notyf.min.js"></script>
On this page

Last updated on 27/07/2025 by Anonymous