vue-laravel-crud 2.0.0 → 2.0.1
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/vue-laravel-crud.esm.js +134 -46
- package/dist/vue-laravel-crud.min.js +3 -3
- package/dist/vue-laravel-crud.ssr.js +148 -56
- package/package.json +4 -2
- package/src/components/CrudCards.vue +6 -3
- package/src/components/CrudCustom.vue +2 -2
- package/src/components/CrudHeader.vue +15 -2
- package/src/components/CrudKanban.vue +1 -1
- package/src/components/CrudPagination.vue +75 -15
- package/src/components/CrudTable.vue +2 -2
- package/src/components/table/TableHeader.vue +39 -7
- package/src/components/table/TableRow.vue +5 -1
- package/src/vue-laravel-crud.vue +33 -0
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import Vue from 'vue';
|
|
2
|
+
|
|
1
3
|
function normalizeComponent (
|
|
2
4
|
scriptExports,
|
|
3
5
|
render,
|
|
@@ -296,7 +298,7 @@ var CrudFilters = __component__$f.exports;
|
|
|
296
298
|
|
|
297
299
|
var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
|
|
298
300
|
|
|
299
|
-
var css$6 = "\n.crud-header[data-v-
|
|
301
|
+
var css$6 = "\n.crud-header[data-v-ed8e5777] {\r\n display: flex;\r\n justify-content: space-between;\r\n max-height: 3rem;\n}\n.crud-title[data-v-ed8e5777] {\r\n margin: 0;\n}\n.crud-search[data-v-ed8e5777] {\r\n max-width: 15rem;\n}\n.crud-search .btn[data-v-ed8e5777] {\r\n border-top-left-radius: 0;\r\n border-bottom-left-radius: 0;\r\n border-top-right-radius: 0.375rem;\r\n border-bottom-right-radius: 0.375rem;\n}\n.crud-search .btn.open[data-v-ed8e5777] {\r\n border-top-right-radius: 0;\r\n border-bottom-right-radius: 0;\n}\n.table-options[data-v-ed8e5777] {\r\n margin-bottom: 1rem;\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\n}\r\n";
|
|
300
302
|
n(css$6, {});
|
|
301
303
|
|
|
302
304
|
const _sfc_main$e = {
|
|
@@ -304,7 +306,20 @@ const _sfc_main$e = {
|
|
|
304
306
|
components: {
|
|
305
307
|
CrudFilters
|
|
306
308
|
},
|
|
307
|
-
inject: ['showHeader', 'showTitle', 'title', 'filterSidebarOpen', 'showImport', 'showExport', 'showPrincipalSortBtn', 'principalSort', 'bulkDelete', 'showCreateBtn', 'enableFilters', 'displayModeToggler', 'displayMode', 'displayModes', 'showSearch', 'displaySearch', 'search', 'searchPlaceholder', 'loading', 'messageImport', 'messageExport', 'messageNew', 'createItem', 'toggleDisplayMode', 'togglePrincipalSort', 'confirmBulkDelete', 'toggleFilters', 'refresh']
|
|
309
|
+
inject: ['showHeader', 'showTitle', 'title', 'filterSidebarOpen', 'showImport', 'showExport', 'showPrincipalSortBtn', 'principalSort', 'bulkDelete', 'showCreateBtn', 'enableFilters', 'displayModeToggler', 'displayMode', 'displayModes', 'showSearch', 'displaySearch', 'search', 'searchPlaceholder', 'loading', 'messageImport', 'messageExport', 'messageNew', 'createItem', 'toggleDisplayMode', 'togglePrincipalSort', 'confirmBulkDelete', 'toggleFilters', 'refresh'],
|
|
310
|
+
computed: {
|
|
311
|
+
sidebarVisible() {
|
|
312
|
+
// Acceder directamente al componente padre para obtener reactividad
|
|
313
|
+
return this.$parent ? this.$parent.filterSidebarOpen : this.filterSidebarOpen;
|
|
314
|
+
}
|
|
315
|
+
},
|
|
316
|
+
methods: {
|
|
317
|
+
closeSidebar() {
|
|
318
|
+
if (this.filterSidebarOpen) {
|
|
319
|
+
this.toggleFilters();
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
}
|
|
308
323
|
};
|
|
309
324
|
var _sfc_render$e = function render() {
|
|
310
325
|
var _vm = this,
|
|
@@ -315,16 +330,13 @@ var _sfc_render$e = function render() {
|
|
|
315
330
|
staticClass: "crud-title"
|
|
316
331
|
}, [_vm._v(_vm._s(_vm.title))]) : _vm._e(), _c('b-sidebar', {
|
|
317
332
|
attrs: {
|
|
333
|
+
"visible": _vm.sidebarVisible,
|
|
318
334
|
"title": "Filtrar",
|
|
319
335
|
"right": "",
|
|
320
336
|
"shadow": ""
|
|
321
337
|
},
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
callback: function ($$v) {
|
|
325
|
-
_vm.filterSidebarOpen = $$v;
|
|
326
|
-
},
|
|
327
|
-
expression: "filterSidebarOpen"
|
|
338
|
+
on: {
|
|
339
|
+
"hidden": _vm.closeSidebar
|
|
328
340
|
}
|
|
329
341
|
}, [_c('CrudFilters')], 1), _c('div', {
|
|
330
342
|
staticClass: "table-options"
|
|
@@ -447,7 +459,7 @@ var _sfc_render$e = function render() {
|
|
|
447
459
|
})], 2)], 1)], 1) : _vm._e();
|
|
448
460
|
};
|
|
449
461
|
var _sfc_staticRenderFns$e = [];
|
|
450
|
-
var __component__$e = /*#__PURE__*/normalizeComponent(_sfc_main$e, _sfc_render$e, _sfc_staticRenderFns$e, false, null, "
|
|
462
|
+
var __component__$e = /*#__PURE__*/normalizeComponent(_sfc_main$e, _sfc_render$e, _sfc_staticRenderFns$e, false, null, "ed8e5777", null, null);
|
|
451
463
|
var CrudHeader = __component__$e.exports;
|
|
452
464
|
|
|
453
465
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
@@ -6620,7 +6632,33 @@ var draggable = /*@__PURE__*/getDefaultExportFromCjs(vuedraggable_umdExports);
|
|
|
6620
6632
|
|
|
6621
6633
|
const _sfc_main$d = {
|
|
6622
6634
|
name: 'TableHeader',
|
|
6623
|
-
inject: ['columns', 'enableFilters', 'filtersVisible', 'isColumnHasFilter', 'internalFilterByProp', 'onChangeFilter', 'toggleAll', 'toggleSortFilter', 'sortable', 'optionsLoaded']
|
|
6635
|
+
inject: ['columns', 'enableFilters', 'filtersVisible', 'isColumnHasFilter', 'internalFilterByProp', 'onChangeFilter', 'toggleAll', 'toggleSortFilter', 'sortable', 'optionsLoaded'],
|
|
6636
|
+
data() {
|
|
6637
|
+
return {
|
|
6638
|
+
hoveredColumn: null
|
|
6639
|
+
};
|
|
6640
|
+
},
|
|
6641
|
+
methods: {
|
|
6642
|
+
isSortableColumn(column) {
|
|
6643
|
+
return this.sortable && column.type != 'select' && column.type != 'checkbox' && this.internalFilterByProp(column.prop + '_sort');
|
|
6644
|
+
},
|
|
6645
|
+
shouldShowSortIcon(column) {
|
|
6646
|
+
const sortFilter = this.internalFilterByProp(column.prop + '_sort');
|
|
6647
|
+
return this.hoveredColumn === column.prop || sortFilter.value;
|
|
6648
|
+
},
|
|
6649
|
+
getSortIconDirection(column) {
|
|
6650
|
+
const sortFilter = this.internalFilterByProp(column.prop + '_sort');
|
|
6651
|
+
const sortValue = sortFilter.value;
|
|
6652
|
+
if (sortValue === 'DESC') {
|
|
6653
|
+
return 'down';
|
|
6654
|
+
} else if (sortValue === 'ASC') {
|
|
6655
|
+
return 'up';
|
|
6656
|
+
} else if (this.hoveredColumn === column.prop) {
|
|
6657
|
+
return 'up';
|
|
6658
|
+
}
|
|
6659
|
+
return null;
|
|
6660
|
+
}
|
|
6661
|
+
}
|
|
6624
6662
|
};
|
|
6625
6663
|
var _sfc_render$d = function render() {
|
|
6626
6664
|
var _vm = this,
|
|
@@ -6636,6 +6674,14 @@ var _sfc_render$d = function render() {
|
|
|
6636
6674
|
},
|
|
6637
6675
|
attrs: {
|
|
6638
6676
|
"scope": "col"
|
|
6677
|
+
},
|
|
6678
|
+
on: {
|
|
6679
|
+
"mouseenter": function ($event) {
|
|
6680
|
+
_vm.hoveredColumn = column.prop;
|
|
6681
|
+
},
|
|
6682
|
+
"mouseleave": function ($event) {
|
|
6683
|
+
_vm.hoveredColumn = null;
|
|
6684
|
+
}
|
|
6639
6685
|
}
|
|
6640
6686
|
}, [_vm.enableFilters && _vm.filtersVisible && _vm.isColumnHasFilter(column) && _vm.internalFilterByProp(column.prop) ? _vm._t('filter-' + column.prop, function () {
|
|
6641
6687
|
return [_c('div', {
|
|
@@ -6834,14 +6880,14 @@ var _sfc_render$d = function render() {
|
|
|
6834
6880
|
return _vm.toggleAll($event);
|
|
6835
6881
|
}
|
|
6836
6882
|
}
|
|
6837
|
-
})], 1) : _c('span', [_vm._v(_vm._s(column.label))]), _vm.
|
|
6883
|
+
})], 1) : _c('span', [_vm._v(_vm._s(column.label))]), _vm.isSortableColumn(column) && _vm.shouldShowSortIcon(column) ? _c('span', {
|
|
6838
6884
|
staticClass: "sort-filter",
|
|
6839
6885
|
on: {
|
|
6840
6886
|
"click": function ($event) {
|
|
6841
6887
|
return _vm.toggleSortFilter(column);
|
|
6842
6888
|
}
|
|
6843
6889
|
}
|
|
6844
|
-
}, [
|
|
6890
|
+
}, [_vm.getSortIconDirection(column) === 'up' ? _c('b-icon-sort-up') : _vm._e(), _vm.getSortIconDirection(column) === 'down' ? _c('b-icon-sort-down') : _vm._e()], 1) : _vm._e()], 2);
|
|
6845
6891
|
});
|
|
6846
6892
|
})], 2)]);
|
|
6847
6893
|
};
|
|
@@ -12649,7 +12695,9 @@ var _sfc_render$b = function render() {
|
|
|
12649
12695
|
var _vm = this,
|
|
12650
12696
|
_c = _vm._self._c;
|
|
12651
12697
|
return _c('tr', {
|
|
12652
|
-
|
|
12698
|
+
class: ['item', {
|
|
12699
|
+
'selected': _vm.item.selected
|
|
12700
|
+
}],
|
|
12653
12701
|
on: {
|
|
12654
12702
|
"mouseover": function ($event) {
|
|
12655
12703
|
return _vm.onRowHover(_vm.item, _vm.index);
|
|
@@ -12705,6 +12753,7 @@ var _sfc_render$a = function render() {
|
|
|
12705
12753
|
class: ['table table-hover table-striped w-100', _vm.tableClass]
|
|
12706
12754
|
}, [_c('TableHeader'), _c('draggable', {
|
|
12707
12755
|
attrs: {
|
|
12756
|
+
"list": _vm.items,
|
|
12708
12757
|
"group": _vm.draggableGroup,
|
|
12709
12758
|
"tag": "tbody",
|
|
12710
12759
|
"draggable": _vm.orderable ? '.item' : '.none',
|
|
@@ -12726,13 +12775,6 @@ var _sfc_render$a = function render() {
|
|
|
12726
12775
|
"change": function ($event) {
|
|
12727
12776
|
return _vm.onDraggableChange($event);
|
|
12728
12777
|
}
|
|
12729
|
-
},
|
|
12730
|
-
model: {
|
|
12731
|
-
value: _vm.items,
|
|
12732
|
-
callback: function ($$v) {
|
|
12733
|
-
_vm.items = $$v;
|
|
12734
|
-
},
|
|
12735
|
-
expression: "items"
|
|
12736
12778
|
}
|
|
12737
12779
|
}, _vm._l(_vm.itemsList, function (item, index) {
|
|
12738
12780
|
return _c('TableRow', {
|
|
@@ -12743,7 +12785,7 @@ var _sfc_render$a = function render() {
|
|
|
12743
12785
|
"grouped": _vm.grouped
|
|
12744
12786
|
}
|
|
12745
12787
|
});
|
|
12746
|
-
}), 1)], 1), !_vm.loading && _vm.
|
|
12788
|
+
}), 1)], 1), !_vm.loading && _vm.itemsList && _vm.itemsList.length == 0 && !_vm.infiniteScroll ? _c('p', {
|
|
12747
12789
|
staticClass: "p-3"
|
|
12748
12790
|
}, [_vm._v(" " + _vm._s(_vm.messageEmptyResults) + " ")]) : _vm._e()]) : _vm._e();
|
|
12749
12791
|
};
|
|
@@ -13092,11 +13134,12 @@ var _sfc_staticRenderFns$9 = [];
|
|
|
13092
13134
|
var __component__$9 = /*#__PURE__*/normalizeComponent(_sfc_main$9, _sfc_render$9, _sfc_staticRenderFns$9, false, null, null, null, null);
|
|
13093
13135
|
var ItemCard = __component__$9.exports;
|
|
13094
13136
|
|
|
13137
|
+
// Registrar el componente masonry usando el Plugin
|
|
13138
|
+
Vue.use(Plugin);
|
|
13095
13139
|
const _sfc_main$8 = {
|
|
13096
13140
|
name: 'CrudCards',
|
|
13097
13141
|
components: {
|
|
13098
13142
|
draggable,
|
|
13099
|
-
VueMasonry: Plugin,
|
|
13100
13143
|
ItemCard
|
|
13101
13144
|
},
|
|
13102
13145
|
inject: ['displayMode', 'displayModes', 'items', 'draggableGroup', 'orderable', 'draggableOptions', 'itemsList', 'colLg', 'colXl', 'colMd', 'colSm', 'colXs', 'columns', 'cardClass', 'cardHideFooter', 'itemValue', 'getStateValue', 'getArrayValue', 'showItem', 'updateItem', 'removeItem', 'loading', 'infiniteScroll', 'messageEmptyResults', 'onSort', 'onDraggableAdded', 'onDraggableChange'],
|
|
@@ -13109,7 +13152,7 @@ const _sfc_main$8 = {
|
|
|
13109
13152
|
var _sfc_render$8 = function render() {
|
|
13110
13153
|
var _vm = this,
|
|
13111
13154
|
_c = _vm._self._c;
|
|
13112
|
-
return _c('div', [_c('draggable', {
|
|
13155
|
+
return _vm.displayMode == _vm.displayModes.MODE_CARDS ? _c('div', [_c('draggable', {
|
|
13113
13156
|
attrs: {
|
|
13114
13157
|
"group": _vm.draggableGroup,
|
|
13115
13158
|
"draggable": _vm.orderable ? '.item' : '.none',
|
|
@@ -13177,9 +13220,9 @@ var _sfc_render$8 = function render() {
|
|
|
13177
13220
|
}, {
|
|
13178
13221
|
"item": item
|
|
13179
13222
|
})], 2);
|
|
13180
|
-
}), 0)], 1), !_vm.loading && _vm.
|
|
13223
|
+
}), 0)], 1), !_vm.loading && _vm.itemsList && _vm.itemsList.length == 0 && !_vm.infiniteScroll ? _c('p', {
|
|
13181
13224
|
staticClass: "p-3"
|
|
13182
|
-
}, [_vm._v(" " + _vm._s(_vm.messageEmptyResults) + " ")]) : _vm._e()], 1);
|
|
13225
|
+
}, [_vm._v(" " + _vm._s(_vm.messageEmptyResults) + " ")]) : _vm._e()], 1) : _vm._e();
|
|
13183
13226
|
};
|
|
13184
13227
|
var _sfc_staticRenderFns$8 = [];
|
|
13185
13228
|
var __component__$8 = /*#__PURE__*/normalizeComponent(_sfc_main$8, _sfc_render$8, _sfc_staticRenderFns$8, false, null, null, null, null);
|
|
@@ -13449,7 +13492,7 @@ const _sfc_main$4 = {
|
|
|
13449
13492
|
var _sfc_render$4 = function render() {
|
|
13450
13493
|
var _vm = this,
|
|
13451
13494
|
_c = _vm._self._c;
|
|
13452
|
-
return _c('div', [_c('KanbanBoard')], 1);
|
|
13495
|
+
return _vm.displayMode == _vm.displayModes.MODE_KANBAN ? _c('div', [_c('KanbanBoard')], 1) : _vm._e();
|
|
13453
13496
|
};
|
|
13454
13497
|
var _sfc_staticRenderFns$4 = [];
|
|
13455
13498
|
var __component__$4 = /*#__PURE__*/normalizeComponent(_sfc_main$4, _sfc_render$4, _sfc_staticRenderFns$4, false, null, null, null, null);
|
|
@@ -13462,9 +13505,9 @@ const _sfc_main$3 = {
|
|
|
13462
13505
|
var _sfc_render$3 = function render() {
|
|
13463
13506
|
var _vm = this,
|
|
13464
13507
|
_c = _vm._self._c;
|
|
13465
|
-
return _c('div', [_c('div', {
|
|
13508
|
+
return _vm.displayMode == _vm.displayModes.MODE_CUSTOM ? _c('div', [_c('div', {
|
|
13466
13509
|
class: _vm.listContainerClass
|
|
13467
|
-
}, [!_vm.loading && _vm.
|
|
13510
|
+
}, [!_vm.loading && _vm.itemsList && _vm.itemsList.length == 0 && !_vm.infiniteScroll ? _c('p', {
|
|
13468
13511
|
staticClass: "p-3"
|
|
13469
13512
|
}, [_vm._v(" " + _vm._s(_vm.messageEmptyResults) + " ")]) : _vm._e(), _vm._l(_vm.itemsList, function (item, index) {
|
|
13470
13513
|
return _c('div', {
|
|
@@ -13473,7 +13516,7 @@ var _sfc_render$3 = function render() {
|
|
|
13473
13516
|
}, [_vm._t("card", null, {
|
|
13474
13517
|
"item": item
|
|
13475
13518
|
})], 2);
|
|
13476
|
-
})], 2)]);
|
|
13519
|
+
})], 2)]) : _vm._e();
|
|
13477
13520
|
};
|
|
13478
13521
|
var _sfc_staticRenderFns$3 = [];
|
|
13479
13522
|
var __component__$3 = /*#__PURE__*/normalizeComponent(_sfc_main$3, _sfc_render$3, _sfc_staticRenderFns$3, false, null, null, null, null);
|
|
@@ -13719,7 +13762,7 @@ vueInfiniteLoading.exports;
|
|
|
13719
13762
|
var vueInfiniteLoadingExports = vueInfiniteLoading.exports;
|
|
13720
13763
|
var InfiniteLoading = /*@__PURE__*/getDefaultExportFromCjs(vueInfiniteLoadingExports);
|
|
13721
13764
|
|
|
13722
|
-
var css$1 = "\n.
|
|
13765
|
+
var css$1 = "\n.paginator-container[data-v-2c61ceb1] {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n width: 100%;\r\n margin-top: 1rem;\r\n gap: 0.75rem;\n}\n.paginator-data[data-v-2c61ceb1] {\r\n display: flex;\r\n flex-wrap: wrap;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 0.5rem;\r\n font-size: 0.875rem;\n}\n.paginator-badge[data-v-2c61ceb1] {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 0.25rem;\r\n padding: 0.375rem 0.625rem;\r\n background-color: #f8f9fa;\r\n border: 1px solid #dee2e6;\r\n border-radius: 0.375rem;\r\n color: #495057;\r\n transition: all 0.2s ease;\n}\n.paginator-badge[data-v-2c61ceb1]:hover {\r\n background-color: #e9ecef;\r\n border-color: #ced4da;\n}\n.paginator-label[data-v-2c61ceb1] {\r\n font-weight: 500;\r\n color: #6c757d;\n}\n.paginator-value[data-v-2c61ceb1] {\r\n font-weight: 600;\r\n color: #212529;\n}\n.crud-paginator[data-v-2c61ceb1] {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\n}\r\n";
|
|
13723
13766
|
n(css$1, {});
|
|
13724
13767
|
|
|
13725
13768
|
const _sfc_main$1 = {
|
|
@@ -13763,8 +13806,34 @@ var _sfc_render$1 = function render() {
|
|
|
13763
13806
|
}, [!_vm.loading ? _c('div', {
|
|
13764
13807
|
staticClass: "text-center"
|
|
13765
13808
|
}, [_vm._v(_vm._s(_vm.items.length == 0 ? _vm.messageEmptyResults : _vm.messageNoMore))]) : _vm._e()])]) : _vm._e(), !_vm.infiniteScroll ? _c('div', {
|
|
13809
|
+
staticClass: "paginator-container"
|
|
13810
|
+
}, [_c('div', {
|
|
13766
13811
|
staticClass: "paginator-data"
|
|
13767
|
-
}, [
|
|
13812
|
+
}, [_c('span', {
|
|
13813
|
+
staticClass: "paginator-badge"
|
|
13814
|
+
}, [_c('span', {
|
|
13815
|
+
staticClass: "paginator-label"
|
|
13816
|
+
}, [_vm._v("Filas:")]), _c('span', {
|
|
13817
|
+
staticClass: "paginator-value"
|
|
13818
|
+
}, [_vm._v(_vm._s(_vm.pagination.total))])]), _c('span', {
|
|
13819
|
+
staticClass: "paginator-badge"
|
|
13820
|
+
}, [_c('span', {
|
|
13821
|
+
staticClass: "paginator-label"
|
|
13822
|
+
}, [_vm._v("xPág:")]), _c('span', {
|
|
13823
|
+
staticClass: "paginator-value"
|
|
13824
|
+
}, [_vm._v(_vm._s(_vm.pagination.per_page))])]), _c('span', {
|
|
13825
|
+
staticClass: "paginator-badge"
|
|
13826
|
+
}, [_c('span', {
|
|
13827
|
+
staticClass: "paginator-label"
|
|
13828
|
+
}, [_vm._v("Pág:")]), _c('span', {
|
|
13829
|
+
staticClass: "paginator-value"
|
|
13830
|
+
}, [_vm._v(_vm._s(_vm.pagination.current_page))])]), _vm.selectedItems.length > 0 ? _c('span', {
|
|
13831
|
+
staticClass: "paginator-badge"
|
|
13832
|
+
}, [_c('span', {
|
|
13833
|
+
staticClass: "paginator-label"
|
|
13834
|
+
}, [_vm._v("Seleccionados:")]), _c('span', {
|
|
13835
|
+
staticClass: "paginator-value"
|
|
13836
|
+
}, [_vm._v(_vm._s(_vm.selectedItems.length))])]) : _vm._e()]), _c('div', {
|
|
13768
13837
|
staticClass: "crud-paginator"
|
|
13769
13838
|
}, [_vm.showPaginator ? _c('b-pagination', {
|
|
13770
13839
|
attrs: {
|
|
@@ -13783,10 +13852,10 @@ var _sfc_render$1 = function render() {
|
|
|
13783
13852
|
},
|
|
13784
13853
|
expression: "pagination.current_page"
|
|
13785
13854
|
}
|
|
13786
|
-
}) : _vm._e()], 1) : _vm._e()], 1);
|
|
13855
|
+
}) : _vm._e()], 1)]) : _vm._e()], 1);
|
|
13787
13856
|
};
|
|
13788
13857
|
var _sfc_staticRenderFns$1 = [];
|
|
13789
|
-
var __component__$1 = /*#__PURE__*/normalizeComponent(_sfc_main$1, _sfc_render$1, _sfc_staticRenderFns$1, false, null, "
|
|
13858
|
+
var __component__$1 = /*#__PURE__*/normalizeComponent(_sfc_main$1, _sfc_render$1, _sfc_staticRenderFns$1, false, null, "2c61ceb1", null, null);
|
|
13790
13859
|
var CrudPagination = __component__$1.exports;
|
|
13791
13860
|
|
|
13792
13861
|
var crudData = {
|
|
@@ -13828,7 +13897,8 @@ var crudData = {
|
|
|
13828
13897
|
refreshing: false,
|
|
13829
13898
|
fetchError: false,
|
|
13830
13899
|
principalSort: false,
|
|
13831
|
-
exportFormat: 'JSON'
|
|
13900
|
+
exportFormat: 'JSON',
|
|
13901
|
+
fileImport: null
|
|
13832
13902
|
};
|
|
13833
13903
|
},
|
|
13834
13904
|
computed: {
|
|
@@ -19307,17 +19377,31 @@ var crudApi = {
|
|
|
19307
19377
|
filters: JSON.stringify(this.finalFilters)
|
|
19308
19378
|
}
|
|
19309
19379
|
}).then(response => {
|
|
19380
|
+
console.debug("fetchItems - Response recibida:", response.data);
|
|
19310
19381
|
this.makePagination(response.data);
|
|
19382
|
+
|
|
19383
|
+
// Validar que response.data.data existe y es un array
|
|
19311
19384
|
let items = response.data.data;
|
|
19385
|
+
if (!items) {
|
|
19386
|
+
console.warn("fetchItems - response.data.data es undefined o null, usando array vacío");
|
|
19387
|
+
items = [];
|
|
19388
|
+
} else if (!Array.isArray(items)) {
|
|
19389
|
+
console.warn("fetchItems - response.data.data no es un array, tipo:", typeof items, items);
|
|
19390
|
+
items = [];
|
|
19391
|
+
}
|
|
19392
|
+
console.debug("fetchItems - Items procesados:", items, "Cantidad:", items.length);
|
|
19312
19393
|
if (this.grouped) {
|
|
19313
19394
|
this.groupItems(items, concat, this.isSplitGroups);
|
|
19314
19395
|
} else {
|
|
19315
19396
|
if (concat) {
|
|
19316
|
-
|
|
19397
|
+
// Para concat, agregar items al array existente
|
|
19398
|
+
this.items.push(...items);
|
|
19317
19399
|
} else {
|
|
19318
|
-
|
|
19400
|
+
// Mutar el array existente en lugar de reemplazarlo para mantener reactividad con provide/inject
|
|
19401
|
+
this.items.splice(0, this.items.length, ...items);
|
|
19319
19402
|
}
|
|
19320
19403
|
}
|
|
19404
|
+
console.debug("fetchItems - this.items después de asignar:", this.items, "Cantidad:", this.items ? this.items.length : 0);
|
|
19321
19405
|
this.loading = false;
|
|
19322
19406
|
this.firstLoad = true;
|
|
19323
19407
|
this.$emit("afterFetch", {});
|
|
@@ -19345,11 +19429,13 @@ var crudApi = {
|
|
|
19345
19429
|
}, {});
|
|
19346
19430
|
if (splitGroups) {
|
|
19347
19431
|
// Dividimos los grupos en arrays separados
|
|
19348
|
-
|
|
19432
|
+
const groupedItems = Object.entries(groupedMap).map(([groupKey, groupItems]) => ({
|
|
19349
19433
|
groupKey,
|
|
19350
19434
|
groupLabel: groupLabelPre + groupKey + groupLabelAfter,
|
|
19351
19435
|
items: groupItems
|
|
19352
19436
|
}));
|
|
19437
|
+
// Mutar el array existente para mantener reactividad
|
|
19438
|
+
this.items.splice(0, this.items.length, ...groupedItems);
|
|
19353
19439
|
} else {
|
|
19354
19440
|
// Creamos la estructura agrupada en un solo array
|
|
19355
19441
|
for (const [groupKey, groupItems] of Object.entries(groupedMap)) {
|
|
@@ -19362,9 +19448,10 @@ var crudApi = {
|
|
|
19362
19448
|
|
|
19363
19449
|
// Decidimos si concatenar o reemplazar los items existentes
|
|
19364
19450
|
if (concat) {
|
|
19365
|
-
this.items
|
|
19451
|
+
this.items.push(...itemsWithGroup);
|
|
19366
19452
|
} else {
|
|
19367
|
-
|
|
19453
|
+
// Mutar el array existente para mantener reactividad
|
|
19454
|
+
this.items.splice(0, this.items.length, ...itemsWithGroup);
|
|
19368
19455
|
}
|
|
19369
19456
|
}
|
|
19370
19457
|
},
|
|
@@ -19808,14 +19895,14 @@ var crudFilters = {
|
|
|
19808
19895
|
} else if (value == "DESC") {
|
|
19809
19896
|
this.internalFilterByProp(column.prop + "_sort").value = null;
|
|
19810
19897
|
}
|
|
19898
|
+
this.forceRecomputeCounter++;
|
|
19899
|
+
setTimeout(() => {
|
|
19900
|
+
this.refresh();
|
|
19901
|
+
}, 1);
|
|
19811
19902
|
},
|
|
19812
19903
|
toggleFilters() {
|
|
19813
19904
|
this.filtersVisible = !this.filtersVisible;
|
|
19814
|
-
|
|
19815
|
-
this.filterSidebarOpen = this.filtersVisible;
|
|
19816
|
-
} else {
|
|
19817
|
-
this.filterSidebarOpen = false;
|
|
19818
|
-
}
|
|
19905
|
+
this.filterSidebarOpen = this.filtersVisible;
|
|
19819
19906
|
},
|
|
19820
19907
|
resetFilters(refresh = true) {
|
|
19821
19908
|
this.internalFilters = [];
|
|
@@ -20152,7 +20239,7 @@ var crudHelpers = {
|
|
|
20152
20239
|
}
|
|
20153
20240
|
};
|
|
20154
20241
|
|
|
20155
|
-
var css = "tr td[data-v-
|
|
20242
|
+
var css = "tr td[data-v-51b1f76a]:last-child,\ntr td[data-v-51b1f76a]:first-child {\n width: 1%;\n white-space: nowrap; }\n\ntbody tr.selected[data-v-51b1f76a] {\n background-color: #e3f2fd !important; }\n tbody tr.selected[data-v-51b1f76a] td[data-v-51b1f76a] {\n background-color: transparent !important; }\n tbody tr.selected[data-v-51b1f76a][data-v-51b1f76a]:hover {\n background-color: #bbdefb !important; }\n tbody tr.selected[data-v-51b1f76a][data-v-51b1f76a]:hover td[data-v-51b1f76a] {\n background-color: transparent !important; }\n\n.table-striped tbody tr.selected[data-v-51b1f76a]:nth-of-type(odd) {\n background-color: #e3f2fd !important; }\n .table-striped tbody tr.selected[data-v-51b1f76a]:nth-of-type(odd) td[data-v-51b1f76a] {\n background-color: transparent !important; }\n\n.table-striped tbody tr.selected[data-v-51b1f76a]:nth-of-type(even) {\n background-color: #e3f2fd !important; }\n .table-striped tbody tr.selected[data-v-51b1f76a]:nth-of-type(even) td[data-v-51b1f76a] {\n background-color: transparent !important; }\n\n.crud-pagination[data-v-51b1f76a] {\n display: flex;\n align-items: center;\n width: 100%;\n justify-content: center;\n margin-top: 1rem; }\n\n.crud-header[data-v-51b1f76a] {\n display: flex;\n justify-content: space-between;\n max-height: 3rem; }\n .crud-header[data-v-51b1f76a] .crud-title[data-v-51b1f76a] {\n margin: 0; }\n .crud-header[data-v-51b1f76a] .crud-search[data-v-51b1f76a] {\n max-width: 15rem; }\n .crud-header[data-v-51b1f76a] .crud-search[data-v-51b1f76a] .btn[data-v-51b1f76a] {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n border-top-right-radius: 0.375rem;\n border-bottom-right-radius: 0.375rem; }\n .crud-header[data-v-51b1f76a] .crud-search[data-v-51b1f76a] .btn[data-v-51b1f76a].open[data-v-51b1f76a] {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n .crud-header[data-v-51b1f76a] .table-options[data-v-51b1f76a] {\n margin-bottom: 1rem;\n display: flex;\n align-items: center;\n justify-content: flex-end; }\n\n.custom-control[data-v-51b1f76a] {\n position: relative; }\n\n@media (min-width: 992px) {\n .table[data-v-51b1f76a] {\n table-layout: auto; }\n .table[data-v-51b1f76a] tbody[data-v-51b1f76a] td[data-v-51b1f76a] {\n overflow: scroll;\n -ms-overflow-style: none;\n /* IE and Edge */\n scrollbar-width: none;\n /* Firefox */ }\n .table[data-v-51b1f76a] tbody[data-v-51b1f76a] td[data-v-51b1f76a]::-webkit-scrollbar {\n display: none; } }\n\n.kanban-board[data-v-51b1f76a] {\n display: flex;\n gap: 1rem;\n overflow-x: auto;\n padding: 1rem; }\n\n.kanban-column[data-v-51b1f76a] {\n background: #f4f5f7;\n border-radius: 8px;\n width: 300px;\n display: flex;\n flex-direction: column;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); }\n\n.kanban-column-header[data-v-51b1f76a] {\n font-weight: bold;\n padding: 0.5rem;\n background: #dfe1e6;\n border-radius: 8px 8px 0 0;\n text-align: center; }\n\n.kanban-column-body[data-v-51b1f76a] {\n padding: 0.5rem;\n min-height: 100px;\n background: #ffffff;\n border-radius: 0 0 8px 8px;\n display: flex;\n flex-direction: column;\n gap: 0.5rem; }\n\n.kanban-card[data-v-51b1f76a] {\n background: #ffffff;\n border-radius: 4px;\n padding: 1rem;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n cursor: grab; }\n";
|
|
20156
20243
|
n(css, {});
|
|
20157
20244
|
|
|
20158
20245
|
const _sfc_main = {
|
|
@@ -20241,6 +20328,7 @@ const _sfc_main = {
|
|
|
20241
20328
|
bulkDelete: this.bulkDelete,
|
|
20242
20329
|
showImport: this.showImport,
|
|
20243
20330
|
showExport: this.showExport,
|
|
20331
|
+
fileImport: this.fileImport,
|
|
20244
20332
|
markDirty: this.markDirty,
|
|
20245
20333
|
// Data from mixins
|
|
20246
20334
|
crudUuid: this.crudUuid,
|
|
@@ -20652,7 +20740,7 @@ var _sfc_render = function render() {
|
|
|
20652
20740
|
}), _c('CrudPagination'), _c('CrudModals')], 1);
|
|
20653
20741
|
};
|
|
20654
20742
|
var _sfc_staticRenderFns = [];
|
|
20655
|
-
var __component__ = /*#__PURE__*/normalizeComponent(_sfc_main, _sfc_render, _sfc_staticRenderFns, false, null, "
|
|
20743
|
+
var __component__ = /*#__PURE__*/normalizeComponent(_sfc_main, _sfc_render, _sfc_staticRenderFns, false, null, "51b1f76a", null, null);
|
|
20656
20744
|
var component = __component__.exports;
|
|
20657
20745
|
|
|
20658
20746
|
// Import vue component
|