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 +1 -1
- package/dist/vs-datatable.es.js +241 -222
- package/dist/vs-datatable.umd.js +2 -2
- package/package.json +1 -1
- package/src/styles/bootstrap.scss +0 -7
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)}
|
package/dist/vs-datatable.es.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import './index.css';const
|
|
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
|
-
},
|
|
5
|
+
}, ce = ["id", "onClick"], ue = {
|
|
6
6
|
key: 2,
|
|
7
7
|
class: "vs-pagination-ellipsis"
|
|
8
|
-
},
|
|
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(
|
|
20
|
-
const s =
|
|
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
|
-
|
|
23
|
+
n("update:modelValue", p), n("page-changed", p);
|
|
24
24
|
}
|
|
25
|
-
}), x = 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
|
|
28
|
-
p.push(
|
|
27
|
+
for (let b = x.value; b <= h.value; b++)
|
|
28
|
+
p.push(b);
|
|
29
29
|
return p;
|
|
30
|
-
}),
|
|
31
|
-
p >= 1 && p <= f.value && (
|
|
32
|
-
},
|
|
33
|
-
|
|
30
|
+
}), O = (p) => {
|
|
31
|
+
p >= 1 && p <= f.value && (u.value = p);
|
|
32
|
+
}, $ = () => {
|
|
33
|
+
u.value > 1 && u.value--;
|
|
34
34
|
}, R = () => {
|
|
35
|
-
|
|
35
|
+
u.value < f.value && u.value++;
|
|
36
36
|
};
|
|
37
|
-
return (p,
|
|
37
|
+
return (p, b) => (d(), i("div", {
|
|
38
38
|
class: "vs-pagination",
|
|
39
|
-
id:
|
|
39
|
+
id: o.tablename + "-pagination"
|
|
40
40
|
}, [
|
|
41
|
-
|
|
42
|
-
onClick:
|
|
41
|
+
l("button", {
|
|
42
|
+
onClick: $,
|
|
43
43
|
type: "button",
|
|
44
44
|
class: "vs-pagination-button vs-pagination-nav",
|
|
45
|
-
disabled:
|
|
46
|
-
}, " ‹‹ ", 8,
|
|
47
|
-
x.value > 1 ? (
|
|
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:
|
|
52
|
-
}, " 1 ")) :
|
|
53
|
-
x.value > 2 ? (
|
|
54
|
-
(
|
|
55
|
-
key:
|
|
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:
|
|
57
|
+
class: k([
|
|
58
58
|
"vs-pagination-button",
|
|
59
|
-
{ "vs-active":
|
|
59
|
+
{ "vs-active": u.value === w }
|
|
60
60
|
]),
|
|
61
|
-
id:
|
|
62
|
-
onClick: (
|
|
63
|
-
},
|
|
64
|
-
|
|
65
|
-
|
|
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:
|
|
70
|
-
},
|
|
71
|
-
|
|
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:
|
|
76
|
-
}, " ›› ", 8,
|
|
77
|
-
], 8,
|
|
75
|
+
disabled: u.value === f.value
|
|
76
|
+
}, " ›› ", 8, ve)
|
|
77
|
+
], 8, re));
|
|
78
78
|
}
|
|
79
|
-
}),
|
|
80
|
-
const s =
|
|
81
|
-
for (const [
|
|
82
|
-
s[
|
|
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
|
-
},
|
|
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(
|
|
92
|
-
const s =
|
|
93
|
-
const
|
|
94
|
-
s("update:modelValue",
|
|
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,
|
|
97
|
-
|
|
98
|
-
|
|
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
|
-
|
|
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
|
-
|
|
105
|
+
l("input", {
|
|
106
106
|
type: "text",
|
|
107
107
|
class: "vs-search-input",
|
|
108
|
-
placeholder:
|
|
109
|
-
value:
|
|
110
|
-
onInput:
|
|
111
|
-
}, null, 40,
|
|
108
|
+
placeholder: o.placeholder,
|
|
109
|
+
value: o.modelValue,
|
|
110
|
+
onInput: n
|
|
111
|
+
}, null, 40, fe)
|
|
112
112
|
]));
|
|
113
113
|
}
|
|
114
|
-
}),
|
|
114
|
+
}), me = { class: "vs-datatable" }, we = {
|
|
115
115
|
key: 0,
|
|
116
116
|
class: "vs-search-container"
|
|
117
|
-
},
|
|
117
|
+
}, ke = {
|
|
118
118
|
ref: "tableResponsiveRef",
|
|
119
119
|
class: "vs-table-wrapper"
|
|
120
|
-
},
|
|
120
|
+
}, ye = {
|
|
121
121
|
key: 0,
|
|
122
122
|
class: "vs-checkbox-column",
|
|
123
123
|
style: { width: "5%" }
|
|
124
|
-
},
|
|
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
|
-
},
|
|
127
|
+
}, Re = {
|
|
128
128
|
key: 1,
|
|
129
129
|
class: "vs-sort-priority"
|
|
130
|
-
},
|
|
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
|
-
},
|
|
133
|
+
}, Ue = {
|
|
134
134
|
key: 1,
|
|
135
135
|
class: "vs-table-info"
|
|
136
|
-
},
|
|
136
|
+
}, Fe = /* @__PURE__ */ N({
|
|
137
137
|
__name: "VsDataTable",
|
|
138
138
|
props: {
|
|
139
|
-
rows: {
|
|
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: ["
|
|
167
|
-
setup(
|
|
168
|
-
const s =
|
|
169
|
-
function
|
|
170
|
-
return a.split(".").reduce((e,
|
|
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
|
|
173
|
-
const a =
|
|
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) =>
|
|
176
|
-
|
|
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
|
|
184
|
-
if (
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
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
|
-
}),
|
|
195
|
-
let e = [
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
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 ?
|
|
205
|
+
s.serverOptions ? n("update:serverOptions", { ...s.serverOptions, rowsPerPage: t }) : U.value = t;
|
|
202
206
|
}
|
|
203
|
-
}),
|
|
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 &&
|
|
210
|
+
s.serverItemsLength !== void 0 && n("update:serverItemsLength", t);
|
|
207
211
|
}
|
|
208
|
-
}),
|
|
209
|
-
get: () => s.serverOptions?.page ??
|
|
212
|
+
}), _ = v({
|
|
213
|
+
get: () => s.serverOptions?.page ?? F.value,
|
|
210
214
|
set: (t) => {
|
|
211
|
-
s.serverOptions ?
|
|
215
|
+
s.serverOptions ? n("update:serverOptions", { ...s.serverOptions, page: t }) : F.value = t;
|
|
212
216
|
}
|
|
213
|
-
}),
|
|
214
|
-
s.serverOptions &&
|
|
215
|
-
},
|
|
216
|
-
const t = s.serverOptions?.rowsPerPage ?? 10, a = (
|
|
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
|
-
}),
|
|
222
|
+
}), y = v({
|
|
219
223
|
get: () => s.itemSelected || [],
|
|
220
|
-
set: (t) =>
|
|
221
|
-
}),
|
|
222
|
-
() => s.rows.length > 0 &&
|
|
223
|
-
),
|
|
224
|
-
|
|
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 (
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
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
|
-
|
|
236
|
-
])) :
|
|
237
|
-
|
|
238
|
-
class:
|
|
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
|
-
|
|
241
|
-
|
|
242
|
-
class:
|
|
259
|
+
l("div", ke, [
|
|
260
|
+
l("table", {
|
|
261
|
+
class: k(["vs-table", o.tableClass])
|
|
243
262
|
}, [
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
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:
|
|
251
|
-
checked:
|
|
252
|
-
onChange:
|
|
253
|
-
}, null, 40,
|
|
254
|
-
|
|
255
|
-
for:
|
|
256
|
-
}, null, 8,
|
|
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
|
-
])) :
|
|
259
|
-
(
|
|
277
|
+
])) : C("", !0),
|
|
278
|
+
(d(!0), i(B, null, D(o.columns, (e) => (d(), i("th", {
|
|
260
279
|
key: e.field,
|
|
261
|
-
onClick: (
|
|
262
|
-
style:
|
|
263
|
-
class:
|
|
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
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
e.sortable ? (
|
|
269
|
-
|
|
270
|
-
class:
|
|
271
|
-
"vs-active":
|
|
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[
|
|
274
|
-
|
|
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
|
-
|
|
299
|
+
l("path", { d: "m280-400 200-200 200 200H280Z" })
|
|
281
300
|
], -1)
|
|
282
301
|
])], 2),
|
|
283
|
-
|
|
284
|
-
class:
|
|
285
|
-
"vs-active":
|
|
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[
|
|
288
|
-
|
|
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
|
-
|
|
313
|
+
l("path", { d: "M480-360 280-560h400L480-360Z" })
|
|
295
314
|
], -1)
|
|
296
315
|
])], 2)
|
|
297
|
-
])) :
|
|
298
|
-
|
|
316
|
+
])) : C("", !0),
|
|
317
|
+
$(e.field) !== null ? (d(), i("span", Re, m($(e.field)), 1)) : C("", !0)
|
|
299
318
|
])
|
|
300
319
|
], !0)
|
|
301
|
-
], 14,
|
|
320
|
+
], 14, xe))), 128))
|
|
302
321
|
])
|
|
303
322
|
]),
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
colspan:
|
|
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[
|
|
311
|
-
|
|
312
|
-
], 8,
|
|
313
|
-
])) :
|
|
314
|
-
key:
|
|
315
|
-
class:
|
|
316
|
-
|
|
317
|
-
{ "vs-row-clickable":
|
|
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: (
|
|
339
|
+
onClick: (c) => t.$emit("row-click", e, r)
|
|
321
340
|
}, [
|
|
322
|
-
|
|
341
|
+
H.value ? (d(), i("td", {
|
|
323
342
|
key: 0,
|
|
324
|
-
onClick: a[
|
|
343
|
+
onClick: a[1] || (a[1] = Q(() => {
|
|
325
344
|
}, ["stop"])),
|
|
326
345
|
class: "vs-checkbox-column"
|
|
327
346
|
}, [
|
|
328
|
-
|
|
329
|
-
|
|
347
|
+
l("div", ze, [
|
|
348
|
+
l("input", {
|
|
330
349
|
type: "checkbox",
|
|
331
|
-
id:
|
|
350
|
+
id: o.tablename + "-checkbox-" + h(e, r),
|
|
332
351
|
value: e,
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
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
|
-
])) :
|
|
342
|
-
(
|
|
343
|
-
key:
|
|
344
|
-
class:
|
|
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
|
-
|
|
365
|
+
M(t.$slots, `cell-${c.field}`, {
|
|
347
366
|
item: e,
|
|
348
|
-
value:
|
|
349
|
-
column:
|
|
350
|
-
index:
|
|
367
|
+
value: S(e, c.field),
|
|
368
|
+
column: c,
|
|
369
|
+
index: r
|
|
351
370
|
}, () => [
|
|
352
|
-
|
|
371
|
+
ne(m(S(e, c.field)), 1)
|
|
353
372
|
], !0)
|
|
354
|
-
],
|
|
355
|
-
], 10,
|
|
356
|
-
|
|
357
|
-
colspan:
|
|
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
|
-
|
|
361
|
-
a[
|
|
362
|
-
|
|
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
|
-
|
|
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
|
-
|
|
370
|
-
|
|
388
|
+
l("div", Be, m(o.noDataText), 1),
|
|
389
|
+
l("div", De, m(o.noDataDescription), 1)
|
|
371
390
|
], !0)
|
|
372
|
-
], 8,
|
|
391
|
+
], 8, Me)
|
|
373
392
|
]))
|
|
374
393
|
])
|
|
375
394
|
], 2)
|
|
376
395
|
], 512)
|
|
377
396
|
], 2),
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
modelValue:
|
|
382
|
-
"onUpdate:modelValue": a[
|
|
383
|
-
totalRecords:
|
|
384
|
-
rowsPerPage:
|
|
385
|
-
maxVisible:
|
|
386
|
-
tablename:
|
|
387
|
-
class:
|
|
388
|
-
onPageChanged:
|
|
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
|
-
}),
|
|
394
|
-
install(
|
|
395
|
-
|
|
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
|
-
|
|
400
|
-
|
|
418
|
+
Ze as VsDataTable,
|
|
419
|
+
Qe as default
|
|
401
420
|
};
|
package/dist/vs-datatable.umd.js
CHANGED
|
@@ -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