@kyndryl-design-system/shidoka-applications 2.86.2 → 2.86.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/global/header/header.d.ts +11 -0
- package/components/global/header/header.d.ts.map +1 -1
- package/components/global/header/header.js +24 -9
- package/components/global/header/header.js.map +1 -1
- package/components/global/header/headerFlyout.js +3 -2
- package/components/global/header/headerFlyout.js.map +1 -1
- package/components/global/header/headerFlyouts.js +3 -2
- package/components/global/header/headerFlyouts.js.map +1 -1
- package/components/global/header/headerLink.js +3 -2
- package/components/global/header/headerLink.js.map +1 -1
- package/components/global/header/headerNav.js +3 -2
- package/components/global/header/headerNav.js.map +1 -1
- package/package.json +1 -1
|
@@ -36,6 +36,10 @@ export declare class Header extends LitElement {
|
|
|
36
36
|
accessor _flyoutsOpen: boolean;
|
|
37
37
|
/** @internal */
|
|
38
38
|
accessor _headerEl: HTMLElement;
|
|
39
|
+
/** Media query used to detect desktop/mobile breakpoint transitions.
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
private _desktopMediaQuery?;
|
|
39
43
|
render(): import("lit-html").TemplateResult<1>;
|
|
40
44
|
private handleSlotChange;
|
|
41
45
|
private handleRootLinkClick;
|
|
@@ -54,6 +58,13 @@ export declare class Header extends LitElement {
|
|
|
54
58
|
private _handleScroll;
|
|
55
59
|
/** @internal */
|
|
56
60
|
private _debounceScroll;
|
|
61
|
+
/** close transient menu state when crossing 42rem breakpoint.
|
|
62
|
+
* opening dev tools changes viewport width and can otherwise leave mixed styles/state.
|
|
63
|
+
* @internal
|
|
64
|
+
*/
|
|
65
|
+
private _resetOpenMenusOnBreakpointChange;
|
|
66
|
+
/** @internal */
|
|
67
|
+
private readonly _handleBreakpointChange;
|
|
57
68
|
firstUpdated(): void;
|
|
58
69
|
connectedCallback(): void;
|
|
59
70
|
disconnectedCallback(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../../src/components/global/header/header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAclD;;;;;;;;GAQG;AACH,qBACa,MAAO,SAAQ,UAAU;IACpC,OAAgB,MAAM,0BAAyB;IAE/C,6EAA6E;IAE7E,QAAQ,CAAC,OAAO,SAAO;IAEvB,+DAA+D;IAE/D,QAAQ,CAAC,QAAQ,SAAM;IAEvB;;OAEG;IAEH,QAAQ,CAAC,MAAM,EAAG,GAAG,CAAC;IAEtB;;OAEG;IAEH,QAAQ,CAAC,gBAAgB,EAAG,GAAG,CAAC;IAEhC;;OAEG;IAEH,QAAQ,CAAC,OAAO,EAAG,GAAG,CAAC;IAEvB;;OAEG;IAEH,QAAQ,CAAC,QAAQ,UAAS;IAE1B;;OAEG;IAEH,QAAQ,CAAC,YAAY,UAAS;IAE9B,gBAAgB;IAEhB,QAAQ,CAAC,SAAS,EAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../../src/components/global/header/header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAclD;;;;;;;;GAQG;AACH,qBACa,MAAO,SAAQ,UAAU;IACpC,OAAgB,MAAM,0BAAyB;IAE/C,6EAA6E;IAE7E,QAAQ,CAAC,OAAO,SAAO;IAEvB,+DAA+D;IAE/D,QAAQ,CAAC,QAAQ,SAAM;IAEvB;;OAEG;IAEH,QAAQ,CAAC,MAAM,EAAG,GAAG,CAAC;IAEtB;;OAEG;IAEH,QAAQ,CAAC,gBAAgB,EAAG,GAAG,CAAC;IAEhC;;OAEG;IAEH,QAAQ,CAAC,OAAO,EAAG,GAAG,CAAC;IAEvB;;OAEG;IAEH,QAAQ,CAAC,QAAQ,UAAS;IAE1B;;OAEG;IAEH,QAAQ,CAAC,YAAY,UAAS;IAE9B,gBAAgB;IAEhB,QAAQ,CAAC,SAAS,EAAG,WAAW,CAAC;IAEjC;;OAEG;IACH,OAAO,CAAC,kBAAkB,CAAC,CAAiB;IAEnC,MAAM;IAqCf,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,oBAAoB;IAI5B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CACX;IAE3B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CACX;IAE/B;mBACe;IACf,OAAO,CAAC,aAAa;IAQrB,gBAAgB;IAChB,OAAO,CAAC,eAAe,CAEpB;IAEH;;;OAGG;IACH,OAAO,CAAC,iCAAiC;IA8BzC,gBAAgB;IAChB,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAEtC;IAEO,YAAY;IAIZ,iBAAiB;IAqBjB,oBAAoB;CAoB9B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,MAAM,CAAC;KACtB;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{__setFunctionName as e,__esDecorate as t,__runInitializers as i,__classPrivateFieldGet as a,__classPrivateFieldSet as o}from"tslib";import{css as n,LitElement as r,unsafeCSS as l,html as s}from"lit";import{customElement as d,property as
|
|
1
|
+
import{__setFunctionName as e,__esDecorate as t,__runInitializers as i,__classPrivateFieldGet as a,__classPrivateFieldSet as o}from"tslib";import{css as n,LitElement as r,unsafeCSS as l,html as s}from"lit";import{customElement as d,property as h,queryAssignedElements as c,state as g,query as p}from"lit/decorators.js";import{classMap as u}from"lit/directives/class-map.js";import{unsafeHTML as m}from"lit-html/directives/unsafe-html.js";import{debounce as v}from"../../../common/helpers/helpers.js";import{l as k}from"../../../vendor/@kyndryl-design-system/shidoka-foundation-7uii0Jz8.js";var f=n`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
box-sizing: border-box;
|
|
@@ -102,7 +102,7 @@ import{__setFunctionName as e,__esDecorate as t,__runInitializers as i,__classPr
|
|
|
102
102
|
transform: none;
|
|
103
103
|
visibility: hidden;
|
|
104
104
|
opacity: 0;
|
|
105
|
-
z-index:
|
|
105
|
+
z-index: 0;
|
|
106
106
|
display: flex;
|
|
107
107
|
flex-direction: column;
|
|
108
108
|
gap: 2px;
|
|
@@ -154,7 +154,8 @@ import{__setFunctionName as e,__esDecorate as t,__runInitializers as i,__classPr
|
|
|
154
154
|
visibility: visible;
|
|
155
155
|
opacity: 1;
|
|
156
156
|
transform: none;
|
|
157
|
-
z-index:
|
|
157
|
+
z-index: 1;
|
|
158
|
+
pointer-events: auto;
|
|
158
159
|
}
|
|
159
160
|
|
|
160
161
|
.go-back {
|
|
@@ -244,7 +245,6 @@ import{__setFunctionName as e,__esDecorate as t,__runInitializers as i,__classPr
|
|
|
244
245
|
align-items: center;
|
|
245
246
|
gap: 16px;
|
|
246
247
|
position: fixed;
|
|
247
|
-
isolation: isolate;
|
|
248
248
|
top: 0;
|
|
249
249
|
right: 0;
|
|
250
250
|
left: 0;
|
|
@@ -276,6 +276,21 @@ import{__setFunctionName as e,__esDecorate as t,__runInitializers as i,__classPr
|
|
|
276
276
|
gap: 24px;
|
|
277
277
|
margin-left: auto;
|
|
278
278
|
}
|
|
279
|
+
.header slot,
|
|
280
|
+
.header .logo-link,
|
|
281
|
+
.header .title,
|
|
282
|
+
.header .header__right {
|
|
283
|
+
position: relative;
|
|
284
|
+
z-index: 1;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
::slotted(kyn-header-nav),
|
|
288
|
+
::slotted(kyn-header-flyouts),
|
|
289
|
+
::slotted(kyn-button),
|
|
290
|
+
::slotted([slot=center]) {
|
|
291
|
+
position: relative;
|
|
292
|
+
z-index: 1;
|
|
293
|
+
}
|
|
279
294
|
|
|
280
295
|
.background {
|
|
281
296
|
position: absolute;
|
|
@@ -284,7 +299,7 @@ import{__setFunctionName as e,__esDecorate as t,__runInitializers as i,__classPr
|
|
|
284
299
|
left: 0;
|
|
285
300
|
bottom: 0;
|
|
286
301
|
background: var(--kd-color-background-container-default);
|
|
287
|
-
z-index:
|
|
302
|
+
z-index: 0;
|
|
288
303
|
box-shadow: var(--kd-elevation-level-1);
|
|
289
304
|
}
|
|
290
305
|
@media screen and (min-width: 42rem) {
|
|
@@ -375,8 +390,8 @@ import{__setFunctionName as e,__esDecorate as t,__runInitializers as i,__classPr
|
|
|
375
390
|
background: none;
|
|
376
391
|
padding: 0 8px;
|
|
377
392
|
margin: 0 2px;
|
|
378
|
-
}`;let b=(()=>{var n,b,x,
|
|
379
|
-
<header class="${
|
|
393
|
+
}`;let b=(()=>{var n,b,y,x,_,w,E,z;let O,S,T,C,M,L,U,$,j,W,H=[d("kyn-header")],B=[],F=r,N=[],Q=[],q=[],A=[],Y=[],R=[],P=[],D=[],G=[],I=[],J=[],K=[],V=[],X=[],Z=[],ee=[];return S=class extends F{constructor(){super(...arguments),n.set(this,i(this,N,"/")),b.set(this,(i(this,Q),i(this,q,""))),y.set(this,(i(this,A),i(this,Y,void 0))),x.set(this,(i(this,R),i(this,P,void 0))),_.set(this,(i(this,D),i(this,G,void 0))),w.set(this,(i(this,I),i(this,J,!1))),E.set(this,(i(this,K),i(this,V,!1))),z.set(this,(i(this,X),i(this,Z,void 0))),this._desktopMediaQuery=i(this,ee),this._boundHandleNavToggle=e=>this._handleNavToggle(e),this._boundHandleFlyoutsToggle=e=>this._handleFlyoutsToggle(e),this._debounceScroll=v((()=>{this._handleScroll()})),this._handleBreakpointChange=()=>{this._resetOpenMenusOnBreakpointChange()}}get rootUrl(){return a(this,n,"f")}set rootUrl(e){o(this,n,e,"f")}get appTitle(){return a(this,b,"f")}set appTitle(e){o(this,b,e,"f")}get navEls(){return a(this,y,"f")}set navEls(e){o(this,y,e,"f")}get assignedElements(){return a(this,x,"f")}set assignedElements(e){o(this,x,e,"f")}get leftEls(){return a(this,_,"f")}set leftEls(e){o(this,_,e,"f")}get _navOpen(){return a(this,w,"f")}set _navOpen(e){o(this,w,e,"f")}get _flyoutsOpen(){return a(this,E,"f")}set _flyoutsOpen(e){o(this,E,e,"f")}get _headerEl(){return a(this,z,"f")}set _headerEl(e){o(this,z,e,"f")}render(){const e={header:!0,"left-slotted":this.leftEls.length,"child-open":this._navOpen||this._flyoutsOpen};return s`
|
|
394
|
+
<header class="${u(e)}">
|
|
380
395
|
<slot name="left" @slotchange=${this.handleSlotChange}></slot>
|
|
381
396
|
|
|
382
397
|
<a
|
|
@@ -386,7 +401,7 @@ import{__setFunctionName as e,__esDecorate as t,__runInitializers as i,__classPr
|
|
|
386
401
|
@click="${e=>this.handleRootLinkClick(e)}"
|
|
387
402
|
>
|
|
388
403
|
<slot name="logo" @slotchange=${this.handleSlotChange}>
|
|
389
|
-
${
|
|
404
|
+
${m(k)}
|
|
390
405
|
</slot>
|
|
391
406
|
</a>
|
|
392
407
|
|
|
@@ -402,5 +417,5 @@ import{__setFunctionName as e,__esDecorate as t,__runInitializers as i,__classPr
|
|
|
402
417
|
</header>
|
|
403
418
|
|
|
404
419
|
<div class="overlay"></div>
|
|
405
|
-
`}handleSlotChange(){this.requestUpdate()}handleRootLinkClick(e){const t=new CustomEvent("on-root-link-click",{detail:{origEvent:e}});this.dispatchEvent(t)}_handleNavToggle(e){this._navOpen=e.detail.open}_handleFlyoutsToggle(e){this._flyoutsOpen=e.detail.open||e.detail.childrenOpen}_handleScroll(){window.scrollY>0?this._headerEl.classList.add("scrolled"):this._headerEl.classList.remove("scrolled")}firstUpdated(){this._handleScroll()}connectedCallback(){super.connectedCallback(),this.addEventListener("on-nav-toggle",this._boundHandleNavToggle),this.addEventListener("on-flyouts-toggle",this._boundHandleFlyoutsToggle),window.addEventListener("scroll",this._debounceScroll)}disconnectedCallback(){this.removeEventListener("on-nav-toggle",this._boundHandleNavToggle),this.removeEventListener("on-flyouts-toggle",this._boundHandleFlyoutsToggle),window.removeEventListener("scroll",this._debounceScroll),super.disconnectedCallback()}},n=new WeakMap,b=new WeakMap,
|
|
420
|
+
`}handleSlotChange(){this.requestUpdate()}handleRootLinkClick(e){const t=new CustomEvent("on-root-link-click",{detail:{origEvent:e}});this.dispatchEvent(t)}_handleNavToggle(e){this._navOpen=e.detail.open}_handleFlyoutsToggle(e){this._flyoutsOpen=e.detail.open||e.detail.childrenOpen}_handleScroll(){window.scrollY>0?this._headerEl.classList.add("scrolled"):this._headerEl.classList.remove("scrolled")}_resetOpenMenusOnBreakpointChange(){this.querySelectorAll("kyn-header-nav").forEach((e=>{"menuOpen"in e&&(e.menuOpen=!1)}));this.querySelectorAll("kyn-header-flyouts").forEach((e=>{"open"in e&&(e.open=!1)}));this.querySelectorAll("kyn-header-flyout, kyn-header-link").forEach((e=>{"open"in e&&(e.open=!1),e.removeAttribute("open")}))}firstUpdated(){this._handleScroll()}connectedCallback(){super.connectedCallback(),this.addEventListener("on-nav-toggle",this._boundHandleNavToggle),this.addEventListener("on-flyouts-toggle",this._boundHandleFlyoutsToggle),this._desktopMediaQuery=window.matchMedia("(min-width: 42rem)"),this._desktopMediaQuery.addEventListener("change",this._handleBreakpointChange),window.addEventListener("scroll",this._debounceScroll)}disconnectedCallback(){var e;this.removeEventListener("on-nav-toggle",this._boundHandleNavToggle),this.removeEventListener("on-flyouts-toggle",this._boundHandleFlyoutsToggle),null===(e=this._desktopMediaQuery)||void 0===e||e.removeEventListener("change",this._handleBreakpointChange),this._desktopMediaQuery=void 0,window.removeEventListener("scroll",this._debounceScroll),super.disconnectedCallback()}},n=new WeakMap,b=new WeakMap,y=new WeakMap,x=new WeakMap,_=new WeakMap,w=new WeakMap,E=new WeakMap,z=new WeakMap,e(S,"Header"),(()=>{var e;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(e=F[Symbol.metadata])&&void 0!==e?e:null):void 0;T=[h({type:String})],C=[h({type:String})],M=[c({selector:"kyn-header-nav"})],L=[c()],U=[c({slot:"left"})],$=[g()],j=[g()],W=[p("header")],t(S,null,T,{kind:"accessor",name:"rootUrl",static:!1,private:!1,access:{has:e=>"rootUrl"in e,get:e=>e.rootUrl,set:(e,t)=>{e.rootUrl=t}},metadata:i},N,Q),t(S,null,C,{kind:"accessor",name:"appTitle",static:!1,private:!1,access:{has:e=>"appTitle"in e,get:e=>e.appTitle,set:(e,t)=>{e.appTitle=t}},metadata:i},q,A),t(S,null,M,{kind:"accessor",name:"navEls",static:!1,private:!1,access:{has:e=>"navEls"in e,get:e=>e.navEls,set:(e,t)=>{e.navEls=t}},metadata:i},Y,R),t(S,null,L,{kind:"accessor",name:"assignedElements",static:!1,private:!1,access:{has:e=>"assignedElements"in e,get:e=>e.assignedElements,set:(e,t)=>{e.assignedElements=t}},metadata:i},P,D),t(S,null,U,{kind:"accessor",name:"leftEls",static:!1,private:!1,access:{has:e=>"leftEls"in e,get:e=>e.leftEls,set:(e,t)=>{e.leftEls=t}},metadata:i},G,I),t(S,null,$,{kind:"accessor",name:"_navOpen",static:!1,private:!1,access:{has:e=>"_navOpen"in e,get:e=>e._navOpen,set:(e,t)=>{e._navOpen=t}},metadata:i},J,K),t(S,null,j,{kind:"accessor",name:"_flyoutsOpen",static:!1,private:!1,access:{has:e=>"_flyoutsOpen"in e,get:e=>e._flyoutsOpen,set:(e,t)=>{e._flyoutsOpen=t}},metadata:i},V,X),t(S,null,W,{kind:"accessor",name:"_headerEl",static:!1,private:!1,access:{has:e=>"_headerEl"in e,get:e=>e._headerEl,set:(e,t)=>{e._headerEl=t}},metadata:i},Z,ee),t(null,O={value:S},H,{kind:"class",name:S.name,metadata:i},null,B),S=O.value,i&&Object.defineProperty(S,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),S.styles=l(f),i(S,B),S})();export{b as Header};
|
|
406
421
|
//# sourceMappingURL=header.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.js","sources":["../../../../src/components/global/header/header.ts"],"sourcesContent":["import { LitElement, html, unsafeCSS } from 'lit';\nimport {\n customElement,\n property,\n state,\n query,\n queryAssignedElements,\n} from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { unsafeHTML } from 'lit-html/directives/unsafe-html.js';\nimport { debounce } from '../../../common/helpers/helpers';\nimport HeaderScss from './header.scss?inline';\nimport logo from '@kyndryl-design-system/shidoka-foundation/assets/svg/kyndryl-logo.svg';\n\n/**\n * The global Header component.\n * @fires on-menu-toggle - Captures the menu toggle click event and emits the menu open state in the detail. `detail:{ origEvent: Event}`\n * @fires on-root-link-click - Captures the logo link click event and emits the original event details. `detail:{ origEvent: Event}`\n * @slot unnamed - The default slot for all empty space right of the logo/title.\n * @slot logo - Slot for the logo, will overwrite the default logo.\n * @slot left - Slot left of the logo, intended for the header nav.\n * @slot center - Slot between logo/title and right flyouts.\n */\n@customElement('kyn-header')\nexport class Header extends LitElement {\n static override styles = unsafeCSS(HeaderScss);\n\n /** URL for the header logo link. Should target the application home page. */\n @property({ type: String })\n accessor rootUrl = '/';\n\n /** App title text next to logo. Hidden on smaller screens. */\n @property({ type: String })\n accessor appTitle = '';\n\n /** Queries for slotted header-nav.\n * @internal\n */\n @queryAssignedElements({ selector: 'kyn-header-nav' })\n accessor navEls!: any;\n\n /** Queries for all slotted elements.\n * @internal\n */\n @queryAssignedElements()\n accessor assignedElements!: any;\n\n /** Queries for elements in left slot.\n * @internal\n */\n @queryAssignedElements({ slot: 'left' })\n accessor leftEls!: any;\n\n /** header-nav open state\n * @internal\n */\n @state()\n accessor _navOpen = false;\n\n /** header-flyouts open state\n * @internal\n */\n @state()\n accessor _flyoutsOpen = false;\n\n /** @internal */\n @query('header')\n accessor _headerEl!: HTMLElement;\n\n override render() {\n const classes = {\n header: true,\n 'left-slotted': this.leftEls.length,\n 'child-open': this._navOpen || this._flyoutsOpen,\n };\n\n return html`\n <header class=\"${classMap(classes)}\">\n <slot name=\"left\" @slotchange=${this.handleSlotChange}></slot>\n\n <a\n href=\"${this.rootUrl}\"\n class=\"logo-link interactive\"\n aria-label=\"${this.rootUrl}\"\n @click=\"${(e: Event) => this.handleRootLinkClick(e)}\"\n >\n <slot name=\"logo\" @slotchange=${this.handleSlotChange}>\n ${unsafeHTML(logo)}\n </slot>\n </a>\n\n <span class=\"title\">${this.appTitle}</span>\n\n <slot name=\"center\"></slot>\n\n <div class=\"header__right\">\n <slot @slotchange=${this.handleSlotChange}></slot>\n </div>\n\n <div class=\"background\"></div>\n </header>\n\n <div class=\"overlay\"></div>\n `;\n }\n\n private handleSlotChange() {\n this.requestUpdate();\n }\n\n private handleRootLinkClick(e: Event) {\n const event = new CustomEvent('on-root-link-click', {\n detail: { origEvent: e },\n });\n this.dispatchEvent(event);\n }\n\n private _handleNavToggle(e: any) {\n this._navOpen = e.detail.open;\n }\n\n private _handleFlyoutsToggle(e: any) {\n this._flyoutsOpen = e.detail.open || e.detail.childrenOpen;\n }\n\n /** Bound nav toggle handler for add/remove symmetry.\n * @internal\n */\n private readonly _boundHandleNavToggle = (e: Event) =>\n this._handleNavToggle(e);\n\n /** Bound flyouts toggle handler for add/remove symmetry.\n * @internal\n */\n private readonly _boundHandleFlyoutsToggle = (e: Event) =>\n this._handleFlyoutsToggle(e);\n\n /** Morph header on scroll.\n * @internal */\n private _handleScroll() {\n if (window.scrollY > 0) {\n this._headerEl.classList.add('scrolled');\n } else {\n this._headerEl.classList.remove('scrolled');\n }\n }\n\n /** @internal */\n private _debounceScroll = debounce(() => {\n this._handleScroll();\n });\n\n override firstUpdated() {\n this._handleScroll();\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n this.addEventListener(\n 'on-nav-toggle',\n this._boundHandleNavToggle as EventListener\n );\n this.addEventListener(\n 'on-flyouts-toggle',\n this._boundHandleFlyoutsToggle as EventListener\n );\n\n window.addEventListener('scroll', this._debounceScroll);\n }\n\n override disconnectedCallback() {\n this.removeEventListener(\n 'on-nav-toggle',\n this._boundHandleNavToggle as EventListener\n );\n this.removeEventListener(\n 'on-flyouts-toggle',\n this._boundHandleFlyoutsToggle as EventListener\n );\n\n window.removeEventListener('scroll', this._debounceScroll);\n\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-header': Header;\n }\n}\n"],"names":["Header","customElement","LitElement","_classThis","_classSuper","_Header_rootUrl_accessor_storage","set","this","__runInitializers","_rootUrl_initializers","_Header_appTitle_accessor_storage","_rootUrl_extraInitializers","_appTitle_initializers","_Header_navEls_accessor_storage","_appTitle_extraInitializers","_navEls_initializers","_Header_assignedElements_accessor_storage","_navEls_extraInitializers","_assignedElements_initializers","_Header_leftEls_accessor_storage","_assignedElements_extraInitializers","_leftEls_initializers","_Header__navOpen_accessor_storage","_leftEls_extraInitializers","__navOpen_initializers","_Header__flyoutsOpen_accessor_storage","__navOpen_extraInitializers","__flyoutsOpen_initializers","_Header__headerEl_accessor_storage","__flyoutsOpen_extraInitializers","__headerEl_initializers","_boundHandleNavToggle","__headerEl_extraInitializers","e","_handleNavToggle","_boundHandleFlyoutsToggle","_handleFlyoutsToggle","_debounceScroll","debounce","_handleScroll","rootUrl","__classPrivateFieldGet","value","__classPrivateFieldSet","appTitle","navEls","assignedElements","leftEls","_navOpen","_flyoutsOpen","_headerEl","render","classes","header","length","html","classMap","handleSlotChange","handleRootLinkClick","unsafeHTML","logo","requestUpdate","event","CustomEvent","detail","origEvent","dispatchEvent","open","childrenOpen","window","scrollY","classList","add","remove","firstUpdated","connectedCallback","super","addEventListener","disconnectedCallback","removeEventListener","_rootUrl_decorators","property","type","String","_appTitle_decorators","_navEls_decorators","queryAssignedElements","selector","_assignedElements_decorators","_leftEls_decorators","slot","__navOpen_decorators","state","__flyoutsOpen_decorators","query","__esDecorate","kind","name","static","private","access","has","obj","get","metadata","_metadata","__headerEl_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","HeaderScss"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"header.js","sources":["../../../../src/components/global/header/header.ts"],"sourcesContent":["import { LitElement, html, unsafeCSS } from 'lit';\nimport {\n customElement,\n property,\n state,\n query,\n queryAssignedElements,\n} from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { unsafeHTML } from 'lit-html/directives/unsafe-html.js';\nimport { debounce } from '../../../common/helpers/helpers';\nimport HeaderScss from './header.scss?inline';\nimport logo from '@kyndryl-design-system/shidoka-foundation/assets/svg/kyndryl-logo.svg';\n\n/**\n * The global Header component.\n * @fires on-menu-toggle - Captures the menu toggle click event and emits the menu open state in the detail. `detail:{ origEvent: Event}`\n * @fires on-root-link-click - Captures the logo link click event and emits the original event details. `detail:{ origEvent: Event}`\n * @slot unnamed - The default slot for all empty space right of the logo/title.\n * @slot logo - Slot for the logo, will overwrite the default logo.\n * @slot left - Slot left of the logo, intended for the header nav.\n * @slot center - Slot between logo/title and right flyouts.\n */\n@customElement('kyn-header')\nexport class Header extends LitElement {\n static override styles = unsafeCSS(HeaderScss);\n\n /** URL for the header logo link. Should target the application home page. */\n @property({ type: String })\n accessor rootUrl = '/';\n\n /** App title text next to logo. Hidden on smaller screens. */\n @property({ type: String })\n accessor appTitle = '';\n\n /** Queries for slotted header-nav.\n * @internal\n */\n @queryAssignedElements({ selector: 'kyn-header-nav' })\n accessor navEls!: any;\n\n /** Queries for all slotted elements.\n * @internal\n */\n @queryAssignedElements()\n accessor assignedElements!: any;\n\n /** Queries for elements in left slot.\n * @internal\n */\n @queryAssignedElements({ slot: 'left' })\n accessor leftEls!: any;\n\n /** header-nav open state\n * @internal\n */\n @state()\n accessor _navOpen = false;\n\n /** header-flyouts open state\n * @internal\n */\n @state()\n accessor _flyoutsOpen = false;\n\n /** @internal */\n @query('header')\n accessor _headerEl!: HTMLElement;\n\n /** Media query used to detect desktop/mobile breakpoint transitions.\n * @internal\n */\n private _desktopMediaQuery?: MediaQueryList;\n\n override render() {\n const classes = {\n header: true,\n 'left-slotted': this.leftEls.length,\n 'child-open': this._navOpen || this._flyoutsOpen,\n };\n\n return html`\n <header class=\"${classMap(classes)}\">\n <slot name=\"left\" @slotchange=${this.handleSlotChange}></slot>\n\n <a\n href=\"${this.rootUrl}\"\n class=\"logo-link interactive\"\n aria-label=\"${this.rootUrl}\"\n @click=\"${(e: Event) => this.handleRootLinkClick(e)}\"\n >\n <slot name=\"logo\" @slotchange=${this.handleSlotChange}>\n ${unsafeHTML(logo)}\n </slot>\n </a>\n\n <span class=\"title\">${this.appTitle}</span>\n\n <slot name=\"center\"></slot>\n\n <div class=\"header__right\">\n <slot @slotchange=${this.handleSlotChange}></slot>\n </div>\n\n <div class=\"background\"></div>\n </header>\n\n <div class=\"overlay\"></div>\n `;\n }\n\n private handleSlotChange() {\n this.requestUpdate();\n }\n\n private handleRootLinkClick(e: Event) {\n const event = new CustomEvent('on-root-link-click', {\n detail: { origEvent: e },\n });\n this.dispatchEvent(event);\n }\n\n private _handleNavToggle(e: any) {\n this._navOpen = e.detail.open;\n }\n\n private _handleFlyoutsToggle(e: any) {\n this._flyoutsOpen = e.detail.open || e.detail.childrenOpen;\n }\n\n /** Bound nav toggle handler for add/remove symmetry.\n * @internal\n */\n private readonly _boundHandleNavToggle = (e: Event) =>\n this._handleNavToggle(e);\n\n /** Bound flyouts toggle handler for add/remove symmetry.\n * @internal\n */\n private readonly _boundHandleFlyoutsToggle = (e: Event) =>\n this._handleFlyoutsToggle(e);\n\n /** Morph header on scroll.\n * @internal */\n private _handleScroll() {\n if (window.scrollY > 0) {\n this._headerEl.classList.add('scrolled');\n } else {\n this._headerEl.classList.remove('scrolled');\n }\n }\n\n /** @internal */\n private _debounceScroll = debounce(() => {\n this._handleScroll();\n });\n\n /** close transient menu state when crossing 42rem breakpoint.\n * opening dev tools changes viewport width and can otherwise leave mixed styles/state.\n * @internal\n */\n private _resetOpenMenusOnBreakpointChange() {\n const navs = this.querySelectorAll<HTMLElement & { menuOpen?: boolean }>(\n 'kyn-header-nav'\n );\n navs.forEach((nav) => {\n if ('menuOpen' in nav) {\n nav.menuOpen = false;\n }\n });\n\n const flyoutContainers = this.querySelectorAll<\n HTMLElement & { open?: boolean }\n >('kyn-header-flyouts');\n flyoutContainers.forEach((container) => {\n if ('open' in container) {\n container.open = false;\n }\n });\n\n const openableMenus = this.querySelectorAll<\n HTMLElement & { open?: boolean }\n >('kyn-header-flyout, kyn-header-link');\n openableMenus.forEach((menu) => {\n if ('open' in menu) {\n menu.open = false;\n }\n menu.removeAttribute('open');\n });\n }\n\n /** @internal */\n private readonly _handleBreakpointChange = () => {\n this._resetOpenMenusOnBreakpointChange();\n };\n\n override firstUpdated() {\n this._handleScroll();\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n this.addEventListener(\n 'on-nav-toggle',\n this._boundHandleNavToggle as EventListener\n );\n this.addEventListener(\n 'on-flyouts-toggle',\n this._boundHandleFlyoutsToggle as EventListener\n );\n\n this._desktopMediaQuery = window.matchMedia('(min-width: 42rem)');\n this._desktopMediaQuery.addEventListener(\n 'change',\n this._handleBreakpointChange\n );\n\n window.addEventListener('scroll', this._debounceScroll);\n }\n\n override disconnectedCallback() {\n this.removeEventListener(\n 'on-nav-toggle',\n this._boundHandleNavToggle as EventListener\n );\n this.removeEventListener(\n 'on-flyouts-toggle',\n this._boundHandleFlyoutsToggle as EventListener\n );\n\n this._desktopMediaQuery?.removeEventListener(\n 'change',\n this._handleBreakpointChange\n );\n this._desktopMediaQuery = undefined;\n\n window.removeEventListener('scroll', this._debounceScroll);\n\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-header': Header;\n }\n}\n"],"names":["Header","customElement","LitElement","_classThis","_classSuper","_Header_rootUrl_accessor_storage","set","this","__runInitializers","_rootUrl_initializers","_Header_appTitle_accessor_storage","_rootUrl_extraInitializers","_appTitle_initializers","_Header_navEls_accessor_storage","_appTitle_extraInitializers","_navEls_initializers","_Header_assignedElements_accessor_storage","_navEls_extraInitializers","_assignedElements_initializers","_Header_leftEls_accessor_storage","_assignedElements_extraInitializers","_leftEls_initializers","_Header__navOpen_accessor_storage","_leftEls_extraInitializers","__navOpen_initializers","_Header__flyoutsOpen_accessor_storage","__navOpen_extraInitializers","__flyoutsOpen_initializers","_Header__headerEl_accessor_storage","__flyoutsOpen_extraInitializers","__headerEl_initializers","_desktopMediaQuery","__headerEl_extraInitializers","_boundHandleNavToggle","e","_handleNavToggle","_boundHandleFlyoutsToggle","_handleFlyoutsToggle","_debounceScroll","debounce","_handleScroll","_handleBreakpointChange","_resetOpenMenusOnBreakpointChange","rootUrl","__classPrivateFieldGet","value","__classPrivateFieldSet","appTitle","navEls","assignedElements","leftEls","_navOpen","_flyoutsOpen","_headerEl","render","classes","header","length","html","classMap","handleSlotChange","handleRootLinkClick","unsafeHTML","logo","requestUpdate","event","CustomEvent","detail","origEvent","dispatchEvent","open","childrenOpen","window","scrollY","classList","add","remove","querySelectorAll","forEach","nav","menuOpen","container","menu","removeAttribute","firstUpdated","connectedCallback","super","addEventListener","matchMedia","disconnectedCallback","removeEventListener","_a","undefined","_rootUrl_decorators","property","type","String","_appTitle_decorators","_navEls_decorators","queryAssignedElements","selector","_assignedElements_decorators","_leftEls_decorators","slot","__navOpen_decorators","state","__flyoutsOpen_decorators","query","__esDecorate","kind","name","static","private","access","has","obj","get","metadata","_metadata","__headerEl_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","HeaderScss"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwBaA,EAAM,qDADlBC,EAAc,sBACaC,0FAARC,EAAA,cAAQC,oCAKjBC,EAAAC,IAAAC,KAAAC,EAAAD,KAAAE,EAAU,MAIVC,EAAAJ,IAAAC,MAAAC,EAAAD,KAAAI,GAAAH,EAAAD,KAAAK,EAAW,MAMXC,EAAAP,IAAAC,MAAAC,EAAAD,KAAAO,GAAAN,EAAAD,KAAAQ,OAAA,KAMAC,EAAAV,IAAAC,MAAAC,EAAAD,KAAAU,GAAAT,EAAAD,KAAAW,OAAA,KAMAC,EAAAb,IAAAC,MAAAC,EAAAD,KAAAa,GAAAZ,EAAAD,KAAAc,OAAA,KAMAC,EAAAhB,IAAAC,MAAAC,EAAAD,KAAAgB,GAAAf,EAAAD,KAAAiB,GAAW,KAMXC,EAAAnB,IAAAC,MAAAC,EAAAD,KAAAmB,GAAAlB,EAAAD,KAAAoB,GAAe,KAIfC,EAAAtB,IAAAC,MAAAC,EAAAD,KAAAsB,GAAArB,EAAAD,KAAAuB,OAAA,KAKDvB,KAAAwB,mBAAkBvB,EAAAD,KAAAyB,IA6DTzB,KAAA0B,sBAAyBC,GACxC3B,KAAK4B,iBAAiBD,GAKP3B,KAAA6B,0BAA6BF,GAC5C3B,KAAK8B,qBAAqBH,GAapB3B,KAAA+B,gBAAkBC,GAAS,KACjChC,KAAKiC,eAAe,IAsCLjC,KAAAkC,wBAA0B,KACzClC,KAAKmC,mCAAmC,EApK1C,WAASC,GAAO,OAAAC,EAAArC,KAAAF,EAAA,IAAA,CAAhB,WAASsC,CAAOE,GAAAC,EAAAvC,KAAAF,EAAAwC,EAAA,IAAA,CAIhB,YAASE,GAAQ,OAAAH,EAAArC,KAAAG,EAAA,IAAA,CAAjB,YAASqC,CAAQF,GAAAC,EAAAvC,KAAAG,EAAAmC,EAAA,IAAA,CAMjB,UAASG,GAAM,OAAAJ,EAAArC,KAAAM,EAAA,IAAA,CAAf,UAASmC,CAAMH,GAAAC,EAAAvC,KAAAM,EAAAgC,EAAA,IAAA,CAMf,oBAASI,GAAgB,OAAAL,EAAArC,KAAAS,EAAA,IAAA,CAAzB,oBAASiC,CAAgBJ,GAAAC,EAAAvC,KAAAS,EAAA6B,EAAA,IAAA,CAMzB,WAASK,GAAO,OAAAN,EAAArC,KAAAY,EAAA,IAAA,CAAhB,WAAS+B,CAAOL,GAAAC,EAAAvC,KAAAY,EAAA0B,EAAA,IAAA,CAMhB,YAASM,GAAQ,OAAAP,EAAArC,KAAAe,EAAA,IAAA,CAAjB,YAAS6B,CAAQN,GAAAC,EAAAvC,KAAAe,EAAAuB,EAAA,IAAA,CAMjB,gBAASO,GAAY,OAAAR,EAAArC,KAAAkB,EAAA,IAAA,CAArB,gBAAS2B,CAAYP,GAAAC,EAAAvC,KAAAkB,EAAAoB,EAAA,IAAA,CAIrB,aAASQ,GAAS,OAAAT,EAAArC,KAAAqB,EAAA,IAAA,CAAlB,aAASyB,CAASR,GAAAC,EAAAvC,KAAAqB,EAAAiB,EAAA,IAAA,CAOT,MAAAS,GACP,MAAMC,EAAU,CACdC,QAAQ,EACR,eAAgBjD,KAAK2C,QAAQO,OAC7B,aAAclD,KAAK4C,UAAY5C,KAAK6C,cAGtC,OAAOM,CAAI;uBACQC,EAASJ;wCACQhD,KAAKqD;;;kBAG3BrD,KAAKoC;;wBAECpC,KAAKoC;oBACRT,GAAa3B,KAAKsD,oBAAoB3B;;0CAEjB3B,KAAKqD;cACjCE,EAAWC;;;;8BAIKxD,KAAKwC;;;;;8BAKLxC,KAAKqD;;;;;;;MAUzB,gBAAAA,GACNrD,KAAKyD,gBAGC,mBAAAH,CAAoB3B,GAC1B,MAAM+B,EAAQ,IAAIC,YAAY,qBAAsB,CAClDC,OAAQ,CAAEC,UAAWlC,KAEvB3B,KAAK8D,cAAcJ,GAGb,gBAAA9B,CAAiBD,GACvB3B,KAAK4C,SAAWjB,EAAEiC,OAAOG,KAGnB,oBAAAjC,CAAqBH,GAC3B3B,KAAK6C,aAAelB,EAAEiC,OAAOG,MAAQpC,EAAEiC,OAAOI,aAiBxC,aAAA/B,GACFgC,OAAOC,QAAU,EACnBlE,KAAK8C,UAAUqB,UAAUC,IAAI,YAE7BpE,KAAK8C,UAAUqB,UAAUE,OAAO,YAa5B,iCAAAlC,GACOnC,KAAKsE,iBAChB,kBAEGC,SAASC,IACR,aAAcA,IAChBA,EAAIC,UAAW,MAIMzE,KAAKsE,iBAE5B,sBACeC,SAASG,IACpB,SAAUA,IACZA,EAAUX,MAAO,MAIC/D,KAAKsE,iBAEzB,sCACYC,SAASI,IACjB,SAAUA,IACZA,EAAKZ,MAAO,GAEdY,EAAKC,gBAAgB,OAAO,IASvB,YAAAC,GACP7E,KAAKiC,gBAGE,iBAAA6C,GACPC,MAAMD,oBAEN9E,KAAKgF,iBACH,gBACAhF,KAAK0B,uBAEP1B,KAAKgF,iBACH,oBACAhF,KAAK6B,2BAGP7B,KAAKwB,mBAAqByC,OAAOgB,WAAW,sBAC5CjF,KAAKwB,mBAAmBwD,iBACtB,SACAhF,KAAKkC,yBAGP+B,OAAOe,iBAAiB,SAAUhF,KAAK+B,iBAGhC,oBAAAmD,SACPlF,KAAKmF,oBACH,gBACAnF,KAAK0B,uBAEP1B,KAAKmF,oBACH,oBACAnF,KAAK6B,2BAGgB,QAAvBuD,EAAApF,KAAKwB,0BAAkB,IAAA4D,GAAAA,EAAED,oBACvB,SACAnF,KAAKkC,yBAEPlC,KAAKwB,wBAAqB6D,EAE1BpB,OAAOkB,oBAAoB,SAAUnF,KAAK+B,iBAE1CgD,MAAMG,6RAnNPI,EAAA,CAAAC,EAAS,CAAEC,KAAMC,UAIjBC,EAAA,CAAAH,EAAS,CAAEC,KAAMC,UAMjBE,EAAA,CAAAC,EAAsB,CAAEC,SAAU,oBAMlCC,EAAA,CAAAF,KAMAG,EAAA,CAAAH,EAAsB,CAAEI,KAAM,UAM9BC,EAAA,CAAAC,KAMAC,EAAA,CAAAD,QAIAE,EAAM,WArCPC,EAAAzG,EAAA,KAAA0F,EAAA,CAAAgB,KAAA,WAAAC,KAAA,UAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAAC,IAAAC,GAAA,YAAAA,EAAAC,IAAAD,GAAAA,EAASxE,QAAOrC,IAAA,CAAA6G,EAAAtE,KAAAsE,EAAPxE,QAAOE,CAAA,GAAAwE,SAAAC,GAAA7G,EAAAE,GAIhBiG,EAAAzG,EAAA,KAAA8F,EAAA,CAAAY,KAAA,WAAAC,KAAA,WAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAAC,IAAAC,GAAA,aAAAA,EAAAC,IAAAD,GAAAA,EAASpE,SAAQzC,IAAA,CAAA6G,EAAAtE,KAAAsE,EAARpE,SAAQF,CAAA,GAAAwE,SAAAC,GAAA1G,EAAAE,GAMjB8F,EAAAzG,EAAA,KAAA+F,EAAA,CAAAW,KAAA,WAAAC,KAAA,SAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAAC,IAAAC,GAAA,WAAAA,EAAAC,IAAAD,GAAAA,EAASnE,OAAM1C,IAAA,CAAA6G,EAAAtE,KAAAsE,EAANnE,OAAMH,CAAA,GAAAwE,SAAAC,GAAAvG,EAAAE,GAMf2F,EAAAzG,EAAA,KAAAkG,EAAA,CAAAQ,KAAA,WAAAC,KAAA,mBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAAC,IAAAC,GAAA,qBAAAA,EAAAC,IAAAD,GAAAA,EAASlE,iBAAgB3C,IAAA,CAAA6G,EAAAtE,KAAAsE,EAAhBlE,iBAAgBJ,CAAA,GAAAwE,SAAAC,GAAApG,EAAAE,GAMzBwF,EAAAzG,EAAA,KAAAmG,EAAA,CAAAO,KAAA,WAAAC,KAAA,UAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAAC,IAAAC,GAAA,YAAAA,EAAAC,IAAAD,GAAAA,EAASjE,QAAO5C,IAAA,CAAA6G,EAAAtE,KAAAsE,EAAPjE,QAAOL,CAAA,GAAAwE,SAAAC,GAAAjG,EAAAE,GAMhBqF,EAAAzG,EAAA,KAAAqG,EAAA,CAAAK,KAAA,WAAAC,KAAA,WAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAAC,IAAAC,GAAA,aAAAA,EAAAC,IAAAD,GAAAA,EAAShE,SAAQ7C,IAAA,CAAA6G,EAAAtE,KAAAsE,EAARhE,SAAQN,CAAA,GAAAwE,SAAAC,GAAA9F,EAAAE,GAMjBkF,EAAAzG,EAAA,KAAAuG,EAAA,CAAAG,KAAA,WAAAC,KAAA,eAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAAC,IAAAC,GAAA,iBAAAA,EAAAC,IAAAD,GAAAA,EAAS/D,aAAY9C,IAAA,CAAA6G,EAAAtE,KAAAsE,EAAZ/D,aAAYP,CAAA,GAAAwE,SAAAC,GAAA3F,EAAAE,GAIrB+E,EAAAzG,EAAA,KAAAoH,EAAA,CAAAV,KAAA,WAAAC,KAAA,YAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAAC,IAAAC,GAAA,cAAAA,EAAAC,IAAAD,GAAAA,EAAS9D,UAAS/C,IAAA,CAAA6G,EAAAtE,KAAAsE,EAAT9D,UAASR,CAAA,GAAAwE,SAAAC,GAAAxF,EAAAE,IA3CpB4E,EAAA,KAAAY,EAAA,CAAA3E,MAAA1C,GAAAsH,EAAA,CAAAZ,KAAA,QAAAC,KAAA3G,EAAA2G,KAAAO,SAAAC,GAAA,KAAAI,iHACkBvH,EAAAwH,OAASC,EAAUC,GADxBrH,EAAAL,EAAAuH,MAAM"}
|
|
@@ -102,7 +102,7 @@ import{__setFunctionName as t,__esDecorate as e,__runInitializers as i,__classPr
|
|
|
102
102
|
transform: none;
|
|
103
103
|
visibility: hidden;
|
|
104
104
|
opacity: 0;
|
|
105
|
-
z-index:
|
|
105
|
+
z-index: 0;
|
|
106
106
|
display: flex;
|
|
107
107
|
flex-direction: column;
|
|
108
108
|
gap: 2px;
|
|
@@ -154,7 +154,8 @@ import{__setFunctionName as t,__esDecorate as e,__runInitializers as i,__classPr
|
|
|
154
154
|
visibility: visible;
|
|
155
155
|
opacity: 1;
|
|
156
156
|
transform: none;
|
|
157
|
-
z-index:
|
|
157
|
+
z-index: 1;
|
|
158
|
+
pointer-events: auto;
|
|
158
159
|
}
|
|
159
160
|
|
|
160
161
|
.go-back {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headerFlyout.js","sources":["../../../../src/components/global/header/headerFlyout.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html, unsafeCSS } from 'lit';\nimport {\n customElement,\n property,\n queryAssignedElements,\n} from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport HeaderFlyoutScss from './headerFlyout.scss?inline';\nimport chevronIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-right.svg';\nimport backIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/arrow-left.svg';\n\n/**\n * Component for header flyout items.\n * @slot unnamed - Slot for flyout menu content.\n * @slot button - Slot for button/toggle content.\n */\n@customElement('kyn-header-flyout')\nexport class HeaderFlyout extends LitElement {\n static override styles = unsafeCSS(HeaderFlyoutScss);\n\n /** Flyout open state. */\n @property({ type: Boolean, reflect: true })\n accessor open = false;\n\n /** Anchor flyout menu to the left edge of the button instead of the right edge. */\n @property({ type: Boolean })\n accessor anchorLeft = false;\n\n /** Hides the arrow. */\n @property({ type: Boolean })\n accessor hideArrow = false;\n\n /** Menu & button label. */\n @property({ type: String })\n accessor label = '';\n\n /** Hide the label at the top of the flyout menu. */\n @property({ type: Boolean })\n accessor hideMenuLabel = false;\n\n /** Hide the label in the mobile button. */\n @property({ type: Boolean })\n accessor hideButtonLabel = false;\n\n /**\n * DEPRECATED. Use `label` instead.\n * Button assistive text, title + aria-label.\n */\n @property({ type: String })\n accessor assistiveText = '';\n\n /** Turns the button into a link. */\n @property({ type: String })\n accessor href = '';\n\n /** Text for mobile \"Back\" button. */\n @property({ type: String })\n accessor backText = 'Back';\n\n /** Removes padding from the flyout menu. */\n @property({ type: Boolean })\n accessor noPadding = false;\n\n /**\n * Queries any slotted HTML elements.\n * @ignore\n */\n @queryAssignedElements()\n accessor slottedElements!: Array<HTMLElement>;\n\n override render() {\n const classes = {\n menu: true,\n open: this.open,\n };\n\n const contentClasses = {\n menu__content: true,\n 'menu__content--left': this.anchorLeft,\n slotted: this.slottedElements.length,\n 'no-padding': this.noPadding,\n };\n\n return html`\n <div class=\"${classMap(classes)}\">\n ${this.href !== ''\n ? html`\n <a\n class=\"btn interactive\"\n href=${this.href}\n title=${this.label || this.assistiveText}\n aria-label=${this.label || this.assistiveText}\n @click=${this.handleClick}\n >\n <slot name=\"button\"></slot>\n\n ${!this.hideButtonLabel\n ? html`\n <span class=\"label\">\n ${this.label || this.assistiveText}\n </span>\n `\n : null}\n\n <span slot=\"button\" class=\"arrow\">\n ${unsafeSVG(chevronIcon)}\n </span>\n </a>\n `\n : html`\n <button\n class=\"btn interactive\"\n title=${this.label || this.assistiveText}\n aria-label=${this.label || this.assistiveText}\n @click=${this.handleClick}\n >\n <slot name=\"button\"></slot>\n\n ${!this.hideButtonLabel\n ? html`\n <span class=\"label\">\n ${this.label || this.assistiveText}\n </span>\n `\n : null}\n\n <span slot=\"button\" class=\"arrow\">\n ${unsafeSVG(chevronIcon)}\n </span>\n </button>\n `}\n\n <div class=${classMap(contentClasses)}>\n <button class=\"go-back\" @click=${() => this._handleBack()}>\n <span>${unsafeSVG(backIcon)}</span>\n ${this.backText}\n </button>\n\n ${!this.hideMenuLabel\n ? html`\n <div class=\"menu-label\">\n ${this.label || this.assistiveText}\n </div>\n `\n : null}\n\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n private _handleBack() {\n this.open = false;\n }\n\n private handleClick() {\n this.open = !this.open;\n }\n\n private handleClickOut(e: Event) {\n if (!e.composedPath().includes(this)) {\n this.open = false;\n }\n }\n\n /** Bound outside-click handler for add/remove symmetry.\n * @internal\n */\n private readonly _boundHandleClickOut = (e: Event) => this.handleClickOut(e);\n\n override willUpdate(changedProps: any) {\n if (changedProps.has('open')) {\n const event = new CustomEvent('on-flyout-toggle', {\n composed: true,\n bubbles: true,\n detail: { open: this.open },\n });\n this.dispatchEvent(event);\n }\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n document.addEventListener('click', this._boundHandleClickOut);\n }\n\n override disconnectedCallback() {\n document.removeEventListener('click', this._boundHandleClickOut);\n\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-header-flyout': HeaderFlyout;\n }\n}\n"],"names":["HeaderFlyout","customElement","LitElement","_classThis","_classSuper","_HeaderFlyout_open_accessor_storage","set","this","__runInitializers","_open_initializers","_HeaderFlyout_anchorLeft_accessor_storage","_open_extraInitializers","_anchorLeft_initializers","_HeaderFlyout_hideArrow_accessor_storage","_anchorLeft_extraInitializers","_hideArrow_initializers","_HeaderFlyout_label_accessor_storage","_hideArrow_extraInitializers","_label_initializers","_HeaderFlyout_hideMenuLabel_accessor_storage","_label_extraInitializers","_hideMenuLabel_initializers","_HeaderFlyout_hideButtonLabel_accessor_storage","_hideMenuLabel_extraInitializers","_hideButtonLabel_initializers","_HeaderFlyout_assistiveText_accessor_storage","_hideButtonLabel_extraInitializers","_assistiveText_initializers","_HeaderFlyout_href_accessor_storage","_assistiveText_extraInitializers","_href_initializers","_HeaderFlyout_backText_accessor_storage","_href_extraInitializers","_backText_initializers","_HeaderFlyout_noPadding_accessor_storage","_backText_extraInitializers","_noPadding_initializers","_HeaderFlyout_slottedElements_accessor_storage","_noPadding_extraInitializers","_slottedElements_initializers","_boundHandleClickOut","_slottedElements_extraInitializers","e","handleClickOut","open","__classPrivateFieldGet","value","__classPrivateFieldSet","anchorLeft","hideArrow","label","hideMenuLabel","hideButtonLabel","assistiveText","href","backText","noPadding","slottedElements","render","classes","menu","contentClasses","menu__content","slotted","length","html","classMap","handleClick","unsafeSVG","chevronIcon","_handleBack","backIcon","composedPath","includes","willUpdate","changedProps","has","event","CustomEvent","composed","bubbles","detail","dispatchEvent","connectedCallback","super","document","addEventListener","disconnectedCallback","removeEventListener","property","type","Boolean","reflect","_anchorLeft_decorators","_hideArrow_decorators","_label_decorators","String","_hideMenuLabel_decorators","_hideButtonLabel_decorators","_assistiveText_decorators","_href_decorators","_backText_decorators","_noPadding_decorators","_slottedElements_decorators","queryAssignedElements","__esDecorate","_open_decorators","kind","name","static","private","access","obj","get","metadata","_metadata","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","HeaderFlyoutScss"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"headerFlyout.js","sources":["../../../../src/components/global/header/headerFlyout.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html, unsafeCSS } from 'lit';\nimport {\n customElement,\n property,\n queryAssignedElements,\n} from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport HeaderFlyoutScss from './headerFlyout.scss?inline';\nimport chevronIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-right.svg';\nimport backIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/arrow-left.svg';\n\n/**\n * Component for header flyout items.\n * @slot unnamed - Slot for flyout menu content.\n * @slot button - Slot for button/toggle content.\n */\n@customElement('kyn-header-flyout')\nexport class HeaderFlyout extends LitElement {\n static override styles = unsafeCSS(HeaderFlyoutScss);\n\n /** Flyout open state. */\n @property({ type: Boolean, reflect: true })\n accessor open = false;\n\n /** Anchor flyout menu to the left edge of the button instead of the right edge. */\n @property({ type: Boolean })\n accessor anchorLeft = false;\n\n /** Hides the arrow. */\n @property({ type: Boolean })\n accessor hideArrow = false;\n\n /** Menu & button label. */\n @property({ type: String })\n accessor label = '';\n\n /** Hide the label at the top of the flyout menu. */\n @property({ type: Boolean })\n accessor hideMenuLabel = false;\n\n /** Hide the label in the mobile button. */\n @property({ type: Boolean })\n accessor hideButtonLabel = false;\n\n /**\n * DEPRECATED. Use `label` instead.\n * Button assistive text, title + aria-label.\n */\n @property({ type: String })\n accessor assistiveText = '';\n\n /** Turns the button into a link. */\n @property({ type: String })\n accessor href = '';\n\n /** Text for mobile \"Back\" button. */\n @property({ type: String })\n accessor backText = 'Back';\n\n /** Removes padding from the flyout menu. */\n @property({ type: Boolean })\n accessor noPadding = false;\n\n /**\n * Queries any slotted HTML elements.\n * @ignore\n */\n @queryAssignedElements()\n accessor slottedElements!: Array<HTMLElement>;\n\n override render() {\n const classes = {\n menu: true,\n open: this.open,\n };\n\n const contentClasses = {\n menu__content: true,\n 'menu__content--left': this.anchorLeft,\n slotted: this.slottedElements.length,\n 'no-padding': this.noPadding,\n };\n\n return html`\n <div class=\"${classMap(classes)}\">\n ${this.href !== ''\n ? html`\n <a\n class=\"btn interactive\"\n href=${this.href}\n title=${this.label || this.assistiveText}\n aria-label=${this.label || this.assistiveText}\n @click=${this.handleClick}\n >\n <slot name=\"button\"></slot>\n\n ${!this.hideButtonLabel\n ? html`\n <span class=\"label\">\n ${this.label || this.assistiveText}\n </span>\n `\n : null}\n\n <span slot=\"button\" class=\"arrow\">\n ${unsafeSVG(chevronIcon)}\n </span>\n </a>\n `\n : html`\n <button\n class=\"btn interactive\"\n title=${this.label || this.assistiveText}\n aria-label=${this.label || this.assistiveText}\n @click=${this.handleClick}\n >\n <slot name=\"button\"></slot>\n\n ${!this.hideButtonLabel\n ? html`\n <span class=\"label\">\n ${this.label || this.assistiveText}\n </span>\n `\n : null}\n\n <span slot=\"button\" class=\"arrow\">\n ${unsafeSVG(chevronIcon)}\n </span>\n </button>\n `}\n\n <div class=${classMap(contentClasses)}>\n <button class=\"go-back\" @click=${() => this._handleBack()}>\n <span>${unsafeSVG(backIcon)}</span>\n ${this.backText}\n </button>\n\n ${!this.hideMenuLabel\n ? html`\n <div class=\"menu-label\">\n ${this.label || this.assistiveText}\n </div>\n `\n : null}\n\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n private _handleBack() {\n this.open = false;\n }\n\n private handleClick() {\n this.open = !this.open;\n }\n\n private handleClickOut(e: Event) {\n if (!e.composedPath().includes(this)) {\n this.open = false;\n }\n }\n\n /** Bound outside-click handler for add/remove symmetry.\n * @internal\n */\n private readonly _boundHandleClickOut = (e: Event) => this.handleClickOut(e);\n\n override willUpdate(changedProps: any) {\n if (changedProps.has('open')) {\n const event = new CustomEvent('on-flyout-toggle', {\n composed: true,\n bubbles: true,\n detail: { open: this.open },\n });\n this.dispatchEvent(event);\n }\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n document.addEventListener('click', this._boundHandleClickOut);\n }\n\n override disconnectedCallback() {\n document.removeEventListener('click', this._boundHandleClickOut);\n\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-header-flyout': HeaderFlyout;\n }\n}\n"],"names":["HeaderFlyout","customElement","LitElement","_classThis","_classSuper","_HeaderFlyout_open_accessor_storage","set","this","__runInitializers","_open_initializers","_HeaderFlyout_anchorLeft_accessor_storage","_open_extraInitializers","_anchorLeft_initializers","_HeaderFlyout_hideArrow_accessor_storage","_anchorLeft_extraInitializers","_hideArrow_initializers","_HeaderFlyout_label_accessor_storage","_hideArrow_extraInitializers","_label_initializers","_HeaderFlyout_hideMenuLabel_accessor_storage","_label_extraInitializers","_hideMenuLabel_initializers","_HeaderFlyout_hideButtonLabel_accessor_storage","_hideMenuLabel_extraInitializers","_hideButtonLabel_initializers","_HeaderFlyout_assistiveText_accessor_storage","_hideButtonLabel_extraInitializers","_assistiveText_initializers","_HeaderFlyout_href_accessor_storage","_assistiveText_extraInitializers","_href_initializers","_HeaderFlyout_backText_accessor_storage","_href_extraInitializers","_backText_initializers","_HeaderFlyout_noPadding_accessor_storage","_backText_extraInitializers","_noPadding_initializers","_HeaderFlyout_slottedElements_accessor_storage","_noPadding_extraInitializers","_slottedElements_initializers","_boundHandleClickOut","_slottedElements_extraInitializers","e","handleClickOut","open","__classPrivateFieldGet","value","__classPrivateFieldSet","anchorLeft","hideArrow","label","hideMenuLabel","hideButtonLabel","assistiveText","href","backText","noPadding","slottedElements","render","classes","menu","contentClasses","menu__content","slotted","length","html","classMap","handleClick","unsafeSVG","chevronIcon","_handleBack","backIcon","composedPath","includes","willUpdate","changedProps","has","event","CustomEvent","composed","bubbles","detail","dispatchEvent","connectedCallback","super","document","addEventListener","disconnectedCallback","removeEventListener","property","type","Boolean","reflect","_anchorLeft_decorators","_hideArrow_decorators","_label_decorators","String","_hideMenuLabel_decorators","_hideButtonLabel_decorators","_assistiveText_decorators","_href_decorators","_backText_decorators","_noPadding_decorators","_slottedElements_decorators","queryAssignedElements","__esDecorate","_open_decorators","kind","name","static","private","access","obj","get","metadata","_metadata","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","HeaderFlyoutScss"],"mappings":"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"}
|
|
@@ -102,7 +102,7 @@ import{__setFunctionName as e,__esDecorate as t,__runInitializers as o,__classPr
|
|
|
102
102
|
transform: none;
|
|
103
103
|
visibility: hidden;
|
|
104
104
|
opacity: 0;
|
|
105
|
-
z-index:
|
|
105
|
+
z-index: 0;
|
|
106
106
|
display: flex;
|
|
107
107
|
flex-direction: column;
|
|
108
108
|
gap: 2px;
|
|
@@ -154,7 +154,8 @@ import{__setFunctionName as e,__esDecorate as t,__runInitializers as o,__classPr
|
|
|
154
154
|
visibility: visible;
|
|
155
155
|
opacity: 1;
|
|
156
156
|
transform: none;
|
|
157
|
-
z-index:
|
|
157
|
+
z-index: 1;
|
|
158
|
+
pointer-events: auto;
|
|
158
159
|
}
|
|
159
160
|
|
|
160
161
|
.go-back {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headerFlyouts.js","sources":["../../../../src/components/global/header/headerFlyouts.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { querySelectorAllDeep } from 'query-selector-shadow-dom';\nimport HeaderFlyoutsScss from './headerFlyouts.scss?inline';\n\nimport overflowIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/overflow.svg';\n\n/**\n * Container for header-flyout components.\n * @slot unnamed - Slot for header-flyout components.\n */\n@customElement('kyn-header-flyouts')\nexport class HeaderFlyouts extends LitElement {\n static override styles = unsafeCSS(HeaderFlyoutsScss);\n\n /* Menu open state (small breakpoint). */\n @property({ type: Boolean })\n accessor open = false;\n\n override render() {\n return html`\n <div class=\"header-flyouts menu ${this.open ? 'open' : ''}\">\n <button\n class=\"btn interactive\"\n aria-label=\"Toggle Menu\"\n title=\"Toggle Menu\"\n @click=${() => this._toggleOpen()}\n >\n <span class=\"overflow-icon\">${unsafeSVG(overflowIcon)}</span>\n </button>\n\n <div class=\"menu__content\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n private _toggleOpen() {\n this.open = !this.open;\n }\n\n private _handleClickOut(e: Event) {\n if (!e.composedPath().includes(this)) {\n this.open = false;\n }\n }\n\n private _handleFlyoutToggle() {\n this._emitFlyoutsToggle();\n }\n\n /** Bound outside-click handler for add/remove symmetry.\n * @internal\n */\n private readonly _boundHandleClickOut = (e: Event) => this._handleClickOut(e);\n\n /** Bound child-flyout toggle handler for add/remove symmetry.\n * @internal\n */\n private readonly _boundHandleFlyoutToggle = () => this._handleFlyoutToggle();\n\n private _emitFlyoutsToggle() {\n const Flyouts: Array<any> = querySelectorAllDeep('kyn-header-flyout', this);\n\n const event = new CustomEvent('on-flyouts-toggle', {\n composed: true,\n bubbles: true,\n detail: {\n open: this.open,\n childrenOpen: Flyouts.some((flyout: any) => flyout.open),\n },\n });\n this.dispatchEvent(event);\n }\n\n override willUpdate(changedProps: any) {\n if (changedProps.has('open')) {\n this._emitFlyoutsToggle();\n }\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n document.addEventListener('click', this._boundHandleClickOut);\n this.addEventListener(\n 'on-flyout-toggle',\n this._boundHandleFlyoutToggle as EventListener\n );\n }\n\n override disconnectedCallback() {\n document.removeEventListener('click', this._boundHandleClickOut);\n this.removeEventListener(\n 'on-flyout-toggle',\n this._boundHandleFlyoutToggle as EventListener\n );\n\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-header-flyouts': HeaderFlyouts;\n }\n}\n"],"names":["HeaderFlyouts","customElement","LitElement","_classThis","_classSuper","_HeaderFlyouts_open_accessor_storage","set","this","__runInitializers","_open_initializers","_boundHandleClickOut","_open_extraInitializers","e","_handleClickOut","_boundHandleFlyoutToggle","_handleFlyoutToggle","open","__classPrivateFieldGet","value","__classPrivateFieldSet","render","html","_toggleOpen","unsafeSVG","overflowIcon","composedPath","includes","_emitFlyoutsToggle","Flyouts","querySelectorAllDeep","event","CustomEvent","composed","bubbles","detail","childrenOpen","some","flyout","dispatchEvent","willUpdate","changedProps","has","connectedCallback","super","document","addEventListener","disconnectedCallback","removeEventListener","_open_decorators","property","type","Boolean","__esDecorate","kind","name","static","private","access","obj","get","metadata","_metadata","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","HeaderFlyoutsScss"],"mappings":"
|
|
1
|
+
{"version":3,"file":"headerFlyouts.js","sources":["../../../../src/components/global/header/headerFlyouts.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { querySelectorAllDeep } from 'query-selector-shadow-dom';\nimport HeaderFlyoutsScss from './headerFlyouts.scss?inline';\n\nimport overflowIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/overflow.svg';\n\n/**\n * Container for header-flyout components.\n * @slot unnamed - Slot for header-flyout components.\n */\n@customElement('kyn-header-flyouts')\nexport class HeaderFlyouts extends LitElement {\n static override styles = unsafeCSS(HeaderFlyoutsScss);\n\n /* Menu open state (small breakpoint). */\n @property({ type: Boolean })\n accessor open = false;\n\n override render() {\n return html`\n <div class=\"header-flyouts menu ${this.open ? 'open' : ''}\">\n <button\n class=\"btn interactive\"\n aria-label=\"Toggle Menu\"\n title=\"Toggle Menu\"\n @click=${() => this._toggleOpen()}\n >\n <span class=\"overflow-icon\">${unsafeSVG(overflowIcon)}</span>\n </button>\n\n <div class=\"menu__content\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n private _toggleOpen() {\n this.open = !this.open;\n }\n\n private _handleClickOut(e: Event) {\n if (!e.composedPath().includes(this)) {\n this.open = false;\n }\n }\n\n private _handleFlyoutToggle() {\n this._emitFlyoutsToggle();\n }\n\n /** Bound outside-click handler for add/remove symmetry.\n * @internal\n */\n private readonly _boundHandleClickOut = (e: Event) => this._handleClickOut(e);\n\n /** Bound child-flyout toggle handler for add/remove symmetry.\n * @internal\n */\n private readonly _boundHandleFlyoutToggle = () => this._handleFlyoutToggle();\n\n private _emitFlyoutsToggle() {\n const Flyouts: Array<any> = querySelectorAllDeep('kyn-header-flyout', this);\n\n const event = new CustomEvent('on-flyouts-toggle', {\n composed: true,\n bubbles: true,\n detail: {\n open: this.open,\n childrenOpen: Flyouts.some((flyout: any) => flyout.open),\n },\n });\n this.dispatchEvent(event);\n }\n\n override willUpdate(changedProps: any) {\n if (changedProps.has('open')) {\n this._emitFlyoutsToggle();\n }\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n document.addEventListener('click', this._boundHandleClickOut);\n this.addEventListener(\n 'on-flyout-toggle',\n this._boundHandleFlyoutToggle as EventListener\n );\n }\n\n override disconnectedCallback() {\n document.removeEventListener('click', this._boundHandleClickOut);\n this.removeEventListener(\n 'on-flyout-toggle',\n this._boundHandleFlyoutToggle as EventListener\n );\n\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-header-flyouts': HeaderFlyouts;\n }\n}\n"],"names":["HeaderFlyouts","customElement","LitElement","_classThis","_classSuper","_HeaderFlyouts_open_accessor_storage","set","this","__runInitializers","_open_initializers","_boundHandleClickOut","_open_extraInitializers","e","_handleClickOut","_boundHandleFlyoutToggle","_handleFlyoutToggle","open","__classPrivateFieldGet","value","__classPrivateFieldSet","render","html","_toggleOpen","unsafeSVG","overflowIcon","composedPath","includes","_emitFlyoutsToggle","Flyouts","querySelectorAllDeep","event","CustomEvent","composed","bubbles","detail","childrenOpen","some","flyout","dispatchEvent","willUpdate","changedProps","has","connectedCallback","super","document","addEventListener","disconnectedCallback","removeEventListener","_open_decorators","property","type","Boolean","__esDecorate","kind","name","static","private","access","obj","get","metadata","_metadata","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","HeaderFlyoutsScss"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAaaA,EAAa,yBADzBC,EAAc,8BACoBC,mBAARC,EAAA,cAAQC,oCAKxBC,EAAAC,IAAAC,KAAAC,EAAAD,KAAAE,GAAO,IAsCCF,KAAAG,sBAAoBF,EAAAD,KAAAI,GAAIC,GAAaL,KAAKM,gBAAgBD,IAK1DL,KAAAO,yBAA2B,IAAMP,KAAKQ,sBA3CvD,QAASC,GAAI,OAAAC,EAAAV,KAAAF,EAAA,IAAA,CAAb,QAASW,CAAIE,GAAAC,EAAAZ,KAAAF,EAAAa,EAAA,IAAA,CAEJ,MAAAE,GACP,OAAOC,CAAI;wCACyBd,KAAKS,KAAO,OAAS;;;;;mBAK1C,IAAMT,KAAKe;;wCAEUC,EAAUC;;;;;;;MAUxC,WAAAF,GACNf,KAAKS,MAAQT,KAAKS,KAGZ,eAAAH,CAAgBD,GACjBA,EAAEa,eAAeC,SAASnB,QAC7BA,KAAKS,MAAO,GAIR,mBAAAD,GACNR,KAAKoB,qBAaC,kBAAAA,GACN,MAAMC,EAAsBC,EAAqB,oBAAqBtB,MAEhEuB,EAAQ,IAAIC,YAAY,oBAAqB,CACjDC,UAAU,EACVC,SAAS,EACTC,OAAQ,CACNlB,KAAMT,KAAKS,KACXmB,aAAcP,EAAQQ,MAAMC,GAAgBA,EAAOrB,UAGvDT,KAAK+B,cAAcR,GAGZ,UAAAS,CAAWC,GACdA,EAAaC,IAAI,SACnBlC,KAAKoB,qBAIA,iBAAAe,GACPC,MAAMD,oBAENE,SAASC,iBAAiB,QAAStC,KAAKG,sBACxCH,KAAKsC,iBACH,mBACAtC,KAAKO,0BAIA,oBAAAgC,GACPF,SAASG,oBAAoB,QAASxC,KAAKG,sBAC3CH,KAAKwC,oBACH,mBACAxC,KAAKO,0BAGP6B,MAAMG,kMAnFPE,EAAA,CAAAC,EAAS,CAAEC,KAAMC,WAClBC,EAAAjD,EAAA,KAAA6C,EAAA,CAAAK,KAAA,WAAAC,KAAA,OAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAAhB,IAAAiB,GAAA,SAAAA,EAAAC,IAAAD,GAAAA,EAAS1C,KAAIV,IAAA,CAAAoD,EAAAxC,KAAAwC,EAAJ1C,KAAIE,CAAA,GAAA0C,SAAAC,GAAApD,EAAAE,GALfyC,EAAA,KAAAU,EAAA,CAAA5C,MAAAf,GAAA4D,EAAA,CAAAV,KAAA,QAAAC,KAAAnD,EAAAmD,KAAAM,SAAAC,GAAA,KAAAG,iHACkB7D,EAAA8D,OAASC,EAAUC,GADxB3D,EAAAL,EAAA6D,MAAa"}
|
|
@@ -102,7 +102,7 @@ import{__setFunctionName as e,__esDecorate as t,__runInitializers as i,__classPr
|
|
|
102
102
|
transform: none;
|
|
103
103
|
visibility: hidden;
|
|
104
104
|
opacity: 0;
|
|
105
|
-
z-index:
|
|
105
|
+
z-index: 0;
|
|
106
106
|
display: flex;
|
|
107
107
|
flex-direction: column;
|
|
108
108
|
gap: 2px;
|
|
@@ -154,7 +154,8 @@ import{__setFunctionName as e,__esDecorate as t,__runInitializers as i,__classPr
|
|
|
154
154
|
visibility: visible;
|
|
155
155
|
opacity: 1;
|
|
156
156
|
transform: none;
|
|
157
|
-
z-index:
|
|
157
|
+
z-index: 1;
|
|
158
|
+
pointer-events: auto;
|
|
158
159
|
}
|
|
159
160
|
|
|
160
161
|
.go-back {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headerLink.js","sources":["../../../../src/components/global/header/headerLink.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html, unsafeCSS } from 'lit';\nimport {\n customElement,\n property,\n state,\n queryAssignedElements,\n} from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { debounce } from '../../../common/helpers/helpers';\nimport HeaderLinkScss from './headerLink.scss?inline';\nimport '../../reusable/textInput';\nimport arrowIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-right.svg';\nimport backIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/arrow-left.svg';\nimport searchIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/search.svg';\n\nexport type HeaderLinkTarget = '_self' | '_blank' | '_parent' | '_top';\n\n/**\n * Component for navigation links within the Header.\n * @fires on-click - Captures the click event and emits the original event details. `detail:{ origEvent: Event ,defaultPrevented: boolean}`\n * @slot unnamed - Slot for link text/content.\n * @slot links - Slot for sublinks (up to two levels).\n * @slot icon - Slot for icon.\n */\n@customElement('kyn-header-link')\nexport class HeaderLink extends LitElement {\n static override styles = unsafeCSS(HeaderLinkScss);\n\n /** Link open state.\n * @internal\n */\n @property({ type: Boolean, reflect: true })\n accessor open = false;\n\n /** Link url. */\n @property({ type: String })\n accessor href = '';\n\n /** Defines a target attribute for where to load the URL. Possible options include \"_self\" (default), \"_blank\", \"_parent\", \"_top\" */\n @property({ type: String })\n accessor target: HeaderLinkTarget = '_self';\n\n /** Defines a relationship between a linked resource and the document. An empty string (default) means no particular relationship */\n @property({ type: String })\n accessor rel = '';\n\n /** Link active state, for example when URL path matches link href. */\n @property({ type: Boolean })\n accessor isActive = false;\n\n /** Link level, supports two levels.\n * @ignore\n */\n @state()\n accessor level = 1;\n\n /** DEPRECATED. Adds a 1px shadow to the bottom of the link. */\n @property({ type: Boolean })\n accessor divider = false;\n\n /** Label for sub-menu link search input, which is visible with > 5 sub-links. */\n @property({ type: String })\n accessor searchLabel = 'Search';\n\n /** Number of child links required to show search input. */\n @property({ type: Number })\n accessor searchThreshold = 6;\n\n /** Maximum number of links per column in plain (non-categorical) flyouts.\n * When set to a positive number and the slotted link count exceeds this value,\n * additional columns are created automatically. Default 0 (auto — no column splitting).\n */\n @property({ type: Number })\n accessor linksPerColumn = 0;\n\n /** Hide the search input regardless of the number of child links. */\n @property({ type: Boolean })\n accessor hideSearch = false;\n\n /** Text for mobile \"Back\" button. */\n @property({ type: String })\n accessor backText = 'Back';\n\n /** Add left padding when icon is not provided to align text with links that do have icons. */\n @property({ type: Boolean })\n accessor leftPadding = false;\n\n /** Title attribute for the link, shown as a tooltip on hover. Useful for truncated text.\n * @internal\n */\n @property({ type: String, attribute: 'link-title' })\n accessor linkTitle = '';\n\n /** When true, long text truncates with ellipsis. Default: false (text wraps normally). */\n @property({ type: Boolean, reflect: true })\n accessor truncate = false;\n\n /** Auto-derived title from slot content, used if linkTitle is not set.\n * @internal\n */\n @state()\n accessor _autoTitle = '';\n\n /** Indicates whether this link contains categorical navigation (kyn-header-categories or kyn-header-category).\n * @internal\n */\n @property({ type: Boolean, reflect: true, attribute: 'has-categorical' })\n accessor hasCategorical = false;\n\n /** Indicates whether this link contains multi-column categorical navigation (kyn-header-categories wrapper).\n * Used to distinguish multi-column flyouts from single-column category lists.\n * @internal\n */\n @property({ type: Boolean, reflect: true, attribute: 'has-multi-column' })\n accessor hasMultiColumn = false;\n\n /** Number of columns in the categorical flyout (for width adjustment).\n * @internal\n */\n @property({ type: Number, reflect: true, attribute: 'data-flyout-columns' })\n accessor flyoutColumns = 0;\n\n /** Mirrors `fixed-column-widths` from nested kyn-header-categories.\n * @internal\n */\n @property({ type: Boolean, reflect: true, attribute: 'fixed-column-widths' })\n accessor fixedColumnWidths = false;\n\n /** Current search term for filtering links in the flyout.\n * @internal\n */\n @state()\n accessor _searchTerm = '';\n\n /** Number of slotted plain links (non-categorical), used for column calculation.\n * @internal\n */\n @state()\n accessor _slottedLinkCount = 0;\n\n /**\n * Queries any slotted HTML elements.\n * @ignore\n */\n @queryAssignedElements({ slot: 'links' })\n accessor slottedEls!: Array<HTMLElement>;\n\n /** Timeout function to delay flyout open.\n * @internal\n */\n _enterTimer: any;\n\n /** Timeout function to delay flyout close.\n * @internal\n */\n @state()\n accessor _leaveTimer: any;\n\n /** Suppresses pointer-leave close during internal view transitions (e.g. \"More\" click).\n * @internal\n */\n private _viewChangeInProgress = false;\n private _viewChangeTimer: any;\n\n /** Cached truncation state from parent nav\n * @internal\n */\n @state()\n accessor _inheritedTruncate = false;\n\n /** Observer for `truncate-links` changes on the owning nav.\n * @internal\n */\n private _truncateObserver?: MutationObserver;\n private _observedNav: HTMLElement | null = null;\n\n /** Menu positioning\n * @internal\n */\n @state()\n accessor menuPosition: any = {};\n\n override render() {\n const classes = {\n menu: this.slottedEls.length,\n [`level--${this.level}`]: true,\n divider: this.divider,\n open: this.open || (this.level === 1 && this.isActive),\n };\n\n // Check if truncation should be applied (individual prop or inherited from nav)\n const shouldTruncate = this.truncate || this._inheritedTruncate;\n\n const linkClasses = {\n 'nav-link': true,\n active: this.isActive,\n interactive: this.level == 1,\n 'padding-left': this.leftPadding,\n truncate: shouldTruncate,\n };\n\n const menuClasses = {\n menu__content: true,\n slotted: this.slottedEls.length,\n };\n\n const Links = this.querySelectorAll(\n ':scope > kyn-header-link, :scope > kyn-header-category > kyn-header-link'\n );\n\n const showSearch = !this.hideSearch && Links.length >= this.searchThreshold;\n\n const wrapperClasses = {\n wrapper: true,\n 'no-search': !showSearch,\n };\n\n return html`\n <div\n class=\"${classMap(classes)}\"\n @pointerleave=${(e: PointerEvent) => this.handlePointerLeave(e)}\n @pointerenter=${(e: PointerEvent) => this.handlePointerEnter(e)}\n >\n <a\n target=${this.target}\n rel=${this.rel}\n href=${this.href}\n title=${ifDefined(\n this.linkTitle ||\n (this.slottedEls.length === 0 ? this._autoTitle : '') ||\n undefined\n )}\n class=${classMap(linkClasses)}\n @click=${(e: Event) => this.handleClick(e)}\n @pointerenter=${(e: PointerEvent) => this.handlePointerEnter(e)}\n >\n <slot @slotchange=${this._handleDefaultSlotChange}></slot>\n\n ${this.slottedEls.length\n ? html` <span class=\"arrow\">${unsafeSVG(arrowIcon)}</span> `\n : null}\n </a>\n\n <div\n class=${classMap(menuClasses)}\n style=${styleMap(this.menuPosition)}\n >\n <div class=${classMap(wrapperClasses)}>\n <button\n class=\"go-back\"\n type=\"button\"\n @click=${(e: Event) => this._handleBack(e)}\n >\n <span>${unsafeSVG(backIcon)}</span>\n ${this.backText}\n </button>\n ${showSearch\n ? html`\n <kyn-text-input\n hideLabel\n size=\"sm\"\n type=\"search\"\n label=${this.searchLabel}\n placeholder=${this.searchLabel}\n value=${this._searchTerm}\n @on-input=${(e: Event) => this._handleSearch(e)}\n >\n <span slot=\"icon\" class=\"search-icon\">\n ${unsafeSVG(searchIcon)}\n </span>\n ${this.searchLabel}\n </kyn-text-input>\n `\n : null}\n\n <div\n class=\"links-columns\"\n style=${styleMap(this._linksColumnStyles)}\n >\n <slot\n name=\"links\"\n @slotchange=${this._handleLinksSlotChange}\n ></slot>\n </div>\n </div>\n </div>\n </div>\n `;\n }\n\n /** Compute inline styles for the links-columns wrapper.\n * Only applies multi-column layout for plain (non-categorical) flyouts\n * when the number of links exceeds linksPerColumn.\n * @internal\n */\n private get _linksColumnStyles() {\n if (\n !this.hasCategorical &&\n this.linksPerColumn > 0 &&\n this._slottedLinkCount > this.linksPerColumn\n ) {\n const columnCount = Math.ceil(\n this._slottedLinkCount / this.linksPerColumn\n );\n return { 'column-count': columnCount.toString() };\n }\n return {};\n }\n\n private _handleSearch(e: any) {\n this._searchTerm = e.detail.value.toLowerCase();\n this._searchFilter();\n }\n\n private _searchFilter() {\n const Links: any = this.querySelectorAll(\n ':scope > kyn-header-link, :scope > kyn-header-category > kyn-header-link'\n );\n\n Links.forEach((link: any) => {\n // get link text\n const nodes: any = link.shadowRoot?.querySelector('slot')?.assignedNodes({\n flatten: true,\n });\n let linkText = '';\n for (let i = 0; i < nodes.length; i++) {\n linkText += nodes[i].textContent.trim();\n }\n\n if (linkText.toLowerCase().includes(this._searchTerm)) {\n link.style.display = 'block';\n } else {\n link.style.display = 'none';\n }\n });\n\n this._positionMenu();\n }\n\n /** Extract text content from the default slot to use as auto-title */\n private _handleDefaultSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n const nodes = slot.assignedNodes({ flatten: true });\n let textContent = '';\n for (const node of nodes) {\n textContent += node.textContent?.trim() ?? '';\n }\n this._autoTitle = textContent.trim();\n }\n\n private _handleBack(e?: Event) {\n if (e) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n // detect if we're inside the categorized/mega nav variant\n const headerCategories = this.closest('kyn-header-categories') as\n | (HTMLElement & { handleBackClick?: (evt?: Event) => void })\n | null;\n\n if (headerCategories?.handleBackClick) {\n headerCategories.handleBackClick(e);\n\n // Close any open header links under this nav\n const navRoot =\n (this.closest('kyn-header-nav') as HTMLElement | null) ??\n headerCategories;\n\n const links = navRoot.querySelectorAll<HTMLElement & { open?: boolean }>(\n 'kyn-header-link[open]'\n );\n\n links.forEach((link) => {\n link.removeAttribute('open');\n if ('open' in link) {\n (link as any).open = false;\n }\n });\n\n // Clear local search for this column\n this._searchTerm = '';\n this._searchFilter();\n\n return;\n }\n\n // BASIC NAV:\n // Preserve original behavior: go up one level\n this.open = false;\n this._searchTerm = '';\n this._searchFilter();\n }\n\n private _handleLinksSlotChange() {\n // Detect if this link contains categorical navigation\n const hasCategories = this.querySelector('kyn-header-categories') !== null;\n const hasCategory = this.querySelector('kyn-header-category') !== null;\n const categoriesEl =\n this.querySelector('kyn-tab-panel[visible] kyn-header-categories') ||\n this.querySelector('kyn-header-categories');\n\n this.hasCategorical = hasCategories || hasCategory;\n this.hasMultiColumn = hasCategories; // Only true for multi-column wrapper\n this.fixedColumnWidths =\n categoriesEl?.hasAttribute('fixed-column-widths') ?? false;\n\n // Prime flyout column count before open so width/layout CSS can apply\n // without a second-pass visual snap.\n if (categoriesEl) {\n const dataCol = categoriesEl.getAttribute('data-columns');\n this.flyoutColumns = dataCol ? parseInt(dataCol, 10) || 0 : 0;\n } else {\n this.flyoutColumns = 0;\n }\n\n // Count direct child plain links for column wrapping\n const plainLinks = this.querySelectorAll(':scope > kyn-header-link');\n this._slottedLinkCount = plainLinks.length;\n\n this.requestUpdate();\n }\n\n /** Handle column count changes from slotted kyn-header-categories\n * @internal\n */\n private _handleColumnCountChange = (e: Event) => {\n const detail = (\n e as CustomEvent<{\n columnCount: number;\n fixedColumnWidths?: boolean;\n }>\n ).detail;\n if (detail?.columnCount !== undefined) {\n this.flyoutColumns = detail.columnCount;\n this.fixedColumnWidths = Boolean(detail.fixedColumnWidths);\n }\n };\n\n private get _isDesktopViewport(): boolean {\n if (typeof window === 'undefined') return true;\n return window.innerWidth >= 672;\n }\n\n private handlePointerEnter(e: PointerEvent) {\n if (\n e.pointerType === 'mouse' &&\n this.slottedEls.length &&\n this._isDesktopViewport\n ) {\n clearTimeout(this._leaveTimer);\n\n // close other open sibling links immediately when entering any link with submenus\n this._closeOtherOpenLinks();\n\n this._enterTimer = setTimeout(() => {\n // Close siblings again right before opening to prevent race conditions\n this._closeOtherOpenLinks();\n this.open = true;\n }, 150);\n }\n }\n\n /** close other open header links at the same level\n * @internal\n */\n private _closeOtherOpenLinks(): void {\n // Strategy: Close all sibling header-links that are currently open\n // This handles the sidebar nav where links are direct children of header-nav\n\n // For level 1 links (main sidebar), find siblings via parent\n if (this.level === 1) {\n const parent = this.parentElement;\n if (parent) {\n // Find ALL level 1 links (not just open ones) to clear pending timers\n const siblingLinks = parent.querySelectorAll<\n HTMLElement & { open?: boolean; _enterTimer?: any }\n >(':scope > kyn-header-link');\n\n siblingLinks.forEach((link) => {\n if (link !== this) {\n // Clear any pending timers\n if ((link as any)._enterTimer) {\n clearTimeout((link as any)._enterTimer);\n (link as any)._enterTimer = undefined;\n }\n if ((link as any)._leaveTimer) {\n clearTimeout((link as any)._leaveTimer);\n (link as any)._leaveTimer = undefined;\n }\n // Force close - set property, remove attribute, and force re-render\n if ((link as any).open) {\n (link as any).open = false;\n link.removeAttribute('open');\n (link as any).requestUpdate?.();\n }\n }\n });\n }\n return;\n }\n\n // For nested links, find the nearest container and close same-level links\n const navContainer =\n this.closest('kyn-header-nav') ||\n this.closest('kyn-tab-panel') ||\n this.closest('.menu__content');\n\n if (navContainer) {\n const allLinks = navContainer.querySelectorAll<\n HTMLElement & { open?: boolean; level?: number; _enterTimer?: any }\n >('kyn-header-link');\n\n allLinks.forEach((link) => {\n if (link !== this && (link as any).level === this.level) {\n // Clear any pending timers\n if ((link as any)._enterTimer) {\n clearTimeout((link as any)._enterTimer);\n (link as any)._enterTimer = undefined;\n }\n if ((link as any)._leaveTimer) {\n clearTimeout((link as any)._leaveTimer);\n (link as any)._leaveTimer = undefined;\n }\n // Force close - set property, remove attribute, and force re-render\n if ((link as any).open) {\n (link as any).open = false;\n link.removeAttribute('open');\n (link as any).requestUpdate?.();\n }\n }\n });\n }\n }\n\n private handlePointerLeave(e: PointerEvent) {\n // Suppress close during internal view transitions (e.g. \"More\" → detail view).\n // The flyout resizes and the cursor may end up outside, but the user's intent\n // was to drill in — not to leave.\n if (this._viewChangeInProgress) {\n return;\n }\n\n // check both the link's own prop and parent nav's prop\n // if either is false, don't auto-close the flyout\n const shouldAutoCollapse = this._shouldAutoCollapse();\n if (!shouldAutoCollapse) {\n return;\n }\n\n if (\n e.pointerType === 'mouse' &&\n this.slottedEls.length &&\n this._searchTerm === '' &&\n this._isDesktopViewport\n ) {\n clearTimeout(this._enterTimer);\n this._leaveTimer = setTimeout(() => {\n this.open = false;\n }, 150);\n }\n }\n\n /** Check if flyout should auto-collapse based on parent nav's autoOpenFlyout.\n * Only applies to links containing categorical nav (kyn-header-categories).\n * @internal\n */\n private _shouldAutoCollapse(): boolean {\n // Non-categorical links always auto-collapse (preserve original behavior)\n if (!this.hasCategorical) {\n return true;\n }\n\n const parentNav = this.closest('kyn-header-nav') as\n | (HTMLElement & { autoOpenFlyout?: string })\n | null;\n\n // If parent nav has autoOpenFlyout set (truthy), don't auto-collapse\n if (parentNav?.autoOpenFlyout) {\n return false;\n }\n\n return true;\n }\n\n private handleClick(e: Event) {\n let preventDefault = false;\n\n if (this.slottedEls.length) {\n preventDefault = true;\n e.preventDefault();\n // Close other open links before toggling this one\n if (!this.open) {\n this._closeOtherOpenLinks();\n }\n this.open = !this.open;\n }\n\n const event = new CustomEvent('on-click', {\n detail: { origEvent: e, defaultPrevented: preventDefault },\n });\n this.dispatchEvent(event);\n }\n\n private handleClickOut(e: Event) {\n if (!e.composedPath().includes(this)) {\n this.open = false;\n this._searchTerm = '';\n this._searchFilter();\n }\n }\n\n private determineLevel() {\n let level = 1;\n let node: any = this.parentNode;\n\n // Traverse up the DOM tree\n while (node) {\n if (node.nodeName === 'KYN-HEADER-LINK') {\n level = (node.level ?? 1) + 1;\n break;\n } else if (\n node.nodeName === 'KYN-HEADER-CATEGORY' &&\n node.parentNode?.nodeName === 'KYN-HEADER-LINK'\n ) {\n level = (node.parentNode.level ?? 1) + 1;\n break;\n } else if (\n window.innerWidth < 672 &&\n node.nodeName === 'KYN-HEADER-FLYOUT'\n ) {\n level = 2;\n break;\n }\n node = node.parentNode;\n }\n\n this.level = level;\n }\n\n private _positionMenu() {\n const linkBounds = this.getBoundingClientRect?.();\n const menuEl =\n this.shadowRoot?.querySelector<HTMLElement>('.menu__content');\n const menuBounds = menuEl?.getBoundingClientRect?.();\n\n if (!linkBounds || !menuBounds) {\n return;\n }\n\n const Padding = 12;\n const HeaderHeight = 64;\n\n const linkHalf = linkBounds.top + linkBounds.height / 2;\n const menuHalf = menuBounds.height / 2;\n\n const topCandidate =\n linkHalf + menuHalf > window.innerHeight\n ? linkHalf - menuHalf - (linkHalf + menuHalf - window.innerHeight) - 16\n : linkHalf - menuHalf;\n\n if (this.level === 1) {\n // Keep level-1 flyouts pinned to the nav rail origin (legacy behavior).\n // This avoids viewport/header bound drift and keeps panels consistently aligned.\n let navMenuHeight = 0;\n const headerNav = this.closest('kyn-header-nav') as HTMLElement | null;\n if (headerNav) {\n const navMenu = headerNav.shadowRoot?.querySelector(\n '.menu__content'\n ) as HTMLElement | null;\n if (navMenu) {\n navMenuHeight = navMenu.offsetHeight;\n }\n }\n\n this.menuPosition = {\n top: HeaderHeight + 'px',\n left: '0px',\n minHeight: navMenuHeight + 'px',\n };\n } else {\n const top = topCandidate < HeaderHeight ? HeaderHeight : topCandidate;\n this.menuPosition = {\n top: top + 'px',\n left: linkBounds.right + Padding + 'px',\n };\n }\n }\n\n /** @internal */\n private _debounceResize = debounce(() => {\n this.determineLevel();\n if (this.open) {\n this._positionMenu();\n }\n });\n\n override firstUpdated() {\n this.determineLevel();\n this._handleLinksSlotChange();\n }\n\n override updated(changedProps: any) {\n // Re-position after render when the menu has its actual dimensions\n if (changedProps.has('open') && this.open) {\n // Use rAF to ensure the DOM has painted\n requestAnimationFrame(() => {\n this._positionMenu();\n });\n }\n\n // Re-position when column count changes (categories may render after flyout opens)\n if (changedProps.has('flyoutColumns') && this.open) {\n requestAnimationFrame(() => {\n this._positionMenu();\n });\n }\n }\n\n private _handleDocumentClick = (e: Event) => this.handleClickOut(e);\n\n /** Suppress pointer-leave close when categories switch views (root ↔ detail).\n * @internal\n */\n private _handleNavChange = () => {\n this._viewChangeInProgress = true;\n clearTimeout(this._viewChangeTimer);\n // Allow enough time for the flyout to finish resizing before re-enabling close\n this._viewChangeTimer = setTimeout(() => {\n this._viewChangeInProgress = false;\n }, 500);\n };\n\n override connectedCallback() {\n super.connectedCallback();\n document.addEventListener('click', this._handleDocumentClick);\n window.addEventListener('resize', this._debounceResize);\n // Listen for column count changes from slotted kyn-header-categories\n this.addEventListener(\n 'on-column-count-change',\n this._handleColumnCountChange\n );\n // Suppress flyout close during internal view transitions (e.g. \"More\" click)\n this.addEventListener('on-nav-change', this._handleNavChange);\n // Check for truncation inheritance after DOM is ready\n queueMicrotask(() => {\n this._observeParentNavTruncate();\n });\n }\n\n /** Find the closest owning nav across shadow boundaries.\n * @internal\n */\n private _resolveOwningNav(): HTMLElement | null {\n const parentNav = this.closest('kyn-header-nav');\n if (parentNav) return parentNav as HTMLElement;\n\n let root = this.getRootNode();\n while (root instanceof ShadowRoot) {\n const nav = root.host.closest?.('kyn-header-nav');\n if (nav) {\n return nav as HTMLElement;\n }\n root = root.host.getRootNode();\n }\n\n return null;\n }\n\n /** Sync inherited truncate state with the owning nav.\n * @internal\n */\n private _syncInheritedTruncate = (): void => {\n this._inheritedTruncate = this._isInTruncatingNav();\n };\n\n /** Observe `truncate-links` changes on the owning nav.\n * @internal\n */\n private _observeParentNavTruncate(): void {\n const nav = this._resolveOwningNav();\n\n if (this._observedNav === nav) {\n this._syncInheritedTruncate();\n return;\n }\n\n if (this._truncateObserver) {\n this._truncateObserver.disconnect();\n this._truncateObserver = undefined;\n }\n\n this._observedNav = nav;\n\n if (nav) {\n this._truncateObserver = new MutationObserver(() => {\n this._syncInheritedTruncate();\n });\n this._truncateObserver.observe(nav, {\n attributes: true,\n attributeFilter: ['truncate-links'],\n });\n }\n\n this._syncInheritedTruncate();\n }\n\n /** Check if this link is inside a nav with truncate-links attribute\n * Uses getRootNode to traverse up through shadow DOM boundaries\n * @internal\n */\n private _isInTruncatingNav(): boolean {\n return this._resolveOwningNav()?.hasAttribute('truncate-links') ?? false;\n }\n\n override disconnectedCallback() {\n // clear timers to avoid callbacks after unmount\n if (this._enterTimer) {\n clearTimeout(this._enterTimer);\n this._enterTimer = undefined;\n }\n if (this._leaveTimer) {\n clearTimeout(this._leaveTimer);\n this._leaveTimer = undefined;\n }\n\n if (this._viewChangeTimer) {\n clearTimeout(this._viewChangeTimer);\n this._viewChangeTimer = undefined;\n }\n\n document.removeEventListener('click', this._handleDocumentClick);\n window.removeEventListener('resize', this._debounceResize);\n this.removeEventListener(\n 'on-column-count-change',\n this._handleColumnCountChange\n );\n this.removeEventListener('on-nav-change', this._handleNavChange);\n if (this._truncateObserver) {\n this._truncateObserver.disconnect();\n this._truncateObserver = undefined;\n }\n this._observedNav = null;\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-header-link': HeaderLink;\n }\n}\n"],"names":["HeaderLink","customElement","LitElement","_classThis","_classSuper","_HeaderLink_open_accessor_storage","set","this","__runInitializers","_open_initializers","_HeaderLink_href_accessor_storage","_open_extraInitializers","_href_initializers","_HeaderLink_target_accessor_storage","_href_extraInitializers","_target_initializers","_HeaderLink_rel_accessor_storage","_target_extraInitializers","_rel_initializers","_HeaderLink_isActive_accessor_storage","_rel_extraInitializers","_isActive_initializers","_HeaderLink_level_accessor_storage","_isActive_extraInitializers","_level_initializers","_HeaderLink_divider_accessor_storage","_level_extraInitializers","_divider_initializers","_HeaderLink_searchLabel_accessor_storage","_divider_extraInitializers","_searchLabel_initializers","_HeaderLink_searchThreshold_accessor_storage","_searchLabel_extraInitializers","_searchThreshold_initializers","_HeaderLink_linksPerColumn_accessor_storage","_searchThreshold_extraInitializers","_linksPerColumn_initializers","_HeaderLink_hideSearch_accessor_storage","_linksPerColumn_extraInitializers","_hideSearch_initializers","_HeaderLink_backText_accessor_storage","_hideSearch_extraInitializers","_backText_initializers","_HeaderLink_leftPadding_accessor_storage","_backText_extraInitializers","_leftPadding_initializers","_HeaderLink_linkTitle_accessor_storage","_leftPadding_extraInitializers","_linkTitle_initializers","_HeaderLink_truncate_accessor_storage","_linkTitle_extraInitializers","_truncate_initializers","_HeaderLink__autoTitle_accessor_storage","_truncate_extraInitializers","__autoTitle_initializers","_HeaderLink_hasCategorical_accessor_storage","__autoTitle_extraInitializers","_hasCategorical_initializers","_HeaderLink_hasMultiColumn_accessor_storage","_hasCategorical_extraInitializers","_hasMultiColumn_initializers","_HeaderLink_flyoutColumns_accessor_storage","_hasMultiColumn_extraInitializers","_flyoutColumns_initializers","_HeaderLink_fixedColumnWidths_accessor_storage","_flyoutColumns_extraInitializers","_fixedColumnWidths_initializers","_HeaderLink__searchTerm_accessor_storage","_fixedColumnWidths_extraInitializers","__searchTerm_initializers","_HeaderLink__slottedLinkCount_accessor_storage","__searchTerm_extraInitializers","__slottedLinkCount_initializers","_HeaderLink_slottedEls_accessor_storage","__slottedLinkCount_extraInitializers","_slottedEls_initializers","_enterTimer","_slottedEls_extraInitializers","_HeaderLink__leaveTimer_accessor_storage","__leaveTimer_initializers","_viewChangeInProgress","__leaveTimer_extraInitializers","_HeaderLink__inheritedTruncate_accessor_storage","__inheritedTruncate_initializers","_truncateObserver","__inheritedTruncate_extraInitializers","_observedNav","_HeaderLink_menuPosition_accessor_storage","_menuPosition_initializers","_handleColumnCountChange","_menuPosition_extraInitializers","e","detail","undefined","columnCount","flyoutColumns","fixedColumnWidths","Boolean","_debounceResize","debounce","determineLevel","open","_positionMenu","_handleDocumentClick","handleClickOut","_handleNavChange","clearTimeout","_viewChangeTimer","setTimeout","_syncInheritedTruncate","_inheritedTruncate","_isInTruncatingNav","__classPrivateFieldGet","value","__classPrivateFieldSet","href","target","rel","isActive","level","divider","searchLabel","searchThreshold","linksPerColumn","hideSearch","backText","leftPadding","linkTitle","truncate","_autoTitle","hasCategorical","hasMultiColumn","_searchTerm","_slottedLinkCount","slottedEls","_leaveTimer","menuPosition","render","classes","menu","length","shouldTruncate","linkClasses","active","interactive","menuClasses","menu__content","slotted","Links","querySelectorAll","showSearch","wrapperClasses","wrapper","html","classMap","handlePointerLeave","handlePointerEnter","ifDefined","handleClick","_handleDefaultSlotChange","unsafeSVG","arrowIcon","styleMap","_handleBack","backIcon","_handleSearch","searchIcon","_linksColumnStyles","_handleLinksSlotChange","Math","ceil","toString","toLowerCase","_searchFilter","forEach","link","nodes","_b","_a","shadowRoot","querySelector","assignedNodes","flatten","linkText","i","textContent","trim","includes","style","display","node","preventDefault","stopPropagation","headerCategories","closest","handleBackClick","removeAttribute","hasCategories","hasCategory","categoriesEl","hasAttribute","dataCol","getAttribute","parseInt","plainLinks","requestUpdate","_isDesktopViewport","window","innerWidth","pointerType","_closeOtherOpenLinks","parent","parentElement","navContainer","_shouldAutoCollapse","parentNav","autoOpenFlyout","event","CustomEvent","origEvent","defaultPrevented","dispatchEvent","composedPath","parentNode","nodeName","_c","linkBounds","getBoundingClientRect","menuEl","menuBounds","call","linkHalf","top","height","menuHalf","topCandidate","innerHeight","navMenuHeight","headerNav","navMenu","_d","offsetHeight","HeaderHeight","left","minHeight","right","firstUpdated","updated","changedProps","has","requestAnimationFrame","connectedCallback","super","document","addEventListener","queueMicrotask","_observeParentNavTruncate","_resolveOwningNav","root","getRootNode","ShadowRoot","nav","host","disconnect","MutationObserver","observe","attributes","attributeFilter","disconnectedCallback","removeEventListener","property","type","reflect","_href_decorators","String","_target_decorators","_rel_decorators","_isActive_decorators","_level_decorators","state","_divider_decorators","_searchLabel_decorators","_searchThreshold_decorators","Number","_linksPerColumn_decorators","_hideSearch_decorators","_backText_decorators","_leftPadding_decorators","attribute","__autoTitle_decorators","_hasCategorical_decorators","_hasMultiColumn_decorators","_flyoutColumns_decorators","_fixedColumnWidths_decorators","__searchTerm_decorators","__slottedLinkCount_decorators","_slottedEls_decorators","queryAssignedElements","slot","__leaveTimer_decorators","__inheritedTruncate_decorators","_menuPosition_decorators","__esDecorate","_open_decorators","kind","name","static","private","access","obj","get","metadata","_metadata","_linkTitle_decorators","_truncate_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","HeaderLinkScss"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"headerLink.js","sources":["../../../../src/components/global/header/headerLink.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html, unsafeCSS } from 'lit';\nimport {\n customElement,\n property,\n state,\n queryAssignedElements,\n} from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { debounce } from '../../../common/helpers/helpers';\nimport HeaderLinkScss from './headerLink.scss?inline';\nimport '../../reusable/textInput';\nimport arrowIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-right.svg';\nimport backIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/arrow-left.svg';\nimport searchIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/search.svg';\n\nexport type HeaderLinkTarget = '_self' | '_blank' | '_parent' | '_top';\n\n/**\n * Component for navigation links within the Header.\n * @fires on-click - Captures the click event and emits the original event details. `detail:{ origEvent: Event ,defaultPrevented: boolean}`\n * @slot unnamed - Slot for link text/content.\n * @slot links - Slot for sublinks (up to two levels).\n * @slot icon - Slot for icon.\n */\n@customElement('kyn-header-link')\nexport class HeaderLink extends LitElement {\n static override styles = unsafeCSS(HeaderLinkScss);\n\n /** Link open state.\n * @internal\n */\n @property({ type: Boolean, reflect: true })\n accessor open = false;\n\n /** Link url. */\n @property({ type: String })\n accessor href = '';\n\n /** Defines a target attribute for where to load the URL. Possible options include \"_self\" (default), \"_blank\", \"_parent\", \"_top\" */\n @property({ type: String })\n accessor target: HeaderLinkTarget = '_self';\n\n /** Defines a relationship between a linked resource and the document. An empty string (default) means no particular relationship */\n @property({ type: String })\n accessor rel = '';\n\n /** Link active state, for example when URL path matches link href. */\n @property({ type: Boolean })\n accessor isActive = false;\n\n /** Link level, supports two levels.\n * @ignore\n */\n @state()\n accessor level = 1;\n\n /** DEPRECATED. Adds a 1px shadow to the bottom of the link. */\n @property({ type: Boolean })\n accessor divider = false;\n\n /** Label for sub-menu link search input, which is visible with > 5 sub-links. */\n @property({ type: String })\n accessor searchLabel = 'Search';\n\n /** Number of child links required to show search input. */\n @property({ type: Number })\n accessor searchThreshold = 6;\n\n /** Maximum number of links per column in plain (non-categorical) flyouts.\n * When set to a positive number and the slotted link count exceeds this value,\n * additional columns are created automatically. Default 0 (auto — no column splitting).\n */\n @property({ type: Number })\n accessor linksPerColumn = 0;\n\n /** Hide the search input regardless of the number of child links. */\n @property({ type: Boolean })\n accessor hideSearch = false;\n\n /** Text for mobile \"Back\" button. */\n @property({ type: String })\n accessor backText = 'Back';\n\n /** Add left padding when icon is not provided to align text with links that do have icons. */\n @property({ type: Boolean })\n accessor leftPadding = false;\n\n /** Title attribute for the link, shown as a tooltip on hover. Useful for truncated text.\n * @internal\n */\n @property({ type: String, attribute: 'link-title' })\n accessor linkTitle = '';\n\n /** When true, long text truncates with ellipsis. Default: false (text wraps normally). */\n @property({ type: Boolean, reflect: true })\n accessor truncate = false;\n\n /** Auto-derived title from slot content, used if linkTitle is not set.\n * @internal\n */\n @state()\n accessor _autoTitle = '';\n\n /** Indicates whether this link contains categorical navigation (kyn-header-categories or kyn-header-category).\n * @internal\n */\n @property({ type: Boolean, reflect: true, attribute: 'has-categorical' })\n accessor hasCategorical = false;\n\n /** Indicates whether this link contains multi-column categorical navigation (kyn-header-categories wrapper).\n * Used to distinguish multi-column flyouts from single-column category lists.\n * @internal\n */\n @property({ type: Boolean, reflect: true, attribute: 'has-multi-column' })\n accessor hasMultiColumn = false;\n\n /** Number of columns in the categorical flyout (for width adjustment).\n * @internal\n */\n @property({ type: Number, reflect: true, attribute: 'data-flyout-columns' })\n accessor flyoutColumns = 0;\n\n /** Mirrors `fixed-column-widths` from nested kyn-header-categories.\n * @internal\n */\n @property({ type: Boolean, reflect: true, attribute: 'fixed-column-widths' })\n accessor fixedColumnWidths = false;\n\n /** Current search term for filtering links in the flyout.\n * @internal\n */\n @state()\n accessor _searchTerm = '';\n\n /** Number of slotted plain links (non-categorical), used for column calculation.\n * @internal\n */\n @state()\n accessor _slottedLinkCount = 0;\n\n /**\n * Queries any slotted HTML elements.\n * @ignore\n */\n @queryAssignedElements({ slot: 'links' })\n accessor slottedEls!: Array<HTMLElement>;\n\n /** Timeout function to delay flyout open.\n * @internal\n */\n _enterTimer: any;\n\n /** Timeout function to delay flyout close.\n * @internal\n */\n @state()\n accessor _leaveTimer: any;\n\n /** Suppresses pointer-leave close during internal view transitions (e.g. \"More\" click).\n * @internal\n */\n private _viewChangeInProgress = false;\n private _viewChangeTimer: any;\n\n /** Cached truncation state from parent nav\n * @internal\n */\n @state()\n accessor _inheritedTruncate = false;\n\n /** Observer for `truncate-links` changes on the owning nav.\n * @internal\n */\n private _truncateObserver?: MutationObserver;\n private _observedNav: HTMLElement | null = null;\n\n /** Menu positioning\n * @internal\n */\n @state()\n accessor menuPosition: any = {};\n\n override render() {\n const classes = {\n menu: this.slottedEls.length,\n [`level--${this.level}`]: true,\n divider: this.divider,\n open: this.open || (this.level === 1 && this.isActive),\n };\n\n // Check if truncation should be applied (individual prop or inherited from nav)\n const shouldTruncate = this.truncate || this._inheritedTruncate;\n\n const linkClasses = {\n 'nav-link': true,\n active: this.isActive,\n interactive: this.level == 1,\n 'padding-left': this.leftPadding,\n truncate: shouldTruncate,\n };\n\n const menuClasses = {\n menu__content: true,\n slotted: this.slottedEls.length,\n };\n\n const Links = this.querySelectorAll(\n ':scope > kyn-header-link, :scope > kyn-header-category > kyn-header-link'\n );\n\n const showSearch = !this.hideSearch && Links.length >= this.searchThreshold;\n\n const wrapperClasses = {\n wrapper: true,\n 'no-search': !showSearch,\n };\n\n return html`\n <div\n class=\"${classMap(classes)}\"\n @pointerleave=${(e: PointerEvent) => this.handlePointerLeave(e)}\n @pointerenter=${(e: PointerEvent) => this.handlePointerEnter(e)}\n >\n <a\n target=${this.target}\n rel=${this.rel}\n href=${this.href}\n title=${ifDefined(\n this.linkTitle ||\n (this.slottedEls.length === 0 ? this._autoTitle : '') ||\n undefined\n )}\n class=${classMap(linkClasses)}\n @click=${(e: Event) => this.handleClick(e)}\n @pointerenter=${(e: PointerEvent) => this.handlePointerEnter(e)}\n >\n <slot @slotchange=${this._handleDefaultSlotChange}></slot>\n\n ${this.slottedEls.length\n ? html` <span class=\"arrow\">${unsafeSVG(arrowIcon)}</span> `\n : null}\n </a>\n\n <div\n class=${classMap(menuClasses)}\n style=${styleMap(this.menuPosition)}\n >\n <div class=${classMap(wrapperClasses)}>\n <button\n class=\"go-back\"\n type=\"button\"\n @click=${(e: Event) => this._handleBack(e)}\n >\n <span>${unsafeSVG(backIcon)}</span>\n ${this.backText}\n </button>\n ${showSearch\n ? html`\n <kyn-text-input\n hideLabel\n size=\"sm\"\n type=\"search\"\n label=${this.searchLabel}\n placeholder=${this.searchLabel}\n value=${this._searchTerm}\n @on-input=${(e: Event) => this._handleSearch(e)}\n >\n <span slot=\"icon\" class=\"search-icon\">\n ${unsafeSVG(searchIcon)}\n </span>\n ${this.searchLabel}\n </kyn-text-input>\n `\n : null}\n\n <div\n class=\"links-columns\"\n style=${styleMap(this._linksColumnStyles)}\n >\n <slot\n name=\"links\"\n @slotchange=${this._handleLinksSlotChange}\n ></slot>\n </div>\n </div>\n </div>\n </div>\n `;\n }\n\n /** Compute inline styles for the links-columns wrapper.\n * Only applies multi-column layout for plain (non-categorical) flyouts\n * when the number of links exceeds linksPerColumn.\n * @internal\n */\n private get _linksColumnStyles() {\n if (\n !this.hasCategorical &&\n this.linksPerColumn > 0 &&\n this._slottedLinkCount > this.linksPerColumn\n ) {\n const columnCount = Math.ceil(\n this._slottedLinkCount / this.linksPerColumn\n );\n return { 'column-count': columnCount.toString() };\n }\n return {};\n }\n\n private _handleSearch(e: any) {\n this._searchTerm = e.detail.value.toLowerCase();\n this._searchFilter();\n }\n\n private _searchFilter() {\n const Links: any = this.querySelectorAll(\n ':scope > kyn-header-link, :scope > kyn-header-category > kyn-header-link'\n );\n\n Links.forEach((link: any) => {\n // get link text\n const nodes: any = link.shadowRoot?.querySelector('slot')?.assignedNodes({\n flatten: true,\n });\n let linkText = '';\n for (let i = 0; i < nodes.length; i++) {\n linkText += nodes[i].textContent.trim();\n }\n\n if (linkText.toLowerCase().includes(this._searchTerm)) {\n link.style.display = 'block';\n } else {\n link.style.display = 'none';\n }\n });\n\n this._positionMenu();\n }\n\n /** Extract text content from the default slot to use as auto-title */\n private _handleDefaultSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n const nodes = slot.assignedNodes({ flatten: true });\n let textContent = '';\n for (const node of nodes) {\n textContent += node.textContent?.trim() ?? '';\n }\n this._autoTitle = textContent.trim();\n }\n\n private _handleBack(e?: Event) {\n if (e) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n // detect if we're inside the categorized/mega nav variant\n const headerCategories = this.closest('kyn-header-categories') as\n | (HTMLElement & { handleBackClick?: (evt?: Event) => void })\n | null;\n\n if (headerCategories?.handleBackClick) {\n headerCategories.handleBackClick(e);\n\n // Close any open header links under this nav\n const navRoot =\n (this.closest('kyn-header-nav') as HTMLElement | null) ??\n headerCategories;\n\n const links = navRoot.querySelectorAll<HTMLElement & { open?: boolean }>(\n 'kyn-header-link[open]'\n );\n\n links.forEach((link) => {\n link.removeAttribute('open');\n if ('open' in link) {\n (link as any).open = false;\n }\n });\n\n // Clear local search for this column\n this._searchTerm = '';\n this._searchFilter();\n\n return;\n }\n\n // BASIC NAV:\n // Preserve original behavior: go up one level\n this.open = false;\n this._searchTerm = '';\n this._searchFilter();\n }\n\n private _handleLinksSlotChange() {\n // Detect if this link contains categorical navigation\n const hasCategories = this.querySelector('kyn-header-categories') !== null;\n const hasCategory = this.querySelector('kyn-header-category') !== null;\n const categoriesEl =\n this.querySelector('kyn-tab-panel[visible] kyn-header-categories') ||\n this.querySelector('kyn-header-categories');\n\n this.hasCategorical = hasCategories || hasCategory;\n this.hasMultiColumn = hasCategories; // Only true for multi-column wrapper\n this.fixedColumnWidths =\n categoriesEl?.hasAttribute('fixed-column-widths') ?? false;\n\n // Prime flyout column count before open so width/layout CSS can apply\n // without a second-pass visual snap.\n if (categoriesEl) {\n const dataCol = categoriesEl.getAttribute('data-columns');\n this.flyoutColumns = dataCol ? parseInt(dataCol, 10) || 0 : 0;\n } else {\n this.flyoutColumns = 0;\n }\n\n // Count direct child plain links for column wrapping\n const plainLinks = this.querySelectorAll(':scope > kyn-header-link');\n this._slottedLinkCount = plainLinks.length;\n\n this.requestUpdate();\n }\n\n /** Handle column count changes from slotted kyn-header-categories\n * @internal\n */\n private _handleColumnCountChange = (e: Event) => {\n const detail = (\n e as CustomEvent<{\n columnCount: number;\n fixedColumnWidths?: boolean;\n }>\n ).detail;\n if (detail?.columnCount !== undefined) {\n this.flyoutColumns = detail.columnCount;\n this.fixedColumnWidths = Boolean(detail.fixedColumnWidths);\n }\n };\n\n private get _isDesktopViewport(): boolean {\n if (typeof window === 'undefined') return true;\n return window.innerWidth >= 672;\n }\n\n private handlePointerEnter(e: PointerEvent) {\n if (\n e.pointerType === 'mouse' &&\n this.slottedEls.length &&\n this._isDesktopViewport\n ) {\n clearTimeout(this._leaveTimer);\n\n // close other open sibling links immediately when entering any link with submenus\n this._closeOtherOpenLinks();\n\n this._enterTimer = setTimeout(() => {\n // Close siblings again right before opening to prevent race conditions\n this._closeOtherOpenLinks();\n this.open = true;\n }, 150);\n }\n }\n\n /** close other open header links at the same level\n * @internal\n */\n private _closeOtherOpenLinks(): void {\n // Strategy: Close all sibling header-links that are currently open\n // This handles the sidebar nav where links are direct children of header-nav\n\n // For level 1 links (main sidebar), find siblings via parent\n if (this.level === 1) {\n const parent = this.parentElement;\n if (parent) {\n // Find ALL level 1 links (not just open ones) to clear pending timers\n const siblingLinks = parent.querySelectorAll<\n HTMLElement & { open?: boolean; _enterTimer?: any }\n >(':scope > kyn-header-link');\n\n siblingLinks.forEach((link) => {\n if (link !== this) {\n // Clear any pending timers\n if ((link as any)._enterTimer) {\n clearTimeout((link as any)._enterTimer);\n (link as any)._enterTimer = undefined;\n }\n if ((link as any)._leaveTimer) {\n clearTimeout((link as any)._leaveTimer);\n (link as any)._leaveTimer = undefined;\n }\n // Force close - set property, remove attribute, and force re-render\n if ((link as any).open) {\n (link as any).open = false;\n link.removeAttribute('open');\n (link as any).requestUpdate?.();\n }\n }\n });\n }\n return;\n }\n\n // For nested links, find the nearest container and close same-level links\n const navContainer =\n this.closest('kyn-header-nav') ||\n this.closest('kyn-tab-panel') ||\n this.closest('.menu__content');\n\n if (navContainer) {\n const allLinks = navContainer.querySelectorAll<\n HTMLElement & { open?: boolean; level?: number; _enterTimer?: any }\n >('kyn-header-link');\n\n allLinks.forEach((link) => {\n if (link !== this && (link as any).level === this.level) {\n // Clear any pending timers\n if ((link as any)._enterTimer) {\n clearTimeout((link as any)._enterTimer);\n (link as any)._enterTimer = undefined;\n }\n if ((link as any)._leaveTimer) {\n clearTimeout((link as any)._leaveTimer);\n (link as any)._leaveTimer = undefined;\n }\n // Force close - set property, remove attribute, and force re-render\n if ((link as any).open) {\n (link as any).open = false;\n link.removeAttribute('open');\n (link as any).requestUpdate?.();\n }\n }\n });\n }\n }\n\n private handlePointerLeave(e: PointerEvent) {\n // Suppress close during internal view transitions (e.g. \"More\" → detail view).\n // The flyout resizes and the cursor may end up outside, but the user's intent\n // was to drill in — not to leave.\n if (this._viewChangeInProgress) {\n return;\n }\n\n // check both the link's own prop and parent nav's prop\n // if either is false, don't auto-close the flyout\n const shouldAutoCollapse = this._shouldAutoCollapse();\n if (!shouldAutoCollapse) {\n return;\n }\n\n if (\n e.pointerType === 'mouse' &&\n this.slottedEls.length &&\n this._searchTerm === '' &&\n this._isDesktopViewport\n ) {\n clearTimeout(this._enterTimer);\n this._leaveTimer = setTimeout(() => {\n this.open = false;\n }, 150);\n }\n }\n\n /** Check if flyout should auto-collapse based on parent nav's autoOpenFlyout.\n * Only applies to links containing categorical nav (kyn-header-categories).\n * @internal\n */\n private _shouldAutoCollapse(): boolean {\n // Non-categorical links always auto-collapse (preserve original behavior)\n if (!this.hasCategorical) {\n return true;\n }\n\n const parentNav = this.closest('kyn-header-nav') as\n | (HTMLElement & { autoOpenFlyout?: string })\n | null;\n\n // If parent nav has autoOpenFlyout set (truthy), don't auto-collapse\n if (parentNav?.autoOpenFlyout) {\n return false;\n }\n\n return true;\n }\n\n private handleClick(e: Event) {\n let preventDefault = false;\n\n if (this.slottedEls.length) {\n preventDefault = true;\n e.preventDefault();\n // Close other open links before toggling this one\n if (!this.open) {\n this._closeOtherOpenLinks();\n }\n this.open = !this.open;\n }\n\n const event = new CustomEvent('on-click', {\n detail: { origEvent: e, defaultPrevented: preventDefault },\n });\n this.dispatchEvent(event);\n }\n\n private handleClickOut(e: Event) {\n if (!e.composedPath().includes(this)) {\n this.open = false;\n this._searchTerm = '';\n this._searchFilter();\n }\n }\n\n private determineLevel() {\n let level = 1;\n let node: any = this.parentNode;\n\n // Traverse up the DOM tree\n while (node) {\n if (node.nodeName === 'KYN-HEADER-LINK') {\n level = (node.level ?? 1) + 1;\n break;\n } else if (\n node.nodeName === 'KYN-HEADER-CATEGORY' &&\n node.parentNode?.nodeName === 'KYN-HEADER-LINK'\n ) {\n level = (node.parentNode.level ?? 1) + 1;\n break;\n } else if (\n window.innerWidth < 672 &&\n node.nodeName === 'KYN-HEADER-FLYOUT'\n ) {\n level = 2;\n break;\n }\n node = node.parentNode;\n }\n\n this.level = level;\n }\n\n private _positionMenu() {\n const linkBounds = this.getBoundingClientRect?.();\n const menuEl =\n this.shadowRoot?.querySelector<HTMLElement>('.menu__content');\n const menuBounds = menuEl?.getBoundingClientRect?.();\n\n if (!linkBounds || !menuBounds) {\n return;\n }\n\n const Padding = 12;\n const HeaderHeight = 64;\n\n const linkHalf = linkBounds.top + linkBounds.height / 2;\n const menuHalf = menuBounds.height / 2;\n\n const topCandidate =\n linkHalf + menuHalf > window.innerHeight\n ? linkHalf - menuHalf - (linkHalf + menuHalf - window.innerHeight) - 16\n : linkHalf - menuHalf;\n\n if (this.level === 1) {\n // Keep level-1 flyouts pinned to the nav rail origin (legacy behavior).\n // This avoids viewport/header bound drift and keeps panels consistently aligned.\n let navMenuHeight = 0;\n const headerNav = this.closest('kyn-header-nav') as HTMLElement | null;\n if (headerNav) {\n const navMenu = headerNav.shadowRoot?.querySelector(\n '.menu__content'\n ) as HTMLElement | null;\n if (navMenu) {\n navMenuHeight = navMenu.offsetHeight;\n }\n }\n\n this.menuPosition = {\n top: HeaderHeight + 'px',\n left: '0px',\n minHeight: navMenuHeight + 'px',\n };\n } else {\n const top = topCandidate < HeaderHeight ? HeaderHeight : topCandidate;\n this.menuPosition = {\n top: top + 'px',\n left: linkBounds.right + Padding + 'px',\n };\n }\n }\n\n /** @internal */\n private _debounceResize = debounce(() => {\n this.determineLevel();\n if (this.open) {\n this._positionMenu();\n }\n });\n\n override firstUpdated() {\n this.determineLevel();\n this._handleLinksSlotChange();\n }\n\n override updated(changedProps: any) {\n // Re-position after render when the menu has its actual dimensions\n if (changedProps.has('open') && this.open) {\n // Use rAF to ensure the DOM has painted\n requestAnimationFrame(() => {\n this._positionMenu();\n });\n }\n\n // Re-position when column count changes (categories may render after flyout opens)\n if (changedProps.has('flyoutColumns') && this.open) {\n requestAnimationFrame(() => {\n this._positionMenu();\n });\n }\n }\n\n private _handleDocumentClick = (e: Event) => this.handleClickOut(e);\n\n /** Suppress pointer-leave close when categories switch views (root ↔ detail).\n * @internal\n */\n private _handleNavChange = () => {\n this._viewChangeInProgress = true;\n clearTimeout(this._viewChangeTimer);\n // Allow enough time for the flyout to finish resizing before re-enabling close\n this._viewChangeTimer = setTimeout(() => {\n this._viewChangeInProgress = false;\n }, 500);\n };\n\n override connectedCallback() {\n super.connectedCallback();\n document.addEventListener('click', this._handleDocumentClick);\n window.addEventListener('resize', this._debounceResize);\n // Listen for column count changes from slotted kyn-header-categories\n this.addEventListener(\n 'on-column-count-change',\n this._handleColumnCountChange\n );\n // Suppress flyout close during internal view transitions (e.g. \"More\" click)\n this.addEventListener('on-nav-change', this._handleNavChange);\n // Check for truncation inheritance after DOM is ready\n queueMicrotask(() => {\n this._observeParentNavTruncate();\n });\n }\n\n /** Find the closest owning nav across shadow boundaries.\n * @internal\n */\n private _resolveOwningNav(): HTMLElement | null {\n const parentNav = this.closest('kyn-header-nav');\n if (parentNav) return parentNav as HTMLElement;\n\n let root = this.getRootNode();\n while (root instanceof ShadowRoot) {\n const nav = root.host.closest?.('kyn-header-nav');\n if (nav) {\n return nav as HTMLElement;\n }\n root = root.host.getRootNode();\n }\n\n return null;\n }\n\n /** Sync inherited truncate state with the owning nav.\n * @internal\n */\n private _syncInheritedTruncate = (): void => {\n this._inheritedTruncate = this._isInTruncatingNav();\n };\n\n /** Observe `truncate-links` changes on the owning nav.\n * @internal\n */\n private _observeParentNavTruncate(): void {\n const nav = this._resolveOwningNav();\n\n if (this._observedNav === nav) {\n this._syncInheritedTruncate();\n return;\n }\n\n if (this._truncateObserver) {\n this._truncateObserver.disconnect();\n this._truncateObserver = undefined;\n }\n\n this._observedNav = nav;\n\n if (nav) {\n this._truncateObserver = new MutationObserver(() => {\n this._syncInheritedTruncate();\n });\n this._truncateObserver.observe(nav, {\n attributes: true,\n attributeFilter: ['truncate-links'],\n });\n }\n\n this._syncInheritedTruncate();\n }\n\n /** Check if this link is inside a nav with truncate-links attribute\n * Uses getRootNode to traverse up through shadow DOM boundaries\n * @internal\n */\n private _isInTruncatingNav(): boolean {\n return this._resolveOwningNav()?.hasAttribute('truncate-links') ?? false;\n }\n\n override disconnectedCallback() {\n // clear timers to avoid callbacks after unmount\n if (this._enterTimer) {\n clearTimeout(this._enterTimer);\n this._enterTimer = undefined;\n }\n if (this._leaveTimer) {\n clearTimeout(this._leaveTimer);\n this._leaveTimer = undefined;\n }\n\n if (this._viewChangeTimer) {\n clearTimeout(this._viewChangeTimer);\n this._viewChangeTimer = undefined;\n }\n\n document.removeEventListener('click', this._handleDocumentClick);\n window.removeEventListener('resize', this._debounceResize);\n this.removeEventListener(\n 'on-column-count-change',\n this._handleColumnCountChange\n );\n this.removeEventListener('on-nav-change', this._handleNavChange);\n if (this._truncateObserver) {\n this._truncateObserver.disconnect();\n this._truncateObserver = undefined;\n }\n this._observedNav = null;\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-header-link': HeaderLink;\n }\n}\n"],"names":["HeaderLink","customElement","LitElement","_classThis","_classSuper","_HeaderLink_open_accessor_storage","set","this","__runInitializers","_open_initializers","_HeaderLink_href_accessor_storage","_open_extraInitializers","_href_initializers","_HeaderLink_target_accessor_storage","_href_extraInitializers","_target_initializers","_HeaderLink_rel_accessor_storage","_target_extraInitializers","_rel_initializers","_HeaderLink_isActive_accessor_storage","_rel_extraInitializers","_isActive_initializers","_HeaderLink_level_accessor_storage","_isActive_extraInitializers","_level_initializers","_HeaderLink_divider_accessor_storage","_level_extraInitializers","_divider_initializers","_HeaderLink_searchLabel_accessor_storage","_divider_extraInitializers","_searchLabel_initializers","_HeaderLink_searchThreshold_accessor_storage","_searchLabel_extraInitializers","_searchThreshold_initializers","_HeaderLink_linksPerColumn_accessor_storage","_searchThreshold_extraInitializers","_linksPerColumn_initializers","_HeaderLink_hideSearch_accessor_storage","_linksPerColumn_extraInitializers","_hideSearch_initializers","_HeaderLink_backText_accessor_storage","_hideSearch_extraInitializers","_backText_initializers","_HeaderLink_leftPadding_accessor_storage","_backText_extraInitializers","_leftPadding_initializers","_HeaderLink_linkTitle_accessor_storage","_leftPadding_extraInitializers","_linkTitle_initializers","_HeaderLink_truncate_accessor_storage","_linkTitle_extraInitializers","_truncate_initializers","_HeaderLink__autoTitle_accessor_storage","_truncate_extraInitializers","__autoTitle_initializers","_HeaderLink_hasCategorical_accessor_storage","__autoTitle_extraInitializers","_hasCategorical_initializers","_HeaderLink_hasMultiColumn_accessor_storage","_hasCategorical_extraInitializers","_hasMultiColumn_initializers","_HeaderLink_flyoutColumns_accessor_storage","_hasMultiColumn_extraInitializers","_flyoutColumns_initializers","_HeaderLink_fixedColumnWidths_accessor_storage","_flyoutColumns_extraInitializers","_fixedColumnWidths_initializers","_HeaderLink__searchTerm_accessor_storage","_fixedColumnWidths_extraInitializers","__searchTerm_initializers","_HeaderLink__slottedLinkCount_accessor_storage","__searchTerm_extraInitializers","__slottedLinkCount_initializers","_HeaderLink_slottedEls_accessor_storage","__slottedLinkCount_extraInitializers","_slottedEls_initializers","_enterTimer","_slottedEls_extraInitializers","_HeaderLink__leaveTimer_accessor_storage","__leaveTimer_initializers","_viewChangeInProgress","__leaveTimer_extraInitializers","_HeaderLink__inheritedTruncate_accessor_storage","__inheritedTruncate_initializers","_truncateObserver","__inheritedTruncate_extraInitializers","_observedNav","_HeaderLink_menuPosition_accessor_storage","_menuPosition_initializers","_handleColumnCountChange","_menuPosition_extraInitializers","e","detail","undefined","columnCount","flyoutColumns","fixedColumnWidths","Boolean","_debounceResize","debounce","determineLevel","open","_positionMenu","_handleDocumentClick","handleClickOut","_handleNavChange","clearTimeout","_viewChangeTimer","setTimeout","_syncInheritedTruncate","_inheritedTruncate","_isInTruncatingNav","__classPrivateFieldGet","value","__classPrivateFieldSet","href","target","rel","isActive","level","divider","searchLabel","searchThreshold","linksPerColumn","hideSearch","backText","leftPadding","linkTitle","truncate","_autoTitle","hasCategorical","hasMultiColumn","_searchTerm","_slottedLinkCount","slottedEls","_leaveTimer","menuPosition","render","classes","menu","length","shouldTruncate","linkClasses","active","interactive","menuClasses","menu__content","slotted","Links","querySelectorAll","showSearch","wrapperClasses","wrapper","html","classMap","handlePointerLeave","handlePointerEnter","ifDefined","handleClick","_handleDefaultSlotChange","unsafeSVG","arrowIcon","styleMap","_handleBack","backIcon","_handleSearch","searchIcon","_linksColumnStyles","_handleLinksSlotChange","Math","ceil","toString","toLowerCase","_searchFilter","forEach","link","nodes","_b","_a","shadowRoot","querySelector","assignedNodes","flatten","linkText","i","textContent","trim","includes","style","display","node","preventDefault","stopPropagation","headerCategories","closest","handleBackClick","removeAttribute","hasCategories","hasCategory","categoriesEl","hasAttribute","dataCol","getAttribute","parseInt","plainLinks","requestUpdate","_isDesktopViewport","window","innerWidth","pointerType","_closeOtherOpenLinks","parent","parentElement","navContainer","_shouldAutoCollapse","parentNav","autoOpenFlyout","event","CustomEvent","origEvent","defaultPrevented","dispatchEvent","composedPath","parentNode","nodeName","_c","linkBounds","getBoundingClientRect","menuEl","menuBounds","call","linkHalf","top","height","menuHalf","topCandidate","innerHeight","navMenuHeight","headerNav","navMenu","_d","offsetHeight","HeaderHeight","left","minHeight","right","firstUpdated","updated","changedProps","has","requestAnimationFrame","connectedCallback","super","document","addEventListener","queueMicrotask","_observeParentNavTruncate","_resolveOwningNav","root","getRootNode","ShadowRoot","nav","host","disconnect","MutationObserver","observe","attributes","attributeFilter","disconnectedCallback","removeEventListener","property","type","reflect","_href_decorators","String","_target_decorators","_rel_decorators","_isActive_decorators","_level_decorators","state","_divider_decorators","_searchLabel_decorators","_searchThreshold_decorators","Number","_linksPerColumn_decorators","_hideSearch_decorators","_backText_decorators","_leftPadding_decorators","attribute","__autoTitle_decorators","_hasCategorical_decorators","_hasMultiColumn_decorators","_flyoutColumns_decorators","_fixedColumnWidths_decorators","__searchTerm_decorators","__slottedLinkCount_decorators","_slottedEls_decorators","queryAssignedElements","slot","__leaveTimer_decorators","__inheritedTruncate_decorators","_menuPosition_decorators","__esDecorate","_open_decorators","kind","name","static","private","access","obj","get","metadata","_metadata","_linkTitle_decorators","_truncate_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","HeaderLinkScss"],"mappings":"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"}
|
|
@@ -102,7 +102,7 @@ import{__setFunctionName as e,__esDecorate as t,__runInitializers as i,__classPr
|
|
|
102
102
|
transform: none;
|
|
103
103
|
visibility: hidden;
|
|
104
104
|
opacity: 0;
|
|
105
|
-
z-index:
|
|
105
|
+
z-index: 0;
|
|
106
106
|
display: flex;
|
|
107
107
|
flex-direction: column;
|
|
108
108
|
gap: 2px;
|
|
@@ -154,7 +154,8 @@ import{__setFunctionName as e,__esDecorate as t,__runInitializers as i,__classPr
|
|
|
154
154
|
visibility: visible;
|
|
155
155
|
opacity: 1;
|
|
156
156
|
transform: none;
|
|
157
|
-
z-index:
|
|
157
|
+
z-index: 1;
|
|
158
|
+
pointer-events: auto;
|
|
158
159
|
}
|
|
159
160
|
|
|
160
161
|
.go-back {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headerNav.js","sources":["../../../../src/components/global/header/headerNav.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html, unsafeCSS, type PropertyValueMap } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport {\n querySelectorAllDeep,\n querySelectorDeep,\n} from 'query-selector-shadow-dom';\nimport HeaderNavScss from './headerNav.scss?inline';\n\nimport menuIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/hamburger-menu.svg';\nimport closeIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/close-simple.svg';\n\n/**\n * Container for header navigation links.\n * @slot unnamed - This element has a slot.\n * @fires on-nav-toggle - Fires when the nav menu opens or closes. Detail: `{ open }`.\n * @cssprop [--kyn-global-switcher-max-height=calc(100vh - var(--kd-header-reserved-space) - 16px)] - Max height for global-switcher flyout panels, including categorical nav wrappers.\n */\n@customElement('kyn-header-nav')\nexport class HeaderNav extends LitElement {\n static override styles = unsafeCSS(HeaderNavScss);\n\n /** Small screen header nav visibility.\n * @ignore\n */\n @state()\n accessor menuOpen = false;\n\n /** Force correct slot\n * @internal\n */\n @property({ type: String, reflect: true })\n override accessor slot = 'left';\n\n /** Controls which flyout (if any) auto-opens when the nav renders.\n * - '' (empty, default): original behavior — flyouts auto-collapse on mouse leave, nothing auto-opens.\n * - 'default': auto-open the first categorical flyout; flyouts stay open on mouse leave.\n * - '<id>': auto-open the flyout whose kyn-header-link id matches; flyouts stay open on mouse leave.\n */\n @property({ type: String, attribute: 'auto-open-flyout' })\n accessor autoOpenFlyout = '';\n\n /** When true, all links in flyouts will truncate long text with ellipsis.\n * This cascades to all nested kyn-header-link components via CSS custom property.\n */\n @property({ type: Boolean, reflect: true, attribute: 'truncate-links' })\n accessor truncateLinks = false;\n\n /** Boolean value reflecting whether the navigation has categories.\n * @internal\n */\n @state()\n accessor hasCategories = false;\n\n /** Mutation observer for attribute changes.\n * @internal\n */\n private _attrObserver?: MutationObserver;\n\n /** Tracks whether auto-open has already been triggered to prevent multiple triggers.\n * @internal\n */\n private _autoOpenTriggered = false;\n\n /** Bound document click handler to allow proper add/remove of listener\n * @internal\n */\n private _boundHandleClickOut = (e: Event) => this._handleClickOut(e);\n\n /** @internal */\n private get _isDesktop(): boolean {\n if (typeof window === 'undefined') return true;\n return window.innerWidth >= 672;\n }\n\n override render() {\n const classes = {\n 'header-nav': true,\n menu: true,\n open: this.menuOpen,\n };\n\n const menuContentClasses = {\n menu__content: true,\n left: true,\n 'categories-open': this.hasCategories,\n };\n\n return html`\n <div class=${classMap(classes)}>\n <button\n class=\"btn interactive\"\n aria-label=\"Toggle Menu\"\n title=\"Toggle Menu\"\n @click=${() => this._toggleMenuOpen()}\n >\n ${this.menuOpen\n ? html`<span>${unsafeSVG(closeIcon)}</span>`\n : html`<span>${unsafeSVG(menuIcon)}</span>`}\n </button>\n\n <div class=${classMap(menuContentClasses)}>\n <slot @slotchange=${this._handleSlotChange}></slot>\n </div>\n </div>\n `;\n }\n\n private _toggleMenuOpen() {\n this.menuOpen = !this.menuOpen;\n }\n\n private _updateCategoriesVisibility(): void {\n const links = querySelectorAllDeep('kyn-header-link', this);\n\n const hasOpenCategory = Array.from(links).some((link) => {\n return link.hasAttribute('open') || link.hasAttribute('isactive');\n });\n\n const hasCategoriesElement = Boolean(\n querySelectorDeep('kyn-header-categories', this)\n );\n\n const nextHasCategories = hasOpenCategory || hasCategoriesElement;\n\n if (this.hasCategories !== nextHasCategories) {\n this.hasCategories = nextHasCategories;\n }\n }\n\n private _handleSlotChange() {\n this._updateCategoriesVisibility();\n\n // Trigger auto-open when slot content changes (handles late-loading content)\n if (this.autoOpenFlyout && this._isDesktop && !this._autoOpenTriggered) {\n this._autoOpenFirstCategoricalLink();\n }\n }\n\n private _handleClickOut(e: Event) {\n if (!e.composedPath().includes(this)) {\n this.menuOpen = false;\n }\n }\n\n protected override firstUpdated(_changed: PropertyValueMap<this>): void {\n this._updateCategoriesVisibility();\n\n // Auto-open first categorical link on initial render when autoOpenFlyout is set.\n // This handles the case where the nav is already visible (desktop) without a menuOpen toggle.\n if (this.autoOpenFlyout && this._isDesktop) {\n this._autoOpenFirstCategoricalLink();\n }\n }\n\n override willUpdate(changedProps: PropertyValueMap<this>): void {\n if (changedProps.has('menuOpen')) {\n const detail = { open: this.menuOpen };\n\n this.dispatchEvent(\n new CustomEvent('on-nav-toggle', {\n composed: true,\n bubbles: true,\n detail,\n })\n );\n\n // Auto-open first link's flyout when nav opens and autoOpenFlyout is set\n // Only applies to categorical nav (when kyn-header-categories is present)\n if (this.menuOpen && this.autoOpenFlyout && this._isDesktop) {\n this._autoOpenFirstCategoricalLink();\n }\n\n // Reset auto-open flag when nav closes so it can re-trigger on next open\n if (!this.menuOpen) {\n this._autoOpenTriggered = false;\n }\n }\n }\n\n /** Auto-open the first header link that contains categorical nav\n * @internal\n */\n private _autoOpenFirstCategoricalLink(): void {\n // Use rAF to ensure child elements have completed their first Lit render\n // cycle before we try to open them. This is ~16ms (one frame) vs the\n // previous setTimeout(100) which caused a visible two-step open.\n requestAnimationFrame(() => {\n const links = this.querySelectorAll<HTMLElement & { open?: boolean }>(\n ':scope > kyn-header-link'\n );\n\n // Clear any pending pointer-event timers on all sibling links.\n // When the nav first paints, links can appear under the cursor,\n // firing pointerenter which queues a 150ms timer to open that link\n // and close others. Without clearing, that timer fires after our\n // auto-open and immediately closes the flyout.\n for (const link of links) {\n const l = link as any;\n if (l._enterTimer) {\n clearTimeout(l._enterTimer);\n l._enterTimer = undefined;\n }\n if (l._leaveTimer) {\n clearTimeout(l._leaveTimer);\n l._leaveTimer = undefined;\n }\n }\n\n // Find the target link to open\n let target: (HTMLElement & { open?: boolean }) | null = null;\n\n if (this.autoOpenFlyout && this.autoOpenFlyout !== 'default') {\n // Match by id\n target = this.querySelector(\n `:scope > kyn-header-link#${CSS.escape(this.autoOpenFlyout)}`\n );\n }\n\n if (!target) {\n // Fall back to first expandable link (current behavior)\n for (const link of links) {\n const hasCategoricalNav =\n link.querySelector('kyn-header-categories') !== null ||\n querySelectorDeep('kyn-header-categories', link) !== null;\n const hasSlottedCategory =\n link.querySelector('kyn-header-category') !== null ||\n querySelectorDeep('kyn-header-category', link) !== null;\n\n if (hasCategoricalNav || hasSlottedCategory) {\n target = link;\n break;\n }\n }\n }\n\n if (target) {\n target.open = true;\n this._autoOpenTriggered = true;\n }\n });\n }\n\n override updated(changedProps: PropertyValueMap<this>): void {\n if (changedProps.has('hasCategories')) {\n this.classList.toggle('categories-open', this.hasCategories);\n }\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n document.addEventListener('click', this._boundHandleClickOut);\n\n this._attrObserver = new MutationObserver(() => {\n this._updateCategoriesVisibility();\n });\n\n this._attrObserver.observe(this, {\n attributes: true,\n subtree: true,\n attributeFilter: ['open'],\n childList: true,\n });\n }\n\n override disconnectedCallback(): void {\n document.removeEventListener('click', this._boundHandleClickOut);\n\n if (this._attrObserver) {\n this._attrObserver.disconnect();\n this._attrObserver = undefined;\n }\n\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-header-nav': HeaderNav;\n }\n}\n"],"names":["HeaderNav","customElement","LitElement","_classThis","_classSuper","_HeaderNav_menuOpen_accessor_storage","set","this","__runInitializers","_menuOpen_initializers","_HeaderNav_slot_accessor_storage","_menuOpen_extraInitializers","_slot_initializers","_HeaderNav_autoOpenFlyout_accessor_storage","_slot_extraInitializers","_autoOpenFlyout_initializers","_HeaderNav_truncateLinks_accessor_storage","_autoOpenFlyout_extraInitializers","_truncateLinks_initializers","_HeaderNav_hasCategories_accessor_storage","_truncateLinks_extraInitializers","_hasCategories_initializers","_attrObserver","_hasCategories_extraInitializers","_autoOpenTriggered","_boundHandleClickOut","e","_handleClickOut","menuOpen","__classPrivateFieldGet","value","__classPrivateFieldSet","slot","autoOpenFlyout","truncateLinks","hasCategories","_isDesktop","window","innerWidth","render","classes","menu","open","menuContentClasses","menu__content","left","html","classMap","_toggleMenuOpen","unsafeSVG","closeIcon","menuIcon","_handleSlotChange","_updateCategoriesVisibility","links","querySelectorAllDeep","hasOpenCategory","Array","from","some","link","hasAttribute","hasCategoriesElement","Boolean","querySelectorDeep","nextHasCategories","_autoOpenFirstCategoricalLink","composedPath","includes","firstUpdated","_changed","willUpdate","changedProps","has","detail","dispatchEvent","CustomEvent","composed","bubbles","requestAnimationFrame","querySelectorAll","l","_enterTimer","clearTimeout","undefined","_leaveTimer","target","querySelector","CSS","escape","hasCategoricalNav","hasSlottedCategory","updated","classList","toggle","connectedCallback","super","document","addEventListener","MutationObserver","observe","attributes","subtree","attributeFilter","childList","disconnectedCallback","removeEventListener","disconnect","_menuOpen_decorators","state","property","type","String","reflect","attribute","_truncateLinks_decorators","_hasCategories_decorators","__esDecorate","kind","name","static","private","access","obj","get","metadata","_metadata","_slot_decorators","_autoOpenFlyout_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","HeaderNavScss"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"headerNav.js","sources":["../../../../src/components/global/header/headerNav.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html, unsafeCSS, type PropertyValueMap } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport {\n querySelectorAllDeep,\n querySelectorDeep,\n} from 'query-selector-shadow-dom';\nimport HeaderNavScss from './headerNav.scss?inline';\n\nimport menuIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/hamburger-menu.svg';\nimport closeIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/close-simple.svg';\n\n/**\n * Container for header navigation links.\n * @slot unnamed - This element has a slot.\n * @fires on-nav-toggle - Fires when the nav menu opens or closes. Detail: `{ open }`.\n * @cssprop [--kyn-global-switcher-max-height=calc(100vh - var(--kd-header-reserved-space) - 16px)] - Max height for global-switcher flyout panels, including categorical nav wrappers.\n */\n@customElement('kyn-header-nav')\nexport class HeaderNav extends LitElement {\n static override styles = unsafeCSS(HeaderNavScss);\n\n /** Small screen header nav visibility.\n * @ignore\n */\n @state()\n accessor menuOpen = false;\n\n /** Force correct slot\n * @internal\n */\n @property({ type: String, reflect: true })\n override accessor slot = 'left';\n\n /** Controls which flyout (if any) auto-opens when the nav renders.\n * - '' (empty, default): original behavior — flyouts auto-collapse on mouse leave, nothing auto-opens.\n * - 'default': auto-open the first categorical flyout; flyouts stay open on mouse leave.\n * - '<id>': auto-open the flyout whose kyn-header-link id matches; flyouts stay open on mouse leave.\n */\n @property({ type: String, attribute: 'auto-open-flyout' })\n accessor autoOpenFlyout = '';\n\n /** When true, all links in flyouts will truncate long text with ellipsis.\n * This cascades to all nested kyn-header-link components via CSS custom property.\n */\n @property({ type: Boolean, reflect: true, attribute: 'truncate-links' })\n accessor truncateLinks = false;\n\n /** Boolean value reflecting whether the navigation has categories.\n * @internal\n */\n @state()\n accessor hasCategories = false;\n\n /** Mutation observer for attribute changes.\n * @internal\n */\n private _attrObserver?: MutationObserver;\n\n /** Tracks whether auto-open has already been triggered to prevent multiple triggers.\n * @internal\n */\n private _autoOpenTriggered = false;\n\n /** Bound document click handler to allow proper add/remove of listener\n * @internal\n */\n private _boundHandleClickOut = (e: Event) => this._handleClickOut(e);\n\n /** @internal */\n private get _isDesktop(): boolean {\n if (typeof window === 'undefined') return true;\n return window.innerWidth >= 672;\n }\n\n override render() {\n const classes = {\n 'header-nav': true,\n menu: true,\n open: this.menuOpen,\n };\n\n const menuContentClasses = {\n menu__content: true,\n left: true,\n 'categories-open': this.hasCategories,\n };\n\n return html`\n <div class=${classMap(classes)}>\n <button\n class=\"btn interactive\"\n aria-label=\"Toggle Menu\"\n title=\"Toggle Menu\"\n @click=${() => this._toggleMenuOpen()}\n >\n ${this.menuOpen\n ? html`<span>${unsafeSVG(closeIcon)}</span>`\n : html`<span>${unsafeSVG(menuIcon)}</span>`}\n </button>\n\n <div class=${classMap(menuContentClasses)}>\n <slot @slotchange=${this._handleSlotChange}></slot>\n </div>\n </div>\n `;\n }\n\n private _toggleMenuOpen() {\n this.menuOpen = !this.menuOpen;\n }\n\n private _updateCategoriesVisibility(): void {\n const links = querySelectorAllDeep('kyn-header-link', this);\n\n const hasOpenCategory = Array.from(links).some((link) => {\n return link.hasAttribute('open') || link.hasAttribute('isactive');\n });\n\n const hasCategoriesElement = Boolean(\n querySelectorDeep('kyn-header-categories', this)\n );\n\n const nextHasCategories = hasOpenCategory || hasCategoriesElement;\n\n if (this.hasCategories !== nextHasCategories) {\n this.hasCategories = nextHasCategories;\n }\n }\n\n private _handleSlotChange() {\n this._updateCategoriesVisibility();\n\n // Trigger auto-open when slot content changes (handles late-loading content)\n if (this.autoOpenFlyout && this._isDesktop && !this._autoOpenTriggered) {\n this._autoOpenFirstCategoricalLink();\n }\n }\n\n private _handleClickOut(e: Event) {\n if (!e.composedPath().includes(this)) {\n this.menuOpen = false;\n }\n }\n\n protected override firstUpdated(_changed: PropertyValueMap<this>): void {\n this._updateCategoriesVisibility();\n\n // Auto-open first categorical link on initial render when autoOpenFlyout is set.\n // This handles the case where the nav is already visible (desktop) without a menuOpen toggle.\n if (this.autoOpenFlyout && this._isDesktop) {\n this._autoOpenFirstCategoricalLink();\n }\n }\n\n override willUpdate(changedProps: PropertyValueMap<this>): void {\n if (changedProps.has('menuOpen')) {\n const detail = { open: this.menuOpen };\n\n this.dispatchEvent(\n new CustomEvent('on-nav-toggle', {\n composed: true,\n bubbles: true,\n detail,\n })\n );\n\n // Auto-open first link's flyout when nav opens and autoOpenFlyout is set\n // Only applies to categorical nav (when kyn-header-categories is present)\n if (this.menuOpen && this.autoOpenFlyout && this._isDesktop) {\n this._autoOpenFirstCategoricalLink();\n }\n\n // Reset auto-open flag when nav closes so it can re-trigger on next open\n if (!this.menuOpen) {\n this._autoOpenTriggered = false;\n }\n }\n }\n\n /** Auto-open the first header link that contains categorical nav\n * @internal\n */\n private _autoOpenFirstCategoricalLink(): void {\n // Use rAF to ensure child elements have completed their first Lit render\n // cycle before we try to open them. This is ~16ms (one frame) vs the\n // previous setTimeout(100) which caused a visible two-step open.\n requestAnimationFrame(() => {\n const links = this.querySelectorAll<HTMLElement & { open?: boolean }>(\n ':scope > kyn-header-link'\n );\n\n // Clear any pending pointer-event timers on all sibling links.\n // When the nav first paints, links can appear under the cursor,\n // firing pointerenter which queues a 150ms timer to open that link\n // and close others. Without clearing, that timer fires after our\n // auto-open and immediately closes the flyout.\n for (const link of links) {\n const l = link as any;\n if (l._enterTimer) {\n clearTimeout(l._enterTimer);\n l._enterTimer = undefined;\n }\n if (l._leaveTimer) {\n clearTimeout(l._leaveTimer);\n l._leaveTimer = undefined;\n }\n }\n\n // Find the target link to open\n let target: (HTMLElement & { open?: boolean }) | null = null;\n\n if (this.autoOpenFlyout && this.autoOpenFlyout !== 'default') {\n // Match by id\n target = this.querySelector(\n `:scope > kyn-header-link#${CSS.escape(this.autoOpenFlyout)}`\n );\n }\n\n if (!target) {\n // Fall back to first expandable link (current behavior)\n for (const link of links) {\n const hasCategoricalNav =\n link.querySelector('kyn-header-categories') !== null ||\n querySelectorDeep('kyn-header-categories', link) !== null;\n const hasSlottedCategory =\n link.querySelector('kyn-header-category') !== null ||\n querySelectorDeep('kyn-header-category', link) !== null;\n\n if (hasCategoricalNav || hasSlottedCategory) {\n target = link;\n break;\n }\n }\n }\n\n if (target) {\n target.open = true;\n this._autoOpenTriggered = true;\n }\n });\n }\n\n override updated(changedProps: PropertyValueMap<this>): void {\n if (changedProps.has('hasCategories')) {\n this.classList.toggle('categories-open', this.hasCategories);\n }\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n document.addEventListener('click', this._boundHandleClickOut);\n\n this._attrObserver = new MutationObserver(() => {\n this._updateCategoriesVisibility();\n });\n\n this._attrObserver.observe(this, {\n attributes: true,\n subtree: true,\n attributeFilter: ['open'],\n childList: true,\n });\n }\n\n override disconnectedCallback(): void {\n document.removeEventListener('click', this._boundHandleClickOut);\n\n if (this._attrObserver) {\n this._attrObserver.disconnect();\n this._attrObserver = undefined;\n }\n\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-header-nav': HeaderNav;\n }\n}\n"],"names":["HeaderNav","customElement","LitElement","_classThis","_classSuper","_HeaderNav_menuOpen_accessor_storage","set","this","__runInitializers","_menuOpen_initializers","_HeaderNav_slot_accessor_storage","_menuOpen_extraInitializers","_slot_initializers","_HeaderNav_autoOpenFlyout_accessor_storage","_slot_extraInitializers","_autoOpenFlyout_initializers","_HeaderNav_truncateLinks_accessor_storage","_autoOpenFlyout_extraInitializers","_truncateLinks_initializers","_HeaderNav_hasCategories_accessor_storage","_truncateLinks_extraInitializers","_hasCategories_initializers","_attrObserver","_hasCategories_extraInitializers","_autoOpenTriggered","_boundHandleClickOut","e","_handleClickOut","menuOpen","__classPrivateFieldGet","value","__classPrivateFieldSet","slot","autoOpenFlyout","truncateLinks","hasCategories","_isDesktop","window","innerWidth","render","classes","menu","open","menuContentClasses","menu__content","left","html","classMap","_toggleMenuOpen","unsafeSVG","closeIcon","menuIcon","_handleSlotChange","_updateCategoriesVisibility","links","querySelectorAllDeep","hasOpenCategory","Array","from","some","link","hasAttribute","hasCategoriesElement","Boolean","querySelectorDeep","nextHasCategories","_autoOpenFirstCategoricalLink","composedPath","includes","firstUpdated","_changed","willUpdate","changedProps","has","detail","dispatchEvent","CustomEvent","composed","bubbles","requestAnimationFrame","querySelectorAll","l","_enterTimer","clearTimeout","undefined","_leaveTimer","target","querySelector","CSS","escape","hasCategoricalNav","hasSlottedCategory","updated","classList","toggle","connectedCallback","super","document","addEventListener","MutationObserver","observe","attributes","subtree","attributeFilter","childList","disconnectedCallback","removeEventListener","disconnect","_menuOpen_decorators","state","property","type","String","reflect","attribute","_truncateLinks_decorators","_hasCategories_decorators","__esDecorate","kind","name","static","private","access","obj","get","metadata","_metadata","_slot_decorators","_autoOpenFlyout_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","HeaderNavScss"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoBaA,EAAS,yCADrBC,EAAc,0BACgBC,2DAARC,EAAA,cAAQC,oCAOpBC,EAAAC,IAAAC,KAAAC,EAAAD,KAAAE,GAAW,IAMFC,EAAAJ,IAAAC,MAAAC,EAAAD,KAAAI,GAAAH,EAAAD,KAAAK,EAAO,UAQhBC,EAAAP,IAAAC,MAAAC,EAAAD,KAAAO,GAAAN,EAAAD,KAAAQ,EAAiB,MAMjBC,EAAAV,IAAAC,MAAAC,EAAAD,KAAAU,GAAAT,EAAAD,KAAAW,GAAgB,KAMhBC,EAAAb,IAAAC,MAAAC,EAAAD,KAAAa,GAAAZ,EAAAD,KAAAc,GAAgB,KAKjBd,KAAAe,cAAad,EAAAD,KAAAgB,GAKbhB,KAAAiB,oBAAqB,EAKrBjB,KAAAkB,qBAAwBC,GAAanB,KAAKoB,gBAAgBD,GAzClE,YAASE,GAAQ,OAAAC,EAAAtB,KAAAF,EAAA,IAAA,CAAjB,YAASuB,CAAQE,GAAAC,EAAAxB,KAAAF,EAAAyB,EAAA,IAAA,CAMjB,QAAkBE,GAAI,OAAAH,EAAAtB,KAAAG,EAAA,IAAA,CAAtB,QAAkBsB,CAAIF,GAAAC,EAAAxB,KAAAG,EAAAoB,EAAA,IAAA,CAQtB,kBAASG,GAAc,OAAAJ,EAAAtB,KAAAM,EAAA,IAAA,CAAvB,kBAASoB,CAAcH,GAAAC,EAAAxB,KAAAM,EAAAiB,EAAA,IAAA,CAMvB,iBAASI,GAAa,OAAAL,EAAAtB,KAAAS,EAAA,IAAA,CAAtB,iBAASkB,CAAaJ,GAAAC,EAAAxB,KAAAS,EAAAc,EAAA,IAAA,CAMtB,iBAASK,GAAa,OAAAN,EAAAtB,KAAAY,EAAA,IAAA,CAAtB,iBAASgB,CAAaL,GAAAC,EAAAxB,KAAAY,EAAAW,EAAA,IAAA,CAkBtB,cAAYM,GACV,MAAsB,oBAAXC,QACJA,OAAOC,YAAc,IAGrB,MAAAC,GACP,MAAMC,EAAU,CACd,cAAc,EACdC,MAAM,EACNC,KAAMnC,KAAKqB,UAGPe,EAAqB,CACzBC,eAAe,EACfC,MAAM,EACN,kBAAmBtC,KAAK4B,eAG1B,OAAOW,CAAI;mBACIC,EAASP;;;;;mBAKT,IAAMjC,KAAKyC;;YAElBzC,KAAKqB,SACHkB,CAAI,SAASG,EAAUC,YACvBJ,CAAI,SAASG,EAAUE;;;qBAGhBJ,EAASJ;8BACApC,KAAK6C;;;MAMzB,eAAAJ,GACNzC,KAAKqB,UAAYrB,KAAKqB,SAGhB,2BAAAyB,GACN,MAAMC,EAAQC,EAAqB,kBAAmBhD,MAEhDiD,EAAkBC,MAAMC,KAAKJ,GAAOK,MAAMC,GACvCA,EAAKC,aAAa,SAAWD,EAAKC,aAAa,cAGlDC,EAAuBC,QAC3BC,EAAkB,wBAAyBzD,OAGvC0D,EAAoBT,GAAmBM,EAEzCvD,KAAK4B,gBAAkB8B,IACzB1D,KAAK4B,cAAgB8B,GAIjB,iBAAAb,GACN7C,KAAK8C,8BAGD9C,KAAK0B,gBAAkB1B,KAAK6B,aAAe7B,KAAKiB,oBAClDjB,KAAK2D,gCAID,eAAAvC,CAAgBD,GACjBA,EAAEyC,eAAeC,SAAS7D,QAC7BA,KAAKqB,UAAW,GAID,YAAAyC,CAAaC,GAC9B/D,KAAK8C,8BAID9C,KAAK0B,gBAAkB1B,KAAK6B,YAC9B7B,KAAK2D,gCAIA,UAAAK,CAAWC,GAClB,GAAIA,EAAaC,IAAI,YAAa,CAChC,MAAMC,EAAS,CAAEhC,KAAMnC,KAAKqB,UAE5BrB,KAAKoE,cACH,IAAIC,YAAY,gBAAiB,CAC/BC,UAAU,EACVC,SAAS,EACTJ,YAMAnE,KAAKqB,UAAYrB,KAAK0B,gBAAkB1B,KAAK6B,YAC/C7B,KAAK2D,gCAIF3D,KAAKqB,WACRrB,KAAKiB,oBAAqB,IAQxB,6BAAA0C,GAINa,uBAAsB,KACpB,MAAMzB,EAAQ/C,KAAKyE,iBACjB,4BAQF,IAAK,MAAMpB,KAAQN,EAAO,CACxB,MAAM2B,EAAIrB,EACNqB,EAAEC,cACJC,aAAaF,EAAEC,aACfD,EAAEC,iBAAcE,GAEdH,EAAEI,cACJF,aAAaF,EAAEI,aACfJ,EAAEI,iBAAcD,GAKpB,IAAIE,EAAoD,KASxD,GAPI/E,KAAK0B,gBAA0C,YAAxB1B,KAAK0B,iBAE9BqD,EAAS/E,KAAKgF,cACZ,4BAA4BC,IAAIC,OAAOlF,KAAK0B,qBAI3CqD,EAEH,IAAK,MAAM1B,KAAQN,EAAO,CACxB,MAAMoC,EAC4C,OAAhD9B,EAAK2B,cAAc,0BACkC,OAArDvB,EAAkB,wBAAyBJ,GACvC+B,EAC0C,OAA9C/B,EAAK2B,cAAc,wBACgC,OAAnDvB,EAAkB,sBAAuBJ,GAE3C,GAAI8B,GAAqBC,EAAoB,CAC3CL,EAAS1B,EACT,OAKF0B,IACFA,EAAO5C,MAAO,EACdnC,KAAKiB,oBAAqB,MAKvB,OAAAoE,CAAQpB,GACXA,EAAaC,IAAI,kBACnBlE,KAAKsF,UAAUC,OAAO,kBAAmBvF,KAAK4B,eAIzC,iBAAA4D,GACPC,MAAMD,oBAENE,SAASC,iBAAiB,QAAS3F,KAAKkB,sBAExClB,KAAKe,cAAgB,IAAI6E,kBAAiB,KACxC5F,KAAK8C,6BAA6B,IAGpC9C,KAAKe,cAAc8E,QAAQ7F,KAAM,CAC/B8F,YAAY,EACZC,SAAS,EACTC,gBAAiB,CAAC,QAClBC,WAAW,IAIN,oBAAAC,GACPR,SAASS,oBAAoB,QAASnG,KAAKkB,sBAEvClB,KAAKe,gBACPf,KAAKe,cAAcqF,aACnBpG,KAAKe,mBAAgB8D,GAGvBY,MAAMS,sPAzPPG,EAAA,CAAAC,QAMAC,EAAS,CAAEC,KAAMC,OAAQC,SAAS,QAQlCH,EAAS,CAAEC,KAAMC,OAAQE,UAAW,sBAMpCC,EAAA,CAAAL,EAAS,CAAEC,KAAMhD,QAASkD,SAAS,EAAMC,UAAW,oBAMpDE,EAAA,CAAAP,KAzBDQ,EAAAlH,EAAA,KAAAyG,EAAA,CAAAU,KAAA,WAAAC,KAAA,WAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAAjD,IAAAkD,GAAA,aAAAA,EAAAC,IAAAD,GAAAA,EAAS/F,SAAQtB,IAAA,CAAAqH,EAAA7F,KAAA6F,EAAR/F,SAAQE,CAAA,GAAA+F,SAAAC,GAAArH,EAAAE,GAMjB0G,EAAAlH,EAAA,KAAA4H,EAAA,CAAAT,KAAA,WAAAC,KAAA,OAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAAjD,IAAAkD,GAAA,SAAAA,EAAAC,IAAAD,GAAAA,EAAkB3F,KAAI1B,IAAA,CAAAqH,EAAA7F,KAAA6F,EAAJ3F,KAAIF,CAAA,GAAA+F,SAAAC,GAAAlH,EAAAE,GAQtBuG,EAAAlH,EAAA,KAAA6H,EAAA,CAAAV,KAAA,WAAAC,KAAA,iBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAAjD,IAAAkD,GAAA,mBAAAA,EAAAC,IAAAD,GAAAA,EAAS1F,eAAc3B,IAAA,CAAAqH,EAAA7F,KAAA6F,EAAd1F,eAAcH,CAAA,GAAA+F,SAAAC,GAAA/G,EAAAE,GAMvBoG,EAAAlH,EAAA,KAAAgH,EAAA,CAAAG,KAAA,WAAAC,KAAA,gBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAAjD,IAAAkD,GAAA,kBAAAA,EAAAC,IAAAD,GAAAA,EAASzF,cAAa5B,IAAA,CAAAqH,EAAA7F,KAAA6F,EAAbzF,cAAaJ,CAAA,GAAA+F,SAAAC,GAAA5G,EAAAE,GAMtBiG,EAAAlH,EAAA,KAAAiH,EAAA,CAAAE,KAAA,WAAAC,KAAA,gBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAAjD,IAAAkD,GAAA,kBAAAA,EAAAC,IAAAD,GAAAA,EAASxF,cAAa7B,IAAA,CAAAqH,EAAA7F,KAAA6F,EAAbxF,cAAaL,CAAA,GAAA+F,SAAAC,GAAAzG,EAAAE,GAjCxB8F,EAAA,KAAAY,EAAA,CAAAnG,MAAA3B,GAAA+H,EAAA,CAAAZ,KAAA,QAAAC,KAAApH,EAAAoH,KAAAM,SAAAC,GAAA,KAAAK,iHACkBhI,EAAAiI,OAASC,EAAUC,GADxB9H,EAAAL,EAAAgI,MAAS"}
|