vue-laravel-crud 2.0.1 → 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 +363 -124
- package/dist/vue-laravel-crud.min.js +3 -3
- package/dist/vue-laravel-crud.ssr.js +402 -143
- package/package.json +4 -2
- package/src/components/CrudPagination.vue +87 -20
- package/src/components/table/TableCell.vue +52 -2
- package/src/components/table/TableHeader.vue +26 -5
- package/src/vue-laravel-crud.vue +695 -688
|
@@ -298,8 +298,8 @@ var CrudFilters = __component__$f.exports;
|
|
|
298
298
|
|
|
299
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}}
|
|
300
300
|
|
|
301
|
-
var css$
|
|
302
|
-
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, {});
|
|
303
303
|
|
|
304
304
|
const _sfc_main$e = {
|
|
305
305
|
name: 'CrudHeader',
|
|
@@ -721,7 +721,7 @@ function toggleClass(el, name, state) {
|
|
|
721
721
|
}
|
|
722
722
|
}
|
|
723
723
|
|
|
724
|
-
function css$
|
|
724
|
+
function css$7(el, prop, val) {
|
|
725
725
|
var style = el && el.style;
|
|
726
726
|
|
|
727
727
|
if (style) {
|
|
@@ -750,7 +750,7 @@ function matrix(el, selfOnly) {
|
|
|
750
750
|
appliedTransforms = el;
|
|
751
751
|
} else {
|
|
752
752
|
do {
|
|
753
|
-
var transform = css$
|
|
753
|
+
var transform = css$7(el, 'transform');
|
|
754
754
|
|
|
755
755
|
if (transform && transform !== 'none') {
|
|
756
756
|
appliedTransforms = transform + ' ' + appliedTransforms;
|
|
@@ -832,11 +832,11 @@ function getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoS
|
|
|
832
832
|
|
|
833
833
|
if (!IE11OrLess) {
|
|
834
834
|
do {
|
|
835
|
-
if (container && container.getBoundingClientRect && (css$
|
|
835
|
+
if (container && container.getBoundingClientRect && (css$7(container, 'transform') !== 'none' || relativeToNonStaticParent && css$7(container, 'position') !== 'static')) {
|
|
836
836
|
var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container
|
|
837
837
|
|
|
838
|
-
top -= containerRect.top + parseInt(css$
|
|
839
|
-
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'));
|
|
840
840
|
bottom = top + elRect.height;
|
|
841
841
|
right = left + elRect.width;
|
|
842
842
|
break;
|
|
@@ -943,7 +943,7 @@ function getChild(el, childNum, options) {
|
|
|
943
943
|
function lastChild(el, selector) {
|
|
944
944
|
var last = el.lastElementChild;
|
|
945
945
|
|
|
946
|
-
while (last && (last === Sortable.ghost || css$
|
|
946
|
+
while (last && (last === Sortable.ghost || css$7(last, 'display') === 'none' || selector && !matches(last, selector))) {
|
|
947
947
|
last = last.previousElementSibling;
|
|
948
948
|
}
|
|
949
949
|
|
|
@@ -1029,7 +1029,7 @@ function getParentAutoScrollElement(el, includeSelf) {
|
|
|
1029
1029
|
do {
|
|
1030
1030
|
// we don't need to get elem css if it isn't even overflowing in the first place (performance)
|
|
1031
1031
|
if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {
|
|
1032
|
-
var elemCSS = css$
|
|
1032
|
+
var elemCSS = css$7(elem);
|
|
1033
1033
|
|
|
1034
1034
|
if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {
|
|
1035
1035
|
if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();
|
|
@@ -1105,19 +1105,19 @@ function clone(el) {
|
|
|
1105
1105
|
}
|
|
1106
1106
|
|
|
1107
1107
|
function setRect(el, rect) {
|
|
1108
|
-
css$
|
|
1109
|
-
css$
|
|
1110
|
-
css$
|
|
1111
|
-
css$
|
|
1112
|
-
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);
|
|
1113
1113
|
}
|
|
1114
1114
|
|
|
1115
1115
|
function unsetRect(el) {
|
|
1116
|
-
css$
|
|
1117
|
-
css$
|
|
1118
|
-
css$
|
|
1119
|
-
css$
|
|
1120
|
-
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', '');
|
|
1121
1121
|
}
|
|
1122
1122
|
|
|
1123
1123
|
var expando = 'Sortable' + new Date().getTime();
|
|
@@ -1131,7 +1131,7 @@ function AnimationStateManager() {
|
|
|
1131
1131
|
if (!this.options.animation) return;
|
|
1132
1132
|
var children = [].slice.call(this.el.children);
|
|
1133
1133
|
children.forEach(function (child) {
|
|
1134
|
-
if (css$
|
|
1134
|
+
if (css$7(child, 'display') === 'none' || child === Sortable.ghost) return;
|
|
1135
1135
|
animationStates.push({
|
|
1136
1136
|
target: child,
|
|
1137
1137
|
rect: getRect(child)
|
|
@@ -1238,8 +1238,8 @@ function AnimationStateManager() {
|
|
|
1238
1238
|
},
|
|
1239
1239
|
animate: function animate(target, currentRect, toRect, duration) {
|
|
1240
1240
|
if (duration) {
|
|
1241
|
-
css$
|
|
1242
|
-
css$
|
|
1241
|
+
css$7(target, 'transition', '');
|
|
1242
|
+
css$7(target, 'transform', '');
|
|
1243
1243
|
var elMatrix = matrix(this.el),
|
|
1244
1244
|
scaleX = elMatrix && elMatrix.a,
|
|
1245
1245
|
scaleY = elMatrix && elMatrix.d,
|
|
@@ -1247,15 +1247,15 @@ function AnimationStateManager() {
|
|
|
1247
1247
|
translateY = (currentRect.top - toRect.top) / (scaleY || 1);
|
|
1248
1248
|
target.animatingX = !!translateX;
|
|
1249
1249
|
target.animatingY = !!translateY;
|
|
1250
|
-
css$
|
|
1250
|
+
css$7(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');
|
|
1251
1251
|
repaint(target); // repaint
|
|
1252
1252
|
|
|
1253
|
-
css$
|
|
1254
|
-
css$
|
|
1253
|
+
css$7(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));
|
|
1254
|
+
css$7(target, 'transform', 'translate3d(0,0,0)');
|
|
1255
1255
|
typeof target.animated === 'number' && clearTimeout(target.animated);
|
|
1256
1256
|
target.animated = setTimeout(function () {
|
|
1257
|
-
css$
|
|
1258
|
-
css$
|
|
1257
|
+
css$7(target, 'transition', '');
|
|
1258
|
+
css$7(target, 'transform', '');
|
|
1259
1259
|
target.animated = false;
|
|
1260
1260
|
target.animatingX = false;
|
|
1261
1261
|
target.animatingY = false;
|
|
@@ -1524,12 +1524,12 @@ supportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in
|
|
|
1524
1524
|
return el.style.pointerEvents === 'auto';
|
|
1525
1525
|
}(),
|
|
1526
1526
|
_detectDirection = function _detectDirection(el, options) {
|
|
1527
|
-
var elCSS = css$
|
|
1527
|
+
var elCSS = css$7(el),
|
|
1528
1528
|
elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),
|
|
1529
1529
|
child1 = getChild(el, 0, options),
|
|
1530
1530
|
child2 = getChild(el, 1, options),
|
|
1531
|
-
firstChildCSS = child1 && css$
|
|
1532
|
-
secondChildCSS = child2 && css$
|
|
1531
|
+
firstChildCSS = child1 && css$7(child1),
|
|
1532
|
+
secondChildCSS = child2 && css$7(child2),
|
|
1533
1533
|
firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,
|
|
1534
1534
|
secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;
|
|
1535
1535
|
|
|
@@ -1618,12 +1618,12 @@ _detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {
|
|
|
1618
1618
|
},
|
|
1619
1619
|
_hideGhostForTarget = function _hideGhostForTarget() {
|
|
1620
1620
|
if (!supportCssPointerEvents && ghostEl) {
|
|
1621
|
-
css$
|
|
1621
|
+
css$7(ghostEl, 'display', 'none');
|
|
1622
1622
|
}
|
|
1623
1623
|
},
|
|
1624
1624
|
_unhideGhostForTarget = function _unhideGhostForTarget() {
|
|
1625
1625
|
if (!supportCssPointerEvents && ghostEl) {
|
|
1626
|
-
css$
|
|
1626
|
+
css$7(ghostEl, 'display', '');
|
|
1627
1627
|
}
|
|
1628
1628
|
}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position
|
|
1629
1629
|
|
|
@@ -2158,10 +2158,10 @@ Sortable.prototype =
|
|
|
2158
2158
|
}
|
|
2159
2159
|
|
|
2160
2160
|
var cssMatrix = "matrix(".concat(ghostMatrix.a, ",").concat(ghostMatrix.b, ",").concat(ghostMatrix.c, ",").concat(ghostMatrix.d, ",").concat(ghostMatrix.e, ",").concat(ghostMatrix.f, ")");
|
|
2161
|
-
css$
|
|
2162
|
-
css$
|
|
2163
|
-
css$
|
|
2164
|
-
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);
|
|
2165
2165
|
lastDx = dx;
|
|
2166
2166
|
lastDy = dy;
|
|
2167
2167
|
touchEvt = touch;
|
|
@@ -2182,7 +2182,7 @@ Sortable.prototype =
|
|
|
2182
2182
|
// Get relatively positioned parent
|
|
2183
2183
|
ghostRelativeParent = container;
|
|
2184
2184
|
|
|
2185
|
-
while (css$
|
|
2185
|
+
while (css$7(ghostRelativeParent, 'position') === 'static' && css$7(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {
|
|
2186
2186
|
ghostRelativeParent = ghostRelativeParent.parentNode;
|
|
2187
2187
|
}
|
|
2188
2188
|
|
|
@@ -2201,22 +2201,22 @@ Sortable.prototype =
|
|
|
2201
2201
|
toggleClass(ghostEl, options.ghostClass, false);
|
|
2202
2202
|
toggleClass(ghostEl, options.fallbackClass, true);
|
|
2203
2203
|
toggleClass(ghostEl, options.dragClass, true);
|
|
2204
|
-
css$
|
|
2205
|
-
css$
|
|
2206
|
-
css$
|
|
2207
|
-
css$
|
|
2208
|
-
css$
|
|
2209
|
-
css$
|
|
2210
|
-
css$
|
|
2211
|
-
css$
|
|
2212
|
-
css$
|
|
2213
|
-
css$
|
|
2214
|
-
css$
|
|
2215
|
-
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');
|
|
2216
2216
|
Sortable.ghost = ghostEl;
|
|
2217
2217
|
container.appendChild(ghostEl); // Set transform-origin
|
|
2218
2218
|
|
|
2219
|
-
css$
|
|
2219
|
+
css$7(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');
|
|
2220
2220
|
}
|
|
2221
2221
|
},
|
|
2222
2222
|
_onDragStart: function _onDragStart(
|
|
@@ -2285,7 +2285,7 @@ Sortable.prototype =
|
|
|
2285
2285
|
|
|
2286
2286
|
on(document, 'drop', _this); // #1276 fix:
|
|
2287
2287
|
|
|
2288
|
-
css$
|
|
2288
|
+
css$7(dragEl, 'transform', 'translateZ(0)');
|
|
2289
2289
|
}
|
|
2290
2290
|
|
|
2291
2291
|
awaitingDragStarted = true;
|
|
@@ -2294,7 +2294,7 @@ Sortable.prototype =
|
|
|
2294
2294
|
moved = true;
|
|
2295
2295
|
|
|
2296
2296
|
if (Safari) {
|
|
2297
|
-
css$
|
|
2297
|
+
css$7(document.body, 'user-select', 'none');
|
|
2298
2298
|
}
|
|
2299
2299
|
},
|
|
2300
2300
|
// Returns true - if no further action is needed (either inserted or another condition)
|
|
@@ -2514,7 +2514,7 @@ Sortable.prototype =
|
|
|
2514
2514
|
do {
|
|
2515
2515
|
dragIndex -= direction;
|
|
2516
2516
|
sibling = parentEl.children[dragIndex];
|
|
2517
|
-
} while (sibling && (css$
|
|
2517
|
+
} while (sibling && (css$7(sibling, 'display') === 'none' || sibling === ghostEl));
|
|
2518
2518
|
} // If dragEl is already beside target: Do not insert
|
|
2519
2519
|
|
|
2520
2520
|
|
|
@@ -2629,10 +2629,10 @@ Sortable.prototype =
|
|
|
2629
2629
|
this._offUpEvents();
|
|
2630
2630
|
|
|
2631
2631
|
if (Safari) {
|
|
2632
|
-
css$
|
|
2632
|
+
css$7(document.body, 'user-select', '');
|
|
2633
2633
|
}
|
|
2634
2634
|
|
|
2635
|
-
css$
|
|
2635
|
+
css$7(dragEl, 'transform', '');
|
|
2636
2636
|
|
|
2637
2637
|
if (evt) {
|
|
2638
2638
|
if (moved) {
|
|
@@ -2907,7 +2907,7 @@ Sortable.prototype =
|
|
|
2907
2907
|
if (!cloneHidden) {
|
|
2908
2908
|
pluginEvent('hideClone', this);
|
|
2909
2909
|
if (Sortable.eventCanceled) return;
|
|
2910
|
-
css$
|
|
2910
|
+
css$7(cloneEl, 'display', 'none');
|
|
2911
2911
|
|
|
2912
2912
|
if (this.options.removeCloneOnHide && cloneEl.parentNode) {
|
|
2913
2913
|
cloneEl.parentNode.removeChild(cloneEl);
|
|
@@ -2939,7 +2939,7 @@ Sortable.prototype =
|
|
|
2939
2939
|
this.animate(dragEl, cloneEl);
|
|
2940
2940
|
}
|
|
2941
2941
|
|
|
2942
|
-
css$
|
|
2942
|
+
css$7(cloneEl, 'display', '');
|
|
2943
2943
|
cloneHidden = false;
|
|
2944
2944
|
}
|
|
2945
2945
|
}
|
|
@@ -3114,7 +3114,7 @@ if (documentExists) {
|
|
|
3114
3114
|
Sortable.utils = {
|
|
3115
3115
|
on: on,
|
|
3116
3116
|
off: off,
|
|
3117
|
-
css: css$
|
|
3117
|
+
css: css$7,
|
|
3118
3118
|
find: find,
|
|
3119
3119
|
is: function is(el, selector) {
|
|
3120
3120
|
return !!closest(el, selector, el, false);
|
|
@@ -3341,7 +3341,7 @@ var autoScroll = throttle(function (evt, options, rootEl, isFallback) {
|
|
|
3341
3341
|
canScrollY = void 0,
|
|
3342
3342
|
scrollWidth = el.scrollWidth,
|
|
3343
3343
|
scrollHeight = el.scrollHeight,
|
|
3344
|
-
elCSS = css$
|
|
3344
|
+
elCSS = css$7(el),
|
|
3345
3345
|
scrollPosX = el.scrollLeft,
|
|
3346
3346
|
scrollPosY = el.scrollTop;
|
|
3347
3347
|
|
|
@@ -3677,7 +3677,7 @@ function MultiDragPlugin() {
|
|
|
3677
3677
|
if (!this.isMultiDrag) return;
|
|
3678
3678
|
insertMultiDragClones(false, rootEl);
|
|
3679
3679
|
multiDragClones.forEach(function (clone) {
|
|
3680
|
-
css$
|
|
3680
|
+
css$7(clone, 'display', '');
|
|
3681
3681
|
});
|
|
3682
3682
|
cloneNowShown();
|
|
3683
3683
|
clonesHidden = false;
|
|
@@ -3691,7 +3691,7 @@ function MultiDragPlugin() {
|
|
|
3691
3691
|
cancel = _ref5.cancel;
|
|
3692
3692
|
if (!this.isMultiDrag) return;
|
|
3693
3693
|
multiDragClones.forEach(function (clone) {
|
|
3694
|
-
css$
|
|
3694
|
+
css$7(clone, 'display', 'none');
|
|
3695
3695
|
|
|
3696
3696
|
if (_this.options.removeCloneOnHide && clone.parentNode) {
|
|
3697
3697
|
clone.parentNode.removeChild(clone);
|
|
@@ -3735,7 +3735,7 @@ function MultiDragPlugin() {
|
|
|
3735
3735
|
if (this.options.animation) {
|
|
3736
3736
|
multiDragElements.forEach(function (multiDragElement) {
|
|
3737
3737
|
if (multiDragElement === dragEl$1) return;
|
|
3738
|
-
css$
|
|
3738
|
+
css$7(multiDragElement, 'position', 'absolute');
|
|
3739
3739
|
});
|
|
3740
3740
|
var dragRect = getRect(dragEl$1, false, true, true);
|
|
3741
3741
|
multiDragElements.forEach(function (multiDragElement) {
|
|
@@ -6630,9 +6630,12 @@ vuedraggable_umd.exports;
|
|
|
6630
6630
|
var vuedraggable_umdExports = vuedraggable_umd.exports;
|
|
6631
6631
|
var draggable = /*@__PURE__*/getDefaultExportFromCjs(vuedraggable_umdExports);
|
|
6632
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
|
+
|
|
6633
6636
|
const _sfc_main$d = {
|
|
6634
6637
|
name: 'TableHeader',
|
|
6635
|
-
inject: ['columns', 'enableFilters', 'filtersVisible', 'isColumnHasFilter', 'internalFilterByProp', 'onChangeFilter', 'toggleAll', 'toggleSortFilter', 'sortable', 'optionsLoaded'],
|
|
6638
|
+
inject: ['columns', 'enableFilters', 'filtersVisible', 'isColumnHasFilter', 'internalFilterByProp', 'onChangeFilter', 'toggleAll', 'toggleSortFilter', 'sortable', 'optionsLoaded', 'isAllSelected'],
|
|
6636
6639
|
data() {
|
|
6637
6640
|
return {
|
|
6638
6641
|
hoveredColumn: null
|
|
@@ -6669,8 +6672,11 @@ var _sfc_render$d = function render() {
|
|
|
6669
6672
|
return _vm._l(_vm.columns, function (column, indexc) {
|
|
6670
6673
|
return _c('th', {
|
|
6671
6674
|
key: indexc,
|
|
6675
|
+
class: {
|
|
6676
|
+
'actions-header': column.type == 'actions'
|
|
6677
|
+
},
|
|
6672
6678
|
style: {
|
|
6673
|
-
width: column.width ? column.width : 'inherit'
|
|
6679
|
+
width: column.width ? column.width : column.type == 'actions' ? '1%' : 'inherit'
|
|
6674
6680
|
},
|
|
6675
6681
|
attrs: {
|
|
6676
6682
|
"scope": "col"
|
|
@@ -6827,21 +6833,19 @@ var _sfc_render$d = function render() {
|
|
|
6827
6833
|
}, [_vm._v(" " + _vm._s(option.text ? option.text : option.label ? option.label : "") + " ")]);
|
|
6828
6834
|
})], 2) : column.type == 'checkbox' ? _c('b-form-checkbox', {
|
|
6829
6835
|
attrs: {
|
|
6830
|
-
"name": "select-all"
|
|
6836
|
+
"name": "select-all",
|
|
6837
|
+
"checked": _vm.isAllSelected
|
|
6831
6838
|
},
|
|
6832
6839
|
on: {
|
|
6833
|
-
"change":
|
|
6834
|
-
return _vm.toggleAll($event);
|
|
6835
|
-
}
|
|
6840
|
+
"change": _vm.toggleAll
|
|
6836
6841
|
}
|
|
6837
6842
|
}) : column.type == 'select' ? _c('b-form-checkbox', {
|
|
6838
6843
|
attrs: {
|
|
6839
|
-
"name": "select-all"
|
|
6844
|
+
"name": "select-all",
|
|
6845
|
+
"checked": _vm.isAllSelected
|
|
6840
6846
|
},
|
|
6841
6847
|
on: {
|
|
6842
|
-
"change":
|
|
6843
|
-
return _vm.toggleAll($event);
|
|
6844
|
-
}
|
|
6848
|
+
"change": _vm.toggleAll
|
|
6845
6849
|
}
|
|
6846
6850
|
}) : _c('input', {
|
|
6847
6851
|
directives: [{
|
|
@@ -6873,12 +6877,19 @@ var _sfc_render$d = function render() {
|
|
|
6873
6877
|
"internalFilterByProp": _vm.internalFilterByProp
|
|
6874
6878
|
}) : column.type == 'select' ? _c('span', [_c('b-form-checkbox', {
|
|
6875
6879
|
attrs: {
|
|
6876
|
-
"name": "select-all"
|
|
6880
|
+
"name": "select-all",
|
|
6881
|
+
"checked": _vm.isAllSelected
|
|
6877
6882
|
},
|
|
6878
6883
|
on: {
|
|
6879
|
-
"change":
|
|
6880
|
-
|
|
6881
|
-
|
|
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
|
|
6882
6893
|
}
|
|
6883
6894
|
})], 1) : _c('span', [_vm._v(_vm._s(column.label))]), _vm.isSortableColumn(column) && _vm.shouldShowSortIcon(column) ? _c('span', {
|
|
6884
6895
|
staticClass: "sort-filter",
|
|
@@ -6892,7 +6903,7 @@ var _sfc_render$d = function render() {
|
|
|
6892
6903
|
})], 2)]);
|
|
6893
6904
|
};
|
|
6894
6905
|
var _sfc_staticRenderFns$d = [];
|
|
6895
|
-
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);
|
|
6896
6907
|
var TableHeader = __component__$d.exports;
|
|
6897
6908
|
|
|
6898
6909
|
function commonjsRequire(path) {
|
|
@@ -12588,6 +12599,9 @@ moment$1.exports;
|
|
|
12588
12599
|
var momentExports = moment$1.exports;
|
|
12589
12600
|
var moment = /*@__PURE__*/getDefaultExportFromCjs(momentExports);
|
|
12590
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
|
+
|
|
12591
12605
|
const _sfc_main$c = {
|
|
12592
12606
|
name: 'TableCell',
|
|
12593
12607
|
props: {
|
|
@@ -12607,6 +12621,9 @@ var _sfc_render$c = function render() {
|
|
|
12607
12621
|
var _vm = this,
|
|
12608
12622
|
_c = _vm._self._c;
|
|
12609
12623
|
return _c('td', {
|
|
12624
|
+
class: {
|
|
12625
|
+
'actions-cell': _vm.column.type == 'actions'
|
|
12626
|
+
},
|
|
12610
12627
|
attrs: {
|
|
12611
12628
|
"scope": _vm.column.prop == 'id' ? 'row' : ''
|
|
12612
12629
|
}
|
|
@@ -12632,13 +12649,68 @@ var _sfc_render$c = function render() {
|
|
|
12632
12649
|
},
|
|
12633
12650
|
expression: "item.selected"
|
|
12634
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
|
+
}
|
|
12635
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)) + " ")])];
|
|
12636
12666
|
}, {
|
|
12637
12667
|
"item": _vm.item,
|
|
12638
12668
|
"index": _vm.index,
|
|
12639
12669
|
"itemindex": _vm.index,
|
|
12640
12670
|
"columnindex": _vm.columnIndex
|
|
12641
|
-
}), _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 () {
|
|
12642
12714
|
return [_c('b-button', {
|
|
12643
12715
|
attrs: {
|
|
12644
12716
|
"variant": "primary"
|
|
@@ -12676,7 +12748,7 @@ var _sfc_render$c = function render() {
|
|
|
12676
12748
|
})], 2) : _vm._e()], 2);
|
|
12677
12749
|
};
|
|
12678
12750
|
var _sfc_staticRenderFns$c = [];
|
|
12679
|
-
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);
|
|
12680
12752
|
var TableCell = __component__$c.exports;
|
|
12681
12753
|
|
|
12682
12754
|
const _sfc_main$b = {
|
|
@@ -13762,7 +13834,7 @@ vueInfiniteLoading.exports;
|
|
|
13762
13834
|
var vueInfiniteLoadingExports = vueInfiniteLoading.exports;
|
|
13763
13835
|
var InfiniteLoading = /*@__PURE__*/getDefaultExportFromCjs(vueInfiniteLoadingExports);
|
|
13764
13836
|
|
|
13765
|
-
var css$1 = "\n.paginator-container[data-v-
|
|
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";
|
|
13766
13838
|
n(css$1, {});
|
|
13767
13839
|
|
|
13768
13840
|
const _sfc_main$1 = {
|
|
@@ -13770,7 +13842,18 @@ const _sfc_main$1 = {
|
|
|
13770
13842
|
components: {
|
|
13771
13843
|
InfiniteLoading
|
|
13772
13844
|
},
|
|
13773
|
-
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
|
+
}
|
|
13774
13857
|
};
|
|
13775
13858
|
var _sfc_render$1 = function render() {
|
|
13776
13859
|
var _vm = this,
|
|
@@ -13815,25 +13898,39 @@ var _sfc_render$1 = function render() {
|
|
|
13815
13898
|
staticClass: "paginator-label"
|
|
13816
13899
|
}, [_vm._v("Filas:")]), _c('span', {
|
|
13817
13900
|
staticClass: "paginator-value"
|
|
13818
|
-
}, [_vm._v(_vm._s(_vm.pagination.total))])]), _c('
|
|
13819
|
-
staticClass: "paginator-
|
|
13820
|
-
|
|
13821
|
-
|
|
13822
|
-
|
|
13823
|
-
|
|
13824
|
-
|
|
13825
|
-
|
|
13826
|
-
|
|
13827
|
-
|
|
13828
|
-
|
|
13829
|
-
|
|
13830
|
-
|
|
13831
|
-
|
|
13832
|
-
|
|
13833
|
-
|
|
13834
|
-
|
|
13835
|
-
|
|
13836
|
-
|
|
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', {
|
|
13837
13934
|
staticClass: "crud-paginator"
|
|
13838
13935
|
}, [_vm.showPaginator ? _c('b-pagination', {
|
|
13839
13936
|
attrs: {
|
|
@@ -13855,7 +13952,7 @@ var _sfc_render$1 = function render() {
|
|
|
13855
13952
|
}) : _vm._e()], 1)]) : _vm._e()], 1);
|
|
13856
13953
|
};
|
|
13857
13954
|
var _sfc_staticRenderFns$1 = [];
|
|
13858
|
-
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);
|
|
13859
13956
|
var CrudPagination = __component__$1.exports;
|
|
13860
13957
|
|
|
13861
13958
|
var crudData = {
|
|
@@ -13988,6 +14085,73 @@ var crudData = {
|
|
|
13988
14085
|
if (!this.ajax) {
|
|
13989
14086
|
this.items = val;
|
|
13990
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
|
|
13991
14155
|
}
|
|
13992
14156
|
},
|
|
13993
14157
|
mounted() {
|
|
@@ -14092,15 +14256,13 @@ var crudData = {
|
|
|
14092
14256
|
});
|
|
14093
14257
|
},
|
|
14094
14258
|
makePagination: function (data) {
|
|
14095
|
-
|
|
14096
|
-
|
|
14097
|
-
|
|
14098
|
-
|
|
14099
|
-
|
|
14100
|
-
|
|
14101
|
-
|
|
14102
|
-
};
|
|
14103
|
-
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;
|
|
14104
14266
|
}
|
|
14105
14267
|
}
|
|
14106
14268
|
};
|
|
@@ -19834,6 +19996,11 @@ var crudApi = {
|
|
|
19834
19996
|
onPaginationChange(page) {
|
|
19835
19997
|
this.fetchItems(page);
|
|
19836
19998
|
},
|
|
19999
|
+
onPerPageChange(perPage) {
|
|
20000
|
+
this.pagination.per_page = perPage;
|
|
20001
|
+
this.pagination.current_page = 1;
|
|
20002
|
+
this.fetchItems(1);
|
|
20003
|
+
},
|
|
19837
20004
|
infiniteHandler($state) {
|
|
19838
20005
|
const hasNextPage = (this.pagination.total > 0 || !this.firstLoad) && (!this.firstLoad || this.pagination.current_page * this.pagination.per_page <= this.pagination.total);
|
|
19839
20006
|
console.debug("Has next page", hasNextPage, this.pagination);
|
|
@@ -19997,6 +20164,25 @@ var crudValidation = {
|
|
|
19997
20164
|
};
|
|
19998
20165
|
|
|
19999
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
|
+
},
|
|
20000
20186
|
methods: {
|
|
20001
20187
|
onRowHover(item, itemIndex) {
|
|
20002
20188
|
if (this.selectHover) {
|
|
@@ -20033,35 +20219,76 @@ var crudHelpers = {
|
|
|
20033
20219
|
console.debug("Selected Items", this.selectedItems);
|
|
20034
20220
|
},
|
|
20035
20221
|
toggleAll(value) {
|
|
20036
|
-
|
|
20037
|
-
|
|
20038
|
-
|
|
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
|
+
});
|
|
20039
20234
|
} else {
|
|
20040
|
-
|
|
20041
|
-
this.
|
|
20042
|
-
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);
|
|
20043
20241
|
}
|
|
20044
20242
|
this.onSelect();
|
|
20045
20243
|
console.debug("toggle all", this.selectedItems);
|
|
20244
|
+
// Forzar actualización inmediata y en el siguiente tick
|
|
20046
20245
|
this.$forceUpdate();
|
|
20246
|
+
this.$nextTick(() => {
|
|
20247
|
+
this.$forceUpdate();
|
|
20248
|
+
});
|
|
20047
20249
|
},
|
|
20048
20250
|
unSelectItem(item) {
|
|
20049
|
-
item
|
|
20050
|
-
|
|
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();
|
|
20051
20260
|
},
|
|
20052
20261
|
selectItem() {
|
|
20053
20262
|
let sitem = this.selectedItems.find(e => e.id == this.item.id);
|
|
20054
20263
|
if (sitem) {
|
|
20055
|
-
this.item
|
|
20056
|
-
|
|
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);
|
|
20057
20268
|
} else {
|
|
20058
|
-
this.item
|
|
20269
|
+
this.$set(this.item, 'selected', true);
|
|
20059
20270
|
this.selectedItems.push(this.item);
|
|
20060
20271
|
}
|
|
20272
|
+
// Forzar actualización para que el computed isAllSelected se recalcule
|
|
20273
|
+
this.$forceUpdate();
|
|
20061
20274
|
},
|
|
20062
20275
|
getSelectedItems() {
|
|
20063
20276
|
return this.selectedItems;
|
|
20064
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
|
+
},
|
|
20065
20292
|
onSelect() {
|
|
20066
20293
|
this.$emit("select", this.item);
|
|
20067
20294
|
this.$emit("selectItems", this.selectedItems);
|
|
@@ -20239,7 +20466,7 @@ var crudHelpers = {
|
|
|
20239
20466
|
}
|
|
20240
20467
|
};
|
|
20241
20468
|
|
|
20242
|
-
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";
|
|
20243
20470
|
n(css, {});
|
|
20244
20471
|
|
|
20245
20472
|
const _sfc_main = {
|
|
@@ -20366,6 +20593,7 @@ const _sfc_main = {
|
|
|
20366
20593
|
internalFilter: this.internalFilter,
|
|
20367
20594
|
internalFilterByProp: this.internalFilterByProp,
|
|
20368
20595
|
columnOptions: this.columnOptions,
|
|
20596
|
+
isAllSelected: this.isAllSelected,
|
|
20369
20597
|
// Methods from mixins
|
|
20370
20598
|
handleResize: this.handleResize,
|
|
20371
20599
|
rearrangeArray: this.rearrangeArray,
|
|
@@ -20391,6 +20619,7 @@ const _sfc_main = {
|
|
|
20391
20619
|
importItems: this.importItems,
|
|
20392
20620
|
refresh: this.refresh,
|
|
20393
20621
|
onPaginationChange: this.onPaginationChange,
|
|
20622
|
+
onPerPageChange: this.onPerPageChange,
|
|
20394
20623
|
infiniteHandler: this.infiniteHandler,
|
|
20395
20624
|
setupFilters: this.setupFilters,
|
|
20396
20625
|
toggleSortFilter: this.toggleSortFilter,
|
|
@@ -20411,6 +20640,7 @@ const _sfc_main = {
|
|
|
20411
20640
|
unSelectItem: this.unSelectItem,
|
|
20412
20641
|
selectItem: this.selectItem,
|
|
20413
20642
|
getSelectedItems: this.getSelectedItems,
|
|
20643
|
+
clearSelection: this.clearSelection,
|
|
20414
20644
|
onSelect: this.onSelect,
|
|
20415
20645
|
showItem: this.showItem,
|
|
20416
20646
|
createItem: this.createItem,
|
|
@@ -20737,10 +20967,19 @@ var _sfc_render = function render() {
|
|
|
20737
20967
|
"show": _vm.loading,
|
|
20738
20968
|
"rounded": "sm"
|
|
20739
20969
|
}
|
|
20740
|
-
}), _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);
|
|
20741
20980
|
};
|
|
20742
20981
|
var _sfc_staticRenderFns = [];
|
|
20743
|
-
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);
|
|
20744
20983
|
var component = __component__.exports;
|
|
20745
20984
|
|
|
20746
20985
|
// Import vue component
|