@limetech/lime-elements 39.34.1 → 39.34.3
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 +14 -0
- package/dist/cjs/{index-BgFEL6FF.js → index-ETPz91V5.js} +10 -0
- package/dist/cjs/limel-breadcrumbs_8.cjs.entry.js +36 -4
- package/dist/cjs/limel-file-viewer.cjs.entry.js +1 -1
- package/dist/cjs/limel-markdown.cjs.entry.js +3 -3
- package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +222 -127
- package/dist/cjs/{markdown-parser-ZtNkFlPt.js → markdown-parser-F3YRMjcy.js} +32 -5
- package/dist/collection/components/list/list.js +36 -4
- package/dist/collection/components/markdown/markdown-parser.js +31 -4
- package/dist/collection/components/markdown/markdown.js +2 -1
- package/dist/esm/{index-t4DgGbWS.js → index-CbciMfiU.js} +10 -1
- package/dist/esm/limel-breadcrumbs_8.entry.js +36 -4
- package/dist/esm/limel-file-viewer.entry.js +1 -1
- package/dist/esm/limel-markdown.entry.js +3 -3
- package/dist/esm/limel-prosemirror-adapter.entry.js +222 -127
- package/dist/esm/{markdown-parser-nW7FzScN.js → markdown-parser-Blt6ZFY0.js} +32 -5
- package/dist/lime-elements/lime-elements.esm.js +1 -1
- package/dist/lime-elements/{p-f9c8e4d2.entry.js → p-0b9f3cf1.entry.js} +1 -1
- package/dist/lime-elements/p-2486f61d.entry.js +1 -0
- package/dist/lime-elements/{p-44f4d02e.entry.js → p-5a00f0fb.entry.js} +1 -1
- package/dist/lime-elements/p-DMNtoJ8I.js +1 -0
- package/dist/lime-elements/{p-csTwzWL7.js → p-DnPeu2SH.js} +2 -2
- package/dist/lime-elements/{p-a0720aca.entry.js → p-f5e2f3b4.entry.js} +1 -1
- package/dist/types/components/list/list.d.ts +16 -0
- package/dist/types/components/markdown/markdown.d.ts +1 -0
- package/dist/types/components.d.ts +4 -0
- package/package.json +1 -1
- package/dist/lime-elements/p-063b8d0a.entry.js +0 -1
- package/dist/lime-elements/p-DJvGLFul.js +0 -1
|
@@ -87,7 +87,7 @@ var X,U;Y.style='@charset "UTF-8";:host([type=url]) .mdc-text-field--with-traili
|
|
|
87
87
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
88
88
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
89
89
|
* THE SOFTWARE.
|
|
90
|
-
*/class vt{constructor(){this.defaultConfig={isOpen:!0,badgeIcons:!1},this.getAriaOrientation=t=>"listbox"===t||"radiogroup"===t?"vertical":null,this.getIndexForWhichToApplyTabIndex=t=>{let e;for(let i=0,l=t.length;i<l;i+=1)if("separator"in t[i]);else{const l=t[i];if(l.disabled)continue;if(l.selected){e=i;break}void 0===e&&(e=i)}return e},this.renderListItem=(t,e)=>{var l;if("separator"in t)return i("li",{class:"mdc-deprecated-list-divider",role:"separator",key:`sep-${e}`},this.renderTextForSeparator(t),i("div",{class:"limel-list-divider-line"}));const n={};let r;e===this.applyTabIndexToItemAtIndex&&(n.tabindex="0"),r="radio"===this.config.type||"checkbox"===this.config.type?this.config.type:"selectable"===this.config.type?"option":"listitem";const o=null!==(l=t.id)&&void 0!==l?l:`item-${e}`;return i("limel-list-item",Object.assign({key:o,class:{"mdc-deprecated-list-item":!0,"mdc-deprecated-list-item--disabled":!!t.disabled}},n,{"data-index":e,type:r,text:t.text,secondaryText:t.secondaryText,icon:t.icon,image:t.image,primaryComponent:t.primaryComponent,badgeIcon:this.config.badgeIcons,iconSize:this.config.iconSize,selected:t.selected,disabled:t.disabled,actions:t.actions}))},this.renderTextForSeparator=t=>{if("text"in t)return i("h2",{class:"limel-list-divider-title"},t.text)}}render(t,e={}){let l;switch(t=t||[],this.config=Object.assign(Object.assign({},this.defaultConfig),e),this.config.type){case"checkbox":l="group";break;case"radio":l="radiogroup";break;default:l="listbox"}return this.applyTabIndexToItemAtIndex=this.getIndexForWhichToApplyTabIndex(t),i("ul",{class:"mdc-deprecated-list",role:l,"aria-orientation":this.getAriaOrientation(l)},t.map(this.renderListItem))}}const{ACTION_EVENT:_t}=W,yt=class{constructor(i){t(this,i),this.change=e(this,"change"),this.select=e(this,"select"),this.interact=e(this,"interact"),this.iconSize="small",this.maxLinesSecondaryText=3,this.listRenderer=new vt,this.setup=()=>{this.setupList(),this.setupListeners()},this.setupList=()=>{this.mdcList&&(this.teardown(),this.mdcList=null);const t=this.element.shadowRoot.querySelector(".mdc-deprecated-list");t&&(this.mdcList=new gt(t),this.mdcList.hasTypeahead=!0)},this.setupListeners=()=>{this.mdcList&&(this.mdcList.unlisten(_t,this.handleAction),this.selectable=["selectable","radio","checkbox"].includes(this.type),this.multiple="checkbox"===this.type,this.selectable&&(this.mdcList.listen(_t,this.handleAction),this.mdcList.singleSelection=!this.multiple))},this.teardown=()=>{var t,e;null===(t=this.mdcList)||void 0===t||t.unlisten(_t,this.handleAction),null===(e=this.mdcList)||void 0===e||e.destroy()},this.handleAction=t=>{this.multiple?this.handleMultiSelect(t.detail.index):this.handleSingleSelect(t.detail.index)},this.handleSingleSelect=t=>{const e=this.items.filter(this.isListItem);if(e[t].disabled)return;const i=e.find((t=>!!t.selected));let l;i&&("radio"!==this.type&&(this.mdcList.selectedIndex=-1),l=Object.assign(Object.assign({},i),{selected:!1}),this.change.emit(l)),e[t]!==i&&(l=Object.assign(Object.assign({},e[t]),{selected:!0}),this.change.emit(l)),this.interact.emit(l)},this.handleMultiSelect=t=>{const e=this.items.filter(this.isListItem);if(e[t].disabled)return;const i=e.filter(((e,i)=>i===t?!e.selected:e.selected)).map((t=>Object.assign(Object.assign({},t),{selected:!0})));this.change.emit(i),this.interact.emit(Object.assign({},i[t]))},this.isListItem=t=>!("separator"in t)}connectedCallback(){this.setup()}disconnectedCallback(){this.teardown()}componentDidLoad(){this.setup(),this.triggerIconColorWarning()}render(){var t;this.config={badgeIcons:this.badgeIcons,type:this.type,iconSize:this.iconSize};let e=+(null===(t=this.maxLinesSecondaryText)||void 0===t?void 0:t.toFixed());this.maxLinesSecondaryText<1&&(e=1);const l=this.listRenderer.render(this.items,this.config);return i(n,{key:"02f96dd9abcf8c67ffcac1ee066d5118e94b04f4",style:{"--maxLinesSecondaryText":`${e}`}},l)}handleType(){this.setupListeners()}itemsChanged(){this.mdcList&&setTimeout((()=>{this.setup();const t=this.items.filter(this.isListItem);if(this.multiple)this.mdcList.selectedIndex=t.filter((t=>t.selected)).map((e=>t.indexOf(e)));else{const e=t.findIndex((t=>t.selected));-1===e?this.mdcList.initializeListType():this.mdcList.selectedIndex=e}}),0)}triggerIconColorWarning(){var t;(null===(t=this.items)||void 0===t?void 0:t.some((t=>"iconColor"in t)))&&console.warn("The `iconColor` prop is deprecated, has no visual effect anymore, and will soon be removed! Use the new `Icon` interface, and instead of `iconColor: 'color-name'` write `icon: { name: 'icon-name', color: 'color-name' }`.")}static get delegatesFocus(){return!0}get element(){return l(this)}static get watchers(){return{type:[{handleType:0}],items:[{itemsChanged:0}]}}};yt.style='@charset "UTF-8";:host(.has-striped-rows) .mdc-deprecated-list{border:1px solid rgb(var(--contrast-400))}:host(.has-striped-rows) limel-list-item:not([disabled]):not([disabled=true]):not(:hover):nth-child(even),:host(.has-striped-rows.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):not(:hover):nth-child(even){background-color:var(--list-background-color-of-odd-interactive-items, rgb(var(--contrast-200)))}:host(.has-striped-rows) limel-list-item:not([disabled]):not([disabled=true]):not(:hover):nth-child(odd),:host(.has-striped-rows.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):not(:hover):nth-child(odd){background-color:var(--list-background-color-of-even-interactive-items, rgb(var(--contrast-100)))}:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]){transition:color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);cursor:pointer;color:var(--limel-theme-on-surface-color);background-color:transparent}:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):hover,:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):focus,:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):focus-visible{will-change:color, background-color, box-shadow, transform}:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):hover,:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):focus-visible{transform:translate3d(0, 0.01rem, 0);color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color)}:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):hover{box-shadow:var(--button-shadow-hovered)}:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):active{--limel-clickable-transform-timing-function:cubic-bezier( 0.83, -0.15, 0.49, 1.16 );transform:translate3d(0, 0.05rem, 0);box-shadow:var(--button-shadow-pressed)}:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):hover,:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}:host(.has-grid-layout){--gap:var(--list-grid-gap, 0.5rem);padding:var(--gap);}:host(.has-grid-layout) .mdc-deprecated-list{display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fit, minmax(min(100%, max(var(--list-grid-item-max-width, 10rem) - var(--gap), var(--list-grid-item-min-width, 7.5rem))), 1fr));max-width:var(--list-grid-max-width, 100%)}:host(.has-grid-layout) .mdc-deprecated-list limel-list-item{border-radius:var(--limel-list-border-radius) !important}:host(.has-grid-layout) .mdc-deprecated-list-divider{grid-column:1/-1}:host(.static-actions-list){z-index:1;background-color:var(--limel-theme-surface-background-color)}:host(.has-position-sticky){position:sticky;box-shadow:0 0 0.75rem 0.5rem var(--limel-theme-surface-background-color)}:host(.has-position-sticky.is-on-top){top:0}:host(.has-position-sticky.is-at-bottom){bottom:0}:host(.is-on-top){border-bottom:1px solid rgb(var(--contrast-400));margin-bottom:0.5rem;padding-bottom:0.25rem}:host(.is-at-bottom){border-top:1px solid rgb(var(--contrast-400));margin-top:0.5rem;padding-top:0.25rem}:host(limel-list){--limel-list-border-radius:0.5rem;display:block;isolation:isolate}:host([hidden]){display:none}ul{--mdc-theme-text-icon-on-background:var( --icon-color, rgb(var(--contrast-900)) );margin:var(--list-margin, 0.25rem);border-radius:var(--limel-list-border-radius);padding:0;list-style:none}.mdc-deprecated-list-divider{border-bottom-color:transparent;display:flex;align-items:center;gap:0.75rem;height:auto;padding:0 0.25rem;margin-bottom:0.5rem}.mdc-deprecated-list-divider:not(:first-child){margin-top:0.75rem}:host(.has-striped-rows) .mdc-deprecated-list-divider{margin-top:0.5rem}.limel-list-divider-line{background-color:rgb(var(--contrast-400));height:0.125rem;border-radius:1rem;min-width:1rem;flex-grow:1}.limel-list-divider-title{all:unset;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:rgb(var(--contrast-900));font-size:var(--limel-theme-default-small-font-size)}';const wt={text:"",icon:{name:"home"},type:"icon-only"},kt=class{constructor(l){t(this,l),this.cancel=e(this,"cancel"),this.select=e(this,"select"),this.navigateMenu=e(this,"navigateMenu"),this.items=[],this.disabled=!1,this.openDirection="bottom-start",this.surfaceWidth="inherit-from-items",this.open=!1,this.badgeIcons=!1,this.gridLayout=!1,this.loading=!1,this.rootItem=wt,this.keepOpenOnSelect=!1,this.shouldRestoreFocusOnClose=!1,this.normalizedHotkeyCache=new Map,this.cachedSubMenuSource=null,this.cachedSubMenuItems=null,this.handleDocumentKeyDown=t=>{if(t.key===f&&this.open&&(this.shouldRestoreFocusOnClose=!0),!this.open||t.defaultPrevented||t.repeat)return;if(this.isFromTextInput(t)&&!this.hasModifier(t))return;const e=L(t);if(!e)return;if(this.isReservedMenuHotkey(e))return;const i=this.findMenuItemByHotkey(e);i&&(t.stopPropagation(),t.preventDefault(),this.handleSelect(i))},this.renderLoader=()=>{if(!this.loadingSubItems&&!this.loading)return;const t=this.getCssProperties();return i("div",{style:{width:t["--menu-surface-width"],display:"flex","align-items":"center","justify-content":"center",padding:"0.5rem 0"}},i("limel-spinner",{size:"mini",limeBranded:!1}))},this.renderBreadcrumb=()=>{const t=this.getBreadcrumbsItems();if(0!==t.length)return i("limel-breadcrumbs",{ref:this.setBreadcrumbsElement,style:{"border-bottom":"solid 1px rgb(var(--contrast-500))","flex-shrink":"0"},onSelect:this.handleBreadcrumbsSelect,onKeyDown:this.handleBreadcrumbsKeyDown,items:t})},this.handleBreadcrumbsSelect=t=>{if(!t.detail.menuItem)return this.currentSubMenu=null,this.clearSearch(),this.navigateMenu.emit(null),void this.setFocus();this.handleSelect(t.detail.menuItem)},this.renderSearchField=()=>{if(this.searcher)return i("limel-input-field",{tabindex:"0",ref:this.setSearchElement,placeholder:this.searchPlaceholder,type:"search",leadingIcon:"search",style:{padding:"0.25rem","box-sizing":"border-box"},value:this.searchValue,onChange:this.handleTextInput,onKeyDown:this.handleInputKeyDown})},this.renderEmptyMessage=()=>{var t;return this.loading||this.loadingSubItems||!this.emptyResultMessage||!Array.isArray(this.searchResults)||(null===(t=this.searchResults)||void 0===t?void 0:t.length)?null:i("p",{style:{padding:"0 1rem","text-align":"center"}},this.emptyResultMessage)},this.renderMenuList=()=>{let t=this.visibleItems;return(this.loadingSubItems||this.loading)&&(t=[]),i("limel-menu-list",{style:{"overflow-y":"auto","flex-grow":"1"},class:{"has-grid-layout has-interactive-items":this.gridLayout},items:t,badgeIcons:this.badgeIcons,onSelect:this.onSelect,ref:this.setListElement,onKeyDown:this.handleMenuKeyDown})},this.handleTextInput=async t=>{t.stopPropagation();const e=t.detail;if(this.searchValue=e,""===e)return this.searchResults=null,void(this.loadingSubItems=!1);this.loadingSubItems=!0;const i=await this.searcher(e);this.searchValue===e&&(this.searchResults=i,this.loadingSubItems=!1)},this.handleInputKeyDown=t=>{if(t.defaultPrevented)return;const e=t.key===c&&!t.altKey&&!t.metaKey&&!t.shiftKey,i=t.key===m,l=t.key===h;if(e||i||l)if(t.stopPropagation(),t.preventDefault(),e||l){if(this.focusBreadcrumbs())return;this.focusFirstListItem()}else i&&this.focusLastListItem()},this.handleListKeyDownCapture=t=>{const e=t.key===m,i=t.key===h;if(e||i)return e&&this.isFirstListItemFocused()?this.focusBreadcrumbs()?(t.stopPropagation(),void t.preventDefault()):void(this.searchInput&&(t.stopPropagation(),t.preventDefault(),this.searchInput.focus())):void(i&&this.isLastListItemFocused()&&this.searchInput&&(t.stopPropagation(),t.preventDefault(),this.searchInput.focus()))},this.handleMenuKeyDown=t=>{var e;const i=t.key===c&&!t.altKey&&!t.metaKey&&t.shiftKey,l=t.key===p,n=t.key===b;if(i||l||n){if(i)return t.stopPropagation(),t.preventDefault(),void(null===(e=this.searchInput)||void 0===e||e.focus());if(!this.gridLayout&&(l||n)){const e=this.getCurrentItem();t.stopPropagation(),t.preventDefault(),n?this.goForward(e):l&&this.goBack()}}},this.handleBreadcrumbsKeyDown=t=>{var e;const i=t.key===m,l=t.key===h;(i||l)&&(t.stopPropagation(),t.preventDefault(),i?null===(e=this.searchInput)||void 0===e||e.focus():l&&this.focusFirstListItem())},this.refreshSearch=async()=>{const t=this.searchValue;this.loadingSubItems=!0;const e=await this.searcher(t);this.searchValue===t&&(this.searchResults=e,this.loadingSubItems=!1,this.setFocus())},this.clearSearch=()=>{this.searchValue="",this.searchResults=null,this.loadingSubItems=!1},this.getCurrentItem=()=>{var t,e,i,l,n,r;let o=null!==(i=null===(e=null===(t=this.list)||void 0===t?void 0:t.shadowRoot)||void 0===e?void 0:e.activeElement)&&void 0!==i?i:null;o&&"menuitem"!==o.getAttribute("role")&&(o=o.closest('[role="menuitem"]')),o||(o=null===(n=null===(l=this.list)||void 0===l?void 0:l.shadowRoot)||void 0===n?void 0:n.querySelector('[role="menuitem"][tabindex="0"]'));const d=Number.parseInt(null!==(r=null==o?void 0:o.dataset.index)&&void 0!==r?r:"0",10),a=this.visibleItems[d];return null!=a?a:this.visibleItems[0]},this.goForward=t=>{this.handleSelect(t,!1)},this.goBack=()=>{if(!this.currentSubMenu)return;const t=this.currentSubMenu.parentItem;if(!t)return this.currentSubMenu=null,this.clearSearch(),this.navigateMenu.emit(null),void this.setFocus();this.handleSelect(t)},this.setTriggerAttributes=t=>{const e={"aria-haspopup":!0,"aria-expanded":this.open,"aria-controls":this.portalId,disabled:this.disabled,role:"button"};for(const[i,l]of Object.entries(e))l?t.setAttribute(i,String(l)):t.removeAttribute(i)},this.onClose=()=>{const t=this.shouldRestoreFocusOnClose;this.shouldRestoreFocusOnClose=!1,this.cancel.emit(),this.open=!1,this.currentSubMenu=null,t&&setTimeout(this.focusTrigger,0)},this.onTriggerClick=t=>{t.stopPropagation(),this.disabled||(this.open=!this.open)},this.handleSelect=async(t,e=!0)=>{if(Array.isArray(null==t?void 0:t.items)&&t.items.length>0)return this.selectedMenuItem=t,this.clearSearch(),this.currentSubMenu=t,this.navigateMenu.emit(t),void this.setFocus();if(F(null==t?void 0:t.items)){const e=t.items;this.selectedMenuItem=t,this.loadingSubItems=!0;const i=await e(t);if(this.selectedMenuItem!==t)return;if(t.items=i,this.loadingSubItems=!1,null==i?void 0:i.length)return this.currentSubMenu=t,this.clearSearch(),this.navigateMenu.emit(t),void this.setFocus()}e&&(this.selectedMenuItem=t,this.loadingSubItems=!1,this.select.emit(t),this.keepOpenOnSelect?F(this.searcher)&&this.searchValue&&this.refreshSearch():(this.open=!1,this.currentSubMenu=null,setTimeout(this.focusTrigger,0)))},this.onSelect=t=>{t.stopPropagation(),this.handleSelect(t.detail)},this.setListElement=t=>{this.list&&this.list.removeEventListener("keydown",this.handleListKeyDownCapture,!0),this.list=t,this.list&&this.list.addEventListener("keydown",this.handleListKeyDownCapture,!0)},this.setFocus=()=>{setTimeout((()=>{if(this.open)if(this.searchInput&&this.searcher){const t=new IntersectionObserver((()=>{t.unobserve(this.searchInput),this.searchInput!==window.document.activeElement&&this.searchInput.focus()}));t.observe(this.searchInput)}else if(this.list){const t=new IntersectionObserver((()=>{t.unobserve(this.list),this.focusMenuItem()}));t.observe(this.list)}}),0)},this.focusTrigger=()=>{var t,e;const i=null===(e=null===(t=this.triggerElement)||void 0===t?void 0:t.assignedElements())||void 0===e?void 0:e[0];S(i)},this.setSearchElement=t=>{this.searchInput=t},this.setBreadcrumbsElement=t=>{this.breadcrumbs=t},this.focusBreadcrumbs=()=>{var t;if(!this.breadcrumbs)return!1;const e=null===(t=this.breadcrumbs.shadowRoot)||void 0===t?void 0:t.querySelector("button, a");return!!e&&(e.focus(),!0)},this.focusFirstListItem=()=>{const t=this.getListItems(),e=null==t?void 0:t[0];null==e||e.focus()},this.focusLastListItem=()=>{const t=this.getListItems(),e=null==t?void 0:t.at(-1);null==e||e.focus()},this.isFirstListItemFocused=()=>{var t;const e=this.getListItems();return!!e&&e[0]===(null===(t=this.list.shadowRoot)||void 0===t?void 0:t.activeElement)},this.isLastListItemFocused=()=>{var t;const e=this.getListItems();return!!e&&e.at(-1)===(null===(t=this.list.shadowRoot)||void 0===t?void 0:t.activeElement)},this.getListItems=()=>{var t;if(!this.list)return null;const e=null===(t=this.list.shadowRoot)||void 0===t?void 0:t.querySelectorAll(".mdc-deprecated-list-item");return(null==e?void 0:e.length)?[...e]:null},this.focusMenuItem=()=>{var t;if(!this.list)return;const e=this.list.shadowRoot.activeElement;null==e||e.blur();const i=this.visibleItems.filter(this.isMenuItem),l=Math.max(i.findIndex((t=>t.selected)),0);null===(t=[...this.list.shadowRoot.querySelectorAll('[role="menuitem"]')][l])||void 0===t||t.focus()},this.renderNotificationBadge=()=>{if(this.items.some(this.hasNotificationBadge))return i("limel-badge",null)},this.hasNotificationBadge=t=>this.isMenuItem(t)&&void 0!==t.badge,this.setTriggerRef=t=>{this.triggerElement=t},this.portalId=d()}componentDidRender(){this.host.shadowRoot.querySelector("slot").assignedElements().forEach(this.setTriggerAttributes)}render(){const t=this.getCssProperties(),e=getComputedStyle(this.host).getPropertyValue("--dropdown-z-index"),l=this.getMenuSurfaceWidth(t["--menu-surface-width"]);return i("div",{key:"fe6ba56f411c10a7af5ad97111c2de31864ff29f",class:"mdc-menu-surface--anchor",onClick:this.onTriggerClick},i("slot",{key:"329e186424a4a588863333efef2efb43f36bdcb4",ref:this.setTriggerRef,name:"trigger"}),this.renderNotificationBadge(),i("limel-portal",{key:"e5f37c2734eee39889570643a8bf5ba9d87b18e2",visible:this.open,containerId:this.portalId,openDirection:this.openDirection,position:"absolute",containerStyle:{"z-index":e}},i("limel-menu-surface",{key:"0190fe4af7e81b9f789ad1ac1cbd0304e92e57e0",open:this.open,onDismiss:this.onClose,style:Object.assign(Object.assign({},t),{"--menu-surface-width":l,"--limel-menu-surface-display":"flex","--limel-menu-surface-flex-direction":"column"}),class:{"has-grid-layout":this.gridLayout}},this.renderSearchField(),this.renderBreadcrumb(),this.renderLoader(),this.renderEmptyMessage(),this.renderMenuList())))}itemsWatcher(){this.clearSearch(),this.normalizedHotkeyCache.clear(),this.setFocus()}connectedCallback(){this.open&&document.addEventListener("keydown",this.handleDocumentKeyDown,!0)}disconnectedCallback(){document.removeEventListener("keydown",this.handleDocumentKeyDown,!0)}openWatcher(t){t?(document.addEventListener("keydown",this.handleDocumentKeyDown,!0),this.setFocus()):(document.removeEventListener("keydown",this.handleDocumentKeyDown,!0),this.clearSearch())}isFromTextInput(t){const e="function"==typeof t.composedPath?t.composedPath():[];for(const t of e){if(!(t instanceof HTMLElement))continue;if(t.isContentEditable)return!0;const e=t.tagName;if("INPUT"===e||"TEXTAREA"===e||"SELECT"===e)return!0}return!1}hasModifier(t){var e;return!(null===(e=t.getModifierState)||void 0===e?void 0:e.call(t,"AltGraph"))&&(t.ctrlKey||t.metaKey)}isReservedMenuHotkey(t){const e=D(t),i=e.at(-1);return!!i&&!(e.length>1||"arrowup"!==i&&"arrowdown"!==i&&"arrowleft"!==i&&"arrowright"!==i&&"tab"!==i&&"enter"!==i&&"space"!==i&&"escape"!==i)}findMenuItemByHotkey(t){for(const e of this.visibleItems){if(!this.isMenuItem(e)||e.disabled)continue;const i=e.hotkey;if(!i)continue;const l=this.getNormalizedHotkey(i);if(l&&l===t)return e}return null}getNormalizedHotkey(t){var e;const i=t.trim();if(this.normalizedHotkeyCache.has(i))return null!==(e=this.normalizedHotkeyCache.get(i))&&void 0!==e?e:null;const l=j(i);return this.normalizedHotkeyCache.set(i,l),l}getBreadcrumbsItems(){const t=[];let e=this.currentSubMenu;for(;e;)t.push({text:e.text,icon:e.icon,menuItem:e}),e=e.parentItem;return(t.length>0||this.rootItem!==wt)&&t.push(this.rootItem),t.reverse()}getCssProperties(){const t=["--menu-surface-width","--list-grid-item-max-width","--list-grid-item-min-width","--list-grid-gap","--notification-badge-background-color","--notification-badge-text-color"],e=getComputedStyle(this.host),i=t.map((t=>e.getPropertyValue(t)));return R(t,i)}isMenuItem(t){return!("separator"in t)}getMenuSurfaceWidth(t){var e,i,l,n;if(t)return t;if("inherit-from-trigger"===this.surfaceWidth){const t=null===(e=this.triggerElement)||void 0===e?void 0:e.assignedElements();return(null==t?void 0:t.length)&&(null===(i=t[0])||void 0===i?void 0:i.clientWidth)?`${t[0].clientWidth}px`:""}return"inherit-from-menu"===this.surfaceWidth&&(null===(l=this.host)||void 0===l?void 0:l.clientWidth)?`${null===(n=this.host)||void 0===n?void 0:n.clientWidth}px`:""}get visibleItems(){var t;return Array.isArray(this.searchResults)&&this.searchValue?this.searchResults:Array.isArray(null===(t=this.currentSubMenu)||void 0===t?void 0:t.items)?(this.cachedSubMenuSource!==this.currentSubMenu&&(this.cachedSubMenuSource=this.currentSubMenu,this.cachedSubMenuItems=this.currentSubMenu.items.map((t=>Object.assign(Object.assign({},t),{parentItem:this.currentSubMenu})))),this.cachedSubMenuItems):this.items}get host(){return l(this)}static get watchers(){return{items:[{itemsWatcher:0}],open:[{openWatcher:0}]}}};kt.style=":host(limel-menu){isolation:isolate;position:relative;display:inline-block;--badge-background-color:var( --notification-badge-background-color, rgb(var(--color-red-default)) );--badge-text-color:var( --notification-badge-text-color, rgb(var(--color-white)) )}:host([hidden]){display:none}.menu__trigger{border-color:transparent;border-width:1px;border-style:solid;background:none;color:rgb(var(--contrast-800));height:2.25rem}.menu__trigger-enabled:hover{border-color:rgb(var(--contrast-800));color:rgb(var(--contrast-1100))}.mdc-menu-surface--anchor{position:relative}limel-badge{position:absolute;top:-0.25rem;right:-0.25rem}";
|
|
90
|
+
*/class vt{constructor(){this.defaultConfig={isOpen:!0,badgeIcons:!1},this.getAriaOrientation=t=>"listbox"===t||"radiogroup"===t?"vertical":null,this.getIndexForWhichToApplyTabIndex=t=>{let e;for(let i=0,l=t.length;i<l;i+=1)if("separator"in t[i]);else{const l=t[i];if(l.disabled)continue;if(l.selected){e=i;break}void 0===e&&(e=i)}return e},this.renderListItem=(t,e)=>{var l;if("separator"in t)return i("li",{class:"mdc-deprecated-list-divider",role:"separator",key:`sep-${e}`},this.renderTextForSeparator(t),i("div",{class:"limel-list-divider-line"}));const n={};let r;e===this.applyTabIndexToItemAtIndex&&(n.tabindex="0"),r="radio"===this.config.type||"checkbox"===this.config.type?this.config.type:"selectable"===this.config.type?"option":"listitem";const o=null!==(l=t.id)&&void 0!==l?l:`item-${e}`;return i("limel-list-item",Object.assign({key:o,class:{"mdc-deprecated-list-item":!0,"mdc-deprecated-list-item--disabled":!!t.disabled}},n,{"data-index":e,type:r,text:t.text,secondaryText:t.secondaryText,icon:t.icon,image:t.image,primaryComponent:t.primaryComponent,badgeIcon:this.config.badgeIcons,iconSize:this.config.iconSize,selected:t.selected,disabled:t.disabled,actions:t.actions}))},this.renderTextForSeparator=t=>{if("text"in t)return i("h2",{class:"limel-list-divider-title"},t.text)}}render(t,e={}){let l;switch(t=t||[],this.config=Object.assign(Object.assign({},this.defaultConfig),e),this.config.type){case"checkbox":l="group";break;case"radio":l="radiogroup";break;default:l="listbox"}return this.applyTabIndexToItemAtIndex=this.getIndexForWhichToApplyTabIndex(t),i("ul",{class:"mdc-deprecated-list",role:l,"aria-orientation":this.getAriaOrientation(l)},t.map(this.renderListItem))}}const{ACTION_EVENT:_t}=W,yt=class{constructor(i){t(this,i),this.change=e(this,"change"),this.select=e(this,"select"),this.interact=e(this,"interact"),this.iconSize="small",this.maxLinesSecondaryText=3,this.listRenderer=new vt,this.setup=()=>{this.setupList(),this.setupListeners()},this.setupList=()=>{this.mdcList&&(this.teardown(),this.mdcList=null);const t=this.element.shadowRoot.querySelector(".mdc-deprecated-list");t&&(this.listElement=t,this.listElement.removeEventListener("mousedown",this.handleItemMouseDown),this.listElement.addEventListener("mousedown",this.handleItemMouseDown),this.mdcList=new gt(t),this.mdcList.hasTypeahead=!0)},this.handleItemMouseDown=t=>{var e;const i=t.target,l=null===(e=null==i?void 0:i.closest)||void 0===e?void 0:e.call(i,".mdc-deprecated-list-item");l&&(t.preventDefault(),l.classList.contains("mdc-deprecated-list-item--disabled")||l.focus({preventScroll:!0}))},this.setupListeners=()=>{this.mdcList&&(this.mdcList.unlisten(_t,this.handleAction),this.selectable=["selectable","radio","checkbox"].includes(this.type),this.multiple="checkbox"===this.type,this.selectable&&(this.mdcList.listen(_t,this.handleAction),this.mdcList.singleSelection=!this.multiple))},this.teardown=()=>{var t,e,i;null===(t=this.listElement)||void 0===t||t.removeEventListener("mousedown",this.handleItemMouseDown),null===(e=this.mdcList)||void 0===e||e.unlisten(_t,this.handleAction),null===(i=this.mdcList)||void 0===i||i.destroy()},this.handleAction=t=>{this.multiple?this.handleMultiSelect(t.detail.index):this.handleSingleSelect(t.detail.index)},this.handleSingleSelect=t=>{const e=this.items.filter(this.isListItem);if(e[t].disabled)return;const i=e.find((t=>!!t.selected));let l;i&&("radio"!==this.type&&(this.mdcList.selectedIndex=-1),l=Object.assign(Object.assign({},i),{selected:!1}),this.change.emit(l)),e[t]!==i&&(l=Object.assign(Object.assign({},e[t]),{selected:!0}),this.change.emit(l)),this.interact.emit(l)},this.handleMultiSelect=t=>{const e=this.items.filter(this.isListItem);if(e[t].disabled)return;const i=e.filter(((e,i)=>i===t?!e.selected:e.selected)).map((t=>Object.assign(Object.assign({},t),{selected:!0})));this.change.emit(i),this.interact.emit(Object.assign({},i[t]))},this.isListItem=t=>!("separator"in t)}connectedCallback(){this.setup()}disconnectedCallback(){this.teardown()}componentDidLoad(){this.setup(),this.triggerIconColorWarning()}render(){var t;this.config={badgeIcons:this.badgeIcons,type:this.type,iconSize:this.iconSize};let e=+(null===(t=this.maxLinesSecondaryText)||void 0===t?void 0:t.toFixed());this.maxLinesSecondaryText<1&&(e=1);const l=this.listRenderer.render(this.items,this.config);return i(n,{key:"cf75b5469a04c515ea9d11adc88a5db66bb01358",style:{"--maxLinesSecondaryText":`${e}`}},l)}handleType(){this.setupListeners()}itemsChanged(){this.mdcList&&setTimeout((()=>{this.setup();const t=this.items.filter(this.isListItem);if(this.multiple)this.mdcList.selectedIndex=t.filter((t=>t.selected)).map((e=>t.indexOf(e)));else{const e=t.findIndex((t=>t.selected));-1===e?this.mdcList.initializeListType():this.mdcList.selectedIndex=e}}),0)}triggerIconColorWarning(){var t;(null===(t=this.items)||void 0===t?void 0:t.some((t=>"iconColor"in t)))&&console.warn("The `iconColor` prop is deprecated, has no visual effect anymore, and will soon be removed! Use the new `Icon` interface, and instead of `iconColor: 'color-name'` write `icon: { name: 'icon-name', color: 'color-name' }`.")}static get delegatesFocus(){return!0}get element(){return l(this)}static get watchers(){return{type:[{handleType:0}],items:[{itemsChanged:0}]}}};yt.style='@charset "UTF-8";:host(.has-striped-rows) .mdc-deprecated-list{border:1px solid rgb(var(--contrast-400))}:host(.has-striped-rows) limel-list-item:not([disabled]):not([disabled=true]):not(:hover):nth-child(even),:host(.has-striped-rows.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):not(:hover):nth-child(even){background-color:var(--list-background-color-of-odd-interactive-items, rgb(var(--contrast-200)))}:host(.has-striped-rows) limel-list-item:not([disabled]):not([disabled=true]):not(:hover):nth-child(odd),:host(.has-striped-rows.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):not(:hover):nth-child(odd){background-color:var(--list-background-color-of-even-interactive-items, rgb(var(--contrast-100)))}:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]){transition:color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);cursor:pointer;color:var(--limel-theme-on-surface-color);background-color:transparent}:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):hover,:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):focus,:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):focus-visible{will-change:color, background-color, box-shadow, transform}:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):hover,:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):focus-visible{transform:translate3d(0, 0.01rem, 0);color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color)}:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):hover{box-shadow:var(--button-shadow-hovered)}:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):active{--limel-clickable-transform-timing-function:cubic-bezier( 0.83, -0.15, 0.49, 1.16 );transform:translate3d(0, 0.05rem, 0);box-shadow:var(--button-shadow-pressed)}:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):hover,:host(.has-interactive-items) limel-list-item:not([disabled]):not([disabled=true]):active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}:host(.has-grid-layout){--gap:var(--list-grid-gap, 0.5rem);padding:var(--gap);}:host(.has-grid-layout) .mdc-deprecated-list{display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fit, minmax(min(100%, max(var(--list-grid-item-max-width, 10rem) - var(--gap), var(--list-grid-item-min-width, 7.5rem))), 1fr));max-width:var(--list-grid-max-width, 100%)}:host(.has-grid-layout) .mdc-deprecated-list limel-list-item{border-radius:var(--limel-list-border-radius) !important}:host(.has-grid-layout) .mdc-deprecated-list-divider{grid-column:1/-1}:host(.static-actions-list){z-index:1;background-color:var(--limel-theme-surface-background-color)}:host(.has-position-sticky){position:sticky;box-shadow:0 0 0.75rem 0.5rem var(--limel-theme-surface-background-color)}:host(.has-position-sticky.is-on-top){top:0}:host(.has-position-sticky.is-at-bottom){bottom:0}:host(.is-on-top){border-bottom:1px solid rgb(var(--contrast-400));margin-bottom:0.5rem;padding-bottom:0.25rem}:host(.is-at-bottom){border-top:1px solid rgb(var(--contrast-400));margin-top:0.5rem;padding-top:0.25rem}:host(limel-list){--limel-list-border-radius:0.5rem;display:block;isolation:isolate}:host([hidden]){display:none}ul{--mdc-theme-text-icon-on-background:var( --icon-color, rgb(var(--contrast-900)) );margin:var(--list-margin, 0.25rem);border-radius:var(--limel-list-border-radius);padding:0;list-style:none}.mdc-deprecated-list-divider{border-bottom-color:transparent;display:flex;align-items:center;gap:0.75rem;height:auto;padding:0 0.25rem;margin-bottom:0.5rem}.mdc-deprecated-list-divider:not(:first-child){margin-top:0.75rem}:host(.has-striped-rows) .mdc-deprecated-list-divider{margin-top:0.5rem}.limel-list-divider-line{background-color:rgb(var(--contrast-400));height:0.125rem;border-radius:1rem;min-width:1rem;flex-grow:1}.limel-list-divider-title{all:unset;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:rgb(var(--contrast-900));font-size:var(--limel-theme-default-small-font-size)}';const wt={text:"",icon:{name:"home"},type:"icon-only"},kt=class{constructor(l){t(this,l),this.cancel=e(this,"cancel"),this.select=e(this,"select"),this.navigateMenu=e(this,"navigateMenu"),this.items=[],this.disabled=!1,this.openDirection="bottom-start",this.surfaceWidth="inherit-from-items",this.open=!1,this.badgeIcons=!1,this.gridLayout=!1,this.loading=!1,this.rootItem=wt,this.keepOpenOnSelect=!1,this.shouldRestoreFocusOnClose=!1,this.normalizedHotkeyCache=new Map,this.cachedSubMenuSource=null,this.cachedSubMenuItems=null,this.handleDocumentKeyDown=t=>{if(t.key===f&&this.open&&(this.shouldRestoreFocusOnClose=!0),!this.open||t.defaultPrevented||t.repeat)return;if(this.isFromTextInput(t)&&!this.hasModifier(t))return;const e=L(t);if(!e)return;if(this.isReservedMenuHotkey(e))return;const i=this.findMenuItemByHotkey(e);i&&(t.stopPropagation(),t.preventDefault(),this.handleSelect(i))},this.renderLoader=()=>{if(!this.loadingSubItems&&!this.loading)return;const t=this.getCssProperties();return i("div",{style:{width:t["--menu-surface-width"],display:"flex","align-items":"center","justify-content":"center",padding:"0.5rem 0"}},i("limel-spinner",{size:"mini",limeBranded:!1}))},this.renderBreadcrumb=()=>{const t=this.getBreadcrumbsItems();if(0!==t.length)return i("limel-breadcrumbs",{ref:this.setBreadcrumbsElement,style:{"border-bottom":"solid 1px rgb(var(--contrast-500))","flex-shrink":"0"},onSelect:this.handleBreadcrumbsSelect,onKeyDown:this.handleBreadcrumbsKeyDown,items:t})},this.handleBreadcrumbsSelect=t=>{if(!t.detail.menuItem)return this.currentSubMenu=null,this.clearSearch(),this.navigateMenu.emit(null),void this.setFocus();this.handleSelect(t.detail.menuItem)},this.renderSearchField=()=>{if(this.searcher)return i("limel-input-field",{tabindex:"0",ref:this.setSearchElement,placeholder:this.searchPlaceholder,type:"search",leadingIcon:"search",style:{padding:"0.25rem","box-sizing":"border-box"},value:this.searchValue,onChange:this.handleTextInput,onKeyDown:this.handleInputKeyDown})},this.renderEmptyMessage=()=>{var t;return this.loading||this.loadingSubItems||!this.emptyResultMessage||!Array.isArray(this.searchResults)||(null===(t=this.searchResults)||void 0===t?void 0:t.length)?null:i("p",{style:{padding:"0 1rem","text-align":"center"}},this.emptyResultMessage)},this.renderMenuList=()=>{let t=this.visibleItems;return(this.loadingSubItems||this.loading)&&(t=[]),i("limel-menu-list",{style:{"overflow-y":"auto","flex-grow":"1"},class:{"has-grid-layout has-interactive-items":this.gridLayout},items:t,badgeIcons:this.badgeIcons,onSelect:this.onSelect,ref:this.setListElement,onKeyDown:this.handleMenuKeyDown})},this.handleTextInput=async t=>{t.stopPropagation();const e=t.detail;if(this.searchValue=e,""===e)return this.searchResults=null,void(this.loadingSubItems=!1);this.loadingSubItems=!0;const i=await this.searcher(e);this.searchValue===e&&(this.searchResults=i,this.loadingSubItems=!1)},this.handleInputKeyDown=t=>{if(t.defaultPrevented)return;const e=t.key===c&&!t.altKey&&!t.metaKey&&!t.shiftKey,i=t.key===m,l=t.key===h;if(e||i||l)if(t.stopPropagation(),t.preventDefault(),e||l){if(this.focusBreadcrumbs())return;this.focusFirstListItem()}else i&&this.focusLastListItem()},this.handleListKeyDownCapture=t=>{const e=t.key===m,i=t.key===h;if(e||i)return e&&this.isFirstListItemFocused()?this.focusBreadcrumbs()?(t.stopPropagation(),void t.preventDefault()):void(this.searchInput&&(t.stopPropagation(),t.preventDefault(),this.searchInput.focus())):void(i&&this.isLastListItemFocused()&&this.searchInput&&(t.stopPropagation(),t.preventDefault(),this.searchInput.focus()))},this.handleMenuKeyDown=t=>{var e;const i=t.key===c&&!t.altKey&&!t.metaKey&&t.shiftKey,l=t.key===p,n=t.key===b;if(i||l||n){if(i)return t.stopPropagation(),t.preventDefault(),void(null===(e=this.searchInput)||void 0===e||e.focus());if(!this.gridLayout&&(l||n)){const e=this.getCurrentItem();t.stopPropagation(),t.preventDefault(),n?this.goForward(e):l&&this.goBack()}}},this.handleBreadcrumbsKeyDown=t=>{var e;const i=t.key===m,l=t.key===h;(i||l)&&(t.stopPropagation(),t.preventDefault(),i?null===(e=this.searchInput)||void 0===e||e.focus():l&&this.focusFirstListItem())},this.refreshSearch=async()=>{const t=this.searchValue;this.loadingSubItems=!0;const e=await this.searcher(t);this.searchValue===t&&(this.searchResults=e,this.loadingSubItems=!1,this.setFocus())},this.clearSearch=()=>{this.searchValue="",this.searchResults=null,this.loadingSubItems=!1},this.getCurrentItem=()=>{var t,e,i,l,n,r;let o=null!==(i=null===(e=null===(t=this.list)||void 0===t?void 0:t.shadowRoot)||void 0===e?void 0:e.activeElement)&&void 0!==i?i:null;o&&"menuitem"!==o.getAttribute("role")&&(o=o.closest('[role="menuitem"]')),o||(o=null===(n=null===(l=this.list)||void 0===l?void 0:l.shadowRoot)||void 0===n?void 0:n.querySelector('[role="menuitem"][tabindex="0"]'));const d=Number.parseInt(null!==(r=null==o?void 0:o.dataset.index)&&void 0!==r?r:"0",10),a=this.visibleItems[d];return null!=a?a:this.visibleItems[0]},this.goForward=t=>{this.handleSelect(t,!1)},this.goBack=()=>{if(!this.currentSubMenu)return;const t=this.currentSubMenu.parentItem;if(!t)return this.currentSubMenu=null,this.clearSearch(),this.navigateMenu.emit(null),void this.setFocus();this.handleSelect(t)},this.setTriggerAttributes=t=>{const e={"aria-haspopup":!0,"aria-expanded":this.open,"aria-controls":this.portalId,disabled:this.disabled,role:"button"};for(const[i,l]of Object.entries(e))l?t.setAttribute(i,String(l)):t.removeAttribute(i)},this.onClose=()=>{const t=this.shouldRestoreFocusOnClose;this.shouldRestoreFocusOnClose=!1,this.cancel.emit(),this.open=!1,this.currentSubMenu=null,t&&setTimeout(this.focusTrigger,0)},this.onTriggerClick=t=>{t.stopPropagation(),this.disabled||(this.open=!this.open)},this.handleSelect=async(t,e=!0)=>{if(Array.isArray(null==t?void 0:t.items)&&t.items.length>0)return this.selectedMenuItem=t,this.clearSearch(),this.currentSubMenu=t,this.navigateMenu.emit(t),void this.setFocus();if(F(null==t?void 0:t.items)){const e=t.items;this.selectedMenuItem=t,this.loadingSubItems=!0;const i=await e(t);if(this.selectedMenuItem!==t)return;if(t.items=i,this.loadingSubItems=!1,null==i?void 0:i.length)return this.currentSubMenu=t,this.clearSearch(),this.navigateMenu.emit(t),void this.setFocus()}e&&(this.selectedMenuItem=t,this.loadingSubItems=!1,this.select.emit(t),this.keepOpenOnSelect?F(this.searcher)&&this.searchValue&&this.refreshSearch():(this.open=!1,this.currentSubMenu=null,setTimeout(this.focusTrigger,0)))},this.onSelect=t=>{t.stopPropagation(),this.handleSelect(t.detail)},this.setListElement=t=>{this.list&&this.list.removeEventListener("keydown",this.handleListKeyDownCapture,!0),this.list=t,this.list&&this.list.addEventListener("keydown",this.handleListKeyDownCapture,!0)},this.setFocus=()=>{setTimeout((()=>{if(this.open)if(this.searchInput&&this.searcher){const t=new IntersectionObserver((()=>{t.unobserve(this.searchInput),this.searchInput!==window.document.activeElement&&this.searchInput.focus()}));t.observe(this.searchInput)}else if(this.list){const t=new IntersectionObserver((()=>{t.unobserve(this.list),this.focusMenuItem()}));t.observe(this.list)}}),0)},this.focusTrigger=()=>{var t,e;const i=null===(e=null===(t=this.triggerElement)||void 0===t?void 0:t.assignedElements())||void 0===e?void 0:e[0];S(i)},this.setSearchElement=t=>{this.searchInput=t},this.setBreadcrumbsElement=t=>{this.breadcrumbs=t},this.focusBreadcrumbs=()=>{var t;if(!this.breadcrumbs)return!1;const e=null===(t=this.breadcrumbs.shadowRoot)||void 0===t?void 0:t.querySelector("button, a");return!!e&&(e.focus(),!0)},this.focusFirstListItem=()=>{const t=this.getListItems(),e=null==t?void 0:t[0];null==e||e.focus()},this.focusLastListItem=()=>{const t=this.getListItems(),e=null==t?void 0:t.at(-1);null==e||e.focus()},this.isFirstListItemFocused=()=>{var t;const e=this.getListItems();return!!e&&e[0]===(null===(t=this.list.shadowRoot)||void 0===t?void 0:t.activeElement)},this.isLastListItemFocused=()=>{var t;const e=this.getListItems();return!!e&&e.at(-1)===(null===(t=this.list.shadowRoot)||void 0===t?void 0:t.activeElement)},this.getListItems=()=>{var t;if(!this.list)return null;const e=null===(t=this.list.shadowRoot)||void 0===t?void 0:t.querySelectorAll(".mdc-deprecated-list-item");return(null==e?void 0:e.length)?[...e]:null},this.focusMenuItem=()=>{var t;if(!this.list)return;const e=this.list.shadowRoot.activeElement;null==e||e.blur();const i=this.visibleItems.filter(this.isMenuItem),l=Math.max(i.findIndex((t=>t.selected)),0);null===(t=[...this.list.shadowRoot.querySelectorAll('[role="menuitem"]')][l])||void 0===t||t.focus()},this.renderNotificationBadge=()=>{if(this.items.some(this.hasNotificationBadge))return i("limel-badge",null)},this.hasNotificationBadge=t=>this.isMenuItem(t)&&void 0!==t.badge,this.setTriggerRef=t=>{this.triggerElement=t},this.portalId=d()}componentDidRender(){this.host.shadowRoot.querySelector("slot").assignedElements().forEach(this.setTriggerAttributes)}render(){const t=this.getCssProperties(),e=getComputedStyle(this.host).getPropertyValue("--dropdown-z-index"),l=this.getMenuSurfaceWidth(t["--menu-surface-width"]);return i("div",{key:"fe6ba56f411c10a7af5ad97111c2de31864ff29f",class:"mdc-menu-surface--anchor",onClick:this.onTriggerClick},i("slot",{key:"329e186424a4a588863333efef2efb43f36bdcb4",ref:this.setTriggerRef,name:"trigger"}),this.renderNotificationBadge(),i("limel-portal",{key:"e5f37c2734eee39889570643a8bf5ba9d87b18e2",visible:this.open,containerId:this.portalId,openDirection:this.openDirection,position:"absolute",containerStyle:{"z-index":e}},i("limel-menu-surface",{key:"0190fe4af7e81b9f789ad1ac1cbd0304e92e57e0",open:this.open,onDismiss:this.onClose,style:Object.assign(Object.assign({},t),{"--menu-surface-width":l,"--limel-menu-surface-display":"flex","--limel-menu-surface-flex-direction":"column"}),class:{"has-grid-layout":this.gridLayout}},this.renderSearchField(),this.renderBreadcrumb(),this.renderLoader(),this.renderEmptyMessage(),this.renderMenuList())))}itemsWatcher(){this.clearSearch(),this.normalizedHotkeyCache.clear(),this.setFocus()}connectedCallback(){this.open&&document.addEventListener("keydown",this.handleDocumentKeyDown,!0)}disconnectedCallback(){document.removeEventListener("keydown",this.handleDocumentKeyDown,!0)}openWatcher(t){t?(document.addEventListener("keydown",this.handleDocumentKeyDown,!0),this.setFocus()):(document.removeEventListener("keydown",this.handleDocumentKeyDown,!0),this.clearSearch())}isFromTextInput(t){const e="function"==typeof t.composedPath?t.composedPath():[];for(const t of e){if(!(t instanceof HTMLElement))continue;if(t.isContentEditable)return!0;const e=t.tagName;if("INPUT"===e||"TEXTAREA"===e||"SELECT"===e)return!0}return!1}hasModifier(t){var e;return!(null===(e=t.getModifierState)||void 0===e?void 0:e.call(t,"AltGraph"))&&(t.ctrlKey||t.metaKey)}isReservedMenuHotkey(t){const e=D(t),i=e.at(-1);return!!i&&!(e.length>1||"arrowup"!==i&&"arrowdown"!==i&&"arrowleft"!==i&&"arrowright"!==i&&"tab"!==i&&"enter"!==i&&"space"!==i&&"escape"!==i)}findMenuItemByHotkey(t){for(const e of this.visibleItems){if(!this.isMenuItem(e)||e.disabled)continue;const i=e.hotkey;if(!i)continue;const l=this.getNormalizedHotkey(i);if(l&&l===t)return e}return null}getNormalizedHotkey(t){var e;const i=t.trim();if(this.normalizedHotkeyCache.has(i))return null!==(e=this.normalizedHotkeyCache.get(i))&&void 0!==e?e:null;const l=j(i);return this.normalizedHotkeyCache.set(i,l),l}getBreadcrumbsItems(){const t=[];let e=this.currentSubMenu;for(;e;)t.push({text:e.text,icon:e.icon,menuItem:e}),e=e.parentItem;return(t.length>0||this.rootItem!==wt)&&t.push(this.rootItem),t.reverse()}getCssProperties(){const t=["--menu-surface-width","--list-grid-item-max-width","--list-grid-item-min-width","--list-grid-gap","--notification-badge-background-color","--notification-badge-text-color"],e=getComputedStyle(this.host),i=t.map((t=>e.getPropertyValue(t)));return R(t,i)}isMenuItem(t){return!("separator"in t)}getMenuSurfaceWidth(t){var e,i,l,n;if(t)return t;if("inherit-from-trigger"===this.surfaceWidth){const t=null===(e=this.triggerElement)||void 0===e?void 0:e.assignedElements();return(null==t?void 0:t.length)&&(null===(i=t[0])||void 0===i?void 0:i.clientWidth)?`${t[0].clientWidth}px`:""}return"inherit-from-menu"===this.surfaceWidth&&(null===(l=this.host)||void 0===l?void 0:l.clientWidth)?`${null===(n=this.host)||void 0===n?void 0:n.clientWidth}px`:""}get visibleItems(){var t;return Array.isArray(this.searchResults)&&this.searchValue?this.searchResults:Array.isArray(null===(t=this.currentSubMenu)||void 0===t?void 0:t.items)?(this.cachedSubMenuSource!==this.currentSubMenu&&(this.cachedSubMenuSource=this.currentSubMenu,this.cachedSubMenuItems=this.currentSubMenu.items.map((t=>Object.assign(Object.assign({},t),{parentItem:this.currentSubMenu})))),this.cachedSubMenuItems):this.items}get host(){return l(this)}static get watchers(){return{items:[{itemsWatcher:0}],open:[{openWatcher:0}]}}};kt.style=":host(limel-menu){isolation:isolate;position:relative;display:inline-block;--badge-background-color:var( --notification-badge-background-color, rgb(var(--color-red-default)) );--badge-text-color:var( --notification-badge-text-color, rgb(var(--color-white)) )}:host([hidden]){display:none}.menu__trigger{border-color:transparent;border-width:1px;border-style:solid;background:none;color:rgb(var(--contrast-800));height:2.25rem}.menu__trigger-enabled:hover{border-color:rgb(var(--contrast-800));color:rgb(var(--contrast-1100))}.mdc-menu-surface--anchor{position:relative}limel-badge{position:absolute;top:-0.25rem;right:-0.25rem}";
|
|
91
91
|
/**
|
|
92
92
|
* @license
|
|
93
93
|
* Copyright 2018 Google Inc.
|
|
@@ -49,6 +49,7 @@ export declare class List {
|
|
|
49
49
|
private config;
|
|
50
50
|
private listRenderer;
|
|
51
51
|
private mdcList;
|
|
52
|
+
private listElement;
|
|
52
53
|
private multiple;
|
|
53
54
|
private selectable;
|
|
54
55
|
/**
|
|
@@ -73,6 +74,21 @@ export declare class List {
|
|
|
73
74
|
protected itemsChanged(): void;
|
|
74
75
|
private setup;
|
|
75
76
|
private setupList;
|
|
77
|
+
/**
|
|
78
|
+
* Focus the pressed list item directly, without scrolling.
|
|
79
|
+
*
|
|
80
|
+
* Since the list uses `delegatesFocus`, pressing a non-focusable part of
|
|
81
|
+
* a list item (e.g. its text) would otherwise delegate focus to the first
|
|
82
|
+
* focusable row, scrolling it into view. In a scrolled list that moves the
|
|
83
|
+
* pressed row out from under the pointer before the click completes, so the
|
|
84
|
+
* click lands on empty space and no item gets selected.
|
|
85
|
+
*
|
|
86
|
+
* Bound to `mousedown` only (not `pointerdown`) so a touch-drag to scroll
|
|
87
|
+
* that starts on a row is not blocked by `preventDefault`.
|
|
88
|
+
*
|
|
89
|
+
* @param event - the mousedown event
|
|
90
|
+
*/
|
|
91
|
+
private handleItemMouseDown;
|
|
76
92
|
private setupListeners;
|
|
77
93
|
private teardown;
|
|
78
94
|
private handleAction;
|
|
@@ -25,6 +25,7 @@ import { CustomElementDefinition } from '../../global/shared-types/custom-elemen
|
|
|
25
25
|
* @exampleComponent limel-example-markdown-keys
|
|
26
26
|
* @exampleComponent limel-example-markdown-blockquotes
|
|
27
27
|
* @exampleComponent limel-example-markdown-horizontal-rule
|
|
28
|
+
* @exampleComponent limel-example-markdown-built-in-component
|
|
28
29
|
* @exampleComponent limel-example-markdown-custom-component
|
|
29
30
|
* @exampleComponent limel-example-markdown-custom-component-with-json-props
|
|
30
31
|
* @exampleComponent limel-example-markdown-remove-empty-paragraphs
|
|
@@ -2515,6 +2515,7 @@ export namespace Components {
|
|
|
2515
2515
|
* @exampleComponent limel-example-markdown-keys
|
|
2516
2516
|
* @exampleComponent limel-example-markdown-blockquotes
|
|
2517
2517
|
* @exampleComponent limel-example-markdown-horizontal-rule
|
|
2518
|
+
* @exampleComponent limel-example-markdown-built-in-component
|
|
2518
2519
|
* @exampleComponent limel-example-markdown-custom-component
|
|
2519
2520
|
* @exampleComponent limel-example-markdown-custom-component-with-json-props
|
|
2520
2521
|
* @exampleComponent limel-example-markdown-remove-empty-paragraphs
|
|
@@ -5610,6 +5611,7 @@ declare global {
|
|
|
5610
5611
|
* @exampleComponent limel-example-markdown-keys
|
|
5611
5612
|
* @exampleComponent limel-example-markdown-blockquotes
|
|
5612
5613
|
* @exampleComponent limel-example-markdown-horizontal-rule
|
|
5614
|
+
* @exampleComponent limel-example-markdown-built-in-component
|
|
5613
5615
|
* @exampleComponent limel-example-markdown-custom-component
|
|
5614
5616
|
* @exampleComponent limel-example-markdown-custom-component-with-json-props
|
|
5615
5617
|
* @exampleComponent limel-example-markdown-remove-empty-paragraphs
|
|
@@ -9131,6 +9133,7 @@ declare namespace LocalJSX {
|
|
|
9131
9133
|
* @exampleComponent limel-example-markdown-keys
|
|
9132
9134
|
* @exampleComponent limel-example-markdown-blockquotes
|
|
9133
9135
|
* @exampleComponent limel-example-markdown-horizontal-rule
|
|
9136
|
+
* @exampleComponent limel-example-markdown-built-in-component
|
|
9134
9137
|
* @exampleComponent limel-example-markdown-custom-component
|
|
9135
9138
|
* @exampleComponent limel-example-markdown-custom-component-with-json-props
|
|
9136
9139
|
* @exampleComponent limel-example-markdown-remove-empty-paragraphs
|
|
@@ -12333,6 +12336,7 @@ declare module "@stencil/core" {
|
|
|
12333
12336
|
* @exampleComponent limel-example-markdown-keys
|
|
12334
12337
|
* @exampleComponent limel-example-markdown-blockquotes
|
|
12335
12338
|
* @exampleComponent limel-example-markdown-horizontal-rule
|
|
12339
|
+
* @exampleComponent limel-example-markdown-built-in-component
|
|
12336
12340
|
* @exampleComponent limel-example-markdown-custom-component
|
|
12337
12341
|
* @exampleComponent limel-example-markdown-custom-component-with-json-props
|
|
12338
12342
|
* @exampleComponent limel-example-markdown-remove-empty-paragraphs
|