@dialpad/dialtone-vue 2.68.0 → 2.69.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ # [2.69.0](https://github.com/dialpad/dialtone-vue/compare/v2.68.0...v2.69.0) (2023-03-16)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * dialtone-icons version ([#823](https://github.com/dialpad/dialtone-vue/issues/823)) ([0cde468](https://github.com/dialpad/dialtone-vue/commit/0cde468de8db4c9eeb9f44653e271f1b5d9b78fd))
7
+ * popover fallback placements ([#821](https://github.com/dialpad/dialtone-vue/issues/821)) ([a18ac48](https://github.com/dialpad/dialtone-vue/commit/a18ac482c84c9d73fbee695d6a89c3051c8b28cb))
8
+
9
+
10
+ ### Features
11
+
12
+ * **Leftbar Contact Row:** add hasCallButton ([#826](https://github.com/dialpad/dialtone-vue/issues/826)) ([000cd5a](https://github.com/dialpad/dialtone-vue/commit/000cd5a272a0a0fbe53984311b8c6351acdd6c5d))
13
+
1
14
  # [2.68.0](https://github.com/dialpad/dialtone-vue/compare/v2.67.0...v2.68.0) (2023-03-15)
2
15
 
3
16
 
@@ -2603,6 +2603,25 @@ function debounce(func) {
2603
2603
  clearTimeout(TIMER);
2604
2604
  TIMER = setTimeout(func, timeout);
2605
2605
  }
2606
+ /**
2607
+ * Checks if the element is out of the viewport
2608
+ * https://gomakethings.com/how-to-check-if-any-part-of-an-element-is-out-of-the-viewport-with-vanilla-js/
2609
+ * @param {HTMLElement} element The element to check
2610
+ * @return {Object} A set of booleans for each side of the element
2611
+ */
2612
+
2613
+ function isOutOfViewPort(element) {
2614
+ const bounding = element.getBoundingClientRect();
2615
+ const isOut = {
2616
+ top: bounding.top < 0,
2617
+ left: bounding.left < 0,
2618
+ bottom: bounding.bottom > (window.innerHeight || document.documentElement.clientHeight),
2619
+ right: bounding.right > (window.innerWidth || document.documentElement.clientWidth)
2620
+ };
2621
+ isOut.any = Object.values(isOut).some(val => val);
2622
+ isOut.all = Object.values(isOut).every(val => val);
2623
+ return isOut;
2624
+ }
2606
2625
  /* harmony default export */ const utils = ({
2607
2626
  getUniqueString,
2608
2627
  getRandomElement,
@@ -2613,7 +2632,8 @@ function debounce(func) {
2613
2632
  htmlFragment,
2614
2633
  flushPromises,
2615
2634
  kebabCaseToPascalCase,
2616
- debounce
2635
+ debounce,
2636
+ isOutOfViewPort
2617
2637
  });
2618
2638
  ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/presence/presence.vue?vue&type=template&id=77957bb3&
2619
2639
  var presencevue_type_template_id_77957bb3_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"d-presence",attrs:{"data-qa":"dt-presence","role":"status","aria-live":_vm.$attrs.ariaLive || 'off'}},[(_vm.srText)?_c('span',{staticClass:"sr-only",attrs:{"data-qa":"dt-presence-sr-text"}},[_vm._v(_vm._s(_vm.srText)+" ")]):_vm._e(),_c('div',{staticClass:"d-presence__inner",class:{
@@ -8190,8 +8210,8 @@ return [_c('ul',{ref:"listWrapper",class:_vm.listClasses,attrs:{"id":_vm.listId,
8190
8210
  var dropdownvue_type_template_id_359f1c8b_staticRenderFns = []
8191
8211
 
8192
8212
 
8193
- ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/popover/popover.vue?vue&type=template&id=cdba9054&
8194
- var popovervue_type_template_id_cdba9054_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.modal && _vm.isOpen)?_c('portal',[_c('div',{staticClass:"d-modal--transparent",attrs:{"aria-hidden":_vm.modal && _vm.isOpen ? 'false' : 'true'},on:{"click":function($event){$event.preventDefault();$event.stopPropagation();}}})]):_vm._e(),_c(_vm.elementType,_vm._g({ref:"popover",tag:"component",class:['d-popover', { 'd-popover__anchor--opened': _vm.isOpen }],attrs:{"data-qa":"dt-popover-container"}},_vm.$listeners),[_c('div',{ref:"anchor",attrs:{"id":!_vm.ariaLabelledby && _vm.labelledBy,"data-qa":"dt-popover-anchor","tabindex":_vm.openOnContext ? 0 : undefined},on:{"!click":function($event){return _vm.defaultToggleOpen.apply(null, arguments)},"contextmenu":_vm.onContext,"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"up",38,$event.key,["Up","ArrowUp"])){ return null; }$event.preventDefault();return _vm.onArrowKeyPress.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"down",40,$event.key,["Down","ArrowDown"])){ return null; }$event.preventDefault();return _vm.onArrowKeyPress.apply(null, arguments)}],"!keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"escape",undefined,$event.key,undefined)){ return null; }return _vm.closePopover.apply(null, arguments)}}},[_vm._t("anchor",null,{"attrs":{
8213
+ ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/popover/popover.vue?vue&type=template&id=683dbc64&
8214
+ var popovervue_type_template_id_683dbc64_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.modal && _vm.isOpen)?_c('portal',[_c('div',{staticClass:"d-modal--transparent",attrs:{"aria-hidden":_vm.modal && _vm.isOpen ? 'false' : 'true'},on:{"click":function($event){$event.preventDefault();$event.stopPropagation();}}})]):_vm._e(),_c(_vm.elementType,_vm._g({ref:"popover",tag:"component",class:['d-popover', { 'd-popover__anchor--opened': _vm.isOpen }],attrs:{"data-qa":"dt-popover-container"}},_vm.$listeners),[_c('div',{ref:"anchor",attrs:{"id":!_vm.ariaLabelledby && _vm.labelledBy,"data-qa":"dt-popover-anchor","tabindex":_vm.openOnContext ? 0 : undefined},on:{"!click":function($event){return _vm.defaultToggleOpen.apply(null, arguments)},"contextmenu":_vm.onContext,"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"up",38,$event.key,["Up","ArrowUp"])){ return null; }$event.preventDefault();return _vm.onArrowKeyPress.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"down",40,$event.key,["Down","ArrowDown"])){ return null; }$event.preventDefault();return _vm.onArrowKeyPress.apply(null, arguments)}],"!keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"escape",undefined,$event.key,undefined)){ return null; }return _vm.closePopover.apply(null, arguments)}}},[_vm._t("anchor",null,{"attrs":{
8195
8215
  'aria-expanded': _vm.isOpen.toString(),
8196
8216
  'aria-controls': _vm.id,
8197
8217
  'aria-haspopup': _vm.role,
@@ -8202,7 +8222,7 @@ var popovervue_type_template_id_cdba9054_render = function () {var _vm=this;var
8202
8222
  'd-popover__content',
8203
8223
  _vm.POPOVER_PADDING_CLASSES[_vm.padding],
8204
8224
  _vm.contentClass ],attrs:{"data-qa":"dt-popover-content"}},[_vm._t("content",null,{"close":_vm.closePopover})],2),(_vm.$slots.footerContent)?_c('popover-header-footer',{ref:"popover__footer",class:_vm.POPOVER_HEADER_FOOTER_PADDING_CLASSES[_vm.padding],attrs:{"type":"footer","content-class":_vm.footerClass},scopedSlots:_vm._u([{key:"content",fn:function(){return [_vm._t("footerContent",null,{"close":_vm.closePopover})]},proxy:true}],null,true)}):_vm._e(),(_vm.showVisuallyHiddenClose)?_c('sr-only-close-button',{attrs:{"visually-hidden-close-label":_vm.visuallyHiddenCloseLabel},on:{"close":_vm.closePopover}}):_vm._e()],1)],1)],1)}
8205
- var popovervue_type_template_id_cdba9054_staticRenderFns = []
8225
+ var popovervue_type_template_id_683dbc64_staticRenderFns = []
8206
8226
 
8207
8227
 
8208
8228
  ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js
@@ -13617,6 +13637,7 @@ var popover_header_footer_component = normalizeComponent(
13617
13637
  isOpen(isOpen, isPrev) {
13618
13638
  if (isOpen) {
13619
13639
  this.initTippyInstance();
13640
+ this.tip.show();
13620
13641
  } else if (!isOpen && isPrev !== isOpen) {
13621
13642
  this.removeEventListeners();
13622
13643
  this.tip.hide();
@@ -13632,16 +13653,14 @@ var popover_header_footer_component = normalizeComponent(
13632
13653
 
13633
13654
  if (this.isOpen) {
13634
13655
  this.initTippyInstance();
13656
+ this.tip.show();
13635
13657
  } // rootMargin here must be greater than the margin of the height we are setting in calculatedMaxHeight which
13636
13658
  // currently is var(--space-300) (4px). If not the intersectionObserver will continually trigger in an infinite
13637
13659
  // loop.
13638
13660
  // threshold 1.0 makes this trigger every time the dialog "touches" the edge of the viewport.
13639
13661
 
13640
13662
 
13641
- this.intersectionObserver = new IntersectionObserver(this.hasIntersectedViewport, {
13642
- rootMargin: '-8px',
13643
- threshold: 1.0
13644
- });
13663
+ this.intersectionObserver = new IntersectionObserver(this.hasIntersectedViewport);
13645
13664
  this.intersectionObserver.observe(this.popoverContentEl);
13646
13665
  },
13647
13666
 
@@ -13659,8 +13678,12 @@ var popover_header_footer_component = normalizeComponent(
13659
13678
  ******************/
13660
13679
  methods: {
13661
13680
  hasIntersectedViewport(entries) {
13662
- const dialog = entries === null || entries === void 0 ? void 0 : entries[0];
13663
- this.isOutsideViewport = !(dialog !== null && dialog !== void 0 && dialog.isIntersecting);
13681
+ var _entries$;
13682
+
13683
+ const dialog = entries === null || entries === void 0 ? void 0 : (_entries$ = entries[0]) === null || _entries$ === void 0 ? void 0 : _entries$.target;
13684
+ if (!dialog) return;
13685
+ const isOut = isOutOfViewPort(dialog);
13686
+ this.isOutsideViewport = isOut.bottom || isOut.top;
13664
13687
  },
13665
13688
 
13666
13689
  popperOptions() {
@@ -13771,6 +13794,9 @@ var popover_header_footer_component = normalizeComponent(
13771
13794
 
13772
13795
  if (element.tagName.toLowerCase() === 'body') {
13773
13796
  element.classList.add('d-of-hidden');
13797
+ this.tip.setProps({
13798
+ offset: this.offset
13799
+ });
13774
13800
  } else {
13775
13801
  element.classList.add('d-zi-popover');
13776
13802
  }
@@ -13788,6 +13814,9 @@ var popover_header_footer_component = normalizeComponent(
13788
13814
 
13789
13815
  if (element.tagName.toLowerCase() === 'body') {
13790
13816
  element.classList.remove('d-of-hidden');
13817
+ this.tip.setProps({
13818
+ offset: this.offset
13819
+ });
13791
13820
  } else {
13792
13821
  element.classList.remove('d-zi-popover');
13793
13822
  }
@@ -13808,6 +13837,8 @@ var popover_header_footer_component = normalizeComponent(
13808
13837
  if (this.contentWidth === null) {
13809
13838
  this.popoverContentEl.style.width = 'auto';
13810
13839
  }
13840
+
13841
+ this.addEventListeners();
13811
13842
  },
13812
13843
 
13813
13844
  async onLeaveTransitionComplete() {
@@ -13820,7 +13851,7 @@ var popover_header_footer_component = normalizeComponent(
13820
13851
  }
13821
13852
 
13822
13853
  (_this$tip8 = this.tip) === null || _this$tip8 === void 0 ? void 0 : _this$tip8.unmount();
13823
- this.enableScrolling();
13854
+ await this.enableScrolling();
13824
13855
  this.$emit('opened', false);
13825
13856
 
13826
13857
  if (this.open !== null) {
@@ -13830,7 +13861,7 @@ var popover_header_footer_component = normalizeComponent(
13830
13861
 
13831
13862
  async onEnterTransitionComplete() {
13832
13863
  this.focusInitialElement();
13833
- this.preventScrolling(); // await next tick in case the user wants to change focus themselves.
13864
+ await this.preventScrolling(); // await next tick in case the user wants to change focus themselves.
13834
13865
 
13835
13866
  await this.$nextTick();
13836
13867
  this.$emit('opened', true, this.$refs.popover__content);
@@ -13936,11 +13967,6 @@ var popover_header_footer_component = normalizeComponent(
13936
13967
  onClickOutside: this.onClickOutside,
13937
13968
  onShow: this.onShow
13938
13969
  });
13939
- this.tip.setProps({
13940
- zIndex: this.modal ? 650 : this.calculateAnchorZindex()
13941
- });
13942
- this.tip.show();
13943
- this.addEventListeners();
13944
13970
  }
13945
13971
 
13946
13972
  }
@@ -13962,8 +13988,8 @@ var popovervue_type_style_index_0_lang_less_ = __webpack_require__(230);
13962
13988
 
13963
13989
  var popover_component = normalizeComponent(
13964
13990
  popover_popovervue_type_script_lang_js_,
13965
- popovervue_type_template_id_cdba9054_render,
13966
- popovervue_type_template_id_cdba9054_staticRenderFns,
13991
+ popovervue_type_template_id_683dbc64_render,
13992
+ popovervue_type_template_id_683dbc64_staticRenderFns,
13967
13993
  false,
13968
13994
  null,
13969
13995
  null,
@@ -24599,9 +24625,9 @@ var group_row_component = normalizeComponent(
24599
24625
  /* harmony default export */ const group_row = (group_row_component.exports);
24600
24626
  ;// CONCATENATED MODULE: ./recipes/leftbar/group_row/index.js
24601
24627
 
24602
- ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./recipes/leftbar/contact_row/contact_row.vue?vue&type=template&id=6a63c490&
24603
- var contact_rowvue_type_template_id_6a63c490_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dt-recipe-general-row',_vm._g({attrs:{"unread-count":_vm.unreadCount,"description":(_vm.name + " " + _vm.presenceText + " " + _vm.userStatus),"has-unreads":_vm.hasUnreads,"selected":_vm.selected,"has-call-button":true,"muted":_vm.muted,"is-typing":_vm.isTyping,"call-button-tooltip":_vm.callButtonTooltip,"unread-count-tooltip":_vm.unreadCountTooltip},scopedSlots:_vm._u([{key:"left",fn:function(){return [_c('dt-avatar',{attrs:{"size":"sm","seed":_vm.avatarSeed,"presence":_vm.avatarPresence}},[(_vm.avatarSrc)?_c('img',{attrs:{"data-qa":"dt-avatar-image","src":_vm.avatarSrc,"alt":_vm.name}}):(_vm.noInitials)?[_c('dt-icon',{attrs:{"name":"user","size":"200"}})]:[_vm._v(" "+_vm._s(_vm.avatarInitial)+" ")]],2)]},proxy:true},{key:"label",fn:function(){return [_c('dt-emoji-text-wrapper',{staticClass:"dt-leftbar-row__description",attrs:{"data-qa":"dt-leftbar-row-description","size":"200"}},[_vm._v(" "+_vm._s(_vm.name)+" ")]),_c('div',{staticClass:"dt-leftbar-row__status"},[(_vm.presenceText)?_c('span',{class:['dt-leftbar-row__meta-context', _vm.presenceColorClass],attrs:{"data-qa":"dt-leftbar-row-presence-text"}},[_vm._v(" "+_vm._s(_vm.presenceText)+" ")]):_vm._e(),(_vm.userStatus)?_c('dt-emoji-text-wrapper',{staticClass:"dt-leftbar-row__meta-custom",attrs:{"size":"100","element-type":"span","data-qa":"dt-leftbar-row-user-status"}},[_vm._v(" "+_vm._s(_vm.userStatus)+" ")]):_vm._e()],1)]},proxy:true}])},_vm.$listeners))}
24604
- var contact_rowvue_type_template_id_6a63c490_staticRenderFns = []
24628
+ ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./recipes/leftbar/contact_row/contact_row.vue?vue&type=template&id=5d3cfbea&
24629
+ var contact_rowvue_type_template_id_5d3cfbea_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dt-recipe-general-row',_vm._g({attrs:{"unread-count":_vm.unreadCount,"description":(_vm.name + " " + _vm.presenceText + " " + _vm.userStatus),"has-unreads":_vm.hasUnreads,"selected":_vm.selected,"has-call-button":_vm.hasCallButton,"muted":_vm.muted,"is-typing":_vm.isTyping,"call-button-tooltip":_vm.callButtonTooltip,"unread-count-tooltip":_vm.unreadCountTooltip},scopedSlots:_vm._u([{key:"left",fn:function(){return [_c('dt-avatar',{attrs:{"size":"sm","seed":_vm.avatarSeed,"presence":_vm.avatarPresence}},[(_vm.avatarSrc)?_c('img',{attrs:{"data-qa":"dt-avatar-image","src":_vm.avatarSrc,"alt":_vm.name}}):(_vm.noInitials)?[_c('dt-icon',{attrs:{"name":"user","size":"200"}})]:[_vm._v(" "+_vm._s(_vm.avatarInitial)+" ")]],2)]},proxy:true},{key:"label",fn:function(){return [_c('dt-emoji-text-wrapper',{staticClass:"dt-leftbar-row__description",attrs:{"data-qa":"dt-leftbar-row-description","size":"200"}},[_vm._v(" "+_vm._s(_vm.name)+" ")]),_c('div',{staticClass:"dt-leftbar-row__status"},[(_vm.presenceText)?_c('span',{class:['dt-leftbar-row__meta-context', _vm.presenceColorClass],attrs:{"data-qa":"dt-leftbar-row-presence-text"}},[_vm._v(" "+_vm._s(_vm.presenceText)+" ")]):_vm._e(),(_vm.userStatus)?_c('dt-emoji-text-wrapper',{staticClass:"dt-leftbar-row__meta-custom",attrs:{"size":"100","element-type":"span","data-qa":"dt-leftbar-row-user-status"}},[_vm._v(" "+_vm._s(_vm.userStatus)+" ")]):_vm._e()],1)]},proxy:true}])},_vm.$listeners))}
24630
+ var contact_rowvue_type_template_id_5d3cfbea_staticRenderFns = []
24605
24631
 
24606
24632
 
24607
24633
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./recipes/leftbar/contact_row/contact_row.vue?vue&type=script&lang=js&
@@ -24786,6 +24812,14 @@ var contact_rowvue_type_template_id_6a63c490_staticRenderFns = []
24786
24812
  default: false
24787
24813
  },
24788
24814
 
24815
+ /**
24816
+ * Whether the contact row should display a call button when hovered.
24817
+ */
24818
+ hasCallButton: {
24819
+ type: Boolean,
24820
+ default: true
24821
+ },
24822
+
24789
24823
  /**
24790
24824
  * Text shown when the call button is hovered.
24791
24825
  */
@@ -24854,8 +24888,8 @@ var contact_rowvue_type_template_id_6a63c490_staticRenderFns = []
24854
24888
  ;
24855
24889
  var contact_row_component = normalizeComponent(
24856
24890
  contact_row_contact_rowvue_type_script_lang_js_,
24857
- contact_rowvue_type_template_id_6a63c490_render,
24858
- contact_rowvue_type_template_id_6a63c490_staticRenderFns,
24891
+ contact_rowvue_type_template_id_5d3cfbea_render,
24892
+ contact_rowvue_type_template_id_5d3cfbea_staticRenderFns,
24859
24893
  false,
24860
24894
  null,
24861
24895
  null,
@@ -2613,6 +2613,25 @@ function debounce(func) {
2613
2613
  clearTimeout(TIMER);
2614
2614
  TIMER = setTimeout(func, timeout);
2615
2615
  }
2616
+ /**
2617
+ * Checks if the element is out of the viewport
2618
+ * https://gomakethings.com/how-to-check-if-any-part-of-an-element-is-out-of-the-viewport-with-vanilla-js/
2619
+ * @param {HTMLElement} element The element to check
2620
+ * @return {Object} A set of booleans for each side of the element
2621
+ */
2622
+
2623
+ function isOutOfViewPort(element) {
2624
+ const bounding = element.getBoundingClientRect();
2625
+ const isOut = {
2626
+ top: bounding.top < 0,
2627
+ left: bounding.left < 0,
2628
+ bottom: bounding.bottom > (window.innerHeight || document.documentElement.clientHeight),
2629
+ right: bounding.right > (window.innerWidth || document.documentElement.clientWidth)
2630
+ };
2631
+ isOut.any = Object.values(isOut).some(val => val);
2632
+ isOut.all = Object.values(isOut).every(val => val);
2633
+ return isOut;
2634
+ }
2616
2635
  /* harmony default export */ const utils = ({
2617
2636
  getUniqueString,
2618
2637
  getRandomElement,
@@ -2623,7 +2642,8 @@ function debounce(func) {
2623
2642
  htmlFragment,
2624
2643
  flushPromises,
2625
2644
  kebabCaseToPascalCase,
2626
- debounce
2645
+ debounce,
2646
+ isOutOfViewPort
2627
2647
  });
2628
2648
  ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/presence/presence.vue?vue&type=template&id=77957bb3&
2629
2649
  var presencevue_type_template_id_77957bb3_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"d-presence",attrs:{"data-qa":"dt-presence","role":"status","aria-live":_vm.$attrs.ariaLive || 'off'}},[(_vm.srText)?_c('span',{staticClass:"sr-only",attrs:{"data-qa":"dt-presence-sr-text"}},[_vm._v(_vm._s(_vm.srText)+" ")]):_vm._e(),_c('div',{staticClass:"d-presence__inner",class:{
@@ -8200,8 +8220,8 @@ return [_c('ul',{ref:"listWrapper",class:_vm.listClasses,attrs:{"id":_vm.listId,
8200
8220
  var dropdownvue_type_template_id_359f1c8b_staticRenderFns = []
8201
8221
 
8202
8222
 
8203
- ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/popover/popover.vue?vue&type=template&id=cdba9054&
8204
- var popovervue_type_template_id_cdba9054_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.modal && _vm.isOpen)?_c('portal',[_c('div',{staticClass:"d-modal--transparent",attrs:{"aria-hidden":_vm.modal && _vm.isOpen ? 'false' : 'true'},on:{"click":function($event){$event.preventDefault();$event.stopPropagation();}}})]):_vm._e(),_c(_vm.elementType,_vm._g({ref:"popover",tag:"component",class:['d-popover', { 'd-popover__anchor--opened': _vm.isOpen }],attrs:{"data-qa":"dt-popover-container"}},_vm.$listeners),[_c('div',{ref:"anchor",attrs:{"id":!_vm.ariaLabelledby && _vm.labelledBy,"data-qa":"dt-popover-anchor","tabindex":_vm.openOnContext ? 0 : undefined},on:{"!click":function($event){return _vm.defaultToggleOpen.apply(null, arguments)},"contextmenu":_vm.onContext,"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"up",38,$event.key,["Up","ArrowUp"])){ return null; }$event.preventDefault();return _vm.onArrowKeyPress.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"down",40,$event.key,["Down","ArrowDown"])){ return null; }$event.preventDefault();return _vm.onArrowKeyPress.apply(null, arguments)}],"!keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"escape",undefined,$event.key,undefined)){ return null; }return _vm.closePopover.apply(null, arguments)}}},[_vm._t("anchor",null,{"attrs":{
8223
+ ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/popover/popover.vue?vue&type=template&id=683dbc64&
8224
+ var popovervue_type_template_id_683dbc64_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.modal && _vm.isOpen)?_c('portal',[_c('div',{staticClass:"d-modal--transparent",attrs:{"aria-hidden":_vm.modal && _vm.isOpen ? 'false' : 'true'},on:{"click":function($event){$event.preventDefault();$event.stopPropagation();}}})]):_vm._e(),_c(_vm.elementType,_vm._g({ref:"popover",tag:"component",class:['d-popover', { 'd-popover__anchor--opened': _vm.isOpen }],attrs:{"data-qa":"dt-popover-container"}},_vm.$listeners),[_c('div',{ref:"anchor",attrs:{"id":!_vm.ariaLabelledby && _vm.labelledBy,"data-qa":"dt-popover-anchor","tabindex":_vm.openOnContext ? 0 : undefined},on:{"!click":function($event){return _vm.defaultToggleOpen.apply(null, arguments)},"contextmenu":_vm.onContext,"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"up",38,$event.key,["Up","ArrowUp"])){ return null; }$event.preventDefault();return _vm.onArrowKeyPress.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"down",40,$event.key,["Down","ArrowDown"])){ return null; }$event.preventDefault();return _vm.onArrowKeyPress.apply(null, arguments)}],"!keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"escape",undefined,$event.key,undefined)){ return null; }return _vm.closePopover.apply(null, arguments)}}},[_vm._t("anchor",null,{"attrs":{
8205
8225
  'aria-expanded': _vm.isOpen.toString(),
8206
8226
  'aria-controls': _vm.id,
8207
8227
  'aria-haspopup': _vm.role,
@@ -8212,7 +8232,7 @@ var popovervue_type_template_id_cdba9054_render = function () {var _vm=this;var
8212
8232
  'd-popover__content',
8213
8233
  _vm.POPOVER_PADDING_CLASSES[_vm.padding],
8214
8234
  _vm.contentClass ],attrs:{"data-qa":"dt-popover-content"}},[_vm._t("content",null,{"close":_vm.closePopover})],2),(_vm.$slots.footerContent)?_c('popover-header-footer',{ref:"popover__footer",class:_vm.POPOVER_HEADER_FOOTER_PADDING_CLASSES[_vm.padding],attrs:{"type":"footer","content-class":_vm.footerClass},scopedSlots:_vm._u([{key:"content",fn:function(){return [_vm._t("footerContent",null,{"close":_vm.closePopover})]},proxy:true}],null,true)}):_vm._e(),(_vm.showVisuallyHiddenClose)?_c('sr-only-close-button',{attrs:{"visually-hidden-close-label":_vm.visuallyHiddenCloseLabel},on:{"close":_vm.closePopover}}):_vm._e()],1)],1)],1)}
8215
- var popovervue_type_template_id_cdba9054_staticRenderFns = []
8235
+ var popovervue_type_template_id_683dbc64_staticRenderFns = []
8216
8236
 
8217
8237
 
8218
8238
  ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js
@@ -13627,6 +13647,7 @@ var popover_header_footer_component = normalizeComponent(
13627
13647
  isOpen(isOpen, isPrev) {
13628
13648
  if (isOpen) {
13629
13649
  this.initTippyInstance();
13650
+ this.tip.show();
13630
13651
  } else if (!isOpen && isPrev !== isOpen) {
13631
13652
  this.removeEventListeners();
13632
13653
  this.tip.hide();
@@ -13642,16 +13663,14 @@ var popover_header_footer_component = normalizeComponent(
13642
13663
 
13643
13664
  if (this.isOpen) {
13644
13665
  this.initTippyInstance();
13666
+ this.tip.show();
13645
13667
  } // rootMargin here must be greater than the margin of the height we are setting in calculatedMaxHeight which
13646
13668
  // currently is var(--space-300) (4px). If not the intersectionObserver will continually trigger in an infinite
13647
13669
  // loop.
13648
13670
  // threshold 1.0 makes this trigger every time the dialog "touches" the edge of the viewport.
13649
13671
 
13650
13672
 
13651
- this.intersectionObserver = new IntersectionObserver(this.hasIntersectedViewport, {
13652
- rootMargin: '-8px',
13653
- threshold: 1.0
13654
- });
13673
+ this.intersectionObserver = new IntersectionObserver(this.hasIntersectedViewport);
13655
13674
  this.intersectionObserver.observe(this.popoverContentEl);
13656
13675
  },
13657
13676
 
@@ -13669,8 +13688,12 @@ var popover_header_footer_component = normalizeComponent(
13669
13688
  ******************/
13670
13689
  methods: {
13671
13690
  hasIntersectedViewport(entries) {
13672
- const dialog = entries === null || entries === void 0 ? void 0 : entries[0];
13673
- this.isOutsideViewport = !(dialog !== null && dialog !== void 0 && dialog.isIntersecting);
13691
+ var _entries$;
13692
+
13693
+ const dialog = entries === null || entries === void 0 ? void 0 : (_entries$ = entries[0]) === null || _entries$ === void 0 ? void 0 : _entries$.target;
13694
+ if (!dialog) return;
13695
+ const isOut = isOutOfViewPort(dialog);
13696
+ this.isOutsideViewport = isOut.bottom || isOut.top;
13674
13697
  },
13675
13698
 
13676
13699
  popperOptions() {
@@ -13781,6 +13804,9 @@ var popover_header_footer_component = normalizeComponent(
13781
13804
 
13782
13805
  if (element.tagName.toLowerCase() === 'body') {
13783
13806
  element.classList.add('d-of-hidden');
13807
+ this.tip.setProps({
13808
+ offset: this.offset
13809
+ });
13784
13810
  } else {
13785
13811
  element.classList.add('d-zi-popover');
13786
13812
  }
@@ -13798,6 +13824,9 @@ var popover_header_footer_component = normalizeComponent(
13798
13824
 
13799
13825
  if (element.tagName.toLowerCase() === 'body') {
13800
13826
  element.classList.remove('d-of-hidden');
13827
+ this.tip.setProps({
13828
+ offset: this.offset
13829
+ });
13801
13830
  } else {
13802
13831
  element.classList.remove('d-zi-popover');
13803
13832
  }
@@ -13818,6 +13847,8 @@ var popover_header_footer_component = normalizeComponent(
13818
13847
  if (this.contentWidth === null) {
13819
13848
  this.popoverContentEl.style.width = 'auto';
13820
13849
  }
13850
+
13851
+ this.addEventListeners();
13821
13852
  },
13822
13853
 
13823
13854
  async onLeaveTransitionComplete() {
@@ -13830,7 +13861,7 @@ var popover_header_footer_component = normalizeComponent(
13830
13861
  }
13831
13862
 
13832
13863
  (_this$tip8 = this.tip) === null || _this$tip8 === void 0 ? void 0 : _this$tip8.unmount();
13833
- this.enableScrolling();
13864
+ await this.enableScrolling();
13834
13865
  this.$emit('opened', false);
13835
13866
 
13836
13867
  if (this.open !== null) {
@@ -13840,7 +13871,7 @@ var popover_header_footer_component = normalizeComponent(
13840
13871
 
13841
13872
  async onEnterTransitionComplete() {
13842
13873
  this.focusInitialElement();
13843
- this.preventScrolling(); // await next tick in case the user wants to change focus themselves.
13874
+ await this.preventScrolling(); // await next tick in case the user wants to change focus themselves.
13844
13875
 
13845
13876
  await this.$nextTick();
13846
13877
  this.$emit('opened', true, this.$refs.popover__content);
@@ -13946,11 +13977,6 @@ var popover_header_footer_component = normalizeComponent(
13946
13977
  onClickOutside: this.onClickOutside,
13947
13978
  onShow: this.onShow
13948
13979
  });
13949
- this.tip.setProps({
13950
- zIndex: this.modal ? 650 : this.calculateAnchorZindex()
13951
- });
13952
- this.tip.show();
13953
- this.addEventListeners();
13954
13980
  }
13955
13981
 
13956
13982
  }
@@ -13972,8 +13998,8 @@ var popovervue_type_style_index_0_lang_less_ = __webpack_require__(532);
13972
13998
 
13973
13999
  var popover_component = normalizeComponent(
13974
14000
  popover_popovervue_type_script_lang_js_,
13975
- popovervue_type_template_id_cdba9054_render,
13976
- popovervue_type_template_id_cdba9054_staticRenderFns,
14001
+ popovervue_type_template_id_683dbc64_render,
14002
+ popovervue_type_template_id_683dbc64_staticRenderFns,
13977
14003
  false,
13978
14004
  null,
13979
14005
  null,
@@ -24609,9 +24635,9 @@ var group_row_component = normalizeComponent(
24609
24635
  /* harmony default export */ const group_row = (group_row_component.exports);
24610
24636
  ;// CONCATENATED MODULE: ./recipes/leftbar/group_row/index.js
24611
24637
 
24612
- ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./recipes/leftbar/contact_row/contact_row.vue?vue&type=template&id=6a63c490&
24613
- var contact_rowvue_type_template_id_6a63c490_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dt-recipe-general-row',_vm._g({attrs:{"unread-count":_vm.unreadCount,"description":(_vm.name + " " + _vm.presenceText + " " + _vm.userStatus),"has-unreads":_vm.hasUnreads,"selected":_vm.selected,"has-call-button":true,"muted":_vm.muted,"is-typing":_vm.isTyping,"call-button-tooltip":_vm.callButtonTooltip,"unread-count-tooltip":_vm.unreadCountTooltip},scopedSlots:_vm._u([{key:"left",fn:function(){return [_c('dt-avatar',{attrs:{"size":"sm","seed":_vm.avatarSeed,"presence":_vm.avatarPresence}},[(_vm.avatarSrc)?_c('img',{attrs:{"data-qa":"dt-avatar-image","src":_vm.avatarSrc,"alt":_vm.name}}):(_vm.noInitials)?[_c('dt-icon',{attrs:{"name":"user","size":"200"}})]:[_vm._v(" "+_vm._s(_vm.avatarInitial)+" ")]],2)]},proxy:true},{key:"label",fn:function(){return [_c('dt-emoji-text-wrapper',{staticClass:"dt-leftbar-row__description",attrs:{"data-qa":"dt-leftbar-row-description","size":"200"}},[_vm._v(" "+_vm._s(_vm.name)+" ")]),_c('div',{staticClass:"dt-leftbar-row__status"},[(_vm.presenceText)?_c('span',{class:['dt-leftbar-row__meta-context', _vm.presenceColorClass],attrs:{"data-qa":"dt-leftbar-row-presence-text"}},[_vm._v(" "+_vm._s(_vm.presenceText)+" ")]):_vm._e(),(_vm.userStatus)?_c('dt-emoji-text-wrapper',{staticClass:"dt-leftbar-row__meta-custom",attrs:{"size":"100","element-type":"span","data-qa":"dt-leftbar-row-user-status"}},[_vm._v(" "+_vm._s(_vm.userStatus)+" ")]):_vm._e()],1)]},proxy:true}])},_vm.$listeners))}
24614
- var contact_rowvue_type_template_id_6a63c490_staticRenderFns = []
24638
+ ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./recipes/leftbar/contact_row/contact_row.vue?vue&type=template&id=5d3cfbea&
24639
+ var contact_rowvue_type_template_id_5d3cfbea_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dt-recipe-general-row',_vm._g({attrs:{"unread-count":_vm.unreadCount,"description":(_vm.name + " " + _vm.presenceText + " " + _vm.userStatus),"has-unreads":_vm.hasUnreads,"selected":_vm.selected,"has-call-button":_vm.hasCallButton,"muted":_vm.muted,"is-typing":_vm.isTyping,"call-button-tooltip":_vm.callButtonTooltip,"unread-count-tooltip":_vm.unreadCountTooltip},scopedSlots:_vm._u([{key:"left",fn:function(){return [_c('dt-avatar',{attrs:{"size":"sm","seed":_vm.avatarSeed,"presence":_vm.avatarPresence}},[(_vm.avatarSrc)?_c('img',{attrs:{"data-qa":"dt-avatar-image","src":_vm.avatarSrc,"alt":_vm.name}}):(_vm.noInitials)?[_c('dt-icon',{attrs:{"name":"user","size":"200"}})]:[_vm._v(" "+_vm._s(_vm.avatarInitial)+" ")]],2)]},proxy:true},{key:"label",fn:function(){return [_c('dt-emoji-text-wrapper',{staticClass:"dt-leftbar-row__description",attrs:{"data-qa":"dt-leftbar-row-description","size":"200"}},[_vm._v(" "+_vm._s(_vm.name)+" ")]),_c('div',{staticClass:"dt-leftbar-row__status"},[(_vm.presenceText)?_c('span',{class:['dt-leftbar-row__meta-context', _vm.presenceColorClass],attrs:{"data-qa":"dt-leftbar-row-presence-text"}},[_vm._v(" "+_vm._s(_vm.presenceText)+" ")]):_vm._e(),(_vm.userStatus)?_c('dt-emoji-text-wrapper',{staticClass:"dt-leftbar-row__meta-custom",attrs:{"size":"100","element-type":"span","data-qa":"dt-leftbar-row-user-status"}},[_vm._v(" "+_vm._s(_vm.userStatus)+" ")]):_vm._e()],1)]},proxy:true}])},_vm.$listeners))}
24640
+ var contact_rowvue_type_template_id_5d3cfbea_staticRenderFns = []
24615
24641
 
24616
24642
 
24617
24643
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-80[0].rules[0].use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./recipes/leftbar/contact_row/contact_row.vue?vue&type=script&lang=js&
@@ -24796,6 +24822,14 @@ var contact_rowvue_type_template_id_6a63c490_staticRenderFns = []
24796
24822
  default: false
24797
24823
  },
24798
24824
 
24825
+ /**
24826
+ * Whether the contact row should display a call button when hovered.
24827
+ */
24828
+ hasCallButton: {
24829
+ type: Boolean,
24830
+ default: true
24831
+ },
24832
+
24799
24833
  /**
24800
24834
  * Text shown when the call button is hovered.
24801
24835
  */
@@ -24864,8 +24898,8 @@ var contact_rowvue_type_template_id_6a63c490_staticRenderFns = []
24864
24898
  ;
24865
24899
  var contact_row_component = normalizeComponent(
24866
24900
  contact_row_contact_rowvue_type_script_lang_js_,
24867
- contact_rowvue_type_template_id_6a63c490_render,
24868
- contact_rowvue_type_template_id_6a63c490_staticRenderFns,
24901
+ contact_rowvue_type_template_id_5d3cfbea_render,
24902
+ contact_rowvue_type_template_id_5d3cfbea_staticRenderFns,
24869
24903
  false,
24870
24904
  null,
24871
24905
  null,