vue-laravel-crud 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/vue-laravel-crud.esm.js +134 -46
- package/dist/vue-laravel-crud.min.js +3 -3
- package/dist/vue-laravel-crud.ssr.js +148 -56
- package/package.json +4 -2
- package/src/components/CrudCards.vue +6 -3
- package/src/components/CrudCustom.vue +2 -2
- package/src/components/CrudHeader.vue +15 -2
- package/src/components/CrudKanban.vue +1 -1
- package/src/components/CrudPagination.vue +75 -15
- package/src/components/CrudTable.vue +2 -2
- package/src/components/table/TableHeader.vue +39 -7
- package/src/components/table/TableRow.vue +5 -1
- package/src/vue-laravel-crud.vue +33 -0
|
@@ -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-
|
|
742
|
+
var CrudFilters = __component__$f.exports;var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}var css$6 = "\n.crud-header[data-v-ed8e5777] {\r\n display: flex;\r\n justify-content: space-between;\r\n max-height: 3rem;\n}\n.crud-title[data-v-ed8e5777] {\r\n margin: 0;\n}\n.crud-search[data-v-ed8e5777] {\r\n max-width: 15rem;\n}\n.crud-search .btn[data-v-ed8e5777] {\r\n border-top-left-radius: 0;\r\n border-bottom-left-radius: 0;\r\n border-top-right-radius: 0.375rem;\r\n border-bottom-right-radius: 0.375rem;\n}\n.crud-search .btn.open[data-v-ed8e5777] {\r\n border-top-right-radius: 0;\r\n border-bottom-right-radius: 0;\n}\n.table-options[data-v-ed8e5777] {\r\n margin-bottom: 1rem;\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\n}\r\n";
|
|
743
743
|
n(css$6, {});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
|
-
|
|
764
|
-
|
|
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, "
|
|
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) {
|
|
@@ -7041,7 +7051,33 @@ Sortable.mount(Remove, Revert);var sortable_esm=/*#__PURE__*/Object.freeze({__pr
|
|
|
7041
7051
|
var vuedraggable_umdExports = vuedraggable_umd.exports;
|
|
7042
7052
|
var draggable = /*@__PURE__*/getDefaultExportFromCjs(vuedraggable_umdExports);var _sfc_main$d = {
|
|
7043
7053
|
name: 'TableHeader',
|
|
7044
|
-
inject: ['columns', 'enableFilters', 'filtersVisible', 'isColumnHasFilter', 'internalFilterByProp', 'onChangeFilter', 'toggleAll', 'toggleSortFilter', 'sortable', 'optionsLoaded']
|
|
7054
|
+
inject: ['columns', 'enableFilters', 'filtersVisible', 'isColumnHasFilter', 'internalFilterByProp', 'onChangeFilter', 'toggleAll', 'toggleSortFilter', 'sortable', 'optionsLoaded'],
|
|
7055
|
+
data: function data() {
|
|
7056
|
+
return {
|
|
7057
|
+
hoveredColumn: null
|
|
7058
|
+
};
|
|
7059
|
+
},
|
|
7060
|
+
methods: {
|
|
7061
|
+
isSortableColumn: function isSortableColumn(column) {
|
|
7062
|
+
return this.sortable && column.type != 'select' && column.type != 'checkbox' && this.internalFilterByProp(column.prop + '_sort');
|
|
7063
|
+
},
|
|
7064
|
+
shouldShowSortIcon: function shouldShowSortIcon(column) {
|
|
7065
|
+
var sortFilter = this.internalFilterByProp(column.prop + '_sort');
|
|
7066
|
+
return this.hoveredColumn === column.prop || sortFilter.value;
|
|
7067
|
+
},
|
|
7068
|
+
getSortIconDirection: function getSortIconDirection(column) {
|
|
7069
|
+
var sortFilter = this.internalFilterByProp(column.prop + '_sort');
|
|
7070
|
+
var sortValue = sortFilter.value;
|
|
7071
|
+
if (sortValue === 'DESC') {
|
|
7072
|
+
return 'down';
|
|
7073
|
+
} else if (sortValue === 'ASC') {
|
|
7074
|
+
return 'up';
|
|
7075
|
+
} else if (this.hoveredColumn === column.prop) {
|
|
7076
|
+
return 'up';
|
|
7077
|
+
}
|
|
7078
|
+
return null;
|
|
7079
|
+
}
|
|
7080
|
+
}
|
|
7045
7081
|
};
|
|
7046
7082
|
var _sfc_render$d = function render() {
|
|
7047
7083
|
var _vm = this,
|
|
@@ -7057,6 +7093,14 @@ var _sfc_render$d = function render() {
|
|
|
7057
7093
|
},
|
|
7058
7094
|
attrs: {
|
|
7059
7095
|
"scope": "col"
|
|
7096
|
+
},
|
|
7097
|
+
on: {
|
|
7098
|
+
"mouseenter": function mouseenter($event) {
|
|
7099
|
+
_vm.hoveredColumn = column.prop;
|
|
7100
|
+
},
|
|
7101
|
+
"mouseleave": function mouseleave($event) {
|
|
7102
|
+
_vm.hoveredColumn = null;
|
|
7103
|
+
}
|
|
7060
7104
|
}
|
|
7061
7105
|
}, [_vm.enableFilters && _vm.filtersVisible && _vm.isColumnHasFilter(column) && _vm.internalFilterByProp(column.prop) ? _vm._t('filter-' + column.prop, function () {
|
|
7062
7106
|
return [_c('div', {
|
|
@@ -7255,14 +7299,14 @@ var _sfc_render$d = function render() {
|
|
|
7255
7299
|
return _vm.toggleAll($event);
|
|
7256
7300
|
}
|
|
7257
7301
|
}
|
|
7258
|
-
})], 1) : _c('span', [_vm._v(_vm._s(column.label))]), _vm.
|
|
7302
|
+
})], 1) : _c('span', [_vm._v(_vm._s(column.label))]), _vm.isSortableColumn(column) && _vm.shouldShowSortIcon(column) ? _c('span', {
|
|
7259
7303
|
staticClass: "sort-filter",
|
|
7260
7304
|
on: {
|
|
7261
7305
|
"click": function click($event) {
|
|
7262
7306
|
return _vm.toggleSortFilter(column);
|
|
7263
7307
|
}
|
|
7264
7308
|
}
|
|
7265
|
-
}, [
|
|
7309
|
+
}, [_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
7310
|
});
|
|
7267
7311
|
})], 2)]);
|
|
7268
7312
|
};
|
|
@@ -13060,7 +13104,9 @@ var _sfc_render$b = function render() {
|
|
|
13060
13104
|
var _vm = this,
|
|
13061
13105
|
_c = _vm._self._c;
|
|
13062
13106
|
return _c('tr', {
|
|
13063
|
-
|
|
13107
|
+
class: ['item', {
|
|
13108
|
+
'selected': _vm.item.selected
|
|
13109
|
+
}],
|
|
13064
13110
|
on: {
|
|
13065
13111
|
"mouseover": function mouseover($event) {
|
|
13066
13112
|
return _vm.onRowHover(_vm.item, _vm.index);
|
|
@@ -13114,6 +13160,7 @@ var _sfc_render$a = function render() {
|
|
|
13114
13160
|
class: ['table table-hover table-striped w-100', _vm.tableClass]
|
|
13115
13161
|
}, [_c('TableHeader'), _c('draggable', {
|
|
13116
13162
|
attrs: {
|
|
13163
|
+
"list": _vm.items,
|
|
13117
13164
|
"group": _vm.draggableGroup,
|
|
13118
13165
|
"tag": "tbody",
|
|
13119
13166
|
"draggable": _vm.orderable ? '.item' : '.none',
|
|
@@ -13135,13 +13182,6 @@ var _sfc_render$a = function render() {
|
|
|
13135
13182
|
"change": function change($event) {
|
|
13136
13183
|
return _vm.onDraggableChange($event);
|
|
13137
13184
|
}
|
|
13138
|
-
},
|
|
13139
|
-
model: {
|
|
13140
|
-
value: _vm.items,
|
|
13141
|
-
callback: function callback($$v) {
|
|
13142
|
-
_vm.items = $$v;
|
|
13143
|
-
},
|
|
13144
|
-
expression: "items"
|
|
13145
13185
|
}
|
|
13146
13186
|
}, _vm._l(_vm.itemsList, function (item, index) {
|
|
13147
13187
|
return _c('TableRow', {
|
|
@@ -13152,7 +13192,7 @@ var _sfc_render$a = function render() {
|
|
|
13152
13192
|
"grouped": _vm.grouped
|
|
13153
13193
|
}
|
|
13154
13194
|
});
|
|
13155
|
-
}), 1)], 1), !_vm.loading && _vm.
|
|
13195
|
+
}), 1)], 1), !_vm.loading && _vm.itemsList && _vm.itemsList.length == 0 && !_vm.infiniteScroll ? _c('p', {
|
|
13156
13196
|
staticClass: "p-3"
|
|
13157
13197
|
}, [_vm._v(" " + _vm._s(_vm.messageEmptyResults) + " ")]) : _vm._e()]) : _vm._e();
|
|
13158
13198
|
};
|
|
@@ -13495,11 +13535,12 @@ var _sfc_render$9 = function render() {
|
|
|
13495
13535
|
};
|
|
13496
13536
|
var _sfc_staticRenderFns$9 = [];
|
|
13497
13537
|
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
|
|
13538
|
+
var ItemCard = __component__$9.exports;// Registrar el componente masonry usando el Plugin
|
|
13539
|
+
Vue__default["default"].use(Plugin);
|
|
13540
|
+
var _sfc_main$8 = {
|
|
13499
13541
|
name: 'CrudCards',
|
|
13500
13542
|
components: {
|
|
13501
13543
|
draggable: draggable,
|
|
13502
|
-
VueMasonry: Plugin,
|
|
13503
13544
|
ItemCard: ItemCard
|
|
13504
13545
|
},
|
|
13505
13546
|
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 +13553,7 @@ var ItemCard = __component__$9.exports;var _sfc_main$8 = {
|
|
|
13512
13553
|
var _sfc_render$8 = function render() {
|
|
13513
13554
|
var _vm = this,
|
|
13514
13555
|
_c = _vm._self._c;
|
|
13515
|
-
return _c('div', [_c('draggable', {
|
|
13556
|
+
return _vm.displayMode == _vm.displayModes.MODE_CARDS ? _c('div', [_c('draggable', {
|
|
13516
13557
|
attrs: {
|
|
13517
13558
|
"group": _vm.draggableGroup,
|
|
13518
13559
|
"draggable": _vm.orderable ? '.item' : '.none',
|
|
@@ -13580,9 +13621,9 @@ var _sfc_render$8 = function render() {
|
|
|
13580
13621
|
}, {
|
|
13581
13622
|
"item": item
|
|
13582
13623
|
})], 2);
|
|
13583
|
-
}), 0)], 1), !_vm.loading && _vm.
|
|
13624
|
+
}), 0)], 1), !_vm.loading && _vm.itemsList && _vm.itemsList.length == 0 && !_vm.infiniteScroll ? _c('p', {
|
|
13584
13625
|
staticClass: "p-3"
|
|
13585
|
-
}, [_vm._v(" " + _vm._s(_vm.messageEmptyResults) + " ")]) : _vm._e()], 1);
|
|
13626
|
+
}, [_vm._v(" " + _vm._s(_vm.messageEmptyResults) + " ")]) : _vm._e()], 1) : _vm._e();
|
|
13586
13627
|
};
|
|
13587
13628
|
var _sfc_staticRenderFns$8 = [];
|
|
13588
13629
|
var __component__$8 = /*#__PURE__*/normalizeComponent(_sfc_main$8, _sfc_render$8, _sfc_staticRenderFns$8, false, null, null, null, null);
|
|
@@ -13838,7 +13879,7 @@ var KanbanBoard = __component__$5.exports;var _sfc_main$4 = {
|
|
|
13838
13879
|
var _sfc_render$4 = function render() {
|
|
13839
13880
|
var _vm = this,
|
|
13840
13881
|
_c = _vm._self._c;
|
|
13841
|
-
return _c('div', [_c('KanbanBoard')], 1);
|
|
13882
|
+
return _vm.displayMode == _vm.displayModes.MODE_KANBAN ? _c('div', [_c('KanbanBoard')], 1) : _vm._e();
|
|
13842
13883
|
};
|
|
13843
13884
|
var _sfc_staticRenderFns$4 = [];
|
|
13844
13885
|
var __component__$4 = /*#__PURE__*/normalizeComponent(_sfc_main$4, _sfc_render$4, _sfc_staticRenderFns$4, false, null, null, null, null);
|
|
@@ -13849,9 +13890,9 @@ var CrudKanban = __component__$4.exports;var _sfc_main$3 = {
|
|
|
13849
13890
|
var _sfc_render$3 = function render() {
|
|
13850
13891
|
var _vm = this,
|
|
13851
13892
|
_c = _vm._self._c;
|
|
13852
|
-
return _c('div', [_c('div', {
|
|
13893
|
+
return _vm.displayMode == _vm.displayModes.MODE_CUSTOM ? _c('div', [_c('div', {
|
|
13853
13894
|
class: _vm.listContainerClass
|
|
13854
|
-
}, [!_vm.loading && _vm.
|
|
13895
|
+
}, [!_vm.loading && _vm.itemsList && _vm.itemsList.length == 0 && !_vm.infiniteScroll ? _c('p', {
|
|
13855
13896
|
staticClass: "p-3"
|
|
13856
13897
|
}, [_vm._v(" " + _vm._s(_vm.messageEmptyResults) + " ")]) : _vm._e(), _vm._l(_vm.itemsList, function (item, index) {
|
|
13857
13898
|
return _c('div', {
|
|
@@ -13860,7 +13901,7 @@ var _sfc_render$3 = function render() {
|
|
|
13860
13901
|
}, [_vm._t("card", null, {
|
|
13861
13902
|
"item": item
|
|
13862
13903
|
})], 2);
|
|
13863
|
-
})], 2)]);
|
|
13904
|
+
})], 2)]) : _vm._e();
|
|
13864
13905
|
};
|
|
13865
13906
|
var _sfc_staticRenderFns$3 = [];
|
|
13866
13907
|
var __component__$3 = /*#__PURE__*/normalizeComponent(_sfc_main$3, _sfc_render$3, _sfc_staticRenderFns$3, false, null, null, null, null);
|
|
@@ -14098,7 +14139,7 @@ vueInfiniteLoading.exports;
|
|
|
14098
14139
|
} (vueInfiniteLoading, vueInfiniteLoading.exports));
|
|
14099
14140
|
|
|
14100
14141
|
var vueInfiniteLoadingExports = vueInfiniteLoading.exports;
|
|
14101
|
-
var InfiniteLoading = /*@__PURE__*/getDefaultExportFromCjs(vueInfiniteLoadingExports);var css$1 = "\n.
|
|
14142
|
+
var InfiniteLoading = /*@__PURE__*/getDefaultExportFromCjs(vueInfiniteLoadingExports);var css$1 = "\n.paginator-container[data-v-2c61ceb1] {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n width: 100%;\r\n margin-top: 1rem;\r\n gap: 0.75rem;\n}\n.paginator-data[data-v-2c61ceb1] {\r\n display: flex;\r\n flex-wrap: wrap;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 0.5rem;\r\n font-size: 0.875rem;\n}\n.paginator-badge[data-v-2c61ceb1] {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 0.25rem;\r\n padding: 0.375rem 0.625rem;\r\n background-color: #f8f9fa;\r\n border: 1px solid #dee2e6;\r\n border-radius: 0.375rem;\r\n color: #495057;\r\n transition: all 0.2s ease;\n}\n.paginator-badge[data-v-2c61ceb1]:hover {\r\n background-color: #e9ecef;\r\n border-color: #ced4da;\n}\n.paginator-label[data-v-2c61ceb1] {\r\n font-weight: 500;\r\n color: #6c757d;\n}\n.paginator-value[data-v-2c61ceb1] {\r\n font-weight: 600;\r\n color: #212529;\n}\n.crud-paginator[data-v-2c61ceb1] {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\n}\r\n";
|
|
14102
14143
|
n(css$1, {});var _sfc_main$1 = {
|
|
14103
14144
|
name: 'CrudPagination',
|
|
14104
14145
|
components: {
|
|
@@ -14140,8 +14181,34 @@ var _sfc_render$1 = function render() {
|
|
|
14140
14181
|
}, [!_vm.loading ? _c('div', {
|
|
14141
14182
|
staticClass: "text-center"
|
|
14142
14183
|
}, [_vm._v(_vm._s(_vm.items.length == 0 ? _vm.messageEmptyResults : _vm.messageNoMore))]) : _vm._e()])]) : _vm._e(), !_vm.infiniteScroll ? _c('div', {
|
|
14184
|
+
staticClass: "paginator-container"
|
|
14185
|
+
}, [_c('div', {
|
|
14143
14186
|
staticClass: "paginator-data"
|
|
14144
|
-
}, [
|
|
14187
|
+
}, [_c('span', {
|
|
14188
|
+
staticClass: "paginator-badge"
|
|
14189
|
+
}, [_c('span', {
|
|
14190
|
+
staticClass: "paginator-label"
|
|
14191
|
+
}, [_vm._v("Filas:")]), _c('span', {
|
|
14192
|
+
staticClass: "paginator-value"
|
|
14193
|
+
}, [_vm._v(_vm._s(_vm.pagination.total))])]), _c('span', {
|
|
14194
|
+
staticClass: "paginator-badge"
|
|
14195
|
+
}, [_c('span', {
|
|
14196
|
+
staticClass: "paginator-label"
|
|
14197
|
+
}, [_vm._v("xPág:")]), _c('span', {
|
|
14198
|
+
staticClass: "paginator-value"
|
|
14199
|
+
}, [_vm._v(_vm._s(_vm.pagination.per_page))])]), _c('span', {
|
|
14200
|
+
staticClass: "paginator-badge"
|
|
14201
|
+
}, [_c('span', {
|
|
14202
|
+
staticClass: "paginator-label"
|
|
14203
|
+
}, [_vm._v("Pág:")]), _c('span', {
|
|
14204
|
+
staticClass: "paginator-value"
|
|
14205
|
+
}, [_vm._v(_vm._s(_vm.pagination.current_page))])]), _vm.selectedItems.length > 0 ? _c('span', {
|
|
14206
|
+
staticClass: "paginator-badge"
|
|
14207
|
+
}, [_c('span', {
|
|
14208
|
+
staticClass: "paginator-label"
|
|
14209
|
+
}, [_vm._v("Seleccionados:")]), _c('span', {
|
|
14210
|
+
staticClass: "paginator-value"
|
|
14211
|
+
}, [_vm._v(_vm._s(_vm.selectedItems.length))])]) : _vm._e()]), _c('div', {
|
|
14145
14212
|
staticClass: "crud-paginator"
|
|
14146
14213
|
}, [_vm.showPaginator ? _c('b-pagination', {
|
|
14147
14214
|
attrs: {
|
|
@@ -14160,10 +14227,10 @@ var _sfc_render$1 = function render() {
|
|
|
14160
14227
|
},
|
|
14161
14228
|
expression: "pagination.current_page"
|
|
14162
14229
|
}
|
|
14163
|
-
}) : _vm._e()], 1) : _vm._e()], 1);
|
|
14230
|
+
}) : _vm._e()], 1)]) : _vm._e()], 1);
|
|
14164
14231
|
};
|
|
14165
14232
|
var _sfc_staticRenderFns$1 = [];
|
|
14166
|
-
var __component__$1 = /*#__PURE__*/normalizeComponent(_sfc_main$1, _sfc_render$1, _sfc_staticRenderFns$1, false, null, "
|
|
14233
|
+
var __component__$1 = /*#__PURE__*/normalizeComponent(_sfc_main$1, _sfc_render$1, _sfc_staticRenderFns$1, false, null, "2c61ceb1", null, null);
|
|
14167
14234
|
var CrudPagination = __component__$1.exports;var crudData = {
|
|
14168
14235
|
data: function data() {
|
|
14169
14236
|
return {
|
|
@@ -14203,7 +14270,8 @@ var CrudPagination = __component__$1.exports;var crudData = {
|
|
|
14203
14270
|
refreshing: false,
|
|
14204
14271
|
fetchError: false,
|
|
14205
14272
|
principalSort: false,
|
|
14206
|
-
exportFormat: 'JSON'
|
|
14273
|
+
exportFormat: 'JSON',
|
|
14274
|
+
fileImport: null
|
|
14207
14275
|
};
|
|
14208
14276
|
},
|
|
14209
14277
|
computed: {
|
|
@@ -19623,17 +19691,33 @@ axios.default = axios;var crudApi = {
|
|
|
19623
19691
|
filters: JSON.stringify(this.finalFilters)
|
|
19624
19692
|
}
|
|
19625
19693
|
}).then(function (response) {
|
|
19694
|
+
console.debug("fetchItems - Response recibida:", response.data);
|
|
19626
19695
|
_this2.makePagination(response.data);
|
|
19696
|
+
|
|
19697
|
+
// Validar que response.data.data existe y es un array
|
|
19627
19698
|
var items = response.data.data;
|
|
19699
|
+
if (!items) {
|
|
19700
|
+
console.warn("fetchItems - response.data.data es undefined o null, usando array vacío");
|
|
19701
|
+
items = [];
|
|
19702
|
+
} else if (!Array.isArray(items)) {
|
|
19703
|
+
console.warn("fetchItems - response.data.data no es un array, tipo:", _typeof$1(items), items);
|
|
19704
|
+
items = [];
|
|
19705
|
+
}
|
|
19706
|
+
console.debug("fetchItems - Items procesados:", items, "Cantidad:", items.length);
|
|
19628
19707
|
if (_this2.grouped) {
|
|
19629
19708
|
_this2.groupItems(items, concat, _this2.isSplitGroups);
|
|
19630
19709
|
} else {
|
|
19631
19710
|
if (concat) {
|
|
19632
|
-
|
|
19711
|
+
var _this2$items;
|
|
19712
|
+
// Para concat, agregar items al array existente
|
|
19713
|
+
(_this2$items = _this2.items).push.apply(_this2$items, _toConsumableArray$1(items));
|
|
19633
19714
|
} else {
|
|
19634
|
-
_this2
|
|
19715
|
+
var _this2$items2;
|
|
19716
|
+
// Mutar el array existente en lugar de reemplazarlo para mantener reactividad con provide/inject
|
|
19717
|
+
(_this2$items2 = _this2.items).splice.apply(_this2$items2, [0, _this2.items.length].concat(_toConsumableArray$1(items)));
|
|
19635
19718
|
}
|
|
19636
19719
|
}
|
|
19720
|
+
console.debug("fetchItems - this.items después de asignar:", _this2.items, "Cantidad:", _this2.items ? _this2.items.length : 0);
|
|
19637
19721
|
_this2.loading = false;
|
|
19638
19722
|
_this2.firstLoad = true;
|
|
19639
19723
|
_this2.$emit("afterFetch", {});
|
|
@@ -19662,8 +19746,9 @@ axios.default = axios;var crudApi = {
|
|
|
19662
19746
|
return acc;
|
|
19663
19747
|
}, {});
|
|
19664
19748
|
if (splitGroups) {
|
|
19749
|
+
var _this$items;
|
|
19665
19750
|
// Dividimos los grupos en arrays separados
|
|
19666
|
-
|
|
19751
|
+
var groupedItems = Object.entries(groupedMap).map(function (_ref) {
|
|
19667
19752
|
var _ref2 = _slicedToArray(_ref, 2),
|
|
19668
19753
|
groupKey = _ref2[0],
|
|
19669
19754
|
groupItems = _ref2[1];
|
|
@@ -19673,6 +19758,8 @@ axios.default = axios;var crudApi = {
|
|
|
19673
19758
|
items: groupItems
|
|
19674
19759
|
};
|
|
19675
19760
|
});
|
|
19761
|
+
// Mutar el array existente para mantener reactividad
|
|
19762
|
+
(_this$items = this.items).splice.apply(_this$items, [0, this.items.length].concat(_toConsumableArray$1(groupedItems)));
|
|
19676
19763
|
} else {
|
|
19677
19764
|
// Creamos la estructura agrupada en un solo array
|
|
19678
19765
|
for (var _i = 0, _Object$entries = Object.entries(groupedMap); _i < _Object$entries.length; _i++) {
|
|
@@ -19688,9 +19775,12 @@ axios.default = axios;var crudApi = {
|
|
|
19688
19775
|
|
|
19689
19776
|
// Decidimos si concatenar o reemplazar los items existentes
|
|
19690
19777
|
if (concat) {
|
|
19691
|
-
|
|
19778
|
+
var _this$items2;
|
|
19779
|
+
(_this$items2 = this.items).push.apply(_this$items2, itemsWithGroup);
|
|
19692
19780
|
} else {
|
|
19693
|
-
|
|
19781
|
+
var _this$items3;
|
|
19782
|
+
// Mutar el array existente para mantener reactividad
|
|
19783
|
+
(_this$items3 = this.items).splice.apply(_this$items3, [0, this.items.length].concat(itemsWithGroup));
|
|
19694
19784
|
}
|
|
19695
19785
|
}
|
|
19696
19786
|
},
|
|
@@ -20307,6 +20397,7 @@ axios.default = axios;var crudApi = {
|
|
|
20307
20397
|
});
|
|
20308
20398
|
},
|
|
20309
20399
|
toggleSortFilter: function toggleSortFilter(column) {
|
|
20400
|
+
var _this2 = this;
|
|
20310
20401
|
var value = this.internalFilterByProp(column.prop + "_sort").value;
|
|
20311
20402
|
if (!value) {
|
|
20312
20403
|
this.internalFilterByProp(column.prop + "_sort").value = "ASC";
|
|
@@ -20315,24 +20406,24 @@ axios.default = axios;var crudApi = {
|
|
|
20315
20406
|
} else if (value == "DESC") {
|
|
20316
20407
|
this.internalFilterByProp(column.prop + "_sort").value = null;
|
|
20317
20408
|
}
|
|
20409
|
+
this.forceRecomputeCounter++;
|
|
20410
|
+
setTimeout(function () {
|
|
20411
|
+
_this2.refresh();
|
|
20412
|
+
}, 1);
|
|
20318
20413
|
},
|
|
20319
20414
|
toggleFilters: function toggleFilters() {
|
|
20320
20415
|
this.filtersVisible = !this.filtersVisible;
|
|
20321
|
-
|
|
20322
|
-
this.filterSidebarOpen = this.filtersVisible;
|
|
20323
|
-
} else {
|
|
20324
|
-
this.filterSidebarOpen = false;
|
|
20325
|
-
}
|
|
20416
|
+
this.filterSidebarOpen = this.filtersVisible;
|
|
20326
20417
|
},
|
|
20327
20418
|
resetFilters: function resetFilters() {
|
|
20328
|
-
var
|
|
20419
|
+
var _this3 = this;
|
|
20329
20420
|
var refresh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
20330
20421
|
this.internalFilters = [];
|
|
20331
20422
|
this.setupFilters();
|
|
20332
20423
|
this.forceRecomputeCounter++;
|
|
20333
20424
|
if (refresh) {
|
|
20334
20425
|
setTimeout(function () {
|
|
20335
|
-
|
|
20426
|
+
_this3.refresh();
|
|
20336
20427
|
}, 1);
|
|
20337
20428
|
}
|
|
20338
20429
|
},
|
|
@@ -20340,29 +20431,29 @@ axios.default = axios;var crudApi = {
|
|
|
20340
20431
|
return column && !column.hideFilter && column.type != "actions";
|
|
20341
20432
|
},
|
|
20342
20433
|
setFilter: function setFilter(column, value) {
|
|
20343
|
-
var
|
|
20434
|
+
var _this4 = this;
|
|
20344
20435
|
var filter = this.filter.find(function (f) {
|
|
20345
20436
|
return f.column == column;
|
|
20346
20437
|
});
|
|
20347
20438
|
filter.value = value;
|
|
20348
20439
|
this.forceRecomputeCounter++;
|
|
20349
20440
|
setTimeout(function () {
|
|
20350
|
-
|
|
20441
|
+
_this4.refresh();
|
|
20351
20442
|
}, 1);
|
|
20352
20443
|
},
|
|
20353
20444
|
onChangeFilter: function onChangeFilter(event) {
|
|
20354
|
-
var
|
|
20445
|
+
var _this5 = this;
|
|
20355
20446
|
this.forceRecomputeCounter++;
|
|
20356
20447
|
console.debug("Filters debug ", this.finalFilters, this.internalFilter, this.internalFilters, this.filter, this.filters);
|
|
20357
20448
|
setTimeout(function () {
|
|
20358
|
-
|
|
20449
|
+
_this5.refresh();
|
|
20359
20450
|
}, 1);
|
|
20360
20451
|
},
|
|
20361
20452
|
togglePrincipalSort: function togglePrincipalSort() {
|
|
20362
|
-
var
|
|
20453
|
+
var _this6 = this;
|
|
20363
20454
|
this.principalSort = !this.principalSort;
|
|
20364
20455
|
setTimeout(function () {
|
|
20365
|
-
|
|
20456
|
+
_this6.refresh();
|
|
20366
20457
|
}, 1);
|
|
20367
20458
|
}
|
|
20368
20459
|
}
|
|
@@ -20711,7 +20802,7 @@ axios.default = axios;var crudApi = {
|
|
|
20711
20802
|
link.click();
|
|
20712
20803
|
}
|
|
20713
20804
|
}
|
|
20714
|
-
};var css = "tr td[data-v-
|
|
20805
|
+
};var css = "tr td[data-v-51b1f76a]:last-child,\ntr td[data-v-51b1f76a]:first-child {\n width: 1%;\n white-space: nowrap; }\n\ntbody tr.selected[data-v-51b1f76a] {\n background-color: #e3f2fd !important; }\n tbody tr.selected[data-v-51b1f76a] td[data-v-51b1f76a] {\n background-color: transparent !important; }\n tbody tr.selected[data-v-51b1f76a][data-v-51b1f76a]:hover {\n background-color: #bbdefb !important; }\n tbody tr.selected[data-v-51b1f76a][data-v-51b1f76a]:hover td[data-v-51b1f76a] {\n background-color: transparent !important; }\n\n.table-striped tbody tr.selected[data-v-51b1f76a]:nth-of-type(odd) {\n background-color: #e3f2fd !important; }\n .table-striped tbody tr.selected[data-v-51b1f76a]:nth-of-type(odd) td[data-v-51b1f76a] {\n background-color: transparent !important; }\n\n.table-striped tbody tr.selected[data-v-51b1f76a]:nth-of-type(even) {\n background-color: #e3f2fd !important; }\n .table-striped tbody tr.selected[data-v-51b1f76a]:nth-of-type(even) td[data-v-51b1f76a] {\n background-color: transparent !important; }\n\n.crud-pagination[data-v-51b1f76a] {\n display: flex;\n align-items: center;\n width: 100%;\n justify-content: center;\n margin-top: 1rem; }\n\n.crud-header[data-v-51b1f76a] {\n display: flex;\n justify-content: space-between;\n max-height: 3rem; }\n .crud-header[data-v-51b1f76a] .crud-title[data-v-51b1f76a] {\n margin: 0; }\n .crud-header[data-v-51b1f76a] .crud-search[data-v-51b1f76a] {\n max-width: 15rem; }\n .crud-header[data-v-51b1f76a] .crud-search[data-v-51b1f76a] .btn[data-v-51b1f76a] {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n border-top-right-radius: 0.375rem;\n border-bottom-right-radius: 0.375rem; }\n .crud-header[data-v-51b1f76a] .crud-search[data-v-51b1f76a] .btn[data-v-51b1f76a].open[data-v-51b1f76a] {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n .crud-header[data-v-51b1f76a] .table-options[data-v-51b1f76a] {\n margin-bottom: 1rem;\n display: flex;\n align-items: center;\n justify-content: flex-end; }\n\n.custom-control[data-v-51b1f76a] {\n position: relative; }\n\n@media (min-width: 992px) {\n .table[data-v-51b1f76a] {\n table-layout: auto; }\n .table[data-v-51b1f76a] tbody[data-v-51b1f76a] td[data-v-51b1f76a] {\n overflow: scroll;\n -ms-overflow-style: none;\n /* IE and Edge */\n scrollbar-width: none;\n /* Firefox */ }\n .table[data-v-51b1f76a] tbody[data-v-51b1f76a] td[data-v-51b1f76a]::-webkit-scrollbar {\n display: none; } }\n\n.kanban-board[data-v-51b1f76a] {\n display: flex;\n gap: 1rem;\n overflow-x: auto;\n padding: 1rem; }\n\n.kanban-column[data-v-51b1f76a] {\n background: #f4f5f7;\n border-radius: 8px;\n width: 300px;\n display: flex;\n flex-direction: column;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); }\n\n.kanban-column-header[data-v-51b1f76a] {\n font-weight: bold;\n padding: 0.5rem;\n background: #dfe1e6;\n border-radius: 8px 8px 0 0;\n text-align: center; }\n\n.kanban-column-body[data-v-51b1f76a] {\n padding: 0.5rem;\n min-height: 100px;\n background: #ffffff;\n border-radius: 0 0 8px 8px;\n display: flex;\n flex-direction: column;\n gap: 0.5rem; }\n\n.kanban-card[data-v-51b1f76a] {\n background: #ffffff;\n border-radius: 4px;\n padding: 1rem;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n cursor: grab; }\n";
|
|
20715
20806
|
n(css, {});var _sfc_main = {
|
|
20716
20807
|
name: "VueLaravelCrud",
|
|
20717
20808
|
components: {
|
|
@@ -20798,6 +20889,7 @@ n(css, {});var _sfc_main = {
|
|
|
20798
20889
|
bulkDelete: this.bulkDelete,
|
|
20799
20890
|
showImport: this.showImport,
|
|
20800
20891
|
showExport: this.showExport,
|
|
20892
|
+
fileImport: this.fileImport,
|
|
20801
20893
|
markDirty: this.markDirty,
|
|
20802
20894
|
// Data from mixins
|
|
20803
20895
|
crudUuid: this.crudUuid,
|
|
@@ -21213,7 +21305,7 @@ var _sfc_render = function render() {
|
|
|
21213
21305
|
}), _c('CrudPagination'), _c('CrudModals')], 1);
|
|
21214
21306
|
};
|
|
21215
21307
|
var _sfc_staticRenderFns = [];
|
|
21216
|
-
var __component__ = /*#__PURE__*/normalizeComponent(_sfc_main, _sfc_render, _sfc_staticRenderFns, false, null, "
|
|
21308
|
+
var __component__ = /*#__PURE__*/normalizeComponent(_sfc_main, _sfc_render, _sfc_staticRenderFns, false, null, "51b1f76a", null, null);
|
|
21217
21309
|
var component$1 = __component__.exports;// Import vue component
|
|
21218
21310
|
|
|
21219
21311
|
// Default export is installable instance of component.
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vue-laravel-crud",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1",
|
|
4
|
+
"type": "module",
|
|
4
5
|
"description": "",
|
|
5
6
|
"homepage": "https://github.com/clonixdev/vue-laravel-crud",
|
|
6
7
|
"main": "dist/vue-laravel-crud.ssr.js",
|
|
@@ -16,7 +17,7 @@
|
|
|
16
17
|
"serve": "vue-cli-service serve dev/serve.js",
|
|
17
18
|
"demo": "concurrently \"npm run demo:api\" \"npm run demo:app\"",
|
|
18
19
|
"demo:api": "node dev/api/mockServer.js",
|
|
19
|
-
"demo:app": "vue-cli-service serve dev/demo/
|
|
20
|
+
"demo:app": "vue-cli-service serve dev/demo/main.js",
|
|
20
21
|
"build": "cross-env NODE_ENV=production rollup --config build/rollup.config.js",
|
|
21
22
|
"build:ssr": "cross-env NODE_ENV=production rollup --config build/rollup.config.js --format cjs",
|
|
22
23
|
"build:es": "cross-env NODE_ENV=production rollup --config build/rollup.config.js --format es",
|
|
@@ -24,6 +25,7 @@
|
|
|
24
25
|
},
|
|
25
26
|
"dependencies": {
|
|
26
27
|
"axios": "^1.3.5",
|
|
28
|
+
"bootstrap": "^4.6.2",
|
|
27
29
|
"bootstrap-vue": "^2.21.2",
|
|
28
30
|
"moment": "^2.29.1",
|
|
29
31
|
"sass-loader": "^14.1.1",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div v-
|
|
2
|
+
<div v-if="displayMode == displayModes.MODE_CARDS">
|
|
3
3
|
<draggable
|
|
4
4
|
v-model="items"
|
|
5
5
|
:group="draggableGroup"
|
|
@@ -35,22 +35,25 @@
|
|
|
35
35
|
</masonry>
|
|
36
36
|
</draggable>
|
|
37
37
|
|
|
38
|
-
<p v-if="!loading &&
|
|
38
|
+
<p v-if="!loading && itemsList && itemsList.length == 0 && !infiniteScroll" class="p-3">
|
|
39
39
|
{{ messageEmptyResults }}
|
|
40
40
|
</p>
|
|
41
41
|
</div>
|
|
42
42
|
</template>
|
|
43
43
|
|
|
44
44
|
<script>
|
|
45
|
+
import Vue from 'vue';
|
|
45
46
|
import draggable from "vuedraggable";
|
|
46
47
|
import VueMasonry from 'vue-masonry-css';
|
|
47
48
|
import ItemCard from '../ItemCard.vue';
|
|
48
49
|
|
|
50
|
+
// Registrar el componente masonry usando el Plugin
|
|
51
|
+
Vue.use(VueMasonry);
|
|
52
|
+
|
|
49
53
|
export default {
|
|
50
54
|
name: 'CrudCards',
|
|
51
55
|
components: {
|
|
52
56
|
draggable,
|
|
53
|
-
VueMasonry,
|
|
54
57
|
ItemCard
|
|
55
58
|
},
|
|
56
59
|
inject: [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div v-
|
|
2
|
+
<div v-if="displayMode == displayModes.MODE_CUSTOM">
|
|
3
3
|
<div :class="listContainerClass">
|
|
4
|
-
<p v-if="!loading &&
|
|
4
|
+
<p v-if="!loading && itemsList && itemsList.length == 0 && !infiniteScroll" class="p-3">
|
|
5
5
|
{{ messageEmptyResults }}
|
|
6
6
|
</p>
|
|
7
7
|
<div :class="listItemClass" v-for="(item, index) in itemsList" v-bind:key="index">
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<div class="crud-header" v-if="showHeader">
|
|
3
3
|
<h4 class="crud-title" v-if="showTitle">{{ title }}</h4>
|
|
4
4
|
|
|
5
|
-
<b-sidebar
|
|
5
|
+
<b-sidebar :visible="sidebarVisible" @hidden="closeSidebar" title="Filtrar" right shadow>
|
|
6
6
|
<CrudFilters />
|
|
7
7
|
</b-sidebar>
|
|
8
8
|
|
|
@@ -89,7 +89,20 @@ export default {
|
|
|
89
89
|
'confirmBulkDelete',
|
|
90
90
|
'toggleFilters',
|
|
91
91
|
'refresh'
|
|
92
|
-
]
|
|
92
|
+
],
|
|
93
|
+
computed: {
|
|
94
|
+
sidebarVisible() {
|
|
95
|
+
// Acceder directamente al componente padre para obtener reactividad
|
|
96
|
+
return this.$parent ? this.$parent.filterSidebarOpen : this.filterSidebarOpen;
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
methods: {
|
|
100
|
+
closeSidebar() {
|
|
101
|
+
if (this.filterSidebarOpen) {
|
|
102
|
+
this.toggleFilters();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
93
106
|
};
|
|
94
107
|
</script>
|
|
95
108
|
|