@kyndryl-design-system/shidoka-applications 2.58.2 → 2.58.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/scss/menu-item.scss +4 -0
- package/components/reusable/dropdown/dropdown.js +7 -7
- 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 +21 -10
- package/components/reusable/dropdown/dropdownOption.js.map +1 -1
- package/components/reusable/dropdown/enhancedDropdownOption.js +3 -0
- package/components/reusable/dropdown/enhancedDropdownOption.js.map +1 -1
- package/components/reusable/overflowMenu/overflowMenuItem.js +3 -0
- package/components/reusable/overflowMenu/overflowMenuItem.js.map +1 -1
- package/components/reusable/pagination/pagination-navigation-buttons.d.ts.map +1 -1
- package/components/reusable/pagination/pagination-navigation-buttons.js +4 -3
- package/components/reusable/pagination/pagination-navigation-buttons.js.map +1 -1
- package/components/reusable/pagination/pagination-page-size-dropdown.d.ts.map +1 -1
- package/components/reusable/pagination/pagination-page-size-dropdown.js +1 -0
- package/components/reusable/pagination/pagination-page-size-dropdown.js.map +1 -1
- package/package.json +1 -1
|
@@ -502,6 +502,10 @@ textarea:not([disabled])[invalid] {
|
|
|
502
502
|
display: inline-block;
|
|
503
503
|
}
|
|
504
504
|
|
|
505
|
+
:host(.pagination-dropdown) .select {
|
|
506
|
+
border: 1px solid transparent;
|
|
507
|
+
}
|
|
508
|
+
|
|
505
509
|
.wrapper {
|
|
506
510
|
position: relative;
|
|
507
511
|
}
|
|
@@ -561,15 +565,11 @@ slot[name=icon]::slotted(*) {
|
|
|
561
565
|
|
|
562
566
|
/* Default focus */
|
|
563
567
|
.select:focus-within {
|
|
564
|
-
outline:
|
|
568
|
+
outline: 2px solid var(--kd-color-border-variants-focus);
|
|
565
569
|
outline-offset: 0;
|
|
566
|
-
border-color: var(--kd-color-border-variants-focus);
|
|
567
570
|
}
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
outline: 1px solid var(--kd-color-border-variants-focus);
|
|
571
|
-
outline-offset: 0;
|
|
572
|
-
border-color: var(--kd-color-border-variants-focus);
|
|
571
|
+
.select:focus-within:hover {
|
|
572
|
+
border-color: transparent;
|
|
573
573
|
}
|
|
574
574
|
|
|
575
575
|
.arrow-icon {
|
|
@@ -42,6 +42,10 @@ export declare class DropdownOption extends LitElement {
|
|
|
42
42
|
* @ignore
|
|
43
43
|
*/
|
|
44
44
|
accessor kind: 'ai' | 'default';
|
|
45
|
+
/** slotted icon added state.
|
|
46
|
+
* @ignore
|
|
47
|
+
*/
|
|
48
|
+
accessor hasIcon: boolean;
|
|
45
49
|
accessor role: string;
|
|
46
50
|
accessor ariaSelected: string;
|
|
47
51
|
render(): import("lit-html").TemplateResult<1>;
|
|
@@ -51,6 +55,7 @@ export declare class DropdownOption extends LitElement {
|
|
|
51
55
|
private handleSlotChange;
|
|
52
56
|
private handleClick;
|
|
53
57
|
private handleBlur;
|
|
58
|
+
private handleIconSlotChange;
|
|
54
59
|
}
|
|
55
60
|
declare global {
|
|
56
61
|
interface HTMLElementTagNameMap {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdownOption.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/dropdown/dropdownOption.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAIlD,OAAO,aAAa,CAAC;AACrB,OAAO,WAAW,CAAC;AAOnB;;;;;;GAMG;AACH,qBACa,cAAe,SAAQ,UAAU;IAC5C,OAAgB,MAAM,0BAAiC;IAEvD,oBAAoB;IAEpB,QAAQ,CAAC,KAAK,SAAM;IAEpB;;OAEG;IAEH,QAAQ,CAAC,QAAQ,UAAS;IAE1B,6BAA6B;IAE7B,QAAQ,CAAC,QAAQ,UAAS;IAE1B,mDAAmD;IAEnD,QAAQ,CAAC,cAAc,UAAS;IAEhC;;;OAGG;IAEH,QAAQ,CAAC,WAAW,UAAS;IAE7B;;OAEG;IAEH,QAAQ,CAAC,QAAQ,UAAS;IAE1B,wBAAwB;IAExB,QAAQ,CAAC,SAAS,UAAS;IAE3B;;;OAGG;IAEH,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAM;IAExB,oEAAoE;IAEpE,QAAQ,CAAC,aAAa,UAAS;IAE/B;;OAEG;IAEH,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAAa;IAE5C,SACkB,IAAI,SAAY;IAElC,SACkB,YAAY,SAAY;IAEjC,MAAM;
|
|
1
|
+
{"version":3,"file":"dropdownOption.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/dropdown/dropdownOption.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAIlD,OAAO,aAAa,CAAC;AACrB,OAAO,WAAW,CAAC;AAOnB;;;;;;GAMG;AACH,qBACa,cAAe,SAAQ,UAAU;IAC5C,OAAgB,MAAM,0BAAiC;IAEvD,oBAAoB;IAEpB,QAAQ,CAAC,KAAK,SAAM;IAEpB;;OAEG;IAEH,QAAQ,CAAC,QAAQ,UAAS;IAE1B,6BAA6B;IAE7B,QAAQ,CAAC,QAAQ,UAAS;IAE1B,mDAAmD;IAEnD,QAAQ,CAAC,cAAc,UAAS;IAEhC;;;OAGG;IAEH,QAAQ,CAAC,WAAW,UAAS;IAE7B;;OAEG;IAEH,QAAQ,CAAC,QAAQ,UAAS;IAE1B,wBAAwB;IAExB,QAAQ,CAAC,SAAS,UAAS;IAE3B;;;OAGG;IAEH,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAM;IAExB,oEAAoE;IAEpE,QAAQ,CAAC,aAAa,UAAS;IAE/B;;OAEG;IAEH,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAAa;IAE5C;;OAEG;IAEH,QAAQ,CAAC,OAAO,UAAS;IAEzB,SACkB,IAAI,SAAY;IAElC,SACkB,YAAY,SAAY;IAEjC,MAAM;IAsFN,YAAY;IAWZ,UAAU,CAAC,YAAY,EAAE,GAAG;IAMrC,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,WAAW;IA0BnB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,oBAAoB;CAI7B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,qBAAqB,EAAE,cAAc,CAAC;KACvC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as e,a as t,b as i,c as
|
|
1
|
+
import{_ as e,a as t,b as i,c as n,d as o}from"../../../vendor/tslib-Ac8XvvSX.js";import{e as a,x as l,o as s}from"../../../vendor/lit-html-BRBT5o_V.js";import{i as r,a as d,t as c,r as m,n as h}from"../../../vendor/@lit/reactive-element-f91Vet7N.js";import{i as u}from"../../../vendor/lit-element-m-OqzV5s.js";import"../checkbox/checkbox.js";import"../checkbox/checkboxGroup.js";import"../checkbox/checkboxSubgroup.js";import"../button/button.js";import{h as v,c as g}from"../../../vendor/@kyndryl-design-system/shidoka-icons-bi0_OAYf.js";import"../../../vendor/deepmerge-ts-OFb5ej8y.js";import"../../../common/mixins/form-input.js";import"../textInput/textInput.js";import"../../../common/helpers/helpers.js";import"../button/defs.js";var b=r`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
box-sizing: border-box;
|
|
@@ -44,6 +44,9 @@ import{_ as e,a as t,b as i,c as o,d as n}from"../../../vendor/tslib-Ac8XvvSX.js
|
|
|
44
44
|
color: var(--kd-color-text-level-primary);
|
|
45
45
|
transition: color 150ms ease-out;
|
|
46
46
|
}
|
|
47
|
+
.menu-item .menu-item-inner-el.check-icon {
|
|
48
|
+
color: var(--kd-color-icon-primary);
|
|
49
|
+
}
|
|
47
50
|
.menu-item:hover:not([disabled]) {
|
|
48
51
|
background-color: var(--kd-color-background-menu-state-hover);
|
|
49
52
|
}
|
|
@@ -181,7 +184,7 @@ import{_ as e,a as t,b as i,c as o,d as n}from"../../../vendor/tslib-Ac8XvvSX.js
|
|
|
181
184
|
|
|
182
185
|
.option {
|
|
183
186
|
cursor: default;
|
|
184
|
-
padding:
|
|
187
|
+
padding: 16px;
|
|
185
188
|
height: 48px;
|
|
186
189
|
transition: background-color 150ms ease-out;
|
|
187
190
|
display: flex;
|
|
@@ -201,10 +204,11 @@ import{_ as e,a as t,b as i,c as o,d as n}from"../../../vendor/tslib-Ac8XvvSX.js
|
|
|
201
204
|
.option span.check-icon {
|
|
202
205
|
display: flex;
|
|
203
206
|
margin-left: auto;
|
|
204
|
-
padding:
|
|
207
|
+
padding: 8px 8px 8px 0;
|
|
205
208
|
}
|
|
206
209
|
.option slot[name=icon]::slotted(span) {
|
|
207
210
|
display: flex;
|
|
211
|
+
padding: 8px 8px 8px 0;
|
|
208
212
|
}
|
|
209
213
|
|
|
210
214
|
kyn-checkbox {
|
|
@@ -219,7 +223,7 @@ kyn-checkbox {
|
|
|
219
223
|
}
|
|
220
224
|
.remove-option .clear-icon {
|
|
221
225
|
padding-top: 0.25rem;
|
|
222
|
-
}`;let
|
|
226
|
+
}`;let p=(()=>{var r,p,k,f,x,w,y,$,S,j,C,I,M;let W,O,E,B,A,P,D,z,N,R,U,F,G,L,_,q=[c("kyn-dropdown-option")],H=[],J=u,K=[],Q=[],T=[],V=[],X=[],Y=[],Z=[],ee=[],te=[],ie=[],ne=[],oe=[],ae=[],le=[],se=[],re=[],de=[],ce=[],me=[],he=[],ue=[],ve=[],ge=[],be=[],pe=[],ke=[];return O=class extends J{get value(){return n(this,r,"f")}set value(e){o(this,r,e,"f")}get selected(){return n(this,p,"f")}set selected(e){o(this,p,e,"f")}get disabled(){return n(this,k,"f")}set disabled(e){o(this,k,e,"f")}get allowAddOption(){return n(this,f,"f")}set allowAddOption(e){o(this,f,e,"f")}get highlighted(){return n(this,x,"f")}set highlighted(e){o(this,x,e,"f")}get multiple(){return n(this,w,"f")}set multiple(e){o(this,w,e,"f")}get removable(){return n(this,y,"f")}set removable(e){o(this,y,e,"f")}get text(){return n(this,$,"f")}set text(e){o(this,$,e,"f")}get indeterminate(){return n(this,S,"f")}set indeterminate(e){o(this,S,e,"f")}get kind(){return n(this,j,"f")}set kind(e){o(this,j,e,"f")}get hasIcon(){return n(this,C,"f")}set hasIcon(e){o(this,C,e,"f")}get role(){return n(this,I,"f")}set role(e){o(this,I,e,"f")}get ariaSelected(){return n(this,M,"f")}set ariaSelected(e){o(this,M,e,"f")}render(){const e={option:!0,"menu-item":!0,[`ai-connected-${"ai"===this.kind}`]:!0};return l`
|
|
223
227
|
<div
|
|
224
228
|
class=${a(e)}
|
|
225
229
|
?highlighted=${this.highlighted}
|
|
@@ -253,10 +257,17 @@ kyn-checkbox {
|
|
|
253
257
|
></slot>
|
|
254
258
|
`}
|
|
255
259
|
</span>
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
+
${this.hasIcon?l`<slot
|
|
261
|
+
name="icon"
|
|
262
|
+
style="display:flex"
|
|
263
|
+
@slotchange=${e=>this.handleIconSlotChange(e)}
|
|
264
|
+
></slot>`:l`
|
|
265
|
+
<slot
|
|
266
|
+
name="icon"
|
|
267
|
+
style="display:none"
|
|
268
|
+
@slotchange=${e=>this.handleIconSlotChange(e)}
|
|
269
|
+
></slot>
|
|
270
|
+
`}
|
|
260
271
|
${this.selected&&!this.multiple?l`
|
|
261
272
|
<span class="menu-item-inner-el check-icon"
|
|
262
273
|
>${s(v)}</span
|
|
@@ -275,10 +286,10 @@ kyn-checkbox {
|
|
|
275
286
|
@focus=${e=>e.stopPropagation()}
|
|
276
287
|
>
|
|
277
288
|
<span slot="icon" class="clear-icon">
|
|
278
|
-
${s(
|
|
289
|
+
${s(g)}
|
|
279
290
|
</span>
|
|
280
291
|
</kyn-button>
|
|
281
292
|
`:null}
|
|
282
293
|
</div>
|
|
283
|
-
`}firstUpdated(){const e=this.closest("kyn-dropdown");e&&(this.kind=e.kind,e.addEventListener("kind-changed",(e=>{this.kind=e.detail})))}willUpdate(e){e.has("selected")&&(this.ariaSelected=this.selected.toString())}handleRemoveClick(e){e.stopPropagation();const t=new CustomEvent("on-remove-option",{bubbles:!0,composed:!0,detail:{value:this.value}});this.dispatchEvent(t)}handleSlotChange(e){const t=e.target.assignedNodes({flatten:!0});let i="";for(let e=0;e<t.length;e++)i+=t[e].textContent.trim();this.text=i}handleClick(e){if(this.disabled)return;this.multiple?this.selected=!this.selected:this.selected=!0;const t=new CustomEvent("on-click",{bubbles:!0,composed:!0,detail:{selected:this.selected,value:this.value,origEvent:e}});this.dispatchEvent(t)}handleBlur(e){const t=new CustomEvent("on-blur",{bubbles:!0,composed:!0,detail:{origEvent:e}});this.dispatchEvent(t)}constructor(){super(...arguments),r.set(this,i(this,
|
|
294
|
+
`}firstUpdated(){const e=this.closest("kyn-dropdown");e&&(this.kind=e.kind,e.addEventListener("kind-changed",(e=>{this.kind=e.detail})))}willUpdate(e){e.has("selected")&&(this.ariaSelected=this.selected.toString())}handleRemoveClick(e){e.stopPropagation();const t=new CustomEvent("on-remove-option",{bubbles:!0,composed:!0,detail:{value:this.value}});this.dispatchEvent(t)}handleSlotChange(e){const t=e.target.assignedNodes({flatten:!0});let i="";for(let e=0;e<t.length;e++)i+=t[e].textContent.trim();this.text=i}handleClick(e){if(this.disabled)return;this.multiple?this.selected=!this.selected:this.selected=!0;const t=new CustomEvent("on-click",{bubbles:!0,composed:!0,detail:{selected:this.selected,value:this.value,origEvent:e}});this.dispatchEvent(t)}handleBlur(e){const t=new CustomEvent("on-blur",{bubbles:!0,composed:!0,detail:{origEvent:e}});this.dispatchEvent(t)}handleIconSlotChange(e){const t=e.target.assignedNodes({flatten:!0});this.hasIcon=t.length>0}constructor(){super(...arguments),r.set(this,i(this,K,"")),p.set(this,(i(this,Q),i(this,T,!1))),k.set(this,(i(this,V),i(this,X,!1))),f.set(this,(i(this,Y),i(this,Z,!1))),x.set(this,(i(this,ee),i(this,te,!1))),w.set(this,(i(this,ie),i(this,ne,!1))),y.set(this,(i(this,oe),i(this,ae,!1))),$.set(this,(i(this,le),i(this,se,""))),S.set(this,(i(this,re),i(this,de,!1))),j.set(this,(i(this,ce),i(this,me,"default"))),C.set(this,(i(this,he),i(this,ue,!1))),I.set(this,(i(this,ve),i(this,ge,"option"))),M.set(this,(i(this,be),i(this,pe,"option"))),i(this,ke)}},r=new WeakMap,p=new WeakMap,k=new WeakMap,f=new WeakMap,x=new WeakMap,w=new WeakMap,y=new WeakMap,$=new WeakMap,S=new WeakMap,j=new WeakMap,C=new WeakMap,I=new WeakMap,M=new WeakMap,e(O,"DropdownOption"),(()=>{var e;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(e=J[Symbol.metadata])&&void 0!==e?e:null):void 0;E=[h({type:String})],B=[h({type:Boolean})],A=[h({type:Boolean})],P=[h({type:Boolean})],D=[d()],z=[h({type:Boolean})],N=[h({type:Boolean})],R=[d()],U=[h({type:Boolean,reflect:!0})],F=[d()],G=[d()],L=[h({type:String,reflect:!0})],_=[h({type:String,reflect:!0,attribute:"aria-selected"})],t(O,null,E,{kind:"accessor",name:"value",static:!1,private:!1,access:{has:e=>"value"in e,get:e=>e.value,set:(e,t)=>{e.value=t}},metadata:i},K,Q),t(O,null,B,{kind:"accessor",name:"selected",static:!1,private:!1,access:{has:e=>"selected"in e,get:e=>e.selected,set:(e,t)=>{e.selected=t}},metadata:i},T,V),t(O,null,A,{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},X,Y),t(O,null,P,{kind:"accessor",name:"allowAddOption",static:!1,private:!1,access:{has:e=>"allowAddOption"in e,get:e=>e.allowAddOption,set:(e,t)=>{e.allowAddOption=t}},metadata:i},Z,ee),t(O,null,D,{kind:"accessor",name:"highlighted",static:!1,private:!1,access:{has:e=>"highlighted"in e,get:e=>e.highlighted,set:(e,t)=>{e.highlighted=t}},metadata:i},te,ie),t(O,null,z,{kind:"accessor",name:"multiple",static:!1,private:!1,access:{has:e=>"multiple"in e,get:e=>e.multiple,set:(e,t)=>{e.multiple=t}},metadata:i},ne,oe),t(O,null,N,{kind:"accessor",name:"removable",static:!1,private:!1,access:{has:e=>"removable"in e,get:e=>e.removable,set:(e,t)=>{e.removable=t}},metadata:i},ae,le),t(O,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},se,re),t(O,null,U,{kind:"accessor",name:"indeterminate",static:!1,private:!1,access:{has:e=>"indeterminate"in e,get:e=>e.indeterminate,set:(e,t)=>{e.indeterminate=t}},metadata:i},de,ce),t(O,null,F,{kind:"accessor",name:"kind",static:!1,private:!1,access:{has:e=>"kind"in e,get:e=>e.kind,set:(e,t)=>{e.kind=t}},metadata:i},me,he),t(O,null,G,{kind:"accessor",name:"hasIcon",static:!1,private:!1,access:{has:e=>"hasIcon"in e,get:e=>e.hasIcon,set:(e,t)=>{e.hasIcon=t}},metadata:i},ue,ve),t(O,null,L,{kind:"accessor",name:"role",static:!1,private:!1,access:{has:e=>"role"in e,get:e=>e.role,set:(e,t)=>{e.role=t}},metadata:i},ge,be),t(O,null,_,{kind:"accessor",name:"ariaSelected",static:!1,private:!1,access:{has:e=>"ariaSelected"in e,get:e=>e.ariaSelected,set:(e,t)=>{e.ariaSelected=t}},metadata:i},pe,ke),t(null,W={value:O},q,{kind:"class",name:O.name,metadata:i},null,H),O=W.value,i&&Object.defineProperty(O,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),O.styles=m(b),i(O,H),O})();export{p as DropdownOption};
|
|
284
295
|
//# sourceMappingURL=dropdownOption.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdownOption.js","sources":["../../../../src/components/reusable/dropdown/dropdownOption.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html, unsafeCSS } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport '../checkbox';\nimport '../button';\n\nimport checkIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/check.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-simple.svg';\n\nimport DropdownOptionScss from './dropdownOption.scss?inline';\n\n/**\n * Dropdown option.\n * @fires on-click - Emits the option details to the parent dropdown. `detail:{ selected: boolean, value: string, origEvent: PointerEvent }`\n * @fires on-remove-option - Emits the option that is removed. `detail:{ value: string }`\n * @slot unnamed - Slot for option text.\n * @slot icon - Slot for option icon. Icon size should be 16px only.\n */\n@customElement('kyn-dropdown-option')\nexport class DropdownOption extends LitElement {\n static override styles = unsafeCSS(DropdownOptionScss);\n\n /** Option value. */\n @property({ type: String })\n accessor value = '';\n\n /** Internal text strings.\n * @internal\n */\n @property({ type: Boolean })\n accessor selected = false;\n\n /** Option disabled state. */\n @property({ type: Boolean })\n accessor disabled = false;\n\n /** Allow Add Option state, derived from parent. */\n @property({ type: Boolean })\n accessor allowAddOption = false;\n\n /**\n * Option highlighted state for keyboard navigation, automatically derived.\n * @ignore\n */\n @state()\n accessor highlighted = false;\n\n /** Multi-select state, derived from parent.\n * @ignore\n */\n @property({ type: Boolean })\n accessor multiple = false;\n\n /** Removable option. */\n @property({ type: Boolean })\n accessor removable = false;\n\n /**\n * Option text, automatically derived.\n * @ignore\n */\n @state()\n accessor text: any = '';\n\n /** Determines whether the checkbox is in an indeterminate state. */\n @property({ type: Boolean, reflect: true })\n accessor indeterminate = false;\n\n /** Kind of the item, derived from parent.\n * @ignore\n */\n @state()\n accessor kind: 'ai' | 'default' = 'default';\n\n @property({ type: String, reflect: true })\n override accessor role = 'option';\n\n @property({ type: String, reflect: true, attribute: 'aria-selected' })\n override accessor ariaSelected = 'option';\n\n override render() {\n const classes = {\n option: true,\n 'menu-item': true,\n [`ai-connected-${this.kind === 'ai'}`]: true,\n };\n\n return html`\n <div\n class=${classMap(classes)}\n ?highlighted=${this.highlighted}\n ?selected=${this.selected}\n ?disabled=${this.disabled}\n aria-disabled=${this.disabled}\n ?multiple=${this.multiple}\n title=${this.text}\n @pointerup=${(e: any) => this.handleClick(e)}\n @blur=${(e: any) => this.handleBlur(e)}\n >\n <span class=\"menu-item-inner-el text\">\n ${this.multiple\n ? html`\n <kyn-checkbox\n type=\"checkbox\"\n value=${this.value}\n .checked=${this.selected}\n ?checked=${this.selected}\n ?disabled=${this.disabled}\n notFocusable\n .indeterminate=${this.indeterminate}\n >\n </kyn-checkbox>\n\n <slot\n @slotchange=${(e: any) => this.handleSlotChange(e)}\n ></slot>\n `\n : html`\n <slot\n @slotchange=${(e: any) => this.handleSlotChange(e)}\n ></slot>\n `}\n </span>\n\n <span class=\"menu-item-inner-el icon\"\n ><slot name=\"icon\" style=\"display:flex\"></slot\n ></span>\n ${this.selected && !this.multiple\n ? html`\n <span class=\"menu-item-inner-el check-icon\"\n >${unsafeSVG(checkIcon)}</span\n >\n `\n : this.allowAddOption && this.removable\n ? html`\n <kyn-button\n class=\"remove-option\"\n kind=\"ghost\"\n size=\"small\"\n aria-label=\"Delete ${this.value}\"\n description=\"Delete ${this.value}\"\n ?disabled=${this.disabled}\n @click=${(e: Event) => this.handleRemoveClick(e)}\n @mousedown=${(e: Event) => e.stopPropagation()}\n @keydown=${(e: KeyboardEvent) => e.stopPropagation()}\n @focus=${(e: KeyboardEvent) => e.stopPropagation()}\n >\n <span slot=\"icon\" class=\"clear-icon\">\n ${unsafeSVG(clearIcon)}\n </span>\n </kyn-button>\n `\n : null}\n </div>\n `;\n }\n\n override firstUpdated() {\n const parent = this.closest('kyn-dropdown') as any;\n if (parent) {\n this.kind = parent.kind;\n\n parent.addEventListener('kind-changed', (e: Event) => {\n this.kind = (e as CustomEvent<'ai' | 'default'>).detail;\n });\n }\n }\n\n override willUpdate(changedProps: any) {\n if (changedProps.has('selected')) {\n this.ariaSelected = this.selected.toString();\n }\n }\n\n private handleRemoveClick(e: Event) {\n e.stopPropagation();\n const event = new CustomEvent('on-remove-option', {\n bubbles: true,\n composed: true,\n detail: {\n value: this.value,\n },\n });\n this.dispatchEvent(event);\n }\n\n private handleSlotChange(e: any) {\n // set text prop from slotted text, for ease of access\n const nodes = e.target.assignedNodes({ flatten: true });\n let text = '';\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 handleClick(e: Event) {\n // prevent click if disabled\n if (this.disabled) {\n return;\n }\n\n // update selected state\n if (this.multiple) {\n this.selected = !this.selected;\n } else {\n this.selected = true;\n }\n\n // emit selected value, bubble so it can be captured by the parent dropdown\n const event = new CustomEvent('on-click', {\n bubbles: true,\n composed: true,\n detail: {\n selected: this.selected,\n value: this.value,\n origEvent: e,\n },\n });\n this.dispatchEvent(event);\n }\n\n private handleBlur(e: any) {\n // emit blur event, bubble so it can be captured by the parent dropdown\n const event = new CustomEvent('on-blur', {\n bubbles: true,\n composed: true,\n detail: {\n origEvent: e,\n },\n });\n this.dispatchEvent(event);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-dropdown-option': DropdownOption;\n }\n}\n"],"names":["DropdownOption","customElement","LitElement","_classThis","_classSuper","value","__classPrivateFieldGet","this","_DropdownOption_value_accessor_storage","__classPrivateFieldSet","selected","_DropdownOption_selected_accessor_storage","disabled","_DropdownOption_disabled_accessor_storage","allowAddOption","_DropdownOption_allowAddOption_accessor_storage","highlighted","_DropdownOption_highlighted_accessor_storage","multiple","_DropdownOption_multiple_accessor_storage","removable","_DropdownOption_removable_accessor_storage","text","_DropdownOption_text_accessor_storage","indeterminate","_DropdownOption_indeterminate_accessor_storage","kind","_DropdownOption_kind_accessor_storage","role","_DropdownOption_role_accessor_storage","ariaSelected","_DropdownOption_ariaSelected_accessor_storage","render","classes","option","html","classMap","e","handleClick","handleBlur","handleSlotChange","unsafeSVG","checkIcon","handleRemoveClick","stopPropagation","clearIcon","firstUpdated","parent","closest","addEventListener","detail","willUpdate","changedProps","has","toString","event","CustomEvent","bubbles","composed","dispatchEvent","nodes","target","assignedNodes","flatten","i","length","textContent","trim","origEvent","set","__runInitializers","_value_initializers","_value_extraInitializers","_selected_initializers","_selected_extraInitializers","_disabled_initializers","_disabled_extraInitializers","_allowAddOption_initializers","_allowAddOption_extraInitializers","_highlighted_initializers","_highlighted_extraInitializers","_multiple_initializers","_multiple_extraInitializers","_removable_initializers","_removable_extraInitializers","_text_initializers","_text_extraInitializers","_indeterminate_initializers","_indeterminate_extraInitializers","_kind_initializers","_kind_extraInitializers","_role_initializers","_role_extraInitializers","_ariaSelected_initializers","_value_decorators","property","type","String","_selected_decorators","Boolean","_disabled_decorators","_allowAddOption_decorators","_highlighted_decorators","state","_multiple_decorators","_removable_decorators","_text_decorators","reflect","_kind_decorators","_ariaSelected_decorators","attribute","__esDecorate","name","static","private","access","obj","get","metadata","_metadata","_indeterminate_decorators","_role_decorators","_ariaSelected_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","DropdownOptionScss"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dropdownOption.js","sources":["../../../../src/components/reusable/dropdown/dropdownOption.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html, unsafeCSS } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport '../checkbox';\nimport '../button';\n\nimport checkIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/check.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-simple.svg';\n\nimport DropdownOptionScss from './dropdownOption.scss?inline';\n\n/**\n * Dropdown option.\n * @fires on-click - Emits the option details to the parent dropdown. `detail:{ selected: boolean, value: string, origEvent: PointerEvent }`\n * @fires on-remove-option - Emits the option that is removed. `detail:{ value: string }`\n * @slot unnamed - Slot for option text.\n * @slot icon - Slot for option icon. Icon size should be 16px only.\n */\n@customElement('kyn-dropdown-option')\nexport class DropdownOption extends LitElement {\n static override styles = unsafeCSS(DropdownOptionScss);\n\n /** Option value. */\n @property({ type: String })\n accessor value = '';\n\n /** Internal text strings.\n * @internal\n */\n @property({ type: Boolean })\n accessor selected = false;\n\n /** Option disabled state. */\n @property({ type: Boolean })\n accessor disabled = false;\n\n /** Allow Add Option state, derived from parent. */\n @property({ type: Boolean })\n accessor allowAddOption = false;\n\n /**\n * Option highlighted state for keyboard navigation, automatically derived.\n * @ignore\n */\n @state()\n accessor highlighted = false;\n\n /** Multi-select state, derived from parent.\n * @ignore\n */\n @property({ type: Boolean })\n accessor multiple = false;\n\n /** Removable option. */\n @property({ type: Boolean })\n accessor removable = false;\n\n /**\n * Option text, automatically derived.\n * @ignore\n */\n @state()\n accessor text: any = '';\n\n /** Determines whether the checkbox is in an indeterminate state. */\n @property({ type: Boolean, reflect: true })\n accessor indeterminate = false;\n\n /** Kind of the item, derived from parent.\n * @ignore\n */\n @state()\n accessor kind: 'ai' | 'default' = 'default';\n\n /** slotted icon added state.\n * @ignore\n */\n @state()\n accessor hasIcon = false;\n\n @property({ type: String, reflect: true })\n override accessor role = 'option';\n\n @property({ type: String, reflect: true, attribute: 'aria-selected' })\n override accessor ariaSelected = 'option';\n\n override render() {\n const classes = {\n option: true,\n 'menu-item': true,\n [`ai-connected-${this.kind === 'ai'}`]: true,\n };\n\n return html`\n <div\n class=${classMap(classes)}\n ?highlighted=${this.highlighted}\n ?selected=${this.selected}\n ?disabled=${this.disabled}\n aria-disabled=${this.disabled}\n ?multiple=${this.multiple}\n title=${this.text}\n @pointerup=${(e: any) => this.handleClick(e)}\n @blur=${(e: any) => this.handleBlur(e)}\n >\n <span class=\"menu-item-inner-el text\">\n ${this.multiple\n ? html`\n <kyn-checkbox\n type=\"checkbox\"\n value=${this.value}\n .checked=${this.selected}\n ?checked=${this.selected}\n ?disabled=${this.disabled}\n notFocusable\n .indeterminate=${this.indeterminate}\n >\n </kyn-checkbox>\n\n <slot\n @slotchange=${(e: any) => this.handleSlotChange(e)}\n ></slot>\n `\n : html`\n <slot\n @slotchange=${(e: any) => this.handleSlotChange(e)}\n ></slot>\n `}\n </span>\n ${this.hasIcon\n ? html`<slot\n name=\"icon\"\n style=\"display:flex\"\n @slotchange=${(e: any) => this.handleIconSlotChange(e)}\n ></slot>`\n : html`\n <slot\n name=\"icon\"\n style=\"display:none\"\n @slotchange=${(e: any) => this.handleIconSlotChange(e)}\n ></slot>\n `}\n ${this.selected && !this.multiple\n ? html`\n <span class=\"menu-item-inner-el check-icon\"\n >${unsafeSVG(checkIcon)}</span\n >\n `\n : this.allowAddOption && this.removable\n ? html`\n <kyn-button\n class=\"remove-option\"\n kind=\"ghost\"\n size=\"small\"\n aria-label=\"Delete ${this.value}\"\n description=\"Delete ${this.value}\"\n ?disabled=${this.disabled}\n @click=${(e: Event) => this.handleRemoveClick(e)}\n @mousedown=${(e: Event) => e.stopPropagation()}\n @keydown=${(e: KeyboardEvent) => e.stopPropagation()}\n @focus=${(e: KeyboardEvent) => e.stopPropagation()}\n >\n <span slot=\"icon\" class=\"clear-icon\">\n ${unsafeSVG(clearIcon)}\n </span>\n </kyn-button>\n `\n : null}\n </div>\n `;\n }\n\n override firstUpdated() {\n const parent = this.closest('kyn-dropdown') as any;\n if (parent) {\n this.kind = parent.kind;\n\n parent.addEventListener('kind-changed', (e: Event) => {\n this.kind = (e as CustomEvent<'ai' | 'default'>).detail;\n });\n }\n }\n\n override willUpdate(changedProps: any) {\n if (changedProps.has('selected')) {\n this.ariaSelected = this.selected.toString();\n }\n }\n\n private handleRemoveClick(e: Event) {\n e.stopPropagation();\n const event = new CustomEvent('on-remove-option', {\n bubbles: true,\n composed: true,\n detail: {\n value: this.value,\n },\n });\n this.dispatchEvent(event);\n }\n\n private handleSlotChange(e: any) {\n // set text prop from slotted text, for ease of access\n const nodes = e.target.assignedNodes({ flatten: true });\n let text = '';\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 handleClick(e: Event) {\n // prevent click if disabled\n if (this.disabled) {\n return;\n }\n\n // update selected state\n if (this.multiple) {\n this.selected = !this.selected;\n } else {\n this.selected = true;\n }\n\n // emit selected value, bubble so it can be captured by the parent dropdown\n const event = new CustomEvent('on-click', {\n bubbles: true,\n composed: true,\n detail: {\n selected: this.selected,\n value: this.value,\n origEvent: e,\n },\n });\n this.dispatchEvent(event);\n }\n\n private handleBlur(e: any) {\n // emit blur event, bubble so it can be captured by the parent dropdown\n const event = new CustomEvent('on-blur', {\n bubbles: true,\n composed: true,\n detail: {\n origEvent: e,\n },\n });\n this.dispatchEvent(event);\n }\n\n private handleIconSlotChange(e: any) {\n const nodes = e.target.assignedNodes({ flatten: true });\n this.hasIcon = nodes.length > 0;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-dropdown-option': DropdownOption;\n }\n}\n"],"names":["DropdownOption","customElement","LitElement","_classThis","_classSuper","value","__classPrivateFieldGet","this","_DropdownOption_value_accessor_storage","__classPrivateFieldSet","selected","_DropdownOption_selected_accessor_storage","disabled","_DropdownOption_disabled_accessor_storage","allowAddOption","_DropdownOption_allowAddOption_accessor_storage","highlighted","_DropdownOption_highlighted_accessor_storage","multiple","_DropdownOption_multiple_accessor_storage","removable","_DropdownOption_removable_accessor_storage","text","_DropdownOption_text_accessor_storage","indeterminate","_DropdownOption_indeterminate_accessor_storage","kind","_DropdownOption_kind_accessor_storage","hasIcon","_DropdownOption_hasIcon_accessor_storage","role","_DropdownOption_role_accessor_storage","ariaSelected","_DropdownOption_ariaSelected_accessor_storage","render","classes","option","html","classMap","e","handleClick","handleBlur","handleSlotChange","handleIconSlotChange","unsafeSVG","checkIcon","handleRemoveClick","stopPropagation","clearIcon","firstUpdated","parent","closest","addEventListener","detail","willUpdate","changedProps","has","toString","event","CustomEvent","bubbles","composed","dispatchEvent","nodes","target","assignedNodes","flatten","i","length","textContent","trim","origEvent","set","__runInitializers","_value_initializers","_value_extraInitializers","_selected_initializers","_selected_extraInitializers","_disabled_initializers","_disabled_extraInitializers","_allowAddOption_initializers","_allowAddOption_extraInitializers","_highlighted_initializers","_highlighted_extraInitializers","_multiple_initializers","_multiple_extraInitializers","_removable_initializers","_removable_extraInitializers","_text_initializers","_text_extraInitializers","_indeterminate_initializers","_indeterminate_extraInitializers","_kind_initializers","_kind_extraInitializers","_hasIcon_initializers","_hasIcon_extraInitializers","_role_initializers","_role_extraInitializers","_ariaSelected_initializers","_value_decorators","property","type","String","_selected_decorators","Boolean","_disabled_decorators","_allowAddOption_decorators","_highlighted_decorators","state","_multiple_decorators","_removable_decorators","_text_decorators","reflect","_kind_decorators","_hasIcon_decorators","_ariaSelected_decorators","attribute","__esDecorate","name","static","private","access","obj","get","metadata","_metadata","_indeterminate_decorators","_role_decorators","_ariaSelected_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","DropdownOptionScss"],"mappings":"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"}
|
|
@@ -44,6 +44,9 @@ import{_ as e,a as t,b as i,c as n,d as o}from"../../../vendor/tslib-Ac8XvvSX.js
|
|
|
44
44
|
color: var(--kd-color-text-level-primary);
|
|
45
45
|
transition: color 150ms ease-out;
|
|
46
46
|
}
|
|
47
|
+
.menu-item .menu-item-inner-el.check-icon {
|
|
48
|
+
color: var(--kd-color-icon-primary);
|
|
49
|
+
}
|
|
47
50
|
.menu-item:hover:not([disabled]) {
|
|
48
51
|
background-color: var(--kd-color-background-menu-state-hover);
|
|
49
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enhancedDropdownOption.js","sources":["../../../../src/components/reusable/dropdown/enhancedDropdownOption.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html, unsafeCSS } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport '../checkbox';\nimport '../button';\n\nimport checkIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/check.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-simple.svg';\n\nimport EnhancedDropdownOptionScss from './enhancedDropdownOption.scss?inline';\n\n/**\n * Enhanced Dropdown option with rich content support.\n * @fires on-click - Emits the option details to the parent dropdown. `detail:{ selected: boolean, value: string, origEvent: PointerEvent }`\n * @fires on-remove-option - Emits the option that is removed. `detail:{ selected: boolean, value: string, origEvent: PointerEvent }`\n * @slot icon - Slot for option icon. Icon size should be 16px only.\n * @slot title - Slot for option title text.\n * @slot tag - Slot for inline tag appended to title.\n * @slot description - Slot for option description text.\n * @slot optionType - Slot for option type label.\n * @slot unnamed - Fallback slot for simple text content.\n */\n@customElement('kyn-enhanced-dropdown-option')\nexport class EnhancedDropdownOption extends LitElement {\n static override styles = unsafeCSS(EnhancedDropdownOptionScss);\n\n /** Option value. */\n @property({ type: String })\n accessor value = '';\n\n /** Internal text strings.\n * @internal\n */\n @property({ type: Boolean, reflect: true })\n accessor selected = false;\n\n /** Option disabled state. */\n @property({ type: Boolean })\n accessor disabled = false;\n\n /** Allow Add Option state, derived from parent. */\n @property({ type: Boolean })\n accessor allowAddOption = false;\n\n /**\n * Option highlighted state for keyboard navigation, automatically derived.\n * @ignore\n */\n @state()\n accessor highlighted = false;\n\n /** Multi-select state, derived from parent.\n * @ignore\n */\n @property({ type: Boolean })\n accessor multiple = false;\n\n /** Removable option. */\n @property({ type: Boolean })\n accessor removable = false;\n\n /** Determines whether the checkbox is in an indeterminate state. */\n @property({ type: Boolean, reflect: true })\n accessor indeterminate = false;\n\n /** ARIA role for the option, defaults to 'option'. */\n @property({ type: String, reflect: true })\n override accessor role = 'option';\n\n /** ARIA selected must mirror `selected`. */\n @property({ type: String, reflect: true, attribute: 'aria-selected' })\n override accessor ariaSelected = 'option';\n\n /**\n * Option text, automatically derived.\n * @ignore\n */\n @state()\n accessor text: any = '';\n\n /**\n * Title text for display purposes, automatically derived.\n * @ignore\n */\n @state()\n accessor displayText: any = '';\n\n /**\n * Whether the icon slot has content.\n * @ignore\n */\n @state()\n accessor hasIcon = false;\n\n /** Kind of the item, derived from parent. */\n @state()\n accessor kind: 'ai' | 'default' = 'default';\n\n override render() {\n const classes = {\n 'enhanced-option': true,\n 'menu-item': true,\n [`ai-connected-${this.kind === 'ai'}`]: true,\n };\n\n return html`\n <div\n class=${classMap(classes)}\n ?highlighted=${this.highlighted}\n ?selected=${this.selected}\n ?disabled=${this.disabled}\n aria-disabled=${this.disabled}\n ?multiple=${this.multiple}\n title=${this.text}\n @pointerup=${this.onClick}\n @blur=${this.onBlur}\n >\n ${this.multiple\n ? html`\n <kyn-checkbox\n .checked=${this.selected}\n .indeterminate=${this.indeterminate}\n ?disabled=${this.disabled}\n notFocusable\n value=${this.value}\n ></kyn-checkbox>\n `\n : null}\n\n <div class=\"content\">\n <div\n class=\"menu-item-inner-el icon-container\"\n style=${this.hasIcon ? '' : 'display:none'}\n >\n <slot name=\"icon\" @slotchange=${this.onIconSlotChange}></slot>\n </div>\n\n <div class=\"menu-item-inner-el text\">\n <div class=\"title-content\">\n <slot name=\"title\" @slotchange=${this.onTitleSlotChange}></slot>\n ${!this.selected\n ? html`<span class=\"tag-container\"\n ><slot name=\"tag\"></slot\n ></span>`\n : null}\n </div>\n <div class=\"description-container\">\n <slot name=\"description\"></slot>\n </div>\n <div class=\"option-type-container\">\n <slot name=\"optionType\"></slot>\n </div>\n </div>\n </div>\n\n <div class=\"status-icons\">\n ${!this.multiple && this.selected\n ? html`<span class=\"menu-item-inner-el check-icon\"\n >${unsafeSVG(checkIcon)}</span\n >`\n : this.allowAddOption && this.removable\n ? html`\n <kyn-button\n kind=\"ghost\"\n size=\"small\"\n aria-label=\"Delete ${this.value}\"\n @click=${this.onRemove}\n @mousedown=${(e: Event) => e.stopPropagation()}\n >\n <span slot=\"icon\">${unsafeSVG(clearIcon)}</span>\n </kyn-button>\n `\n : null}\n </div>\n </div>\n `;\n }\n\n override firstUpdated() {\n // derive whether icon slot has content\n this.hasIcon = this.iconSlot.assignedNodes({ flatten: true }).length > 0;\n\n // sync kind from parent and listen for changes\n const parent = this.closest('kyn-dropdown') as any;\n if (parent) {\n this.kind = parent.kind;\n parent.addEventListener('kind-changed', (e: Event) => {\n this.kind = (e as CustomEvent<'ai' | 'default'>).detail;\n });\n }\n }\n\n private onIconSlotChange() {\n this.hasIcon = this.iconSlot.assignedNodes({ flatten: true }).length > 0;\n }\n\n override willUpdate(changed: Map<string, unknown>) {\n if (changed.has('selected')) {\n this.ariaSelected = this.selected.toString();\n }\n }\n\n private get iconSlot(): HTMLSlotElement {\n return this.shadowRoot!.querySelector(\n 'slot[name=\"icon\"]'\n )! as HTMLSlotElement;\n }\n\n private onTitleSlotChange(e: Event) {\n const titleText = (e.target as HTMLSlotElement)\n .assignedNodes({ flatten: true })\n .map((n) => n.textContent?.trim() ?? '')\n .join(' ');\n this.displayText = titleText;\n this.text = titleText;\n }\n\n private onClick(e: PointerEvent) {\n if (this.disabled) return;\n this.selected = this.multiple ? !this.selected : true;\n this.dispatchEvent(\n new CustomEvent('on-click', {\n bubbles: true,\n composed: true,\n detail: { selected: this.selected, value: this.value, origEvent: e },\n })\n );\n }\n\n private onRemove(e: Event) {\n e.stopPropagation();\n this.dispatchEvent(\n new CustomEvent('on-remove-option', {\n bubbles: true,\n composed: true,\n detail: { value: this.value },\n })\n );\n }\n\n private onBlur(e: FocusEvent) {\n this.dispatchEvent(\n new CustomEvent('on-blur', {\n bubbles: true,\n composed: true,\n detail: { origEvent: e },\n })\n );\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-enhanced-dropdown-option': EnhancedDropdownOption;\n }\n}\n"],"names":["EnhancedDropdownOption","customElement","LitElement","_classThis","_classSuper","value","__classPrivateFieldGet","this","_EnhancedDropdownOption_value_accessor_storage","__classPrivateFieldSet","selected","_EnhancedDropdownOption_selected_accessor_storage","disabled","_EnhancedDropdownOption_disabled_accessor_storage","allowAddOption","_EnhancedDropdownOption_allowAddOption_accessor_storage","highlighted","_EnhancedDropdownOption_highlighted_accessor_storage","multiple","_EnhancedDropdownOption_multiple_accessor_storage","removable","_EnhancedDropdownOption_removable_accessor_storage","indeterminate","_EnhancedDropdownOption_indeterminate_accessor_storage","role","_EnhancedDropdownOption_role_accessor_storage","ariaSelected","_EnhancedDropdownOption_ariaSelected_accessor_storage","text","_EnhancedDropdownOption_text_accessor_storage","displayText","_EnhancedDropdownOption_displayText_accessor_storage","hasIcon","_EnhancedDropdownOption_hasIcon_accessor_storage","kind","_EnhancedDropdownOption_kind_accessor_storage","render","classes","html","classMap","onClick","onBlur","onIconSlotChange","onTitleSlotChange","unsafeSVG","checkIcon","onRemove","e","stopPropagation","clearIcon","firstUpdated","iconSlot","assignedNodes","flatten","length","parent","closest","addEventListener","detail","willUpdate","changed","has","toString","shadowRoot","querySelector","titleText","target","map","n","_a","_b","textContent","trim","join","dispatchEvent","CustomEvent","bubbles","composed","origEvent","set","__runInitializers","_value_initializers","_value_extraInitializers","_selected_initializers","_selected_extraInitializers","_disabled_initializers","_disabled_extraInitializers","_allowAddOption_initializers","_allowAddOption_extraInitializers","_highlighted_initializers","_highlighted_extraInitializers","_multiple_initializers","_multiple_extraInitializers","_removable_initializers","_removable_extraInitializers","_indeterminate_initializers","_indeterminate_extraInitializers","_role_initializers","_role_extraInitializers","_ariaSelected_initializers","_ariaSelected_extraInitializers","_text_initializers","_text_extraInitializers","_displayText_initializers","_displayText_extraInitializers","_hasIcon_initializers","_hasIcon_extraInitializers","_kind_initializers","_value_decorators","property","type","String","Boolean","reflect","_disabled_decorators","_allowAddOption_decorators","_highlighted_decorators","state","_multiple_decorators","_removable_decorators","_ariaSelected_decorators","attribute","_text_decorators","_displayText_decorators","_hasIcon_decorators","_kind_decorators","__esDecorate","name","static","private","access","obj","get","metadata","_metadata","_selected_decorators","_indeterminate_decorators","_role_decorators","_kind_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","EnhancedDropdownOptionScss"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"enhancedDropdownOption.js","sources":["../../../../src/components/reusable/dropdown/enhancedDropdownOption.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { LitElement, html, unsafeCSS } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport '../checkbox';\nimport '../button';\n\nimport checkIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/check.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-simple.svg';\n\nimport EnhancedDropdownOptionScss from './enhancedDropdownOption.scss?inline';\n\n/**\n * Enhanced Dropdown option with rich content support.\n * @fires on-click - Emits the option details to the parent dropdown. `detail:{ selected: boolean, value: string, origEvent: PointerEvent }`\n * @fires on-remove-option - Emits the option that is removed. `detail:{ selected: boolean, value: string, origEvent: PointerEvent }`\n * @slot icon - Slot for option icon. Icon size should be 16px only.\n * @slot title - Slot for option title text.\n * @slot tag - Slot for inline tag appended to title.\n * @slot description - Slot for option description text.\n * @slot optionType - Slot for option type label.\n * @slot unnamed - Fallback slot for simple text content.\n */\n@customElement('kyn-enhanced-dropdown-option')\nexport class EnhancedDropdownOption extends LitElement {\n static override styles = unsafeCSS(EnhancedDropdownOptionScss);\n\n /** Option value. */\n @property({ type: String })\n accessor value = '';\n\n /** Internal text strings.\n * @internal\n */\n @property({ type: Boolean, reflect: true })\n accessor selected = false;\n\n /** Option disabled state. */\n @property({ type: Boolean })\n accessor disabled = false;\n\n /** Allow Add Option state, derived from parent. */\n @property({ type: Boolean })\n accessor allowAddOption = false;\n\n /**\n * Option highlighted state for keyboard navigation, automatically derived.\n * @ignore\n */\n @state()\n accessor highlighted = false;\n\n /** Multi-select state, derived from parent.\n * @ignore\n */\n @property({ type: Boolean })\n accessor multiple = false;\n\n /** Removable option. */\n @property({ type: Boolean })\n accessor removable = false;\n\n /** Determines whether the checkbox is in an indeterminate state. */\n @property({ type: Boolean, reflect: true })\n accessor indeterminate = false;\n\n /** ARIA role for the option, defaults to 'option'. */\n @property({ type: String, reflect: true })\n override accessor role = 'option';\n\n /** ARIA selected must mirror `selected`. */\n @property({ type: String, reflect: true, attribute: 'aria-selected' })\n override accessor ariaSelected = 'option';\n\n /**\n * Option text, automatically derived.\n * @ignore\n */\n @state()\n accessor text: any = '';\n\n /**\n * Title text for display purposes, automatically derived.\n * @ignore\n */\n @state()\n accessor displayText: any = '';\n\n /**\n * Whether the icon slot has content.\n * @ignore\n */\n @state()\n accessor hasIcon = false;\n\n /** Kind of the item, derived from parent. */\n @state()\n accessor kind: 'ai' | 'default' = 'default';\n\n override render() {\n const classes = {\n 'enhanced-option': true,\n 'menu-item': true,\n [`ai-connected-${this.kind === 'ai'}`]: true,\n };\n\n return html`\n <div\n class=${classMap(classes)}\n ?highlighted=${this.highlighted}\n ?selected=${this.selected}\n ?disabled=${this.disabled}\n aria-disabled=${this.disabled}\n ?multiple=${this.multiple}\n title=${this.text}\n @pointerup=${this.onClick}\n @blur=${this.onBlur}\n >\n ${this.multiple\n ? html`\n <kyn-checkbox\n .checked=${this.selected}\n .indeterminate=${this.indeterminate}\n ?disabled=${this.disabled}\n notFocusable\n value=${this.value}\n ></kyn-checkbox>\n `\n : null}\n\n <div class=\"content\">\n <div\n class=\"menu-item-inner-el icon-container\"\n style=${this.hasIcon ? '' : 'display:none'}\n >\n <slot name=\"icon\" @slotchange=${this.onIconSlotChange}></slot>\n </div>\n\n <div class=\"menu-item-inner-el text\">\n <div class=\"title-content\">\n <slot name=\"title\" @slotchange=${this.onTitleSlotChange}></slot>\n ${!this.selected\n ? html`<span class=\"tag-container\"\n ><slot name=\"tag\"></slot\n ></span>`\n : null}\n </div>\n <div class=\"description-container\">\n <slot name=\"description\"></slot>\n </div>\n <div class=\"option-type-container\">\n <slot name=\"optionType\"></slot>\n </div>\n </div>\n </div>\n\n <div class=\"status-icons\">\n ${!this.multiple && this.selected\n ? html`<span class=\"menu-item-inner-el check-icon\"\n >${unsafeSVG(checkIcon)}</span\n >`\n : this.allowAddOption && this.removable\n ? html`\n <kyn-button\n kind=\"ghost\"\n size=\"small\"\n aria-label=\"Delete ${this.value}\"\n @click=${this.onRemove}\n @mousedown=${(e: Event) => e.stopPropagation()}\n >\n <span slot=\"icon\">${unsafeSVG(clearIcon)}</span>\n </kyn-button>\n `\n : null}\n </div>\n </div>\n `;\n }\n\n override firstUpdated() {\n // derive whether icon slot has content\n this.hasIcon = this.iconSlot.assignedNodes({ flatten: true }).length > 0;\n\n // sync kind from parent and listen for changes\n const parent = this.closest('kyn-dropdown') as any;\n if (parent) {\n this.kind = parent.kind;\n parent.addEventListener('kind-changed', (e: Event) => {\n this.kind = (e as CustomEvent<'ai' | 'default'>).detail;\n });\n }\n }\n\n private onIconSlotChange() {\n this.hasIcon = this.iconSlot.assignedNodes({ flatten: true }).length > 0;\n }\n\n override willUpdate(changed: Map<string, unknown>) {\n if (changed.has('selected')) {\n this.ariaSelected = this.selected.toString();\n }\n }\n\n private get iconSlot(): HTMLSlotElement {\n return this.shadowRoot!.querySelector(\n 'slot[name=\"icon\"]'\n )! as HTMLSlotElement;\n }\n\n private onTitleSlotChange(e: Event) {\n const titleText = (e.target as HTMLSlotElement)\n .assignedNodes({ flatten: true })\n .map((n) => n.textContent?.trim() ?? '')\n .join(' ');\n this.displayText = titleText;\n this.text = titleText;\n }\n\n private onClick(e: PointerEvent) {\n if (this.disabled) return;\n this.selected = this.multiple ? !this.selected : true;\n this.dispatchEvent(\n new CustomEvent('on-click', {\n bubbles: true,\n composed: true,\n detail: { selected: this.selected, value: this.value, origEvent: e },\n })\n );\n }\n\n private onRemove(e: Event) {\n e.stopPropagation();\n this.dispatchEvent(\n new CustomEvent('on-remove-option', {\n bubbles: true,\n composed: true,\n detail: { value: this.value },\n })\n );\n }\n\n private onBlur(e: FocusEvent) {\n this.dispatchEvent(\n new CustomEvent('on-blur', {\n bubbles: true,\n composed: true,\n detail: { origEvent: e },\n })\n );\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-enhanced-dropdown-option': EnhancedDropdownOption;\n }\n}\n"],"names":["EnhancedDropdownOption","customElement","LitElement","_classThis","_classSuper","value","__classPrivateFieldGet","this","_EnhancedDropdownOption_value_accessor_storage","__classPrivateFieldSet","selected","_EnhancedDropdownOption_selected_accessor_storage","disabled","_EnhancedDropdownOption_disabled_accessor_storage","allowAddOption","_EnhancedDropdownOption_allowAddOption_accessor_storage","highlighted","_EnhancedDropdownOption_highlighted_accessor_storage","multiple","_EnhancedDropdownOption_multiple_accessor_storage","removable","_EnhancedDropdownOption_removable_accessor_storage","indeterminate","_EnhancedDropdownOption_indeterminate_accessor_storage","role","_EnhancedDropdownOption_role_accessor_storage","ariaSelected","_EnhancedDropdownOption_ariaSelected_accessor_storage","text","_EnhancedDropdownOption_text_accessor_storage","displayText","_EnhancedDropdownOption_displayText_accessor_storage","hasIcon","_EnhancedDropdownOption_hasIcon_accessor_storage","kind","_EnhancedDropdownOption_kind_accessor_storage","render","classes","html","classMap","onClick","onBlur","onIconSlotChange","onTitleSlotChange","unsafeSVG","checkIcon","onRemove","e","stopPropagation","clearIcon","firstUpdated","iconSlot","assignedNodes","flatten","length","parent","closest","addEventListener","detail","willUpdate","changed","has","toString","shadowRoot","querySelector","titleText","target","map","n","_a","_b","textContent","trim","join","dispatchEvent","CustomEvent","bubbles","composed","origEvent","set","__runInitializers","_value_initializers","_value_extraInitializers","_selected_initializers","_selected_extraInitializers","_disabled_initializers","_disabled_extraInitializers","_allowAddOption_initializers","_allowAddOption_extraInitializers","_highlighted_initializers","_highlighted_extraInitializers","_multiple_initializers","_multiple_extraInitializers","_removable_initializers","_removable_extraInitializers","_indeterminate_initializers","_indeterminate_extraInitializers","_role_initializers","_role_extraInitializers","_ariaSelected_initializers","_ariaSelected_extraInitializers","_text_initializers","_text_extraInitializers","_displayText_initializers","_displayText_extraInitializers","_hasIcon_initializers","_hasIcon_extraInitializers","_kind_initializers","_value_decorators","property","type","String","Boolean","reflect","_disabled_decorators","_allowAddOption_decorators","_highlighted_decorators","state","_multiple_decorators","_removable_decorators","_ariaSelected_decorators","attribute","_text_decorators","_displayText_decorators","_hasIcon_decorators","_kind_decorators","__esDecorate","name","static","private","access","obj","get","metadata","_metadata","_selected_decorators","_indeterminate_decorators","_role_decorators","_kind_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","EnhancedDropdownOptionScss"],"mappings":"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"}
|
|
@@ -44,6 +44,9 @@ import{_ as e,a as t,b as i,c as o,d as n}from"../../../vendor/tslib-Ac8XvvSX.js
|
|
|
44
44
|
color: var(--kd-color-text-level-primary);
|
|
45
45
|
transition: color 150ms ease-out;
|
|
46
46
|
}
|
|
47
|
+
.menu-item .menu-item-inner-el.check-icon {
|
|
48
|
+
color: var(--kd-color-icon-primary);
|
|
49
|
+
}
|
|
47
50
|
.menu-item:hover:not([disabled]) {
|
|
48
51
|
background-color: var(--kd-color-background-menu-state-hover);
|
|
49
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overflowMenuItem.js","sources":["../../../../src/components/reusable/overflowMenu/overflowMenuItem.ts"],"sourcesContent":["import { LitElement, html, unsafeCSS } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport SCSS from './overflowMenuItem.scss?inline';\nimport '../tooltip';\n\n/**\n * Overflow Menu.\n * @fires on-click - Captures the click event and emits the original event details.`detail:{ origEvent: PointerEvent }`\n * @slot unnamed - Slot for item text.\n */\n@customElement('kyn-overflow-menu-item')\nexport class OverflowMenuItem extends LitElement {\n static override styles = unsafeCSS(SCSS);\n\n /** Makes the item a link. */\n @property({ type: String })\n accessor href = '';\n\n /** Adds destructive styles. */\n @property({ type: Boolean })\n accessor destructive = false;\n\n /** Item disabled state. */\n @property({ type: Boolean })\n accessor disabled = false;\n\n /** Item description text for screen reader's */\n @property({ type: String })\n accessor description = '';\n\n /**\n * Has the menu items in the current oveflow menu.\n * @ignore\n */\n @state()\n accessor _menuItems: any;\n\n /**\n * Has the current oveflow menu.\n * @ignore\n */\n @state()\n accessor _menu: any;\n\n /**\n * Tracks if the item content is overflowing and needs a tooltip.\n * @ignore\n */\n @state()\n accessor isTruncated = false;\n\n /** Holds the text content for the title tooltip.\n * @ignore\n */\n @state()\n accessor tooltipText = '';\n\n /** Kind of the item, derived from parent.\n * @ignore\n */\n @state()\n accessor kind: 'ai' | 'default' = 'default';\n\n override render() {\n const classes = {\n 'overflow-menu-item': true,\n 'menu-item': true,\n [`ai-connected-${this.kind === 'ai'}`]: true,\n destructive: this.destructive,\n };\n\n const itemText = this.isTruncated ? this.tooltipText : '';\n\n if (this.href !== '') {\n return html`\n <a\n class=${classMap(classes)}\n href=${this.href}\n ?disabled=${this.disabled}\n @click=${(e: Event) => this.handleClick(e)}\n @keydown=${(e: Event) => this.handleKeyDown(e)}\n title=${itemText}\n >\n <span class=\"menu-item-inner-el text\"><slot></slot></span>\n ${this.destructive\n ? html`<span class=\"sr-only\">${this.description}</span>`\n : null}\n </a>\n `;\n } else {\n return html`\n <button\n class=${classMap(classes)}\n ?disabled=${this.disabled}\n @click=${(e: Event) => this.handleClick(e)}\n @keydown=${(e: Event) => this.handleKeyDown(e)}\n title=${itemText}\n >\n <span class=\"menu-item-inner-el text\"><slot></slot></span>\n ${this.destructive\n ? html`<span class=\"sr-only\">${this.description}</span>`\n : null}\n </button>\n `;\n }\n }\n\n override firstUpdated() {\n const parent = this.closest('kyn-overflow-menu');\n if (parent) {\n this._menuItems = parent.getMenuItems();\n this._menu = parent.getMenu();\n this.kind = parent.kind;\n\n parent.addEventListener('kind-changed', (e: Event) => {\n const customEvent = e as CustomEvent<'ai' | 'default'>;\n requestAnimationFrame(() => {\n this.kind = customEvent.detail;\n });\n });\n }\n this.checkOverflow();\n }\n\n private handleClick(e: Event) {\n const event = new CustomEvent('on-click', {\n detail: { origEvent: e },\n });\n this.dispatchEvent(event);\n }\n\n private handleKeyDown(e: any) {\n const DOWN_ARROW_KEY_CODE = 40;\n const UP_ARROW_KEY_CODE = 38;\n\n const menuItemsLength = this._menuItems.length;\n\n const activeEl = document.activeElement as Element | null;\n const activeIndex = this._menuItems.findIndex(\n (item: any) =>\n item === activeEl ||\n (item.shadowRoot && activeEl && item.shadowRoot.contains(activeEl))\n );\n\n switch (e.keyCode) {\n case DOWN_ARROW_KEY_CODE: {\n if (activeIndex < menuItemsLength - 1) {\n const nextItem = this._menuItems[activeIndex + 1];\n if (nextItem) {\n nextItem.shadowRoot?.querySelector('button')\n ? nextItem.shadowRoot?.querySelector('button')?.focus()\n : nextItem.shadowRoot?.querySelector('a')?.focus();\n }\n }\n return;\n }\n case UP_ARROW_KEY_CODE: {\n if (activeIndex > 0) {\n const prevItem = this._menuItems[activeIndex - 1];\n if (prevItem) {\n prevItem.shadowRoot?.querySelector('button')\n ? prevItem.shadowRoot?.querySelector('button')?.focus()\n : prevItem.shadowRoot?.querySelector('a')?.focus();\n }\n } else if (activeIndex === 0) {\n this._menu?.querySelector('button')?.focus();\n }\n return;\n }\n default: {\n return;\n }\n }\n }\n\n private checkOverflow() {\n const contentElement = this.shadowRoot?.querySelector('button, a');\n if (contentElement instanceof HTMLElement) {\n this.isTruncated =\n contentElement.scrollWidth > contentElement.offsetWidth;\n if (this.isTruncated) {\n let text = '';\n text += this.textContent?.trim();\n this.tooltipText = text;\n }\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-overflow-menu-item': OverflowMenuItem;\n }\n}\n"],"names":["OverflowMenuItem","customElement","LitElement","_classThis","_classSuper","href","__classPrivateFieldGet","this","_OverflowMenuItem_href_accessor_storage","value","__classPrivateFieldSet","destructive","_OverflowMenuItem_destructive_accessor_storage","disabled","_OverflowMenuItem_disabled_accessor_storage","description","_OverflowMenuItem_description_accessor_storage","_menuItems","_OverflowMenuItem__menuItems_accessor_storage","_menu","_OverflowMenuItem__menu_accessor_storage","isTruncated","_OverflowMenuItem_isTruncated_accessor_storage","tooltipText","_OverflowMenuItem_tooltipText_accessor_storage","kind","_OverflowMenuItem_kind_accessor_storage","render","classes","itemText","html","classMap","e","handleClick","handleKeyDown","firstUpdated","parent","closest","getMenuItems","getMenu","addEventListener","customEvent","requestAnimationFrame","detail","checkOverflow","event","CustomEvent","origEvent","dispatchEvent","menuItemsLength","length","activeEl","document","activeElement","activeIndex","findIndex","item","shadowRoot","contains","keyCode","nextItem","_a","querySelector","_c","_b","focus","_e","_d","prevItem","_f","_h","_g","_k","_j","_m","_l","contentElement","HTMLElement","scrollWidth","offsetWidth","text","textContent","trim","set","__runInitializers","_href_initializers","_href_extraInitializers","_destructive_initializers","_destructive_extraInitializers","_disabled_initializers","_disabled_extraInitializers","_description_initializers","_description_extraInitializers","__menuItems_initializers","__menuItems_extraInitializers","__menu_initializers","__menu_extraInitializers","_isTruncated_initializers","_isTruncated_extraInitializers","_tooltipText_initializers","_tooltipText_extraInitializers","_kind_initializers","_href_decorators","property","type","String","_destructive_decorators","Boolean","_disabled_decorators","_description_decorators","__menuItems_decorators","state","__menu_decorators","_isTruncated_decorators","_tooltipText_decorators","_kind_decorators","__esDecorate","name","static","private","access","has","obj","get","metadata","_metadata","_kind_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","SCSS"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"overflowMenuItem.js","sources":["../../../../src/components/reusable/overflowMenu/overflowMenuItem.ts"],"sourcesContent":["import { LitElement, html, unsafeCSS } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport SCSS from './overflowMenuItem.scss?inline';\nimport '../tooltip';\n\n/**\n * Overflow Menu.\n * @fires on-click - Captures the click event and emits the original event details.`detail:{ origEvent: PointerEvent }`\n * @slot unnamed - Slot for item text.\n */\n@customElement('kyn-overflow-menu-item')\nexport class OverflowMenuItem extends LitElement {\n static override styles = unsafeCSS(SCSS);\n\n /** Makes the item a link. */\n @property({ type: String })\n accessor href = '';\n\n /** Adds destructive styles. */\n @property({ type: Boolean })\n accessor destructive = false;\n\n /** Item disabled state. */\n @property({ type: Boolean })\n accessor disabled = false;\n\n /** Item description text for screen reader's */\n @property({ type: String })\n accessor description = '';\n\n /**\n * Has the menu items in the current oveflow menu.\n * @ignore\n */\n @state()\n accessor _menuItems: any;\n\n /**\n * Has the current oveflow menu.\n * @ignore\n */\n @state()\n accessor _menu: any;\n\n /**\n * Tracks if the item content is overflowing and needs a tooltip.\n * @ignore\n */\n @state()\n accessor isTruncated = false;\n\n /** Holds the text content for the title tooltip.\n * @ignore\n */\n @state()\n accessor tooltipText = '';\n\n /** Kind of the item, derived from parent.\n * @ignore\n */\n @state()\n accessor kind: 'ai' | 'default' = 'default';\n\n override render() {\n const classes = {\n 'overflow-menu-item': true,\n 'menu-item': true,\n [`ai-connected-${this.kind === 'ai'}`]: true,\n destructive: this.destructive,\n };\n\n const itemText = this.isTruncated ? this.tooltipText : '';\n\n if (this.href !== '') {\n return html`\n <a\n class=${classMap(classes)}\n href=${this.href}\n ?disabled=${this.disabled}\n @click=${(e: Event) => this.handleClick(e)}\n @keydown=${(e: Event) => this.handleKeyDown(e)}\n title=${itemText}\n >\n <span class=\"menu-item-inner-el text\"><slot></slot></span>\n ${this.destructive\n ? html`<span class=\"sr-only\">${this.description}</span>`\n : null}\n </a>\n `;\n } else {\n return html`\n <button\n class=${classMap(classes)}\n ?disabled=${this.disabled}\n @click=${(e: Event) => this.handleClick(e)}\n @keydown=${(e: Event) => this.handleKeyDown(e)}\n title=${itemText}\n >\n <span class=\"menu-item-inner-el text\"><slot></slot></span>\n ${this.destructive\n ? html`<span class=\"sr-only\">${this.description}</span>`\n : null}\n </button>\n `;\n }\n }\n\n override firstUpdated() {\n const parent = this.closest('kyn-overflow-menu');\n if (parent) {\n this._menuItems = parent.getMenuItems();\n this._menu = parent.getMenu();\n this.kind = parent.kind;\n\n parent.addEventListener('kind-changed', (e: Event) => {\n const customEvent = e as CustomEvent<'ai' | 'default'>;\n requestAnimationFrame(() => {\n this.kind = customEvent.detail;\n });\n });\n }\n this.checkOverflow();\n }\n\n private handleClick(e: Event) {\n const event = new CustomEvent('on-click', {\n detail: { origEvent: e },\n });\n this.dispatchEvent(event);\n }\n\n private handleKeyDown(e: any) {\n const DOWN_ARROW_KEY_CODE = 40;\n const UP_ARROW_KEY_CODE = 38;\n\n const menuItemsLength = this._menuItems.length;\n\n const activeEl = document.activeElement as Element | null;\n const activeIndex = this._menuItems.findIndex(\n (item: any) =>\n item === activeEl ||\n (item.shadowRoot && activeEl && item.shadowRoot.contains(activeEl))\n );\n\n switch (e.keyCode) {\n case DOWN_ARROW_KEY_CODE: {\n if (activeIndex < menuItemsLength - 1) {\n const nextItem = this._menuItems[activeIndex + 1];\n if (nextItem) {\n nextItem.shadowRoot?.querySelector('button')\n ? nextItem.shadowRoot?.querySelector('button')?.focus()\n : nextItem.shadowRoot?.querySelector('a')?.focus();\n }\n }\n return;\n }\n case UP_ARROW_KEY_CODE: {\n if (activeIndex > 0) {\n const prevItem = this._menuItems[activeIndex - 1];\n if (prevItem) {\n prevItem.shadowRoot?.querySelector('button')\n ? prevItem.shadowRoot?.querySelector('button')?.focus()\n : prevItem.shadowRoot?.querySelector('a')?.focus();\n }\n } else if (activeIndex === 0) {\n this._menu?.querySelector('button')?.focus();\n }\n return;\n }\n default: {\n return;\n }\n }\n }\n\n private checkOverflow() {\n const contentElement = this.shadowRoot?.querySelector('button, a');\n if (contentElement instanceof HTMLElement) {\n this.isTruncated =\n contentElement.scrollWidth > contentElement.offsetWidth;\n if (this.isTruncated) {\n let text = '';\n text += this.textContent?.trim();\n this.tooltipText = text;\n }\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-overflow-menu-item': OverflowMenuItem;\n }\n}\n"],"names":["OverflowMenuItem","customElement","LitElement","_classThis","_classSuper","href","__classPrivateFieldGet","this","_OverflowMenuItem_href_accessor_storage","value","__classPrivateFieldSet","destructive","_OverflowMenuItem_destructive_accessor_storage","disabled","_OverflowMenuItem_disabled_accessor_storage","description","_OverflowMenuItem_description_accessor_storage","_menuItems","_OverflowMenuItem__menuItems_accessor_storage","_menu","_OverflowMenuItem__menu_accessor_storage","isTruncated","_OverflowMenuItem_isTruncated_accessor_storage","tooltipText","_OverflowMenuItem_tooltipText_accessor_storage","kind","_OverflowMenuItem_kind_accessor_storage","render","classes","itemText","html","classMap","e","handleClick","handleKeyDown","firstUpdated","parent","closest","getMenuItems","getMenu","addEventListener","customEvent","requestAnimationFrame","detail","checkOverflow","event","CustomEvent","origEvent","dispatchEvent","menuItemsLength","length","activeEl","document","activeElement","activeIndex","findIndex","item","shadowRoot","contains","keyCode","nextItem","_a","querySelector","_c","_b","focus","_e","_d","prevItem","_f","_h","_g","_k","_j","_m","_l","contentElement","HTMLElement","scrollWidth","offsetWidth","text","textContent","trim","set","__runInitializers","_href_initializers","_href_extraInitializers","_destructive_initializers","_destructive_extraInitializers","_disabled_initializers","_disabled_extraInitializers","_description_initializers","_description_extraInitializers","__menuItems_initializers","__menuItems_extraInitializers","__menu_initializers","__menu_extraInitializers","_isTruncated_initializers","_isTruncated_extraInitializers","_tooltipText_initializers","_tooltipText_extraInitializers","_kind_initializers","_href_decorators","property","type","String","_destructive_decorators","Boolean","_disabled_decorators","_description_decorators","__menuItems_decorators","state","__menu_decorators","_isTruncated_decorators","_tooltipText_decorators","_kind_decorators","__esDecorate","name","static","private","access","has","obj","get","metadata","_metadata","_kind_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","SCSS"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination-navigation-buttons.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/pagination/pagination-navigation-buttons.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,UAAU,EAAa,MAAM,KAAK,CAAC;AAIlD,OAAO,WAAW,CAAC;AACnB,OAAO,aAAa,CAAC;AAOrB;;;;;;;GAOG;AACH,qBACa,2BAA4B,SAAQ,UAAU;IACzD,OAAgB,MAAM,0BAAqB;IAI3C,QAAQ,CAAC,UAAU,SAAK;IAIxB,QAAQ,CAAC,aAAa,SAAK;IAE3B;;OAEG;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAM;IAE/B,6CAA6C;IAE7C,QAAQ,CAAC,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;IAG/C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAK;IAE1C;;OAEG;IAEH,QAAQ,CAAC,eAAe,SAAiB;IAEzC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAczB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAYX,MAAM;
|
|
1
|
+
{"version":3,"file":"pagination-navigation-buttons.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/pagination/pagination-navigation-buttons.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,UAAU,EAAa,MAAM,KAAK,CAAC;AAIlD,OAAO,WAAW,CAAC;AACnB,OAAO,aAAa,CAAC;AAOrB;;;;;;;GAOG;AACH,qBACa,2BAA4B,SAAQ,UAAU;IACzD,OAAgB,MAAM,0BAAqB;IAI3C,QAAQ,CAAC,UAAU,SAAK;IAIxB,QAAQ,CAAC,aAAa,SAAK;IAE3B;;OAEG;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAM;IAE/B,6CAA6C;IAE7C,QAAQ,CAAC,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;IAG/C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAK;IAE1C;;OAEG;IAEH,QAAQ,CAAC,eAAe,SAAiB;IAEzC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAczB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAYX,MAAM;IAsDN,UAAU,CAAC,YAAY,EAAE,GAAG;CAQtC;AAGD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mCAAmC,EAAE,2BAA2B,CAAC;KAClE;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{o as s,x as r}from"../../../vendor/lit-html-BRBT5o_V.js";import{i as o,a as m,t as p,r as d,n as l}from"../../../vendor/@lit/reactive-element-f91Vet7N.js";import{i as
|
|
1
|
+
import{_ as e,a as t,b as i,c as a,d as n}from"../../../vendor/tslib-Ac8XvvSX.js";import{o as s,x as r}from"../../../vendor/lit-html-BRBT5o_V.js";import{i as o,a as m,t as p,r as d,n as l}from"../../../vendor/@lit/reactive-element-f91Vet7N.js";import{i as g}from"../../../vendor/lit-element-m-OqzV5s.js";import"../button/button.js";import"../dropdown/dropdown.js";import"../dropdown/dropdownOption.js";import"../dropdown/dropdownCategory.js";import"../dropdown/enhancedDropdownOption.js";import{j as h,b}from"../../../vendor/@kyndryl-design-system/shidoka-icons-bi0_OAYf.js";import"../../../common/helpers/helpers.js";import"../button/defs.js";import"../../../common/mixins/form-input.js";import"../../../vendor/deepmerge-ts-OFb5ej8y.js";import"../tag/tag.js";import"../../../tag-B2B6WTaT.js";import"../tag/tagGroup.js";import"../link/link.js";import"../link/defs.js";import"../tag/tag.skeleton.js";import"../loaders/skeleton.js";import"../checkbox/checkbox.js";import"../checkbox/checkboxGroup.js";import"../textInput/textInput.js";import"../checkbox/checkboxSubgroup.js";var u=o`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
box-sizing: border-box;
|
|
@@ -84,7 +84,7 @@ import{_ as e,a as t,b as i,c as a,d as n}from"../../../vendor/tslib-Ac8XvvSX.js
|
|
|
84
84
|
|
|
85
85
|
span[slot=icon] {
|
|
86
86
|
display: flex;
|
|
87
|
-
}`;let c=(()=>{var o,c,k,f,v;let y,x,w,N,j,O,S,$=[p("kyn-pagination-navigation-buttons")],P=[],z=
|
|
87
|
+
}`;let c=(()=>{var o,c,k,f,v;let y,x,w,N,j,O,S,$=[p("kyn-pagination-navigation-buttons")],P=[],z=g,L=[],E=[],M=[],C=[],B=[],A=[],W=[],_=[],G=[],U=[];return x=class extends z{get pageNumber(){return a(this,o,"f")}set pageNumber(e){n(this,o,e,"f")}get numberOfPages(){return a(this,c,"f")}set numberOfPages(e){n(this,c,e,"f")}get textStrings(){return a(this,k,"f")}set textStrings(e){n(this,k,e,"f")}get pageNumberOptions(){return a(this,f,"f")}set pageNumberOptions(e){n(this,f,e,"f")}get pageNumberLabel(){return a(this,v,"f")}set pageNumberLabel(e){n(this,v,e,"f")}handleButtonClick(e){const t=e?this.pageNumber+1:this.pageNumber-1;this.pageNumber=t,this.dispatchEvent(new CustomEvent("on-page-number-change",{detail:{value:t},bubbles:!0,composed:!0}))}handleChange(e){this.pageNumber=e.detail.value,this.dispatchEvent(new CustomEvent("on-page-number-change",{detail:{value:Number(e.detail.value)},bubbles:!0,composed:!0}))}render(){const e=this.pageNumber<=this.SMALLEST_PAGE_NUMBER,t=this.pageNumber>=this.numberOfPages;return r`
|
|
88
88
|
<kyn-button
|
|
89
89
|
iconposition="center"
|
|
90
90
|
kind="ghost"
|
|
@@ -94,12 +94,13 @@ span[slot=icon] {
|
|
|
94
94
|
@on-click=${()=>this.handleButtonClick(!1)}
|
|
95
95
|
description=${this.textStrings.previousPage}
|
|
96
96
|
>
|
|
97
|
-
<span slot="icon">${s(
|
|
97
|
+
<span slot="icon">${s(h)}</span>
|
|
98
98
|
</kyn-button>
|
|
99
99
|
|
|
100
100
|
<span class="page-range" role="status" aria-live="polite">
|
|
101
101
|
<kyn-dropdown
|
|
102
102
|
name="page-number"
|
|
103
|
+
class="pagination-dropdown"
|
|
103
104
|
label="${this.pageNumberLabel}"
|
|
104
105
|
?hideLabel=${!0}
|
|
105
106
|
inline
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination-navigation-buttons.js","sources":["../../../../src/components/reusable/pagination/pagination-navigation-buttons.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { html, LitElement, unsafeCSS } from 'lit';\nimport { property, customElement, state } from 'lit/decorators.js';\n\n// Import required components and icons\nimport '../button';\nimport '../dropdown';\nimport chevLeftIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-left.svg';\nimport chevRightIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-right.svg';\n\nimport styles from './pagination-navigation-buttons.scss?inline';\n// import { OF_TEXT, PAGES_TEXT } from './constants';\n\n/**\n * `kyn-pagination-navigation-buttons` Web Component.\n *\n * This component provides navigational controls for pagination.\n * It includes back and next buttons, along with displaying the current page and total pages.\n *\n * @fires on-page-number-change - Dispatched when the page number is changed.\n */\n@customElement('kyn-pagination-navigation-buttons')\nexport class PaginationNavigationButtons extends LitElement {\n static override styles = unsafeCSS(styles);\n\n // Current page number, defaults to 0\n @property({ type: Number, reflect: true })\n accessor pageNumber = 1;\n\n // Total number of pages, defaults to 0\n @property({ type: Number, reflect: true })\n accessor numberOfPages = 1;\n\n /** Customizable text strings. Inherited from parent\n * @internal\n */\n @property({ type: Object })\n accessor textStrings: any = {};\n\n /** Available options for the page number. */\n @state()\n accessor pageNumberOptions: Array<number> = [];\n\n // Constant representing the smallest possible page number\n private readonly SMALLEST_PAGE_NUMBER = 1;\n\n /** Label for the page size dropdown. Required for accessibility.\n * @internal\n */\n @property({ type: String })\n accessor pageNumberLabel = 'Page number';\n\n /**\n * Handles the button click event, either moving to the next page or previous page\n * @param {boolean} next - If true, will move to the next page, otherwise to the previous page\n */\n private handleButtonClick(next: boolean) {\n const currentPage = next ? this.pageNumber + 1 : this.pageNumber - 1;\n this.pageNumber = currentPage;\n\n // Dispatch a custom event to notify about the page change\n this.dispatchEvent(\n new CustomEvent('on-page-number-change', {\n detail: { value: currentPage },\n bubbles: true, // Allows parent components to catch it\n composed: true, // Required for the event to pass through the Shadow DOM boundary\n })\n );\n }\n\n /**\n * Handles the dropdown change event.\n * @param {CustomEvent} event\n */\n private handleChange(event: CustomEvent) {\n this.pageNumber = event.detail.value;\n\n this.dispatchEvent(\n new CustomEvent('on-page-number-change', {\n detail: { value: Number(event.detail.value) },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n override render() {\n const disableBackButton = this.pageNumber <= this.SMALLEST_PAGE_NUMBER;\n const disableNextButton = this.pageNumber >= this.numberOfPages;\n\n // Render back button, current page number, and next button\n return html`\n <kyn-button\n iconposition=\"center\"\n kind=\"ghost\"\n type=\"button\"\n size=\"small\"\n ?disabled=${disableBackButton}\n @on-click=${() => this.handleButtonClick(false)}\n description=${this.textStrings.previousPage}\n >\n <span slot=\"icon\">${unsafeSVG(chevLeftIcon)}</span>\n </kyn-button>\n\n <span class=\"page-range\" role=\"status\" aria-live=\"polite\">\n <kyn-dropdown\n name=\"page-number\"\n label=\"${this.pageNumberLabel}\"\n ?hideLabel=${true}\n inline\n size=\"sm\"\n value=\"${this.pageNumber.toString()}\"\n @on-change=${(e: CustomEvent) => this.handleChange(e)}\n >\n ${this.pageNumberOptions.map((option) => {\n return html`\n <kyn-dropdown-option value=\"${option.toString()}\">\n ${option.toString()}\n </kyn-dropdown-option>\n `;\n })}\n </kyn-dropdown>\n ${this.textStrings.of} ${this.numberOfPages} ${this.textStrings.pages}\n </span>\n\n <kyn-button\n iconposition=\"center\"\n kind=\"ghost\"\n type=\"button\"\n size=\"small\"\n ?disabled=${disableNextButton}\n @on-click=${() => this.handleButtonClick(true)}\n description=${this.textStrings.nextPage}\n >\n <span slot=\"icon\">${unsafeSVG(chevRightIcon)}</span>\n </kyn-button>\n `;\n }\n\n override willUpdate(changedProps: any) {\n if (changedProps.has('numberOfPages')) {\n this.pageNumberOptions = Array.from(\n { length: this.numberOfPages },\n (_, i) => i + 1\n );\n }\n }\n}\n\n// Define the custom element in the global namespace\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-pagination-navigation-buttons': PaginationNavigationButtons;\n }\n}\n"],"names":["PaginationNavigationButtons","customElement","LitElement","_classThis","_classSuper","pageNumber","__classPrivateFieldGet","this","_PaginationNavigationButtons_pageNumber_accessor_storage","value","__classPrivateFieldSet","numberOfPages","_PaginationNavigationButtons_numberOfPages_accessor_storage","textStrings","_PaginationNavigationButtons_textStrings_accessor_storage","pageNumberOptions","_PaginationNavigationButtons_pageNumberOptions_accessor_storage","pageNumberLabel","_PaginationNavigationButtons_pageNumberLabel_accessor_storage","handleButtonClick","next","currentPage","dispatchEvent","CustomEvent","detail","bubbles","composed","handleChange","event","Number","render","disableBackButton","SMALLEST_PAGE_NUMBER","disableNextButton","html","previousPage","unsafeSVG","chevLeftIcon","toString","e","map","option","of","pages","nextPage","chevRightIcon","willUpdate","changedProps","has","Array","from","length","_","i","set","__runInitializers","_pageNumber_initializers","_pageNumber_extraInitializers","_numberOfPages_initializers","_numberOfPages_extraInitializers","_textStrings_initializers","_textStrings_extraInitializers","_pageNumberOptions_initializers","_pageNumberOptions_extraInitializers","_pageNumberLabel_initializers","property","type","reflect","_textStrings_decorators","Object","_pageNumberOptions_decorators","state","_pageNumberLabel_decorators","String","__esDecorate","_pageNumber_decorators","kind","name","static","private","access","obj","get","metadata","_metadata","_numberOfPages_decorators","_pageNumberLabel_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pagination-navigation-buttons.js","sources":["../../../../src/components/reusable/pagination/pagination-navigation-buttons.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { html, LitElement, unsafeCSS } from 'lit';\nimport { property, customElement, state } from 'lit/decorators.js';\n\n// Import required components and icons\nimport '../button';\nimport '../dropdown';\nimport chevLeftIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-left.svg';\nimport chevRightIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-right.svg';\n\nimport styles from './pagination-navigation-buttons.scss?inline';\n// import { OF_TEXT, PAGES_TEXT } from './constants';\n\n/**\n * `kyn-pagination-navigation-buttons` Web Component.\n *\n * This component provides navigational controls for pagination.\n * It includes back and next buttons, along with displaying the current page and total pages.\n *\n * @fires on-page-number-change - Dispatched when the page number is changed.\n */\n@customElement('kyn-pagination-navigation-buttons')\nexport class PaginationNavigationButtons extends LitElement {\n static override styles = unsafeCSS(styles);\n\n // Current page number, defaults to 0\n @property({ type: Number, reflect: true })\n accessor pageNumber = 1;\n\n // Total number of pages, defaults to 0\n @property({ type: Number, reflect: true })\n accessor numberOfPages = 1;\n\n /** Customizable text strings. Inherited from parent\n * @internal\n */\n @property({ type: Object })\n accessor textStrings: any = {};\n\n /** Available options for the page number. */\n @state()\n accessor pageNumberOptions: Array<number> = [];\n\n // Constant representing the smallest possible page number\n private readonly SMALLEST_PAGE_NUMBER = 1;\n\n /** Label for the page size dropdown. Required for accessibility.\n * @internal\n */\n @property({ type: String })\n accessor pageNumberLabel = 'Page number';\n\n /**\n * Handles the button click event, either moving to the next page or previous page\n * @param {boolean} next - If true, will move to the next page, otherwise to the previous page\n */\n private handleButtonClick(next: boolean) {\n const currentPage = next ? this.pageNumber + 1 : this.pageNumber - 1;\n this.pageNumber = currentPage;\n\n // Dispatch a custom event to notify about the page change\n this.dispatchEvent(\n new CustomEvent('on-page-number-change', {\n detail: { value: currentPage },\n bubbles: true, // Allows parent components to catch it\n composed: true, // Required for the event to pass through the Shadow DOM boundary\n })\n );\n }\n\n /**\n * Handles the dropdown change event.\n * @param {CustomEvent} event\n */\n private handleChange(event: CustomEvent) {\n this.pageNumber = event.detail.value;\n\n this.dispatchEvent(\n new CustomEvent('on-page-number-change', {\n detail: { value: Number(event.detail.value) },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n override render() {\n const disableBackButton = this.pageNumber <= this.SMALLEST_PAGE_NUMBER;\n const disableNextButton = this.pageNumber >= this.numberOfPages;\n\n // Render back button, current page number, and next button\n return html`\n <kyn-button\n iconposition=\"center\"\n kind=\"ghost\"\n type=\"button\"\n size=\"small\"\n ?disabled=${disableBackButton}\n @on-click=${() => this.handleButtonClick(false)}\n description=${this.textStrings.previousPage}\n >\n <span slot=\"icon\">${unsafeSVG(chevLeftIcon)}</span>\n </kyn-button>\n\n <span class=\"page-range\" role=\"status\" aria-live=\"polite\">\n <kyn-dropdown\n name=\"page-number\"\n class=\"pagination-dropdown\"\n label=\"${this.pageNumberLabel}\"\n ?hideLabel=${true}\n inline\n size=\"sm\"\n value=\"${this.pageNumber.toString()}\"\n @on-change=${(e: CustomEvent) => this.handleChange(e)}\n >\n ${this.pageNumberOptions.map((option) => {\n return html`\n <kyn-dropdown-option value=\"${option.toString()}\">\n ${option.toString()}\n </kyn-dropdown-option>\n `;\n })}\n </kyn-dropdown>\n ${this.textStrings.of} ${this.numberOfPages} ${this.textStrings.pages}\n </span>\n\n <kyn-button\n iconposition=\"center\"\n kind=\"ghost\"\n type=\"button\"\n size=\"small\"\n ?disabled=${disableNextButton}\n @on-click=${() => this.handleButtonClick(true)}\n description=${this.textStrings.nextPage}\n >\n <span slot=\"icon\">${unsafeSVG(chevRightIcon)}</span>\n </kyn-button>\n `;\n }\n\n override willUpdate(changedProps: any) {\n if (changedProps.has('numberOfPages')) {\n this.pageNumberOptions = Array.from(\n { length: this.numberOfPages },\n (_, i) => i + 1\n );\n }\n }\n}\n\n// Define the custom element in the global namespace\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-pagination-navigation-buttons': PaginationNavigationButtons;\n }\n}\n"],"names":["PaginationNavigationButtons","customElement","LitElement","_classThis","_classSuper","pageNumber","__classPrivateFieldGet","this","_PaginationNavigationButtons_pageNumber_accessor_storage","value","__classPrivateFieldSet","numberOfPages","_PaginationNavigationButtons_numberOfPages_accessor_storage","textStrings","_PaginationNavigationButtons_textStrings_accessor_storage","pageNumberOptions","_PaginationNavigationButtons_pageNumberOptions_accessor_storage","pageNumberLabel","_PaginationNavigationButtons_pageNumberLabel_accessor_storage","handleButtonClick","next","currentPage","dispatchEvent","CustomEvent","detail","bubbles","composed","handleChange","event","Number","render","disableBackButton","SMALLEST_PAGE_NUMBER","disableNextButton","html","previousPage","unsafeSVG","chevLeftIcon","toString","e","map","option","of","pages","nextPage","chevRightIcon","willUpdate","changedProps","has","Array","from","length","_","i","set","__runInitializers","_pageNumber_initializers","_pageNumber_extraInitializers","_numberOfPages_initializers","_numberOfPages_extraInitializers","_textStrings_initializers","_textStrings_extraInitializers","_pageNumberOptions_initializers","_pageNumberOptions_extraInitializers","_pageNumberLabel_initializers","property","type","reflect","_textStrings_decorators","Object","_pageNumberOptions_decorators","state","_pageNumberLabel_decorators","String","__esDecorate","_pageNumber_decorators","kind","name","static","private","access","obj","get","metadata","_metadata","_numberOfPages_decorators","_pageNumberLabel_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination-page-size-dropdown.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/pagination/pagination-page-size-dropdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAa,MAAM,KAAK,CAAC;AAGlD,OAAO,sBAAsB,CAAC;AAC9B,OAAO,4BAA4B,CAAC;AAKpC;;;;;;;GAOG;AACH,qBACa,0BAA2B,SAAQ,UAAU;IACxD,OAAgB,MAAM,0BAAqB;IAE3C,yBAAyB;IAEzB,QAAQ,CAAC,QAAQ,SAAK;IAEtB,2CAA2C;IAE3C,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAA2B;IAElE;;OAEG;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAM;IAE/B;;OAEG;IAEH,QAAQ,CAAC,qBAAqB,SAAoB;IAElD;;;OAGG;IACH,OAAO,CAAC,YAAY;IAcX,MAAM;
|
|
1
|
+
{"version":3,"file":"pagination-page-size-dropdown.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/pagination/pagination-page-size-dropdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAa,MAAM,KAAK,CAAC;AAGlD,OAAO,sBAAsB,CAAC;AAC9B,OAAO,4BAA4B,CAAC;AAKpC;;;;;;;GAOG;AACH,qBACa,0BAA2B,SAAQ,UAAU;IACxD,OAAgB,MAAM,0BAAqB;IAE3C,yBAAyB;IAEzB,QAAQ,CAAC,QAAQ,SAAK;IAEtB,2CAA2C;IAE3C,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAA2B;IAElE;;OAEG;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAM;IAE/B;;OAEG;IAEH,QAAQ,CAAC,qBAAqB,SAAoB;IAElD;;;OAGG;IACH,OAAO,CAAC,YAAY;IAcX,MAAM;CAwBhB;AAGD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mCAAmC,EAAE,0BAA0B,CAAC;KACjE;CACF"}
|
|
@@ -68,6 +68,7 @@ import{_ as e,a as t,b as i,c as a,d as o}from"../../../vendor/tslib-Ac8XvvSX.js
|
|
|
68
68
|
<label> ${this.textStrings.itemsPerPage} </label>
|
|
69
69
|
<kyn-dropdown
|
|
70
70
|
name="page-size"
|
|
71
|
+
class="pagination-dropdown"
|
|
71
72
|
label="${this.pageSizeDropdownLabel}"
|
|
72
73
|
inline
|
|
73
74
|
size="sm"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination-page-size-dropdown.js","sources":["../../../../src/components/reusable/pagination/pagination-page-size-dropdown.ts"],"sourcesContent":["import { html, LitElement, unsafeCSS } from 'lit';\nimport { property, customElement } from 'lit/decorators.js';\n\nimport '../dropdown/dropdown';\nimport '../dropdown/dropdownOption';\n\nimport styles from './pagination-page-size-dropdown.scss?inline';\n// import { PAGE_SIZE_LABEL } from './constants';\n\n/**\n * `kyn-pagination-page-size-dropdown` Web Component.\n *\n * This component provides a dropdown to select the page size for pagination.\n * It emits events when the selected page size changes.\n *\n * @fires on-page-size-change - The event fired when the page size changes.\n */\n@customElement('kyn-pagination-page-size-dropdown')\nexport class PaginationPageSizeDropdown extends LitElement {\n static override styles = unsafeCSS(styles);\n\n /** Current page size. */\n @property({ type: Number, reflect: true })\n accessor pageSize = 5;\n\n /** Available options for the page size. */\n @property({ type: Array })\n accessor pageSizeOptions: Array<number> = [5, 10, 20, 30, 40, 50];\n\n /** Customizable text strings. Inherited from parent\n * @internal\n */\n @property({ type: Object })\n accessor textStrings: any = {};\n\n /** Label for the page size dropdown. Required for accessibility.\n * @internal\n */\n @property({ type: String })\n accessor pageSizeDropdownLabel = 'Items per page';\n\n /**\n * Handles the dropdown change event.\n * @param {CustomEvent} event - The dropdown change event.\n */\n private handleChange(event: CustomEvent) {\n this.pageSize = event.detail.value;\n\n // this.shadowRoot?.querySelector('kyn-dropdown')?.resetSelection();\n\n this.dispatchEvent(\n new CustomEvent('on-page-size-change', {\n detail: { value: Number(event.detail.value) },\n bubbles: true, // So that parent components can catch it\n composed: true, // Required for the event to pass through the Shadow DOM boundary\n })\n );\n }\n\n override render() {\n return html`\n <label> ${this.textStrings.itemsPerPage} </label>\n <kyn-dropdown\n name=\"page-size\"\n label=\"${this.pageSizeDropdownLabel}\"\n inline\n size=\"sm\"\n value=${this.pageSize.toString()}\n @on-change=${(e: CustomEvent) => this.handleChange(e)}\n >\n <span slot=\"label\">${this.textStrings.itemsPerPage}</span>\n\n ${this.pageSizeOptions.map((option) => {\n return html`\n <kyn-dropdown-option value=${option}>\n ${option}\n </kyn-dropdown-option>\n `;\n })}\n </kyn-dropdown>\n `;\n }\n}\n\n// Define the custom element in the global namespace\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-pagination-page-size-dropdown': PaginationPageSizeDropdown;\n }\n}\n"],"names":["PaginationPageSizeDropdown","customElement","LitElement","_classThis","_classSuper","pageSize","__classPrivateFieldGet","this","_PaginationPageSizeDropdown_pageSize_accessor_storage","value","__classPrivateFieldSet","pageSizeOptions","_PaginationPageSizeDropdown_pageSizeOptions_accessor_storage","textStrings","_PaginationPageSizeDropdown_textStrings_accessor_storage","pageSizeDropdownLabel","_PaginationPageSizeDropdown_pageSizeDropdownLabel_accessor_storage","handleChange","event","detail","dispatchEvent","CustomEvent","Number","bubbles","composed","render","html","itemsPerPage","toString","e","map","option","set","__runInitializers","_pageSize_initializers","_pageSize_extraInitializers","_pageSizeOptions_initializers","_pageSizeOptions_extraInitializers","_textStrings_initializers","_textStrings_extraInitializers","_pageSizeDropdownLabel_initializers","property","type","reflect","_pageSizeOptions_decorators","Array","_textStrings_decorators","Object","_pageSizeDropdownLabel_decorators","String","__esDecorate","_pageSize_decorators","kind","name","static","private","access","has","obj","get","metadata","_metadata","_pageSizeDropdownLabel_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkBaA,EAA0B,qCADtCC,EAAc,6CACiCC,iDAARC,EAAA,cAAQC,EAK9C,YAASC,GAAQ,OAAAC,EAAAC,KAAAC,EAAA,IAAA,CAAjB,YAASH,CAAQI,GAAAC,EAAAH,KAAAC,EAAAC,EAAA,IAAA,CAIjB,mBAASE,GAAe,OAAAL,EAAAC,KAAAK,EAAA,IAAA,CAAxB,mBAASD,CAAeF,GAAAC,EAAAH,KAAAK,EAAAH,EAAA,IAAA,CAMxB,eAASI,GAAW,OAAAP,EAAAC,KAAAO,EAAA,IAAA,CAApB,eAASD,CAAWJ,GAAAC,EAAAH,KAAAO,EAAAL,EAAA,IAAA,CAMpB,yBAASM,GAAqB,OAAAT,EAAAC,KAAAS,EAAA,IAAA,CAA9B,yBAASD,CAAqBN,GAAAC,EAAAH,KAAAS,EAAAP,EAAA,IAAA,CAMtB,YAAAQ,CAAaC,GACnBX,KAAKF,SAAWa,EAAMC,OAAOV,MAI7BF,KAAKa,cACH,IAAIC,YAAY,sBAAuB,CACrCF,OAAQ,CAAEV,MAAOa,OAAOJ,EAAMC,OAAOV,QACrCc,SAAS,EACTC,UAAU,KAKP,MAAAC,GACP,OAAOC,CAAI;gBACCnB,KAAKM,YAAYc
|
|
1
|
+
{"version":3,"file":"pagination-page-size-dropdown.js","sources":["../../../../src/components/reusable/pagination/pagination-page-size-dropdown.ts"],"sourcesContent":["import { html, LitElement, unsafeCSS } from 'lit';\nimport { property, customElement } from 'lit/decorators.js';\n\nimport '../dropdown/dropdown';\nimport '../dropdown/dropdownOption';\n\nimport styles from './pagination-page-size-dropdown.scss?inline';\n// import { PAGE_SIZE_LABEL } from './constants';\n\n/**\n * `kyn-pagination-page-size-dropdown` Web Component.\n *\n * This component provides a dropdown to select the page size for pagination.\n * It emits events when the selected page size changes.\n *\n * @fires on-page-size-change - The event fired when the page size changes.\n */\n@customElement('kyn-pagination-page-size-dropdown')\nexport class PaginationPageSizeDropdown extends LitElement {\n static override styles = unsafeCSS(styles);\n\n /** Current page size. */\n @property({ type: Number, reflect: true })\n accessor pageSize = 5;\n\n /** Available options for the page size. */\n @property({ type: Array })\n accessor pageSizeOptions: Array<number> = [5, 10, 20, 30, 40, 50];\n\n /** Customizable text strings. Inherited from parent\n * @internal\n */\n @property({ type: Object })\n accessor textStrings: any = {};\n\n /** Label for the page size dropdown. Required for accessibility.\n * @internal\n */\n @property({ type: String })\n accessor pageSizeDropdownLabel = 'Items per page';\n\n /**\n * Handles the dropdown change event.\n * @param {CustomEvent} event - The dropdown change event.\n */\n private handleChange(event: CustomEvent) {\n this.pageSize = event.detail.value;\n\n // this.shadowRoot?.querySelector('kyn-dropdown')?.resetSelection();\n\n this.dispatchEvent(\n new CustomEvent('on-page-size-change', {\n detail: { value: Number(event.detail.value) },\n bubbles: true, // So that parent components can catch it\n composed: true, // Required for the event to pass through the Shadow DOM boundary\n })\n );\n }\n\n override render() {\n return html`\n <label> ${this.textStrings.itemsPerPage} </label>\n <kyn-dropdown\n name=\"page-size\"\n class=\"pagination-dropdown\"\n label=\"${this.pageSizeDropdownLabel}\"\n inline\n size=\"sm\"\n value=${this.pageSize.toString()}\n @on-change=${(e: CustomEvent) => this.handleChange(e)}\n >\n <span slot=\"label\">${this.textStrings.itemsPerPage}</span>\n\n ${this.pageSizeOptions.map((option) => {\n return html`\n <kyn-dropdown-option value=${option}>\n ${option}\n </kyn-dropdown-option>\n `;\n })}\n </kyn-dropdown>\n `;\n }\n}\n\n// Define the custom element in the global namespace\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-pagination-page-size-dropdown': PaginationPageSizeDropdown;\n }\n}\n"],"names":["PaginationPageSizeDropdown","customElement","LitElement","_classThis","_classSuper","pageSize","__classPrivateFieldGet","this","_PaginationPageSizeDropdown_pageSize_accessor_storage","value","__classPrivateFieldSet","pageSizeOptions","_PaginationPageSizeDropdown_pageSizeOptions_accessor_storage","textStrings","_PaginationPageSizeDropdown_textStrings_accessor_storage","pageSizeDropdownLabel","_PaginationPageSizeDropdown_pageSizeDropdownLabel_accessor_storage","handleChange","event","detail","dispatchEvent","CustomEvent","Number","bubbles","composed","render","html","itemsPerPage","toString","e","map","option","set","__runInitializers","_pageSize_initializers","_pageSize_extraInitializers","_pageSizeOptions_initializers","_pageSizeOptions_extraInitializers","_textStrings_initializers","_textStrings_extraInitializers","_pageSizeDropdownLabel_initializers","property","type","reflect","_pageSizeOptions_decorators","Array","_textStrings_decorators","Object","_pageSizeDropdownLabel_decorators","String","__esDecorate","_pageSize_decorators","kind","name","static","private","access","has","obj","get","metadata","_metadata","_pageSizeDropdownLabel_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS"],"mappings":"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"}
|