scb-wc-test 0.1.282 → 0.1.284
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/mvc/components/scb-horizontal-scroller/scb-horizontal-scroller.js +7 -7
- package/mvc/components/scb-options-menu/scb-options-menu-item.js +14 -10
- package/mvc/components/scb-options-menu/scb-options-menu.js +41 -4
- package/mvc/components/scb-options-menu/scb-options-sub-menu.js +5 -4
- package/mvc/components/scb-viz/scb-viz.js +433 -188
- package/package.json +2 -2
- package/scb-horizontal-scroller/scb-horizontal-scroller.d.ts +2 -2
- package/scb-horizontal-scroller/scb-horizontal-scroller.js +80 -85
- package/scb-options-menu/scb-options-menu-item.js +15 -11
- package/scb-options-menu/scb-options-menu.d.ts +1 -0
- package/scb-options-menu/scb-options-menu.js +57 -17
- package/scb-options-menu/scb-options-sub-menu.js +13 -12
- package/scb-viz/scb-viz.d.ts +35 -0
- package/scb-viz/scb-viz.js +854 -366
- package/scb-wc-test.bundle.js +957 -670
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as v,n as a,r as b,i as S,x as h,t as m}from"../../vendor/vendor.js";import"../scb-icon-button/scb-icon-button.js";import"../scb-button/scb-button.js";import"../../vendor/vendor-material.js";import"../../vendor/preload-helper.js";(function(){try{var t=typeof globalThis<"u"?globalThis:window;if(!t.__scb_ce_guard_installed__){t.__scb_ce_guard_installed__=!0;var l=customElements.define.bind(customElements);customElements.define=function(s,i,r){try{customElements.get(s)||l(s,i,r)}catch(n){var c=String(n||"");if(c.indexOf("already been used")===-1&&c.indexOf("NotSupportedError")===-1)throw n}}}}catch{}})();var y=Object.defineProperty,w=Object.getOwnPropertyDescriptor,g=t=>{throw TypeError(t)},o=(t,l,s,i)=>{for(var r=i>1?void 0:i?w(l,s):l,c=t.length-1,n;c>=0;c--)(n=t[c])&&(r=(i?n(l,s,r):n(r))||r);return i&&r&&y(l,s,r),r},z=(t,l,s)=>l.has(t)||g("Cannot "+s),_=(t,l,s)=>l.has(t)?g("Cannot add the same private member more than once"):l instanceof WeakSet?l.add(t):l.set(t,s),p=(t,l,s)=>(z(t,l,"access private method"),s),d,f,u;let e=class extends S{constructor(){super(...arguments),_(this,d),this.variant="standard",this.width="100%",this.showScrollbar=!1,this.rightScrollButtonLabel="Scrolla höger",this.leftScrollButtonLabel="Scrolla vänster",this.spacing=void 0,this.spacingTop=void 0,this.spacingBottom=void 0,this.spacingLeft=void 0,this.spacingRight=void 0,this.contentFlex=!1,this.internalGap="",this._canScrollLeft=!1,this._canScrollRight=!1,this.updateScrollButtons=()=>{const t=this.scrollerEl||this.shadowRoot?.querySelector(".scb-horizontal-scroller");if(!t){this._canScrollLeft&&(this._canScrollLeft=!1),this._canScrollRight&&(this._canScrollRight=!1),this.removeAttribute("data-scroll-left"),this.removeAttribute("data-scroll-right");return}const l=t.scrollLeft>0,s=t.scrollLeft+t.clientWidth<t.scrollWidth-1;this._canScrollLeft!==l&&(this._canScrollLeft=l),this._canScrollRight!==s&&(this._canScrollRight=s),l?this.setAttribute("data-scroll-left",""):this.removeAttribute("data-scroll-left"),s?this.setAttribute("data-scroll-right",""):this.removeAttribute("data-scroll-right")},this.lastScrollLeft=0,this.isScrolling=!1,this.scrollEndTimeout=null,this.scrollerEl=null,this.slotEl=null,this.sizeObserver=null,this.resizeRaf=null,this.handleScroll=()=>{const t=this.shadowRoot?.querySelector(".scb-horizontal-scroller");t&&(this.updateScrollButtons(),this.dispatchCustomEventWithAlias("scb-scroll",{scrollLeft:t.scrollLeft}),this.isScrolling||(this.isScrolling=!0,this.dispatchCustomEventWithAlias("scb-scroll-start",{scrollLeft:t.scrollLeft})),clearTimeout(this.scrollEndTimeout),this.scrollEndTimeout=setTimeout(()=>{this.isScrolling=!1,this.dispatchCustomEventWithAlias("scb-scroll-end",{scrollLeft:t.scrollLeft})},120),t.scrollLeft>this.lastScrollLeft?this.dispatchCustomEventWithAlias("scb-scroll-right",{scrollLeft:t.scrollLeft}):t.scrollLeft<this.lastScrollLeft&&this.dispatchCustomEventWithAlias("scb-scroll-left",{scrollLeft:t.scrollLeft}),this.lastScrollLeft=t.scrollLeft)},this.handleWheel=t=>{const l=this.scrollerEl||this.shadowRoot?.querySelector(".scb-horizontal-scroller");if(!l||t.deltaY===0)return;const s=l.scrollLeft,i=s>0,r=s+l.clientWidth<l.scrollWidth-1;!i&&!r||(l.scrollLeft+=t.deltaY,l.scrollLeft!==s&&t.preventDefault())}}doScrollBy(t){const l=this.shadowRoot?.querySelector(".scb-horizontal-scroller");l&&l.scrollBy({left:t,behavior:"smooth"})}connectedCallback(){super.connectedCallback(),this.style.setProperty("--scb-horizontal-scroller-width",this.width)}disconnectedCallback(){super.disconnectedCallback(),this.scrollerEl&&(this.scrollerEl.removeEventListener("scroll",this.handleScroll),this.scrollerEl.removeEventListener("wheel",this.handleWheel)),this.sizeObserver&&(this.sizeObserver.disconnect(),this.sizeObserver=null),this.resizeRaf!==null&&(cancelAnimationFrame(this.resizeRaf),this.resizeRaf=null),this.scrollEndTimeout&&(clearTimeout(this.scrollEndTimeout),this.scrollEndTimeout=null),this.scrollerEl=null,this.slotEl=null}dispatchCustomEvent(t,l={}){this.dispatchEvent(new CustomEvent(t,{detail:l,bubbles:!0,composed:!0}))}dispatchCustomEventWithAlias(t,l={}){if(this.dispatchCustomEvent(t,l),t.includes("-")){const s=t.replace(/-/g,"");this.dispatchCustomEvent(s,l)}}firstUpdated(){this.scrollerEl=this.shadowRoot?.querySelector(".scb-horizontal-scroller"),this.slotEl=this.shadowRoot?.querySelector("slot");const t=this.shadowRoot?.querySelector(".scroll-shadow-left"),l=this.shadowRoot?.querySelector(".scroll-shadow-right");this.scrollerEl&&(this.scrollerEl.addEventListener("scroll",this.handleScroll),this.scrollerEl.addEventListener("wheel",this.handleWheel,{passive:!1}));const s=()=>{if(this.slotEl&&t&&l){const c=this.slotEl.getBoundingClientRect();t.style.height=`${c.height}px`,l.style.height=`${c.height}px`}},i=()=>{s(),this.updateScrollButtons()},r=()=>{this.resizeRaf===null&&(this.resizeRaf=requestAnimationFrame(()=>{this.resizeRaf=null,i()}))};requestAnimationFrame(()=>{i()}),this.slotEl&&this.slotEl.addEventListener("slotchange",()=>{r()}),this.sizeObserver=new ResizeObserver(()=>{r()}),this.scrollerEl&&this.sizeObserver.observe(this.scrollerEl),this.slotEl&&this.sizeObserver.observe(this.slotEl),p(this,d,f).call(this),p(this,d,u).call(this)}updated(t){t.has("width")&&this.style.setProperty("--scb-horizontal-scroller-width",this.width),(t.has("spacing")||t.has("spacingTop")||t.has("spacingBottom")||t.has("spacingLeft")||t.has("spacingRight"))&&p(this,d,f).call(this),(t.has("internalGap")||t.has("contentFlex"))&&p(this,d,u).call(this)}mapSpacingToken(t){if(!t)return;const l=String(t).trim();if(l)return/^\d+$/.test(l)?`var(--spacing-${Math.max(0,Math.min(14,parseInt(l,10)))})`:l}render(){const t=this.variant,l=this._canScrollLeft||this._canScrollRight;switch(t){case"inline":return h`
|
|
2
2
|
<div class="scb-horizontal-scroller ${l?"canScroll":""}" tabindex="0">
|
|
3
3
|
${this.variant!="inline"?h`<div class="scroll-shadow-left"></div>`:""}
|
|
4
4
|
<slot></slot>
|
|
@@ -7,7 +7,7 @@ import{a as g,n as c,i as v,x as h,t as S}from"../../vendor/vendor.js";import"..
|
|
|
7
7
|
</div>
|
|
8
8
|
${l?h`
|
|
9
9
|
<div class="scroll-buttons">
|
|
10
|
-
${this.
|
|
10
|
+
${this._canScrollLeft?h`
|
|
11
11
|
<scb-button
|
|
12
12
|
class="scroll-button-left"
|
|
13
13
|
variant="text"
|
|
@@ -18,7 +18,7 @@ import{a as g,n as c,i as v,x as h,t as S}from"../../vendor/vendor.js";import"..
|
|
|
18
18
|
></scb-button>
|
|
19
19
|
`:""}
|
|
20
20
|
|
|
21
|
-
${this.
|
|
21
|
+
${this._canScrollRight?h`
|
|
22
22
|
<scb-button
|
|
23
23
|
class="scroll-button-right"
|
|
24
24
|
variant="text"
|
|
@@ -32,7 +32,7 @@ import{a as g,n as c,i as v,x as h,t as S}from"../../vendor/vendor.js";import"..
|
|
|
32
32
|
</div>
|
|
33
33
|
`:""}
|
|
34
34
|
`;default:return h`
|
|
35
|
-
${this.
|
|
35
|
+
${this._canScrollLeft?h`
|
|
36
36
|
<scb-icon-button
|
|
37
37
|
class="scroll-button-left"
|
|
38
38
|
icon="chevron_left"
|
|
@@ -47,7 +47,7 @@ import{a as g,n as c,i as v,x as h,t as S}from"../../vendor/vendor.js";import"..
|
|
|
47
47
|
<md-focus-ring inward></md-focus-ring>
|
|
48
48
|
</div>
|
|
49
49
|
<div class="scroll-shadow-right"></div>
|
|
50
|
-
${this.
|
|
50
|
+
${this._canScrollRight?h`
|
|
51
51
|
<scb-icon-button
|
|
52
52
|
class="scroll-button-right"
|
|
53
53
|
icon="chevron_right"
|
|
@@ -56,7 +56,7 @@ import{a as g,n as c,i as v,x as h,t as S}from"../../vendor/vendor.js";import"..
|
|
|
56
56
|
@click="${()=>this.doScrollBy(100)}"
|
|
57
57
|
></scb-icon-button>
|
|
58
58
|
`:""}
|
|
59
|
-
`}}};d=new WeakSet;
|
|
59
|
+
`}}};d=new WeakSet;f=function(){const t=this.mapSpacingToken(this.spacing),l=this.mapSpacingToken(this.spacingTop),s=this.mapSpacingToken(this.spacingBottom),i=this.mapSpacingToken(this.spacingLeft),r=this.mapSpacingToken(this.spacingRight),c=l??t,n=s??t;c?this.style.setProperty("--scb-horizontal-scroller-spacing-block-start",c):this.style.removeProperty("--scb-horizontal-scroller-spacing-block-start"),n?this.style.setProperty("--scb-horizontal-scroller-spacing-block-end",n):this.style.removeProperty("--scb-horizontal-scroller-spacing-block-end"),i?this.style.setProperty("--scb-horizontal-scroller-spacing-inline-start",i):this.style.removeProperty("--scb-horizontal-scroller-spacing-inline-start"),r?this.style.setProperty("--scb-horizontal-scroller-spacing-inline-end",r):this.style.removeProperty("--scb-horizontal-scroller-spacing-inline-end")};u=function(){const t=this.mapSpacingToken(this.internalGap);this.contentFlex&&t?this.style.setProperty("--scb-horizontal-scroller-internal-gap",t):this.style.removeProperty("--scb-horizontal-scroller-internal-gap")};e.styles=v`
|
|
60
60
|
:host {
|
|
61
61
|
display: flex;
|
|
62
62
|
position: relative;
|
|
@@ -192,4 +192,4 @@ import{a as g,n as c,i as v,x as h,t as S}from"../../vendor/vendor.js";import"..
|
|
|
192
192
|
:host([variant='inline'][show-scrollbar]) {
|
|
193
193
|
gap: var(--spacing-5);
|
|
194
194
|
}
|
|
195
|
-
`;
|
|
195
|
+
`;o([a({type:String,reflect:!0})],e.prototype,"variant",2);o([a({type:String,reflect:!0})],e.prototype,"width",2);o([a({type:Boolean,reflect:!0,attribute:"show-scrollbar"})],e.prototype,"showScrollbar",2);o([a({type:String,reflect:!0,attribute:"right-scroll-button-label"})],e.prototype,"rightScrollButtonLabel",2);o([a({type:String,reflect:!0,attribute:"left-scroll-button-label"})],e.prototype,"leftScrollButtonLabel",2);o([a({type:String,reflect:!0})],e.prototype,"spacing",2);o([a({type:String,reflect:!0,attribute:"spacing-top"})],e.prototype,"spacingTop",2);o([a({type:String,reflect:!0,attribute:"spacing-bottom"})],e.prototype,"spacingBottom",2);o([a({type:String,reflect:!0,attribute:"spacing-left"})],e.prototype,"spacingLeft",2);o([a({type:String,reflect:!0,attribute:"spacing-right"})],e.prototype,"spacingRight",2);o([a({type:Boolean,reflect:!0,attribute:"content-flex"})],e.prototype,"contentFlex",2);o([a({type:String,reflect:!0,attribute:"internal-gap"})],e.prototype,"internalGap",2);o([b()],e.prototype,"_canScrollLeft",2);o([b()],e.prototype,"_canScrollRight",2);e=o([m("scb-horizontal-scroller")],e);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as b,n as l,i as h,x as u,t as
|
|
1
|
+
import{a as b,n as l,i as h,x as u,t as p}from"../../vendor/vendor.js";import"../scb-divider/scb-divider.js";import"../../vendor/vendor-material.js";(function(){try{var t=typeof globalThis<"u"?globalThis:window;if(!t.__scb_ce_guard_installed__){t.__scb_ce_guard_installed__=!0;var e=customElements.define.bind(customElements);customElements.define=function(i,s,o){try{customElements.get(i)||e(i,s,o)}catch(c){var a=String(c||"");if(a.indexOf("already been used")===-1&&a.indexOf("NotSupportedError")===-1)throw c}}}}catch{}})();var d=Object.defineProperty,m=Object.getOwnPropertyDescriptor,r=(t,e,i,s)=>{for(var o=s>1?void 0:s?m(e,i):e,a=t.length-1,c;a>=0;a--)(c=t[a])&&(o=(s?c(e,i,o):c(o))||o);return s&&o&&d(e,i,o),o};let n=class extends h{constructor(){super(...arguments),this.label="",this.hasSubMenu=!1,this.openLeft=!1,this.divider=!1,this.leadingIcon="",this.trailingIcon="",this.itemHref="",this.href="",this._observedSubMenu=null,this._syncSubMenuFlags=()=>{const t=this.nextElementSibling,e=!!(t&&t.tagName==="SCB-OPTIONS-SUB-MENU"),i=!!(e&&t.hasAttribute("open-left"));e!==this.hasSubMenu&&(this.hasSubMenu=e),i!==this.openLeft&&(this.openLeft=i);const s=e?t:null;s!==this._observedSubMenu&&(this._subMenuAttrObserver?.disconnect(),this._subMenuAttrObserver=void 0,this._observedSubMenu=s,s&&(this._subMenuAttrObserver=new MutationObserver(()=>this._syncSubMenuFlags()),this._subMenuAttrObserver.observe(s,{attributes:!0,attributeFilter:["open-left"]})))},this.handleClick=t=>{this._effectiveHref?this._navigateToHref(t):this._toggleSubMenu()},this._onBlur=t=>{const e=this.closest("scb-options-sub-menu");if(e&&e.open){const i=t.relatedTarget;(!i||!e.contains(i))&&(e.dispatchEvent(new CustomEvent("hide-submenu",{bubbles:!0,composed:!0})),e.dispatchEvent(new CustomEvent("hidesubmenu",{bubbles:!0,composed:!0})))}},this._onFocus=()=>{const t=this.nextElementSibling;this.classList.contains("open-submenu")&&(t&&t.tagName==="SCB-OPTIONS-SUB-MENU"&&t.hasAttribute("open")||this.classList.remove("open-submenu"))},this._onKeyDown=t=>{if(t.key==="Enter"||t.key===" "){t.preventDefault(),this.handleClick(t);return}if(t.key==="ArrowDown"){t.preventDefault();let e=this.nextElementSibling;for(;e&&e.tagName!=="SCB-OPTIONS-MENU-ITEM";)e=e.nextElementSibling;e&&e.shadowRoot?.querySelector("li")?.focus();return}if(t.key==="ArrowUp"){t.preventDefault();let e=this.previousElementSibling;for(;e&&e.tagName!=="SCB-OPTIONS-MENU-ITEM";)e=e.previousElementSibling;e&&e.shadowRoot?.querySelector("li")?.focus();return}if(t.key==="ArrowRight"){t.preventDefault();const e=this.nextElementSibling;e&&e.tagName==="SCB-OPTIONS-SUB-MENU"&&(e.hasAttribute("open")||(this._toggleSubMenu(),e.dispatchEvent(new CustomEvent("show-submenu",{bubbles:!0,composed:!0})),e.dispatchEvent(new CustomEvent("showsubmenu",{bubbles:!0,composed:!0}))),setTimeout(()=>{const i=e.querySelector("scb-options-menu-item");i&&i.shadowRoot?.querySelector("li")?.focus()},0));return}if(t.key==="ArrowLeft"){t.preventDefault();const e=this.nextElementSibling;if(e&&e.tagName==="SCB-OPTIONS-SUB-MENU"&&e.hasAttribute("open")){this._toggleSubMenu(),e.dispatchEvent(new CustomEvent("hide-submenu",{bubbles:!0,composed:!0})),e.dispatchEvent(new CustomEvent("hidesubmenu",{bubbles:!0,composed:!0}));return}const i=this.closest("scb-options-sub-menu");if(i){const s=i.previousElementSibling;s&&s.tagName==="SCB-OPTIONS-MENU-ITEM"&&s.shadowRoot?.querySelector("li")?.focus()}return}}}get _effectiveHref(){return this.itemHref||this.href}connectedCallback(){super.connectedCallback(),this._syncSubMenuFlags(),this._subMenuChildObserver??(this._subMenuChildObserver=new MutationObserver(()=>this._syncSubMenuFlags())),this._subMenuChildObserver.disconnect();const t=this.parentElement;t&&this._subMenuChildObserver.observe(t,{childList:!0})}disconnectedCallback(){this._subMenuChildObserver?.disconnect(),this._subMenuAttrObserver?.disconnect(),this._subMenuChildObserver=void 0,this._subMenuAttrObserver=void 0,this._observedSubMenu=null,super.disconnectedCallback()}render(){return u`
|
|
2
2
|
${this.divider?u`<scb-divider></scb-divider>`:""}
|
|
3
3
|
<li @click=${this.handleClick} @keydown=${this._onKeyDown} @blur=${this._onBlur} @focus=${this._onFocus} role="menuitem" tabindex="0">
|
|
4
4
|
|
|
@@ -16,25 +16,25 @@ import{a as b,n as l,i as h,x as u,t as d}from"../../vendor/vendor.js";import"..
|
|
|
16
16
|
<md-ripple></md-ripple>
|
|
17
17
|
`}
|
|
18
18
|
</li>
|
|
19
|
-
`}_navigateToHref(t){const e=this._effectiveHref;if(!e)return;const
|
|
19
|
+
`}_navigateToHref(t){const e=this._effectiveHref;if(!e)return;const i={href:e},s=!this.dispatchEvent(new CustomEvent("item-navigate",{detail:i,bubbles:!0,composed:!0,cancelable:!0}))||!this.dispatchEvent(new CustomEvent("itemnavigate",{detail:i,bubbles:!0,composed:!0,cancelable:!0}));t.preventDefault(),t.stopPropagation(),s||(window.location.href=e)}_toggleSubMenu(){const t=this.nextElementSibling;t&&t.tagName==="SCB-OPTIONS-SUB-MENU"&&(this.classList.toggle("open-submenu"),t.hasAttribute("open")?(t.dispatchEvent(new CustomEvent("hide-submenu",{bubbles:!0,composed:!0})),t.dispatchEvent(new CustomEvent("hidesubmenu",{bubbles:!0,composed:!0}))):(t.dispatchEvent(new CustomEvent("show-submenu",{bubbles:!0,composed:!0})),t.dispatchEvent(new CustomEvent("showsubmenu",{bubbles:!0,composed:!0}))))}};n.styles=b`
|
|
20
20
|
:host {
|
|
21
21
|
display: block;
|
|
22
22
|
}
|
|
23
23
|
:host li{
|
|
24
24
|
position: relative;
|
|
25
25
|
list-style: none;
|
|
26
|
-
padding: var(--spacing-3) var(--spacing-5);
|
|
26
|
+
padding: var(--scb-options-menu-item-padding-block, var(--spacing-3, 8px)) var(--scb-options-menu-item-padding-inline, var(--spacing-5, 16px));
|
|
27
27
|
cursor: pointer;
|
|
28
|
-
min-height: 56px;
|
|
28
|
+
min-height: var(--scb-options-menu-item-min-height, 56px);
|
|
29
29
|
display: flex;
|
|
30
|
-
gap: var(--spacing-4);
|
|
30
|
+
gap: var(--scb-options-menu-item-gap, var(--spacing-4, 12px));
|
|
31
31
|
align-items: center;
|
|
32
32
|
|
|
33
33
|
}
|
|
34
34
|
:host li .label {
|
|
35
|
-
font-size: var(--md-sys-typescale-body-large-size);
|
|
36
|
-
line-height: var(--md-sys-typescale-body-large-line-height);
|
|
37
|
-
letter-spacing: var(--md-sys-typescale-body-large-tracking);
|
|
35
|
+
font-size: var(--scb-options-menu-label-font-size, var(--md-sys-typescale-body-large-size));
|
|
36
|
+
line-height: var(--scb-options-menu-label-line-height, var(--md-sys-typescale-body-large-line-height));
|
|
37
|
+
letter-spacing: var(--scb-options-menu-label-letter-spacing, var(--md-sys-typescale-body-large-tracking));
|
|
38
38
|
}
|
|
39
39
|
:host li md-focus-ring {
|
|
40
40
|
border-radius: var(--md-sys-shape-corner-small);
|
|
@@ -43,15 +43,19 @@ import{a as b,n as l,i as h,x as u,t as d}from"../../vendor/vendor.js";import"..
|
|
|
43
43
|
pointer-events: none;
|
|
44
44
|
z-index: 1;
|
|
45
45
|
}
|
|
46
|
+
:host li md-icon {
|
|
47
|
+
--md-icon-size: var(--scb-options-menu-icon-size, 24px);
|
|
48
|
+
}
|
|
46
49
|
:host li md-icon.ti {
|
|
47
50
|
margin-left: auto;
|
|
48
51
|
}
|
|
49
52
|
:host li a {
|
|
50
53
|
display: flex;
|
|
51
|
-
gap: var(--spacing-4);
|
|
54
|
+
gap: var(--scb-options-menu-item-gap, var(--spacing-4, 12px));
|
|
52
55
|
align-items: center;
|
|
53
56
|
color: var(--md-sys-color-on-surface);
|
|
54
57
|
text-decoration: none;
|
|
58
|
+
width: 100%;
|
|
55
59
|
}
|
|
56
60
|
:host(.open-submenu) li {
|
|
57
61
|
background: var(--md-sys-color-secondary-container);
|
|
@@ -59,4 +63,4 @@ import{a as b,n as l,i as h,x as u,t as d}from"../../vendor/vendor.js";import"..
|
|
|
59
63
|
:host li:focus {
|
|
60
64
|
outline: none;
|
|
61
65
|
}
|
|
62
|
-
`;r([l({type:String})],n.prototype,"label",2);r([l({type:Boolean})],n.prototype,"hasSubMenu",2);r([l({type:Boolean})],n.prototype,"openLeft",2);r([l({type:Boolean})],n.prototype,"divider",2);r([l({type:String,attribute:"leading-icon"})],n.prototype,"leadingIcon",2);r([l({type:String,attribute:"trailing-icon"})],n.prototype,"trailingIcon",2);r([l({type:String,attribute:"item-href"})],n.prototype,"itemHref",2);r([l({type:String})],n.prototype,"href",2);n=r([
|
|
66
|
+
`;r([l({type:String})],n.prototype,"label",2);r([l({type:Boolean})],n.prototype,"hasSubMenu",2);r([l({type:Boolean})],n.prototype,"openLeft",2);r([l({type:Boolean})],n.prototype,"divider",2);r([l({type:String,attribute:"leading-icon"})],n.prototype,"leadingIcon",2);r([l({type:String,attribute:"trailing-icon"})],n.prototype,"trailingIcon",2);r([l({type:String,attribute:"item-href"})],n.prototype,"itemHref",2);r([l({type:String})],n.prototype,"href",2);n=r([p("scb-options-menu-item")],n);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as _,n as c,i as f,x as y,t as v}from"../../vendor/vendor.js";import"./scb-options-menu-item.js";import"./scb-options-sub-menu.js";import"../scb-divider/scb-divider.js";import"../../vendor/vendor-material.js";(function(){try{var t=typeof globalThis<"u"?globalThis:window;if(!t.__scb_ce_guard_installed__){t.__scb_ce_guard_installed__=!0;var i=customElements.define.bind(customElements);customElements.define=function(e,s,n){try{customElements.get(e)||i(e,s,n)}catch(o){var p=String(o||"");if(p.indexOf("already been used")===-1&&p.indexOf("NotSupportedError")===-1)throw o}}}}catch{}})();var x=Object.defineProperty,E=Object.getOwnPropertyDescriptor,a=(t,i,e,s)=>{for(var n=s>1?void 0:s?E(i,e):i,p=t.length-1,o;p>=0;p--)(o=t[p])&&(n=(s?o(i,e,n):o(n))||n);return s&&n&&x(i,e,n),n};let r=class extends f{constructor(){super(...arguments),this.open=!1,this.size="large",this.inSb=!1,this.spacing=void 0,this.spacingTop=void 0,this.spacingBottom=void 0,this.spacingLeft=void 0,this.spacingRight=void 0,this.__lastTriggerEl=null,this.__onViewportChange=()=>{this.open&&this.__positionToTrigger()},this.__onDocumentClick=t=>{const i=this.__getActionFromEvent(t);if(i){i==="open"&&(this.__setOpen(!0),this.dispatchEvent(new CustomEvent("open",{bubbles:!0,composed:!0}))),i==="close"&&(this.__setOpen(!1),this.dispatchEvent(new CustomEvent("close",{bubbles:!0,composed:!0}))),i==="toggle"&&(this.__setOpen(!this.open),this.dispatchEvent(new CustomEvent("toggle",{bubbles:!0,composed:!0}))),t.stopPropagation();return}if(!this.inSb&&this.open&&!this.isClickInScbMenu(t)){this.__setOpen(!1);return}},this.__onDocumentKeydown=t=>{if(this.open&&t.key==="Escape"){this.__setOpen(!1);return}}}firstUpdated(){this.__applySpacing()}render(){return y`
|
|
2
2
|
<div
|
|
3
3
|
role="menu"
|
|
4
4
|
class="scb-options-menu-panel${this.open?" open":""}"
|
|
5
5
|
>
|
|
6
6
|
<slot></slot>
|
|
7
7
|
</div>
|
|
8
|
-
`}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this.__onDocumentClick,!1),document.addEventListener("keydown",this.__onDocumentKeydown,!0),window.addEventListener("resize",this.__onViewportChange,{passive:!0}),window.addEventListener("scroll",this.__onViewportChange,{passive:!0,capture:!0})}disconnectedCallback(){document.removeEventListener("click",this.__onDocumentClick,!1),document.removeEventListener("keydown",this.__onDocumentKeydown,!0),window.removeEventListener("resize",this.__onViewportChange),window.removeEventListener("scroll",this.__onViewportChange,!0),super.disconnectedCallback()}__setOpen(t){this.open=t}__getActionFromEvent(t){if(!this.id)return null;const i=t.composedPath();for(const e of i)if(e instanceof Element){if(e.getAttribute("data-menu-open")===this.id)return this.__lastTriggerEl=e,"open";if(e.getAttribute("data-menu-close")===this.id)return this.__lastTriggerEl=e,"close";if(e.getAttribute("data-menu-toggle")===this.id)return this.__lastTriggerEl=e,"toggle";if(e.getAttribute("aria-controls")===this.id)return this.__lastTriggerEl=e,"toggle"}return null}isClickInScbMenu(t){return t.composedPath().some(e=>e instanceof Element&&(e.tagName==="SCB-OPTIONS-MENU"||e.tagName==="SCB-OPTIONS-SUB-MENU"))}updated(t){t.has("open")&&(this.__applyOpenSideEffects(),this.open?this.dispatchEvent(new CustomEvent("open",{bubbles:!0,composed:!0})):this.dispatchEvent(new CustomEvent("close",{bubbles:!0,composed:!0}))),(t.has("spacing")||t.has("spacingTop")||t.has("spacingBottom")||t.has("spacingLeft")||t.has("spacingRight"))&&this.__applySpacing()}__applyOpenSideEffects(){this.__updateTriggersExpanded(),this.open?this.__positionToTrigger():this.__restoreFocusToTrigger()}__positionToTrigger(){if(!this.open||!this.__lastTriggerEl)return;const t=this.__lastTriggerEl,i=this.shadowRoot?.querySelector(".scb-options-menu-panel");i&&requestAnimationFrame(()=>{if(!this.open)return;const e=t.getBoundingClientRect(),s=i.getBoundingClientRect(),n=window.innerWidth,
|
|
8
|
+
`}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this.__onDocumentClick,!1),document.addEventListener("keydown",this.__onDocumentKeydown,!0),window.addEventListener("resize",this.__onViewportChange,{passive:!0}),window.addEventListener("scroll",this.__onViewportChange,{passive:!0,capture:!0})}disconnectedCallback(){document.removeEventListener("click",this.__onDocumentClick,!1),document.removeEventListener("keydown",this.__onDocumentKeydown,!0),window.removeEventListener("resize",this.__onViewportChange),window.removeEventListener("scroll",this.__onViewportChange,!0),super.disconnectedCallback()}__setOpen(t){this.open=t}__getActionFromEvent(t){if(!this.id)return null;const i=t.composedPath();for(const e of i)if(e instanceof Element){if(e.getAttribute("data-menu-open")===this.id)return this.__lastTriggerEl=e,"open";if(e.getAttribute("data-menu-close")===this.id)return this.__lastTriggerEl=e,"close";if(e.getAttribute("data-menu-toggle")===this.id)return this.__lastTriggerEl=e,"toggle";if(e.getAttribute("aria-controls")===this.id)return this.__lastTriggerEl=e,"toggle"}return null}isClickInScbMenu(t){return t.composedPath().some(e=>e instanceof Element&&(e.tagName==="SCB-OPTIONS-MENU"||e.tagName==="SCB-OPTIONS-SUB-MENU"))}updated(t){t.has("open")&&(this.__applyOpenSideEffects(),this.open?this.dispatchEvent(new CustomEvent("open",{bubbles:!0,composed:!0})):this.dispatchEvent(new CustomEvent("close",{bubbles:!0,composed:!0}))),(t.has("spacing")||t.has("spacingTop")||t.has("spacingBottom")||t.has("spacingLeft")||t.has("spacingRight"))&&this.__applySpacing()}__applyOpenSideEffects(){this.__updateTriggersExpanded(),this.open?this.__positionToTrigger():this.__restoreFocusToTrigger()}__positionToTrigger(){if(!this.open||!this.__lastTriggerEl)return;const t=this.__lastTriggerEl,i=this.shadowRoot?.querySelector(".scb-options-menu-panel");i&&requestAnimationFrame(()=>{if(!this.open)return;const e=t.getBoundingClientRect(),s=i.getBoundingClientRect(),n=window.innerWidth,p=window.innerHeight,o=8,g=4;let l=e.left,u=e.bottom+g;const m=s.width,h=s.height;l+m>n-o&&(l=Math.max(o,n-o-m)),l<o&&(l=o);let d="top";if(u+h>p-o){const b=e.top-g-h;b>=o&&(u=b,d="bottom")}this.style.position="fixed",this.style.left=`${Math.round(l)}px`,this.style.top=`${Math.round(u)}px`,this.style.setProperty("--scb-options-menu-transform-origin",d)})}__restoreFocusToTrigger(){this.__lastTriggerEl&&requestAnimationFrame(()=>{this.__lastTriggerEl?.focus?.()})}__updateTriggersExpanded(){if(!this.id)return;const t=String(this.open),i=s=>{s.getAttribute("aria-controls")===this.id&&s.setAttribute("aria-expanded",t)};this.__lastTriggerEl&&i(this.__lastTriggerEl),document.querySelectorAll(`[aria-controls="${this.id}"], [data-menu-open="${this.id}"], [data-menu-close="${this.id}"], [data-menu-toggle="${this.id}"]`).forEach(i)}__applySpacing(){const t=this.__mapSpacingToken(this.spacing),i=this.__mapSpacingToken(this.spacingTop)??t,e=this.__mapSpacingToken(this.spacingBottom)??t,s=this.__mapSpacingToken(this.spacingLeft),n=this.__mapSpacingToken(this.spacingRight);i?this.style.setProperty("--scb-options-menu-spacing-block-start",i):this.style.removeProperty("--scb-options-menu-spacing-block-start"),e?this.style.setProperty("--scb-options-menu-spacing-block-end",e):this.style.removeProperty("--scb-options-menu-spacing-block-end"),s?this.style.setProperty("--scb-options-menu-spacing-inline-start",s):this.style.removeProperty("--scb-options-menu-spacing-inline-start"),n?this.style.setProperty("--scb-options-menu-spacing-inline-end",n):this.style.removeProperty("--scb-options-menu-spacing-inline-end")}__mapSpacingToken(t){if(!t)return;const i=String(t).trim();if(i)return/^\d+$/.test(i)?`var(--spacing-${Math.max(0,Math.min(14,parseInt(i,10)))})`:i}};r.styles=_`
|
|
9
9
|
:host {
|
|
10
10
|
position: absolute;
|
|
11
11
|
display: block;
|
|
@@ -13,6 +13,16 @@ import{a as f,n as c,i as b,x as v,t as y}from"../../vendor/vendor.js";import"./
|
|
|
13
13
|
font-family: var(--brand-font);
|
|
14
14
|
--scb-options-menu-max-width: 300px;
|
|
15
15
|
--scb-options-menu-max-height: 600px;
|
|
16
|
+
--scb-options-menu-panel-padding-block: var(--spacing-3, 8px);
|
|
17
|
+
--scb-options-menu-item-padding-inline: var(--spacing-5, 16px);
|
|
18
|
+
--scb-options-menu-item-padding-block: var(--spacing-3, 8px);
|
|
19
|
+
--scb-options-menu-item-gap: var(--spacing-4, 12px);
|
|
20
|
+
--scb-options-menu-item-min-height: 56px;
|
|
21
|
+
--scb-options-menu-label-font-size: var(--md-sys-typescale-body-large-size);
|
|
22
|
+
--scb-options-menu-label-line-height: var(--md-sys-typescale-body-large-line-height);
|
|
23
|
+
--scb-options-menu-label-letter-spacing: var(--md-sys-typescale-body-large-tracking);
|
|
24
|
+
--scb-options-menu-icon-size: 24px;
|
|
25
|
+
--scb-options-sub-menu-offset-top: -44px;
|
|
16
26
|
z-index: 1000;
|
|
17
27
|
|
|
18
28
|
margin-block-start: var(--scb-options-menu-spacing-block-start, 0);
|
|
@@ -20,8 +30,35 @@ import{a as f,n as c,i as b,x as v,t as y}from"../../vendor/vendor.js";import"./
|
|
|
20
30
|
margin-inline-start: var(--scb-options-menu-spacing-inline-start, 0);
|
|
21
31
|
margin-inline-end: var(--scb-options-menu-spacing-inline-end, 0);
|
|
22
32
|
}
|
|
33
|
+
|
|
34
|
+
:host([size='medium']) {
|
|
35
|
+
--scb-options-menu-panel-padding-block: var(--spacing-2, 4px);
|
|
36
|
+
--scb-options-menu-item-padding-inline: var(--spacing-5, 16px);
|
|
37
|
+
--scb-options-menu-item-padding-block: var(--spacing-2, 4px);
|
|
38
|
+
--scb-options-menu-item-gap: var(--spacing-3, 8px);
|
|
39
|
+
--scb-options-menu-item-min-height: 48px;
|
|
40
|
+
--scb-options-menu-label-font-size: var(--md-sys-typescale-body-medium-size);
|
|
41
|
+
--scb-options-menu-label-line-height: var(--md-sys-typescale-body-medium-line-height);
|
|
42
|
+
--scb-options-menu-label-letter-spacing: var(--md-sys-typescale-body-medium-tracking);
|
|
43
|
+
--scb-options-menu-icon-size: 20px;
|
|
44
|
+
--scb-options-sub-menu-offset-top: -40px;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
:host([size='small']) {
|
|
48
|
+
--scb-options-menu-panel-padding-block: var(--spacing-1, 2px);
|
|
49
|
+
--scb-options-menu-item-padding-inline: var(--spacing-4, 12px);
|
|
50
|
+
--scb-options-menu-item-padding-block: var(--spacing-2, 4px);
|
|
51
|
+
--scb-options-menu-item-gap: var(--spacing-3, 8px);
|
|
52
|
+
--scb-options-menu-item-min-height: 40px;
|
|
53
|
+
--scb-options-menu-label-font-size: var(--md-sys-typescale-body-small-size);
|
|
54
|
+
--scb-options-menu-label-line-height: var(--md-sys-typescale-body-small-line-height);
|
|
55
|
+
--scb-options-menu-label-letter-spacing: var(--md-sys-typescale-body-small-tracking);
|
|
56
|
+
--scb-options-menu-icon-size: 18px;
|
|
57
|
+
--scb-options-sub-menu-offset-top: -32px;
|
|
58
|
+
}
|
|
59
|
+
|
|
23
60
|
:host > .scb-options-menu-panel {
|
|
24
|
-
padding: var(--
|
|
61
|
+
padding: var(--scb-options-menu-panel-padding-block) 0;
|
|
25
62
|
color: var(--md-sys-color-on-surface);
|
|
26
63
|
border-radius: var(--md-sys-shape-corner-extra-small);
|
|
27
64
|
background: var(--md-sys-color-surface, #FFF);
|
|
@@ -48,4 +85,4 @@ import{a as f,n as c,i as b,x as v,t as y}from"../../vendor/vendor.js";import"./
|
|
|
48
85
|
opacity 0.25s cubic-bezier(0.23, 1, 0.32, 1),
|
|
49
86
|
transform 0.32s cubic-bezier(0.23, 1, 0.32, 1);
|
|
50
87
|
}
|
|
51
|
-
`;
|
|
88
|
+
`;a([c({type:Boolean,reflect:!0})],r.prototype,"open",2);a([c({type:String,reflect:!0})],r.prototype,"size",2);a([c({type:Boolean,attribute:!1})],r.prototype,"inSb",2);a([c({type:String,reflect:!0})],r.prototype,"spacing",2);a([c({type:String,attribute:"spacing-top",reflect:!0})],r.prototype,"spacingTop",2);a([c({type:String,attribute:"spacing-bottom",reflect:!0})],r.prototype,"spacingBottom",2);a([c({type:String,attribute:"spacing-left",reflect:!0})],r.prototype,"spacingLeft",2);a([c({type:String,attribute:"spacing-right",reflect:!0})],r.prototype,"spacingRight",2);r=a([v("scb-options-menu")],r);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{a,n as p,i as d,x as l,t as b}from"../../vendor/vendor.js";(function(){try{var e=typeof globalThis<"u"?globalThis:window;if(!e.__scb_ce_guard_installed__){e.__scb_ce_guard_installed__=!0;var t=customElements.define.bind(customElements);customElements.define=function(i,
|
|
1
|
+
import{a as h,n as p,i as d,x as l,t as b}from"../../vendor/vendor.js";(function(){try{var e=typeof globalThis<"u"?globalThis:window;if(!e.__scb_ce_guard_installed__){e.__scb_ce_guard_installed__=!0;var t=customElements.define.bind(customElements);customElements.define=function(n,i,s){try{customElements.get(n)||t(n,i,s)}catch(r){var o=String(r||"");if(o.indexOf("already been used")===-1&&o.indexOf("NotSupportedError")===-1)throw r}}}}catch{}})();var c=Object.defineProperty,m=Object.getOwnPropertyDescriptor,u=(e,t,n,i)=>{for(var s=i>1?void 0:i?m(t,n):t,o=e.length-1,r;o>=0;o--)(r=e[o])&&(s=(i?r(t,n,s):r(s))||s);return i&&s&&c(t,n,s),s};let a=class extends d{constructor(){super(...arguments),this.open=!1,this._show=()=>{this.setAttribute("open",""),this.open=!0},this._hide=e=>{this.removeAttribute("open"),this.open=!1,e&&e.stopPropagation()}}connectedCallback(){super.connectedCallback(),this.addEventListener("show-submenu",this._show),this.addEventListener("showsubmenu",this._show),this.addEventListener("hide-submenu",this._hide),this.addEventListener("hidesubmenu",this._hide)}disconnectedCallback(){this.removeEventListener("show-submenu",this._show),this.removeEventListener("showsubmenu",this._show),this.removeEventListener("hide-submenu",this._hide),this.removeEventListener("hidesubmenu",this._hide),super.disconnectedCallback()}firstUpdated(){let e=0,t=this.parentElement;for(;t;)t.tagName==="SCB-OPTIONS-SUB-MENU"&&e++,t=t.parentElement;e%2===1?this.setAttribute("open-left",""):this.removeAttribute("open-left")}render(){return l`
|
|
2
2
|
<div role="menu" class="submenu${this.open?" open":""}">
|
|
3
3
|
<slot></slot>
|
|
4
4
|
</div>
|
|
5
|
-
`}};
|
|
5
|
+
`}};a.styles=h`
|
|
6
6
|
:host {
|
|
7
7
|
display: block;
|
|
8
8
|
position: relative;
|
|
@@ -16,8 +16,9 @@ import{a,n as p,i as d,x as l,t as b}from"../../vendor/vendor.js";(function(){tr
|
|
|
16
16
|
display: none;
|
|
17
17
|
position: absolute;
|
|
18
18
|
left: 100%;
|
|
19
|
-
top: -44px;
|
|
19
|
+
top: var(--scb-options-sub-menu-offset-top, -44px);
|
|
20
20
|
z-index: 100;
|
|
21
|
+
padding: var(--scb-options-menu-panel-padding-block, var(--spacing-3, 8px)) 0;
|
|
21
22
|
border-radius: var(--md-sys-shape-corner-extra-small);
|
|
22
23
|
background: var(--md-sys-color-surface, #FFF);
|
|
23
24
|
box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.20), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 4px 5px 0 rgba(0, 0, 0, 0.14);
|
|
@@ -30,4 +31,4 @@ import{a,n as p,i as d,x as l,t as b}from"../../vendor/vendor.js";(function(){tr
|
|
|
30
31
|
.submenu.open {
|
|
31
32
|
display: block;
|
|
32
33
|
}
|
|
33
|
-
`;
|
|
34
|
+
`;u([p({type:Boolean,reflect:!0})],a.prototype,"open",2);a=u([b("scb-options-sub-menu")],a);
|