@momentum-ui/web-components 2.17.2 → 2.17.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/md-10.js +1 -1
- package/dist/chunks/md-11.js +1 -1
- package/dist/chunks/md-17.js +5 -5
- package/dist/chunks/md-19.js +1 -17
- package/dist/chunks/md-20.js +17 -1
- package/dist/chunks/md-21.js +23 -8
- package/dist/chunks/md-22.js +8 -23
- package/dist/chunks/md-23.js +1 -1
- package/dist/chunks/md-29.js +1 -1
- package/dist/chunks/md-33.js +1 -1
- package/dist/chunks/md-37.js +1 -1
- package/dist/chunks/md-43.js +3 -3
- package/dist/chunks/md-48.js +1 -1
- package/dist/chunks/md-55.js +1 -1
- package/dist/chunks/md-59.js +1 -1
- package/dist/chunks/md-60.js +5 -4
- package/dist/chunks/md-63.js +1 -1
- package/dist/chunks/md-65.js +11 -11
- package/dist/chunks/md-66.js +1 -1
- package/dist/chunks/md-78.js +1 -1
- package/dist/chunks/md-8.js +1 -1
- package/dist/chunks/md-85.js +1 -1
- package/dist/chunks/md-88.js +5 -3
- package/dist/chunks/md-90.js +1 -1
- package/dist/comp/md-audio-player-entry.js +1 -1
- package/dist/comp/md-audio-player.js +2 -2
- package/dist/comp/md-card-entry.js +1 -1
- package/dist/comp/md-card.js +2 -2
- package/dist/comp/md-chip-entry.js +1 -1
- package/dist/comp/md-chip.js +2 -2
- package/dist/comp/md-date-range-picker-entry.js +1 -1
- package/dist/comp/md-date-range-picker.js +2 -2
- package/dist/comp/md-datepicker-calendar-entry.js +1 -1
- package/dist/comp/md-datepicker-calendar.js +2 -2
- package/dist/comp/md-datepicker-day-entry.js +1 -1
- package/dist/comp/md-datepicker-day.js +1 -1
- package/dist/comp/md-datepicker-entry.js +1 -1
- package/dist/comp/md-datepicker-month-entry.js +1 -1
- package/dist/comp/md-datepicker-month.js +2 -2
- package/dist/comp/md-datepicker-week-entry.js +1 -1
- package/dist/comp/md-datepicker-week.js +2 -2
- package/dist/comp/md-datepicker.js +2 -2
- package/dist/comp/md-tabs-entry.js +1 -1
- package/dist/comp/md-tabs.js +2 -0
- package/dist/comp/md-theme-entry.js +1 -1
- package/dist/comp/md-theme.js +1 -1
- package/dist/comp/md-tooltip-entry.js +1 -1
- package/dist/comp/md-tooltip.js +2 -2
- package/dist/index-entry.js +2 -2
- package/dist/index.js +3 -3
- package/dist/types/components/chat-message/ChatMessage.d.ts +2 -0
- package/dist/types/components/datepicker/DatePicker.d.ts +1 -0
- package/dist/types/components/tabs/Tabs.d.ts +3 -0
- package/dist/types/components/timepicker/TimePicker.d.ts +1 -1
- package/package.json +1 -1
package/dist/chunks/md-85.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(window["momentum-web-components-[id]"]=window["momentum-web-components-[id]"]||[]).push([[85],{106:function(e,t,r){"use strict";r.r(t),r.d(t,"TabPanel",(function(){return n}));var n,o=r(7),a=r(5),s=r(6),c=r(0),i=r(
|
|
1
|
+
(window["momentum-web-components-[id]"]=window["momentum-web-components-[id]"]||[]).push([[85],{106:function(e,t,r){"use strict";r.r(t),r.d(t,"TabPanel",(function(){return n}));var n,o=r(7),a=r(5),s=r(6),c=r(0),i=r(43),l=function(e,t,r,n){var o,a=arguments.length,s=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(s=(a<3?o(s):a>3?o(t,r,s):o(t,r))||s);return a>3&&s&&Object.defineProperty(t,r,s),s};!function(e){let t=class extends(Object(o.a)(c.LitElement)){constructor(){super(...arguments),this.selected=!1,this.name="",this.focusablePanel="true"}static get styles(){return[s.a,i.a]}firstUpdated(e){super.firstUpdated(e),this.setAttribute("role","tabpanel"),"true"===this.focusablePanel&&this.setAttribute("tabindex","0")}render(){return c.html` <slot></slot> `}};l([Object(c.property)({type:Boolean,reflect:!0})],t.prototype,"selected",void 0),l([Object(c.property)({type:String,attribute:"name"})],t.prototype,"name",void 0),l([Object(c.property)({type:String,attribute:"focusable-panel"})],t.prototype,"focusablePanel",void 0),t=l([Object(a.a)("md-tab-panel")],t),e.ELEMENT=t}(n||(n={}))}}]);
|
package/dist/chunks/md-88.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(window["momentum-web-components-[id]"]=window["momentum-web-components-[id]"]||[]).push([[88],{107:function(e,t,i){"use strict";i.r(t),i.d(t,"MORE_MENU_TAB_COPY_ID_PREFIX",(function(){return y})),i.d(t,"Tabs",(function(){return g}));i(14),i(36);var s=i(1),a=i(7),n=i(6),l=i(0),o=i(4),d=i(13),r=i(8),b=i(73),h=i(27),c=i(38),u=i.n(c),p=i(67),m=i(42),v=i(48),T=function(e,t,i,s){var a,n=arguments.length,l=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,i,s);else for(var o=e.length-1;o>=0;o--)(a=e[o])&&(l=(n<3?a(l):n>3?a(t,i,l):a(t,i))||l);return n>3&&l&&Object.defineProperty(t,i,l),l},f=function(e,t,i,s){return new(i||(i=Promise))((function(a,n){function l(e){try{d(s.next(e))}catch(e){n(e)}}function o(e){try{d(s.throw(e))}catch(e){n(e)}}function d(e){var t;e.done?a(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(l,o)}d((s=s.apply(e,t||[])).next())}))};const y="more-menu-copy-";var g;!function(e){let t=class extends(Object(a.c)(Object(a.d)(Object(a.e)(l.LitElement)))){constructor(){super(...arguments),this.justified=!1,this.hugTabs=!1,this.overflowLabel="More Tabs",this.draggable=!1,this.direction="horizontal",this.moreItemsScrollLimit=Number.MAX_SAFE_INTEGER,this.selectedIndex=0,this.delay=0,this.animation=100,this.ghostClass="",this.chosenClass="",this.forceFallback=!1,this.fallbackClass="",this.tabsId="",this.persistSelection=!1,this.compUniqueId="",this.type="line",this.newMomentum=!1,this.variant="ghost",this.isMoreTabMenuVisible=!1,this.isMoreTabMenuMeasured=!1,this.isMoreTabMenuOpen=!1,this.isMoreTabMenuSelected=!1,this.isMoreTabMenuScrollable=!1,this.moreTabMenuOffsetWidth=0,this.moreTabMenuMaxHeight=null,this.tabsViewportDataList=[],this.tabsFilteredAsVisibleList=[],this.tabsFilteredAsHiddenList=[],this.noTabsVisible=!1,this.defaultTabsOrderArray=[],this.tabsOrderPrefsArray=[],this.tabs=[],this.panels=[],this.tabsCopy=[],this.tabsHash={},this.tabsCopyHash={},this.tabsIdxHash={},this.tabsVisibleIdxHash={},this.tabsHiddenIdxHash={},this.visibleTabsSortableInstance=null,this.hiddenTabsSortableInstance=null,this.handleOnDragEnd=e=>f(this,void 0,void 0,(function*(){var t,i,s,a,n,l,o,d,r,b;e.stopPropagation();const h=e.oldIndex,c=e.newIndex,u=[...this.tabsFilteredAsVisibleList],p=[...this.tabsFilteredAsHiddenList],m=this.getDragDirection(e);if(void 0!==h&&void 0!==c){switch(m){case"visibleToHidden":{null===(i=null===(t=this.hiddenTabsContainerElement)||void 0===t?void 0:t.querySelector("#"+e.item.id))||void 0===i||i.remove();const s=u[h],a=p.slice(-1)[0],n=c===this.tabsFilteredAsHiddenList.length?c-1:c;p.splice(n,0,s),p.pop();const l=u.filter(t=>t.id!==this.getNormalizedTabId(e.item.id));l.push(a),this.tabsFilteredAsVisibleList=[...l],this.tabsFilteredAsHiddenList=[...p];break}case"visibleToVisible":{const e=u[h];u.splice(h,1),u.splice(c,0,e),this.tabsFilteredAsVisibleList=u,c===this.tabsFilteredAsVisibleList.length-1&&(null===(a=null===(s=this.visibleTabsContainerElement)||void 0===s?void 0:s.children[this.visibleTabsContainerElement.children.length-1])||void 0===a||a.remove());const t=this.visibleTabsContainerElement.children[h],i=this.visibleTabsContainerElement.children[c];if(!t||!i)return;null===(n=this.visibleTabsContainerElement)||void 0===n||n.replaceChild(i,t),null===(l=this.visibleTabsContainerElement)||void 0===l||l.insertBefore(t,i);break}case"hiddenToVisible":{null===(d=null===(o=this.visibleTabsContainerElement)||void 0===o?void 0:o.querySelector("#"+e.item.id))||void 0===d||d.remove();const t=p[h],i=u.slice(-1)[0];p.splice(h,1),p.splice(0,0,i);const s=c===this.tabsFilteredAsVisibleList.length?c-1:c;u.splice(s,0,t),u.pop(),this.tabsFilteredAsVisibleList=u,this.tabsFilteredAsHiddenList=p;break}case"hiddenToHidden":{const e=p[h];p.splice(h,1),p.splice(c,0,e),this.tabsFilteredAsHiddenList=p,c===this.tabsFilteredAsHiddenList.length-1&&(null===(b=null===(r=this.hiddenTabsContainerElement)||void 0===r?void 0:r.children[this.hiddenTabsContainerElement.children.length-1])||void 0===b||b.remove());break}}if(this.compUniqueId){const e=[...this.tabsFilteredAsVisibleList,...this.tabsFilteredAsHiddenList],t=e.findIndex(e=>e.selected);this.storeSelectedTabIndex(t),this.tabsOrderPrefsArray=e.map(e=>e.name),localStorage.setItem(this.compUniqueId,this.tabsOrderPrefsArray.join(","))}}}))}generateOptions(){return{group:"shared",animation:10,swapThreshold:1,draggable:"md-tab",direction:this.direction,forceFallback:this.forceFallback,fallbackClass:this.fallbackClass,ghostClass:this.ghostClass,chosenClass:this.chosenClass,onEnd:this.handleOnDragEnd}}getCopyTabId(e){var t;return(null===(t=e.id)||void 0===t?void 0:t.startsWith(y))?`${y}${e.id}`:e.id}getAriaControlId(e){var t,i;if(null===(t=e.id)||void 0===t?void 0:t.startsWith(y))return`${y}${e.id}`;return"tab_panel_"+(null===(i=e.id)||void 0===i?void 0:i.substring(4))}getTabIndex(e){var t,i;return this.isMoreTabMenuVisible&&0===this.getCurrentIndex(null==e?void 0:e.id)&&this.selected>(null===(t=this.tabsFilteredAsVisibleList)||void 0===t?void 0:t.length)-1||(null===(i=this.tabsFilteredAsVisibleList[this.selected])||void 0===i?void 0:i.id)===e.id?0:-1}getNormalizedTabId(e){return e.replace(y,"")}static get styles(){return[n.a,m.a]}ensureTabsUpdateComplete(e){return f(this,void 0,void 0,(function*(){const t=e.map(e=>void 0!==e.updateComplete?e.updateComplete:null).filter(e=>null!==e);t.length&&(yield Promise.all(t))}))}measureTabsOffsetWidth(){return this.justified||"vertical"===this.direction?this.tabs.map(e=>{e.setAttribute("measuringrealwidth","");const t=e.closable?e.offsetWidth+v.TAB_CROSS_WIDTH:e.offsetWidth;return e.removeAttribute("measuringrealwidth"),t}):this.tabs.map(e=>e.closable?e.offsetWidth+v.TAB_CROSS_WIDTH:e.offsetWidth)}measureHiddenTabsCopiesOffsetHeight(){return this.tabsCopy.map(e=>e.offsetHeight)}manageOverflow(){var e,t;return f(this,void 0,void 0,(function*(){if("vertical"!==this.direction){let i;i=0===this.tabsFilteredAsVisibleList.length&&0===this.tabsFilteredAsHiddenList.length?[...this.tabs]:[...this.tabsFilteredAsVisibleList,...this.tabsFilteredAsHiddenList],i.forEach(e=>{var t,i,s,a,n;if((null===(t=e.children)||void 0===t?void 0:t.length)&&0===(null===(s=null===(i=e.children[0])||void 0===i?void 0:i.children)||void 0===s?void 0:s.length)){const t=null===(a=null==e?void 0:e.querySelector("slot"))||void 0===a?void 0:a.assignedNodes({flatten:!0})[0].cloneNode(!0);t&&(t.classList.add("tab-content"),null===(n=null==e?void 0:e.children[0])||void 0===n||n.appendChild(t))}});const s=i.length;if(this.tabsListElement&&s){const a=(null===(e=this.tabsSettingsElement)||void 0===e?void 0:e.offsetWidth)?this.tabsListElement.offsetWidth-(null===(t=this.tabsSettingsElement)||void 0===t?void 0:t.offsetWidth):this.tabsListElement.offsetWidth;yield this.ensureTabsUpdateComplete(this.tabs);const n=this.measureTabsOffsetWidth(),l=i.reduce((e,t,i)=>e+=n[i],0);if(l){yield this.setupMoreTab();let e=!0;a<l&&(e=!1);const t=[];let o=0;i.forEach((i,l)=>{o+=n[l];const d=!e&&o+(l<s-1?this.moreTabMenuOffsetWidth:0)>a;t.push({isTabInViewportHidden:d,tabOffsetWidth:n[l]})}),this.tabsViewportDataList=t,this.tabsViewportDataList.forEach((e,t)=>this.tabs[t].viewportHidden=e.isTabInViewportHidden),this.isMoreTabMenuVisible=!!this.tabsViewportDataList.find(e=>e.isTabInViewportHidden),this.tabsFilteredAsVisibleList=i.filter((e,t)=>!this.tabsViewportDataList[t].isTabInViewportHidden),this.tabsVisibleIdxHash=this.tabsFilteredAsVisibleList.reduce((e,t,i)=>(e[t.id]=i,e),{}),this.tabsFilteredAsHiddenList=i.filter((e,t)=>this.tabsViewportDataList[t].isTabInViewportHidden),this.tabsHiddenIdxHash=this.tabsFilteredAsHiddenList.reduce((e,t,i)=>(e[t.id]=i,e),{})}}this.updateIsMoreTabMenuSelected();const a=this.tabsFilteredAsHiddenList.find(e=>!e.disabled);this.updateHiddenIdPositiveTabIndex(a)}}))}updateIsMoreTabMenuSelected(){this.isMoreTabMenuSelected=!!this.tabsFilteredAsHiddenList.find(e=>e.selected)}updateHiddenIdPositiveTabIndex(e){this.tabHiddenIdPositiveTabIndex=e?e.id:void 0}sortTabsAndPanes(){if(!this.tabsOrderPrefsArray.length)return;const e=(e,t)=>{var i,s;const a=null!==(i=e.getAttribute("name"))&&void 0!==i?i:"",n=null!==(s=t.getAttribute("name"))&&void 0!==s?s:"";return this.tabsOrderPrefsArray.indexOf(a)-this.tabsOrderPrefsArray.indexOf(n)};this.tabs.sort(e),this.panels.sort(e)}linkPanelsAndTabs(){return f(this,void 0,void 0,(function*(){this.sortTabsAndPanes();const{tabs:e,panels:t}=this;if(0===e.length||0===t.length)return void console.warn("The tabs or panels count should't be equal zero.");e.length!==t.length&&console.warn(`The amount of tabs (${e.length}) doesn't match the amount of panels (${t.length}).`),e.forEach((e,i)=>{const s=Object(h.nanoid)(10),a="tab_"+s,n="tab_panel_"+s;e.setAttribute("id",a),e.setAttribute("aria-controls",n),e.selected=this.selected===i,"vertical"===this.direction&&(e.vertical=!0);const l=t[i];l?(l.setAttribute("id",n),l.setAttribute("aria-labelledby",a),l.selected=this.selected===i,e.disabled&&(l.hidden=!0,l.selected=!1)):e.disabled=!0});let i=this.selected;for(;i<e.length&&e[i].disabled;)i++;i=i===e.length?0:i,e[i].selected=!0,t[i].selected=!0,this.tabsHash=this.tabs.reduce((e,t)=>(e[t.id]=t,e),{}),this.tabsIdxHash=this.tabs.reduce((e,t,i)=>(e[t.id]=i,e),{})}))}get slotItem(){return this.tabSlotElement}filterSlotted(){return this.tabSlotElement.assignedElements()}handleResize(e){const t=Object.create(null,{handleResize:{get:()=>super.handleResize}});return f(this,void 0,void 0,(function*(){t.handleResize&&t.handleResize.call(this,e),yield this.manageOverflow()}))}getDragDirection(e){return e.from===this.visibleTabsContainerElement&&e.to===this.hiddenTabsContainerElement?"visibleToHidden":e.from===this.visibleTabsContainerElement&&e.to===this.visibleTabsContainerElement?"visibleToVisible":e.from===this.hiddenTabsContainerElement&&e.to===this.visibleTabsContainerElement?"hiddenToVisible":e.from===this.hiddenTabsContainerElement&&e.to===this.hiddenTabsContainerElement?"hiddenToHidden":void 0}makeTabCopyFocus(e){e&&e.focus()}handleTabClick(e){const{id:t}=e.detail;this.handleNewSelectedTab(t)}handleNewSelectedTab(e){const t=this.tabsHash[this.getNormalizedTabId(e)];if(t&&!t.disabled){const e=this.tabsIdxHash[t.id];-1!==e&&this.updateSelectedTab(e);{const e=this.tabsCopyHash[this.getCopyTabId(t)];e&&this.makeTabCopyFocus(e),this.updateHiddenIdPositiveTabIndex(t)}}}handleTabCrossClick(e){const{id:t}=e.detail;this.handleTabCloseEvent(t)}handleTabCloseClick(e){const{id:t}=e.detail;this.handleTabCloseEvent(t)}handleTabCloseEvent(e){var t,i;const s=this.tabsHash[this.getNormalizedTabId(e)];if(s&&!s.disabled&&("auto"===s.closable||"custom"===s.closable)){const s=this.tabsFilteredAsVisibleList.findIndex(t=>this.getNormalizedTabId(t.id)===this.getNormalizedTabId(e));this.tabsFilteredAsVisibleList=this.tabsFilteredAsVisibleList.filter(t=>this.getNormalizedTabId(t.id)!==this.getNormalizedTabId(e)),null===(i=null===(t=this.visibleTabsContainerElement)||void 0===t?void 0:t.querySelector("#"+e))||void 0===i||i.remove(),0!==this.tabsFilteredAsHiddenList.length&&(this.tabsFilteredAsVisibleList.push(this.tabsFilteredAsHiddenList[0]),this.tabsFilteredAsHiddenList.splice(0,1)),0===this.tabsFilteredAsHiddenList.length&&(this.isMoreTabMenuVisible=!1,this.isMoreTabMenuMeasured=!1),this.handleUpdatedSeletedTabAfterCross(s)}}handleUpdatedSeletedTabAfterCross(e){var t;let i=e;for(;i<this.tabsFilteredAsVisibleList.length&&(null===(t=this.tabsFilteredAsVisibleList[i])||void 0===t?void 0:t.disabled);)i++;if(void 0===this.tabsFilteredAsVisibleList[i]||e===this.tabsFilteredAsVisibleList.length)for(i=e-1;i>=0&&this.tabsFilteredAsVisibleList[i].disabled;)i--;if(-1!==i){const e=this.tabs.findIndex(e=>e.id===this.tabsFilteredAsVisibleList[i].id);this.updateSelectedTab(e)}else this.updateSelectedTab(i);this.noTabsVisible=0===this.tabsFilteredAsVisibleList.length&&0===this.tabsFilteredAsHiddenList.length,this.requestUpdate()}updateSelectedTab(e){const{tabs:t,panels:i}=this,s=this.tabs.findIndex(e=>e.hasAttribute("selected"));if(-1!==s&&(t&&i&&[s,e].forEach(e=>{const s=t[e];null==s||s.toggleAttribute("selected");const a=i[e];if(null==a||a.toggleAttribute("selected"),s){const e=this.tabsCopyHash[this.getCopyTabId(s)];e?(e.toggleAttribute("selected"),this.isMoreTabMenuSelected=!0):this.isMoreTabMenuSelected=!1}}),e>=0)){this.dispatchSelectedChangedEvent(e);const i=("horizontal"===this.direction?[...this.tabsFilteredAsVisibleList,...this.tabsFilteredAsHiddenList]:this.tabs).findIndex(i=>i.id===t[e].id);this.changeSelectedTabIdx(i)}}dispatchSelectedChangedEvent(e){const t="horizontal"===this.direction?[...this.tabsFilteredAsVisibleList,...this.tabsFilteredAsHiddenList]:this.tabs,i=this.tabs[e].id,s=t.findIndex(e=>e.id===i),a=[];t.forEach(e=>{a.push(e.name)}),this.dispatchEvent(new CustomEvent("selected-changed",{detail:{value:s,tabsOrder:a},composed:!0,bubbles:!0}))}changeSelectedTabIdx(e){this.requestUpdate(),this.selected=e,this.updateComplete.then(()=>{var t,i;if(e<this.tabsFilteredAsVisibleList.length){const e=null===(t=this.visibleTabsContainerElement)||void 0===t?void 0:t.children[this.selected];null==e||e.focus()}else{const e=this.selected-this.tabsFilteredAsVisibleList.length,t=null===(i=this.hiddenTabsContainerElement)||void 0===i?void 0:i.children[e];this.moveFocusToTab(t);const s=this.tabsFilteredAsHiddenList[e];!(null==s?void 0:s.disabled)&&this.updateHiddenIdPositiveTabIndex(s)}}),this.updateIsMoreTabMenuSelected(),this.storeSelectedTabIndex(e)}storeSelectedTabIndex(e){this.persistSelection&&this.tabsId&&e>-1&&""!==this.tabsId.trim()&&sessionStorage.setItem(this.tabsId,""+e)}getCurrentIndex(e){var t,i,s;const a=null!==(i=null===(t=this.visibleTabsContainerElement)||void 0===t?void 0:t.children.length)&&void 0!==i?i:0;for(let t=0;t<a;t++)if((null===(s=this.visibleTabsContainerElement)||void 0===s?void 0:s.children[t].id)===e)return t;return this.tabsVisibleIdxHash[e]}moveFocusToAdjacentTab(e,t){var i,s;const a=this.getCurrentIndex(e),n=null===(i=this.visibleTabsContainerElement)||void 0===i?void 0:i.children,l=null!==(s=null==n?void 0:n.length)&&void 0!==s?s:0;if(!n||0===l)return;let o=0;"previous"===t?o=0===a?l-1:a-1:"next"===t?o=a===l-1?0:a+1:"fromMoreTabs"===t&&(o=this.selected>=l?0:this.selected),this.moveFocusToTab(n[o])}moveFocusToTab(e){Object(p.setTimeout)(()=>null==e?void 0:e.focus(),0)}handleOverlayClose(){this.menuOverlayElement&&(this.menuOverlayElement.isOpen=!1)}dispatchKeydownEvent(e,t){t&&this.dispatchEvent(new CustomEvent("tab-keydown",{detail:{id:t,key:e.code,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,srcEvent:e},bubbles:!0,composed:!0}))}handleTabKeydown(e){var t,i,a,n,l,o;let d;if(e.target!=this&&!this.tabs.find(t=>t.id===e.target.id))return!1;d=e.path?e.path[0].id:e.composedPath()?e.composedPath()[0].id:e.originalTarget.id;const r=this.getNormalizedTabId(d);this.dispatchKeydownEvent(e,r);const b=e.code,{shiftKey:h}=e,c=!!this.isMoreTabMenuVisible&&"tab-more"===r,u=c&&this.isMoreTabMenuVisible?this.moreTabMenuElement:this.tabsHash[this.getNormalizedTabId(r)],p=!this.isMoreTabMenuVisible||u&&this.tabsVisibleIdxHash[u.id]>-1,m=!!this.isMoreTabMenuVisible&&(u&&this.tabsHiddenIdxHash[u.id]>-1),v=this.isMoreTabMenuVisible?this.tabsFilteredAsVisibleList.length-1:this.tabs.length-1,T=this.isMoreTabMenuVisible?this.tabsFilteredAsVisibleList.length:-1,f=this.isMoreTabMenuVisible?this.tabsFilteredAsVisibleList.length+this.tabsFilteredAsHiddenList.length-1:-1;switch(b){case s.b.Tab:c&&!this.isMoreTabMenuOpen&&h&&(e.preventDefault(),this.moveFocusToAdjacentTab(d,"fromMoreTabs"));break;case s.b.End:c||(p?(e.preventDefault(),this.moveFocusToTab(null===(t=this.visibleTabsContainerElement)||void 0===t?void 0:t.children[(null===(i=this.tabsFilteredAsVisibleList)||void 0===i?void 0:i.length)-1])):this.isMoreTabMenuOpen&&(e.preventDefault(),this.moveFocusToTab(null===(a=this.hiddenTabsContainerElement)||void 0===a?void 0:a.children[(null===(n=this.tabsFilteredAsHiddenList)||void 0===n?void 0:n.length)-1])));break;case s.b.Home:p?(e.preventDefault(),this.moveFocusToTab(null===(l=this.visibleTabsContainerElement)||void 0===l?void 0:l.children[0])):this.isMoreTabMenuOpen&&(e.preventDefault(),this.moveFocusToTab(null===(o=this.hiddenTabsContainerElement)||void 0===o?void 0:o.children[0]));break;case s.b.ArrowLeft:c||p&&(e.stopPropagation(),this.moveFocusToAdjacentTab(d,"previous"));break;case s.b.ArrowRight:c||p&&(e.stopPropagation(),this.moveFocusToAdjacentTab(d,"next"));break;case s.b.ArrowUp:if(c);else if(p&&"vertical"===this.direction)e.preventDefault(),this.changeSelectedTabIdx(0===this.selected?v:this.selected-1);else if(m){e.preventDefault();const t=this.selected===T?f:this.selected-1;this.changeSelectedTabIdx(t)}break;case s.b.ArrowDown:if(c);else if(p&&"vertical"===this.direction)e.preventDefault(),this.changeSelectedTabIdx(this.selected===v?0:this.selected+1);else if(m){e.preventDefault();const t=this.selected===f?T:this.selected+1;this.changeSelectedTabIdx(t)}break;case s.b.Enter:case s.b.NumpadEnter:case s.b.Space:if(c){const e=this.tabsFilteredAsHiddenList.filter(e=>!e.disabled),t=e.length?e.find(e=>e.selected)||e[0]:void 0;if(this.updateHiddenIdPositiveTabIndex(t),t){const e=this.tabsIdxHash[this.getNormalizedTabId(t.id)];-1!==e&&this.updateSelectedTab(e)}}else if(u&&!u.disabled){const t=this.tabsIdxHash[this.getNormalizedTabId(u.id)];-1!==t&&(e.preventDefault(),this.updateSelectedTab(t))}}}setupTabsEvents(){this.addEventListener("tab-click",this.handleTabClick),this.addEventListener("tab-cross-click",this.handleTabCrossClick),this.addEventListener("tab-close-click",this.handleTabCloseClick),this.addEventListener("keydown",this.handleTabKeydown),this.addEventListener("clear-tab-order-prefs",this.clearTabOrderPrefs)}teardownTabsEvents(){this.removeEventListener("tab-click",this.handleTabClick),this.removeEventListener("tab-cross-click",this.handleTabCrossClick),this.removeEventListener("tab-close-click",this.handleTabCloseClick),this.removeEventListener("keydown",this.handleTabKeydown),this.removeEventListener("clear-tab-order-prefs",this.clearTabOrderPrefs)}clearTabOrderPrefs(e){const{compUniqueId:t}=e.detail;t===this.compUniqueId&&(localStorage.removeItem(this.tabsId),sessionStorage.removeItem(this.tabsId),localStorage.removeItem(this.compUniqueId),this.tabsOrderPrefsArray=this.defaultTabsOrderArray,this.selected=0,this.initializeTabs(),this.dispatchSelectedChangedEvent(0))}setupPanelsAndTabs(){this.tabSlotElement&&(this.tabs=this.tabSlotElement.assignedElements()),this.panelSlotElement&&(this.panels=this.panelSlotElement.assignedElements()),this.defaultTabsOrderArray=this.tabs.map(e=>e.name)}setupMoreTab(){return f(this,void 0,void 0,(function*(){"vertical"!==this.direction&&this.moreTabMenuElement&&!this.isMoreTabMenuMeasured&&(this.moreTabMenuElement.classList.add("md-menu-overlay__more_tab--measuring"),yield this.moreTabMenuElement.updateComplete,this.moreTabMenuElement.offsetWidth&&(this.moreTabMenuOffsetWidth=this.moreTabMenuElement.offsetWidth,this.isMoreTabMenuMeasured=!0),this.moreTabMenuElement.classList.remove("md-menu-overlay__more_tab--measuring"))}))}initializeSortable(){this.visibleTabsContainerElement&&this.hiddenTabsContainerElement&&(this.visibleTabsSortableInstance=u.a.create(this.visibleTabsContainerElement,this.generateOptions()),this.hiddenTabsSortableInstance=u.a.create(this.hiddenTabsContainerElement,this.generateOptions()))}initializeTabs(){this.tabs=[],this.panels=[],this.tabsFilteredAsVisibleList=[],this.tabsFilteredAsHiddenList=[],this.isMoreTabMenuVisible=!1,this.setupPanelsAndTabs(),this.linkPanelsAndTabs(),this.draggable&&this.initializeSortable(),this.manageOverflow(),this.requestUpdate()}connectedCallback(){var e;if(super.connectedCallback(),this.setupTabsEvents(),this.persistSelection){if(!this.tabsId||""===this.tabsId.trim())return void console.error("Unique tabs-id attribute is mandatory for persist the selection of tab ");const e=localStorage.getItem(this.tabsId);this.selected=e&&parseInt(e)>-1?parseInt(e):this.selected}this.compUniqueId&&(this.tabsOrderPrefsArray=(null===(e=localStorage.getItem(this.compUniqueId))||void 0===e?void 0:e.split(","))||[])}selectTabFromStorage(){if(this.persistSelection){if(!this.tabsId||""===this.tabsId.trim())return void console.error("Unique tabs-id attribute is mandatory for persist the selection of tab ");const e=sessionStorage.getItem(this.tabsId);let t=0;if(e){const i=parseInt(e);t=i>-1?i:this.selected}const i=[...this.tabsFilteredAsVisibleList,...this.tabsFilteredAsHiddenList];i.length&&i[t].id?this.handleNewSelectedTab(i[t].id):this.selected=t}}disconnectedCallback(){super.disconnectedCallback(),this.teardownTabsEvents()}firstUpdated(e){super.firstUpdated(e),this.setupPanelsAndTabs(),this.linkPanelsAndTabs(),this.selectTabFromStorage()}updated(e){var t;if(super.updated(e),e.has("slotted")&&this.initializeTabs(),!this.draggable||this.visibleTabsSortableInstance||this.hiddenTabsSortableInstance||this.initializeSortable(),e.has("tabsFilteredAsHiddenList")&&(this.tabsCopy=Array.from((null===(t=this.tabsCopyHiddenListElements)||void 0===t?void 0:t.values())||[]),this.tabsCopyHash=this.tabsCopy.reduce((e,t)=>(e[t.id]=t,e),{})),(e.has("tabsFilteredAsVisibleList")||e.has("tabsFilteredAsHiddenList"))&&(this.tabsVisibleIdxHash=this.tabsFilteredAsVisibleList.reduce((e,t,i)=>(e[t.id]=i,e),{}),this.tabsHiddenIdxHash=this.tabsFilteredAsHiddenList.reduce((e,t,i)=>(e[t.id]=i,e),{})),e.has("isMoreTabMenuOpen")&&this.isMoreTabMenuVisible){const t=e.get("isMoreTabMenuOpen");this.isMoreTabMenuOpen&&!t&&(this.moreItemsScrollLimit<this.tabsCopy.length?(this.isMoreTabMenuScrollable=!0,this.moreTabMenuMaxHeight=this.measureHiddenTabsCopiesOffsetHeight().slice(0,this.moreItemsScrollLimit).reduce((e,t)=>e+=t,0)+"px"):(this.isMoreTabMenuScrollable=!1,this.moreTabMenuMaxHeight=null))}e.has("tabsId")&&this.selectTabFromStorage(),e.has("selectedIndex")&&this.updateSelectedTab(this.selectedIndex)}render(){return l.html`
|
|
1
|
+
(window["momentum-web-components-[id]"]=window["momentum-web-components-[id]"]||[]).push([[88],{107:function(e,t,i){"use strict";i.r(t),i.d(t,"MORE_MENU_TAB_COPY_ID_PREFIX",(function(){return y})),i.d(t,"Tabs",(function(){return g}));i(14),i(36),i(40);var s=i(1),a=i(7),n=i(6),l=i(0),o=i(4),d=i(13),r=i(8),b=i(73),h=i(27),c=i(38),u=i.n(c),p=i(67),m=i(43),v=i(48),T=function(e,t,i,s){var a,n=arguments.length,l=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,i,s);else for(var o=e.length-1;o>=0;o--)(a=e[o])&&(l=(n<3?a(l):n>3?a(t,i,l):a(t,i))||l);return n>3&&l&&Object.defineProperty(t,i,l),l},f=function(e,t,i,s){return new(i||(i=Promise))((function(a,n){function l(e){try{d(s.next(e))}catch(e){n(e)}}function o(e){try{d(s.throw(e))}catch(e){n(e)}}function d(e){var t;e.done?a(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(l,o)}d((s=s.apply(e,t||[])).next())}))};const y="more-menu-copy-";var g;!function(e){let t=class extends(Object(a.c)(Object(a.d)(Object(a.e)(l.LitElement)))){constructor(){super(...arguments),this.justified=!1,this.hugTabs=!1,this.overflowLabel="More Tabs",this.draggable=!1,this.direction="horizontal",this.moreItemsScrollLimit=Number.MAX_SAFE_INTEGER,this.selectedIndex=0,this.delay=0,this.animation=100,this.ghostClass="",this.chosenClass="",this.forceFallback=!1,this.fallbackClass="",this.tabsId="",this.persistSelection=!1,this.compUniqueId="",this.type="line",this.newMomentum=!1,this.variant="ghost",this.isMoreTabMenuVisible=!1,this.isMoreTabMenuMeasured=!1,this.isMoreTabMenuOpen=!1,this.isMoreTabMenuSelected=!1,this.isMoreTabMenuScrollable=!1,this.moreTabMenuOffsetWidth=0,this.moreTabMenuMaxHeight=null,this.tabsViewportDataList=[],this.tabsFilteredAsVisibleList=[],this.tabsFilteredAsHiddenList=[],this.noTabsVisible=!1,this.defaultTabsOrderArray=[],this.tabsOrderPrefsArray=[],this.isMoreTabTruncated=!1,this.tabs=[],this.panels=[],this.tabsCopy=[],this.tabsHash={},this.tabsCopyHash={},this.tabsIdxHash={},this.tabsVisibleIdxHash={},this.tabsHiddenIdxHash={},this.visibleTabsSortableInstance=null,this.hiddenTabsSortableInstance=null,this.handleOnDragEnd=e=>f(this,void 0,void 0,(function*(){var t,i,s,a,n,l,o,d,r,b;e.stopPropagation();const h=e.oldIndex,c=e.newIndex,u=[...this.tabsFilteredAsVisibleList],p=[...this.tabsFilteredAsHiddenList],m=this.getDragDirection(e);if(void 0!==h&&void 0!==c){switch(m){case"visibleToHidden":{null===(i=null===(t=this.hiddenTabsContainerElement)||void 0===t?void 0:t.querySelector("#"+e.item.id))||void 0===i||i.remove();const s=u[h],a=p.slice(-1)[0],n=c===this.tabsFilteredAsHiddenList.length?c-1:c;p.splice(n,0,s),p.pop();const l=u.filter(t=>t.id!==this.getNormalizedTabId(e.item.id));l.push(a),this.tabsFilteredAsVisibleList=[...l],this.tabsFilteredAsHiddenList=[...p];break}case"visibleToVisible":{const e=u[h];u.splice(h,1),u.splice(c,0,e),this.tabsFilteredAsVisibleList=u,c===this.tabsFilteredAsVisibleList.length-1&&(null===(a=null===(s=this.visibleTabsContainerElement)||void 0===s?void 0:s.children[this.visibleTabsContainerElement.children.length-1])||void 0===a||a.remove());const t=this.visibleTabsContainerElement.children[h],i=this.visibleTabsContainerElement.children[c];if(!t||!i)return;null===(n=this.visibleTabsContainerElement)||void 0===n||n.replaceChild(i,t),null===(l=this.visibleTabsContainerElement)||void 0===l||l.insertBefore(t,i);break}case"hiddenToVisible":{null===(d=null===(o=this.visibleTabsContainerElement)||void 0===o?void 0:o.querySelector("#"+e.item.id))||void 0===d||d.remove();const t=p[h],i=u.slice(-1)[0];p.splice(h,1),p.splice(0,0,i);const s=c===this.tabsFilteredAsVisibleList.length?c-1:c;u.splice(s,0,t),u.pop(),this.tabsFilteredAsVisibleList=u,this.tabsFilteredAsHiddenList=p;break}case"hiddenToHidden":{const e=p[h];p.splice(h,1),p.splice(c,0,e),this.tabsFilteredAsHiddenList=p,c===this.tabsFilteredAsHiddenList.length-1&&(null===(b=null===(r=this.hiddenTabsContainerElement)||void 0===r?void 0:r.children[this.hiddenTabsContainerElement.children.length-1])||void 0===b||b.remove());break}}if(this.compUniqueId){const e=[...this.tabsFilteredAsVisibleList,...this.tabsFilteredAsHiddenList],t=e.findIndex(e=>e.selected);this.storeSelectedTabIndex(t),this.tabsOrderPrefsArray=e.map(e=>e.name),localStorage.setItem(this.compUniqueId,this.tabsOrderPrefsArray.join(","))}}}))}generateOptions(){return{group:"shared",animation:10,swapThreshold:1,draggable:"md-tab",direction:this.direction,forceFallback:this.forceFallback,fallbackClass:this.fallbackClass,ghostClass:this.ghostClass,chosenClass:this.chosenClass,onEnd:this.handleOnDragEnd}}getCopyTabId(e){var t;return(null===(t=e.id)||void 0===t?void 0:t.startsWith(y))?`${y}${e.id}`:e.id}getAriaControlId(e){var t,i;if(null===(t=e.id)||void 0===t?void 0:t.startsWith(y))return`${y}${e.id}`;return"tab_panel_"+(null===(i=e.id)||void 0===i?void 0:i.substring(4))}getTabIndex(e){var t,i;return this.isMoreTabMenuVisible&&0===this.getCurrentIndex(null==e?void 0:e.id)&&this.selected>(null===(t=this.tabsFilteredAsVisibleList)||void 0===t?void 0:t.length)-1||(null===(i=this.tabsFilteredAsVisibleList[this.selected])||void 0===i?void 0:i.id)===e.id?0:-1}getNormalizedTabId(e){return e.replace(y,"")}static get styles(){return[n.a,m.a]}ensureTabsUpdateComplete(e){return f(this,void 0,void 0,(function*(){const t=e.map(e=>void 0!==e.updateComplete?e.updateComplete:null).filter(e=>null!==e);t.length&&(yield Promise.all(t))}))}measureTabsOffsetWidth(){return this.justified||"vertical"===this.direction?this.tabs.map(e=>{e.setAttribute("measuringrealwidth","");const t=e.closable?e.offsetWidth+v.TAB_CROSS_WIDTH:e.offsetWidth;return e.removeAttribute("measuringrealwidth"),t}):this.tabs.map(e=>e.closable?e.offsetWidth+v.TAB_CROSS_WIDTH:e.offsetWidth)}updateIsMoreTabTruncated(){var e;const t=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector(".md-menu-overlay__overflow-label");if(t){const e=t.scrollWidth>t.clientWidth;this.isMoreTabTruncated!=e&&(this.isMoreTabTruncated=e)}}measureHiddenTabsCopiesOffsetHeight(){return this.tabsCopy.map(e=>e.offsetHeight)}manageOverflow(){var e,t;return f(this,void 0,void 0,(function*(){if("vertical"!==this.direction){let i;i=0===this.tabsFilteredAsVisibleList.length&&0===this.tabsFilteredAsHiddenList.length?[...this.tabs]:[...this.tabsFilteredAsVisibleList,...this.tabsFilteredAsHiddenList],i.forEach(e=>{var t,i,s,a,n;if((null===(t=e.children)||void 0===t?void 0:t.length)&&0===(null===(s=null===(i=e.children[0])||void 0===i?void 0:i.children)||void 0===s?void 0:s.length)){const t=null===(a=null==e?void 0:e.querySelector("slot"))||void 0===a?void 0:a.assignedNodes({flatten:!0})[0].cloneNode(!0);t&&(t.classList.add("tab-content"),null===(n=null==e?void 0:e.children[0])||void 0===n||n.appendChild(t))}});const s=i.length;if(this.tabsListElement&&s){const a=(null===(e=this.tabsSettingsElement)||void 0===e?void 0:e.offsetWidth)?this.tabsListElement.offsetWidth-(null===(t=this.tabsSettingsElement)||void 0===t?void 0:t.offsetWidth):this.tabsListElement.offsetWidth;yield this.ensureTabsUpdateComplete(this.tabs);const n=this.measureTabsOffsetWidth(),l=i.reduce((e,t,i)=>e+=n[i],0);if(l){yield this.setupMoreTab();let e=!0;a<l&&(e=!1);const t=[];let o=0;i.forEach((i,l)=>{o+=n[l];const d=!e&&o+(l<s-1?this.moreTabMenuOffsetWidth:0)>a;t.push({isTabInViewportHidden:d,tabOffsetWidth:n[l]})}),this.tabsViewportDataList=t,this.tabsViewportDataList.forEach((e,t)=>this.tabs[t].viewportHidden=e.isTabInViewportHidden),this.isMoreTabMenuVisible=!!this.tabsViewportDataList.find(e=>e.isTabInViewportHidden),this.tabsFilteredAsVisibleList=i.filter((e,t)=>!this.tabsViewportDataList[t].isTabInViewportHidden),this.tabsVisibleIdxHash=this.tabsFilteredAsVisibleList.reduce((e,t,i)=>(e[t.id]=i,e),{}),this.tabsFilteredAsHiddenList=i.filter((e,t)=>this.tabsViewportDataList[t].isTabInViewportHidden),this.tabsHiddenIdxHash=this.tabsFilteredAsHiddenList.reduce((e,t,i)=>(e[t.id]=i,e),{})}}this.updateIsMoreTabMenuSelected();const a=this.tabsFilteredAsHiddenList.find(e=>!e.disabled);this.updateHiddenIdPositiveTabIndex(a)}}))}updateIsMoreTabMenuSelected(){this.isMoreTabMenuSelected=!!this.tabsFilteredAsHiddenList.find(e=>e.selected)}updateHiddenIdPositiveTabIndex(e){this.tabHiddenIdPositiveTabIndex=e?e.id:void 0}sortTabsAndPanes(){if(!this.tabsOrderPrefsArray.length)return;const e=(e,t)=>{var i,s;const a=null!==(i=e.getAttribute("name"))&&void 0!==i?i:"",n=null!==(s=t.getAttribute("name"))&&void 0!==s?s:"";return this.tabsOrderPrefsArray.indexOf(a)-this.tabsOrderPrefsArray.indexOf(n)};this.tabs.sort(e),this.panels.sort(e)}linkPanelsAndTabs(){return f(this,void 0,void 0,(function*(){this.sortTabsAndPanes();const{tabs:e,panels:t}=this;if(0===e.length||0===t.length)return void console.warn("The tabs or panels count should't be equal zero.");e.length!==t.length&&console.warn(`The amount of tabs (${e.length}) doesn't match the amount of panels (${t.length}).`),e.forEach((e,i)=>{const s=Object(h.nanoid)(10),a="tab_"+s,n="tab_panel_"+s;e.setAttribute("id",a),e.setAttribute("aria-controls",n),e.selected=this.selected===i,"vertical"===this.direction&&(e.vertical=!0);const l=t[i];l?(l.setAttribute("id",n),l.setAttribute("aria-labelledby",a),l.selected=this.selected===i,e.disabled&&(l.hidden=!0,l.selected=!1)):e.disabled=!0});let i=this.selected;for(;i<e.length&&e[i].disabled;)i++;i=i===e.length?0:i,e[i].selected=!0,t[i].selected=!0,this.tabsHash=this.tabs.reduce((e,t)=>(e[t.id]=t,e),{}),this.tabsIdxHash=this.tabs.reduce((e,t,i)=>(e[t.id]=i,e),{})}))}get slotItem(){return this.tabSlotElement}filterSlotted(){return this.tabSlotElement.assignedElements()}handleResize(e){const t=Object.create(null,{handleResize:{get:()=>super.handleResize}});return f(this,void 0,void 0,(function*(){t.handleResize&&t.handleResize.call(this,e),yield this.manageOverflow(),this.updateIsMoreTabTruncated()}))}getDragDirection(e){return e.from===this.visibleTabsContainerElement&&e.to===this.hiddenTabsContainerElement?"visibleToHidden":e.from===this.visibleTabsContainerElement&&e.to===this.visibleTabsContainerElement?"visibleToVisible":e.from===this.hiddenTabsContainerElement&&e.to===this.visibleTabsContainerElement?"hiddenToVisible":e.from===this.hiddenTabsContainerElement&&e.to===this.hiddenTabsContainerElement?"hiddenToHidden":void 0}makeTabCopyFocus(e){e&&e.focus()}handleTabClick(e){const{id:t}=e.detail;this.handleNewSelectedTab(t)}handleNewSelectedTab(e){const t=this.tabsHash[this.getNormalizedTabId(e)];if(t&&!t.disabled){const e=this.tabsIdxHash[t.id];-1!==e&&this.updateSelectedTab(e);{const e=this.tabsCopyHash[this.getCopyTabId(t)];e&&this.makeTabCopyFocus(e),this.updateHiddenIdPositiveTabIndex(t)}}}handleTabCrossClick(e){const{id:t}=e.detail;this.handleTabCloseEvent(t)}handleTabCloseClick(e){const{id:t}=e.detail;this.handleTabCloseEvent(t)}handleTabCloseEvent(e){var t,i;const s=this.tabsHash[this.getNormalizedTabId(e)];if(s&&!s.disabled&&("auto"===s.closable||"custom"===s.closable)){const s=this.tabsFilteredAsVisibleList.findIndex(t=>this.getNormalizedTabId(t.id)===this.getNormalizedTabId(e));this.tabsFilteredAsVisibleList=this.tabsFilteredAsVisibleList.filter(t=>this.getNormalizedTabId(t.id)!==this.getNormalizedTabId(e)),null===(i=null===(t=this.visibleTabsContainerElement)||void 0===t?void 0:t.querySelector("#"+e))||void 0===i||i.remove(),0!==this.tabsFilteredAsHiddenList.length&&(this.tabsFilteredAsVisibleList.push(this.tabsFilteredAsHiddenList[0]),this.tabsFilteredAsHiddenList.splice(0,1)),0===this.tabsFilteredAsHiddenList.length&&(this.isMoreTabMenuVisible=!1,this.isMoreTabMenuMeasured=!1),this.handleUpdatedSeletedTabAfterCross(s)}}handleUpdatedSeletedTabAfterCross(e){var t;let i=e;for(;i<this.tabsFilteredAsVisibleList.length&&(null===(t=this.tabsFilteredAsVisibleList[i])||void 0===t?void 0:t.disabled);)i++;if(void 0===this.tabsFilteredAsVisibleList[i]||e===this.tabsFilteredAsVisibleList.length)for(i=e-1;i>=0&&this.tabsFilteredAsVisibleList[i].disabled;)i--;if(-1!==i){const e=this.tabs.findIndex(e=>e.id===this.tabsFilteredAsVisibleList[i].id);this.updateSelectedTab(e)}else this.updateSelectedTab(i);this.noTabsVisible=0===this.tabsFilteredAsVisibleList.length&&0===this.tabsFilteredAsHiddenList.length,this.requestUpdate()}updateSelectedTab(e){const{tabs:t,panels:i}=this,s=this.tabs.findIndex(e=>e.hasAttribute("selected"));if(-1!==s&&(t&&i&&[s,e].forEach(e=>{const s=t[e];null==s||s.toggleAttribute("selected");const a=i[e];if(null==a||a.toggleAttribute("selected"),s){const e=this.tabsCopyHash[this.getCopyTabId(s)];e?(e.toggleAttribute("selected"),this.isMoreTabMenuSelected=!0):this.isMoreTabMenuSelected=!1}}),e>=0)){this.dispatchSelectedChangedEvent(e);const i=("horizontal"===this.direction?[...this.tabsFilteredAsVisibleList,...this.tabsFilteredAsHiddenList]:this.tabs).findIndex(i=>i.id===t[e].id);this.changeSelectedTabIdx(i)}}dispatchSelectedChangedEvent(e){const t="horizontal"===this.direction?[...this.tabsFilteredAsVisibleList,...this.tabsFilteredAsHiddenList]:this.tabs,i=this.tabs[e].id,s=t.findIndex(e=>e.id===i),a=[];t.forEach(e=>{a.push(e.name)}),this.dispatchEvent(new CustomEvent("selected-changed",{detail:{value:s,tabsOrder:a},composed:!0,bubbles:!0}))}changeSelectedTabIdx(e){this.requestUpdate(),this.selected=e,this.updateComplete.then(()=>{var t,i;if(e<this.tabsFilteredAsVisibleList.length){const e=null===(t=this.visibleTabsContainerElement)||void 0===t?void 0:t.children[this.selected];null==e||e.focus()}else{const e=this.selected-this.tabsFilteredAsVisibleList.length,t=null===(i=this.hiddenTabsContainerElement)||void 0===i?void 0:i.children[e];this.moveFocusToTab(t);const s=this.tabsFilteredAsHiddenList[e];!(null==s?void 0:s.disabled)&&this.updateHiddenIdPositiveTabIndex(s)}}),this.updateIsMoreTabMenuSelected(),this.storeSelectedTabIndex(e)}storeSelectedTabIndex(e){this.persistSelection&&this.tabsId&&e>-1&&""!==this.tabsId.trim()&&sessionStorage.setItem(this.tabsId,""+e)}getCurrentIndex(e){var t,i,s;const a=null!==(i=null===(t=this.visibleTabsContainerElement)||void 0===t?void 0:t.children.length)&&void 0!==i?i:0;for(let t=0;t<a;t++)if((null===(s=this.visibleTabsContainerElement)||void 0===s?void 0:s.children[t].id)===e)return t;return this.tabsVisibleIdxHash[e]}moveFocusToAdjacentTab(e,t){var i,s;const a=this.getCurrentIndex(e),n=null===(i=this.visibleTabsContainerElement)||void 0===i?void 0:i.children,l=null!==(s=null==n?void 0:n.length)&&void 0!==s?s:0;if(!n||0===l)return;let o=0;"previous"===t?o=0===a?l-1:a-1:"next"===t?o=a===l-1?0:a+1:"fromMoreTabs"===t&&(o=this.selected>=l?0:this.selected),this.moveFocusToTab(n[o])}moveFocusToTab(e){Object(p.setTimeout)(()=>null==e?void 0:e.focus(),0)}handleOverlayClose(){this.menuOverlayElement&&(this.menuOverlayElement.isOpen=!1)}dispatchKeydownEvent(e,t){t&&this.dispatchEvent(new CustomEvent("tab-keydown",{detail:{id:t,key:e.code,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,srcEvent:e},bubbles:!0,composed:!0}))}handleTabKeydown(e){var t,i,a,n,l,o;let d;if(e.target!=this&&!this.tabs.find(t=>t.id===e.target.id))return!1;d=e.path?e.path[0].id:e.composedPath()?e.composedPath()[0].id:e.originalTarget.id;const r=this.getNormalizedTabId(d);this.dispatchKeydownEvent(e,r);const b=e.code,{shiftKey:h}=e,c=!!this.isMoreTabMenuVisible&&"tab-more"===r,u=c&&this.isMoreTabMenuVisible?this.moreTabMenuElement:this.tabsHash[this.getNormalizedTabId(r)],p=!this.isMoreTabMenuVisible||u&&this.tabsVisibleIdxHash[u.id]>-1,m=!!this.isMoreTabMenuVisible&&(u&&this.tabsHiddenIdxHash[u.id]>-1),v=this.isMoreTabMenuVisible?this.tabsFilteredAsVisibleList.length-1:this.tabs.length-1,T=this.isMoreTabMenuVisible?this.tabsFilteredAsVisibleList.length:-1,f=this.isMoreTabMenuVisible?this.tabsFilteredAsVisibleList.length+this.tabsFilteredAsHiddenList.length-1:-1;switch(b){case s.b.Tab:c&&!this.isMoreTabMenuOpen&&h&&(e.preventDefault(),this.moveFocusToAdjacentTab(d,"fromMoreTabs"));break;case s.b.End:c||(p?(e.preventDefault(),this.moveFocusToTab(null===(t=this.visibleTabsContainerElement)||void 0===t?void 0:t.children[(null===(i=this.tabsFilteredAsVisibleList)||void 0===i?void 0:i.length)-1])):this.isMoreTabMenuOpen&&(e.preventDefault(),this.moveFocusToTab(null===(a=this.hiddenTabsContainerElement)||void 0===a?void 0:a.children[(null===(n=this.tabsFilteredAsHiddenList)||void 0===n?void 0:n.length)-1])));break;case s.b.Home:p?(e.preventDefault(),this.moveFocusToTab(null===(l=this.visibleTabsContainerElement)||void 0===l?void 0:l.children[0])):this.isMoreTabMenuOpen&&(e.preventDefault(),this.moveFocusToTab(null===(o=this.hiddenTabsContainerElement)||void 0===o?void 0:o.children[0]));break;case s.b.ArrowLeft:c||p&&(e.stopPropagation(),this.moveFocusToAdjacentTab(d,"previous"));break;case s.b.ArrowRight:c||p&&(e.stopPropagation(),this.moveFocusToAdjacentTab(d,"next"));break;case s.b.ArrowUp:if(c);else if(p&&"vertical"===this.direction)e.preventDefault(),this.changeSelectedTabIdx(0===this.selected?v:this.selected-1);else if(m){e.preventDefault();const t=this.selected===T?f:this.selected-1;this.changeSelectedTabIdx(t)}break;case s.b.ArrowDown:if(c);else if(p&&"vertical"===this.direction)e.preventDefault(),this.changeSelectedTabIdx(this.selected===v?0:this.selected+1);else if(m){e.preventDefault();const t=this.selected===f?T:this.selected+1;this.changeSelectedTabIdx(t)}break;case s.b.Enter:case s.b.NumpadEnter:case s.b.Space:if(c){const e=this.tabsFilteredAsHiddenList.filter(e=>!e.disabled),t=e.length?e.find(e=>e.selected)||e[0]:void 0;if(this.updateHiddenIdPositiveTabIndex(t),t){const e=this.tabsIdxHash[this.getNormalizedTabId(t.id)];-1!==e&&this.updateSelectedTab(e)}}else if(u&&!u.disabled){const t=this.tabsIdxHash[this.getNormalizedTabId(u.id)];-1!==t&&(e.preventDefault(),this.updateSelectedTab(t))}}}setupTabsEvents(){this.addEventListener("tab-click",this.handleTabClick),this.addEventListener("tab-cross-click",this.handleTabCrossClick),this.addEventListener("tab-close-click",this.handleTabCloseClick),this.addEventListener("keydown",this.handleTabKeydown),this.addEventListener("clear-tab-order-prefs",this.clearTabOrderPrefs)}teardownTabsEvents(){this.removeEventListener("tab-click",this.handleTabClick),this.removeEventListener("tab-cross-click",this.handleTabCrossClick),this.removeEventListener("tab-close-click",this.handleTabCloseClick),this.removeEventListener("keydown",this.handleTabKeydown),this.removeEventListener("clear-tab-order-prefs",this.clearTabOrderPrefs)}clearTabOrderPrefs(e){const{compUniqueId:t}=e.detail;t===this.compUniqueId&&(localStorage.removeItem(this.tabsId),sessionStorage.removeItem(this.tabsId),localStorage.removeItem(this.compUniqueId),this.tabsOrderPrefsArray=this.defaultTabsOrderArray,this.selected=0,this.initializeTabs(),this.dispatchSelectedChangedEvent(0))}setupPanelsAndTabs(){this.tabSlotElement&&(this.tabs=this.tabSlotElement.assignedElements()),this.panelSlotElement&&(this.panels=this.panelSlotElement.assignedElements()),this.defaultTabsOrderArray=this.tabs.map(e=>e.name)}setupMoreTab(){return f(this,void 0,void 0,(function*(){"vertical"!==this.direction&&this.moreTabMenuElement&&!this.isMoreTabMenuMeasured&&(this.moreTabMenuElement.classList.add("md-menu-overlay__more_tab--measuring"),yield this.moreTabMenuElement.updateComplete,this.moreTabMenuElement.offsetWidth&&(this.moreTabMenuOffsetWidth=this.moreTabMenuElement.offsetWidth,this.isMoreTabMenuMeasured=!0),this.moreTabMenuElement.classList.remove("md-menu-overlay__more_tab--measuring"))}))}initializeSortable(){this.visibleTabsContainerElement&&this.hiddenTabsContainerElement&&(this.visibleTabsSortableInstance=u.a.create(this.visibleTabsContainerElement,this.generateOptions()),this.hiddenTabsSortableInstance=u.a.create(this.hiddenTabsContainerElement,this.generateOptions()))}initializeTabs(){this.tabs=[],this.panels=[],this.tabsFilteredAsVisibleList=[],this.tabsFilteredAsHiddenList=[],this.isMoreTabMenuVisible=!1,this.setupPanelsAndTabs(),this.linkPanelsAndTabs(),this.draggable&&this.initializeSortable(),this.manageOverflow(),this.requestUpdate()}connectedCallback(){var e;if(super.connectedCallback(),this.setupTabsEvents(),this.persistSelection){if(!this.tabsId||""===this.tabsId.trim())return void console.error("Unique tabs-id attribute is mandatory for persist the selection of tab ");const e=localStorage.getItem(this.tabsId);this.selected=e&&parseInt(e)>-1?parseInt(e):this.selected}this.compUniqueId&&(this.tabsOrderPrefsArray=(null===(e=localStorage.getItem(this.compUniqueId))||void 0===e?void 0:e.split(","))||[])}selectTabFromStorage(){if(this.persistSelection){if(!this.tabsId||""===this.tabsId.trim())return void console.error("Unique tabs-id attribute is mandatory for persist the selection of tab ");const e=sessionStorage.getItem(this.tabsId);let t=0;if(e){const i=parseInt(e);t=i>-1?i:this.selected}const i=[...this.tabsFilteredAsVisibleList,...this.tabsFilteredAsHiddenList];i.length&&i[t].id?this.handleNewSelectedTab(i[t].id):this.selected=t}}disconnectedCallback(){super.disconnectedCallback(),this.teardownTabsEvents()}firstUpdated(e){super.firstUpdated(e),this.setupPanelsAndTabs(),this.linkPanelsAndTabs(),this.selectTabFromStorage()}updated(e){var t;if(super.updated(e),e.has("slotted")&&this.initializeTabs(),!this.draggable||this.visibleTabsSortableInstance||this.hiddenTabsSortableInstance||this.initializeSortable(),e.has("tabsFilteredAsHiddenList")&&(this.tabsCopy=Array.from((null===(t=this.tabsCopyHiddenListElements)||void 0===t?void 0:t.values())||[]),this.tabsCopyHash=this.tabsCopy.reduce((e,t)=>(e[t.id]=t,e),{})),(e.has("tabsFilteredAsVisibleList")||e.has("tabsFilteredAsHiddenList"))&&(this.tabsVisibleIdxHash=this.tabsFilteredAsVisibleList.reduce((e,t,i)=>(e[t.id]=i,e),{}),this.tabsHiddenIdxHash=this.tabsFilteredAsHiddenList.reduce((e,t,i)=>(e[t.id]=i,e),{})),e.has("isMoreTabMenuOpen")&&this.isMoreTabMenuVisible){const t=e.get("isMoreTabMenuOpen");this.isMoreTabMenuOpen&&!t&&(this.moreItemsScrollLimit<this.tabsCopy.length?(this.isMoreTabMenuScrollable=!0,this.moreTabMenuMaxHeight=this.measureHiddenTabsCopiesOffsetHeight().slice(0,this.moreItemsScrollLimit).reduce((e,t)=>e+=t,0)+"px"):(this.isMoreTabMenuScrollable=!1,this.moreTabMenuMaxHeight=null))}e.has("tabsId")&&this.selectTabFromStorage(),e.has("selectedIndex")&&this.updateSelectedTab(this.selectedIndex),e.has("overflowLabel")&&this.updateIsMoreTabTruncated()}render(){return l.html`
|
|
2
2
|
<div
|
|
3
3
|
part="tabs-list"
|
|
4
4
|
class="md-tab__list ${Object(o.classMap)({"md-tab__justified":this.justified&&!this.isMoreTabMenuVisible,"md-tab__hug":this.hugTabs,"no-tabs-visible":this.noTabsVisible,"vertical-tab-list":"vertical"===this.direction,"tab-new-momentum":this.newMomentum})}"
|
|
@@ -53,7 +53,9 @@
|
|
|
53
53
|
.newMomentum=${this.newMomentum}
|
|
54
54
|
type=${this.type}
|
|
55
55
|
>
|
|
56
|
-
<
|
|
56
|
+
<md-tooltip placement="top" message=${this.overflowLabel} ?disabled=${!this.isMoreTabTruncated}>
|
|
57
|
+
<span class="md-menu-overlay__overflow-label">${this.overflowLabel}</span>
|
|
58
|
+
</md-tooltip>
|
|
57
59
|
<md-icon
|
|
58
60
|
name="${this.isMoreTabMenuOpen?"arrow-up-bold":"arrow-down-bold"}"
|
|
59
61
|
iconSet="momentumDesign"
|
|
@@ -98,4 +100,4 @@
|
|
|
98
100
|
>
|
|
99
101
|
<slot name="panel"></slot>
|
|
100
102
|
</div>
|
|
101
|
-
`}};T([Object(l.property)({type:Boolean})],t.prototype,"justified",void 0),T([Object(l.property)({type:Boolean,attribute:"hug-tabs"})],t.prototype,"hugTabs",void 0),T([Object(l.property)({type:String})],t.prototype,"overflowLabel",void 0),T([Object(l.property)({type:Boolean,attribute:"draggable"})],t.prototype,"draggable",void 0),T([Object(l.property)({type:String})],t.prototype,"direction",void 0),T([Object(l.property)({type:Number,attribute:"more-items-scroll-limit"})],t.prototype,"moreItemsScrollLimit",void 0),T([Object(l.property)({type:Number,reflect:!0,attribute:"selected-index"})],t.prototype,"selectedIndex",void 0),T([Object(l.property)({type:Number})],t.prototype,"delay",void 0),T([Object(l.property)({type:Number})],t.prototype,"animation",void 0),T([Object(l.property)({type:String,attribute:"ghost-class"})],t.prototype,"ghostClass",void 0),T([Object(l.property)({type:String,attribute:"chosen-class"})],t.prototype,"chosenClass",void 0),T([Object(l.property)({type:Boolean,attribute:"force-fallback"})],t.prototype,"forceFallback",void 0),T([Object(l.property)({type:String,attribute:"fallback-class"})],t.prototype,"fallbackClass",void 0),T([Object(l.property)({type:String,attribute:"tabs-id"})],t.prototype,"tabsId",void 0),T([Object(l.property)({type:Boolean,attribute:"persist-selection"})],t.prototype,"persistSelection",void 0),T([Object(l.property)({type:String,attribute:"comp-unique-id"})],t.prototype,"compUniqueId",void 0),T([Object(l.property)({type:String})],t.prototype,"type",void 0),T([Object(l.property)({type:Boolean})],t.prototype,"newMomentum",void 0),T([Object(l.property)({type:String})],t.prototype,"variant",void 0),T([Object(l.internalProperty)()],t.prototype,"isMoreTabMenuVisible",void 0),T([Object(l.internalProperty)()],t.prototype,"isMoreTabMenuMeasured",void 0),T([Object(l.internalProperty)()],t.prototype,"isMoreTabMenuOpen",void 0),T([Object(l.internalProperty)()],t.prototype,"isMoreTabMenuSelected",void 0),T([Object(l.internalProperty)()],t.prototype,"isMoreTabMenuScrollable",void 0),T([Object(l.internalProperty)()],t.prototype,"moreTabMenuOffsetWidth",void 0),T([Object(l.internalProperty)()],t.prototype,"moreTabMenuMaxHeight",void 0),T([Object(l.internalProperty)()],t.prototype,"tabsViewportDataList",void 0),T([Object(l.internalProperty)()],t.prototype,"tabsFilteredAsVisibleList",void 0),T([Object(l.internalProperty)()],t.prototype,"tabsFilteredAsHiddenList",void 0),T([Object(l.internalProperty)()],t.prototype,"noTabsVisible",void 0),T([Object(l.internalProperty)()],t.prototype,"defaultTabsOrderArray",void 0),T([Object(l.internalProperty)()],t.prototype,"tabsOrderPrefsArray",void 0),T([Object(l.query)("slot[name='tab']")],t.prototype,"tabSlotElement",void 0),T([Object(l.query)("slot[name='panel']")],t.prototype,"panelSlotElement",void 0),T([Object(l.query)(".md-tab__list[part='tabs-list']")],t.prototype,"tabsListElement",void 0),T([Object(l.query)(".md-tabs__settings[part='md-tabs__settings']")],t.prototype,"tabsSettingsElement",void 0),T([Object(l.query)(".md-menu-overlay__more_tab")],t.prototype,"moreTabMenuElement",void 0),T([Object(l.query)("md-menu-overlay")],t.prototype,"menuOverlayElement",void 0),T([Object(l.query)(".md-tab__list[part='tabs-more-list']")],t.prototype,"tabsMoreListElement",void 0),T([Object(l.queryAll)(".md-menu-overlay__more_list md-tab")],t.prototype,"tabsCopyHiddenListElements",void 0),T([Object(l.query)("#visible-tabs-list")],t.prototype,"visibleTabsContainerElement",void 0),T([Object(l.query)("#tabs-more-list")],t.prototype,"hiddenTabsContainerElement",void 0),t=T([Object(a.f)("md-tabs")],t),e.ELEMENT=t}(g||(g={}))}}]);
|
|
103
|
+
`}};T([Object(l.property)({type:Boolean})],t.prototype,"justified",void 0),T([Object(l.property)({type:Boolean,attribute:"hug-tabs"})],t.prototype,"hugTabs",void 0),T([Object(l.property)({type:String})],t.prototype,"overflowLabel",void 0),T([Object(l.property)({type:Boolean,attribute:"draggable"})],t.prototype,"draggable",void 0),T([Object(l.property)({type:String})],t.prototype,"direction",void 0),T([Object(l.property)({type:Number,attribute:"more-items-scroll-limit"})],t.prototype,"moreItemsScrollLimit",void 0),T([Object(l.property)({type:Number,reflect:!0,attribute:"selected-index"})],t.prototype,"selectedIndex",void 0),T([Object(l.property)({type:Number})],t.prototype,"delay",void 0),T([Object(l.property)({type:Number})],t.prototype,"animation",void 0),T([Object(l.property)({type:String,attribute:"ghost-class"})],t.prototype,"ghostClass",void 0),T([Object(l.property)({type:String,attribute:"chosen-class"})],t.prototype,"chosenClass",void 0),T([Object(l.property)({type:Boolean,attribute:"force-fallback"})],t.prototype,"forceFallback",void 0),T([Object(l.property)({type:String,attribute:"fallback-class"})],t.prototype,"fallbackClass",void 0),T([Object(l.property)({type:String,attribute:"tabs-id"})],t.prototype,"tabsId",void 0),T([Object(l.property)({type:Boolean,attribute:"persist-selection"})],t.prototype,"persistSelection",void 0),T([Object(l.property)({type:String,attribute:"comp-unique-id"})],t.prototype,"compUniqueId",void 0),T([Object(l.property)({type:String})],t.prototype,"type",void 0),T([Object(l.property)({type:Boolean})],t.prototype,"newMomentum",void 0),T([Object(l.property)({type:String})],t.prototype,"variant",void 0),T([Object(l.internalProperty)()],t.prototype,"isMoreTabMenuVisible",void 0),T([Object(l.internalProperty)()],t.prototype,"isMoreTabMenuMeasured",void 0),T([Object(l.internalProperty)()],t.prototype,"isMoreTabMenuOpen",void 0),T([Object(l.internalProperty)()],t.prototype,"isMoreTabMenuSelected",void 0),T([Object(l.internalProperty)()],t.prototype,"isMoreTabMenuScrollable",void 0),T([Object(l.internalProperty)()],t.prototype,"moreTabMenuOffsetWidth",void 0),T([Object(l.internalProperty)()],t.prototype,"moreTabMenuMaxHeight",void 0),T([Object(l.internalProperty)()],t.prototype,"tabsViewportDataList",void 0),T([Object(l.internalProperty)()],t.prototype,"tabsFilteredAsVisibleList",void 0),T([Object(l.internalProperty)()],t.prototype,"tabsFilteredAsHiddenList",void 0),T([Object(l.internalProperty)()],t.prototype,"noTabsVisible",void 0),T([Object(l.internalProperty)()],t.prototype,"defaultTabsOrderArray",void 0),T([Object(l.internalProperty)()],t.prototype,"tabsOrderPrefsArray",void 0),T([Object(l.internalProperty)()],t.prototype,"isMoreTabTruncated",void 0),T([Object(l.query)("slot[name='tab']")],t.prototype,"tabSlotElement",void 0),T([Object(l.query)("slot[name='panel']")],t.prototype,"panelSlotElement",void 0),T([Object(l.query)(".md-tab__list[part='tabs-list']")],t.prototype,"tabsListElement",void 0),T([Object(l.query)(".md-tabs__settings[part='md-tabs__settings']")],t.prototype,"tabsSettingsElement",void 0),T([Object(l.query)(".md-menu-overlay__more_tab")],t.prototype,"moreTabMenuElement",void 0),T([Object(l.query)("md-menu-overlay")],t.prototype,"menuOverlayElement",void 0),T([Object(l.query)(".md-tab__list[part='tabs-more-list']")],t.prototype,"tabsMoreListElement",void 0),T([Object(l.queryAll)(".md-menu-overlay__more_list md-tab")],t.prototype,"tabsCopyHiddenListElements",void 0),T([Object(l.query)("#visible-tabs-list")],t.prototype,"visibleTabsContainerElement",void 0),T([Object(l.query)("#tabs-more-list")],t.prototype,"hiddenTabsContainerElement",void 0),t=T([Object(a.f)("md-tabs")],t),e.ELEMENT=t}(g||(g={}))}}]);
|