@kyndryl-design-system/shidoka-applications 2.95.0 → 2.95.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/global/workspaceSwitcher/workspaceSwitcher.d.ts +4 -1
- package/components/global/workspaceSwitcher/workspaceSwitcher.d.ts.map +1 -1
- package/components/global/workspaceSwitcher/workspaceSwitcher.js +7 -7
- package/components/global/workspaceSwitcher/workspaceSwitcher.js.map +1 -1
- package/components/global/workspaceSwitcher/workspaceSwitcherMenuItem.d.ts +15 -2
- package/components/global/workspaceSwitcher/workspaceSwitcherMenuItem.d.ts.map +1 -1
- package/components/global/workspaceSwitcher/workspaceSwitcherMenuItem.js +35 -26
- package/components/global/workspaceSwitcher/workspaceSwitcherMenuItem.js.map +1 -1
- package/package.json +4 -2
|
@@ -36,6 +36,7 @@ export declare class WorkspaceSwitcher extends LitElement {
|
|
|
36
36
|
currentTitle: string;
|
|
37
37
|
workspacesTitle: string;
|
|
38
38
|
backToWorkspaces: string;
|
|
39
|
+
launchAssistiveText: string;
|
|
39
40
|
};
|
|
40
41
|
/** Built-in account meta content for the left panel. */
|
|
41
42
|
accessor accountMeta: WorkspaceSwitcherAccountMeta | null;
|
|
@@ -52,7 +53,7 @@ export declare class WorkspaceSwitcher extends LitElement {
|
|
|
52
53
|
/** Merged text strings.
|
|
53
54
|
* @internal
|
|
54
55
|
*/
|
|
55
|
-
private _textStrings;
|
|
56
|
+
private accessor _textStrings;
|
|
56
57
|
/** Tracks whether legacy left-slot content is present. */
|
|
57
58
|
private accessor _hasLegacyLeftSlotContent;
|
|
58
59
|
/** Tracks which copy-style account meta item is showing success feedback. */
|
|
@@ -89,9 +90,11 @@ export declare class WorkspaceSwitcher extends LitElement {
|
|
|
89
90
|
connectedCallback(): void;
|
|
90
91
|
disconnectedCallback(): void;
|
|
91
92
|
willUpdate(changedProperties: Map<string, unknown>): void;
|
|
93
|
+
updated(changedProperties: Map<string, unknown>): void;
|
|
92
94
|
render(): import("lit-html").TemplateResult<1>;
|
|
93
95
|
private _handleBackClick;
|
|
94
96
|
private _updateLegacyLeftSlotState;
|
|
97
|
+
private _updateChildMenuItemTextStrings;
|
|
95
98
|
private _warnForLegacyLeftSlotUsage;
|
|
96
99
|
private _renderAccountMeta;
|
|
97
100
|
private _renderAccountMetaItem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaceSwitcher.d.ts","sourceRoot":"","sources":["../../../../src/components/global/workspaceSwitcher/workspaceSwitcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAOlD,OAAO,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"workspaceSwitcher.d.ts","sourceRoot":"","sources":["../../../../src/components/global/workspaceSwitcher/workspaceSwitcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAOlD,OAAO,6BAA6B,CAAC;AAErC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAcxD,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,gCAAgC,EAAE,CAAC;CAC5C;AAED;;;;;;;;;;;;;;GAcG;AACH,qBACa,iBAAkB,SAAQ,UAAU;IAC/C,OAAgB,MAAM,0BAAoC;IAE1D,iCAAiC;IAEjC,QAAQ,CAAC,WAAW;;;;;MAAuB;IAE3C,wDAAwD;IAExD,QAAQ,CAAC,WAAW,EAAE,4BAA4B,GAAG,IAAI,CAAQ;IAEjE;;OAEG;IAEH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAU;IAE1C,qDAAqD;IAErD,QAAQ,CAAC,gBAAgB,UAAS;IAElC,4GAA4G;IAE5G,QAAQ,CAAC,mBAAmB,UAAS;IAErC,yDAAyD;IAEzD,QAAQ,CAAC,eAAe,UAAS;IAEjC;;OAEG;IAEH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuB;IAEpD,0DAA0D;IAE1D,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAS;IAEnD,6EAA6E;IAE7E,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAuB;IAE/D;;;OAGG;IACH,OAAO,CAAC,WAAW,CAA4B;IAE/C;;;OAGG;IACH,OAAO,CAAC,oBAAoB,CAAuB;IAEnD;;;OAGG;IACH,OAAO,CAAC,iBAAiB,CAAiC;IAE1D;;;OAGG;IACH,OAAO,CAAC,6BAA6B,CAAS;IAE9C;;;OAGG;IACH,OAAO,CAAC,+BAA+B,CAAS;IAEhD;;OAEG;IACH,OAAO,CAAC,mBAAmB,CAKzB;IAEO,iBAAiB;IAkBjB,oBAAoB;IAYpB,UAAU,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAWlD,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAM/C,MAAM;IA8Cf,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,+BAA+B;IAYvC,OAAO,CAAC,2BAA2B;IAoBnC,OAAO,CAAC,kBAAkB;IA0B1B,OAAO,CAAC,sBAAsB;YAiDhB,2BAA2B;IA6BzC,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,kBAAkB;CAQ3B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,wBAAwB,EAAE,iBAAiB,CAAC;KAC7C;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{__setFunctionName as t,__esDecorate as e,__runInitializers as i,__classPrivateFieldGet as a,__classPrivateFieldSet as s}from"tslib";import{css as
|
|
1
|
+
import{__setFunctionName as t,__esDecorate as e,__runInitializers as i,__classPrivateFieldGet as a,__classPrivateFieldSet as s}from"tslib";import{css as r,LitElement as o,unsafeCSS as n,html as c}from"lit";import{customElement as l,property as h,state as d}from"lit/decorators.js";import{unsafeSVG as p}from"lit/directives/unsafe-svg.js";import{deepmerge as u}from"deepmerge-ts";import"./workspaceSwitcherMenuItem.js";import"../../reusable/link/link.js";import{LINK_TARGETS as m}from"../../reusable/link/defs.js";import{s as w,j as k,k as g,l as f}from"../../../vendor/@kyndryl-design-system/shidoka-icons-BKNlykoZ.js";import"lit/directives/class-map.js";import"../../reusable/iconSelector/iconSelector.js";import"lit-html/directives/class-map.js";import"lit-html/directives/unsafe-svg.js";import"../../reusable/iconSelector/iconSelectorGroup.js";var _=r`@charset "UTF-8";
|
|
2
2
|
*,
|
|
3
3
|
*::before,
|
|
4
4
|
*::after {
|
|
@@ -293,7 +293,7 @@ import{__setFunctionName as t,__esDecorate as e,__runInitializers as i,__classPr
|
|
|
293
293
|
.workspace-switcher {
|
|
294
294
|
margin-top: 4px;
|
|
295
295
|
}
|
|
296
|
-
}`;const v={currentTitle:"CURRENT",workspacesTitle:"WORKSPACES",backToWorkspaces:"Workspaces"};let y=(()=>{var
|
|
296
|
+
}`;const v={currentTitle:"CURRENT",workspacesTitle:"WORKSPACES",backToWorkspaces:"Workspaces",launchAssistiveText:"Opens in a new tab"};let y=(()=>{var r,y,x,b,S,L,M,T,C;let A,W,z,I,F,$,j,D,O,E,B,R=[l("kyn-workspace-switcher")],U=[],H=o,P=[],X=[],q=[],G=[],K=[],N=[],V=[],J=[],Q=[],Y=[],Z=[],tt=[],et=[],it=[],at=[],st=[],rt=[],ot=[];return W=class extends H{constructor(){super(...arguments),r.set(this,i(this,P,v)),y.set(this,(i(this,X),i(this,q,null))),x.set(this,(i(this,G),i(this,K,"root"))),b.set(this,(i(this,N),i(this,V,!1))),S.set(this,(i(this,J),i(this,Q,!1))),L.set(this,(i(this,Y),i(this,Z,!1))),M.set(this,(i(this,tt),i(this,et,v))),T.set(this,(i(this,it),i(this,at,!1))),C.set(this,(i(this,st),i(this,rt,null))),this._flyoutHost=(i(this,ot),null),this._copyFeedbackTimeout=null,this._lightDomObserver=null,this._hasWarnedAboutLegacyLeftSlot=!1,this._hasWarnedAboutLeftSlotConflict=!1,this._handleFlyoutToggle=t=>{const e=t.detail;(null==e?void 0:e.open)||(this.view="root")}}get textStrings(){return a(this,r,"f")}set textStrings(t){s(this,r,t,"f")}get accountMeta(){return a(this,y,"f")}set accountMeta(t){s(this,y,t,"f")}get view(){return a(this,x,"f")}set view(t){s(this,x,t,"f")}get hideCurrentTitle(){return a(this,b,"f")}set hideCurrentTitle(t){s(this,b,t,"f")}get hideWorkspacesTitle(){return a(this,S,"f")}set hideWorkspacesTitle(t){s(this,S,t,"f")}get hideLeftDivider(){return a(this,L,"f")}set hideLeftDivider(t){s(this,L,t,"f")}get _textStrings(){return a(this,M,"f")}set _textStrings(t){s(this,M,t,"f")}get _hasLegacyLeftSlotContent(){return a(this,T,"f")}set _hasLegacyLeftSlotContent(t){s(this,T,t,"f")}get _copiedAccountMetaIndex(){return a(this,C,"f")}set _copiedAccountMetaIndex(t){s(this,C,t,"f")}connectedCallback(){var t;super.connectedCallback(),this._updateLegacyLeftSlotState(),this._lightDomObserver=new MutationObserver((()=>this._updateLegacyLeftSlotState())),this._lightDomObserver.observe(this,{childList:!0,attributes:!0,attributeFilter:["slot"]}),this._flyoutHost=this.closest("kyn-header-flyout"),null===(t=this._flyoutHost)||void 0===t||t.addEventListener("on-flyout-toggle",this._handleFlyoutToggle)}disconnectedCallback(){var t,e;super.disconnectedCallback(),null===(t=this._flyoutHost)||void 0===t||t.removeEventListener("on-flyout-toggle",this._handleFlyoutToggle),this._clearCopyFeedback(),null===(e=this._lightDomObserver)||void 0===e||e.disconnect(),this._lightDomObserver=null,this._flyoutHost=null}willUpdate(t){t.has("textStrings")&&(this._textStrings=u(v,this.textStrings)),t.has("accountMeta")&&(this._clearCopyFeedback(),this._warnForLegacyLeftSlotUsage())}updated(t){t.has("textStrings")&&this._updateChildMenuItemTextStrings()}render(){const t=null!=this.accountMeta||this._hasLegacyLeftSlotContent;return c`
|
|
297
297
|
<div class="workspace-switcher">
|
|
298
298
|
<div class="workspace-switcher__left">
|
|
299
299
|
${this.hideCurrentTitle?null:c`<span class="workspace-switcher__title"
|
|
@@ -324,7 +324,7 @@ import{__setFunctionName as t,__esDecorate as e,__runInitializers as i,__classPr
|
|
|
324
324
|
</div>
|
|
325
325
|
</div>
|
|
326
326
|
</div>
|
|
327
|
-
`}_handleBackClick(){this.view="root"}_updateLegacyLeftSlotState(){this._hasLegacyLeftSlotContent=Array.from(this.children).some((t=>"left"===t.getAttribute("slot"))),this._warnForLegacyLeftSlotUsage()}_warnForLegacyLeftSlotUsage(){if(this._hasLegacyLeftSlotContent&&"undefined"!=typeof console)return this.accountMeta&&!this._hasWarnedAboutLeftSlotConflict?(console.warn('[kyn-workspace-switcher] `accountMeta` overrides legacy `slot="left"` content. Remove the slot content or migrate fully to `accountMeta`.'),void(this._hasWarnedAboutLeftSlotConflict=!0)):void(this.accountMeta||this._hasWarnedAboutLegacyLeftSlot||(console.warn('[kyn-workspace-switcher] `slot="left"` is a legacy API. Prefer the `accountMeta` property for rigid account meta rendering.'),this._hasWarnedAboutLegacyLeftSlot=!0))}_renderAccountMeta(){var t;return this.accountMeta?c`
|
|
327
|
+
`}_handleBackClick(){this.view="root"}_updateLegacyLeftSlotState(){this._hasLegacyLeftSlotContent=Array.from(this.children).some((t=>"left"===t.getAttribute("slot"))),this._updateChildMenuItemTextStrings(),this._warnForLegacyLeftSlotUsage()}_updateChildMenuItemTextStrings(){const t={launchAssistiveText:this._textStrings.launchAssistiveText};this.querySelectorAll("kyn-workspace-switcher-menu-item").forEach((e=>{e.textStrings=t}))}_warnForLegacyLeftSlotUsage(){if(this._hasLegacyLeftSlotContent&&"undefined"!=typeof console)return this.accountMeta&&!this._hasWarnedAboutLeftSlotConflict?(console.warn('[kyn-workspace-switcher] `accountMeta` overrides legacy `slot="left"` content. Remove the slot content or migrate fully to `accountMeta`.'),void(this._hasWarnedAboutLeftSlotConflict=!0)):void(this.accountMeta||this._hasWarnedAboutLegacyLeftSlot||(console.warn('[kyn-workspace-switcher] `slot="left"` is a legacy API. Prefer the `accountMeta` property for rigid account meta rendering.'),this._hasWarnedAboutLegacyLeftSlot=!0))}_renderAccountMeta(){var t;return this.accountMeta?c`
|
|
328
328
|
<div class="workspace-switcher__account-meta">
|
|
329
329
|
<span
|
|
330
330
|
class="workspace-switcher__account-meta-status"
|
|
@@ -342,14 +342,14 @@ import{__setFunctionName as t,__esDecorate as e,__runInitializers as i,__classPr
|
|
|
342
342
|
${null===(t=this.accountMeta.items)||void 0===t?void 0:t.map(((t,e)=>this._renderAccountMetaItem(t,e)))}
|
|
343
343
|
</div>
|
|
344
344
|
</div>
|
|
345
|
-
`:null}_renderAccountMetaItem(t,e){var i,a;const s="copy"===t.actionIcon?this._copiedAccountMetaIndex===e?k:
|
|
345
|
+
`:null}_renderAccountMetaItem(t,e){var i,a;const s="copy"===t.actionIcon?this._copiedAccountMetaIndex===e?k:g:"launch"===t.actionIcon?f:null;if(t.href||"copy"===t.actionIcon){const r=null!==(i=t.target)&&void 0!==i?i:m.SELF,o=null!==(a=t.rel)&&void 0!==a?a:"_blank"===r?"noopener noreferrer":"";return c`
|
|
346
346
|
<kyn-link
|
|
347
347
|
class="workspace-switcher__account-meta-link"
|
|
348
348
|
standalone
|
|
349
349
|
animationInactive
|
|
350
350
|
href=${t.href||"javascript:void(0)"}
|
|
351
|
-
target=${
|
|
352
|
-
rel=${
|
|
351
|
+
target=${r}
|
|
352
|
+
rel=${o}
|
|
353
353
|
@on-click=${i=>this._handleAccountMetaItemClick(i,t,e)}
|
|
354
354
|
>
|
|
355
355
|
${t.text}
|
|
@@ -364,5 +364,5 @@ import{__setFunctionName as t,__esDecorate as e,__runInitializers as i,__classPr
|
|
|
364
364
|
</kyn-link>
|
|
365
365
|
`}return c`
|
|
366
366
|
<span class="workspace-switcher__account-meta-item">${t.text}</span>
|
|
367
|
-
`}async _handleAccountMetaItemClick(t,e,i){var a,s,
|
|
367
|
+
`}async _handleAccountMetaItemClick(t,e,i){var a,s,r;if("copy"!==e.actionIcon)return;const o=null!==(a=e.copyValue)&&void 0!==a?a:e.text,n=null===(s=t.detail)||void 0===s?void 0:s.origEvent;null==n||n.preventDefault();const c=null===(r=globalThis.navigator)||void 0===r?void 0:r.clipboard;try{await(null==c?void 0:c.writeText(o)),this._showCopyFeedback(i)}catch{return}this.dispatchEvent(new CustomEvent("on-account-meta-copy",{detail:{index:i,text:e.text,value:o,success:!0},bubbles:!0,composed:!0}))}_showCopyFeedback(t){this._copiedAccountMetaIndex=t,null!=this._copyFeedbackTimeout&&window.clearTimeout(this._copyFeedbackTimeout),this._copyFeedbackTimeout=window.setTimeout((()=>{this._copiedAccountMetaIndex=null,this._copyFeedbackTimeout=null}),3e3)}_clearCopyFeedback(){this._copiedAccountMetaIndex=null,null!=this._copyFeedbackTimeout&&(window.clearTimeout(this._copyFeedbackTimeout),this._copyFeedbackTimeout=null)}},r=new WeakMap,y=new WeakMap,x=new WeakMap,b=new WeakMap,S=new WeakMap,L=new WeakMap,M=new WeakMap,T=new WeakMap,C=new WeakMap,t(W,"WorkspaceSwitcher"),(()=>{var t;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(t=H[Symbol.metadata])&&void 0!==t?t:null):void 0;z=[h({type:Object})],I=[h({attribute:!1})],F=[h({type:String,reflect:!0})],$=[h({type:Boolean,reflect:!0})],j=[h({type:Boolean,reflect:!0})],D=[h({type:Boolean,reflect:!0,attribute:"hide-left-divider"})],O=[d()],E=[d()],B=[d()],e(W,null,z,{kind:"accessor",name:"textStrings",static:!1,private:!1,access:{has:t=>"textStrings"in t,get:t=>t.textStrings,set:(t,e)=>{t.textStrings=e}},metadata:i},P,X),e(W,null,I,{kind:"accessor",name:"accountMeta",static:!1,private:!1,access:{has:t=>"accountMeta"in t,get:t=>t.accountMeta,set:(t,e)=>{t.accountMeta=e}},metadata:i},q,G),e(W,null,F,{kind:"accessor",name:"view",static:!1,private:!1,access:{has:t=>"view"in t,get:t=>t.view,set:(t,e)=>{t.view=e}},metadata:i},K,N),e(W,null,$,{kind:"accessor",name:"hideCurrentTitle",static:!1,private:!1,access:{has:t=>"hideCurrentTitle"in t,get:t=>t.hideCurrentTitle,set:(t,e)=>{t.hideCurrentTitle=e}},metadata:i},V,J),e(W,null,j,{kind:"accessor",name:"hideWorkspacesTitle",static:!1,private:!1,access:{has:t=>"hideWorkspacesTitle"in t,get:t=>t.hideWorkspacesTitle,set:(t,e)=>{t.hideWorkspacesTitle=e}},metadata:i},Q,Y),e(W,null,D,{kind:"accessor",name:"hideLeftDivider",static:!1,private:!1,access:{has:t=>"hideLeftDivider"in t,get:t=>t.hideLeftDivider,set:(t,e)=>{t.hideLeftDivider=e}},metadata:i},Z,tt),e(W,null,O,{kind:"accessor",name:"_textStrings",static:!1,private:!1,access:{has:t=>"_textStrings"in t,get:t=>t._textStrings,set:(t,e)=>{t._textStrings=e}},metadata:i},et,it),e(W,null,E,{kind:"accessor",name:"_hasLegacyLeftSlotContent",static:!1,private:!1,access:{has:t=>"_hasLegacyLeftSlotContent"in t,get:t=>t._hasLegacyLeftSlotContent,set:(t,e)=>{t._hasLegacyLeftSlotContent=e}},metadata:i},at,st),e(W,null,B,{kind:"accessor",name:"_copiedAccountMetaIndex",static:!1,private:!1,access:{has:t=>"_copiedAccountMetaIndex"in t,get:t=>t._copiedAccountMetaIndex,set:(t,e)=>{t._copiedAccountMetaIndex=e}},metadata:i},rt,ot),e(null,A={value:W},R,{kind:"class",name:W.name,metadata:i},null,U),W=A.value,i&&Object.defineProperty(W,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),W.styles=n(_),i(W,U),W})();export{y as WorkspaceSwitcher};
|
|
368
368
|
//# sourceMappingURL=workspaceSwitcher.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaceSwitcher.js","sources":["../../../../src/components/global/workspaceSwitcher/workspaceSwitcher.ts"],"sourcesContent":["import { LitElement, html, unsafeCSS } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { deepmerge } from 'deepmerge-ts';\n\nimport WorkspaceSwitcherScss from './workspaceSwitcher.scss?inline';\n\nimport './workspaceSwitcherMenuItem';\nimport '../../reusable/link';\nimport { LINK_TARGETS } from '../../reusable/link/defs';\n\nimport checkmarkFilledIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/checkmark-filled.svg';\nimport checkmarkIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/checkmark.svg';\nimport copyIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/copy.svg';\nimport launchIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/launch.svg';\n\nconst _defaultTextStrings = {\n currentTitle: 'CURRENT',\n workspacesTitle: 'WORKSPACES',\n backToWorkspaces: 'Workspaces',\n};\n\nexport interface WorkspaceSwitcherAccountMetaItem {\n text: string;\n href?: string;\n target?: LINK_TARGETS;\n rel?: string;\n actionIcon?: 'copy' | 'launch';\n copyValue?: string;\n}\n\nexport interface WorkspaceSwitcherAccountMeta {\n name: string;\n items?: WorkspaceSwitcherAccountMetaItem[];\n}\n\n/**\n * Workspace Switcher shell component providing two-panel layout with mobile drill-down.\n * Component fits to 100% of the width and height of its container and surfaces two panels for content composition via slots.\n * Consumers compose workspace and account rows via named slots using\n * sub-components like `kyn-workspace-switcher-menu-item`.\n * The account meta block can also be provided via the `accountMeta` property,\n * which renders the preferred rigid built-in pattern.\n * @slot left - Legacy non-list content for the left panel when `accountMeta` is not used. Prefer `accountMeta`; this slot is maintained for backward compatibility.\n * @slot left-list - List items for the left panel (rendered inside role=\"list\").\n * @slot right - Non-list content for the right panel (e.g. search).\n * @slot right-list - List items for the right panel (rendered inside role=\"list\").\n * @fires on-account-meta-copy - Emits when a copy-style account meta action is activated.\n * @cssprop [--kyn-workspace-switcher-max-height=none] - Maximum height of the switcher panel.\n * @cssprop [--kyn-workspace-switcher-left-panel-width=275px] - Width of the left panel in desktop two-panel layout.\n */\n@customElement('kyn-workspace-switcher')\nexport class WorkspaceSwitcher extends LitElement {\n static override styles = unsafeCSS(WorkspaceSwitcherScss);\n\n /** Text string customization. */\n @property({ type: Object })\n accessor textStrings = _defaultTextStrings;\n\n /** Built-in account meta content for the left panel. */\n @property({ attribute: false })\n accessor accountMeta: WorkspaceSwitcherAccountMeta | null = null;\n\n /** Mobile drill-down view state. 'root' shows left panel, 'detail' shows right panel.\n * @internal\n */\n @property({ type: String, reflect: true })\n accessor view: 'root' | 'detail' = 'root';\n\n /** Hides the heading above the account meta info. */\n @property({ type: Boolean, reflect: true })\n accessor hideCurrentTitle = false;\n\n /** Hides the heading above the lower left-hand side list. Example: suppress for accounts-only customers. */\n @property({ type: Boolean, reflect: true })\n accessor hideWorkspacesTitle = false;\n\n /** Hides the divider beneath the `left` slot content. */\n @property({ type: Boolean, reflect: true, attribute: 'hide-left-divider' })\n accessor hideLeftDivider = false;\n\n /** Merged text strings.\n * @internal\n */\n private _textStrings = _defaultTextStrings;\n\n /** Tracks whether legacy left-slot content is present. */\n @state()\n private accessor _hasLegacyLeftSlotContent = false;\n\n /** Tracks which copy-style account meta item is showing success feedback. */\n @state()\n private accessor _copiedAccountMetaIndex: number | null = null;\n\n /**\n * The nearest flyout host, if any.\n * @internal\n */\n private _flyoutHost: HTMLElement | null = null;\n\n /**\n * Clears transient copy feedback after a short delay.\n * @internal\n */\n private _copyFeedbackTimeout: number | null = null;\n\n /**\n * Watches for legacy slot usage changes.\n * @internal\n */\n private _lightDomObserver: MutationObserver | null = null;\n\n /**\n * Ensures legacy slot guidance only logs once per host instance.\n * @internal\n */\n private _hasWarnedAboutLegacyLeftSlot = false;\n\n /**\n * Ensures conflicting input guidance only logs once per host instance.\n * @internal\n */\n private _hasWarnedAboutLeftSlotConflict = false;\n\n /**\n * @internal\n */\n private _handleFlyoutToggle = (e: Event) => {\n const detail = (e as CustomEvent).detail;\n if (!detail?.open) {\n this.view = 'root';\n }\n };\n\n override connectedCallback() {\n super.connectedCallback();\n this._updateLegacyLeftSlotState();\n this._lightDomObserver = new MutationObserver(() =>\n this._updateLegacyLeftSlotState()\n );\n this._lightDomObserver.observe(this, {\n childList: true,\n attributes: true,\n attributeFilter: ['slot'],\n });\n this._flyoutHost = this.closest('kyn-header-flyout');\n this._flyoutHost?.addEventListener(\n 'on-flyout-toggle',\n this._handleFlyoutToggle as EventListener\n );\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this._flyoutHost?.removeEventListener(\n 'on-flyout-toggle',\n this._handleFlyoutToggle as EventListener\n );\n this._clearCopyFeedback();\n this._lightDomObserver?.disconnect();\n this._lightDomObserver = null;\n this._flyoutHost = null;\n }\n\n override willUpdate(changedProperties: Map<string, unknown>) {\n if (changedProperties.has('textStrings')) {\n this._textStrings = deepmerge(_defaultTextStrings, this.textStrings);\n }\n\n if (changedProperties.has('accountMeta')) {\n this._clearCopyFeedback();\n this._warnForLegacyLeftSlotUsage();\n }\n }\n\n override render() {\n const showLeftHeader =\n this.accountMeta != null || this._hasLegacyLeftSlotContent;\n\n return html`\n <div class=\"workspace-switcher\">\n <div class=\"workspace-switcher__left\">\n ${!this.hideCurrentTitle\n ? html`<span class=\"workspace-switcher__title\"\n >${this._textStrings.currentTitle}</span\n >`\n : null}\n ${showLeftHeader\n ? html`\n <div class=\"workspace-switcher__left-header\">\n ${this.accountMeta\n ? this._renderAccountMeta()\n : html`<slot name=\"left\"></slot>`}\n </div>\n `\n : null}\n ${!this.hideWorkspacesTitle\n ? html`<span class=\"workspace-switcher__title\"\n >${this._textStrings.workspacesTitle}</span\n >`\n : null}\n <div class=\"workspace-switcher__list\" role=\"list\">\n <slot name=\"left-list\"></slot>\n </div>\n </div>\n <div class=\"workspace-switcher__right\">\n <kyn-workspace-switcher-menu-item\n class=\"workspace-switcher__back\"\n variant=\"back\"\n name=${this._textStrings.backToWorkspaces}\n @on-click=${this._handleBackClick}\n ></kyn-workspace-switcher-menu-item>\n <slot name=\"right\"></slot>\n <div class=\"workspace-switcher__list\" role=\"list\">\n <slot name=\"right-list\"></slot>\n </div>\n </div>\n </div>\n `;\n }\n\n private _handleBackClick() {\n this.view = 'root';\n }\n\n private _updateLegacyLeftSlotState() {\n this._hasLegacyLeftSlotContent = Array.from(this.children).some(\n (child) => child.getAttribute('slot') === 'left'\n );\n this._warnForLegacyLeftSlotUsage();\n }\n\n private _warnForLegacyLeftSlotUsage() {\n if (!this._hasLegacyLeftSlotContent || typeof console === 'undefined')\n return;\n\n if (this.accountMeta && !this._hasWarnedAboutLeftSlotConflict) {\n console.warn(\n '[kyn-workspace-switcher] `accountMeta` overrides legacy `slot=\"left\"` content. Remove the slot content or migrate fully to `accountMeta`.'\n );\n this._hasWarnedAboutLeftSlotConflict = true;\n return;\n }\n\n if (!this.accountMeta && !this._hasWarnedAboutLegacyLeftSlot) {\n console.warn(\n '[kyn-workspace-switcher] `slot=\"left\"` is a legacy API. Prefer the `accountMeta` property for rigid account meta rendering.'\n );\n this._hasWarnedAboutLegacyLeftSlot = true;\n }\n }\n\n private _renderAccountMeta() {\n if (!this.accountMeta) return null;\n\n return html`\n <div class=\"workspace-switcher__account-meta\">\n <span\n class=\"workspace-switcher__account-meta-status\"\n aria-hidden=\"true\"\n >\n ${unsafeSVG(checkmarkFilledIcon)}\n </span>\n <div class=\"workspace-switcher__account-meta-content\">\n <span\n class=\"workspace-switcher__account-meta-name\"\n title=${this.accountMeta.name}\n >\n ${this.accountMeta.name}\n </span>\n ${this.accountMeta.items?.map((item, index) =>\n this._renderAccountMetaItem(item, index)\n )}\n </div>\n </div>\n `;\n }\n\n private _renderAccountMetaItem(\n item: WorkspaceSwitcherAccountMetaItem,\n index: number\n ) {\n const icon =\n item.actionIcon === 'copy'\n ? this._copiedAccountMetaIndex === index\n ? checkmarkIcon\n : copyIcon\n : item.actionIcon === 'launch'\n ? launchIcon\n : null;\n\n if (item.href || item.actionIcon === 'copy') {\n const target = item.target ?? LINK_TARGETS.SELF;\n const rel =\n item.rel ?? (target === '_blank' ? 'noopener noreferrer' : '');\n\n return html`\n <kyn-link\n class=\"workspace-switcher__account-meta-link\"\n standalone\n animationInactive\n href=${item.href || 'javascript:void(0)'}\n target=${target}\n rel=${rel}\n @on-click=${(e: CustomEvent) =>\n this._handleAccountMetaItemClick(e, item, index)}\n >\n ${item.text}\n ${icon\n ? html`\n <span\n slot=\"icon\"\n class=\"workspace-switcher__account-meta-link-icon\"\n >\n ${unsafeSVG(icon)}\n </span>\n `\n : null}\n </kyn-link>\n `;\n }\n\n return html`\n <span class=\"workspace-switcher__account-meta-item\">${item.text}</span>\n `;\n }\n\n private async _handleAccountMetaItemClick(\n e: CustomEvent,\n item: WorkspaceSwitcherAccountMetaItem,\n index: number\n ) {\n if (item.actionIcon !== 'copy') return;\n\n const copyValue = item.copyValue ?? item.text;\n const origEvent = e.detail?.origEvent as Event | undefined;\n\n origEvent?.preventDefault();\n const clipboard = globalThis.navigator?.clipboard;\n\n try {\n await clipboard?.writeText(copyValue);\n this._showCopyFeedback(index);\n } catch {\n return;\n }\n\n this.dispatchEvent(\n new CustomEvent('on-account-meta-copy', {\n detail: { index, text: item.text, value: copyValue, success: true },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private _showCopyFeedback(index: number) {\n this._copiedAccountMetaIndex = index;\n\n if (this._copyFeedbackTimeout != null) {\n window.clearTimeout(this._copyFeedbackTimeout);\n }\n\n this._copyFeedbackTimeout = window.setTimeout(() => {\n this._copiedAccountMetaIndex = null;\n this._copyFeedbackTimeout = null;\n }, 3000);\n }\n\n private _clearCopyFeedback() {\n this._copiedAccountMetaIndex = null;\n\n if (this._copyFeedbackTimeout != null) {\n window.clearTimeout(this._copyFeedbackTimeout);\n this._copyFeedbackTimeout = null;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-workspace-switcher': WorkspaceSwitcher;\n }\n}\n"],"names":["_defaultTextStrings","currentTitle","workspacesTitle","backToWorkspaces","WorkspaceSwitcher","customElement","LitElement","_classThis","_classSuper","_WorkspaceSwitcher_textStrings_accessor_storage","set","this","__runInitializers","_textStrings_initializers","_WorkspaceSwitcher_accountMeta_accessor_storage","_textStrings_extraInitializers","_accountMeta_initializers","_WorkspaceSwitcher_view_accessor_storage","_accountMeta_extraInitializers","_view_initializers","_WorkspaceSwitcher_hideCurrentTitle_accessor_storage","_view_extraInitializers","_hideCurrentTitle_initializers","_WorkspaceSwitcher_hideWorkspacesTitle_accessor_storage","_hideCurrentTitle_extraInitializers","_hideWorkspacesTitle_initializers","_WorkspaceSwitcher_hideLeftDivider_accessor_storage","_hideWorkspacesTitle_extraInitializers","_hideLeftDivider_initializers","_textStrings","_hideLeftDivider_extraInitializers","_WorkspaceSwitcher__hasLegacyLeftSlotContent_accessor_storage","__hasLegacyLeftSlotContent_initializers","_WorkspaceSwitcher__copiedAccountMetaIndex_accessor_storage","__hasLegacyLeftSlotContent_extraInitializers","__copiedAccountMetaIndex_initializers","_flyoutHost","__copiedAccountMetaIndex_extraInitializers","_copyFeedbackTimeout","_lightDomObserver","_hasWarnedAboutLegacyLeftSlot","_hasWarnedAboutLeftSlotConflict","_handleFlyoutToggle","e","detail","open","view","textStrings","__classPrivateFieldGet","value","__classPrivateFieldSet","accountMeta","hideCurrentTitle","hideWorkspacesTitle","hideLeftDivider","_hasLegacyLeftSlotContent","_copiedAccountMetaIndex","connectedCallback","super","_updateLegacyLeftSlotState","MutationObserver","observe","childList","attributes","attributeFilter","closest","_a","addEventListener","disconnectedCallback","removeEventListener","_clearCopyFeedback","_b","disconnect","willUpdate","changedProperties","has","deepmerge","_warnForLegacyLeftSlotUsage","render","showLeftHeader","html","_renderAccountMeta","_handleBackClick","Array","from","children","some","child","getAttribute","console","warn","unsafeSVG","checkmarkFilledIcon","name","items","map","item","index","_renderAccountMetaItem","icon","actionIcon","checkmarkIcon","copyIcon","launchIcon","href","target","LINK_TARGETS","SELF","rel","_handleAccountMetaItemClick","text","copyValue","origEvent","preventDefault","clipboard","_c","globalThis","navigator","writeText","_showCopyFeedback","dispatchEvent","CustomEvent","success","bubbles","composed","window","clearTimeout","setTimeout","_textStrings_decorators","property","type","Object","_accountMeta_decorators","attribute","String","reflect","Boolean","_hideLeftDivider_decorators","__hasLegacyLeftSlotContent_decorators","state","__copiedAccountMetaIndex_decorators","__esDecorate","kind","static","private","access","obj","get","metadata","_metadata","_view_decorators","_hideCurrentTitle_decorators","_hideWorkspacesTitle_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","WorkspaceSwitcherScss"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspaceSwitcher.js","sources":["../../../../src/components/global/workspaceSwitcher/workspaceSwitcher.ts"],"sourcesContent":["import { LitElement, html, unsafeCSS } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { deepmerge } from 'deepmerge-ts';\n\nimport WorkspaceSwitcherScss from './workspaceSwitcher.scss?inline';\n\nimport './workspaceSwitcherMenuItem';\nimport type { WorkspaceSwitcherMenuItem } from './workspaceSwitcherMenuItem';\nimport '../../reusable/link';\nimport { LINK_TARGETS } from '../../reusable/link/defs';\n\nimport checkmarkFilledIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/checkmark-filled.svg';\nimport checkmarkIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/checkmark.svg';\nimport copyIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/copy.svg';\nimport launchIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/launch.svg';\n\nconst _defaultTextStrings = {\n currentTitle: 'CURRENT',\n workspacesTitle: 'WORKSPACES',\n backToWorkspaces: 'Workspaces',\n launchAssistiveText: 'Opens in a new tab',\n};\n\nexport interface WorkspaceSwitcherAccountMetaItem {\n text: string;\n href?: string;\n target?: LINK_TARGETS;\n rel?: string;\n actionIcon?: 'copy' | 'launch';\n copyValue?: string;\n}\n\nexport interface WorkspaceSwitcherAccountMeta {\n name: string;\n items?: WorkspaceSwitcherAccountMetaItem[];\n}\n\n/**\n * Workspace Switcher shell component providing two-panel layout with mobile drill-down.\n * Component fits to 100% of the width and height of its container and surfaces two panels for content composition via slots.\n * Consumers compose workspace and account rows via named slots using\n * sub-components like `kyn-workspace-switcher-menu-item`.\n * The account meta block can also be provided via the `accountMeta` property,\n * which renders the preferred rigid built-in pattern.\n * @slot left - Legacy non-list content for the left panel when `accountMeta` is not used. Prefer `accountMeta`; this slot is maintained for backward compatibility.\n * @slot left-list - List items for the left panel (rendered inside role=\"list\").\n * @slot right - Non-list content for the right panel (e.g. search).\n * @slot right-list - List items for the right panel (rendered inside role=\"list\").\n * @fires on-account-meta-copy - Emits when a copy-style account meta action is activated.\n * @cssprop [--kyn-workspace-switcher-max-height=none] - Maximum height of the switcher panel.\n * @cssprop [--kyn-workspace-switcher-left-panel-width=275px] - Width of the left panel in desktop two-panel layout.\n */\n@customElement('kyn-workspace-switcher')\nexport class WorkspaceSwitcher extends LitElement {\n static override styles = unsafeCSS(WorkspaceSwitcherScss);\n\n /** Text string customization. */\n @property({ type: Object })\n accessor textStrings = _defaultTextStrings;\n\n /** Built-in account meta content for the left panel. */\n @property({ attribute: false })\n accessor accountMeta: WorkspaceSwitcherAccountMeta | null = null;\n\n /** Mobile drill-down view state. 'root' shows left panel, 'detail' shows right panel.\n * @internal\n */\n @property({ type: String, reflect: true })\n accessor view: 'root' | 'detail' = 'root';\n\n /** Hides the heading above the account meta info. */\n @property({ type: Boolean, reflect: true })\n accessor hideCurrentTitle = false;\n\n /** Hides the heading above the lower left-hand side list. Example: suppress for accounts-only customers. */\n @property({ type: Boolean, reflect: true })\n accessor hideWorkspacesTitle = false;\n\n /** Hides the divider beneath the `left` slot content. */\n @property({ type: Boolean, reflect: true, attribute: 'hide-left-divider' })\n accessor hideLeftDivider = false;\n\n /** Merged text strings.\n * @internal\n */\n @state()\n private accessor _textStrings = _defaultTextStrings;\n\n /** Tracks whether legacy left-slot content is present. */\n @state()\n private accessor _hasLegacyLeftSlotContent = false;\n\n /** Tracks which copy-style account meta item is showing success feedback. */\n @state()\n private accessor _copiedAccountMetaIndex: number | null = null;\n\n /**\n * The nearest flyout host, if any.\n * @internal\n */\n private _flyoutHost: HTMLElement | null = null;\n\n /**\n * Clears transient copy feedback after a short delay.\n * @internal\n */\n private _copyFeedbackTimeout: number | null = null;\n\n /**\n * Watches for legacy slot usage changes.\n * @internal\n */\n private _lightDomObserver: MutationObserver | null = null;\n\n /**\n * Ensures legacy slot guidance only logs once per host instance.\n * @internal\n */\n private _hasWarnedAboutLegacyLeftSlot = false;\n\n /**\n * Ensures conflicting input guidance only logs once per host instance.\n * @internal\n */\n private _hasWarnedAboutLeftSlotConflict = false;\n\n /**\n * @internal\n */\n private _handleFlyoutToggle = (e: Event) => {\n const detail = (e as CustomEvent).detail;\n if (!detail?.open) {\n this.view = 'root';\n }\n };\n\n override connectedCallback() {\n super.connectedCallback();\n this._updateLegacyLeftSlotState();\n this._lightDomObserver = new MutationObserver(() =>\n this._updateLegacyLeftSlotState()\n );\n this._lightDomObserver.observe(this, {\n childList: true,\n attributes: true,\n attributeFilter: ['slot'],\n });\n this._flyoutHost = this.closest('kyn-header-flyout');\n this._flyoutHost?.addEventListener(\n 'on-flyout-toggle',\n this._handleFlyoutToggle as EventListener\n );\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this._flyoutHost?.removeEventListener(\n 'on-flyout-toggle',\n this._handleFlyoutToggle as EventListener\n );\n this._clearCopyFeedback();\n this._lightDomObserver?.disconnect();\n this._lightDomObserver = null;\n this._flyoutHost = null;\n }\n\n override willUpdate(changedProperties: Map<string, unknown>) {\n if (changedProperties.has('textStrings')) {\n this._textStrings = deepmerge(_defaultTextStrings, this.textStrings);\n }\n\n if (changedProperties.has('accountMeta')) {\n this._clearCopyFeedback();\n this._warnForLegacyLeftSlotUsage();\n }\n }\n\n override updated(changedProperties: Map<string, unknown>) {\n if (changedProperties.has('textStrings')) {\n this._updateChildMenuItemTextStrings();\n }\n }\n\n override render() {\n const showLeftHeader =\n this.accountMeta != null || this._hasLegacyLeftSlotContent;\n\n return html`\n <div class=\"workspace-switcher\">\n <div class=\"workspace-switcher__left\">\n ${!this.hideCurrentTitle\n ? html`<span class=\"workspace-switcher__title\"\n >${this._textStrings.currentTitle}</span\n >`\n : null}\n ${showLeftHeader\n ? html`\n <div class=\"workspace-switcher__left-header\">\n ${this.accountMeta\n ? this._renderAccountMeta()\n : html`<slot name=\"left\"></slot>`}\n </div>\n `\n : null}\n ${!this.hideWorkspacesTitle\n ? html`<span class=\"workspace-switcher__title\"\n >${this._textStrings.workspacesTitle}</span\n >`\n : null}\n <div class=\"workspace-switcher__list\" role=\"list\">\n <slot name=\"left-list\"></slot>\n </div>\n </div>\n <div class=\"workspace-switcher__right\">\n <kyn-workspace-switcher-menu-item\n class=\"workspace-switcher__back\"\n variant=\"back\"\n name=${this._textStrings.backToWorkspaces}\n @on-click=${this._handleBackClick}\n ></kyn-workspace-switcher-menu-item>\n <slot name=\"right\"></slot>\n <div class=\"workspace-switcher__list\" role=\"list\">\n <slot name=\"right-list\"></slot>\n </div>\n </div>\n </div>\n `;\n }\n\n private _handleBackClick() {\n this.view = 'root';\n }\n\n private _updateLegacyLeftSlotState() {\n this._hasLegacyLeftSlotContent = Array.from(this.children).some(\n (child) => child.getAttribute('slot') === 'left'\n );\n this._updateChildMenuItemTextStrings();\n this._warnForLegacyLeftSlotUsage();\n }\n\n private _updateChildMenuItemTextStrings() {\n const menuItemTextStrings = {\n launchAssistiveText: this._textStrings.launchAssistiveText,\n };\n\n this.querySelectorAll<WorkspaceSwitcherMenuItem>(\n 'kyn-workspace-switcher-menu-item'\n ).forEach((item) => {\n item.textStrings = menuItemTextStrings;\n });\n }\n\n private _warnForLegacyLeftSlotUsage() {\n if (!this._hasLegacyLeftSlotContent || typeof console === 'undefined')\n return;\n\n if (this.accountMeta && !this._hasWarnedAboutLeftSlotConflict) {\n console.warn(\n '[kyn-workspace-switcher] `accountMeta` overrides legacy `slot=\"left\"` content. Remove the slot content or migrate fully to `accountMeta`.'\n );\n this._hasWarnedAboutLeftSlotConflict = true;\n return;\n }\n\n if (!this.accountMeta && !this._hasWarnedAboutLegacyLeftSlot) {\n console.warn(\n '[kyn-workspace-switcher] `slot=\"left\"` is a legacy API. Prefer the `accountMeta` property for rigid account meta rendering.'\n );\n this._hasWarnedAboutLegacyLeftSlot = true;\n }\n }\n\n private _renderAccountMeta() {\n if (!this.accountMeta) return null;\n\n return html`\n <div class=\"workspace-switcher__account-meta\">\n <span\n class=\"workspace-switcher__account-meta-status\"\n aria-hidden=\"true\"\n >\n ${unsafeSVG(checkmarkFilledIcon)}\n </span>\n <div class=\"workspace-switcher__account-meta-content\">\n <span\n class=\"workspace-switcher__account-meta-name\"\n title=${this.accountMeta.name}\n >\n ${this.accountMeta.name}\n </span>\n ${this.accountMeta.items?.map((item, index) =>\n this._renderAccountMetaItem(item, index)\n )}\n </div>\n </div>\n `;\n }\n\n private _renderAccountMetaItem(\n item: WorkspaceSwitcherAccountMetaItem,\n index: number\n ) {\n const icon =\n item.actionIcon === 'copy'\n ? this._copiedAccountMetaIndex === index\n ? checkmarkIcon\n : copyIcon\n : item.actionIcon === 'launch'\n ? launchIcon\n : null;\n\n if (item.href || item.actionIcon === 'copy') {\n const target = item.target ?? LINK_TARGETS.SELF;\n const rel =\n item.rel ?? (target === '_blank' ? 'noopener noreferrer' : '');\n\n return html`\n <kyn-link\n class=\"workspace-switcher__account-meta-link\"\n standalone\n animationInactive\n href=${item.href || 'javascript:void(0)'}\n target=${target}\n rel=${rel}\n @on-click=${(e: CustomEvent) =>\n this._handleAccountMetaItemClick(e, item, index)}\n >\n ${item.text}\n ${icon\n ? html`\n <span\n slot=\"icon\"\n class=\"workspace-switcher__account-meta-link-icon\"\n >\n ${unsafeSVG(icon)}\n </span>\n `\n : null}\n </kyn-link>\n `;\n }\n\n return html`\n <span class=\"workspace-switcher__account-meta-item\">${item.text}</span>\n `;\n }\n\n private async _handleAccountMetaItemClick(\n e: CustomEvent,\n item: WorkspaceSwitcherAccountMetaItem,\n index: number\n ) {\n if (item.actionIcon !== 'copy') return;\n\n const copyValue = item.copyValue ?? item.text;\n const origEvent = e.detail?.origEvent as Event | undefined;\n\n origEvent?.preventDefault();\n const clipboard = globalThis.navigator?.clipboard;\n\n try {\n await clipboard?.writeText(copyValue);\n this._showCopyFeedback(index);\n } catch {\n return;\n }\n\n this.dispatchEvent(\n new CustomEvent('on-account-meta-copy', {\n detail: { index, text: item.text, value: copyValue, success: true },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private _showCopyFeedback(index: number) {\n this._copiedAccountMetaIndex = index;\n\n if (this._copyFeedbackTimeout != null) {\n window.clearTimeout(this._copyFeedbackTimeout);\n }\n\n this._copyFeedbackTimeout = window.setTimeout(() => {\n this._copiedAccountMetaIndex = null;\n this._copyFeedbackTimeout = null;\n }, 3000);\n }\n\n private _clearCopyFeedback() {\n this._copiedAccountMetaIndex = null;\n\n if (this._copyFeedbackTimeout != null) {\n window.clearTimeout(this._copyFeedbackTimeout);\n this._copyFeedbackTimeout = null;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-workspace-switcher': WorkspaceSwitcher;\n }\n}\n"],"names":["_defaultTextStrings","currentTitle","workspacesTitle","backToWorkspaces","launchAssistiveText","WorkspaceSwitcher","customElement","LitElement","_classThis","_classSuper","_WorkspaceSwitcher_textStrings_accessor_storage","set","this","__runInitializers","_textStrings_initializers","_WorkspaceSwitcher_accountMeta_accessor_storage","_textStrings_extraInitializers","_accountMeta_initializers","_WorkspaceSwitcher_view_accessor_storage","_accountMeta_extraInitializers","_view_initializers","_WorkspaceSwitcher_hideCurrentTitle_accessor_storage","_view_extraInitializers","_hideCurrentTitle_initializers","_WorkspaceSwitcher_hideWorkspacesTitle_accessor_storage","_hideCurrentTitle_extraInitializers","_hideWorkspacesTitle_initializers","_WorkspaceSwitcher_hideLeftDivider_accessor_storage","_hideWorkspacesTitle_extraInitializers","_hideLeftDivider_initializers","_WorkspaceSwitcher__textStrings_accessor_storage","_hideLeftDivider_extraInitializers","__textStrings_initializers","_WorkspaceSwitcher__hasLegacyLeftSlotContent_accessor_storage","__textStrings_extraInitializers","__hasLegacyLeftSlotContent_initializers","_WorkspaceSwitcher__copiedAccountMetaIndex_accessor_storage","__hasLegacyLeftSlotContent_extraInitializers","__copiedAccountMetaIndex_initializers","_flyoutHost","__copiedAccountMetaIndex_extraInitializers","_copyFeedbackTimeout","_lightDomObserver","_hasWarnedAboutLegacyLeftSlot","_hasWarnedAboutLeftSlotConflict","_handleFlyoutToggle","e","detail","open","view","textStrings","__classPrivateFieldGet","value","__classPrivateFieldSet","accountMeta","hideCurrentTitle","hideWorkspacesTitle","hideLeftDivider","_textStrings","_hasLegacyLeftSlotContent","_copiedAccountMetaIndex","connectedCallback","super","_updateLegacyLeftSlotState","MutationObserver","observe","childList","attributes","attributeFilter","closest","_a","addEventListener","disconnectedCallback","removeEventListener","_clearCopyFeedback","_b","disconnect","willUpdate","changedProperties","has","deepmerge","_warnForLegacyLeftSlotUsage","updated","_updateChildMenuItemTextStrings","render","showLeftHeader","html","_renderAccountMeta","_handleBackClick","Array","from","children","some","child","getAttribute","menuItemTextStrings","querySelectorAll","forEach","item","console","warn","unsafeSVG","checkmarkFilledIcon","name","items","map","index","_renderAccountMetaItem","icon","actionIcon","checkmarkIcon","copyIcon","launchIcon","href","target","LINK_TARGETS","SELF","rel","_handleAccountMetaItemClick","text","copyValue","origEvent","preventDefault","clipboard","_c","globalThis","navigator","writeText","_showCopyFeedback","dispatchEvent","CustomEvent","success","bubbles","composed","window","clearTimeout","setTimeout","_textStrings_decorators","property","type","Object","_accountMeta_decorators","attribute","String","reflect","Boolean","_hideLeftDivider_decorators","__textStrings_decorators","state","__hasLegacyLeftSlotContent_decorators","__copiedAccountMetaIndex_decorators","__esDecorate","kind","static","private","access","obj","get","metadata","_metadata","_view_decorators","_hideCurrentTitle_decorators","_hideWorkspacesTitle_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","WorkspaceSwitcherScss"],"mappings":"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"}
|
|
@@ -7,8 +7,8 @@ import '../../reusable/iconSelector';
|
|
|
7
7
|
* - favorite only
|
|
8
8
|
* - launch indicator only
|
|
9
9
|
* - launch indicator plus favorite
|
|
10
|
-
*
|
|
11
|
-
*
|
|
10
|
+
* The launch indicator is part of the primary row button while the favorite
|
|
11
|
+
* control stays pinned to the far right as a separate action.
|
|
12
12
|
* @fires on-click - Emits when the item is clicked. `detail: { value: string }`
|
|
13
13
|
* @fires on-favorite-change - Emits when favorite status changes. `detail: { value: string, favorited: boolean }`
|
|
14
14
|
*/
|
|
@@ -33,10 +33,23 @@ export declare class WorkspaceSwitcherMenuItem extends LitElement {
|
|
|
33
33
|
accessor favorited: boolean;
|
|
34
34
|
/** Whether to show the launch/new-tab indicator (item variant only). */
|
|
35
35
|
accessor showLaunchIndicator: boolean;
|
|
36
|
+
/** Text string customization. */
|
|
37
|
+
accessor textStrings: {
|
|
38
|
+
launchAssistiveText: string;
|
|
39
|
+
};
|
|
40
|
+
/** Merged text strings.
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
accessor _textStrings: {
|
|
44
|
+
launchAssistiveText: string;
|
|
45
|
+
};
|
|
36
46
|
/** Whether to show the favorite icon selector (item variant only). When present, it stays right-aligned. */
|
|
37
47
|
accessor showFavorite: boolean;
|
|
38
48
|
render(): import("lit-html").TemplateResult<1>;
|
|
39
49
|
private _renderWorkspaceContent;
|
|
50
|
+
private _renderLaunchIndicator;
|
|
51
|
+
private _renderLaunchAssistiveText;
|
|
52
|
+
willUpdate(changedProperties: Map<string, unknown>): void;
|
|
40
53
|
private _renderItemContent;
|
|
41
54
|
private _handleClick;
|
|
42
55
|
private _handleFavoriteChange;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaceSwitcherMenuItem.d.ts","sourceRoot":"","sources":["../../../../src/components/global/workspaceSwitcher/workspaceSwitcherMenuItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"workspaceSwitcherMenuItem.d.ts","sourceRoot":"","sources":["../../../../src/components/global/workspaceSwitcher/workspaceSwitcherMenuItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAYlD,OAAO,6BAA6B,CAAC;AAMrC;;;;;;;;;;;GAWG;AACH,qBACa,yBAA0B,SAAQ,UAAU;IACvD,OAAgB,MAAM,0BAA4C;IAElE,oCAAoC;IAEpC,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAAU;IAEzD,uCAAuC;IAEvC,QAAQ,CAAC,KAAK,SAAM;IAEpB,oCAAoC;IAEpC,QAAQ,CAAC,IAAI,SAAM;IAEnB;;;OAGG;IAEH,QAAQ,CAAC,SAAS,SAAM;IAExB,qDAAqD;IAErD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAErC,oCAAoC;IAEpC,QAAQ,CAAC,QAAQ,UAAS;IAE1B,yDAAyD;IAEzD,QAAQ,CAAC,SAAS,UAAS;IAE3B,wEAAwE;IAExE,QAAQ,CAAC,mBAAmB,UAAS;IAErC,iCAAiC;IAEjC,QAAQ,CAAC,WAAW;;MAAuB;IAE3C;;OAEG;IAEH,QAAQ,CAAC,YAAY;;MAAuB;IAE5C,4GAA4G;IAE5G,QAAQ,CAAC,YAAY,UAAS;IAErB,MAAM;IA4Cf,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,0BAA0B;IAQzB,UAAU,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAM3D,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,qBAAqB;CAU9B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kCAAkC,EAAE,yBAAyB,CAAC;KAC/D;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{__setFunctionName as e,__esDecorate as t,__runInitializers as i,__classPrivateFieldGet as n,__classPrivateFieldSet as
|
|
1
|
+
import{__setFunctionName as e,__esDecorate as t,__runInitializers as i,__classPrivateFieldGet as n,__classPrivateFieldSet as a}from"tslib";import{css as m,LitElement as s,unsafeCSS as o,html as r}from"lit";import{customElement as c,property as l,state as u}from"lit/decorators.js";import{classMap as d}from"lit/directives/class-map.js";import{unsafeSVG as h}from"lit/directives/unsafe-svg.js";import{deepmerge as v}from"deepmerge-ts";import{f as p,d as k,l as _}from"../../../vendor/@kyndryl-design-system/shidoka-icons-BKNlykoZ.js";import"../../reusable/iconSelector/iconSelector.js";import"../../reusable/iconSelector/iconSelectorGroup.js";import"lit-html/directives/class-map.js";import"lit-html/directives/unsafe-svg.js";var g=m`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
box-sizing: border-box;
|
|
@@ -36,6 +36,16 @@ import{__setFunctionName as e,__esDecorate as t,__runInitializers as i,__classPr
|
|
|
36
36
|
display: block;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
.sr-only {
|
|
40
|
+
clip: rect(0 0 0 0);
|
|
41
|
+
clip-path: inset(50%);
|
|
42
|
+
height: 1px;
|
|
43
|
+
overflow: hidden;
|
|
44
|
+
position: absolute;
|
|
45
|
+
white-space: nowrap;
|
|
46
|
+
width: 1px;
|
|
47
|
+
}
|
|
48
|
+
|
|
39
49
|
.menu-item {
|
|
40
50
|
font-family: var(--kd-font-family-secondary);
|
|
41
51
|
font-size: var(--kd-font-size-utility-2-sm);
|
|
@@ -168,9 +178,6 @@ import{__setFunctionName as e,__esDecorate as t,__runInitializers as i,__classPr
|
|
|
168
178
|
.menu-item--back.menu-item--selected .menu-item__back-icon {
|
|
169
179
|
color: var(--kd-color-text-level-light);
|
|
170
180
|
}
|
|
171
|
-
.menu-item--item {
|
|
172
|
-
padding-right: 8px;
|
|
173
|
-
}
|
|
174
181
|
.menu-item--item .menu-item__name {
|
|
175
182
|
max-width: 40ch;
|
|
176
183
|
}
|
|
@@ -184,6 +191,7 @@ import{__setFunctionName as e,__esDecorate as t,__runInitializers as i,__classPr
|
|
|
184
191
|
align-items: center;
|
|
185
192
|
gap: 8px;
|
|
186
193
|
flex-shrink: 0;
|
|
194
|
+
padding-right: 8px;
|
|
187
195
|
}
|
|
188
196
|
.menu-item--item .menu-item__launch-indicator {
|
|
189
197
|
display: flex;
|
|
@@ -229,9 +237,9 @@ import{__setFunctionName as e,__esDecorate as t,__runInitializers as i,__classPr
|
|
|
229
237
|
}
|
|
230
238
|
.menu-item--item .menu-item__favorite {
|
|
231
239
|
color: var(--kd-color-text-level-secondary);
|
|
232
|
-
}`;let
|
|
240
|
+
}`;const f={launchAssistiveText:"Opens in a new tab"};let w=(()=>{var m,w,x,b,y,S,$,W,I,j,L;let M,T,z,C,F,A,O,B,E,P,G,H,N,U=[c("kyn-workspace-switcher-menu-item")],V=[],q=s,D=[],J=[],K=[],Q=[],R=[],X=[],Y=[],Z=[],ee=[],te=[],ie=[],ne=[],ae=[],me=[],se=[],oe=[],re=[],ce=[],le=[],ue=[],de=[],he=[];return T=class extends q{get variant(){return n(this,m,"f")}set variant(e){a(this,m,e,"f")}get value(){return n(this,w,"f")}set value(e){a(this,w,e,"f")}get name(){return n(this,x,"f")}set name(e){a(this,x,e,"f")}get nameTitle(){return n(this,b,"f")}set nameTitle(e){a(this,b,e,"f")}get count(){return n(this,y,"f")}set count(e){a(this,y,e,"f")}get selected(){return n(this,S,"f")}set selected(e){a(this,S,e,"f")}get favorited(){return n(this,$,"f")}set favorited(e){a(this,$,e,"f")}get showLaunchIndicator(){return n(this,W,"f")}set showLaunchIndicator(e){a(this,W,e,"f")}get textStrings(){return n(this,I,"f")}set textStrings(e){a(this,I,e,"f")}get _textStrings(){return n(this,j,"f")}set _textStrings(e){a(this,j,e,"f")}get showFavorite(){return n(this,L,"f")}set showFavorite(e){a(this,L,e,"f")}render(){const e="workspace"===this.variant,t="back"===this.variant,i={"menu-item":!0,"menu-item--workspace":e,"menu-item--back":t,"menu-item--item":!e&&!t,"menu-item--selected":this.selected},n=this.nameTitle||this.name;return r`
|
|
233
241
|
<div
|
|
234
|
-
class=${
|
|
242
|
+
class=${d(i)}
|
|
235
243
|
role=${t?"none":"listitem"}
|
|
236
244
|
aria-current=${this.selected?"true":"false"}
|
|
237
245
|
>
|
|
@@ -241,34 +249,35 @@ import{__setFunctionName as e,__esDecorate as t,__runInitializers as i,__classPr
|
|
|
241
249
|
@click=${this._handleClick}
|
|
242
250
|
>
|
|
243
251
|
${t?r`<span class="menu-item__back-icon"
|
|
244
|
-
>${
|
|
252
|
+
>${h(p)}</span
|
|
245
253
|
>`:null}
|
|
246
254
|
<span class="menu-item__name">${this.name}</span>
|
|
247
255
|
${e?this._renderWorkspaceContent():null}
|
|
256
|
+
${e||t||!this.showLaunchIndicator?null:this._renderLaunchIndicator()}
|
|
257
|
+
${e||t||!this.showLaunchIndicator?null:this._renderLaunchAssistiveText()}
|
|
248
258
|
</button>
|
|
249
259
|
${e||t?null:this._renderItemContent()}
|
|
250
260
|
</div>
|
|
251
261
|
`}_renderWorkspaceContent(){return null==this.count?null:r`
|
|
252
262
|
<span class="menu-item__count">${this.count}</span>
|
|
253
|
-
<span class="menu-item__chevron">${
|
|
254
|
-
`}
|
|
263
|
+
<span class="menu-item__chevron">${h(k)}</span>
|
|
264
|
+
`}_renderLaunchIndicator(){return r`
|
|
265
|
+
<span class="menu-item__launch-indicator" aria-hidden="true">
|
|
266
|
+
${h(_)}
|
|
267
|
+
</span>
|
|
268
|
+
`}_renderLaunchAssistiveText(){return this._textStrings.launchAssistiveText?r`<span class="sr-only"
|
|
269
|
+
>${this._textStrings.launchAssistiveText}</span
|
|
270
|
+
>`:null}willUpdate(e){e.has("textStrings")&&(this._textStrings=v(f,this.textStrings))}_renderItemContent(){return this.showFavorite?r`
|
|
255
271
|
<div class="menu-item__actions">
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
value=${this.value}
|
|
266
|
-
animateSelection
|
|
267
|
-
onlyVisibleOnHover
|
|
268
|
-
persistWhenChecked
|
|
269
|
-
@on-change=${this._handleFavoriteChange}
|
|
270
|
-
></kyn-icon-selector>
|
|
271
|
-
`:null}
|
|
272
|
+
<kyn-icon-selector
|
|
273
|
+
class="menu-item__favorite"
|
|
274
|
+
?checked=${this.favorited}
|
|
275
|
+
value=${this.value}
|
|
276
|
+
animateSelection
|
|
277
|
+
onlyVisibleOnHover
|
|
278
|
+
persistWhenChecked
|
|
279
|
+
@on-change=${this._handleFavoriteChange}
|
|
280
|
+
></kyn-icon-selector>
|
|
272
281
|
</div>
|
|
273
|
-
`:null}_handleClick(){this.dispatchEvent(new CustomEvent("on-click",{detail:{value:this.value},bubbles:!0,composed:!0}))}_handleFavoriteChange(e){e.stopPropagation(),this.dispatchEvent(new CustomEvent("on-favorite-change",{detail:{value:this.value,favorited:e.detail.checked},bubbles:!0,composed:!0}))}constructor(){super(...arguments),
|
|
282
|
+
`:null}_handleClick(){this.dispatchEvent(new CustomEvent("on-click",{detail:{value:this.value},bubbles:!0,composed:!0}))}_handleFavoriteChange(e){e.stopPropagation(),this.dispatchEvent(new CustomEvent("on-favorite-change",{detail:{value:this.value,favorited:e.detail.checked},bubbles:!0,composed:!0}))}constructor(){super(...arguments),m.set(this,i(this,D,"item")),w.set(this,(i(this,J),i(this,K,""))),x.set(this,(i(this,Q),i(this,R,""))),b.set(this,(i(this,X),i(this,Y,""))),y.set(this,(i(this,Z),i(this,ee,null))),S.set(this,(i(this,te),i(this,ie,!1))),$.set(this,(i(this,ne),i(this,ae,!1))),W.set(this,(i(this,me),i(this,se,!1))),I.set(this,(i(this,oe),i(this,re,f))),j.set(this,(i(this,ce),i(this,le,f))),L.set(this,(i(this,ue),i(this,de,!1))),i(this,he)}},m=new WeakMap,w=new WeakMap,x=new WeakMap,b=new WeakMap,y=new WeakMap,S=new WeakMap,$=new WeakMap,W=new WeakMap,I=new WeakMap,j=new WeakMap,L=new WeakMap,e(T,"WorkspaceSwitcherMenuItem"),(()=>{var e;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(e=q[Symbol.metadata])&&void 0!==e?e:null):void 0;z=[l({type:String})],C=[l({type:String})],F=[l({type:String})],A=[l({type:String,attribute:"name-title"})],O=[l({type:Number})],B=[l({type:Boolean})],E=[l({type:Boolean})],P=[l({type:Boolean})],G=[l({type:Object})],H=[u()],N=[l({type:Boolean})],t(T,null,z,{kind:"accessor",name:"variant",static:!1,private:!1,access:{has:e=>"variant"in e,get:e=>e.variant,set:(e,t)=>{e.variant=t}},metadata:i},D,J),t(T,null,C,{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(T,null,F,{kind:"accessor",name:"name",static:!1,private:!1,access:{has:e=>"name"in e,get:e=>e.name,set:(e,t)=>{e.name=t}},metadata:i},R,X),t(T,null,A,{kind:"accessor",name:"nameTitle",static:!1,private:!1,access:{has:e=>"nameTitle"in e,get:e=>e.nameTitle,set:(e,t)=>{e.nameTitle=t}},metadata:i},Y,Z),t(T,null,O,{kind:"accessor",name:"count",static:!1,private:!1,access:{has:e=>"count"in e,get:e=>e.count,set:(e,t)=>{e.count=t}},metadata:i},ee,te),t(T,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},ie,ne),t(T,null,E,{kind:"accessor",name:"favorited",static:!1,private:!1,access:{has:e=>"favorited"in e,get:e=>e.favorited,set:(e,t)=>{e.favorited=t}},metadata:i},ae,me),t(T,null,P,{kind:"accessor",name:"showLaunchIndicator",static:!1,private:!1,access:{has:e=>"showLaunchIndicator"in e,get:e=>e.showLaunchIndicator,set:(e,t)=>{e.showLaunchIndicator=t}},metadata:i},se,oe),t(T,null,G,{kind:"accessor",name:"textStrings",static:!1,private:!1,access:{has:e=>"textStrings"in e,get:e=>e.textStrings,set:(e,t)=>{e.textStrings=t}},metadata:i},re,ce),t(T,null,H,{kind:"accessor",name:"_textStrings",static:!1,private:!1,access:{has:e=>"_textStrings"in e,get:e=>e._textStrings,set:(e,t)=>{e._textStrings=t}},metadata:i},le,ue),t(T,null,N,{kind:"accessor",name:"showFavorite",static:!1,private:!1,access:{has:e=>"showFavorite"in e,get:e=>e.showFavorite,set:(e,t)=>{e.showFavorite=t}},metadata:i},de,he),t(null,M={value:T},U,{kind:"class",name:T.name,metadata:i},null,V),T=M.value,i&&Object.defineProperty(T,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),T.styles=o(g),i(T,V),T})();export{w as WorkspaceSwitcherMenuItem};
|
|
274
283
|
//# sourceMappingURL=workspaceSwitcherMenuItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaceSwitcherMenuItem.js","sources":["../../../../src/components/global/workspaceSwitcher/workspaceSwitcherMenuItem.ts"],"sourcesContent":["import { LitElement, html, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\n\nimport WorkspaceSwitcherMenuItemScss from './workspaceSwitcherMenuItem.scss?inline';\n\nimport arrowLeftIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/arrow-left.svg';\nimport chevronRightIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-right.svg';\nimport launchIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/launch.svg';\n\nimport '../../reusable/iconSelector';\n\n/**\n * Workspace Switcher Menu Item component.\n * Used for both workspace items (left panel) and account items (right panel).\n * Item rows support these trailing-action combinations:\n * - favorite only\n * - launch indicator only\n * - launch indicator plus favorite\n * When both are present, the launch indicator renders to the left and the\n * favorite control stays pinned to the far right for consistency.\n * @fires on-click - Emits when the item is clicked. `detail: { value: string }`\n * @fires on-favorite-change - Emits when favorite status changes. `detail: { value: string, favorited: boolean }`\n */\n@customElement('kyn-workspace-switcher-menu-item')\nexport class WorkspaceSwitcherMenuItem extends LitElement {\n static override styles = unsafeCSS(WorkspaceSwitcherMenuItemScss);\n\n /** The variant of the menu item. */\n @property({ type: String })\n accessor variant: 'workspace' | 'item' | 'back' = 'item';\n\n /** The unique value/id of the item. */\n @property({ type: String })\n accessor value = '';\n\n /** The display name of the item. */\n @property({ type: String })\n accessor name = '';\n\n /**\n * Optional full name for the native tooltip when `name` is abbreviated in the DOM.\n * Defaults to `name`.\n */\n @property({ type: String, attribute: 'name-title' })\n accessor nameTitle = '';\n\n /** The count to display (workspace variant only). */\n @property({ type: Number })\n accessor count: number | null = null;\n\n /** Whether the item is selected. */\n @property({ type: Boolean })\n accessor selected = false;\n\n /** Whether the item is favorited (item variant only). */\n @property({ type: Boolean })\n accessor favorited = false;\n\n /** Whether to show the launch/new-tab indicator (item variant only). */\n @property({ type: Boolean })\n accessor showLaunchIndicator = false;\n\n /** Whether to show the favorite icon selector (item variant only). When present, it stays right-aligned. */\n @property({ type: Boolean })\n accessor showFavorite = false;\n\n override render() {\n const isWorkspace = this.variant === 'workspace';\n const isBack = this.variant === 'back';\n\n const classes = {\n 'menu-item': true,\n 'menu-item--workspace': isWorkspace,\n 'menu-item--back': isBack,\n 'menu-item--item': !isWorkspace && !isBack,\n 'menu-item--selected': this.selected,\n };\n\n const tooltipName = this.nameTitle || this.name;\n\n return html`\n <div\n class=${classMap(classes)}\n role=${isBack ? 'none' : 'listitem'}\n aria-current=${this.selected ? 'true' : 'false'}\n >\n <button\n class=\"menu-item__select\"\n title=${tooltipName}\n @click=${this._handleClick}\n >\n ${isBack\n ? html`<span class=\"menu-item__back-icon\"\n >${unsafeSVG(arrowLeftIcon)}</span\n >`\n : null}\n <span class=\"menu-item__name\">${this.name}</span>\n ${isWorkspace ? this._renderWorkspaceContent() : null}\n </button>\n ${!isWorkspace && !isBack ? this._renderItemContent() : null}\n </div>\n `;\n }\n\n private _renderWorkspaceContent() {\n if (this.count == null) return null;\n\n return html`\n <span class=\"menu-item__count\">${this.count}</span>\n <span class=\"menu-item__chevron\">${unsafeSVG(chevronRightIcon)}</span>\n `;\n }\n\n private _renderItemContent() {\n if (!this.showFavorite && !this.showLaunchIndicator) return null;\n\n return html`\n <div class=\"menu-item__actions\">\n ${this.showLaunchIndicator\n ? html`\n <span class=\"menu-item__launch-indicator\" aria-hidden=\"true\">\n ${unsafeSVG(launchIcon)}\n </span>\n `\n : null}\n ${this.showFavorite\n ? html`\n <kyn-icon-selector\n class=\"menu-item__favorite\"\n ?checked=${this.favorited}\n value=${this.value}\n animateSelection\n onlyVisibleOnHover\n persistWhenChecked\n @on-change=${this._handleFavoriteChange}\n ></kyn-icon-selector>\n `\n : null}\n </div>\n `;\n }\n\n private _handleClick() {\n this.dispatchEvent(\n new CustomEvent('on-click', {\n detail: { value: this.value },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private _handleFavoriteChange(e: CustomEvent) {\n e.stopPropagation();\n this.dispatchEvent(\n new CustomEvent('on-favorite-change', {\n detail: { value: this.value, favorited: e.detail.checked },\n bubbles: true,\n composed: true,\n })\n );\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-workspace-switcher-menu-item': WorkspaceSwitcherMenuItem;\n }\n}\n"],"names":["WorkspaceSwitcherMenuItem","customElement","LitElement","_classThis","_classSuper","variant","__classPrivateFieldGet","this","_WorkspaceSwitcherMenuItem_variant_accessor_storage","value","__classPrivateFieldSet","_WorkspaceSwitcherMenuItem_value_accessor_storage","name","_WorkspaceSwitcherMenuItem_name_accessor_storage","nameTitle","_WorkspaceSwitcherMenuItem_nameTitle_accessor_storage","count","_WorkspaceSwitcherMenuItem_count_accessor_storage","selected","_WorkspaceSwitcherMenuItem_selected_accessor_storage","favorited","_WorkspaceSwitcherMenuItem_favorited_accessor_storage","showLaunchIndicator","_WorkspaceSwitcherMenuItem_showLaunchIndicator_accessor_storage","showFavorite","_WorkspaceSwitcherMenuItem_showFavorite_accessor_storage","render","isWorkspace","isBack","classes","tooltipName","html","classMap","_handleClick","unsafeSVG","arrowLeftIcon","_renderWorkspaceContent","_renderItemContent","chevronRightIcon","launchIcon","_handleFavoriteChange","dispatchEvent","CustomEvent","detail","bubbles","composed","e","stopPropagation","checked","set","__runInitializers","_variant_initializers","_variant_extraInitializers","_value_initializers","_value_extraInitializers","_name_initializers","_name_extraInitializers","_nameTitle_initializers","_nameTitle_extraInitializers","_count_initializers","_count_extraInitializers","_selected_initializers","_selected_extraInitializers","_favorited_initializers","_favorited_extraInitializers","_showLaunchIndicator_initializers","_showLaunchIndicator_extraInitializers","_showFavorite_initializers","_variant_decorators","property","type","String","_value_decorators","_name_decorators","attribute","_count_decorators","Number","_selected_decorators","Boolean","_favorited_decorators","_showLaunchIndicator_decorators","_showFavorite_decorators","__esDecorate","kind","static","private","access","has","obj","get","metadata","_metadata","_nameTitle_decorators","_showFavorite_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","WorkspaceSwitcherMenuItemScss"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspaceSwitcherMenuItem.js","sources":["../../../../src/components/global/workspaceSwitcher/workspaceSwitcherMenuItem.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 { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { deepmerge } from 'deepmerge-ts';\n\nimport WorkspaceSwitcherMenuItemScss from './workspaceSwitcherMenuItem.scss?inline';\n\nimport arrowLeftIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/arrow-left.svg';\nimport chevronRightIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-right.svg';\nimport launchIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/launch.svg';\n\nimport '../../reusable/iconSelector';\n\nconst _defaultTextStrings = {\n launchAssistiveText: 'Opens in a new tab',\n};\n\n/**\n * Workspace Switcher Menu Item component.\n * Used for both workspace items (left panel) and account items (right panel).\n * Item rows support these trailing-action combinations:\n * - favorite only\n * - launch indicator only\n * - launch indicator plus favorite\n * The launch indicator is part of the primary row button while the favorite\n * control stays pinned to the far right as a separate action.\n * @fires on-click - Emits when the item is clicked. `detail: { value: string }`\n * @fires on-favorite-change - Emits when favorite status changes. `detail: { value: string, favorited: boolean }`\n */\n@customElement('kyn-workspace-switcher-menu-item')\nexport class WorkspaceSwitcherMenuItem extends LitElement {\n static override styles = unsafeCSS(WorkspaceSwitcherMenuItemScss);\n\n /** The variant of the menu item. */\n @property({ type: String })\n accessor variant: 'workspace' | 'item' | 'back' = 'item';\n\n /** The unique value/id of the item. */\n @property({ type: String })\n accessor value = '';\n\n /** The display name of the item. */\n @property({ type: String })\n accessor name = '';\n\n /**\n * Optional full name for the native tooltip when `name` is abbreviated in the DOM.\n * Defaults to `name`.\n */\n @property({ type: String, attribute: 'name-title' })\n accessor nameTitle = '';\n\n /** The count to display (workspace variant only). */\n @property({ type: Number })\n accessor count: number | null = null;\n\n /** Whether the item is selected. */\n @property({ type: Boolean })\n accessor selected = false;\n\n /** Whether the item is favorited (item variant only). */\n @property({ type: Boolean })\n accessor favorited = false;\n\n /** Whether to show the launch/new-tab indicator (item variant only). */\n @property({ type: Boolean })\n accessor showLaunchIndicator = false;\n\n /** Text string customization. */\n @property({ type: Object })\n accessor textStrings = _defaultTextStrings;\n\n /** Merged text strings.\n * @internal\n */\n @state()\n accessor _textStrings = _defaultTextStrings;\n\n /** Whether to show the favorite icon selector (item variant only). When present, it stays right-aligned. */\n @property({ type: Boolean })\n accessor showFavorite = false;\n\n override render() {\n const isWorkspace = this.variant === 'workspace';\n const isBack = this.variant === 'back';\n\n const classes = {\n 'menu-item': true,\n 'menu-item--workspace': isWorkspace,\n 'menu-item--back': isBack,\n 'menu-item--item': !isWorkspace && !isBack,\n 'menu-item--selected': this.selected,\n };\n\n const tooltipName = this.nameTitle || this.name;\n\n return html`\n <div\n class=${classMap(classes)}\n role=${isBack ? 'none' : 'listitem'}\n aria-current=${this.selected ? 'true' : 'false'}\n >\n <button\n class=\"menu-item__select\"\n title=${tooltipName}\n @click=${this._handleClick}\n >\n ${isBack\n ? html`<span class=\"menu-item__back-icon\"\n >${unsafeSVG(arrowLeftIcon)}</span\n >`\n : null}\n <span class=\"menu-item__name\">${this.name}</span>\n ${isWorkspace ? this._renderWorkspaceContent() : null}\n ${!isWorkspace && !isBack && this.showLaunchIndicator\n ? this._renderLaunchIndicator()\n : null}\n ${!isWorkspace && !isBack && this.showLaunchIndicator\n ? this._renderLaunchAssistiveText()\n : null}\n </button>\n ${!isWorkspace && !isBack ? this._renderItemContent() : null}\n </div>\n `;\n }\n\n private _renderWorkspaceContent() {\n if (this.count == null) return null;\n\n return html`\n <span class=\"menu-item__count\">${this.count}</span>\n <span class=\"menu-item__chevron\">${unsafeSVG(chevronRightIcon)}</span>\n `;\n }\n\n private _renderLaunchIndicator() {\n return html`\n <span class=\"menu-item__launch-indicator\" aria-hidden=\"true\">\n ${unsafeSVG(launchIcon)}\n </span>\n `;\n }\n\n private _renderLaunchAssistiveText() {\n if (!this._textStrings.launchAssistiveText) return null;\n\n return html`<span class=\"sr-only\"\n >${this._textStrings.launchAssistiveText}</span\n >`;\n }\n\n override willUpdate(changedProperties: Map<string, unknown>) {\n if (changedProperties.has('textStrings')) {\n this._textStrings = deepmerge(_defaultTextStrings, this.textStrings);\n }\n }\n\n private _renderItemContent() {\n if (!this.showFavorite) return null;\n\n return html`\n <div class=\"menu-item__actions\">\n <kyn-icon-selector\n class=\"menu-item__favorite\"\n ?checked=${this.favorited}\n value=${this.value}\n animateSelection\n onlyVisibleOnHover\n persistWhenChecked\n @on-change=${this._handleFavoriteChange}\n ></kyn-icon-selector>\n </div>\n `;\n }\n\n private _handleClick() {\n this.dispatchEvent(\n new CustomEvent('on-click', {\n detail: { value: this.value },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private _handleFavoriteChange(e: CustomEvent) {\n e.stopPropagation();\n this.dispatchEvent(\n new CustomEvent('on-favorite-change', {\n detail: { value: this.value, favorited: e.detail.checked },\n bubbles: true,\n composed: true,\n })\n );\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-workspace-switcher-menu-item': WorkspaceSwitcherMenuItem;\n }\n}\n"],"names":["_defaultTextStrings","launchAssistiveText","WorkspaceSwitcherMenuItem","customElement","LitElement","_classThis","_classSuper","variant","__classPrivateFieldGet","this","_WorkspaceSwitcherMenuItem_variant_accessor_storage","value","__classPrivateFieldSet","_WorkspaceSwitcherMenuItem_value_accessor_storage","name","_WorkspaceSwitcherMenuItem_name_accessor_storage","nameTitle","_WorkspaceSwitcherMenuItem_nameTitle_accessor_storage","count","_WorkspaceSwitcherMenuItem_count_accessor_storage","selected","_WorkspaceSwitcherMenuItem_selected_accessor_storage","favorited","_WorkspaceSwitcherMenuItem_favorited_accessor_storage","showLaunchIndicator","_WorkspaceSwitcherMenuItem_showLaunchIndicator_accessor_storage","textStrings","_WorkspaceSwitcherMenuItem_textStrings_accessor_storage","_textStrings","_WorkspaceSwitcherMenuItem__textStrings_accessor_storage","showFavorite","_WorkspaceSwitcherMenuItem_showFavorite_accessor_storage","render","isWorkspace","isBack","classes","tooltipName","html","classMap","_handleClick","unsafeSVG","arrowLeftIcon","_renderWorkspaceContent","_renderLaunchIndicator","_renderLaunchAssistiveText","_renderItemContent","chevronRightIcon","launchIcon","willUpdate","changedProperties","has","deepmerge","_handleFavoriteChange","dispatchEvent","CustomEvent","detail","bubbles","composed","e","stopPropagation","checked","set","__runInitializers","_variant_initializers","_variant_extraInitializers","_value_initializers","_value_extraInitializers","_name_initializers","_name_extraInitializers","_nameTitle_initializers","_nameTitle_extraInitializers","_count_initializers","_count_extraInitializers","_selected_initializers","_selected_extraInitializers","_favorited_initializers","_favorited_extraInitializers","_showLaunchIndicator_initializers","_showLaunchIndicator_extraInitializers","_textStrings_initializers","_textStrings_extraInitializers","__textStrings_initializers","__textStrings_extraInitializers","_showFavorite_initializers","_variant_decorators","property","type","String","_value_decorators","_name_decorators","attribute","_count_decorators","Number","_selected_decorators","Boolean","_favorited_decorators","_showLaunchIndicator_decorators","_textStrings_decorators","Object","__textStrings_decorators","state","_showFavorite_decorators","__esDecorate","kind","static","private","access","obj","get","metadata","_metadata","_nameTitle_decorators","_showFavorite_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","WorkspaceSwitcherMenuItemScss"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kyndryl-design-system/shidoka-applications",
|
|
3
|
-
"version": "2.95.
|
|
3
|
+
"version": "2.95.2",
|
|
4
4
|
"description": "Shidoka Web Components for Applications",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "index.js",
|
|
@@ -25,7 +25,9 @@
|
|
|
25
25
|
"lint:lit-analyzer": "lit-analyzer",
|
|
26
26
|
"format": "prettier \"**/*.{cjs,html,js,json,md,ts}\" --ignore-path ./.eslintignore --write",
|
|
27
27
|
"analyze": "cem analyze --litelement --globs \"src/components/**/*.ts\" --exclude \"src/**/(*.stories|*.sample).ts\"",
|
|
28
|
-
"test": "
|
|
28
|
+
"test": "npm run test:storybook",
|
|
29
|
+
"test:storybook": "vitest run --project=storybook",
|
|
30
|
+
"test:storybook:ci": "vitest run --project=storybook --reporter=verbose",
|
|
29
31
|
"test:unit": "vitest run --project=unit",
|
|
30
32
|
"prepare": "npx husky install"
|
|
31
33
|
},
|