vs-datatable 0.2.0 → 0.3.0

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/dist/index.css CHANGED
@@ -1 +1 @@
1
- .vs-pagination[data-v-a6d89ca2]{display:flex;align-items:center;justify-content:center;gap:var(--vs-spacing-sm);flex-wrap:wrap}.vs-pagination-button[data-v-a6d89ca2]{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 var(--vs-spacing-sm);border:1px solid var(--vs-table-border);background-color:var(--vs-table-bg);color:var(--vs-dark);text-decoration:none;border-radius:var(--vs-border-radius);font-size:var(--vs-font-size-sm);transition:var(--vs-transition-fast);cursor:pointer}.vs-pagination-button[data-v-a6d89ca2]:hover:not(:disabled){background-color:var(--vs-table-hover-bg);border-color:var(--vs-primary)}.vs-pagination-button.vs-active[data-v-a6d89ca2]{background-color:var(--vs-primary);border-color:var(--vs-primary);color:#fff}.vs-pagination-button[data-v-a6d89ca2]:disabled{opacity:.5;cursor:not-allowed}.vs-pagination-nav[data-v-a6d89ca2]{font-weight:var(--vs-font-weight-bold)}.vs-pagination-ellipsis[data-v-a6d89ca2]{color:var(--vs-secondary);padding:0 var(--vs-spacing-sm);font-size:var(--vs-font-size-sm)}@media (max-width: 768px){.vs-pagination-button[data-v-a6d89ca2]{min-width:28px;height:28px;font-size:12px}}.vs-datatable[data-v-73862aa1]{--vs-table-wrapper-overflow: auto}.vs-table-wrapper[data-v-73862aa1]{overflow:var(--vs-table-wrapper-overflow)}.vs-header-content[data-v-73862aa1]{display:flex;align-items:center;gap:var(--vs-spacing-sm)}.vs-header-label[data-v-73862aa1]{flex:1}.vs-checkbox-column[data-v-73862aa1]{width:50px;text-align:center}.vs-row-clickable[data-v-73862aa1]{cursor:pointer}.vs-row-selected[data-v-73862aa1]{background-color:rgba(var(--vs-primary),.1)}.vs-table-footer[data-v-73862aa1]{display:flex;align-items:center;justify-content:space-between;padding:var(--vs-spacing-sm) 0}.vs-table-info[data-v-73862aa1]{color:var(--vs-secondary);font-size:var(--vs-font-size-md)}.vs-search-container[data-v-73862aa1]{margin-bottom:var(--vs-spacing-md)}:root{--vs-primary: #007bff;--vs-secondary: #6c757d;--vs-success: #28a745;--vs-danger: #dc3545;--vs-warning: #ffc107;--vs-info: #17a2b8;--vs-light: #f8f9fa;--vs-dark: #343a40;--vs-table-bg: #ffffff;--vs-table-border: #dee2e6;--vs-table-header-bg: #f8f9fa;--vs-table-header-color: #495057;--vs-table-hover-bg: #f5f5f5;--vs-table-stripe-bg: #fafafa;--vs-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--vs-font-size: 14px;--vs-font-size-sm: 12px;--vs-font-size-lg: 16px;--vs-font-weight-normal: 400;--vs-font-weight-bold: 600;--vs-spacing-xs: 4px;--vs-spacing-sm: 8px;--vs-spacing-md: 16px;--vs-spacing-lg: 24px;--vs-spacing-xl: 32px;--vs-border-radius: 4px;--vs-border-radius-sm: 2px;--vs-border-radius-lg: 8px;--vs-shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--vs-shadow: 0 2px 4px rgba(0, 0, 0, .1);--vs-shadow-lg: 0 4px 8px rgba(0, 0, 0, .15);--vs-transition: all .2s ease-in-out;--vs-transition-fast: all .15s ease-in-out;--vs-z-dropdown: 1000;--vs-z-sticky: 1020;--vs-z-fixed: 1030;--vs-z-modal: 1040;--vs-z-popover: 1050;--vs-z-tooltip: 1060}.vs-datatable{font-family:var(--vs-font-family);font-size:var(--vs-font-size);line-height:1.5;color:var(--vs-dark);background-color:var(--vs-table-bg);box-sizing:border-box}.vs-datatable *,.vs-datatable *:before,.vs-datatable *:after{box-sizing:border-box}.vs-table-container{position:relative;background-color:var(--vs-table-bg);border:1px solid var(--vs-table-border);border-radius:var(--vs-border-radius);overflow:hidden;box-shadow:var(--vs-shadow-sm)}.vs-table{width:100%;margin:0;border-collapse:separate;border-spacing:0;background-color:var(--vs-table-bg)}.vs-table thead{background-color:var(--vs-table-header-bg)}.vs-table thead th{padding:var(--vs-spacing-sm);font-weight:var(--vs-font-weight-bold);color:var(--vs-table-header-color);text-align:left;vertical-align:middle;border-bottom:2px solid var(--vs-table-border);position:relative;-webkit-user-select:none;user-select:none}.vs-table thead th:first-child{border-top-left-radius:var(--vs-border-radius)}.vs-table thead th:last-child{border-top-right-radius:var(--vs-border-radius)}.vs-table tbody tr{transition:var(--vs-transition-fast);border-bottom:1px solid var(--vs-table-border)}.vs-table tbody tr:hover{background-color:var(--vs-table-hover-bg)}.vs-table tbody tr:nth-child(2n){background-color:var(--vs-table-stripe-bg)}.vs-table tbody tr:last-child{border-bottom:none}.vs-table tbody tr td{padding:var(--vs-spacing-md);vertical-align:middle;border-right:1px solid var(--vs-table-border)}.vs-table tbody tr td:last-child{border-right:none}.vs-sortable{cursor:pointer;position:relative}.vs-sortable:hover{background-color:rgba(var(--vs-primary),.1)}.vs-sortable .vs-sort-icons{display:inline-flex;flex-direction:column;margin-left:var(--vs-spacing-sm);vertical-align:middle}.vs-sortable .vs-sort-icons .vs-sort-icon{font-size:10px;line-height:1;color:var(--vs-secondary);transition:var(--vs-transition-fast);margin:-8px 0}.vs-sortable .vs-sort-icons .vs-sort-icon.vs-sort-asc,.vs-sortable .vs-sort-icons .vs-sort-icon.vs-sort-desc{color:var(--vs-primary)}.vs-sortable .vs-sort-icons .vs-sort-icon svg{fill:#e3e3e3}.vs-sortable .vs-sort-icons .vs-sort-icon.vs-active svg{fill:currentColor}.vs-sortable .vs-sort-priority{display:inline-block;background-color:var(--vs-primary);color:#fff;font-size:10px;padding:2px 6px;border-radius:var(--vs-border-radius-sm);margin-left:var(--vs-spacing-sm);font-weight:var(--vs-font-weight-bold)}.vs-loading{display:flex;align-items:center;justify-content:center;padding:var(--vs-spacing-xl);color:var(--vs-secondary)}.vs-loading .vs-spinner{width:20px;height:20px;border:2px solid var(--vs-table-border);border-top:2px solid var(--vs-primary);border-radius:50%;animation:vs-spin 1s linear infinite;margin-right:var(--vs-spacing-sm)}@keyframes vs-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.vs-no-data{text-align:center;padding:var(--vs-spacing-xl);color:var(--vs-secondary)}.vs-no-data .vs-no-data-icon{width:60px;height:60px;margin:0 auto var(--vs-spacing-md);opacity:.5}.vs-no-data .vs-no-data-message{font-size:var(--vs-font-size-lg);font-weight:var(--vs-font-weight-bold);margin-bottom:var(--vs-spacing-sm)}.vs-no-data .vs-no-data-description{font-size:var(--vs-font-size-sm);color:var(--vs-secondary)}.vs-search{position:relative;margin-bottom:var(--vs-spacing-md)}.vs-search .vs-search-input{width:100%;padding:var(--vs-spacing-sm) var(--vs-spacing-md);padding-left:40px;border:1px solid var(--vs-table-border);border-radius:var(--vs-border-radius);font-size:var(--vs-font-size);transition:var(--vs-transition-fast)}.vs-search .vs-search-input:focus{outline:none;border-color:var(--vs-primary);box-shadow:0 0 0 2px rgba(var(--vs-primary),.25)}.vs-search .vs-search-icon{position:absolute;left:var(--vs-spacing-md);top:50%;transform:translateY(-50%);color:var(--vs-secondary);pointer-events:none}.vs-pagination{display:flex;align-items:center;justify-content:center;gap:var(--vs-spacing-sm);margin-top:var(--vs-spacing-md)}.vs-pagination .vs-pagination-button{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 var(--vs-spacing-sm);border:1px solid var(--vs-table-border);background-color:var(--vs-table-bg);color:var(--vs-dark);text-decoration:none;border-radius:var(--vs-border-radius);font-size:var(--vs-font-size-sm);transition:var(--vs-transition-fast);cursor:pointer}.vs-pagination .vs-pagination-button:hover:not(:disabled){background-color:var(--vs-table-hover-bg);border-color:var(--vs-primary)}.vs-pagination .vs-pagination-button.vs-active{background-color:var(--vs-primary);border-color:var(--vs-primary);color:#fff}.vs-pagination .vs-pagination-button:disabled{opacity:.5;cursor:not-allowed}.vs-pagination .vs-pagination-ellipsis{color:var(--vs-secondary);padding:0 var(--vs-spacing-sm)}.vs-checkbox{display:inline-flex;align-items:center;cursor:pointer}.vs-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;cursor:pointer;accent-color:var(--vs-primary)}.vs-checkbox label{margin:0;cursor:pointer;font-size:var(--vs-font-size-sm)}@media (max-width: 768px){.vs-table-container{overflow-x:auto}.vs-table{min-width:600px}.vs-pagination{flex-wrap:wrap;gap:var(--vs-spacing-xs)}.vs-pagination .vs-pagination-button{min-width:28px;height:28px;font-size:12px}}.vs-text-center{text-align:center}.vs-text-left{text-align:left}.vs-text-right{text-align:right}.vs-text-muted{color:var(--vs-secondary)}.vs-text-primary{color:var(--vs-primary)}.vs-text-success{color:var(--vs-success)}.vs-text-danger{color:var(--vs-danger)}.vs-text-warning{color:var(--vs-warning)}.vs-bg-primary{background-color:var(--vs-primary)}.vs-bg-success{background-color:var(--vs-success)}.vs-bg-danger{background-color:var(--vs-danger)}.vs-bg-warning{background-color:var(--vs-warning)}.vs-bg-light{background-color:var(--vs-light)}.vs-border{border:1px solid var(--vs-table-border)}.vs-border-top{border-top:1px solid var(--vs-table-border)}.vs-border-bottom{border-bottom:1px solid var(--vs-table-border)}.vs-border-left{border-left:1px solid var(--vs-table-border)}.vs-border-right{border-right:1px solid var(--vs-table-border)}.vs-rounded{border-radius:var(--vs-border-radius)}.vs-rounded-sm{border-radius:var(--vs-border-radius-sm)}.vs-rounded-lg{border-radius:var(--vs-border-radius-lg)}.vs-shadow{box-shadow:var(--vs-shadow)}.vs-shadow-sm{box-shadow:var(--vs-shadow-sm)}.vs-shadow-lg{box-shadow:var(--vs-shadow-lg)}.vs-fade-in{animation:vs-fade-in .3s ease-in-out}@keyframes vs-fade-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.vs-slide-in{animation:vs-slide-in .3s ease-in-out}@keyframes vs-slide-in{0%{transform:translate(-20px);opacity:0}to{transform:translate(0);opacity:1}}.vs-datatable.vs-theme-dark{--vs-primary: #0d6efd;--vs-secondary: #6c757d;--vs-success: #198754;--vs-danger: #dc3545;--vs-warning: #ffc107;--vs-info: #0dcaf0;--vs-light: #f8f9fa;--vs-dark: #212529;--vs-table-bg: #1a1a1a;--vs-table-border: #333333;--vs-table-header-bg: #2d2d2d;--vs-table-header-color: #ffffff;--vs-table-hover-bg: #333333;--vs-table-stripe-bg: #222222;color:#fff;background-color:var(--vs-table-bg)}.vs-datatable.vs-theme-minimal{--vs-primary: #000000;--vs-secondary: #666666;--vs-success: #000000;--vs-danger: #000000;--vs-warning: #000000;--vs-info: #000000;--vs-light: #f9f9f9;--vs-dark: #000000;--vs-table-bg: #ffffff;--vs-table-border: #e0e0e0;--vs-table-header-bg: #ffffff;--vs-table-header-color: #000000;--vs-table-hover-bg: #f5f5f5;--vs-table-stripe-bg: #ffffff}.vs-datatable.vs-theme-minimal .vs-table{border:none;box-shadow:none}.vs-datatable.vs-theme-minimal .vs-table thead th{border-bottom:2px solid var(--vs-table-border);font-weight:500}.vs-datatable.vs-theme-minimal .vs-table tbody tr{border-bottom:1px solid var(--vs-table-border)}.vs-datatable.vs-theme-colorful{--vs-primary: #e91e63;--vs-secondary: #9c27b0;--vs-success: #4caf50;--vs-danger: #f44336;--vs-warning: #ff9800;--vs-info: #2196f3;--vs-light: #f3e5f5;--vs-dark: #2e2e2e;--vs-table-bg: #ffffff;--vs-table-border: #e1bee7;--vs-table-header-bg: linear-gradient(135deg, #e91e63, #9c27b0);--vs-table-header-color: #ffffff;--vs-table-hover-bg: #f3e5f5;--vs-table-stripe-bg: #fafafa}.vs-datatable.vs-theme-colorful .vs-table thead th{background:var(--vs-table-header-bg);color:var(--vs-table-header-color);font-weight:600}.vs-datatable.vs-theme-colorful .vs-pagination-button.vs-active{background:linear-gradient(135deg,var(--vs-primary),var(--vs-secondary))}.vs-datatable.vs-theme-corporate{--vs-primary: #1e3a8a;--vs-secondary: #64748b;--vs-success: #059669;--vs-danger: #dc2626;--vs-warning: #d97706;--vs-info: #0891b2;--vs-light: #f8fafc;--vs-dark: #1e293b;--vs-table-bg: #ffffff;--vs-table-border: #e2e8f0;--vs-table-header-bg: #f1f5f9;--vs-table-header-color: #334155;--vs-table-hover-bg: #f8fafc;--vs-table-stripe-bg: #ffffff;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.vs-datatable.vs-theme-corporate .vs-table{border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.vs-datatable.vs-theme-corporate .vs-table thead th{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:16px 20px}.vs-datatable.vs-theme-corporate .vs-table tbody td{padding:16px 20px;font-size:14px}.vs-datatable.vs-theme-compact{--vs-spacing-xs: 2px;--vs-spacing-sm: 4px;--vs-spacing-md: 8px;--vs-spacing-lg: 12px;--vs-spacing-xl: 16px;--vs-font-size: 12px;--vs-font-size-sm: 10px;--vs-font-size-lg: 14px}.vs-datatable.vs-theme-compact .vs-table thead th{padding:var(--vs-spacing-sm) var(--vs-spacing-md);font-size:var(--vs-font-size-sm)}.vs-datatable.vs-theme-compact .vs-table tbody td{padding:var(--vs-spacing-sm) var(--vs-spacing-md);font-size:var(--vs-font-size)}.vs-datatable.vs-theme-compact .vs-pagination-button{min-width:24px;height:24px;font-size:var(--vs-font-size-sm)}.vs-datatable.vs-theme-rounded{--vs-border-radius: 12px;--vs-border-radius-sm: 6px;--vs-border-radius-lg: 16px}.vs-datatable.vs-theme-rounded .vs-table-container{border-radius:var(--vs-border-radius);overflow:hidden}.vs-datatable.vs-theme-rounded .vs-table thead th:first-child{border-top-left-radius:var(--vs-border-radius)}.vs-datatable.vs-theme-rounded .vs-table thead th:last-child{border-top-right-radius:var(--vs-border-radius)}.vs-datatable.vs-theme-rounded .vs-pagination-button{border-radius:var(--vs-border-radius-sm)}.vs-datatable.vs-theme-brand{--vs-primary: #ff6b35;--vs-secondary: #004e89;--vs-success: #00a896;--vs-danger: #e63946;--vs-warning: #f77f00;--vs-info: #06a77d}.vs-datatable.vs-theme-brand .vs-table-container{border:2px solid var(--vs-primary);border-radius:16px;box-shadow:0 8px 32px #ff6b3533}.vs-datatable.vs-theme-brand .vs-table thead th{background:linear-gradient(135deg,var(--vs-primary),var(--vs-secondary));color:#fff;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.1)}.vs-datatable.vs-theme-brand .vs-pagination-button.vs-active{background:var(--vs-primary);transform:scale(1.05)}.vs-datatable.vs-theme-brand .vs-pagination-button:hover:not(:disabled){border-color:var(--vs-primary);transform:translateY(-1px)}
1
+ .vs-pagination[data-v-a6d89ca2]{display:flex;align-items:center;justify-content:center;gap:var(--vs-spacing-sm);flex-wrap:wrap}.vs-pagination-button[data-v-a6d89ca2]{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 var(--vs-spacing-sm);border:1px solid var(--vs-table-border);background-color:var(--vs-table-bg);color:var(--vs-dark);text-decoration:none;border-radius:var(--vs-border-radius);font-size:var(--vs-font-size-sm);transition:var(--vs-transition-fast);cursor:pointer}.vs-pagination-button[data-v-a6d89ca2]:hover:not(:disabled){background-color:var(--vs-table-hover-bg);border-color:var(--vs-primary)}.vs-pagination-button.vs-active[data-v-a6d89ca2]{background-color:var(--vs-primary);border-color:var(--vs-primary);color:#fff}.vs-pagination-button[data-v-a6d89ca2]:disabled{opacity:.5;cursor:not-allowed}.vs-pagination-nav[data-v-a6d89ca2]{font-weight:var(--vs-font-weight-bold)}.vs-pagination-ellipsis[data-v-a6d89ca2]{color:var(--vs-secondary);padding:0 var(--vs-spacing-sm);font-size:var(--vs-font-size-sm)}@media (max-width: 768px){.vs-pagination-button[data-v-a6d89ca2]{min-width:28px;height:28px;font-size:12px}}.vs-datatable[data-v-fa66e546]{--vs-table-wrapper-overflow: auto}.vs-table-wrapper[data-v-fa66e546]{overflow:var(--vs-table-wrapper-overflow)}.vs-header-content[data-v-fa66e546]{display:flex;align-items:center;gap:var(--vs-spacing-sm)}.vs-header-label[data-v-fa66e546]{flex:1}.vs-checkbox-column[data-v-fa66e546]{width:50px;text-align:center}.vs-row-clickable[data-v-fa66e546]{cursor:pointer}.vs-row-selected[data-v-fa66e546]{background-color:rgba(var(--vs-primary),.1)}.vs-table-footer[data-v-fa66e546]{display:flex;align-items:center;justify-content:space-between;padding:var(--vs-spacing-sm) 0}.vs-table-info[data-v-fa66e546]{color:var(--vs-secondary);font-size:var(--vs-font-size-md)}.vs-search-container[data-v-fa66e546]{margin-bottom:var(--vs-spacing-md)}:root{--vs-primary: #007bff;--vs-secondary: #6c757d;--vs-success: #28a745;--vs-danger: #dc3545;--vs-warning: #ffc107;--vs-info: #17a2b8;--vs-light: #f8f9fa;--vs-dark: #343a40;--vs-table-bg: #ffffff;--vs-table-border: #dee2e6;--vs-table-header-bg: #f8f9fa;--vs-table-header-color: #495057;--vs-table-hover-bg: #f5f5f5;--vs-table-stripe-bg: #fafafa;--vs-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--vs-font-size: 14px;--vs-font-size-sm: 12px;--vs-font-size-lg: 16px;--vs-font-weight-normal: 400;--vs-font-weight-bold: 600;--vs-spacing-xs: 4px;--vs-spacing-sm: 8px;--vs-spacing-md: 16px;--vs-spacing-lg: 24px;--vs-spacing-xl: 32px;--vs-border-radius: 4px;--vs-border-radius-sm: 2px;--vs-border-radius-lg: 8px;--vs-shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--vs-shadow: 0 2px 4px rgba(0, 0, 0, .1);--vs-shadow-lg: 0 4px 8px rgba(0, 0, 0, .15);--vs-transition: all .2s ease-in-out;--vs-transition-fast: all .15s ease-in-out;--vs-z-dropdown: 1000;--vs-z-sticky: 1020;--vs-z-fixed: 1030;--vs-z-modal: 1040;--vs-z-popover: 1050;--vs-z-tooltip: 1060}.vs-datatable{font-family:var(--vs-font-family);font-size:var(--vs-font-size);line-height:1.5;color:var(--vs-dark);background-color:var(--vs-table-bg);box-sizing:border-box}.vs-datatable *,.vs-datatable *:before,.vs-datatable *:after{box-sizing:border-box}.vs-table-container{position:relative;background-color:var(--vs-table-bg);border:1px solid var(--vs-table-border);border-radius:var(--vs-border-radius);overflow:hidden;box-shadow:var(--vs-shadow-sm)}.vs-table{width:100%;margin:0;border-collapse:separate;border-spacing:0;background-color:var(--vs-table-bg)}.vs-table thead{background-color:var(--vs-table-header-bg)}.vs-table thead th{padding:var(--vs-spacing-sm);font-weight:var(--vs-font-weight-bold);color:var(--vs-table-header-color);text-align:left;vertical-align:middle;border-bottom:2px solid var(--vs-table-border);position:relative;-webkit-user-select:none;user-select:none}.vs-table thead th:first-child{border-top-left-radius:var(--vs-border-radius)}.vs-table thead th:last-child{border-top-right-radius:var(--vs-border-radius)}.vs-table tbody tr{transition:var(--vs-transition-fast);border-bottom:1px solid var(--vs-table-border)}.vs-table tbody tr:hover{background-color:var(--vs-table-hover-bg)}.vs-table tbody tr:nth-child(2n){background-color:var(--vs-table-stripe-bg)}.vs-table tbody tr:last-child{border-bottom:none}.vs-table tbody tr td{padding:var(--vs-spacing-md);vertical-align:middle;border-right:1px solid var(--vs-table-border)}.vs-table tbody tr td:last-child{border-right:none}.vs-sortable{cursor:pointer;position:relative}.vs-sortable:hover{background-color:rgba(var(--vs-primary),.1)}.vs-sortable .vs-sort-icons{display:inline-flex;flex-direction:column;margin-left:var(--vs-spacing-sm);vertical-align:middle}.vs-sortable .vs-sort-icons .vs-sort-icon{font-size:10px;line-height:1;color:var(--vs-secondary);transition:var(--vs-transition-fast);margin:-8px 0}.vs-sortable .vs-sort-icons .vs-sort-icon.vs-sort-asc,.vs-sortable .vs-sort-icons .vs-sort-icon.vs-sort-desc{color:var(--vs-primary)}.vs-sortable .vs-sort-icons .vs-sort-icon svg{fill:#e3e3e3}.vs-sortable .vs-sort-icons .vs-sort-icon.vs-active svg{fill:currentColor}.vs-sortable .vs-sort-priority{display:inline-block;background-color:var(--vs-primary);color:#fff;font-size:10px;padding:2px 6px;border-radius:var(--vs-border-radius-sm);margin-left:var(--vs-spacing-sm);font-weight:var(--vs-font-weight-bold)}.vs-loading{display:flex;align-items:center;justify-content:center;padding:var(--vs-spacing-xl);color:var(--vs-secondary)}.vs-loading .vs-spinner{width:20px;height:20px;border:2px solid var(--vs-table-border);border-top:2px solid var(--vs-primary);border-radius:50%;animation:vs-spin 1s linear infinite;margin-right:var(--vs-spacing-sm)}@keyframes vs-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.vs-no-data{text-align:center;padding:var(--vs-spacing-xl);color:var(--vs-secondary)}.vs-no-data .vs-no-data-icon{width:60px;height:60px;margin:0 auto var(--vs-spacing-md);opacity:.5}.vs-no-data .vs-no-data-message{font-size:var(--vs-font-size-lg);font-weight:var(--vs-font-weight-bold);margin-bottom:var(--vs-spacing-sm)}.vs-no-data .vs-no-data-description{font-size:var(--vs-font-size-sm);color:var(--vs-secondary)}.vs-search{position:relative;margin-bottom:var(--vs-spacing-md)}.vs-search .vs-search-input{width:100%;padding:var(--vs-spacing-sm) var(--vs-spacing-md);padding-left:40px;border:1px solid var(--vs-table-border);border-radius:var(--vs-border-radius);font-size:var(--vs-font-size);transition:var(--vs-transition-fast)}.vs-search .vs-search-input:focus{outline:none;border-color:var(--vs-primary);box-shadow:0 0 0 2px rgba(var(--vs-primary),.25)}.vs-search .vs-search-icon{position:absolute;left:var(--vs-spacing-md);top:50%;transform:translateY(-50%);color:var(--vs-secondary);pointer-events:none}.vs-pagination{display:flex;align-items:center;justify-content:center;gap:var(--vs-spacing-sm);margin-top:var(--vs-spacing-md)}.vs-pagination .vs-pagination-button{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 var(--vs-spacing-sm);border:1px solid var(--vs-table-border);background-color:var(--vs-table-bg);color:var(--vs-dark);text-decoration:none;border-radius:var(--vs-border-radius);font-size:var(--vs-font-size-sm);transition:var(--vs-transition-fast);cursor:pointer}.vs-pagination .vs-pagination-button:hover:not(:disabled){background-color:var(--vs-table-hover-bg);border-color:var(--vs-primary)}.vs-pagination .vs-pagination-button.vs-active{background-color:var(--vs-primary);border-color:var(--vs-primary);color:#fff}.vs-pagination .vs-pagination-button:disabled{opacity:.5;cursor:not-allowed}.vs-pagination .vs-pagination-ellipsis{color:var(--vs-secondary);padding:0 var(--vs-spacing-sm)}.vs-checkbox{display:inline-flex;align-items:center;cursor:pointer}.vs-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;cursor:pointer;accent-color:var(--vs-primary)}.vs-checkbox label{margin:0;cursor:pointer;font-size:var(--vs-font-size-sm)}@media (max-width: 768px){.vs-table-container{overflow-x:auto}.vs-table{min-width:600px}.vs-pagination{flex-wrap:wrap;gap:var(--vs-spacing-xs)}.vs-pagination .vs-pagination-button{min-width:28px;height:28px;font-size:12px}}.vs-text-center{text-align:center}.vs-text-left{text-align:left}.vs-text-right{text-align:right}.vs-text-muted{color:var(--vs-secondary)}.vs-text-primary{color:var(--vs-primary)}.vs-text-success{color:var(--vs-success)}.vs-text-danger{color:var(--vs-danger)}.vs-text-warning{color:var(--vs-warning)}.vs-bg-primary{background-color:var(--vs-primary)}.vs-bg-success{background-color:var(--vs-success)}.vs-bg-danger{background-color:var(--vs-danger)}.vs-bg-warning{background-color:var(--vs-warning)}.vs-bg-light{background-color:var(--vs-light)}.vs-border{border:1px solid var(--vs-table-border)}.vs-border-top{border-top:1px solid var(--vs-table-border)}.vs-border-bottom{border-bottom:1px solid var(--vs-table-border)}.vs-border-left{border-left:1px solid var(--vs-table-border)}.vs-border-right{border-right:1px solid var(--vs-table-border)}.vs-rounded{border-radius:var(--vs-border-radius)}.vs-rounded-sm{border-radius:var(--vs-border-radius-sm)}.vs-rounded-lg{border-radius:var(--vs-border-radius-lg)}.vs-shadow{box-shadow:var(--vs-shadow)}.vs-shadow-sm{box-shadow:var(--vs-shadow-sm)}.vs-shadow-lg{box-shadow:var(--vs-shadow-lg)}.vs-fade-in{animation:vs-fade-in .3s ease-in-out}@keyframes vs-fade-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.vs-slide-in{animation:vs-slide-in .3s ease-in-out}@keyframes vs-slide-in{0%{transform:translate(-20px);opacity:0}to{transform:translate(0);opacity:1}}.vs-datatable.vs-theme-dark{--vs-primary: #0d6efd;--vs-secondary: #6c757d;--vs-success: #198754;--vs-danger: #dc3545;--vs-warning: #ffc107;--vs-info: #0dcaf0;--vs-light: #f8f9fa;--vs-dark: #212529;--vs-table-bg: #1a1a1a;--vs-table-border: #333333;--vs-table-header-bg: #2d2d2d;--vs-table-header-color: #ffffff;--vs-table-hover-bg: #333333;--vs-table-stripe-bg: #222222;color:#fff;background-color:var(--vs-table-bg)}.vs-datatable.vs-theme-minimal{--vs-primary: #000000;--vs-secondary: #666666;--vs-success: #000000;--vs-danger: #000000;--vs-warning: #000000;--vs-info: #000000;--vs-light: #f9f9f9;--vs-dark: #000000;--vs-table-bg: #ffffff;--vs-table-border: #e0e0e0;--vs-table-header-bg: #ffffff;--vs-table-header-color: #000000;--vs-table-hover-bg: #f5f5f5;--vs-table-stripe-bg: #ffffff}.vs-datatable.vs-theme-minimal .vs-table{border:none;box-shadow:none}.vs-datatable.vs-theme-minimal .vs-table thead th{border-bottom:2px solid var(--vs-table-border);font-weight:500}.vs-datatable.vs-theme-minimal .vs-table tbody tr{border-bottom:1px solid var(--vs-table-border)}.vs-datatable.vs-theme-colorful{--vs-primary: #e91e63;--vs-secondary: #9c27b0;--vs-success: #4caf50;--vs-danger: #f44336;--vs-warning: #ff9800;--vs-info: #2196f3;--vs-light: #f3e5f5;--vs-dark: #2e2e2e;--vs-table-bg: #ffffff;--vs-table-border: #e1bee7;--vs-table-header-bg: linear-gradient(135deg, #e91e63, #9c27b0);--vs-table-header-color: #ffffff;--vs-table-hover-bg: #f3e5f5;--vs-table-stripe-bg: #fafafa}.vs-datatable.vs-theme-colorful .vs-table thead th{background:var(--vs-table-header-bg);color:var(--vs-table-header-color);font-weight:600}.vs-datatable.vs-theme-colorful .vs-pagination-button.vs-active{background:linear-gradient(135deg,var(--vs-primary),var(--vs-secondary))}.vs-datatable.vs-theme-corporate{--vs-primary: #1e3a8a;--vs-secondary: #64748b;--vs-success: #059669;--vs-danger: #dc2626;--vs-warning: #d97706;--vs-info: #0891b2;--vs-light: #f8fafc;--vs-dark: #1e293b;--vs-table-bg: #ffffff;--vs-table-border: #e2e8f0;--vs-table-header-bg: #f1f5f9;--vs-table-header-color: #334155;--vs-table-hover-bg: #f8fafc;--vs-table-stripe-bg: #ffffff;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.vs-datatable.vs-theme-corporate .vs-table{border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.vs-datatable.vs-theme-corporate .vs-table thead th{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:16px 20px}.vs-datatable.vs-theme-corporate .vs-table tbody td{padding:16px 20px;font-size:14px}.vs-datatable.vs-theme-compact{--vs-spacing-xs: 2px;--vs-spacing-sm: 4px;--vs-spacing-md: 8px;--vs-spacing-lg: 12px;--vs-spacing-xl: 16px;--vs-font-size: 12px;--vs-font-size-sm: 10px;--vs-font-size-lg: 14px}.vs-datatable.vs-theme-compact .vs-table thead th{padding:var(--vs-spacing-sm) var(--vs-spacing-md);font-size:var(--vs-font-size-sm)}.vs-datatable.vs-theme-compact .vs-table tbody td{padding:var(--vs-spacing-sm) var(--vs-spacing-md);font-size:var(--vs-font-size)}.vs-datatable.vs-theme-compact .vs-pagination-button{min-width:24px;height:24px;font-size:var(--vs-font-size-sm)}.vs-datatable.vs-theme-rounded{--vs-border-radius: 12px;--vs-border-radius-sm: 6px;--vs-border-radius-lg: 16px}.vs-datatable.vs-theme-rounded .vs-table-container{border-radius:var(--vs-border-radius);overflow:hidden}.vs-datatable.vs-theme-rounded .vs-table thead th:first-child{border-top-left-radius:var(--vs-border-radius)}.vs-datatable.vs-theme-rounded .vs-table thead th:last-child{border-top-right-radius:var(--vs-border-radius)}.vs-datatable.vs-theme-rounded .vs-pagination-button{border-radius:var(--vs-border-radius-sm)}.vs-datatable.vs-theme-brand{--vs-primary: #ff6b35;--vs-secondary: #004e89;--vs-success: #00a896;--vs-danger: #e63946;--vs-warning: #f77f00;--vs-info: #06a77d}.vs-datatable.vs-theme-brand .vs-table-container{border:2px solid var(--vs-primary);border-radius:16px;box-shadow:0 8px 32px #ff6b3533}.vs-datatable.vs-theme-brand .vs-table thead th{background:linear-gradient(135deg,var(--vs-primary),var(--vs-secondary));color:#fff;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.1)}.vs-datatable.vs-theme-brand .vs-pagination-button.vs-active{background:var(--vs-primary);transform:scale(1.05)}.vs-datatable.vs-theme-brand .vs-pagination-button:hover:not(:disabled){border-color:var(--vs-primary);transform:translateY(-1px)}
@@ -1,11 +1,11 @@
1
- import { defineComponent as K, computed as v, createElementBlock as n, openBlock as r, createElementVNode as o, createCommentVNode as k, Fragment as M, renderList as D, normalizeClass as w, toDisplayString as b, useAttrs as W, ref as I, watch as X, createVNode as Z, renderSlot as _, normalizeStyle as Y, withModifiers as ee, withDirectives as te, vModelCheckbox as se, createTextVNode as ae } from "vue";
2
- import './index.css';const le = ["id"], oe = ["disabled"], ne = {
1
+ import { defineComponent as N, computed as v, createElementBlock as i, openBlock as d, createElementVNode as l, createCommentVNode as C, Fragment as B, renderList as D, normalizeClass as k, toDisplayString as m, useAttrs as ee, ref as I, watch as te, onMounted as se, onUnmounted as ae, onBeforeMount as oe, createVNode as j, renderSlot as M, normalizeStyle as le, withModifiers as Q, createTextVNode as ne } from "vue";
2
+ import './index.css';const re = ["id"], ie = ["disabled"], de = {
3
3
  key: 1,
4
4
  class: "vs-pagination-ellipsis"
5
- }, re = ["id", "onClick"], ie = {
5
+ }, ce = ["id", "onClick"], ue = {
6
6
  key: 2,
7
7
  class: "vs-pagination-ellipsis"
8
- }, de = ["disabled"], ce = /* @__PURE__ */ K({
8
+ }, ve = ["disabled"], he = /* @__PURE__ */ N({
9
9
  __name: "VsPagination",
10
10
  props: {
11
11
  modelValue: {},
@@ -16,136 +16,134 @@ import './index.css';const le = ["id"], oe = ["disabled"], ne = {
16
16
  paginationClass: {}
17
17
  },
18
18
  emits: ["update:modelValue", "page-changed"],
19
- setup(l, { emit: C }) {
20
- const s = l, c = C, g = s.maxVisible ?? 3, d = v({
19
+ setup(o, { emit: P }) {
20
+ const s = o, n = P, g = s.maxVisible ?? 3, u = v({
21
21
  get: () => s.modelValue,
22
22
  set: (p) => {
23
- c("update:modelValue", p), c("page-changed", p);
23
+ n("update:modelValue", p), n("page-changed", p);
24
24
  }
25
- }), x = v(() => d.value <= Math.floor(g / 2) ? 1 : d.value >= f.value - Math.floor(g / 2) ? Math.max(f.value - g + 1, 1) : d.value - Math.floor(g / 2)), y = v(() => Math.min(x.value + g - 1, f.value)), f = v(() => Math.ceil(s.totalRecords / s.rowsPerPage)), $ = v(() => {
25
+ }), x = v(() => u.value <= Math.floor(g / 2) ? 1 : u.value >= f.value - Math.floor(g / 2) ? Math.max(f.value - g + 1, 1) : u.value - Math.floor(g / 2)), h = v(() => Math.min(x.value + g - 1, f.value)), f = v(() => Math.ceil(s.totalRecords / s.rowsPerPage)), S = v(() => {
26
26
  const p = [];
27
- for (let h = x.value; h <= y.value; h++)
28
- p.push(h);
27
+ for (let b = x.value; b <= h.value; b++)
28
+ p.push(b);
29
29
  return p;
30
- }), V = (p) => {
31
- p >= 1 && p <= f.value && (d.value = p);
32
- }, O = () => {
33
- d.value > 1 && d.value--;
30
+ }), O = (p) => {
31
+ p >= 1 && p <= f.value && (u.value = p);
32
+ }, $ = () => {
33
+ u.value > 1 && u.value--;
34
34
  }, R = () => {
35
- d.value < f.value && d.value++;
35
+ u.value < f.value && u.value++;
36
36
  };
37
- return (p, h) => (r(), n("div", {
37
+ return (p, b) => (d(), i("div", {
38
38
  class: "vs-pagination",
39
- id: l.tablename + "-pagination"
39
+ id: o.tablename + "-pagination"
40
40
  }, [
41
- o("button", {
42
- onClick: O,
41
+ l("button", {
42
+ onClick: $,
43
43
  type: "button",
44
44
  class: "vs-pagination-button vs-pagination-nav",
45
- disabled: d.value === 1
46
- }, " ‹‹ ", 8, oe),
47
- x.value > 1 ? (r(), n("button", {
45
+ disabled: u.value === 1
46
+ }, " ‹‹ ", 8, ie),
47
+ x.value > 1 ? (d(), i("button", {
48
48
  key: 0,
49
49
  type: "button",
50
50
  class: "vs-pagination-button",
51
- onClick: h[0] || (h[0] = (m) => V(1))
52
- }, " 1 ")) : k("", !0),
53
- x.value > 2 ? (r(), n("span", ne, "...")) : k("", !0),
54
- (r(!0), n(M, null, D($.value, (m) => (r(), n("button", {
55
- key: m,
51
+ onClick: b[0] || (b[0] = (w) => O(1))
52
+ }, " 1 ")) : C("", !0),
53
+ x.value > 2 ? (d(), i("span", de, "...")) : C("", !0),
54
+ (d(!0), i(B, null, D(S.value, (w) => (d(), i("button", {
55
+ key: w,
56
56
  type: "button",
57
- class: w([
57
+ class: k([
58
58
  "vs-pagination-button",
59
- { "vs-active": d.value === m }
59
+ { "vs-active": u.value === w }
60
60
  ]),
61
- id: l.tablename + "-page-" + m,
62
- onClick: (N) => V(m)
63
- }, b(m), 11, re))), 128)),
64
- y.value < f.value - 1 ? (r(), n("span", ie, "...")) : k("", !0),
65
- y.value < f.value ? (r(), n("button", {
61
+ id: o.tablename + "-page-" + w,
62
+ onClick: (A) => O(w)
63
+ }, m(w), 11, ce))), 128)),
64
+ h.value < f.value - 1 ? (d(), i("span", ue, "...")) : C("", !0),
65
+ h.value < f.value ? (d(), i("button", {
66
66
  key: 3,
67
67
  type: "button",
68
68
  class: "vs-pagination-button",
69
- onClick: h[1] || (h[1] = (m) => V(f.value))
70
- }, b(f.value), 1)) : k("", !0),
71
- o("button", {
69
+ onClick: b[1] || (b[1] = (w) => O(f.value))
70
+ }, m(f.value), 1)) : C("", !0),
71
+ l("button", {
72
72
  onClick: R,
73
73
  type: "button",
74
74
  class: "vs-pagination-button vs-pagination-nav",
75
- disabled: d.value === f.value
76
- }, " ›› ", 8, de)
77
- ], 8, le));
75
+ disabled: u.value === f.value
76
+ }, " ›› ", 8, ve)
77
+ ], 8, re));
78
78
  }
79
- }), j = (l, C) => {
80
- const s = l.__vccOpts || l;
81
- for (const [c, g] of C)
82
- s[c] = g;
79
+ }), q = (o, P) => {
80
+ const s = o.__vccOpts || o;
81
+ for (const [n, g] of P)
82
+ s[n] = g;
83
83
  return s;
84
- }, ue = /* @__PURE__ */ j(ce, [["__scopeId", "data-v-a6d89ca2"]]), ve = { class: "vs-search" }, he = ["placeholder", "value"], pe = /* @__PURE__ */ K({
84
+ }, pe = /* @__PURE__ */ q(he, [["__scopeId", "data-v-a6d89ca2"]]), ge = { class: "vs-search" }, fe = ["placeholder", "value"], be = /* @__PURE__ */ N({
85
85
  __name: "VsSearch",
86
86
  props: {
87
87
  modelValue: {},
88
88
  placeholder: {}
89
89
  },
90
90
  emits: ["update:modelValue", "input-typed"],
91
- setup(l, { emit: C }) {
92
- const s = C, c = (g) => {
93
- const d = g.target;
94
- s("update:modelValue", d.value), s("input-typed", d.value);
91
+ setup(o, { emit: P }) {
92
+ const s = P, n = (g) => {
93
+ const u = g.target;
94
+ s("update:modelValue", u.value), s("input-typed", u.value);
95
95
  };
96
- return (g, d) => (r(), n("div", ve, [
97
- d[0] || (d[0] = o("div", { class: "vs-search-icon" }, [
98
- o("svg", {
96
+ return (g, u) => (d(), i("div", ge, [
97
+ u[0] || (u[0] = l("div", { class: "vs-search-icon" }, [
98
+ l("svg", {
99
99
  viewBox: "0 0 24 24",
100
100
  fill: "currentColor"
101
101
  }, [
102
- o("path", { d: "M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z" })
102
+ l("path", { d: "M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z" })
103
103
  ])
104
104
  ], -1)),
105
- o("input", {
105
+ l("input", {
106
106
  type: "text",
107
107
  class: "vs-search-input",
108
- placeholder: l.placeholder,
109
- value: l.modelValue,
110
- onInput: c
111
- }, null, 40, he)
108
+ placeholder: o.placeholder,
109
+ value: o.modelValue,
110
+ onInput: n
111
+ }, null, 40, fe)
112
112
  ]));
113
113
  }
114
- }), ge = { class: "vs-datatable" }, fe = {
114
+ }), me = { class: "vs-datatable" }, we = {
115
115
  key: 0,
116
116
  class: "vs-search-container"
117
- }, be = {
117
+ }, ke = {
118
118
  ref: "tableResponsiveRef",
119
119
  class: "vs-table-wrapper"
120
- }, me = {
120
+ }, ye = {
121
121
  key: 0,
122
122
  class: "vs-checkbox-column",
123
123
  style: { width: "5%" }
124
- }, we = { class: "vs-checkbox" }, ye = ["id", "checked"], ke = ["for"], Ce = ["onClick"], xe = { class: "vs-header-content" }, Ve = { class: "vs-header-label" }, Pe = {
124
+ }, Ce = { class: "vs-checkbox" }, Pe = ["id", "checked"], Ve = ["for"], xe = ["onClick"], Oe = { class: "vs-header-content" }, Se = { class: "vs-header-label" }, $e = {
125
125
  key: 0,
126
126
  class: "vs-sort-icons"
127
- }, Se = {
127
+ }, Re = {
128
128
  key: 1,
129
129
  class: "vs-sort-priority"
130
- }, $e = { key: 0 }, Oe = ["colspan"], Re = { key: 1 }, Te = ["colspan"], Ie = { class: "vs-no-data-message" }, _e = { class: "vs-no-data-description" }, Me = ["onClick"], De = { class: "vs-checkbox" }, Be = ["id", "value"], Le = ["for"], ze = { class: "vs-table-footer" }, He = {
130
+ }, _e = { key: 0 }, Te = ["colspan"], Ie = { key: 1 }, Me = ["colspan"], Be = { class: "vs-no-data-message" }, De = { class: "vs-no-data-description" }, Le = ["onClick"], ze = { class: "vs-checkbox" }, He = ["id", "value", "checked", "onChange"], Ke = ["for"], Ne = ["onClick"], Ae = { class: "vs-table-footer" }, Ee = {
131
131
  key: 0,
132
132
  class: "vs-table-info"
133
- }, Ke = {
133
+ }, Ue = {
134
134
  key: 1,
135
135
  class: "vs-table-info"
136
- }, Ne = /* @__PURE__ */ K({
136
+ }, Fe = /* @__PURE__ */ N({
137
137
  __name: "VsDataTable",
138
138
  props: {
139
- rows: { default: () => [] },
139
+ rows: {},
140
+ columns: {},
140
141
  itemSelected: { default: null },
141
142
  tablename: { default: "default-table" },
142
- sort: {},
143
143
  serverItemsLength: {},
144
- serverOptions: { default: null },
145
144
  showHeader: { type: Boolean, default: !0 },
146
145
  headerText: { default: "" },
147
146
  loading: { type: Boolean, default: !1 },
148
- columns: {},
149
147
  showSearch: { type: Boolean, default: !0 },
150
148
  tableClass: {},
151
149
  rowClass: {},
@@ -161,241 +159,262 @@ import './index.css';const le = ["id"], oe = ["disabled"], ne = {
161
159
  noDataDescription: { default: "Try adjusting your search criteria" },
162
160
  entriesText: { default: "entries" },
163
161
  maxVisiblePages: { default: 5 },
164
- rowKey: { type: [String, Function], default: "id" }
162
+ rowKey: { type: [String, Function], default: "id" },
163
+ sort: {},
164
+ serverOptions: {}
165
165
  },
166
- emits: ["update:itemSelected", "update:serverItemsLength", "update:serverOptions", "update:sort", "input-typed", "page-updated", "sort-changed", "row-click"],
167
- setup(l, { emit: C }) {
168
- const s = l, c = C, g = W(), d = v(() => !!g.onRowClick), x = v(() => s.columns.length + (z.value ? 1 : 0)), y = (t, a) => typeof s.rowKey == "function" ? s.rowKey(t, a) : t[s.rowKey] || a, f = (t) => P.value.some((a) => y(a, -1) === y(t, -1));
169
- function $(t, a) {
170
- return a.split(".").reduce((e, i) => e?.[i], t) ?? "";
166
+ emits: ["table:before-mount", "table:mounted", "table:unmounted", "data-loaded", "data-error", "row-selected", "row-deselected", "row-toggled", "rows-toggled", "all-rows-selected", "cell-click", "update:itemSelected", "update:serverItemsLength", "input-typed", "page-updated", "row-click", "sort-changed", "update:sort", "update:serverOptions"],
167
+ setup(o, { emit: P }) {
168
+ const s = o, n = P, g = ee(), u = v(() => s.columns.length + (H.value ? 1 : 0)), x = v(() => !!g.onRowClick), h = (t, a) => typeof s.rowKey == "function" ? s.rowKey(t, a ?? -1) : t[s.rowKey] || a, f = (t) => y.value.some((a) => h(a, -1) === h(t, -1));
169
+ function S(t, a) {
170
+ return a.split(".").reduce((e, r) => e?.[r], t) ?? "";
171
171
  }
172
- const V = (t) => h.value.some((a) => a.field === t), O = (t) => {
173
- const a = h.value.find((e) => e.field === t);
172
+ const O = (t) => b.value.some((a) => a.field === t), $ = (t) => {
173
+ const a = b.value.find((e) => e.field === t);
174
174
  return a ? a.priority ?? null : null;
175
- }, R = (t) => h.value.find((a) => a.field === t)?.order ?? null, p = I(s.sort ?? []);
176
- X(
175
+ }, R = (t) => b.value.find((a) => a.field === t)?.order ?? null, p = I(s.sort ?? []);
176
+ te(
177
177
  () => s.sort,
178
178
  (t) => {
179
179
  t && (p.value = [...t]);
180
180
  },
181
181
  { deep: !0 }
182
182
  );
183
- const h = v(() => s.serverOptions?.sort ?? p.value ?? []), m = v(() => {
184
- if (!h.value.length) return s.rows;
185
- const t = (a, e) => e.split(".").reduce((i, u) => i?.[u], a) ?? "";
186
- return [...s.rows].sort((a, e) => {
187
- for (const { field: i, order: u } of h.value) {
188
- const S = t(a, i), H = t(e, i);
189
- if (S !== H)
190
- return u === "asc" ? S > H ? 1 : -1 : S < H ? 1 : -1;
183
+ const b = v(() => s.serverOptions?.sort ?? p.value ?? []), w = v(() => {
184
+ if (s.serverOptions)
185
+ return s.rows;
186
+ const t = s.sort ?? [];
187
+ if (!t.length) return s.rows;
188
+ const a = (e, r) => r.split(".").reduce((c, V) => c?.[V], e) ?? "";
189
+ return [...s.rows].sort((e, r) => {
190
+ for (const { field: c, order: V } of t) {
191
+ const T = a(e, c), K = a(r, c);
192
+ if (T !== K)
193
+ return V === "asc" ? T > K ? 1 : -1 : T < K ? 1 : -1;
191
194
  }
192
195
  return 0;
193
196
  });
194
- }), N = (t, a) => {
195
- let e = [...h.value];
196
- const i = e.findIndex((u) => u.field === t);
197
- a.shiftKey ? i === -1 ? e.push({ field: t, order: "asc" }) : e[i]?.order === "asc" ? e[i].order = "desc" : e.splice(i, 1) : i === -1 ? e = [{ field: t, order: "asc" }] : e[i]?.order === "asc" ? e = [{ field: t, order: "desc" }] : e = [], e = e.map((u, S) => ({ ...u, priority: S + 1 })), s.serverOptions ? c("update:serverOptions", { ...s.serverOptions, sort: e }) : (p.value = e, c("update:sort", e), c("sort-changed", { sort: e }));
198
- }, A = I(""), Q = (t) => c("input-typed", t), E = I(10), q = v({
199
- get: () => s.serverOptions?.rowsPerPage ?? E.value,
197
+ }), A = (t, a) => {
198
+ let e = [];
199
+ s.serverOptions ? e = [...s.serverOptions.sort ?? []] : s.sort && (e = [...s.sort]);
200
+ const r = e.findIndex((c) => c.field === t);
201
+ a.shiftKey ? r === -1 ? e.push({ field: t, order: "asc" }) : e[r]?.order === "asc" ? e[r].order = "desc" : e.splice(r, 1) : r === -1 ? e = [{ field: t, order: "asc" }] : e[r]?.order === "asc" ? e = [{ field: t, order: "desc" }] : e = [], e = e.map((c, V) => ({ ...c, priority: V + 1 })), s.serverOptions ? n("update:serverOptions", { ...s.serverOptions, sort: e }) : n("update:sort", e), n("sort-changed", { sort: e });
202
+ }, E = I(""), G = (t) => n("input-typed", t), U = I(10), J = v({
203
+ get: () => s.serverOptions?.rowsPerPage ?? U.value,
200
204
  set: (t) => {
201
- s.serverOptions ? c("update:serverOptions", { ...s.serverOptions, rowsPerPage: t }) : E.value = t;
205
+ s.serverOptions ? n("update:serverOptions", { ...s.serverOptions, rowsPerPage: t }) : U.value = t;
202
206
  }
203
- }), U = I(1), B = v({
207
+ }), F = I(1), L = v({
204
208
  get: () => s.serverItemsLength !== void 0 ? s.serverItemsLength : s.rows.length,
205
209
  set: (t) => {
206
- s.serverItemsLength !== void 0 && c("update:serverItemsLength", t);
210
+ s.serverItemsLength !== void 0 && n("update:serverItemsLength", t);
207
211
  }
208
- }), T = v({
209
- get: () => s.serverOptions?.page ?? U.value,
212
+ }), _ = v({
213
+ get: () => s.serverOptions?.page ?? F.value,
210
214
  set: (t) => {
211
- s.serverOptions ? c("update:serverOptions", { ...s.serverOptions, page: t }) : U.value = t;
215
+ s.serverOptions ? n("update:serverOptions", { ...s.serverOptions, page: t }) : F.value = t;
212
216
  }
213
- }), G = (t) => {
214
- s.serverOptions && c("update:serverOptions", { ...s.serverOptions, page: t }), c("page-updated", t);
215
- }, L = v(() => {
216
- const t = s.serverOptions?.rowsPerPage ?? 10, a = (T.value - 1) * t + 1, e = Math.min(T.value * t, B.value);
217
+ }), W = (t) => {
218
+ s.serverOptions && n("update:serverOptions", { ...s.serverOptions, page: t }), n("page-updated", t);
219
+ }, z = v(() => {
220
+ const t = s.serverOptions?.rowsPerPage ?? 10, a = (_.value - 1) * t + 1, e = Math.min(_.value * t, L.value);
217
221
  return { start: a, end: e };
218
- }), P = v({
222
+ }), y = v({
219
223
  get: () => s.itemSelected || [],
220
- set: (t) => c("update:itemSelected", t)
221
- }), z = v(() => s.itemSelected !== null), F = v(
222
- () => s.rows.length > 0 && P.value.length === s.rows.length
223
- ), J = () => {
224
- P.value = F.value ? [] : [...s.rows];
224
+ set: (t) => n("update:itemSelected", t)
225
+ }), H = v(() => s.itemSelected !== null), Z = v(
226
+ () => s.rows.length > 0 && y.value.length === s.rows.length
227
+ ), X = (t, a, e) => {
228
+ e.target.checked ? (y.value.some((c) => h(c) === h(t)) || y.value.push(t), n("row-selected", t, a)) : (y.value = y.value.filter(
229
+ (c) => h(c) !== h(t)
230
+ ), n("row-deselected", t, a));
231
+ }, Y = () => {
232
+ y.value = Z.value ? [] : [...s.rows], n("all-rows-selected", y.value);
225
233
  };
226
- return (t, a) => (r(), n("div", ge, [
227
- l.showSearch ? (r(), n("div", fe, [
228
- Z(pe, {
229
- modelValue: A.value,
230
- "onUpdate:modelValue": a[0] || (a[0] = (e) => A.value = e),
231
- onInputTyped: Q,
232
- placeholder: l.searchPlaceholder,
233
- class: w(l.searchClass)
234
+ return se(() => {
235
+ n("table:mounted");
236
+ try {
237
+ n("data-loaded", s.rows);
238
+ } catch (t) {
239
+ n("data-error", t);
240
+ }
241
+ }), ae(() => {
242
+ n("table:unmounted");
243
+ }), oe(() => {
244
+ n("table:before-mount");
245
+ }), (t, a) => (d(), i("div", me, [
246
+ o.showSearch ? (d(), i("div", we, [
247
+ j(be, {
248
+ modelValue: E.value,
249
+ "onUpdate:modelValue": a[0] || (a[0] = (e) => E.value = e),
250
+ onInputTyped: G,
251
+ placeholder: o.searchPlaceholder,
252
+ class: k(o.searchClass)
234
253
  }, null, 8, ["modelValue", "placeholder", "class"]),
235
- _(t.$slots, "filterArea", {}, void 0, !0)
236
- ])) : k("", !0),
237
- o("div", {
238
- class: w(["vs-table-container", l.containerClass])
254
+ M(t.$slots, "filterArea", {}, void 0, !0)
255
+ ])) : C("", !0),
256
+ l("div", {
257
+ class: k(["vs-table-container", o.containerClass])
239
258
  }, [
240
- o("div", be, [
241
- o("table", {
242
- class: w(["vs-table", l.tableClass])
259
+ l("div", ke, [
260
+ l("table", {
261
+ class: k(["vs-table", o.tableClass])
243
262
  }, [
244
- o("thead", null, [
245
- o("tr", null, [
246
- z.value ? (r(), n("th", me, [
247
- o("div", we, [
248
- o("input", {
263
+ l("thead", null, [
264
+ l("tr", null, [
265
+ H.value ? (d(), i("th", ye, [
266
+ l("div", Ce, [
267
+ l("input", {
249
268
  type: "checkbox",
250
- id: l.tablename + "-main-checkbox",
251
- checked: F.value,
252
- onChange: J
253
- }, null, 40, ye),
254
- o("label", {
255
- for: l.tablename + "-main-checkbox"
256
- }, null, 8, ke)
269
+ id: o.tablename + "-main-checkbox",
270
+ checked: Z.value,
271
+ onChange: Y
272
+ }, null, 40, Pe),
273
+ l("label", {
274
+ for: o.tablename + "-main-checkbox"
275
+ }, null, 8, Ve)
257
276
  ])
258
- ])) : k("", !0),
259
- (r(!0), n(M, null, D(l.columns, (e) => (r(), n("th", {
277
+ ])) : C("", !0),
278
+ (d(!0), i(B, null, D(o.columns, (e) => (d(), i("th", {
260
279
  key: e.field,
261
- onClick: (i) => e.sortable ? N(e.field, i) : null,
262
- style: Y({ width: e.width + "%" }),
263
- class: w([e.sortable ? "vs-sortable" : "", l.headerClass])
280
+ onClick: (r) => e.sortable ? A(e.field, r) : null,
281
+ style: le({ width: e.width + "%" }),
282
+ class: k([e.sortable ? "vs-sortable" : "", o.headerClass])
264
283
  }, [
265
- _(t.$slots, `header-${e.field}`, { column: e }, () => [
266
- o("div", xe, [
267
- o("span", Ve, b(e.label), 1),
268
- e.sortable ? (r(), n("div", Pe, [
269
- o("span", {
270
- class: w(["vs-sort-icon vs-sort-asc", {
271
- "vs-active": V(e.field) && R(e.field) === "asc"
284
+ M(t.$slots, `header-${e.field}`, { column: e }, () => [
285
+ l("div", Oe, [
286
+ l("span", Se, m(e.label), 1),
287
+ e.sortable ? (d(), i("div", $e, [
288
+ l("span", {
289
+ class: k(["vs-sort-icon vs-sort-asc", {
290
+ "vs-active": O(e.field) && R(e.field) === "asc"
272
291
  }])
273
- }, [...a[4] || (a[4] = [
274
- o("svg", {
292
+ }, [...a[3] || (a[3] = [
293
+ l("svg", {
275
294
  xmlns: "http://www.w3.org/2000/svg",
276
295
  height: "24px",
277
296
  viewBox: "0 -960 960 960",
278
297
  width: "24px"
279
298
  }, [
280
- o("path", { d: "m280-400 200-200 200 200H280Z" })
299
+ l("path", { d: "m280-400 200-200 200 200H280Z" })
281
300
  ], -1)
282
301
  ])], 2),
283
- o("span", {
284
- class: w(["vs-sort-icon vs-sort-desc", {
285
- "vs-active": V(e.field) && R(e.field) === "desc"
302
+ l("span", {
303
+ class: k(["vs-sort-icon vs-sort-desc", {
304
+ "vs-active": O(e.field) && R(e.field) === "desc"
286
305
  }])
287
- }, [...a[5] || (a[5] = [
288
- o("svg", {
306
+ }, [...a[4] || (a[4] = [
307
+ l("svg", {
289
308
  xmlns: "http://www.w3.org/2000/svg",
290
309
  height: "24px",
291
310
  viewBox: "0 -960 960 960",
292
311
  width: "24px"
293
312
  }, [
294
- o("path", { d: "M480-360 280-560h400L480-360Z" })
313
+ l("path", { d: "M480-360 280-560h400L480-360Z" })
295
314
  ], -1)
296
315
  ])], 2)
297
- ])) : k("", !0),
298
- O(e.field) !== null ? (r(), n("span", Se, b(O(e.field)), 1)) : k("", !0)
316
+ ])) : C("", !0),
317
+ $(e.field) !== null ? (d(), i("span", Re, m($(e.field)), 1)) : C("", !0)
299
318
  ])
300
319
  ], !0)
301
- ], 14, Ce))), 128))
320
+ ], 14, xe))), 128))
302
321
  ])
303
322
  ]),
304
- o("tbody", null, [
305
- l.loading ? (r(), n("tr", $e, [
306
- o("td", {
307
- colspan: x.value,
323
+ l("tbody", null, [
324
+ o.loading ? (d(), i("tr", _e, [
325
+ l("td", {
326
+ colspan: u.value,
308
327
  class: "vs-loading"
309
328
  }, [
310
- a[6] || (a[6] = o("div", { class: "vs-spinner" }, null, -1)),
311
- o("span", null, b(l.loadingText), 1)
312
- ], 8, Oe)
313
- ])) : m.value.length ? (r(!0), n(M, { key: 2 }, D(m.value, (e, i) => (r(), n("tr", {
314
- key: y(e, i),
315
- class: w([
316
- l.rowClass,
317
- { "vs-row-clickable": d.value },
329
+ a[5] || (a[5] = l("div", { class: "vs-spinner" }, null, -1)),
330
+ l("span", null, m(o.loadingText), 1)
331
+ ], 8, Te)
332
+ ])) : w.value.length ? (d(!0), i(B, { key: 2 }, D(w.value, (e, r) => (d(), i("tr", {
333
+ key: h(e, r),
334
+ class: k([
335
+ o.rowClass,
336
+ { "vs-row-clickable": x.value },
318
337
  { "vs-row-selected": f(e) }
319
338
  ]),
320
- onClick: (u) => t.$emit("row-click", e, i)
339
+ onClick: (c) => t.$emit("row-click", e, r)
321
340
  }, [
322
- z.value ? (r(), n("td", {
341
+ H.value ? (d(), i("td", {
323
342
  key: 0,
324
- onClick: a[2] || (a[2] = ee(() => {
343
+ onClick: a[1] || (a[1] = Q(() => {
325
344
  }, ["stop"])),
326
345
  class: "vs-checkbox-column"
327
346
  }, [
328
- o("div", De, [
329
- te(o("input", {
347
+ l("div", ze, [
348
+ l("input", {
330
349
  type: "checkbox",
331
- id: l.tablename + "-checkbox-" + y(e, i),
350
+ id: o.tablename + "-checkbox-" + h(e, r),
332
351
  value: e,
333
- "onUpdate:modelValue": a[1] || (a[1] = (u) => P.value = u)
334
- }, null, 8, Be), [
335
- [se, P.value]
336
- ]),
337
- o("label", {
338
- for: l.tablename + "-checkbox-" + y(e, i)
339
- }, null, 8, Le)
352
+ checked: y.value.some((c) => h(c) === h(e, r)),
353
+ onChange: (c) => X(e, r, c)
354
+ }, null, 40, He),
355
+ l("label", {
356
+ for: o.tablename + "-checkbox-" + h(e, r)
357
+ }, null, 8, Ke)
340
358
  ])
341
- ])) : k("", !0),
342
- (r(!0), n(M, null, D(l.columns, (u) => (r(), n("td", {
343
- key: u.field,
344
- class: w(l.cellClass)
359
+ ])) : C("", !0),
360
+ (d(!0), i(B, null, D(o.columns, (c, V) => (d(), i("td", {
361
+ key: V,
362
+ class: k(o.cellClass),
363
+ onClick: Q((T) => n("cell-click", t.row, c, r), ["stop"])
345
364
  }, [
346
- _(t.$slots, `cell-${u.field}`, {
365
+ M(t.$slots, `cell-${c.field}`, {
347
366
  item: e,
348
- value: $(e, u.field),
349
- column: u,
350
- index: i
367
+ value: S(e, c.field),
368
+ column: c,
369
+ index: r
351
370
  }, () => [
352
- ae(b($(e, u.field)), 1)
371
+ ne(m(S(e, c.field)), 1)
353
372
  ], !0)
354
- ], 2))), 128))
355
- ], 10, Me))), 128)) : (r(), n("tr", Re, [
356
- o("td", {
357
- colspan: x.value,
373
+ ], 10, Ne))), 128))
374
+ ], 10, Le))), 128)) : (d(), i("tr", Ie, [
375
+ l("td", {
376
+ colspan: u.value,
358
377
  class: "vs-no-data"
359
378
  }, [
360
- _(t.$slots, "no-data", {}, () => [
361
- a[7] || (a[7] = o("div", { class: "vs-no-data-icon" }, [
362
- o("svg", {
379
+ M(t.$slots, "no-data", {}, () => [
380
+ a[6] || (a[6] = l("div", { class: "vs-no-data-icon" }, [
381
+ l("svg", {
363
382
  viewBox: "0 0 24 24",
364
383
  fill: "currentColor"
365
384
  }, [
366
- o("path", { d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z" })
385
+ l("path", { d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z" })
367
386
  ])
368
387
  ], -1)),
369
- o("div", Ie, b(l.noDataText), 1),
370
- o("div", _e, b(l.noDataDescription), 1)
388
+ l("div", Be, m(o.noDataText), 1),
389
+ l("div", De, m(o.noDataDescription), 1)
371
390
  ], !0)
372
- ], 8, Te)
391
+ ], 8, Me)
373
392
  ]))
374
393
  ])
375
394
  ], 2)
376
395
  ], 512)
377
396
  ], 2),
378
- o("div", ze, [
379
- l.showRowEntries ? (r(), n("div", He, "showing " + b(L.value.start < 1 ? 0 : L.value.start) + " - " + b(L.value.end) + " of " + b(B.value) + " " + b(l.entriesText), 1)) : (r(), n("div", Ke)),
380
- Z(ue, {
381
- modelValue: T.value,
382
- "onUpdate:modelValue": a[3] || (a[3] = (e) => T.value = e),
383
- totalRecords: B.value,
384
- rowsPerPage: q.value,
385
- maxVisible: l.maxVisiblePages,
386
- tablename: l.tablename,
387
- class: w(l.paginationClass),
388
- onPageChanged: G
397
+ l("div", Ae, [
398
+ o.showRowEntries ? (d(), i("div", Ee, " showing " + m(z.value.start < 1 ? 0 : z.value.start) + " - " + m(z.value.end) + " of " + m(L.value) + " " + m(o.entriesText), 1)) : (d(), i("div", Ue)),
399
+ j(pe, {
400
+ modelValue: _.value,
401
+ "onUpdate:modelValue": a[2] || (a[2] = (e) => _.value = e),
402
+ totalRecords: L.value,
403
+ rowsPerPage: J.value,
404
+ maxVisible: o.maxVisiblePages,
405
+ tablename: o.tablename,
406
+ class: k(o.paginationClass),
407
+ onPageChanged: W
389
408
  }, null, 8, ["modelValue", "totalRecords", "rowsPerPage", "maxVisible", "tablename", "class"])
390
409
  ])
391
410
  ]));
392
411
  }
393
- }), Ae = /* @__PURE__ */ j(Ne, [["__scopeId", "data-v-73862aa1"]]), Ue = {
394
- install(l) {
395
- l.component("VsDataTable", Ae);
412
+ }), Ze = /* @__PURE__ */ q(Fe, [["__scopeId", "data-v-fa66e546"]]), Qe = {
413
+ install(o) {
414
+ o.component("VsDataTable", Ze);
396
415
  }
397
416
  };
398
417
  export {
399
- Ae as VsDataTable,
400
- Ue as default
418
+ Ze as VsDataTable,
419
+ Qe as default
401
420
  };
@@ -1,2 +1,2 @@
1
- (function(m,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(m=typeof globalThis<"u"?globalThis:m||self,e(m.VsDataTable={},m.Vue))})(this,(function(m,e){"use strict";var P=document.createElement("style");P.textContent=`.vs-pagination[data-v-a6d89ca2]{display:flex;align-items:center;justify-content:center;gap:var(--vs-spacing-sm);flex-wrap:wrap}.vs-pagination-button[data-v-a6d89ca2]{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 var(--vs-spacing-sm);border:1px solid var(--vs-table-border);background-color:var(--vs-table-bg);color:var(--vs-dark);text-decoration:none;border-radius:var(--vs-border-radius);font-size:var(--vs-font-size-sm);transition:var(--vs-transition-fast);cursor:pointer}.vs-pagination-button[data-v-a6d89ca2]:hover:not(:disabled){background-color:var(--vs-table-hover-bg);border-color:var(--vs-primary)}.vs-pagination-button.vs-active[data-v-a6d89ca2]{background-color:var(--vs-primary);border-color:var(--vs-primary);color:#fff}.vs-pagination-button[data-v-a6d89ca2]:disabled{opacity:.5;cursor:not-allowed}.vs-pagination-nav[data-v-a6d89ca2]{font-weight:var(--vs-font-weight-bold)}.vs-pagination-ellipsis[data-v-a6d89ca2]{color:var(--vs-secondary);padding:0 var(--vs-spacing-sm);font-size:var(--vs-font-size-sm)}@media (max-width: 768px){.vs-pagination-button[data-v-a6d89ca2]{min-width:28px;height:28px;font-size:12px}}.vs-datatable[data-v-73862aa1]{--vs-table-wrapper-overflow: auto}.vs-table-wrapper[data-v-73862aa1]{overflow:var(--vs-table-wrapper-overflow)}.vs-header-content[data-v-73862aa1]{display:flex;align-items:center;gap:var(--vs-spacing-sm)}.vs-header-label[data-v-73862aa1]{flex:1}.vs-checkbox-column[data-v-73862aa1]{width:50px;text-align:center}.vs-row-clickable[data-v-73862aa1]{cursor:pointer}.vs-row-selected[data-v-73862aa1]{background-color:rgba(var(--vs-primary),.1)}.vs-table-footer[data-v-73862aa1]{display:flex;align-items:center;justify-content:space-between;padding:var(--vs-spacing-sm) 0}.vs-table-info[data-v-73862aa1]{color:var(--vs-secondary);font-size:var(--vs-font-size-md)}.vs-search-container[data-v-73862aa1]{margin-bottom:var(--vs-spacing-md)}:root{--vs-primary: #007bff;--vs-secondary: #6c757d;--vs-success: #28a745;--vs-danger: #dc3545;--vs-warning: #ffc107;--vs-info: #17a2b8;--vs-light: #f8f9fa;--vs-dark: #343a40;--vs-table-bg: #ffffff;--vs-table-border: #dee2e6;--vs-table-header-bg: #f8f9fa;--vs-table-header-color: #495057;--vs-table-hover-bg: #f5f5f5;--vs-table-stripe-bg: #fafafa;--vs-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--vs-font-size: 14px;--vs-font-size-sm: 12px;--vs-font-size-lg: 16px;--vs-font-weight-normal: 400;--vs-font-weight-bold: 600;--vs-spacing-xs: 4px;--vs-spacing-sm: 8px;--vs-spacing-md: 16px;--vs-spacing-lg: 24px;--vs-spacing-xl: 32px;--vs-border-radius: 4px;--vs-border-radius-sm: 2px;--vs-border-radius-lg: 8px;--vs-shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--vs-shadow: 0 2px 4px rgba(0, 0, 0, .1);--vs-shadow-lg: 0 4px 8px rgba(0, 0, 0, .15);--vs-transition: all .2s ease-in-out;--vs-transition-fast: all .15s ease-in-out;--vs-z-dropdown: 1000;--vs-z-sticky: 1020;--vs-z-fixed: 1030;--vs-z-modal: 1040;--vs-z-popover: 1050;--vs-z-tooltip: 1060}.vs-datatable{font-family:var(--vs-font-family);font-size:var(--vs-font-size);line-height:1.5;color:var(--vs-dark);background-color:var(--vs-table-bg);box-sizing:border-box}.vs-datatable *,.vs-datatable *:before,.vs-datatable *:after{box-sizing:border-box}.vs-table-container{position:relative;background-color:var(--vs-table-bg);border:1px solid var(--vs-table-border);border-radius:var(--vs-border-radius);overflow:hidden;box-shadow:var(--vs-shadow-sm)}.vs-table{width:100%;margin:0;border-collapse:separate;border-spacing:0;background-color:var(--vs-table-bg)}.vs-table thead{background-color:var(--vs-table-header-bg)}.vs-table thead th{padding:var(--vs-spacing-sm);font-weight:var(--vs-font-weight-bold);color:var(--vs-table-header-color);text-align:left;vertical-align:middle;border-bottom:2px solid var(--vs-table-border);position:relative;-webkit-user-select:none;user-select:none}.vs-table thead th:first-child{border-top-left-radius:var(--vs-border-radius)}.vs-table thead th:last-child{border-top-right-radius:var(--vs-border-radius)}.vs-table tbody tr{transition:var(--vs-transition-fast);border-bottom:1px solid var(--vs-table-border)}.vs-table tbody tr:hover{background-color:var(--vs-table-hover-bg)}.vs-table tbody tr:nth-child(2n){background-color:var(--vs-table-stripe-bg)}.vs-table tbody tr:last-child{border-bottom:none}.vs-table tbody tr td{padding:var(--vs-spacing-md);vertical-align:middle;border-right:1px solid var(--vs-table-border)}.vs-table tbody tr td:last-child{border-right:none}.vs-sortable{cursor:pointer;position:relative}.vs-sortable:hover{background-color:rgba(var(--vs-primary),.1)}.vs-sortable .vs-sort-icons{display:inline-flex;flex-direction:column;margin-left:var(--vs-spacing-sm);vertical-align:middle}.vs-sortable .vs-sort-icons .vs-sort-icon{font-size:10px;line-height:1;color:var(--vs-secondary);transition:var(--vs-transition-fast);margin:-8px 0}.vs-sortable .vs-sort-icons .vs-sort-icon.vs-sort-asc,.vs-sortable .vs-sort-icons .vs-sort-icon.vs-sort-desc{color:var(--vs-primary)}.vs-sortable .vs-sort-icons .vs-sort-icon svg{fill:#e3e3e3}.vs-sortable .vs-sort-icons .vs-sort-icon.vs-active svg{fill:currentColor}.vs-sortable .vs-sort-priority{display:inline-block;background-color:var(--vs-primary);color:#fff;font-size:10px;padding:2px 6px;border-radius:var(--vs-border-radius-sm);margin-left:var(--vs-spacing-sm);font-weight:var(--vs-font-weight-bold)}.vs-loading{display:flex;align-items:center;justify-content:center;padding:var(--vs-spacing-xl);color:var(--vs-secondary)}.vs-loading .vs-spinner{width:20px;height:20px;border:2px solid var(--vs-table-border);border-top:2px solid var(--vs-primary);border-radius:50%;animation:vs-spin 1s linear infinite;margin-right:var(--vs-spacing-sm)}@keyframes vs-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.vs-no-data{text-align:center;padding:var(--vs-spacing-xl);color:var(--vs-secondary)}.vs-no-data .vs-no-data-icon{width:60px;height:60px;margin:0 auto var(--vs-spacing-md);opacity:.5}.vs-no-data .vs-no-data-message{font-size:var(--vs-font-size-lg);font-weight:var(--vs-font-weight-bold);margin-bottom:var(--vs-spacing-sm)}.vs-no-data .vs-no-data-description{font-size:var(--vs-font-size-sm);color:var(--vs-secondary)}.vs-search{position:relative;margin-bottom:var(--vs-spacing-md)}.vs-search .vs-search-input{width:100%;padding:var(--vs-spacing-sm) var(--vs-spacing-md);padding-left:40px;border:1px solid var(--vs-table-border);border-radius:var(--vs-border-radius);font-size:var(--vs-font-size);transition:var(--vs-transition-fast)}.vs-search .vs-search-input:focus{outline:none;border-color:var(--vs-primary);box-shadow:0 0 0 2px rgba(var(--vs-primary),.25)}.vs-search .vs-search-icon{position:absolute;left:var(--vs-spacing-md);top:50%;transform:translateY(-50%);color:var(--vs-secondary);pointer-events:none}.vs-pagination{display:flex;align-items:center;justify-content:center;gap:var(--vs-spacing-sm);margin-top:var(--vs-spacing-md)}.vs-pagination .vs-pagination-button{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 var(--vs-spacing-sm);border:1px solid var(--vs-table-border);background-color:var(--vs-table-bg);color:var(--vs-dark);text-decoration:none;border-radius:var(--vs-border-radius);font-size:var(--vs-font-size-sm);transition:var(--vs-transition-fast);cursor:pointer}.vs-pagination .vs-pagination-button:hover:not(:disabled){background-color:var(--vs-table-hover-bg);border-color:var(--vs-primary)}.vs-pagination .vs-pagination-button.vs-active{background-color:var(--vs-primary);border-color:var(--vs-primary);color:#fff}.vs-pagination .vs-pagination-button:disabled{opacity:.5;cursor:not-allowed}.vs-pagination .vs-pagination-ellipsis{color:var(--vs-secondary);padding:0 var(--vs-spacing-sm)}.vs-checkbox{display:inline-flex;align-items:center;cursor:pointer}.vs-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;cursor:pointer;accent-color:var(--vs-primary)}.vs-checkbox label{margin:0;cursor:pointer;font-size:var(--vs-font-size-sm)}@media (max-width: 768px){.vs-table-container{overflow-x:auto}.vs-table{min-width:600px}.vs-pagination{flex-wrap:wrap;gap:var(--vs-spacing-xs)}.vs-pagination .vs-pagination-button{min-width:28px;height:28px;font-size:12px}}.vs-text-center{text-align:center}.vs-text-left{text-align:left}.vs-text-right{text-align:right}.vs-text-muted{color:var(--vs-secondary)}.vs-text-primary{color:var(--vs-primary)}.vs-text-success{color:var(--vs-success)}.vs-text-danger{color:var(--vs-danger)}.vs-text-warning{color:var(--vs-warning)}.vs-bg-primary{background-color:var(--vs-primary)}.vs-bg-success{background-color:var(--vs-success)}.vs-bg-danger{background-color:var(--vs-danger)}.vs-bg-warning{background-color:var(--vs-warning)}.vs-bg-light{background-color:var(--vs-light)}.vs-border{border:1px solid var(--vs-table-border)}.vs-border-top{border-top:1px solid var(--vs-table-border)}.vs-border-bottom{border-bottom:1px solid var(--vs-table-border)}.vs-border-left{border-left:1px solid var(--vs-table-border)}.vs-border-right{border-right:1px solid var(--vs-table-border)}.vs-rounded{border-radius:var(--vs-border-radius)}.vs-rounded-sm{border-radius:var(--vs-border-radius-sm)}.vs-rounded-lg{border-radius:var(--vs-border-radius-lg)}.vs-shadow{box-shadow:var(--vs-shadow)}.vs-shadow-sm{box-shadow:var(--vs-shadow-sm)}.vs-shadow-lg{box-shadow:var(--vs-shadow-lg)}.vs-fade-in{animation:vs-fade-in .3s ease-in-out}@keyframes vs-fade-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.vs-slide-in{animation:vs-slide-in .3s ease-in-out}@keyframes vs-slide-in{0%{transform:translate(-20px);opacity:0}to{transform:translate(0);opacity:1}}.vs-datatable.vs-theme-dark{--vs-primary: #0d6efd;--vs-secondary: #6c757d;--vs-success: #198754;--vs-danger: #dc3545;--vs-warning: #ffc107;--vs-info: #0dcaf0;--vs-light: #f8f9fa;--vs-dark: #212529;--vs-table-bg: #1a1a1a;--vs-table-border: #333333;--vs-table-header-bg: #2d2d2d;--vs-table-header-color: #ffffff;--vs-table-hover-bg: #333333;--vs-table-stripe-bg: #222222;color:#fff;background-color:var(--vs-table-bg)}.vs-datatable.vs-theme-minimal{--vs-primary: #000000;--vs-secondary: #666666;--vs-success: #000000;--vs-danger: #000000;--vs-warning: #000000;--vs-info: #000000;--vs-light: #f9f9f9;--vs-dark: #000000;--vs-table-bg: #ffffff;--vs-table-border: #e0e0e0;--vs-table-header-bg: #ffffff;--vs-table-header-color: #000000;--vs-table-hover-bg: #f5f5f5;--vs-table-stripe-bg: #ffffff}.vs-datatable.vs-theme-minimal .vs-table{border:none;box-shadow:none}.vs-datatable.vs-theme-minimal .vs-table thead th{border-bottom:2px solid var(--vs-table-border);font-weight:500}.vs-datatable.vs-theme-minimal .vs-table tbody tr{border-bottom:1px solid var(--vs-table-border)}.vs-datatable.vs-theme-colorful{--vs-primary: #e91e63;--vs-secondary: #9c27b0;--vs-success: #4caf50;--vs-danger: #f44336;--vs-warning: #ff9800;--vs-info: #2196f3;--vs-light: #f3e5f5;--vs-dark: #2e2e2e;--vs-table-bg: #ffffff;--vs-table-border: #e1bee7;--vs-table-header-bg: linear-gradient(135deg, #e91e63, #9c27b0);--vs-table-header-color: #ffffff;--vs-table-hover-bg: #f3e5f5;--vs-table-stripe-bg: #fafafa}.vs-datatable.vs-theme-colorful .vs-table thead th{background:var(--vs-table-header-bg);color:var(--vs-table-header-color);font-weight:600}.vs-datatable.vs-theme-colorful .vs-pagination-button.vs-active{background:linear-gradient(135deg,var(--vs-primary),var(--vs-secondary))}.vs-datatable.vs-theme-corporate{--vs-primary: #1e3a8a;--vs-secondary: #64748b;--vs-success: #059669;--vs-danger: #dc2626;--vs-warning: #d97706;--vs-info: #0891b2;--vs-light: #f8fafc;--vs-dark: #1e293b;--vs-table-bg: #ffffff;--vs-table-border: #e2e8f0;--vs-table-header-bg: #f1f5f9;--vs-table-header-color: #334155;--vs-table-hover-bg: #f8fafc;--vs-table-stripe-bg: #ffffff;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.vs-datatable.vs-theme-corporate .vs-table{border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.vs-datatable.vs-theme-corporate .vs-table thead th{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:16px 20px}.vs-datatable.vs-theme-corporate .vs-table tbody td{padding:16px 20px;font-size:14px}.vs-datatable.vs-theme-compact{--vs-spacing-xs: 2px;--vs-spacing-sm: 4px;--vs-spacing-md: 8px;--vs-spacing-lg: 12px;--vs-spacing-xl: 16px;--vs-font-size: 12px;--vs-font-size-sm: 10px;--vs-font-size-lg: 14px}.vs-datatable.vs-theme-compact .vs-table thead th{padding:var(--vs-spacing-sm) var(--vs-spacing-md);font-size:var(--vs-font-size-sm)}.vs-datatable.vs-theme-compact .vs-table tbody td{padding:var(--vs-spacing-sm) var(--vs-spacing-md);font-size:var(--vs-font-size)}.vs-datatable.vs-theme-compact .vs-pagination-button{min-width:24px;height:24px;font-size:var(--vs-font-size-sm)}.vs-datatable.vs-theme-rounded{--vs-border-radius: 12px;--vs-border-radius-sm: 6px;--vs-border-radius-lg: 16px}.vs-datatable.vs-theme-rounded .vs-table-container{border-radius:var(--vs-border-radius);overflow:hidden}.vs-datatable.vs-theme-rounded .vs-table thead th:first-child{border-top-left-radius:var(--vs-border-radius)}.vs-datatable.vs-theme-rounded .vs-table thead th:last-child{border-top-right-radius:var(--vs-border-radius)}.vs-datatable.vs-theme-rounded .vs-pagination-button{border-radius:var(--vs-border-radius-sm)}.vs-datatable.vs-theme-brand{--vs-primary: #ff6b35;--vs-secondary: #004e89;--vs-success: #00a896;--vs-danger: #e63946;--vs-warning: #f77f00;--vs-info: #06a77d}.vs-datatable.vs-theme-brand .vs-table-container{border:2px solid var(--vs-primary);border-radius:16px;box-shadow:0 8px 32px #ff6b3533}.vs-datatable.vs-theme-brand .vs-table thead th{background:linear-gradient(135deg,var(--vs-primary),var(--vs-secondary));color:#fff;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.1)}.vs-datatable.vs-theme-brand .vs-pagination-button.vs-active{background:var(--vs-primary);transform:scale(1.05)}.vs-datatable.vs-theme-brand .vs-pagination-button:hover:not(:disabled){border-color:var(--vs-primary);transform:translateY(-1px)}
2
- /*$vite$:1*/`,document.head.appendChild(P);const I=["id"],L=["disabled"],j={key:1,class:"vs-pagination-ellipsis"},F=["id","onClick"],H={key:2,class:"vs-pagination-ellipsis"},K=["disabled"],A=e.defineComponent({__name:"VsPagination",props:{modelValue:{},totalRecords:{},rowsPerPage:{},tablename:{},maxVisible:{},paginationClass:{}},emits:["update:modelValue","page-changed"],setup(r,{emit:h}){const s=r,i=h,b=s.maxVisible??3,l=e.computed({get:()=>s.modelValue,set:c=>{i("update:modelValue",c),i("page-changed",c)}}),u=e.computed(()=>l.value<=Math.floor(b/2)?1:l.value>=p.value-Math.floor(b/2)?Math.max(p.value-b+1,1):l.value-Math.floor(b/2)),f=e.computed(()=>Math.min(u.value+b-1,p.value)),p=e.computed(()=>Math.ceil(s.totalRecords/s.rowsPerPage)),w=e.computed(()=>{const c=[];for(let v=u.value;v<=f.value;v++)c.push(v);return c}),x=c=>{c>=1&&c<=p.value&&(l.value=c)},V=()=>{l.value>1&&l.value--},C=()=>{l.value<p.value&&l.value++};return(c,v)=>(e.openBlock(),e.createElementBlock("div",{class:"vs-pagination",id:r.tablename+"-pagination"},[e.createElementVNode("button",{onClick:V,type:"button",class:"vs-pagination-button vs-pagination-nav",disabled:l.value===1}," ‹‹ ",8,L),u.value>1?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"vs-pagination-button",onClick:v[0]||(v[0]=g=>x(1))}," 1 ")):e.createCommentVNode("",!0),u.value>2?(e.openBlock(),e.createElementBlock("span",j,"...")):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value,g=>(e.openBlock(),e.createElementBlock("button",{key:g,type:"button",class:e.normalizeClass(["vs-pagination-button",{"vs-active":l.value===g}]),id:r.tablename+"-page-"+g,onClick:_=>x(g)},e.toDisplayString(g),11,F))),128)),f.value<p.value-1?(e.openBlock(),e.createElementBlock("span",H,"...")):e.createCommentVNode("",!0),f.value<p.value?(e.openBlock(),e.createElementBlock("button",{key:3,type:"button",class:"vs-pagination-button",onClick:v[1]||(v[1]=g=>x(p.value))},e.toDisplayString(p.value),1)):e.createCommentVNode("",!0),e.createElementVNode("button",{onClick:C,type:"button",class:"vs-pagination-button vs-pagination-nav",disabled:l.value===p.value}," ›› ",8,K)],8,I))}}),D=(r,h)=>{const s=r.__vccOpts||r;for(const[i,b]of h)s[i]=b;return s},U=D(A,[["__scopeId","data-v-a6d89ca2"]]),Y={class:"vs-search"},Z=["placeholder","value"],q=e.defineComponent({__name:"VsSearch",props:{modelValue:{},placeholder:{}},emits:["update:modelValue","input-typed"],setup(r,{emit:h}){const s=h,i=b=>{const l=b.target;s("update:modelValue",l.value),s("input-typed",l.value)};return(b,l)=>(e.openBlock(),e.createElementBlock("div",Y,[l[0]||(l[0]=e.createElementVNode("div",{class:"vs-search-icon"},[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"})])],-1)),e.createElementVNode("input",{type:"text",class:"vs-search-input",placeholder:r.placeholder,value:r.modelValue,onInput:i},null,40,Z)]))}}),Q={class:"vs-datatable"},G={key:0,class:"vs-search-container"},J={ref:"tableResponsiveRef",class:"vs-table-wrapper"},W={key:0,class:"vs-checkbox-column",style:{width:"5%"}},X={class:"vs-checkbox"},ee=["id","checked"],ae=["for"],te=["onClick"],se={class:"vs-header-content"},oe={class:"vs-header-label"},re={key:0,class:"vs-sort-icons"},ne={key:1,class:"vs-sort-priority"},le={key:0},ie=["colspan"],de={key:1},ve=["colspan"],ce={class:"vs-no-data-message"},be={class:"vs-no-data-description"},pe=["onClick"],ge={class:"vs-checkbox"},fe=["id","value"],me=["for"],he={class:"vs-table-footer"},ue={key:0,class:"vs-table-info"},xe={key:1,class:"vs-table-info"},$=D(e.defineComponent({__name:"VsDataTable",props:{rows:{default:()=>[]},itemSelected:{default:null},tablename:{default:"default-table"},sort:{},serverItemsLength:{},serverOptions:{default:null},showHeader:{type:Boolean,default:!0},headerText:{default:""},loading:{type:Boolean,default:!1},columns:{},showSearch:{type:Boolean,default:!0},tableClass:{},rowClass:{},showRowEntries:{type:Boolean,default:!0},containerClass:{},headerClass:{},cellClass:{},searchClass:{},paginationClass:{},searchPlaceholder:{default:"Search..."},loadingText:{default:"Loading..."},noDataText:{default:"No data available"},noDataDescription:{default:"Try adjusting your search criteria"},entriesText:{default:"entries"},maxVisiblePages:{default:5},rowKey:{type:[String,Function],default:"id"}},emits:["update:itemSelected","update:serverItemsLength","update:serverOptions","update:sort","input-typed","page-updated","sort-changed","row-click"],setup(r,{emit:h}){const s=r,i=h,b=e.useAttrs(),l=e.computed(()=>!!b.onRowClick),u=e.computed(()=>s.columns.length+(N.value?1:0)),f=(t,o)=>typeof s.rowKey=="function"?s.rowKey(t,o):t[s.rowKey]||o,p=t=>y.value.some(o=>f(o,-1)===f(t,-1));function w(t,o){return o.split(".").reduce((a,n)=>a?.[n],t)??""}const x=t=>v.value.some(o=>o.field===t),V=t=>{const o=v.value.find(a=>a.field===t);return o?o.priority??null:null},C=t=>v.value.find(o=>o.field===t)?.order??null,c=e.ref(s.sort??[]);e.watch(()=>s.sort,t=>{t&&(c.value=[...t])},{deep:!0});const v=e.computed(()=>s.serverOptions?.sort??c.value??[]),g=e.computed(()=>{if(!v.value.length)return s.rows;const t=(o,a)=>a.split(".").reduce((n,d)=>n?.[d],o)??"";return[...s.rows].sort((o,a)=>{for(const{field:n,order:d}of v.value){const k=t(o,n),S=t(a,n);if(k!==S)return d==="asc"?k>S?1:-1:k<S?1:-1}return 0})}),_=(t,o)=>{let a=[...v.value];const n=a.findIndex(d=>d.field===t);o.shiftKey?n===-1?a.push({field:t,order:"asc"}):a[n]?.order==="asc"?a[n].order="desc":a.splice(n,1):n===-1?a=[{field:t,order:"asc"}]:a[n]?.order==="asc"?a=[{field:t,order:"desc"}]:a=[],a=a.map((d,k)=>({...d,priority:k+1})),s.serverOptions?i("update:serverOptions",{...s.serverOptions,sort:a}):(c.value=a,i("update:sort",a),i("sort-changed",{sort:a}))},O=e.ref(""),ke=t=>i("input-typed",t),R=e.ref(10),we=e.computed({get:()=>s.serverOptions?.rowsPerPage??R.value,set:t=>{s.serverOptions?i("update:serverOptions",{...s.serverOptions,rowsPerPage:t}):R.value=t}}),T=e.ref(1),z=e.computed({get:()=>s.serverItemsLength!==void 0?s.serverItemsLength:s.rows.length,set:t=>{s.serverItemsLength!==void 0&&i("update:serverItemsLength",t)}}),E=e.computed({get:()=>s.serverOptions?.page??T.value,set:t=>{s.serverOptions?i("update:serverOptions",{...s.serverOptions,page:t}):T.value=t}}),Ve=t=>{s.serverOptions&&i("update:serverOptions",{...s.serverOptions,page:t}),i("page-updated",t)},B=e.computed(()=>{const t=s.serverOptions?.rowsPerPage??10,o=(E.value-1)*t+1,a=Math.min(E.value*t,z.value);return{start:o,end:a}}),y=e.computed({get:()=>s.itemSelected||[],set:t=>i("update:itemSelected",t)}),N=e.computed(()=>s.itemSelected!==null),M=e.computed(()=>s.rows.length>0&&y.value.length===s.rows.length),Ce=()=>{y.value=M.value?[]:[...s.rows]};return(t,o)=>(e.openBlock(),e.createElementBlock("div",Q,[r.showSearch?(e.openBlock(),e.createElementBlock("div",G,[e.createVNode(q,{modelValue:O.value,"onUpdate:modelValue":o[0]||(o[0]=a=>O.value=a),onInputTyped:ke,placeholder:r.searchPlaceholder,class:e.normalizeClass(r.searchClass)},null,8,["modelValue","placeholder","class"]),e.renderSlot(t.$slots,"filterArea",{},void 0,!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["vs-table-container",r.containerClass])},[e.createElementVNode("div",J,[e.createElementVNode("table",{class:e.normalizeClass(["vs-table",r.tableClass])},[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[N.value?(e.openBlock(),e.createElementBlock("th",W,[e.createElementVNode("div",X,[e.createElementVNode("input",{type:"checkbox",id:r.tablename+"-main-checkbox",checked:M.value,onChange:Ce},null,40,ee),e.createElementVNode("label",{for:r.tablename+"-main-checkbox"},null,8,ae)])])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.columns,a=>(e.openBlock(),e.createElementBlock("th",{key:a.field,onClick:n=>a.sortable?_(a.field,n):null,style:e.normalizeStyle({width:a.width+"%"}),class:e.normalizeClass([a.sortable?"vs-sortable":"",r.headerClass])},[e.renderSlot(t.$slots,`header-${a.field}`,{column:a},()=>[e.createElementVNode("div",se,[e.createElementVNode("span",oe,e.toDisplayString(a.label),1),a.sortable?(e.openBlock(),e.createElementBlock("div",re,[e.createElementVNode("span",{class:e.normalizeClass(["vs-sort-icon vs-sort-asc",{"vs-active":x(a.field)&&C(a.field)==="asc"}])},[...o[4]||(o[4]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 -960 960 960",width:"24px"},[e.createElementVNode("path",{d:"m280-400 200-200 200 200H280Z"})],-1)])],2),e.createElementVNode("span",{class:e.normalizeClass(["vs-sort-icon vs-sort-desc",{"vs-active":x(a.field)&&C(a.field)==="desc"}])},[...o[5]||(o[5]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 -960 960 960",width:"24px"},[e.createElementVNode("path",{d:"M480-360 280-560h400L480-360Z"})],-1)])],2)])):e.createCommentVNode("",!0),V(a.field)!==null?(e.openBlock(),e.createElementBlock("span",ne,e.toDisplayString(V(a.field)),1)):e.createCommentVNode("",!0)])],!0)],14,te))),128))])]),e.createElementVNode("tbody",null,[r.loading?(e.openBlock(),e.createElementBlock("tr",le,[e.createElementVNode("td",{colspan:u.value,class:"vs-loading"},[o[6]||(o[6]=e.createElementVNode("div",{class:"vs-spinner"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(r.loadingText),1)],8,ie)])):g.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(g.value,(a,n)=>(e.openBlock(),e.createElementBlock("tr",{key:f(a,n),class:e.normalizeClass([r.rowClass,{"vs-row-clickable":l.value},{"vs-row-selected":p(a)}]),onClick:d=>t.$emit("row-click",a,n)},[N.value?(e.openBlock(),e.createElementBlock("td",{key:0,onClick:o[2]||(o[2]=e.withModifiers(()=>{},["stop"])),class:"vs-checkbox-column"},[e.createElementVNode("div",ge,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",id:r.tablename+"-checkbox-"+f(a,n),value:a,"onUpdate:modelValue":o[1]||(o[1]=d=>y.value=d)},null,8,fe),[[e.vModelCheckbox,y.value]]),e.createElementVNode("label",{for:r.tablename+"-checkbox-"+f(a,n)},null,8,me)])])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.columns,d=>(e.openBlock(),e.createElementBlock("td",{key:d.field,class:e.normalizeClass(r.cellClass)},[e.renderSlot(t.$slots,`cell-${d.field}`,{item:a,value:w(a,d.field),column:d,index:n},()=>[e.createTextVNode(e.toDisplayString(w(a,d.field)),1)],!0)],2))),128))],10,pe))),128)):(e.openBlock(),e.createElementBlock("tr",de,[e.createElementVNode("td",{colspan:u.value,class:"vs-no-data"},[e.renderSlot(t.$slots,"no-data",{},()=>[o[7]||(o[7]=e.createElementVNode("div",{class:"vs-no-data-icon"},[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z"})])],-1)),e.createElementVNode("div",ce,e.toDisplayString(r.noDataText),1),e.createElementVNode("div",be,e.toDisplayString(r.noDataDescription),1)],!0)],8,ve)]))])],2)],512)],2),e.createElementVNode("div",he,[r.showRowEntries?(e.openBlock(),e.createElementBlock("div",ue,"showing "+e.toDisplayString(B.value.start<1?0:B.value.start)+" - "+e.toDisplayString(B.value.end)+" of "+e.toDisplayString(z.value)+" "+e.toDisplayString(r.entriesText),1)):(e.openBlock(),e.createElementBlock("div",xe)),e.createVNode(U,{modelValue:E.value,"onUpdate:modelValue":o[3]||(o[3]=a=>E.value=a),totalRecords:z.value,rowsPerPage:we.value,maxVisible:r.maxVisiblePages,tablename:r.tablename,class:e.normalizeClass(r.paginationClass),onPageChanged:Ve},null,8,["modelValue","totalRecords","rowsPerPage","maxVisible","tablename","class"])])]))}}),[["__scopeId","data-v-73862aa1"]]),ye={install(r){r.component("VsDataTable",$)}};m.VsDataTable=$,m.default=ye,Object.defineProperties(m,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
1
+ (function(h,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(h=typeof globalThis<"u"?globalThis:h||self,e(h.VsDataTable={},h.Vue))})(this,(function(h,e){"use strict";var _=document.createElement("style");_.textContent=`.vs-pagination[data-v-a6d89ca2]{display:flex;align-items:center;justify-content:center;gap:var(--vs-spacing-sm);flex-wrap:wrap}.vs-pagination-button[data-v-a6d89ca2]{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 var(--vs-spacing-sm);border:1px solid var(--vs-table-border);background-color:var(--vs-table-bg);color:var(--vs-dark);text-decoration:none;border-radius:var(--vs-border-radius);font-size:var(--vs-font-size-sm);transition:var(--vs-transition-fast);cursor:pointer}.vs-pagination-button[data-v-a6d89ca2]:hover:not(:disabled){background-color:var(--vs-table-hover-bg);border-color:var(--vs-primary)}.vs-pagination-button.vs-active[data-v-a6d89ca2]{background-color:var(--vs-primary);border-color:var(--vs-primary);color:#fff}.vs-pagination-button[data-v-a6d89ca2]:disabled{opacity:.5;cursor:not-allowed}.vs-pagination-nav[data-v-a6d89ca2]{font-weight:var(--vs-font-weight-bold)}.vs-pagination-ellipsis[data-v-a6d89ca2]{color:var(--vs-secondary);padding:0 var(--vs-spacing-sm);font-size:var(--vs-font-size-sm)}@media (max-width: 768px){.vs-pagination-button[data-v-a6d89ca2]{min-width:28px;height:28px;font-size:12px}}.vs-datatable[data-v-fa66e546]{--vs-table-wrapper-overflow: auto}.vs-table-wrapper[data-v-fa66e546]{overflow:var(--vs-table-wrapper-overflow)}.vs-header-content[data-v-fa66e546]{display:flex;align-items:center;gap:var(--vs-spacing-sm)}.vs-header-label[data-v-fa66e546]{flex:1}.vs-checkbox-column[data-v-fa66e546]{width:50px;text-align:center}.vs-row-clickable[data-v-fa66e546]{cursor:pointer}.vs-row-selected[data-v-fa66e546]{background-color:rgba(var(--vs-primary),.1)}.vs-table-footer[data-v-fa66e546]{display:flex;align-items:center;justify-content:space-between;padding:var(--vs-spacing-sm) 0}.vs-table-info[data-v-fa66e546]{color:var(--vs-secondary);font-size:var(--vs-font-size-md)}.vs-search-container[data-v-fa66e546]{margin-bottom:var(--vs-spacing-md)}:root{--vs-primary: #007bff;--vs-secondary: #6c757d;--vs-success: #28a745;--vs-danger: #dc3545;--vs-warning: #ffc107;--vs-info: #17a2b8;--vs-light: #f8f9fa;--vs-dark: #343a40;--vs-table-bg: #ffffff;--vs-table-border: #dee2e6;--vs-table-header-bg: #f8f9fa;--vs-table-header-color: #495057;--vs-table-hover-bg: #f5f5f5;--vs-table-stripe-bg: #fafafa;--vs-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--vs-font-size: 14px;--vs-font-size-sm: 12px;--vs-font-size-lg: 16px;--vs-font-weight-normal: 400;--vs-font-weight-bold: 600;--vs-spacing-xs: 4px;--vs-spacing-sm: 8px;--vs-spacing-md: 16px;--vs-spacing-lg: 24px;--vs-spacing-xl: 32px;--vs-border-radius: 4px;--vs-border-radius-sm: 2px;--vs-border-radius-lg: 8px;--vs-shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--vs-shadow: 0 2px 4px rgba(0, 0, 0, .1);--vs-shadow-lg: 0 4px 8px rgba(0, 0, 0, .15);--vs-transition: all .2s ease-in-out;--vs-transition-fast: all .15s ease-in-out;--vs-z-dropdown: 1000;--vs-z-sticky: 1020;--vs-z-fixed: 1030;--vs-z-modal: 1040;--vs-z-popover: 1050;--vs-z-tooltip: 1060}.vs-datatable{font-family:var(--vs-font-family);font-size:var(--vs-font-size);line-height:1.5;color:var(--vs-dark);background-color:var(--vs-table-bg);box-sizing:border-box}.vs-datatable *,.vs-datatable *:before,.vs-datatable *:after{box-sizing:border-box}.vs-table-container{position:relative;background-color:var(--vs-table-bg);border:1px solid var(--vs-table-border);border-radius:var(--vs-border-radius);overflow:hidden;box-shadow:var(--vs-shadow-sm)}.vs-table{width:100%;margin:0;border-collapse:separate;border-spacing:0;background-color:var(--vs-table-bg)}.vs-table thead{background-color:var(--vs-table-header-bg)}.vs-table thead th{padding:var(--vs-spacing-sm);font-weight:var(--vs-font-weight-bold);color:var(--vs-table-header-color);text-align:left;vertical-align:middle;border-bottom:2px solid var(--vs-table-border);position:relative;-webkit-user-select:none;user-select:none}.vs-table thead th:first-child{border-top-left-radius:var(--vs-border-radius)}.vs-table thead th:last-child{border-top-right-radius:var(--vs-border-radius)}.vs-table tbody tr{transition:var(--vs-transition-fast);border-bottom:1px solid var(--vs-table-border)}.vs-table tbody tr:hover{background-color:var(--vs-table-hover-bg)}.vs-table tbody tr:nth-child(2n){background-color:var(--vs-table-stripe-bg)}.vs-table tbody tr:last-child{border-bottom:none}.vs-table tbody tr td{padding:var(--vs-spacing-md);vertical-align:middle;border-right:1px solid var(--vs-table-border)}.vs-table tbody tr td:last-child{border-right:none}.vs-sortable{cursor:pointer;position:relative}.vs-sortable:hover{background-color:rgba(var(--vs-primary),.1)}.vs-sortable .vs-sort-icons{display:inline-flex;flex-direction:column;margin-left:var(--vs-spacing-sm);vertical-align:middle}.vs-sortable .vs-sort-icons .vs-sort-icon{font-size:10px;line-height:1;color:var(--vs-secondary);transition:var(--vs-transition-fast);margin:-8px 0}.vs-sortable .vs-sort-icons .vs-sort-icon.vs-sort-asc,.vs-sortable .vs-sort-icons .vs-sort-icon.vs-sort-desc{color:var(--vs-primary)}.vs-sortable .vs-sort-icons .vs-sort-icon svg{fill:#e3e3e3}.vs-sortable .vs-sort-icons .vs-sort-icon.vs-active svg{fill:currentColor}.vs-sortable .vs-sort-priority{display:inline-block;background-color:var(--vs-primary);color:#fff;font-size:10px;padding:2px 6px;border-radius:var(--vs-border-radius-sm);margin-left:var(--vs-spacing-sm);font-weight:var(--vs-font-weight-bold)}.vs-loading{display:flex;align-items:center;justify-content:center;padding:var(--vs-spacing-xl);color:var(--vs-secondary)}.vs-loading .vs-spinner{width:20px;height:20px;border:2px solid var(--vs-table-border);border-top:2px solid var(--vs-primary);border-radius:50%;animation:vs-spin 1s linear infinite;margin-right:var(--vs-spacing-sm)}@keyframes vs-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.vs-no-data{text-align:center;padding:var(--vs-spacing-xl);color:var(--vs-secondary)}.vs-no-data .vs-no-data-icon{width:60px;height:60px;margin:0 auto var(--vs-spacing-md);opacity:.5}.vs-no-data .vs-no-data-message{font-size:var(--vs-font-size-lg);font-weight:var(--vs-font-weight-bold);margin-bottom:var(--vs-spacing-sm)}.vs-no-data .vs-no-data-description{font-size:var(--vs-font-size-sm);color:var(--vs-secondary)}.vs-search{position:relative;margin-bottom:var(--vs-spacing-md)}.vs-search .vs-search-input{width:100%;padding:var(--vs-spacing-sm) var(--vs-spacing-md);padding-left:40px;border:1px solid var(--vs-table-border);border-radius:var(--vs-border-radius);font-size:var(--vs-font-size);transition:var(--vs-transition-fast)}.vs-search .vs-search-input:focus{outline:none;border-color:var(--vs-primary);box-shadow:0 0 0 2px rgba(var(--vs-primary),.25)}.vs-search .vs-search-icon{position:absolute;left:var(--vs-spacing-md);top:50%;transform:translateY(-50%);color:var(--vs-secondary);pointer-events:none}.vs-pagination{display:flex;align-items:center;justify-content:center;gap:var(--vs-spacing-sm);margin-top:var(--vs-spacing-md)}.vs-pagination .vs-pagination-button{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 var(--vs-spacing-sm);border:1px solid var(--vs-table-border);background-color:var(--vs-table-bg);color:var(--vs-dark);text-decoration:none;border-radius:var(--vs-border-radius);font-size:var(--vs-font-size-sm);transition:var(--vs-transition-fast);cursor:pointer}.vs-pagination .vs-pagination-button:hover:not(:disabled){background-color:var(--vs-table-hover-bg);border-color:var(--vs-primary)}.vs-pagination .vs-pagination-button.vs-active{background-color:var(--vs-primary);border-color:var(--vs-primary);color:#fff}.vs-pagination .vs-pagination-button:disabled{opacity:.5;cursor:not-allowed}.vs-pagination .vs-pagination-ellipsis{color:var(--vs-secondary);padding:0 var(--vs-spacing-sm)}.vs-checkbox{display:inline-flex;align-items:center;cursor:pointer}.vs-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;cursor:pointer;accent-color:var(--vs-primary)}.vs-checkbox label{margin:0;cursor:pointer;font-size:var(--vs-font-size-sm)}@media (max-width: 768px){.vs-table-container{overflow-x:auto}.vs-table{min-width:600px}.vs-pagination{flex-wrap:wrap;gap:var(--vs-spacing-xs)}.vs-pagination .vs-pagination-button{min-width:28px;height:28px;font-size:12px}}.vs-text-center{text-align:center}.vs-text-left{text-align:left}.vs-text-right{text-align:right}.vs-text-muted{color:var(--vs-secondary)}.vs-text-primary{color:var(--vs-primary)}.vs-text-success{color:var(--vs-success)}.vs-text-danger{color:var(--vs-danger)}.vs-text-warning{color:var(--vs-warning)}.vs-bg-primary{background-color:var(--vs-primary)}.vs-bg-success{background-color:var(--vs-success)}.vs-bg-danger{background-color:var(--vs-danger)}.vs-bg-warning{background-color:var(--vs-warning)}.vs-bg-light{background-color:var(--vs-light)}.vs-border{border:1px solid var(--vs-table-border)}.vs-border-top{border-top:1px solid var(--vs-table-border)}.vs-border-bottom{border-bottom:1px solid var(--vs-table-border)}.vs-border-left{border-left:1px solid var(--vs-table-border)}.vs-border-right{border-right:1px solid var(--vs-table-border)}.vs-rounded{border-radius:var(--vs-border-radius)}.vs-rounded-sm{border-radius:var(--vs-border-radius-sm)}.vs-rounded-lg{border-radius:var(--vs-border-radius-lg)}.vs-shadow{box-shadow:var(--vs-shadow)}.vs-shadow-sm{box-shadow:var(--vs-shadow-sm)}.vs-shadow-lg{box-shadow:var(--vs-shadow-lg)}.vs-fade-in{animation:vs-fade-in .3s ease-in-out}@keyframes vs-fade-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.vs-slide-in{animation:vs-slide-in .3s ease-in-out}@keyframes vs-slide-in{0%{transform:translate(-20px);opacity:0}to{transform:translate(0);opacity:1}}.vs-datatable.vs-theme-dark{--vs-primary: #0d6efd;--vs-secondary: #6c757d;--vs-success: #198754;--vs-danger: #dc3545;--vs-warning: #ffc107;--vs-info: #0dcaf0;--vs-light: #f8f9fa;--vs-dark: #212529;--vs-table-bg: #1a1a1a;--vs-table-border: #333333;--vs-table-header-bg: #2d2d2d;--vs-table-header-color: #ffffff;--vs-table-hover-bg: #333333;--vs-table-stripe-bg: #222222;color:#fff;background-color:var(--vs-table-bg)}.vs-datatable.vs-theme-minimal{--vs-primary: #000000;--vs-secondary: #666666;--vs-success: #000000;--vs-danger: #000000;--vs-warning: #000000;--vs-info: #000000;--vs-light: #f9f9f9;--vs-dark: #000000;--vs-table-bg: #ffffff;--vs-table-border: #e0e0e0;--vs-table-header-bg: #ffffff;--vs-table-header-color: #000000;--vs-table-hover-bg: #f5f5f5;--vs-table-stripe-bg: #ffffff}.vs-datatable.vs-theme-minimal .vs-table{border:none;box-shadow:none}.vs-datatable.vs-theme-minimal .vs-table thead th{border-bottom:2px solid var(--vs-table-border);font-weight:500}.vs-datatable.vs-theme-minimal .vs-table tbody tr{border-bottom:1px solid var(--vs-table-border)}.vs-datatable.vs-theme-colorful{--vs-primary: #e91e63;--vs-secondary: #9c27b0;--vs-success: #4caf50;--vs-danger: #f44336;--vs-warning: #ff9800;--vs-info: #2196f3;--vs-light: #f3e5f5;--vs-dark: #2e2e2e;--vs-table-bg: #ffffff;--vs-table-border: #e1bee7;--vs-table-header-bg: linear-gradient(135deg, #e91e63, #9c27b0);--vs-table-header-color: #ffffff;--vs-table-hover-bg: #f3e5f5;--vs-table-stripe-bg: #fafafa}.vs-datatable.vs-theme-colorful .vs-table thead th{background:var(--vs-table-header-bg);color:var(--vs-table-header-color);font-weight:600}.vs-datatable.vs-theme-colorful .vs-pagination-button.vs-active{background:linear-gradient(135deg,var(--vs-primary),var(--vs-secondary))}.vs-datatable.vs-theme-corporate{--vs-primary: #1e3a8a;--vs-secondary: #64748b;--vs-success: #059669;--vs-danger: #dc2626;--vs-warning: #d97706;--vs-info: #0891b2;--vs-light: #f8fafc;--vs-dark: #1e293b;--vs-table-bg: #ffffff;--vs-table-border: #e2e8f0;--vs-table-header-bg: #f1f5f9;--vs-table-header-color: #334155;--vs-table-hover-bg: #f8fafc;--vs-table-stripe-bg: #ffffff;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.vs-datatable.vs-theme-corporate .vs-table{border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.vs-datatable.vs-theme-corporate .vs-table thead th{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:16px 20px}.vs-datatable.vs-theme-corporate .vs-table tbody td{padding:16px 20px;font-size:14px}.vs-datatable.vs-theme-compact{--vs-spacing-xs: 2px;--vs-spacing-sm: 4px;--vs-spacing-md: 8px;--vs-spacing-lg: 12px;--vs-spacing-xl: 16px;--vs-font-size: 12px;--vs-font-size-sm: 10px;--vs-font-size-lg: 14px}.vs-datatable.vs-theme-compact .vs-table thead th{padding:var(--vs-spacing-sm) var(--vs-spacing-md);font-size:var(--vs-font-size-sm)}.vs-datatable.vs-theme-compact .vs-table tbody td{padding:var(--vs-spacing-sm) var(--vs-spacing-md);font-size:var(--vs-font-size)}.vs-datatable.vs-theme-compact .vs-pagination-button{min-width:24px;height:24px;font-size:var(--vs-font-size-sm)}.vs-datatable.vs-theme-rounded{--vs-border-radius: 12px;--vs-border-radius-sm: 6px;--vs-border-radius-lg: 16px}.vs-datatable.vs-theme-rounded .vs-table-container{border-radius:var(--vs-border-radius);overflow:hidden}.vs-datatable.vs-theme-rounded .vs-table thead th:first-child{border-top-left-radius:var(--vs-border-radius)}.vs-datatable.vs-theme-rounded .vs-table thead th:last-child{border-top-right-radius:var(--vs-border-radius)}.vs-datatable.vs-theme-rounded .vs-pagination-button{border-radius:var(--vs-border-radius-sm)}.vs-datatable.vs-theme-brand{--vs-primary: #ff6b35;--vs-secondary: #004e89;--vs-success: #00a896;--vs-danger: #e63946;--vs-warning: #f77f00;--vs-info: #06a77d}.vs-datatable.vs-theme-brand .vs-table-container{border:2px solid var(--vs-primary);border-radius:16px;box-shadow:0 8px 32px #ff6b3533}.vs-datatable.vs-theme-brand .vs-table thead th{background:linear-gradient(135deg,var(--vs-primary),var(--vs-secondary));color:#fff;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.1)}.vs-datatable.vs-theme-brand .vs-pagination-button.vs-active{background:var(--vs-primary);transform:scale(1.05)}.vs-datatable.vs-theme-brand .vs-pagination-button:hover:not(:disabled){border-color:var(--vs-primary);transform:translateY(-1px)}
2
+ /*$vite$:1*/`,document.head.appendChild(_);const L=["id"],j=["disabled"],F={key:1,class:"vs-pagination-ellipsis"},H=["id","onClick"],K={key:2,class:"vs-pagination-ellipsis"},A=["disabled"],U=e.defineComponent({__name:"VsPagination",props:{modelValue:{},totalRecords:{},rowsPerPage:{},tablename:{},maxVisible:{},paginationClass:{}},emits:["update:modelValue","page-changed"],setup(r,{emit:u}){const s=r,n=u,b=s.maxVisible??3,d=e.computed({get:()=>s.modelValue,set:v=>{n("update:modelValue",v),n("page-changed",v)}}),y=e.computed(()=>d.value<=Math.floor(b/2)?1:d.value>=p.value-Math.floor(b/2)?Math.max(p.value-b+1,1):d.value-Math.floor(b/2)),c=e.computed(()=>Math.min(y.value+b-1,p.value)),p=e.computed(()=>Math.ceil(s.totalRecords/s.rowsPerPage)),w=e.computed(()=>{const v=[];for(let g=y.value;g<=c.value;g++)v.push(g);return v}),k=v=>{v>=1&&v<=p.value&&(d.value=v)},V=()=>{d.value>1&&d.value--},C=()=>{d.value<p.value&&d.value++};return(v,g)=>(e.openBlock(),e.createElementBlock("div",{class:"vs-pagination",id:r.tablename+"-pagination"},[e.createElementVNode("button",{onClick:V,type:"button",class:"vs-pagination-button vs-pagination-nav",disabled:d.value===1}," ‹‹ ",8,j),y.value>1?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"vs-pagination-button",onClick:g[0]||(g[0]=f=>k(1))}," 1 ")):e.createCommentVNode("",!0),y.value>2?(e.openBlock(),e.createElementBlock("span",F,"...")):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value,f=>(e.openBlock(),e.createElementBlock("button",{key:f,type:"button",class:e.normalizeClass(["vs-pagination-button",{"vs-active":d.value===f}]),id:r.tablename+"-page-"+f,onClick:D=>k(f)},e.toDisplayString(f),11,H))),128)),c.value<p.value-1?(e.openBlock(),e.createElementBlock("span",K,"...")):e.createCommentVNode("",!0),c.value<p.value?(e.openBlock(),e.createElementBlock("button",{key:3,type:"button",class:"vs-pagination-button",onClick:g[1]||(g[1]=f=>k(p.value))},e.toDisplayString(p.value),1)):e.createCommentVNode("",!0),e.createElementVNode("button",{onClick:C,type:"button",class:"vs-pagination-button vs-pagination-nav",disabled:d.value===p.value}," ›› ",8,A)],8,L))}}),O=(r,u)=>{const s=r.__vccOpts||r;for(const[n,b]of u)s[n]=b;return s},Y=O(U,[["__scopeId","data-v-a6d89ca2"]]),Z={class:"vs-search"},q=["placeholder","value"],Q=e.defineComponent({__name:"VsSearch",props:{modelValue:{},placeholder:{}},emits:["update:modelValue","input-typed"],setup(r,{emit:u}){const s=u,n=b=>{const d=b.target;s("update:modelValue",d.value),s("input-typed",d.value)};return(b,d)=>(e.openBlock(),e.createElementBlock("div",Z,[d[0]||(d[0]=e.createElementVNode("div",{class:"vs-search-icon"},[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"})])],-1)),e.createElementVNode("input",{type:"text",class:"vs-search-input",placeholder:r.placeholder,value:r.modelValue,onInput:n},null,40,q)]))}}),G={class:"vs-datatable"},J={key:0,class:"vs-search-container"},W={ref:"tableResponsiveRef",class:"vs-table-wrapper"},X={key:0,class:"vs-checkbox-column",style:{width:"5%"}},ee={class:"vs-checkbox"},te=["id","checked"],ae=["for"],se=["onClick"],oe={class:"vs-header-content"},re={class:"vs-header-label"},ne={key:0,class:"vs-sort-icons"},le={key:1,class:"vs-sort-priority"},ie={key:0},de=["colspan"],ce={key:1},ve=["colspan"],be={class:"vs-no-data-message"},pe={class:"vs-no-data-description"},ge=["onClick"],fe={class:"vs-checkbox"},me=["id","value","checked","onChange"],he=["for"],ue=["onClick"],xe={class:"vs-table-footer"},ye={key:0,class:"vs-table-info"},ke={key:1,class:"vs-table-info"},$=O(e.defineComponent({__name:"VsDataTable",props:{rows:{},columns:{},itemSelected:{default:null},tablename:{default:"default-table"},serverItemsLength:{},showHeader:{type:Boolean,default:!0},headerText:{default:""},loading:{type:Boolean,default:!1},showSearch:{type:Boolean,default:!0},tableClass:{},rowClass:{},showRowEntries:{type:Boolean,default:!0},containerClass:{},headerClass:{},cellClass:{},searchClass:{},paginationClass:{},searchPlaceholder:{default:"Search..."},loadingText:{default:"Loading..."},noDataText:{default:"No data available"},noDataDescription:{default:"Try adjusting your search criteria"},entriesText:{default:"entries"},maxVisiblePages:{default:5},rowKey:{type:[String,Function],default:"id"},sort:{},serverOptions:{}},emits:["table:before-mount","table:mounted","table:unmounted","data-loaded","data-error","row-selected","row-deselected","row-toggled","rows-toggled","all-rows-selected","cell-click","update:itemSelected","update:serverItemsLength","input-typed","page-updated","row-click","sort-changed","update:sort","update:serverOptions"],setup(r,{emit:u}){const s=r,n=u,b=e.useAttrs(),d=e.computed(()=>s.columns.length+(S.value?1:0)),y=e.computed(()=>!!b.onRowClick),c=(a,o)=>typeof s.rowKey=="function"?s.rowKey(a,o??-1):a[s.rowKey]||o,p=a=>m.value.some(o=>c(o,-1)===c(a,-1));function w(a,o){return o.split(".").reduce((t,l)=>t?.[l],a)??""}const k=a=>g.value.some(o=>o.field===a),V=a=>{const o=g.value.find(t=>t.field===a);return o?o.priority??null:null},C=a=>g.value.find(o=>o.field===a)?.order??null,v=e.ref(s.sort??[]);e.watch(()=>s.sort,a=>{a&&(v.value=[...a])},{deep:!0});const g=e.computed(()=>s.serverOptions?.sort??v.value??[]),f=e.computed(()=>{if(s.serverOptions)return s.rows;const a=s.sort??[];if(!a.length)return s.rows;const o=(t,l)=>l.split(".").reduce((i,x)=>i?.[x],t)??"";return[...s.rows].sort((t,l)=>{for(const{field:i,order:x}of a){const z=o(t,i),P=o(l,i);if(z!==P)return x==="asc"?z>P?1:-1:z<P?1:-1}return 0})}),D=(a,o)=>{let t=[];s.serverOptions?t=[...s.serverOptions.sort??[]]:s.sort&&(t=[...s.sort]);const l=t.findIndex(i=>i.field===a);o.shiftKey?l===-1?t.push({field:a,order:"asc"}):t[l]?.order==="asc"?t[l].order="desc":t.splice(l,1):l===-1?t=[{field:a,order:"asc"}]:t[l]?.order==="asc"?t=[{field:a,order:"desc"}]:t=[],t=t.map((i,x)=>({...i,priority:x+1})),s.serverOptions?n("update:serverOptions",{...s.serverOptions,sort:t}):n("update:sort",t),n("sort-changed",{sort:t})},R=e.ref(""),Ve=a=>n("input-typed",a),T=e.ref(10),Ce=e.computed({get:()=>s.serverOptions?.rowsPerPage??T.value,set:a=>{s.serverOptions?n("update:serverOptions",{...s.serverOptions,rowsPerPage:a}):T.value=a}}),M=e.ref(1),B=e.computed({get:()=>s.serverItemsLength!==void 0?s.serverItemsLength:s.rows.length,set:a=>{s.serverItemsLength!==void 0&&n("update:serverItemsLength",a)}}),E=e.computed({get:()=>s.serverOptions?.page??M.value,set:a=>{s.serverOptions?n("update:serverOptions",{...s.serverOptions,page:a}):M.value=a}}),Ee=a=>{s.serverOptions&&n("update:serverOptions",{...s.serverOptions,page:a}),n("page-updated",a)},N=e.computed(()=>{const a=s.serverOptions?.rowsPerPage??10,o=(E.value-1)*a+1,t=Math.min(E.value*a,B.value);return{start:o,end:t}}),m=e.computed({get:()=>s.itemSelected||[],set:a=>n("update:itemSelected",a)}),S=e.computed(()=>s.itemSelected!==null),I=e.computed(()=>s.rows.length>0&&m.value.length===s.rows.length),ze=(a,o,t)=>{t.target.checked?(m.value.some(i=>c(i)===c(a))||m.value.push(a),n("row-selected",a,o)):(m.value=m.value.filter(i=>c(i)!==c(a)),n("row-deselected",a,o))},Be=()=>{m.value=I.value?[]:[...s.rows],n("all-rows-selected",m.value)};return e.onMounted(()=>{n("table:mounted");try{n("data-loaded",s.rows)}catch(a){n("data-error",a)}}),e.onUnmounted(()=>{n("table:unmounted")}),e.onBeforeMount(()=>{n("table:before-mount")}),(a,o)=>(e.openBlock(),e.createElementBlock("div",G,[r.showSearch?(e.openBlock(),e.createElementBlock("div",J,[e.createVNode(Q,{modelValue:R.value,"onUpdate:modelValue":o[0]||(o[0]=t=>R.value=t),onInputTyped:Ve,placeholder:r.searchPlaceholder,class:e.normalizeClass(r.searchClass)},null,8,["modelValue","placeholder","class"]),e.renderSlot(a.$slots,"filterArea",{},void 0,!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["vs-table-container",r.containerClass])},[e.createElementVNode("div",W,[e.createElementVNode("table",{class:e.normalizeClass(["vs-table",r.tableClass])},[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[S.value?(e.openBlock(),e.createElementBlock("th",X,[e.createElementVNode("div",ee,[e.createElementVNode("input",{type:"checkbox",id:r.tablename+"-main-checkbox",checked:I.value,onChange:Be},null,40,te),e.createElementVNode("label",{for:r.tablename+"-main-checkbox"},null,8,ae)])])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.columns,t=>(e.openBlock(),e.createElementBlock("th",{key:t.field,onClick:l=>t.sortable?D(t.field,l):null,style:e.normalizeStyle({width:t.width+"%"}),class:e.normalizeClass([t.sortable?"vs-sortable":"",r.headerClass])},[e.renderSlot(a.$slots,`header-${t.field}`,{column:t},()=>[e.createElementVNode("div",oe,[e.createElementVNode("span",re,e.toDisplayString(t.label),1),t.sortable?(e.openBlock(),e.createElementBlock("div",ne,[e.createElementVNode("span",{class:e.normalizeClass(["vs-sort-icon vs-sort-asc",{"vs-active":k(t.field)&&C(t.field)==="asc"}])},[...o[3]||(o[3]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 -960 960 960",width:"24px"},[e.createElementVNode("path",{d:"m280-400 200-200 200 200H280Z"})],-1)])],2),e.createElementVNode("span",{class:e.normalizeClass(["vs-sort-icon vs-sort-desc",{"vs-active":k(t.field)&&C(t.field)==="desc"}])},[...o[4]||(o[4]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 -960 960 960",width:"24px"},[e.createElementVNode("path",{d:"M480-360 280-560h400L480-360Z"})],-1)])],2)])):e.createCommentVNode("",!0),V(t.field)!==null?(e.openBlock(),e.createElementBlock("span",le,e.toDisplayString(V(t.field)),1)):e.createCommentVNode("",!0)])],!0)],14,se))),128))])]),e.createElementVNode("tbody",null,[r.loading?(e.openBlock(),e.createElementBlock("tr",ie,[e.createElementVNode("td",{colspan:d.value,class:"vs-loading"},[o[5]||(o[5]=e.createElementVNode("div",{class:"vs-spinner"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(r.loadingText),1)],8,de)])):f.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(f.value,(t,l)=>(e.openBlock(),e.createElementBlock("tr",{key:c(t,l),class:e.normalizeClass([r.rowClass,{"vs-row-clickable":y.value},{"vs-row-selected":p(t)}]),onClick:i=>a.$emit("row-click",t,l)},[S.value?(e.openBlock(),e.createElementBlock("td",{key:0,onClick:o[1]||(o[1]=e.withModifiers(()=>{},["stop"])),class:"vs-checkbox-column"},[e.createElementVNode("div",fe,[e.createElementVNode("input",{type:"checkbox",id:r.tablename+"-checkbox-"+c(t,l),value:t,checked:m.value.some(i=>c(i)===c(t,l)),onChange:i=>ze(t,l,i)},null,40,me),e.createElementVNode("label",{for:r.tablename+"-checkbox-"+c(t,l)},null,8,he)])])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.columns,(i,x)=>(e.openBlock(),e.createElementBlock("td",{key:x,class:e.normalizeClass(r.cellClass),onClick:e.withModifiers(z=>n("cell-click",a.row,i,l),["stop"])},[e.renderSlot(a.$slots,`cell-${i.field}`,{item:t,value:w(t,i.field),column:i,index:l},()=>[e.createTextVNode(e.toDisplayString(w(t,i.field)),1)],!0)],10,ue))),128))],10,ge))),128)):(e.openBlock(),e.createElementBlock("tr",ce,[e.createElementVNode("td",{colspan:d.value,class:"vs-no-data"},[e.renderSlot(a.$slots,"no-data",{},()=>[o[6]||(o[6]=e.createElementVNode("div",{class:"vs-no-data-icon"},[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z"})])],-1)),e.createElementVNode("div",be,e.toDisplayString(r.noDataText),1),e.createElementVNode("div",pe,e.toDisplayString(r.noDataDescription),1)],!0)],8,ve)]))])],2)],512)],2),e.createElementVNode("div",xe,[r.showRowEntries?(e.openBlock(),e.createElementBlock("div",ye," showing "+e.toDisplayString(N.value.start<1?0:N.value.start)+" - "+e.toDisplayString(N.value.end)+" of "+e.toDisplayString(B.value)+" "+e.toDisplayString(r.entriesText),1)):(e.openBlock(),e.createElementBlock("div",ke)),e.createVNode(Y,{modelValue:E.value,"onUpdate:modelValue":o[2]||(o[2]=t=>E.value=t),totalRecords:B.value,rowsPerPage:Ce.value,maxVisible:r.maxVisiblePages,tablename:r.tablename,class:e.normalizeClass(r.paginationClass),onPageChanged:Ee},null,8,["modelValue","totalRecords","rowsPerPage","maxVisible","tablename","class"])])]))}}),[["__scopeId","data-v-fa66e546"]]),we={install(r){r.component("VsDataTable",$)}};h.VsDataTable=$,h.default=we,Object.defineProperties(h,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vs-datatable",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "A lightweight Vue 3 datatable component with sorting, slots, and nested object support.",
5
5
  "type": "module",
6
6
  "private": false,
@@ -1,7 +0,0 @@
1
- // 1. Override Bootstrap variables BEFORE importing
2
- $primary: #4CAF50; // Example: change primary color (green)
3
- $table-cell-padding-y: 0.5rem;
4
- $table-cell-padding-x: 0.75rem;
5
-
6
- // 2. Import all Bootstrap
7
- @import "bootstrap/scss/bootstrap";