vue-laravel-crud 2.0.7 → 2.0.8

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.
@@ -14435,7 +14435,7 @@ var _sfc_staticRenderFns$3 = [];
14435
14435
  var __component__$3 = /*#__PURE__*/normalizeComponent(_sfc_main$3, _sfc_render$3, _sfc_staticRenderFns$3, false, null, null, null, null);
14436
14436
  var CrudCustom = __component__$3.exports;
14437
14437
 
14438
- var css$2 = "\n.export-format-options[data-v-051e3fd7] {\r\n display: flex;\r\n gap: 1rem;\r\n justify-content: center;\r\n flex-wrap: wrap;\n}\n.export-format-radio[data-v-051e3fd7] {\r\n flex: 1;\r\n min-width: 150px;\r\n padding: 1rem;\r\n border: 2px solid #dee2e6;\r\n border-radius: 0.5rem;\r\n cursor: pointer;\r\n transition: all 0.3s ease;\r\n text-align: center;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n background-color: #fff;\n}\n.export-format-radio[data-v-051e3fd7]:hover {\r\n border-color: #007bff;\r\n background-color: #f8f9fa;\r\n transform: translateY(-2px);\r\n box-shadow: 0 2px 8px rgba(0, 123, 255, 0.2);\n}\n.export-format-radio[data-v-051e3fd7] .custom-control-input:checked ~ .custom-control-label {\r\n color: #007bff;\r\n font-weight: 600;\n}\n.export-format-radio[data-v-051e3fd7] .custom-control-input:checked ~ .custom-control-label::before {\r\n border-color: #007bff;\r\n background-color: #007bff;\n}\n.export-format-radio[data-v-051e3fd7] .custom-control-label {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 100%;\r\n cursor: pointer;\r\n font-size: 1rem;\n}\n.export-format-radio[data-v-051e3fd7] .custom-control-label::before {\r\n margin-right: 0.5rem;\n}\n.export-format-radio[data-v-051e3fd7] svg {\r\n font-size: 1.5rem;\r\n color: #495057;\n}\n.export-format-radio[data-v-051e3fd7] .custom-control-input:checked ~ .custom-control-label svg {\r\n color: #007bff;\n}\r\n";
14438
+ var css$2 = "\n.export-format-options[data-v-a032ebce] {\r\n display: flex;\r\n gap: 1rem;\r\n justify-content: center;\r\n flex-wrap: wrap;\n}\n.export-format-radio[data-v-a032ebce] {\r\n flex: 1;\r\n min-width: 150px;\r\n padding: 1rem;\r\n border: 2px solid #dee2e6;\r\n border-radius: 0.5rem;\r\n cursor: pointer;\r\n transition: all 0.3s ease;\r\n text-align: center;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n background-color: #fff;\n}\n.export-format-radio[data-v-a032ebce]:hover {\r\n border-color: #007bff;\r\n background-color: #f8f9fa;\r\n transform: translateY(-2px);\r\n box-shadow: 0 2px 8px rgba(0, 123, 255, 0.2);\n}\n.export-format-radio[data-v-a032ebce] .custom-control-input:checked ~ .custom-control-label {\r\n color: #007bff;\r\n font-weight: 600;\n}\n.export-format-radio[data-v-a032ebce] .custom-control-input:checked ~ .custom-control-label::before {\r\n border-color: #007bff;\r\n background-color: #007bff;\n}\n.export-format-radio[data-v-a032ebce] .custom-control-label {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 100%;\r\n cursor: pointer;\r\n font-size: 1rem;\n}\n.export-format-radio[data-v-a032ebce] .custom-control-label::before {\r\n margin-right: 0.5rem;\n}\n.export-format-radio[data-v-a032ebce] svg {\r\n font-size: 1.5rem;\r\n color: #495057;\n}\n.export-format-radio[data-v-a032ebce] .custom-control-input:checked ~ .custom-control-label svg {\r\n color: #007bff;\n}\r\n";
14439
14439
  n(css$2, {});
14440
14440
 
14441
14441
  const _sfc_main$2 = {
@@ -14450,6 +14450,10 @@ const _sfc_main$2 = {
14450
14450
  }
14451
14451
  // Si no, usar el item inyectado directamente
14452
14452
  return this.item;
14453
+ },
14454
+ // Computed property para manejar loading como objeto reactivo o booleano
14455
+ loadingValue() {
14456
+ return this.loading && this.loading.value !== undefined ? this.loading.value : this.loading;
14453
14457
  }
14454
14458
  },
14455
14459
  watch: {
@@ -14476,7 +14480,7 @@ var _sfc_render$2 = function render() {
14476
14480
  }
14477
14481
  }, [_c('b-overlay', {
14478
14482
  attrs: {
14479
- "show": _vm.loading,
14483
+ "show": _vm.loadingValue,
14480
14484
  "rounded": "sm"
14481
14485
  }
14482
14486
  }, [_vm.validate ? [_c('form', {
@@ -14510,9 +14514,9 @@ var _sfc_render$2 = function render() {
14510
14514
  "block": "",
14511
14515
  "type": "submit",
14512
14516
  "variant": "success",
14513
- "disabled": _vm.loading
14517
+ "disabled": _vm.loadingValue
14514
14518
  }
14515
- }, [_vm.loading ? _c('b-spinner', {
14519
+ }, [_vm.loadingValue ? _c('b-spinner', {
14516
14520
  attrs: {
14517
14521
  "small": ""
14518
14522
  }
@@ -14544,14 +14548,14 @@ var _sfc_render$2 = function render() {
14544
14548
  "block": "",
14545
14549
  "type": "submit",
14546
14550
  "variant": "success",
14547
- "disabled": _vm.loading
14551
+ "disabled": _vm.loadingValue
14548
14552
  },
14549
14553
  on: {
14550
14554
  "click": function ($event) {
14551
14555
  return _vm.saveItem();
14552
14556
  }
14553
14557
  }
14554
- }, [_vm.loading ? _c('b-spinner', {
14558
+ }, [_vm.loadingValue ? _c('b-spinner', {
14555
14559
  attrs: {
14556
14560
  "small": ""
14557
14561
  }
@@ -14591,7 +14595,7 @@ var _sfc_render$2 = function render() {
14591
14595
  }, [_vm.item ? _vm._t("import", function () {
14592
14596
  return [_c('b-overlay', {
14593
14597
  attrs: {
14594
- "show": _vm.loading,
14598
+ "show": _vm.loadingValue,
14595
14599
  "rounded": "sm"
14596
14600
  }
14597
14601
  }, [_c('b-form-file', {
@@ -14613,14 +14617,14 @@ var _sfc_render$2 = function render() {
14613
14617
  }, [_c('b-button', {
14614
14618
  attrs: {
14615
14619
  "variant": "info",
14616
- "disabled": _vm.loading
14620
+ "disabled": _vm.loadingValue
14617
14621
  },
14618
14622
  on: {
14619
14623
  "click": function ($event) {
14620
14624
  return _vm.importItems();
14621
14625
  }
14622
14626
  }
14623
- }, [_c('b-icon-cloud-upload'), _vm._v(" " + _vm._s(_vm.loading ? "Cargando..." : "Importar") + " ")], 1)], 1)], 1)];
14627
+ }, [_c('b-icon-cloud-upload'), _vm._v(" " + _vm._s(_vm.loadingValue ? "Cargando..." : "Importar") + " ")], 1)], 1)], 1)];
14624
14628
  }, {
14625
14629
  "item": _vm.item
14626
14630
  }) : _vm._e()], 2) : _vm._e(), _vm.showExport ? _c('b-modal', {
@@ -14632,7 +14636,7 @@ var _sfc_render$2 = function render() {
14632
14636
  }, [_vm.item ? _vm._t("export", function () {
14633
14637
  return [_c('b-overlay', {
14634
14638
  attrs: {
14635
- "show": _vm.loading,
14639
+ "show": _vm.loadingValue,
14636
14640
  "rounded": "sm"
14637
14641
  }
14638
14642
  }, [_vm.selectedItems.length ? _c('p', [_vm._v("Se exportará " + _vm._s(_vm.selectedItems.length) + " elementos.")]) : _c('p', [_vm._v("Se exportará la consulta actual.")]), _c('b-form-group', {
@@ -14675,20 +14679,20 @@ var _sfc_render$2 = function render() {
14675
14679
  }, [_c('b-button', {
14676
14680
  attrs: {
14677
14681
  "variant": "info",
14678
- "disabled": _vm.loading
14682
+ "disabled": _vm.loadingValue
14679
14683
  },
14680
14684
  on: {
14681
14685
  "click": function ($event) {
14682
14686
  return _vm.exportItems();
14683
14687
  }
14684
14688
  }
14685
- }, [_c('b-icon-cloud-upload'), _vm._v(" " + _vm._s(_vm.loading ? "Cargando..." : "Exportar") + " ")], 1)], 1)], 1)];
14689
+ }, [_c('b-icon-cloud-upload'), _vm._v(" " + _vm._s(_vm.loadingValue ? "Cargando..." : "Exportar") + " ")], 1)], 1)], 1)];
14686
14690
  }, {
14687
14691
  "item": _vm.item
14688
14692
  }) : _vm._e()], 2) : _vm._e()], 1);
14689
14693
  };
14690
14694
  var _sfc_staticRenderFns$2 = [];
14691
- var __component__$2 = /*#__PURE__*/normalizeComponent(_sfc_main$2, _sfc_render$2, _sfc_staticRenderFns$2, false, null, "051e3fd7", null, null);
14695
+ var __component__$2 = /*#__PURE__*/normalizeComponent(_sfc_main$2, _sfc_render$2, _sfc_staticRenderFns$2, false, null, "a032ebce", null, null);
14692
14696
  var CrudModals = __component__$2.exports;
14693
14697
 
14694
14698
  var vueInfiniteLoading = {exports: {}};
@@ -21422,6 +21426,9 @@ var crudHelpers = {
21422
21426
  });
21423
21427
  },
21424
21428
  createItem() {
21429
+ // Asegurar que loading esté en false al abrir el modal
21430
+ this.loading = false;
21431
+
21425
21432
  // Hacer copia profunda del objeto para asegurar reactividad
21426
21433
  const itemCopy = JSON.parse(JSON.stringify(this.itemDefault));
21427
21434
  if (this.useVuexORM && !this.vuexLocalforage) {
@@ -21458,6 +21465,8 @@ var crudHelpers = {
21458
21465
  });
21459
21466
  },
21460
21467
  updateItem(id, itemIndex = null) {
21468
+ // Asegurar que loading esté en false al abrir el modal
21469
+ this.loading = false;
21461
21470
  let item;
21462
21471
  if (itemIndex == null) {
21463
21472
  item = this.items.find(it => it.id == id);