@momentum-ui/web-components 2.14.19 → 2.14.21

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.
@@ -6,7 +6,7 @@
6
6
  ${this.renderOverflowY()};
7
7
  }
8
8
  </style>
9
- `}connectedCallback(){super.connectedCallback(),this.handleWindowBlurEvent=this.handleWindowBlurEvent.bind(this),window.addEventListener("blur",this.handleWindowBlurEvent),document.addEventListener("click",this.handleOutsideOverlayClick),document.addEventListener("keydown",this.handleOutsideOverlayKeydown),this.addEventListener("menu-overlay-open",this.updateActiveMenuOverlayOpened),this.addEventListener("menu-overlay-close",this.updateActiveMenuOverlayClosed)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("click",this.handleOutsideOverlayClick),document.removeEventListener("keydown",this.handleOutsideOverlayKeydown),window.removeEventListener("blur",this.handleWindowBlurEvent),this.removeEventListener("menu-overlay-open",this.updateActiveMenuOverlayOpened),this.removeEventListener("menu-overlay-close",this.updateActiveMenuOverlayClosed),this.triggerElement&&(this.triggerElement.removeEventListener("click",this.handleTriggerClick),this.triggerElement.removeEventListener("keydown",this.handleTriggerKeyDown),this.allowHoverToggle&&(this.triggerElement.removeEventListener("mouseenter",this.expandPopup),this.triggerElement.removeEventListener("mouseleave",this.collapsePopup),this.overlayContainer.removeEventListener("mouseenter",this.expandPopup),this.overlayContainer.removeEventListener("mouseleave",this.collapsePopup)),this.triggerElement=null)}checkIsInputField(e){return!(!e||!e.tagName||"md-input"!==e.tagName.toLowerCase())}firstUpdated(e){const t=Object.create(null,{firstUpdated:{get:()=>super.firstUpdated}});return w(this,void 0,void 0,(function*(){t.firstUpdated.call(this,e),yield new Promise(e=>setTimeout(e,0)),this.trigger&&(this.triggerElement=this.trigger[0],this.triggerElement.addEventListener("click",this.handleTriggerClick),this.allowHoverToggle&&(this.triggerElement.addEventListener("mouseenter",this.expandPopup),this.triggerElement.addEventListener("mouseleave",this.collapsePopup),this.overlayContainer.addEventListener("mouseenter",this.expandPopup),this.overlayContainer.addEventListener("mouseleave",this.collapsePopup)),this.checkIsInputField(this.triggerElement)||this.triggerElement.addEventListener("keydown",this.handleTriggerKeyDown),this.triggerElement.setAttribute("aria-haspopup","true")),this.overlayContainer&&this.isOpen&&(this.handleInstance(!0),this.overlayContainer.toggleAttribute("data-show",!0)),this.arrow&&this.showArrow&&this.arrow.toggleAttribute("data-show",!0)}))}update(e){super.update(e),e.has("isOpen")&&(this.isOpen?(this.activateFocusTrap(),document.addEventListener("menu-item-click",this.handleTriggerClick)):(this.deactivateFocusTrap(),document.removeEventListener("menu-item-click",this.handleTriggerClick)))}updated(e){super.updated(e),e.has("isOpen")&&(this.isOpen?(this.dispatchMenuOpen(),this.triggerElement&&(this.triggerElement.setAttribute("aria-expanded","true"),this.triggerElement.hasAttribute("ariaexpanded")&&this.triggerElement.setAttribute("ariaexpanded","true"))):(this.dispatchMenuClose(),this.triggerElement&&(this.triggerElement.removeAttribute("aria-expanded"),this.triggerElement.hasAttribute("ariaexpanded")&&this.triggerElement.setAttribute("ariaexpanded","false"))))}dispatchMenuOpen(){this.dispatchEvent(new CustomEvent("menu-overlay-open",{composed:!0,bubbles:!0}))}dispatchMenuClose(){this.dispatchEvent(new CustomEvent("menu-overlay-close",{composed:!0,bubbles:!0}))}handleInstance(e){e?this.create():this.destroy()}create(){this.triggerElement&&(this.popperInstance=Object(g.createPopper)(this.triggerElement,this.overlayContainer,{onFirstUpdate:()=>w(this,void 0,void 0,(function*(){var e;this.isOpen&&(null===(e=this.popperInstance)||void 0===e||e.update(),this.setFocusableElements(),yield this.updateComplete,this.focusInsideOverlay())})),placement:this.placement,modifiers:[...g.defaultModifiers,c.a,u.a,y.a,p.a,{name:"preventOverflow",options:{padding:16}},{name:"offset",options:{offset:({placement:e,reference:t})=>"left-end"===e||"right-end"===e?[t.height+t.y+3,14]:[0,this.overlayOffset]}},{name:"arrow",options:{element:this.arrow,padding:5}},{name:"computeStyles",options:{adaptive:!1}}]}))}destroy(){this.popperInstance&&(this.popperInstance.destroy(),this.popperInstance=null)}toggleOverlay(){this.disabled||(this.isOpen=!this.isOpen)}focusOnTrigger(){requestAnimationFrame(()=>{this.focusableElements&&this.focusableElements.length&&this.focusableElements[0].focus()})}focusInsideOverlay(){this.focusableElements&&(this.focusableElements.length>1?this.setInitialFocus(1):this.focusableElements.length&&this.setInitialFocus())}focusOnNestedTrigger(e){this.setFocusOnTrigger(e)}handleWindowBlurEvent(){this._isOpen&&(this.isOpen=!1)}static get styles(){return[E]}render(){return b.html`
9
+ `}connectedCallback(){super.connectedCallback(),this.handleWindowBlurEvent=this.handleWindowBlurEvent.bind(this),window.addEventListener("blur",this.handleWindowBlurEvent),document.addEventListener("click",this.handleOutsideOverlayClick),document.addEventListener("keydown",this.handleOutsideOverlayKeydown),this.addEventListener("menu-overlay-open",this.updateActiveMenuOverlayOpened),this.addEventListener("menu-overlay-close",this.updateActiveMenuOverlayClosed)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("click",this.handleOutsideOverlayClick),document.removeEventListener("keydown",this.handleOutsideOverlayKeydown),window.removeEventListener("blur",this.handleWindowBlurEvent),this.removeEventListener("menu-overlay-open",this.updateActiveMenuOverlayOpened),this.removeEventListener("menu-overlay-close",this.updateActiveMenuOverlayClosed),this.triggerElement&&(this.triggerElement.removeEventListener("click",this.handleTriggerClick),this.triggerElement.removeEventListener("keydown",this.handleTriggerKeyDown),this.allowHoverToggle&&(this.triggerElement.removeEventListener("mouseenter",this.expandPopup),this.triggerElement.removeEventListener("mouseleave",this.collapsePopup),this.overlayContainer.removeEventListener("mouseenter",this.expandPopup),this.overlayContainer.removeEventListener("mouseleave",this.collapsePopup)),this.triggerElement=null)}checkIsInputField(e){return!(!e||!e.tagName||"md-input"!==e.tagName.toLowerCase())}firstUpdated(e){const t=Object.create(null,{firstUpdated:{get:()=>super.firstUpdated}});return w(this,void 0,void 0,(function*(){t.firstUpdated.call(this,e),yield new Promise(e=>setTimeout(e,0)),this.trigger&&(this.triggerElement=this.trigger[0],this.triggerElement.addEventListener("click",this.handleTriggerClick),this.allowHoverToggle&&(this.triggerElement.addEventListener("mouseenter",this.expandPopup),this.triggerElement.addEventListener("mouseleave",this.collapsePopup),this.overlayContainer.addEventListener("mouseenter",this.expandPopup),this.overlayContainer.addEventListener("mouseleave",this.collapsePopup)),this.checkIsInputField(this.triggerElement)||this.triggerElement.addEventListener("keydown",this.handleTriggerKeyDown),this.triggerElement.setAttribute("aria-haspopup","true")),this.overlayContainer&&this.isOpen&&(this.handleInstance(!0),this.overlayContainer.toggleAttribute("data-show",!0)),this.arrow&&this.showArrow&&this.arrow.toggleAttribute("data-show",!0)}))}update(e){super.update(e),e.has("isOpen")&&(this.isOpen?(this.activateFocusTrap(),document.addEventListener("menu-item-click",this.handleTriggerClick)):(this.deactivateFocusTrap(),document.removeEventListener("menu-item-click",this.handleTriggerClick)))}updated(e){super.updated(e),e.has("isOpen")&&(this.isOpen?(this.dispatchMenuOpen(),this.triggerElement&&(this.triggerElement.setAttribute("aria-expanded","true"),this.triggerElement.hasAttribute("ariaexpanded")&&this.triggerElement.setAttribute("ariaexpanded","true"))):(this.dispatchMenuClose(),this.triggerElement&&(this.triggerElement.removeAttribute("aria-expanded"),this.triggerElement.hasAttribute("ariaexpanded")&&this.triggerElement.setAttribute("ariaexpanded","false"))))}dispatchMenuOpen(){this.dispatchEvent(new CustomEvent("menu-overlay-open",{composed:!0,bubbles:!0}))}dispatchMenuClose(){this.dispatchEvent(new CustomEvent("menu-overlay-close",{composed:!0,bubbles:!0}))}handleInstance(e){e?this.create():this.destroy()}create(){this.triggerElement&&(this.popperInstance=Object(g.createPopper)(this.triggerElement,this.overlayContainer,{onFirstUpdate:()=>w(this,void 0,void 0,(function*(){var e;this.isOpen&&(null===(e=this.popperInstance)||void 0===e||e.update(),this.setFocusableElements(),yield this.updateComplete,this.focusInsideOverlay())})),placement:this.placement,modifiers:[...g.defaultModifiers,c.a,u.a,y.a,p.a,{name:"preventOverflow",options:{padding:16}},{name:"offset",options:{offset:({placement:e,reference:t})=>"left-end"===e||"right-end"===e?[t.height+t.y+3,14]:[0,this.overlayOffset]}},{name:"arrow",options:{element:this.arrow,padding:5}},{name:"computeStyles",options:{adaptive:!1}}]}))}destroy(){this.popperInstance&&(this.popperInstance.destroy(),this.popperInstance=null)}toggleOverlay(){this.disabled||(this.isOpen=!this.isOpen)}focusOnTrigger(){requestAnimationFrame(()=>{this.focusableElements&&this.focusableElements.length&&this.focusableElements[0].focus()})}focusInsideOverlay(){this.focusableElements&&(this.focusableElements.length>1?this.setInitialFocus(1):this.focusableElements.length&&this.setInitialFocus())}focusOnNestedTrigger(e){var t;null===(t=this.setFocusOnTrigger)||void 0===t||t.call(this,e)}handleWindowBlurEvent(){this._isOpen&&(this.isOpen=!1)}static get styles(){return[E]}render(){return b.html`
10
10
  ${this.getStyles()}
11
11
  <div class="md-menu-overlay">
12
12
  <slot name="menu-trigger" aria-expanded=${this.isOpen}></slot>
@@ -1 +1 @@
1
- (window["momentum-web-components-[id]"]=window["momentum-web-components-[id]"]||[]).push([[7],{32:function(e,t,s){"use strict";s.d(t,"a",(function(){return r}));var i=s(1),n=s(0),o=s(19),a=s(31),c=function(e,t,s,i){var n,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,s):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,s,i);else for(var c=e.length-1;c>=0;c--)(n=e[c])&&(a=(o<3?n(a):o>3?n(t,s,a):n(t,s))||a);return o>3&&a&&Object.defineProperty(t,s,a),a},l=function(e,t,s,i){return new(s||(s=Promise))((function(n,o){function a(e){try{l(i.next(e))}catch(e){o(e)}}function c(e){try{l(i.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?n(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(a,c)}l((i=i.apply(e,t||[])).next())}))};n.LitElement;const r=e=>{if(Object(o.b)(r,e))return e;class t extends(Object(a.a)(e)){constructor(){super(...arguments),this.focusableElements=[],this.initialFocusComplete=!1,this.focusableTimer=[],this.activeFocusTrap=!1,this.preventClickOutside=!1,this.focusTrapIndex=-1,this.preventScroll=!1,this.shouldWrapFocus=()=>!1,this.handleFocusOnClear=()=>{this.focusTrap(!0)},this.handleOutsideTrapClick=e=>{let t=!1;const s=e.composedPath();s.length&&(t=!!s.find(e=>e===this),t||this.preventClickOutside||!this.activeFocusTrap?t&&this.activeFocusTrap&&this.initialFocusComplete&&this.handleClickInsideTrap(e):this.deactivateFocusTrap())},this.updateFocusableElements=()=>{this.focusableTimer&&(clearTimeout(this.focusableTimer),this.focusableElements=[]),this.focusableTimer=setTimeout(()=>{this.setFocusableElements()},10)},this.handleChildFocusTrap=e=>{e.target!==this&&(e.stopPropagation(),this.deactivateFocusTrap(!1))},this.handleChildFocusUntrap=e=>{e.target!==this&&(e.stopPropagation(),this.activateFocusTrap(!1))}}updated(e){if(super.updated(e),e.has("focusTrapIndex")){const t=e.get("focusTrapIndex"),s=this.focusableElements[t];s&&(s.blur(),s.toggleAttribute("focus-visible",!1));const i=this.focusableElements[this.focusTrapIndex];i&&this.tryFocus(i)}}tryFocus(e){requestAnimationFrame(()=>l(this,void 0,void 0,(function*(){this.isElementFocused(e)&&e.focus({preventScroll:this.preventScroll}),void 0!==e.updateComplete&&(yield e.updateComplete),document.hasFocus()&&this.isElementFocused(e)&&e.focus({preventScroll:this.preventScroll}),this.initialFocusComplete||(this.initialFocusComplete=!0)})))}domRectCollection(e){return 0===e.getClientRects().length}viewportPosition(e){const{width:t,height:s}=e.getBoundingClientRect(),{offsetWidth:i,offsetHeight:n}=e;return i+n+s+t===0}isNotVisible(e){return"SLOT"!==e.tagName&&(this.viewportPosition(e)||this.domRectCollection(e))}hasHiddenStyle(e){const t=e.style;return t?"none"===t.display||"0"===t.opacity||"hidden"===t.visibility||"collapse"===t.visibility:e instanceof HTMLElement==!1}hasComputedHidden(e){const t=getComputedStyle(e);return"hidden"===t.visibility||"0"===t.height}isHidden(e){return e.hasAttribute("hidden")||e.hasAttribute("aria-hidden")&&"true"===e.getAttribute("aria-hidden")||this.hasHiddenStyle(e)||this.isNotVisible(e)||this.hasComputedHidden(e)}isNotTabbable(e){return"-1"===e.getAttribute("tabindex")}isInteractiveElement(e){return e instanceof HTMLButtonElement||e instanceof HTMLDetailsElement||e instanceof HTMLEmbedElement||e instanceof HTMLIFrameElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement||(!!(e instanceof HTMLAnchorElement&&e.hasAttribute("href"))||(e instanceof HTMLInputElement&&"hidden"!==e.type||(!(!(e instanceof HTMLAudioElement||e instanceof HTMLVideoElement)||!e.hasAttribute("controls"))||(!(!(e instanceof HTMLImageElement||e instanceof HTMLObjectElement)||!e.hasAttribute("usemap"))||!!(e.hasAttribute("tabindex")&&e.tabIndex>-1)))))}isFocusable(e){return!this.isHidden(e)&&!this.isNotTabbable(e)&&!!this.isInteractiveElement(e)}shouldSkipFocus(e){var t;return(null===(t=null==e?void 0:e.id)||void 0===t?void 0:t.split(" ").indexOf("md-combobox-listbox"))>-1}findFocusable(e,t){const s=Array.from(e.children);for(const e of s)if(!this.isHidden(e)){if(this.shouldSkipFocus(e))break;if(this.isFocusable(e)&&t.add(e),e.shadowRoot)this.findFocusable(e.shadowRoot,t);else if("SLOT"===e.tagName){const s=e.assignedNodes().filter(e=>e.nodeType===e.ELEMENT_NODE);if(s.length){const e=s[0].parentElement;e&&this.findFocusable(e,t)}}else this.findFocusable(e,t)}return[...t]}isEqualFocusNode(e,t){return e.nodeType>=0&&(t.isEqualNode(e)&&t==e)}findElement(e){return this.focusableElements.findIndex(t=>this.isEqualFocusNode(e,t))}focusTrap(e){const t=this.getDeepActiveElement(),s=this.findElement(t);if(e)-1===s&&this.focusTrapIndex-1>0?this.focusTrapIndex--:this.focusTrapIndex=s>(this.shouldWrapFocus()?1:0)?s-1:this.focusableElements.length-1;else if(-1===s&&this.focusTrapIndex+1<this.focusableElements.length)this.focusTrapIndex++;else if(s===this.focusableElements.length-1&&0===this.focusTrapIndex){const e=this.focusableElements[this.focusTrapIndex];e&&this.tryFocus(e)}else this.focusTrapIndex=s+1<this.focusableElements.length?s+1:this.shouldWrapFocus()?1:0}hasAutofocus(e){return e.hasAttribute("autofocus")}setInitialFocus(e=0,t=!1){let s=-1;this.initialFocusComplete=!1,this.focusableElements.length&&!t&&(s=this.focusableElements.findIndex(this.hasAutofocus)),this.focusableElements.length&&-1===s&&("object"==typeof e?s=this.findElement(e):"number"==typeof e&&(s=e)),this.focusableElements[s]&&(this.focusTrapIndex=s)}setFocusOnTrigger(e){let t;if(t=e.shadowRoot?this.findFocusable(e.shadowRoot,new Set):this.isFocusable(e)?[e]:this.findFocusable(e,new Set),t[0]){const e=this.findElement(t[0]);this.focusTrapIndex=e}}setFocusableElements(){this.focusableElements=this.findFocusable(this.shadowRoot,new Set)}firstUpdated(e){const t=Object.create(null,{firstUpdated:{get:()=>super.firstUpdated}});return l(this,void 0,void 0,(function*(){t.firstUpdated.call(this,e),yield new Promise(e=>setTimeout(e,0)),this.setFocusableElements()}))}handleKeydownFocusTrap(e){e.code!==i.b.Tab||e.shiftKey&&e.code!==i.b.Tab||this.activeFocusTrap&&this.focusableElements.length&&(e.shiftKey?(e.preventDefault(),this.focusTrap(!0)):(e.preventDefault(),this.focusTrap(!1)))}activateFocusTrap(e=!0){e&&this.dispatchEvent(new CustomEvent("on-focus-trap",{bubbles:!0,composed:!0,cancelable:!0})),this.activeFocusTrap=!0}deactivateFocusTrap(e=!0){this.activeFocusTrap=!1,this.focusTrapIndex=-1,this.removeAttribute("focus-trap-index"),e&&this.dispatchEvent(new CustomEvent("on-focus-untrap",{bubbles:!0,composed:!0,cancelable:!0}))}handleClickInsideTrap(e){const t=e.composedPath(),s=t.findIndex(e=>-1!==this.findElement(e));if(-1!==s){const e=t[s],i=this.findElement(e);-1!==i&&(this.focusTrapIndex=i)}}manageNewElement(e){requestAnimationFrame(()=>{this.setFocusableElements();const t=this.findElement(e);-1!==t&&(this.focusTrapIndex=t)})}handleFocusVisible(e){const t=(e.detail?e.detail.sourceEvent:e).composedPath()[0];-1===(e.detail?this.findElement(t):-1)&&t!==this&&this.manageNewElement(t)}connectedCallback(){super.connectedCallback(),this.addEventListener("keydown",this.handleKeydownFocusTrap),this.addEventListener("focus-visible",this.handleFocusVisible),this.addEventListener("on-focus-trap",this.handleChildFocusTrap),this.addEventListener("on-focus-untrap",this.handleChildFocusUntrap),document.addEventListener("click",this.handleOutsideTrapClick),document.addEventListener("on-widget-update",this.updateFocusableElements),this.addEventListener("input-clear",this.handleFocusOnClear)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("keydown",this.handleKeydownFocusTrap),this.removeEventListener("focus-visible",this.handleFocusVisible),this.removeEventListener("on-focus-trap",this.handleChildFocusTrap),this.removeEventListener("on-focus-untrap",this.handleChildFocusUntrap),document.removeEventListener("click",this.handleOutsideTrapClick),document.removeEventListener("on-widget-update",this.updateFocusableElements),this.removeEventListener("input-clear",this.handleFocusOnClear),this.focusableTimer&&clearTimeout(this.focusableTimer)}}return c([Object(n.internalProperty)()],t.prototype,"focusableElements",void 0),c([Object(n.internalProperty)()],t.prototype,"initialFocusComplete",void 0),c([Object(n.internalProperty)()],t.prototype,"focusableTimer",void 0),c([Object(n.property)({type:Boolean,reflect:!0,attribute:"active-focus-trap"})],t.prototype,"activeFocusTrap",void 0),c([Object(n.property)({type:Boolean,reflect:!0,attribute:"prevent-click-outside"})],t.prototype,"preventClickOutside",void 0),c([Object(n.property)({type:Number,reflect:!0,attribute:"focus-trap-index"})],t.prototype,"focusTrapIndex",void 0),c([Object(n.property)({type:Boolean,reflect:!0,attribute:"prevent-scroll"})],t.prototype,"preventScroll",void 0),Object(o.a)(r,t),t}}}]);
1
+ (window["momentum-web-components-[id]"]=window["momentum-web-components-[id]"]||[]).push([[7],{32:function(e,t,s){"use strict";s.d(t,"a",(function(){return r}));var i=s(1),n=s(0),o=s(19),a=s(31),c=function(e,t,s,i){var n,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,s):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,s,i);else for(var c=e.length-1;c>=0;c--)(n=e[c])&&(a=(o<3?n(a):o>3?n(t,s,a):n(t,s))||a);return o>3&&a&&Object.defineProperty(t,s,a),a},l=function(e,t,s,i){return new(s||(s=Promise))((function(n,o){function a(e){try{l(i.next(e))}catch(e){o(e)}}function c(e){try{l(i.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?n(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(a,c)}l((i=i.apply(e,t||[])).next())}))};n.LitElement;const r=e=>{if(Object(o.b)(r,e))return e;class t extends(Object(a.a)(e)){constructor(){super(...arguments),this.focusableElements=[],this.initialFocusComplete=!1,this.focusableTimer=[],this.activeFocusTrap=!1,this.preventClickOutside=!1,this.focusTrapIndex=-1,this.preventScroll=!1,this.shouldWrapFocus=()=>!1,this.handleFocusOnClear=()=>{this.focusTrap(!0)},this.handleOutsideTrapClick=e=>{let t=!1;const s=e.composedPath();s.length&&(t=!!s.find(e=>e===this),t||this.preventClickOutside||!this.activeFocusTrap?t&&this.activeFocusTrap&&this.initialFocusComplete&&this.handleClickInsideTrap(e):this.deactivateFocusTrap())},this.updateFocusableElements=()=>{this.focusableTimer&&(clearTimeout(this.focusableTimer),this.focusableElements=[]),this.focusableTimer=setTimeout(()=>{this.setFocusableElements()},10)},this.handleChildFocusTrap=e=>{e.target!==this&&(e.stopPropagation(),this.deactivateFocusTrap(!1))},this.handleChildFocusUntrap=e=>{e.target!==this&&(e.stopPropagation(),this.activateFocusTrap(!1))}}updated(e){if(super.updated(e),e.has("focusTrapIndex")){const t=e.get("focusTrapIndex"),s=this.focusableElements[t];s&&(s.blur(),s.toggleAttribute("focus-visible",!1));const i=this.focusableElements[this.focusTrapIndex];i&&this.tryFocus(i)}}tryFocus(e){requestAnimationFrame(()=>l(this,void 0,void 0,(function*(){this.isElementFocused(e)&&e.focus({preventScroll:this.preventScroll}),void 0!==e.updateComplete&&(yield e.updateComplete),document.hasFocus()&&this.isElementFocused(e)&&e.focus({preventScroll:this.preventScroll}),this.initialFocusComplete||(this.initialFocusComplete=!0)})))}domRectCollection(e){return 0===e.getClientRects().length}viewportPosition(e){const{width:t,height:s}=e.getBoundingClientRect(),{offsetWidth:i,offsetHeight:n}=e;return i+n+s+t===0}isNotVisible(e){return"SLOT"!==e.tagName&&(this.viewportPosition(e)||this.domRectCollection(e))}hasHiddenStyle(e){const t=e.style;return t?"none"===t.display||"0"===t.opacity||"hidden"===t.visibility||"collapse"===t.visibility:e instanceof HTMLElement==!1}hasComputedHidden(e){const t=getComputedStyle(e);return"hidden"===t.visibility||"0"===t.height}isHidden(e){return e.hasAttribute("hidden")||e.hasAttribute("aria-hidden")&&"true"===e.getAttribute("aria-hidden")||this.hasHiddenStyle(e)||this.isNotVisible(e)||this.hasComputedHidden(e)}isNotTabbable(e){return"-1"===e.getAttribute("tabindex")}isInteractiveElement(e){return e instanceof HTMLButtonElement||e instanceof HTMLDetailsElement||e instanceof HTMLEmbedElement||e instanceof HTMLIFrameElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement||(!!(e instanceof HTMLAnchorElement&&e.hasAttribute("href"))||(e instanceof HTMLInputElement&&"hidden"!==e.type||(!(!(e instanceof HTMLAudioElement||e instanceof HTMLVideoElement)||!e.hasAttribute("controls"))||(!(!(e instanceof HTMLImageElement||e instanceof HTMLObjectElement)||!e.hasAttribute("usemap"))||!!(e.hasAttribute("tabindex")&&e.tabIndex>-1)))))}isFocusable(e){return!this.isHidden(e)&&!this.isNotTabbable(e)&&!!this.isInteractiveElement(e)}shouldSkipFocus(e){var t;return(null===(t=null==e?void 0:e.id)||void 0===t?void 0:t.split(" ").indexOf("md-combobox-listbox"))>-1}findFocusable(e,t){const s=Array.from(e.children);for(const e of s)if(!this.isHidden(e)){if(this.shouldSkipFocus(e))break;if(this.isFocusable(e)&&t.add(e),e.shadowRoot)this.findFocusable(e.shadowRoot,t);else if("SLOT"===e.tagName){const s=e.assignedNodes().filter(e=>e.nodeType===e.ELEMENT_NODE);if(s.length){const e=s[0].parentElement;e&&this.findFocusable(e,t)}}else this.findFocusable(e,t)}return[...t]}isEqualFocusNode(e,t){return e.nodeType>=0&&(t.isEqualNode(e)&&t==e)}findElement(e){return this.focusableElements.findIndex(t=>this.isEqualFocusNode(e,t))}focusTrap(e){const t=this.getDeepActiveElement(),s=this.findElement(t);if(e)-1===s&&this.focusTrapIndex-1>0?this.focusTrapIndex--:this.focusTrapIndex=s>(this.shouldWrapFocus()?1:0)?s-1:this.focusableElements.length-1;else if(-1===s&&this.focusTrapIndex+1<this.focusableElements.length)this.focusTrapIndex++;else if(s===this.focusableElements.length-1&&0===this.focusTrapIndex){const e=this.focusableElements[this.focusTrapIndex];e&&this.tryFocus(e)}else this.focusTrapIndex=s+1<this.focusableElements.length?s+1:this.shouldWrapFocus()?1:0}hasAutofocus(e){return e.hasAttribute("autofocus")}setInitialFocus(e=0,t=!1){let s=-1;this.initialFocusComplete=!1,this.focusableElements.length&&!t&&(s=this.focusableElements.findIndex(this.hasAutofocus)),this.focusableElements.length&&-1===s&&("object"==typeof e?s=this.findElement(e):"number"==typeof e&&(s=e)),this.focusableElements[s]&&(this.focusTrapIndex=s)}setFocusOnTrigger(e){if(!e)return;const t=this.getDeepNestedTriggerElement(e);if(t.length>0){const e=this.findElement(t[0]);this.focusTrapIndex=e}}getDeepNestedTriggerElement(e){return e.shadowRoot?this.findFocusable(e.shadowRoot,new Set):this.isFocusable(e)?[e]:this.findFocusable(e,new Set)}setFocusableElements(){this.shadowRoot?this.focusableElements=this.findFocusable(this.shadowRoot,new Set):console.warn("shadow root is not available")}firstUpdated(e){const t=Object.create(null,{firstUpdated:{get:()=>super.firstUpdated}});return l(this,void 0,void 0,(function*(){t.firstUpdated.call(this,e),yield new Promise(e=>setTimeout(e,0)),this.setFocusableElements()}))}handleKeydownFocusTrap(e){e.code!==i.b.Tab||e.shiftKey&&e.code!==i.b.Tab||this.activeFocusTrap&&this.focusableElements.length&&(e.shiftKey?(e.preventDefault(),this.focusTrap(!0)):(e.preventDefault(),this.focusTrap(!1)))}activateFocusTrap(e=!0){e&&this.dispatchEvent(new CustomEvent("on-focus-trap",{bubbles:!0,composed:!0,cancelable:!0})),this.activeFocusTrap=!0}deactivateFocusTrap(e=!0){this.activeFocusTrap=!1,this.focusTrapIndex=-1,this.removeAttribute("focus-trap-index"),e&&this.dispatchEvent(new CustomEvent("on-focus-untrap",{bubbles:!0,composed:!0,cancelable:!0}))}handleClickInsideTrap(e){const t=e.composedPath(),s=t.findIndex(e=>-1!==this.findElement(e));if(-1!==s){const e=t[s],i=this.findElement(e);-1!==i&&(this.focusTrapIndex=i)}}manageNewElement(e){requestAnimationFrame(()=>{this.setFocusableElements();const t=this.findElement(e);-1!==t&&(this.focusTrapIndex=t)})}handleFocusVisible(e){const t=(e.detail?e.detail.sourceEvent:e).composedPath()[0];-1===(e.detail?this.findElement(t):-1)&&t!==this&&this.manageNewElement(t)}connectedCallback(){super.connectedCallback(),this.addEventListener("keydown",this.handleKeydownFocusTrap),this.addEventListener("focus-visible",this.handleFocusVisible),this.addEventListener("on-focus-trap",this.handleChildFocusTrap),this.addEventListener("on-focus-untrap",this.handleChildFocusUntrap),document.addEventListener("click",this.handleOutsideTrapClick),document.addEventListener("on-widget-update",this.updateFocusableElements),this.addEventListener("input-clear",this.handleFocusOnClear)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("keydown",this.handleKeydownFocusTrap),this.removeEventListener("focus-visible",this.handleFocusVisible),this.removeEventListener("on-focus-trap",this.handleChildFocusTrap),this.removeEventListener("on-focus-untrap",this.handleChildFocusUntrap),document.removeEventListener("click",this.handleOutsideTrapClick),document.removeEventListener("on-widget-update",this.updateFocusableElements),this.removeEventListener("input-clear",this.handleFocusOnClear),this.focusableTimer&&clearTimeout(this.focusableTimer)}}return c([Object(n.internalProperty)()],t.prototype,"focusableElements",void 0),c([Object(n.internalProperty)()],t.prototype,"initialFocusComplete",void 0),c([Object(n.internalProperty)()],t.prototype,"focusableTimer",void 0),c([Object(n.property)({type:Boolean,reflect:!0,attribute:"active-focus-trap"})],t.prototype,"activeFocusTrap",void 0),c([Object(n.property)({type:Boolean,reflect:!0,attribute:"prevent-click-outside"})],t.prototype,"preventClickOutside",void 0),c([Object(n.property)({type:Number,reflect:!0,attribute:"focus-trap-index"})],t.prototype,"focusTrapIndex",void 0),c([Object(n.property)({type:Boolean,reflect:!0,attribute:"prevent-scroll"})],t.prototype,"preventScroll",void 0),Object(o.a)(r,t),t}}}]);
@@ -201,7 +201,7 @@ export declare namespace ComboBox {
201
201
  checkForVirtualScroll(): boolean;
202
202
  rangeChanged(): void;
203
203
  getCustomErrorContent(): DocumentFragment;
204
- getCustomContent(option: string | OptionMember): TemplateResult | DocumentFragment;
204
+ getCustomContent(option: string | OptionMember): DocumentFragment | TemplateResult;
205
205
  renderGroupLabelHeader(option: OptionMember, optionIndex: number): TemplateResult;
206
206
  renderWithoutVirtualScroll(): import("lit-html").DirectiveFn;
207
207
  highlightingSearchedText(option: OptionMember | string): TemplateResult[];
@@ -37,7 +37,7 @@ export declare namespace TimePicker {
37
37
  handleTimeBlur(event: CustomEvent, unit: TimePicker.TimeUnit): void;
38
38
  static get styles(): import("lit-element").CSSResult[];
39
39
  formatTimeUnit: (unit: TimePicker.TimeUnit) => void;
40
- messageType: (isValid: boolean) => "" | "error";
40
+ messageType: (isValid: boolean) => "error" | "";
41
41
  generateTimeBox: (unit: TimePicker.TimeUnit) => import("lit-element").TemplateResult;
42
42
  generateAmPmComboBox: () => import("lit-element").TemplateResult;
43
43
  render(): import("lit-element").TemplateResult;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@momentum-ui/web-components",
3
- "version": "2.14.19",
3
+ "version": "2.14.21",
4
4
  "author": "Yana Harris",
5
5
  "license": "MIT",
6
6
  "repository": "https://github.com/momentum-design/momentum-ui.git",