@dialpad/dialtone-vue 3.47.0 → 3.50.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.
@@ -1199,6 +1199,7 @@ __webpack_require__.d(__webpack_exports__, {
1199
1199
  "DtRecipeIvrNode": () => (/* reexport */ ivr_node),
1200
1200
  "DtRecipeTopBannerInfo": () => (/* reexport */ top_banner_info),
1201
1201
  "DtRootLayout": () => (/* reexport */ root_layout),
1202
+ "DtScroller": () => (/* reexport */ DtScroller),
1202
1203
  "DtSelectMenu": () => (/* reexport */ select_menu),
1203
1204
  "DtSkeleton": () => (/* reexport */ skeleton_skeleton),
1204
1205
  "DtSkeletonListItem": () => (/* reexport */ skeleton_list_item),
@@ -1262,7 +1263,6 @@ __webpack_require__.d(__webpack_exports__, {
1262
1263
  "TOOLTIP_HIDE_ON_CLICK_VARIANTS": () => (/* reexport */ TOOLTIP_HIDE_ON_CLICK_VARIANTS),
1263
1264
  "TOOLTIP_KIND_MODIFIERS": () => (/* reexport */ TOOLTIP_KIND_MODIFIERS),
1264
1265
  "TOOLTIP_STICKY_VALUES": () => (/* reexport */ TOOLTIP_STICKY_VALUES),
1265
- "USER_STATUS_COLOR_MODIFIERS": () => (/* reexport */ USER_STATUS_COLOR_MODIFIERS),
1266
1266
  "VALIDATION_MESSAGE_TYPES": () => (/* reexport */ VALIDATION_MESSAGE_TYPES),
1267
1267
  "VALID_WIDTH_SIZE": () => (/* reexport */ VALID_WIDTH_SIZE),
1268
1268
  "filterFormattedMessages": () => (/* reexport */ filterFormattedMessages),
@@ -1291,7 +1291,7 @@ if (typeof window !== 'undefined') {
1291
1291
 
1292
1292
  ;// CONCATENATED MODULE: external {"commonjs":"vue","commonjs2":"vue","root":"Vue"}
1293
1293
  const external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject = require("vue");
1294
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/avatar/avatar.vue?vue&type=template&id=0795f071
1294
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/avatar/avatar.vue?vue&type=template&id=ac8c0ad8
1295
1295
 
1296
1296
  const _hoisted_1 = ["id"];
1297
1297
  const _hoisted_2 = {
@@ -1300,7 +1300,7 @@ const _hoisted_2 = {
1300
1300
  };
1301
1301
  const _hoisted_3 = {
1302
1302
  key: 0,
1303
- class: "d-avatar__count",
1303
+ class: "d-avatar__count d-zi-base1",
1304
1304
  "data-qa": "dt-avatar-count"
1305
1305
  };
1306
1306
  function render(_ctx, _cache, $props, $setup, $data, $options) {
@@ -1313,18 +1313,18 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1313
1313
  "data-qa": "dt-avatar"
1314
1314
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", _hoisted_2, [$options.showDefaultSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "default", {
1315
1315
  key: 0
1316
- }) : $options.showInitials ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("span", {
1316
+ }) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true), $options.showInitials ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("span", {
1317
1317
  key: 1,
1318
- class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)($data.AVATAR_KIND_MODIFIERS.initials)
1318
+ class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)(["d-ps-absolute d-zi-base", $data.AVATAR_KIND_MODIFIERS.initials])
1319
1319
  }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($data.formattedInitials), 3)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)], 512), $options.showGroup ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("span", _hoisted_3, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($options.formattedGroup), 1)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true), $props.presence && !$options.showGroup ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_dt_presence, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
1320
1320
  key: 1,
1321
1321
  presence: $props.presence,
1322
- class: ['d-avatar__presence', $data.AVATAR_PRESENCE_SIZE_MODIFIERS[$props.size]]
1322
+ class: ["d-zi-base1", ['d-avatar__presence', $data.AVATAR_PRESENCE_SIZE_MODIFIERS[$props.size]]]
1323
1323
  }, $props.presenceProps, {
1324
1324
  "data-qa": "dt-presence"
1325
1325
  }), null, 16, ["presence", "class"])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)], 14, _hoisted_1);
1326
1326
  }
1327
- ;// CONCATENATED MODULE: ./components/avatar/avatar.vue?vue&type=template&id=0795f071
1327
+ ;// CONCATENATED MODULE: ./components/avatar/avatar.vue?vue&type=template&id=ac8c0ad8
1328
1328
 
1329
1329
  ;// CONCATENATED MODULE: ./common/constants.js
1330
1330
  /* TODO: Move and sort these in a constants directory
@@ -1400,7 +1400,8 @@ const DEFAULT_PREFIX = 'dt';
1400
1400
 
1401
1401
  const seedrandom = __webpack_require__(377);
1402
1402
 
1403
- let UNIQUE_ID_COUNTER = 0; // selector to find focusable not hidden inputs
1403
+ let UNIQUE_ID_COUNTER = 0;
1404
+ let TIMER; // selector to find focusable not hidden inputs
1404
1405
 
1405
1406
  const FOCUSABLE_SELECTOR_NOT_HIDDEN = 'input:not([type=hidden]):not(:disabled)'; // selector to find focusable not disables elements
1406
1407
 
@@ -1524,7 +1525,7 @@ function hasSlotContent(slot) {
1524
1525
  */
1525
1526
 
1526
1527
  const kebabCaseToPascalCase = string => {
1527
- return string.toLowerCase().split('-').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join('');
1528
+ return string === null || string === void 0 ? void 0 : string.toLowerCase().split('-').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join('');
1528
1529
  };
1529
1530
  /**
1530
1531
  * Transform a string from PascalCase to kebab-case
@@ -1542,6 +1543,17 @@ const extractVueListeners = attrs => {
1542
1543
  });
1543
1544
  return Object.fromEntries(listeners);
1544
1545
  };
1546
+ /*
1547
+ * Set's a global timer to debounce the execution of a function.
1548
+ * @param { object } func - the function that is going to be called after timeout
1549
+ * @param { number } [timeout=300] timeout
1550
+ * */
1551
+
1552
+ function debounce(func) {
1553
+ let timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 300;
1554
+ clearTimeout(TIMER);
1555
+ TIMER = setTimeout(func, timeout);
1556
+ }
1545
1557
  /* harmony default export */ const utils = ({
1546
1558
  getUniqueString,
1547
1559
  getRandomElement,
@@ -1552,7 +1564,8 @@ const extractVueListeners = attrs => {
1552
1564
  htmlFragment,
1553
1565
  flushPromises,
1554
1566
  kebabCaseToPascalCase,
1555
- extractVueListeners
1567
+ extractVueListeners,
1568
+ debounce
1556
1569
  });
1557
1570
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/presence/presence.vue?vue&type=template&id=77957bb3
1558
1571
 
@@ -1657,6 +1670,13 @@ const AVATAR_PRESENCE_SIZE_MODIFIERS = {
1657
1670
  md: 'd-avatar__presence--md',
1658
1671
  lg: 'd-avatar__presence--lg'
1659
1672
  };
1673
+ const AVATAR_PRESENCE_STATES = {
1674
+ NONE: null,
1675
+ BUSY: 'busy',
1676
+ AWAY: 'away',
1677
+ OFFLINE: 'offline',
1678
+ ACTIVE: 'active'
1679
+ };
1660
1680
  const AVATAR_ICON_SIZES = {
1661
1681
  xs: '100',
1662
1682
  sm: '200',
@@ -1744,7 +1764,10 @@ const AVATAR_GROUP_VALIDATOR = group => group > 1;
1744
1764
  */
1745
1765
  presence: {
1746
1766
  type: String,
1747
- default: null
1767
+ default: AVATAR_PRESENCE_STATES.NONE,
1768
+ validator: state => {
1769
+ return Object.values(AVATAR_PRESENCE_STATES).includes(state);
1770
+ }
1748
1771
  },
1749
1772
 
1750
1773
  /**
@@ -1786,13 +1809,14 @@ const AVATAR_GROUP_VALIDATOR = group => group > 1;
1786
1809
  data() {
1787
1810
  return {
1788
1811
  // initials, image or icon
1789
- kind: 'image',
1812
+ kind: null,
1790
1813
  AVATAR_SIZE_MODIFIERS: AVATAR_SIZE_MODIFIERS,
1791
1814
  AVATAR_KIND_MODIFIERS: AVATAR_KIND_MODIFIERS,
1792
1815
  AVATAR_PRESENCE_SIZE_MODIFIERS: AVATAR_PRESENCE_SIZE_MODIFIERS,
1793
1816
  imageLoadedSuccessfully: null,
1794
1817
  slottedInitials: '',
1795
- formattedInitials: ''
1818
+ formattedInitials: '',
1819
+ initializing: false
1796
1820
  };
1797
1821
  },
1798
1822
 
@@ -1805,11 +1829,11 @@ const AVATAR_GROUP_VALIDATOR = group => group > 1;
1805
1829
  },
1806
1830
 
1807
1831
  showDefaultSlot() {
1808
- return this.kind !== 'initials' && this.imageLoadedSuccessfully !== false;
1832
+ return this.kind !== 'initials' || this.kind === 'image' && this.imageLoadedSuccessfully === true;
1809
1833
  },
1810
1834
 
1811
1835
  showInitials() {
1812
- return this.kind === 'initials' || this.initials;
1836
+ return this.kind === 'initials' || this.kind === 'image' && this.initials;
1813
1837
  },
1814
1838
 
1815
1839
  showGroup() {
@@ -1842,28 +1866,27 @@ const AVATAR_GROUP_VALIDATOR = group => group > 1;
1842
1866
  },
1843
1867
 
1844
1868
  updated() {
1845
- if (this.kind === 'initials') {
1846
- this.slottedInitials = this.$el.children[0].textContent;
1847
- this.formatInitials(this.slottedInitials);
1848
- }
1869
+ this.init();
1849
1870
  },
1850
1871
 
1851
1872
  methods: {
1852
- init() {
1873
+ async init() {
1874
+ if (this.initializing) return;
1875
+ this.kind = null;
1876
+ await this.$nextTick();
1853
1877
  const firstChild = this.$refs.canvas.children[0] || this.$refs.canvas;
1854
-
1855
- if (!firstChild) {
1856
- return;
1857
- }
1858
-
1878
+ this.formatInitials(this.initials);
1859
1879
  this.setKind(firstChild);
1860
1880
  this.kindHandler(firstChild);
1881
+ this.initializing = true;
1882
+ await this.$nextTick();
1883
+ this.initializing = false;
1861
1884
  },
1862
1885
 
1863
1886
  kindHandler(el) {
1864
1887
  switch (this.kind) {
1865
1888
  case 'image':
1866
- el.classList.add('d-avatar__image');
1889
+ el.classList.add('d-avatar__image', 'd-zi-base1');
1867
1890
  this.validateImageAttrsPresence();
1868
1891
  this.setImageListeners(el);
1869
1892
  break;
@@ -1873,25 +1896,27 @@ const AVATAR_GROUP_VALIDATOR = group => group > 1;
1873
1896
  break;
1874
1897
 
1875
1898
  case 'initials':
1899
+ if (!el.textContent) return;
1876
1900
  this.slottedInitials = el.textContent;
1877
- this.formatInitials(this.slottedInitials);
1901
+ this.formatInitials(this.slottedInitials.trim() || this.initials);
1878
1902
  break;
1879
1903
  }
1880
1904
  },
1881
1905
 
1882
1906
  setImageListeners(el) {
1883
- el.addEventListener('error', () => {
1884
- this.formatInitials(this.initials);
1885
- this.imageLoadedSuccessfully = false;
1907
+ el.addEventListener('load', () => this._loadedImageEventHandler(el), {
1908
+ once: true
1886
1909
  });
1887
- el.addEventListener('load', () => {
1888
- el.classList.add('d-avatar--image-loaded');
1889
- this.imageLoadedSuccessfully = true;
1910
+ el.addEventListener('error', () => this._erroredImageEventHandler(el), {
1911
+ once: true
1890
1912
  });
1891
1913
  },
1892
1914
 
1893
1915
  formatInitials(initials) {
1894
- if (!initials) return;
1916
+ if (!initials) {
1917
+ this.formattedInitials = '';
1918
+ return;
1919
+ }
1895
1920
 
1896
1921
  if (this.validatedSize === 'xs') {
1897
1922
  this.formattedInitials = '';
@@ -1903,7 +1928,7 @@ const AVATAR_GROUP_VALIDATOR = group => group > 1;
1903
1928
  },
1904
1929
 
1905
1930
  setKind(element) {
1906
- if (this.isSvgType(element)) {
1931
+ if (this.isIconType(element)) {
1907
1932
  this.kind = 'icon';
1908
1933
  return;
1909
1934
  }
@@ -1916,7 +1941,7 @@ const AVATAR_GROUP_VALIDATOR = group => group > 1;
1916
1941
  this.kind = 'initials';
1917
1942
  },
1918
1943
 
1919
- isSvgType(element) {
1944
+ isIconType(element) {
1920
1945
  var _element$tagName;
1921
1946
 
1922
1947
  return (element === null || element === void 0 ? void 0 : (_element$tagName = element.tagName) === null || _element$tagName === void 0 ? void 0 : _element$tagName.toUpperCase()) === 'SVG';
@@ -1962,16 +1987,28 @@ const AVATAR_GROUP_VALIDATOR = group => group > 1;
1962
1987
  if (isSrcMissing || isAltMissing) {
1963
1988
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.warn)('src and alt attributes are required for image avatars', this);
1964
1989
  }
1990
+ },
1991
+
1992
+ _loadedImageEventHandler(el) {
1993
+ this.imageLoadedSuccessfully = true;
1994
+ el.classList.remove('d-d-none');
1995
+ el.classList.add('d-avatar--image-loaded');
1996
+ },
1997
+
1998
+ _erroredImageEventHandler(el) {
1999
+ this.imageLoadedSuccessfully = false;
2000
+ el.classList.remove('d-avatar--image-loaded');
2001
+ el.classList.add('d-d-none');
1965
2002
  }
1966
2003
 
1967
2004
  }
1968
2005
  });
1969
2006
  ;// CONCATENATED MODULE: ./components/avatar/avatar.vue?vue&type=script&lang=js
1970
2007
 
1971
- ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-32.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/avatar/avatar.vue?vue&type=style&index=0&id=0795f071&lang=less
2008
+ ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-32.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/avatar/avatar.vue?vue&type=style&index=0&id=ac8c0ad8&lang=less
1972
2009
  // extracted by mini-css-extract-plugin
1973
2010
 
1974
- ;// CONCATENATED MODULE: ./components/avatar/avatar.vue?vue&type=style&index=0&id=0795f071&lang=less
2011
+ ;// CONCATENATED MODULE: ./components/avatar/avatar.vue?vue&type=style&index=0&id=ac8c0ad8&lang=less
1975
2012
 
1976
2013
  ;// CONCATENATED MODULE: ./components/avatar/avatar.vue
1977
2014
 
@@ -3038,7 +3075,7 @@ const notice_action_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(noti
3038
3075
 
3039
3076
  /* harmony default export */ const notice_action = (notice_action_exports_);
3040
3077
  ;// CONCATENATED MODULE: ./common/mixins/modal.js
3041
- const focusableAttrs = ':not(:disabled):not([aria-disabled="true"])';
3078
+ const focusableAttrs = ':not(:disabled):not([aria-disabled="true"]):not([role="presentation"])';
3042
3079
  const tabbableAttrs = `${focusableAttrs}:not([tabindex="-1"])`;
3043
3080
  const focusableElementsList = `button,[href],input,select,textarea,details,[tabindex]`;
3044
3081
  /**
@@ -7045,7 +7082,7 @@ function orderModifiers(modifiers) {
7045
7082
  }, []);
7046
7083
  }
7047
7084
  ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/debounce.js
7048
- function debounce(fn) {
7085
+ function debounce_debounce(fn) {
7049
7086
  var pending;
7050
7087
  return function () {
7051
7088
  if (!pending) {
@@ -7230,7 +7267,7 @@ function popperGenerator(generatorOptions) {
7230
7267
  },
7231
7268
  // Async and optimistically optimized update – it will not be executed if
7232
7269
  // not necessary (debounced to run at most once-per-tick)
7233
- update: debounce(function () {
7270
+ update: debounce_debounce(function () {
7234
7271
  return new Promise(function (resolve) {
7235
7272
  instance.forceUpdate();
7236
7273
  resolve(state);
@@ -11036,7 +11073,6 @@ const getArrowDetected = fn => ({
11036
11073
  ;// CONCATENATED MODULE: ./components/popover/tippy_utils.js
11037
11074
 
11038
11075
 
11039
-
11040
11076
  const BASE_TIPPY_DIRECTIONS = ['bottom', 'bottom-start', 'bottom-end', 'right', 'right-start', 'right-end', 'left', 'left-start', 'left-end', 'top', 'top-start', 'top-end'];
11041
11077
  const TIPPY_STICKY_VALUES = [true, false, 'reference', 'popper'];
11042
11078
  const tippy_utils_createTippy = (anchorElement, options) => {
@@ -11085,24 +11121,17 @@ const getPopperOptions = function () {
11085
11121
  };
11086
11122
  };
11087
11123
 
11088
- const createAnchor = (anchorWrapper, tabIndex) => {
11124
+ const createAnchor = anchorWrapper => {
11089
11125
  const span = document.createElement('span');
11090
- span.setAttribute('tabindex', tabIndex);
11091
11126
  span.innerText = anchorWrapper.innerText || '';
11092
11127
  anchorWrapper.innerText = '';
11093
11128
  anchorWrapper.appendChild(span);
11094
11129
  return span;
11095
11130
  };
11096
11131
 
11097
- const getAnchor = function (anchorWrapper) {
11098
- let tabIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0';
11132
+ const getAnchor = anchorWrapper => {
11099
11133
  const anchor = anchorWrapper === null || anchorWrapper === void 0 ? void 0 : anchorWrapper.children[0];
11100
11134
  if (!anchor) return createAnchor(anchorWrapper);
11101
-
11102
- if (!findFirstFocusableNode(anchor)) {
11103
- anchor.setAttribute('tabindex', tabIndex);
11104
- }
11105
-
11106
11135
  return anchor;
11107
11136
  };
11108
11137
  const getContentWrapper = content => {
@@ -17413,16 +17442,17 @@ const toggle_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(togglevue_t
17413
17442
  /* harmony default export */ const toggle = (toggle_exports_);
17414
17443
  ;// CONCATENATED MODULE: ./components/toggle/index.js
17415
17444
 
17416
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/tooltip/tooltip.vue?vue&type=template&id=52eb174c
17445
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/tooltip/tooltip.vue?vue&type=template&id=1868931e
17417
17446
 
17418
- const tooltipvue_type_template_id_52eb174c_hoisted_1 = {
17447
+ const tooltipvue_type_template_id_1868931e_hoisted_1 = {
17419
17448
  "data-qa": "dt-tooltip-container"
17420
17449
  };
17421
- function tooltipvue_type_template_id_52eb174c_render(_ctx, _cache, $props, $setup, $data, $options) {
17450
+ function tooltipvue_type_template_id_1868931e_render(_ctx, _cache, $props, $setup, $data, $options) {
17422
17451
  const _component_dt_lazy_show = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-lazy-show");
17423
17452
 
17424
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", tooltipvue_type_template_id_52eb174c_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("a", {
17453
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", tooltipvue_type_template_id_1868931e_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("a", {
17425
17454
  ref: "anchor",
17455
+ tabindex: "-1",
17426
17456
  role: "presentation",
17427
17457
  "data-qa": "dt-tooltip-anchor",
17428
17458
  onFocusin: _cache[0] || (_cache[0] = function () {
@@ -17457,7 +17487,7 @@ function tooltipvue_type_template_id_52eb174c_render(_ctx, _cache, $props, $setu
17457
17487
  _: 3
17458
17488
  }, 16, ["id", "show", "appear", "transition", "class"])]);
17459
17489
  }
17460
- ;// CONCATENATED MODULE: ./components/tooltip/tooltip.vue?vue&type=template&id=52eb174c
17490
+ ;// CONCATENATED MODULE: ./components/tooltip/tooltip.vue?vue&type=template&id=1868931e
17461
17491
 
17462
17492
  ;// CONCATENATED MODULE: ./components/tooltip/tooltip_constants.js
17463
17493
  /*
@@ -17811,10 +17841,10 @@ const TOOLTIP_HIDE_ON_CLICK_VARIANTS = [true, false, 'toggle'];
17811
17841
  });
17812
17842
  ;// CONCATENATED MODULE: ./components/tooltip/tooltip.vue?vue&type=script&lang=js
17813
17843
 
17814
- ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-32.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/tooltip/tooltip.vue?vue&type=style&index=0&id=52eb174c&lang=less
17844
+ ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-32.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/tooltip/tooltip.vue?vue&type=style&index=0&id=1868931e&lang=less
17815
17845
  // extracted by mini-css-extract-plugin
17816
17846
 
17817
- ;// CONCATENATED MODULE: ./components/tooltip/tooltip.vue?vue&type=style&index=0&id=52eb174c&lang=less
17847
+ ;// CONCATENATED MODULE: ./components/tooltip/tooltip.vue?vue&type=style&index=0&id=1868931e&lang=less
17818
17848
 
17819
17849
  ;// CONCATENATED MODULE: ./components/tooltip/tooltip.vue
17820
17850
 
@@ -17824,7 +17854,7 @@ const TOOLTIP_HIDE_ON_CLICK_VARIANTS = [true, false, 'toggle'];
17824
17854
  ;
17825
17855
 
17826
17856
 
17827
- const tooltip_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(tooltipvue_type_script_lang_js, [['render',tooltipvue_type_template_id_52eb174c_render]])
17857
+ const tooltip_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(tooltipvue_type_script_lang_js, [['render',tooltipvue_type_template_id_1868931e_render]])
17828
17858
 
17829
17859
  /* harmony default export */ const tooltip = (tooltip_exports_);
17830
17860
  ;// CONCATENATED MODULE: ./components/tooltip/index.js
@@ -18518,249 +18548,1577 @@ const stack_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(stackvue_typ
18518
18548
  /* harmony default export */ const stack = (stack_exports_);
18519
18549
  ;// CONCATENATED MODULE: ./components/stack/index.js
18520
18550
 
18521
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=template&id=bdafd0f4
18522
-
18523
- const combobox_with_popovervue_type_template_id_bdafd0f4_hoisted_1 = ["id"];
18524
- const combobox_with_popovervue_type_template_id_bdafd0f4_hoisted_2 = {
18525
- ref: "header"
18526
- };
18527
- const combobox_with_popovervue_type_template_id_bdafd0f4_hoisted_3 = ["onMouseleave", "onFocusout"];
18528
- const combobox_with_popovervue_type_template_id_bdafd0f4_hoisted_4 = {
18529
- ref: "footer"
18530
- };
18531
- function combobox_with_popovervue_type_template_id_bdafd0f4_render(_ctx, _cache, $props, $setup, $data, $options) {
18532
- const _component_combobox_loading_list = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("combobox-loading-list");
18533
-
18534
- const _component_combobox_empty_list = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("combobox-empty-list");
18535
-
18536
- const _component_dt_popover = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-popover");
18537
-
18538
- const _component_dt_combobox = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-combobox");
18539
-
18540
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_dt_combobox, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
18541
- ref: "combobox",
18542
- loading: $props.loading,
18543
- label: $props.label,
18544
- "label-visible": $props.labelVisible,
18545
- size: $props.size,
18546
- description: $props.description,
18547
- "empty-list": $props.emptyList,
18548
- "empty-state-message": $props.emptyStateMessage,
18549
- "show-list": $data.isListShown,
18550
- "on-beginning-of-list": $props.onBeginningOfList,
18551
- "on-end-of-list": $props.onEndOfList,
18552
- "list-rendered-outside": true,
18553
- "list-id": $props.listId,
18554
- "data-qa": "dt-combobox"
18555
- }, $options.comboboxListeners), {
18556
- input: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(_ref => {
18557
- let {
18558
- inputProps
18559
- } = _ref;
18560
- return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", {
18561
- id: $data.externalAnchor,
18562
- ref: "input",
18563
- onFocusin: _cache[0] || (_cache[0] = function () {
18564
- return $options.onFocusIn && $options.onFocusIn(...arguments);
18565
- }),
18566
- onKeydown: [_cache[1] || (_cache[1] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)($event => $options.openOnArrowKeyPress($event), ["up"])), _cache[2] || (_cache[2] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)($event => $options.openOnArrowKeyPress($event), ["down"]))]
18567
- }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "input", {
18568
- inputProps: inputProps,
18569
- onInput: $options.handleDisplayList
18570
- })], 40, combobox_with_popovervue_type_template_id_bdafd0f4_hoisted_1)];
18571
- }),
18572
- list: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(_ref2 => {
18573
- let {
18574
- opened,
18575
- listProps,
18576
- clearHighlightIndex
18577
- } = _ref2;
18578
- return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_popover, {
18579
- ref: "popover",
18580
- open: $data.isListShown,
18581
- "onUpdate:open": _cache[3] || (_cache[3] = $event => $data.isListShown = $event),
18582
- "hide-on-click": false,
18583
- "max-height": $props.maxHeight,
18584
- "max-width": $props.maxWidth,
18585
- offset: $props.popoverOffset,
18586
- sticky: $props.popoverSticky,
18587
- placement: "bottom-start",
18588
- "initial-focus-element": "none",
18589
- padding: "none",
18590
- role: "listbox",
18591
- "external-anchor": $data.externalAnchor,
18592
- "content-width": $props.contentWidth,
18593
- "content-appear": true,
18594
- "content-tabindex": null,
18595
- modal: false,
18596
- "auto-focus": false,
18597
- "append-to": $props.appendTo,
18598
- "visually-hidden-close-label": _ctx.visuallyHiddenCloseLabel,
18599
- "visually-hidden-close": _ctx.visuallyHiddenClose,
18600
- onOpened: opened
18601
- }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createSlots)({
18602
- content: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", {
18603
- ref: "listWrapper",
18604
- class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)([$data.DROPDOWN_PADDING_CLASSES[$props.padding], $props.listClass]),
18605
- onMouseleave: clearHighlightIndex,
18606
- onFocusout: clearHighlightIndex
18607
- }, [$props.loading ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_combobox_loading_list, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeProps)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
18608
- key: 0
18609
- }, listProps)), null, 16)) : $props.emptyList && $props.emptyStateMessage ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_combobox_empty_list, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
18610
- key: 1
18611
- }, listProps, {
18612
- message: $props.emptyStateMessage
18613
- }), null, 16, ["message"])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "list", {
18614
- key: 2,
18615
- listProps: listProps
18616
- })], 42, combobox_with_popovervue_type_template_id_bdafd0f4_hoisted_3)]),
18617
- _: 2
18618
- }, [$data.hasSlotContent(_ctx.$slots.header) ? {
18619
- name: "headerContent",
18620
- fn: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", combobox_with_popovervue_type_template_id_bdafd0f4_hoisted_2, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "header")], 512)]),
18621
- key: "0"
18622
- } : undefined, $data.hasSlotContent(_ctx.$slots.footer) ? {
18623
- name: "footerContent",
18624
- fn: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", combobox_with_popovervue_type_template_id_bdafd0f4_hoisted_4, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "footer")], 512)]),
18625
- key: "1"
18626
- } : undefined]), 1032, ["open", "max-height", "max-width", "offset", "sticky", "external-anchor", "content-width", "append-to", "visually-hidden-close-label", "visually-hidden-close", "onOpened"])];
18627
- }),
18628
- _: 3
18629
- }, 16, ["loading", "label", "label-visible", "size", "description", "empty-list", "empty-state-message", "show-list", "on-beginning-of-list", "on-end-of-list", "list-id"]);
18630
- }
18631
- ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=template&id=bdafd0f4
18632
-
18633
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=script&lang=js
18634
- /* eslint-disable vuejs-accessibility/no-static-element-interactions */
18635
-
18636
-
18637
-
18638
-
18639
-
18640
-
18641
-
18551
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/scroller/modules/core-scroller.vue?vue&type=script&setup=true&lang=js
18642
18552
 
18643
18553
 
18644
- /* harmony default export */ const combobox_with_popovervue_type_script_lang_js = ({
18645
- name: 'DtRecipeComboboxWithPopover',
18646
- components: {
18647
- DtCombobox: combobox,
18648
- DtPopover: popover,
18649
- ComboboxLoadingList: combobox_loading_list,
18650
- ComboboxEmptyList: combobox_empty_list
18651
- },
18652
- mixins: [sr_only_close_button],
18554
+ /* harmony default export */ const core_scrollervue_type_script_setup_true_lang_js = ({
18555
+ __name: 'core-scroller',
18653
18556
  props: {
18654
18557
  /**
18655
- * String to use for the input label.
18656
- */
18657
- label: {
18658
- type: String,
18558
+ * List of items you want to display in the scroller.
18559
+ */
18560
+ items: {
18561
+ type: Array,
18659
18562
  required: true
18660
18563
  },
18661
18564
 
18662
18565
  /**
18663
- * Determines visibility of input label.
18664
- * @values true, false
18665
- */
18666
- labelVisible: {
18667
- type: Boolean,
18668
- default: true
18566
+ *
18567
+ * Field used to identify items and optimize managing rendered views
18568
+ */
18569
+ keyField: {
18570
+ type: String,
18571
+ default: 'id'
18669
18572
  },
18670
18573
 
18671
18574
  /**
18672
- * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`
18673
- * @values null, xs, sm, md, lg, xl
18674
- */
18675
- size: {
18575
+ * Direction of the scroller. Can be either `vertical` or `horizontal`.
18576
+ */
18577
+ direction: {
18676
18578
  type: String,
18677
- default: null,
18678
- validator: t => Object.values(LABEL_SIZES).includes(t)
18579
+ default: 'vertical',
18580
+ validator: value => ['vertical', 'horizontal'].includes(value)
18679
18581
  },
18680
18582
 
18681
18583
  /**
18682
- * Description for the input
18683
- */
18684
- description: {
18685
- type: String,
18686
- default: ''
18584
+ * Size of the items in the list.
18585
+ * If it is set to null (the default value), it will use variable size mode.
18586
+ */
18587
+ itemSize: {
18588
+ type: Number,
18589
+ default: null
18687
18590
  },
18688
18591
 
18689
18592
  /**
18690
- * Determines when to show the list element and also controls the aria-expanded attribute.
18691
- * Leaving this null will have the combobox trigger on input focus by default.
18692
- * If you set this value, the default trigger behavior will be disabled and you can
18693
- * control it as you need.
18694
- */
18695
- showList: {
18696
- type: Boolean,
18593
+ * Minimum size used if the height (or width in horizontal mode) of an item is unknown.
18594
+ */
18595
+ minItemSize: {
18596
+ type: [Number, String],
18697
18597
  default: null
18698
18598
  },
18699
18599
 
18700
18600
  /**
18701
- * Sets an ID on the list element of the component. Used by several aria attributes
18702
- * as well as when deriving the IDs for each item.
18703
- */
18704
- listId: {
18601
+ * Field used to get the item's size in variable size mode.
18602
+ */
18603
+ sizeField: {
18705
18604
  type: String,
18706
-
18707
- default() {
18708
- return getUniqueString();
18709
- }
18710
-
18605
+ default: 'size'
18711
18606
  },
18712
18607
 
18713
18608
  /**
18714
- * Additional class for the wrapper list element.
18715
- */
18716
- listClass: {
18717
- type: [String, Array, Object],
18718
- default: ''
18609
+ * Amount of pixel to add to edges of the scrolling visible area to start rendering items further away.
18610
+ */
18611
+ buffer: {
18612
+ type: Number,
18613
+ default: 200
18719
18614
  },
18720
18615
 
18721
18616
  /**
18722
- * A method that will be called when the selection goes past the beginning of the list.
18723
- */
18724
- onBeginningOfList: {
18725
- type: Function,
18726
- default: null
18617
+ * If true, the hover state will be skipped.
18618
+ * This can be useful if you want to use the hover state for other purposes.
18619
+ */
18620
+ skipHover: {
18621
+ type: Boolean,
18622
+ default: false
18727
18623
  },
18728
18624
 
18729
18625
  /**
18730
- * A method that will be called when the selection goes past the end of the list.
18731
- */
18732
- onEndOfList: {
18733
- type: Function,
18734
- default: null
18626
+ * The element to render as the list's wrapper.
18627
+ */
18628
+ listTag: {
18629
+ type: String,
18630
+ default: 'div'
18735
18631
  },
18736
18632
 
18737
18633
  /**
18738
- * Determines maximum height for the popover before overflow.
18739
- * Possible units rem|px|em
18740
- */
18741
- maxHeight: {
18634
+ * The element to render as the list item.
18635
+ */
18636
+ itemTag: {
18742
18637
  type: String,
18743
- default: ''
18638
+ default: 'div'
18744
18639
  },
18745
18640
 
18746
18641
  /**
18747
- * Determines maximum width for the popover before overflow.
18748
- * Possible units rem|px|%|em
18749
- */
18750
- maxWidth: {
18751
- type: String,
18642
+ * The custom classes added to the item list wrapper.
18643
+ */
18644
+ listClass: {
18645
+ type: [String, Object, Array],
18752
18646
  default: ''
18753
18647
  },
18754
18648
 
18755
18649
  /**
18756
- * Vertical padding size around the list element.
18757
- */
18758
- padding: {
18759
- type: String,
18760
- default: 'small',
18761
- validator: padding => {
18762
- return Object.keys(DROPDOWN_PADDING_CLASSES).some(item => item === padding);
18763
- }
18650
+ * The custom classes added to each item.
18651
+ */
18652
+ itemClass: {
18653
+ type: [String, Object, Array],
18654
+ default: ''
18655
+ }
18656
+ },
18657
+ emits: ['scroll-start', 'scroll-end'],
18658
+
18659
+ setup(__props, _ref) {
18660
+ let {
18661
+ expose,
18662
+ emit
18663
+ } = _ref;
18664
+ const props = __props;
18665
+ const views = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.reactive)(new Map());
18666
+ const reactiveItems = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.reactive)(props.items);
18667
+ const unusedViews = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.reactive)(new Map());
18668
+ const updateTimeout = null;
18669
+ const pool = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.ref)([]);
18670
+ const hoverKey = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.ref)(null);
18671
+ const ready = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.ref)(false);
18672
+ const scroller = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.ref)(null);
18673
+ let startIndex = 0;
18674
+ let endIndex = 0;
18675
+ let scrollDirty = false;
18676
+ let lastUpdateScrollPosition = 0;
18677
+ let sortTimer = null;
18678
+ let computedMinItemSize = null;
18679
+ let totalSize = 0;
18680
+ let uid = 0;
18681
+ const sizes = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.computed)(() => {
18682
+ if (props.itemSize === null) {
18683
+ const sizes = {
18684
+ '-1': {
18685
+ accumulator: 0
18686
+ }
18687
+ };
18688
+ const items = props.items;
18689
+ const field = props.sizeField;
18690
+ const minItemSize = props.minItemSize;
18691
+ let computedMinSize = 10000;
18692
+ let accumulator = 0;
18693
+ let current;
18694
+
18695
+ for (let i = 0, l = items.length; i < l; i++) {
18696
+ current = items[i][field] || minItemSize;
18697
+
18698
+ if (current < computedMinSize) {
18699
+ computedMinSize = current;
18700
+ }
18701
+
18702
+ accumulator += current;
18703
+ sizes[i] = {
18704
+ accumulator,
18705
+ size: current
18706
+ };
18707
+ }
18708
+
18709
+ computedMinItemSize = computedMinSize;
18710
+ return sizes;
18711
+ }
18712
+
18713
+ return [];
18714
+ });
18715
+ const simpleArray = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.computed)(() => {
18716
+ return props.items.length && typeof props.items[0] !== 'object';
18717
+ });
18718
+ const itemIndexByKey = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.computed)(() => {
18719
+ const result = {};
18720
+
18721
+ for (let i = 0, l = props.items.length; i < l; i++) {
18722
+ result[props.items[i][props.keyField]] = i;
18723
+ }
18724
+
18725
+ return result;
18726
+ });
18727
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.watch)(reactiveItems, () => {
18728
+ _updateVisibleItems(true);
18729
+ });
18730
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.watch)(sizes, () => {
18731
+ _updateVisibleItems(false);
18732
+ }, {
18733
+ deep: true
18734
+ });
18735
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.onMounted)(() => {
18736
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.nextTick)(() => {
18737
+ // In SSR mode, render the real number of visible items
18738
+ _updateVisibleItems(true);
18739
+
18740
+ ready.value = true;
18741
+ });
18742
+ });
18743
+
18744
+ const _addView = (pool, index, item, key, type) => {
18745
+ const nr = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.markRaw)({
18746
+ id: uid++,
18747
+ index,
18748
+ used: true,
18749
+ key,
18750
+ type
18751
+ });
18752
+ const view = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.shallowReactive)({
18753
+ item,
18754
+ position: 0,
18755
+ nr
18756
+ });
18757
+ pool.value.push(view);
18758
+ return view;
18759
+ };
18760
+
18761
+ const _unuseView = function (view) {
18762
+ let fake = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
18763
+ const _unusedViews = unusedViews;
18764
+ const type = view.nr.type;
18765
+
18766
+ let unusedPool = _unusedViews.get(type);
18767
+
18768
+ if (!unusedPool) {
18769
+ unusedPool = [];
18770
+
18771
+ _unusedViews.set(type, unusedPool);
18772
+ }
18773
+
18774
+ unusedPool.push(view);
18775
+
18776
+ if (!fake) {
18777
+ view.nr.used = false;
18778
+ view.position = -9999;
18779
+ }
18780
+ };
18781
+
18782
+ const _getScroll = () => {
18783
+ const isVertical = props.direction === 'vertical';
18784
+ let scrollState;
18785
+
18786
+ if (isVertical) {
18787
+ scrollState = {
18788
+ start: scroller.value.scrollTop,
18789
+ end: scroller.value.scrollTop + scroller.value.clientHeight
18790
+ };
18791
+ } else {
18792
+ scrollState = {
18793
+ start: scroller.value.scrollLeft,
18794
+ end: scroller.value.scrollLeft + scroller.value.clientWidth
18795
+ };
18796
+ }
18797
+
18798
+ return scrollState;
18799
+ };
18800
+
18801
+ const _itemsLimitError = () => {
18802
+ setTimeout(() => {
18803
+ // eslint-disable-next-line max-len
18804
+ console.error('It seems the scroller element isn\'t scrolling, so it tries to render all the items at once.', 'Scroller:', scroller); // eslint-disable-next-line max-len
18805
+
18806
+ console.error('Make sure the scroller has a fixed height (or width) and \'overflow-y\' (or \'overflow-x\') set to \'auto\' so it can scroll correctly and only render the items visible in the scroll viewport.');
18807
+ });
18808
+ throw new Error('Rendered items limit reached');
18809
+ };
18810
+
18811
+ const _sortViews = () => {
18812
+ pool.value.sort((viewA, viewB) => viewA.nr.index - viewB.nr.index);
18813
+ };
18814
+
18815
+ const _updateVisibleItems = function (checkItem) {
18816
+ let checkPositionDiff = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
18817
+ const itemSize = props.itemSize;
18818
+ const minItemSize = computedMinItemSize;
18819
+ const keyField = simpleArray.value ? null : props.keyField;
18820
+ const items = props.items;
18821
+ const count = items.length;
18822
+ const _sizes = sizes.value;
18823
+ const _views = views;
18824
+ const _unusedViews = unusedViews;
18825
+ const _pool = pool;
18826
+ const _itemIndexByKey = itemIndexByKey;
18827
+
18828
+ let _startIndex, _endIndex;
18829
+
18830
+ let _totalSize;
18831
+
18832
+ let visibleStartIndex, visibleEndIndex;
18833
+
18834
+ if (!count) {
18835
+ _startIndex = _endIndex = visibleStartIndex = visibleEndIndex = _totalSize = 0;
18836
+ } else {
18837
+ const scroll = _getScroll(); // Skip update if use hasn't scrolled enough
18838
+
18839
+
18840
+ if (checkPositionDiff) {
18841
+ let positionDiff = scroll.start - lastUpdateScrollPosition.value;
18842
+ if (positionDiff < 0) positionDiff = -positionDiff;
18843
+
18844
+ if (itemSize === null && positionDiff < minItemSize.value || positionDiff < itemSize) {
18845
+ return {
18846
+ continuous: true
18847
+ };
18848
+ }
18849
+ }
18850
+
18851
+ lastUpdateScrollPosition = scroll.start;
18852
+ const _buffer = props.buffer;
18853
+ scroll.start -= _buffer;
18854
+ scroll.end += _buffer; // Variable size mode
18855
+
18856
+ if (itemSize === null) {
18857
+ var _sizes3;
18858
+
18859
+ let h;
18860
+ let a = 0;
18861
+ let b = count - 1;
18862
+ let i = ~~(count / 2);
18863
+ let oldI; // Searching for _startIndex
18864
+
18865
+ do {
18866
+ var _sizes$i, _sizes2;
18867
+
18868
+ oldI = i;
18869
+ h = (_sizes$i = _sizes[i]) === null || _sizes$i === void 0 ? void 0 : _sizes$i.accumulator;
18870
+
18871
+ if (h < scroll.start) {
18872
+ a = i;
18873
+ } else if (i < count - 1 && ((_sizes2 = _sizes[i + 1]) === null || _sizes2 === void 0 ? void 0 : _sizes2.accumulator) > scroll.start) {
18874
+ b = i;
18875
+ }
18876
+
18877
+ i = ~~((a + b) / 2);
18878
+ } while (i !== oldI);
18879
+
18880
+ i < 0 && (i = 0);
18881
+ _startIndex = i; // For container style
18882
+
18883
+ _totalSize = (_sizes3 = _sizes[count - 1]) === null || _sizes3 === void 0 ? void 0 : _sizes3.accumulator; // Searching for _endIndex
18884
+
18885
+ for (_endIndex = i; _endIndex < count && ((_sizes$_endIndex = _sizes[_endIndex]) === null || _sizes$_endIndex === void 0 ? void 0 : _sizes$_endIndex.accumulator) < scroll.end; _endIndex++) {
18886
+ var _sizes$_endIndex;
18887
+
18888
+ ;
18889
+ }
18890
+
18891
+ if (_endIndex === -1) {
18892
+ _endIndex = items.length - 1;
18893
+ } else {
18894
+ _endIndex++; // Bounds
18895
+
18896
+ _endIndex > count && (_endIndex = count);
18897
+ } // search visible _startIndex
18898
+
18899
+
18900
+ for (visibleStartIndex = startIndex; visibleStartIndex < count && ((_sizes$visibleStartIn = _sizes[visibleStartIndex]) === null || _sizes$visibleStartIn === void 0 ? void 0 : _sizes$visibleStartIn.accumulator) < scroll.start; visibleStartIndex++) {
18901
+ var _sizes$visibleStartIn;
18902
+
18903
+ ;
18904
+ } // search visible endIndex
18905
+
18906
+
18907
+ for (visibleEndIndex = visibleStartIndex; visibleEndIndex < count && ((_sizes$visibleEndInde = _sizes[visibleEndIndex]) === null || _sizes$visibleEndInde === void 0 ? void 0 : _sizes$visibleEndInde.accumulator) < scroll.end; visibleEndIndex++) {
18908
+ var _sizes$visibleEndInde;
18909
+
18910
+ ;
18911
+ }
18912
+ } else {
18913
+ // Fixed size mode
18914
+ _startIndex = ~~(scroll.start / itemSize);
18915
+ const remainer = _startIndex % 1;
18916
+ _startIndex -= remainer;
18917
+ _endIndex = Math.ceil(scroll.end / itemSize);
18918
+ visibleStartIndex = Math.max(0, Math.floor(scroll.start / itemSize));
18919
+ visibleEndIndex = Math.floor(scroll.end / itemSize); // Bounds
18920
+
18921
+ _startIndex < 0 && (_startIndex = 0);
18922
+ _endIndex > count && (_endIndex = count);
18923
+ visibleStartIndex < 0 && (visibleStartIndex = 0);
18924
+ visibleEndIndex > count && (visibleEndIndex = count);
18925
+ _totalSize = Math.ceil(count / 1) * itemSize;
18926
+ }
18927
+ } // items limit 1000
18928
+
18929
+
18930
+ if (_endIndex - _startIndex > 1000) {
18931
+ _itemsLimitError();
18932
+ }
18933
+
18934
+ totalSize = _totalSize;
18935
+ let view;
18936
+ const continuous = _startIndex <= endIndex && _endIndex >= _startIndex; // Unuse views that are no longer visible
18937
+
18938
+ if (continuous) {
18939
+ for (let i = 0, l = _pool.value.length; i < l; i++) {
18940
+ var _view;
18941
+
18942
+ view = _pool.value[i];
18943
+
18944
+ if ((_view = view) !== null && _view !== void 0 && _view.nr.used) {
18945
+ // Update view item index
18946
+ if (checkItem) {
18947
+ view.nr.index = _itemIndexByKey[view.item[keyField]];
18948
+ } // Check if index is still in visible range
18949
+
18950
+
18951
+ if (view.nr.index == null || view.nr.index < _startIndex || view.nr.index >= _endIndex) {
18952
+ _unuseView(view);
18953
+ }
18954
+ }
18955
+ }
18956
+ }
18957
+
18958
+ const unusedIndex = continuous ? null : new Map();
18959
+ let item, type;
18960
+ let v;
18961
+
18962
+ for (let i = _startIndex; i < _endIndex; i++) {
18963
+ var _item, _sizes$i2;
18964
+
18965
+ item = items[i];
18966
+ const key = keyField ? (_item = item) === null || _item === void 0 ? void 0 : _item[keyField] : item;
18967
+
18968
+ if (key == null) {
18969
+ throw new Error(`Key is ${key} on item (keyField is '${keyField}')`);
18970
+ }
18971
+
18972
+ view = _views.get(key);
18973
+
18974
+ if (!itemSize && !((_sizes$i2 = _sizes[i]) !== null && _sizes$i2 !== void 0 && _sizes$i2.size)) {
18975
+ if (view) _unuseView(view);
18976
+ continue;
18977
+ }
18978
+
18979
+ type = item.type;
18980
+
18981
+ let unusedPool = _unusedViews.get(type);
18982
+
18983
+ let newlyUsedView = false; // No view assigned to item
18984
+
18985
+ if (!view) {
18986
+ if (continuous) {
18987
+ // Reuse existing view
18988
+ if (unusedPool && unusedPool.length) {
18989
+ view = unusedPool.pop();
18990
+ } else {
18991
+ view = _addView(_pool, i, item, key, type);
18992
+ }
18993
+ } else {
18994
+ // Use existing view
18995
+ // We don't care if they are already used
18996
+ // because we are not in continous scrolling
18997
+ v = unusedIndex.get(type) || 0;
18998
+
18999
+ if (!unusedPool || v >= unusedPool.length) {
19000
+ view = _addView(_pool, i, item, key, type);
19001
+
19002
+ _unuseView(view, true);
19003
+
19004
+ unusedPool = _unusedViews.get(type);
19005
+ }
19006
+
19007
+ view = unusedPool[v];
19008
+ unusedIndex.set(type, v + 1);
19009
+ } // Assign view to item
19010
+
19011
+
19012
+ _views.delete(view.nr.key);
19013
+
19014
+ view.nr.used = true;
19015
+ view.nr.index = i;
19016
+ view.nr.key = key;
19017
+ view.nr.type = type;
19018
+
19019
+ _views.set(key, view);
19020
+
19021
+ newlyUsedView = true;
19022
+ } else {
19023
+ // View already assigned to item
19024
+ if (!view.nr.used) {
19025
+ view.nr.used = true;
19026
+ newlyUsedView = true;
19027
+
19028
+ if (unusedPool) {
19029
+ const index = unusedPool.indexOf(view);
19030
+ if (index !== -1) unusedPool.splice(index, 1);
19031
+ }
19032
+ }
19033
+ } // Always set item in case it's a new object with the same key
19034
+
19035
+
19036
+ view.item = item;
19037
+
19038
+ if (newlyUsedView) {
19039
+ if (i === items.length - 1) emit('scroll-end');
19040
+ if (i === 0) emit('scroll-start');
19041
+ } // Update position
19042
+
19043
+
19044
+ if (itemSize === null) {
19045
+ var _sizes4;
19046
+
19047
+ view.position = (_sizes4 = _sizes[i - 1]) === null || _sizes4 === void 0 ? void 0 : _sizes4.accumulator;
19048
+ view.offset = 0;
19049
+ } else {
19050
+ view.position = Math.floor(i) * itemSize;
19051
+ view.offset = i % 1 * itemSize;
19052
+ }
19053
+ }
19054
+
19055
+ startIndex = _startIndex;
19056
+ endIndex = _endIndex; // After the user has finished scrolling
19057
+ // Sort views so text selection is correct
19058
+
19059
+ clearTimeout(sortTimer);
19060
+ sortTimer = setTimeout(_sortViews, 300);
19061
+ return {
19062
+ continuous
19063
+ };
19064
+ };
19065
+
19066
+ const _scrollToPosition = position => {
19067
+ const direction = props.direction === 'vertical' ? {
19068
+ scroll: 'scrollTop',
19069
+ start: 'top'
19070
+ } : {
19071
+ scroll: 'scrollLeft',
19072
+ start: 'left'
19073
+ };
19074
+ const viewport = scroller.value;
19075
+ const scrollDirection = direction.scroll;
19076
+ viewport[scrollDirection] = position;
19077
+ };
19078
+
19079
+ const scrollToItem = index => {
19080
+ let scroll;
19081
+
19082
+ if (props.itemSize === null) {
19083
+ var _sizes$value;
19084
+
19085
+ scroll = index > 0 ? (_sizes$value = sizes.value[index - 1]) === null || _sizes$value === void 0 ? void 0 : _sizes$value.accumulator : 0;
19086
+ } else {
19087
+ scroll = Math.floor(index) * props.itemSize;
19088
+ }
19089
+
19090
+ _scrollToPosition(scroll);
19091
+ };
19092
+
19093
+ const handleScroll = () => {
19094
+ if (!scrollDirty) {
19095
+ scrollDirty = true;
19096
+ if (updateTimeout) return;
19097
+
19098
+ const requestUpdate = () => requestAnimationFrame(() => {
19099
+ scrollDirty = false;
19100
+
19101
+ _updateVisibleItems(false, true);
19102
+ });
19103
+
19104
+ requestUpdate();
19105
+ }
19106
+ };
19107
+
19108
+ expose({
19109
+ scrollToItem
19110
+ });
19111
+ return (_ctx, _cache) => {
19112
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", {
19113
+ ref_key: "scroller",
19114
+ ref: scroller,
19115
+ class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)(["vue-recycle-scroller", {
19116
+ ready: ready.value,
19117
+ [`direction-${__props.direction}`]: true
19118
+ }]),
19119
+ onScrollPassive: handleScroll
19120
+ }, [((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveDynamicComponent)(__props.listTag), {
19121
+ ref: "wrapper",
19122
+ style: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeStyle)({
19123
+ [__props.direction === 'vertical' ? 'minHeight' : 'minWidth']: `${(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.unref)(totalSize)}px`
19124
+ }),
19125
+ class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)(["vue-recycle-scroller__item-wrapper", __props.listClass])
19126
+ }, {
19127
+ default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(true), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)(external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.Fragment, null, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderList)(pool.value, view => {
19128
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveDynamicComponent)(__props.itemTag), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
19129
+ key: view.nr.id,
19130
+ style: ready.value ? {
19131
+ transform: `translate${__props.direction === 'vertical' ? 'Y' : 'X'}(${view.position}px) translate${__props.direction === 'vertical' ? 'X' : 'Y'}(${view.offset}px)`,
19132
+ width: undefined,
19133
+ height: undefined
19134
+ } : null,
19135
+ class: ["vue-recycle-scroller__item-view", [__props.itemClass, {
19136
+ hover: !__props.skipHover && hoverKey.value === view.nr.key
19137
+ }]]
19138
+ }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toHandlers)(__props.skipHover ? {} : {
19139
+ mouseenter: () => {
19140
+ hoverKey.value = view.nr.key;
19141
+ },
19142
+ mouseleave: () => {
19143
+ hoverKey.value = null;
19144
+ }
19145
+ })), {
19146
+ default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "default", {
19147
+ item: view.item,
19148
+ index: view.nr.index,
19149
+ active: view.nr.used
19150
+ })]),
19151
+ _: 2
19152
+ }, 1040, ["style", "class"]);
19153
+ }), 128))]),
19154
+ _: 3
19155
+ }, 8, ["style", "class"]))], 34);
19156
+ };
19157
+ }
19158
+
19159
+ });
19160
+ ;// CONCATENATED MODULE: ./components/scroller/modules/core-scroller.vue?vue&type=script&setup=true&lang=js
19161
+
19162
+ ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/scroller/modules/core-scroller.vue?vue&type=style&index=0&id=d2aff5e0&lang=css
19163
+ // extracted by mini-css-extract-plugin
19164
+
19165
+ ;// CONCATENATED MODULE: ./components/scroller/modules/core-scroller.vue?vue&type=style&index=0&id=d2aff5e0&lang=css
19166
+
19167
+ ;// CONCATENATED MODULE: ./components/scroller/modules/core-scroller.vue
19168
+
19169
+
19170
+
19171
+ ;
19172
+
19173
+ const core_scroller_exports_ = core_scrollervue_type_script_setup_true_lang_js;
19174
+
19175
+ /* harmony default export */ const core_scroller = (core_scroller_exports_);
19176
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/scroller/modules/dynamic-scroller.vue?vue&type=template&id=419ca1d0
19177
+
19178
+ function dynamic_scrollervue_type_template_id_419ca1d0_render(_ctx, _cache, $props, $setup, $data, $options) {
19179
+ const _component_dt_scroller_item = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-scroller-item");
19180
+
19181
+ const _component_core_scroller = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("core-scroller");
19182
+
19183
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_core_scroller, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
19184
+ ref: "scroller",
19185
+ items: $options.itemsWithSize,
19186
+ "min-item-size": $props.minItemSize,
19187
+ direction: $props.direction,
19188
+ "key-field": "id",
19189
+ "list-tag": $props.listTag,
19190
+ "item-tag": $props.itemTag
19191
+ }, _ctx.$attrs), {
19192
+ default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(_ref => {
19193
+ let {
19194
+ item: itemWithSize,
19195
+ index,
19196
+ active
19197
+ } = _ref;
19198
+ return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_scroller_item, {
19199
+ item: itemWithSize,
19200
+ active: active,
19201
+ "size-dependencies": [itemWithSize.message],
19202
+ "data-index": index
19203
+ }, {
19204
+ default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "default", (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeProps)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.guardReactiveProps)({
19205
+ item: itemWithSize.item,
19206
+ index,
19207
+ active,
19208
+ itemWithSize
19209
+ })))]),
19210
+ _: 2
19211
+ }, 1032, ["item", "active", "size-dependencies", "data-index"])];
19212
+ }),
19213
+ _: 3
19214
+ }, 16, ["items", "min-item-size", "direction", "list-tag", "item-tag"]);
19215
+ }
19216
+ ;// CONCATENATED MODULE: ./components/scroller/modules/dynamic-scroller.vue?vue&type=template&id=419ca1d0
19217
+
19218
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/scroller/modules/scroller-item.vue?vue&type=script&lang=js
19219
+
19220
+ /* harmony default export */ const scroller_itemvue_type_script_lang_js = ({
19221
+ name: 'DtScrollerItem',
19222
+ inject: ['vscrollData', 'vscrollParent', 'vscrollResizeObserver'],
19223
+ props: {
19224
+ // eslint-disable-next-line vue/require-prop-types
19225
+ item: {
19226
+ required: true
19227
+ },
19228
+ watchData: {
19229
+ type: Boolean,
19230
+ default: false
19231
+ },
19232
+
19233
+ /**
19234
+ * Indicates if the view is actively used to display an item.
19235
+ */
19236
+ active: {
19237
+ type: Boolean,
19238
+ required: true
19239
+ },
19240
+ index: {
19241
+ type: Number,
19242
+ default: undefined
19243
+ },
19244
+ sizeDependencies: {
19245
+ type: [Array, Object],
19246
+ default: null
19247
+ },
19248
+ tag: {
19249
+ type: String,
19250
+ default: 'div'
19251
+ }
19252
+ },
19253
+ computed: {
19254
+ id() {
19255
+ if (this.vscrollData.simpleArray) return this.index; // eslint-disable-next-line no-prototype-builtins
19256
+
19257
+ if (this.vscrollData.keyField in this.item) return this.item[this.vscrollData.keyField];
19258
+ throw new Error(`keyField '${this.vscrollData.keyField}' not found in your item. You should set a valid keyField prop on your Scroller`);
19259
+ },
19260
+
19261
+ size() {
19262
+ return this.vscrollData.sizes[this.id] || 0;
19263
+ },
19264
+
19265
+ finalActive() {
19266
+ return this.active && this.vscrollData.active;
19267
+ }
19268
+
19269
+ },
19270
+ watch: {
19271
+ watchData: 'updateWatchData',
19272
+
19273
+ id(value, oldValue) {
19274
+ this.$el.$_vs_id = this.id;
19275
+
19276
+ if (!this.size) {
19277
+ this.onDataUpdate();
19278
+ }
19279
+
19280
+ if (this.$_sizeObserved) {
19281
+ // In case the old item had the same size, it won't trigger the ResizeObserver
19282
+ // since we are reusing the same DOM node
19283
+ const oldSize = this.vscrollData.sizes[oldValue];
19284
+ const size = this.vscrollData.sizes[value];
19285
+
19286
+ if (oldSize != null && oldSize !== size) {
19287
+ this.applySize(oldSize);
19288
+ }
19289
+ }
19290
+ },
19291
+
19292
+ finalActive(value) {
19293
+ if (!this.size) {
19294
+ if (value) {
19295
+ if (!this.vscrollParent.$_undefinedMap[this.id]) {
19296
+ this.vscrollParent.$_undefinedSizes++;
19297
+ this.vscrollParent.$_undefinedMap[this.id] = true;
19298
+ }
19299
+ } else {
19300
+ if (this.vscrollParent.$_undefinedMap[this.id]) {
19301
+ this.vscrollParent.$_undefinedSizes--;
19302
+ this.vscrollParent.$_undefinedMap[this.id] = false;
19303
+ }
19304
+ }
19305
+ }
19306
+
19307
+ if (this.vscrollResizeObserver) {
19308
+ if (value) {
19309
+ this.observeSize();
19310
+ } else {
19311
+ this.unobserveSize();
19312
+ }
19313
+ } else if (value && this.$_pendingVScrollUpdate === this.id) {
19314
+ this.updateSize();
19315
+ }
19316
+ }
19317
+
19318
+ },
19319
+
19320
+ created() {
19321
+ if (this.$isServer) return;
19322
+ this.$_forceNextVScrollUpdate = null;
19323
+ this.updateWatchData();
19324
+
19325
+ if (!this.vscrollResizeObserver) {
19326
+ for (const k in this.sizeDependencies) {
19327
+ this.$watch(() => this.sizeDependencies[k], this.onDataUpdate);
19328
+ }
19329
+ }
19330
+ },
19331
+
19332
+ mounted() {
19333
+ if (this.finalActive) {
19334
+ this.updateSize();
19335
+ this.observeSize();
19336
+ }
19337
+ },
19338
+
19339
+ beforeUnmount() {
19340
+ this.unobserveSize();
19341
+ },
19342
+
19343
+ methods: {
19344
+ updateSize() {
19345
+ if (this.finalActive) {
19346
+ if (this.$_pendingSizeUpdate !== this.id) {
19347
+ this.$_pendingSizeUpdate = this.id;
19348
+ this.$_forceNextVScrollUpdate = null;
19349
+ this.$_pendingVScrollUpdate = null;
19350
+ this.computeSize(this.id);
19351
+ }
19352
+ } else {
19353
+ this.$_forceNextVScrollUpdate = this.id;
19354
+ }
19355
+ },
19356
+
19357
+ updateWatchData() {
19358
+ if (this.watchData && !this.vscrollResizeObserver) {
19359
+ this.$_watchData = this.$watch('item', () => {
19360
+ this.onDataUpdate();
19361
+ }, {
19362
+ deep: true
19363
+ });
19364
+ } else if (this.$_watchData) {
19365
+ this.$_watchData();
19366
+ this.$_watchData = null;
19367
+ }
19368
+ },
19369
+
19370
+ onVscrollUpdate(_ref) {
19371
+ let {
19372
+ force
19373
+ } = _ref;
19374
+
19375
+ // If not active, sechedule a size update when it becomes active
19376
+ if (!this.finalActive && force) {
19377
+ this.$_pendingVScrollUpdate = this.id;
19378
+ }
19379
+
19380
+ if (this.$_forceNextVScrollUpdate === this.id || force || !this.size) {
19381
+ this.updateSize();
19382
+ }
19383
+ },
19384
+
19385
+ onDataUpdate() {
19386
+ this.updateSize();
19387
+ },
19388
+
19389
+ computeSize(id) {
19390
+ this.$nextTick(() => {
19391
+ if (this.id === id) {
19392
+ const width = this.$el.offsetWidth;
19393
+ const height = this.$el.offsetHeight;
19394
+ this.applyWidthHeight(width, height);
19395
+ }
19396
+
19397
+ this.$_pendingSizeUpdate = null;
19398
+ });
19399
+ },
19400
+
19401
+ applyWidthHeight(width, height) {
19402
+ const size = ~~(this.vscrollParent.direction === 'vertical' ? height : width);
19403
+
19404
+ if (size && this.size !== size) {
19405
+ this.applySize(size);
19406
+ }
19407
+ },
19408
+
19409
+ applySize(size) {
19410
+ if (this.vscrollParent.$_undefinedMap[this.id]) {
19411
+ this.vscrollParent.$_undefinedSizes--;
19412
+ this.vscrollParent.$_undefinedMap[this.id] = undefined;
19413
+ }
19414
+
19415
+ this.vscrollData.sizes[this.id] = size;
19416
+ },
19417
+
19418
+ observeSize() {
19419
+ if (!this.vscrollResizeObserver) return;
19420
+ if (this.$_sizeObserved) return;
19421
+ this.vscrollResizeObserver.observe(this.$el);
19422
+ this.$el.$_vs_id = this.id;
19423
+ this.$el.$_vs_onResize = this.onResize;
19424
+ this.$_sizeObserved = true;
19425
+ },
19426
+
19427
+ unobserveSize() {
19428
+ if (!this.vscrollResizeObserver) return;
19429
+ if (!this.$_sizeObserved) return;
19430
+ this.vscrollResizeObserver.unobserve(this.$el);
19431
+ this.$el.$_vs_onResize = undefined;
19432
+ this.$_sizeObserved = false;
19433
+ },
19434
+
19435
+ onResize(id, width, height) {
19436
+ if (this.id === id) {
19437
+ this.applyWidthHeight(width, height);
19438
+ }
19439
+ }
19440
+
19441
+ },
19442
+
19443
+ render() {
19444
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.h)(this.tag, this.$slots.default());
19445
+ }
19446
+
19447
+ });
19448
+ ;// CONCATENATED MODULE: ./components/scroller/modules/scroller-item.vue?vue&type=script&lang=js
19449
+
19450
+ ;// CONCATENATED MODULE: ./components/scroller/modules/scroller-item.vue
19451
+
19452
+
19453
+
19454
+ const scroller_item_exports_ = scroller_itemvue_type_script_lang_js;
19455
+
19456
+ /* harmony default export */ const scroller_item = (scroller_item_exports_);
19457
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/scroller/modules/dynamic-scroller.vue?vue&type=script&lang=js
19458
+
19459
+
19460
+ /* harmony default export */ const dynamic_scrollervue_type_script_lang_js = ({
19461
+ name: 'DynamicScroller',
19462
+ components: {
19463
+ CoreScroller: core_scroller,
19464
+ DtScrollerItem: scroller_item
19465
+ },
19466
+
19467
+ provide() {
19468
+ if (typeof ResizeObserver !== 'undefined') {
19469
+ this.$_resizeObserver = new ResizeObserver(entries => {
19470
+ requestAnimationFrame(() => {
19471
+ if (!Array.isArray(entries)) {
19472
+ return;
19473
+ }
19474
+
19475
+ for (const entry of entries) {
19476
+ if (entry.target && entry.target.$_vs_onResize) {
19477
+ let width, height;
19478
+
19479
+ if (entry.borderBoxSize) {
19480
+ const resizeObserverSize = entry.borderBoxSize[0];
19481
+ width = resizeObserverSize.inlineSize;
19482
+ height = resizeObserverSize.blockSize;
19483
+ } else {
19484
+ // @TODO remove when contentRect is deprecated
19485
+ width = entry.contentRect.width;
19486
+ height = entry.contentRect.height;
19487
+ }
19488
+
19489
+ entry.target.$_vs_onResize(entry.target.$_vs_id, width, height);
19490
+ }
19491
+ }
19492
+ });
19493
+ });
19494
+ }
19495
+
19496
+ return {
19497
+ vscrollData: this.vscrollData,
19498
+ vscrollParent: this,
19499
+ vscrollResizeObserver: this.$_resizeObserver
19500
+ };
19501
+ },
19502
+
19503
+ inheritAttrs: false,
19504
+ props: {
19505
+ /*
19506
+ * The items to render.
19507
+ * If the items are simple arrays, the index will be used as the key.
19508
+ * If the items are objects, the keyField will be used as the key.
19509
+ */
19510
+ items: {
19511
+ type: Array,
19512
+ required: true
19513
+ },
19514
+
19515
+ /*
19516
+ * Indicates if the items are dynamic.
19517
+ * If true, the items will be wrapped in a DtScrollerItem component.
19518
+ * This is required for dynamic items to be able to react to changes in their size.
19519
+ */
19520
+ dynamic: {
19521
+ type: Boolean,
19522
+ default: false
19523
+ },
19524
+
19525
+ /*
19526
+ * The key field to use for the items.
19527
+ * Only used if the items are objects.
19528
+ */
19529
+ keyField: {
19530
+ type: String,
19531
+ default: 'id'
19532
+ },
19533
+
19534
+ /*
19535
+ * The direction of the scroller.
19536
+ * Can be either 'vertical' or 'horizontal'.
19537
+ */
19538
+ direction: {
19539
+ type: String,
19540
+ default: 'vertical',
19541
+ validator: value => ['vertical', 'horizontal'].includes(value)
19542
+ },
19543
+
19544
+ /*
19545
+ * The tag to use for the list.
19546
+ */
19547
+ listTag: {
19548
+ type: String,
19549
+ default: 'div'
19550
+ },
19551
+
19552
+ /*
19553
+ * The tag to use for the items.
19554
+ */
19555
+ itemTag: {
19556
+ type: String,
19557
+ default: 'div'
19558
+ },
19559
+
19560
+ /*
19561
+ * Display height (or width in horizontal mode) of the items in pixels
19562
+ * used to calculate the scroll size and position.
19563
+ * Is required for the initial render of items in DYNAMIC size mode.
19564
+ */
19565
+ minItemSize: {
19566
+ type: [Number, String]
19567
+ }
19568
+ },
19569
+
19570
+ data() {
19571
+ return {
19572
+ vscrollData: {
19573
+ active: true,
19574
+ sizes: {},
19575
+ keyField: this.keyField,
19576
+ simpleArray: false
19577
+ }
19578
+ };
19579
+ },
19580
+
19581
+ computed: {
19582
+ simpleArray() {
19583
+ return this.items.length && typeof this.items[0] !== 'object';
19584
+ },
19585
+
19586
+ itemsWithSize() {
19587
+ const result = [];
19588
+ const {
19589
+ items,
19590
+ keyField,
19591
+ simpleArray
19592
+ } = this;
19593
+ const sizes = this.vscrollData.sizes;
19594
+ const l = items.length;
19595
+
19596
+ for (let i = 0; i < l; i++) {
19597
+ const item = items[i];
19598
+ const id = simpleArray ? i : item[keyField];
19599
+ let size = sizes[id];
19600
+
19601
+ if (typeof size === 'undefined' && !this.$_undefinedMap[id]) {
19602
+ size = 0;
19603
+ }
19604
+
19605
+ result.push({
19606
+ item,
19607
+ id,
19608
+ size
19609
+ });
19610
+ }
19611
+
19612
+ return result;
19613
+ }
19614
+
19615
+ },
19616
+ watch: {
19617
+ simpleArray: {
19618
+ handler(value) {
19619
+ this.vscrollData.simpleArray = value;
19620
+ },
19621
+
19622
+ immediate: true
19623
+ },
19624
+
19625
+ itemsWithSize(next, prev) {
19626
+ const scrollTop = this.$el.scrollTop; // Calculate total diff between prev and next sizes
19627
+ // over current scroll top. Then add it to scrollTop to
19628
+ // avoid jumping the contents that the user is seeing.
19629
+
19630
+ let prevActiveTop = 0;
19631
+ let activeTop = 0;
19632
+ const length = Math.min(next.length, prev.length);
19633
+
19634
+ for (let i = 0; i < length; i++) {
19635
+ if (prevActiveTop >= scrollTop) {
19636
+ break;
19637
+ }
19638
+
19639
+ prevActiveTop += prev[i].size || this.minItemSize;
19640
+ activeTop += next[i].size || this.minItemSize;
19641
+ }
19642
+
19643
+ const offset = activeTop - prevActiveTop;
19644
+
19645
+ if (offset === 0) {
19646
+ return;
19647
+ }
19648
+
19649
+ this.$el.scrollTop += offset;
19650
+ }
19651
+
19652
+ },
19653
+
19654
+ beforeCreate() {
19655
+ this.$_updates = [];
19656
+ this.$_undefinedSizes = 0;
19657
+ this.$_undefinedMap = {};
19658
+ },
19659
+
19660
+ activated() {
19661
+ this.vscrollData.active = true;
19662
+ },
19663
+
19664
+ deactivated() {
19665
+ this.vscrollData.active = false;
19666
+ },
19667
+
19668
+ methods: {
19669
+ scrollToItem(index) {
19670
+ const scroller = this.$refs.scroller;
19671
+ if (scroller) scroller.scrollToItem(index);
19672
+ }
19673
+
19674
+ }
19675
+ });
19676
+ ;// CONCATENATED MODULE: ./components/scroller/modules/dynamic-scroller.vue?vue&type=script&lang=js
19677
+
19678
+ ;// CONCATENATED MODULE: ./components/scroller/modules/dynamic-scroller.vue
19679
+
19680
+
19681
+
19682
+
19683
+ ;
19684
+ const dynamic_scroller_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(dynamic_scrollervue_type_script_lang_js, [['render',dynamic_scrollervue_type_template_id_419ca1d0_render]])
19685
+
19686
+ /* harmony default export */ const dynamic_scroller = (dynamic_scroller_exports_);
19687
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/scroller/DtScroller.vue?vue&type=script&setup=true&lang=js
19688
+
19689
+
19690
+
19691
+
19692
+ /* harmony default export */ const DtScrollervue_type_script_setup_true_lang_js = ({
19693
+ __name: 'DtScroller',
19694
+ props: {
19695
+ /**
19696
+ * The direction of the scroller.
19697
+ * @values vertical, horizontal
19698
+ */
19699
+ direction: {
19700
+ type: String,
19701
+ default: 'vertical',
19702
+ validator: value => ['vertical', 'horizontal'].includes(value)
19703
+ },
19704
+
19705
+ /**
19706
+ * Indicates if the items need to react to changes in their size.
19707
+ * If disabled the itemSize prop is required and you will get improved performance.
19708
+ * If enabled the minItemSize prop is required and you
19709
+ * will have reduced performance but the ability to reactively size list items
19710
+ * @values true, false
19711
+ */
19712
+ dynamic: {
19713
+ type: Boolean,
19714
+ default: false
19715
+ },
19716
+
19717
+ /**
19718
+ * Display height (or width in horizontal mode) of the items in pixels
19719
+ * used to calculate the scroll size and position.
19720
+ * Required if DYNAMIC is false
19721
+ */
19722
+ itemSize: {
19723
+ type: Number,
19724
+ default: null
19725
+ },
19726
+
19727
+ /**
19728
+ * The tag to use for the items.
19729
+ */
19730
+ itemTag: {
19731
+ type: String,
19732
+ default: 'div'
19733
+ },
19734
+
19735
+ /**
19736
+ * The items to render.
19737
+ * If the items are simple arrays, the index will be used as the key.
19738
+ * If the items are objects, the keyField will be used as the key.
19739
+ * @example items: [ 'item1', 'item2', 'item3' ]
19740
+ * @example items: [ { id: 1, name: 'item1' }, { id: 2, name: 'item2' }, { id: 3, name: 'item3' } ]
19741
+ */
19742
+ items: {
19743
+ type: Array,
19744
+ required: true
19745
+ },
19746
+
19747
+ /**
19748
+ * The key field to use for the items.
19749
+ * If the items are objects, the scroller needs to be able to identify them.
19750
+ * By default it will look for an id field on the items.
19751
+ * This can be configured with this prop if you are using another field name.
19752
+ */
19753
+ keyField: {
19754
+ type: String,
19755
+ default: 'id'
19756
+ },
19757
+
19758
+ /**
19759
+ * The tag to use for the list.
19760
+ */
19761
+ listTag: {
19762
+ type: String,
19763
+ default: 'div'
19764
+ },
19765
+
19766
+ /**
19767
+ * Minimum size used if the height (or width in horizontal mode) of a item is unknown.
19768
+ * Is required for the initial render of items in DYNAMIC size mode.
19769
+ */
19770
+ minItemSize: {
19771
+ type: [Number, String],
19772
+ default: null
19773
+ },
19774
+
19775
+ /**
19776
+ * The height of the scroller.
19777
+ * Can be a number (in pixels) or a string (in CSS units).
19778
+ */
19779
+ scrollerHeight: {
19780
+ type: [String, Number],
19781
+ default: '100%'
19782
+ },
19783
+
19784
+ /**
19785
+ * The width of the scroller.
19786
+ * Can be a number (in pixels) or a string (in CSS units).
19787
+ */
19788
+ scrollerWidth: {
19789
+ type: [String, Number],
19790
+ default: '100%'
19791
+ }
19792
+ },
19793
+ emits: ['scroll-start', 'scroll-end'],
19794
+
19795
+ setup(__props, _ref) {
19796
+ let {
19797
+ expose,
19798
+ emit: emits
19799
+ } = _ref;
19800
+ const props = __props;
19801
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.provide)('emit', emits);
19802
+ const scroller = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.ref)(null);
19803
+ const computedStyle = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.computed)(() => {
19804
+ return {
19805
+ width: typeof props.scrollerWidth === 'number' ? `${props.scrollerWidth}px` : props.scrollerWidth,
19806
+ height: typeof props.scrollerHeight === 'number' ? `${props.scrollerHeight}px` : props.scrollerHeight
19807
+ };
19808
+ });
19809
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.watch)(props, () => {
19810
+ validateProps();
19811
+ }, {
19812
+ deep: true,
19813
+ immediate: true
19814
+ });
19815
+
19816
+ function scrollToItem(index) {
19817
+ if (scroller.value) scroller.value.scrollToItem(index);
19818
+ }
19819
+
19820
+ function validateProps() {
19821
+ if (props.dynamic && !props.minItemSize) {
19822
+ console.error('DtScroller error: \'minItemSize\' is required on \'dynamic\' mode.');
19823
+ }
19824
+
19825
+ if (!props.dynamic && !props.itemSize) {
19826
+ console.error('DtScroller error: \'itemSize\' is required.');
19827
+ }
19828
+ }
19829
+
19830
+ expose({
19831
+ scrollToItem
19832
+ });
19833
+ return (_ctx, _cache) => {
19834
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveDynamicComponent)(__props.dynamic ? dynamic_scroller : core_scroller), {
19835
+ ref_key: "scroller",
19836
+ ref: scroller,
19837
+ "data-qa": "dt-scroller",
19838
+ items: __props.items,
19839
+ "item-size": __props.itemSize,
19840
+ "min-item-size": __props.minItemSize,
19841
+ direction: __props.direction,
19842
+ "key-field": "id",
19843
+ "list-tag": __props.listTag,
19844
+ "item-tag": __props.itemTag,
19845
+ style: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeStyle)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.unref)(computedStyle)),
19846
+ tabindex: "0",
19847
+ onScrollStart: _cache[0] || (_cache[0] = $event => _ctx.$emit('scroll-start')),
19848
+ onScrollEnd: _cache[1] || (_cache[1] = $event => _ctx.$emit('scroll-end'))
19849
+ }, {
19850
+ default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(_ref2 => {
19851
+ let {
19852
+ item,
19853
+ index,
19854
+ active
19855
+ } = _ref2;
19856
+ return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "default", (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeProps)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.guardReactiveProps)({
19857
+ item: item,
19858
+ index,
19859
+ active
19860
+ })))];
19861
+ }),
19862
+ _: 3
19863
+ }, 40, ["items", "item-size", "min-item-size", "direction", "list-tag", "item-tag", "style"]);
19864
+ };
19865
+ }
19866
+
19867
+ });
19868
+ ;// CONCATENATED MODULE: ./components/scroller/DtScroller.vue?vue&type=script&setup=true&lang=js
19869
+
19870
+ ;// CONCATENATED MODULE: ./components/scroller/DtScroller.vue
19871
+
19872
+
19873
+
19874
+ const DtScroller_exports_ = DtScrollervue_type_script_setup_true_lang_js;
19875
+
19876
+ /* harmony default export */ const DtScroller = (DtScroller_exports_);
19877
+ ;// CONCATENATED MODULE: ./components/scroller/index.js
19878
+
19879
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=template&id=bdafd0f4
19880
+
19881
+ const combobox_with_popovervue_type_template_id_bdafd0f4_hoisted_1 = ["id"];
19882
+ const combobox_with_popovervue_type_template_id_bdafd0f4_hoisted_2 = {
19883
+ ref: "header"
19884
+ };
19885
+ const combobox_with_popovervue_type_template_id_bdafd0f4_hoisted_3 = ["onMouseleave", "onFocusout"];
19886
+ const combobox_with_popovervue_type_template_id_bdafd0f4_hoisted_4 = {
19887
+ ref: "footer"
19888
+ };
19889
+ function combobox_with_popovervue_type_template_id_bdafd0f4_render(_ctx, _cache, $props, $setup, $data, $options) {
19890
+ const _component_combobox_loading_list = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("combobox-loading-list");
19891
+
19892
+ const _component_combobox_empty_list = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("combobox-empty-list");
19893
+
19894
+ const _component_dt_popover = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-popover");
19895
+
19896
+ const _component_dt_combobox = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-combobox");
19897
+
19898
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_dt_combobox, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
19899
+ ref: "combobox",
19900
+ loading: $props.loading,
19901
+ label: $props.label,
19902
+ "label-visible": $props.labelVisible,
19903
+ size: $props.size,
19904
+ description: $props.description,
19905
+ "empty-list": $props.emptyList,
19906
+ "empty-state-message": $props.emptyStateMessage,
19907
+ "show-list": $data.isListShown,
19908
+ "on-beginning-of-list": $props.onBeginningOfList,
19909
+ "on-end-of-list": $props.onEndOfList,
19910
+ "list-rendered-outside": true,
19911
+ "list-id": $props.listId,
19912
+ "data-qa": "dt-combobox"
19913
+ }, $options.comboboxListeners), {
19914
+ input: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(_ref => {
19915
+ let {
19916
+ inputProps
19917
+ } = _ref;
19918
+ return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", {
19919
+ id: $data.externalAnchor,
19920
+ ref: "input",
19921
+ onFocusin: _cache[0] || (_cache[0] = function () {
19922
+ return $options.onFocusIn && $options.onFocusIn(...arguments);
19923
+ }),
19924
+ onKeydown: [_cache[1] || (_cache[1] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)($event => $options.openOnArrowKeyPress($event), ["up"])), _cache[2] || (_cache[2] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)($event => $options.openOnArrowKeyPress($event), ["down"]))]
19925
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "input", {
19926
+ inputProps: inputProps,
19927
+ onInput: $options.handleDisplayList
19928
+ })], 40, combobox_with_popovervue_type_template_id_bdafd0f4_hoisted_1)];
19929
+ }),
19930
+ list: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(_ref2 => {
19931
+ let {
19932
+ opened,
19933
+ listProps,
19934
+ clearHighlightIndex
19935
+ } = _ref2;
19936
+ return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_popover, {
19937
+ ref: "popover",
19938
+ open: $data.isListShown,
19939
+ "onUpdate:open": _cache[3] || (_cache[3] = $event => $data.isListShown = $event),
19940
+ "hide-on-click": false,
19941
+ "max-height": $props.maxHeight,
19942
+ "max-width": $props.maxWidth,
19943
+ offset: $props.popoverOffset,
19944
+ sticky: $props.popoverSticky,
19945
+ placement: "bottom-start",
19946
+ "initial-focus-element": "none",
19947
+ padding: "none",
19948
+ role: "listbox",
19949
+ "external-anchor": $data.externalAnchor,
19950
+ "content-width": $props.contentWidth,
19951
+ "content-appear": true,
19952
+ "content-tabindex": null,
19953
+ modal: false,
19954
+ "auto-focus": false,
19955
+ "append-to": $props.appendTo,
19956
+ "visually-hidden-close-label": _ctx.visuallyHiddenCloseLabel,
19957
+ "visually-hidden-close": _ctx.visuallyHiddenClose,
19958
+ onOpened: opened
19959
+ }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createSlots)({
19960
+ content: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", {
19961
+ ref: "listWrapper",
19962
+ class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)([$data.DROPDOWN_PADDING_CLASSES[$props.padding], $props.listClass]),
19963
+ onMouseleave: clearHighlightIndex,
19964
+ onFocusout: clearHighlightIndex
19965
+ }, [$props.loading ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_combobox_loading_list, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeProps)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
19966
+ key: 0
19967
+ }, listProps)), null, 16)) : $props.emptyList && $props.emptyStateMessage ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_combobox_empty_list, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
19968
+ key: 1
19969
+ }, listProps, {
19970
+ message: $props.emptyStateMessage
19971
+ }), null, 16, ["message"])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "list", {
19972
+ key: 2,
19973
+ listProps: listProps
19974
+ })], 42, combobox_with_popovervue_type_template_id_bdafd0f4_hoisted_3)]),
19975
+ _: 2
19976
+ }, [$data.hasSlotContent(_ctx.$slots.header) ? {
19977
+ name: "headerContent",
19978
+ fn: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", combobox_with_popovervue_type_template_id_bdafd0f4_hoisted_2, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "header")], 512)]),
19979
+ key: "0"
19980
+ } : undefined, $data.hasSlotContent(_ctx.$slots.footer) ? {
19981
+ name: "footerContent",
19982
+ fn: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", combobox_with_popovervue_type_template_id_bdafd0f4_hoisted_4, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "footer")], 512)]),
19983
+ key: "1"
19984
+ } : undefined]), 1032, ["open", "max-height", "max-width", "offset", "sticky", "external-anchor", "content-width", "append-to", "visually-hidden-close-label", "visually-hidden-close", "onOpened"])];
19985
+ }),
19986
+ _: 3
19987
+ }, 16, ["loading", "label", "label-visible", "size", "description", "empty-list", "empty-state-message", "show-list", "on-beginning-of-list", "on-end-of-list", "list-id"]);
19988
+ }
19989
+ ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=template&id=bdafd0f4
19990
+
19991
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue?vue&type=script&lang=js
19992
+ /* eslint-disable vuejs-accessibility/no-static-element-interactions */
19993
+
19994
+
19995
+
19996
+
19997
+
19998
+
19999
+
20000
+
20001
+
20002
+ /* harmony default export */ const combobox_with_popovervue_type_script_lang_js = ({
20003
+ name: 'DtRecipeComboboxWithPopover',
20004
+ components: {
20005
+ DtCombobox: combobox,
20006
+ DtPopover: popover,
20007
+ ComboboxLoadingList: combobox_loading_list,
20008
+ ComboboxEmptyList: combobox_empty_list
20009
+ },
20010
+ mixins: [sr_only_close_button],
20011
+ props: {
20012
+ /**
20013
+ * String to use for the input label.
20014
+ */
20015
+ label: {
20016
+ type: String,
20017
+ required: true
20018
+ },
20019
+
20020
+ /**
20021
+ * Determines visibility of input label.
20022
+ * @values true, false
20023
+ */
20024
+ labelVisible: {
20025
+ type: Boolean,
20026
+ default: true
20027
+ },
20028
+
20029
+ /**
20030
+ * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`
20031
+ * @values null, xs, sm, md, lg, xl
20032
+ */
20033
+ size: {
20034
+ type: String,
20035
+ default: null,
20036
+ validator: t => Object.values(LABEL_SIZES).includes(t)
20037
+ },
20038
+
20039
+ /**
20040
+ * Description for the input
20041
+ */
20042
+ description: {
20043
+ type: String,
20044
+ default: ''
20045
+ },
20046
+
20047
+ /**
20048
+ * Determines when to show the list element and also controls the aria-expanded attribute.
20049
+ * Leaving this null will have the combobox trigger on input focus by default.
20050
+ * If you set this value, the default trigger behavior will be disabled and you can
20051
+ * control it as you need.
20052
+ */
20053
+ showList: {
20054
+ type: Boolean,
20055
+ default: null
20056
+ },
20057
+
20058
+ /**
20059
+ * Sets an ID on the list element of the component. Used by several aria attributes
20060
+ * as well as when deriving the IDs for each item.
20061
+ */
20062
+ listId: {
20063
+ type: String,
20064
+
20065
+ default() {
20066
+ return getUniqueString();
20067
+ }
20068
+
20069
+ },
20070
+
20071
+ /**
20072
+ * Additional class for the wrapper list element.
20073
+ */
20074
+ listClass: {
20075
+ type: [String, Array, Object],
20076
+ default: ''
20077
+ },
20078
+
20079
+ /**
20080
+ * A method that will be called when the selection goes past the beginning of the list.
20081
+ */
20082
+ onBeginningOfList: {
20083
+ type: Function,
20084
+ default: null
20085
+ },
20086
+
20087
+ /**
20088
+ * A method that will be called when the selection goes past the end of the list.
20089
+ */
20090
+ onEndOfList: {
20091
+ type: Function,
20092
+ default: null
20093
+ },
20094
+
20095
+ /**
20096
+ * Determines maximum height for the popover before overflow.
20097
+ * Possible units rem|px|em
20098
+ */
20099
+ maxHeight: {
20100
+ type: String,
20101
+ default: ''
20102
+ },
20103
+
20104
+ /**
20105
+ * Determines maximum width for the popover before overflow.
20106
+ * Possible units rem|px|%|em
20107
+ */
20108
+ maxWidth: {
20109
+ type: String,
20110
+ default: ''
20111
+ },
20112
+
20113
+ /**
20114
+ * Vertical padding size around the list element.
20115
+ */
20116
+ padding: {
20117
+ type: String,
20118
+ default: 'small',
20119
+ validator: padding => {
20120
+ return Object.keys(DROPDOWN_PADDING_CLASSES).some(item => item === padding);
20121
+ }
18764
20122
  },
18765
20123
 
18766
20124
  /**
@@ -19729,9 +21087,9 @@ const combobox_multi_select_exports_ = /*#__PURE__*/(0,exportHelper/* default */
19729
21087
  ;// CONCATENATED MODULE: ./recipes/comboboxes/combobox_multi_select/index.js
19730
21088
 
19731
21089
 
19732
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/buttons/callbar_button/callbar_button.vue?vue&type=template&id=5a354a3a
21090
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/buttons/callbar_button/callbar_button.vue?vue&type=template&id=26061d5a
19733
21091
 
19734
- function callbar_buttonvue_type_template_id_5a354a3a_render(_ctx, _cache, $props, $setup, $data, $options) {
21092
+ function callbar_buttonvue_type_template_id_26061d5a_render(_ctx, _cache, $props, $setup, $data, $options) {
19735
21093
  const _component_dt_button = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-button");
19736
21094
 
19737
21095
  const _component_dt_tooltip = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-tooltip");
@@ -19746,19 +21104,19 @@ function callbar_buttonvue_type_template_id_5a354a3a_render(_ctx, _cache, $props
19746
21104
  "icon-position": "top",
19747
21105
  disabled: $props.disabled,
19748
21106
  "aria-label": $props.ariaLabel,
19749
- "label-class": "d-fs-100",
21107
+ "label-class": $options.callbarButtonTextClass,
19750
21108
  width: $options.buttonWidth,
19751
21109
  class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)($options.callbarButtonClass)
19752
21110
  }, {
19753
21111
  icon: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "icon")]),
19754
21112
  default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "default")]),
19755
21113
  _: 3
19756
- }, 8, ["importance", "disabled", "aria-label", "width", "class"])]),
21114
+ }, 8, ["importance", "disabled", "aria-label", "label-class", "width", "class"])]),
19757
21115
  default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "tooltip")]),
19758
21116
  _: 3
19759
21117
  }, 8, ["id"]);
19760
21118
  }
19761
- ;// CONCATENATED MODULE: ./recipes/buttons/callbar_button/callbar_button.vue?vue&type=template&id=5a354a3a
21119
+ ;// CONCATENATED MODULE: ./recipes/buttons/callbar_button/callbar_button.vue?vue&type=template&id=26061d5a
19762
21120
 
19763
21121
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/buttons/callbar_button/callbar_button.vue?vue&type=script&lang=js
19764
21122
 
@@ -19846,6 +21204,14 @@ const VALID_WIDTH_SIZE = ['sm', 'md', 'lg', 'xl'];
19846
21204
  default: ''
19847
21205
  },
19848
21206
 
21207
+ /**
21208
+ * Additional class name for the button text.
21209
+ */
21210
+ textClass: {
21211
+ type: [String, Array, Object],
21212
+ default: ''
21213
+ },
21214
+
19849
21215
  /*
19850
21216
  * Width size. Valid values are: 'xl', 'lg', 'md' and 'sm'.
19851
21217
  */
@@ -19857,7 +21223,7 @@ const VALID_WIDTH_SIZE = ['sm', 'md', 'lg', 'xl'];
19857
21223
  },
19858
21224
  computed: {
19859
21225
  callbarButtonClass() {
19860
- return [this.buttonClass, 'dt-recipe-callbar-button', 'd-px0', {
21226
+ return [this.buttonClass, 'dt-recipe-callbar-button', 'd-px0', 'd-fc-black-900', {
19861
21227
  'dt-recipe-callbar-button--circle': this.circle,
19862
21228
  'd-btn--icon-only': this.circle,
19863
21229
  'dt-recipe-callbar-button--active': this.active,
@@ -19865,6 +21231,10 @@ const VALID_WIDTH_SIZE = ['sm', 'md', 'lg', 'xl'];
19865
21231
  }];
19866
21232
  },
19867
21233
 
21234
+ callbarButtonTextClass() {
21235
+ return ['d-fs-100 lg:d-d-none md:d-d-none sm:d-d-none', this.textClass];
21236
+ },
21237
+
19868
21238
  buttonWidth() {
19869
21239
  switch (this.buttonWidthSize) {
19870
21240
  case 'sm':
@@ -19882,10 +21252,10 @@ const VALID_WIDTH_SIZE = ['sm', 'md', 'lg', 'xl'];
19882
21252
  });
19883
21253
  ;// CONCATENATED MODULE: ./recipes/buttons/callbar_button/callbar_button.vue?vue&type=script&lang=js
19884
21254
 
19885
- ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-32.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/buttons/callbar_button/callbar_button.vue?vue&type=style&index=0&id=5a354a3a&lang=less
21255
+ ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-32.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/buttons/callbar_button/callbar_button.vue?vue&type=style&index=0&id=26061d5a&lang=less
19886
21256
  // extracted by mini-css-extract-plugin
19887
21257
 
19888
- ;// CONCATENATED MODULE: ./recipes/buttons/callbar_button/callbar_button.vue?vue&type=style&index=0&id=5a354a3a&lang=less
21258
+ ;// CONCATENATED MODULE: ./recipes/buttons/callbar_button/callbar_button.vue?vue&type=style&index=0&id=26061d5a&lang=less
19889
21259
 
19890
21260
  ;// CONCATENATED MODULE: ./recipes/buttons/callbar_button/callbar_button.vue
19891
21261
 
@@ -19895,17 +21265,17 @@ const VALID_WIDTH_SIZE = ['sm', 'md', 'lg', 'xl'];
19895
21265
  ;
19896
21266
 
19897
21267
 
19898
- const callbar_button_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(callbar_buttonvue_type_script_lang_js, [['render',callbar_buttonvue_type_template_id_5a354a3a_render]])
21268
+ const callbar_button_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(callbar_buttonvue_type_script_lang_js, [['render',callbar_buttonvue_type_template_id_26061d5a_render]])
19899
21269
 
19900
21270
  /* harmony default export */ const callbar_button = (callbar_button_exports_);
19901
21271
  ;// CONCATENATED MODULE: ./recipes/buttons/callbar_button/index.js
19902
21272
 
19903
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue?vue&type=template&id=fef43d00
21273
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue?vue&type=template&id=20c26330
19904
21274
 
19905
- const callbar_button_with_popovervue_type_template_id_fef43d00_hoisted_1 = {
21275
+ const callbar_button_with_popovervue_type_template_id_20c26330_hoisted_1 = {
19906
21276
  class: "d-d-flex d-ai-center"
19907
21277
  };
19908
- function callbar_button_with_popovervue_type_template_id_fef43d00_render(_ctx, _cache, $props, $setup, $data, $options) {
21278
+ function callbar_button_with_popovervue_type_template_id_20c26330_render(_ctx, _cache, $props, $setup, $data, $options) {
19909
21279
  const _component_dt_recipe_callbar_button = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-recipe-callbar-button");
19910
21280
 
19911
21281
  const _component_dt_icon = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-icon");
@@ -19914,13 +21284,14 @@ function callbar_button_with_popovervue_type_template_id_fef43d00_render(_ctx, _
19914
21284
 
19915
21285
  const _component_dt_popover = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-popover");
19916
21286
 
19917
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", callbar_button_with_popovervue_type_template_id_fef43d00_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_recipe_callbar_button, {
21287
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", callbar_button_with_popovervue_type_template_id_20c26330_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_recipe_callbar_button, {
19918
21288
  "aria-label": $props.ariaLabel,
19919
21289
  disabled: $props.disabled,
19920
21290
  active: $props.active,
19921
21291
  danger: $props.danger,
19922
21292
  "button-class": $props.buttonClass,
19923
21293
  "button-width-size": $props.buttonWidthSize,
21294
+ "text-class": $props.textClass,
19924
21295
  class: "dt-recipe--callbar-button-with-popover--main-button",
19925
21296
  onClick: $options.buttonClick
19926
21297
  }, {
@@ -19928,7 +21299,7 @@ function callbar_button_with_popovervue_type_template_id_fef43d00_render(_ctx, _
19928
21299
  tooltip: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "tooltip")]),
19929
21300
  default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "default")]),
19930
21301
  _: 3
19931
- }, 8, ["aria-label", "disabled", "active", "danger", "button-class", "button-width-size", "onClick"]), $options.showArrowButton ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_dt_popover, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
21302
+ }, 8, ["aria-label", "disabled", "active", "danger", "button-class", "button-width-size", "text-class", "onClick"]), $options.showArrowButton ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_dt_popover, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
19932
21303
  key: 0,
19933
21304
  id: $props.id,
19934
21305
  open: $data.open,
@@ -19964,7 +21335,7 @@ function callbar_button_with_popovervue_type_template_id_fef43d00_render(_ctx, _
19964
21335
  _: 3
19965
21336
  }, 16, ["id", "open", "placement", "initial-focus-element", "show-close-button", "dialog-class", "onOpened"])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)]);
19966
21337
  }
19967
- ;// CONCATENATED MODULE: ./recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue?vue&type=template&id=fef43d00
21338
+ ;// CONCATENATED MODULE: ./recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue?vue&type=template&id=20c26330
19968
21339
 
19969
21340
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue?vue&type=script&lang=js
19970
21341
 
@@ -20119,6 +21490,14 @@ function callbar_button_with_popovervue_type_template_id_fef43d00_render(_ctx, _
20119
21490
  default: ''
20120
21491
  },
20121
21492
 
21493
+ /**
21494
+ * Additional class name for the button text.
21495
+ */
21496
+ textClass: {
21497
+ type: [String, Array, Object],
21498
+ default: ''
21499
+ },
21500
+
20122
21501
  /*
20123
21502
  * Width size. Valid values are: 'xl', 'lg', 'md' and 'sm'.
20124
21503
  */
@@ -20189,10 +21568,10 @@ function callbar_button_with_popovervue_type_template_id_fef43d00_render(_ctx, _
20189
21568
  });
20190
21569
  ;// CONCATENATED MODULE: ./recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue?vue&type=script&lang=js
20191
21570
 
20192
- ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-32.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue?vue&type=style&index=0&id=fef43d00&lang=less
21571
+ ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-32.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue?vue&type=style&index=0&id=20c26330&lang=less
20193
21572
  // extracted by mini-css-extract-plugin
20194
21573
 
20195
- ;// CONCATENATED MODULE: ./recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue?vue&type=style&index=0&id=fef43d00&lang=less
21574
+ ;// CONCATENATED MODULE: ./recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue?vue&type=style&index=0&id=20c26330&lang=less
20196
21575
 
20197
21576
  ;// CONCATENATED MODULE: ./recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue
20198
21577
 
@@ -20202,31 +21581,31 @@ function callbar_button_with_popovervue_type_template_id_fef43d00_render(_ctx, _
20202
21581
  ;
20203
21582
 
20204
21583
 
20205
- const callbar_button_with_popover_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(callbar_button_with_popovervue_type_script_lang_js, [['render',callbar_button_with_popovervue_type_template_id_fef43d00_render]])
21584
+ const callbar_button_with_popover_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(callbar_button_with_popovervue_type_script_lang_js, [['render',callbar_button_with_popovervue_type_template_id_20c26330_render]])
20206
21585
 
20207
21586
  /* harmony default export */ const callbar_button_with_popover = (callbar_button_with_popover_exports_);
20208
21587
  ;// CONCATENATED MODULE: ./recipes/buttons/callbar_button_with_popover/index.js
20209
21588
 
20210
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/list_items/contact_info/contact_info.vue?vue&type=template&id=9fe40f88
21589
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/list_items/contact_info/contact_info.vue?vue&type=template&id=0720678b
20211
21590
 
20212
- const contact_infovue_type_template_id_9fe40f88_hoisted_1 = {
21591
+ const contact_infovue_type_template_id_0720678b_hoisted_1 = {
20213
21592
  class: "d-ps-relative",
20214
21593
  "data-qa": "contact-info-left"
20215
21594
  };
20216
- const contact_infovue_type_template_id_9fe40f88_hoisted_2 = ["src", "alt"];
20217
- const contact_infovue_type_template_id_9fe40f88_hoisted_3 = {
21595
+ const contact_infovue_type_template_id_0720678b_hoisted_2 = ["src", "alt"];
21596
+ const contact_infovue_type_template_id_0720678b_hoisted_3 = {
20218
21597
  "data-qa": "contact-info-header"
20219
21598
  };
20220
- const contact_infovue_type_template_id_9fe40f88_hoisted_4 = {
21599
+ const contact_infovue_type_template_id_0720678b_hoisted_4 = {
20221
21600
  "data-qa": "contact-info-subtitle"
20222
21601
  };
20223
- const contact_infovue_type_template_id_9fe40f88_hoisted_5 = {
21602
+ const contact_infovue_type_template_id_0720678b_hoisted_5 = {
20224
21603
  "data-qa": "contact-info-bottom"
20225
21604
  };
20226
- const contact_infovue_type_template_id_9fe40f88_hoisted_6 = {
21605
+ const contact_infovue_type_template_id_0720678b_hoisted_6 = {
20227
21606
  "data-qa": "contact-info-right"
20228
21607
  };
20229
- function contact_infovue_type_template_id_9fe40f88_render(_ctx, _cache, $props, $setup, $data, $options) {
21608
+ function contact_infovue_type_template_id_0720678b_render(_ctx, _cache, $props, $setup, $data, $options) {
20230
21609
  const _component_dt_avatar = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-avatar");
20231
21610
 
20232
21611
  const _component_dt_list_item = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-list-item");
@@ -20237,48 +21616,35 @@ function contact_infovue_type_template_id_9fe40f88_render(_ctx, _cache, $props,
20237
21616
  "element-type": "div",
20238
21617
  "data-qa": "contact-info"
20239
21618
  }, {
20240
- left: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", contact_infovue_type_template_id_9fe40f88_hoisted_1, [$props.avatarSrc ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_dt_avatar, {
21619
+ left: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", contact_infovue_type_template_id_0720678b_hoisted_1, [$props.avatarSrc ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_dt_avatar, {
20241
21620
  key: 0,
20242
- size: "lg"
21621
+ size: $props.avatarSize,
21622
+ presence: $props.presence
20243
21623
  }, {
20244
21624
  default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("img", {
20245
21625
  "data-qa": "dt-contact-avatar",
20246
21626
  src: $props.avatarSrc,
20247
21627
  alt: $props.avatarInitials
20248
- }, null, 8, contact_infovue_type_template_id_9fe40f88_hoisted_2)]),
21628
+ }, null, 8, contact_infovue_type_template_id_0720678b_hoisted_2)]),
20249
21629
  _: 1
20250
- })) : $props.avatarInitials ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_dt_avatar, {
21630
+ }, 8, ["size", "presence"])) : $props.avatarInitials ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_dt_avatar, {
20251
21631
  key: 1,
20252
- size: "lg"
21632
+ size: $props.avatarSize,
21633
+ presence: $props.presence
20253
21634
  }, {
20254
21635
  default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createTextVNode)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($props.avatarInitials), 1)]),
20255
21636
  _: 1
20256
- })) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true), $options.showUserStatus ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", {
20257
- key: 2,
20258
- class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)(['d-ba', 'd-bc-white', 'd-baw2', 'd-bar2', 'd-ps-absolute', 'd-bn1', 'd-rn1', 'd-w20p', 'd-h20p', $data.USER_STATUS_COLOR_MODIFIERS[$props.userStatusColor]]),
20259
- "data-qa": "contact-info-user-status"
20260
- }, "   ", 2)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)])]),
20261
- default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", contact_infovue_type_template_id_9fe40f88_hoisted_3, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "header")])]),
20262
- subtitle: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", contact_infovue_type_template_id_9fe40f88_hoisted_4, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "subtitle")])]),
20263
- bottom: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", contact_infovue_type_template_id_9fe40f88_hoisted_5, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "bottom")])]),
20264
- right: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", contact_infovue_type_template_id_9fe40f88_hoisted_6, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "right")])]),
21637
+ }, 8, ["size", "presence"])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)])]),
21638
+ default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", contact_infovue_type_template_id_0720678b_hoisted_3, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "header")])]),
21639
+ subtitle: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", contact_infovue_type_template_id_0720678b_hoisted_4, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "subtitle")])]),
21640
+ bottom: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", contact_infovue_type_template_id_0720678b_hoisted_5, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "bottom")])]),
21641
+ right: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", contact_infovue_type_template_id_0720678b_hoisted_6, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "right")])]),
20265
21642
  _: 3
20266
21643
  }, 8, ["id", "role"]);
20267
21644
  }
20268
- ;// CONCATENATED MODULE: ./recipes/list_items/contact_info/contact_info.vue?vue&type=template&id=9fe40f88
20269
-
20270
- ;// CONCATENATED MODULE: ./recipes/list_items/contact_info/contact_info_constants.js
20271
- const USER_STATUS_COLOR_MODIFIERS = {
20272
- none: '',
20273
- green: 'd-bgc-green-300',
20274
- gold: 'd-bgc-gold-200',
20275
- red: 'd-bgc-red-200'
20276
- };
20277
- /* harmony default export */ const contact_info_constants = ({
20278
- USER_STATUS_COLOR_MODIFIERS
20279
- });
20280
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/list_items/contact_info/contact_info.vue?vue&type=script&lang=js
21645
+ ;// CONCATENATED MODULE: ./recipes/list_items/contact_info/contact_info.vue?vue&type=template&id=0720678b
20281
21646
 
21647
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/list_items/contact_info/contact_info.vue?vue&type=script&lang=js
20282
21648
 
20283
21649
 
20284
21650
 
@@ -20335,25 +21701,24 @@ const USER_STATUS_COLOR_MODIFIERS = {
20335
21701
 
20336
21702
  /**
20337
21703
  * Status color of user from contact.
21704
+ * The size of the avatar
21705
+ * @values xs, sm, md, lg, xl
20338
21706
  */
20339
- userStatusColor: {
21707
+ avatarSize: {
20340
21708
  type: String,
20341
- default: 'none',
20342
- validator: color => Object.keys(USER_STATUS_COLOR_MODIFIERS).includes(color)
20343
- }
20344
- },
20345
-
20346
- data() {
20347
- return {
20348
- USER_STATUS_COLOR_MODIFIERS: USER_STATUS_COLOR_MODIFIERS
20349
- };
20350
- },
21709
+ default: 'lg'
21710
+ },
20351
21711
 
20352
- computed: {
20353
- showUserStatus() {
20354
- return this.userStatusColor !== 'none';
21712
+ /**
21713
+ * Determines whether to show the presence indicator for
21714
+ * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',
21715
+ * or 'active'. By default, it's null and nothing is shown.
21716
+ * @values null, busy, away, offline, active
21717
+ */
21718
+ presence: {
21719
+ type: String,
21720
+ default: null
20355
21721
  }
20356
-
20357
21722
  }
20358
21723
  });
20359
21724
  ;// CONCATENATED MODULE: ./recipes/list_items/contact_info/contact_info.vue?vue&type=script&lang=js
@@ -20364,12 +21729,11 @@ const USER_STATUS_COLOR_MODIFIERS = {
20364
21729
 
20365
21730
 
20366
21731
  ;
20367
- const contact_info_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(contact_infovue_type_script_lang_js, [['render',contact_infovue_type_template_id_9fe40f88_render]])
21732
+ const contact_info_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(contact_infovue_type_script_lang_js, [['render',contact_infovue_type_template_id_0720678b_render]])
20368
21733
 
20369
21734
  /* harmony default export */ const contact_info = (contact_info_exports_);
20370
21735
  ;// CONCATENATED MODULE: ./recipes/list_items/contact_info/index.js
20371
21736
 
20372
-
20373
21737
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/notices/top_banner_info/top_banner_info.vue?vue&type=template&id=ca4ec176
20374
21738
 
20375
21739
  const top_banner_infovue_type_template_id_ca4ec176_hoisted_1 = {
@@ -20450,19 +21814,19 @@ const top_banner_info_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(to
20450
21814
  ;// CONCATENATED MODULE: ./recipes/notices/top_banner_info/index.js
20451
21815
 
20452
21816
 
20453
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/cards/ivr_node/ivr_node.vue?vue&type=template&id=19695402
21817
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/cards/ivr_node/ivr_node.vue?vue&type=template&id=61018687
20454
21818
 
20455
- const ivr_nodevue_type_template_id_19695402_hoisted_1 = {
21819
+ const ivr_nodevue_type_template_id_61018687_hoisted_1 = {
20456
21820
  class: "d-d-flex d-ai-center"
20457
21821
  };
20458
- const ivr_nodevue_type_template_id_19695402_hoisted_2 = {
21822
+ const ivr_nodevue_type_template_id_61018687_hoisted_2 = {
20459
21823
  class: "d-fs-200 d-fw-bold",
20460
21824
  "data-qa": "ivr-node-label"
20461
21825
  };
20462
- const ivr_nodevue_type_template_id_19695402_hoisted_3 = {
21826
+ const ivr_nodevue_type_template_id_61018687_hoisted_3 = {
20463
21827
  class: "d-w164"
20464
21828
  };
20465
- function ivr_nodevue_type_template_id_19695402_render(_ctx, _cache, $props, $setup, $data, $options) {
21829
+ function ivr_nodevue_type_template_id_61018687_render(_ctx, _cache, $props, $setup, $data, $options) {
20466
21830
  const _component_dt_icon = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-icon");
20467
21831
 
20468
21832
  const _component_dt_button = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-button");
@@ -20476,16 +21840,18 @@ function ivr_nodevue_type_template_id_19695402_render(_ctx, _cache, $props, $set
20476
21840
  }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toHandlers)($options.nodeListeners, true)), [$props.dtmfKey ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", {
20477
21841
  key: 0,
20478
21842
  "data-qa": "dt-top-connector-dtmf",
20479
- class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)(["d-zi-base1 d-ai-center d-jc-center d-d-flex d-w24 d-h24 d-bar-circle d-bc-purple-600 d-bgc-purple-600 d-mbn12 d-fc-white d-fs-200", {
21843
+ class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)(["ivr-connector d-w24 d-h24 d-bar-circle d-mbn12 d-fc-white d-fs-200", {
20480
21844
  'd-mbn16': $props.isSelected
20481
21845
  }])
20482
- }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($props.dtmfKey), 3)) : ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", {
20483
- key: 1,
21846
+ }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($props.dtmfKey), 3)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true), _ctx.$slots.connector ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "connector", {
21847
+ key: 1
21848
+ }) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true), !$props.dtmfKey && !_ctx.$slots.connector ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", {
21849
+ key: 2,
20484
21850
  "data-qa": "dt-top-connector",
20485
- class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)(["d-zi-base1 d-d-flex d-w8 d-h8 d-bar-circle d-bc-purple-600 d-bgc-purple-600 d-mbn4", {
21851
+ class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)(["ivr-connector d-w8 d-h8 d-bar-circle d-mbn4", {
20486
21852
  'd-mbn8': $props.isSelected
20487
21853
  }])
20488
- }, null, 2)), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_card, {
21854
+ }, null, 2)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_card, {
20489
21855
  "content-class": "d-bt d-bc-black-300 d-px12 d-pt8 d-pb12",
20490
21856
  "container-class": ['d-w100p', {
20491
21857
  'd-ba d-bar8 d-baw4': $props.isSelected
@@ -20494,7 +21860,7 @@ function ivr_nodevue_type_template_id_19695402_render(_ctx, _cache, $props, $set
20494
21860
  'd-btr4': !$props.isSelected
20495
21861
  }]
20496
21862
  }, {
20497
- header: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", ivr_nodevue_type_template_id_19695402_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_button, {
21863
+ header: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", ivr_nodevue_type_template_id_61018687_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_button, {
20498
21864
  "aria-label": $props.nodeType,
20499
21865
  importance: "clear",
20500
21866
  "data-qa": "dt-ivr-node-icon"
@@ -20507,7 +21873,7 @@ function ivr_nodevue_type_template_id_19695402_render(_ctx, _cache, $props, $set
20507
21873
  }])
20508
21874
  }, null, 8, ["name", "class"])]),
20509
21875
  _: 1
20510
- }, 8, ["aria-label"]), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("p", ivr_nodevue_type_template_id_19695402_hoisted_2, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($props.nodeLabel), 1)]), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_dropdown, {
21876
+ }, 8, ["aria-label"]), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("p", ivr_nodevue_type_template_id_61018687_hoisted_2, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($props.nodeLabel), 1)]), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_dropdown, {
20511
21877
  open: $data.isOpen,
20512
21878
  "onUpdate:open": _cache[0] || (_cache[0] = $event => $data.isOpen = $event),
20513
21879
  placement: "bottom"
@@ -20528,7 +21894,7 @@ function ivr_nodevue_type_template_id_19695402_render(_ctx, _cache, $props, $set
20528
21894
  let {
20529
21895
  close
20530
21896
  } = _ref;
20531
- return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", ivr_nodevue_type_template_id_19695402_hoisted_3, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "menuItems", {
21897
+ return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", ivr_nodevue_type_template_id_61018687_hoisted_3, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "menuItems", {
20532
21898
  close: close
20533
21899
  })])];
20534
21900
  }),
@@ -20538,7 +21904,7 @@ function ivr_nodevue_type_template_id_19695402_render(_ctx, _cache, $props, $set
20538
21904
  _: 3
20539
21905
  }, 8, ["container-class", "header-class"])], 16);
20540
21906
  }
20541
- ;// CONCATENATED MODULE: ./recipes/cards/ivr_node/ivr_node.vue?vue&type=template&id=19695402
21907
+ ;// CONCATENATED MODULE: ./recipes/cards/ivr_node/ivr_node.vue?vue&type=template&id=61018687
20542
21908
 
20543
21909
  ;// CONCATENATED MODULE: ./recipes/cards/ivr_node/ivr_node_constants.js
20544
21910
  const IVR_NODE_PROMPT_MENU = 'promptmenu';
@@ -20696,10 +22062,10 @@ const IVR_NODE_COLOR_MAPPING = {
20696
22062
  });
20697
22063
  ;// CONCATENATED MODULE: ./recipes/cards/ivr_node/ivr_node.vue?vue&type=script&lang=js
20698
22064
 
20699
- ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-32.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/cards/ivr_node/ivr_node.vue?vue&type=style&index=0&id=19695402&lang=less
22065
+ ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-32.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/cards/ivr_node/ivr_node.vue?vue&type=style&index=0&id=61018687&lang=less
20700
22066
  // extracted by mini-css-extract-plugin
20701
22067
 
20702
- ;// CONCATENATED MODULE: ./recipes/cards/ivr_node/ivr_node.vue?vue&type=style&index=0&id=19695402&lang=less
22068
+ ;// CONCATENATED MODULE: ./recipes/cards/ivr_node/ivr_node.vue?vue&type=style&index=0&id=61018687&lang=less
20703
22069
 
20704
22070
  ;// CONCATENATED MODULE: ./recipes/cards/ivr_node/ivr_node.vue
20705
22071
 
@@ -20709,7 +22075,7 @@ const IVR_NODE_COLOR_MAPPING = {
20709
22075
  ;
20710
22076
 
20711
22077
 
20712
- const ivr_node_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(ivr_nodevue_type_script_lang_js, [['render',ivr_nodevue_type_template_id_19695402_render]])
22078
+ const ivr_node_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(ivr_nodevue_type_script_lang_js, [['render',ivr_nodevue_type_template_id_61018687_render]])
20713
22079
 
20714
22080
  /* harmony default export */ const ivr_node = (ivr_node_exports_);
20715
22081
  ;// CONCATENATED MODULE: ./recipes/cards/ivr_node/index.js
@@ -20799,35 +22165,49 @@ const grouped_chip_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(group
20799
22165
  /* harmony default export */ const grouped_chip = (grouped_chip_exports_);
20800
22166
  ;// CONCATENATED MODULE: ./recipes/chips/grouped_chip/index.js
20801
22167
 
20802
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/leftbar/general_row/general_row.vue?vue&type=template&id=06ebf262
22168
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/leftbar/general_row/general_row.vue?vue&type=template&id=46f0cd86
20803
22169
 
20804
- const general_rowvue_type_template_id_06ebf262_hoisted_1 = {
22170
+ const general_rowvue_type_template_id_46f0cd86_hoisted_1 = ["aria-label", "title"];
22171
+ const general_rowvue_type_template_id_46f0cd86_hoisted_2 = {
20805
22172
  class: "dt-leftbar-row__alpha"
20806
22173
  };
20807
- const general_rowvue_type_template_id_06ebf262_hoisted_2 = {
22174
+ const general_rowvue_type_template_id_46f0cd86_hoisted_3 = {
22175
+ key: 0,
22176
+ class: "dt-leftbar-row__is-typing"
22177
+ };
22178
+
22179
+ const general_rowvue_type_template_id_46f0cd86_hoisted_4 = /*#__PURE__*/(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("span", null, null, -1);
22180
+
22181
+ const general_rowvue_type_template_id_46f0cd86_hoisted_5 = /*#__PURE__*/(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("span", null, null, -1);
22182
+
22183
+ const general_rowvue_type_template_id_46f0cd86_hoisted_6 = /*#__PURE__*/(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("span", null, null, -1);
22184
+
22185
+ const general_rowvue_type_template_id_46f0cd86_hoisted_7 = [general_rowvue_type_template_id_46f0cd86_hoisted_4, general_rowvue_type_template_id_46f0cd86_hoisted_5, general_rowvue_type_template_id_46f0cd86_hoisted_6];
22186
+ const general_rowvue_type_template_id_46f0cd86_hoisted_8 = {
20808
22187
  class: "dt-leftbar-row__label"
20809
22188
  };
20810
- const general_rowvue_type_template_id_06ebf262_hoisted_3 = {
22189
+ const _hoisted_9 = {
20811
22190
  class: "dt-leftbar-row__omega"
20812
22191
  };
20813
- const general_rowvue_type_template_id_06ebf262_hoisted_4 = {
20814
- key: 0,
22192
+ const _hoisted_10 = {
20815
22193
  class: "dt-leftbar-row__dnd"
20816
22194
  };
20817
- const general_rowvue_type_template_id_06ebf262_hoisted_5 = {
22195
+ const _hoisted_11 = {
20818
22196
  key: 1,
20819
22197
  class: "dt-leftbar-row__active-voice"
20820
22198
  };
20821
- const general_rowvue_type_template_id_06ebf262_hoisted_6 = {
22199
+ const _hoisted_12 = {
20822
22200
  key: 0,
20823
22201
  class: "dt-leftbar-row__action",
20824
22202
  "data-qa": "dt-leftbar-row-action"
20825
22203
  };
20826
- function general_rowvue_type_template_id_06ebf262_render(_ctx, _cache, $props, $setup, $data, $options) {
22204
+ function general_rowvue_type_template_id_46f0cd86_render(_ctx, _cache, $props, $setup, $data, $options) {
20827
22205
  const _component_dt_recipe_leftbar_general_row_icon = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-recipe-leftbar-general-row-icon");
20828
22206
 
20829
22207
  const _component_dt_emoji_text_wrapper = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-emoji-text-wrapper");
20830
22208
 
22209
+ const _component_dt_tooltip = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-tooltip");
22210
+
20831
22211
  const _component_dt_icon = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-icon");
20832
22212
 
20833
22213
  const _component_dt_badge = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-badge");
@@ -20839,47 +22219,74 @@ function general_rowvue_type_template_id_06ebf262_render(_ctx, _cache, $props, $
20839
22219
  "data-qa": "dt-leftbar-row"
20840
22220
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("button", (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
20841
22221
  class: "dt-leftbar-row__primary",
20842
- "data-qa": "dt-leftbar-row-link"
20843
- }, _ctx.$attrs), [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", general_rowvue_type_template_id_06ebf262_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "left", {}, () => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_recipe_leftbar_general_row_icon, {
22222
+ "data-qa": "dt-leftbar-row-link",
22223
+ "aria-label": $options.getAriaLabel,
22224
+ title: $props.description
22225
+ }, _ctx.$attrs), [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", general_rowvue_type_template_id_46f0cd86_hoisted_2, [$props.isTyping ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", general_rowvue_type_template_id_46f0cd86_hoisted_3, general_rowvue_type_template_id_46f0cd86_hoisted_7)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "left", {
22226
+ key: 1
22227
+ }, () => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_recipe_leftbar_general_row_icon, {
22228
+ class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)({
22229
+ 'd-o50': $props.isTyping
22230
+ }),
20844
22231
  type: $options.getIcon,
20845
22232
  color: $props.color,
20846
22233
  "data-qa": "dt-leftbar-row-icon"
20847
- }, null, 8, ["type", "color"])])]), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", general_rowvue_type_template_id_06ebf262_hoisted_2, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "label", {}, () => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_emoji_text_wrapper, {
22234
+ }, null, 8, ["class", "type", "color"])])]), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", general_rowvue_type_template_id_46f0cd86_hoisted_8, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "label", {}, () => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_emoji_text_wrapper, {
20848
22235
  class: "dt-leftbar-row__description",
20849
22236
  "data-qa": "dt-leftbar-row-description"
20850
22237
  }, {
20851
22238
  default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createTextVNode)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($props.description), 1)]),
20852
22239
  _: 1
20853
- })])]), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", general_rowvue_type_template_id_06ebf262_hoisted_3, [$props.dndText ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", general_rowvue_type_template_id_06ebf262_hoisted_4, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($props.dndText), 1)) : $props.activeVoiceChat ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", general_rowvue_type_template_id_06ebf262_hoisted_5, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_icon, {
22240
+ })])]), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", _hoisted_9, [$props.dndText ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_dt_tooltip, {
22241
+ key: 0,
22242
+ placement: "top",
22243
+ message: $props.dndTextTooltip
22244
+ }, {
22245
+ anchor: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", _hoisted_10, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($props.dndText), 1)]),
22246
+ _: 1
22247
+ }, 8, ["message"])) : $props.activeVoiceChat ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", _hoisted_11, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_icon, {
20854
22248
  size: "300",
20855
22249
  name: "activity"
20856
- })])) : !!$props.unreadCount && $props.hasUnreads ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_dt_badge, {
22250
+ })])) : !!$props.unreadCount && $props.hasUnreads ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_dt_tooltip, {
20857
22251
  key: 2,
20858
- kind: "count",
20859
- type: "bulletin",
20860
- "data-qa": "dt-leftbar-row-unread-badge"
22252
+ message: $props.unreadCountTooltip,
22253
+ placement: "top"
20861
22254
  }, {
20862
- default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createTextVNode)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($props.unreadCount), 1)]),
22255
+ anchor: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_badge, {
22256
+ kind: "count",
22257
+ type: "bulletin",
22258
+ "data-qa": "dt-leftbar-row-unread-badge"
22259
+ }, {
22260
+ default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createTextVNode)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($props.unreadCount), 1)]),
22261
+ _: 1
22262
+ })]),
20863
22263
  _: 1
20864
- })) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)])], 16), $props.hasCallButton ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", general_rowvue_type_template_id_06ebf262_hoisted_6, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_button, {
20865
- class: "dt-leftbar-row__action-button",
20866
- "data-qa": "dt-leftbar-row-action-call-button",
20867
- circle: "",
20868
- size: "xs",
20869
- kind: "inverted",
20870
- onFocus: _cache[0] || (_cache[0] = $event => $data.actionFocused = true),
20871
- onBlur: _cache[1] || (_cache[1] = $event => $data.actionFocused = false),
20872
- onMouseout: _cache[2] || (_cache[2] = $event => $data.actionFocused = false),
20873
- onClick: _cache[3] || (_cache[3] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withModifiers)($event => _ctx.$emit('call', $event), ["stop"]))
22264
+ }, 8, ["message"])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)])], 16, general_rowvue_type_template_id_46f0cd86_hoisted_1), $props.hasCallButton ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", _hoisted_12, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_tooltip, {
22265
+ message: $props.callButtonTooltip,
22266
+ placement: "top"
20874
22267
  }, {
20875
- icon: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_icon, {
20876
- name: "phone",
20877
- size: "200"
20878
- })]),
22268
+ anchor: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_button, {
22269
+ class: "dt-leftbar-row__action-button",
22270
+ "data-qa": "dt-leftbar-row-action-call-button",
22271
+ circle: "",
22272
+ size: "xs",
22273
+ kind: "inverted",
22274
+ "aria-label": $props.callButtonTooltip,
22275
+ onFocus: _cache[0] || (_cache[0] = $event => $data.actionFocused = true),
22276
+ onBlur: _cache[1] || (_cache[1] = $event => $data.actionFocused = false),
22277
+ onMouseleave: _cache[2] || (_cache[2] = $event => $data.actionFocused = false),
22278
+ onClick: _cache[3] || (_cache[3] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withModifiers)($event => _ctx.$emit('call', $event), ["stop"]))
22279
+ }, {
22280
+ icon: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_icon, {
22281
+ name: "phone",
22282
+ size: "200"
22283
+ })]),
22284
+ _: 1
22285
+ }, 8, ["aria-label"])]),
20879
22286
  _: 1
20880
- })])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)], 2);
22287
+ }, 8, ["message"])])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)], 2);
20881
22288
  }
20882
- ;// CONCATENATED MODULE: ./recipes/leftbar/general_row/general_row.vue?vue&type=template&id=06ebf262
22289
+ ;// CONCATENATED MODULE: ./recipes/leftbar/general_row/general_row.vue?vue&type=template&id=46f0cd86
20883
22290
 
20884
22291
  ;// CONCATENATED MODULE: ./recipes/leftbar/general_row/general_row_constants.js
20885
22292
  const LEFTBAR_GENERAL_ROW_TYPES = {
@@ -20889,6 +22296,9 @@ const LEFTBAR_GENERAL_ROW_TYPES = {
20889
22296
  THREADS: 'threads',
20890
22297
  LOCKED_CHANNEL: 'locked channel',
20891
22298
  CONTACT_CENTER: 'contact center',
22299
+ QUICK_START: 'quick start',
22300
+ COACHING_GROUP: 'coaching group',
22301
+ COACHING_CENTER: 'coaching center',
20892
22302
  DIALBOT: 'dialbot',
20893
22303
  ASSIGNED: 'assigned',
20894
22304
  DIGITAL: 'digital'
@@ -20899,6 +22309,9 @@ const LEFTBAR_GENERAL_ROW_ICON_MAPPING = {
20899
22309
  [LEFTBAR_GENERAL_ROW_TYPES.CHANNELS]: 'hash',
20900
22310
  [LEFTBAR_GENERAL_ROW_TYPES.THREADS]: 'thread',
20901
22311
  [LEFTBAR_GENERAL_ROW_TYPES.LOCKED_CHANNEL]: 'lock',
22312
+ [LEFTBAR_GENERAL_ROW_TYPES.QUICK_START]: 'sparkle',
22313
+ [LEFTBAR_GENERAL_ROW_TYPES.COACHING_GROUP]: 'users',
22314
+ [LEFTBAR_GENERAL_ROW_TYPES.COACHING_CENTER]: 'external-link',
20902
22315
  'locked channel unread': 'lock-filled',
20903
22316
  'channel unread': 'hash-bold',
20904
22317
  [LEFTBAR_GENERAL_ROW_TYPES.ASSIGNED]: 'at-sign',
@@ -21431,12 +22844,12 @@ const emoji_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(emojivue_typ
21431
22844
  const emoji_text_wrapper_exports_ = emoji_text_wrappervue_type_script_lang_js;
21432
22845
 
21433
22846
  /* harmony default export */ const emoji_text_wrapper = (emoji_text_wrapper_exports_);
21434
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/leftbar/general_row/leftbar_general_row_icon.vue?vue&type=template&id=06ed62b0
22847
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/leftbar/general_row/leftbar_general_row_icon.vue?vue&type=template&id=27d28559
21435
22848
 
21436
- function leftbar_general_row_iconvue_type_template_id_06ed62b0_render(_ctx, _cache, $props, $setup, $data, $options) {
22849
+ function leftbar_general_row_iconvue_type_template_id_27d28559_render(_ctx, _cache, $props, $setup, $data, $options) {
21437
22850
  const _component_dt_icon = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-icon");
21438
22851
 
21439
- const _component_icon_dialpad_glyph = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("icon-dialpad-glyph");
22852
+ const _component_icon_dialbot = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("icon-dialbot");
21440
22853
 
21441
22854
  return $options.isIconType ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_dt_icon, {
21442
22855
  key: 0,
@@ -21448,45 +22861,43 @@ function leftbar_general_row_iconvue_type_template_id_06ed62b0_render(_ctx, _cac
21448
22861
  }, null, 2)) : $options.isDialbotType ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", {
21449
22862
  key: 2,
21450
22863
  class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)($options.dialbotClasses)
21451
- }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_icon_dialpad_glyph, {
21452
- class: "d-svg--size18",
21453
- color: "white"
22864
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_icon_dialbot, {
22865
+ class: "d-svg--size24"
21454
22866
  })], 2)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true);
21455
22867
  }
21456
- ;// CONCATENATED MODULE: ./recipes/leftbar/general_row/leftbar_general_row_icon.vue?vue&type=template&id=06ed62b0
22868
+ ;// CONCATENATED MODULE: ./recipes/leftbar/general_row/leftbar_general_row_icon.vue?vue&type=template&id=27d28559
21457
22869
 
21458
- ;// CONCATENATED MODULE: ./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./node_modules/@dialpad/dialtone/lib/dist/vue/icons/IconDialpadGlyph.vue?vue&type=template&id=85d2b6f4
22870
+ ;// CONCATENATED MODULE: ./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./node_modules/@dialpad/dialtone/lib/dist/vue/icons/IconDialbot.vue?vue&type=template&id=afc48fb0
21459
22871
 
21460
22872
 
21461
- const IconDialpadGlyphvue_type_template_id_85d2b6f4_hoisted_1 = {
22873
+ const IconDialbotvue_type_template_id_afc48fb0_hoisted_1 = {
21462
22874
  "aria-hidden": "true",
21463
22875
  focusable: "false",
21464
- "aria-label": "Dialpad Glyph",
21465
- class: "d-svg d-svg--system d-svg__dialpadGlyph",
21466
- viewBox: "0 0 24 24"
22876
+ "aria-label": "Dialbot",
22877
+ class: "d-svg d-svg--native d-svg__dialbot",
22878
+ width: "358",
22879
+ height: "358",
22880
+ viewBox: "0 0 358 358",
22881
+ fill: "none"
21467
22882
  }
21468
- const IconDialpadGlyphvue_type_template_id_85d2b6f4_hoisted_2 = /*#__PURE__*/(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("path", {
21469
- "fill-rule": "evenodd",
21470
- "clip-rule": "evenodd",
21471
- d: "M12.025 11.197V4.18a.077.077 0 0 0-.132-.053L8.91 7.204a5.095 5.095 0 0 0-7.08 4.693 5.095 5.095 0 0 0 5.096 5.094 5.096 5.096 0 0 0 5.049-4.394v7.019c0 .069.083.102.131.053l2.982-3.079c.61.258 1.28.4 1.984.4a5.095 5.095 0 0 0 5.096-5.093 5.095 5.095 0 0 0-5.096-5.093 5.096 5.096 0 0 0-5.048 4.393Z"
21472
- }, null, -1)
21473
- const IconDialpadGlyphvue_type_template_id_85d2b6f4_hoisted_3 = [
21474
- IconDialpadGlyphvue_type_template_id_85d2b6f4_hoisted_2
22883
+ const IconDialbotvue_type_template_id_afc48fb0_hoisted_2 = /*#__PURE__*/(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createStaticVNode)("<circle cx=\"179\" cy=\"179\" r=\"179\" fill=\"url(#paint0_linear_1957_89480)\"></circle><path d=\"M179 268.5v-11.933V268.5Zm86.517 0v11.933h19.308l-8.635-17.27-10.673 5.337Zm-16.73-33.459-9.3-7.478-4.797 5.967 3.424 6.848 10.673-5.337ZM179 101.433c42.839 0 77.567 34.728 77.567 77.567h23.866c0-56.02-45.413-101.433-101.433-101.433v23.866ZM101.433 179c0-42.839 34.728-77.567 77.567-77.567V77.567C122.98 77.567 77.567 122.98 77.567 179h23.866ZM179 256.567c-42.839 0-77.567-34.728-77.567-77.567H77.567c0 56.02 45.413 101.433 101.433 101.433v-23.866Zm86.517 0H179v23.866h86.517v-23.866Zm-27.403-16.189 16.729 33.459 21.347-10.674-16.729-33.459-21.347 10.674ZM256.567 179c0 18.396-6.39 35.268-17.08 48.563l18.6 14.955c13.975-17.38 22.346-39.488 22.346-63.518h-23.866Z\" fill=\"white\"></path><path d=\"M226.733 202.867c-6.527 5.701-13.942 10.11-22.243 13.226-8.302 3.116-16.781 4.674-25.437 4.674-8.727 0-17.241-1.558-25.543-4.674-8.301-3.116-15.716-7.525-22.243-13.226v-11.933c4.399 2.651 9.365 4.939 14.9 6.861a112.143 112.143 0 0 0 16.816 4.674c5.747 1.127 11.104 1.691 16.07 1.691 5.038 0 10.395-.564 16.071-1.691a112.209 112.209 0 0 0 16.816-4.674c5.534-1.922 10.465-4.21 14.793-6.861v11.933Z\" fill=\"white\"></path><defs><linearGradient id=\"paint0_linear_1957_89480\" x1=\"0\" y1=\"0\" x2=\"358\" y2=\"358\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#7C52FF\"></stop><stop offset=\"1\" stop-color=\"#F9008E\"></stop></linearGradient></defs>", 4)
22884
+ const IconDialbotvue_type_template_id_afc48fb0_hoisted_6 = [
22885
+ IconDialbotvue_type_template_id_afc48fb0_hoisted_2
21475
22886
  ]
21476
22887
 
21477
- function IconDialpadGlyphvue_type_template_id_85d2b6f4_render(_ctx, _cache) {
21478
- return ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("svg", IconDialpadGlyphvue_type_template_id_85d2b6f4_hoisted_1, IconDialpadGlyphvue_type_template_id_85d2b6f4_hoisted_3))
22888
+ function IconDialbotvue_type_template_id_afc48fb0_render(_ctx, _cache) {
22889
+ return ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("svg", IconDialbotvue_type_template_id_afc48fb0_hoisted_1, IconDialbotvue_type_template_id_afc48fb0_hoisted_6))
21479
22890
  }
21480
- ;// CONCATENATED MODULE: ./node_modules/@dialpad/dialtone/lib/dist/vue/icons/IconDialpadGlyph.vue?vue&type=template&id=85d2b6f4
22891
+ ;// CONCATENATED MODULE: ./node_modules/@dialpad/dialtone/lib/dist/vue/icons/IconDialbot.vue?vue&type=template&id=afc48fb0
21481
22892
 
21482
- ;// CONCATENATED MODULE: ./node_modules/@dialpad/dialtone/lib/dist/vue/icons/IconDialpadGlyph.vue
22893
+ ;// CONCATENATED MODULE: ./node_modules/@dialpad/dialtone/lib/dist/vue/icons/IconDialbot.vue
21483
22894
 
21484
22895
  const script = {}
21485
22896
 
21486
22897
  ;
21487
- const IconDialpadGlyph_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(script, [['render',IconDialpadGlyphvue_type_template_id_85d2b6f4_render]])
22898
+ const IconDialbot_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(script, [['render',IconDialbotvue_type_template_id_afc48fb0_render]])
21488
22899
 
21489
- /* harmony default export */ const IconDialpadGlyph = (IconDialpadGlyph_exports_);
22900
+ /* harmony default export */ const IconDialbot = (IconDialbot_exports_);
21490
22901
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/leftbar/general_row/leftbar_general_row_icon.vue?vue&type=script&lang=js
21491
22902
 
21492
22903
 
@@ -21495,7 +22906,7 @@ const IconDialpadGlyph_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(s
21495
22906
  name: 'DtRecipeLeftbarGeneralRowIcon',
21496
22907
  components: {
21497
22908
  DtIcon: icon,
21498
- IconDialpadGlyph: IconDialpadGlyph
22909
+ IconDialbot: IconDialbot
21499
22910
  },
21500
22911
  props: {
21501
22912
  type: {
@@ -21529,7 +22940,7 @@ const IconDialpadGlyph_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(s
21529
22940
  },
21530
22941
 
21531
22942
  dialbotClasses() {
21532
- return ['d-bar-circle', 'd-bgc-purple-400', 'd-w24', 'd-h24', 'd-d-flex', 'd-ai-center', 'd-jc-center'];
22943
+ return ['d-w24', 'd-h24', 'd-d-flex', 'd-ai-center', 'd-jc-center'];
21533
22944
  }
21534
22945
 
21535
22946
  }
@@ -21542,7 +22953,7 @@ const IconDialpadGlyph_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(s
21542
22953
 
21543
22954
 
21544
22955
  ;
21545
- const leftbar_general_row_icon_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(leftbar_general_row_iconvue_type_script_lang_js, [['render',leftbar_general_row_iconvue_type_template_id_06ed62b0_render]])
22956
+ const leftbar_general_row_icon_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(leftbar_general_row_iconvue_type_script_lang_js, [['render',leftbar_general_row_iconvue_type_template_id_27d28559_render]])
21546
22957
 
21547
22958
  /* harmony default export */ const leftbar_general_row_icon = (leftbar_general_row_icon_exports_);
21548
22959
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/leftbar/general_row/general_row.vue?vue&type=script&lang=js
@@ -21553,6 +22964,7 @@ const leftbar_general_row_icon_exports_ = /*#__PURE__*/(0,exportHelper/* default
21553
22964
 
21554
22965
 
21555
22966
 
22967
+
21556
22968
  /* harmony default export */ const general_rowvue_type_script_lang_js = ({
21557
22969
  name: 'DtRecipeGeneralRow',
21558
22970
  components: {
@@ -21560,6 +22972,7 @@ const leftbar_general_row_icon_exports_ = /*#__PURE__*/(0,exportHelper/* default
21560
22972
  DtBadge: badge,
21561
22973
  DtIcon: icon,
21562
22974
  DtButton: button_button,
22975
+ DtTooltip: tooltip,
21563
22976
  DtRecipeLeftbarGeneralRowIcon: leftbar_general_row_icon
21564
22977
  },
21565
22978
  inheritAttrs: false,
@@ -21577,13 +22990,22 @@ const leftbar_general_row_icon_exports_ = /*#__PURE__*/(0,exportHelper/* default
21577
22990
  },
21578
22991
 
21579
22992
  /**
21580
- * Text displayed next to the icon
22993
+ * Will be read out by a screen reader upon focus of this row. If not defined "description" will be read.
21581
22994
  */
21582
- description: {
22995
+ ariaLabel: {
21583
22996
  type: String,
21584
22997
  default: ''
21585
22998
  },
21586
22999
 
23000
+ /**
23001
+ * Text displayed next to the icon. Required. Even if you are overriding this field using the label slot
23002
+ * you still must input this as it will be displayed as the "title" attribute for the row.
23003
+ */
23004
+ description: {
23005
+ type: String,
23006
+ required: true
23007
+ },
23008
+
21587
23009
  /**
21588
23010
  * Determines the color of the contact center icon
21589
23011
  */
@@ -21612,6 +23034,14 @@ const leftbar_general_row_icon_exports_ = /*#__PURE__*/(0,exportHelper/* default
21612
23034
  default: null
21613
23035
  },
21614
23036
 
23037
+ /**
23038
+ * Text shown when the unread count is hovered.
23039
+ */
23040
+ unreadCountTooltip: {
23041
+ type: String,
23042
+ default: ''
23043
+ },
23044
+
21615
23045
  /**
21616
23046
  * Determines if the row is selected
21617
23047
  */
@@ -21645,12 +23075,36 @@ const leftbar_general_row_icon_exports_ = /*#__PURE__*/(0,exportHelper/* default
21645
23075
  default: ''
21646
23076
  },
21647
23077
 
23078
+ /**
23079
+ * Text shown in tooltip when you hover the dndText
23080
+ */
23081
+ dndTextTooltip: {
23082
+ type: String,
23083
+ default: ''
23084
+ },
23085
+
21648
23086
  /**
21649
23087
  * Whether the row should have a call button. Usually only applicable to individual contact rows.
21650
23088
  */
21651
23089
  hasCallButton: {
21652
23090
  type: Boolean,
21653
23091
  default: false
23092
+ },
23093
+
23094
+ /**
23095
+ * Text shown when the call button is hovered.
23096
+ */
23097
+ callButtonTooltip: {
23098
+ type: String,
23099
+ default: ''
23100
+ },
23101
+
23102
+ /**
23103
+ * Shows an "is typing" animation over the avatar when true.
23104
+ */
23105
+ isTyping: {
23106
+ type: Boolean,
23107
+ default: false
21654
23108
  }
21655
23109
  },
21656
23110
  emits: [
@@ -21695,6 +23149,10 @@ const leftbar_general_row_icon_exports_ = /*#__PURE__*/(0,exportHelper/* default
21695
23149
 
21696
23150
  generalRowListeners() {
21697
23151
  return extractVueListeners(this.$attrs);
23152
+ },
23153
+
23154
+ getAriaLabel() {
23155
+ return this.ariaLabel ? this.ariaLabel : `${this.description} ${this.unreadCountTooltip} ${this.dndTextTooltip}`;
21698
23156
  }
21699
23157
 
21700
23158
  },
@@ -21720,10 +23178,10 @@ const leftbar_general_row_icon_exports_ = /*#__PURE__*/(0,exportHelper/* default
21720
23178
  });
21721
23179
  ;// CONCATENATED MODULE: ./recipes/leftbar/general_row/general_row.vue?vue&type=script&lang=js
21722
23180
 
21723
- ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-32.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/leftbar/general_row/general_row.vue?vue&type=style&index=0&id=06ebf262&lang=less
23181
+ ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-32.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/leftbar/general_row/general_row.vue?vue&type=style&index=0&id=46f0cd86&lang=less
21724
23182
  // extracted by mini-css-extract-plugin
21725
23183
 
21726
- ;// CONCATENATED MODULE: ./recipes/leftbar/general_row/general_row.vue?vue&type=style&index=0&id=06ebf262&lang=less
23184
+ ;// CONCATENATED MODULE: ./recipes/leftbar/general_row/general_row.vue?vue&type=style&index=0&id=46f0cd86&lang=less
21727
23185
 
21728
23186
  ;// CONCATENATED MODULE: ./recipes/leftbar/general_row/general_row.vue
21729
23187
 
@@ -21733,41 +23191,45 @@ const leftbar_general_row_icon_exports_ = /*#__PURE__*/(0,exportHelper/* default
21733
23191
  ;
21734
23192
 
21735
23193
 
21736
- const general_row_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(general_rowvue_type_script_lang_js, [['render',general_rowvue_type_template_id_06ebf262_render]])
23194
+ const general_row_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(general_rowvue_type_script_lang_js, [['render',general_rowvue_type_template_id_46f0cd86_render]])
21737
23195
 
21738
23196
  /* harmony default export */ const general_row = (general_row_exports_);
21739
23197
  ;// CONCATENATED MODULE: ./recipes/leftbar/general_row/index.js
21740
23198
 
21741
23199
 
21742
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/leftbar/group_row/group_row.vue?vue&type=template&id=29f5cb33
23200
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/leftbar/group_row/group_row.vue?vue&type=template&id=af6d6b56
21743
23201
 
21744
- const group_rowvue_type_template_id_29f5cb33_hoisted_1 = ["src", "alt"];
21745
- function group_rowvue_type_template_id_29f5cb33_render(_ctx, _cache, $props, $setup, $data, $options) {
23202
+ const group_rowvue_type_template_id_af6d6b56_hoisted_1 = ["src", "alt"];
23203
+ function group_rowvue_type_template_id_af6d6b56_render(_ctx, _cache, $props, $setup, $data, $options) {
21746
23204
  const _component_dt_avatar = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-avatar");
21747
23205
 
21748
23206
  const _component_dt_recipe_general_row = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-recipe-general-row");
21749
23207
 
21750
23208
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_dt_recipe_general_row, {
21751
23209
  description: $props.names,
23210
+ "aria-label": `${$props.groupCountText} ${$props.names}`,
21752
23211
  "unread-count": $props.unreadCount,
21753
23212
  "has-unreads": $props.hasUnreads,
21754
- selected: $props.selected
23213
+ "unread-count-tooltip": $props.unreadCountTooltip,
23214
+ selected: $props.selected,
23215
+ "is-typing": $props.isTyping
21755
23216
  }, {
21756
23217
  left: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_avatar, {
21757
23218
  initials: $props.avatarInitials,
21758
23219
  group: $props.groupCount
21759
23220
  }, {
21760
- default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("img", {
23221
+ default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [$props.avatarSrc ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("img", {
23222
+ key: 0,
21761
23223
  "data-qa": "dt-avatar-image",
21762
23224
  src: $props.avatarSrc,
21763
23225
  alt: $props.avatarInitials
21764
- }, null, 8, group_rowvue_type_template_id_29f5cb33_hoisted_1)]),
23226
+ }, null, 8, group_rowvue_type_template_id_af6d6b56_hoisted_1)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)]),
21765
23227
  _: 1
21766
23228
  }, 8, ["initials", "group"])]),
21767
23229
  _: 1
21768
- }, 8, ["description", "unread-count", "has-unreads", "selected"]);
23230
+ }, 8, ["description", "aria-label", "unread-count", "has-unreads", "unread-count-tooltip", "selected", "is-typing"]);
21769
23231
  }
21770
- ;// CONCATENATED MODULE: ./recipes/leftbar/group_row/group_row.vue?vue&type=template&id=29f5cb33
23232
+ ;// CONCATENATED MODULE: ./recipes/leftbar/group_row/group_row.vue?vue&type=template&id=af6d6b56
21771
23233
 
21772
23234
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/leftbar/group_row/group_row.vue?vue&type=script&lang=js
21773
23235
 
@@ -21807,12 +23269,20 @@ function group_rowvue_type_template_id_29f5cb33_render(_ctx, _cache, $props, $se
21807
23269
  required: true
21808
23270
  },
21809
23271
 
23272
+ /**
23273
+ * Screen reader will read out the number of users in the group using this text. Ex: "2 users"
23274
+ */
23275
+ groupCountText: {
23276
+ type: String,
23277
+ default: ''
23278
+ },
23279
+
21810
23280
  /**
21811
23281
  * Names of the group members
21812
23282
  */
21813
23283
  names: {
21814
23284
  type: String,
21815
- default: ''
23285
+ required: true
21816
23286
  },
21817
23287
 
21818
23288
  /**
@@ -21823,6 +23293,14 @@ function group_rowvue_type_template_id_29f5cb33_render(_ctx, _cache, $props, $se
21823
23293
  default: null
21824
23294
  },
21825
23295
 
23296
+ /**
23297
+ * Text shown when the unread count is hovered.
23298
+ */
23299
+ unreadCountTooltip: {
23300
+ type: String,
23301
+ default: null
23302
+ },
23303
+
21826
23304
  /**
21827
23305
  * Styles the row with an increased font weight to convey it has unreads. This must be true to see
21828
23306
  * the unread count badge.
@@ -21838,6 +23316,14 @@ function group_rowvue_type_template_id_29f5cb33_render(_ctx, _cache, $props, $se
21838
23316
  selected: {
21839
23317
  type: Boolean,
21840
23318
  default: false
23319
+ },
23320
+
23321
+ /**
23322
+ * Shows an "is typing" animation over the avatar when true.
23323
+ */
23324
+ isTyping: {
23325
+ type: Boolean,
23326
+ default: false
21841
23327
  }
21842
23328
  },
21843
23329
  emits: [
@@ -21857,18 +23343,18 @@ function group_rowvue_type_template_id_29f5cb33_render(_ctx, _cache, $props, $se
21857
23343
 
21858
23344
 
21859
23345
  ;
21860
- const group_row_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(group_rowvue_type_script_lang_js, [['render',group_rowvue_type_template_id_29f5cb33_render]])
23346
+ const group_row_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(group_rowvue_type_script_lang_js, [['render',group_rowvue_type_template_id_af6d6b56_render]])
21861
23347
 
21862
23348
  /* harmony default export */ const group_row = (group_row_exports_);
21863
23349
  ;// CONCATENATED MODULE: ./recipes/leftbar/group_row/index.js
21864
23350
 
21865
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/leftbar/contact_row/contact_row.vue?vue&type=template&id=8a190578
23351
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/leftbar/contact_row/contact_row.vue?vue&type=template&id=69299a5d
21866
23352
 
21867
- const contact_rowvue_type_template_id_8a190578_hoisted_1 = ["src", "alt"];
21868
- const contact_rowvue_type_template_id_8a190578_hoisted_2 = {
23353
+ const contact_rowvue_type_template_id_69299a5d_hoisted_1 = ["src", "alt"];
23354
+ const contact_rowvue_type_template_id_69299a5d_hoisted_2 = {
21869
23355
  class: "dt-leftbar-row__status"
21870
23356
  };
21871
- function contact_rowvue_type_template_id_8a190578_render(_ctx, _cache, $props, $setup, $data, $options) {
23357
+ function contact_rowvue_type_template_id_69299a5d_render(_ctx, _cache, $props, $setup, $data, $options) {
21872
23358
  const _component_dt_icon = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-icon");
21873
23359
 
21874
23360
  const _component_dt_avatar = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("dt-avatar");
@@ -21879,10 +23365,14 @@ function contact_rowvue_type_template_id_8a190578_render(_ctx, _cache, $props, $
21879
23365
 
21880
23366
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_dt_recipe_general_row, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
21881
23367
  "unread-count": $props.unreadCount,
23368
+ description: `${$props.name} ${$props.presenceText} ${$props.userStatus}`,
21882
23369
  "has-unreads": $props.hasUnreads,
21883
23370
  selected: $props.selected,
21884
23371
  "has-call-button": true,
21885
- muted: $props.muted
23372
+ muted: $props.muted,
23373
+ "is-typing": $props.isTyping,
23374
+ "call-button-tooltip": $props.callButtonTooltip,
23375
+ "unread-count-tooltip": $props.unreadCountTooltip
21886
23376
  }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toHandlers)($options.contactRowListeners), {
21887
23377
  onCall: _cache[0] || (_cache[0] = $event => _ctx.$emit('call', $event))
21888
23378
  }), {
@@ -21896,7 +23386,7 @@ function contact_rowvue_type_template_id_8a190578_render(_ctx, _cache, $props, $
21896
23386
  "data-qa": "dt-avatar-image",
21897
23387
  src: $props.avatarSrc,
21898
23388
  alt: $props.name
21899
- }, null, 8, contact_rowvue_type_template_id_8a190578_hoisted_1)) : $props.noInitials ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_dt_icon, {
23389
+ }, null, 8, contact_rowvue_type_template_id_69299a5d_hoisted_1)) : $props.noInitials ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_dt_icon, {
21900
23390
  key: 1,
21901
23391
  name: "user",
21902
23392
  size: "200"
@@ -21912,7 +23402,7 @@ function contact_rowvue_type_template_id_8a190578_render(_ctx, _cache, $props, $
21912
23402
  }, {
21913
23403
  default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createTextVNode)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($props.name), 1)]),
21914
23404
  _: 1
21915
- }), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", contact_rowvue_type_template_id_8a190578_hoisted_2, [$props.presenceText ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("span", {
23405
+ }), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", contact_rowvue_type_template_id_69299a5d_hoisted_2, [$props.presenceText ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("span", {
21916
23406
  key: 0,
21917
23407
  "data-qa": "dt-leftbar-row-presence-text",
21918
23408
  class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)(['dt-leftbar-row__meta-context', $options.presenceColorClass])
@@ -21927,9 +23417,9 @@ function contact_rowvue_type_template_id_8a190578_render(_ctx, _cache, $props, $
21927
23417
  _: 1
21928
23418
  })) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)])]),
21929
23419
  _: 1
21930
- }, 16, ["unread-count", "has-unreads", "selected", "muted"]);
23420
+ }, 16, ["unread-count", "description", "has-unreads", "selected", "muted", "is-typing", "call-button-tooltip", "unread-count-tooltip"]);
21931
23421
  }
21932
- ;// CONCATENATED MODULE: ./recipes/leftbar/contact_row/contact_row.vue?vue&type=template&id=8a190578
23422
+ ;// CONCATENATED MODULE: ./recipes/leftbar/contact_row/contact_row.vue?vue&type=template&id=69299a5d
21933
23423
 
21934
23424
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./recipes/leftbar/contact_row/contact_row.vue?vue&type=script&lang=js
21935
23425
 
@@ -21937,7 +23427,6 @@ function contact_rowvue_type_template_id_8a190578_render(_ctx, _cache, $props, $
21937
23427
 
21938
23428
 
21939
23429
 
21940
-
21941
23430
  /* harmony default export */ const contact_rowvue_type_script_lang_js = ({
21942
23431
  name: 'DtRecipeGroupRow',
21943
23432
  components: {
@@ -21958,15 +23447,14 @@ function contact_rowvue_type_template_id_8a190578_render(_ctx, _cache, $props, $
21958
23447
 
21959
23448
  /**
21960
23449
  * Determines whether to show the presence indicator for
21961
- * Avatar - accepts PRESENCE_STATES values: 'active', 'busy', 'away', 'offline'. defaults to active.
21962
- * @values active, busy, away, offline
23450
+ * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',
23451
+ * or 'active'. By default, it's null and nothing is shown.
23452
+ * defer validation to avatar component.
23453
+ * @values null, busy, away, offline, active
21963
23454
  */
21964
23455
  avatarPresence: {
21965
23456
  type: String,
21966
- default: PRESENCE_STATES.ACTIVE,
21967
- validator: role => {
21968
- return PRESENCE_STATES_LIST.includes(role);
21969
- }
23457
+ default: null
21970
23458
  },
21971
23459
 
21972
23460
  /**
@@ -22040,6 +23528,30 @@ function contact_rowvue_type_template_id_8a190578_render(_ctx, _cache, $props, $
22040
23528
  noInitials: {
22041
23529
  type: Boolean,
22042
23530
  default: false
23531
+ },
23532
+
23533
+ /**
23534
+ * Shows an "is typing" animation over the avatar when true.
23535
+ */
23536
+ isTyping: {
23537
+ type: Boolean,
23538
+ default: false
23539
+ },
23540
+
23541
+ /**
23542
+ * Text shown when the call button is hovered.
23543
+ */
23544
+ callButtonTooltip: {
23545
+ type: String,
23546
+ default: ''
23547
+ },
23548
+
23549
+ /**
23550
+ * Text shown when the unread count is hovered.
23551
+ */
23552
+ unreadCountTooltip: {
23553
+ type: String,
23554
+ default: ''
22043
23555
  }
22044
23556
  },
22045
23557
  emits: [
@@ -22087,7 +23599,7 @@ function contact_rowvue_type_template_id_8a190578_render(_ctx, _cache, $props, $
22087
23599
 
22088
23600
 
22089
23601
  ;
22090
- const contact_row_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(contact_rowvue_type_script_lang_js, [['render',contact_rowvue_type_template_id_8a190578_render]])
23602
+ const contact_row_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(contact_rowvue_type_script_lang_js, [['render',contact_rowvue_type_template_id_69299a5d_render]])
22091
23603
 
22092
23604
  /* harmony default export */ const contact_row = (contact_row_exports_);
22093
23605
  ;// CONCATENATED MODULE: ./recipes/leftbar/contact_row/index.js
@@ -22133,6 +23645,7 @@ const contact_row_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(contac
22133
23645
 
22134
23646
 
22135
23647
 
23648
+
22136
23649
 
22137
23650
 
22138
23651
  /// Recipes