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.
@@ -739,8 +739,8 @@ var _sfc_render$f = function render() {
739
739
  };
740
740
  var _sfc_staticRenderFns$f = [];
741
741
  var __component__$f = /*#__PURE__*/normalizeComponent(_sfc_main$f, _sfc_render$f, _sfc_staticRenderFns$f, false, null, null, null, null);
742
- var CrudFilters = __component__$f.exports;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}}var css$6 = "\n.crud-header[data-v-ed8e5777] {\r\n display: flex;\r\n justify-content: space-between;\r\n max-height: 3rem;\n}\n.crud-title[data-v-ed8e5777] {\r\n margin: 0;\n}\n.crud-search[data-v-ed8e5777] {\r\n max-width: 15rem;\n}\n.crud-search .btn[data-v-ed8e5777] {\r\n border-top-left-radius: 0;\r\n border-bottom-left-radius: 0;\r\n border-top-right-radius: 0.375rem;\r\n border-bottom-right-radius: 0.375rem;\n}\n.crud-search .btn.open[data-v-ed8e5777] {\r\n border-top-right-radius: 0;\r\n border-bottom-right-radius: 0;\n}\n.table-options[data-v-ed8e5777] {\r\n margin-bottom: 1rem;\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\n}\r\n";
743
- n(css$6, {});var _sfc_main$e = {
742
+ var CrudFilters = __component__$f.exports;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}}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";
743
+ n(css$8, {});var _sfc_main$e = {
744
744
  name: 'CrudHeader',
745
745
  components: {
746
746
  CrudFilters: CrudFilters
@@ -1154,7 +1154,7 @@ function toggleClass(el, name, state) {
1154
1154
  }
1155
1155
  }
1156
1156
 
1157
- function css$5(el, prop, val) {
1157
+ function css$7(el, prop, val) {
1158
1158
  var style = el && el.style;
1159
1159
 
1160
1160
  if (style) {
@@ -1183,7 +1183,7 @@ function matrix(el, selfOnly) {
1183
1183
  appliedTransforms = el;
1184
1184
  } else {
1185
1185
  do {
1186
- var transform = css$5(el, 'transform');
1186
+ var transform = css$7(el, 'transform');
1187
1187
 
1188
1188
  if (transform && transform !== 'none') {
1189
1189
  appliedTransforms = transform + ' ' + appliedTransforms;
@@ -1265,11 +1265,11 @@ function getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoS
1265
1265
 
1266
1266
  if (!IE11OrLess) {
1267
1267
  do {
1268
- if (container && container.getBoundingClientRect && (css$5(container, 'transform') !== 'none' || relativeToNonStaticParent && css$5(container, 'position') !== 'static')) {
1268
+ if (container && container.getBoundingClientRect && (css$7(container, 'transform') !== 'none' || relativeToNonStaticParent && css$7(container, 'position') !== 'static')) {
1269
1269
  var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container
1270
1270
 
1271
- top -= containerRect.top + parseInt(css$5(container, 'border-top-width'));
1272
- left -= containerRect.left + parseInt(css$5(container, 'border-left-width'));
1271
+ top -= containerRect.top + parseInt(css$7(container, 'border-top-width'));
1272
+ left -= containerRect.left + parseInt(css$7(container, 'border-left-width'));
1273
1273
  bottom = top + elRect.height;
1274
1274
  right = left + elRect.width;
1275
1275
  break;
@@ -1376,7 +1376,7 @@ function getChild(el, childNum, options) {
1376
1376
  function lastChild(el, selector) {
1377
1377
  var last = el.lastElementChild;
1378
1378
 
1379
- while (last && (last === Sortable.ghost || css$5(last, 'display') === 'none' || selector && !matches(last, selector))) {
1379
+ while (last && (last === Sortable.ghost || css$7(last, 'display') === 'none' || selector && !matches(last, selector))) {
1380
1380
  last = last.previousElementSibling;
1381
1381
  }
1382
1382
 
@@ -1462,7 +1462,7 @@ function getParentAutoScrollElement(el, includeSelf) {
1462
1462
  do {
1463
1463
  // we don't need to get elem css if it isn't even overflowing in the first place (performance)
1464
1464
  if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {
1465
- var elemCSS = css$5(elem);
1465
+ var elemCSS = css$7(elem);
1466
1466
 
1467
1467
  if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {
1468
1468
  if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();
@@ -1538,19 +1538,19 @@ function clone(el) {
1538
1538
  }
1539
1539
 
1540
1540
  function setRect(el, rect) {
1541
- css$5(el, 'position', 'absolute');
1542
- css$5(el, 'top', rect.top);
1543
- css$5(el, 'left', rect.left);
1544
- css$5(el, 'width', rect.width);
1545
- css$5(el, 'height', rect.height);
1541
+ css$7(el, 'position', 'absolute');
1542
+ css$7(el, 'top', rect.top);
1543
+ css$7(el, 'left', rect.left);
1544
+ css$7(el, 'width', rect.width);
1545
+ css$7(el, 'height', rect.height);
1546
1546
  }
1547
1547
 
1548
1548
  function unsetRect(el) {
1549
- css$5(el, 'position', '');
1550
- css$5(el, 'top', '');
1551
- css$5(el, 'left', '');
1552
- css$5(el, 'width', '');
1553
- css$5(el, 'height', '');
1549
+ css$7(el, 'position', '');
1550
+ css$7(el, 'top', '');
1551
+ css$7(el, 'left', '');
1552
+ css$7(el, 'width', '');
1553
+ css$7(el, 'height', '');
1554
1554
  }
1555
1555
 
1556
1556
  var expando = 'Sortable' + new Date().getTime();
@@ -1564,7 +1564,7 @@ function AnimationStateManager() {
1564
1564
  if (!this.options.animation) return;
1565
1565
  var children = [].slice.call(this.el.children);
1566
1566
  children.forEach(function (child) {
1567
- if (css$5(child, 'display') === 'none' || child === Sortable.ghost) return;
1567
+ if (css$7(child, 'display') === 'none' || child === Sortable.ghost) return;
1568
1568
  animationStates.push({
1569
1569
  target: child,
1570
1570
  rect: getRect(child)
@@ -1671,8 +1671,8 @@ function AnimationStateManager() {
1671
1671
  },
1672
1672
  animate: function animate(target, currentRect, toRect, duration) {
1673
1673
  if (duration) {
1674
- css$5(target, 'transition', '');
1675
- css$5(target, 'transform', '');
1674
+ css$7(target, 'transition', '');
1675
+ css$7(target, 'transform', '');
1676
1676
  var elMatrix = matrix(this.el),
1677
1677
  scaleX = elMatrix && elMatrix.a,
1678
1678
  scaleY = elMatrix && elMatrix.d,
@@ -1680,15 +1680,15 @@ function AnimationStateManager() {
1680
1680
  translateY = (currentRect.top - toRect.top) / (scaleY || 1);
1681
1681
  target.animatingX = !!translateX;
1682
1682
  target.animatingY = !!translateY;
1683
- css$5(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');
1683
+ css$7(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');
1684
1684
  repaint(target); // repaint
1685
1685
 
1686
- css$5(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));
1687
- css$5(target, 'transform', 'translate3d(0,0,0)');
1686
+ css$7(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));
1687
+ css$7(target, 'transform', 'translate3d(0,0,0)');
1688
1688
  typeof target.animated === 'number' && clearTimeout(target.animated);
1689
1689
  target.animated = setTimeout(function () {
1690
- css$5(target, 'transition', '');
1691
- css$5(target, 'transform', '');
1690
+ css$7(target, 'transition', '');
1691
+ css$7(target, 'transform', '');
1692
1692
  target.animated = false;
1693
1693
  target.animatingX = false;
1694
1694
  target.animatingY = false;
@@ -1957,12 +1957,12 @@ supportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in
1957
1957
  return el.style.pointerEvents === 'auto';
1958
1958
  }(),
1959
1959
  _detectDirection = function _detectDirection(el, options) {
1960
- var elCSS = css$5(el),
1960
+ var elCSS = css$7(el),
1961
1961
  elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),
1962
1962
  child1 = getChild(el, 0, options),
1963
1963
  child2 = getChild(el, 1, options),
1964
- firstChildCSS = child1 && css$5(child1),
1965
- secondChildCSS = child2 && css$5(child2),
1964
+ firstChildCSS = child1 && css$7(child1),
1965
+ secondChildCSS = child2 && css$7(child2),
1966
1966
  firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,
1967
1967
  secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;
1968
1968
 
@@ -2051,12 +2051,12 @@ _detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {
2051
2051
  },
2052
2052
  _hideGhostForTarget = function _hideGhostForTarget() {
2053
2053
  if (!supportCssPointerEvents && ghostEl) {
2054
- css$5(ghostEl, 'display', 'none');
2054
+ css$7(ghostEl, 'display', 'none');
2055
2055
  }
2056
2056
  },
2057
2057
  _unhideGhostForTarget = function _unhideGhostForTarget() {
2058
2058
  if (!supportCssPointerEvents && ghostEl) {
2059
- css$5(ghostEl, 'display', '');
2059
+ css$7(ghostEl, 'display', '');
2060
2060
  }
2061
2061
  }; // #1184 fix - Prevent click event on fallback if dragged but item not changed position
2062
2062
 
@@ -2591,10 +2591,10 @@ Sortable.prototype =
2591
2591
  }
2592
2592
 
2593
2593
  var cssMatrix = "matrix(".concat(ghostMatrix.a, ",").concat(ghostMatrix.b, ",").concat(ghostMatrix.c, ",").concat(ghostMatrix.d, ",").concat(ghostMatrix.e, ",").concat(ghostMatrix.f, ")");
2594
- css$5(ghostEl, 'webkitTransform', cssMatrix);
2595
- css$5(ghostEl, 'mozTransform', cssMatrix);
2596
- css$5(ghostEl, 'msTransform', cssMatrix);
2597
- css$5(ghostEl, 'transform', cssMatrix);
2594
+ css$7(ghostEl, 'webkitTransform', cssMatrix);
2595
+ css$7(ghostEl, 'mozTransform', cssMatrix);
2596
+ css$7(ghostEl, 'msTransform', cssMatrix);
2597
+ css$7(ghostEl, 'transform', cssMatrix);
2598
2598
  lastDx = dx;
2599
2599
  lastDy = dy;
2600
2600
  touchEvt = touch;
@@ -2615,7 +2615,7 @@ Sortable.prototype =
2615
2615
  // Get relatively positioned parent
2616
2616
  ghostRelativeParent = container;
2617
2617
 
2618
- while (css$5(ghostRelativeParent, 'position') === 'static' && css$5(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {
2618
+ while (css$7(ghostRelativeParent, 'position') === 'static' && css$7(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {
2619
2619
  ghostRelativeParent = ghostRelativeParent.parentNode;
2620
2620
  }
2621
2621
 
@@ -2634,22 +2634,22 @@ Sortable.prototype =
2634
2634
  toggleClass(ghostEl, options.ghostClass, false);
2635
2635
  toggleClass(ghostEl, options.fallbackClass, true);
2636
2636
  toggleClass(ghostEl, options.dragClass, true);
2637
- css$5(ghostEl, 'transition', '');
2638
- css$5(ghostEl, 'transform', '');
2639
- css$5(ghostEl, 'box-sizing', 'border-box');
2640
- css$5(ghostEl, 'margin', 0);
2641
- css$5(ghostEl, 'top', rect.top);
2642
- css$5(ghostEl, 'left', rect.left);
2643
- css$5(ghostEl, 'width', rect.width);
2644
- css$5(ghostEl, 'height', rect.height);
2645
- css$5(ghostEl, 'opacity', '0.8');
2646
- css$5(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');
2647
- css$5(ghostEl, 'zIndex', '100000');
2648
- css$5(ghostEl, 'pointerEvents', 'none');
2637
+ css$7(ghostEl, 'transition', '');
2638
+ css$7(ghostEl, 'transform', '');
2639
+ css$7(ghostEl, 'box-sizing', 'border-box');
2640
+ css$7(ghostEl, 'margin', 0);
2641
+ css$7(ghostEl, 'top', rect.top);
2642
+ css$7(ghostEl, 'left', rect.left);
2643
+ css$7(ghostEl, 'width', rect.width);
2644
+ css$7(ghostEl, 'height', rect.height);
2645
+ css$7(ghostEl, 'opacity', '0.8');
2646
+ css$7(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');
2647
+ css$7(ghostEl, 'zIndex', '100000');
2648
+ css$7(ghostEl, 'pointerEvents', 'none');
2649
2649
  Sortable.ghost = ghostEl;
2650
2650
  container.appendChild(ghostEl); // Set transform-origin
2651
2651
 
2652
- css$5(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');
2652
+ css$7(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');
2653
2653
  }
2654
2654
  },
2655
2655
  _onDragStart: function _onDragStart(
@@ -2718,7 +2718,7 @@ Sortable.prototype =
2718
2718
 
2719
2719
  on(document, 'drop', _this); // #1276 fix:
2720
2720
 
2721
- css$5(dragEl, 'transform', 'translateZ(0)');
2721
+ css$7(dragEl, 'transform', 'translateZ(0)');
2722
2722
  }
2723
2723
 
2724
2724
  awaitingDragStarted = true;
@@ -2727,7 +2727,7 @@ Sortable.prototype =
2727
2727
  moved = true;
2728
2728
 
2729
2729
  if (Safari) {
2730
- css$5(document.body, 'user-select', 'none');
2730
+ css$7(document.body, 'user-select', 'none');
2731
2731
  }
2732
2732
  },
2733
2733
  // Returns true - if no further action is needed (either inserted or another condition)
@@ -2947,7 +2947,7 @@ Sortable.prototype =
2947
2947
  do {
2948
2948
  dragIndex -= direction;
2949
2949
  sibling = parentEl.children[dragIndex];
2950
- } while (sibling && (css$5(sibling, 'display') === 'none' || sibling === ghostEl));
2950
+ } while (sibling && (css$7(sibling, 'display') === 'none' || sibling === ghostEl));
2951
2951
  } // If dragEl is already beside target: Do not insert
2952
2952
 
2953
2953
 
@@ -3062,10 +3062,10 @@ Sortable.prototype =
3062
3062
  this._offUpEvents();
3063
3063
 
3064
3064
  if (Safari) {
3065
- css$5(document.body, 'user-select', '');
3065
+ css$7(document.body, 'user-select', '');
3066
3066
  }
3067
3067
 
3068
- css$5(dragEl, 'transform', '');
3068
+ css$7(dragEl, 'transform', '');
3069
3069
 
3070
3070
  if (evt) {
3071
3071
  if (moved) {
@@ -3340,7 +3340,7 @@ Sortable.prototype =
3340
3340
  if (!cloneHidden) {
3341
3341
  pluginEvent('hideClone', this);
3342
3342
  if (Sortable.eventCanceled) return;
3343
- css$5(cloneEl, 'display', 'none');
3343
+ css$7(cloneEl, 'display', 'none');
3344
3344
 
3345
3345
  if (this.options.removeCloneOnHide && cloneEl.parentNode) {
3346
3346
  cloneEl.parentNode.removeChild(cloneEl);
@@ -3372,7 +3372,7 @@ Sortable.prototype =
3372
3372
  this.animate(dragEl, cloneEl);
3373
3373
  }
3374
3374
 
3375
- css$5(cloneEl, 'display', '');
3375
+ css$7(cloneEl, 'display', '');
3376
3376
  cloneHidden = false;
3377
3377
  }
3378
3378
  }
@@ -3547,7 +3547,7 @@ if (documentExists) {
3547
3547
  Sortable.utils = {
3548
3548
  on: on,
3549
3549
  off: off,
3550
- css: css$5,
3550
+ css: css$7,
3551
3551
  find: find,
3552
3552
  is: function is(el, selector) {
3553
3553
  return !!closest(el, selector, el, false);
@@ -3774,7 +3774,7 @@ var autoScroll = throttle(function (evt, options, rootEl, isFallback) {
3774
3774
  canScrollY = void 0,
3775
3775
  scrollWidth = el.scrollWidth,
3776
3776
  scrollHeight = el.scrollHeight,
3777
- elCSS = css$5(el),
3777
+ elCSS = css$7(el),
3778
3778
  scrollPosX = el.scrollLeft,
3779
3779
  scrollPosY = el.scrollTop;
3780
3780
 
@@ -4110,7 +4110,7 @@ function MultiDragPlugin() {
4110
4110
  if (!this.isMultiDrag) return;
4111
4111
  insertMultiDragClones(false, rootEl);
4112
4112
  multiDragClones.forEach(function (clone) {
4113
- css$5(clone, 'display', '');
4113
+ css$7(clone, 'display', '');
4114
4114
  });
4115
4115
  cloneNowShown();
4116
4116
  clonesHidden = false;
@@ -4124,7 +4124,7 @@ function MultiDragPlugin() {
4124
4124
  cancel = _ref5.cancel;
4125
4125
  if (!this.isMultiDrag) return;
4126
4126
  multiDragClones.forEach(function (clone) {
4127
- css$5(clone, 'display', 'none');
4127
+ css$7(clone, 'display', 'none');
4128
4128
 
4129
4129
  if (_this.options.removeCloneOnHide && clone.parentNode) {
4130
4130
  clone.parentNode.removeChild(clone);
@@ -4168,7 +4168,7 @@ function MultiDragPlugin() {
4168
4168
  if (this.options.animation) {
4169
4169
  multiDragElements.forEach(function (multiDragElement) {
4170
4170
  if (multiDragElement === dragEl$1) return;
4171
- css$5(multiDragElement, 'position', 'absolute');
4171
+ css$7(multiDragElement, 'position', 'absolute');
4172
4172
  });
4173
4173
  var dragRect = getRect(dragEl$1, false, true, true);
4174
4174
  multiDragElements.forEach(function (multiDragElement) {
@@ -7049,9 +7049,10 @@ Sortable.mount(Remove, Revert);var sortable_esm=/*#__PURE__*/Object.freeze({__pr
7049
7049
  } (vuedraggable_umd, vuedraggable_umd.exports));
7050
7050
 
7051
7051
  var vuedraggable_umdExports = vuedraggable_umd.exports;
7052
- var draggable = /*@__PURE__*/getDefaultExportFromCjs(vuedraggable_umdExports);var _sfc_main$d = {
7052
+ var draggable = /*@__PURE__*/getDefaultExportFromCjs(vuedraggable_umdExports);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";
7053
+ n(css$6, {});var _sfc_main$d = {
7053
7054
  name: 'TableHeader',
7054
- inject: ['columns', 'enableFilters', 'filtersVisible', 'isColumnHasFilter', 'internalFilterByProp', 'onChangeFilter', 'toggleAll', 'toggleSortFilter', 'sortable', 'optionsLoaded'],
7055
+ inject: ['columns', 'enableFilters', 'filtersVisible', 'isColumnHasFilter', 'internalFilterByProp', 'onChangeFilter', 'toggleAll', 'toggleSortFilter', 'sortable', 'optionsLoaded', 'isAllSelected'],
7055
7056
  data: function data() {
7056
7057
  return {
7057
7058
  hoveredColumn: null
@@ -7088,8 +7089,11 @@ var _sfc_render$d = function render() {
7088
7089
  return _vm._l(_vm.columns, function (column, indexc) {
7089
7090
  return _c('th', {
7090
7091
  key: indexc,
7092
+ class: {
7093
+ 'actions-header': column.type == 'actions'
7094
+ },
7091
7095
  style: {
7092
- width: column.width ? column.width : 'inherit'
7096
+ width: column.width ? column.width : column.type == 'actions' ? '1%' : 'inherit'
7093
7097
  },
7094
7098
  attrs: {
7095
7099
  "scope": "col"
@@ -7246,21 +7250,19 @@ var _sfc_render$d = function render() {
7246
7250
  }, [_vm._v(" " + _vm._s(option.text ? option.text : option.label ? option.label : "") + " ")]);
7247
7251
  })], 2) : column.type == 'checkbox' ? _c('b-form-checkbox', {
7248
7252
  attrs: {
7249
- "name": "select-all"
7253
+ "name": "select-all",
7254
+ "checked": _vm.isAllSelected
7250
7255
  },
7251
7256
  on: {
7252
- "change": function change($event) {
7253
- return _vm.toggleAll($event);
7254
- }
7257
+ "change": _vm.toggleAll
7255
7258
  }
7256
7259
  }) : column.type == 'select' ? _c('b-form-checkbox', {
7257
7260
  attrs: {
7258
- "name": "select-all"
7261
+ "name": "select-all",
7262
+ "checked": _vm.isAllSelected
7259
7263
  },
7260
7264
  on: {
7261
- "change": function change($event) {
7262
- return _vm.toggleAll($event);
7263
- }
7265
+ "change": _vm.toggleAll
7264
7266
  }
7265
7267
  }) : _c('input', {
7266
7268
  directives: [{
@@ -7292,12 +7294,19 @@ var _sfc_render$d = function render() {
7292
7294
  "internalFilterByProp": _vm.internalFilterByProp
7293
7295
  }) : column.type == 'select' ? _c('span', [_c('b-form-checkbox', {
7294
7296
  attrs: {
7295
- "name": "select-all"
7297
+ "name": "select-all",
7298
+ "checked": _vm.isAllSelected
7296
7299
  },
7297
7300
  on: {
7298
- "change": function change($event) {
7299
- return _vm.toggleAll($event);
7300
- }
7301
+ "change": _vm.toggleAll
7302
+ }
7303
+ })], 1) : column.type == 'checkbox' ? _c('span', [_c('b-form-checkbox', {
7304
+ attrs: {
7305
+ "name": "select-all",
7306
+ "checked": _vm.isAllSelected
7307
+ },
7308
+ on: {
7309
+ "change": _vm.toggleAll
7301
7310
  }
7302
7311
  })], 1) : _c('span', [_vm._v(_vm._s(column.label))]), _vm.isSortableColumn(column) && _vm.shouldShowSortIcon(column) ? _c('span', {
7303
7312
  staticClass: "sort-filter",
@@ -7311,7 +7320,7 @@ var _sfc_render$d = function render() {
7311
7320
  })], 2)]);
7312
7321
  };
7313
7322
  var _sfc_staticRenderFns$d = [];
7314
- var __component__$d = /*#__PURE__*/normalizeComponent(_sfc_main$d, _sfc_render$d, _sfc_staticRenderFns$d, false, null, null, null, null);
7323
+ var __component__$d = /*#__PURE__*/normalizeComponent(_sfc_main$d, _sfc_render$d, _sfc_staticRenderFns$d, false, null, "37559362", null, null);
7315
7324
  var TableHeader = __component__$d.exports;function commonjsRequire(path) {
7316
7325
  throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
7317
7326
  }var moment$1 = {exports: {}};moment$1.exports;
@@ -12999,7 +13008,8 @@ var TableHeader = __component__$d.exports;function commonjsRequire(path) {
12999
13008
  } (moment$1, moment$1.exports));
13000
13009
 
13001
13010
  var momentExports = moment$1.exports;
13002
- var moment = /*@__PURE__*/getDefaultExportFromCjs(momentExports);var _sfc_main$c = {
13011
+ var moment = /*@__PURE__*/getDefaultExportFromCjs(momentExports);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";
13012
+ n(css$5, {});var _sfc_main$c = {
13003
13013
  name: 'TableCell',
13004
13014
  props: {
13005
13015
  column: Object,
@@ -13018,6 +13028,9 @@ var _sfc_render$c = function render() {
13018
13028
  var _vm = this,
13019
13029
  _c = _vm._self._c;
13020
13030
  return _c('td', {
13031
+ class: {
13032
+ 'actions-cell': _vm.column.type == 'actions'
13033
+ },
13021
13034
  attrs: {
13022
13035
  "scope": _vm.column.prop == 'id' ? 'row' : ''
13023
13036
  }
@@ -13043,13 +13056,68 @@ var _sfc_render$c = function render() {
13043
13056
  },
13044
13057
  expression: "item.selected"
13045
13058
  }
13059
+ })], 1) : _vm.column.type == 'checkbox' ? _c('span', [_c('b-form-checkbox', {
13060
+ on: {
13061
+ "change": function change($event) {
13062
+ return _vm.onCheckSelect($event, _vm.item);
13063
+ }
13064
+ },
13065
+ model: {
13066
+ value: _vm.item.selected,
13067
+ callback: function callback($$v) {
13068
+ _vm.$set(_vm.item, "selected", $$v);
13069
+ },
13070
+ expression: "item.selected"
13071
+ }
13046
13072
  })], 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)) + " ")])];
13047
13073
  }, {
13048
13074
  "item": _vm.item,
13049
13075
  "index": _vm.index,
13050
13076
  "itemindex": _vm.index,
13051
13077
  "columnindex": _vm.columnIndex
13052
- }), _vm.column.type == 'actions' ? _c('b-button-group', [_vm._t("rowAction", function () {
13078
+ }), _vm.column.type == 'actions' && _vm.column.useDropdown ? _c('b-dropdown', {
13079
+ staticClass: "actions-dropdown",
13080
+ attrs: {
13081
+ "variant": "secondary",
13082
+ "size": "sm"
13083
+ },
13084
+ scopedSlots: _vm._u([{
13085
+ key: "button-content",
13086
+ fn: function fn() {
13087
+ return [_c('b-icon-list')];
13088
+ },
13089
+ proxy: true
13090
+ }], null, false, 4241371057)
13091
+ }, [_vm._t("rowAction", function () {
13092
+ return [_c('b-dropdown-item', {
13093
+ on: {
13094
+ "click": function click($event) {
13095
+ return _vm.showItem(_vm.item.id, _vm.index);
13096
+ }
13097
+ }
13098
+ }, [_c('b-icon-eye'), _vm._v(" Ver ")], 1), _c('b-dropdown-item', {
13099
+ on: {
13100
+ "click": function click($event) {
13101
+ return _vm.updateItem(_vm.item.id, _vm.index);
13102
+ }
13103
+ }
13104
+ }, [_c('b-icon-pencil'), _vm._v(" Editar ")], 1), _c('b-dropdown-item', {
13105
+ staticClass: "text-danger",
13106
+ on: {
13107
+ "click": function click($event) {
13108
+ return _vm.removeItem(_vm.item.id, _vm.index);
13109
+ }
13110
+ }
13111
+ }, [_c('b-icon-trash'), _vm._v(" Eliminar ")], 1)];
13112
+ }, {
13113
+ "item": _vm.item,
13114
+ "index": _vm.index,
13115
+ "showItem": _vm.showItem,
13116
+ "updateItem": _vm.updateItem,
13117
+ "removeItem": _vm.removeItem
13118
+ })], 2) : _vm.column.type == 'actions' ? _c('b-button-group', {
13119
+ staticClass: "actions-button-group"
13120
+ }, [_vm._t("rowAction", function () {
13053
13121
  return [_c('b-button', {
13054
13122
  attrs: {
13055
13123
  "variant": "primary"
@@ -13087,7 +13155,7 @@ var _sfc_render$c = function render() {
13087
13155
  })], 2) : _vm._e()], 2);
13088
13156
  };
13089
13157
  var _sfc_staticRenderFns$c = [];
13090
- var __component__$c = /*#__PURE__*/normalizeComponent(_sfc_main$c, _sfc_render$c, _sfc_staticRenderFns$c, false, null, null, null, null);
13158
+ var __component__$c = /*#__PURE__*/normalizeComponent(_sfc_main$c, _sfc_render$c, _sfc_staticRenderFns$c, false, null, "3309b7c7", null, null);
13091
13159
  var TableCell = __component__$c.exports;var _sfc_main$b = {
13092
13160
  name: 'TableRow',
13093
13161
  components: {
@@ -14139,13 +14207,24 @@ vueInfiniteLoading.exports;
14139
14207
  } (vueInfiniteLoading, vueInfiniteLoading.exports));
14140
14208
 
14141
14209
  var vueInfiniteLoadingExports = vueInfiniteLoading.exports;
14142
- var InfiniteLoading = /*@__PURE__*/getDefaultExportFromCjs(vueInfiniteLoadingExports);var css$1 = "\n.paginator-container[data-v-2c61ceb1] {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n width: 100%;\r\n margin-top: 1rem;\r\n gap: 0.75rem;\n}\n.paginator-data[data-v-2c61ceb1] {\r\n display: flex;\r\n flex-wrap: wrap;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 0.5rem;\r\n font-size: 0.875rem;\n}\n.paginator-badge[data-v-2c61ceb1] {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 0.25rem;\r\n padding: 0.375rem 0.625rem;\r\n background-color: #f8f9fa;\r\n border: 1px solid #dee2e6;\r\n border-radius: 0.375rem;\r\n color: #495057;\r\n transition: all 0.2s ease;\n}\n.paginator-badge[data-v-2c61ceb1]:hover {\r\n background-color: #e9ecef;\r\n border-color: #ced4da;\n}\n.paginator-label[data-v-2c61ceb1] {\r\n font-weight: 500;\r\n color: #6c757d;\n}\n.paginator-value[data-v-2c61ceb1] {\r\n font-weight: 600;\r\n color: #212529;\n}\n.crud-paginator[data-v-2c61ceb1] {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\n}\r\n";
14210
+ var InfiniteLoading = /*@__PURE__*/getDefaultExportFromCjs(vueInfiniteLoadingExports);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";
14143
14211
  n(css$1, {});var _sfc_main$1 = {
14144
14212
  name: 'CrudPagination',
14145
14213
  components: {
14146
14214
  InfiniteLoading: InfiniteLoading
14147
14215
  },
14148
- inject: ['infiniteScroll', 'infiniteScrollKey', 'messageLoading', 'messageNoMore', 'messageEmptyResults', 'loading', 'items', 'pagination', 'selectedItems', 'showPaginator', 'infiniteHandler', 'onPaginationChange']
14216
+ inject: ['infiniteScroll', 'infiniteScrollKey', 'messageLoading', 'messageNoMore', 'messageEmptyResults', 'loading', 'items', 'pagination', 'selectedItems', 'showPaginator', 'infiniteHandler', 'onPaginationChange', 'onPerPageChange', 'clearSelection'],
14217
+ data: function data() {
14218
+ return {
14219
+ perPageOptions: [10, 20, 50, 100]
14220
+ };
14221
+ },
14222
+ computed: {
14223
+ selectedItemsCount: function selectedItemsCount() {
14224
+ // Computed para forzar reactividad del contador
14225
+ return this.selectedItems ? this.selectedItems.length : 0;
14226
+ }
14227
+ }
14149
14228
  };
14150
14229
  var _sfc_render$1 = function render() {
14151
14230
  var _vm = this,
@@ -14190,25 +14269,39 @@ var _sfc_render$1 = function render() {
14190
14269
  staticClass: "paginator-label"
14191
14270
  }, [_vm._v("Filas:")]), _c('span', {
14192
14271
  staticClass: "paginator-value"
14193
- }, [_vm._v(_vm._s(_vm.pagination.total))])]), _c('span', {
14194
- staticClass: "paginator-badge"
14195
- }, [_c('span', {
14196
- staticClass: "paginator-label"
14197
- }, [_vm._v("xPág:")]), _c('span', {
14198
- staticClass: "paginator-value"
14199
- }, [_vm._v(_vm._s(_vm.pagination.per_page))])]), _c('span', {
14200
- staticClass: "paginator-badge"
14201
- }, [_c('span', {
14202
- staticClass: "paginator-label"
14203
- }, [_vm._v("Pág:")]), _c('span', {
14204
- staticClass: "paginator-value"
14205
- }, [_vm._v(_vm._s(_vm.pagination.current_page))])]), _vm.selectedItems.length > 0 ? _c('span', {
14206
- staticClass: "paginator-badge"
14207
- }, [_c('span', {
14208
- staticClass: "paginator-label"
14209
- }, [_vm._v("Seleccionados:")]), _c('span', {
14210
- staticClass: "paginator-value"
14211
- }, [_vm._v(_vm._s(_vm.selectedItems.length))])]) : _vm._e()]), _c('div', {
14272
+ }, [_vm._v(_vm._s(_vm.pagination.total))])]), _c('b-dropdown', {
14273
+ staticClass: "paginator-dropdown",
14274
+ attrs: {
14275
+ "variant": "outline-secondary",
14276
+ "size": "sm",
14277
+ "text": "xP\xE1g: ".concat(_vm.pagination.per_page)
14278
+ }
14279
+ }, _vm._l(_vm.perPageOptions, function (option) {
14280
+ return _c('b-dropdown-item', {
14281
+ key: option,
14282
+ attrs: {
14283
+ "active": _vm.pagination.per_page === option
14284
+ },
14285
+ on: {
14286
+ "click": function click($event) {
14287
+ return _vm.onPerPageChange(option);
14288
+ }
14289
+ }
14290
+ }, [_vm._v(" " + _vm._s(option) + " ")]);
14291
+ }), 1), _vm.selectedItemsCount > 0 ? _c('b-dropdown', {
14292
+ staticClass: "paginator-dropdown paginator-badge-dropdown",
14293
+ attrs: {
14294
+ "variant": "outline-secondary",
14295
+ "size": "sm",
14296
+ "text": "Seleccionados: ".concat(_vm.selectedItemsCount)
14297
+ }
14298
+ }, [_c('b-dropdown-item', {
14299
+ on: {
14300
+ "click": _vm.clearSelection
14301
+ }
14302
+ }, [_c('b-icon-x-circle', {
14303
+ staticClass: "mr-1"
14304
+ }), _vm._v(" Limpiar selección ")], 1)], 1) : _vm._e()], 1), _c('div', {
14212
14305
  staticClass: "crud-paginator"
14213
14306
  }, [_vm.showPaginator ? _c('b-pagination', {
14214
14307
  attrs: {
@@ -14230,7 +14323,7 @@ var _sfc_render$1 = function render() {
14230
14323
  }) : _vm._e()], 1)]) : _vm._e()], 1);
14231
14324
  };
14232
14325
  var _sfc_staticRenderFns$1 = [];
14233
- var __component__$1 = /*#__PURE__*/normalizeComponent(_sfc_main$1, _sfc_render$1, _sfc_staticRenderFns$1, false, null, "2c61ceb1", null, null);
14326
+ var __component__$1 = /*#__PURE__*/normalizeComponent(_sfc_main$1, _sfc_render$1, _sfc_staticRenderFns$1, false, null, "11671e09", null, null);
14234
14327
  var CrudPagination = __component__$1.exports;var crudData = {
14235
14328
  data: function data() {
14236
14329
  return {
@@ -14364,6 +14457,82 @@ var CrudPagination = __component__$1.exports;var crudData = {
14364
14457
  if (!this.ajax) {
14365
14458
  this.items = val;
14366
14459
  }
14460
+ },
14461
+ limit: function limit(val) {
14462
+ if (val && val > 0) {
14463
+ this.pagination.per_page = val;
14464
+ // Resetear a la primera página y recargar datos
14465
+ this.pagination.current_page = 1;
14466
+ this.fetchItems();
14467
+ }
14468
+ },
14469
+ displayMode: function displayMode() {
14470
+ var _this2 = this;
14471
+ // Forzar re-renderizado cuando cambia el modo de visualización
14472
+ this.$nextTick(function () {
14473
+ _this2.forceRecomputeCounter++;
14474
+ });
14475
+ },
14476
+ showPaginator: function showPaginator() {
14477
+ var _this3 = this;
14478
+ // Forzar re-renderizado cuando cambia la visibilidad del paginador
14479
+ this.$nextTick(function () {
14480
+ _this3.forceRecomputeCounter++;
14481
+ });
14482
+ },
14483
+ showSearch: function showSearch() {
14484
+ var _this4 = this;
14485
+ // Forzar re-renderizado cuando cambia la visibilidad de la búsqueda
14486
+ this.$nextTick(function () {
14487
+ _this4.forceRecomputeCounter++;
14488
+ });
14489
+ },
14490
+ showCreateBtn: function showCreateBtn() {
14491
+ var _this5 = this;
14492
+ // Forzar re-renderizado cuando cambia la visibilidad del botón crear
14493
+ this.$nextTick(function () {
14494
+ _this5.forceRecomputeCounter++;
14495
+ });
14496
+ },
14497
+ showHeader: function showHeader() {
14498
+ var _this6 = this;
14499
+ // Forzar re-renderizado cuando cambia la visibilidad del header
14500
+ this.$nextTick(function () {
14501
+ _this6.forceRecomputeCounter++;
14502
+ });
14503
+ },
14504
+ tableClass: function tableClass() {
14505
+ var _this7 = this;
14506
+ // Forzar re-renderizado cuando cambian las clases de la tabla
14507
+ this.$nextTick(function () {
14508
+ _this7.forceRecomputeCounter++;
14509
+ });
14510
+ },
14511
+ cardClass: function cardClass() {
14512
+ var _this8 = this;
14513
+ // Forzar re-renderizado cuando cambian las clases de las tarjetas
14514
+ this.$nextTick(function () {
14515
+ _this8.forceRecomputeCounter++;
14516
+ });
14517
+ },
14518
+ tableContainerClass: function tableContainerClass() {
14519
+ var _this9 = this;
14520
+ // Forzar re-renderizado cuando cambian las clases del contenedor
14521
+ this.$nextTick(function () {
14522
+ _this9.forceRecomputeCounter++;
14523
+ });
14524
+ },
14525
+ columns: {
14526
+ handler: function handler() {
14527
+ var _this10 = this;
14528
+ // Recargar opciones cuando cambian las columnas
14529
+ this.loadOptions();
14530
+ // Forzar re-renderizado
14531
+ this.$nextTick(function () {
14532
+ _this10.forceRecomputeCounter++;
14533
+ });
14534
+ },
14535
+ deep: true
14367
14536
  }
14368
14537
  },
14369
14538
  mounted: function mounted() {
@@ -14441,7 +14610,7 @@ var CrudPagination = __component__$1.exports;var crudData = {
14441
14610
  this.items = [];
14442
14611
  },
14443
14612
  updateData: function updateData(data) {
14444
- var _this2 = this;
14613
+ var _this11 = this;
14445
14614
  var allowCreate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
14446
14615
  // Convertir this.items a un mapa para acceso rápido por id
14447
14616
  var itemsMap = new Map(this.items.map(function (item) {
@@ -14456,7 +14625,7 @@ var CrudPagination = __component__$1.exports;var crudData = {
14456
14625
  Object.assign(existingItem, newItem);
14457
14626
  } else if (allowCreate) {
14458
14627
  // Agregar el nuevo item si allowCreate es true
14459
- _this2.items.push(newItem);
14628
+ _this11.items.push(newItem);
14460
14629
  }
14461
14630
  });
14462
14631
 
@@ -14464,30 +14633,29 @@ var CrudPagination = __component__$1.exports;var crudData = {
14464
14633
  this.items = Array.from(itemsMap.values());
14465
14634
  },
14466
14635
  externalUpdate: function externalUpdate(itemsUpdate) {
14467
- var _this3 = this;
14636
+ var _this12 = this;
14468
14637
  var addIfNotExist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
14469
14638
  var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'id';
14470
14639
  itemsUpdate.forEach(function (itemUpdate) {
14471
- var itemInList = _this3.items.find(function (item) {
14640
+ var itemInList = _this12.items.find(function (item) {
14472
14641
  return item[key] === itemUpdate[key];
14473
14642
  });
14474
14643
  if (itemInList) Object.assign(itemInList, itemUpdate);else {
14475
14644
  if (addIfNotExist) {
14476
- _this3.items.push(itemUpdate);
14645
+ _this12.items.push(itemUpdate);
14477
14646
  }
14478
14647
  }
14479
14648
  });
14480
14649
  },
14481
14650
  makePagination: function makePagination(data) {
14482
- var pagination = {
14483
- current_page: data.current_page,
14484
- last_page: data.last_page,
14485
- next_page_url: data.next_page_url,
14486
- prev_page_url: data.prev_page_url,
14487
- total: data.total,
14488
- per_page: data.per_page
14489
- };
14490
- this.pagination = pagination;
14651
+ var _data$current_page, _data$last_page, _data$next_page_url, _data$prev_page_url, _data$total, _data$per_page;
14652
+ // Mutar propiedades existentes para mantener reactividad con provide/inject
14653
+ this.pagination.current_page = (_data$current_page = data.current_page) !== null && _data$current_page !== void 0 ? _data$current_page : 1;
14654
+ this.pagination.last_page = (_data$last_page = data.last_page) !== null && _data$last_page !== void 0 ? _data$last_page : 1;
14655
+ this.pagination.next_page_url = (_data$next_page_url = data.next_page_url) !== null && _data$next_page_url !== void 0 ? _data$next_page_url : "";
14656
+ this.pagination.prev_page_url = (_data$prev_page_url = data.prev_page_url) !== null && _data$prev_page_url !== void 0 ? _data$prev_page_url : "";
14657
+ this.pagination.total = (_data$total = data.total) !== null && _data$total !== void 0 ? _data$total : 0;
14658
+ this.pagination.per_page = (_data$per_page = data.per_page) !== null && _data$per_page !== void 0 ? _data$per_page : 20;
14491
14659
  }
14492
14660
  }
14493
14661
  };var global$1 = (typeof global !== "undefined" ? global :
@@ -20345,6 +20513,11 @@ axios.default = axios;var crudApi = {
20345
20513
  onPaginationChange: function onPaginationChange(page) {
20346
20514
  this.fetchItems(page);
20347
20515
  },
20516
+ onPerPageChange: function onPerPageChange(perPage) {
20517
+ this.pagination.per_page = perPage;
20518
+ this.pagination.current_page = 1;
20519
+ this.fetchItems(1);
20520
+ },
20348
20521
  infiniteHandler: function infiniteHandler($state) {
20349
20522
  var hasNextPage = (this.pagination.total > 0 || !this.firstLoad) && (!this.firstLoad || this.pagination.current_page * this.pagination.per_page <= this.pagination.total);
20350
20523
  console.debug("Has next page", hasNextPage, this.pagination);
@@ -20539,6 +20712,27 @@ axios.default = axios;var crudApi = {
20539
20712
  }
20540
20713
  }
20541
20714
  };var crudHelpers = {
20715
+ computed: {
20716
+ isAllSelected: function isAllSelected() {
20717
+ // Forzar dependencia en selectedItems.length para que se recalcule cuando cambie
20718
+ var selectedCount = this.selectedItems ? this.selectedItems.length : 0;
20719
+ if (!this.itemsList || this.itemsList.length === 0) {
20720
+ return false;
20721
+ }
20722
+
20723
+ // Si no hay items seleccionados, retornar false
20724
+ if (selectedCount === 0) {
20725
+ return false;
20726
+ }
20727
+
20728
+ // Verificar que todos los items de la lista actual estén seleccionados
20729
+ // Usar Boolean() para manejar valores undefined/null
20730
+ var allSelected = this.itemsList.every(function (item) {
20731
+ return Boolean(item.selected) === true;
20732
+ });
20733
+ return allSelected;
20734
+ }
20735
+ },
20542
20736
  methods: {
20543
20737
  onRowHover: function onRowHover(item, itemIndex) {
20544
20738
  if (this.selectHover) {
@@ -20576,48 +20770,101 @@ axios.default = axios;var crudApi = {
20576
20770
  console.debug("Selected Items", this.selectedItems);
20577
20771
  },
20578
20772
  toggleAll: function toggleAll(value) {
20579
- if (value) {
20580
- this.selectedItems = this.items;
20581
- this.selectedItems.forEach(function (item) {
20582
- return item.selected = true;
20773
+ var _this2 = this;
20774
+ // b-form-checkbox emite el valor booleano directamente en el evento change
20775
+ // El valor puede venir directamente como booleano o como evento del DOM
20776
+ var checked = typeof value === 'boolean' ? value : value && value.target ? value.target.checked : value;
20777
+ if (checked) {
20778
+ // Seleccionar todos los items de la lista actual (itemsList)
20779
+ this.itemsList.forEach(function (item) {
20780
+ _this2.$set(item, 'selected', true);
20781
+ // Agregar a selectedItems si no está ya
20782
+ if (!_this2.selectedItems.find(function (si) {
20783
+ return si.id === item.id;
20784
+ })) {
20785
+ _this2.selectedItems.push(item);
20786
+ }
20583
20787
  });
20584
20788
  } else {
20789
+ // Deseleccionar todos
20585
20790
  this.selectedItems.forEach(function (item) {
20586
- return item.selected = false;
20791
+ return _this2.$set(item, 'selected', false);
20587
20792
  });
20588
20793
  this.items.forEach(function (item) {
20589
- return item.selected = false;
20794
+ return _this2.$set(item, 'selected', false);
20795
+ });
20796
+ this.itemsList.forEach(function (item) {
20797
+ return _this2.$set(item, 'selected', false);
20590
20798
  });
20591
- this.selectedItems = [];
20799
+ // Usar splice para mantener la referencia del array y reactividad con provide/inject
20800
+ this.selectedItems.splice(0, this.selectedItems.length);
20592
20801
  }
20593
20802
  this.onSelect();
20594
20803
  console.debug("toggle all", this.selectedItems);
20804
+ // Forzar actualización inmediata y en el siguiente tick
20595
20805
  this.$forceUpdate();
20806
+ this.$nextTick(function () {
20807
+ _this2.$forceUpdate();
20808
+ });
20596
20809
  },
20597
20810
  unSelectItem: function unSelectItem(item) {
20598
- item.selected = false;
20599
- this.selectedItems = this.selectedItems.filter(function (e) {
20811
+ var _this$selectedItems;
20812
+ this.$set(item, 'selected', false);
20813
+
20814
+ // Filtrar el array y reasignarlo para asegurar reactividad
20815
+ var filtered = this.selectedItems.filter(function (e) {
20600
20816
  return e.id != item.id;
20601
20817
  });
20818
+ // Vaciar el array y luego agregar los elementos filtrados para mantener la referencia
20819
+ (_this$selectedItems = this.selectedItems).splice.apply(_this$selectedItems, [0, this.selectedItems.length].concat(_toConsumableArray$1(filtered)));
20820
+
20821
+ // Forzar actualización para que el computed isAllSelected se recalcule
20822
+ this.$forceUpdate();
20602
20823
  },
20603
20824
  selectItem: function selectItem() {
20604
- var _this2 = this;
20825
+ var _this3 = this;
20605
20826
  var sitem = this.selectedItems.find(function (e) {
20606
- return e.id == _this2.item.id;
20827
+ return e.id == _this3.item.id;
20607
20828
  });
20608
20829
  if (sitem) {
20609
- this.item.selected = false;
20610
- this.selectedItems = this.selectedItems.filter(function (e) {
20611
- return e.id != _this2.item.id;
20830
+ var _this$selectedItems2;
20831
+ this.$set(this.item, 'selected', false);
20832
+ var filtered = this.selectedItems.filter(function (e) {
20833
+ return e.id != _this3.item.id;
20612
20834
  });
20835
+ // Usar splice para mantener la referencia del array
20836
+ (_this$selectedItems2 = this.selectedItems).splice.apply(_this$selectedItems2, [0, this.selectedItems.length].concat(_toConsumableArray$1(filtered)));
20613
20837
  } else {
20614
- this.item.selected = true;
20838
+ this.$set(this.item, 'selected', true);
20615
20839
  this.selectedItems.push(this.item);
20616
20840
  }
20841
+ // Forzar actualización para que el computed isAllSelected se recalcule
20842
+ this.$forceUpdate();
20617
20843
  },
20618
20844
  getSelectedItems: function getSelectedItems() {
20619
20845
  return this.selectedItems;
20620
20846
  },
20847
+ clearSelection: function clearSelection() {
20848
+ var _this4 = this;
20849
+ // Limpiar todas las selecciones
20850
+ this.selectedItems.forEach(function (item) {
20851
+ return _this4.$set(item, 'selected', false);
20852
+ });
20853
+ this.items.forEach(function (item) {
20854
+ return _this4.$set(item, 'selected', false);
20855
+ });
20856
+ this.itemsList.forEach(function (item) {
20857
+ return _this4.$set(item, 'selected', false);
20858
+ });
20859
+ // Vaciar el array manteniendo la referencia para reactividad con provide/inject
20860
+ this.selectedItems.splice(0, this.selectedItems.length);
20861
+ this.onSelect();
20862
+ // Forzar actualización inmediata y en el siguiente tick para asegurar que todo se actualice
20863
+ this.$forceUpdate();
20864
+ this.$nextTick(function () {
20865
+ _this4.$forceUpdate();
20866
+ });
20867
+ },
20621
20868
  onSelect: function onSelect() {
20622
20869
  this.$emit("select", this.item);
20623
20870
  this.$emit("selectItems", this.selectedItems);
@@ -20662,7 +20909,7 @@ axios.default = axios;var crudApi = {
20662
20909
  this.$bvModal.show("modal-form-item-" + this.modelName);
20663
20910
  },
20664
20911
  removeItem: function removeItem(id, index) {
20665
- var _this3 = this;
20912
+ var _this5 = this;
20666
20913
  this.$bvModal.msgBoxConfirm(this.messageRemoveConfirm, {
20667
20914
  size: "sm",
20668
20915
  buttonSize: "sm",
@@ -20672,15 +20919,15 @@ axios.default = axios;var crudApi = {
20672
20919
  centered: true
20673
20920
  }).then(function (value) {
20674
20921
  if (value) {
20675
- _this3.deleteItem(id, index);
20922
+ _this5.deleteItem(id, index);
20676
20923
  }
20677
20924
  }).catch(function (error) {
20678
- _this3.toastError(error);
20679
- _this3.loading = false;
20925
+ _this5.toastError(error);
20926
+ _this5.loading = false;
20680
20927
  });
20681
20928
  },
20682
20929
  confirmBulkDelete: function confirmBulkDelete() {
20683
- var _this4 = this;
20930
+ var _this6 = this;
20684
20931
  this.$bvModal.msgBoxConfirm(this.messageRemoveBulkConfirm, {
20685
20932
  size: "sm",
20686
20933
  buttonSize: "sm",
@@ -20690,11 +20937,11 @@ axios.default = axios;var crudApi = {
20690
20937
  centered: true
20691
20938
  }).then(function (value) {
20692
20939
  if (value) {
20693
- _this4.deleteItemBulk();
20940
+ _this6.deleteItemBulk();
20694
20941
  }
20695
20942
  }).catch(function (error) {
20696
- _this4.toastError(error);
20697
- _this4.loading = false;
20943
+ _this6.toastError(error);
20944
+ _this6.loading = false;
20698
20945
  });
20699
20946
  },
20700
20947
  toggleDisplayMode: function toggleDisplayMode() {
@@ -20802,7 +21049,7 @@ axios.default = axios;var crudApi = {
20802
21049
  link.click();
20803
21050
  }
20804
21051
  }
20805
- };var css = "tr td[data-v-51b1f76a]:last-child,\ntr td[data-v-51b1f76a]:first-child {\n width: 1%;\n white-space: nowrap; }\n\ntbody tr.selected[data-v-51b1f76a] {\n background-color: #e3f2fd !important; }\n tbody tr.selected[data-v-51b1f76a] td[data-v-51b1f76a] {\n background-color: transparent !important; }\n tbody tr.selected[data-v-51b1f76a][data-v-51b1f76a]:hover {\n background-color: #bbdefb !important; }\n tbody tr.selected[data-v-51b1f76a][data-v-51b1f76a]:hover td[data-v-51b1f76a] {\n background-color: transparent !important; }\n\n.table-striped tbody tr.selected[data-v-51b1f76a]:nth-of-type(odd) {\n background-color: #e3f2fd !important; }\n .table-striped tbody tr.selected[data-v-51b1f76a]:nth-of-type(odd) td[data-v-51b1f76a] {\n background-color: transparent !important; }\n\n.table-striped tbody tr.selected[data-v-51b1f76a]:nth-of-type(even) {\n background-color: #e3f2fd !important; }\n .table-striped tbody tr.selected[data-v-51b1f76a]:nth-of-type(even) td[data-v-51b1f76a] {\n background-color: transparent !important; }\n\n.crud-pagination[data-v-51b1f76a] {\n display: flex;\n align-items: center;\n width: 100%;\n justify-content: center;\n margin-top: 1rem; }\n\n.crud-header[data-v-51b1f76a] {\n display: flex;\n justify-content: space-between;\n max-height: 3rem; }\n .crud-header[data-v-51b1f76a] .crud-title[data-v-51b1f76a] {\n margin: 0; }\n .crud-header[data-v-51b1f76a] .crud-search[data-v-51b1f76a] {\n max-width: 15rem; }\n .crud-header[data-v-51b1f76a] .crud-search[data-v-51b1f76a] .btn[data-v-51b1f76a] {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n border-top-right-radius: 0.375rem;\n border-bottom-right-radius: 0.375rem; }\n .crud-header[data-v-51b1f76a] .crud-search[data-v-51b1f76a] .btn[data-v-51b1f76a].open[data-v-51b1f76a] {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n .crud-header[data-v-51b1f76a] .table-options[data-v-51b1f76a] {\n margin-bottom: 1rem;\n display: flex;\n align-items: center;\n justify-content: flex-end; }\n\n.custom-control[data-v-51b1f76a] {\n position: relative; }\n\n@media (min-width: 992px) {\n .table[data-v-51b1f76a] {\n table-layout: auto; }\n .table[data-v-51b1f76a] tbody[data-v-51b1f76a] td[data-v-51b1f76a] {\n overflow: scroll;\n -ms-overflow-style: none;\n /* IE and Edge */\n scrollbar-width: none;\n /* Firefox */ }\n .table[data-v-51b1f76a] tbody[data-v-51b1f76a] td[data-v-51b1f76a]::-webkit-scrollbar {\n display: none; } }\n\n.kanban-board[data-v-51b1f76a] {\n display: flex;\n gap: 1rem;\n overflow-x: auto;\n padding: 1rem; }\n\n.kanban-column[data-v-51b1f76a] {\n background: #f4f5f7;\n border-radius: 8px;\n width: 300px;\n display: flex;\n flex-direction: column;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); }\n\n.kanban-column-header[data-v-51b1f76a] {\n font-weight: bold;\n padding: 0.5rem;\n background: #dfe1e6;\n border-radius: 8px 8px 0 0;\n text-align: center; }\n\n.kanban-column-body[data-v-51b1f76a] {\n padding: 0.5rem;\n min-height: 100px;\n background: #ffffff;\n border-radius: 0 0 8px 8px;\n display: flex;\n flex-direction: column;\n gap: 0.5rem; }\n\n.kanban-card[data-v-51b1f76a] {\n background: #ffffff;\n border-radius: 4px;\n padding: 1rem;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n cursor: grab; }\n";
21052
+ };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";
20806
21053
  n(css, {});var _sfc_main = {
20807
21054
  name: "VueLaravelCrud",
20808
21055
  components: {
@@ -20927,6 +21174,7 @@ n(css, {});var _sfc_main = {
20927
21174
  internalFilter: this.internalFilter,
20928
21175
  internalFilterByProp: this.internalFilterByProp,
20929
21176
  columnOptions: this.columnOptions,
21177
+ isAllSelected: this.isAllSelected,
20930
21178
  // Methods from mixins
20931
21179
  handleResize: this.handleResize,
20932
21180
  rearrangeArray: this.rearrangeArray,
@@ -20952,6 +21200,7 @@ n(css, {});var _sfc_main = {
20952
21200
  importItems: this.importItems,
20953
21201
  refresh: this.refresh,
20954
21202
  onPaginationChange: this.onPaginationChange,
21203
+ onPerPageChange: this.onPerPageChange,
20955
21204
  infiniteHandler: this.infiniteHandler,
20956
21205
  setupFilters: this.setupFilters,
20957
21206
  toggleSortFilter: this.toggleSortFilter,
@@ -20972,6 +21221,7 @@ n(css, {});var _sfc_main = {
20972
21221
  unSelectItem: this.unSelectItem,
20973
21222
  selectItem: this.selectItem,
20974
21223
  getSelectedItems: this.getSelectedItems,
21224
+ clearSelection: this.clearSelection,
20975
21225
  onSelect: this.onSelect,
20976
21226
  showItem: this.showItem,
20977
21227
  createItem: this.createItem,
@@ -21302,10 +21552,19 @@ var _sfc_render = function render() {
21302
21552
  "show": _vm.loading,
21303
21553
  "rounded": "sm"
21304
21554
  }
21305
- }), _c('CrudPagination'), _c('CrudModals')], 1);
21555
+ }), _c('CrudPagination'), _c('CrudModals', {
21556
+ scopedSlots: _vm._u([_vm._l(_vm.$scopedSlots, function (slot, name) {
21557
+ return {
21558
+ key: name,
21559
+ fn: function fn(slotProps) {
21560
+ return [_vm._t(name, null, null, slotProps)];
21561
+ }
21562
+ };
21563
+ })], null, true)
21564
+ })], 1);
21306
21565
  };
21307
21566
  var _sfc_staticRenderFns = [];
21308
- var __component__ = /*#__PURE__*/normalizeComponent(_sfc_main, _sfc_render, _sfc_staticRenderFns, false, null, "51b1f76a", null, null);
21567
+ var __component__ = /*#__PURE__*/normalizeComponent(_sfc_main, _sfc_render, _sfc_staticRenderFns, false, null, "482920a4", null, null);
21309
21568
  var component$1 = __component__.exports;// Import vue component
21310
21569
 
21311
21570
  // Default export is installable instance of component.