@regcheq/ui-vue-2 1.15.0 → 1.15.2

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/index.css CHANGED
@@ -965,10 +965,6 @@
965
965
  position: relative;
966
966
  display: inline-block;
967
967
  }
968
- .rq-tooltip-wrapper .rq-tooltip--visible {
969
- opacity: 1;
970
- pointer-events: auto;
971
- }
972
968
 
973
969
  .rq-tooltip {
974
970
  z-index: 1051;
@@ -989,6 +985,10 @@
989
985
  pointer-events: none;
990
986
  transition: opacity 100ms ease-out;
991
987
  }
988
+ .rq-tooltip--visible {
989
+ opacity: 1;
990
+ pointer-events: auto;
991
+ }
992
992
  .rq-tooltip--text-left {
993
993
  text-align: left;
994
994
  }
@@ -2259,6 +2259,7 @@ td[data-v-6ca52014],th[data-v-6ca52014]{padding:2px;background-color:#fff}td.tod
2259
2259
  color: #71717a;
2260
2260
  max-width: 480px;
2261
2261
  margin: 0;
2262
+ text-align: center;
2262
2263
  }
2263
2264
  .rq-table__cell-tooltip {
2264
2265
  display: block;
package/dist/index.esm.js CHANGED
@@ -33076,6 +33076,9 @@ var script$l = {
33076
33076
  // (celda de tabla, panel con scroll, drawer) puede recortarlo. Además deja
33077
33077
  // de aportar al área scrolleable del contenedor, que con `absolute`
33078
33078
  // producía scrollbars horizontales aunque el tooltip estuviera oculto.
33079
+ // Ojo: `fixed` se resuelve contra el bloque contenedor, y basta un
33080
+ // ancestro con transform/filter/perspective para volverse uno — por eso
33081
+ // la burbuja se mueve a <body> mientras se muestra (ver portal()).
33079
33082
  style() {
33080
33083
  const base = {
33081
33084
  position: 'fixed'
@@ -33094,9 +33097,15 @@ var script$l = {
33094
33097
  },
33095
33098
  beforeDestroy() {
33096
33099
  this.unbindReposition();
33100
+ // Si se destruye mientras se muestra, la burbuja está colgada de <body>:
33101
+ // devolverla evita dejarla huérfana ahí cuando Vue saque el wrapper.
33102
+ this.unportal();
33097
33103
  },
33098
33104
  methods: {
33099
33105
  show() {
33106
+ this.portal();
33107
+ // Lee layout (getBoundingClientRect), así el navegador aplica el
33108
+ // opacity: 0 inicial antes de que --visible dispare la transición.
33100
33109
  this.updatePosition();
33101
33110
  this.visible = true;
33102
33111
  this.bindReposition();
@@ -33104,6 +33113,25 @@ var script$l = {
33104
33113
  hide() {
33105
33114
  this.visible = false;
33106
33115
  this.unbindReposition();
33116
+ this.unportal();
33117
+ },
33118
+ // `fixed` se resuelve contra el bloque contenedor, no siempre contra el
33119
+ // viewport: cualquier ancestro con transform, filter o perspective se
33120
+ // vuelve uno. .rq-drawer, por ejemplo, anima con translateX, así que un
33121
+ // tooltip dentro de un Drawer aparecía corrido en horizontal tanto como
33122
+ // el drawer estuviera desplazado.
33123
+ // Mover la burbuja a <body> mientras se muestra la deja sin ancestros
33124
+ // que puedan capturarla, y las coordenadas del viewport valen tal cual.
33125
+ // Solo vive ahí mientras se ve: cada tooltip oculto vuelve a su wrapper.
33126
+ portal() {
33127
+ const tip = this.$refs.tooltip;
33128
+ if (!tip || tip.parentNode === document.body) return;
33129
+ document.body.appendChild(tip);
33130
+ },
33131
+ unportal() {
33132
+ const tip = this.$refs.tooltip;
33133
+ if (!tip || tip.parentNode !== document.body) return;
33134
+ this.$el.appendChild(tip);
33107
33135
  },
33108
33136
  // Al estar fijo al viewport, el tooltip no sigue al trigger cuando la
33109
33137
  // página o un contenedor interno scrollea: se recalcula mientras se ve.
@@ -33217,6 +33245,22 @@ const groupMixin = {
33217
33245
  default: false
33218
33246
  }
33219
33247
  },
33248
+ computed: {
33249
+ // `change` se saca de los listeners que se reenvían a la raíz, igual que
33250
+ // en el atom Checkbox. Estos grupos emiten 'change' Y montan un control
33251
+ // que dispara un 'change' nativo del DOM: ese evento burbujea hasta la
33252
+ // raíz y, si el listener del consumidor sigue enganchado ahí, se ejecuta
33253
+ // dos veces por un solo click (una con el booleano del componente, otra
33254
+ // con el Event nativo). En un consumidor que togglea, los dos disparos se
33255
+ // anulan: el control no cambia de estado pero la acción corre igual.
33256
+ listenersWithoutChange() {
33257
+ const {
33258
+ change,
33259
+ ...rest
33260
+ } = this.$listeners;
33261
+ return rest;
33262
+ }
33263
+ },
33220
33264
  methods: {
33221
33265
  handleClick() {
33222
33266
  if (!this.disabled) this.$emit('change', !this.checked);
@@ -33285,7 +33329,7 @@ var __vue_render__$k = function () {
33285
33329
  on: {
33286
33330
  click: _vm.handleClick
33287
33331
  }
33288
- }, _vm.$listeners), [_c("Checkbox", {
33332
+ }, _vm.listenersWithoutChange), [_c("Checkbox", {
33289
33333
  attrs: {
33290
33334
  checked: _vm.checked,
33291
33335
  disabled: _vm.disabled
@@ -33398,7 +33442,7 @@ var __vue_render__$j = function () {
33398
33442
  on: {
33399
33443
  click: _vm.handleClick
33400
33444
  }
33401
- }, _vm.$listeners), [_c("Checkbox", {
33445
+ }, _vm.listenersWithoutChange), [_c("Checkbox", {
33402
33446
  attrs: {
33403
33447
  checked: _vm.checked,
33404
33448
  disabled: _vm.disabled
@@ -33513,7 +33557,7 @@ var __vue_render__$i = function () {
33513
33557
  on: {
33514
33558
  click: _vm.handleClick
33515
33559
  }
33516
- }, _vm.$listeners), [_c("RqSwitch", {
33560
+ }, _vm.listenersWithoutChange), [_c("RqSwitch", {
33517
33561
  attrs: {
33518
33562
  checked: _vm.checked,
33519
33563
  disabled: _vm.disabled
@@ -33618,7 +33662,7 @@ var __vue_render__$h = function () {
33618
33662
  on: {
33619
33663
  click: _vm.handleClick
33620
33664
  }
33621
- }, _vm.$listeners), [_c("div", {
33665
+ }, _vm.listenersWithoutChange), [_c("div", {
33622
33666
  staticClass: "rq-rich-switch-group__aligner"
33623
33667
  }, [_c("RqSwitch", {
33624
33668
  attrs: {
@@ -34586,6 +34630,13 @@ const selectionBarVariants = cva('rq-selection-bar', {
34586
34630
  //
34587
34631
  //
34588
34632
  //
34633
+ //
34634
+ //
34635
+ //
34636
+ //
34637
+ //
34638
+ //
34639
+ //
34589
34640
 
34590
34641
  var script$b = {
34591
34642
  name: 'SelectionBar',
@@ -34608,6 +34659,10 @@ var script$b = {
34608
34659
  clearLabel: {
34609
34660
  type: String,
34610
34661
  default: 'Limpiar selección'
34662
+ },
34663
+ loading: {
34664
+ type: Boolean,
34665
+ default: false
34611
34666
  }
34612
34667
  },
34613
34668
  computed: {
@@ -34648,7 +34703,9 @@ var __vue_render__$b = function () {
34648
34703
  attrs: {
34649
34704
  variant: "secondary",
34650
34705
  size: "md",
34651
- "icon-right": "Trash2"
34706
+ "icon-right": "Trash2",
34707
+ loading: _vm.loading,
34708
+ disabled: _vm.loading
34652
34709
  },
34653
34710
  on: {
34654
34711
  click: function ($event) {
@@ -39815,6 +39872,8 @@ const dataTableVariants = cva('rq-data-table', {
39815
39872
  //
39816
39873
  //
39817
39874
  //
39875
+ //
39876
+ //
39818
39877
 
39819
39878
  var script$3 = {
39820
39879
  name: 'DataTable',
@@ -39882,6 +39941,10 @@ var script$3 = {
39882
39941
  type: String,
39883
39942
  default: null
39884
39943
  },
39944
+ deleteLoading: {
39945
+ type: Boolean,
39946
+ default: false
39947
+ },
39885
39948
  texts: {
39886
39949
  type: Object,
39887
39950
  default: () => ({})
@@ -39942,6 +40005,7 @@ var script$3 = {
39942
40005
  },
39943
40006
  mergedTexts() {
39944
40007
  return {
40008
+ searchPlaceholder: 'Buscar...',
39945
40009
  selectedCount: '{count} registros seleccionados',
39946
40010
  clearSelection: 'Limpiar selección',
39947
40011
  delete: 'Eliminar',
@@ -39986,7 +40050,8 @@ var __vue_render__$3 = function () {
39986
40050
  }, [_vm.showSearch ? _c("SearchInput", {
39987
40051
  staticClass: "rq-data-table__search-bar",
39988
40052
  attrs: {
39989
- value: _vm.searchText
40053
+ value: _vm.searchText,
40054
+ placeholder: _vm.mergedTexts.searchPlaceholder
39990
40055
  },
39991
40056
  on: {
39992
40057
  input: function ($event) {
@@ -40005,7 +40070,8 @@ var __vue_render__$3 = function () {
40005
40070
  count: _vm.selectedCount,
40006
40071
  "delete-label": _vm.deleteLabel || _vm.mergedTexts.delete,
40007
40072
  "selected-count-text": _vm.mergedTexts.selectedCount,
40008
- "clear-label": _vm.mergedTexts.clearSelection
40073
+ "clear-label": _vm.mergedTexts.clearSelection,
40074
+ loading: _vm.deleteLoading
40009
40075
  },
40010
40076
  on: {
40011
40077
  clear: _vm.onClearSelection,
package/dist/index.js CHANGED
@@ -33078,6 +33078,9 @@ var script$l = {
33078
33078
  // (celda de tabla, panel con scroll, drawer) puede recortarlo. Además deja
33079
33079
  // de aportar al área scrolleable del contenedor, que con `absolute`
33080
33080
  // producía scrollbars horizontales aunque el tooltip estuviera oculto.
33081
+ // Ojo: `fixed` se resuelve contra el bloque contenedor, y basta un
33082
+ // ancestro con transform/filter/perspective para volverse uno — por eso
33083
+ // la burbuja se mueve a <body> mientras se muestra (ver portal()).
33081
33084
  style() {
33082
33085
  const base = {
33083
33086
  position: 'fixed'
@@ -33096,9 +33099,15 @@ var script$l = {
33096
33099
  },
33097
33100
  beforeDestroy() {
33098
33101
  this.unbindReposition();
33102
+ // Si se destruye mientras se muestra, la burbuja está colgada de <body>:
33103
+ // devolverla evita dejarla huérfana ahí cuando Vue saque el wrapper.
33104
+ this.unportal();
33099
33105
  },
33100
33106
  methods: {
33101
33107
  show() {
33108
+ this.portal();
33109
+ // Lee layout (getBoundingClientRect), así el navegador aplica el
33110
+ // opacity: 0 inicial antes de que --visible dispare la transición.
33102
33111
  this.updatePosition();
33103
33112
  this.visible = true;
33104
33113
  this.bindReposition();
@@ -33106,6 +33115,25 @@ var script$l = {
33106
33115
  hide() {
33107
33116
  this.visible = false;
33108
33117
  this.unbindReposition();
33118
+ this.unportal();
33119
+ },
33120
+ // `fixed` se resuelve contra el bloque contenedor, no siempre contra el
33121
+ // viewport: cualquier ancestro con transform, filter o perspective se
33122
+ // vuelve uno. .rq-drawer, por ejemplo, anima con translateX, así que un
33123
+ // tooltip dentro de un Drawer aparecía corrido en horizontal tanto como
33124
+ // el drawer estuviera desplazado.
33125
+ // Mover la burbuja a <body> mientras se muestra la deja sin ancestros
33126
+ // que puedan capturarla, y las coordenadas del viewport valen tal cual.
33127
+ // Solo vive ahí mientras se ve: cada tooltip oculto vuelve a su wrapper.
33128
+ portal() {
33129
+ const tip = this.$refs.tooltip;
33130
+ if (!tip || tip.parentNode === document.body) return;
33131
+ document.body.appendChild(tip);
33132
+ },
33133
+ unportal() {
33134
+ const tip = this.$refs.tooltip;
33135
+ if (!tip || tip.parentNode !== document.body) return;
33136
+ this.$el.appendChild(tip);
33109
33137
  },
33110
33138
  // Al estar fijo al viewport, el tooltip no sigue al trigger cuando la
33111
33139
  // página o un contenedor interno scrollea: se recalcula mientras se ve.
@@ -33219,6 +33247,22 @@ const groupMixin = {
33219
33247
  default: false
33220
33248
  }
33221
33249
  },
33250
+ computed: {
33251
+ // `change` se saca de los listeners que se reenvían a la raíz, igual que
33252
+ // en el atom Checkbox. Estos grupos emiten 'change' Y montan un control
33253
+ // que dispara un 'change' nativo del DOM: ese evento burbujea hasta la
33254
+ // raíz y, si el listener del consumidor sigue enganchado ahí, se ejecuta
33255
+ // dos veces por un solo click (una con el booleano del componente, otra
33256
+ // con el Event nativo). En un consumidor que togglea, los dos disparos se
33257
+ // anulan: el control no cambia de estado pero la acción corre igual.
33258
+ listenersWithoutChange() {
33259
+ const {
33260
+ change,
33261
+ ...rest
33262
+ } = this.$listeners;
33263
+ return rest;
33264
+ }
33265
+ },
33222
33266
  methods: {
33223
33267
  handleClick() {
33224
33268
  if (!this.disabled) this.$emit('change', !this.checked);
@@ -33287,7 +33331,7 @@ var __vue_render__$k = function () {
33287
33331
  on: {
33288
33332
  click: _vm.handleClick
33289
33333
  }
33290
- }, _vm.$listeners), [_c("Checkbox", {
33334
+ }, _vm.listenersWithoutChange), [_c("Checkbox", {
33291
33335
  attrs: {
33292
33336
  checked: _vm.checked,
33293
33337
  disabled: _vm.disabled
@@ -33400,7 +33444,7 @@ var __vue_render__$j = function () {
33400
33444
  on: {
33401
33445
  click: _vm.handleClick
33402
33446
  }
33403
- }, _vm.$listeners), [_c("Checkbox", {
33447
+ }, _vm.listenersWithoutChange), [_c("Checkbox", {
33404
33448
  attrs: {
33405
33449
  checked: _vm.checked,
33406
33450
  disabled: _vm.disabled
@@ -33515,7 +33559,7 @@ var __vue_render__$i = function () {
33515
33559
  on: {
33516
33560
  click: _vm.handleClick
33517
33561
  }
33518
- }, _vm.$listeners), [_c("RqSwitch", {
33562
+ }, _vm.listenersWithoutChange), [_c("RqSwitch", {
33519
33563
  attrs: {
33520
33564
  checked: _vm.checked,
33521
33565
  disabled: _vm.disabled
@@ -33620,7 +33664,7 @@ var __vue_render__$h = function () {
33620
33664
  on: {
33621
33665
  click: _vm.handleClick
33622
33666
  }
33623
- }, _vm.$listeners), [_c("div", {
33667
+ }, _vm.listenersWithoutChange), [_c("div", {
33624
33668
  staticClass: "rq-rich-switch-group__aligner"
33625
33669
  }, [_c("RqSwitch", {
33626
33670
  attrs: {
@@ -34588,6 +34632,13 @@ const selectionBarVariants = cva('rq-selection-bar', {
34588
34632
  //
34589
34633
  //
34590
34634
  //
34635
+ //
34636
+ //
34637
+ //
34638
+ //
34639
+ //
34640
+ //
34641
+ //
34591
34642
 
34592
34643
  var script$b = {
34593
34644
  name: 'SelectionBar',
@@ -34610,6 +34661,10 @@ var script$b = {
34610
34661
  clearLabel: {
34611
34662
  type: String,
34612
34663
  default: 'Limpiar selección'
34664
+ },
34665
+ loading: {
34666
+ type: Boolean,
34667
+ default: false
34613
34668
  }
34614
34669
  },
34615
34670
  computed: {
@@ -34650,7 +34705,9 @@ var __vue_render__$b = function () {
34650
34705
  attrs: {
34651
34706
  variant: "secondary",
34652
34707
  size: "md",
34653
- "icon-right": "Trash2"
34708
+ "icon-right": "Trash2",
34709
+ loading: _vm.loading,
34710
+ disabled: _vm.loading
34654
34711
  },
34655
34712
  on: {
34656
34713
  click: function ($event) {
@@ -39817,6 +39874,8 @@ const dataTableVariants = cva('rq-data-table', {
39817
39874
  //
39818
39875
  //
39819
39876
  //
39877
+ //
39878
+ //
39820
39879
 
39821
39880
  var script$3 = {
39822
39881
  name: 'DataTable',
@@ -39884,6 +39943,10 @@ var script$3 = {
39884
39943
  type: String,
39885
39944
  default: null
39886
39945
  },
39946
+ deleteLoading: {
39947
+ type: Boolean,
39948
+ default: false
39949
+ },
39887
39950
  texts: {
39888
39951
  type: Object,
39889
39952
  default: () => ({})
@@ -39944,6 +40007,7 @@ var script$3 = {
39944
40007
  },
39945
40008
  mergedTexts() {
39946
40009
  return {
40010
+ searchPlaceholder: 'Buscar...',
39947
40011
  selectedCount: '{count} registros seleccionados',
39948
40012
  clearSelection: 'Limpiar selección',
39949
40013
  delete: 'Eliminar',
@@ -39988,7 +40052,8 @@ var __vue_render__$3 = function () {
39988
40052
  }, [_vm.showSearch ? _c("SearchInput", {
39989
40053
  staticClass: "rq-data-table__search-bar",
39990
40054
  attrs: {
39991
- value: _vm.searchText
40055
+ value: _vm.searchText,
40056
+ placeholder: _vm.mergedTexts.searchPlaceholder
39992
40057
  },
39993
40058
  on: {
39994
40059
  input: function ($event) {
@@ -40007,7 +40072,8 @@ var __vue_render__$3 = function () {
40007
40072
  count: _vm.selectedCount,
40008
40073
  "delete-label": _vm.deleteLabel || _vm.mergedTexts.delete,
40009
40074
  "selected-count-text": _vm.mergedTexts.selectedCount,
40010
- "clear-label": _vm.mergedTexts.clearSelection
40075
+ "clear-label": _vm.mergedTexts.clearSelection,
40076
+ loading: _vm.deleteLoading
40011
40077
  },
40012
40078
  on: {
40013
40079
  clear: _vm.onClearSelection,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@regcheq/ui-vue-2",
3
- "version": "1.15.0",
3
+ "version": "1.15.2",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.esm.js",
6
6
  "files": [