@zeedhi/vuetify 1.105.0 → 1.106.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.
@@ -1,5 +1,5 @@
1
1
  import VueI18Next from '@panter/vue-i18next';
2
- import { Metadata, Utils, Config, I18n, Mask, DateHelper, Router, InstanceNotFoundError, FormatterParserProvider, KeyMap, dayjs, VersionService, ViewService } from '@zeedhi/core';
2
+ import { Metadata, Utils, Config, I18n, Mask, DateHelper, Router, InstanceNotFoundError, FormatterParserProvider, KeyMap, Messages, dayjs, VersionService, ViewService } from '@zeedhi/core';
3
3
  import VueApexCharts from 'vue-apexcharts';
4
4
  import SlVueTree from 'sl-vue-tree';
5
5
  import 'sl-vue-tree/dist/sl-vue-tree-minimal.css';
@@ -160,7 +160,7 @@ var VApp = mixins(Themeable$1).extend({
160
160
 
161
161
  beforeCreate() {
162
162
  if (!this.$vuetify || this.$vuetify === this.$root) {
163
- throw new Error('Vuetify is not properly initialized, see https://v2.vuetifyjs.com/getting-started/quick-start#bootstrapping-the-vuetify-object');
163
+ throw new Error('Vuetify is not properly initialized, see https://vuetifyjs.com/getting-started/quick-start#bootstrapping-the-vuetify-object');
164
164
  }
165
165
  },
166
166
 
@@ -1197,7 +1197,7 @@ const icons$2 = {
1197
1197
  clear: 'fas fa-times-circle',
1198
1198
  success: 'fas fa-check-circle',
1199
1199
  info: 'fas fa-info-circle',
1200
- warning: 'fas fa-exclamation-circle',
1200
+ warning: 'fas fa-exclamation',
1201
1201
  error: 'fas fa-exclamation-triangle',
1202
1202
  prev: 'fas fa-chevron-left',
1203
1203
  next: 'fas fa-chevron-right',
@@ -2213,7 +2213,7 @@ class Vuetify {
2213
2213
  }
2214
2214
  Vuetify.install = install$1;
2215
2215
  Vuetify.installed = false;
2216
- Vuetify.version = "2.6.16";
2216
+ Vuetify.version = "2.6.13";
2217
2217
  Vuetify.config = {
2218
2218
  silent: false
2219
2219
  };
@@ -8398,10 +8398,9 @@ var VLabel = mixins(Themeable$1).extend({
8398
8398
  const {
8399
8399
  children,
8400
8400
  listeners,
8401
- props,
8402
- data
8401
+ props
8403
8402
  } = ctx;
8404
- const newData = mergeData({
8403
+ const data = {
8405
8404
  staticClass: 'v-label',
8406
8405
  class: {
8407
8406
  'v-label--active': props.value,
@@ -8419,8 +8418,8 @@ var VLabel = mixins(Themeable$1).extend({
8419
8418
  position: props.absolute ? 'absolute' : 'relative'
8420
8419
  },
8421
8420
  ref: 'label'
8422
- }, data);
8423
- return h('label', Colorable.options.methods.setTextColor(props.focused && props.color, newData), children);
8421
+ };
8422
+ return h('label', Colorable.options.methods.setTextColor(props.focused && props.color, data), children);
8424
8423
  }
8425
8424
 
8426
8425
  });
@@ -10095,12 +10094,6 @@ var VSelect = baseMixins$j.extend().extend({
10095
10094
  (_a = this.$refs.menu) === null || _a === void 0 ? void 0 : _a.updateDimensions();
10096
10095
  });
10097
10096
  }
10098
-
10099
- if (this.hideSelected) {
10100
- this.$nextTick(() => {
10101
- this.onScroll();
10102
- });
10103
- }
10104
10097
  },
10105
10098
 
10106
10099
  isMenuActive(val) {
@@ -10329,18 +10322,19 @@ var VSelect = baseMixins$j.extend().extend({
10329
10322
 
10330
10323
  genMenu() {
10331
10324
  const props = this.$_menuProps;
10332
- props.activator = this.$refs['input-slot'];
10333
- if ('attach' in props) ;else if ( // TODO: make this a computed property or helper or something
10325
+ props.activator = this.$refs['input-slot']; // Attach to root el so that
10326
+ // menu covers prepend/append icons
10327
+
10328
+ if ( // TODO: make this a computed property or helper or something
10334
10329
  this.attach === '' || // If used as a boolean prop (<v-menu attach>)
10335
10330
  this.attach === true || // If bound to a boolean (<v-menu :attach="true">)
10336
10331
  this.attach === 'attach' // If bound as boolean prop in pug (v-menu(attach))
10337
10332
  ) {
10338
- // Attach to root el so that
10339
- // menu covers prepend/append icons
10340
10333
  props.attach = this.$el;
10341
10334
  } else {
10342
10335
  props.attach = this.attach;
10343
10336
  }
10337
+
10344
10338
  return this.$createElement(VMenu, {
10345
10339
  attrs: {
10346
10340
  role: undefined
@@ -10454,7 +10448,7 @@ var VSelect = baseMixins$j.extend().extend({
10454
10448
  },
10455
10449
 
10456
10450
  onKeyPress(e) {
10457
- if (this.multiple || !this.isInteractive || this.disableLookup || e.key.length > 1 || e.ctrlKey || e.metaKey || e.altKey) return;
10451
+ if (this.multiple || !this.isInteractive || this.disableLookup) return;
10458
10452
  const KEYBOARD_LOOKUP_THRESHOLD = 1000; // milliseconds
10459
10453
 
10460
10454
  const now = performance.now();
@@ -11771,7 +11765,7 @@ var Overlayable = Vue.extend().extend({
11771
11765
  if (!alreadyAtStart && scrollingUp) return true;
11772
11766
  if (!alreadyAtEnd && scrollingDown) return true;
11773
11767
 
11774
- if ((alreadyAtStart || alreadyAtEnd) && el.parentNode) {
11768
+ if (alreadyAtStart || alreadyAtEnd) {
11775
11769
  return this.shouldScroll(el.parentNode, e);
11776
11770
  }
11777
11771
 
@@ -19554,13 +19548,13 @@ var VDataIterator = mixins(Mobile, Themeable$1).extend({
19554
19548
 
19555
19549
  methods: {
19556
19550
  onKeyDown(e) {
19557
- this.shiftKeyDown = e.keyCode === keyCodes.shift || e.shiftKey;
19551
+ if (e.keyCode !== keyCodes.shift) return;
19552
+ this.shiftKeyDown = true;
19558
19553
  },
19559
19554
 
19560
19555
  onKeyUp(e) {
19561
- if (e.keyCode === keyCodes.shift || !e.shiftKey) {
19562
- this.shiftKeyDown = false;
19563
- }
19556
+ if (e.keyCode !== keyCodes.shift) return;
19557
+ this.shiftKeyDown = false;
19564
19558
  },
19565
19559
 
19566
19560
  toggleSelectAll(value) {
@@ -20856,8 +20850,7 @@ var VDataTable = mixins(VDataIterator, Loadable).extend({
20856
20850
  return this.$createElement(VSimpleTable, {
20857
20851
  props: simpleProps,
20858
20852
  class: {
20859
- 'v-data-table--mobile': this.isMobile,
20860
- 'v-data-table--selectable': this.showSelect
20853
+ 'v-data-table--mobile': this.isMobile
20861
20854
  }
20862
20855
  }, [this.proxySlot('top', getSlot(this, 'top', { ...props,
20863
20856
  isMobile: this.isMobile
@@ -31593,7 +31586,7 @@ var icons = {
31593
31586
  clear: 'fas fa-times-circle',
31594
31587
  success: 'fas fa-check-circle',
31595
31588
  info: 'fas fa-info-circle',
31596
- warning: 'fas fa-exclamation-circle',
31589
+ warning: 'fas fa-exclamation',
31597
31590
  error: 'fas fa-exclamation-triangle',
31598
31591
  prev: 'fas fa-chevron-left',
31599
31592
  next: 'fas fa-chevron-right',
@@ -32012,23 +32005,23 @@ var _default = {
32012
32005
  badge: 'شارة',
32013
32006
  close: 'إغلاق',
32014
32007
  dataIterator: {
32015
- noResultsText: 'لم يتم إيجاد نتائج',
32016
- loadingText: 'يتم جلب العناصر...'
32008
+ noResultsText: 'لا توجد سجلات مطابقة',
32009
+ loadingText: 'تحميل العنصر...'
32017
32010
  },
32018
32011
  dataTable: {
32019
- itemsPerPageText: 'عدد الصفوف لكل صفحة:',
32012
+ itemsPerPageText: 'الصفوف لكل صفحة:',
32020
32013
  ariaLabel: {
32021
- sortDescending: 'مرتب تنازلياً.',
32022
- sortAscending: 'مرتب تصاعدياً.',
32023
- sortNone: 'غير مرتب.',
32024
- activateNone: 'نشط لإزالة الترتيب.',
32025
- activateDescending: 'نشط للترتيب تنازلياً.',
32026
- activateAscending: 'نشط للترتيب تصاعدياً.'
32014
+ sortDescending: 'مفروز تنازلي. تنشيط لإزالة الفرز.',
32015
+ sortAscending: 'مفروز تصاعدي. تنشيط للفرز التنازلي.',
32016
+ sortNone: 'غير مفروزة. تفعيل لفرز تصاعدي.',
32017
+ activateNone: 'Activate to remove sorting.',
32018
+ activateDescending: 'Activate to sort descending.',
32019
+ activateAscending: 'Activate to sort ascending.'
32027
32020
  },
32028
- sortBy: 'رتب حسب'
32021
+ sortBy: 'مفروزة حسب'
32029
32022
  },
32030
32023
  dataFooter: {
32031
- itemsPerPageText: 'عدد العناصر لكل صفحة:',
32024
+ itemsPerPageText: 'العناصر لكل صفحة:',
32032
32025
  itemsPerPageAll: 'الكل',
32033
32026
  nextPage: 'الصفحة التالية',
32034
32027
  prevPage: 'الصفحة السابقة',
@@ -32037,18 +32030,18 @@ var _default = {
32037
32030
  pageText: '{0}-{1} من {2}'
32038
32031
  },
32039
32032
  datePicker: {
32040
- itemsSelected: 'تم تحديد {0}',
32033
+ itemsSelected: '{0} مختارة',
32041
32034
  nextMonthAriaLabel: 'الشهر القادم',
32042
32035
  nextYearAriaLabel: 'العام القادم',
32043
32036
  prevMonthAriaLabel: 'الشهر الماضى',
32044
32037
  prevYearAriaLabel: 'السنة الماضية'
32045
32038
  },
32046
- noDataText: 'لا توجد بيانات',
32039
+ noDataText: 'لا توجد بيانات متاحة',
32047
32040
  carousel: {
32048
- prev: 'المعروض السابق',
32049
- next: 'المعروض التالي',
32041
+ prev: 'البصري السابق',
32042
+ next: 'البصري التالي',
32050
32043
  ariaLabel: {
32051
- delimiter: 'المعروض رقم {0} من {1}'
32044
+ delimiter: 'Carousel slide {0} of {1}'
32052
32045
  }
32053
32046
  },
32054
32047
  calendar: {
@@ -32064,16 +32057,16 @@ var _default = {
32064
32057
  },
32065
32058
  pagination: {
32066
32059
  ariaLabel: {
32067
- wrapper: 'الإنتقال بين الصفحات',
32060
+ wrapper: 'ترقيم الصفحات الملاحة',
32068
32061
  next: 'الصفحة التالية',
32069
32062
  previous: 'الصفحة السابقة',
32070
- page: '{0} انتقل إلى الصفحة',
32071
- currentPage: '{0} الصفحة الحالية رقمها'
32063
+ page: '{0} انتقل إلى صفحة',
32064
+ currentPage: '{0} الصفحة الحالية ، الصفحة'
32072
32065
  }
32073
32066
  },
32074
32067
  rating: {
32075
32068
  ariaLabel: {
32076
- icon: 'القييم {0} من {1}'
32069
+ icon: 'Rating {0} of {1}'
32077
32070
  }
32078
32071
  }
32079
32072
  };
@@ -36846,7 +36839,7 @@ var Vuetify = /*#__PURE__*/function () {
36846
36839
  exports.default = Vuetify;
36847
36840
  Vuetify.install = install_1.install;
36848
36841
  Vuetify.installed = false;
36849
- Vuetify.version = "2.6.16";
36842
+ Vuetify.version = "2.6.13";
36850
36843
  Vuetify.config = {
36851
36844
  silent: false
36852
36845
  };
@@ -42243,6 +42236,7 @@ var __vue_render__$1m = function () {
42243
42236
  "zd-no-border": !_vm.instance.showBorder,
42244
42237
  "zd-no-helper":
42245
42238
  !_vm.instance.showHelper &&
42239
+ !_vm.instance.persistentHint &&
42246
42240
  !(
42247
42241
  _vm.instance.alwaysShowError &&
42248
42242
  _vm.$refs.instance &&
@@ -42380,7 +42374,7 @@ __vue_render__$1m._withStripped = true;
42380
42374
  /* style */
42381
42375
  const __vue_inject_styles__$1m = function (inject) {
42382
42376
  if (!inject) return
42383
- inject("data-v-28353e64_0", { source: ".zd-text-input__affix, .v-input.zd-text-input.zd-text-input--suffix .v-input__append-inner > .zd-text-input__append .zd-text-input__append__suffix, .v-input.zd-text-input > .v-input__control > .v-input__slot .v-text-field__prefix {\n font-weight: var(--zd-font-body2-weight);\n color: var(--v-grey-lighten2);\n font-size: var(--zd-font-body2-size);\n line-height: 15px;\n padding: 3px 0 4px 0;\n}\n.zd-input.v-input.v-input--is-readonly > .v-input__control > .v-input__slot {\n background-color: var(--v-grey-lighten5);\n}\n.zd-input.v-input.v-input--is-readonly.theme--dark > .v-input__control > .v-input__slot {\n background-color: var(--v-grey-darken2);\n}\n.v-input.zd-text-input {\n padding-top: var(--spacing-4);\n}\n.v-input.zd-text-input .v-input__prepend-outer {\n margin-right: var(--spacing-1);\n}\n.v-input.zd-text-input .v-input__append-outer {\n margin-left: var(--spacing-1);\n}\n.v-input.zd-text-input .v-input__prepend-outer, .v-input.zd-text-input .v-input__append-outer {\n margin-top: calc(var(--spacing-7) / 2 - var(--icon-size) / 2);\n margin-bottom: calc(var(--spacing-7) / 2 - var(--icon-size) / 2);\n}\n.v-input.zd-text-input .v-input__append-inner, .v-input.zd-text-input .v-input__prepend-inner {\n padding: 0;\n margin: 0;\n align-self: unset;\n}\n.v-input.zd-text-input .v-input__prepend-outer .v-icon, .v-input.zd-text-input .v-input__append-outer .v-icon, .v-input.zd-text-input .v-input__append-inner .v-icon, .v-input.zd-text-input .v-input__prepend-inner .v-icon {\n font-size: var(--icon-size);\n}\n.v-input.zd-text-input > .v-input__control > .v-input__slot .v-text-field__prefix {\n padding-left: var(--spacing-2);\n}\n.v-input.zd-text-input > .v-input__control > .v-input__slot .v-text-field__slot {\n position: static;\n}\n.v-input.zd-text-input.v-text-field--reverse > .v-input__control > .v-input__slot label {\n left: auto !important;\n}\n.v-input.zd-text-input.zd-text-input--suffix .v-input__append-inner > .zd-text-input__append {\n align-items: center;\n display: inline-flex;\n flex: 1 0 auto;\n justify-content: center;\n}\n.v-input.zd-text-input.zd-text-input--suffix .v-input__append-inner > .zd-text-input__append .zd-text-input__append__suffix {\n padding-right: var(--spacing-2);\n}\n.v-input.zd-text-input.zd-text-input--prepend-icon > .v-input__control > .v-input__slot > .v-input__prepend-inner {\n padding: 0;\n}\n.v-input.zd-text-input.zd-text-input--append-icon > .v-input__control > .v-input__slot > .v-input__append-inner {\n padding: 0;\n}\n.v-input.zd-text-input.zd-dense .v-input__prepend-outer, .v-input.zd-text-input.zd-dense .v-input__append-outer {\n margin-top: calc(var(--icon-size) / 2 - var(--icon-size) / 2);\n margin-bottom: calc(var(--icon-size) / 2 - var(--icon-size) / 2);\n}\n.v-input.zd-text-input.zd-dense .v-input__prepend-outer .v-icon, .v-input.zd-text-input.zd-dense .v-input__append-outer .v-icon, .v-input.zd-text-input.zd-dense .v-input__append-inner .v-icon, .v-input.zd-text-input.zd-dense .v-input__prepend-inner .v-icon {\n font-size: var(--icon-size-small);\n}\n.v-input.zd-text-input.zd-dense .v-input__slot .v-text-field__prefix {\n height: auto;\n}\n.v-input.zd-text-input.zd-no-border:not(.error--text) .v-input__append-inner:last-child,\n.v-input.zd-text-input.zd-no-border:not(.error--text) .v-input__prepend-inner:first-child {\n margin: 0;\n}\n.v-input.zd-text-input.zd-no-border:not(.error--text) > .v-input__control > .v-input__slot input {\n padding: 0;\n}\n.v-input.zd-text-input.zd-text-align-left > .v-input__control > .v-input__slot input {\n text-align: left;\n}\n.v-input.zd-text-input.zd-color-type > .v-input__control > .v-input__slot input {\n padding: 0;\n cursor: pointer;\n max-height: 22px;\n}\n.v-input.zd-text-input.zd-color-type:not(.zd-dense) > .v-input__control > .v-input__slot input {\n max-height: 34px;\n}\n.v-input.zd-text-input.zd-text-align-center > .v-input__control > .v-input__slot input {\n text-align: center;\n}\n.v-input.zd-text-input.zd-text-align-right > .v-input__control > .v-input__slot input {\n text-align: right;\n}", map: undefined, media: undefined });
42377
+ inject("data-v-ecb32ef8_0", { source: ".zd-text-input__affix, .v-input.zd-text-input.zd-text-input--suffix .v-input__append-inner > .zd-text-input__append .zd-text-input__append__suffix, .v-input.zd-text-input > .v-input__control > .v-input__slot .v-text-field__prefix {\n font-weight: var(--zd-font-body2-weight);\n color: var(--v-grey-lighten2);\n font-size: var(--zd-font-body2-size);\n line-height: 15px;\n padding: 3px 0 4px 0;\n}\n.zd-input.v-input.v-input--is-readonly > .v-input__control > .v-input__slot {\n background-color: var(--v-grey-lighten5);\n}\n.zd-input.v-input.v-input--is-readonly.theme--dark > .v-input__control > .v-input__slot {\n background-color: var(--v-grey-darken2);\n}\n.v-input.zd-text-input {\n padding-top: var(--spacing-4);\n}\n.v-input.zd-text-input .v-input__prepend-outer {\n margin-right: var(--spacing-1);\n}\n.v-input.zd-text-input .v-input__append-outer {\n margin-left: var(--spacing-1);\n}\n.v-input.zd-text-input .v-input__prepend-outer, .v-input.zd-text-input .v-input__append-outer {\n margin-top: calc(var(--spacing-7) / 2 - var(--icon-size) / 2);\n margin-bottom: calc(var(--spacing-7) / 2 - var(--icon-size) / 2);\n}\n.v-input.zd-text-input .v-input__append-inner, .v-input.zd-text-input .v-input__prepend-inner {\n padding: 0;\n margin: 0;\n align-self: unset;\n}\n.v-input.zd-text-input .v-input__prepend-outer .v-icon, .v-input.zd-text-input .v-input__append-outer .v-icon, .v-input.zd-text-input .v-input__append-inner .v-icon, .v-input.zd-text-input .v-input__prepend-inner .v-icon {\n font-size: var(--icon-size);\n}\n.v-input.zd-text-input > .v-input__control > .v-input__slot .v-text-field__prefix {\n padding-left: var(--spacing-2);\n}\n.v-input.zd-text-input > .v-input__control > .v-input__slot .v-text-field__slot {\n position: static;\n}\n.v-input.zd-text-input.v-text-field--reverse > .v-input__control > .v-input__slot label {\n left: auto !important;\n}\n.v-input.zd-text-input.zd-text-input--suffix .v-input__append-inner > .zd-text-input__append {\n align-items: center;\n display: inline-flex;\n flex: 1 0 auto;\n justify-content: center;\n}\n.v-input.zd-text-input.zd-text-input--suffix .v-input__append-inner > .zd-text-input__append .zd-text-input__append__suffix {\n padding-right: var(--spacing-2);\n}\n.v-input.zd-text-input.zd-text-input--prepend-icon > .v-input__control > .v-input__slot > .v-input__prepend-inner {\n padding: 0;\n}\n.v-input.zd-text-input.zd-text-input--append-icon > .v-input__control > .v-input__slot > .v-input__append-inner {\n padding: 0;\n}\n.v-input.zd-text-input.zd-dense .v-input__prepend-outer, .v-input.zd-text-input.zd-dense .v-input__append-outer {\n margin-top: calc(var(--icon-size) / 2 - var(--icon-size) / 2);\n margin-bottom: calc(var(--icon-size) / 2 - var(--icon-size) / 2);\n}\n.v-input.zd-text-input.zd-dense .v-input__prepend-outer .v-icon, .v-input.zd-text-input.zd-dense .v-input__append-outer .v-icon, .v-input.zd-text-input.zd-dense .v-input__append-inner .v-icon, .v-input.zd-text-input.zd-dense .v-input__prepend-inner .v-icon {\n font-size: var(--icon-size-small);\n}\n.v-input.zd-text-input.zd-dense .v-input__slot .v-text-field__prefix {\n height: auto;\n}\n.v-input.zd-text-input.zd-no-border:not(.error--text) .v-input__append-inner:last-child,\n.v-input.zd-text-input.zd-no-border:not(.error--text) .v-input__prepend-inner:first-child {\n margin: 0;\n}\n.v-input.zd-text-input.zd-no-border:not(.error--text) > .v-input__control > .v-input__slot input {\n padding: 0;\n}\n.v-input.zd-text-input.zd-text-align-left > .v-input__control > .v-input__slot input {\n text-align: left;\n}\n.v-input.zd-text-input.zd-color-type > .v-input__control > .v-input__slot input {\n padding: 0;\n cursor: pointer;\n max-height: 22px;\n}\n.v-input.zd-text-input.zd-color-type:not(.zd-dense) > .v-input__control > .v-input__slot input {\n max-height: 34px;\n}\n.v-input.zd-text-input.zd-text-align-center > .v-input__control > .v-input__slot input {\n text-align: center;\n}\n.v-input.zd-text-input.zd-text-align-right > .v-input__control > .v-input__slot input {\n text-align: right;\n}", map: undefined, media: undefined });
42384
42378
 
42385
42379
  };
42386
42380
  /* scoped */
@@ -45982,6 +45976,10 @@ __decorate([
45982
45976
  Prop({ type: [String, Boolean], default: () => { var _a; return ((_a = Config.iterableSearchVisibleOnly) !== null && _a !== void 0 ? _a : true); } }),
45983
45977
  __metadata("design:type", Object)
45984
45978
  ], ZdIterable.prototype, "searchVisibleOnly", void 0);
45979
+ __decorate([
45980
+ Prop({ type: [String, Boolean], default: undefined }),
45981
+ __metadata("design:type", Object)
45982
+ ], ZdIterable.prototype, "searchIn", void 0);
45985
45983
  ZdIterable = __decorate([
45986
45984
  Component$1
45987
45985
  ], ZdIterable);
@@ -52347,6 +52345,9 @@ let ZdSelect = class ZdSelect extends __vue_component__$1m {
52347
52345
  this.originalOnScroll = this.componentRef.onScroll;
52348
52346
  this.componentRef.onScroll = this.onScroll;
52349
52347
  this.applyAutofocus();
52348
+ this.instance.viewCloseMenu = () => {
52349
+ this.$refs.instance.isMenuActive = false;
52350
+ };
52350
52351
  }
52351
52352
  mouseenter(event) {
52352
52353
  this.instance.mouseenter(event, this.$el);
@@ -52447,7 +52448,7 @@ let ZdSelect = class ZdSelect extends __vue_component__$1m {
52447
52448
  checkOverflow(element) {
52448
52449
  if (!element)
52449
52450
  return;
52450
- const overflow = element.clientWidth < element.scrollWidth;
52451
+ const overflow = element.clientWidth < element.scrollWidth - 5;
52451
52452
  const tooltip = this.$refs.tooltip;
52452
52453
  if (overflow && tooltip) {
52453
52454
  tooltip.classList.add('zd-select-tooltip-show');
@@ -52564,6 +52565,40 @@ let ZdSelect = class ZdSelect extends __vue_component__$1m {
52564
52565
  setMenuVisibility(visibility) {
52565
52566
  this.componentRef.isMenuActive = visibility && visibility !== 'hide';
52566
52567
  }
52568
+ get showModalButton() {
52569
+ return this.instance.modalSelection
52570
+ && this.instance.modalSelectionFields
52571
+ && this.instance.modalSelectionFields.length > 0;
52572
+ }
52573
+ getSelectIconClickEvents() {
52574
+ const events = {};
52575
+ if (this.instance.events.appendIconClick || this.showModalButton) {
52576
+ events['click:append'] = (event) => {
52577
+ this.appendIconClick(event);
52578
+ if (this.showModalButton) {
52579
+ this.instance.openModalSelection();
52580
+ }
52581
+ };
52582
+ }
52583
+ if (this.instance.events.appendOuterIconClick) {
52584
+ events['click:append-outer'] = this.appendOuterIconClick;
52585
+ }
52586
+ if (this.instance.events.prependOuterIconClick) {
52587
+ events['click:prepend'] = this.prependOuterIconClick;
52588
+ }
52589
+ if (this.instance.events.prependIconClick) {
52590
+ events['click:prepend-inner'] = this.prependIconClick;
52591
+ }
52592
+ return events;
52593
+ }
52594
+ getPlaceHolder() {
52595
+ if (this.instance.placeholder)
52596
+ return I18n.translate(this.instance.placeholder);
52597
+ if (this.showModalButton) {
52598
+ return I18n.translate('SELECT_MODAL_KEYMAP');
52599
+ }
52600
+ return '';
52601
+ }
52567
52602
  };
52568
52603
  __decorate([
52569
52604
  PropWatch({ type: String, default: 'expand' }),
@@ -52657,6 +52692,14 @@ __decorate([
52657
52692
  PropWatch({ type: [String, Boolean], default: true }),
52658
52693
  __metadata("design:type", Boolean)
52659
52694
  ], ZdSelect.prototype, "closeOnScroll", void 0);
52695
+ __decorate([
52696
+ PropWatch({ type: [String, Boolean], default: false }),
52697
+ __metadata("design:type", Boolean)
52698
+ ], ZdSelect.prototype, "modalSelection", void 0);
52699
+ __decorate([
52700
+ PropWatch({ type: [String, Array], default: () => [] }),
52701
+ __metadata("design:type", Array)
52702
+ ], ZdSelect.prototype, "modalSelectionFields", void 0);
52660
52703
  __decorate([
52661
52704
  Watch('instance.closeOnScroll'),
52662
52705
  __metadata("design:type", Function),
@@ -52714,6 +52757,7 @@ var __vue_render__$K = function () {
52714
52757
  "zd-dense": _vm.instance.dense,
52715
52758
  "zd-select-autocomplete": _vm.instance.autocomplete,
52716
52759
  "zd-input-required": _vm.instance.validations.required,
52760
+ "zd-select-modal-selection": _vm.showModalButton,
52717
52761
  },
52718
52762
  "zd-select-align-" +
52719
52763
  (_vm.instance.reverse ? "right" : _vm.instance.align),
@@ -52744,7 +52788,7 @@ var __vue_render__$K = function () {
52744
52788
  label: _vm.instance.showLabel
52745
52789
  ? _vm.$t(_vm.instance.label)
52746
52790
  : undefined,
52747
- placeholder: _vm.$t(_vm.instance.placeholder),
52791
+ placeholder: _vm.getPlaceHolder(),
52748
52792
  hint: _vm.$t(_vm.instance.hint),
52749
52793
  persistentHint: _vm.instance.persistentHint,
52750
52794
  reverse: _vm.instance.reverse,
@@ -52761,7 +52805,9 @@ var __vue_render__$K = function () {
52761
52805
  maxHeight: _vm.instance.menuMaxHeight,
52762
52806
  },
52763
52807
  "search-input": _vm.instance.search,
52764
- "append-icon": _vm.$getIcon(_vm.instance.appendIcon),
52808
+ "append-icon": _vm.$getIcon(
52809
+ _vm.showModalButton ? "tableSearch" : _vm.instance.appendIcon
52810
+ ),
52765
52811
  "append-outer-icon": _vm.$getIcon(_vm.instance.appendOuterIcon),
52766
52812
  "prepend-icon": _vm.$getIcon(_vm.instance.prependOuterIcon),
52767
52813
  "prepend-inner-icon": _vm.$getIcon(_vm.instance.prependIcon),
@@ -53031,7 +53077,7 @@ var __vue_render__$K = function () {
53031
53077
  expression: "instance.selectValue",
53032
53078
  },
53033
53079
  },
53034
- _vm.getIconClickEvents()
53080
+ _vm.getSelectIconClickEvents()
53035
53081
  )
53036
53082
  )
53037
53083
  };
@@ -53041,7 +53087,7 @@ __vue_render__$K._withStripped = true;
53041
53087
  /* style */
53042
53088
  const __vue_inject_styles__$K = function (inject) {
53043
53089
  if (!inject) return
53044
- inject("data-v-f3af3d18_0", { source: ".zd-select .v-input__control .v-input__slot .v-select__slot {\n position: static;\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__prepend-outer {\n margin-right: var(--spacing-1);\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__append-outer {\n margin-left: var(--spacing-1);\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__prepend-outer, .zd-select .v-input__control .v-input__slot .v-select__slot .v-input__append-outer {\n margin-top: 5px;\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__append-inner, .zd-select .v-input__control .v-input__slot .v-select__slot .v-input__prepend-inner {\n padding-left: 0;\n padding-right: 0;\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot input {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.zd-select.zd-select-align-left > .v-input__control > .v-input__slot input {\n text-align: left;\n}\n.zd-select.zd-select-align-center > .v-input__control > .v-input__slot input {\n text-align: center;\n}\n.zd-select.zd-select-align-right > .v-input__control > .v-input__slot input {\n text-align: right;\n}\n.zd-select .v-select__selections {\n padding: 0;\n width: 172px;\n}\n.zd-select .v-select__selections .v-select__selection {\n font-size: var(--zd-font-body1-size);\n font-weight: var(--zd-font-body1-weight);\n margin: 0;\n max-width: none;\n}\n.zd-select .v-select__selections .v-select__selection--disabled {\n opacity: 0.5;\n}\n.zd-select.theme--light {\n color: var(--zd-font-color);\n}\n.zd-select.zd-dense .v-input__append-inner, .zd-select.zd-dense .v-input__prepend-inner {\n margin-top: 0;\n}\n.zd-select-append-item .v-list-item__content {\n font-size: var(--zd-font-body2-size);\n font-weight: var(--zd-font-body2-size);\n color: var(--v-primary-base);\n}\n.zd-select-tooltip {\n z-index: 10000;\n position: fixed;\n color: white;\n background-color: var(--v-grey-lighten1);\n border-radius: var(--border);\n padding: var(--spacing-1) var(--spacing-2);\n opacity: 0.9;\n display: none;\n font-size: 14px;\n line-height: 22px;\n text-transform: none;\n width: auto;\n pointer-events: none;\n white-space: pre;\n}\n.zd-select-tooltip.zd-select-tooltip-show {\n display: block;\n white-space: normal;\n}\n.v-menu__content.zd-select-menu {\n box-shadow: var(--shadow-2);\n max-height: 40vh !important;\n}\n.v-menu__content.zd-select-menu .v-select-list {\n padding: 0;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item {\n height: auto;\n min-height: 40px;\n padding: 0 var(--spacing-4);\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item__content {\n padding: var(--spacing-2) 0;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item:not(.theme--dark) {\n color: var(--zd-font-color);\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item__title {\n font-size: var(--zd-font-body1-size);\n font-weight: var(--zd-font-body1-weight);\n height: auto;\n line-height: unset;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item.v-list-item--disabled .v-list-item__title {\n opacity: 0.5;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item.v-list-item--disabled.primary--text .v-list-item__title {\n color: inherit;\n}\n.v-menu__content.zd-select-menu.zd-dense .v-list-item {\n height: auto;\n min-height: 24px;\n padding: 0 var(--spacing-4);\n}\n.v-menu__content.zd-select-menu.zd-select-align-left .v-list-item__content .v-list-item__title {\n text-align: left;\n}\n.v-menu__content.zd-select-menu.zd-select-align-center .v-list-item__content .v-list-item__title {\n text-align: center;\n}\n.v-menu__content.zd-select-menu.zd-select-align-right .v-list-item__content .v-list-item__title {\n text-align: right;\n}\n.zd-select-overflow {\n overflow: hidden !important;\n text-overflow: ellipsis;\n white-space: nowrap;\n}", map: undefined, media: undefined });
53090
+ inject("data-v-0e3a3adf_0", { source: ".zd-select .v-input__control .v-input__slot .v-select__slot {\n position: static;\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__prepend-outer {\n margin-right: var(--spacing-1);\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__append-outer {\n margin-left: var(--spacing-1);\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__prepend-outer, .zd-select .v-input__control .v-input__slot .v-select__slot .v-input__append-outer {\n margin-top: 5px;\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__append-inner, .zd-select .v-input__control .v-input__slot .v-select__slot .v-input__prepend-inner {\n padding-left: 0;\n padding-right: 0;\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot input {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.zd-select.zd-select-align-left > .v-input__control > .v-input__slot input {\n text-align: left;\n}\n.zd-select.zd-select-align-center > .v-input__control > .v-input__slot input {\n text-align: center;\n}\n.zd-select.zd-select-align-right > .v-input__control > .v-input__slot input {\n text-align: right;\n}\n.zd-select .v-select__selections {\n padding: 0;\n width: 172px;\n}\n.zd-select .v-select__selections .v-select__selection {\n font-size: var(--zd-font-body1-size);\n font-weight: var(--zd-font-body1-weight);\n margin: 0;\n max-width: none;\n}\n.zd-select .v-select__selections .v-select__selection--disabled {\n opacity: 0.5;\n}\n.zd-select.theme--light {\n color: var(--zd-font-color);\n}\n.zd-select.zd-dense .v-input__append-inner, .zd-select.zd-dense .v-input__prepend-inner {\n margin-top: 0;\n}\n.zd-select-append-item .v-list-item__content {\n font-size: var(--zd-font-body2-size);\n font-weight: var(--zd-font-body2-size);\n color: var(--v-primary-base);\n}\n.zd-select.zd-select-modal-selection .v-input__append-inner .v-input__icon--append .v-icon {\n background-color: var(--v-primary-base) !important;\n color: white !important;\n border-radius: 3px !important;\n margin-right: 2px !important;\n transform: rotate(0) !important;\n}\n.zd-select-tooltip {\n z-index: 10000;\n position: fixed;\n color: white;\n background-color: var(--v-grey-lighten1);\n border-radius: var(--border);\n padding: var(--spacing-1) var(--spacing-2);\n opacity: 0.9;\n display: none;\n font-size: 14px;\n line-height: 22px;\n text-transform: none;\n width: auto;\n pointer-events: none;\n white-space: pre;\n}\n.zd-select-tooltip.zd-select-tooltip-show {\n display: block;\n white-space: normal;\n}\n.v-menu__content.zd-select-menu {\n box-shadow: var(--shadow-2);\n max-height: 40vh !important;\n}\n.v-menu__content.zd-select-menu .v-select-list {\n padding: 0;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item {\n height: auto;\n min-height: 40px;\n padding: 0 var(--spacing-4);\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item__content {\n padding: var(--spacing-2) 0;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item:not(.theme--dark) {\n color: var(--zd-font-color);\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item__title {\n font-size: var(--zd-font-body1-size);\n font-weight: var(--zd-font-body1-weight);\n height: auto;\n line-height: unset;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item.v-list-item--disabled .v-list-item__title {\n opacity: 0.5;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item.v-list-item--disabled.primary--text .v-list-item__title {\n color: inherit;\n}\n.v-menu__content.zd-select-menu.zd-dense .v-list-item {\n height: auto;\n min-height: 24px;\n padding: 0 var(--spacing-4);\n}\n.v-menu__content.zd-select-menu.zd-select-align-left .v-list-item__content .v-list-item__title {\n text-align: left;\n}\n.v-menu__content.zd-select-menu.zd-select-align-center .v-list-item__content .v-list-item__title {\n text-align: center;\n}\n.v-menu__content.zd-select-menu.zd-select-align-right .v-list-item__content .v-list-item__title {\n text-align: right;\n}\n.zd-select-overflow {\n overflow: hidden !important;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.zd-select-modal-selection-grid {\n margin-top: 0 !important;\n}", map: undefined, media: undefined });
53045
53091
 
53046
53092
  };
53047
53093
  /* scoped */
@@ -56904,11 +56950,68 @@ let ZdSearch = class ZdSearch extends __vue_component__$1m {
56904
56950
  constructor() {
56905
56951
  super(...arguments);
56906
56952
  this.instanceType = Search;
56953
+ this.dropdownProps = {
56954
+ openOnClick: true,
56955
+ openOnHover: false,
56956
+ openOnFocus: false,
56957
+ offsetY: true,
56958
+ };
56959
+ }
56960
+ selectSearchField({ component }) {
56961
+ const searchField = component.userProperties.fieldName === '__ALL' ? undefined : component.userProperties.fieldName;
56962
+ const changed = this.instance.iterableComponent.searchIn !== searchField;
56963
+ this.instance.iterableComponent.searchIn = searchField;
56964
+ this.$forceUpdate();
56965
+ this.$nextTick(() => {
56966
+ this.instance.hint = this.getHintText();
56967
+ if (changed)
56968
+ this.instance.iterableComponent.setSearch(this.instance.value);
56969
+ });
56970
+ }
56971
+ getHintText() {
56972
+ return this.instance.iterableComponent.searchIn
56973
+ ? this.instance.iterableComponent.getColumn(this.instance.iterableComponent.searchIn).label
56974
+ : this.$t('ALL_FIELDS');
56975
+ }
56976
+ mounted() {
56977
+ var _a;
56978
+ if (!this.$refs.dropdown)
56979
+ return;
56980
+ const dropdown = this.$refs.dropdown.instance;
56981
+ dropdown.children = [{
56982
+ name: `${this.instance.name}_search_all`,
56983
+ component: 'ZdButton',
56984
+ label: 'SEARCH_ALL_FIELDS',
56985
+ cssClass: 'zd-search-buttons',
56986
+ flat: true,
56987
+ events: { click: this.selectSearchField },
56988
+ fieldName: '__ALL',
56989
+ }];
56990
+ (_a = this.instance.iterableComponent) === null || _a === void 0 ? void 0 : _a.columns.forEach((column) => {
56991
+ var _a;
56992
+ if (!((_a = this.instance.iterableComponent) === null || _a === void 0 ? void 0 : _a.isColumnSearchable(column)))
56993
+ return;
56994
+ dropdown.children.push({
56995
+ name: `${this.instance.name}_search_${column.name}`,
56996
+ component: 'ZdButton',
56997
+ label: column.label,
56998
+ cssClass: 'zd-search-buttons',
56999
+ flat: true,
57000
+ events: { click: this.selectSearchField },
57001
+ fieldName: column.name,
57002
+ });
57003
+ });
56907
57004
  }
56908
57005
  getSearchValue() {
56909
57006
  var _a;
56910
57007
  return ((_a = this.instance.iterableComponent) === null || _a === void 0 ? void 0 : _a.datasource.search) || '';
56911
57008
  }
57009
+ toggleDropdown() {
57010
+ const dropdown = Metadata.getInstance(`${this.instance.name}_dropdown`);
57011
+ if (!dropdown)
57012
+ return;
57013
+ dropdown.value = !dropdown.value;
57014
+ }
56912
57015
  };
56913
57016
  __decorate([
56914
57017
  PropWatch({ type: String }),
@@ -56937,7 +57040,27 @@ __decorate([
56937
57040
  ZdSearch = __decorate([
56938
57041
  Component$1
56939
57042
  ], ZdSearch);
56940
- var script$j = ZdSearch;
57043
+ var script$j = ZdSearch;
57044
+ Messages.add({
57045
+ 'pt-BR': {
57046
+ translation: {
57047
+ ALL_FIELDS: 'Todos os Campos',
57048
+ SEARCH_ALL_FIELDS: 'Todos os Campos',
57049
+ },
57050
+ },
57051
+ 'en-US': {
57052
+ translation: {
57053
+ ALL_FIELDS: 'All Fields',
57054
+ SEARCH_ALL_FIELDS: 'All Fields',
57055
+ },
57056
+ },
57057
+ 'es-ES': {
57058
+ translation: {
57059
+ ALL_FIELDS: 'Todos los Campos',
57060
+ SEARCH_ALL_FIELDS: 'Todos los Campos',
57061
+ },
57062
+ },
57063
+ });
56941
57064
 
56942
57065
  /* script */
56943
57066
  const __vue_script__$m = script$j;
@@ -56947,21 +57070,34 @@ var __vue_render__$m = function () {
56947
57070
  var _vm = this;
56948
57071
  var _h = _vm.$createElement;
56949
57072
  var _c = _vm._self._c || _h;
56950
- return _c("zd-text-input", {
56951
- class: ["zd-search", "zd-float-right", _vm.instance.cssClass],
56952
- style: _vm.instance.cssStyle,
56953
- attrs: {
56954
- id: _vm.instance.name,
56955
- name: "zdGridSearch",
56956
- value: _vm.getSearchValue(),
56957
- "instance-object": _vm.instance,
56958
- },
56959
- on: {
56960
- "update:value": function ($event) {
56961
- return _vm.instance.debounceSetSearch($event)
57073
+ return _c(
57074
+ "zd-dropdown",
57075
+ _vm._b(
57076
+ {
57077
+ ref: "dropdown",
57078
+ attrs: {
57079
+ name: _vm.instance.name + "_dropdown",
57080
+ activator: {
57081
+ name: "zdGridSearch",
57082
+ component: "ZdTextInput",
57083
+ class: ["zd-search", "zd-float-right", _vm.instance.cssClass],
57084
+ persistentHint: true,
57085
+ hint: _vm.getHintText(),
57086
+ style: _vm.instance.cssStyle,
57087
+ value: _vm.getSearchValue(),
57088
+ events: {
57089
+ input: _vm.instance.debounceSetSearch,
57090
+ appendIconClick: _vm.toggleDropdown,
57091
+ },
57092
+ "instance-object": _vm.instance,
57093
+ },
57094
+ },
56962
57095
  },
56963
- },
56964
- })
57096
+ "zd-dropdown",
57097
+ _vm.dropdownProps,
57098
+ false
57099
+ )
57100
+ )
56965
57101
  };
56966
57102
  var __vue_staticRenderFns__$m = [];
56967
57103
  __vue_render__$m._withStripped = true;
@@ -56969,7 +57105,7 @@ __vue_render__$m._withStripped = true;
56969
57105
  /* style */
56970
57106
  const __vue_inject_styles__$m = function (inject) {
56971
57107
  if (!inject) return
56972
- inject("data-v-3a30d9cc_0", { source: ".zd-search {\n width: 100%;\n}", map: undefined, media: undefined });
57108
+ inject("data-v-7fb067f0_0", { source: ".zd-search {\n width: 100%;\n}\n.zd-search.zd-input.v-input.zd-no-helper > .v-input__control > .v-text-field__details {\n display: flex;\n}\n.zd-search .v-input__append-inner .v-input__icon--append .v-icon {\n background-color: var(--v-primary-base) !important;\n color: white !important;\n border-radius: 3px !important;\n margin-right: 2px !important;\n}\n.zd-search-buttons {\n display: block;\n width: 100%;\n justify-content: left;\n}", map: undefined, media: undefined });
56973
57109
 
56974
57110
  };
56975
57111
  /* scoped */
@@ -159,7 +159,7 @@
159
159
 
160
160
  beforeCreate() {
161
161
  if (!this.$vuetify || this.$vuetify === this.$root) {
162
- throw new Error('Vuetify is not properly initialized, see https://v2.vuetifyjs.com/getting-started/quick-start#bootstrapping-the-vuetify-object');
162
+ throw new Error('Vuetify is not properly initialized, see https://vuetifyjs.com/getting-started/quick-start#bootstrapping-the-vuetify-object');
163
163
  }
164
164
  },
165
165
 
@@ -1196,7 +1196,7 @@ If you're seeing "$attrs is readonly", it's caused by this`);
1196
1196
  clear: 'fas fa-times-circle',
1197
1197
  success: 'fas fa-check-circle',
1198
1198
  info: 'fas fa-info-circle',
1199
- warning: 'fas fa-exclamation-circle',
1199
+ warning: 'fas fa-exclamation',
1200
1200
  error: 'fas fa-exclamation-triangle',
1201
1201
  prev: 'fas fa-chevron-left',
1202
1202
  next: 'fas fa-chevron-right',
@@ -2212,7 +2212,7 @@ If you're seeing "$attrs is readonly", it's caused by this`);
2212
2212
  }
2213
2213
  Vuetify.install = install$1;
2214
2214
  Vuetify.installed = false;
2215
- Vuetify.version = "2.6.16";
2215
+ Vuetify.version = "2.6.13";
2216
2216
  Vuetify.config = {
2217
2217
  silent: false
2218
2218
  };
@@ -8397,10 +8397,9 @@ If you're seeing "$attrs is readonly", it's caused by this`);
8397
8397
  const {
8398
8398
  children,
8399
8399
  listeners,
8400
- props,
8401
- data
8400
+ props
8402
8401
  } = ctx;
8403
- const newData = mergeData({
8402
+ const data = {
8404
8403
  staticClass: 'v-label',
8405
8404
  class: {
8406
8405
  'v-label--active': props.value,
@@ -8418,8 +8417,8 @@ If you're seeing "$attrs is readonly", it's caused by this`);
8418
8417
  position: props.absolute ? 'absolute' : 'relative'
8419
8418
  },
8420
8419
  ref: 'label'
8421
- }, data);
8422
- return h('label', Colorable.options.methods.setTextColor(props.focused && props.color, newData), children);
8420
+ };
8421
+ return h('label', Colorable.options.methods.setTextColor(props.focused && props.color, data), children);
8423
8422
  }
8424
8423
 
8425
8424
  });
@@ -10094,12 +10093,6 @@ If you're seeing "$attrs is readonly", it's caused by this`);
10094
10093
  (_a = this.$refs.menu) === null || _a === void 0 ? void 0 : _a.updateDimensions();
10095
10094
  });
10096
10095
  }
10097
-
10098
- if (this.hideSelected) {
10099
- this.$nextTick(() => {
10100
- this.onScroll();
10101
- });
10102
- }
10103
10096
  },
10104
10097
 
10105
10098
  isMenuActive(val) {
@@ -10328,18 +10321,19 @@ If you're seeing "$attrs is readonly", it's caused by this`);
10328
10321
 
10329
10322
  genMenu() {
10330
10323
  const props = this.$_menuProps;
10331
- props.activator = this.$refs['input-slot'];
10332
- if ('attach' in props) ;else if ( // TODO: make this a computed property or helper or something
10324
+ props.activator = this.$refs['input-slot']; // Attach to root el so that
10325
+ // menu covers prepend/append icons
10326
+
10327
+ if ( // TODO: make this a computed property or helper or something
10333
10328
  this.attach === '' || // If used as a boolean prop (<v-menu attach>)
10334
10329
  this.attach === true || // If bound to a boolean (<v-menu :attach="true">)
10335
10330
  this.attach === 'attach' // If bound as boolean prop in pug (v-menu(attach))
10336
10331
  ) {
10337
- // Attach to root el so that
10338
- // menu covers prepend/append icons
10339
10332
  props.attach = this.$el;
10340
10333
  } else {
10341
10334
  props.attach = this.attach;
10342
10335
  }
10336
+
10343
10337
  return this.$createElement(VMenu, {
10344
10338
  attrs: {
10345
10339
  role: undefined
@@ -10453,7 +10447,7 @@ If you're seeing "$attrs is readonly", it's caused by this`);
10453
10447
  },
10454
10448
 
10455
10449
  onKeyPress(e) {
10456
- if (this.multiple || !this.isInteractive || this.disableLookup || e.key.length > 1 || e.ctrlKey || e.metaKey || e.altKey) return;
10450
+ if (this.multiple || !this.isInteractive || this.disableLookup) return;
10457
10451
  const KEYBOARD_LOOKUP_THRESHOLD = 1000; // milliseconds
10458
10452
 
10459
10453
  const now = performance.now();
@@ -11770,7 +11764,7 @@ If you're seeing "$attrs is readonly", it's caused by this`);
11770
11764
  if (!alreadyAtStart && scrollingUp) return true;
11771
11765
  if (!alreadyAtEnd && scrollingDown) return true;
11772
11766
 
11773
- if ((alreadyAtStart || alreadyAtEnd) && el.parentNode) {
11767
+ if (alreadyAtStart || alreadyAtEnd) {
11774
11768
  return this.shouldScroll(el.parentNode, e);
11775
11769
  }
11776
11770
 
@@ -19553,13 +19547,13 @@ If you're seeing "$attrs is readonly", it's caused by this`);
19553
19547
 
19554
19548
  methods: {
19555
19549
  onKeyDown(e) {
19556
- this.shiftKeyDown = e.keyCode === keyCodes.shift || e.shiftKey;
19550
+ if (e.keyCode !== keyCodes.shift) return;
19551
+ this.shiftKeyDown = true;
19557
19552
  },
19558
19553
 
19559
19554
  onKeyUp(e) {
19560
- if (e.keyCode === keyCodes.shift || !e.shiftKey) {
19561
- this.shiftKeyDown = false;
19562
- }
19555
+ if (e.keyCode !== keyCodes.shift) return;
19556
+ this.shiftKeyDown = false;
19563
19557
  },
19564
19558
 
19565
19559
  toggleSelectAll(value) {
@@ -20855,8 +20849,7 @@ If you're seeing "$attrs is readonly", it's caused by this`);
20855
20849
  return this.$createElement(VSimpleTable, {
20856
20850
  props: simpleProps,
20857
20851
  class: {
20858
- 'v-data-table--mobile': this.isMobile,
20859
- 'v-data-table--selectable': this.showSelect
20852
+ 'v-data-table--mobile': this.isMobile
20860
20853
  }
20861
20854
  }, [this.proxySlot('top', getSlot(this, 'top', { ...props,
20862
20855
  isMobile: this.isMobile
@@ -31592,7 +31585,7 @@ If you're seeing "$attrs is readonly", it's caused by this`);
31592
31585
  clear: 'fas fa-times-circle',
31593
31586
  success: 'fas fa-check-circle',
31594
31587
  info: 'fas fa-info-circle',
31595
- warning: 'fas fa-exclamation-circle',
31588
+ warning: 'fas fa-exclamation',
31596
31589
  error: 'fas fa-exclamation-triangle',
31597
31590
  prev: 'fas fa-chevron-left',
31598
31591
  next: 'fas fa-chevron-right',
@@ -32011,23 +32004,23 @@ If you're seeing "$attrs is readonly", it's caused by this`);
32011
32004
  badge: 'شارة',
32012
32005
  close: 'إغلاق',
32013
32006
  dataIterator: {
32014
- noResultsText: 'لم يتم إيجاد نتائج',
32015
- loadingText: 'يتم جلب العناصر...'
32007
+ noResultsText: 'لا توجد سجلات مطابقة',
32008
+ loadingText: 'تحميل العنصر...'
32016
32009
  },
32017
32010
  dataTable: {
32018
- itemsPerPageText: 'عدد الصفوف لكل صفحة:',
32011
+ itemsPerPageText: 'الصفوف لكل صفحة:',
32019
32012
  ariaLabel: {
32020
- sortDescending: 'مرتب تنازلياً.',
32021
- sortAscending: 'مرتب تصاعدياً.',
32022
- sortNone: 'غير مرتب.',
32023
- activateNone: 'نشط لإزالة الترتيب.',
32024
- activateDescending: 'نشط للترتيب تنازلياً.',
32025
- activateAscending: 'نشط للترتيب تصاعدياً.'
32013
+ sortDescending: 'مفروز تنازلي. تنشيط لإزالة الفرز.',
32014
+ sortAscending: 'مفروز تصاعدي. تنشيط للفرز التنازلي.',
32015
+ sortNone: 'غير مفروزة. تفعيل لفرز تصاعدي.',
32016
+ activateNone: 'Activate to remove sorting.',
32017
+ activateDescending: 'Activate to sort descending.',
32018
+ activateAscending: 'Activate to sort ascending.'
32026
32019
  },
32027
- sortBy: 'رتب حسب'
32020
+ sortBy: 'مفروزة حسب'
32028
32021
  },
32029
32022
  dataFooter: {
32030
- itemsPerPageText: 'عدد العناصر لكل صفحة:',
32023
+ itemsPerPageText: 'العناصر لكل صفحة:',
32031
32024
  itemsPerPageAll: 'الكل',
32032
32025
  nextPage: 'الصفحة التالية',
32033
32026
  prevPage: 'الصفحة السابقة',
@@ -32036,18 +32029,18 @@ If you're seeing "$attrs is readonly", it's caused by this`);
32036
32029
  pageText: '{0}-{1} من {2}'
32037
32030
  },
32038
32031
  datePicker: {
32039
- itemsSelected: 'تم تحديد {0}',
32032
+ itemsSelected: '{0} مختارة',
32040
32033
  nextMonthAriaLabel: 'الشهر القادم',
32041
32034
  nextYearAriaLabel: 'العام القادم',
32042
32035
  prevMonthAriaLabel: 'الشهر الماضى',
32043
32036
  prevYearAriaLabel: 'السنة الماضية'
32044
32037
  },
32045
- noDataText: 'لا توجد بيانات',
32038
+ noDataText: 'لا توجد بيانات متاحة',
32046
32039
  carousel: {
32047
- prev: 'المعروض السابق',
32048
- next: 'المعروض التالي',
32040
+ prev: 'البصري السابق',
32041
+ next: 'البصري التالي',
32049
32042
  ariaLabel: {
32050
- delimiter: 'المعروض رقم {0} من {1}'
32043
+ delimiter: 'Carousel slide {0} of {1}'
32051
32044
  }
32052
32045
  },
32053
32046
  calendar: {
@@ -32063,16 +32056,16 @@ If you're seeing "$attrs is readonly", it's caused by this`);
32063
32056
  },
32064
32057
  pagination: {
32065
32058
  ariaLabel: {
32066
- wrapper: 'الإنتقال بين الصفحات',
32059
+ wrapper: 'ترقيم الصفحات الملاحة',
32067
32060
  next: 'الصفحة التالية',
32068
32061
  previous: 'الصفحة السابقة',
32069
- page: '{0} انتقل إلى الصفحة',
32070
- currentPage: '{0} الصفحة الحالية رقمها'
32062
+ page: '{0} انتقل إلى صفحة',
32063
+ currentPage: '{0} الصفحة الحالية ، الصفحة'
32071
32064
  }
32072
32065
  },
32073
32066
  rating: {
32074
32067
  ariaLabel: {
32075
- icon: 'القييم {0} من {1}'
32068
+ icon: 'Rating {0} of {1}'
32076
32069
  }
32077
32070
  }
32078
32071
  };
@@ -36845,7 +36838,7 @@ If you're seeing "$attrs is readonly", it's caused by this`);
36845
36838
  exports.default = Vuetify;
36846
36839
  Vuetify.install = install_1.install;
36847
36840
  Vuetify.installed = false;
36848
- Vuetify.version = "2.6.16";
36841
+ Vuetify.version = "2.6.13";
36849
36842
  Vuetify.config = {
36850
36843
  silent: false
36851
36844
  };
@@ -42242,6 +42235,7 @@ If you're seeing "$attrs is readonly", it's caused by this`);
42242
42235
  "zd-no-border": !_vm.instance.showBorder,
42243
42236
  "zd-no-helper":
42244
42237
  !_vm.instance.showHelper &&
42238
+ !_vm.instance.persistentHint &&
42245
42239
  !(
42246
42240
  _vm.instance.alwaysShowError &&
42247
42241
  _vm.$refs.instance &&
@@ -42379,7 +42373,7 @@ If you're seeing "$attrs is readonly", it's caused by this`);
42379
42373
  /* style */
42380
42374
  const __vue_inject_styles__$1m = function (inject) {
42381
42375
  if (!inject) return
42382
- inject("data-v-28353e64_0", { source: ".zd-text-input__affix, .v-input.zd-text-input.zd-text-input--suffix .v-input__append-inner > .zd-text-input__append .zd-text-input__append__suffix, .v-input.zd-text-input > .v-input__control > .v-input__slot .v-text-field__prefix {\n font-weight: var(--zd-font-body2-weight);\n color: var(--v-grey-lighten2);\n font-size: var(--zd-font-body2-size);\n line-height: 15px;\n padding: 3px 0 4px 0;\n}\n.zd-input.v-input.v-input--is-readonly > .v-input__control > .v-input__slot {\n background-color: var(--v-grey-lighten5);\n}\n.zd-input.v-input.v-input--is-readonly.theme--dark > .v-input__control > .v-input__slot {\n background-color: var(--v-grey-darken2);\n}\n.v-input.zd-text-input {\n padding-top: var(--spacing-4);\n}\n.v-input.zd-text-input .v-input__prepend-outer {\n margin-right: var(--spacing-1);\n}\n.v-input.zd-text-input .v-input__append-outer {\n margin-left: var(--spacing-1);\n}\n.v-input.zd-text-input .v-input__prepend-outer, .v-input.zd-text-input .v-input__append-outer {\n margin-top: calc(var(--spacing-7) / 2 - var(--icon-size) / 2);\n margin-bottom: calc(var(--spacing-7) / 2 - var(--icon-size) / 2);\n}\n.v-input.zd-text-input .v-input__append-inner, .v-input.zd-text-input .v-input__prepend-inner {\n padding: 0;\n margin: 0;\n align-self: unset;\n}\n.v-input.zd-text-input .v-input__prepend-outer .v-icon, .v-input.zd-text-input .v-input__append-outer .v-icon, .v-input.zd-text-input .v-input__append-inner .v-icon, .v-input.zd-text-input .v-input__prepend-inner .v-icon {\n font-size: var(--icon-size);\n}\n.v-input.zd-text-input > .v-input__control > .v-input__slot .v-text-field__prefix {\n padding-left: var(--spacing-2);\n}\n.v-input.zd-text-input > .v-input__control > .v-input__slot .v-text-field__slot {\n position: static;\n}\n.v-input.zd-text-input.v-text-field--reverse > .v-input__control > .v-input__slot label {\n left: auto !important;\n}\n.v-input.zd-text-input.zd-text-input--suffix .v-input__append-inner > .zd-text-input__append {\n align-items: center;\n display: inline-flex;\n flex: 1 0 auto;\n justify-content: center;\n}\n.v-input.zd-text-input.zd-text-input--suffix .v-input__append-inner > .zd-text-input__append .zd-text-input__append__suffix {\n padding-right: var(--spacing-2);\n}\n.v-input.zd-text-input.zd-text-input--prepend-icon > .v-input__control > .v-input__slot > .v-input__prepend-inner {\n padding: 0;\n}\n.v-input.zd-text-input.zd-text-input--append-icon > .v-input__control > .v-input__slot > .v-input__append-inner {\n padding: 0;\n}\n.v-input.zd-text-input.zd-dense .v-input__prepend-outer, .v-input.zd-text-input.zd-dense .v-input__append-outer {\n margin-top: calc(var(--icon-size) / 2 - var(--icon-size) / 2);\n margin-bottom: calc(var(--icon-size) / 2 - var(--icon-size) / 2);\n}\n.v-input.zd-text-input.zd-dense .v-input__prepend-outer .v-icon, .v-input.zd-text-input.zd-dense .v-input__append-outer .v-icon, .v-input.zd-text-input.zd-dense .v-input__append-inner .v-icon, .v-input.zd-text-input.zd-dense .v-input__prepend-inner .v-icon {\n font-size: var(--icon-size-small);\n}\n.v-input.zd-text-input.zd-dense .v-input__slot .v-text-field__prefix {\n height: auto;\n}\n.v-input.zd-text-input.zd-no-border:not(.error--text) .v-input__append-inner:last-child,\n.v-input.zd-text-input.zd-no-border:not(.error--text) .v-input__prepend-inner:first-child {\n margin: 0;\n}\n.v-input.zd-text-input.zd-no-border:not(.error--text) > .v-input__control > .v-input__slot input {\n padding: 0;\n}\n.v-input.zd-text-input.zd-text-align-left > .v-input__control > .v-input__slot input {\n text-align: left;\n}\n.v-input.zd-text-input.zd-color-type > .v-input__control > .v-input__slot input {\n padding: 0;\n cursor: pointer;\n max-height: 22px;\n}\n.v-input.zd-text-input.zd-color-type:not(.zd-dense) > .v-input__control > .v-input__slot input {\n max-height: 34px;\n}\n.v-input.zd-text-input.zd-text-align-center > .v-input__control > .v-input__slot input {\n text-align: center;\n}\n.v-input.zd-text-input.zd-text-align-right > .v-input__control > .v-input__slot input {\n text-align: right;\n}", map: undefined, media: undefined });
42376
+ inject("data-v-ecb32ef8_0", { source: ".zd-text-input__affix, .v-input.zd-text-input.zd-text-input--suffix .v-input__append-inner > .zd-text-input__append .zd-text-input__append__suffix, .v-input.zd-text-input > .v-input__control > .v-input__slot .v-text-field__prefix {\n font-weight: var(--zd-font-body2-weight);\n color: var(--v-grey-lighten2);\n font-size: var(--zd-font-body2-size);\n line-height: 15px;\n padding: 3px 0 4px 0;\n}\n.zd-input.v-input.v-input--is-readonly > .v-input__control > .v-input__slot {\n background-color: var(--v-grey-lighten5);\n}\n.zd-input.v-input.v-input--is-readonly.theme--dark > .v-input__control > .v-input__slot {\n background-color: var(--v-grey-darken2);\n}\n.v-input.zd-text-input {\n padding-top: var(--spacing-4);\n}\n.v-input.zd-text-input .v-input__prepend-outer {\n margin-right: var(--spacing-1);\n}\n.v-input.zd-text-input .v-input__append-outer {\n margin-left: var(--spacing-1);\n}\n.v-input.zd-text-input .v-input__prepend-outer, .v-input.zd-text-input .v-input__append-outer {\n margin-top: calc(var(--spacing-7) / 2 - var(--icon-size) / 2);\n margin-bottom: calc(var(--spacing-7) / 2 - var(--icon-size) / 2);\n}\n.v-input.zd-text-input .v-input__append-inner, .v-input.zd-text-input .v-input__prepend-inner {\n padding: 0;\n margin: 0;\n align-self: unset;\n}\n.v-input.zd-text-input .v-input__prepend-outer .v-icon, .v-input.zd-text-input .v-input__append-outer .v-icon, .v-input.zd-text-input .v-input__append-inner .v-icon, .v-input.zd-text-input .v-input__prepend-inner .v-icon {\n font-size: var(--icon-size);\n}\n.v-input.zd-text-input > .v-input__control > .v-input__slot .v-text-field__prefix {\n padding-left: var(--spacing-2);\n}\n.v-input.zd-text-input > .v-input__control > .v-input__slot .v-text-field__slot {\n position: static;\n}\n.v-input.zd-text-input.v-text-field--reverse > .v-input__control > .v-input__slot label {\n left: auto !important;\n}\n.v-input.zd-text-input.zd-text-input--suffix .v-input__append-inner > .zd-text-input__append {\n align-items: center;\n display: inline-flex;\n flex: 1 0 auto;\n justify-content: center;\n}\n.v-input.zd-text-input.zd-text-input--suffix .v-input__append-inner > .zd-text-input__append .zd-text-input__append__suffix {\n padding-right: var(--spacing-2);\n}\n.v-input.zd-text-input.zd-text-input--prepend-icon > .v-input__control > .v-input__slot > .v-input__prepend-inner {\n padding: 0;\n}\n.v-input.zd-text-input.zd-text-input--append-icon > .v-input__control > .v-input__slot > .v-input__append-inner {\n padding: 0;\n}\n.v-input.zd-text-input.zd-dense .v-input__prepend-outer, .v-input.zd-text-input.zd-dense .v-input__append-outer {\n margin-top: calc(var(--icon-size) / 2 - var(--icon-size) / 2);\n margin-bottom: calc(var(--icon-size) / 2 - var(--icon-size) / 2);\n}\n.v-input.zd-text-input.zd-dense .v-input__prepend-outer .v-icon, .v-input.zd-text-input.zd-dense .v-input__append-outer .v-icon, .v-input.zd-text-input.zd-dense .v-input__append-inner .v-icon, .v-input.zd-text-input.zd-dense .v-input__prepend-inner .v-icon {\n font-size: var(--icon-size-small);\n}\n.v-input.zd-text-input.zd-dense .v-input__slot .v-text-field__prefix {\n height: auto;\n}\n.v-input.zd-text-input.zd-no-border:not(.error--text) .v-input__append-inner:last-child,\n.v-input.zd-text-input.zd-no-border:not(.error--text) .v-input__prepend-inner:first-child {\n margin: 0;\n}\n.v-input.zd-text-input.zd-no-border:not(.error--text) > .v-input__control > .v-input__slot input {\n padding: 0;\n}\n.v-input.zd-text-input.zd-text-align-left > .v-input__control > .v-input__slot input {\n text-align: left;\n}\n.v-input.zd-text-input.zd-color-type > .v-input__control > .v-input__slot input {\n padding: 0;\n cursor: pointer;\n max-height: 22px;\n}\n.v-input.zd-text-input.zd-color-type:not(.zd-dense) > .v-input__control > .v-input__slot input {\n max-height: 34px;\n}\n.v-input.zd-text-input.zd-text-align-center > .v-input__control > .v-input__slot input {\n text-align: center;\n}\n.v-input.zd-text-input.zd-text-align-right > .v-input__control > .v-input__slot input {\n text-align: right;\n}", map: undefined, media: undefined });
42383
42377
 
42384
42378
  };
42385
42379
  /* scoped */
@@ -45981,6 +45975,10 @@ If you're seeing "$attrs is readonly", it's caused by this`);
45981
45975
  vuePropertyDecorator.Prop({ type: [String, Boolean], default: () => { var _a; return ((_a = core.Config.iterableSearchVisibleOnly) !== null && _a !== void 0 ? _a : true); } }),
45982
45976
  __metadata("design:type", Object)
45983
45977
  ], ZdIterable.prototype, "searchVisibleOnly", void 0);
45978
+ __decorate([
45979
+ vuePropertyDecorator.Prop({ type: [String, Boolean], default: undefined }),
45980
+ __metadata("design:type", Object)
45981
+ ], ZdIterable.prototype, "searchIn", void 0);
45984
45982
  ZdIterable = __decorate([
45985
45983
  vuePropertyDecorator.Component
45986
45984
  ], ZdIterable);
@@ -52346,6 +52344,9 @@ If you're seeing "$attrs is readonly", it's caused by this`);
52346
52344
  this.originalOnScroll = this.componentRef.onScroll;
52347
52345
  this.componentRef.onScroll = this.onScroll;
52348
52346
  this.applyAutofocus();
52347
+ this.instance.viewCloseMenu = () => {
52348
+ this.$refs.instance.isMenuActive = false;
52349
+ };
52349
52350
  }
52350
52351
  mouseenter(event) {
52351
52352
  this.instance.mouseenter(event, this.$el);
@@ -52446,7 +52447,7 @@ If you're seeing "$attrs is readonly", it's caused by this`);
52446
52447
  checkOverflow(element) {
52447
52448
  if (!element)
52448
52449
  return;
52449
- const overflow = element.clientWidth < element.scrollWidth;
52450
+ const overflow = element.clientWidth < element.scrollWidth - 5;
52450
52451
  const tooltip = this.$refs.tooltip;
52451
52452
  if (overflow && tooltip) {
52452
52453
  tooltip.classList.add('zd-select-tooltip-show');
@@ -52563,6 +52564,40 @@ If you're seeing "$attrs is readonly", it's caused by this`);
52563
52564
  setMenuVisibility(visibility) {
52564
52565
  this.componentRef.isMenuActive = visibility && visibility !== 'hide';
52565
52566
  }
52567
+ get showModalButton() {
52568
+ return this.instance.modalSelection
52569
+ && this.instance.modalSelectionFields
52570
+ && this.instance.modalSelectionFields.length > 0;
52571
+ }
52572
+ getSelectIconClickEvents() {
52573
+ const events = {};
52574
+ if (this.instance.events.appendIconClick || this.showModalButton) {
52575
+ events['click:append'] = (event) => {
52576
+ this.appendIconClick(event);
52577
+ if (this.showModalButton) {
52578
+ this.instance.openModalSelection();
52579
+ }
52580
+ };
52581
+ }
52582
+ if (this.instance.events.appendOuterIconClick) {
52583
+ events['click:append-outer'] = this.appendOuterIconClick;
52584
+ }
52585
+ if (this.instance.events.prependOuterIconClick) {
52586
+ events['click:prepend'] = this.prependOuterIconClick;
52587
+ }
52588
+ if (this.instance.events.prependIconClick) {
52589
+ events['click:prepend-inner'] = this.prependIconClick;
52590
+ }
52591
+ return events;
52592
+ }
52593
+ getPlaceHolder() {
52594
+ if (this.instance.placeholder)
52595
+ return core.I18n.translate(this.instance.placeholder);
52596
+ if (this.showModalButton) {
52597
+ return core.I18n.translate('SELECT_MODAL_KEYMAP');
52598
+ }
52599
+ return '';
52600
+ }
52566
52601
  };
52567
52602
  __decorate([
52568
52603
  PropWatch({ type: String, default: 'expand' }),
@@ -52656,6 +52691,14 @@ If you're seeing "$attrs is readonly", it's caused by this`);
52656
52691
  PropWatch({ type: [String, Boolean], default: true }),
52657
52692
  __metadata("design:type", Boolean)
52658
52693
  ], ZdSelect.prototype, "closeOnScroll", void 0);
52694
+ __decorate([
52695
+ PropWatch({ type: [String, Boolean], default: false }),
52696
+ __metadata("design:type", Boolean)
52697
+ ], ZdSelect.prototype, "modalSelection", void 0);
52698
+ __decorate([
52699
+ PropWatch({ type: [String, Array], default: () => [] }),
52700
+ __metadata("design:type", Array)
52701
+ ], ZdSelect.prototype, "modalSelectionFields", void 0);
52659
52702
  __decorate([
52660
52703
  vuePropertyDecorator.Watch('instance.closeOnScroll'),
52661
52704
  __metadata("design:type", Function),
@@ -52713,6 +52756,7 @@ If you're seeing "$attrs is readonly", it's caused by this`);
52713
52756
  "zd-dense": _vm.instance.dense,
52714
52757
  "zd-select-autocomplete": _vm.instance.autocomplete,
52715
52758
  "zd-input-required": _vm.instance.validations.required,
52759
+ "zd-select-modal-selection": _vm.showModalButton,
52716
52760
  },
52717
52761
  "zd-select-align-" +
52718
52762
  (_vm.instance.reverse ? "right" : _vm.instance.align),
@@ -52743,7 +52787,7 @@ If you're seeing "$attrs is readonly", it's caused by this`);
52743
52787
  label: _vm.instance.showLabel
52744
52788
  ? _vm.$t(_vm.instance.label)
52745
52789
  : undefined,
52746
- placeholder: _vm.$t(_vm.instance.placeholder),
52790
+ placeholder: _vm.getPlaceHolder(),
52747
52791
  hint: _vm.$t(_vm.instance.hint),
52748
52792
  persistentHint: _vm.instance.persistentHint,
52749
52793
  reverse: _vm.instance.reverse,
@@ -52760,7 +52804,9 @@ If you're seeing "$attrs is readonly", it's caused by this`);
52760
52804
  maxHeight: _vm.instance.menuMaxHeight,
52761
52805
  },
52762
52806
  "search-input": _vm.instance.search,
52763
- "append-icon": _vm.$getIcon(_vm.instance.appendIcon),
52807
+ "append-icon": _vm.$getIcon(
52808
+ _vm.showModalButton ? "tableSearch" : _vm.instance.appendIcon
52809
+ ),
52764
52810
  "append-outer-icon": _vm.$getIcon(_vm.instance.appendOuterIcon),
52765
52811
  "prepend-icon": _vm.$getIcon(_vm.instance.prependOuterIcon),
52766
52812
  "prepend-inner-icon": _vm.$getIcon(_vm.instance.prependIcon),
@@ -53030,7 +53076,7 @@ If you're seeing "$attrs is readonly", it's caused by this`);
53030
53076
  expression: "instance.selectValue",
53031
53077
  },
53032
53078
  },
53033
- _vm.getIconClickEvents()
53079
+ _vm.getSelectIconClickEvents()
53034
53080
  )
53035
53081
  )
53036
53082
  };
@@ -53040,7 +53086,7 @@ If you're seeing "$attrs is readonly", it's caused by this`);
53040
53086
  /* style */
53041
53087
  const __vue_inject_styles__$K = function (inject) {
53042
53088
  if (!inject) return
53043
- inject("data-v-f3af3d18_0", { source: ".zd-select .v-input__control .v-input__slot .v-select__slot {\n position: static;\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__prepend-outer {\n margin-right: var(--spacing-1);\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__append-outer {\n margin-left: var(--spacing-1);\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__prepend-outer, .zd-select .v-input__control .v-input__slot .v-select__slot .v-input__append-outer {\n margin-top: 5px;\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__append-inner, .zd-select .v-input__control .v-input__slot .v-select__slot .v-input__prepend-inner {\n padding-left: 0;\n padding-right: 0;\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot input {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.zd-select.zd-select-align-left > .v-input__control > .v-input__slot input {\n text-align: left;\n}\n.zd-select.zd-select-align-center > .v-input__control > .v-input__slot input {\n text-align: center;\n}\n.zd-select.zd-select-align-right > .v-input__control > .v-input__slot input {\n text-align: right;\n}\n.zd-select .v-select__selections {\n padding: 0;\n width: 172px;\n}\n.zd-select .v-select__selections .v-select__selection {\n font-size: var(--zd-font-body1-size);\n font-weight: var(--zd-font-body1-weight);\n margin: 0;\n max-width: none;\n}\n.zd-select .v-select__selections .v-select__selection--disabled {\n opacity: 0.5;\n}\n.zd-select.theme--light {\n color: var(--zd-font-color);\n}\n.zd-select.zd-dense .v-input__append-inner, .zd-select.zd-dense .v-input__prepend-inner {\n margin-top: 0;\n}\n.zd-select-append-item .v-list-item__content {\n font-size: var(--zd-font-body2-size);\n font-weight: var(--zd-font-body2-size);\n color: var(--v-primary-base);\n}\n.zd-select-tooltip {\n z-index: 10000;\n position: fixed;\n color: white;\n background-color: var(--v-grey-lighten1);\n border-radius: var(--border);\n padding: var(--spacing-1) var(--spacing-2);\n opacity: 0.9;\n display: none;\n font-size: 14px;\n line-height: 22px;\n text-transform: none;\n width: auto;\n pointer-events: none;\n white-space: pre;\n}\n.zd-select-tooltip.zd-select-tooltip-show {\n display: block;\n white-space: normal;\n}\n.v-menu__content.zd-select-menu {\n box-shadow: var(--shadow-2);\n max-height: 40vh !important;\n}\n.v-menu__content.zd-select-menu .v-select-list {\n padding: 0;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item {\n height: auto;\n min-height: 40px;\n padding: 0 var(--spacing-4);\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item__content {\n padding: var(--spacing-2) 0;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item:not(.theme--dark) {\n color: var(--zd-font-color);\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item__title {\n font-size: var(--zd-font-body1-size);\n font-weight: var(--zd-font-body1-weight);\n height: auto;\n line-height: unset;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item.v-list-item--disabled .v-list-item__title {\n opacity: 0.5;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item.v-list-item--disabled.primary--text .v-list-item__title {\n color: inherit;\n}\n.v-menu__content.zd-select-menu.zd-dense .v-list-item {\n height: auto;\n min-height: 24px;\n padding: 0 var(--spacing-4);\n}\n.v-menu__content.zd-select-menu.zd-select-align-left .v-list-item__content .v-list-item__title {\n text-align: left;\n}\n.v-menu__content.zd-select-menu.zd-select-align-center .v-list-item__content .v-list-item__title {\n text-align: center;\n}\n.v-menu__content.zd-select-menu.zd-select-align-right .v-list-item__content .v-list-item__title {\n text-align: right;\n}\n.zd-select-overflow {\n overflow: hidden !important;\n text-overflow: ellipsis;\n white-space: nowrap;\n}", map: undefined, media: undefined });
53089
+ inject("data-v-0e3a3adf_0", { source: ".zd-select .v-input__control .v-input__slot .v-select__slot {\n position: static;\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__prepend-outer {\n margin-right: var(--spacing-1);\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__append-outer {\n margin-left: var(--spacing-1);\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__prepend-outer, .zd-select .v-input__control .v-input__slot .v-select__slot .v-input__append-outer {\n margin-top: 5px;\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__append-inner, .zd-select .v-input__control .v-input__slot .v-select__slot .v-input__prepend-inner {\n padding-left: 0;\n padding-right: 0;\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot input {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.zd-select.zd-select-align-left > .v-input__control > .v-input__slot input {\n text-align: left;\n}\n.zd-select.zd-select-align-center > .v-input__control > .v-input__slot input {\n text-align: center;\n}\n.zd-select.zd-select-align-right > .v-input__control > .v-input__slot input {\n text-align: right;\n}\n.zd-select .v-select__selections {\n padding: 0;\n width: 172px;\n}\n.zd-select .v-select__selections .v-select__selection {\n font-size: var(--zd-font-body1-size);\n font-weight: var(--zd-font-body1-weight);\n margin: 0;\n max-width: none;\n}\n.zd-select .v-select__selections .v-select__selection--disabled {\n opacity: 0.5;\n}\n.zd-select.theme--light {\n color: var(--zd-font-color);\n}\n.zd-select.zd-dense .v-input__append-inner, .zd-select.zd-dense .v-input__prepend-inner {\n margin-top: 0;\n}\n.zd-select-append-item .v-list-item__content {\n font-size: var(--zd-font-body2-size);\n font-weight: var(--zd-font-body2-size);\n color: var(--v-primary-base);\n}\n.zd-select.zd-select-modal-selection .v-input__append-inner .v-input__icon--append .v-icon {\n background-color: var(--v-primary-base) !important;\n color: white !important;\n border-radius: 3px !important;\n margin-right: 2px !important;\n transform: rotate(0) !important;\n}\n.zd-select-tooltip {\n z-index: 10000;\n position: fixed;\n color: white;\n background-color: var(--v-grey-lighten1);\n border-radius: var(--border);\n padding: var(--spacing-1) var(--spacing-2);\n opacity: 0.9;\n display: none;\n font-size: 14px;\n line-height: 22px;\n text-transform: none;\n width: auto;\n pointer-events: none;\n white-space: pre;\n}\n.zd-select-tooltip.zd-select-tooltip-show {\n display: block;\n white-space: normal;\n}\n.v-menu__content.zd-select-menu {\n box-shadow: var(--shadow-2);\n max-height: 40vh !important;\n}\n.v-menu__content.zd-select-menu .v-select-list {\n padding: 0;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item {\n height: auto;\n min-height: 40px;\n padding: 0 var(--spacing-4);\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item__content {\n padding: var(--spacing-2) 0;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item:not(.theme--dark) {\n color: var(--zd-font-color);\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item__title {\n font-size: var(--zd-font-body1-size);\n font-weight: var(--zd-font-body1-weight);\n height: auto;\n line-height: unset;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item.v-list-item--disabled .v-list-item__title {\n opacity: 0.5;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item.v-list-item--disabled.primary--text .v-list-item__title {\n color: inherit;\n}\n.v-menu__content.zd-select-menu.zd-dense .v-list-item {\n height: auto;\n min-height: 24px;\n padding: 0 var(--spacing-4);\n}\n.v-menu__content.zd-select-menu.zd-select-align-left .v-list-item__content .v-list-item__title {\n text-align: left;\n}\n.v-menu__content.zd-select-menu.zd-select-align-center .v-list-item__content .v-list-item__title {\n text-align: center;\n}\n.v-menu__content.zd-select-menu.zd-select-align-right .v-list-item__content .v-list-item__title {\n text-align: right;\n}\n.zd-select-overflow {\n overflow: hidden !important;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.zd-select-modal-selection-grid {\n margin-top: 0 !important;\n}", map: undefined, media: undefined });
53044
53090
 
53045
53091
  };
53046
53092
  /* scoped */
@@ -56903,11 +56949,68 @@ If you're seeing "$attrs is readonly", it's caused by this`);
56903
56949
  constructor() {
56904
56950
  super(...arguments);
56905
56951
  this.instanceType = common.Search;
56952
+ this.dropdownProps = {
56953
+ openOnClick: true,
56954
+ openOnHover: false,
56955
+ openOnFocus: false,
56956
+ offsetY: true,
56957
+ };
56958
+ }
56959
+ selectSearchField({ component }) {
56960
+ const searchField = component.userProperties.fieldName === '__ALL' ? undefined : component.userProperties.fieldName;
56961
+ const changed = this.instance.iterableComponent.searchIn !== searchField;
56962
+ this.instance.iterableComponent.searchIn = searchField;
56963
+ this.$forceUpdate();
56964
+ this.$nextTick(() => {
56965
+ this.instance.hint = this.getHintText();
56966
+ if (changed)
56967
+ this.instance.iterableComponent.setSearch(this.instance.value);
56968
+ });
56969
+ }
56970
+ getHintText() {
56971
+ return this.instance.iterableComponent.searchIn
56972
+ ? this.instance.iterableComponent.getColumn(this.instance.iterableComponent.searchIn).label
56973
+ : this.$t('ALL_FIELDS');
56974
+ }
56975
+ mounted() {
56976
+ var _a;
56977
+ if (!this.$refs.dropdown)
56978
+ return;
56979
+ const dropdown = this.$refs.dropdown.instance;
56980
+ dropdown.children = [{
56981
+ name: `${this.instance.name}_search_all`,
56982
+ component: 'ZdButton',
56983
+ label: 'SEARCH_ALL_FIELDS',
56984
+ cssClass: 'zd-search-buttons',
56985
+ flat: true,
56986
+ events: { click: this.selectSearchField },
56987
+ fieldName: '__ALL',
56988
+ }];
56989
+ (_a = this.instance.iterableComponent) === null || _a === void 0 ? void 0 : _a.columns.forEach((column) => {
56990
+ var _a;
56991
+ if (!((_a = this.instance.iterableComponent) === null || _a === void 0 ? void 0 : _a.isColumnSearchable(column)))
56992
+ return;
56993
+ dropdown.children.push({
56994
+ name: `${this.instance.name}_search_${column.name}`,
56995
+ component: 'ZdButton',
56996
+ label: column.label,
56997
+ cssClass: 'zd-search-buttons',
56998
+ flat: true,
56999
+ events: { click: this.selectSearchField },
57000
+ fieldName: column.name,
57001
+ });
57002
+ });
56906
57003
  }
56907
57004
  getSearchValue() {
56908
57005
  var _a;
56909
57006
  return ((_a = this.instance.iterableComponent) === null || _a === void 0 ? void 0 : _a.datasource.search) || '';
56910
57007
  }
57008
+ toggleDropdown() {
57009
+ const dropdown = core.Metadata.getInstance(`${this.instance.name}_dropdown`);
57010
+ if (!dropdown)
57011
+ return;
57012
+ dropdown.value = !dropdown.value;
57013
+ }
56911
57014
  };
56912
57015
  __decorate([
56913
57016
  PropWatch({ type: String }),
@@ -56936,7 +57039,27 @@ If you're seeing "$attrs is readonly", it's caused by this`);
56936
57039
  ZdSearch = __decorate([
56937
57040
  vuePropertyDecorator.Component
56938
57041
  ], ZdSearch);
56939
- var script$j = ZdSearch;
57042
+ var script$j = ZdSearch;
57043
+ core.Messages.add({
57044
+ 'pt-BR': {
57045
+ translation: {
57046
+ ALL_FIELDS: 'Todos os Campos',
57047
+ SEARCH_ALL_FIELDS: 'Todos os Campos',
57048
+ },
57049
+ },
57050
+ 'en-US': {
57051
+ translation: {
57052
+ ALL_FIELDS: 'All Fields',
57053
+ SEARCH_ALL_FIELDS: 'All Fields',
57054
+ },
57055
+ },
57056
+ 'es-ES': {
57057
+ translation: {
57058
+ ALL_FIELDS: 'Todos los Campos',
57059
+ SEARCH_ALL_FIELDS: 'Todos los Campos',
57060
+ },
57061
+ },
57062
+ });
56940
57063
 
56941
57064
  /* script */
56942
57065
  const __vue_script__$m = script$j;
@@ -56946,21 +57069,34 @@ If you're seeing "$attrs is readonly", it's caused by this`);
56946
57069
  var _vm = this;
56947
57070
  var _h = _vm.$createElement;
56948
57071
  var _c = _vm._self._c || _h;
56949
- return _c("zd-text-input", {
56950
- class: ["zd-search", "zd-float-right", _vm.instance.cssClass],
56951
- style: _vm.instance.cssStyle,
56952
- attrs: {
56953
- id: _vm.instance.name,
56954
- name: "zdGridSearch",
56955
- value: _vm.getSearchValue(),
56956
- "instance-object": _vm.instance,
56957
- },
56958
- on: {
56959
- "update:value": function ($event) {
56960
- return _vm.instance.debounceSetSearch($event)
57072
+ return _c(
57073
+ "zd-dropdown",
57074
+ _vm._b(
57075
+ {
57076
+ ref: "dropdown",
57077
+ attrs: {
57078
+ name: _vm.instance.name + "_dropdown",
57079
+ activator: {
57080
+ name: "zdGridSearch",
57081
+ component: "ZdTextInput",
57082
+ class: ["zd-search", "zd-float-right", _vm.instance.cssClass],
57083
+ persistentHint: true,
57084
+ hint: _vm.getHintText(),
57085
+ style: _vm.instance.cssStyle,
57086
+ value: _vm.getSearchValue(),
57087
+ events: {
57088
+ input: _vm.instance.debounceSetSearch,
57089
+ appendIconClick: _vm.toggleDropdown,
57090
+ },
57091
+ "instance-object": _vm.instance,
57092
+ },
57093
+ },
56961
57094
  },
56962
- },
56963
- })
57095
+ "zd-dropdown",
57096
+ _vm.dropdownProps,
57097
+ false
57098
+ )
57099
+ )
56964
57100
  };
56965
57101
  var __vue_staticRenderFns__$m = [];
56966
57102
  __vue_render__$m._withStripped = true;
@@ -56968,7 +57104,7 @@ If you're seeing "$attrs is readonly", it's caused by this`);
56968
57104
  /* style */
56969
57105
  const __vue_inject_styles__$m = function (inject) {
56970
57106
  if (!inject) return
56971
- inject("data-v-3a30d9cc_0", { source: ".zd-search {\n width: 100%;\n}", map: undefined, media: undefined });
57107
+ inject("data-v-7fb067f0_0", { source: ".zd-search {\n width: 100%;\n}\n.zd-search.zd-input.v-input.zd-no-helper > .v-input__control > .v-text-field__details {\n display: flex;\n}\n.zd-search .v-input__append-inner .v-input__icon--append .v-icon {\n background-color: var(--v-primary-base) !important;\n color: white !important;\n border-radius: 3px !important;\n margin-right: 2px !important;\n}\n.zd-search-buttons {\n display: block;\n width: 100%;\n justify-content: left;\n}", map: undefined, media: undefined });
56972
57108
 
56973
57109
  };
56974
57110
  /* scoped */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeedhi/vuetify",
3
- "version": "1.105.0",
3
+ "version": "1.106.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": "f55cfadbf4dc33d4666b9e2f25096b9df407822c"
54
+ "gitHead": "27e1dc565dd18bb9e293e1d379bb6b18efa6d5c3"
55
55
  }
@@ -22,6 +22,7 @@ export default class ZdIterable extends ZdComponentRender {
22
22
  virtualScroll: string | boolean;
23
23
  virtualScrollCache: string | number;
24
24
  searchVisibleOnly: string | boolean;
25
+ searchIn: string | undefined;
25
26
  instance: Iterable;
26
27
  instanceType: typeof Iterable;
27
28
  private unWatchRouteFn;
@@ -12,5 +12,10 @@ export default class ZdSearch extends ZdTextInput {
12
12
  lazyAttach: string;
13
13
  instance: Search;
14
14
  instanceType: typeof Search;
15
+ dropdownProps: any;
16
+ private selectSearchField;
17
+ getHintText(): any;
18
+ mounted(): void;
15
19
  getSearchValue(): string;
20
+ toggleDropdown(): void;
16
21
  }
@@ -1,4 +1,4 @@
1
- import { Select, IComponentRender, ISelectDataValueOutItem } from '@zeedhi/common';
1
+ import { Select, IComponentRender, ISelectDataValueOutItem, IColumn } from '@zeedhi/common';
2
2
  import { IDatasource, IDictionary } from '@zeedhi/core';
3
3
  import ZdTextInput from '../zd-text-input/ZdTextInput.vue';
4
4
  /**
@@ -28,6 +28,8 @@ export default class ZdSelect extends ZdTextInput {
28
28
  dataValueOut: string | ISelectDataValueOutItem[];
29
29
  dataValueOutFormName: string;
30
30
  closeOnScroll: boolean;
31
+ modalSelection: boolean;
32
+ modalSelectionFields: IColumn[];
31
33
  instance: Select;
32
34
  instanceType: typeof Select;
33
35
  private inputWidth;
@@ -75,4 +77,7 @@ export default class ZdSelect extends ZdTextInput {
75
77
  get items(): IDictionary<any>[];
76
78
  dataChange(): void;
77
79
  setMenuVisibility(visibility: boolean | 'show' | 'hide'): void;
80
+ get showModalButton(): boolean | undefined;
81
+ getSelectIconClickEvents(): any;
82
+ getPlaceHolder(): string;
78
83
  }