@ebrains/components 0.9.0-beta → 0.9.1-beta
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/LICENSE +21 -0
- package/README.md +9 -0
- package/dist/cjs/components.cjs.js +1 -1
- package/dist/cjs/eds-accordion.cjs.entry.js +4 -4
- package/dist/cjs/{eds-avatar_24.cjs.entry.js → eds-avatar_26.cjs.entry.js} +186 -5
- package/dist/cjs/{eds-card-desc_3.cjs.entry.js → eds-card-desc_2.cjs.entry.js} +0 -35
- package/dist/cjs/eds-card-generic.cjs.entry.js +2 -2
- package/dist/cjs/eds-matomo-notice.cjs.entry.js +2 -2
- package/dist/cjs/eds-modal.cjs.entry.js +5 -5
- package/dist/cjs/eds-section-core_2.cjs.entry.js +2 -2
- package/dist/cjs/eds-switch.cjs.entry.js +2 -2
- package/dist/cjs/eds-tabs.cjs.entry.js +5 -5
- package/dist/cjs/eds-timeline.cjs.entry.js +1 -1
- package/dist/cjs/index-2f63169d.js +4 -8
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/eds-accordion/eds-accordion.js +5 -5
- package/dist/collection/components/eds-breadcrump/eds-breadcrump.js +8 -1
- package/dist/collection/components/eds-cards/eds-card-generic/eds-card-generic.css +5 -0
- package/dist/collection/components/eds-cards/eds-card-generic/eds-card-generic.js +1 -1
- package/dist/collection/components/eds-link/eds-link.css +6 -6
- package/dist/collection/components/eds-modal/eds-modal.js +6 -6
- package/dist/collection/components/eds-section/eds-section-heading/eds-section-heading.js +5 -2
- package/dist/collection/components/eds-switch/eds-switch.js +3 -3
- package/dist/collection/components/eds-tag/eds-tag.css +45 -0
- package/dist/collection/components/eds-tag/eds-tag.js +31 -5
- package/dist/collection/components/eds-tag/eds-tag.stories.js +11 -4
- package/dist/collection/components/eds-timeline/eds-timeline.css +20 -0
- package/dist/collection/shared-ui/eds-matomo-notice/eds-matomo-notice.js +3 -3
- package/dist/collection/shared-ui/eds-social-networks/eds-social-networks.js +3 -3
- package/dist/collection/shared-ui/eds-tabs/eds-tabs.css +20 -0
- package/dist/collection/shared-ui/eds-tabs/eds-tabs.js +5 -5
- package/dist/collection/shared-ui/eds-user/eds-user.css +20 -0
- package/dist/components/components.css +20 -0
- package/dist/components/components.esm.js +1 -1
- package/dist/components/eds-accordion2.js +5 -5
- package/dist/components/eds-breadcrumb.js +8 -1
- package/dist/components/eds-card-generic2.js +2 -2
- package/dist/components/eds-link2.js +1 -1
- package/dist/components/eds-matomo-notice2.js +3 -3
- package/dist/components/eds-modal.js +6 -6
- package/dist/components/eds-section-heading2.js +2 -2
- package/dist/components/eds-social-networks2.js +3 -3
- package/dist/components/eds-switch.js +2 -2
- package/dist/components/eds-tabs.js +6 -6
- package/dist/components/eds-tag2.js +15 -6
- package/dist/components/eds-timeline.js +1 -1
- package/dist/components/eds-user.js +1 -1
- package/dist/components/p-0467ceb5.entry.js +1 -0
- package/dist/components/{p-424ba743.entry.js → p-1309a74c.entry.js} +1 -1
- package/dist/components/p-4620ebf5.entry.js +1 -0
- package/dist/components/{p-bcbc7b7f.entry.js → p-94b1f974.entry.js} +1 -1
- package/dist/components/p-b931a634.entry.js +1 -0
- package/dist/components/{p-9cbcccf8.entry.js → p-c5c782e7.entry.js} +1 -1
- package/dist/components/p-c99745a8.entry.js +1 -0
- package/dist/components/p-e42eb100.entry.js +1 -0
- package/dist/components/{p-59d963d1.entry.js → p-e710c860.entry.js} +1 -1
- package/dist/components/p-f4ce515a.entry.js +1 -0
- package/dist/esm/components.js +1 -1
- package/dist/esm/eds-accordion.entry.js +4 -4
- package/dist/esm/{eds-avatar_24.entry.js → eds-avatar_26.entry.js} +185 -6
- package/dist/esm/{eds-card-desc_3.entry.js → eds-card-desc_2.entry.js} +1 -35
- package/dist/esm/eds-card-generic.entry.js +2 -2
- package/dist/esm/eds-matomo-notice.entry.js +2 -2
- package/dist/esm/eds-modal.entry.js +5 -5
- package/dist/esm/eds-section-core_2.entry.js +2 -2
- package/dist/esm/eds-switch.entry.js +2 -2
- package/dist/esm/eds-tabs.entry.js +5 -5
- package/dist/esm/eds-timeline.entry.js +1 -1
- package/dist/esm/index-8a71b9a7.js +4 -8
- package/dist/esm/loader.js +1 -1
- package/dist/hydrate/index.js +59 -40
- package/dist/hydrate/index.mjs +59 -40
- package/dist/stencil.config.js +16 -1
- package/dist/types/components/eds-accordion/eds-accordion.d.ts +1 -1
- package/dist/types/components/eds-modal/eds-modal.d.ts +1 -1
- package/dist/types/components/eds-section/eds-section-heading/eds-section-heading.d.ts +3 -0
- package/dist/types/components/eds-switch/eds-switch.d.ts +1 -1
- package/dist/types/components/eds-tag/eds-tag.d.ts +5 -1
- package/dist/types/components/eds-tag/eds-tag.stories.d.ts +7 -0
- package/dist/types/components.d.ts +40 -64
- package/dist/types/shared-ui/eds-matomo-notice/eds-matomo-notice.d.ts +1 -1
- package/dist/types/shared-ui/eds-social-networks/eds-social-networks.d.ts +1 -1
- package/dist/types/shared-ui/eds-tabs/eds-tabs.d.ts +1 -1
- package/package.json +3 -3
- package/dist/cjs/eds-breadcrumb.cjs.entry.js +0 -139
- package/dist/components/p-032f9f64.entry.js +0 -1
- package/dist/components/p-058cf100.entry.js +0 -1
- package/dist/components/p-1b4e9576.entry.js +0 -1
- package/dist/components/p-30a319d5.entry.js +0 -1
- package/dist/components/p-85ad681a.entry.js +0 -1
- package/dist/components/p-b47d115d.entry.js +0 -1
- package/dist/components/p-b55b0091.entry.js +0 -1
- package/dist/esm/eds-breadcrumb.entry.js +0 -135
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e,h as t,g as i}from"./p-cccacbd3.js";import{p as s}from"./p-69c5074b.js";const n=class{constructor(t){e(this,t),this.updateScreenSize=()=>{const e=window.innerWidth;e<769||e<=1024?(this.maxVisibleItems=3,this.isSmallScreen=!0):e<=2200?(this.maxVisibleItems=4,this.isSmallScreen=!1):(this.maxVisibleItems=6,this.isSmallScreen=!1)},this.items=[],this.intent="ghost",this.parsedItems=[],this.isSmallScreen=!1,this.maxVisibleItems=6}parseItems(e){this.parsedItems=s(e)}componentWillLoad(){this.parseItems(this.items),this.updateScreenSize(),window.addEventListener("resize",this.updateScreenSize)}disconnectedCallback(){window.removeEventListener("resize",this.updateScreenSize)}componentDidLoad(){var e;const t=null===(e=this.el.shadowRoot)||void 0===e?void 0:e.querySelectorAll("eds-link");null==t||t.forEach((e=>{this.emitContext(e)}))}emitContext(e){const t=new CustomEvent("parentContext",{detail:{componentName:this.el.tagName.toLowerCase(),identifier:null}});e.dispatchEvent(t)}getTruncatedItems(){const e=this.parsedItems.length,t={label:"...",url:"",isHidden:!0};if(e>this.maxVisibleItems){const i=this.parsedItems[0],s=this.parsedItems.slice(-2);if(3===this.maxVisibleItems)return[i,t,...s];if(4===this.maxVisibleItems)return[i,this.parsedItems[Math.floor(e/2)],t,...s]}return this.parsedItems}getLabels(e,t){return!t&&e.label.length>15?{displayLabel:`${e.label.slice(0,15)}...`,fullLabel:e.label}:{displayLabel:e.label,fullLabel:e.label}}render(){const e=this.getTruncatedItems();return t("nav",{key:"75bb5629a10de2a2a7bd0b2bbef04e5f699f5fe2","aria-label":"Breadcrumb"},t("ol",{key:"7a5cc115b70d60bc878aa3d865802662f30948c1",class:"flex items-center space-x-2"},e.map(((i,s)=>{const n=s===e.length-1;return t("li",{class:"flex items-center"},i.isHidden?t("span",{class:"truncate px-2","aria-hidden":"true"},"..."):(()=>{const{displayLabel:e,fullLabel:s}=this.getLabels(i,n);return t("eds-link",Object.assign({label:e,url:i.url,intent:this.intent,current:n,"aria-label":s,size:"small","icon-small":"false"},n?{"aria-current":"page"}:{}))})(),!n&&!i.isHidden&&t("eds-icon-wrapper",{icon:"chevron-right",class:"w-20 h-20"}))}))))}get el(){return i(this)}static get watchers(){return{items:["parseItems"]}}};n.style="blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}.hidden{display:none}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.items-center{align-items:center}.justify-center{justify-content:center}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.125rem * var(--tw-space-x-reverse));margin-left:calc(0.125rem * calc(1 - var(--tw-space-x-reverse)))}.px-2{padding-left:0.125rem;padding-right:0.125rem}.w-20{width:1.25rem}.w-28{width:1.75rem}.w-32{width:2rem}.w-44{width:2.75rem}.h-20{height:1.25rem}.h-24{height:1.5rem}.h-28{height:1.75rem}.h-32{height:2rem}@media (min-width: 750px){.md\\:block{display:block}}";export{n as eds_breadcrumb}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as t,h as e,g as a}from"./p-cccacbd3.js";import{s as r}from"./p-13efafb9.js";const i=class{constructor(e){t(this,e),this.isOpen=!1,this.title="",this.truncate=!0,this.truncateLines="1",this.position="middle"}getTruncateClass(){return this.truncate&&this.truncateLines?`line-clamp-${this.truncateLines}`:""}getModalPositionClasses(){switch(this.position){case"top":return"md:left-1/2 top-20 md:-translate-x-1/2";case"bottom":return"md:left-1/2 bottom-20 md:-translate-x-1/2";case"left":return"left-20 top-1/2 -translate-y-1/2";case"right":return"right-20 top-1/2 -translate-y-1/2";default:return"md:left-1/2 top-1/2 md:-translate-x-1/2 -translate-y-1/2"}}async open(){var t;this.isOpen=!0,r({category:"ui-component",parentContext:null,tag:this.el.tagName.toLowerCase(),name:(null===(t=this.title)||void 0===t?void 0:t.toLowerCase())||"",action:"opened"})}async close(){var t;this.isOpen=!1,r({category:"ui-component",parentContext:null,tag:this.el.tagName.toLowerCase(),name:(null===(t=this.title)||void 0===t?void 0:t.toLowerCase())||"",action:"closed"})}async toggle(){this.isOpen=!this.isOpen}handleGlobalOpen(){this.open()}handleGlobalClose(){this.close()}handleKeyDown(t){this.isOpen&&"Escape"===t.key&&this.close()}render(){const t=`modal-title-${this.el.tagName.toLowerCase()}`;return e("div",{key:"eb2b985e84912dabea52a9a62eb908087004c958",id:"eds-modal",class:(this.isOpen?"block":"hidden")+" fixed inset-0 z-9999999 flex",role:"dialog","aria-modal":"true","aria-labelledby":t},this.isOpen&&e("div",{key:"ad47334539d1a8a8694f34ba1e90a38b7dce07ab",class:"fixed inset-0 bg-dark bg-opacity-90",onClick:()=>this.close()}),e("div",{key:"69d449b6ec986b5cfd73e50cc060363236035915",class:`container max-w-full absolute px-20 py-20 bg-inverse rounded-lg shadow-lg z-10 ${this.getModalPositionClasses()} grow justify-center`},e("div",{key:"17395806ef17a06b5465174055087178db9f5356",class:"flex justify-between items-center border-b-2 border-softer pb-8"},e("span",{key:"daa5d63b73eab57b9b58ca06d0197f1a7002ca15",id:t,class:`f-heading-04 text-lighter ${this.getTruncateClass()}`},this.title),e("eds-button",{key:"267ee7d1f10819c19af5eed6715465f2ba5f4831",intent:"tertiary",icon:"close","aria-label":"Close modal",onClick:()=>this.close(),"extra-class":"ml-8"})),e("div",{key:"fbd3351c851ab1089035117cca2b3ad769c26d18",class:"pt-8"},e("slot",{key:"9958a61e24320183bef12aef381791f11e421597"}))))}get el(){return a(this)}};i.style=".block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.fixed{position:fixed}.inset-0{inset:0rem}.z-10{z-index:10}.z-50{z-index:50}.z-50{z-index:50}.z-9999999{z-index:9999999}.max-w-full{max-width:100%}.absolute{position:absolute}.px-20{padding-left:1.25rem;padding-right:1.25rem}.py-20{padding-top:1.25rem;padding-bottom:1.25rem}.bg-inverse{background-color:var(--white)}.bg-dark{background-color:var(--grey-300)}.rounded-lg{border-radius:16px}.shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.p-6{padding:0.375rem}.p-8{padding:0.5rem}.left-1\\/2{left:50%}.left-20{left:1.25rem}.right-20{right:1.25rem}.top-1\\/2{top:50%}.top-20{top:1.25rem}.bottom-20{bottom:1.25rem}.grow{flex-grow:1}.-translate-x-1\\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.border-b-2{border-bottom-width:2px}.border-softer{border-color:rgba(0, 0, 0, .1)}.pb-8{padding-bottom:0.5rem}.f-heading-03{font-family:var(--f-heading-03-fontFamily);font-weight:var(--f-heading-03-fontWeight);font-size:var(--f-heading-03-fontSize);line-height:var(--f-heading-03-lineHeight);letter-spacing:var(--f-heading-03-letterSpacing)}.f-heading-04{font-family:var(--f-heading-04-fontFamily);font-weight:var(--f-heading-04-fontWeight);font-size:var(--f-heading-04-fontSize);line-height:var(--f-heading-04-lineHeight);letter-spacing:var(--f-heading-04-letterSpacing)}.f-heading-05{font-family:var(--f-heading-05-fontFamily);font-weight:var(--f-heading-05-fontWeight);font-size:var(--f-heading-05-fontSize);line-height:var(--f-heading-05-lineHeight);letter-spacing:var(--f-heading-05-letterSpacing)}.text-light{color:var(--grey-700)}.text-lighter{color:var(--grey-600)}.text-lightest{color:var(--grey-500)}.ml-8{margin-left:0.5rem}.pt-8{padding-top:0.5rem}.bg-opacity-90{opacity:0.9}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.line-clamp-4{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}@media (min-width: 750px){.md\\:left-1\\/2{left:50%}.md\\:flex{display:flex}.md\\:hidden{display:none}.md\\:-translate-x-1\\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.md\\:-translate-y-1\\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.md\\:gap-y-12{row-gap:0.75rem}}";export{i as eds_modal}
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import { r as registerInstance, h, g as getElement } from './index-8a71b9a7.js';
|
|
2
|
-
import { p as parseData } from './sharedUtils-a550989c.js';
|
|
3
|
-
|
|
4
|
-
const edsBreadcrumbCss = "blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}.hidden{display:none}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.items-center{align-items:center}.justify-center{justify-content:center}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.125rem * var(--tw-space-x-reverse));margin-left:calc(0.125rem * calc(1 - var(--tw-space-x-reverse)))}.px-2{padding-left:0.125rem;padding-right:0.125rem}.w-20{width:1.25rem}.w-28{width:1.75rem}.w-32{width:2rem}.w-44{width:2.75rem}.h-20{height:1.25rem}.h-24{height:1.5rem}.h-28{height:1.75rem}.h-32{height:2rem}@media (min-width: 750px){.md\\:block{display:block}}";
|
|
5
|
-
const EdsBreadcrumbStyle0 = edsBreadcrumbCss;
|
|
6
|
-
|
|
7
|
-
const EdsBreadcrumb = class {
|
|
8
|
-
constructor(hostRef) {
|
|
9
|
-
registerInstance(this, hostRef);
|
|
10
|
-
/**
|
|
11
|
-
* Updates the maximum number of visible items and tracks if the screen is small.
|
|
12
|
-
*/
|
|
13
|
-
this.updateScreenSize = () => {
|
|
14
|
-
const width = window.innerWidth;
|
|
15
|
-
if (width < 769) {
|
|
16
|
-
this.maxVisibleItems = 3;
|
|
17
|
-
this.isSmallScreen = true;
|
|
18
|
-
}
|
|
19
|
-
else if (width <= 1024) {
|
|
20
|
-
this.maxVisibleItems = 3;
|
|
21
|
-
this.isSmallScreen = true;
|
|
22
|
-
}
|
|
23
|
-
else if (width <= 2200) {
|
|
24
|
-
this.maxVisibleItems = 4;
|
|
25
|
-
this.isSmallScreen = false;
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
this.maxVisibleItems = 6;
|
|
29
|
-
this.isSmallScreen = false;
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
this.items = [];
|
|
33
|
-
this.intent = 'ghost';
|
|
34
|
-
this.parsedItems = [];
|
|
35
|
-
this.isSmallScreen = false;
|
|
36
|
-
this.maxVisibleItems = 6;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Watches for changes to the `items` prop and parses it.
|
|
40
|
-
*/
|
|
41
|
-
parseItems(newValue) {
|
|
42
|
-
this.parsedItems = parseData(newValue);
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Lifecycle method that runs when the component is about to be loaded.
|
|
46
|
-
* It parses the initial `items` prop value.
|
|
47
|
-
*/
|
|
48
|
-
componentWillLoad() {
|
|
49
|
-
this.parseItems(this.items);
|
|
50
|
-
this.updateScreenSize();
|
|
51
|
-
window.addEventListener('resize', this.updateScreenSize);
|
|
52
|
-
}
|
|
53
|
-
disconnectedCallback() {
|
|
54
|
-
window.removeEventListener('resize', this.updateScreenSize);
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Lifecycle method that runs when the component has fully loaded.
|
|
58
|
-
* It emits a custom event for each `eds-link` element contained within the breadcrumb.
|
|
59
|
-
*/
|
|
60
|
-
componentDidLoad() {
|
|
61
|
-
var _a;
|
|
62
|
-
const links = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('eds-link');
|
|
63
|
-
links === null || links === void 0 ? void 0 : links.forEach((link) => {
|
|
64
|
-
this.emitContext(link);
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Emits a custom event called `parentContext` for a given link element.
|
|
69
|
-
* This event provides context information about the breadcrumb component.
|
|
70
|
-
*
|
|
71
|
-
* @param linkElement - The link element to which the event will be dispatched.
|
|
72
|
-
*/
|
|
73
|
-
emitContext(linkElement) {
|
|
74
|
-
const event = new CustomEvent('parentContext', {
|
|
75
|
-
detail: {
|
|
76
|
-
componentName: this.el.tagName.toLowerCase(),
|
|
77
|
-
identifier: null
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
linkElement.dispatchEvent(event);
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Returns breadcrumb items with potential truncation if there are too many.
|
|
84
|
-
* It inserts an ellipsis item where necessary.
|
|
85
|
-
*/
|
|
86
|
-
getTruncatedItems() {
|
|
87
|
-
const totalItems = this.parsedItems.length;
|
|
88
|
-
const ellipsis = { label: '...', url: '', isHidden: true };
|
|
89
|
-
if (totalItems > this.maxVisibleItems) {
|
|
90
|
-
const firstItem = this.parsedItems[0];
|
|
91
|
-
const lastItems = this.parsedItems.slice(-2);
|
|
92
|
-
if (this.maxVisibleItems === 3) {
|
|
93
|
-
return [firstItem, ellipsis, ...lastItems];
|
|
94
|
-
}
|
|
95
|
-
else if (this.maxVisibleItems === 4) {
|
|
96
|
-
const middleItem = this.parsedItems[Math.floor(totalItems / 2)];
|
|
97
|
-
return [firstItem, middleItem, ellipsis, ...lastItems];
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
return this.parsedItems;
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Helper to determine the display label and full label.
|
|
104
|
-
* If the label is longer than 15 characters and the item is not the current (last) item,
|
|
105
|
-
* we display a truncated version but use the full label for aria attributes.
|
|
106
|
-
*/
|
|
107
|
-
getLabels(item, isCurrent) {
|
|
108
|
-
if (!isCurrent && item.label.length > 15) {
|
|
109
|
-
return { displayLabel: `${item.label.slice(0, 15)}...`, fullLabel: item.label };
|
|
110
|
-
}
|
|
111
|
-
return { displayLabel: item.label, fullLabel: item.label };
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Render method for the breadcrumb component.
|
|
115
|
-
* It creates a navigation element with an ordered list of breadcrumb links.
|
|
116
|
-
* The last link is marked as the current page.
|
|
117
|
-
*/
|
|
118
|
-
render() {
|
|
119
|
-
const itemsToRender = this.getTruncatedItems();
|
|
120
|
-
return (h("nav", { key: '75bb5629a10de2a2a7bd0b2bbef04e5f699f5fe2', "aria-label": "Breadcrumb" }, h("ol", { key: '7a5cc115b70d60bc878aa3d865802662f30948c1', class: "flex items-center space-x-2" }, itemsToRender.map((item, index) => {
|
|
121
|
-
const isLast = index === itemsToRender.length - 1;
|
|
122
|
-
return (h("li", { class: "flex items-center" }, !item.isHidden ? ((() => {
|
|
123
|
-
const { displayLabel, fullLabel } = this.getLabels(item, isLast);
|
|
124
|
-
return (h("eds-link", Object.assign({ label: displayLabel, url: item.url, intent: this.intent, current: isLast, "aria-label": fullLabel, size: "small", "icon-small": "false" }, (isLast ? { 'aria-current': 'page' } : {}))));
|
|
125
|
-
})()) : (h("span", { class: "truncate px-2", "aria-hidden": "true" }, "...")), !isLast && !item.isHidden && (h("eds-icon-wrapper", { icon: "chevron-right", class: "w-20 h-20" }))));
|
|
126
|
-
}))));
|
|
127
|
-
}
|
|
128
|
-
get el() { return getElement(this); }
|
|
129
|
-
static get watchers() { return {
|
|
130
|
-
"items": ["parseItems"]
|
|
131
|
-
}; }
|
|
132
|
-
};
|
|
133
|
-
EdsBreadcrumb.style = EdsBreadcrumbStyle0;
|
|
134
|
-
|
|
135
|
-
export { EdsBreadcrumb as eds_breadcrumb };
|