@kyndryl-design-system/shidoka-applications 2.57.2 → 2.58.0
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/common/scss/menu-item.scss +95 -9
- package/components/global/localNav/localNav.d.ts +7 -5
- package/components/global/localNav/localNav.d.ts.map +1 -1
- package/components/global/localNav/localNav.js +8 -8
- package/components/global/localNav/localNav.js.map +1 -1
- package/components/global/localNav/localNavLink.d.ts +5 -5
- package/components/global/localNav/localNavLink.d.ts.map +1 -1
- package/components/global/localNav/localNavLink.js +9 -13
- package/components/global/localNav/localNavLink.js.map +1 -1
- package/components/reusable/dropdown/dropdown.d.ts +7 -0
- package/components/reusable/dropdown/dropdown.d.ts.map +1 -1
- package/components/reusable/dropdown/dropdown.js +32 -19
- package/components/reusable/dropdown/dropdown.js.map +1 -1
- package/components/reusable/dropdown/dropdownOption.d.ts +5 -0
- package/components/reusable/dropdown/dropdownOption.d.ts.map +1 -1
- package/components/reusable/dropdown/dropdownOption.js +77 -20
- package/components/reusable/dropdown/dropdownOption.js.map +1 -1
- package/components/reusable/dropdown/enhancedDropdownOption.d.ts +2 -0
- package/components/reusable/dropdown/enhancedDropdownOption.d.ts.map +1 -1
- package/components/reusable/dropdown/enhancedDropdownOption.js +77 -20
- package/components/reusable/dropdown/enhancedDropdownOption.js.map +1 -1
- package/components/reusable/numberInput/numberInput.d.ts +2 -2
- package/components/reusable/numberInput/numberInput.js.map +1 -1
- package/components/reusable/overflowMenu/overflowMenu.d.ts +5 -0
- package/components/reusable/overflowMenu/overflowMenu.d.ts.map +1 -1
- package/components/reusable/overflowMenu/overflowMenu.js +7 -3
- package/components/reusable/overflowMenu/overflowMenu.js.map +1 -1
- package/components/reusable/overflowMenu/overflowMenuItem.d.ts +5 -1
- package/components/reusable/overflowMenu/overflowMenuItem.d.ts.map +1 -1
- package/components/reusable/overflowMenu/overflowMenuItem.js +74 -13
- package/components/reusable/overflowMenu/overflowMenuItem.js.map +1 -1
- package/package.json +1 -1
|
@@ -8,22 +8,25 @@
|
|
|
8
8
|
|
|
9
9
|
.menu-item {
|
|
10
10
|
background-color: var(--kd-color-background-menu-state-default);
|
|
11
|
+
|
|
11
12
|
.menu-item-inner-el {
|
|
12
13
|
color: var(--kd-color-text-level-primary);
|
|
14
|
+
transition: color 150ms ease-out;
|
|
13
15
|
}
|
|
16
|
+
|
|
14
17
|
transition: background-color 150ms ease-out, color 150ms ease-out;
|
|
15
18
|
|
|
16
|
-
&:hover {
|
|
19
|
+
&:hover:not([disabled]) {
|
|
17
20
|
background-color: var(--kd-color-background-menu-state-hover);
|
|
21
|
+
|
|
18
22
|
.menu-item-inner-el {
|
|
19
23
|
color: var(--kd-color-text-level-light);
|
|
20
24
|
}
|
|
21
25
|
}
|
|
22
26
|
|
|
23
|
-
&:focus,
|
|
24
|
-
&:focus-within,
|
|
25
|
-
&:focus-visible {
|
|
27
|
+
&:is(:focus, :focus-within, :focus-visible):not([disabled]) {
|
|
26
28
|
background-color: var(--kd-color-background-menu-state-open);
|
|
29
|
+
|
|
27
30
|
.menu-item-inner-el {
|
|
28
31
|
color: var(--kd-color-text-level-primary);
|
|
29
32
|
}
|
|
@@ -31,6 +34,7 @@
|
|
|
31
34
|
|
|
32
35
|
&:active:not([disabled]) {
|
|
33
36
|
background-color: var(--kd-color-background-menu-state-pressed);
|
|
37
|
+
|
|
34
38
|
.menu-item-inner-el {
|
|
35
39
|
color: var(--kd-color-text-level-light);
|
|
36
40
|
}
|
|
@@ -41,6 +45,7 @@
|
|
|
41
45
|
|
|
42
46
|
&:hover {
|
|
43
47
|
background-color: var(--kd-color-background-menu-state-hover);
|
|
48
|
+
|
|
44
49
|
.menu-item-inner-el {
|
|
45
50
|
color: var(--kd-color-text-level-light);
|
|
46
51
|
}
|
|
@@ -49,6 +54,7 @@
|
|
|
49
54
|
|
|
50
55
|
&[highlighted]:not([disabled]) {
|
|
51
56
|
background-color: var(--kd-color-background-menu-state-hover);
|
|
57
|
+
|
|
52
58
|
.menu-item-inner-el {
|
|
53
59
|
color: var(--kd-color-text-level-light);
|
|
54
60
|
}
|
|
@@ -56,27 +62,30 @@
|
|
|
56
62
|
|
|
57
63
|
&[selected][highlighted]:not([disabled]) {
|
|
58
64
|
background-color: var(--kd-color-background-menu-state-hover);
|
|
65
|
+
|
|
59
66
|
.menu-item-inner-el {
|
|
60
67
|
color: var(--kd-color-text-level-light);
|
|
61
68
|
}
|
|
62
69
|
}
|
|
63
70
|
|
|
64
|
-
&[highlighted]:is(:focus, :focus-within, :focus-visible) {
|
|
71
|
+
&[highlighted]:is(:focus, :focus-within, :focus-visible):not([disabled]) {
|
|
65
72
|
background-color: var(--kd-color-background-menu-state-hover);
|
|
73
|
+
|
|
66
74
|
.menu-item-inner-el {
|
|
67
75
|
color: var(--kd-color-text-level-light);
|
|
68
76
|
}
|
|
69
77
|
}
|
|
70
78
|
|
|
71
79
|
&[disabled] {
|
|
72
|
-
color: var(--kd-color-text-
|
|
80
|
+
color: var(--kd-color-text-level-disabled);
|
|
81
|
+
|
|
73
82
|
.menu-item-inner-el {
|
|
74
|
-
color: var(--kd-color-text-
|
|
83
|
+
color: var(--kd-color-text-level-disabled);
|
|
75
84
|
}
|
|
76
85
|
|
|
77
86
|
&:hover {
|
|
78
87
|
cursor: not-allowed;
|
|
79
|
-
background-color: var(--kd-color-background-
|
|
88
|
+
background-color: var(--kd-color-background-menu-state-default);
|
|
80
89
|
}
|
|
81
90
|
|
|
82
91
|
kyn-checkbox:hover {
|
|
@@ -88,7 +97,7 @@
|
|
|
88
97
|
color: var(--kd-color-text-variant-destructive);
|
|
89
98
|
border-top: 1px solid var(--kd-color-border-level-tertiary);
|
|
90
99
|
|
|
91
|
-
&:hover {
|
|
100
|
+
&:hover:not([disabled]) {
|
|
92
101
|
background-color: var(--kd-color-status-error-light);
|
|
93
102
|
}
|
|
94
103
|
|
|
@@ -106,8 +115,85 @@
|
|
|
106
115
|
&[selected][highlighted]:active:not([disabled]),
|
|
107
116
|
&[selected][highlighted]:has(:active):not([disabled]) {
|
|
108
117
|
background-color: var(--kd-color-background-menu-state-pressed);
|
|
118
|
+
|
|
109
119
|
.menu-item-inner-el {
|
|
110
120
|
color: var(--kd-color-text-level-light);
|
|
111
121
|
}
|
|
112
122
|
}
|
|
123
|
+
|
|
124
|
+
&.ai-connected-true {
|
|
125
|
+
background-color: var(--kd-color-background-menu-state-ai-default);
|
|
126
|
+
|
|
127
|
+
.menu-item-inner-el {
|
|
128
|
+
color: var(--kd-color-text-level-primary);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
&:hover:not([disabled]) {
|
|
132
|
+
background-color: var(--kd-color-background-menu-state-ai-hover);
|
|
133
|
+
|
|
134
|
+
.menu-item-inner-el {
|
|
135
|
+
color: var(--kd-color-text-level-light);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
&:is(:focus, :focus-within, :focus-visible):not([disabled]) {
|
|
140
|
+
background-color: var(--kd-color-background-menu-state-ai-open);
|
|
141
|
+
|
|
142
|
+
.menu-item-inner-el {
|
|
143
|
+
color: var(--kd-color-text-level-primary);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
&:active:not([disabled]) {
|
|
148
|
+
background-color: var(--kd-color-background-menu-state-ai-pressed);
|
|
149
|
+
|
|
150
|
+
.menu-item-inner-el {
|
|
151
|
+
color: var(--kd-color-text-level-light);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
&[selected]:not([disabled]),
|
|
156
|
+
&[highlighted]:not([disabled]) {
|
|
157
|
+
background-color: var(--kd-color-background-menu-state-ai-open);
|
|
158
|
+
|
|
159
|
+
&:hover,
|
|
160
|
+
&[highlighted] {
|
|
161
|
+
background-color: var(--kd-color-background-menu-state-ai-hover);
|
|
162
|
+
|
|
163
|
+
.menu-item-inner-el {
|
|
164
|
+
color: var(--kd-color-text-level-light);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
&[disabled] {
|
|
170
|
+
color: var(--kd-color-text-level-disabled);
|
|
171
|
+
|
|
172
|
+
.menu-item-inner-el {
|
|
173
|
+
color: var(--kd-color-text-level-disabled);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
&:hover {
|
|
177
|
+
cursor: not-allowed;
|
|
178
|
+
background-color: var(--kd-color-background-menu-state-ai-default);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
kyn-checkbox:hover {
|
|
182
|
+
cursor: not-allowed;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
&.destructive {
|
|
187
|
+
color: var(--kd-color-text-variant-destructive);
|
|
188
|
+
border-top: 1px solid var(--kd-color-border-level-tertiary);
|
|
189
|
+
|
|
190
|
+
&:hover:not([disabled]) {
|
|
191
|
+
background-color: var(--kd-color-status-error-light);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.menu-item-inner-el {
|
|
195
|
+
color: var(--kd-color-text-variant-destructive);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
113
199
|
}
|
|
@@ -43,19 +43,21 @@ export declare class LocalNav extends LitElement {
|
|
|
43
43
|
/** Queries top-level slotted links.
|
|
44
44
|
* @internal
|
|
45
45
|
*/
|
|
46
|
-
accessor _navLinks:
|
|
46
|
+
accessor _navLinks: HTMLElement[];
|
|
47
47
|
/** Queries top-level slotted dividers.
|
|
48
48
|
* @internal
|
|
49
49
|
*/
|
|
50
|
-
accessor _dividers:
|
|
50
|
+
accessor _dividers: HTMLElement[];
|
|
51
51
|
/** Timeout function to delay flyout open.
|
|
52
52
|
* @internal
|
|
53
53
|
*/
|
|
54
|
-
_enterTimer
|
|
54
|
+
private _enterTimer;
|
|
55
55
|
/** Timeout function to delay flyout close.
|
|
56
56
|
* @internal
|
|
57
57
|
*/
|
|
58
|
-
accessor _leaveTimer:
|
|
58
|
+
accessor _leaveTimer: number | null;
|
|
59
|
+
private _onDocumentClick;
|
|
60
|
+
private _onLinkActive;
|
|
59
61
|
render(): import("lit-html").TemplateResult<1>;
|
|
60
62
|
private _handleNavToggle;
|
|
61
63
|
private _handleMobileNavToggle;
|
|
@@ -64,7 +66,7 @@ export declare class LocalNav extends LitElement {
|
|
|
64
66
|
private _updateChildren;
|
|
65
67
|
private handleSlotChange;
|
|
66
68
|
private _handleLinkActive;
|
|
67
|
-
willUpdate(changedProps:
|
|
69
|
+
willUpdate(changedProps: Map<string | number | symbol, unknown>): void;
|
|
68
70
|
private _handleClickOut;
|
|
69
71
|
connectedCallback(): void;
|
|
70
72
|
disconnectedCallback(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localNav.d.ts","sourceRoot":"","sources":["../../../../src/components/global/localNav/localNav.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"localNav.d.ts","sourceRoot":"","sources":["../../../../src/components/global/localNav/localNav.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAUlD,OAAO,uBAAuB,CAAC;AAe/B;;;;;GAKG;AACH,qBACa,QAAS,SAAQ,UAAU;IACtC,OAAgB,MAAM,0BAA2B;IAEjD,8BAA8B;IAE9B,QAAQ,CAAC,MAAM,UAAS;IAExB,iCAAiC;IAEjC,QAAQ,CAAC,WAAW;;;;;;MAAuB;IAE3C;;OAEG;IAEH,QAAQ,CAAC,YAAY;;;;;;MAAuB;IAE5C;;OAEG;IAEH,QAAQ,CAAC,SAAS,UAAS;IAE3B;;OAEG;IAEH,QAAQ,CAAC,eAAe,UAAS;IAEjC;;OAEG;IAEH,QAAQ,CAAC,eAAe,EAAG,MAAM,CAAC;IAElC;;OAEG;IAEH,QAAQ,CAAC,SAAS,EAAG,WAAW,EAAE,CAAC;IAEnC;;OAEG;IAEH,QAAQ,CAAC,SAAS,EAAG,WAAW,EAAE,CAAC;IAEnC;;OAEG;IACH,OAAO,CAAC,WAAW,CAAuB;IAE1C;;OAEG;IAEH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE3C,OAAO,CAAC,gBAAgB,CAAyC;IACjE,OAAO,CAAC,aAAa,CACwC;IAEpD,MAAM;IAiDf,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,iBAAiB;IAIhB,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC;IAcxE,OAAO,CAAC,eAAe;IAMd,iBAAiB;IAMjB,oBAAoB;CAK9B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,eAAe,EAAE,QAAQ,CAAC;KAC3B;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as e,a as t,b as i,c as n,d as a}from"../../../vendor/tslib-Ac8XvvSX.js";import{e as s,o
|
|
1
|
+
import{_ as e,a as t,b as i,c as n,d as a}from"../../../vendor/tslib-Ac8XvvSX.js";import{e as s,o,x as d}from"../../../vendor/lit-html-BRBT5o_V.js";import{i as r,a as l,t as h,r as c,n as p,o as m}from"../../../vendor/@lit/reactive-element-f91Vet7N.js";import{i as v}from"../../../vendor/lit-element-m-OqzV5s.js";import{d as g}from"../../../vendor/deepmerge-ts-OFb5ej8y.js";import"../../reusable/button/button.js";import{f as u,p as k}from"../../../vendor/@kyndryl-design-system/shidoka-icons-bi0_OAYf.js";import"../../../common/helpers/helpers.js";import"../../reusable/button/defs.js";var x=r`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
box-sizing: border-box;
|
|
@@ -50,7 +50,7 @@ nav {
|
|
|
50
50
|
padding: 4px 8px;
|
|
51
51
|
left: 0;
|
|
52
52
|
width: 100%;
|
|
53
|
-
background: var(--kd-color-background-menu-state-default);
|
|
53
|
+
background-color: var(--kd-color-background-menu-state-default);
|
|
54
54
|
overflow: hidden;
|
|
55
55
|
font-family: var(--kd-font-family-secondary);
|
|
56
56
|
font-size: var(--kd-font-size-utility-2-sm);
|
|
@@ -72,7 +72,7 @@ nav {
|
|
|
72
72
|
box-shadow: none;
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
|
-
.nav--expanded-mobile
|
|
75
|
+
nav.nav--expanded-mobile {
|
|
76
76
|
height: 100%;
|
|
77
77
|
}
|
|
78
78
|
@media (min-width: 42rem) {
|
|
@@ -151,7 +151,7 @@ slot[name=search]::slotted(*) {
|
|
|
151
151
|
top: 100%;
|
|
152
152
|
left: 0;
|
|
153
153
|
width: 100%;
|
|
154
|
-
background: var(--kd-color-background-menu-state-default);
|
|
154
|
+
background-color: var(--kd-color-background-menu-state-default);
|
|
155
155
|
padding-top: 4px;
|
|
156
156
|
transition: height 250ms ease-out, visibility 250ms ease-out;
|
|
157
157
|
height: 0;
|
|
@@ -237,7 +237,7 @@ slot[name=search]::slotted(*) {
|
|
|
237
237
|
}
|
|
238
238
|
.pinned .pin-icon {
|
|
239
239
|
transform: rotate(180deg);
|
|
240
|
-
}`;const b={pin:"Pin",unpin:"Unpin",toggleMenu:"Toggle Menu",collapse:"Collapse",menu:"Menu"};let _=(()=>{var r,_,f,y,w,T,E,S
|
|
240
|
+
}`;const b={pin:"Pin",unpin:"Unpin",toggleMenu:"Toggle Menu",collapse:"Collapse",menu:"Menu"};let _=(()=>{var r,_,f,y,w,T,E,L,S;let z,M,C,j,$,W,P,A,N,O,D,U=[h("kyn-local-nav")],q=[],B=v,F=[],G=[],H=[],I=[],J=[],K=[],Q=[],R=[],V=[],X=[],Y=[],Z=[],ee=[],te=[],ie=[],ne=[],ae=[],se=[];return M=class extends B{constructor(){super(...arguments),r.set(this,i(this,F,!1)),_.set(this,(i(this,G),i(this,H,b))),f.set(this,(i(this,I),i(this,J,b))),y.set(this,(i(this,K),i(this,Q,!1))),w.set(this,(i(this,R),i(this,V,!1))),T.set(this,(i(this,X),i(this,Y,void 0))),E.set(this,(i(this,Z),i(this,ee,void 0))),L.set(this,(i(this,te),i(this,ie,void 0))),this._enterTimer=(i(this,ne),null),S.set(this,i(this,ae,null)),this._onDocumentClick=(i(this,se),e=>this._handleClickOut(e)),this._onLinkActive=e=>this._handleLinkActive(e)}get pinned(){return n(this,r,"f")}set pinned(e){a(this,r,e,"f")}get textStrings(){return n(this,_,"f")}set textStrings(e){a(this,_,e,"f")}get _textStrings(){return n(this,f,"f")}set _textStrings(e){a(this,f,e,"f")}get _expanded(){return n(this,y,"f")}set _expanded(e){a(this,y,e,"f")}get _mobileExpanded(){return n(this,w,"f")}set _mobileExpanded(e){a(this,w,e,"f")}get _activeLinkText(){return n(this,T,"f")}set _activeLinkText(e){a(this,T,e,"f")}get _navLinks(){return n(this,E,"f")}set _navLinks(e){a(this,E,e,"f")}get _dividers(){return n(this,L,"f")}set _dividers(e){a(this,L,e,"f")}get _leaveTimer(){return n(this,S,"f")}set _leaveTimer(e){a(this,S,e,"f")}render(){return d`
|
|
241
241
|
<nav
|
|
242
242
|
class=${s({"nav--expanded":this._expanded||this.pinned,"nav--expanded-mobile":this._mobileExpanded,pinned:this.pinned})}
|
|
243
243
|
@pointerleave=${e=>this.handlePointerLeave(e)}
|
|
@@ -250,7 +250,7 @@ slot[name=search]::slotted(*) {
|
|
|
250
250
|
@click=${this._handleMobileNavToggle}
|
|
251
251
|
>
|
|
252
252
|
${this._mobileExpanded?this._textStrings.collapse:this._activeLinkText||this._textStrings.menu}
|
|
253
|
-
${
|
|
253
|
+
${o(u)}
|
|
254
254
|
</button>
|
|
255
255
|
|
|
256
256
|
<div class="search">
|
|
@@ -268,11 +268,11 @@ slot[name=search]::slotted(*) {
|
|
|
268
268
|
description=${this.pinned?this._textStrings.unpin:this._textStrings.pin}
|
|
269
269
|
@on-click=${e=>this._handleNavToggle(e)}
|
|
270
270
|
>
|
|
271
|
-
<span class="pin-icon" slot="icon"> ${
|
|
271
|
+
<span class="pin-icon" slot="icon"> ${o(k)} </span>
|
|
272
272
|
</kyn-button>
|
|
273
273
|
</div>
|
|
274
274
|
</nav>
|
|
275
275
|
|
|
276
276
|
<div class="overlay ${this.pinned?"pinned":""}"></div>
|
|
277
|
-
`}_handleNavToggle(e){this.pinned=!this.pinned;const t=new CustomEvent("on-toggle",{detail:{pinned:this.pinned,origEvent:e}});this.dispatchEvent(t)}_handleMobileNavToggle(){this._mobileExpanded=!this._mobileExpanded}handlePointerEnter(e){"mouse"===e.pointerType&&(clearTimeout(this._leaveTimer),this._enterTimer=setTimeout((()=>{this._expanded=!0}),150))}handlePointerLeave(e){"mouse"===e.pointerType&&(clearTimeout(this._enterTimer),this._leaveTimer=setTimeout((()=>{this._expanded=!1}),150))}_updateChildren(){this._navLinks.forEach((e=>{e._navExpanded=this._expanded||this.pinned,e._navExpandedMobile=this._mobileExpanded})),this._dividers.forEach((e=>{e._navExpanded=this._expanded||this.pinned||this._mobileExpanded}))}handleSlotChange(){this._updateChildren(),this.requestUpdate()}_handleLinkActive(e){this._activeLinkText=e.detail.text}willUpdate(e){(e.has("_expanded")||e.has("pinned")||e.has("_mobileExpanded"))&&this._updateChildren(),e.has("textStrings")&&(this._textStrings=g(b,this.textStrings))}_handleClickOut(e){e.composedPath().includes(this)||(this._expanded=!1)}connectedCallback(){super.connectedCallback(),document.addEventListener("click",
|
|
277
|
+
`}_handleNavToggle(e){this.pinned=!this.pinned;const t=new CustomEvent("on-toggle",{detail:{pinned:this.pinned,origEvent:e}});this.dispatchEvent(t)}_handleMobileNavToggle(){this._mobileExpanded=!this._mobileExpanded}handlePointerEnter(e){"mouse"===e.pointerType&&(null!==this._leaveTimer&&clearTimeout(this._leaveTimer),this._enterTimer=window.setTimeout((()=>{this._expanded=!0}),150))}handlePointerLeave(e){"mouse"===e.pointerType&&(null!==this._enterTimer&&clearTimeout(this._enterTimer),this._leaveTimer=window.setTimeout((()=>{this._expanded=!1}),150))}_updateChildren(){var e,t;(null!==(e=this._navLinks)&&void 0!==e?e:[]).forEach((e=>{e._navExpanded=this._expanded||this.pinned,e._navExpandedMobile=this._mobileExpanded})),(null!==(t=this._dividers)&&void 0!==t?t:[]).forEach((e=>{e._navExpanded=this._expanded||this.pinned||this._mobileExpanded}))}handleSlotChange(){this._updateChildren(),this.requestUpdate()}_handleLinkActive(e){this._activeLinkText=e.detail.text}willUpdate(e){(e.has("_expanded")||e.has("pinned")||e.has("_mobileExpanded"))&&this._updateChildren(),e.has("textStrings")&&(this._textStrings=g(b,this.textStrings))}_handleClickOut(e){e.composedPath().includes(this)||(this._expanded=!1)}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this._onDocumentClick),this.addEventListener("on-link-active",this._onLinkActive)}disconnectedCallback(){document.removeEventListener("click",this._onDocumentClick),this.removeEventListener("on-link-active",this._onLinkActive),super.disconnectedCallback()}},r=new WeakMap,_=new WeakMap,f=new WeakMap,y=new WeakMap,w=new WeakMap,T=new WeakMap,E=new WeakMap,L=new WeakMap,S=new WeakMap,e(M,"LocalNav"),(()=>{var e;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(e=B[Symbol.metadata])&&void 0!==e?e:null):void 0;C=[p({type:Boolean})],j=[p({type:Object})],$=[l()],W=[l()],P=[l()],A=[l()],N=[m({selector:"kyn-local-nav-link"})],O=[m({selector:"kyn-local-nav-divider"})],D=[l()],t(M,null,C,{kind:"accessor",name:"pinned",static:!1,private:!1,access:{has:e=>"pinned"in e,get:e=>e.pinned,set:(e,t)=>{e.pinned=t}},metadata:i},F,G),t(M,null,j,{kind:"accessor",name:"textStrings",static:!1,private:!1,access:{has:e=>"textStrings"in e,get:e=>e.textStrings,set:(e,t)=>{e.textStrings=t}},metadata:i},H,I),t(M,null,$,{kind:"accessor",name:"_textStrings",static:!1,private:!1,access:{has:e=>"_textStrings"in e,get:e=>e._textStrings,set:(e,t)=>{e._textStrings=t}},metadata:i},J,K),t(M,null,W,{kind:"accessor",name:"_expanded",static:!1,private:!1,access:{has:e=>"_expanded"in e,get:e=>e._expanded,set:(e,t)=>{e._expanded=t}},metadata:i},Q,R),t(M,null,P,{kind:"accessor",name:"_mobileExpanded",static:!1,private:!1,access:{has:e=>"_mobileExpanded"in e,get:e=>e._mobileExpanded,set:(e,t)=>{e._mobileExpanded=t}},metadata:i},V,X),t(M,null,A,{kind:"accessor",name:"_activeLinkText",static:!1,private:!1,access:{has:e=>"_activeLinkText"in e,get:e=>e._activeLinkText,set:(e,t)=>{e._activeLinkText=t}},metadata:i},Y,Z),t(M,null,N,{kind:"accessor",name:"_navLinks",static:!1,private:!1,access:{has:e=>"_navLinks"in e,get:e=>e._navLinks,set:(e,t)=>{e._navLinks=t}},metadata:i},ee,te),t(M,null,O,{kind:"accessor",name:"_dividers",static:!1,private:!1,access:{has:e=>"_dividers"in e,get:e=>e._dividers,set:(e,t)=>{e._dividers=t}},metadata:i},ie,ne),t(M,null,D,{kind:"accessor",name:"_leaveTimer",static:!1,private:!1,access:{has:e=>"_leaveTimer"in e,get:e=>e._leaveTimer,set:(e,t)=>{e._leaveTimer=t}},metadata:i},ae,se),t(null,z={value:M},U,{kind:"class",name:M.name,metadata:i},null,q),M=z.value,i&&Object.defineProperty(M,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),M.styles=c(x),i(M,q),M})();export{_ as LocalNav};
|
|
278
278
|
//# sourceMappingURL=localNav.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localNav.js","sources":["../../../../src/components/global/localNav/localNav.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 { deepmerge } from 'deepmerge-ts';\nimport '../../reusable/button';\nimport LocalNavScss from './localNav.scss?inline';\n\nimport arrowIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-down.svg';\nimport pinIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/side-drawer-out.svg';\n\nconst _defaultTextStrings = {\n pin: 'Pin',\n unpin: 'Unpin',\n toggleMenu: 'Toggle Menu',\n collapse: 'Collapse',\n menu: 'Menu',\n};\n\n/**\n * The global Side Navigation component.\n * @slot unnamed - The default slot, for local nav links.\n * @slot search - Slot for a search input\n * @fires on-toggle - Captures the click event and emits the pinned state and original event details. `detail:{ pinned: boolean, origEvent: Event }`\n */\n@customElement('kyn-local-nav')\nexport class LocalNav extends LitElement {\n static override styles = unsafeCSS(LocalNavScss);\n\n /** Local nav pinned state. */\n @property({ type: Boolean })\n accessor pinned = false;\n\n /** Text string customization. */\n @property({ type: Object })\n accessor textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n accessor _textStrings = _defaultTextStrings;\n\n /** Local nav desktop expanded state.\n * @internal\n */\n @state()\n accessor _expanded = false;\n\n /** Local nav mobile expanded state.\n * @internal\n */\n @state()\n accessor _mobileExpanded = false;\n\n /** Active Link text.\n * @internal\n */\n @state()\n accessor _activeLinkText!: string;\n\n /** Queries top-level slotted links.\n * @internal\n */\n @queryAssignedElements({ selector: 'kyn-local-nav-link' })\n accessor _navLinks!: any;\n\n /** Queries top-level slotted dividers.\n * @internal\n */\n @queryAssignedElements({ selector: 'kyn-local-nav-divider' })\n accessor _dividers!: any;\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 override render() {\n return html`\n <nav\n class=${classMap({\n 'nav--expanded': this._expanded || this.pinned,\n 'nav--expanded-mobile': this._mobileExpanded,\n pinned: this.pinned,\n })}\n @pointerleave=${(e: PointerEvent) => this.handlePointerLeave(e)}\n @pointerenter=${(e: PointerEvent) => this.handlePointerEnter(e)}\n >\n <button\n class=\"mobile-toggle\"\n title=${this._textStrings.toggleMenu}\n aria-label=${this._textStrings.toggleMenu}\n @click=${this._handleMobileNavToggle}\n >\n ${this._mobileExpanded\n ? this._textStrings.collapse\n : this._activeLinkText || this._textStrings.menu}\n ${unsafeSVG(arrowIcon)}\n </button>\n\n <div class=\"search\">\n <slot name=\"search\"></slot>\n </div>\n\n <div class=\"links\">\n <slot @slotchange=${this.handleSlotChange}></slot>\n </div>\n\n <div class=\"toggle-container\">\n <kyn-button\n kind=\"ghost\"\n size=\"small\"\n description=${this.pinned\n ? this._textStrings.unpin\n : this._textStrings.pin}\n @on-click=${(e: Event) => this._handleNavToggle(e)}\n >\n <span class=\"pin-icon\" slot=\"icon\"> ${unsafeSVG(pinIcon)} </span>\n </kyn-button>\n </div>\n </nav>\n\n <div class=\"overlay ${this.pinned ? 'pinned' : ''}\"></div>\n `;\n }\n\n private _handleNavToggle(e: Event) {\n this.pinned = !this.pinned;\n\n const event = new CustomEvent('on-toggle', {\n detail: { pinned: this.pinned, origEvent: e },\n });\n this.dispatchEvent(event);\n }\n\n private _handleMobileNavToggle() {\n this._mobileExpanded = !this._mobileExpanded;\n }\n\n private handlePointerEnter(e: PointerEvent) {\n if (e.pointerType === 'mouse') {\n clearTimeout(this._leaveTimer);\n\n this._enterTimer = setTimeout(() => {\n this._expanded = true;\n }, 150);\n }\n }\n\n private handlePointerLeave(e: PointerEvent) {\n if (e.pointerType === 'mouse') {\n clearTimeout(this._enterTimer);\n\n this._leaveTimer = setTimeout(() => {\n this._expanded = false;\n }, 150);\n }\n }\n\n private _updateChildren() {\n this._navLinks.forEach((link: any) => {\n link._navExpanded = this._expanded || this.pinned;\n link._navExpandedMobile = this._mobileExpanded;\n });\n\n this._dividers.forEach((divider: any) => {\n divider._navExpanded =\n this._expanded || this.pinned || this._mobileExpanded;\n });\n }\n\n private handleSlotChange() {\n this._updateChildren();\n this.requestUpdate();\n }\n\n private _handleLinkActive(e: any) {\n this._activeLinkText = e.detail.text;\n }\n\n override willUpdate(changedProps: any) {\n if (\n changedProps.has('_expanded') ||\n changedProps.has('pinned') ||\n changedProps.has('_mobileExpanded')\n ) {\n this._updateChildren();\n }\n\n if (changedProps.has('textStrings')) {\n this._textStrings = deepmerge(_defaultTextStrings, this.textStrings);\n }\n }\n\n private _handleClickOut(e: Event) {\n if (!e.composedPath().includes(this)) {\n this._expanded = false;\n }\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n document.addEventListener('click', (e) => this._handleClickOut(e));\n this.addEventListener('on-link-active', (e) => this._handleLinkActive(e));\n }\n\n override disconnectedCallback() {\n document.removeEventListener('click', (e) => this._handleClickOut(e));\n this.removeEventListener('on-link-active', (e) =>\n this._handleLinkActive(e)\n );\n\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-local-nav': LocalNav;\n }\n}\n"],"names":["_defaultTextStrings","pin","unpin","toggleMenu","collapse","menu","LocalNav","customElement","LitElement","_classThis","_classSuper","pinned","__classPrivateFieldGet","this","_LocalNav_pinned_accessor_storage","value","__classPrivateFieldSet","textStrings","_LocalNav_textStrings_accessor_storage","_textStrings","_LocalNav__textStrings_accessor_storage","_expanded","_LocalNav__expanded_accessor_storage","_mobileExpanded","_LocalNav__mobileExpanded_accessor_storage","_activeLinkText","_LocalNav__activeLinkText_accessor_storage","_navLinks","_LocalNav__navLinks_accessor_storage","_dividers","_LocalNav__dividers_accessor_storage","_leaveTimer","_LocalNav__leaveTimer_accessor_storage","render","html","classMap","e","handlePointerLeave","handlePointerEnter","_handleMobileNavToggle","unsafeSVG","arrowIcon","handleSlotChange","_handleNavToggle","pinIcon","event","CustomEvent","detail","origEvent","dispatchEvent","pointerType","clearTimeout","_enterTimer","setTimeout","_updateChildren","forEach","link","_navExpanded","_navExpandedMobile","divider","requestUpdate","_handleLinkActive","text","willUpdate","changedProps","has","deepmerge","_handleClickOut","composedPath","includes","connectedCallback","super","document","addEventListener","disconnectedCallback","removeEventListener","set","__runInitializers","_pinned_initializers","_pinned_extraInitializers","_textStrings_initializers","_textStrings_extraInitializers","__textStrings_initializers","__textStrings_extraInitializers","__expanded_initializers","__expanded_extraInitializers","__mobileExpanded_initializers","__mobileExpanded_extraInitializers","__activeLinkText_initializers","__activeLinkText_extraInitializers","__navLinks_initializers","__navLinks_extraInitializers","__dividers_initializers","__dividers_extraInitializers","__leaveTimer_initializers","_pinned_decorators","property","type","Boolean","_textStrings_decorators","Object","__textStrings_decorators","state","__expanded_decorators","__mobileExpanded_decorators","__activeLinkText_decorators","__navLinks_decorators","queryAssignedElements","selector","__dividers_decorators","__leaveTimer_decorators","__esDecorate","kind","name","static","private","access","obj","get","metadata","_metadata","__leaveTimer_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","LocalNavScss"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"localNav.js","sources":["../../../../src/components/global/localNav/localNav.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 { deepmerge } from 'deepmerge-ts';\n\nimport '../../reusable/button';\n\nimport LocalNavScss from './localNav.scss?inline';\n\nimport arrowIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-down.svg';\nimport pinIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/side-drawer-out.svg';\n\nconst _defaultTextStrings = {\n pin: 'Pin',\n unpin: 'Unpin',\n toggleMenu: 'Toggle Menu',\n collapse: 'Collapse',\n menu: 'Menu',\n};\n\n/**\n * The global Side Navigation component.\n * @slot unnamed - The default slot, for local nav links.\n * @slot search - Slot for a search input\n * @fires on-toggle - Captures the click event and emits the pinned state and original event details. `detail:{ pinned: boolean, origEvent: Event }`\n */\n@customElement('kyn-local-nav')\nexport class LocalNav extends LitElement {\n static override styles = unsafeCSS(LocalNavScss);\n\n /** Local nav pinned state. */\n @property({ type: Boolean })\n accessor pinned = false;\n\n /** Text string customization. */\n @property({ type: Object })\n accessor textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n accessor _textStrings = _defaultTextStrings;\n\n /** Local nav desktop expanded state.\n * @internal\n */\n @state()\n accessor _expanded = false;\n\n /** Local nav mobile expanded state.\n * @internal\n */\n @state()\n accessor _mobileExpanded = false;\n\n /** Active Link text.\n * @internal\n */\n @state()\n accessor _activeLinkText!: string;\n\n /** Queries top-level slotted links.\n * @internal\n */\n @queryAssignedElements({ selector: 'kyn-local-nav-link' })\n accessor _navLinks!: HTMLElement[];\n\n /** Queries top-level slotted dividers.\n * @internal\n */\n @queryAssignedElements({ selector: 'kyn-local-nav-divider' })\n accessor _dividers!: HTMLElement[];\n\n /** Timeout function to delay flyout open.\n * @internal\n */\n private _enterTimer: number | null = null;\n\n /** Timeout function to delay flyout close.\n * @internal\n */\n @state()\n accessor _leaveTimer: number | null = null;\n\n private _onDocumentClick = (e: Event) => this._handleClickOut(e);\n private _onLinkActive = (e: Event) =>\n this._handleLinkActive(e as CustomEvent<{ text: string }>);\n\n override render() {\n return html`\n <nav\n class=${classMap({\n 'nav--expanded': this._expanded || this.pinned,\n 'nav--expanded-mobile': this._mobileExpanded,\n pinned: this.pinned,\n })}\n @pointerleave=${(e: PointerEvent) => this.handlePointerLeave(e)}\n @pointerenter=${(e: PointerEvent) => this.handlePointerEnter(e)}\n >\n <button\n class=\"mobile-toggle\"\n title=${this._textStrings.toggleMenu}\n aria-label=${this._textStrings.toggleMenu}\n @click=${this._handleMobileNavToggle}\n >\n ${this._mobileExpanded\n ? this._textStrings.collapse\n : this._activeLinkText || this._textStrings.menu}\n ${unsafeSVG(arrowIcon)}\n </button>\n\n <div class=\"search\">\n <slot name=\"search\"></slot>\n </div>\n\n <div class=\"links\">\n <slot @slotchange=${this.handleSlotChange}></slot>\n </div>\n\n <div class=\"toggle-container\">\n <kyn-button\n kind=\"ghost\"\n size=\"small\"\n description=${this.pinned\n ? this._textStrings.unpin\n : this._textStrings.pin}\n @on-click=${(e: Event) => this._handleNavToggle(e)}\n >\n <span class=\"pin-icon\" slot=\"icon\"> ${unsafeSVG(pinIcon)} </span>\n </kyn-button>\n </div>\n </nav>\n\n <div class=\"overlay ${this.pinned ? 'pinned' : ''}\"></div>\n `;\n }\n\n private _handleNavToggle(e: Event) {\n this.pinned = !this.pinned;\n\n const event = new CustomEvent('on-toggle', {\n detail: { pinned: this.pinned, origEvent: e },\n });\n this.dispatchEvent(event);\n }\n\n private _handleMobileNavToggle() {\n this._mobileExpanded = !this._mobileExpanded;\n }\n\n private handlePointerEnter(e: PointerEvent) {\n if (e.pointerType === 'mouse') {\n if (this._leaveTimer !== null) clearTimeout(this._leaveTimer);\n\n this._enterTimer = window.setTimeout(() => {\n this._expanded = true;\n }, 150);\n }\n }\n\n private handlePointerLeave(e: PointerEvent) {\n if (e.pointerType === 'mouse') {\n if (this._enterTimer !== null) clearTimeout(this._enterTimer);\n\n this._leaveTimer = window.setTimeout(() => {\n this._expanded = false;\n }, 150);\n }\n }\n\n private _updateChildren() {\n (this._navLinks ?? []).forEach((link: HTMLElement) => {\n (link as any)._navExpanded = this._expanded || this.pinned;\n (link as any)._navExpandedMobile = this._mobileExpanded;\n });\n\n (this._dividers ?? []).forEach((divider: HTMLElement) => {\n (divider as any)._navExpanded =\n this._expanded || this.pinned || this._mobileExpanded;\n });\n }\n\n private handleSlotChange() {\n this._updateChildren();\n this.requestUpdate();\n }\n\n private _handleLinkActive(e: CustomEvent<{ text: string }>) {\n this._activeLinkText = e.detail.text;\n }\n\n override willUpdate(changedProps: Map<string | number | symbol, unknown>) {\n if (\n changedProps.has('_expanded') ||\n changedProps.has('pinned') ||\n changedProps.has('_mobileExpanded')\n ) {\n this._updateChildren();\n }\n\n if (changedProps.has('textStrings')) {\n this._textStrings = deepmerge(_defaultTextStrings, this.textStrings);\n }\n }\n\n private _handleClickOut(e: Event) {\n if (!e.composedPath().includes(this)) {\n this._expanded = false;\n }\n }\n\n override connectedCallback() {\n super.connectedCallback();\n document.addEventListener('click', this._onDocumentClick);\n this.addEventListener('on-link-active', this._onLinkActive);\n }\n\n override disconnectedCallback() {\n document.removeEventListener('click', this._onDocumentClick);\n this.removeEventListener('on-link-active', this._onLinkActive);\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-local-nav': LocalNav;\n }\n}\n"],"names":["_defaultTextStrings","pin","unpin","toggleMenu","collapse","menu","LocalNav","customElement","LitElement","_classThis","_classSuper","_LocalNav_pinned_accessor_storage","set","this","__runInitializers","_pinned_initializers","_LocalNav_textStrings_accessor_storage","_pinned_extraInitializers","_textStrings_initializers","_LocalNav__textStrings_accessor_storage","_textStrings_extraInitializers","__textStrings_initializers","_LocalNav__expanded_accessor_storage","__textStrings_extraInitializers","__expanded_initializers","_LocalNav__mobileExpanded_accessor_storage","__expanded_extraInitializers","__mobileExpanded_initializers","_LocalNav__activeLinkText_accessor_storage","__mobileExpanded_extraInitializers","__activeLinkText_initializers","_LocalNav__navLinks_accessor_storage","__activeLinkText_extraInitializers","__navLinks_initializers","_LocalNav__dividers_accessor_storage","__navLinks_extraInitializers","__dividers_initializers","_enterTimer","__dividers_extraInitializers","_LocalNav__leaveTimer_accessor_storage","__leaveTimer_initializers","_onDocumentClick","__leaveTimer_extraInitializers","e","_handleClickOut","_onLinkActive","_handleLinkActive","pinned","__classPrivateFieldGet","value","__classPrivateFieldSet","textStrings","_textStrings","_expanded","_mobileExpanded","_activeLinkText","_navLinks","_dividers","_leaveTimer","render","html","classMap","handlePointerLeave","handlePointerEnter","_handleMobileNavToggle","unsafeSVG","arrowIcon","handleSlotChange","_handleNavToggle","pinIcon","event","CustomEvent","detail","origEvent","dispatchEvent","pointerType","clearTimeout","window","setTimeout","_updateChildren","_a","forEach","link","_navExpanded","_navExpandedMobile","_b","divider","requestUpdate","text","willUpdate","changedProps","has","deepmerge","composedPath","includes","connectedCallback","super","document","addEventListener","disconnectedCallback","removeEventListener","_pinned_decorators","property","type","Boolean","_textStrings_decorators","Object","__textStrings_decorators","state","__expanded_decorators","__mobileExpanded_decorators","__activeLinkText_decorators","__navLinks_decorators","queryAssignedElements","selector","__dividers_decorators","__leaveTimer_decorators","__esDecorate","kind","name","static","private","access","obj","get","metadata","_metadata","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","LocalNavScss"],"mappings":"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"}
|
|
@@ -40,20 +40,20 @@ export declare class LocalNavLink extends LitElement {
|
|
|
40
40
|
* Queries slotted links.
|
|
41
41
|
* @ignore
|
|
42
42
|
*/
|
|
43
|
-
accessor _navLinks: Array<
|
|
43
|
+
accessor _navLinks: Array<HTMLElement>;
|
|
44
44
|
/**
|
|
45
45
|
* Queries slotted dividers.
|
|
46
46
|
* @ignore
|
|
47
47
|
*/
|
|
48
|
-
accessor _dividers: Array<
|
|
48
|
+
accessor _dividers: Array<HTMLElement>;
|
|
49
49
|
/**
|
|
50
50
|
* Queries slotted icon.
|
|
51
51
|
* @ignore
|
|
52
52
|
*/
|
|
53
|
-
accessor _icon: Array<
|
|
53
|
+
accessor _icon: Array<HTMLElement>;
|
|
54
54
|
render(): import("lit-html").TemplateResult<1>;
|
|
55
|
-
willUpdate(changedProps:
|
|
56
|
-
updated(changedProps:
|
|
55
|
+
willUpdate(changedProps: Map<string | number | symbol, unknown>): void;
|
|
56
|
+
updated(changedProps: Map<string | number | symbol, unknown>): void;
|
|
57
57
|
private _handleTextSlotChange;
|
|
58
58
|
private _getSlotText;
|
|
59
59
|
private _handleLinksSlotChange;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localNavLink.d.ts","sourceRoot":"","sources":["../../../../src/components/global/localNav/localNavLink.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"localNavLink.d.ts","sourceRoot":"","sources":["../../../../src/components/global/localNav/localNavLink.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAmC,MAAM,KAAK,CAAC;AAalE;;;;;;GAMG;AACH,qBACa,YAAa,SAAQ,UAAU;IAC1C,OAAgB,MAAM,0BAA+B;IAErD,gBAAgB;IAEhB,QAAQ,CAAC,IAAI,SAAM;IAEnB,sBAAsB;IAEtB,QAAQ,CAAC,QAAQ,UAAS;IAE1B,oBAAoB;IAEpB,QAAQ,CAAC,MAAM,UAAS;IAExB,sBAAsB;IAEtB,QAAQ,CAAC,QAAQ,UAAS;IAE1B,qCAAqC;IAErC,QAAQ,CAAC,QAAQ,SAAU;IAE3B,yHAAyH;IAEzH,QAAQ,CAAC,WAAW,UAAS;IAE7B;;OAEG;IAEH,QAAQ,CAAC,MAAM,SAAK;IAEpB;;OAEG;IAEH,QAAQ,CAAC,YAAY,UAAS;IAE9B;;OAEG;IAEH,QAAQ,CAAC,kBAAkB,UAAS;IAEpC;;OAEG;IAEH,QAAQ,CAAC,KAAK,SAAM;IAEpB;;;OAGG;IAEH,QAAQ,CAAC,SAAS,EAAG,KAAK,CAAC,WAAW,CAAC,CAAC;IAExC;;;OAGG;IAEH,QAAQ,CAAC,SAAS,EAAG,KAAK,CAAC,WAAW,CAAC,CAAC;IAExC;;;OAGG;IAEH,QAAQ,CAAC,KAAK,EAAG,KAAK,CAAC,WAAW,CAAC,CAAC;IAE3B,MAAM;IAkDN,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC;IAM/D,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC;IAarE,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,WAAW;CAepB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,oBAAoB,EAAE,YAAY,CAAC;KACpC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as e,a as t,b as i,c as a,d as n}from"../../../vendor/tslib-Ac8XvvSX.js";import{e as s,o as d,x as o}from"../../../vendor/lit-html-BRBT5o_V.js";import{i as l,a as r,t as c,r as h,n as p,o as
|
|
1
|
+
import{_ as e,a as t,b as i,c as a,d as n}from"../../../vendor/tslib-Ac8XvvSX.js";import{e as s,o as d,x as o}from"../../../vendor/lit-html-BRBT5o_V.js";import{i as l,a as r,t as c,r as h,n as p,o as v}from"../../../vendor/@lit/reactive-element-f91Vet7N.js";import{i as m}from"../../../vendor/lit-element-m-OqzV5s.js";import{f as u,d as k}from"../../../vendor/@kyndryl-design-system/shidoka-icons-bi0_OAYf.js";var g=l`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
box-sizing: border-box;
|
|
@@ -94,7 +94,9 @@ a:active {
|
|
|
94
94
|
color: var(--kd-color-text-button-dark-primary);
|
|
95
95
|
}
|
|
96
96
|
.link-disabled a, .nav-expanded.link-active.link-disabled a {
|
|
97
|
-
color: var(--kd-color-text-
|
|
97
|
+
color: var(--kd-color-text-level-disabled);
|
|
98
|
+
pointer-events: none;
|
|
99
|
+
cursor: default;
|
|
98
100
|
}
|
|
99
101
|
|
|
100
102
|
.sub-menu {
|
|
@@ -110,7 +112,7 @@ a:active {
|
|
|
110
112
|
position: absolute;
|
|
111
113
|
bottom: 0;
|
|
112
114
|
width: 100%;
|
|
113
|
-
background: var(--kd-color-background-menu-state-default);
|
|
115
|
+
background-color: var(--kd-color-background-menu-state-default);
|
|
114
116
|
z-index: 1;
|
|
115
117
|
transition: transform 300ms ease-out, opacity 300ms ease-out, visibility 300ms ease-out;
|
|
116
118
|
transform: scaleX(0);
|
|
@@ -302,11 +304,6 @@ a:active {
|
|
|
302
304
|
line-height: var(--kd-line-height-utility-3-max);
|
|
303
305
|
}
|
|
304
306
|
}
|
|
305
|
-
@media (min-width: 42rem) {
|
|
306
|
-
.category {
|
|
307
|
-
display: none;
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
307
|
|
|
311
308
|
.text {
|
|
312
309
|
min-width: 120px;
|
|
@@ -352,12 +349,12 @@ a:active {
|
|
|
352
349
|
}
|
|
353
350
|
.expand-icon svg {
|
|
354
351
|
display: block;
|
|
355
|
-
}`;let x=(()=>{var l,x,f,b,y,_,w,E,z,M,L,S,W;let C,T,$,j,P,B,q,U,N,O,D,R,X,A,F,G=[c("kyn-local-nav-link")],H=[],I=
|
|
352
|
+
}`;let x=(()=>{var l,x,f,b,y,_,w,E,z,M,L,S,W;let C,T,$,j,P,B,q,U,N,O,D,R,X,A,F,G=[c("kyn-local-nav-link")],H=[],I=m,J=[],K=[],Q=[],V=[],Y=[],Z=[],ee=[],te=[],ie=[],ae=[],ne=[],se=[],de=[],oe=[],le=[],re=[],ce=[],he=[],pe=[],ve=[],me=[],ue=[],ke=[],ge=[],xe=[],fe=[];return T=class extends I{get href(){return a(this,l,"f")}set href(e){n(this,l,e,"f")}get expanded(){return a(this,x,"f")}set expanded(e){n(this,x,e,"f")}get active(){return a(this,f,"f")}set active(e){n(this,f,e,"f")}get disabled(){return a(this,b,"f")}set disabled(e){n(this,b,e,"f")}get backText(){return a(this,y,"f")}set backText(e){n(this,y,e,"f")}get leftPadding(){return a(this,_,"f")}set leftPadding(e){n(this,_,e,"f")}get _level(){return a(this,w,"f")}set _level(e){n(this,w,e,"f")}get _navExpanded(){return a(this,E,"f")}set _navExpanded(e){n(this,E,e,"f")}get _navExpandedMobile(){return a(this,z,"f")}set _navExpandedMobile(e){n(this,z,e,"f")}get _text(){return a(this,M,"f")}set _text(e){n(this,M,e,"f")}get _navLinks(){return a(this,L,"f")}set _navLinks(e){n(this,L,e,"f")}get _dividers(){return a(this,S,"f")}set _dividers(e){n(this,S,e,"f")}get _icon(){return a(this,W,"f")}set _icon(e){n(this,W,e,"f")}render(){const e={link:!0,"top-level":1===this._level,"sub-level":this._level>1,"nav-expanded":this._navExpanded||this._navExpandedMobile,"link-expanded":this.expanded,"link-active":this.active,"link-disabled":this.disabled,"has-links":this._navLinks.length,"has-icon":this._icon.length,"left-padding":this.leftPadding&&this._level>1};return o`
|
|
356
353
|
<div class=${s(e)}>
|
|
357
354
|
<a href=${this.href} @click=${e=>this.handleClick(e)}>
|
|
358
355
|
${this._navLinks.length?o`
|
|
359
356
|
<span class="menu-item-inner-el expand-icon">
|
|
360
|
-
${d(
|
|
357
|
+
${d(u)}
|
|
361
358
|
</span>
|
|
362
359
|
`:null}
|
|
363
360
|
|
|
@@ -373,14 +370,13 @@ a:active {
|
|
|
373
370
|
<div class="sub-menu">
|
|
374
371
|
${this._navLinks.length?o`
|
|
375
372
|
<button class="go-back" @click=${()=>this._handleBack()}>
|
|
376
|
-
${d(
|
|
373
|
+
${d(k)} ${this.backText}
|
|
377
374
|
</button>
|
|
378
375
|
`:null}
|
|
379
376
|
|
|
380
377
|
<div class="category">${this._text}</div>
|
|
381
|
-
|
|
382
378
|
<slot name="links" @slotchange=${this._handleLinksSlotChange}></slot>
|
|
383
379
|
</div>
|
|
384
380
|
</div>
|
|
385
|
-
`}willUpdate(e){e.has("_navExpanded")&&this.updateChildren()}updated(e){
|
|
381
|
+
`}willUpdate(e){e.has("_navExpanded")&&this.updateChildren()}updated(e){e.has("active")&&this.active&&(this._getSlotText(),this.dispatchEvent(new CustomEvent("on-link-active",{composed:!0,bubbles:!0,detail:{text:this._text}})))}_handleTextSlotChange(){this._getSlotText(),this.requestUpdate()}_getSlotText(){const e=this.shadowRoot.querySelector(".text slot");this._text=e.assignedNodes({flatten:!0}).map((e=>{var t,i;return null!==(i=null===(t=e.textContent)||void 0===t?void 0:t.trim())&&void 0!==i?i:""})).join(" ")}_handleLinksSlotChange(){this.updateChildren(),this.requestUpdate()}updateChildren(){var e,t;(null!==(e=this._navLinks)&&void 0!==e?e:[]).forEach((e=>{e._level=this._level+1,e._navExpanded=this._navExpanded||this._navExpandedMobile})),(null!==(t=this._dividers)&&void 0!==t?t:[]).forEach((e=>{e._navExpanded=this._navExpanded||this._navExpandedMobile}))}_handleBack(){this.expanded=!1}handleClick(e){const t=this.disabled||this._navLinks.length>0;this._navLinks.length&&(this.expanded=!this.expanded),t&&e.preventDefault(),this.requestUpdate(),this.dispatchEvent(new CustomEvent("on-click",{detail:{origEvent:e,level:this._level,defaultPrevented:t}}))}constructor(){super(...arguments),l.set(this,i(this,J,"")),x.set(this,(i(this,K),i(this,Q,!1))),f.set(this,(i(this,V),i(this,Y,!1))),b.set(this,(i(this,Z),i(this,ee,!1))),y.set(this,(i(this,te),i(this,ie,"Back"))),_.set(this,(i(this,ae),i(this,ne,!1))),w.set(this,(i(this,se),i(this,de,1))),E.set(this,(i(this,oe),i(this,le,!1))),z.set(this,(i(this,re),i(this,ce,!1))),M.set(this,(i(this,he),i(this,pe,""))),L.set(this,(i(this,ve),i(this,me,void 0))),S.set(this,(i(this,ue),i(this,ke,void 0))),W.set(this,(i(this,ge),i(this,xe,void 0))),i(this,fe)}},l=new WeakMap,x=new WeakMap,f=new WeakMap,b=new WeakMap,y=new WeakMap,_=new WeakMap,w=new WeakMap,E=new WeakMap,z=new WeakMap,M=new WeakMap,L=new WeakMap,S=new WeakMap,W=new WeakMap,e(T,"LocalNavLink"),(()=>{var e;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(e=I[Symbol.metadata])&&void 0!==e?e:null):void 0;$=[p({type:String})],j=[p({type:Boolean})],P=[p({type:Boolean,reflect:!0})],B=[p({type:Boolean})],q=[p({type:String})],U=[p({type:Boolean})],N=[r()],O=[r()],D=[r()],R=[r()],X=[v({slot:"links",selector:"kyn-local-nav-link"})],A=[v({slot:"links",selector:"kyn-local-nav-divider"})],F=[v({slot:"icon"})],t(T,null,$,{kind:"accessor",name:"href",static:!1,private:!1,access:{has:e=>"href"in e,get:e=>e.href,set:(e,t)=>{e.href=t}},metadata:i},J,K),t(T,null,j,{kind:"accessor",name:"expanded",static:!1,private:!1,access:{has:e=>"expanded"in e,get:e=>e.expanded,set:(e,t)=>{e.expanded=t}},metadata:i},Q,V),t(T,null,P,{kind:"accessor",name:"active",static:!1,private:!1,access:{has:e=>"active"in e,get:e=>e.active,set:(e,t)=>{e.active=t}},metadata:i},Y,Z),t(T,null,B,{kind:"accessor",name:"disabled",static:!1,private:!1,access:{has:e=>"disabled"in e,get:e=>e.disabled,set:(e,t)=>{e.disabled=t}},metadata:i},ee,te),t(T,null,q,{kind:"accessor",name:"backText",static:!1,private:!1,access:{has:e=>"backText"in e,get:e=>e.backText,set:(e,t)=>{e.backText=t}},metadata:i},ie,ae),t(T,null,U,{kind:"accessor",name:"leftPadding",static:!1,private:!1,access:{has:e=>"leftPadding"in e,get:e=>e.leftPadding,set:(e,t)=>{e.leftPadding=t}},metadata:i},ne,se),t(T,null,N,{kind:"accessor",name:"_level",static:!1,private:!1,access:{has:e=>"_level"in e,get:e=>e._level,set:(e,t)=>{e._level=t}},metadata:i},de,oe),t(T,null,O,{kind:"accessor",name:"_navExpanded",static:!1,private:!1,access:{has:e=>"_navExpanded"in e,get:e=>e._navExpanded,set:(e,t)=>{e._navExpanded=t}},metadata:i},le,re),t(T,null,D,{kind:"accessor",name:"_navExpandedMobile",static:!1,private:!1,access:{has:e=>"_navExpandedMobile"in e,get:e=>e._navExpandedMobile,set:(e,t)=>{e._navExpandedMobile=t}},metadata:i},ce,he),t(T,null,R,{kind:"accessor",name:"_text",static:!1,private:!1,access:{has:e=>"_text"in e,get:e=>e._text,set:(e,t)=>{e._text=t}},metadata:i},pe,ve),t(T,null,X,{kind:"accessor",name:"_navLinks",static:!1,private:!1,access:{has:e=>"_navLinks"in e,get:e=>e._navLinks,set:(e,t)=>{e._navLinks=t}},metadata:i},me,ue),t(T,null,A,{kind:"accessor",name:"_dividers",static:!1,private:!1,access:{has:e=>"_dividers"in e,get:e=>e._dividers,set:(e,t)=>{e._dividers=t}},metadata:i},ke,ge),t(T,null,F,{kind:"accessor",name:"_icon",static:!1,private:!1,access:{has:e=>"_icon"in e,get:e=>e._icon,set:(e,t)=>{e._icon=t}},metadata:i},xe,fe),t(null,C={value:T},G,{kind:"class",name:T.name,metadata:i},null,H),T=C.value,i&&Object.defineProperty(T,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),T.styles=h(g),i(T,H),T})();export{x as LocalNavLink};
|
|
386
382
|
//# sourceMappingURL=localNavLink.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localNavLink.js","sources":["../../../../src/components/global/localNav/localNavLink.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 LocalNavLinkScss from './localNavLink.scss?inline';\n\nimport backIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/arrow-left.svg';\nimport chevronIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-down.svg';\n\n/**\n * Link component for use in the global Side Navigation component.\n * @fires on-click - Captures the click event and emits the original event, level, and if default was prevented. `detail:{ origEvent: ClickEvent, level: number, defaultPrevented: boolean }`\n * @slot unnamed - The default slot, for the link text.\n * @slot icon - Slot for an icon. Use 16px size. Required for level 1.\n * @slot links - Slot for the next level of links, supports three levels.\n */\n@customElement('kyn-local-nav-link')\nexport class LocalNavLink extends LitElement {\n static override styles = unsafeCSS(LocalNavLinkScss);\n\n /** Link url. */\n @property({ type: String })\n accessor href = '';\n\n /** Expanded state. */\n @property({ type: Boolean })\n accessor expanded = false;\n\n /** Active state. */\n @property({ type: Boolean, reflect: true })\n accessor active = false;\n\n /** Disabled state. */\n @property({ type: Boolean })\n accessor disabled = 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. Does not apply to level 1. */\n @property({ type: Boolean })\n accessor leftPadding = false;\n\n /** Link level, supports three levels.\n * @ignore\n */\n @state()\n accessor _level = 1;\n\n /** The local nav desktop expanded state.\n * @internal\n */\n @state()\n accessor _navExpanded = false;\n\n /** The local nav mobile expanded state.\n * @internal\n */\n @state()\n accessor _navExpandedMobile = false;\n\n /** The slotted text.\n * @internal\n */\n @state()\n accessor _text = '';\n\n /**\n * Queries slotted links.\n * @ignore\n */\n @queryAssignedElements({ slot: 'links', selector: 'kyn-local-nav-link' })\n accessor _navLinks!: Array<any>;\n\n /**\n * Queries slotted dividers.\n * @ignore\n */\n @queryAssignedElements({ slot: 'links', selector: 'kyn-local-nav-divider' })\n accessor _dividers!: Array<any>;\n\n /**\n * Queries slotted icon.\n * @ignore\n */\n @queryAssignedElements({ slot: 'icon' })\n accessor _icon!: Array<any>;\n\n override render() {\n const classes = {\n link: true,\n 'top-level': this._level === 1,\n 'sub-level': this._level > 1,\n 'nav-expanded': this._navExpanded || this._navExpandedMobile,\n 'link-expanded': this.expanded,\n 'link-active': this.active,\n 'link-disabled': this.disabled,\n 'has-links': this._navLinks.length,\n 'has-icon': this._icon.length,\n 'left-padding': this.leftPadding && this._level > 1,\n };\n\n return html`\n <div class=${classMap(classes)}>\n <a href=${this.href} @click=${(e: Event) => this.handleClick(e)}>\n ${this._navLinks.length\n ? html`\n <span class=\"menu-item-inner-el expand-icon\">\n ${unsafeSVG(chevronIcon)}\n </span>\n `\n : null}\n\n <div class=\"menu-item-inner-el icon\">\n <slot name=\"icon\"></slot>\n </div>\n\n <span class=\"menu-item-inner-el text\">\n <slot @slotchange=${this._handleTextSlotChange}></slot>\n </span>\n </a>\n\n <div class=\"sub-menu\">\n ${this._navLinks.length\n ? html`\n <button class=\"go-back\" @click=${() => this._handleBack()}>\n ${unsafeSVG(backIcon)} ${this.backText}\n </button>\n `\n : null}\n\n <div class=\"category\">${this._text}</div>\n\n <slot name=\"links\" @slotchange=${this._handleLinksSlotChange}></slot>\n </div>\n </div>\n `;\n }\n\n override willUpdate(changedProps: any) {\n if (changedProps.has('_navExpanded')) {\n this.updateChildren();\n }\n }\n\n override updated(changedProps: any) {\n if (changedProps.has('active') && this.active) {\n this._getSlotText();\n\n const event = new CustomEvent('on-link-active', {\n composed: true,\n bubbles: true,\n detail: {\n text: this._text,\n },\n });\n this.dispatchEvent(event);\n }\n }\n\n private _handleTextSlotChange() {\n this._getSlotText();\n this.requestUpdate();\n }\n\n private _getSlotText() {\n const Slot: any = this.shadowRoot?.querySelector('.text slot');\n let text = '';\n\n const nodes = Slot.assignedNodes({\n flatten: true,\n });\n\n for (let i = 0; i < nodes.length; i++) {\n text += nodes[i].textContent.trim();\n }\n\n this._text = text;\n }\n\n private _handleLinksSlotChange() {\n this.updateChildren();\n this.requestUpdate();\n }\n\n private updateChildren() {\n this._navLinks.forEach((link: any) => {\n link._level = this._level + 1;\n link._navExpanded = this._navExpanded || this._navExpandedMobile;\n });\n\n this._dividers.forEach((divider: any) => {\n divider._navExpanded = this._navExpanded || this._navExpandedMobile;\n });\n }\n\n private _handleBack() {\n this.expanded = false;\n }\n\n private handleClick(e: Event) {\n let preventDefault = false;\n\n if (this.disabled) {\n preventDefault = true;\n }\n\n if (this._navLinks.length) {\n preventDefault = true;\n this.expanded = !this.expanded;\n }\n\n if (preventDefault) {\n e.preventDefault();\n }\n\n this.requestUpdate();\n\n const event = new CustomEvent('on-click', {\n detail: {\n origEvent: e,\n level: this._level,\n defaultPrevented: preventDefault,\n },\n });\n this.dispatchEvent(event);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-local-nav-link': LocalNavLink;\n }\n}\n"],"names":["LocalNavLink","customElement","LitElement","_classThis","_classSuper","href","__classPrivateFieldGet","this","_LocalNavLink_href_accessor_storage","value","__classPrivateFieldSet","expanded","_LocalNavLink_expanded_accessor_storage","active","_LocalNavLink_active_accessor_storage","disabled","_LocalNavLink_disabled_accessor_storage","backText","_LocalNavLink_backText_accessor_storage","leftPadding","_LocalNavLink_leftPadding_accessor_storage","_level","_LocalNavLink__level_accessor_storage","_navExpanded","_LocalNavLink__navExpanded_accessor_storage","_navExpandedMobile","_LocalNavLink__navExpandedMobile_accessor_storage","_text","_LocalNavLink__text_accessor_storage","_navLinks","_LocalNavLink__navLinks_accessor_storage","_dividers","_LocalNavLink__dividers_accessor_storage","_icon","_LocalNavLink__icon_accessor_storage","render","classes","link","length","html","classMap","e","handleClick","unsafeSVG","chevronIcon","_handleTextSlotChange","_handleBack","backIcon","_handleLinksSlotChange","willUpdate","changedProps","has","updateChildren","updated","_getSlotText","event","CustomEvent","composed","bubbles","detail","text","dispatchEvent","requestUpdate","nodes","_a","shadowRoot","querySelector","assignedNodes","flatten","i","textContent","trim","forEach","divider","preventDefault","origEvent","level","defaultPrevented","set","__runInitializers","_href_initializers","_href_extraInitializers","_expanded_initializers","_expanded_extraInitializers","_active_initializers","_active_extraInitializers","_disabled_initializers","_disabled_extraInitializers","_backText_initializers","_backText_extraInitializers","_leftPadding_initializers","_leftPadding_extraInitializers","__level_initializers","__level_extraInitializers","__navExpanded_initializers","__navExpanded_extraInitializers","__navExpandedMobile_initializers","__navExpandedMobile_extraInitializers","__text_initializers","__text_extraInitializers","__navLinks_initializers","__navLinks_extraInitializers","__dividers_initializers","__dividers_extraInitializers","__icon_initializers","_href_decorators","property","type","String","_expanded_decorators","Boolean","reflect","_disabled_decorators","_backText_decorators","_leftPadding_decorators","__level_decorators","state","__navExpanded_decorators","__navExpandedMobile_decorators","__text_decorators","queryAssignedElements","slot","selector","__icon_decorators","__esDecorate","kind","name","static","private","access","obj","get","metadata","_metadata","_active_decorators","__navLinks_decorators","__dividers_decorators","__icon_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","LocalNavLinkScss"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"localNavLink.js","sources":["../../../../src/components/global/localNav/localNavLink.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, PropertyValues, 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 LocalNavLinkScss from './localNavLink.scss?inline';\n\nimport backIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/arrow-left.svg';\nimport chevronIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-down.svg';\n\n/**\n * Link component for use in the global Side Navigation component.\n * @fires on-click - Captures the click event and emits the original event, level, and if default was prevented. `detail:{ origEvent: ClickEvent, level: number, defaultPrevented: boolean }`\n * @slot unnamed - The default slot, for the link text.\n * @slot icon - Slot for an icon. Use 16px size. Required for level 1.\n * @slot links - Slot for the next level of links, supports three levels.\n */\n@customElement('kyn-local-nav-link')\nexport class LocalNavLink extends LitElement {\n static override styles = unsafeCSS(LocalNavLinkScss);\n\n /** Link url. */\n @property({ type: String })\n accessor href = '';\n\n /** Expanded state. */\n @property({ type: Boolean })\n accessor expanded = false;\n\n /** Active state. */\n @property({ type: Boolean, reflect: true })\n accessor active = false;\n\n /** Disabled state. */\n @property({ type: Boolean })\n accessor disabled = 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. Does not apply to level 1. */\n @property({ type: Boolean })\n accessor leftPadding = false;\n\n /** Link level, supports three levels.\n * @ignore\n */\n @state()\n accessor _level = 1;\n\n /** The local nav desktop expanded state.\n * @internal\n */\n @state()\n accessor _navExpanded = false;\n\n /** The local nav mobile expanded state.\n * @internal\n */\n @state()\n accessor _navExpandedMobile = false;\n\n /** The slotted text.\n * @internal\n */\n @state()\n accessor _text = '';\n\n /**\n * Queries slotted links.\n * @ignore\n */\n @queryAssignedElements({ slot: 'links', selector: 'kyn-local-nav-link' })\n accessor _navLinks!: Array<HTMLElement>;\n\n /**\n * Queries slotted dividers.\n * @ignore\n */\n @queryAssignedElements({ slot: 'links', selector: 'kyn-local-nav-divider' })\n accessor _dividers!: Array<HTMLElement>;\n\n /**\n * Queries slotted icon.\n * @ignore\n */\n @queryAssignedElements({ slot: 'icon' })\n accessor _icon!: Array<HTMLElement>;\n\n override render() {\n const classes = {\n link: true,\n 'top-level': this._level === 1,\n 'sub-level': this._level > 1,\n 'nav-expanded': this._navExpanded || this._navExpandedMobile,\n 'link-expanded': this.expanded,\n 'link-active': this.active,\n 'link-disabled': this.disabled,\n 'has-links': this._navLinks.length,\n 'has-icon': this._icon.length,\n 'left-padding': this.leftPadding && this._level > 1,\n };\n\n return html`\n <div class=${classMap(classes)}>\n <a href=${this.href} @click=${(e: Event) => this.handleClick(e)}>\n ${this._navLinks.length\n ? html`\n <span class=\"menu-item-inner-el expand-icon\">\n ${unsafeSVG(chevronIcon)}\n </span>\n `\n : null}\n\n <div class=\"menu-item-inner-el icon\">\n <slot name=\"icon\"></slot>\n </div>\n\n <span class=\"menu-item-inner-el text\">\n <slot @slotchange=${this._handleTextSlotChange}></slot>\n </span>\n </a>\n\n <div class=\"sub-menu\">\n ${this._navLinks.length\n ? html`\n <button class=\"go-back\" @click=${() => this._handleBack()}>\n ${unsafeSVG(backIcon)} ${this.backText}\n </button>\n `\n : null}\n\n <div class=\"category\">${this._text}</div>\n <slot name=\"links\" @slotchange=${this._handleLinksSlotChange}></slot>\n </div>\n </div>\n `;\n }\n\n override willUpdate(changedProps: Map<string | number | symbol, unknown>) {\n if (changedProps.has('_navExpanded')) {\n this.updateChildren();\n }\n }\n\n override updated(changedProps: Map<string | number | symbol, unknown>) {\n if (changedProps.has('active') && this.active) {\n this._getSlotText();\n this.dispatchEvent(\n new CustomEvent('on-link-active', {\n composed: true,\n bubbles: true,\n detail: { text: this._text },\n })\n );\n }\n }\n\n private _handleTextSlotChange() {\n this._getSlotText();\n this.requestUpdate();\n }\n\n private _getSlotText() {\n const slotEl = this.shadowRoot!.querySelector(\n '.text slot'\n ) as HTMLSlotElement;\n this._text = slotEl\n .assignedNodes({ flatten: true })\n .map((n) => n.textContent?.trim() ?? '')\n .join(' ');\n }\n\n private _handleLinksSlotChange() {\n this.updateChildren();\n this.requestUpdate();\n }\n\n private updateChildren() {\n (this._navLinks ?? []).forEach((link: HTMLElement) => {\n (link as any)._level = this._level + 1;\n (link as any)._navExpanded = this._navExpanded || this._navExpandedMobile;\n });\n (this._dividers ?? []).forEach((div: HTMLElement) => {\n (div as any)._navExpanded = this._navExpanded || this._navExpandedMobile;\n });\n }\n\n private _handleBack() {\n this.expanded = false;\n }\n\n private handleClick(e: Event) {\n const preventDefault = this.disabled || this._navLinks.length > 0;\n if (this._navLinks.length) this.expanded = !this.expanded;\n if (preventDefault) e.preventDefault();\n this.requestUpdate();\n this.dispatchEvent(\n new CustomEvent('on-click', {\n detail: {\n origEvent: e,\n level: this._level,\n defaultPrevented: preventDefault,\n },\n })\n );\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-local-nav-link': LocalNavLink;\n }\n}\n"],"names":["LocalNavLink","customElement","LitElement","_classThis","_classSuper","href","__classPrivateFieldGet","this","_LocalNavLink_href_accessor_storage","value","__classPrivateFieldSet","expanded","_LocalNavLink_expanded_accessor_storage","active","_LocalNavLink_active_accessor_storage","disabled","_LocalNavLink_disabled_accessor_storage","backText","_LocalNavLink_backText_accessor_storage","leftPadding","_LocalNavLink_leftPadding_accessor_storage","_level","_LocalNavLink__level_accessor_storage","_navExpanded","_LocalNavLink__navExpanded_accessor_storage","_navExpandedMobile","_LocalNavLink__navExpandedMobile_accessor_storage","_text","_LocalNavLink__text_accessor_storage","_navLinks","_LocalNavLink__navLinks_accessor_storage","_dividers","_LocalNavLink__dividers_accessor_storage","_icon","_LocalNavLink__icon_accessor_storage","render","classes","link","length","html","classMap","e","handleClick","unsafeSVG","chevronIcon","_handleTextSlotChange","_handleBack","backIcon","_handleLinksSlotChange","willUpdate","changedProps","has","updateChildren","updated","_getSlotText","dispatchEvent","CustomEvent","composed","bubbles","detail","text","requestUpdate","slotEl","shadowRoot","querySelector","assignedNodes","flatten","map","n","_a","_b","textContent","trim","join","forEach","div","preventDefault","origEvent","level","defaultPrevented","set","__runInitializers","_href_initializers","_href_extraInitializers","_expanded_initializers","_expanded_extraInitializers","_active_initializers","_active_extraInitializers","_disabled_initializers","_disabled_extraInitializers","_backText_initializers","_backText_extraInitializers","_leftPadding_initializers","_leftPadding_extraInitializers","__level_initializers","__level_extraInitializers","__navExpanded_initializers","__navExpanded_extraInitializers","__navExpandedMobile_initializers","__navExpandedMobile_extraInitializers","__text_initializers","__text_extraInitializers","__navLinks_initializers","__navLinks_extraInitializers","__dividers_initializers","__dividers_extraInitializers","__icon_initializers","_href_decorators","property","type","String","_expanded_decorators","Boolean","reflect","_disabled_decorators","_backText_decorators","_leftPadding_decorators","__level_decorators","state","__navExpanded_decorators","__navExpandedMobile_decorators","__text_decorators","queryAssignedElements","slot","selector","__icon_decorators","__esDecorate","kind","name","static","private","access","obj","get","metadata","_metadata","_active_decorators","__navLinks_decorators","__dividers_decorators","__icon_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","LocalNavLinkScss"],"mappings":"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"}
|