@kyndryl-design-system/shidoka-applications 2.107.0 → 2.107.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/reusable/splitButton/splitButton.d.ts +21 -0
- package/components/reusable/splitButton/splitButton.d.ts.map +1 -1
- package/components/reusable/splitButton/splitButton.js +16 -10
- package/components/reusable/splitButton/splitButton.js.map +1 -1
- package/components/reusable/splitButton/splitButtonOption.d.ts.map +1 -1
- package/components/reusable/splitButton/splitButtonOption.js +286 -21
- package/components/reusable/splitButton/splitButtonOption.js.map +1 -1
- package/components/reusable/tag/tag.d.ts +1 -3
- package/components/reusable/tag/tag.d.ts.map +1 -1
- package/components/reusable/tag/tag.js +2 -2
- package/components/reusable/tag/tag.js.map +1 -1
- package/custom-elements.json +1 -0
- package/package.json +1 -1
|
@@ -46,11 +46,26 @@ export declare class SplitButton extends LitElement {
|
|
|
46
46
|
* @ignore
|
|
47
47
|
*/
|
|
48
48
|
accessor _openUpwards: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Anchor the menu to the right edge of the button (opens toward the left).
|
|
51
|
+
* @ignore
|
|
52
|
+
*/
|
|
53
|
+
accessor _openLeftwards: boolean;
|
|
49
54
|
/**
|
|
50
55
|
* Queries the .select DOM element.
|
|
51
56
|
* @ignore
|
|
52
57
|
*/
|
|
53
58
|
accessor buttonEl: HTMLElement;
|
|
59
|
+
/**
|
|
60
|
+
* Queries the .split-btn-wrapper DOM element.
|
|
61
|
+
* @ignore
|
|
62
|
+
*/
|
|
63
|
+
accessor _wrapperEl: HTMLElement;
|
|
64
|
+
/**
|
|
65
|
+
* Queries the .options menu DOM element.
|
|
66
|
+
* @ignore
|
|
67
|
+
*/
|
|
68
|
+
accessor _menuEl: HTMLElement;
|
|
54
69
|
/**
|
|
55
70
|
* Assistive text for screen readers.
|
|
56
71
|
* @ignore
|
|
@@ -58,6 +73,12 @@ export declare class SplitButton extends LitElement {
|
|
|
58
73
|
accessor assistiveText: string;
|
|
59
74
|
render(): import("lit-html").TemplateResult<1>;
|
|
60
75
|
updated(changedProps: any): void;
|
|
76
|
+
/**
|
|
77
|
+
* Repositions the menu so it stays within the viewport: opens upwards when
|
|
78
|
+
* near the bottom edge and anchors to the right (opens leftwards) when a
|
|
79
|
+
* left-aligned menu would overflow the right edge, preventing page scroll.
|
|
80
|
+
*/
|
|
81
|
+
private _positionMenu;
|
|
61
82
|
private handleListBlur;
|
|
62
83
|
private handleButtonKeydown;
|
|
63
84
|
private handleListKeydown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"splitButton.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/splitButton/splitButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAYlD,OAAO,EACL,eAAe,EACf,eAAe,EACf,wBAAwB,EACzB,MAAM,QAAQ,CAAC;AAChB,OAAO,qBAAqB,CAAC;AAK7B;;;;;GAKG;AAEH,qBACa,WAAY,SAAQ,UAAU;IACzC,OAAgB,MAAM,0BAA8B;IAEpD,cAAc;IACd,OAAgB,iBAAiB;;;;;MAG/B;IAEF,oDAAoD;IAEpD,QAAQ,CAAC,WAAW,SAAM;IAE1B,yBAAyB;IAEzB,QAAQ,CAAC,IAAI,SAAM;IAEnB,gEAAgE;IAEhE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAA+B;IAE7D,8CAA8C;IAE9C,QAAQ,CAAC,IAAI,EAAE,eAAe,CAA0B;IAExD,uIAAuI;IAEvI,QAAQ,CAAC,YAAY,EAAE,wBAAwB,CACf;IAEhC,mCAAmC;IAEnC,QAAQ,CAAC,KAAK,SAAM;IAEpB,kDAAkD;IAElD,QAAQ,CAAC,QAAQ,UAAS;IAE1B,qEAAqE;IAErE,QAAQ,CAAC,WAAW,UAAS;IAE7B,gCAAgC;IAEhC,QAAQ,CAAC,YAAY,SAAa;IAElC,+BAA+B;IAE/B,QAAQ,CAAC,IAAI,UAAS;IAEtB;;;OAGG;IAEH,QAAQ,CAAC,OAAO,EAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAE9B;;;OAGG;IAEH,QAAQ,CAAC,YAAY,UAAS;IAE9B;;;OAGG;IAEH,QAAQ,CAAC,QAAQ,EAAG,WAAW,CAAC;IAEhC;;;OAGG;IAEH,QAAQ,CAAC,aAAa,SAAgC;IAE7C,MAAM;
|
|
1
|
+
{"version":3,"file":"splitButton.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/splitButton/splitButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAYlD,OAAO,EACL,eAAe,EACf,eAAe,EACf,wBAAwB,EACzB,MAAM,QAAQ,CAAC;AAChB,OAAO,qBAAqB,CAAC;AAK7B;;;;;GAKG;AAEH,qBACa,WAAY,SAAQ,UAAU;IACzC,OAAgB,MAAM,0BAA8B;IAEpD,cAAc;IACd,OAAgB,iBAAiB;;;;;MAG/B;IAEF,oDAAoD;IAEpD,QAAQ,CAAC,WAAW,SAAM;IAE1B,yBAAyB;IAEzB,QAAQ,CAAC,IAAI,SAAM;IAEnB,gEAAgE;IAEhE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAA+B;IAE7D,8CAA8C;IAE9C,QAAQ,CAAC,IAAI,EAAE,eAAe,CAA0B;IAExD,uIAAuI;IAEvI,QAAQ,CAAC,YAAY,EAAE,wBAAwB,CACf;IAEhC,mCAAmC;IAEnC,QAAQ,CAAC,KAAK,SAAM;IAEpB,kDAAkD;IAElD,QAAQ,CAAC,QAAQ,UAAS;IAE1B,qEAAqE;IAErE,QAAQ,CAAC,WAAW,UAAS;IAE7B,gCAAgC;IAEhC,QAAQ,CAAC,YAAY,SAAa;IAElC,+BAA+B;IAE/B,QAAQ,CAAC,IAAI,UAAS;IAEtB;;;OAGG;IAEH,QAAQ,CAAC,OAAO,EAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAE9B;;;OAGG;IAEH,QAAQ,CAAC,YAAY,UAAS;IAE9B;;;OAGG;IAEH,QAAQ,CAAC,cAAc,UAAS;IAEhC;;;OAGG;IAEH,QAAQ,CAAC,QAAQ,EAAG,WAAW,CAAC;IAEhC;;;OAGG;IAEH,QAAQ,CAAC,UAAU,EAAG,WAAW,CAAC;IAElC;;;OAGG;IAEH,QAAQ,CAAC,OAAO,EAAG,WAAW,CAAC;IAE/B;;;OAGG;IAEH,QAAQ,CAAC,aAAa,SAAgC;IAE7C,MAAM;IA2FN,OAAO,CAAC,YAAY,EAAE,GAAG;IAYlC;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,cAAc;IAmGtB,OAAO,CAAC,cAAc,CAEpB;IAGF,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,SAAS;IAUR,iBAAiB,IAAI,IAAI;IASzB,oBAAoB,IAAI,IAAI;CAMtC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,eAAe,EAAE,WAAW,CAAC;KAC9B;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{__setFunctionName as t,__esDecorate as e,__runInitializers as i,__classPrivateFieldGet as n,__classPrivateFieldSet as s}from"tslib";import{css as o,LitElement as r,unsafeCSS as a,html as l}from"lit";import{customElement as d,property as p,queryAssignedElements as c,state as b,query as u}from"lit/decorators.js";import{classMap as h}from"lit/directives/class-map.js";import{k
|
|
1
|
+
import{__setFunctionName as t,__esDecorate as e,__runInitializers as i,__classPrivateFieldGet as n,__classPrivateFieldSet as s}from"tslib";import{css as o,LitElement as r,unsafeCSS as a,html as l}from"lit";import{customElement as d,property as p,queryAssignedElements as c,state as b,query as u}from"lit/decorators.js";import{classMap as h}from"lit/directives/class-map.js";import{k}from"../../../vendor/@kyndryl-design-system/shidoka-icons-A3rxoXpG.js";import{SPLIT_BTN_KINDS as y,SPLIT_BTN_SIZES as m,SPLIIT_BTN_ICON_POSITION as v}from"./defs.js";import"./splitButtonOption.js";import{ifDefined as f}from"lit/directives/if-defined.js";import{unsafeSVG as g}from"lit/directives/unsafe-svg.js";var w=o`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
box-sizing: border-box;
|
|
@@ -341,6 +341,8 @@ span {
|
|
|
341
341
|
top: 100%;
|
|
342
342
|
margin-top: 4px;
|
|
343
343
|
width: 100%;
|
|
344
|
+
box-sizing: border-box;
|
|
345
|
+
max-width: var(--kyn-split-btn-menu-max-width, calc(100vw - 16px));
|
|
344
346
|
max-height: 280px;
|
|
345
347
|
overflow-y: auto;
|
|
346
348
|
outline: none;
|
|
@@ -359,6 +361,10 @@ span {
|
|
|
359
361
|
top: auto;
|
|
360
362
|
bottom: 100%;
|
|
361
363
|
}
|
|
364
|
+
.options.leftwards {
|
|
365
|
+
left: auto;
|
|
366
|
+
right: 0;
|
|
367
|
+
}
|
|
362
368
|
.options.open {
|
|
363
369
|
visibility: visible;
|
|
364
370
|
transform: scaleY(1);
|
|
@@ -371,17 +377,17 @@ span {
|
|
|
371
377
|
}
|
|
372
378
|
.open .arrow-icon {
|
|
373
379
|
transform: rotate(180deg);
|
|
374
|
-
}`;let x=(()=>{var o,x,E,M,$,z,C,S,
|
|
380
|
+
}`;let x=(()=>{var o,x,_,E,M,W,$,z,C,S,L,P,B,T,O,R,U;let A,I,j,D,Y,K,N,X,V,F,G,H,q,J,Q,Z,tt,et,it,nt=[d("kyn-split-btn")],st=[],ot=r,rt=[],at=[],lt=[],dt=[],pt=[],ct=[],bt=[],ut=[],ht=[],kt=[],yt=[],mt=[],vt=[],ft=[],gt=[],wt=[],xt=[],_t=[],Et=[],Mt=[],Wt=[],$t=[],zt=[],Ct=[],St=[],Lt=[],Pt=[],Bt=[],Tt=[],Ot=[],Rt=[],Ut=[],At=[],It=[];return I=class extends ot{constructor(){super(...arguments),o.set(this,i(this,rt,"")),x.set(this,(i(this,at),i(this,lt,""))),_.set(this,(i(this,dt),i(this,pt,y.PRIMARY_APP))),E.set(this,(i(this,ct),i(this,bt,m.MEDIUM))),M.set(this,(i(this,ut),i(this,ht,v.LEFT))),W.set(this,(i(this,kt),i(this,yt,""))),$.set(this,(i(this,mt),i(this,vt,!1))),z.set(this,(i(this,ft),i(this,gt,!1))),C.set(this,(i(this,wt),i(this,xt,"initial"))),S.set(this,(i(this,_t),i(this,Et,!1))),L.set(this,(i(this,Mt),i(this,Wt,void 0))),P.set(this,(i(this,$t),i(this,zt,!1))),B.set(this,(i(this,Ct),i(this,St,!1))),T.set(this,(i(this,Lt),i(this,Pt,void 0))),O.set(this,(i(this,Bt),i(this,Tt,void 0))),R.set(this,(i(this,Ot),i(this,Rt,void 0))),U.set(this,(i(this,Ut),i(this,At,"Split button menu options."))),this.toggleDropdown=(i(this,It),()=>{this.open=!this.open})}get description(){return n(this,o,"f")}set description(t){s(this,o,t,"f")}get name(){return n(this,x,"f")}set name(t){s(this,x,t,"f")}get kind(){return n(this,_,"f")}set kind(t){s(this,_,t,"f")}get size(){return n(this,E,"f")}set size(t){s(this,E,t,"f")}get iconPosition(){return n(this,M,"f")}set iconPosition(t){s(this,M,t,"f")}get label(){return n(this,W,"f")}set label(t){s(this,W,t,"f")}get disabled(){return n(this,$,"f")}set disabled(t){s(this,$,t,"f")}get destructive(){return n(this,z,"f")}set destructive(t){s(this,z,t,"f")}get menuMinWidth(){return n(this,C,"f")}set menuMinWidth(t){s(this,C,t,"f")}get open(){return n(this,S,"f")}set open(t){s(this,S,t,"f")}get options(){return n(this,L,"f")}set options(t){s(this,L,t,"f")}get _openUpwards(){return n(this,P,"f")}set _openUpwards(t){s(this,P,t,"f")}get _openLeftwards(){return n(this,B,"f")}set _openLeftwards(t){s(this,B,t,"f")}get buttonEl(){return n(this,T,"f")}set buttonEl(t){s(this,T,t,"f")}get _wrapperEl(){return n(this,O,"f")}set _wrapperEl(t){s(this,O,t,"f")}get _menuEl(){return n(this,R,"f")}set _menuEl(t){s(this,R,t,"f")}get assistiveText(){return n(this,U,"f")}set assistiveText(t){s(this,U,t,"f")}render(){const t={[y.PRIMARY_APP]:"primary-app",[y.PRIMARY_WEB]:"primary-web",[y.SECONDARY]:"secondary"}[this.kind],e=this.destructive?"-destructive":"",i={button:!0,[`kyn-split-btn--${t}${e}`]:!0,[`kyn-split-btn--${t}`]:!this.destructive,"kyn-split-btn--large":this.size===m.LARGE,"kyn-split-btn--small":this.size===m.SMALL,"kyn-split-btn--medium":this.size===m.MEDIUM,[`kyn-split-btn--icon-${this.iconPosition}`]:!!this.iconPosition,"kyn-split-btn-margin-overlapped":this.kind===y.SECONDARY&&this.destructive};return l`
|
|
375
381
|
<div
|
|
376
382
|
class="split-btn-wrapper ${this.open?"open":""}"
|
|
377
383
|
id="label-${this.name}"
|
|
378
384
|
>
|
|
379
385
|
<!-- label button UI -->
|
|
380
386
|
<button
|
|
381
|
-
class=${h({...i,"kyn-split-btn-label":!0,"kyn-split-btn--secondary-label":this.kind===
|
|
387
|
+
class=${h({...i,"kyn-split-btn-label":!0,"kyn-split-btn--secondary-label":this.kind===y.SECONDARY})}
|
|
382
388
|
type="button"
|
|
383
389
|
?disabled=${this.disabled}
|
|
384
|
-
name=${
|
|
390
|
+
name=${f(this.name)}
|
|
385
391
|
@click=${t=>this._handlePrimaryClick(t)}
|
|
386
392
|
>
|
|
387
393
|
<span>
|
|
@@ -391,21 +397,21 @@ span {
|
|
|
391
397
|
</button>
|
|
392
398
|
<!-- menu button UI -->
|
|
393
399
|
<button
|
|
394
|
-
class=${h({...i,select:!0,[`kyn-split-btn--${this.size}-arrow-btn`]:!0,"kyn-split-btn-icon":!0,"kyn-split-btn--secondary-icon":this.kind===
|
|
400
|
+
class=${h({...i,select:!0,[`kyn-split-btn--${this.size}-arrow-btn`]:!0,"kyn-split-btn-icon":!0,"kyn-split-btn--secondary-icon":this.kind===y.SECONDARY})}
|
|
395
401
|
type="button"
|
|
396
402
|
?disabled=${this.disabled}
|
|
397
|
-
aria-label=${
|
|
398
|
-
title=${
|
|
403
|
+
aria-label=${f(this.description)}
|
|
404
|
+
title=${f(this.description)}
|
|
399
405
|
aria-haspopup="true"
|
|
400
406
|
aria-expanded="false"
|
|
401
407
|
@click=${this.toggleDropdown}
|
|
402
408
|
@keydown=${t=>this.handleButtonKeydown(t)}
|
|
403
409
|
>
|
|
404
|
-
<span class="arrow-icon">${
|
|
410
|
+
<span class="arrow-icon">${g(k)}</span>
|
|
405
411
|
</button>
|
|
406
412
|
<!-- Split Button Menu UI -->
|
|
407
413
|
<ul
|
|
408
|
-
class=${h({options:!0,open:this.open,upwards:this._openUpwards})}
|
|
414
|
+
class=${h({options:!0,open:this.open,upwards:this._openUpwards,leftwards:this._openLeftwards})}
|
|
409
415
|
style="min-width: ${this.menuMinWidth};"
|
|
410
416
|
name=${this.name}
|
|
411
417
|
aria-labelledby="label-${this.name}"
|
|
@@ -420,5 +426,5 @@ span {
|
|
|
420
426
|
<slot id="children"></slot>
|
|
421
427
|
</ul>
|
|
422
428
|
</div>
|
|
423
|
-
`}updated(t){var e;
|
|
429
|
+
`}updated(t){var e;t.has("open")&&this.open&&(null===(e=this.options.find((t=>t.selected)))||void 0===e||e.scrollIntoView({block:"nearest"}),this._positionMenu())}_positionMenu(){const t=this._wrapperEl.getBoundingClientRect();this._openUpwards=t.top>.6*window.innerHeight;const e=document.documentElement.clientWidth,i=this._menuEl.offsetWidth;this._openLeftwards=t.left+i>e-8}handleListBlur(t){this.options.forEach((t=>t.highlighted=!1)),t.relatedTarget&&"kyn-splitbutton-option"!==t.relatedTarget.localName&&(this.open=!1),this.assistiveText="Split button menu options."}handleButtonKeydown(t){this.handleKeyboard(t,t.keyCode,"button")}handleListKeydown(t){9!==t.keyCode&&t.preventDefault(),this.handleKeyboard(t,t.keyCode,"list")}handleKeyboard(t,e,i){const n=[0,32],s=this.options.find((t=>t.highlighted));console.log(s);const o=this.options.find((t=>t.selected)),r=s?this.options.indexOf(s):this.options.find((t=>t.selected))?this.options.indexOf(o):0;if(n.includes(e)&&t.preventDefault(),"button"===i){(n.includes(e)||13===e||40==e||38==e)&&(this.open=!0,this.options[r].highlighted=!0)}switch(e){case 13:return void(this.assistiveText="Selected an item.");case 40:{let t=s||o?r===this.options.length-1?0:r+1:0;return this.options[t].disabled&&(t=t===this.options.length-1?0:t+1),this.options[r].highlighted=!1,this.options[t].highlighted=!0,this.options[t].scrollIntoView({block:"nearest"}),void(this.assistiveText=this.options[t].text)}case 38:{let t=0===r?this.options.length-1:r-1;return this.options[t].disabled&&(t=0===t?this.options.length-1:t-1),this.options[r].highlighted=!1,this.options[t].highlighted=!0,this.options[t].scrollIntoView({block:"nearest"}),void(this.assistiveText=this.options[t].text)}case 27:return this.open=!1,this.buttonEl.focus(),void(this.assistiveText="Split button menu options.");default:return}}_handleClickOut(t){t.composedPath().includes(this)||(this.open=!1)}_handleBlur(t){const e=t.detail.origEvent.relatedTarget;(!e||"kyn-splitbutton-option"!==e.localName&&"kyn-split-btn"!==e.localName)&&(this.open=!1)}_handlePrimaryClick(t){this.open=!1;const e=new CustomEvent("on-click",{detail:{origEvent:t,value:1}});this.dispatchEvent(e)}_handleClick(t){this.open=!1,this.emitValue(t)}emitValue(t){const e=new CustomEvent("on-click",{detail:{value:t.detail.value,text:t.detail.text}});this.dispatchEvent(e)}connectedCallback(){super.connectedCallback(),document.addEventListener("click",(t=>this._handleClickOut(t))),this.addEventListener("on-action-click",(t=>this._handleClick(t))),this.addEventListener("on-blur",(t=>this._handleBlur(t)))}disconnectedCallback(){document.removeEventListener("click",(t=>this._handleClickOut(t))),this.addEventListener("on-action-click",(t=>this._handleClick(t))),this.addEventListener("on-blur",(t=>this._handleBlur(t))),super.disconnectedCallback()}},o=new WeakMap,x=new WeakMap,_=new WeakMap,E=new WeakMap,M=new WeakMap,W=new WeakMap,$=new WeakMap,z=new WeakMap,C=new WeakMap,S=new WeakMap,L=new WeakMap,P=new WeakMap,B=new WeakMap,T=new WeakMap,O=new WeakMap,R=new WeakMap,U=new WeakMap,t(I,"SplitButton"),(()=>{var t;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(t=ot[Symbol.metadata])&&void 0!==t?t:null):void 0;j=[p({type:String})],D=[p({type:String})],Y=[p({type:String})],K=[p({type:String})],N=[p({type:String})],X=[p({type:String})],V=[p({type:Boolean,reflect:!0})],F=[p({type:Boolean,reflect:!0})],G=[p({type:String})],H=[p({type:Boolean})],q=[c({selector:"kyn-splitbutton-option"})],J=[b()],Q=[b()],Z=[u(".select")],tt=[u(".split-btn-wrapper")],et=[u(".options")],it=[b()],e(I,null,j,{kind:"accessor",name:"description",static:!1,private:!1,access:{has:t=>"description"in t,get:t=>t.description,set:(t,e)=>{t.description=e}},metadata:i},rt,at),e(I,null,D,{kind:"accessor",name:"name",static:!1,private:!1,access:{has:t=>"name"in t,get:t=>t.name,set:(t,e)=>{t.name=e}},metadata:i},lt,dt),e(I,null,Y,{kind:"accessor",name:"kind",static:!1,private:!1,access:{has:t=>"kind"in t,get:t=>t.kind,set:(t,e)=>{t.kind=e}},metadata:i},pt,ct),e(I,null,K,{kind:"accessor",name:"size",static:!1,private:!1,access:{has:t=>"size"in t,get:t=>t.size,set:(t,e)=>{t.size=e}},metadata:i},bt,ut),e(I,null,N,{kind:"accessor",name:"iconPosition",static:!1,private:!1,access:{has:t=>"iconPosition"in t,get:t=>t.iconPosition,set:(t,e)=>{t.iconPosition=e}},metadata:i},ht,kt),e(I,null,X,{kind:"accessor",name:"label",static:!1,private:!1,access:{has:t=>"label"in t,get:t=>t.label,set:(t,e)=>{t.label=e}},metadata:i},yt,mt),e(I,null,V,{kind:"accessor",name:"disabled",static:!1,private:!1,access:{has:t=>"disabled"in t,get:t=>t.disabled,set:(t,e)=>{t.disabled=e}},metadata:i},vt,ft),e(I,null,F,{kind:"accessor",name:"destructive",static:!1,private:!1,access:{has:t=>"destructive"in t,get:t=>t.destructive,set:(t,e)=>{t.destructive=e}},metadata:i},gt,wt),e(I,null,G,{kind:"accessor",name:"menuMinWidth",static:!1,private:!1,access:{has:t=>"menuMinWidth"in t,get:t=>t.menuMinWidth,set:(t,e)=>{t.menuMinWidth=e}},metadata:i},xt,_t),e(I,null,H,{kind:"accessor",name:"open",static:!1,private:!1,access:{has:t=>"open"in t,get:t=>t.open,set:(t,e)=>{t.open=e}},metadata:i},Et,Mt),e(I,null,q,{kind:"accessor",name:"options",static:!1,private:!1,access:{has:t=>"options"in t,get:t=>t.options,set:(t,e)=>{t.options=e}},metadata:i},Wt,$t),e(I,null,J,{kind:"accessor",name:"_openUpwards",static:!1,private:!1,access:{has:t=>"_openUpwards"in t,get:t=>t._openUpwards,set:(t,e)=>{t._openUpwards=e}},metadata:i},zt,Ct),e(I,null,Q,{kind:"accessor",name:"_openLeftwards",static:!1,private:!1,access:{has:t=>"_openLeftwards"in t,get:t=>t._openLeftwards,set:(t,e)=>{t._openLeftwards=e}},metadata:i},St,Lt),e(I,null,Z,{kind:"accessor",name:"buttonEl",static:!1,private:!1,access:{has:t=>"buttonEl"in t,get:t=>t.buttonEl,set:(t,e)=>{t.buttonEl=e}},metadata:i},Pt,Bt),e(I,null,tt,{kind:"accessor",name:"_wrapperEl",static:!1,private:!1,access:{has:t=>"_wrapperEl"in t,get:t=>t._wrapperEl,set:(t,e)=>{t._wrapperEl=e}},metadata:i},Tt,Ot),e(I,null,et,{kind:"accessor",name:"_menuEl",static:!1,private:!1,access:{has:t=>"_menuEl"in t,get:t=>t._menuEl,set:(t,e)=>{t._menuEl=e}},metadata:i},Rt,Ut),e(I,null,it,{kind:"accessor",name:"assistiveText",static:!1,private:!1,access:{has:t=>"assistiveText"in t,get:t=>t.assistiveText,set:(t,e)=>{t.assistiveText=e}},metadata:i},At,It),e(null,A={value:I},nt,{kind:"class",name:I.name,metadata:i},null,st),I=A.value,i&&Object.defineProperty(I,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),I.styles=a(w),I.shadowRootOptions={...r.shadowRootOptions,delegatesFocus:!0},i(I,st),I})();export{x as SplitButton};
|
|
424
430
|
//# sourceMappingURL=splitButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"splitButton.js","sources":["../../../../src/components/reusable/splitButton/splitButton.ts"],"sourcesContent":["import { LitElement, html, unsafeCSS } from 'lit';\nimport {\n customElement,\n property,\n state,\n query,\n queryAssignedElements,\n} from 'lit/decorators.js';\n\nimport { classMap } from 'lit/directives/class-map.js';\nimport downIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-down.svg';\n\nimport {\n SPLIT_BTN_KINDS,\n SPLIT_BTN_SIZES,\n SPLIIT_BTN_ICON_POSITION,\n} from './defs';\nimport './splitButtonOption';\nimport SplitButtonScss from './splitButton.scss?inline';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\n\n/**\n * Split Button\n * @slot unnamed - Slot for split button options.\n * @slot icon - Slot for an icon (optional).\n * @fires on-click - Captures the event and emits the selected value and original event details.\n */\n\n@customElement('kyn-split-btn')\nexport class SplitButton extends LitElement {\n static override styles = unsafeCSS(SplitButtonScss);\n\n /** @ignore */\n static override shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /** ARIA label for the buttons for accessibility. */\n @property({ type: String })\n accessor description = '';\n\n /** Split button name. */\n @property({ type: String })\n accessor name = '';\n\n /** Specifies the visual appearance/kind of the split button. */\n @property({ type: String })\n accessor kind: SPLIT_BTN_KINDS = SPLIT_BTN_KINDS.PRIMARY_APP;\n\n /** Specifies the size of the split button. */\n @property({ type: String })\n accessor size: SPLIT_BTN_SIZES = SPLIT_BTN_SIZES.MEDIUM;\n\n /** Specifies the position of the icon relative to any split button text. Default `'left'`. This is optional and work with icon slot.*/\n @property({ type: String })\n accessor iconPosition: SPLIIT_BTN_ICON_POSITION =\n SPLIIT_BTN_ICON_POSITION.LEFT;\n\n /** Split button text (required) */\n @property({ type: String })\n accessor label = '';\n\n /** Determines if the split button is disabled. */\n @property({ type: Boolean, reflect: true })\n accessor disabled = false;\n\n /** Determines if the split button indicates a destructive action. */\n @property({ type: Boolean, reflect: true })\n accessor destructive = false;\n\n /** Menu CSS min-width value. */\n @property({ type: String })\n accessor menuMinWidth = 'initial';\n\n /** Listbox/menu open state. */\n @property({ type: Boolean })\n accessor open = false;\n\n /**\n * Queries any slotted options.\n * @ignore\n */\n @queryAssignedElements({ selector: 'kyn-splitbutton-option' })\n accessor options!: Array<any>;\n\n /**\n * Open menu upwards.\n * @ignore\n */\n @state()\n accessor _openUpwards = false;\n\n /**\n * Queries the .select DOM element.\n * @ignore\n */\n @query('.select')\n accessor buttonEl!: HTMLElement;\n\n /**\n * Assistive text for screen readers.\n * @ignore\n */\n @state()\n accessor assistiveText = 'Split button menu options.';\n\n override render() {\n const typeClassMap = {\n [SPLIT_BTN_KINDS.PRIMARY_APP]: 'primary-app',\n [SPLIT_BTN_KINDS.PRIMARY_WEB]: 'primary-web',\n [SPLIT_BTN_KINDS.SECONDARY]: 'secondary',\n };\n\n const baseTypeClass = typeClassMap[this.kind];\n const destructModifier = this.destructive ? '-destructive' : '';\n\n const classes = {\n button: true,\n [`kyn-split-btn--${baseTypeClass}${destructModifier}`]: true,\n [`kyn-split-btn--${baseTypeClass}`]: !this.destructive,\n 'kyn-split-btn--large': this.size === SPLIT_BTN_SIZES.LARGE,\n 'kyn-split-btn--small': this.size === SPLIT_BTN_SIZES.SMALL,\n 'kyn-split-btn--medium': this.size === SPLIT_BTN_SIZES.MEDIUM,\n [`kyn-split-btn--icon-${this.iconPosition}`]: !!this.iconPosition,\n 'kyn-split-btn-margin-overlapped':\n this.kind === SPLIT_BTN_KINDS.SECONDARY && this.destructive,\n };\n\n return html`\n <div\n class=\"split-btn-wrapper ${this.open ? 'open' : ''}\"\n id=\"label-${this.name}\"\n >\n <!-- label button UI -->\n <button\n class=${classMap({\n ...classes,\n 'kyn-split-btn-label': true,\n 'kyn-split-btn--secondary-label':\n this.kind === SPLIT_BTN_KINDS.SECONDARY,\n })}\n type=\"button\"\n ?disabled=${this.disabled}\n name=${ifDefined(this.name)}\n @click=${(e: any) => this._handlePrimaryClick(e)}\n >\n <span>\n ${this.label}\n <slot name=\"icon\"></slot>\n </span>\n </button>\n <!-- menu button UI -->\n <button\n class=${classMap({\n ...classes,\n select: true,\n [`kyn-split-btn--${this.size}-arrow-btn`]: true,\n 'kyn-split-btn-icon': true,\n ['kyn-split-btn--secondary-icon']:\n this.kind === SPLIT_BTN_KINDS.SECONDARY,\n })}\n type=\"button\"\n ?disabled=${this.disabled}\n aria-label=${ifDefined(this.description)}\n title=${ifDefined(this.description)}\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n @click=${this.toggleDropdown}\n @keydown=${(e: any) => this.handleButtonKeydown(e)}\n >\n <span class=\"arrow-icon\">${unsafeSVG(downIcon)}</span>\n </button>\n <!-- Split Button Menu UI -->\n <ul\n class=${classMap({\n options: true,\n open: this.open,\n upwards: this._openUpwards,\n })}\n style=\"min-width: ${this.menuMinWidth};\"\n name=${this.name}\n aria-labelledby=\"label-${this.name}\"\n role=\"listbox\"\n tabindex=\"0\"\n aria-expanded=${this.open}\n aria-hidden=${!this.open}\n @keydown=${(e: any) => this.handleListKeydown(e)}\n @blur=${(e: any) => this.handleListBlur(e)}\n >\n <!-- Can put <kyn-splitbutton-option> component here for each option -->\n <slot id=\"children\"></slot>\n </ul>\n </div>\n `;\n }\n\n override updated(changedProps: any) {\n if (changedProps.has('open')) {\n if (this.open) {\n // scroll to selected option\n this.options\n .find((option) => option.selected)\n ?.scrollIntoView({ block: 'nearest' });\n // open menu upwards if closer to bottom of viewport\n const Threshold = 0.6;\n if (\n this.buttonEl.getBoundingClientRect().top >\n window.innerHeight * Threshold\n ) {\n this._openUpwards = true;\n } else {\n this._openUpwards = false;\n }\n }\n }\n }\n\n private handleListBlur(e: any) {\n this.options.forEach((option) => (option.highlighted = false));\n // don't blur if clicking an option inside\n if (\n e.relatedTarget &&\n e.relatedTarget.localName !== 'kyn-splitbutton-option'\n ) {\n this.open = false;\n }\n this.assistiveText = 'Split button menu options.';\n }\n\n private handleButtonKeydown(e: any) {\n this.handleKeyboard(e, e.keyCode, 'button');\n }\n\n private handleListKeydown(e: any) {\n const TAB_KEY_CODE = 9;\n if (e.keyCode !== TAB_KEY_CODE) {\n e.preventDefault();\n }\n this.handleKeyboard(e, e.keyCode, 'list');\n }\n\n private handleKeyboard(e: any, keyCode: number, target: string) {\n const SPACEBAR_KEY_CODE = [0, 32];\n const ENTER_KEY_CODE = 13;\n const DOWN_ARROW_KEY_CODE = 40;\n const UP_ARROW_KEY_CODE = 38;\n const ESCAPE_KEY_CODE = 27;\n\n // get highlighted element + index and selected element\n const highlightedEl = this.options.find(\n (option: any) => option.highlighted\n );\n console.log(highlightedEl);\n const selectedEl = this.options.find((option: any) => option.selected);\n const highlightedIndex = highlightedEl\n ? this.options.indexOf(highlightedEl)\n : this.options.find((option: any) => option.selected)\n ? this.options.indexOf(selectedEl)\n : 0;\n\n // prevent page scroll on spacebar press\n if (SPACEBAR_KEY_CODE.includes(keyCode)) {\n e.preventDefault();\n }\n\n // open the listbox\n if (target === 'button') {\n const openDropdown =\n SPACEBAR_KEY_CODE.includes(keyCode) ||\n keyCode === ENTER_KEY_CODE ||\n keyCode == DOWN_ARROW_KEY_CODE ||\n keyCode == UP_ARROW_KEY_CODE;\n\n if (openDropdown) {\n this.open = true;\n this.options[highlightedIndex].highlighted = true;\n\n // scroll to highlighted option\n // if (!this.multiple && this.value !== '') {\n // this.options[highlightedIndex].scrollIntoView({ block: 'nearest' });\n // }\n }\n }\n switch (keyCode) {\n case ENTER_KEY_CODE: {\n this.assistiveText = 'Selected an item.';\n return;\n }\n case DOWN_ARROW_KEY_CODE: {\n // go to next option\n let nextIndex =\n !highlightedEl && !selectedEl\n ? 0\n : highlightedIndex === this.options.length - 1\n ? 0\n : highlightedIndex + 1;\n\n // skip disabled options\n if (this.options[nextIndex].disabled) {\n nextIndex = nextIndex === this.options.length - 1 ? 0 : nextIndex + 1;\n }\n\n this.options[highlightedIndex].highlighted = false;\n this.options[nextIndex].highlighted = true;\n\n // scroll to option\n this.options[nextIndex].scrollIntoView({ block: 'nearest' });\n\n this.assistiveText = this.options[nextIndex].text;\n return;\n }\n case UP_ARROW_KEY_CODE: {\n // go to previous option\n let nextIndex =\n highlightedIndex === 0\n ? this.options.length - 1\n : highlightedIndex - 1;\n\n // skip disabled options\n if (this.options[nextIndex].disabled) {\n nextIndex = nextIndex === 0 ? this.options.length - 1 : nextIndex - 1;\n }\n\n this.options[highlightedIndex].highlighted = false;\n this.options[nextIndex].highlighted = true;\n\n // scroll to option\n this.options[nextIndex].scrollIntoView({ block: 'nearest' });\n\n this.assistiveText = this.options[nextIndex].text;\n return;\n }\n case ESCAPE_KEY_CODE: {\n // close listbox\n this.open = false;\n this.buttonEl.focus();\n this.assistiveText = 'Split button menu options.';\n return;\n }\n default: {\n return;\n }\n }\n }\n\n private toggleDropdown = () => {\n this.open = !this.open;\n };\n\n // When click outside, then menu close\n private _handleClickOut(e: Event): void {\n if (!e.composedPath().includes(this)) {\n this.open = false;\n }\n }\n // handle child blur event\n private _handleBlur(e: any): void {\n const relatedTarget = e.detail.origEvent.relatedTarget;\n\n if (\n !relatedTarget ||\n (relatedTarget.localName !== 'kyn-splitbutton-option' &&\n relatedTarget.localName !== 'kyn-split-btn')\n ) {\n this.open = false;\n }\n }\n\n private _handlePrimaryClick(e: any) {\n this.open = false;\n const event = new CustomEvent('on-click', {\n detail: {\n origEvent: e,\n value: 1,\n },\n });\n this.dispatchEvent(event);\n }\n\n private _handleClick(e: any) {\n this.open = false;\n // emit selected value\n this.emitValue(e);\n }\n\n private emitValue(e: any) {\n const event = new CustomEvent('on-click', {\n detail: {\n value: e.detail.value,\n text: e.detail.text,\n },\n });\n this.dispatchEvent(event);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n document.addEventListener('click', (e) => this._handleClickOut(e));\n // capture split button options click event\n this.addEventListener('on-action-click', (e: any) => this._handleClick(e));\n // capture split button options blur event\n this.addEventListener('on-blur', (e: any) => this._handleBlur(e));\n }\n\n override disconnectedCallback(): void {\n document.removeEventListener('click', (e) => this._handleClickOut(e));\n this.addEventListener('on-action-click', (e: any) => this._handleClick(e));\n this.addEventListener('on-blur', (e: any) => this._handleBlur(e));\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-split-btn': SplitButton;\n }\n}\n"],"names":["SplitButton","customElement","LitElement","_classThis","_classSuper","_SplitButton_description_accessor_storage","set","this","__runInitializers","_description_initializers","_SplitButton_name_accessor_storage","_description_extraInitializers","_name_initializers","_SplitButton_kind_accessor_storage","_name_extraInitializers","_kind_initializers","SPLIT_BTN_KINDS","PRIMARY_APP","_SplitButton_size_accessor_storage","_kind_extraInitializers","_size_initializers","SPLIT_BTN_SIZES","MEDIUM","_SplitButton_iconPosition_accessor_storage","_size_extraInitializers","_iconPosition_initializers","SPLIIT_BTN_ICON_POSITION","LEFT","_SplitButton_label_accessor_storage","_iconPosition_extraInitializers","_label_initializers","_SplitButton_disabled_accessor_storage","_label_extraInitializers","_disabled_initializers","_SplitButton_destructive_accessor_storage","_disabled_extraInitializers","_destructive_initializers","_SplitButton_menuMinWidth_accessor_storage","_destructive_extraInitializers","_menuMinWidth_initializers","_SplitButton_open_accessor_storage","_menuMinWidth_extraInitializers","_open_initializers","_SplitButton_options_accessor_storage","_open_extraInitializers","_options_initializers","_SplitButton__openUpwards_accessor_storage","_options_extraInitializers","__openUpwards_initializers","_SplitButton_buttonEl_accessor_storage","__openUpwards_extraInitializers","_buttonEl_initializers","_SplitButton_assistiveText_accessor_storage","_buttonEl_extraInitializers","_assistiveText_initializers","toggleDropdown","_assistiveText_extraInitializers","open","description","__classPrivateFieldGet","value","__classPrivateFieldSet","name","kind","size","iconPosition","label","disabled","destructive","menuMinWidth","options","_openUpwards","buttonEl","assistiveText","render","baseTypeClass","PRIMARY_WEB","SECONDARY","destructModifier","classes","button","LARGE","SMALL","html","classMap","ifDefined","e","_handlePrimaryClick","select","handleButtonKeydown","unsafeSVG","downIcon","upwards","handleListKeydown","handleListBlur","updated","changedProps","has","_a","find","option","selected","scrollIntoView","block","Threshold","getBoundingClientRect","top","window","innerHeight","forEach","highlighted","relatedTarget","localName","handleKeyboard","keyCode","preventDefault","target","SPACEBAR_KEY_CODE","highlightedEl","console","log","selectedEl","highlightedIndex","indexOf","includes","nextIndex","length","text","focus","_handleClickOut","composedPath","_handleBlur","detail","origEvent","event","CustomEvent","dispatchEvent","_handleClick","emitValue","connectedCallback","super","document","addEventListener","disconnectedCallback","removeEventListener","_description_decorators","property","type","String","_name_decorators","_kind_decorators","_size_decorators","_iconPosition_decorators","_label_decorators","Boolean","reflect","_menuMinWidth_decorators","_open_decorators","_options_decorators","queryAssignedElements","selector","__openUpwards_decorators","state","query","_assistiveText_decorators","__esDecorate","static","private","access","obj","get","metadata","_metadata","_disabled_decorators","_destructive_decorators","_buttonEl_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","SplitButtonScss","shadowRootOptions","delegatesFocus"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"splitButton.js","sources":["../../../../src/components/reusable/splitButton/splitButton.ts"],"sourcesContent":["import { LitElement, html, unsafeCSS } from 'lit';\nimport {\n customElement,\n property,\n state,\n query,\n queryAssignedElements,\n} from 'lit/decorators.js';\n\nimport { classMap } from 'lit/directives/class-map.js';\nimport downIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-down.svg';\n\nimport {\n SPLIT_BTN_KINDS,\n SPLIT_BTN_SIZES,\n SPLIIT_BTN_ICON_POSITION,\n} from './defs';\nimport './splitButtonOption';\nimport SplitButtonScss from './splitButton.scss?inline';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\n\n/**\n * Split Button\n * @slot unnamed - Slot for split button options.\n * @slot icon - Slot for an icon (optional).\n * @fires on-click - Captures the event and emits the selected value and original event details.\n */\n\n@customElement('kyn-split-btn')\nexport class SplitButton extends LitElement {\n static override styles = unsafeCSS(SplitButtonScss);\n\n /** @ignore */\n static override shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /** ARIA label for the buttons for accessibility. */\n @property({ type: String })\n accessor description = '';\n\n /** Split button name. */\n @property({ type: String })\n accessor name = '';\n\n /** Specifies the visual appearance/kind of the split button. */\n @property({ type: String })\n accessor kind: SPLIT_BTN_KINDS = SPLIT_BTN_KINDS.PRIMARY_APP;\n\n /** Specifies the size of the split button. */\n @property({ type: String })\n accessor size: SPLIT_BTN_SIZES = SPLIT_BTN_SIZES.MEDIUM;\n\n /** Specifies the position of the icon relative to any split button text. Default `'left'`. This is optional and work with icon slot.*/\n @property({ type: String })\n accessor iconPosition: SPLIIT_BTN_ICON_POSITION =\n SPLIIT_BTN_ICON_POSITION.LEFT;\n\n /** Split button text (required) */\n @property({ type: String })\n accessor label = '';\n\n /** Determines if the split button is disabled. */\n @property({ type: Boolean, reflect: true })\n accessor disabled = false;\n\n /** Determines if the split button indicates a destructive action. */\n @property({ type: Boolean, reflect: true })\n accessor destructive = false;\n\n /** Menu CSS min-width value. */\n @property({ type: String })\n accessor menuMinWidth = 'initial';\n\n /** Listbox/menu open state. */\n @property({ type: Boolean })\n accessor open = false;\n\n /**\n * Queries any slotted options.\n * @ignore\n */\n @queryAssignedElements({ selector: 'kyn-splitbutton-option' })\n accessor options!: Array<any>;\n\n /**\n * Open menu upwards.\n * @ignore\n */\n @state()\n accessor _openUpwards = false;\n\n /**\n * Anchor the menu to the right edge of the button (opens toward the left).\n * @ignore\n */\n @state()\n accessor _openLeftwards = false;\n\n /**\n * Queries the .select DOM element.\n * @ignore\n */\n @query('.select')\n accessor buttonEl!: HTMLElement;\n\n /**\n * Queries the .split-btn-wrapper DOM element.\n * @ignore\n */\n @query('.split-btn-wrapper')\n accessor _wrapperEl!: HTMLElement;\n\n /**\n * Queries the .options menu DOM element.\n * @ignore\n */\n @query('.options')\n accessor _menuEl!: HTMLElement;\n\n /**\n * Assistive text for screen readers.\n * @ignore\n */\n @state()\n accessor assistiveText = 'Split button menu options.';\n\n override render() {\n const typeClassMap = {\n [SPLIT_BTN_KINDS.PRIMARY_APP]: 'primary-app',\n [SPLIT_BTN_KINDS.PRIMARY_WEB]: 'primary-web',\n [SPLIT_BTN_KINDS.SECONDARY]: 'secondary',\n };\n\n const baseTypeClass = typeClassMap[this.kind];\n const destructModifier = this.destructive ? '-destructive' : '';\n\n const classes = {\n button: true,\n [`kyn-split-btn--${baseTypeClass}${destructModifier}`]: true,\n [`kyn-split-btn--${baseTypeClass}`]: !this.destructive,\n 'kyn-split-btn--large': this.size === SPLIT_BTN_SIZES.LARGE,\n 'kyn-split-btn--small': this.size === SPLIT_BTN_SIZES.SMALL,\n 'kyn-split-btn--medium': this.size === SPLIT_BTN_SIZES.MEDIUM,\n [`kyn-split-btn--icon-${this.iconPosition}`]: !!this.iconPosition,\n 'kyn-split-btn-margin-overlapped':\n this.kind === SPLIT_BTN_KINDS.SECONDARY && this.destructive,\n };\n\n return html`\n <div\n class=\"split-btn-wrapper ${this.open ? 'open' : ''}\"\n id=\"label-${this.name}\"\n >\n <!-- label button UI -->\n <button\n class=${classMap({\n ...classes,\n 'kyn-split-btn-label': true,\n 'kyn-split-btn--secondary-label':\n this.kind === SPLIT_BTN_KINDS.SECONDARY,\n })}\n type=\"button\"\n ?disabled=${this.disabled}\n name=${ifDefined(this.name)}\n @click=${(e: any) => this._handlePrimaryClick(e)}\n >\n <span>\n ${this.label}\n <slot name=\"icon\"></slot>\n </span>\n </button>\n <!-- menu button UI -->\n <button\n class=${classMap({\n ...classes,\n select: true,\n [`kyn-split-btn--${this.size}-arrow-btn`]: true,\n 'kyn-split-btn-icon': true,\n ['kyn-split-btn--secondary-icon']:\n this.kind === SPLIT_BTN_KINDS.SECONDARY,\n })}\n type=\"button\"\n ?disabled=${this.disabled}\n aria-label=${ifDefined(this.description)}\n title=${ifDefined(this.description)}\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n @click=${this.toggleDropdown}\n @keydown=${(e: any) => this.handleButtonKeydown(e)}\n >\n <span class=\"arrow-icon\">${unsafeSVG(downIcon)}</span>\n </button>\n <!-- Split Button Menu UI -->\n <ul\n class=${classMap({\n options: true,\n open: this.open,\n upwards: this._openUpwards,\n leftwards: this._openLeftwards,\n })}\n style=\"min-width: ${this.menuMinWidth};\"\n name=${this.name}\n aria-labelledby=\"label-${this.name}\"\n role=\"listbox\"\n tabindex=\"0\"\n aria-expanded=${this.open}\n aria-hidden=${!this.open}\n @keydown=${(e: any) => this.handleListKeydown(e)}\n @blur=${(e: any) => this.handleListBlur(e)}\n >\n <!-- Can put <kyn-splitbutton-option> component here for each option -->\n <slot id=\"children\"></slot>\n </ul>\n </div>\n `;\n }\n\n override updated(changedProps: any) {\n if (changedProps.has('open')) {\n if (this.open) {\n // scroll to selected option\n this.options\n .find((option) => option.selected)\n ?.scrollIntoView({ block: 'nearest' });\n this._positionMenu();\n }\n }\n }\n\n /**\n * Repositions the menu so it stays within the viewport: opens upwards when\n * near the bottom edge and anchors to the right (opens leftwards) when a\n * left-aligned menu would overflow the right edge, preventing page scroll.\n */\n private _positionMenu() {\n const VerticalThreshold = 0.6;\n const ViewportMargin = 8;\n\n const wrapperRect = this._wrapperEl.getBoundingClientRect();\n\n // open menu upwards if closer to bottom of viewport\n this._openUpwards =\n wrapperRect.top > window.innerHeight * VerticalThreshold;\n\n const viewportWidth = document.documentElement.clientWidth;\n const menuWidth = this._menuEl.offsetWidth;\n this._openLeftwards =\n wrapperRect.left + menuWidth > viewportWidth - ViewportMargin;\n }\n\n private handleListBlur(e: any) {\n this.options.forEach((option) => (option.highlighted = false));\n // don't blur if clicking an option inside\n if (\n e.relatedTarget &&\n e.relatedTarget.localName !== 'kyn-splitbutton-option'\n ) {\n this.open = false;\n }\n this.assistiveText = 'Split button menu options.';\n }\n\n private handleButtonKeydown(e: any) {\n this.handleKeyboard(e, e.keyCode, 'button');\n }\n\n private handleListKeydown(e: any) {\n const TAB_KEY_CODE = 9;\n if (e.keyCode !== TAB_KEY_CODE) {\n e.preventDefault();\n }\n this.handleKeyboard(e, e.keyCode, 'list');\n }\n\n private handleKeyboard(e: any, keyCode: number, target: string) {\n const SPACEBAR_KEY_CODE = [0, 32];\n const ENTER_KEY_CODE = 13;\n const DOWN_ARROW_KEY_CODE = 40;\n const UP_ARROW_KEY_CODE = 38;\n const ESCAPE_KEY_CODE = 27;\n\n // get highlighted element + index and selected element\n const highlightedEl = this.options.find(\n (option: any) => option.highlighted\n );\n console.log(highlightedEl);\n const selectedEl = this.options.find((option: any) => option.selected);\n const highlightedIndex = highlightedEl\n ? this.options.indexOf(highlightedEl)\n : this.options.find((option: any) => option.selected)\n ? this.options.indexOf(selectedEl)\n : 0;\n\n // prevent page scroll on spacebar press\n if (SPACEBAR_KEY_CODE.includes(keyCode)) {\n e.preventDefault();\n }\n\n // open the listbox\n if (target === 'button') {\n const openDropdown =\n SPACEBAR_KEY_CODE.includes(keyCode) ||\n keyCode === ENTER_KEY_CODE ||\n keyCode == DOWN_ARROW_KEY_CODE ||\n keyCode == UP_ARROW_KEY_CODE;\n\n if (openDropdown) {\n this.open = true;\n this.options[highlightedIndex].highlighted = true;\n }\n }\n switch (keyCode) {\n case ENTER_KEY_CODE: {\n this.assistiveText = 'Selected an item.';\n return;\n }\n case DOWN_ARROW_KEY_CODE: {\n // go to next option\n let nextIndex =\n !highlightedEl && !selectedEl\n ? 0\n : highlightedIndex === this.options.length - 1\n ? 0\n : highlightedIndex + 1;\n\n // skip disabled options\n if (this.options[nextIndex].disabled) {\n nextIndex = nextIndex === this.options.length - 1 ? 0 : nextIndex + 1;\n }\n\n this.options[highlightedIndex].highlighted = false;\n this.options[nextIndex].highlighted = true;\n\n // scroll to option\n this.options[nextIndex].scrollIntoView({ block: 'nearest' });\n\n this.assistiveText = this.options[nextIndex].text;\n return;\n }\n case UP_ARROW_KEY_CODE: {\n // go to previous option\n let nextIndex =\n highlightedIndex === 0\n ? this.options.length - 1\n : highlightedIndex - 1;\n\n // skip disabled options\n if (this.options[nextIndex].disabled) {\n nextIndex = nextIndex === 0 ? this.options.length - 1 : nextIndex - 1;\n }\n\n this.options[highlightedIndex].highlighted = false;\n this.options[nextIndex].highlighted = true;\n\n // scroll to option\n this.options[nextIndex].scrollIntoView({ block: 'nearest' });\n\n this.assistiveText = this.options[nextIndex].text;\n return;\n }\n case ESCAPE_KEY_CODE: {\n // close listbox\n this.open = false;\n this.buttonEl.focus();\n this.assistiveText = 'Split button menu options.';\n return;\n }\n default: {\n return;\n }\n }\n }\n\n private toggleDropdown = () => {\n this.open = !this.open;\n };\n\n // When click outside, then menu close\n private _handleClickOut(e: Event): void {\n if (!e.composedPath().includes(this)) {\n this.open = false;\n }\n }\n // handle child blur event\n private _handleBlur(e: any): void {\n const relatedTarget = e.detail.origEvent.relatedTarget;\n\n if (\n !relatedTarget ||\n (relatedTarget.localName !== 'kyn-splitbutton-option' &&\n relatedTarget.localName !== 'kyn-split-btn')\n ) {\n this.open = false;\n }\n }\n\n private _handlePrimaryClick(e: any) {\n this.open = false;\n const event = new CustomEvent('on-click', {\n detail: {\n origEvent: e,\n value: 1,\n },\n });\n this.dispatchEvent(event);\n }\n\n private _handleClick(e: any) {\n this.open = false;\n // emit selected value\n this.emitValue(e);\n }\n\n private emitValue(e: any) {\n const event = new CustomEvent('on-click', {\n detail: {\n value: e.detail.value,\n text: e.detail.text,\n },\n });\n this.dispatchEvent(event);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n document.addEventListener('click', (e) => this._handleClickOut(e));\n // capture split button options click event\n this.addEventListener('on-action-click', (e: any) => this._handleClick(e));\n // capture split button options blur event\n this.addEventListener('on-blur', (e: any) => this._handleBlur(e));\n }\n\n override disconnectedCallback(): void {\n document.removeEventListener('click', (e) => this._handleClickOut(e));\n this.addEventListener('on-action-click', (e: any) => this._handleClick(e));\n this.addEventListener('on-blur', (e: any) => this._handleBlur(e));\n super.disconnectedCallback();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-split-btn': SplitButton;\n }\n}\n"],"names":["SplitButton","customElement","LitElement","_classThis","_classSuper","_SplitButton_description_accessor_storage","set","this","__runInitializers","_description_initializers","_SplitButton_name_accessor_storage","_description_extraInitializers","_name_initializers","_SplitButton_kind_accessor_storage","_name_extraInitializers","_kind_initializers","SPLIT_BTN_KINDS","PRIMARY_APP","_SplitButton_size_accessor_storage","_kind_extraInitializers","_size_initializers","SPLIT_BTN_SIZES","MEDIUM","_SplitButton_iconPosition_accessor_storage","_size_extraInitializers","_iconPosition_initializers","SPLIIT_BTN_ICON_POSITION","LEFT","_SplitButton_label_accessor_storage","_iconPosition_extraInitializers","_label_initializers","_SplitButton_disabled_accessor_storage","_label_extraInitializers","_disabled_initializers","_SplitButton_destructive_accessor_storage","_disabled_extraInitializers","_destructive_initializers","_SplitButton_menuMinWidth_accessor_storage","_destructive_extraInitializers","_menuMinWidth_initializers","_SplitButton_open_accessor_storage","_menuMinWidth_extraInitializers","_open_initializers","_SplitButton_options_accessor_storage","_open_extraInitializers","_options_initializers","_SplitButton__openUpwards_accessor_storage","_options_extraInitializers","__openUpwards_initializers","_SplitButton__openLeftwards_accessor_storage","__openUpwards_extraInitializers","__openLeftwards_initializers","_SplitButton_buttonEl_accessor_storage","__openLeftwards_extraInitializers","_buttonEl_initializers","_SplitButton__wrapperEl_accessor_storage","_buttonEl_extraInitializers","__wrapperEl_initializers","_SplitButton__menuEl_accessor_storage","__wrapperEl_extraInitializers","__menuEl_initializers","_SplitButton_assistiveText_accessor_storage","__menuEl_extraInitializers","_assistiveText_initializers","toggleDropdown","_assistiveText_extraInitializers","open","description","__classPrivateFieldGet","value","__classPrivateFieldSet","name","kind","size","iconPosition","label","disabled","destructive","menuMinWidth","options","_openUpwards","_openLeftwards","buttonEl","_wrapperEl","_menuEl","assistiveText","render","baseTypeClass","PRIMARY_WEB","SECONDARY","destructModifier","classes","button","LARGE","SMALL","html","classMap","ifDefined","e","_handlePrimaryClick","select","handleButtonKeydown","unsafeSVG","downIcon","upwards","leftwards","handleListKeydown","handleListBlur","updated","changedProps","has","_a","find","option","selected","scrollIntoView","block","_positionMenu","wrapperRect","getBoundingClientRect","top","window","innerHeight","viewportWidth","document","documentElement","clientWidth","menuWidth","offsetWidth","left","forEach","highlighted","relatedTarget","localName","handleKeyboard","keyCode","preventDefault","target","SPACEBAR_KEY_CODE","highlightedEl","console","log","selectedEl","highlightedIndex","indexOf","includes","nextIndex","length","text","focus","_handleClickOut","composedPath","_handleBlur","detail","origEvent","event","CustomEvent","dispatchEvent","_handleClick","emitValue","connectedCallback","super","addEventListener","disconnectedCallback","removeEventListener","_description_decorators","property","type","String","_name_decorators","_kind_decorators","_size_decorators","_iconPosition_decorators","_label_decorators","Boolean","reflect","_menuMinWidth_decorators","_open_decorators","_options_decorators","queryAssignedElements","selector","__openUpwards_decorators","state","__openLeftwards_decorators","query","_assistiveText_decorators","__esDecorate","static","private","access","obj","get","metadata","_metadata","_disabled_decorators","_destructive_decorators","_buttonEl_decorators","__wrapperEl_decorators","__menuEl_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","SplitButtonScss","shadowRootOptions","delegatesFocus"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"splitButtonOption.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/splitButton/splitButtonOption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAKlD;;;;GAIG;AAEH,qBACa,iBAAkB,SAAQ,UAAU;IAC/C,OAAgB,MAAM,0BAAoC;IAE1D,iCAAiC;IAEjC,QAAQ,CAAC,KAAK,SAAM;IAEpB,0CAA0C;IAE1C,QAAQ,CAAC,QAAQ,UAAS;IAE1B,+CAA+C;IAE/C,QAAQ,CAAC,QAAQ,UAAS;IAE1B;;;OAGG;IAEH,QAAQ,CAAC,WAAW,UAAS;IAE7B;;;OAGG;IAEH,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAM;IAEf,MAAM;
|
|
1
|
+
{"version":3,"file":"splitButtonOption.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/splitButton/splitButtonOption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAKlD;;;;GAIG;AAEH,qBACa,iBAAkB,SAAQ,UAAU;IAC/C,OAAgB,MAAM,0BAAoC;IAE1D,iCAAiC;IAEjC,QAAQ,CAAC,KAAK,SAAM;IAEpB,0CAA0C;IAE1C,QAAQ,CAAC,QAAQ,UAAS;IAE1B,+CAA+C;IAE/C,QAAQ,CAAC,QAAQ,UAAS;IAE1B;;;OAGG;IAEH,QAAQ,CAAC,WAAW,UAAS;IAE7B;;;OAGG;IAEH,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAM;IAEf,MAAM;IAqBf,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,UAAU;CAWnB;AACD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,wBAAwB,EAAE,iBAAiB,CAAC;KAC7C;CACF"}
|