vue-laravel-crud 2.0.0 → 2.0.4
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/README.md +344 -148
- package/dist/vue-laravel-crud.esm.js +472 -145
- package/dist/vue-laravel-crud.min.js +3 -3
- package/dist/vue-laravel-crud.ssr.js +525 -174
- package/package.json +7 -3
- 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 +145 -18
- package/src/components/CrudTable.vue +2 -2
- package/src/components/table/TableCell.vue +52 -2
- package/src/components/table/TableHeader.vue +64 -11
- package/src/components/table/TableRow.vue +5 -1
- package/src/vue-laravel-crud.vue +695 -655
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import Vue from 'vue';
|
|
2
|
+
|
|
1
3
|
function normalizeComponent (
|
|
2
4
|
scriptExports,
|
|
3
5
|
render,
|
|
@@ -296,15 +298,28 @@ 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$
|
|
300
|
-
n(css$
|
|
301
|
+
var css$8 = "\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";
|
|
302
|
+
n(css$8, {});
|
|
301
303
|
|
|
302
304
|
const _sfc_main$e = {
|
|
303
305
|
name: 'CrudHeader',
|
|
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 : {};
|
|
@@ -709,7 +721,7 @@ function toggleClass(el, name, state) {
|
|
|
709
721
|
}
|
|
710
722
|
}
|
|
711
723
|
|
|
712
|
-
function css$
|
|
724
|
+
function css$7(el, prop, val) {
|
|
713
725
|
var style = el && el.style;
|
|
714
726
|
|
|
715
727
|
if (style) {
|
|
@@ -738,7 +750,7 @@ function matrix(el, selfOnly) {
|
|
|
738
750
|
appliedTransforms = el;
|
|
739
751
|
} else {
|
|
740
752
|
do {
|
|
741
|
-
var transform = css$
|
|
753
|
+
var transform = css$7(el, 'transform');
|
|
742
754
|
|
|
743
755
|
if (transform && transform !== 'none') {
|
|
744
756
|
appliedTransforms = transform + ' ' + appliedTransforms;
|
|
@@ -820,11 +832,11 @@ function getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoS
|
|
|
820
832
|
|
|
821
833
|
if (!IE11OrLess) {
|
|
822
834
|
do {
|
|
823
|
-
if (container && container.getBoundingClientRect && (css$
|
|
835
|
+
if (container && container.getBoundingClientRect && (css$7(container, 'transform') !== 'none' || relativeToNonStaticParent && css$7(container, 'position') !== 'static')) {
|
|
824
836
|
var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container
|
|
825
837
|
|
|
826
|
-
top -= containerRect.top + parseInt(css$
|
|
827
|
-
left -= containerRect.left + parseInt(css$
|
|
838
|
+
top -= containerRect.top + parseInt(css$7(container, 'border-top-width'));
|
|
839
|
+
left -= containerRect.left + parseInt(css$7(container, 'border-left-width'));
|
|
828
840
|
bottom = top + elRect.height;
|
|
829
841
|
right = left + elRect.width;
|
|
830
842
|
break;
|
|
@@ -931,7 +943,7 @@ function getChild(el, childNum, options) {
|
|
|
931
943
|
function lastChild(el, selector) {
|
|
932
944
|
var last = el.lastElementChild;
|
|
933
945
|
|
|
934
|
-
while (last && (last === Sortable.ghost || css$
|
|
946
|
+
while (last && (last === Sortable.ghost || css$7(last, 'display') === 'none' || selector && !matches(last, selector))) {
|
|
935
947
|
last = last.previousElementSibling;
|
|
936
948
|
}
|
|
937
949
|
|
|
@@ -1017,7 +1029,7 @@ function getParentAutoScrollElement(el, includeSelf) {
|
|
|
1017
1029
|
do {
|
|
1018
1030
|
// we don't need to get elem css if it isn't even overflowing in the first place (performance)
|
|
1019
1031
|
if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {
|
|
1020
|
-
var elemCSS = css$
|
|
1032
|
+
var elemCSS = css$7(elem);
|
|
1021
1033
|
|
|
1022
1034
|
if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {
|
|
1023
1035
|
if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();
|
|
@@ -1093,19 +1105,19 @@ function clone(el) {
|
|
|
1093
1105
|
}
|
|
1094
1106
|
|
|
1095
1107
|
function setRect(el, rect) {
|
|
1096
|
-
css$
|
|
1097
|
-
css$
|
|
1098
|
-
css$
|
|
1099
|
-
css$
|
|
1100
|
-
css$
|
|
1108
|
+
css$7(el, 'position', 'absolute');
|
|
1109
|
+
css$7(el, 'top', rect.top);
|
|
1110
|
+
css$7(el, 'left', rect.left);
|
|
1111
|
+
css$7(el, 'width', rect.width);
|
|
1112
|
+
css$7(el, 'height', rect.height);
|
|
1101
1113
|
}
|
|
1102
1114
|
|
|
1103
1115
|
function unsetRect(el) {
|
|
1104
|
-
css$
|
|
1105
|
-
css$
|
|
1106
|
-
css$
|
|
1107
|
-
css$
|
|
1108
|
-
css$
|
|
1116
|
+
css$7(el, 'position', '');
|
|
1117
|
+
css$7(el, 'top', '');
|
|
1118
|
+
css$7(el, 'left', '');
|
|
1119
|
+
css$7(el, 'width', '');
|
|
1120
|
+
css$7(el, 'height', '');
|
|
1109
1121
|
}
|
|
1110
1122
|
|
|
1111
1123
|
var expando = 'Sortable' + new Date().getTime();
|
|
@@ -1119,7 +1131,7 @@ function AnimationStateManager() {
|
|
|
1119
1131
|
if (!this.options.animation) return;
|
|
1120
1132
|
var children = [].slice.call(this.el.children);
|
|
1121
1133
|
children.forEach(function (child) {
|
|
1122
|
-
if (css$
|
|
1134
|
+
if (css$7(child, 'display') === 'none' || child === Sortable.ghost) return;
|
|
1123
1135
|
animationStates.push({
|
|
1124
1136
|
target: child,
|
|
1125
1137
|
rect: getRect(child)
|
|
@@ -1226,8 +1238,8 @@ function AnimationStateManager() {
|
|
|
1226
1238
|
},
|
|
1227
1239
|
animate: function animate(target, currentRect, toRect, duration) {
|
|
1228
1240
|
if (duration) {
|
|
1229
|
-
css$
|
|
1230
|
-
css$
|
|
1241
|
+
css$7(target, 'transition', '');
|
|
1242
|
+
css$7(target, 'transform', '');
|
|
1231
1243
|
var elMatrix = matrix(this.el),
|
|
1232
1244
|
scaleX = elMatrix && elMatrix.a,
|
|
1233
1245
|
scaleY = elMatrix && elMatrix.d,
|
|
@@ -1235,15 +1247,15 @@ function AnimationStateManager() {
|
|
|
1235
1247
|
translateY = (currentRect.top - toRect.top) / (scaleY || 1);
|
|
1236
1248
|
target.animatingX = !!translateX;
|
|
1237
1249
|
target.animatingY = !!translateY;
|
|
1238
|
-
css$
|
|
1250
|
+
css$7(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');
|
|
1239
1251
|
repaint(target); // repaint
|
|
1240
1252
|
|
|
1241
|
-
css$
|
|
1242
|
-
css$
|
|
1253
|
+
css$7(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));
|
|
1254
|
+
css$7(target, 'transform', 'translate3d(0,0,0)');
|
|
1243
1255
|
typeof target.animated === 'number' && clearTimeout(target.animated);
|
|
1244
1256
|
target.animated = setTimeout(function () {
|
|
1245
|
-
css$
|
|
1246
|
-
css$
|
|
1257
|
+
css$7(target, 'transition', '');
|
|
1258
|
+
css$7(target, 'transform', '');
|
|
1247
1259
|
target.animated = false;
|
|
1248
1260
|
target.animatingX = false;
|
|
1249
1261
|
target.animatingY = false;
|
|
@@ -1512,12 +1524,12 @@ supportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in
|
|
|
1512
1524
|
return el.style.pointerEvents === 'auto';
|
|
1513
1525
|
}(),
|
|
1514
1526
|
_detectDirection = function _detectDirection(el, options) {
|
|
1515
|
-
var elCSS = css$
|
|
1527
|
+
var elCSS = css$7(el),
|
|
1516
1528
|
elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),
|
|
1517
1529
|
child1 = getChild(el, 0, options),
|
|
1518
1530
|
child2 = getChild(el, 1, options),
|
|
1519
|
-
firstChildCSS = child1 && css$
|
|
1520
|
-
secondChildCSS = child2 && css$
|
|
1531
|
+
firstChildCSS = child1 && css$7(child1),
|
|
1532
|
+
secondChildCSS = child2 && css$7(child2),
|
|
1521
1533
|
firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,
|
|
1522
1534
|
secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;
|
|
1523
1535
|
|
|
@@ -1606,12 +1618,12 @@ _detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {
|
|
|
1606
1618
|
},
|
|
1607
1619
|
_hideGhostForTarget = function _hideGhostForTarget() {
|
|
1608
1620
|
if (!supportCssPointerEvents && ghostEl) {
|
|
1609
|
-
css$
|
|
1621
|
+
css$7(ghostEl, 'display', 'none');
|
|
1610
1622
|
}
|
|
1611
1623
|
},
|
|
1612
1624
|
_unhideGhostForTarget = function _unhideGhostForTarget() {
|
|
1613
1625
|
if (!supportCssPointerEvents && ghostEl) {
|
|
1614
|
-
css$
|
|
1626
|
+
css$7(ghostEl, 'display', '');
|
|
1615
1627
|
}
|
|
1616
1628
|
}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position
|
|
1617
1629
|
|
|
@@ -2146,10 +2158,10 @@ Sortable.prototype =
|
|
|
2146
2158
|
}
|
|
2147
2159
|
|
|
2148
2160
|
var cssMatrix = "matrix(".concat(ghostMatrix.a, ",").concat(ghostMatrix.b, ",").concat(ghostMatrix.c, ",").concat(ghostMatrix.d, ",").concat(ghostMatrix.e, ",").concat(ghostMatrix.f, ")");
|
|
2149
|
-
css$
|
|
2150
|
-
css$
|
|
2151
|
-
css$
|
|
2152
|
-
css$
|
|
2161
|
+
css$7(ghostEl, 'webkitTransform', cssMatrix);
|
|
2162
|
+
css$7(ghostEl, 'mozTransform', cssMatrix);
|
|
2163
|
+
css$7(ghostEl, 'msTransform', cssMatrix);
|
|
2164
|
+
css$7(ghostEl, 'transform', cssMatrix);
|
|
2153
2165
|
lastDx = dx;
|
|
2154
2166
|
lastDy = dy;
|
|
2155
2167
|
touchEvt = touch;
|
|
@@ -2170,7 +2182,7 @@ Sortable.prototype =
|
|
|
2170
2182
|
// Get relatively positioned parent
|
|
2171
2183
|
ghostRelativeParent = container;
|
|
2172
2184
|
|
|
2173
|
-
while (css$
|
|
2185
|
+
while (css$7(ghostRelativeParent, 'position') === 'static' && css$7(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {
|
|
2174
2186
|
ghostRelativeParent = ghostRelativeParent.parentNode;
|
|
2175
2187
|
}
|
|
2176
2188
|
|
|
@@ -2189,22 +2201,22 @@ Sortable.prototype =
|
|
|
2189
2201
|
toggleClass(ghostEl, options.ghostClass, false);
|
|
2190
2202
|
toggleClass(ghostEl, options.fallbackClass, true);
|
|
2191
2203
|
toggleClass(ghostEl, options.dragClass, true);
|
|
2192
|
-
css$
|
|
2193
|
-
css$
|
|
2194
|
-
css$
|
|
2195
|
-
css$
|
|
2196
|
-
css$
|
|
2197
|
-
css$
|
|
2198
|
-
css$
|
|
2199
|
-
css$
|
|
2200
|
-
css$
|
|
2201
|
-
css$
|
|
2202
|
-
css$
|
|
2203
|
-
css$
|
|
2204
|
+
css$7(ghostEl, 'transition', '');
|
|
2205
|
+
css$7(ghostEl, 'transform', '');
|
|
2206
|
+
css$7(ghostEl, 'box-sizing', 'border-box');
|
|
2207
|
+
css$7(ghostEl, 'margin', 0);
|
|
2208
|
+
css$7(ghostEl, 'top', rect.top);
|
|
2209
|
+
css$7(ghostEl, 'left', rect.left);
|
|
2210
|
+
css$7(ghostEl, 'width', rect.width);
|
|
2211
|
+
css$7(ghostEl, 'height', rect.height);
|
|
2212
|
+
css$7(ghostEl, 'opacity', '0.8');
|
|
2213
|
+
css$7(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');
|
|
2214
|
+
css$7(ghostEl, 'zIndex', '100000');
|
|
2215
|
+
css$7(ghostEl, 'pointerEvents', 'none');
|
|
2204
2216
|
Sortable.ghost = ghostEl;
|
|
2205
2217
|
container.appendChild(ghostEl); // Set transform-origin
|
|
2206
2218
|
|
|
2207
|
-
css$
|
|
2219
|
+
css$7(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');
|
|
2208
2220
|
}
|
|
2209
2221
|
},
|
|
2210
2222
|
_onDragStart: function _onDragStart(
|
|
@@ -2273,7 +2285,7 @@ Sortable.prototype =
|
|
|
2273
2285
|
|
|
2274
2286
|
on(document, 'drop', _this); // #1276 fix:
|
|
2275
2287
|
|
|
2276
|
-
css$
|
|
2288
|
+
css$7(dragEl, 'transform', 'translateZ(0)');
|
|
2277
2289
|
}
|
|
2278
2290
|
|
|
2279
2291
|
awaitingDragStarted = true;
|
|
@@ -2282,7 +2294,7 @@ Sortable.prototype =
|
|
|
2282
2294
|
moved = true;
|
|
2283
2295
|
|
|
2284
2296
|
if (Safari) {
|
|
2285
|
-
css$
|
|
2297
|
+
css$7(document.body, 'user-select', 'none');
|
|
2286
2298
|
}
|
|
2287
2299
|
},
|
|
2288
2300
|
// Returns true - if no further action is needed (either inserted or another condition)
|
|
@@ -2502,7 +2514,7 @@ Sortable.prototype =
|
|
|
2502
2514
|
do {
|
|
2503
2515
|
dragIndex -= direction;
|
|
2504
2516
|
sibling = parentEl.children[dragIndex];
|
|
2505
|
-
} while (sibling && (css$
|
|
2517
|
+
} while (sibling && (css$7(sibling, 'display') === 'none' || sibling === ghostEl));
|
|
2506
2518
|
} // If dragEl is already beside target: Do not insert
|
|
2507
2519
|
|
|
2508
2520
|
|
|
@@ -2617,10 +2629,10 @@ Sortable.prototype =
|
|
|
2617
2629
|
this._offUpEvents();
|
|
2618
2630
|
|
|
2619
2631
|
if (Safari) {
|
|
2620
|
-
css$
|
|
2632
|
+
css$7(document.body, 'user-select', '');
|
|
2621
2633
|
}
|
|
2622
2634
|
|
|
2623
|
-
css$
|
|
2635
|
+
css$7(dragEl, 'transform', '');
|
|
2624
2636
|
|
|
2625
2637
|
if (evt) {
|
|
2626
2638
|
if (moved) {
|
|
@@ -2895,7 +2907,7 @@ Sortable.prototype =
|
|
|
2895
2907
|
if (!cloneHidden) {
|
|
2896
2908
|
pluginEvent('hideClone', this);
|
|
2897
2909
|
if (Sortable.eventCanceled) return;
|
|
2898
|
-
css$
|
|
2910
|
+
css$7(cloneEl, 'display', 'none');
|
|
2899
2911
|
|
|
2900
2912
|
if (this.options.removeCloneOnHide && cloneEl.parentNode) {
|
|
2901
2913
|
cloneEl.parentNode.removeChild(cloneEl);
|
|
@@ -2927,7 +2939,7 @@ Sortable.prototype =
|
|
|
2927
2939
|
this.animate(dragEl, cloneEl);
|
|
2928
2940
|
}
|
|
2929
2941
|
|
|
2930
|
-
css$
|
|
2942
|
+
css$7(cloneEl, 'display', '');
|
|
2931
2943
|
cloneHidden = false;
|
|
2932
2944
|
}
|
|
2933
2945
|
}
|
|
@@ -3102,7 +3114,7 @@ if (documentExists) {
|
|
|
3102
3114
|
Sortable.utils = {
|
|
3103
3115
|
on: on,
|
|
3104
3116
|
off: off,
|
|
3105
|
-
css: css$
|
|
3117
|
+
css: css$7,
|
|
3106
3118
|
find: find,
|
|
3107
3119
|
is: function is(el, selector) {
|
|
3108
3120
|
return !!closest(el, selector, el, false);
|
|
@@ -3329,7 +3341,7 @@ var autoScroll = throttle(function (evt, options, rootEl, isFallback) {
|
|
|
3329
3341
|
canScrollY = void 0,
|
|
3330
3342
|
scrollWidth = el.scrollWidth,
|
|
3331
3343
|
scrollHeight = el.scrollHeight,
|
|
3332
|
-
elCSS = css$
|
|
3344
|
+
elCSS = css$7(el),
|
|
3333
3345
|
scrollPosX = el.scrollLeft,
|
|
3334
3346
|
scrollPosY = el.scrollTop;
|
|
3335
3347
|
|
|
@@ -3665,7 +3677,7 @@ function MultiDragPlugin() {
|
|
|
3665
3677
|
if (!this.isMultiDrag) return;
|
|
3666
3678
|
insertMultiDragClones(false, rootEl);
|
|
3667
3679
|
multiDragClones.forEach(function (clone) {
|
|
3668
|
-
css$
|
|
3680
|
+
css$7(clone, 'display', '');
|
|
3669
3681
|
});
|
|
3670
3682
|
cloneNowShown();
|
|
3671
3683
|
clonesHidden = false;
|
|
@@ -3679,7 +3691,7 @@ function MultiDragPlugin() {
|
|
|
3679
3691
|
cancel = _ref5.cancel;
|
|
3680
3692
|
if (!this.isMultiDrag) return;
|
|
3681
3693
|
multiDragClones.forEach(function (clone) {
|
|
3682
|
-
css$
|
|
3694
|
+
css$7(clone, 'display', 'none');
|
|
3683
3695
|
|
|
3684
3696
|
if (_this.options.removeCloneOnHide && clone.parentNode) {
|
|
3685
3697
|
clone.parentNode.removeChild(clone);
|
|
@@ -3723,7 +3735,7 @@ function MultiDragPlugin() {
|
|
|
3723
3735
|
if (this.options.animation) {
|
|
3724
3736
|
multiDragElements.forEach(function (multiDragElement) {
|
|
3725
3737
|
if (multiDragElement === dragEl$1) return;
|
|
3726
|
-
css$
|
|
3738
|
+
css$7(multiDragElement, 'position', 'absolute');
|
|
3727
3739
|
});
|
|
3728
3740
|
var dragRect = getRect(dragEl$1, false, true, true);
|
|
3729
3741
|
multiDragElements.forEach(function (multiDragElement) {
|
|
@@ -6618,9 +6630,38 @@ vuedraggable_umd.exports;
|
|
|
6618
6630
|
var vuedraggable_umdExports = vuedraggable_umd.exports;
|
|
6619
6631
|
var draggable = /*@__PURE__*/getDefaultExportFromCjs(vuedraggable_umdExports);
|
|
6620
6632
|
|
|
6633
|
+
var css$6 = "\r\n/* Fijar ancho de la columna de acciones en el header */\n.actions-header[data-v-37559362] {\r\n width: 1%;\r\n white-space: nowrap;\n}\r\n";
|
|
6634
|
+
n(css$6, {});
|
|
6635
|
+
|
|
6621
6636
|
const _sfc_main$d = {
|
|
6622
6637
|
name: 'TableHeader',
|
|
6623
|
-
inject: ['columns', 'enableFilters', 'filtersVisible', 'isColumnHasFilter', 'internalFilterByProp', 'onChangeFilter', 'toggleAll', 'toggleSortFilter', 'sortable', 'optionsLoaded']
|
|
6638
|
+
inject: ['columns', 'enableFilters', 'filtersVisible', 'isColumnHasFilter', 'internalFilterByProp', 'onChangeFilter', 'toggleAll', 'toggleSortFilter', 'sortable', 'optionsLoaded', 'isAllSelected'],
|
|
6639
|
+
data() {
|
|
6640
|
+
return {
|
|
6641
|
+
hoveredColumn: null
|
|
6642
|
+
};
|
|
6643
|
+
},
|
|
6644
|
+
methods: {
|
|
6645
|
+
isSortableColumn(column) {
|
|
6646
|
+
return this.sortable && column.type != 'select' && column.type != 'checkbox' && this.internalFilterByProp(column.prop + '_sort');
|
|
6647
|
+
},
|
|
6648
|
+
shouldShowSortIcon(column) {
|
|
6649
|
+
const sortFilter = this.internalFilterByProp(column.prop + '_sort');
|
|
6650
|
+
return this.hoveredColumn === column.prop || sortFilter.value;
|
|
6651
|
+
},
|
|
6652
|
+
getSortIconDirection(column) {
|
|
6653
|
+
const sortFilter = this.internalFilterByProp(column.prop + '_sort');
|
|
6654
|
+
const sortValue = sortFilter.value;
|
|
6655
|
+
if (sortValue === 'DESC') {
|
|
6656
|
+
return 'down';
|
|
6657
|
+
} else if (sortValue === 'ASC') {
|
|
6658
|
+
return 'up';
|
|
6659
|
+
} else if (this.hoveredColumn === column.prop) {
|
|
6660
|
+
return 'up';
|
|
6661
|
+
}
|
|
6662
|
+
return null;
|
|
6663
|
+
}
|
|
6664
|
+
}
|
|
6624
6665
|
};
|
|
6625
6666
|
var _sfc_render$d = function render() {
|
|
6626
6667
|
var _vm = this,
|
|
@@ -6631,11 +6672,22 @@ var _sfc_render$d = function render() {
|
|
|
6631
6672
|
return _vm._l(_vm.columns, function (column, indexc) {
|
|
6632
6673
|
return _c('th', {
|
|
6633
6674
|
key: indexc,
|
|
6675
|
+
class: {
|
|
6676
|
+
'actions-header': column.type == 'actions'
|
|
6677
|
+
},
|
|
6634
6678
|
style: {
|
|
6635
|
-
width: column.width ? column.width : 'inherit'
|
|
6679
|
+
width: column.width ? column.width : column.type == 'actions' ? '1%' : 'inherit'
|
|
6636
6680
|
},
|
|
6637
6681
|
attrs: {
|
|
6638
6682
|
"scope": "col"
|
|
6683
|
+
},
|
|
6684
|
+
on: {
|
|
6685
|
+
"mouseenter": function ($event) {
|
|
6686
|
+
_vm.hoveredColumn = column.prop;
|
|
6687
|
+
},
|
|
6688
|
+
"mouseleave": function ($event) {
|
|
6689
|
+
_vm.hoveredColumn = null;
|
|
6690
|
+
}
|
|
6639
6691
|
}
|
|
6640
6692
|
}, [_vm.enableFilters && _vm.filtersVisible && _vm.isColumnHasFilter(column) && _vm.internalFilterByProp(column.prop) ? _vm._t('filter-' + column.prop, function () {
|
|
6641
6693
|
return [_c('div', {
|
|
@@ -6781,21 +6833,19 @@ var _sfc_render$d = function render() {
|
|
|
6781
6833
|
}, [_vm._v(" " + _vm._s(option.text ? option.text : option.label ? option.label : "") + " ")]);
|
|
6782
6834
|
})], 2) : column.type == 'checkbox' ? _c('b-form-checkbox', {
|
|
6783
6835
|
attrs: {
|
|
6784
|
-
"name": "select-all"
|
|
6836
|
+
"name": "select-all",
|
|
6837
|
+
"checked": _vm.isAllSelected
|
|
6785
6838
|
},
|
|
6786
6839
|
on: {
|
|
6787
|
-
"change":
|
|
6788
|
-
return _vm.toggleAll($event);
|
|
6789
|
-
}
|
|
6840
|
+
"change": _vm.toggleAll
|
|
6790
6841
|
}
|
|
6791
6842
|
}) : column.type == 'select' ? _c('b-form-checkbox', {
|
|
6792
6843
|
attrs: {
|
|
6793
|
-
"name": "select-all"
|
|
6844
|
+
"name": "select-all",
|
|
6845
|
+
"checked": _vm.isAllSelected
|
|
6794
6846
|
},
|
|
6795
6847
|
on: {
|
|
6796
|
-
"change":
|
|
6797
|
-
return _vm.toggleAll($event);
|
|
6798
|
-
}
|
|
6848
|
+
"change": _vm.toggleAll
|
|
6799
6849
|
}
|
|
6800
6850
|
}) : _c('input', {
|
|
6801
6851
|
directives: [{
|
|
@@ -6827,26 +6877,33 @@ var _sfc_render$d = function render() {
|
|
|
6827
6877
|
"internalFilterByProp": _vm.internalFilterByProp
|
|
6828
6878
|
}) : column.type == 'select' ? _c('span', [_c('b-form-checkbox', {
|
|
6829
6879
|
attrs: {
|
|
6830
|
-
"name": "select-all"
|
|
6880
|
+
"name": "select-all",
|
|
6881
|
+
"checked": _vm.isAllSelected
|
|
6831
6882
|
},
|
|
6832
6883
|
on: {
|
|
6833
|
-
"change":
|
|
6834
|
-
|
|
6835
|
-
|
|
6884
|
+
"change": _vm.toggleAll
|
|
6885
|
+
}
|
|
6886
|
+
})], 1) : column.type == 'checkbox' ? _c('span', [_c('b-form-checkbox', {
|
|
6887
|
+
attrs: {
|
|
6888
|
+
"name": "select-all",
|
|
6889
|
+
"checked": _vm.isAllSelected
|
|
6890
|
+
},
|
|
6891
|
+
on: {
|
|
6892
|
+
"change": _vm.toggleAll
|
|
6836
6893
|
}
|
|
6837
|
-
})], 1) : _c('span', [_vm._v(_vm._s(column.label))]), _vm.
|
|
6894
|
+
})], 1) : _c('span', [_vm._v(_vm._s(column.label))]), _vm.isSortableColumn(column) && _vm.shouldShowSortIcon(column) ? _c('span', {
|
|
6838
6895
|
staticClass: "sort-filter",
|
|
6839
6896
|
on: {
|
|
6840
6897
|
"click": function ($event) {
|
|
6841
6898
|
return _vm.toggleSortFilter(column);
|
|
6842
6899
|
}
|
|
6843
6900
|
}
|
|
6844
|
-
}, [
|
|
6901
|
+
}, [_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
6902
|
});
|
|
6846
6903
|
})], 2)]);
|
|
6847
6904
|
};
|
|
6848
6905
|
var _sfc_staticRenderFns$d = [];
|
|
6849
|
-
var __component__$d = /*#__PURE__*/normalizeComponent(_sfc_main$d, _sfc_render$d, _sfc_staticRenderFns$d, false, null,
|
|
6906
|
+
var __component__$d = /*#__PURE__*/normalizeComponent(_sfc_main$d, _sfc_render$d, _sfc_staticRenderFns$d, false, null, "37559362", null, null);
|
|
6850
6907
|
var TableHeader = __component__$d.exports;
|
|
6851
6908
|
|
|
6852
6909
|
function commonjsRequire(path) {
|
|
@@ -12542,6 +12599,9 @@ moment$1.exports;
|
|
|
12542
12599
|
var momentExports = moment$1.exports;
|
|
12543
12600
|
var moment = /*@__PURE__*/getDefaultExportFromCjs(momentExports);
|
|
12544
12601
|
|
|
12602
|
+
var css$5 = "\r\n/* Fijar ancho de la columna de acciones */\n.actions-cell[data-v-3309b7c7] {\r\n width: 1%;\r\n white-space: nowrap;\n}\n.actions-button-group[data-v-3309b7c7] {\r\n display: inline-flex;\r\n flex-wrap: nowrap;\n}\n.actions-dropdown[data-v-3309b7c7] {\r\n display: inline-block;\n}\r\n\r\n/* Asegurar que los botones no se expandan */\n.actions-button-group .btn[data-v-3309b7c7] {\r\n flex-shrink: 0;\n}\r\n";
|
|
12603
|
+
n(css$5, {});
|
|
12604
|
+
|
|
12545
12605
|
const _sfc_main$c = {
|
|
12546
12606
|
name: 'TableCell',
|
|
12547
12607
|
props: {
|
|
@@ -12561,6 +12621,9 @@ var _sfc_render$c = function render() {
|
|
|
12561
12621
|
var _vm = this,
|
|
12562
12622
|
_c = _vm._self._c;
|
|
12563
12623
|
return _c('td', {
|
|
12624
|
+
class: {
|
|
12625
|
+
'actions-cell': _vm.column.type == 'actions'
|
|
12626
|
+
},
|
|
12564
12627
|
attrs: {
|
|
12565
12628
|
"scope": _vm.column.prop == 'id' ? 'row' : ''
|
|
12566
12629
|
}
|
|
@@ -12586,13 +12649,68 @@ var _sfc_render$c = function render() {
|
|
|
12586
12649
|
},
|
|
12587
12650
|
expression: "item.selected"
|
|
12588
12651
|
}
|
|
12652
|
+
})], 1) : _vm.column.type == 'checkbox' ? _c('span', [_c('b-form-checkbox', {
|
|
12653
|
+
on: {
|
|
12654
|
+
"change": function ($event) {
|
|
12655
|
+
return _vm.onCheckSelect($event, _vm.item);
|
|
12656
|
+
}
|
|
12657
|
+
},
|
|
12658
|
+
model: {
|
|
12659
|
+
value: _vm.item.selected,
|
|
12660
|
+
callback: function ($$v) {
|
|
12661
|
+
_vm.$set(_vm.item, "selected", $$v);
|
|
12662
|
+
},
|
|
12663
|
+
expression: "item.selected"
|
|
12664
|
+
}
|
|
12589
12665
|
})], 1) : _vm.column.type == 'state' && _vm.optionsLoaded ? _c('span', [_vm._v(" " + _vm._s(_vm.getStateValue(_vm.itemValue(_vm.column, _vm.item), _vm.column.options)) + " ")]) : _vm.column.type == 'array' && _vm.optionsLoaded ? _c('span', [_vm._v(" " + _vm._s(_vm.getArrayValue(_vm.itemValue(_vm.column, _vm.item), _vm.column.displayProp, _vm.column.options)) + " ")]) : _c('span', [_vm._v(" " + _vm._s(_vm.itemValue(_vm.column, _vm.item)) + " ")])];
|
|
12590
12666
|
}, {
|
|
12591
12667
|
"item": _vm.item,
|
|
12592
12668
|
"index": _vm.index,
|
|
12593
12669
|
"itemindex": _vm.index,
|
|
12594
12670
|
"columnindex": _vm.columnIndex
|
|
12595
|
-
}), _vm.column.type == 'actions' ? _c('b-
|
|
12671
|
+
}), _vm.column.type == 'actions' && _vm.column.useDropdown ? _c('b-dropdown', {
|
|
12672
|
+
staticClass: "actions-dropdown",
|
|
12673
|
+
attrs: {
|
|
12674
|
+
"variant": "secondary",
|
|
12675
|
+
"size": "sm"
|
|
12676
|
+
},
|
|
12677
|
+
scopedSlots: _vm._u([{
|
|
12678
|
+
key: "button-content",
|
|
12679
|
+
fn: function () {
|
|
12680
|
+
return [_c('b-icon-list')];
|
|
12681
|
+
},
|
|
12682
|
+
proxy: true
|
|
12683
|
+
}], null, false, 4241371057)
|
|
12684
|
+
}, [_vm._t("rowAction", function () {
|
|
12685
|
+
return [_c('b-dropdown-item', {
|
|
12686
|
+
on: {
|
|
12687
|
+
"click": function ($event) {
|
|
12688
|
+
return _vm.showItem(_vm.item.id, _vm.index);
|
|
12689
|
+
}
|
|
12690
|
+
}
|
|
12691
|
+
}, [_c('b-icon-eye'), _vm._v(" Ver ")], 1), _c('b-dropdown-item', {
|
|
12692
|
+
on: {
|
|
12693
|
+
"click": function ($event) {
|
|
12694
|
+
return _vm.updateItem(_vm.item.id, _vm.index);
|
|
12695
|
+
}
|
|
12696
|
+
}
|
|
12697
|
+
}, [_c('b-icon-pencil'), _vm._v(" Editar ")], 1), _c('b-dropdown-item', {
|
|
12698
|
+
staticClass: "text-danger",
|
|
12699
|
+
on: {
|
|
12700
|
+
"click": function ($event) {
|
|
12701
|
+
return _vm.removeItem(_vm.item.id, _vm.index);
|
|
12702
|
+
}
|
|
12703
|
+
}
|
|
12704
|
+
}, [_c('b-icon-trash'), _vm._v(" Eliminar ")], 1)];
|
|
12705
|
+
}, {
|
|
12706
|
+
"item": _vm.item,
|
|
12707
|
+
"index": _vm.index,
|
|
12708
|
+
"showItem": _vm.showItem,
|
|
12709
|
+
"updateItem": _vm.updateItem,
|
|
12710
|
+
"removeItem": _vm.removeItem
|
|
12711
|
+
})], 2) : _vm.column.type == 'actions' ? _c('b-button-group', {
|
|
12712
|
+
staticClass: "actions-button-group"
|
|
12713
|
+
}, [_vm._t("rowAction", function () {
|
|
12596
12714
|
return [_c('b-button', {
|
|
12597
12715
|
attrs: {
|
|
12598
12716
|
"variant": "primary"
|
|
@@ -12630,7 +12748,7 @@ var _sfc_render$c = function render() {
|
|
|
12630
12748
|
})], 2) : _vm._e()], 2);
|
|
12631
12749
|
};
|
|
12632
12750
|
var _sfc_staticRenderFns$c = [];
|
|
12633
|
-
var __component__$c = /*#__PURE__*/normalizeComponent(_sfc_main$c, _sfc_render$c, _sfc_staticRenderFns$c, false, null,
|
|
12751
|
+
var __component__$c = /*#__PURE__*/normalizeComponent(_sfc_main$c, _sfc_render$c, _sfc_staticRenderFns$c, false, null, "3309b7c7", null, null);
|
|
12634
12752
|
var TableCell = __component__$c.exports;
|
|
12635
12753
|
|
|
12636
12754
|
const _sfc_main$b = {
|
|
@@ -12649,7 +12767,9 @@ var _sfc_render$b = function render() {
|
|
|
12649
12767
|
var _vm = this,
|
|
12650
12768
|
_c = _vm._self._c;
|
|
12651
12769
|
return _c('tr', {
|
|
12652
|
-
|
|
12770
|
+
class: ['item', {
|
|
12771
|
+
'selected': _vm.item.selected
|
|
12772
|
+
}],
|
|
12653
12773
|
on: {
|
|
12654
12774
|
"mouseover": function ($event) {
|
|
12655
12775
|
return _vm.onRowHover(_vm.item, _vm.index);
|
|
@@ -12705,6 +12825,7 @@ var _sfc_render$a = function render() {
|
|
|
12705
12825
|
class: ['table table-hover table-striped w-100', _vm.tableClass]
|
|
12706
12826
|
}, [_c('TableHeader'), _c('draggable', {
|
|
12707
12827
|
attrs: {
|
|
12828
|
+
"list": _vm.items,
|
|
12708
12829
|
"group": _vm.draggableGroup,
|
|
12709
12830
|
"tag": "tbody",
|
|
12710
12831
|
"draggable": _vm.orderable ? '.item' : '.none',
|
|
@@ -12726,13 +12847,6 @@ var _sfc_render$a = function render() {
|
|
|
12726
12847
|
"change": function ($event) {
|
|
12727
12848
|
return _vm.onDraggableChange($event);
|
|
12728
12849
|
}
|
|
12729
|
-
},
|
|
12730
|
-
model: {
|
|
12731
|
-
value: _vm.items,
|
|
12732
|
-
callback: function ($$v) {
|
|
12733
|
-
_vm.items = $$v;
|
|
12734
|
-
},
|
|
12735
|
-
expression: "items"
|
|
12736
12850
|
}
|
|
12737
12851
|
}, _vm._l(_vm.itemsList, function (item, index) {
|
|
12738
12852
|
return _c('TableRow', {
|
|
@@ -12743,7 +12857,7 @@ var _sfc_render$a = function render() {
|
|
|
12743
12857
|
"grouped": _vm.grouped
|
|
12744
12858
|
}
|
|
12745
12859
|
});
|
|
12746
|
-
}), 1)], 1), !_vm.loading && _vm.
|
|
12860
|
+
}), 1)], 1), !_vm.loading && _vm.itemsList && _vm.itemsList.length == 0 && !_vm.infiniteScroll ? _c('p', {
|
|
12747
12861
|
staticClass: "p-3"
|
|
12748
12862
|
}, [_vm._v(" " + _vm._s(_vm.messageEmptyResults) + " ")]) : _vm._e()]) : _vm._e();
|
|
12749
12863
|
};
|
|
@@ -13092,11 +13206,12 @@ var _sfc_staticRenderFns$9 = [];
|
|
|
13092
13206
|
var __component__$9 = /*#__PURE__*/normalizeComponent(_sfc_main$9, _sfc_render$9, _sfc_staticRenderFns$9, false, null, null, null, null);
|
|
13093
13207
|
var ItemCard = __component__$9.exports;
|
|
13094
13208
|
|
|
13209
|
+
// Registrar el componente masonry usando el Plugin
|
|
13210
|
+
Vue.use(Plugin);
|
|
13095
13211
|
const _sfc_main$8 = {
|
|
13096
13212
|
name: 'CrudCards',
|
|
13097
13213
|
components: {
|
|
13098
13214
|
draggable,
|
|
13099
|
-
VueMasonry: Plugin,
|
|
13100
13215
|
ItemCard
|
|
13101
13216
|
},
|
|
13102
13217
|
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 +13224,7 @@ const _sfc_main$8 = {
|
|
|
13109
13224
|
var _sfc_render$8 = function render() {
|
|
13110
13225
|
var _vm = this,
|
|
13111
13226
|
_c = _vm._self._c;
|
|
13112
|
-
return _c('div', [_c('draggable', {
|
|
13227
|
+
return _vm.displayMode == _vm.displayModes.MODE_CARDS ? _c('div', [_c('draggable', {
|
|
13113
13228
|
attrs: {
|
|
13114
13229
|
"group": _vm.draggableGroup,
|
|
13115
13230
|
"draggable": _vm.orderable ? '.item' : '.none',
|
|
@@ -13177,9 +13292,9 @@ var _sfc_render$8 = function render() {
|
|
|
13177
13292
|
}, {
|
|
13178
13293
|
"item": item
|
|
13179
13294
|
})], 2);
|
|
13180
|
-
}), 0)], 1), !_vm.loading && _vm.
|
|
13295
|
+
}), 0)], 1), !_vm.loading && _vm.itemsList && _vm.itemsList.length == 0 && !_vm.infiniteScroll ? _c('p', {
|
|
13181
13296
|
staticClass: "p-3"
|
|
13182
|
-
}, [_vm._v(" " + _vm._s(_vm.messageEmptyResults) + " ")]) : _vm._e()], 1);
|
|
13297
|
+
}, [_vm._v(" " + _vm._s(_vm.messageEmptyResults) + " ")]) : _vm._e()], 1) : _vm._e();
|
|
13183
13298
|
};
|
|
13184
13299
|
var _sfc_staticRenderFns$8 = [];
|
|
13185
13300
|
var __component__$8 = /*#__PURE__*/normalizeComponent(_sfc_main$8, _sfc_render$8, _sfc_staticRenderFns$8, false, null, null, null, null);
|
|
@@ -13449,7 +13564,7 @@ const _sfc_main$4 = {
|
|
|
13449
13564
|
var _sfc_render$4 = function render() {
|
|
13450
13565
|
var _vm = this,
|
|
13451
13566
|
_c = _vm._self._c;
|
|
13452
|
-
return _c('div', [_c('KanbanBoard')], 1);
|
|
13567
|
+
return _vm.displayMode == _vm.displayModes.MODE_KANBAN ? _c('div', [_c('KanbanBoard')], 1) : _vm._e();
|
|
13453
13568
|
};
|
|
13454
13569
|
var _sfc_staticRenderFns$4 = [];
|
|
13455
13570
|
var __component__$4 = /*#__PURE__*/normalizeComponent(_sfc_main$4, _sfc_render$4, _sfc_staticRenderFns$4, false, null, null, null, null);
|
|
@@ -13462,9 +13577,9 @@ const _sfc_main$3 = {
|
|
|
13462
13577
|
var _sfc_render$3 = function render() {
|
|
13463
13578
|
var _vm = this,
|
|
13464
13579
|
_c = _vm._self._c;
|
|
13465
|
-
return _c('div', [_c('div', {
|
|
13580
|
+
return _vm.displayMode == _vm.displayModes.MODE_CUSTOM ? _c('div', [_c('div', {
|
|
13466
13581
|
class: _vm.listContainerClass
|
|
13467
|
-
}, [!_vm.loading && _vm.
|
|
13582
|
+
}, [!_vm.loading && _vm.itemsList && _vm.itemsList.length == 0 && !_vm.infiniteScroll ? _c('p', {
|
|
13468
13583
|
staticClass: "p-3"
|
|
13469
13584
|
}, [_vm._v(" " + _vm._s(_vm.messageEmptyResults) + " ")]) : _vm._e(), _vm._l(_vm.itemsList, function (item, index) {
|
|
13470
13585
|
return _c('div', {
|
|
@@ -13473,7 +13588,7 @@ var _sfc_render$3 = function render() {
|
|
|
13473
13588
|
}, [_vm._t("card", null, {
|
|
13474
13589
|
"item": item
|
|
13475
13590
|
})], 2);
|
|
13476
|
-
})], 2)]);
|
|
13591
|
+
})], 2)]) : _vm._e();
|
|
13477
13592
|
};
|
|
13478
13593
|
var _sfc_staticRenderFns$3 = [];
|
|
13479
13594
|
var __component__$3 = /*#__PURE__*/normalizeComponent(_sfc_main$3, _sfc_render$3, _sfc_staticRenderFns$3, false, null, null, null, null);
|
|
@@ -13719,7 +13834,7 @@ vueInfiniteLoading.exports;
|
|
|
13719
13834
|
var vueInfiniteLoadingExports = vueInfiniteLoading.exports;
|
|
13720
13835
|
var InfiniteLoading = /*@__PURE__*/getDefaultExportFromCjs(vueInfiniteLoadingExports);
|
|
13721
13836
|
|
|
13722
|
-
var css$1 = "\n.
|
|
13837
|
+
var css$1 = "\n.paginator-container[data-v-11671e09] {\r\n display: grid;\r\n grid-template-columns: 1fr auto 1fr;\r\n align-items: center;\r\n width: 100%;\r\n margin-top: 1rem;\r\n gap: 1rem;\n}\n.paginator-data[data-v-11671e09] {\r\n display: flex;\r\n flex-wrap: nowrap;\r\n justify-content: flex-start;\r\n align-items: center;\r\n gap: 0.5rem;\r\n font-size: 0.875rem;\r\n grid-column: 1;\n}\n.paginator-badge[data-v-11671e09] {\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-11671e09]:hover {\r\n background-color: #e9ecef;\r\n border-color: #ced4da;\n}\n.paginator-label[data-v-11671e09] {\r\n font-weight: 500;\r\n color: #6c757d;\n}\n.paginator-value[data-v-11671e09] {\r\n font-weight: 600;\r\n color: #212529;\n}\n.paginator-dropdown[data-v-11671e09] {\r\n font-size: 0.875rem;\n}\n.paginator-dropdown[data-v-11671e09] .btn {\r\n padding: 0.375rem 0.625rem;\r\n font-size: 0.875rem;\r\n background-color: #f8f9fa;\r\n border: 1px solid #dee2e6;\r\n color: #495057;\n}\n.paginator-dropdown[data-v-11671e09] .btn:hover {\r\n background-color: #e9ecef;\r\n border-color: #ced4da;\n}\n.crud-paginator[data-v-11671e09] {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n grid-column: 2;\n}\n.paginator-badge-dropdown[data-v-11671e09] {\r\n z-index: 1;\r\n position: relative;\n}\n.paginator-badge-dropdown[data-v-11671e09] .btn {\r\n padding: 0.375rem 0.625rem;\r\n font-size: 0.875rem;\r\n background-color: #f8f9fa;\r\n border: 1px solid #dee2e6;\r\n color: #495057;\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 0.25rem;\n}\n.paginator-badge-dropdown[data-v-11671e09] .btn:hover {\r\n background-color: #e9ecef;\r\n border-color: #ced4da;\n}\r\n";
|
|
13723
13838
|
n(css$1, {});
|
|
13724
13839
|
|
|
13725
13840
|
const _sfc_main$1 = {
|
|
@@ -13727,7 +13842,18 @@ const _sfc_main$1 = {
|
|
|
13727
13842
|
components: {
|
|
13728
13843
|
InfiniteLoading
|
|
13729
13844
|
},
|
|
13730
|
-
inject: ['infiniteScroll', 'infiniteScrollKey', 'messageLoading', 'messageNoMore', 'messageEmptyResults', 'loading', 'items', 'pagination', 'selectedItems', 'showPaginator', 'infiniteHandler', 'onPaginationChange']
|
|
13845
|
+
inject: ['infiniteScroll', 'infiniteScrollKey', 'messageLoading', 'messageNoMore', 'messageEmptyResults', 'loading', 'items', 'pagination', 'selectedItems', 'showPaginator', 'infiniteHandler', 'onPaginationChange', 'onPerPageChange', 'clearSelection'],
|
|
13846
|
+
data() {
|
|
13847
|
+
return {
|
|
13848
|
+
perPageOptions: [10, 20, 50, 100]
|
|
13849
|
+
};
|
|
13850
|
+
},
|
|
13851
|
+
computed: {
|
|
13852
|
+
selectedItemsCount() {
|
|
13853
|
+
// Computed para forzar reactividad del contador
|
|
13854
|
+
return this.selectedItems ? this.selectedItems.length : 0;
|
|
13855
|
+
}
|
|
13856
|
+
}
|
|
13731
13857
|
};
|
|
13732
13858
|
var _sfc_render$1 = function render() {
|
|
13733
13859
|
var _vm = this,
|
|
@@ -13763,8 +13889,48 @@ var _sfc_render$1 = function render() {
|
|
|
13763
13889
|
}, [!_vm.loading ? _c('div', {
|
|
13764
13890
|
staticClass: "text-center"
|
|
13765
13891
|
}, [_vm._v(_vm._s(_vm.items.length == 0 ? _vm.messageEmptyResults : _vm.messageNoMore))]) : _vm._e()])]) : _vm._e(), !_vm.infiniteScroll ? _c('div', {
|
|
13892
|
+
staticClass: "paginator-container"
|
|
13893
|
+
}, [_c('div', {
|
|
13766
13894
|
staticClass: "paginator-data"
|
|
13767
|
-
}, [
|
|
13895
|
+
}, [_c('span', {
|
|
13896
|
+
staticClass: "paginator-badge"
|
|
13897
|
+
}, [_c('span', {
|
|
13898
|
+
staticClass: "paginator-label"
|
|
13899
|
+
}, [_vm._v("Filas:")]), _c('span', {
|
|
13900
|
+
staticClass: "paginator-value"
|
|
13901
|
+
}, [_vm._v(_vm._s(_vm.pagination.total))])]), _c('b-dropdown', {
|
|
13902
|
+
staticClass: "paginator-dropdown",
|
|
13903
|
+
attrs: {
|
|
13904
|
+
"variant": "outline-secondary",
|
|
13905
|
+
"size": "sm",
|
|
13906
|
+
"text": `xPág: ${_vm.pagination.per_page}`
|
|
13907
|
+
}
|
|
13908
|
+
}, _vm._l(_vm.perPageOptions, function (option) {
|
|
13909
|
+
return _c('b-dropdown-item', {
|
|
13910
|
+
key: option,
|
|
13911
|
+
attrs: {
|
|
13912
|
+
"active": _vm.pagination.per_page === option
|
|
13913
|
+
},
|
|
13914
|
+
on: {
|
|
13915
|
+
"click": function ($event) {
|
|
13916
|
+
return _vm.onPerPageChange(option);
|
|
13917
|
+
}
|
|
13918
|
+
}
|
|
13919
|
+
}, [_vm._v(" " + _vm._s(option) + " ")]);
|
|
13920
|
+
}), 1), _vm.selectedItemsCount > 0 ? _c('b-dropdown', {
|
|
13921
|
+
staticClass: "paginator-dropdown paginator-badge-dropdown",
|
|
13922
|
+
attrs: {
|
|
13923
|
+
"variant": "outline-secondary",
|
|
13924
|
+
"size": "sm",
|
|
13925
|
+
"text": `Seleccionados: ${_vm.selectedItemsCount}`
|
|
13926
|
+
}
|
|
13927
|
+
}, [_c('b-dropdown-item', {
|
|
13928
|
+
on: {
|
|
13929
|
+
"click": _vm.clearSelection
|
|
13930
|
+
}
|
|
13931
|
+
}, [_c('b-icon-x-circle', {
|
|
13932
|
+
staticClass: "mr-1"
|
|
13933
|
+
}), _vm._v(" Limpiar selección ")], 1)], 1) : _vm._e()], 1), _c('div', {
|
|
13768
13934
|
staticClass: "crud-paginator"
|
|
13769
13935
|
}, [_vm.showPaginator ? _c('b-pagination', {
|
|
13770
13936
|
attrs: {
|
|
@@ -13783,10 +13949,10 @@ var _sfc_render$1 = function render() {
|
|
|
13783
13949
|
},
|
|
13784
13950
|
expression: "pagination.current_page"
|
|
13785
13951
|
}
|
|
13786
|
-
}) : _vm._e()], 1) : _vm._e()], 1);
|
|
13952
|
+
}) : _vm._e()], 1)]) : _vm._e()], 1);
|
|
13787
13953
|
};
|
|
13788
13954
|
var _sfc_staticRenderFns$1 = [];
|
|
13789
|
-
var __component__$1 = /*#__PURE__*/normalizeComponent(_sfc_main$1, _sfc_render$1, _sfc_staticRenderFns$1, false, null, "
|
|
13955
|
+
var __component__$1 = /*#__PURE__*/normalizeComponent(_sfc_main$1, _sfc_render$1, _sfc_staticRenderFns$1, false, null, "11671e09", null, null);
|
|
13790
13956
|
var CrudPagination = __component__$1.exports;
|
|
13791
13957
|
|
|
13792
13958
|
var crudData = {
|
|
@@ -13828,7 +13994,8 @@ var crudData = {
|
|
|
13828
13994
|
refreshing: false,
|
|
13829
13995
|
fetchError: false,
|
|
13830
13996
|
principalSort: false,
|
|
13831
|
-
exportFormat: 'JSON'
|
|
13997
|
+
exportFormat: 'JSON',
|
|
13998
|
+
fileImport: null
|
|
13832
13999
|
};
|
|
13833
14000
|
},
|
|
13834
14001
|
computed: {
|
|
@@ -13918,6 +14085,73 @@ var crudData = {
|
|
|
13918
14085
|
if (!this.ajax) {
|
|
13919
14086
|
this.items = val;
|
|
13920
14087
|
}
|
|
14088
|
+
},
|
|
14089
|
+
limit(val) {
|
|
14090
|
+
if (val && val > 0) {
|
|
14091
|
+
this.pagination.per_page = val;
|
|
14092
|
+
// Resetear a la primera página y recargar datos
|
|
14093
|
+
this.pagination.current_page = 1;
|
|
14094
|
+
this.fetchItems();
|
|
14095
|
+
}
|
|
14096
|
+
},
|
|
14097
|
+
displayMode() {
|
|
14098
|
+
// Forzar re-renderizado cuando cambia el modo de visualización
|
|
14099
|
+
this.$nextTick(() => {
|
|
14100
|
+
this.forceRecomputeCounter++;
|
|
14101
|
+
});
|
|
14102
|
+
},
|
|
14103
|
+
showPaginator() {
|
|
14104
|
+
// Forzar re-renderizado cuando cambia la visibilidad del paginador
|
|
14105
|
+
this.$nextTick(() => {
|
|
14106
|
+
this.forceRecomputeCounter++;
|
|
14107
|
+
});
|
|
14108
|
+
},
|
|
14109
|
+
showSearch() {
|
|
14110
|
+
// Forzar re-renderizado cuando cambia la visibilidad de la búsqueda
|
|
14111
|
+
this.$nextTick(() => {
|
|
14112
|
+
this.forceRecomputeCounter++;
|
|
14113
|
+
});
|
|
14114
|
+
},
|
|
14115
|
+
showCreateBtn() {
|
|
14116
|
+
// Forzar re-renderizado cuando cambia la visibilidad del botón crear
|
|
14117
|
+
this.$nextTick(() => {
|
|
14118
|
+
this.forceRecomputeCounter++;
|
|
14119
|
+
});
|
|
14120
|
+
},
|
|
14121
|
+
showHeader() {
|
|
14122
|
+
// Forzar re-renderizado cuando cambia la visibilidad del header
|
|
14123
|
+
this.$nextTick(() => {
|
|
14124
|
+
this.forceRecomputeCounter++;
|
|
14125
|
+
});
|
|
14126
|
+
},
|
|
14127
|
+
tableClass() {
|
|
14128
|
+
// Forzar re-renderizado cuando cambian las clases de la tabla
|
|
14129
|
+
this.$nextTick(() => {
|
|
14130
|
+
this.forceRecomputeCounter++;
|
|
14131
|
+
});
|
|
14132
|
+
},
|
|
14133
|
+
cardClass() {
|
|
14134
|
+
// Forzar re-renderizado cuando cambian las clases de las tarjetas
|
|
14135
|
+
this.$nextTick(() => {
|
|
14136
|
+
this.forceRecomputeCounter++;
|
|
14137
|
+
});
|
|
14138
|
+
},
|
|
14139
|
+
tableContainerClass() {
|
|
14140
|
+
// Forzar re-renderizado cuando cambian las clases del contenedor
|
|
14141
|
+
this.$nextTick(() => {
|
|
14142
|
+
this.forceRecomputeCounter++;
|
|
14143
|
+
});
|
|
14144
|
+
},
|
|
14145
|
+
columns: {
|
|
14146
|
+
handler() {
|
|
14147
|
+
// Recargar opciones cuando cambian las columnas
|
|
14148
|
+
this.loadOptions();
|
|
14149
|
+
// Forzar re-renderizado
|
|
14150
|
+
this.$nextTick(() => {
|
|
14151
|
+
this.forceRecomputeCounter++;
|
|
14152
|
+
});
|
|
14153
|
+
},
|
|
14154
|
+
deep: true
|
|
13921
14155
|
}
|
|
13922
14156
|
},
|
|
13923
14157
|
mounted() {
|
|
@@ -14022,15 +14256,13 @@ var crudData = {
|
|
|
14022
14256
|
});
|
|
14023
14257
|
},
|
|
14024
14258
|
makePagination: function (data) {
|
|
14025
|
-
|
|
14026
|
-
|
|
14027
|
-
|
|
14028
|
-
|
|
14029
|
-
|
|
14030
|
-
|
|
14031
|
-
|
|
14032
|
-
};
|
|
14033
|
-
this.pagination = pagination;
|
|
14259
|
+
// Mutar propiedades existentes para mantener reactividad con provide/inject
|
|
14260
|
+
this.pagination.current_page = data.current_page ?? 1;
|
|
14261
|
+
this.pagination.last_page = data.last_page ?? 1;
|
|
14262
|
+
this.pagination.next_page_url = data.next_page_url ?? "";
|
|
14263
|
+
this.pagination.prev_page_url = data.prev_page_url ?? "";
|
|
14264
|
+
this.pagination.total = data.total ?? 0;
|
|
14265
|
+
this.pagination.per_page = data.per_page ?? 20;
|
|
14034
14266
|
}
|
|
14035
14267
|
}
|
|
14036
14268
|
};
|
|
@@ -19307,17 +19539,31 @@ var crudApi = {
|
|
|
19307
19539
|
filters: JSON.stringify(this.finalFilters)
|
|
19308
19540
|
}
|
|
19309
19541
|
}).then(response => {
|
|
19542
|
+
console.debug("fetchItems - Response recibida:", response.data);
|
|
19310
19543
|
this.makePagination(response.data);
|
|
19544
|
+
|
|
19545
|
+
// Validar que response.data.data existe y es un array
|
|
19311
19546
|
let items = response.data.data;
|
|
19547
|
+
if (!items) {
|
|
19548
|
+
console.warn("fetchItems - response.data.data es undefined o null, usando array vacío");
|
|
19549
|
+
items = [];
|
|
19550
|
+
} else if (!Array.isArray(items)) {
|
|
19551
|
+
console.warn("fetchItems - response.data.data no es un array, tipo:", typeof items, items);
|
|
19552
|
+
items = [];
|
|
19553
|
+
}
|
|
19554
|
+
console.debug("fetchItems - Items procesados:", items, "Cantidad:", items.length);
|
|
19312
19555
|
if (this.grouped) {
|
|
19313
19556
|
this.groupItems(items, concat, this.isSplitGroups);
|
|
19314
19557
|
} else {
|
|
19315
19558
|
if (concat) {
|
|
19316
|
-
|
|
19559
|
+
// Para concat, agregar items al array existente
|
|
19560
|
+
this.items.push(...items);
|
|
19317
19561
|
} else {
|
|
19318
|
-
|
|
19562
|
+
// Mutar el array existente en lugar de reemplazarlo para mantener reactividad con provide/inject
|
|
19563
|
+
this.items.splice(0, this.items.length, ...items);
|
|
19319
19564
|
}
|
|
19320
19565
|
}
|
|
19566
|
+
console.debug("fetchItems - this.items después de asignar:", this.items, "Cantidad:", this.items ? this.items.length : 0);
|
|
19321
19567
|
this.loading = false;
|
|
19322
19568
|
this.firstLoad = true;
|
|
19323
19569
|
this.$emit("afterFetch", {});
|
|
@@ -19345,11 +19591,13 @@ var crudApi = {
|
|
|
19345
19591
|
}, {});
|
|
19346
19592
|
if (splitGroups) {
|
|
19347
19593
|
// Dividimos los grupos en arrays separados
|
|
19348
|
-
|
|
19594
|
+
const groupedItems = Object.entries(groupedMap).map(([groupKey, groupItems]) => ({
|
|
19349
19595
|
groupKey,
|
|
19350
19596
|
groupLabel: groupLabelPre + groupKey + groupLabelAfter,
|
|
19351
19597
|
items: groupItems
|
|
19352
19598
|
}));
|
|
19599
|
+
// Mutar el array existente para mantener reactividad
|
|
19600
|
+
this.items.splice(0, this.items.length, ...groupedItems);
|
|
19353
19601
|
} else {
|
|
19354
19602
|
// Creamos la estructura agrupada en un solo array
|
|
19355
19603
|
for (const [groupKey, groupItems] of Object.entries(groupedMap)) {
|
|
@@ -19362,9 +19610,10 @@ var crudApi = {
|
|
|
19362
19610
|
|
|
19363
19611
|
// Decidimos si concatenar o reemplazar los items existentes
|
|
19364
19612
|
if (concat) {
|
|
19365
|
-
this.items
|
|
19613
|
+
this.items.push(...itemsWithGroup);
|
|
19366
19614
|
} else {
|
|
19367
|
-
|
|
19615
|
+
// Mutar el array existente para mantener reactividad
|
|
19616
|
+
this.items.splice(0, this.items.length, ...itemsWithGroup);
|
|
19368
19617
|
}
|
|
19369
19618
|
}
|
|
19370
19619
|
},
|
|
@@ -19747,6 +19996,11 @@ var crudApi = {
|
|
|
19747
19996
|
onPaginationChange(page) {
|
|
19748
19997
|
this.fetchItems(page);
|
|
19749
19998
|
},
|
|
19999
|
+
onPerPageChange(perPage) {
|
|
20000
|
+
this.pagination.per_page = perPage;
|
|
20001
|
+
this.pagination.current_page = 1;
|
|
20002
|
+
this.fetchItems(1);
|
|
20003
|
+
},
|
|
19750
20004
|
infiniteHandler($state) {
|
|
19751
20005
|
const hasNextPage = (this.pagination.total > 0 || !this.firstLoad) && (!this.firstLoad || this.pagination.current_page * this.pagination.per_page <= this.pagination.total);
|
|
19752
20006
|
console.debug("Has next page", hasNextPage, this.pagination);
|
|
@@ -19808,14 +20062,14 @@ var crudFilters = {
|
|
|
19808
20062
|
} else if (value == "DESC") {
|
|
19809
20063
|
this.internalFilterByProp(column.prop + "_sort").value = null;
|
|
19810
20064
|
}
|
|
20065
|
+
this.forceRecomputeCounter++;
|
|
20066
|
+
setTimeout(() => {
|
|
20067
|
+
this.refresh();
|
|
20068
|
+
}, 1);
|
|
19811
20069
|
},
|
|
19812
20070
|
toggleFilters() {
|
|
19813
20071
|
this.filtersVisible = !this.filtersVisible;
|
|
19814
|
-
|
|
19815
|
-
this.filterSidebarOpen = this.filtersVisible;
|
|
19816
|
-
} else {
|
|
19817
|
-
this.filterSidebarOpen = false;
|
|
19818
|
-
}
|
|
20072
|
+
this.filterSidebarOpen = this.filtersVisible;
|
|
19819
20073
|
},
|
|
19820
20074
|
resetFilters(refresh = true) {
|
|
19821
20075
|
this.internalFilters = [];
|
|
@@ -19910,6 +20164,25 @@ var crudValidation = {
|
|
|
19910
20164
|
};
|
|
19911
20165
|
|
|
19912
20166
|
var crudHelpers = {
|
|
20167
|
+
computed: {
|
|
20168
|
+
isAllSelected() {
|
|
20169
|
+
// Forzar dependencia en selectedItems.length para que se recalcule cuando cambie
|
|
20170
|
+
const selectedCount = this.selectedItems ? this.selectedItems.length : 0;
|
|
20171
|
+
if (!this.itemsList || this.itemsList.length === 0) {
|
|
20172
|
+
return false;
|
|
20173
|
+
}
|
|
20174
|
+
|
|
20175
|
+
// Si no hay items seleccionados, retornar false
|
|
20176
|
+
if (selectedCount === 0) {
|
|
20177
|
+
return false;
|
|
20178
|
+
}
|
|
20179
|
+
|
|
20180
|
+
// Verificar que todos los items de la lista actual estén seleccionados
|
|
20181
|
+
// Usar Boolean() para manejar valores undefined/null
|
|
20182
|
+
const allSelected = this.itemsList.every(item => Boolean(item.selected) === true);
|
|
20183
|
+
return allSelected;
|
|
20184
|
+
}
|
|
20185
|
+
},
|
|
19913
20186
|
methods: {
|
|
19914
20187
|
onRowHover(item, itemIndex) {
|
|
19915
20188
|
if (this.selectHover) {
|
|
@@ -19946,35 +20219,76 @@ var crudHelpers = {
|
|
|
19946
20219
|
console.debug("Selected Items", this.selectedItems);
|
|
19947
20220
|
},
|
|
19948
20221
|
toggleAll(value) {
|
|
19949
|
-
|
|
19950
|
-
|
|
19951
|
-
|
|
20222
|
+
// b-form-checkbox emite el valor booleano directamente en el evento change
|
|
20223
|
+
// El valor puede venir directamente como booleano o como evento del DOM
|
|
20224
|
+
const checked = typeof value === 'boolean' ? value : value && value.target ? value.target.checked : value;
|
|
20225
|
+
if (checked) {
|
|
20226
|
+
// Seleccionar todos los items de la lista actual (itemsList)
|
|
20227
|
+
this.itemsList.forEach(item => {
|
|
20228
|
+
this.$set(item, 'selected', true);
|
|
20229
|
+
// Agregar a selectedItems si no está ya
|
|
20230
|
+
if (!this.selectedItems.find(si => si.id === item.id)) {
|
|
20231
|
+
this.selectedItems.push(item);
|
|
20232
|
+
}
|
|
20233
|
+
});
|
|
19952
20234
|
} else {
|
|
19953
|
-
|
|
19954
|
-
this.
|
|
19955
|
-
this.
|
|
20235
|
+
// Deseleccionar todos
|
|
20236
|
+
this.selectedItems.forEach(item => this.$set(item, 'selected', false));
|
|
20237
|
+
this.items.forEach(item => this.$set(item, 'selected', false));
|
|
20238
|
+
this.itemsList.forEach(item => this.$set(item, 'selected', false));
|
|
20239
|
+
// Usar splice para mantener la referencia del array y reactividad con provide/inject
|
|
20240
|
+
this.selectedItems.splice(0, this.selectedItems.length);
|
|
19956
20241
|
}
|
|
19957
20242
|
this.onSelect();
|
|
19958
20243
|
console.debug("toggle all", this.selectedItems);
|
|
20244
|
+
// Forzar actualización inmediata y en el siguiente tick
|
|
19959
20245
|
this.$forceUpdate();
|
|
20246
|
+
this.$nextTick(() => {
|
|
20247
|
+
this.$forceUpdate();
|
|
20248
|
+
});
|
|
19960
20249
|
},
|
|
19961
20250
|
unSelectItem(item) {
|
|
19962
|
-
item
|
|
19963
|
-
|
|
20251
|
+
this.$set(item, 'selected', false);
|
|
20252
|
+
|
|
20253
|
+
// Filtrar el array y reasignarlo para asegurar reactividad
|
|
20254
|
+
const filtered = this.selectedItems.filter(e => e.id != item.id);
|
|
20255
|
+
// Vaciar el array y luego agregar los elementos filtrados para mantener la referencia
|
|
20256
|
+
this.selectedItems.splice(0, this.selectedItems.length, ...filtered);
|
|
20257
|
+
|
|
20258
|
+
// Forzar actualización para que el computed isAllSelected se recalcule
|
|
20259
|
+
this.$forceUpdate();
|
|
19964
20260
|
},
|
|
19965
20261
|
selectItem() {
|
|
19966
20262
|
let sitem = this.selectedItems.find(e => e.id == this.item.id);
|
|
19967
20263
|
if (sitem) {
|
|
19968
|
-
this.item
|
|
19969
|
-
|
|
20264
|
+
this.$set(this.item, 'selected', false);
|
|
20265
|
+
const filtered = this.selectedItems.filter(e => e.id != this.item.id);
|
|
20266
|
+
// Usar splice para mantener la referencia del array
|
|
20267
|
+
this.selectedItems.splice(0, this.selectedItems.length, ...filtered);
|
|
19970
20268
|
} else {
|
|
19971
|
-
this.item
|
|
20269
|
+
this.$set(this.item, 'selected', true);
|
|
19972
20270
|
this.selectedItems.push(this.item);
|
|
19973
20271
|
}
|
|
20272
|
+
// Forzar actualización para que el computed isAllSelected se recalcule
|
|
20273
|
+
this.$forceUpdate();
|
|
19974
20274
|
},
|
|
19975
20275
|
getSelectedItems() {
|
|
19976
20276
|
return this.selectedItems;
|
|
19977
20277
|
},
|
|
20278
|
+
clearSelection() {
|
|
20279
|
+
// Limpiar todas las selecciones
|
|
20280
|
+
this.selectedItems.forEach(item => this.$set(item, 'selected', false));
|
|
20281
|
+
this.items.forEach(item => this.$set(item, 'selected', false));
|
|
20282
|
+
this.itemsList.forEach(item => this.$set(item, 'selected', false));
|
|
20283
|
+
// Vaciar el array manteniendo la referencia para reactividad con provide/inject
|
|
20284
|
+
this.selectedItems.splice(0, this.selectedItems.length);
|
|
20285
|
+
this.onSelect();
|
|
20286
|
+
// Forzar actualización inmediata y en el siguiente tick para asegurar que todo se actualice
|
|
20287
|
+
this.$forceUpdate();
|
|
20288
|
+
this.$nextTick(() => {
|
|
20289
|
+
this.$forceUpdate();
|
|
20290
|
+
});
|
|
20291
|
+
},
|
|
19978
20292
|
onSelect() {
|
|
19979
20293
|
this.$emit("select", this.item);
|
|
19980
20294
|
this.$emit("selectItems", this.selectedItems);
|
|
@@ -20152,7 +20466,7 @@ var crudHelpers = {
|
|
|
20152
20466
|
}
|
|
20153
20467
|
};
|
|
20154
20468
|
|
|
20155
|
-
var css = "tr td[data-v-
|
|
20469
|
+
var css = "tr td[data-v-482920a4]:last-child,\ntr td[data-v-482920a4]:first-child {\n width: 1%;\n white-space: nowrap; }\n\ntbody tr.selected[data-v-482920a4] {\n background-color: #e3f2fd !important; }\n tbody tr.selected[data-v-482920a4] td[data-v-482920a4] {\n background-color: transparent !important; }\n tbody tr.selected[data-v-482920a4][data-v-482920a4]:hover {\n background-color: #bbdefb !important; }\n tbody tr.selected[data-v-482920a4][data-v-482920a4]:hover td[data-v-482920a4] {\n background-color: transparent !important; }\n\n.table-striped tbody tr.selected[data-v-482920a4]:nth-of-type(odd) {\n background-color: #e3f2fd !important; }\n .table-striped tbody tr.selected[data-v-482920a4]:nth-of-type(odd) td[data-v-482920a4] {\n background-color: transparent !important; }\n\n.table-striped tbody tr.selected[data-v-482920a4]:nth-of-type(even) {\n background-color: #e3f2fd !important; }\n .table-striped tbody tr.selected[data-v-482920a4]:nth-of-type(even) td[data-v-482920a4] {\n background-color: transparent !important; }\n\n.crud-pagination[data-v-482920a4] {\n display: flex;\n align-items: center;\n width: 100%;\n justify-content: center;\n margin-top: 1rem; }\n\n.crud-header[data-v-482920a4] {\n display: flex;\n justify-content: space-between;\n max-height: 3rem; }\n .crud-header[data-v-482920a4] .crud-title[data-v-482920a4] {\n margin: 0; }\n .crud-header[data-v-482920a4] .crud-search[data-v-482920a4] {\n max-width: 15rem; }\n .crud-header[data-v-482920a4] .crud-search[data-v-482920a4] .btn[data-v-482920a4] {\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-482920a4] .crud-search[data-v-482920a4] .btn[data-v-482920a4].open[data-v-482920a4] {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n .crud-header[data-v-482920a4] .table-options[data-v-482920a4] {\n margin-bottom: 1rem;\n display: flex;\n align-items: center;\n justify-content: flex-end; }\n\n.custom-control[data-v-482920a4] {\n position: relative; }\n\n@media (min-width: 992px) {\n .table[data-v-482920a4] {\n table-layout: auto; }\n .table[data-v-482920a4] tbody[data-v-482920a4] td[data-v-482920a4] {\n overflow: scroll;\n -ms-overflow-style: none;\n /* IE and Edge */\n scrollbar-width: none;\n /* Firefox */ }\n .table[data-v-482920a4] tbody[data-v-482920a4] td[data-v-482920a4]::-webkit-scrollbar {\n display: none; } }\n\n.kanban-board[data-v-482920a4] {\n display: flex;\n gap: 1rem;\n overflow-x: auto;\n padding: 1rem; }\n\n.kanban-column[data-v-482920a4] {\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-482920a4] {\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-482920a4] {\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-482920a4] {\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
20470
|
n(css, {});
|
|
20157
20471
|
|
|
20158
20472
|
const _sfc_main = {
|
|
@@ -20241,6 +20555,7 @@ const _sfc_main = {
|
|
|
20241
20555
|
bulkDelete: this.bulkDelete,
|
|
20242
20556
|
showImport: this.showImport,
|
|
20243
20557
|
showExport: this.showExport,
|
|
20558
|
+
fileImport: this.fileImport,
|
|
20244
20559
|
markDirty: this.markDirty,
|
|
20245
20560
|
// Data from mixins
|
|
20246
20561
|
crudUuid: this.crudUuid,
|
|
@@ -20278,6 +20593,7 @@ const _sfc_main = {
|
|
|
20278
20593
|
internalFilter: this.internalFilter,
|
|
20279
20594
|
internalFilterByProp: this.internalFilterByProp,
|
|
20280
20595
|
columnOptions: this.columnOptions,
|
|
20596
|
+
isAllSelected: this.isAllSelected,
|
|
20281
20597
|
// Methods from mixins
|
|
20282
20598
|
handleResize: this.handleResize,
|
|
20283
20599
|
rearrangeArray: this.rearrangeArray,
|
|
@@ -20303,6 +20619,7 @@ const _sfc_main = {
|
|
|
20303
20619
|
importItems: this.importItems,
|
|
20304
20620
|
refresh: this.refresh,
|
|
20305
20621
|
onPaginationChange: this.onPaginationChange,
|
|
20622
|
+
onPerPageChange: this.onPerPageChange,
|
|
20306
20623
|
infiniteHandler: this.infiniteHandler,
|
|
20307
20624
|
setupFilters: this.setupFilters,
|
|
20308
20625
|
toggleSortFilter: this.toggleSortFilter,
|
|
@@ -20323,6 +20640,7 @@ const _sfc_main = {
|
|
|
20323
20640
|
unSelectItem: this.unSelectItem,
|
|
20324
20641
|
selectItem: this.selectItem,
|
|
20325
20642
|
getSelectedItems: this.getSelectedItems,
|
|
20643
|
+
clearSelection: this.clearSelection,
|
|
20326
20644
|
onSelect: this.onSelect,
|
|
20327
20645
|
showItem: this.showItem,
|
|
20328
20646
|
createItem: this.createItem,
|
|
@@ -20649,10 +20967,19 @@ var _sfc_render = function render() {
|
|
|
20649
20967
|
"show": _vm.loading,
|
|
20650
20968
|
"rounded": "sm"
|
|
20651
20969
|
}
|
|
20652
|
-
}), _c('CrudPagination'), _c('CrudModals'
|
|
20970
|
+
}), _c('CrudPagination'), _c('CrudModals', {
|
|
20971
|
+
scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (slot, name) {
|
|
20972
|
+
return {
|
|
20973
|
+
key: name,
|
|
20974
|
+
fn: function (slotProps) {
|
|
20975
|
+
return [_vm._t(name, null, null, slotProps)];
|
|
20976
|
+
}
|
|
20977
|
+
};
|
|
20978
|
+
})], null, true)
|
|
20979
|
+
})], 1);
|
|
20653
20980
|
};
|
|
20654
20981
|
var _sfc_staticRenderFns = [];
|
|
20655
|
-
var __component__ = /*#__PURE__*/normalizeComponent(_sfc_main, _sfc_render, _sfc_staticRenderFns, false, null, "
|
|
20982
|
+
var __component__ = /*#__PURE__*/normalizeComponent(_sfc_main, _sfc_render, _sfc_staticRenderFns, false, null, "482920a4", null, null);
|
|
20656
20983
|
var component = __component__.exports;
|
|
20657
20984
|
|
|
20658
20985
|
// Import vue component
|