@kyndryl-design-system/shidoka-applications 1.44.3 → 1.44.5
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.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as e}from"../../../vendor/tslib-958f81aa.js";import{n as t,l as o,t as i,o as r,e as n}from"../../../vendor/lit-52eb9e23.js";import{i as a,s as l,x as d}from"../../../vendor/lit-element-3185f710.js";import{a as s}from"../../../vendor/lit-html-836d5e5c.js";import"@kyndryl-design-system/shidoka-foundation/components/icon";import{l as c}from"../../../vendor/@kyndryl-design-system/shidoka-foundation-61c066a3.js";var
|
|
1
|
+
import{_ as e}from"../../../vendor/tslib-958f81aa.js";import{n as t,l as o,t as i,o as r,e as n}from"../../../vendor/lit-52eb9e23.js";import{i as a,s as l,x as d}from"../../../vendor/lit-element-3185f710.js";import{a as s}from"../../../vendor/lit-html-836d5e5c.js";import"@kyndryl-design-system/shidoka-foundation/components/icon";import{l as c}from"../../../vendor/@kyndryl-design-system/shidoka-foundation-61c066a3.js";var g=a`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
box-sizing: border-box;
|
|
@@ -222,6 +222,7 @@ import{_ as e}from"../../../vendor/tslib-958f81aa.js";import{n as t,l as o,t as
|
|
|
222
222
|
.header {
|
|
223
223
|
display: flex;
|
|
224
224
|
align-items: center;
|
|
225
|
+
gap: 16px;
|
|
225
226
|
position: fixed;
|
|
226
227
|
top: 0;
|
|
227
228
|
right: 0;
|
|
@@ -229,7 +230,7 @@ import{_ as e}from"../../../vendor/tslib-958f81aa.js";import{n as t,l as o,t as
|
|
|
229
230
|
height: var(--kd-header-height);
|
|
230
231
|
background: var(--kd-color-neutral-webgray);
|
|
231
232
|
box-shadow: 0px 3px 3px 0px rgba(0, 0, 0, 0.1);
|
|
232
|
-
padding: 4px
|
|
233
|
+
padding: 4px calc(var(--kd-page-gutter) - 4px) 4px var(--kd-page-gutter);
|
|
233
234
|
transition: z-index 150ms ease-out;
|
|
234
235
|
z-index: var(--kd-z-header);
|
|
235
236
|
}
|
|
@@ -249,7 +250,6 @@ import{_ as e}from"../../../vendor/tslib-958f81aa.js";import{n as t,l as o,t as
|
|
|
249
250
|
.logo-link {
|
|
250
251
|
display: flex;
|
|
251
252
|
align-items: center;
|
|
252
|
-
margin-left: 16px;
|
|
253
253
|
text-decoration: none;
|
|
254
254
|
}
|
|
255
255
|
.logo-link:hover {
|
|
@@ -313,7 +313,7 @@ import{_ as e}from"../../../vendor/tslib-958f81aa.js";import{n as t,l as o,t as
|
|
|
313
313
|
background: none;
|
|
314
314
|
padding: 0 8px;
|
|
315
315
|
margin: 0 2px;
|
|
316
|
-
}`;let
|
|
316
|
+
}`;let h=class extends l{constructor(){super(...arguments),this.rootUrl="/",this.appTitle="",this._navOpen=!1,this._flyoutsOpen=!1}render(){const e={header:!0,"left-slotted":this.leftEls.length,"child-open":this._navOpen||this._flyoutsOpen};return d`
|
|
317
317
|
<header class="${r(e)}">
|
|
318
318
|
<slot name="left" @slotchange=${this.handleSlotChange}></slot>
|
|
319
319
|
|
|
@@ -335,5 +335,5 @@ import{_ as e}from"../../../vendor/tslib-958f81aa.js";import{n as t,l as o,t as
|
|
|
335
335
|
<slot @slotchange=${this.handleSlotChange}></slot>
|
|
336
336
|
</div>
|
|
337
337
|
</header>
|
|
338
|
-
`}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}connectedCallback(){super.connectedCallback(),document.addEventListener("on-nav-toggle",(e=>this._handleNavToggle(e))),document.addEventListener("on-flyouts-toggle",(e=>this._handleFlyoutsToggle(e)))}disconnectedCallback(){document.removeEventListener("on-nav-toggle",(e=>this._handleNavToggle(e))),document.removeEventListener("on-flyouts-toggle",(e=>this._handleFlyoutsToggle(e))),super.disconnectedCallback()}};
|
|
338
|
+
`}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}connectedCallback(){super.connectedCallback(),document.addEventListener("on-nav-toggle",(e=>this._handleNavToggle(e))),document.addEventListener("on-flyouts-toggle",(e=>this._handleFlyoutsToggle(e)))}disconnectedCallback(){document.removeEventListener("on-nav-toggle",(e=>this._handleNavToggle(e))),document.removeEventListener("on-flyouts-toggle",(e=>this._handleFlyoutsToggle(e))),super.disconnectedCallback()}};h.styles=g,e([t({type:String})],h.prototype,"rootUrl",void 0),e([t({type:String})],h.prototype,"appTitle",void 0),e([o({selector:"kyn-header-nav"})],h.prototype,"navEls",void 0),e([o()],h.prototype,"assignedElements",void 0),e([o({slot:"left"})],h.prototype,"leftEls",void 0),e([i()],h.prototype,"_navOpen",void 0),e([i()],h.prototype,"_flyoutsOpen",void 0),h=e([n("kyn-header")],h);export{h as Header};
|
|
339
339
|
//# sourceMappingURL=header.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headerLink.d.ts","sourceRoot":"","sources":["../../../../src/components/global/header/headerLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAUvC,OAAO,0BAA0B,CAAC;AAClC,OAAO,2DAA2D,CAAC;AAKnE;;;;;GAKG;AACH,qBACa,UAAW,SAAQ,UAAU;IACxC,OAAgB,MAAM,MAAkB;IAExC,uBAAuB;IAEvB,IAAI,UAAS;IAEb,gBAAgB;IAEhB,IAAI,SAAM;IAEV,oIAAoI;IAEpI,MAAM,UAAoB;IAE1B,oIAAoI;IAEpI,GAAG,SAAM;IAET,sEAAsE;IAEtE,QAAQ,UAAS;IAEjB;;OAEG;IAEH,KAAK,SAAK;IAEV,+DAA+D;IAE/D,OAAO,UAAS;IAEhB,iFAAiF;IAEjF,WAAW,SAAY;IAEvB,qCAAqC;IAErC,QAAQ,SAAU;IAElB,qCAAqC;IAErC,WAAW,SAAM;IAEjB;;;OAGG;IAEH,UAAU,EAAG,KAAK,CAAC,WAAW,CAAC,CAAC;IAEhC;;OAEG;IACH,WAAW,EAAE,GAAG,CAAC;IAEjB;;OAEG;IAEH,WAAW,EAAE,GAAG,CAAC;IAEjB;;OAEG;IAEH,YAAY,EAAE,GAAG,CAAM;IAEd,MAAM;
|
|
1
|
+
{"version":3,"file":"headerLink.d.ts","sourceRoot":"","sources":["../../../../src/components/global/header/headerLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAUvC,OAAO,0BAA0B,CAAC;AAClC,OAAO,2DAA2D,CAAC;AAKnE;;;;;GAKG;AACH,qBACa,UAAW,SAAQ,UAAU;IACxC,OAAgB,MAAM,MAAkB;IAExC,uBAAuB;IAEvB,IAAI,UAAS;IAEb,gBAAgB;IAEhB,IAAI,SAAM;IAEV,oIAAoI;IAEpI,MAAM,UAAoB;IAE1B,oIAAoI;IAEpI,GAAG,SAAM;IAET,sEAAsE;IAEtE,QAAQ,UAAS;IAEjB;;OAEG;IAEH,KAAK,SAAK;IAEV,+DAA+D;IAE/D,OAAO,UAAS;IAEhB,iFAAiF;IAEjF,WAAW,SAAY;IAEvB,qCAAqC;IAErC,QAAQ,SAAU;IAElB,qCAAqC;IAErC,WAAW,SAAM;IAEjB;;;OAGG;IAEH,UAAU,EAAG,KAAK,CAAC,WAAW,CAAC,CAAC;IAEhC;;OAEG;IACH,WAAW,EAAE,GAAG,CAAC;IAEjB;;OAEG;IAEH,WAAW,EAAE,GAAG,CAAC;IAEjB;;OAEG;IAEH,YAAY,EAAE,GAAG,CAAM;IAEd,MAAM;IA0Ef,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,aAAa;IAuBrB,gBAAgB;IAChB,OAAO,CAAC,eAAe,CAEpB;IAEM,YAAY;IAIZ,UAAU,CAAC,YAAY,EAAE,GAAG;IAM5B,iBAAiB;IAQjB,oBAAoB;CAO9B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,UAAU,CAAC;KAC/B;CACF"}
|
|
@@ -369,7 +369,7 @@ kyn-text-input {
|
|
|
369
369
|
transform: scaleX(0);
|
|
370
370
|
transform-origin: right;
|
|
371
371
|
}
|
|
372
|
-
}`;let m=class extends l{constructor(){super(...arguments),this.open=!1,this.href="",this.target="_self",this.rel="",this.isActive=!1,this.level=1,this.divider=!1,this.searchLabel="Search",this.backText="Back",this._searchTerm="",this.menuPosition={},this._debounceResize=s((()=>{this.determineLevel()}))}render(){const e={menu:this.slottedEls.length,"level--1":1==this.level,"level--2":2==this.level,divider:this.divider,open:this.open},t={"nav-link":!0,active:this.isActive,interactive:1==this.level},o={menu__content:!0,slotted:this.slottedEls.length},i=this.querySelectorAll("kyn-header-link");return d`
|
|
372
|
+
}`;let m=class extends l{constructor(){super(...arguments),this.open=!1,this.href="",this.target="_self",this.rel="",this.isActive=!1,this.level=1,this.divider=!1,this.searchLabel="Search",this.backText="Back",this._searchTerm="",this.menuPosition={},this._debounceResize=s((()=>{this.determineLevel()}))}render(){const e={menu:this.slottedEls.length,"level--1":1==this.level,"level--2":2==this.level,divider:this.divider,open:this.open},t={"nav-link":!0,active:this.isActive,interactive:1==this.level},o={menu__content:!0,slotted:this.slottedEls.length},i=this.querySelectorAll(":scope > kyn-header-link, :scope > kyn-header-category > kyn-header-link");return d`
|
|
373
373
|
<div
|
|
374
374
|
class="${r(e)}"
|
|
375
375
|
@pointerleave=${e=>this.handlePointerLeave(e)}
|
|
@@ -412,5 +412,5 @@ kyn-text-input {
|
|
|
412
412
|
<slot name="links" @slotchange=${this._handleLinksSlotChange}></slot>
|
|
413
413
|
</div>
|
|
414
414
|
</div>
|
|
415
|
-
`}_handleSearch(e){this._searchTerm=e.detail.value.toLowerCase(),this._searchFilter()}_searchFilter(){this.querySelectorAll("kyn-header-link").forEach((e=>{var t,o;const i=null===(o=null===(t=e.shadowRoot)||void 0===t?void 0:t.querySelector("slot"))||void 0===o?void 0:o.assignedNodes({flatten:!0});let r="";for(let e=0;e<i.length;e++)r+=i[e].textContent.trim();r.toLowerCase().includes(this._searchTerm)?e.style.display="block":e.style.display="none"})),this._positionMenu()}_handleBack(){this.open=!1}_handleLinksSlotChange(){this.requestUpdate()}handlePointerEnter(e){"mouse"===e.pointerType&&this.slottedEls.length&&(clearTimeout(this._leaveTimer),this._enterTimer=setTimeout((()=>{this.open=!0}),150))}handlePointerLeave(e){"mouse"===e.pointerType&&this.slottedEls.length&&""===this._searchTerm&&(clearTimeout(this._enterTimer),this._leaveTimer=setTimeout((()=>{this.open=!1}),150))}handleClick(e){let t=!1;this.slottedEls.length&&(t=!0,e.preventDefault(),this.open=!this.open);const o=new CustomEvent("on-click",{detail:{origEvent:e,defaultPrevented:t}});this.dispatchEvent(o)}handleClickOut(e){e.composedPath().includes(this)||(this.open=!1,this._searchTerm="",this._searchFilter())}determineLevel(){const e=this.parentNode;"KYN-HEADER-LINK"===e.nodeName||"links"===e.slot||window.innerWidth<672&&"KYN-HEADER-FLYOUT"===e.nodeName?this.level=2:this.level=1}_positionMenu(){var e,t;const o=this.getBoundingClientRect(),i=null===(t=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector(".menu__content"))||void 0===t?void 0:t.getBoundingClientRect(),r=o.top+o.height/2,n=i.height/2,a=r+n>window.innerHeight?r-n-(r+n-window.innerHeight):r-n;this.menuPosition={top:a<56?56:a,left:o.right+8}}firstUpdated(){this.determineLevel()}willUpdate(e){e.has("open")&&this.open&&this._positionMenu()}connectedCallback(){super.connectedCallback(),document.addEventListener("click",(e=>this.handleClickOut(e))),null===window||void 0===window||window.addEventListener("resize",this._debounceResize)}disconnectedCallback(){document.removeEventListener("click",(e=>this.handleClickOut(e))),null===window||void 0===window||window.removeEventListener("resize",this._debounceResize),super.disconnectedCallback()}};m.styles=p,e([t({type:Boolean})],m.prototype,"open",void 0),e([t({type:String})],m.prototype,"href",void 0),e([t({type:String})],m.prototype,"target",void 0),e([t({type:String})],m.prototype,"rel",void 0),e([t({type:Boolean})],m.prototype,"isActive",void 0),e([o()],m.prototype,"level",void 0),e([t({type:Boolean})],m.prototype,"divider",void 0),e([t({type:String})],m.prototype,"searchLabel",void 0),e([t({type:String})],m.prototype,"backText",void 0),e([o()],m.prototype,"_searchTerm",void 0),e([i({slot:"links"})],m.prototype,"slottedEls",void 0),e([o()],m.prototype,"_leaveTimer",void 0),e([o()],m.prototype,"menuPosition",void 0),m=e([n("kyn-header-link")],m);export{m as HeaderLink};
|
|
415
|
+
`}_handleSearch(e){this._searchTerm=e.detail.value.toLowerCase(),this._searchFilter()}_searchFilter(){this.querySelectorAll(":scope > kyn-header-link, :scope > kyn-header-category > kyn-header-link").forEach((e=>{var t,o;const i=null===(o=null===(t=e.shadowRoot)||void 0===t?void 0:t.querySelector("slot"))||void 0===o?void 0:o.assignedNodes({flatten:!0});let r="";for(let e=0;e<i.length;e++)r+=i[e].textContent.trim();r.toLowerCase().includes(this._searchTerm)?e.style.display="block":e.style.display="none"})),this._positionMenu()}_handleBack(){this.open=!1}_handleLinksSlotChange(){this.requestUpdate()}handlePointerEnter(e){"mouse"===e.pointerType&&this.slottedEls.length&&(clearTimeout(this._leaveTimer),this._enterTimer=setTimeout((()=>{this.open=!0}),150))}handlePointerLeave(e){"mouse"===e.pointerType&&this.slottedEls.length&&""===this._searchTerm&&(clearTimeout(this._enterTimer),this._leaveTimer=setTimeout((()=>{this.open=!1}),150))}handleClick(e){let t=!1;this.slottedEls.length&&(t=!0,e.preventDefault(),this.open=!this.open);const o=new CustomEvent("on-click",{detail:{origEvent:e,defaultPrevented:t}});this.dispatchEvent(o)}handleClickOut(e){e.composedPath().includes(this)||(this.open=!1,this._searchTerm="",this._searchFilter())}determineLevel(){const e=this.parentNode;"KYN-HEADER-LINK"===e.nodeName||"links"===e.slot||window.innerWidth<672&&"KYN-HEADER-FLYOUT"===e.nodeName?this.level=2:this.level=1}_positionMenu(){var e,t;const o=this.getBoundingClientRect(),i=null===(t=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector(".menu__content"))||void 0===t?void 0:t.getBoundingClientRect(),r=o.top+o.height/2,n=i.height/2,a=r+n>window.innerHeight?r-n-(r+n-window.innerHeight):r-n;this.menuPosition={top:a<56?56:a,left:o.right+8}}firstUpdated(){this.determineLevel()}willUpdate(e){e.has("open")&&this.open&&this._positionMenu()}connectedCallback(){super.connectedCallback(),document.addEventListener("click",(e=>this.handleClickOut(e))),null===window||void 0===window||window.addEventListener("resize",this._debounceResize)}disconnectedCallback(){document.removeEventListener("click",(e=>this.handleClickOut(e))),null===window||void 0===window||window.removeEventListener("resize",this._debounceResize),super.disconnectedCallback()}};m.styles=p,e([t({type:Boolean})],m.prototype,"open",void 0),e([t({type:String})],m.prototype,"href",void 0),e([t({type:String})],m.prototype,"target",void 0),e([t({type:String})],m.prototype,"rel",void 0),e([t({type:Boolean})],m.prototype,"isActive",void 0),e([o()],m.prototype,"level",void 0),e([t({type:Boolean})],m.prototype,"divider",void 0),e([t({type:String})],m.prototype,"searchLabel",void 0),e([t({type:String})],m.prototype,"backText",void 0),e([o()],m.prototype,"_searchTerm",void 0),e([i({slot:"links"})],m.prototype,"slottedEls",void 0),e([o()],m.prototype,"_leaveTimer",void 0),e([o()],m.prototype,"menuPosition",void 0),m=e([n("kyn-header-link")],m);export{m as HeaderLink};
|
|
416
416
|
//# sourceMappingURL=headerLink.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headerLink.js","sources":["../../../../src/components/global/header/headerLink.ts"],"sourcesContent":["import { LitElement, html } 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 { debounce } from '../../../common/helpers/helpers';\nimport HeaderLinkScss from './headerLink.scss';\nimport '../../reusable/textInput';\nimport '@kyndryl-design-system/shidoka-foundation/components/icon';\nimport arrowIcon from '@carbon/icons/es/chevron--right/16';\nimport backIcon from '@carbon/icons/es/arrow--left/16';\nimport searchIcon from '@carbon/icons/es/search/24';\n\n/**\n * Component for navigation links within the Header.\n * @fires on-click - Captures the click event and emits the original event details.\n * @slot unnamed - Slot for link text/content.\n * @slot links - Slot for sublinks (up to two levels).\n */\n@customElement('kyn-header-link')\nexport class HeaderLink extends LitElement {\n static override styles = HeaderLinkScss;\n\n /** Link open state. */\n @property({ type: Boolean })\n open = false;\n\n /** Link url. */\n @property({ type: String })\n 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 target = '_self' as const;\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 rel = '';\n\n /** Link active state, for example when URL path matches link href. */\n @property({ type: Boolean })\n isActive = false;\n\n /** Link level, supports two levels.\n * @ignore\n */\n @state()\n level = 1;\n\n /** DEPRECATED. Adds a 1px shadow to the bottom of the link. */\n @property({ type: Boolean })\n divider = false;\n\n /** Label for sub-menu link search input, which is visible with > 5 sub-links. */\n @property({ type: String })\n searchLabel = 'Search';\n\n /** Text for mobile \"Back\" button. */\n @property({ type: String })\n backText = 'Back';\n\n /** Text for mobile \"Back\" button. */\n @state()\n _searchTerm = '';\n\n /**\n * Queries any slotted HTML elements.\n * @ignore\n */\n @queryAssignedElements({ slot: 'links' })\n 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 _leaveTimer: any;\n\n /** Menu positioning\n * @internal\n */\n @state()\n menuPosition: any = {};\n\n override render() {\n const classes = {\n menu: this.slottedEls.length,\n 'level--1': this.level == 1,\n 'level--2': this.level == 2,\n divider: this.divider,\n open: this.open,\n };\n\n const linkClasses = {\n 'nav-link': true,\n active: this.isActive,\n interactive: this.level == 1,\n };\n\n const menuClasses = {\n menu__content: true,\n slotted: this.slottedEls.length,\n };\n\n const Links = this.querySelectorAll('kyn-header-link');\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 class=${classMap(linkClasses)}\n @click=${(e: Event) => this.handleClick(e)}\n @pointerenter=${(e: PointerEvent) => this.handlePointerEnter(e)}\n >\n <slot></slot>\n\n ${this.slottedEls.length\n ? html` <kd-icon class=\"arrow\" .icon=${arrowIcon}></kd-icon> `\n : null}\n </a>\n\n <div\n class=${classMap(menuClasses)}\n style=${`top: ${this.menuPosition.top}px; left: ${this.menuPosition.left}px;`}\n >\n <button class=\"go-back\" @click=${() => this._handleBack()}>\n <kd-icon .icon=${backIcon}></kd-icon>\n ${this.backText}\n </button>\n\n ${Links.length > 5\n ? html`\n <kyn-text-input\n hideLabel\n placeholder=${this.searchLabel}\n value=${this._searchTerm}\n @on-input=${(e: Event) => this._handleSearch(e)}\n >\n <kd-icon .icon=${searchIcon} slot=\"icon\"></kd-icon>\n ${this.searchLabel}\n </kyn-text-input>\n `\n : null}\n\n <slot name=\"links\" @slotchange=${this._handleLinksSlotChange}></slot>\n </div>\n </div>\n `;\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('kyn-header-link');\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 private _handleBack() {\n this.open = false;\n }\n\n private _handleLinksSlotChange() {\n this.requestUpdate();\n }\n\n private handlePointerEnter(e: PointerEvent) {\n if (e.pointerType === 'mouse' && this.slottedEls.length) {\n clearTimeout(this._leaveTimer);\n\n this._enterTimer = setTimeout(() => {\n this.open = true;\n }, 150);\n }\n }\n\n private handlePointerLeave(e: PointerEvent) {\n if (\n e.pointerType === 'mouse' &&\n this.slottedEls.length &&\n this._searchTerm === ''\n ) {\n clearTimeout(this._enterTimer);\n\n this._leaveTimer = setTimeout(() => {\n this.open = false;\n }, 150);\n }\n }\n\n private handleClick(e: Event) {\n let preventDefault = false;\n\n if (this.slottedEls.length) {\n preventDefault = true;\n e.preventDefault();\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 const ParentNode: any = this.parentNode;\n\n if (\n ParentNode.nodeName === 'KYN-HEADER-LINK' ||\n ParentNode.slot === 'links'\n ) {\n this.level = 2;\n } else {\n if (\n window.innerWidth < 672 &&\n ParentNode.nodeName === 'KYN-HEADER-FLYOUT'\n ) {\n this.level = 2;\n } else {\n this.level = 1;\n }\n }\n }\n\n private _positionMenu() {\n // determine submenu positioning\n const LinkBounds: any = this.getBoundingClientRect();\n const MenuBounds: any = this.shadowRoot\n ?.querySelector('.menu__content')\n ?.getBoundingClientRect();\n const Padding = 8;\n const HeaderHeight = 56;\n\n const LinkHalf = LinkBounds.top + LinkBounds.height / 2;\n const MenuHalf = MenuBounds.height / 2;\n\n const Top =\n LinkHalf + MenuHalf > window.innerHeight\n ? LinkHalf - MenuHalf - (LinkHalf + MenuHalf - window.innerHeight)\n : LinkHalf - MenuHalf;\n\n this.menuPosition = {\n top: Top < HeaderHeight ? HeaderHeight : Top,\n left: LinkBounds.right + Padding,\n };\n }\n\n /** @internal */\n private _debounceResize = debounce(() => {\n this.determineLevel();\n });\n\n override firstUpdated() {\n this.determineLevel();\n }\n\n override willUpdate(changedProps: any) {\n if (changedProps.has('open') && this.open) {\n this._positionMenu();\n }\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n document.addEventListener('click', (e) => this.handleClickOut(e));\n\n window?.addEventListener('resize', this._debounceResize);\n }\n\n override disconnectedCallback() {\n document.removeEventListener('click', (e) => this.handleClickOut(e));\n\n window?.removeEventListener('resize', this._debounceResize);\n\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-header-link': HeaderLink;\n }\n}\n"],"names":["HeaderLink","LitElement","constructor","this","open","href","target","rel","isActive","level","divider","searchLabel","backText","_searchTerm","menuPosition","_debounceResize","debounce","determineLevel","render","classes","menu","slottedEls","length","linkClasses","active","interactive","menuClasses","menu__content","slotted","Links","querySelectorAll","html","classMap","e","handlePointerLeave","handlePointerEnter","handleClick","arrowIcon","top","left","_handleBack","backIcon","_handleSearch","searchIcon","_handleLinksSlotChange","detail","value","toLowerCase","_searchFilter","forEach","link","nodes","_b","_a","shadowRoot","querySelector","assignedNodes","flatten","linkText","i","textContent","trim","includes","style","display","_positionMenu","requestUpdate","pointerType","clearTimeout","_leaveTimer","_enterTimer","setTimeout","preventDefault","event","CustomEvent","origEvent","defaultPrevented","dispatchEvent","handleClickOut","composedPath","ParentNode","parentNode","nodeName","slot","window","innerWidth","LinkBounds","getBoundingClientRect","MenuBounds","LinkHalf","height","MenuHalf","Top","innerHeight","right","firstUpdated","willUpdate","changedProps","has","connectedCallback","super","document","addEventListener","disconnectedCallback","removeEventListener","styles","HeaderLinkScss","__decorate","property","type","Boolean","prototype","String","state","queryAssignedElements","customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"headerLink.js","sources":["../../../../src/components/global/header/headerLink.ts"],"sourcesContent":["import { LitElement, html } 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 { debounce } from '../../../common/helpers/helpers';\nimport HeaderLinkScss from './headerLink.scss';\nimport '../../reusable/textInput';\nimport '@kyndryl-design-system/shidoka-foundation/components/icon';\nimport arrowIcon from '@carbon/icons/es/chevron--right/16';\nimport backIcon from '@carbon/icons/es/arrow--left/16';\nimport searchIcon from '@carbon/icons/es/search/24';\n\n/**\n * Component for navigation links within the Header.\n * @fires on-click - Captures the click event and emits the original event details.\n * @slot unnamed - Slot for link text/content.\n * @slot links - Slot for sublinks (up to two levels).\n */\n@customElement('kyn-header-link')\nexport class HeaderLink extends LitElement {\n static override styles = HeaderLinkScss;\n\n /** Link open state. */\n @property({ type: Boolean })\n open = false;\n\n /** Link url. */\n @property({ type: String })\n 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 target = '_self' as const;\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 rel = '';\n\n /** Link active state, for example when URL path matches link href. */\n @property({ type: Boolean })\n isActive = false;\n\n /** Link level, supports two levels.\n * @ignore\n */\n @state()\n level = 1;\n\n /** DEPRECATED. Adds a 1px shadow to the bottom of the link. */\n @property({ type: Boolean })\n divider = false;\n\n /** Label for sub-menu link search input, which is visible with > 5 sub-links. */\n @property({ type: String })\n searchLabel = 'Search';\n\n /** Text for mobile \"Back\" button. */\n @property({ type: String })\n backText = 'Back';\n\n /** Text for mobile \"Back\" button. */\n @state()\n _searchTerm = '';\n\n /**\n * Queries any slotted HTML elements.\n * @ignore\n */\n @queryAssignedElements({ slot: 'links' })\n 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 _leaveTimer: any;\n\n /** Menu positioning\n * @internal\n */\n @state()\n menuPosition: any = {};\n\n override render() {\n const classes = {\n menu: this.slottedEls.length,\n 'level--1': this.level == 1,\n 'level--2': this.level == 2,\n divider: this.divider,\n open: this.open,\n };\n\n const linkClasses = {\n 'nav-link': true,\n active: this.isActive,\n interactive: this.level == 1,\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 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 class=${classMap(linkClasses)}\n @click=${(e: Event) => this.handleClick(e)}\n @pointerenter=${(e: PointerEvent) => this.handlePointerEnter(e)}\n >\n <slot></slot>\n\n ${this.slottedEls.length\n ? html` <kd-icon class=\"arrow\" .icon=${arrowIcon}></kd-icon> `\n : null}\n </a>\n\n <div\n class=${classMap(menuClasses)}\n style=${`top: ${this.menuPosition.top}px; left: ${this.menuPosition.left}px;`}\n >\n <button class=\"go-back\" @click=${() => this._handleBack()}>\n <kd-icon .icon=${backIcon}></kd-icon>\n ${this.backText}\n </button>\n\n ${Links.length > 5\n ? html`\n <kyn-text-input\n hideLabel\n placeholder=${this.searchLabel}\n value=${this._searchTerm}\n @on-input=${(e: Event) => this._handleSearch(e)}\n >\n <kd-icon .icon=${searchIcon} slot=\"icon\"></kd-icon>\n ${this.searchLabel}\n </kyn-text-input>\n `\n : null}\n\n <slot name=\"links\" @slotchange=${this._handleLinksSlotChange}></slot>\n </div>\n </div>\n `;\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 private _handleBack() {\n this.open = false;\n }\n\n private _handleLinksSlotChange() {\n this.requestUpdate();\n }\n\n private handlePointerEnter(e: PointerEvent) {\n if (e.pointerType === 'mouse' && this.slottedEls.length) {\n clearTimeout(this._leaveTimer);\n\n this._enterTimer = setTimeout(() => {\n this.open = true;\n }, 150);\n }\n }\n\n private handlePointerLeave(e: PointerEvent) {\n if (\n e.pointerType === 'mouse' &&\n this.slottedEls.length &&\n this._searchTerm === ''\n ) {\n clearTimeout(this._enterTimer);\n\n this._leaveTimer = setTimeout(() => {\n this.open = false;\n }, 150);\n }\n }\n\n private handleClick(e: Event) {\n let preventDefault = false;\n\n if (this.slottedEls.length) {\n preventDefault = true;\n e.preventDefault();\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 const ParentNode: any = this.parentNode;\n\n if (\n ParentNode.nodeName === 'KYN-HEADER-LINK' ||\n ParentNode.slot === 'links'\n ) {\n this.level = 2;\n } else {\n if (\n window.innerWidth < 672 &&\n ParentNode.nodeName === 'KYN-HEADER-FLYOUT'\n ) {\n this.level = 2;\n } else {\n this.level = 1;\n }\n }\n }\n\n private _positionMenu() {\n // determine submenu positioning\n const LinkBounds: any = this.getBoundingClientRect();\n const MenuBounds: any = this.shadowRoot\n ?.querySelector('.menu__content')\n ?.getBoundingClientRect();\n const Padding = 8;\n const HeaderHeight = 56;\n\n const LinkHalf = LinkBounds.top + LinkBounds.height / 2;\n const MenuHalf = MenuBounds.height / 2;\n\n const Top =\n LinkHalf + MenuHalf > window.innerHeight\n ? LinkHalf - MenuHalf - (LinkHalf + MenuHalf - window.innerHeight)\n : LinkHalf - MenuHalf;\n\n this.menuPosition = {\n top: Top < HeaderHeight ? HeaderHeight : Top,\n left: LinkBounds.right + Padding,\n };\n }\n\n /** @internal */\n private _debounceResize = debounce(() => {\n this.determineLevel();\n });\n\n override firstUpdated() {\n this.determineLevel();\n }\n\n override willUpdate(changedProps: any) {\n if (changedProps.has('open') && this.open) {\n this._positionMenu();\n }\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n document.addEventListener('click', (e) => this.handleClickOut(e));\n\n window?.addEventListener('resize', this._debounceResize);\n }\n\n override disconnectedCallback() {\n document.removeEventListener('click', (e) => this.handleClickOut(e));\n\n window?.removeEventListener('resize', this._debounceResize);\n\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-header-link': HeaderLink;\n }\n}\n"],"names":["HeaderLink","LitElement","constructor","this","open","href","target","rel","isActive","level","divider","searchLabel","backText","_searchTerm","menuPosition","_debounceResize","debounce","determineLevel","render","classes","menu","slottedEls","length","linkClasses","active","interactive","menuClasses","menu__content","slotted","Links","querySelectorAll","html","classMap","e","handlePointerLeave","handlePointerEnter","handleClick","arrowIcon","top","left","_handleBack","backIcon","_handleSearch","searchIcon","_handleLinksSlotChange","detail","value","toLowerCase","_searchFilter","forEach","link","nodes","_b","_a","shadowRoot","querySelector","assignedNodes","flatten","linkText","i","textContent","trim","includes","style","display","_positionMenu","requestUpdate","pointerType","clearTimeout","_leaveTimer","_enterTimer","setTimeout","preventDefault","event","CustomEvent","origEvent","defaultPrevented","dispatchEvent","handleClickOut","composedPath","ParentNode","parentNode","nodeName","slot","window","innerWidth","LinkBounds","getBoundingClientRect","MenuBounds","LinkHalf","height","MenuHalf","Top","innerHeight","right","firstUpdated","willUpdate","changedProps","has","connectedCallback","super","document","addEventListener","disconnectedCallback","removeEventListener","styles","HeaderLinkScss","__decorate","property","type","Boolean","prototype","String","state","queryAssignedElements","customElement"],"mappings":"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"}
|