@zeedhi/vuetify 1.100.2 → 1.101.0

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.
@@ -39461,13 +39461,33 @@ let ZdCarousel = class ZdCarousel extends ZdComponentRender$1 {
39461
39461
  if (this.instance.fillHeight) {
39462
39462
  setFillHeight(this.$el);
39463
39463
  }
39464
+ this.setViewUpdate();
39465
+ this.addResizeObserver();
39466
+ }
39467
+ destroyed() {
39468
+ this.removeObserver();
39469
+ }
39470
+ /**
39471
+ * addResizeObserver
39472
+ */
39473
+ addResizeObserver() {
39474
+ this.resizeObserver = new ResizeObserver(() => {
39475
+ this.carousel.update();
39476
+ });
39477
+ this.resizeObserver.observe(this.carousel.$el);
39478
+ }
39479
+ /**
39480
+ * removeObserver
39481
+ */
39482
+ removeObserver() {
39483
+ this.resizeObserver.disconnect();
39484
+ }
39485
+ setViewUpdate() {
39486
+ this.instance.setViewUpdate(this.carousel.update);
39464
39487
  }
39465
39488
  get paginationMode() {
39466
39489
  return this.instance.fractionPagination ? 'fraction' : undefined;
39467
39490
  }
39468
- forceRerender() {
39469
- this.hooperKey += 1;
39470
- }
39471
39491
  beforeSlide(slideData) {
39472
39492
  this.instance.beforeSlide(this.$el, slideData, this.lastEvent);
39473
39493
  this.$emit('beforeSlide', this.lastEvent);
@@ -39489,16 +39509,6 @@ let ZdCarousel = class ZdCarousel extends ZdComponentRender$1 {
39489
39509
  this.carousel.slideTo(newVal);
39490
39510
  }
39491
39511
  }
39492
- /**
39493
- * If children changes, rerender hooper carousel
39494
- * @param _newVal new children object value
39495
- * @param oldVal old children object value
39496
- */
39497
- update(_newVal, oldVal) {
39498
- if (oldVal) {
39499
- this.forceRerender();
39500
- }
39501
- }
39502
39512
  /**
39503
39513
  * If carousel becomes visible, restart hooper slides
39504
39514
  * @param newVal new children object value
@@ -39659,12 +39669,6 @@ __decorate([
39659
39669
  __metadata("design:paramtypes", [Number]),
39660
39670
  __metadata("design:returntype", void 0)
39661
39671
  ], ZdCarousel.prototype, "changeCurrentSlide", null);
39662
- __decorate([
39663
- Watch('instance.children', { deep: true }),
39664
- __metadata("design:type", Function),
39665
- __metadata("design:paramtypes", [Array, Array]),
39666
- __metadata("design:returntype", void 0)
39667
- ], ZdCarousel.prototype, "update", null);
39668
39672
  __decorate([
39669
39673
  Watch('instance.isVisible'),
39670
39674
  __metadata("design:type", Function),
@@ -39731,7 +39735,6 @@ var __vue_render__$1u = function () {
39731
39735
  _c(
39732
39736
  "hooper",
39733
39737
  {
39734
- key: _vm.hooperKey,
39735
39738
  ref: "carousel",
39736
39739
  style: {
39737
39740
  height: "100%",
@@ -39813,7 +39816,7 @@ var __vue_render__$1u = function () {
39813
39816
  _c(
39814
39817
  item.component,
39815
39818
  _vm._b(
39816
- { tag: "component" },
39819
+ { key: item.name, tag: "component" },
39817
39820
  "component",
39818
39821
  item,
39819
39822
  false
@@ -39996,7 +39999,7 @@ __vue_render__$1u._withStripped = true;
39996
39999
  /* style */
39997
40000
  const __vue_inject_styles__$1u = function (inject) {
39998
40001
  if (!inject) return
39999
- inject("data-v-6fdfda82_0", { source: ".zd-carousel {\n height: 100%;\n}\n.zd-carousel section.hooper {\n outline: none;\n}\n.zd-carousel section.hooper * {\n outline: none;\n}\n.zd-carousel section.hooper .hooper-list .hooper-slide {\n align-self: center;\n}\n.zd-carousel section.hooper .hooper-list .hooper-slide > .row {\n height: 100%;\n align-items: center;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination {\n padding: 0;\n width: 100%;\n height: 50px;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination .hooper-indicators {\n margin: 0 auto;\n display: block;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination .hooper-indicators li {\n display: inline-block;\n margin: 0 var(--spacing-2);\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination .hooper-indicators li .hooper-indicator {\n width: 18px;\n height: 18px;\n border-radius: 50%;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.show-background {\n background: rgba(0, 0, 0, 0.3);\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--light .hooper-indicator {\n opacity: 0.25;\n background-color: black;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--light .hooper-indicator.is-active {\n opacity: 0.6;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--light .hooper-indicator:hover:not(.is-active) {\n opacity: 0.4;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--dark {\n color: white;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--dark .hooper-indicator {\n opacity: 0.5;\n background-color: white;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--dark .hooper-indicator.is-active {\n opacity: 0.8;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--dark .hooper-indicator:hover:not(.is-active) {\n opacity: 0.6;\n}\n.zd-carousel section.hooper .hooper-list button.hooper-prev {\n padding: 0;\n}\n.zd-carousel section.hooper .hooper-list button.hooper-next {\n padding: 0;\n}\n.zd-carousel section.hooper .hooper-list .prev-button, .zd-carousel section.hooper .hooper-list .next-button {\n transition: 0.1s;\n}\n.zd-carousel section.hooper .hooper-list ul.hooper-track, .zd-carousel section.hooper .hooper-list ol.hooper-indicators {\n padding-left: 0;\n}\n.zd-carousel section.hooper .hooper-list .hooper-progress-inner {\n background-color: var(--v-primary-base);\n}\n.zd-carousel.buttons-outside section.hooper {\n width: calc(100% - 2 * var(--spacing-8));\n margin-left: var(--spacing-8);\n}\n.zd-carousel.buttons-outside section.hooper .hooper-list .hooper-navigation button.hooper-prev {\n left: calc(-1 * var(--spacing-8));\n}\n.zd-carousel.buttons-outside section.hooper .hooper-list .hooper-navigation button.hooper-next {\n right: calc(-1 * var(--spacing-8));\n}", map: undefined, media: undefined });
40002
+ inject("data-v-302f5b51_0", { source: ".zd-carousel {\n height: 100%;\n}\n.zd-carousel section.hooper {\n outline: none;\n}\n.zd-carousel section.hooper * {\n outline: none;\n}\n.zd-carousel section.hooper .hooper-list .hooper-slide {\n align-self: center;\n}\n.zd-carousel section.hooper .hooper-list .hooper-slide > .row {\n height: 100%;\n align-items: center;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination {\n padding: 0;\n width: 100%;\n height: 50px;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination .hooper-indicators {\n margin: 0 auto;\n display: block;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination .hooper-indicators li {\n display: inline-block;\n margin: 0 var(--spacing-2);\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination .hooper-indicators li .hooper-indicator {\n width: 18px;\n height: 18px;\n border-radius: 50%;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.show-background {\n background: rgba(0, 0, 0, 0.3);\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--light .hooper-indicator {\n opacity: 0.25;\n background-color: black;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--light .hooper-indicator.is-active {\n opacity: 0.6;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--light .hooper-indicator:hover:not(.is-active) {\n opacity: 0.4;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--dark {\n color: white;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--dark .hooper-indicator {\n opacity: 0.5;\n background-color: white;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--dark .hooper-indicator.is-active {\n opacity: 0.8;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--dark .hooper-indicator:hover:not(.is-active) {\n opacity: 0.6;\n}\n.zd-carousel section.hooper .hooper-list button.hooper-prev {\n padding: 0;\n}\n.zd-carousel section.hooper .hooper-list button.hooper-next {\n padding: 0;\n}\n.zd-carousel section.hooper .hooper-list .prev-button, .zd-carousel section.hooper .hooper-list .next-button {\n transition: 0.1s;\n}\n.zd-carousel section.hooper .hooper-list ul.hooper-track, .zd-carousel section.hooper .hooper-list ol.hooper-indicators {\n padding-left: 0;\n}\n.zd-carousel section.hooper .hooper-list .hooper-progress-inner {\n background-color: var(--v-primary-base);\n}\n.zd-carousel.buttons-outside section.hooper {\n width: calc(100% - 2 * var(--spacing-8));\n margin-left: var(--spacing-8);\n}\n.zd-carousel.buttons-outside section.hooper .hooper-list .hooper-navigation button.hooper-prev {\n left: calc(-1 * var(--spacing-8));\n}\n.zd-carousel.buttons-outside section.hooper .hooper-list .hooper-navigation button.hooper-next {\n right: calc(-1 * var(--spacing-8));\n}", map: undefined, media: undefined });
40000
40003
 
40001
40004
  };
40002
40005
  /* scoped */
@@ -45540,7 +45543,9 @@ let ZdIterable = class ZdIterable extends ZdComponentRender$1 {
45540
45543
  }
45541
45544
  }
45542
45545
  changeData(data) {
45543
- this.instance.changeData(data);
45546
+ setTimeout(() => {
45547
+ this.instance.changeData(data);
45548
+ });
45544
45549
  }
45545
45550
  rowKey(item) {
45546
45551
  return item[this.instance.datasource.uniqueKey];
@@ -46042,6 +46047,36 @@ let ZdGrid = class ZdGrid extends ZdIterable$1 {
46042
46047
  if (this.instance.fillHeight) {
46043
46048
  setFillHeight(this.$el);
46044
46049
  }
46050
+ this.registerTrObserver();
46051
+ }
46052
+ /**
46053
+ * Register a mutation observer for the table TR
46054
+ * this observer should call updateFixedColumns whenever the
46055
+ * number of columns inside the table changes \
46056
+ * This also takes into account columns that gets hidden via isVisible
46057
+ */
46058
+ registerTrObserver() {
46059
+ const table = this.$el.querySelector('table');
46060
+ if (!table)
46061
+ return;
46062
+ const targetRow = table.querySelector('tr');
46063
+ if (!targetRow)
46064
+ return;
46065
+ this.observer = new MutationObserver((mutations) => {
46066
+ mutations.forEach((mutation) => {
46067
+ if (mutation.type === 'childList'
46068
+ && mutation.target instanceof Element
46069
+ && mutation.target.tagName === 'TR') {
46070
+ this.updateFixedColumns();
46071
+ }
46072
+ });
46073
+ });
46074
+ this.observer.observe(targetRow, {
46075
+ childList: true,
46076
+ });
46077
+ }
46078
+ beforeDestroy() {
46079
+ this.observer.disconnect();
46045
46080
  }
46046
46081
  setViewGetWidth() {
46047
46082
  this.instance.columns.forEach((column) => {
@@ -47409,6 +47444,10 @@ __decorate([
47409
47444
  PropWatch({ type: [Boolean, String], default: false }),
47410
47445
  __metadata("design:type", Object)
47411
47446
  ], ZdGridEditable.prototype, "singleEdit", void 0);
47447
+ __decorate([
47448
+ PropWatch({ type: [Boolean, String], default: false }),
47449
+ __metadata("design:type", Object)
47450
+ ], ZdGridEditable.prototype, "showCancelColumn", void 0);
47412
47451
  ZdGridEditable = __decorate([
47413
47452
  Component$2({
47414
47453
  mixins: [EditableMixin$1, NavigableTableMixin$1],
@@ -48997,7 +49036,7 @@ __vue_render__$12._withStripped = true;
48997
49036
  /* style */
48998
49037
  const __vue_inject_styles__$12 = function (inject) {
48999
49038
  if (!inject) return
49000
- inject("data-v-eec1bcda_0", { source: "\n.zd-grid-action {\n height: 100%;\n display: flex;\n}\n", map: undefined, media: undefined });
49039
+ inject("data-v-05e1c745_0", { source: "\n.zd-grid-action {\n height: 100%;\n display: flex;\n align-items: center;\n}\n", map: undefined, media: undefined });
49001
49040
 
49002
49041
  };
49003
49042
  /* scoped */
@@ -54375,6 +54414,7 @@ let ZdMenu = class ZdMenu extends ZdComponentRender$1 {
54375
54414
  showHelper: false,
54376
54415
  showLabel: false,
54377
54416
  placeholder: 'SEARCH',
54417
+ autofill: false,
54378
54418
  appendIcon: 'magnify',
54379
54419
  events: {
54380
54420
  input: debounce$1(this.doSearch, 500),
@@ -55338,7 +55378,40 @@ let ZdModal = class ZdModal extends ZdComponent$1 {
55338
55378
  const el = (Array.isArray(ref) ? ref[0].$el : ref === null || ref === void 0 ? void 0 : ref.$el);
55339
55379
  return el || null;
55340
55380
  }
55381
+ /**
55382
+ * Register all modal event listeners
55383
+ */
55384
+ registerEvents(modal) {
55385
+ this.registerTransitionEvents(modal);
55386
+ this.registerDragEvents(modal);
55387
+ }
55388
+ registerTransitionEvents(modal) {
55389
+ const el = this.getModalEl(modal);
55390
+ if (!el || !el.parentElement)
55391
+ return;
55392
+ el.parentElement.addEventListener('transitionstart', (event) => {
55393
+ // prevent triggering when the event is being propagated from a child element
55394
+ if (event.target !== el.parentElement)
55395
+ return;
55396
+ modal.transitionStart(event);
55397
+ });
55398
+ el.parentElement.addEventListener('transitionend', (event) => {
55399
+ // prevent triggering when the event is being propagated from a child element
55400
+ if (event.target !== el.parentElement)
55401
+ return;
55402
+ modal.transitionEnd(event);
55403
+ });
55404
+ }
55405
+ /**
55406
+ * Unregister all modal event listeners
55407
+ */
55408
+ unregisterEvents(modal) {
55409
+ this.unregisterDragEvents(modal);
55410
+ this.unregisterTransitionEvents(modal);
55411
+ }
55341
55412
  registerDragEvents(modal) {
55413
+ if (!modal.draggable)
55414
+ return;
55342
55415
  const el = this.getModalEl(modal);
55343
55416
  if (!el)
55344
55417
  return;
@@ -55353,6 +55426,13 @@ let ZdModal = class ZdModal extends ZdComponent$1 {
55353
55426
  this.dragHandle.addEventListener('mousedown', this.dragStart.bind(this, modal));
55354
55427
  this.dragHandle.addEventListener('touchstart', this.dragStart.bind(this, modal), { passive: false });
55355
55428
  }
55429
+ unregisterTransitionEvents(modal) {
55430
+ const el = this.getModalEl(modal);
55431
+ if (!el || !el.parentElement)
55432
+ return;
55433
+ el.parentElement.removeEventListener('transitionstart', modal.transitionStart);
55434
+ el.parentElement.removeEventListener('transitionend', modal.transitionEnd);
55435
+ }
55356
55436
  unregisterDragEvents(modal) {
55357
55437
  if (!this.dragHandle)
55358
55438
  return;
@@ -55530,10 +55610,10 @@ var __vue_render__$u = function () {
55530
55610
  style: modal.cssStyle,
55531
55611
  on: {
55532
55612
  "hook:mounted": function ($event) {
55533
- modal.draggable && _vm.registerDragEvents(modal);
55613
+ return _vm.registerEvents(modal)
55534
55614
  },
55535
55615
  "hook:destroyed": function ($event) {
55536
- return _vm.unregisterDragEvents(modal)
55616
+ return _vm.unregisterEvents(modal)
55537
55617
  },
55538
55618
  },
55539
55619
  },
@@ -55597,7 +55677,7 @@ __vue_render__$u._withStripped = true;
55597
55677
  /* style */
55598
55678
  const __vue_inject_styles__$u = function (inject) {
55599
55679
  if (!inject) return
55600
- inject("data-v-12867ee3_0", { source: ".zd-modal-title {\n padding-bottom: 0px;\n}\n.zd-modal-container {\n padding: 0;\n cursor: default;\n}\n.zd-modal-flex {\n width: 100%;\n}\n.zd-modal-draggable {\n position: relative;\n}\n.zd-modal-draggable-handle {\n cursor: grab;\n cursor: -moz-grab;\n cursor: -webkit-grab;\n}\n.zd-modal-draggable-handle:active {\n cursor: grabbing;\n cursor: -moz-grabbing;\n cursor: -webkit-grabbing;\n}\n.zd-modal-content > .zd-modal-card > .zd-modal-title {\n padding: var(--zd-default-padding);\n padding-bottom: 0px;\n font-size: var(--zd-font-title-size);\n font-weight: var(--zd-font-title-weight);\n color: var(--zd-font-color);\n}\n.zd-modal-content > .zd-modal-card > .zd-modal-card-text {\n padding: var(--zd-default-padding);\n display: flex;\n flex: 1 1 auto;\n}", map: undefined, media: undefined });
55680
+ inject("data-v-3de0e7d7_0", { source: ".zd-modal-title {\n padding-bottom: 0px;\n}\n.zd-modal-container {\n padding: 0;\n cursor: default;\n}\n.zd-modal-flex {\n width: 100%;\n}\n.zd-modal-draggable {\n position: relative;\n}\n.zd-modal-draggable-handle {\n cursor: grab;\n cursor: -moz-grab;\n cursor: -webkit-grab;\n}\n.zd-modal-draggable-handle:active {\n cursor: grabbing;\n cursor: -moz-grabbing;\n cursor: -webkit-grabbing;\n}\n.zd-modal-content > .zd-modal-card > .zd-modal-title {\n padding: var(--zd-default-padding);\n padding-bottom: 0px;\n font-size: var(--zd-font-title-size);\n font-weight: var(--zd-font-title-weight);\n color: var(--zd-font-color);\n}\n.zd-modal-content > .zd-modal-card > .zd-modal-card-text {\n padding: var(--zd-default-padding);\n display: flex;\n flex: 1 1 auto;\n}", map: undefined, media: undefined });
55601
55681
 
55602
55682
  };
55603
55683
  /* scoped */
@@ -39460,13 +39460,33 @@ If you're seeing "$attrs is readonly", it's caused by this`);
39460
39460
  if (this.instance.fillHeight) {
39461
39461
  setFillHeight(this.$el);
39462
39462
  }
39463
+ this.setViewUpdate();
39464
+ this.addResizeObserver();
39465
+ }
39466
+ destroyed() {
39467
+ this.removeObserver();
39468
+ }
39469
+ /**
39470
+ * addResizeObserver
39471
+ */
39472
+ addResizeObserver() {
39473
+ this.resizeObserver = new ResizeObserver(() => {
39474
+ this.carousel.update();
39475
+ });
39476
+ this.resizeObserver.observe(this.carousel.$el);
39477
+ }
39478
+ /**
39479
+ * removeObserver
39480
+ */
39481
+ removeObserver() {
39482
+ this.resizeObserver.disconnect();
39483
+ }
39484
+ setViewUpdate() {
39485
+ this.instance.setViewUpdate(this.carousel.update);
39463
39486
  }
39464
39487
  get paginationMode() {
39465
39488
  return this.instance.fractionPagination ? 'fraction' : undefined;
39466
39489
  }
39467
- forceRerender() {
39468
- this.hooperKey += 1;
39469
- }
39470
39490
  beforeSlide(slideData) {
39471
39491
  this.instance.beforeSlide(this.$el, slideData, this.lastEvent);
39472
39492
  this.$emit('beforeSlide', this.lastEvent);
@@ -39488,16 +39508,6 @@ If you're seeing "$attrs is readonly", it's caused by this`);
39488
39508
  this.carousel.slideTo(newVal);
39489
39509
  }
39490
39510
  }
39491
- /**
39492
- * If children changes, rerender hooper carousel
39493
- * @param _newVal new children object value
39494
- * @param oldVal old children object value
39495
- */
39496
- update(_newVal, oldVal) {
39497
- if (oldVal) {
39498
- this.forceRerender();
39499
- }
39500
- }
39501
39511
  /**
39502
39512
  * If carousel becomes visible, restart hooper slides
39503
39513
  * @param newVal new children object value
@@ -39658,12 +39668,6 @@ If you're seeing "$attrs is readonly", it's caused by this`);
39658
39668
  __metadata("design:paramtypes", [Number]),
39659
39669
  __metadata("design:returntype", void 0)
39660
39670
  ], ZdCarousel.prototype, "changeCurrentSlide", null);
39661
- __decorate([
39662
- vuePropertyDecorator.Watch('instance.children', { deep: true }),
39663
- __metadata("design:type", Function),
39664
- __metadata("design:paramtypes", [Array, Array]),
39665
- __metadata("design:returntype", void 0)
39666
- ], ZdCarousel.prototype, "update", null);
39667
39671
  __decorate([
39668
39672
  vuePropertyDecorator.Watch('instance.isVisible'),
39669
39673
  __metadata("design:type", Function),
@@ -39730,7 +39734,6 @@ If you're seeing "$attrs is readonly", it's caused by this`);
39730
39734
  _c(
39731
39735
  "hooper",
39732
39736
  {
39733
- key: _vm.hooperKey,
39734
39737
  ref: "carousel",
39735
39738
  style: {
39736
39739
  height: "100%",
@@ -39812,7 +39815,7 @@ If you're seeing "$attrs is readonly", it's caused by this`);
39812
39815
  _c(
39813
39816
  item.component,
39814
39817
  _vm._b(
39815
- { tag: "component" },
39818
+ { key: item.name, tag: "component" },
39816
39819
  "component",
39817
39820
  item,
39818
39821
  false
@@ -39995,7 +39998,7 @@ If you're seeing "$attrs is readonly", it's caused by this`);
39995
39998
  /* style */
39996
39999
  const __vue_inject_styles__$1u = function (inject) {
39997
40000
  if (!inject) return
39998
- inject("data-v-6fdfda82_0", { source: ".zd-carousel {\n height: 100%;\n}\n.zd-carousel section.hooper {\n outline: none;\n}\n.zd-carousel section.hooper * {\n outline: none;\n}\n.zd-carousel section.hooper .hooper-list .hooper-slide {\n align-self: center;\n}\n.zd-carousel section.hooper .hooper-list .hooper-slide > .row {\n height: 100%;\n align-items: center;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination {\n padding: 0;\n width: 100%;\n height: 50px;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination .hooper-indicators {\n margin: 0 auto;\n display: block;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination .hooper-indicators li {\n display: inline-block;\n margin: 0 var(--spacing-2);\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination .hooper-indicators li .hooper-indicator {\n width: 18px;\n height: 18px;\n border-radius: 50%;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.show-background {\n background: rgba(0, 0, 0, 0.3);\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--light .hooper-indicator {\n opacity: 0.25;\n background-color: black;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--light .hooper-indicator.is-active {\n opacity: 0.6;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--light .hooper-indicator:hover:not(.is-active) {\n opacity: 0.4;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--dark {\n color: white;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--dark .hooper-indicator {\n opacity: 0.5;\n background-color: white;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--dark .hooper-indicator.is-active {\n opacity: 0.8;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--dark .hooper-indicator:hover:not(.is-active) {\n opacity: 0.6;\n}\n.zd-carousel section.hooper .hooper-list button.hooper-prev {\n padding: 0;\n}\n.zd-carousel section.hooper .hooper-list button.hooper-next {\n padding: 0;\n}\n.zd-carousel section.hooper .hooper-list .prev-button, .zd-carousel section.hooper .hooper-list .next-button {\n transition: 0.1s;\n}\n.zd-carousel section.hooper .hooper-list ul.hooper-track, .zd-carousel section.hooper .hooper-list ol.hooper-indicators {\n padding-left: 0;\n}\n.zd-carousel section.hooper .hooper-list .hooper-progress-inner {\n background-color: var(--v-primary-base);\n}\n.zd-carousel.buttons-outside section.hooper {\n width: calc(100% - 2 * var(--spacing-8));\n margin-left: var(--spacing-8);\n}\n.zd-carousel.buttons-outside section.hooper .hooper-list .hooper-navigation button.hooper-prev {\n left: calc(-1 * var(--spacing-8));\n}\n.zd-carousel.buttons-outside section.hooper .hooper-list .hooper-navigation button.hooper-next {\n right: calc(-1 * var(--spacing-8));\n}", map: undefined, media: undefined });
40001
+ inject("data-v-302f5b51_0", { source: ".zd-carousel {\n height: 100%;\n}\n.zd-carousel section.hooper {\n outline: none;\n}\n.zd-carousel section.hooper * {\n outline: none;\n}\n.zd-carousel section.hooper .hooper-list .hooper-slide {\n align-self: center;\n}\n.zd-carousel section.hooper .hooper-list .hooper-slide > .row {\n height: 100%;\n align-items: center;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination {\n padding: 0;\n width: 100%;\n height: 50px;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination .hooper-indicators {\n margin: 0 auto;\n display: block;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination .hooper-indicators li {\n display: inline-block;\n margin: 0 var(--spacing-2);\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination .hooper-indicators li .hooper-indicator {\n width: 18px;\n height: 18px;\n border-radius: 50%;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.show-background {\n background: rgba(0, 0, 0, 0.3);\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--light .hooper-indicator {\n opacity: 0.25;\n background-color: black;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--light .hooper-indicator.is-active {\n opacity: 0.6;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--light .hooper-indicator:hover:not(.is-active) {\n opacity: 0.4;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--dark {\n color: white;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--dark .hooper-indicator {\n opacity: 0.5;\n background-color: white;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--dark .hooper-indicator.is-active {\n opacity: 0.8;\n}\n.zd-carousel section.hooper .hooper-list .hooper-pagination.theme--dark .hooper-indicator:hover:not(.is-active) {\n opacity: 0.6;\n}\n.zd-carousel section.hooper .hooper-list button.hooper-prev {\n padding: 0;\n}\n.zd-carousel section.hooper .hooper-list button.hooper-next {\n padding: 0;\n}\n.zd-carousel section.hooper .hooper-list .prev-button, .zd-carousel section.hooper .hooper-list .next-button {\n transition: 0.1s;\n}\n.zd-carousel section.hooper .hooper-list ul.hooper-track, .zd-carousel section.hooper .hooper-list ol.hooper-indicators {\n padding-left: 0;\n}\n.zd-carousel section.hooper .hooper-list .hooper-progress-inner {\n background-color: var(--v-primary-base);\n}\n.zd-carousel.buttons-outside section.hooper {\n width: calc(100% - 2 * var(--spacing-8));\n margin-left: var(--spacing-8);\n}\n.zd-carousel.buttons-outside section.hooper .hooper-list .hooper-navigation button.hooper-prev {\n left: calc(-1 * var(--spacing-8));\n}\n.zd-carousel.buttons-outside section.hooper .hooper-list .hooper-navigation button.hooper-next {\n right: calc(-1 * var(--spacing-8));\n}", map: undefined, media: undefined });
39999
40002
 
40000
40003
  };
40001
40004
  /* scoped */
@@ -45539,7 +45542,9 @@ If you're seeing "$attrs is readonly", it's caused by this`);
45539
45542
  }
45540
45543
  }
45541
45544
  changeData(data) {
45542
- this.instance.changeData(data);
45545
+ setTimeout(() => {
45546
+ this.instance.changeData(data);
45547
+ });
45543
45548
  }
45544
45549
  rowKey(item) {
45545
45550
  return item[this.instance.datasource.uniqueKey];
@@ -46041,6 +46046,36 @@ If you're seeing "$attrs is readonly", it's caused by this`);
46041
46046
  if (this.instance.fillHeight) {
46042
46047
  setFillHeight(this.$el);
46043
46048
  }
46049
+ this.registerTrObserver();
46050
+ }
46051
+ /**
46052
+ * Register a mutation observer for the table TR
46053
+ * this observer should call updateFixedColumns whenever the
46054
+ * number of columns inside the table changes \
46055
+ * This also takes into account columns that gets hidden via isVisible
46056
+ */
46057
+ registerTrObserver() {
46058
+ const table = this.$el.querySelector('table');
46059
+ if (!table)
46060
+ return;
46061
+ const targetRow = table.querySelector('tr');
46062
+ if (!targetRow)
46063
+ return;
46064
+ this.observer = new MutationObserver((mutations) => {
46065
+ mutations.forEach((mutation) => {
46066
+ if (mutation.type === 'childList'
46067
+ && mutation.target instanceof Element
46068
+ && mutation.target.tagName === 'TR') {
46069
+ this.updateFixedColumns();
46070
+ }
46071
+ });
46072
+ });
46073
+ this.observer.observe(targetRow, {
46074
+ childList: true,
46075
+ });
46076
+ }
46077
+ beforeDestroy() {
46078
+ this.observer.disconnect();
46044
46079
  }
46045
46080
  setViewGetWidth() {
46046
46081
  this.instance.columns.forEach((column) => {
@@ -47408,6 +47443,10 @@ If you're seeing "$attrs is readonly", it's caused by this`);
47408
47443
  PropWatch({ type: [Boolean, String], default: false }),
47409
47444
  __metadata("design:type", Object)
47410
47445
  ], ZdGridEditable.prototype, "singleEdit", void 0);
47446
+ __decorate([
47447
+ PropWatch({ type: [Boolean, String], default: false }),
47448
+ __metadata("design:type", Object)
47449
+ ], ZdGridEditable.prototype, "showCancelColumn", void 0);
47411
47450
  ZdGridEditable = __decorate([
47412
47451
  Component__default["default"]({
47413
47452
  mixins: [EditableMixin$1, NavigableTableMixin$1],
@@ -48996,7 +49035,7 @@ If you're seeing "$attrs is readonly", it's caused by this`);
48996
49035
  /* style */
48997
49036
  const __vue_inject_styles__$12 = function (inject) {
48998
49037
  if (!inject) return
48999
- inject("data-v-eec1bcda_0", { source: "\n.zd-grid-action {\n height: 100%;\n display: flex;\n}\n", map: undefined, media: undefined });
49038
+ inject("data-v-05e1c745_0", { source: "\n.zd-grid-action {\n height: 100%;\n display: flex;\n align-items: center;\n}\n", map: undefined, media: undefined });
49000
49039
 
49001
49040
  };
49002
49041
  /* scoped */
@@ -54374,6 +54413,7 @@ If you're seeing "$attrs is readonly", it's caused by this`);
54374
54413
  showHelper: false,
54375
54414
  showLabel: false,
54376
54415
  placeholder: 'SEARCH',
54416
+ autofill: false,
54377
54417
  appendIcon: 'magnify',
54378
54418
  events: {
54379
54419
  input: debounce__default["default"](this.doSearch, 500),
@@ -55337,7 +55377,40 @@ If you're seeing "$attrs is readonly", it's caused by this`);
55337
55377
  const el = (Array.isArray(ref) ? ref[0].$el : ref === null || ref === void 0 ? void 0 : ref.$el);
55338
55378
  return el || null;
55339
55379
  }
55380
+ /**
55381
+ * Register all modal event listeners
55382
+ */
55383
+ registerEvents(modal) {
55384
+ this.registerTransitionEvents(modal);
55385
+ this.registerDragEvents(modal);
55386
+ }
55387
+ registerTransitionEvents(modal) {
55388
+ const el = this.getModalEl(modal);
55389
+ if (!el || !el.parentElement)
55390
+ return;
55391
+ el.parentElement.addEventListener('transitionstart', (event) => {
55392
+ // prevent triggering when the event is being propagated from a child element
55393
+ if (event.target !== el.parentElement)
55394
+ return;
55395
+ modal.transitionStart(event);
55396
+ });
55397
+ el.parentElement.addEventListener('transitionend', (event) => {
55398
+ // prevent triggering when the event is being propagated from a child element
55399
+ if (event.target !== el.parentElement)
55400
+ return;
55401
+ modal.transitionEnd(event);
55402
+ });
55403
+ }
55404
+ /**
55405
+ * Unregister all modal event listeners
55406
+ */
55407
+ unregisterEvents(modal) {
55408
+ this.unregisterDragEvents(modal);
55409
+ this.unregisterTransitionEvents(modal);
55410
+ }
55340
55411
  registerDragEvents(modal) {
55412
+ if (!modal.draggable)
55413
+ return;
55341
55414
  const el = this.getModalEl(modal);
55342
55415
  if (!el)
55343
55416
  return;
@@ -55352,6 +55425,13 @@ If you're seeing "$attrs is readonly", it's caused by this`);
55352
55425
  this.dragHandle.addEventListener('mousedown', this.dragStart.bind(this, modal));
55353
55426
  this.dragHandle.addEventListener('touchstart', this.dragStart.bind(this, modal), { passive: false });
55354
55427
  }
55428
+ unregisterTransitionEvents(modal) {
55429
+ const el = this.getModalEl(modal);
55430
+ if (!el || !el.parentElement)
55431
+ return;
55432
+ el.parentElement.removeEventListener('transitionstart', modal.transitionStart);
55433
+ el.parentElement.removeEventListener('transitionend', modal.transitionEnd);
55434
+ }
55355
55435
  unregisterDragEvents(modal) {
55356
55436
  if (!this.dragHandle)
55357
55437
  return;
@@ -55529,10 +55609,10 @@ If you're seeing "$attrs is readonly", it's caused by this`);
55529
55609
  style: modal.cssStyle,
55530
55610
  on: {
55531
55611
  "hook:mounted": function ($event) {
55532
- modal.draggable && _vm.registerDragEvents(modal);
55612
+ return _vm.registerEvents(modal)
55533
55613
  },
55534
55614
  "hook:destroyed": function ($event) {
55535
- return _vm.unregisterDragEvents(modal)
55615
+ return _vm.unregisterEvents(modal)
55536
55616
  },
55537
55617
  },
55538
55618
  },
@@ -55596,7 +55676,7 @@ If you're seeing "$attrs is readonly", it's caused by this`);
55596
55676
  /* style */
55597
55677
  const __vue_inject_styles__$u = function (inject) {
55598
55678
  if (!inject) return
55599
- inject("data-v-12867ee3_0", { source: ".zd-modal-title {\n padding-bottom: 0px;\n}\n.zd-modal-container {\n padding: 0;\n cursor: default;\n}\n.zd-modal-flex {\n width: 100%;\n}\n.zd-modal-draggable {\n position: relative;\n}\n.zd-modal-draggable-handle {\n cursor: grab;\n cursor: -moz-grab;\n cursor: -webkit-grab;\n}\n.zd-modal-draggable-handle:active {\n cursor: grabbing;\n cursor: -moz-grabbing;\n cursor: -webkit-grabbing;\n}\n.zd-modal-content > .zd-modal-card > .zd-modal-title {\n padding: var(--zd-default-padding);\n padding-bottom: 0px;\n font-size: var(--zd-font-title-size);\n font-weight: var(--zd-font-title-weight);\n color: var(--zd-font-color);\n}\n.zd-modal-content > .zd-modal-card > .zd-modal-card-text {\n padding: var(--zd-default-padding);\n display: flex;\n flex: 1 1 auto;\n}", map: undefined, media: undefined });
55679
+ inject("data-v-3de0e7d7_0", { source: ".zd-modal-title {\n padding-bottom: 0px;\n}\n.zd-modal-container {\n padding: 0;\n cursor: default;\n}\n.zd-modal-flex {\n width: 100%;\n}\n.zd-modal-draggable {\n position: relative;\n}\n.zd-modal-draggable-handle {\n cursor: grab;\n cursor: -moz-grab;\n cursor: -webkit-grab;\n}\n.zd-modal-draggable-handle:active {\n cursor: grabbing;\n cursor: -moz-grabbing;\n cursor: -webkit-grabbing;\n}\n.zd-modal-content > .zd-modal-card > .zd-modal-title {\n padding: var(--zd-default-padding);\n padding-bottom: 0px;\n font-size: var(--zd-font-title-size);\n font-weight: var(--zd-font-title-weight);\n color: var(--zd-font-color);\n}\n.zd-modal-content > .zd-modal-card > .zd-modal-card-text {\n padding: var(--zd-default-padding);\n display: flex;\n flex: 1 1 auto;\n}", map: undefined, media: undefined });
55600
55680
 
55601
55681
  };
55602
55682
  /* scoped */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeedhi/vuetify",
3
- "version": "1.100.2",
3
+ "version": "1.101.0",
4
4
  "description": "Zeedhi Components based on Vuetify",
5
5
  "author": "Zeedhi <zeedhi@teknisa.com>",
6
6
  "license": "ISC",
@@ -51,5 +51,5 @@
51
51
  "@types/prismjs": "1.26.*",
52
52
  "@types/sortablejs": "1.15.*"
53
53
  },
54
- "gitHead": "2fb4d52eeebc36287dc335cb32601b6e4f55378f"
54
+ "gitHead": "a09f2851ece9c0011024e1cd69baba7a85b13130"
55
55
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="resize-observer-browser" />
1
2
  import { IButton, Carousel, ISlideData } from '@zeedhi/common';
2
3
  import ZdComponentRender from '../zd-component/ZdComponentRender';
3
4
  /**
@@ -39,20 +40,24 @@ export default class ZdCarousel extends ZdComponentRender {
39
40
  private lastEvent;
40
41
  created(): void;
41
42
  mounted(): void;
43
+ destroyed(): void;
44
+ resizeObserver: ResizeObserver;
45
+ /**
46
+ * addResizeObserver
47
+ */
48
+ addResizeObserver(): void;
49
+ /**
50
+ * removeObserver
51
+ */
52
+ removeObserver(): void;
53
+ setViewUpdate(): void;
42
54
  get paginationMode(): "fraction" | undefined;
43
- forceRerender(): void;
44
55
  beforeSlide(slideData: ISlideData): void;
45
56
  slide(slideData: ISlideData): void;
46
57
  /**
47
58
  * Update component currentSlide if class currentSlide is changed
48
59
  */
49
60
  changeCurrentSlide(newVal: number): void;
50
- /**
51
- * If children changes, rerender hooper carousel
52
- * @param _newVal new children object value
53
- * @param oldVal old children object value
54
- */
55
- update(_newVal: any[], oldVal: any[]): void;
56
61
  /**
57
62
  * If carousel becomes visible, restart hooper slides
58
63
  * @param newVal new children object value
@@ -46,7 +46,16 @@ export default class ZdGrid extends ZdIterable {
46
46
  * Left distance for each column
47
47
  */
48
48
  fixedRight: IDictionary<string>;
49
+ observer: MutationObserver;
49
50
  mounted(): void;
51
+ /**
52
+ * Register a mutation observer for the table TR
53
+ * this observer should call updateFixedColumns whenever the
54
+ * number of columns inside the table changes \
55
+ * This also takes into account columns that gets hidden via isVisible
56
+ */
57
+ registerTrObserver(): void;
58
+ beforeDestroy(): void;
50
59
  private setViewGetWidth;
51
60
  orderHeaders(headers: Column[]): Column[];
52
61
  parseWidth(width?: string): number;
@@ -15,6 +15,7 @@ export default class ZdGridEditable extends ZdGrid {
15
15
  editNewRowsOnly: boolean | string;
16
16
  editingNewRows: boolean | string;
17
17
  singleEdit: boolean | string;
18
+ showCancelColumn: boolean | string;
18
19
  instance: GridEditable;
19
20
  instanceType: typeof GridEditable;
20
21
  isTrVisible: boolean;
@@ -13,7 +13,17 @@ export default class ZdModal extends ZdComponent {
13
13
  protected dragHandle: HTMLElement | null;
14
14
  protected modalDragged?: Modal;
15
15
  getModalEl(modal: Modal): HTMLElement | null;
16
+ /**
17
+ * Register all modal event listeners
18
+ */
19
+ registerEvents(modal: Modal): void;
20
+ registerTransitionEvents(modal: Modal): void;
21
+ /**
22
+ * Unregister all modal event listeners
23
+ */
24
+ unregisterEvents(modal: Modal): void;
16
25
  registerDragEvents(modal: Modal): void;
26
+ unregisterTransitionEvents(modal: Modal): void;
17
27
  unregisterDragEvents(modal: Modal): void;
18
28
  private isTouchEvent;
19
29
  private getEventCoordinates;