vue-laravel-crud 2.0.0 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- 'use strict';function _iterableToArrayLimit(r, l) {
1
+ 'use strict';var Vue=require('vue');function _interopDefaultLegacy(e){return e&&typeof e==='object'&&'default'in e?e:{'default':e}}var Vue__default=/*#__PURE__*/_interopDefaultLegacy(Vue);function _iterableToArrayLimit(r, l) {
2
2
  var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
3
3
  if (null != t) {
4
4
  var e,
@@ -739,13 +739,26 @@ 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-dec590e4] {\r\n display: flex;\r\n justify-content: space-between;\r\n max-height: 3rem;\n}\n.crud-title[data-v-dec590e4] {\r\n margin: 0;\n}\n.crud-search[data-v-dec590e4] {\r\n max-width: 15rem;\n}\n.crud-search .btn[data-v-dec590e4] {\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-dec590e4] {\r\n border-top-right-radius: 0;\r\n border-bottom-right-radius: 0;\n}\n.table-options[data-v-dec590e4] {\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
747
747
  },
748
- inject: ['showHeader', 'showTitle', 'title', 'filterSidebarOpen', 'showImport', 'showExport', 'showPrincipalSortBtn', 'principalSort', 'bulkDelete', 'showCreateBtn', 'enableFilters', 'displayModeToggler', 'displayMode', 'displayModes', 'showSearch', 'displaySearch', 'search', 'searchPlaceholder', 'loading', 'messageImport', 'messageExport', 'messageNew', 'createItem', 'toggleDisplayMode', 'togglePrincipalSort', 'confirmBulkDelete', 'toggleFilters', 'refresh']
748
+ inject: ['showHeader', 'showTitle', 'title', 'filterSidebarOpen', 'showImport', 'showExport', 'showPrincipalSortBtn', 'principalSort', 'bulkDelete', 'showCreateBtn', 'enableFilters', 'displayModeToggler', 'displayMode', 'displayModes', 'showSearch', 'displaySearch', 'search', 'searchPlaceholder', 'loading', 'messageImport', 'messageExport', 'messageNew', 'createItem', 'toggleDisplayMode', 'togglePrincipalSort', 'confirmBulkDelete', 'toggleFilters', 'refresh'],
749
+ computed: {
750
+ sidebarVisible: function sidebarVisible() {
751
+ // Acceder directamente al componente padre para obtener reactividad
752
+ return this.$parent ? this.$parent.filterSidebarOpen : this.filterSidebarOpen;
753
+ }
754
+ },
755
+ methods: {
756
+ closeSidebar: function closeSidebar() {
757
+ if (this.filterSidebarOpen) {
758
+ this.toggleFilters();
759
+ }
760
+ }
761
+ }
749
762
  };
750
763
  var _sfc_render$e = function render() {
751
764
  var _vm = this,
@@ -756,16 +769,13 @@ var _sfc_render$e = function render() {
756
769
  staticClass: "crud-title"
757
770
  }, [_vm._v(_vm._s(_vm.title))]) : _vm._e(), _c('b-sidebar', {
758
771
  attrs: {
772
+ "visible": _vm.sidebarVisible,
759
773
  "title": "Filtrar",
760
774
  "right": "",
761
775
  "shadow": ""
762
776
  },
763
- model: {
764
- value: _vm.filterSidebarOpen,
765
- callback: function callback($$v) {
766
- _vm.filterSidebarOpen = $$v;
767
- },
768
- expression: "filterSidebarOpen"
777
+ on: {
778
+ "hidden": _vm.closeSidebar
769
779
  }
770
780
  }, [_c('CrudFilters')], 1), _c('div', {
771
781
  staticClass: "table-options"
@@ -888,7 +898,7 @@ var _sfc_render$e = function render() {
888
898
  })], 2)], 1)], 1) : _vm._e();
889
899
  };
890
900
  var _sfc_staticRenderFns$e = [];
891
- var __component__$e = /*#__PURE__*/normalizeComponent(_sfc_main$e, _sfc_render$e, _sfc_staticRenderFns$e, false, null, "dec590e4", null, null);
901
+ var __component__$e = /*#__PURE__*/normalizeComponent(_sfc_main$e, _sfc_render$e, _sfc_staticRenderFns$e, false, null, "ed8e5777", null, null);
892
902
  var CrudHeader = __component__$e.exports;var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
893
903
 
894
904
  function getDefaultExportFromCjs (x) {
@@ -1144,7 +1154,7 @@ function toggleClass(el, name, state) {
1144
1154
  }
1145
1155
  }
1146
1156
 
1147
- function css$5(el, prop, val) {
1157
+ function css$7(el, prop, val) {
1148
1158
  var style = el && el.style;
1149
1159
 
1150
1160
  if (style) {
@@ -1173,7 +1183,7 @@ function matrix(el, selfOnly) {
1173
1183
  appliedTransforms = el;
1174
1184
  } else {
1175
1185
  do {
1176
- var transform = css$5(el, 'transform');
1186
+ var transform = css$7(el, 'transform');
1177
1187
 
1178
1188
  if (transform && transform !== 'none') {
1179
1189
  appliedTransforms = transform + ' ' + appliedTransforms;
@@ -1255,11 +1265,11 @@ function getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoS
1255
1265
 
1256
1266
  if (!IE11OrLess) {
1257
1267
  do {
1258
- 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')) {
1259
1269
  var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container
1260
1270
 
1261
- top -= containerRect.top + parseInt(css$5(container, 'border-top-width'));
1262
- 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'));
1263
1273
  bottom = top + elRect.height;
1264
1274
  right = left + elRect.width;
1265
1275
  break;
@@ -1366,7 +1376,7 @@ function getChild(el, childNum, options) {
1366
1376
  function lastChild(el, selector) {
1367
1377
  var last = el.lastElementChild;
1368
1378
 
1369
- 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))) {
1370
1380
  last = last.previousElementSibling;
1371
1381
  }
1372
1382
 
@@ -1452,7 +1462,7 @@ function getParentAutoScrollElement(el, includeSelf) {
1452
1462
  do {
1453
1463
  // we don't need to get elem css if it isn't even overflowing in the first place (performance)
1454
1464
  if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {
1455
- var elemCSS = css$5(elem);
1465
+ var elemCSS = css$7(elem);
1456
1466
 
1457
1467
  if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {
1458
1468
  if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();
@@ -1528,19 +1538,19 @@ function clone(el) {
1528
1538
  }
1529
1539
 
1530
1540
  function setRect(el, rect) {
1531
- css$5(el, 'position', 'absolute');
1532
- css$5(el, 'top', rect.top);
1533
- css$5(el, 'left', rect.left);
1534
- css$5(el, 'width', rect.width);
1535
- 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);
1536
1546
  }
1537
1547
 
1538
1548
  function unsetRect(el) {
1539
- css$5(el, 'position', '');
1540
- css$5(el, 'top', '');
1541
- css$5(el, 'left', '');
1542
- css$5(el, 'width', '');
1543
- 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', '');
1544
1554
  }
1545
1555
 
1546
1556
  var expando = 'Sortable' + new Date().getTime();
@@ -1554,7 +1564,7 @@ function AnimationStateManager() {
1554
1564
  if (!this.options.animation) return;
1555
1565
  var children = [].slice.call(this.el.children);
1556
1566
  children.forEach(function (child) {
1557
- if (css$5(child, 'display') === 'none' || child === Sortable.ghost) return;
1567
+ if (css$7(child, 'display') === 'none' || child === Sortable.ghost) return;
1558
1568
  animationStates.push({
1559
1569
  target: child,
1560
1570
  rect: getRect(child)
@@ -1661,8 +1671,8 @@ function AnimationStateManager() {
1661
1671
  },
1662
1672
  animate: function animate(target, currentRect, toRect, duration) {
1663
1673
  if (duration) {
1664
- css$5(target, 'transition', '');
1665
- css$5(target, 'transform', '');
1674
+ css$7(target, 'transition', '');
1675
+ css$7(target, 'transform', '');
1666
1676
  var elMatrix = matrix(this.el),
1667
1677
  scaleX = elMatrix && elMatrix.a,
1668
1678
  scaleY = elMatrix && elMatrix.d,
@@ -1670,15 +1680,15 @@ function AnimationStateManager() {
1670
1680
  translateY = (currentRect.top - toRect.top) / (scaleY || 1);
1671
1681
  target.animatingX = !!translateX;
1672
1682
  target.animatingY = !!translateY;
1673
- css$5(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');
1683
+ css$7(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');
1674
1684
  repaint(target); // repaint
1675
1685
 
1676
- css$5(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));
1677
- 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)');
1678
1688
  typeof target.animated === 'number' && clearTimeout(target.animated);
1679
1689
  target.animated = setTimeout(function () {
1680
- css$5(target, 'transition', '');
1681
- css$5(target, 'transform', '');
1690
+ css$7(target, 'transition', '');
1691
+ css$7(target, 'transform', '');
1682
1692
  target.animated = false;
1683
1693
  target.animatingX = false;
1684
1694
  target.animatingY = false;
@@ -1947,12 +1957,12 @@ supportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in
1947
1957
  return el.style.pointerEvents === 'auto';
1948
1958
  }(),
1949
1959
  _detectDirection = function _detectDirection(el, options) {
1950
- var elCSS = css$5(el),
1960
+ var elCSS = css$7(el),
1951
1961
  elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),
1952
1962
  child1 = getChild(el, 0, options),
1953
1963
  child2 = getChild(el, 1, options),
1954
- firstChildCSS = child1 && css$5(child1),
1955
- secondChildCSS = child2 && css$5(child2),
1964
+ firstChildCSS = child1 && css$7(child1),
1965
+ secondChildCSS = child2 && css$7(child2),
1956
1966
  firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,
1957
1967
  secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;
1958
1968
 
@@ -2041,12 +2051,12 @@ _detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {
2041
2051
  },
2042
2052
  _hideGhostForTarget = function _hideGhostForTarget() {
2043
2053
  if (!supportCssPointerEvents && ghostEl) {
2044
- css$5(ghostEl, 'display', 'none');
2054
+ css$7(ghostEl, 'display', 'none');
2045
2055
  }
2046
2056
  },
2047
2057
  _unhideGhostForTarget = function _unhideGhostForTarget() {
2048
2058
  if (!supportCssPointerEvents && ghostEl) {
2049
- css$5(ghostEl, 'display', '');
2059
+ css$7(ghostEl, 'display', '');
2050
2060
  }
2051
2061
  }; // #1184 fix - Prevent click event on fallback if dragged but item not changed position
2052
2062
 
@@ -2581,10 +2591,10 @@ Sortable.prototype =
2581
2591
  }
2582
2592
 
2583
2593
  var cssMatrix = "matrix(".concat(ghostMatrix.a, ",").concat(ghostMatrix.b, ",").concat(ghostMatrix.c, ",").concat(ghostMatrix.d, ",").concat(ghostMatrix.e, ",").concat(ghostMatrix.f, ")");
2584
- css$5(ghostEl, 'webkitTransform', cssMatrix);
2585
- css$5(ghostEl, 'mozTransform', cssMatrix);
2586
- css$5(ghostEl, 'msTransform', cssMatrix);
2587
- 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);
2588
2598
  lastDx = dx;
2589
2599
  lastDy = dy;
2590
2600
  touchEvt = touch;
@@ -2605,7 +2615,7 @@ Sortable.prototype =
2605
2615
  // Get relatively positioned parent
2606
2616
  ghostRelativeParent = container;
2607
2617
 
2608
- 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) {
2609
2619
  ghostRelativeParent = ghostRelativeParent.parentNode;
2610
2620
  }
2611
2621
 
@@ -2624,22 +2634,22 @@ Sortable.prototype =
2624
2634
  toggleClass(ghostEl, options.ghostClass, false);
2625
2635
  toggleClass(ghostEl, options.fallbackClass, true);
2626
2636
  toggleClass(ghostEl, options.dragClass, true);
2627
- css$5(ghostEl, 'transition', '');
2628
- css$5(ghostEl, 'transform', '');
2629
- css$5(ghostEl, 'box-sizing', 'border-box');
2630
- css$5(ghostEl, 'margin', 0);
2631
- css$5(ghostEl, 'top', rect.top);
2632
- css$5(ghostEl, 'left', rect.left);
2633
- css$5(ghostEl, 'width', rect.width);
2634
- css$5(ghostEl, 'height', rect.height);
2635
- css$5(ghostEl, 'opacity', '0.8');
2636
- css$5(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');
2637
- css$5(ghostEl, 'zIndex', '100000');
2638
- 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');
2639
2649
  Sortable.ghost = ghostEl;
2640
2650
  container.appendChild(ghostEl); // Set transform-origin
2641
2651
 
2642
- 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 + '%');
2643
2653
  }
2644
2654
  },
2645
2655
  _onDragStart: function _onDragStart(
@@ -2708,7 +2718,7 @@ Sortable.prototype =
2708
2718
 
2709
2719
  on(document, 'drop', _this); // #1276 fix:
2710
2720
 
2711
- css$5(dragEl, 'transform', 'translateZ(0)');
2721
+ css$7(dragEl, 'transform', 'translateZ(0)');
2712
2722
  }
2713
2723
 
2714
2724
  awaitingDragStarted = true;
@@ -2717,7 +2727,7 @@ Sortable.prototype =
2717
2727
  moved = true;
2718
2728
 
2719
2729
  if (Safari) {
2720
- css$5(document.body, 'user-select', 'none');
2730
+ css$7(document.body, 'user-select', 'none');
2721
2731
  }
2722
2732
  },
2723
2733
  // Returns true - if no further action is needed (either inserted or another condition)
@@ -2937,7 +2947,7 @@ Sortable.prototype =
2937
2947
  do {
2938
2948
  dragIndex -= direction;
2939
2949
  sibling = parentEl.children[dragIndex];
2940
- } while (sibling && (css$5(sibling, 'display') === 'none' || sibling === ghostEl));
2950
+ } while (sibling && (css$7(sibling, 'display') === 'none' || sibling === ghostEl));
2941
2951
  } // If dragEl is already beside target: Do not insert
2942
2952
 
2943
2953
 
@@ -3052,10 +3062,10 @@ Sortable.prototype =
3052
3062
  this._offUpEvents();
3053
3063
 
3054
3064
  if (Safari) {
3055
- css$5(document.body, 'user-select', '');
3065
+ css$7(document.body, 'user-select', '');
3056
3066
  }
3057
3067
 
3058
- css$5(dragEl, 'transform', '');
3068
+ css$7(dragEl, 'transform', '');
3059
3069
 
3060
3070
  if (evt) {
3061
3071
  if (moved) {
@@ -3330,7 +3340,7 @@ Sortable.prototype =
3330
3340
  if (!cloneHidden) {
3331
3341
  pluginEvent('hideClone', this);
3332
3342
  if (Sortable.eventCanceled) return;
3333
- css$5(cloneEl, 'display', 'none');
3343
+ css$7(cloneEl, 'display', 'none');
3334
3344
 
3335
3345
  if (this.options.removeCloneOnHide && cloneEl.parentNode) {
3336
3346
  cloneEl.parentNode.removeChild(cloneEl);
@@ -3362,7 +3372,7 @@ Sortable.prototype =
3362
3372
  this.animate(dragEl, cloneEl);
3363
3373
  }
3364
3374
 
3365
- css$5(cloneEl, 'display', '');
3375
+ css$7(cloneEl, 'display', '');
3366
3376
  cloneHidden = false;
3367
3377
  }
3368
3378
  }
@@ -3537,7 +3547,7 @@ if (documentExists) {
3537
3547
  Sortable.utils = {
3538
3548
  on: on,
3539
3549
  off: off,
3540
- css: css$5,
3550
+ css: css$7,
3541
3551
  find: find,
3542
3552
  is: function is(el, selector) {
3543
3553
  return !!closest(el, selector, el, false);
@@ -3764,7 +3774,7 @@ var autoScroll = throttle(function (evt, options, rootEl, isFallback) {
3764
3774
  canScrollY = void 0,
3765
3775
  scrollWidth = el.scrollWidth,
3766
3776
  scrollHeight = el.scrollHeight,
3767
- elCSS = css$5(el),
3777
+ elCSS = css$7(el),
3768
3778
  scrollPosX = el.scrollLeft,
3769
3779
  scrollPosY = el.scrollTop;
3770
3780
 
@@ -4100,7 +4110,7 @@ function MultiDragPlugin() {
4100
4110
  if (!this.isMultiDrag) return;
4101
4111
  insertMultiDragClones(false, rootEl);
4102
4112
  multiDragClones.forEach(function (clone) {
4103
- css$5(clone, 'display', '');
4113
+ css$7(clone, 'display', '');
4104
4114
  });
4105
4115
  cloneNowShown();
4106
4116
  clonesHidden = false;
@@ -4114,7 +4124,7 @@ function MultiDragPlugin() {
4114
4124
  cancel = _ref5.cancel;
4115
4125
  if (!this.isMultiDrag) return;
4116
4126
  multiDragClones.forEach(function (clone) {
4117
- css$5(clone, 'display', 'none');
4127
+ css$7(clone, 'display', 'none');
4118
4128
 
4119
4129
  if (_this.options.removeCloneOnHide && clone.parentNode) {
4120
4130
  clone.parentNode.removeChild(clone);
@@ -4158,7 +4168,7 @@ function MultiDragPlugin() {
4158
4168
  if (this.options.animation) {
4159
4169
  multiDragElements.forEach(function (multiDragElement) {
4160
4170
  if (multiDragElement === dragEl$1) return;
4161
- css$5(multiDragElement, 'position', 'absolute');
4171
+ css$7(multiDragElement, 'position', 'absolute');
4162
4172
  });
4163
4173
  var dragRect = getRect(dragEl$1, false, true, true);
4164
4174
  multiDragElements.forEach(function (multiDragElement) {
@@ -7039,9 +7049,36 @@ Sortable.mount(Remove, Revert);var sortable_esm=/*#__PURE__*/Object.freeze({__pr
7039
7049
  } (vuedraggable_umd, vuedraggable_umd.exports));
7040
7050
 
7041
7051
  var vuedraggable_umdExports = vuedraggable_umd.exports;
7042
- 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 = {
7043
7054
  name: 'TableHeader',
7044
- inject: ['columns', 'enableFilters', 'filtersVisible', 'isColumnHasFilter', 'internalFilterByProp', 'onChangeFilter', 'toggleAll', 'toggleSortFilter', 'sortable', 'optionsLoaded']
7055
+ inject: ['columns', 'enableFilters', 'filtersVisible', 'isColumnHasFilter', 'internalFilterByProp', 'onChangeFilter', 'toggleAll', 'toggleSortFilter', 'sortable', 'optionsLoaded', 'isAllSelected'],
7056
+ data: function data() {
7057
+ return {
7058
+ hoveredColumn: null
7059
+ };
7060
+ },
7061
+ methods: {
7062
+ isSortableColumn: function isSortableColumn(column) {
7063
+ return this.sortable && column.type != 'select' && column.type != 'checkbox' && this.internalFilterByProp(column.prop + '_sort');
7064
+ },
7065
+ shouldShowSortIcon: function shouldShowSortIcon(column) {
7066
+ var sortFilter = this.internalFilterByProp(column.prop + '_sort');
7067
+ return this.hoveredColumn === column.prop || sortFilter.value;
7068
+ },
7069
+ getSortIconDirection: function getSortIconDirection(column) {
7070
+ var sortFilter = this.internalFilterByProp(column.prop + '_sort');
7071
+ var sortValue = sortFilter.value;
7072
+ if (sortValue === 'DESC') {
7073
+ return 'down';
7074
+ } else if (sortValue === 'ASC') {
7075
+ return 'up';
7076
+ } else if (this.hoveredColumn === column.prop) {
7077
+ return 'up';
7078
+ }
7079
+ return null;
7080
+ }
7081
+ }
7045
7082
  };
7046
7083
  var _sfc_render$d = function render() {
7047
7084
  var _vm = this,
@@ -7052,11 +7089,22 @@ var _sfc_render$d = function render() {
7052
7089
  return _vm._l(_vm.columns, function (column, indexc) {
7053
7090
  return _c('th', {
7054
7091
  key: indexc,
7092
+ class: {
7093
+ 'actions-header': column.type == 'actions'
7094
+ },
7055
7095
  style: {
7056
- width: column.width ? column.width : 'inherit'
7096
+ width: column.width ? column.width : column.type == 'actions' ? '1%' : 'inherit'
7057
7097
  },
7058
7098
  attrs: {
7059
7099
  "scope": "col"
7100
+ },
7101
+ on: {
7102
+ "mouseenter": function mouseenter($event) {
7103
+ _vm.hoveredColumn = column.prop;
7104
+ },
7105
+ "mouseleave": function mouseleave($event) {
7106
+ _vm.hoveredColumn = null;
7107
+ }
7060
7108
  }
7061
7109
  }, [_vm.enableFilters && _vm.filtersVisible && _vm.isColumnHasFilter(column) && _vm.internalFilterByProp(column.prop) ? _vm._t('filter-' + column.prop, function () {
7062
7110
  return [_c('div', {
@@ -7202,21 +7250,19 @@ var _sfc_render$d = function render() {
7202
7250
  }, [_vm._v(" " + _vm._s(option.text ? option.text : option.label ? option.label : "") + " ")]);
7203
7251
  })], 2) : column.type == 'checkbox' ? _c('b-form-checkbox', {
7204
7252
  attrs: {
7205
- "name": "select-all"
7253
+ "name": "select-all",
7254
+ "checked": _vm.isAllSelected
7206
7255
  },
7207
7256
  on: {
7208
- "change": function change($event) {
7209
- return _vm.toggleAll($event);
7210
- }
7257
+ "change": _vm.toggleAll
7211
7258
  }
7212
7259
  }) : column.type == 'select' ? _c('b-form-checkbox', {
7213
7260
  attrs: {
7214
- "name": "select-all"
7261
+ "name": "select-all",
7262
+ "checked": _vm.isAllSelected
7215
7263
  },
7216
7264
  on: {
7217
- "change": function change($event) {
7218
- return _vm.toggleAll($event);
7219
- }
7265
+ "change": _vm.toggleAll
7220
7266
  }
7221
7267
  }) : _c('input', {
7222
7268
  directives: [{
@@ -7248,26 +7294,33 @@ var _sfc_render$d = function render() {
7248
7294
  "internalFilterByProp": _vm.internalFilterByProp
7249
7295
  }) : column.type == 'select' ? _c('span', [_c('b-form-checkbox', {
7250
7296
  attrs: {
7251
- "name": "select-all"
7297
+ "name": "select-all",
7298
+ "checked": _vm.isAllSelected
7252
7299
  },
7253
7300
  on: {
7254
- "change": function change($event) {
7255
- return _vm.toggleAll($event);
7256
- }
7301
+ "change": _vm.toggleAll
7257
7302
  }
7258
- })], 1) : _c('span', [_vm._v(_vm._s(column.label))]), _vm.sortable && column.type != 'select' && column.type != 'checkbox' && _vm.internalFilterByProp(column.prop + '_sort') ? _c('span', {
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
7310
+ }
7311
+ })], 1) : _c('span', [_vm._v(_vm._s(column.label))]), _vm.isSortableColumn(column) && _vm.shouldShowSortIcon(column) ? _c('span', {
7259
7312
  staticClass: "sort-filter",
7260
7313
  on: {
7261
7314
  "click": function click($event) {
7262
7315
  return _vm.toggleSortFilter(column);
7263
7316
  }
7264
7317
  }
7265
- }, [!_vm.internalFilterByProp(column.prop + '_sort').value ? _c('b-icon-sort-down') : _vm._e(), _vm.internalFilterByProp(column.prop + '_sort').value == 'ASC' ? _c('b-icon-sort-up') : _vm._e(), _vm.internalFilterByProp(column.prop + '_sort').value == 'DESC' ? _c('b-icon-sort-down') : _vm._e()], 1) : _vm._e()], 2);
7318
+ }, [_vm.getSortIconDirection(column) === 'up' ? _c('b-icon-sort-up') : _vm._e(), _vm.getSortIconDirection(column) === 'down' ? _c('b-icon-sort-down') : _vm._e()], 1) : _vm._e()], 2);
7266
7319
  });
7267
7320
  })], 2)]);
7268
7321
  };
7269
7322
  var _sfc_staticRenderFns$d = [];
7270
- 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);
7271
7324
  var TableHeader = __component__$d.exports;function commonjsRequire(path) {
7272
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.');
7273
7326
  }var moment$1 = {exports: {}};moment$1.exports;
@@ -12955,7 +13008,8 @@ var TableHeader = __component__$d.exports;function commonjsRequire(path) {
12955
13008
  } (moment$1, moment$1.exports));
12956
13009
 
12957
13010
  var momentExports = moment$1.exports;
12958
- 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 = {
12959
13013
  name: 'TableCell',
12960
13014
  props: {
12961
13015
  column: Object,
@@ -12974,6 +13028,9 @@ var _sfc_render$c = function render() {
12974
13028
  var _vm = this,
12975
13029
  _c = _vm._self._c;
12976
13030
  return _c('td', {
13031
+ class: {
13032
+ 'actions-cell': _vm.column.type == 'actions'
13033
+ },
12977
13034
  attrs: {
12978
13035
  "scope": _vm.column.prop == 'id' ? 'row' : ''
12979
13036
  }
@@ -12999,13 +13056,68 @@ var _sfc_render$c = function render() {
12999
13056
  },
13000
13057
  expression: "item.selected"
13001
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
+ }
13002
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)) + " ")])];
13003
13073
  }, {
13004
13074
  "item": _vm.item,
13005
13075
  "index": _vm.index,
13006
13076
  "itemindex": _vm.index,
13007
13077
  "columnindex": _vm.columnIndex
13008
- }), _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 () {
13009
13121
  return [_c('b-button', {
13010
13122
  attrs: {
13011
13123
  "variant": "primary"
@@ -13043,7 +13155,7 @@ var _sfc_render$c = function render() {
13043
13155
  })], 2) : _vm._e()], 2);
13044
13156
  };
13045
13157
  var _sfc_staticRenderFns$c = [];
13046
- 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);
13047
13159
  var TableCell = __component__$c.exports;var _sfc_main$b = {
13048
13160
  name: 'TableRow',
13049
13161
  components: {
@@ -13060,7 +13172,9 @@ var _sfc_render$b = function render() {
13060
13172
  var _vm = this,
13061
13173
  _c = _vm._self._c;
13062
13174
  return _c('tr', {
13063
- staticClass: "item",
13175
+ class: ['item', {
13176
+ 'selected': _vm.item.selected
13177
+ }],
13064
13178
  on: {
13065
13179
  "mouseover": function mouseover($event) {
13066
13180
  return _vm.onRowHover(_vm.item, _vm.index);
@@ -13114,6 +13228,7 @@ var _sfc_render$a = function render() {
13114
13228
  class: ['table table-hover table-striped w-100', _vm.tableClass]
13115
13229
  }, [_c('TableHeader'), _c('draggable', {
13116
13230
  attrs: {
13231
+ "list": _vm.items,
13117
13232
  "group": _vm.draggableGroup,
13118
13233
  "tag": "tbody",
13119
13234
  "draggable": _vm.orderable ? '.item' : '.none',
@@ -13135,13 +13250,6 @@ var _sfc_render$a = function render() {
13135
13250
  "change": function change($event) {
13136
13251
  return _vm.onDraggableChange($event);
13137
13252
  }
13138
- },
13139
- model: {
13140
- value: _vm.items,
13141
- callback: function callback($$v) {
13142
- _vm.items = $$v;
13143
- },
13144
- expression: "items"
13145
13253
  }
13146
13254
  }, _vm._l(_vm.itemsList, function (item, index) {
13147
13255
  return _c('TableRow', {
@@ -13152,7 +13260,7 @@ var _sfc_render$a = function render() {
13152
13260
  "grouped": _vm.grouped
13153
13261
  }
13154
13262
  });
13155
- }), 1)], 1), !_vm.loading && _vm.items && _vm.items.length == 0 && !_vm.infiniteScroll ? _c('p', {
13263
+ }), 1)], 1), !_vm.loading && _vm.itemsList && _vm.itemsList.length == 0 && !_vm.infiniteScroll ? _c('p', {
13156
13264
  staticClass: "p-3"
13157
13265
  }, [_vm._v(" " + _vm._s(_vm.messageEmptyResults) + " ")]) : _vm._e()]) : _vm._e();
13158
13266
  };
@@ -13495,11 +13603,12 @@ var _sfc_render$9 = function render() {
13495
13603
  };
13496
13604
  var _sfc_staticRenderFns$9 = [];
13497
13605
  var __component__$9 = /*#__PURE__*/normalizeComponent(_sfc_main$9, _sfc_render$9, _sfc_staticRenderFns$9, false, null, null, null, null);
13498
- var ItemCard = __component__$9.exports;var _sfc_main$8 = {
13606
+ var ItemCard = __component__$9.exports;// Registrar el componente masonry usando el Plugin
13607
+ Vue__default["default"].use(Plugin);
13608
+ var _sfc_main$8 = {
13499
13609
  name: 'CrudCards',
13500
13610
  components: {
13501
13611
  draggable: draggable,
13502
- VueMasonry: Plugin,
13503
13612
  ItemCard: ItemCard
13504
13613
  },
13505
13614
  inject: ['displayMode', 'displayModes', 'items', 'draggableGroup', 'orderable', 'draggableOptions', 'itemsList', 'colLg', 'colXl', 'colMd', 'colSm', 'colXs', 'columns', 'cardClass', 'cardHideFooter', 'itemValue', 'getStateValue', 'getArrayValue', 'showItem', 'updateItem', 'removeItem', 'loading', 'infiniteScroll', 'messageEmptyResults', 'onSort', 'onDraggableAdded', 'onDraggableChange'],
@@ -13512,7 +13621,7 @@ var ItemCard = __component__$9.exports;var _sfc_main$8 = {
13512
13621
  var _sfc_render$8 = function render() {
13513
13622
  var _vm = this,
13514
13623
  _c = _vm._self._c;
13515
- return _c('div', [_c('draggable', {
13624
+ return _vm.displayMode == _vm.displayModes.MODE_CARDS ? _c('div', [_c('draggable', {
13516
13625
  attrs: {
13517
13626
  "group": _vm.draggableGroup,
13518
13627
  "draggable": _vm.orderable ? '.item' : '.none',
@@ -13580,9 +13689,9 @@ var _sfc_render$8 = function render() {
13580
13689
  }, {
13581
13690
  "item": item
13582
13691
  })], 2);
13583
- }), 0)], 1), !_vm.loading && _vm.items && _vm.items.length == 0 && !_vm.infiniteScroll ? _c('p', {
13692
+ }), 0)], 1), !_vm.loading && _vm.itemsList && _vm.itemsList.length == 0 && !_vm.infiniteScroll ? _c('p', {
13584
13693
  staticClass: "p-3"
13585
- }, [_vm._v(" " + _vm._s(_vm.messageEmptyResults) + " ")]) : _vm._e()], 1);
13694
+ }, [_vm._v(" " + _vm._s(_vm.messageEmptyResults) + " ")]) : _vm._e()], 1) : _vm._e();
13586
13695
  };
13587
13696
  var _sfc_staticRenderFns$8 = [];
13588
13697
  var __component__$8 = /*#__PURE__*/normalizeComponent(_sfc_main$8, _sfc_render$8, _sfc_staticRenderFns$8, false, null, null, null, null);
@@ -13838,7 +13947,7 @@ var KanbanBoard = __component__$5.exports;var _sfc_main$4 = {
13838
13947
  var _sfc_render$4 = function render() {
13839
13948
  var _vm = this,
13840
13949
  _c = _vm._self._c;
13841
- return _c('div', [_c('KanbanBoard')], 1);
13950
+ return _vm.displayMode == _vm.displayModes.MODE_KANBAN ? _c('div', [_c('KanbanBoard')], 1) : _vm._e();
13842
13951
  };
13843
13952
  var _sfc_staticRenderFns$4 = [];
13844
13953
  var __component__$4 = /*#__PURE__*/normalizeComponent(_sfc_main$4, _sfc_render$4, _sfc_staticRenderFns$4, false, null, null, null, null);
@@ -13849,9 +13958,9 @@ var CrudKanban = __component__$4.exports;var _sfc_main$3 = {
13849
13958
  var _sfc_render$3 = function render() {
13850
13959
  var _vm = this,
13851
13960
  _c = _vm._self._c;
13852
- return _c('div', [_c('div', {
13961
+ return _vm.displayMode == _vm.displayModes.MODE_CUSTOM ? _c('div', [_c('div', {
13853
13962
  class: _vm.listContainerClass
13854
- }, [!_vm.loading && _vm.items && _vm.items.length == 0 && !_vm.infiniteScroll ? _c('p', {
13963
+ }, [!_vm.loading && _vm.itemsList && _vm.itemsList.length == 0 && !_vm.infiniteScroll ? _c('p', {
13855
13964
  staticClass: "p-3"
13856
13965
  }, [_vm._v(" " + _vm._s(_vm.messageEmptyResults) + " ")]) : _vm._e(), _vm._l(_vm.itemsList, function (item, index) {
13857
13966
  return _c('div', {
@@ -13860,7 +13969,7 @@ var _sfc_render$3 = function render() {
13860
13969
  }, [_vm._t("card", null, {
13861
13970
  "item": item
13862
13971
  })], 2);
13863
- })], 2)]);
13972
+ })], 2)]) : _vm._e();
13864
13973
  };
13865
13974
  var _sfc_staticRenderFns$3 = [];
13866
13975
  var __component__$3 = /*#__PURE__*/normalizeComponent(_sfc_main$3, _sfc_render$3, _sfc_staticRenderFns$3, false, null, null, null, null);
@@ -14098,13 +14207,24 @@ vueInfiniteLoading.exports;
14098
14207
  } (vueInfiniteLoading, vueInfiniteLoading.exports));
14099
14208
 
14100
14209
  var vueInfiniteLoadingExports = vueInfiniteLoading.exports;
14101
- var InfiniteLoading = /*@__PURE__*/getDefaultExportFromCjs(vueInfiniteLoadingExports);var css$1 = "\n.crud-pagination[data-v-975091ac] {\r\n display: flex;\r\n align-items: center;\r\n width: 100%;\r\n justify-content: center;\r\n margin-top: 1rem;\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";
14102
14211
  n(css$1, {});var _sfc_main$1 = {
14103
14212
  name: 'CrudPagination',
14104
14213
  components: {
14105
14214
  InfiniteLoading: InfiniteLoading
14106
14215
  },
14107
- 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
+ }
14108
14228
  };
14109
14229
  var _sfc_render$1 = function render() {
14110
14230
  var _vm = this,
@@ -14140,8 +14260,48 @@ var _sfc_render$1 = function render() {
14140
14260
  }, [!_vm.loading ? _c('div', {
14141
14261
  staticClass: "text-center"
14142
14262
  }, [_vm._v(_vm._s(_vm.items.length == 0 ? _vm.messageEmptyResults : _vm.messageNoMore))]) : _vm._e()])]) : _vm._e(), !_vm.infiniteScroll ? _c('div', {
14263
+ staticClass: "paginator-container"
14264
+ }, [_c('div', {
14143
14265
  staticClass: "paginator-data"
14144
- }, [_vm._v(" Filas: " + _vm._s(_vm.pagination.total) + " | xPág: " + _vm._s(_vm.pagination.per_page) + " | Pág: " + _vm._s(_vm.pagination.current_page) + " | Seleccionados: " + _vm._s(_vm.selectedItems.length) + " ")]) : _vm._e(), !_vm.infiniteScroll ? _c('div', {
14266
+ }, [_c('span', {
14267
+ staticClass: "paginator-badge"
14268
+ }, [_c('span', {
14269
+ staticClass: "paginator-label"
14270
+ }, [_vm._v("Filas:")]), _c('span', {
14271
+ staticClass: "paginator-value"
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', {
14145
14305
  staticClass: "crud-paginator"
14146
14306
  }, [_vm.showPaginator ? _c('b-pagination', {
14147
14307
  attrs: {
@@ -14160,10 +14320,10 @@ var _sfc_render$1 = function render() {
14160
14320
  },
14161
14321
  expression: "pagination.current_page"
14162
14322
  }
14163
- }) : _vm._e()], 1) : _vm._e()], 1);
14323
+ }) : _vm._e()], 1)]) : _vm._e()], 1);
14164
14324
  };
14165
14325
  var _sfc_staticRenderFns$1 = [];
14166
- var __component__$1 = /*#__PURE__*/normalizeComponent(_sfc_main$1, _sfc_render$1, _sfc_staticRenderFns$1, false, null, "975091ac", null, null);
14326
+ var __component__$1 = /*#__PURE__*/normalizeComponent(_sfc_main$1, _sfc_render$1, _sfc_staticRenderFns$1, false, null, "11671e09", null, null);
14167
14327
  var CrudPagination = __component__$1.exports;var crudData = {
14168
14328
  data: function data() {
14169
14329
  return {
@@ -14203,7 +14363,8 @@ var CrudPagination = __component__$1.exports;var crudData = {
14203
14363
  refreshing: false,
14204
14364
  fetchError: false,
14205
14365
  principalSort: false,
14206
- exportFormat: 'JSON'
14366
+ exportFormat: 'JSON',
14367
+ fileImport: null
14207
14368
  };
14208
14369
  },
14209
14370
  computed: {
@@ -14296,6 +14457,82 @@ var CrudPagination = __component__$1.exports;var crudData = {
14296
14457
  if (!this.ajax) {
14297
14458
  this.items = val;
14298
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
14299
14536
  }
14300
14537
  },
14301
14538
  mounted: function mounted() {
@@ -14373,7 +14610,7 @@ var CrudPagination = __component__$1.exports;var crudData = {
14373
14610
  this.items = [];
14374
14611
  },
14375
14612
  updateData: function updateData(data) {
14376
- var _this2 = this;
14613
+ var _this11 = this;
14377
14614
  var allowCreate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
14378
14615
  // Convertir this.items a un mapa para acceso rápido por id
14379
14616
  var itemsMap = new Map(this.items.map(function (item) {
@@ -14388,7 +14625,7 @@ var CrudPagination = __component__$1.exports;var crudData = {
14388
14625
  Object.assign(existingItem, newItem);
14389
14626
  } else if (allowCreate) {
14390
14627
  // Agregar el nuevo item si allowCreate es true
14391
- _this2.items.push(newItem);
14628
+ _this11.items.push(newItem);
14392
14629
  }
14393
14630
  });
14394
14631
 
@@ -14396,30 +14633,29 @@ var CrudPagination = __component__$1.exports;var crudData = {
14396
14633
  this.items = Array.from(itemsMap.values());
14397
14634
  },
14398
14635
  externalUpdate: function externalUpdate(itemsUpdate) {
14399
- var _this3 = this;
14636
+ var _this12 = this;
14400
14637
  var addIfNotExist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
14401
14638
  var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'id';
14402
14639
  itemsUpdate.forEach(function (itemUpdate) {
14403
- var itemInList = _this3.items.find(function (item) {
14640
+ var itemInList = _this12.items.find(function (item) {
14404
14641
  return item[key] === itemUpdate[key];
14405
14642
  });
14406
14643
  if (itemInList) Object.assign(itemInList, itemUpdate);else {
14407
14644
  if (addIfNotExist) {
14408
- _this3.items.push(itemUpdate);
14645
+ _this12.items.push(itemUpdate);
14409
14646
  }
14410
14647
  }
14411
14648
  });
14412
14649
  },
14413
14650
  makePagination: function makePagination(data) {
14414
- var pagination = {
14415
- current_page: data.current_page,
14416
- last_page: data.last_page,
14417
- next_page_url: data.next_page_url,
14418
- prev_page_url: data.prev_page_url,
14419
- total: data.total,
14420
- per_page: data.per_page
14421
- };
14422
- 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;
14423
14659
  }
14424
14660
  }
14425
14661
  };var global$1 = (typeof global !== "undefined" ? global :
@@ -19623,17 +19859,33 @@ axios.default = axios;var crudApi = {
19623
19859
  filters: JSON.stringify(this.finalFilters)
19624
19860
  }
19625
19861
  }).then(function (response) {
19862
+ console.debug("fetchItems - Response recibida:", response.data);
19626
19863
  _this2.makePagination(response.data);
19864
+
19865
+ // Validar que response.data.data existe y es un array
19627
19866
  var items = response.data.data;
19867
+ if (!items) {
19868
+ console.warn("fetchItems - response.data.data es undefined o null, usando array vacío");
19869
+ items = [];
19870
+ } else if (!Array.isArray(items)) {
19871
+ console.warn("fetchItems - response.data.data no es un array, tipo:", _typeof$1(items), items);
19872
+ items = [];
19873
+ }
19874
+ console.debug("fetchItems - Items procesados:", items, "Cantidad:", items.length);
19628
19875
  if (_this2.grouped) {
19629
19876
  _this2.groupItems(items, concat, _this2.isSplitGroups);
19630
19877
  } else {
19631
19878
  if (concat) {
19632
- _this2.items = _this2.items.concat(items);
19879
+ var _this2$items;
19880
+ // Para concat, agregar items al array existente
19881
+ (_this2$items = _this2.items).push.apply(_this2$items, _toConsumableArray$1(items));
19633
19882
  } else {
19634
- _this2.items = items;
19883
+ var _this2$items2;
19884
+ // Mutar el array existente en lugar de reemplazarlo para mantener reactividad con provide/inject
19885
+ (_this2$items2 = _this2.items).splice.apply(_this2$items2, [0, _this2.items.length].concat(_toConsumableArray$1(items)));
19635
19886
  }
19636
19887
  }
19888
+ console.debug("fetchItems - this.items después de asignar:", _this2.items, "Cantidad:", _this2.items ? _this2.items.length : 0);
19637
19889
  _this2.loading = false;
19638
19890
  _this2.firstLoad = true;
19639
19891
  _this2.$emit("afterFetch", {});
@@ -19662,8 +19914,9 @@ axios.default = axios;var crudApi = {
19662
19914
  return acc;
19663
19915
  }, {});
19664
19916
  if (splitGroups) {
19917
+ var _this$items;
19665
19918
  // Dividimos los grupos en arrays separados
19666
- this.items = Object.entries(groupedMap).map(function (_ref) {
19919
+ var groupedItems = Object.entries(groupedMap).map(function (_ref) {
19667
19920
  var _ref2 = _slicedToArray(_ref, 2),
19668
19921
  groupKey = _ref2[0],
19669
19922
  groupItems = _ref2[1];
@@ -19673,6 +19926,8 @@ axios.default = axios;var crudApi = {
19673
19926
  items: groupItems
19674
19927
  };
19675
19928
  });
19929
+ // Mutar el array existente para mantener reactividad
19930
+ (_this$items = this.items).splice.apply(_this$items, [0, this.items.length].concat(_toConsumableArray$1(groupedItems)));
19676
19931
  } else {
19677
19932
  // Creamos la estructura agrupada en un solo array
19678
19933
  for (var _i = 0, _Object$entries = Object.entries(groupedMap); _i < _Object$entries.length; _i++) {
@@ -19688,9 +19943,12 @@ axios.default = axios;var crudApi = {
19688
19943
 
19689
19944
  // Decidimos si concatenar o reemplazar los items existentes
19690
19945
  if (concat) {
19691
- this.items = this.items.concat(itemsWithGroup);
19946
+ var _this$items2;
19947
+ (_this$items2 = this.items).push.apply(_this$items2, itemsWithGroup);
19692
19948
  } else {
19693
- this.items = itemsWithGroup;
19949
+ var _this$items3;
19950
+ // Mutar el array existente para mantener reactividad
19951
+ (_this$items3 = this.items).splice.apply(_this$items3, [0, this.items.length].concat(itemsWithGroup));
19694
19952
  }
19695
19953
  }
19696
19954
  },
@@ -20255,6 +20513,11 @@ axios.default = axios;var crudApi = {
20255
20513
  onPaginationChange: function onPaginationChange(page) {
20256
20514
  this.fetchItems(page);
20257
20515
  },
20516
+ onPerPageChange: function onPerPageChange(perPage) {
20517
+ this.pagination.per_page = perPage;
20518
+ this.pagination.current_page = 1;
20519
+ this.fetchItems(1);
20520
+ },
20258
20521
  infiniteHandler: function infiniteHandler($state) {
20259
20522
  var hasNextPage = (this.pagination.total > 0 || !this.firstLoad) && (!this.firstLoad || this.pagination.current_page * this.pagination.per_page <= this.pagination.total);
20260
20523
  console.debug("Has next page", hasNextPage, this.pagination);
@@ -20307,6 +20570,7 @@ axios.default = axios;var crudApi = {
20307
20570
  });
20308
20571
  },
20309
20572
  toggleSortFilter: function toggleSortFilter(column) {
20573
+ var _this2 = this;
20310
20574
  var value = this.internalFilterByProp(column.prop + "_sort").value;
20311
20575
  if (!value) {
20312
20576
  this.internalFilterByProp(column.prop + "_sort").value = "ASC";
@@ -20315,24 +20579,24 @@ axios.default = axios;var crudApi = {
20315
20579
  } else if (value == "DESC") {
20316
20580
  this.internalFilterByProp(column.prop + "_sort").value = null;
20317
20581
  }
20582
+ this.forceRecomputeCounter++;
20583
+ setTimeout(function () {
20584
+ _this2.refresh();
20585
+ }, 1);
20318
20586
  },
20319
20587
  toggleFilters: function toggleFilters() {
20320
20588
  this.filtersVisible = !this.filtersVisible;
20321
- if (this.displayMode == this.displayModes.MODE_CARDS) {
20322
- this.filterSidebarOpen = this.filtersVisible;
20323
- } else {
20324
- this.filterSidebarOpen = false;
20325
- }
20589
+ this.filterSidebarOpen = this.filtersVisible;
20326
20590
  },
20327
20591
  resetFilters: function resetFilters() {
20328
- var _this2 = this;
20592
+ var _this3 = this;
20329
20593
  var refresh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
20330
20594
  this.internalFilters = [];
20331
20595
  this.setupFilters();
20332
20596
  this.forceRecomputeCounter++;
20333
20597
  if (refresh) {
20334
20598
  setTimeout(function () {
20335
- _this2.refresh();
20599
+ _this3.refresh();
20336
20600
  }, 1);
20337
20601
  }
20338
20602
  },
@@ -20340,29 +20604,29 @@ axios.default = axios;var crudApi = {
20340
20604
  return column && !column.hideFilter && column.type != "actions";
20341
20605
  },
20342
20606
  setFilter: function setFilter(column, value) {
20343
- var _this3 = this;
20607
+ var _this4 = this;
20344
20608
  var filter = this.filter.find(function (f) {
20345
20609
  return f.column == column;
20346
20610
  });
20347
20611
  filter.value = value;
20348
20612
  this.forceRecomputeCounter++;
20349
20613
  setTimeout(function () {
20350
- _this3.refresh();
20614
+ _this4.refresh();
20351
20615
  }, 1);
20352
20616
  },
20353
20617
  onChangeFilter: function onChangeFilter(event) {
20354
- var _this4 = this;
20618
+ var _this5 = this;
20355
20619
  this.forceRecomputeCounter++;
20356
20620
  console.debug("Filters debug ", this.finalFilters, this.internalFilter, this.internalFilters, this.filter, this.filters);
20357
20621
  setTimeout(function () {
20358
- _this4.refresh();
20622
+ _this5.refresh();
20359
20623
  }, 1);
20360
20624
  },
20361
20625
  togglePrincipalSort: function togglePrincipalSort() {
20362
- var _this5 = this;
20626
+ var _this6 = this;
20363
20627
  this.principalSort = !this.principalSort;
20364
20628
  setTimeout(function () {
20365
- _this5.refresh();
20629
+ _this6.refresh();
20366
20630
  }, 1);
20367
20631
  }
20368
20632
  }
@@ -20448,6 +20712,27 @@ axios.default = axios;var crudApi = {
20448
20712
  }
20449
20713
  }
20450
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
+ },
20451
20736
  methods: {
20452
20737
  onRowHover: function onRowHover(item, itemIndex) {
20453
20738
  if (this.selectHover) {
@@ -20485,48 +20770,101 @@ axios.default = axios;var crudApi = {
20485
20770
  console.debug("Selected Items", this.selectedItems);
20486
20771
  },
20487
20772
  toggleAll: function toggleAll(value) {
20488
- if (value) {
20489
- this.selectedItems = this.items;
20490
- this.selectedItems.forEach(function (item) {
20491
- 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
+ }
20492
20787
  });
20493
20788
  } else {
20789
+ // Deseleccionar todos
20494
20790
  this.selectedItems.forEach(function (item) {
20495
- return item.selected = false;
20791
+ return _this2.$set(item, 'selected', false);
20496
20792
  });
20497
20793
  this.items.forEach(function (item) {
20498
- return item.selected = false;
20794
+ return _this2.$set(item, 'selected', false);
20499
20795
  });
20500
- this.selectedItems = [];
20796
+ this.itemsList.forEach(function (item) {
20797
+ return _this2.$set(item, 'selected', false);
20798
+ });
20799
+ // Usar splice para mantener la referencia del array y reactividad con provide/inject
20800
+ this.selectedItems.splice(0, this.selectedItems.length);
20501
20801
  }
20502
20802
  this.onSelect();
20503
20803
  console.debug("toggle all", this.selectedItems);
20804
+ // Forzar actualización inmediata y en el siguiente tick
20504
20805
  this.$forceUpdate();
20806
+ this.$nextTick(function () {
20807
+ _this2.$forceUpdate();
20808
+ });
20505
20809
  },
20506
20810
  unSelectItem: function unSelectItem(item) {
20507
- item.selected = false;
20508
- 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) {
20509
20816
  return e.id != item.id;
20510
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();
20511
20823
  },
20512
20824
  selectItem: function selectItem() {
20513
- var _this2 = this;
20825
+ var _this3 = this;
20514
20826
  var sitem = this.selectedItems.find(function (e) {
20515
- return e.id == _this2.item.id;
20827
+ return e.id == _this3.item.id;
20516
20828
  });
20517
20829
  if (sitem) {
20518
- this.item.selected = false;
20519
- this.selectedItems = this.selectedItems.filter(function (e) {
20520
- 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;
20521
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)));
20522
20837
  } else {
20523
- this.item.selected = true;
20838
+ this.$set(this.item, 'selected', true);
20524
20839
  this.selectedItems.push(this.item);
20525
20840
  }
20841
+ // Forzar actualización para que el computed isAllSelected se recalcule
20842
+ this.$forceUpdate();
20526
20843
  },
20527
20844
  getSelectedItems: function getSelectedItems() {
20528
20845
  return this.selectedItems;
20529
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
+ },
20530
20868
  onSelect: function onSelect() {
20531
20869
  this.$emit("select", this.item);
20532
20870
  this.$emit("selectItems", this.selectedItems);
@@ -20571,7 +20909,7 @@ axios.default = axios;var crudApi = {
20571
20909
  this.$bvModal.show("modal-form-item-" + this.modelName);
20572
20910
  },
20573
20911
  removeItem: function removeItem(id, index) {
20574
- var _this3 = this;
20912
+ var _this5 = this;
20575
20913
  this.$bvModal.msgBoxConfirm(this.messageRemoveConfirm, {
20576
20914
  size: "sm",
20577
20915
  buttonSize: "sm",
@@ -20581,15 +20919,15 @@ axios.default = axios;var crudApi = {
20581
20919
  centered: true
20582
20920
  }).then(function (value) {
20583
20921
  if (value) {
20584
- _this3.deleteItem(id, index);
20922
+ _this5.deleteItem(id, index);
20585
20923
  }
20586
20924
  }).catch(function (error) {
20587
- _this3.toastError(error);
20588
- _this3.loading = false;
20925
+ _this5.toastError(error);
20926
+ _this5.loading = false;
20589
20927
  });
20590
20928
  },
20591
20929
  confirmBulkDelete: function confirmBulkDelete() {
20592
- var _this4 = this;
20930
+ var _this6 = this;
20593
20931
  this.$bvModal.msgBoxConfirm(this.messageRemoveBulkConfirm, {
20594
20932
  size: "sm",
20595
20933
  buttonSize: "sm",
@@ -20599,11 +20937,11 @@ axios.default = axios;var crudApi = {
20599
20937
  centered: true
20600
20938
  }).then(function (value) {
20601
20939
  if (value) {
20602
- _this4.deleteItemBulk();
20940
+ _this6.deleteItemBulk();
20603
20941
  }
20604
20942
  }).catch(function (error) {
20605
- _this4.toastError(error);
20606
- _this4.loading = false;
20943
+ _this6.toastError(error);
20944
+ _this6.loading = false;
20607
20945
  });
20608
20946
  },
20609
20947
  toggleDisplayMode: function toggleDisplayMode() {
@@ -20711,7 +21049,7 @@ axios.default = axios;var crudApi = {
20711
21049
  link.click();
20712
21050
  }
20713
21051
  }
20714
- };var css = "tr td[data-v-9374538f]:last-child,\ntr td[data-v-9374538f]:first-child {\n width: 1%;\n white-space: nowrap; }\n\n.crud-pagination[data-v-9374538f] {\n display: flex;\n align-items: center;\n width: 100%;\n justify-content: center;\n margin-top: 1rem; }\n\n.crud-header[data-v-9374538f] {\n display: flex;\n justify-content: space-between;\n max-height: 3rem; }\n .crud-header[data-v-9374538f] .crud-title[data-v-9374538f] {\n margin: 0; }\n .crud-header[data-v-9374538f] .crud-search[data-v-9374538f] {\n max-width: 15rem; }\n .crud-header[data-v-9374538f] .crud-search[data-v-9374538f] .btn[data-v-9374538f] {\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-9374538f] .crud-search[data-v-9374538f] .btn[data-v-9374538f].open[data-v-9374538f] {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n .crud-header[data-v-9374538f] .table-options[data-v-9374538f] {\n margin-bottom: 1rem;\n display: flex;\n align-items: center;\n justify-content: flex-end; }\n\n.custom-control[data-v-9374538f] {\n position: relative; }\n\n@media (min-width: 992px) {\n .table[data-v-9374538f] {\n table-layout: auto; }\n .table[data-v-9374538f] tbody[data-v-9374538f] td[data-v-9374538f] {\n overflow: scroll;\n -ms-overflow-style: none;\n /* IE and Edge */\n scrollbar-width: none;\n /* Firefox */ }\n .table[data-v-9374538f] tbody[data-v-9374538f] td[data-v-9374538f]::-webkit-scrollbar {\n display: none; } }\n\n.kanban-board[data-v-9374538f] {\n display: flex;\n gap: 1rem;\n overflow-x: auto;\n padding: 1rem; }\n\n.kanban-column[data-v-9374538f] {\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-9374538f] {\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-9374538f] {\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-9374538f] {\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";
20715
21053
  n(css, {});var _sfc_main = {
20716
21054
  name: "VueLaravelCrud",
20717
21055
  components: {
@@ -20798,6 +21136,7 @@ n(css, {});var _sfc_main = {
20798
21136
  bulkDelete: this.bulkDelete,
20799
21137
  showImport: this.showImport,
20800
21138
  showExport: this.showExport,
21139
+ fileImport: this.fileImport,
20801
21140
  markDirty: this.markDirty,
20802
21141
  // Data from mixins
20803
21142
  crudUuid: this.crudUuid,
@@ -20835,6 +21174,7 @@ n(css, {});var _sfc_main = {
20835
21174
  internalFilter: this.internalFilter,
20836
21175
  internalFilterByProp: this.internalFilterByProp,
20837
21176
  columnOptions: this.columnOptions,
21177
+ isAllSelected: this.isAllSelected,
20838
21178
  // Methods from mixins
20839
21179
  handleResize: this.handleResize,
20840
21180
  rearrangeArray: this.rearrangeArray,
@@ -20860,6 +21200,7 @@ n(css, {});var _sfc_main = {
20860
21200
  importItems: this.importItems,
20861
21201
  refresh: this.refresh,
20862
21202
  onPaginationChange: this.onPaginationChange,
21203
+ onPerPageChange: this.onPerPageChange,
20863
21204
  infiniteHandler: this.infiniteHandler,
20864
21205
  setupFilters: this.setupFilters,
20865
21206
  toggleSortFilter: this.toggleSortFilter,
@@ -20880,6 +21221,7 @@ n(css, {});var _sfc_main = {
20880
21221
  unSelectItem: this.unSelectItem,
20881
21222
  selectItem: this.selectItem,
20882
21223
  getSelectedItems: this.getSelectedItems,
21224
+ clearSelection: this.clearSelection,
20883
21225
  onSelect: this.onSelect,
20884
21226
  showItem: this.showItem,
20885
21227
  createItem: this.createItem,
@@ -21210,10 +21552,19 @@ var _sfc_render = function render() {
21210
21552
  "show": _vm.loading,
21211
21553
  "rounded": "sm"
21212
21554
  }
21213
- }), _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);
21214
21565
  };
21215
21566
  var _sfc_staticRenderFns = [];
21216
- var __component__ = /*#__PURE__*/normalizeComponent(_sfc_main, _sfc_render, _sfc_staticRenderFns, false, null, "9374538f", null, null);
21567
+ var __component__ = /*#__PURE__*/normalizeComponent(_sfc_main, _sfc_render, _sfc_staticRenderFns, false, null, "482920a4", null, null);
21217
21568
  var component$1 = __component__.exports;// Import vue component
21218
21569
 
21219
21570
  // Default export is installable instance of component.