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