@scania/tegel 0.0.31 → 0.0.32
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/dist/cjs/sdds-toast.cjs.entry.js +1 -1
- package/dist/cjs/sdds-toast.cjs.entry.js.map +1 -1
- package/dist/collection/components/toast/sdds-toast.js +2 -2
- package/dist/collection/components/toast/sdds-toast.js.map +1 -1
- package/dist/components/dropdown-option.js +103 -0
- package/dist/components/dropdown-option.js.map +1 -0
- package/dist/components/dropdown.js +306 -0
- package/dist/components/dropdown.js.map +1 -0
- package/dist/components/icon.js +61 -0
- package/dist/components/icon.js.map +1 -0
- package/dist/components/index.d.ts +27 -0
- package/dist/components/index.js +3 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/popper.js +1801 -0
- package/dist/components/popper.js.map +1 -0
- package/dist/components/sdds-accordion-item.d.ts +11 -0
- package/dist/components/sdds-accordion-item.js +63 -0
- package/dist/components/sdds-accordion-item.js.map +1 -0
- package/dist/components/sdds-accordion.d.ts +11 -0
- package/dist/components/sdds-accordion.js +41 -0
- package/dist/components/sdds-accordion.js.map +1 -0
- package/dist/components/sdds-badges.d.ts +11 -0
- package/dist/components/sdds-badges.js +78 -0
- package/dist/components/sdds-badges.js.map +1 -0
- package/dist/components/sdds-banner.d.ts +11 -0
- package/dist/components/sdds-banner.js +122 -0
- package/dist/components/sdds-banner.js.map +1 -0
- package/dist/components/sdds-block.d.ts +11 -0
- package/dist/components/sdds-block.js +51 -0
- package/dist/components/sdds-block.js.map +1 -0
- package/dist/components/sdds-body-cell.d.ts +11 -0
- package/dist/components/sdds-body-cell.js +8 -0
- package/dist/components/sdds-body-cell.js.map +1 -0
- package/dist/components/sdds-breadcrumb-item.d.ts +11 -0
- package/dist/components/sdds-breadcrumb-item.js +46 -0
- package/dist/components/sdds-breadcrumb-item.js.map +1 -0
- package/dist/components/sdds-breadcrumb.d.ts +11 -0
- package/dist/components/sdds-breadcrumb.js +40 -0
- package/dist/components/sdds-breadcrumb.js.map +1 -0
- package/dist/components/sdds-button.d.ts +11 -0
- package/dist/components/sdds-button.js +62 -0
- package/dist/components/sdds-button.js.map +1 -0
- package/dist/components/sdds-card.d.ts +11 -0
- package/dist/components/sdds-card.js +87 -0
- package/dist/components/sdds-card.js.map +1 -0
- package/dist/components/sdds-checkbox.d.ts +11 -0
- package/dist/components/sdds-checkbox.js +79 -0
- package/dist/components/sdds-checkbox.js.map +1 -0
- package/dist/components/sdds-datetime.d.ts +11 -0
- package/dist/components/sdds-datetime.js +132 -0
- package/dist/components/sdds-datetime.js.map +1 -0
- package/dist/components/sdds-dropdown-filter.d.ts +11 -0
- package/dist/components/sdds-dropdown-filter.js +141 -0
- package/dist/components/sdds-dropdown-filter.js.map +1 -0
- package/dist/components/sdds-dropdown-option.d.ts +11 -0
- package/dist/components/sdds-dropdown-option.js +8 -0
- package/dist/components/sdds-dropdown-option.js.map +1 -0
- package/dist/components/sdds-dropdown.d.ts +11 -0
- package/dist/components/sdds-dropdown.js +8 -0
- package/dist/components/sdds-dropdown.js.map +1 -0
- package/dist/components/sdds-header-cell.d.ts +11 -0
- package/dist/components/sdds-header-cell.js +173 -0
- package/dist/components/sdds-header-cell.js.map +1 -0
- package/dist/components/sdds-icon.d.ts +11 -0
- package/dist/components/sdds-icon.js +8 -0
- package/dist/components/sdds-icon.js.map +1 -0
- package/dist/components/sdds-inline-tab.d.ts +11 -0
- package/dist/components/sdds-inline-tab.js +43 -0
- package/dist/components/sdds-inline-tab.js.map +1 -0
- package/dist/components/sdds-inline-tabs-fullbleed.d.ts +11 -0
- package/dist/components/sdds-inline-tabs-fullbleed.js +120 -0
- package/dist/components/sdds-inline-tabs-fullbleed.js.map +1 -0
- package/dist/components/sdds-inline-tabs.d.ts +11 -0
- package/dist/components/sdds-inline-tabs.js +248 -0
- package/dist/components/sdds-inline-tabs.js.map +1 -0
- package/dist/components/sdds-link.d.ts +11 -0
- package/dist/components/sdds-link.js +8 -0
- package/dist/components/sdds-link.js.map +1 -0
- package/dist/components/sdds-link2.js +47 -0
- package/dist/components/sdds-link2.js.map +1 -0
- package/dist/components/sdds-message.d.ts +11 -0
- package/dist/components/sdds-message.js +70 -0
- package/dist/components/sdds-message.js.map +1 -0
- package/dist/components/sdds-modal.d.ts +11 -0
- package/dist/components/sdds-modal.js +80 -0
- package/dist/components/sdds-modal.js.map +1 -0
- package/dist/components/sdds-navigation-tabs.d.ts +11 -0
- package/dist/components/sdds-navigation-tabs.js +120 -0
- package/dist/components/sdds-navigation-tabs.js.map +1 -0
- package/dist/components/sdds-popover-canvas.d.ts +11 -0
- package/dist/components/sdds-popover-canvas.js +111 -0
- package/dist/components/sdds-popover-canvas.js.map +1 -0
- package/dist/components/sdds-popover-menu.d.ts +11 -0
- package/dist/components/sdds-popover-menu.js +112 -0
- package/dist/components/sdds-popover-menu.js.map +1 -0
- package/dist/components/sdds-radio-button.d.ts +11 -0
- package/dist/components/sdds-radio-button.js +55 -0
- package/dist/components/sdds-radio-button.js.map +1 -0
- package/dist/components/sdds-slider.d.ts +11 -0
- package/dist/components/sdds-slider.js +397 -0
- package/dist/components/sdds-slider.js.map +1 -0
- package/dist/components/sdds-spinner.d.ts +11 -0
- package/dist/components/sdds-spinner.js +40 -0
- package/dist/components/sdds-spinner.js.map +1 -0
- package/dist/components/sdds-table-body-row-expandable.d.ts +11 -0
- package/dist/components/sdds-table-body-row-expandable.js +108 -0
- package/dist/components/sdds-table-body-row-expandable.js.map +1 -0
- package/dist/components/sdds-table-body-row.d.ts +11 -0
- package/dist/components/sdds-table-body-row.js +8 -0
- package/dist/components/sdds-table-body-row.js.map +1 -0
- package/dist/components/sdds-table-body.d.ts +11 -0
- package/dist/components/sdds-table-body.js +340 -0
- package/dist/components/sdds-table-body.js.map +1 -0
- package/dist/components/sdds-table-footer.d.ts +11 -0
- package/dist/components/sdds-table-footer.js +198 -0
- package/dist/components/sdds-table-footer.js.map +1 -0
- package/dist/components/sdds-table-header.d.ts +11 -0
- package/dist/components/sdds-table-header.js +127 -0
- package/dist/components/sdds-table-header.js.map +1 -0
- package/dist/components/sdds-table-toolbar.d.ts +11 -0
- package/dist/components/sdds-table-toolbar.js +90 -0
- package/dist/components/sdds-table-toolbar.js.map +1 -0
- package/dist/components/sdds-table.d.ts +11 -0
- package/dist/components/sdds-table.js +94 -0
- package/dist/components/sdds-table.js.map +1 -0
- package/dist/components/sdds-textarea.d.ts +11 -0
- package/dist/components/sdds-textarea.js +112 -0
- package/dist/components/sdds-textarea.js.map +1 -0
- package/dist/components/sdds-textfield.d.ts +11 -0
- package/dist/components/sdds-textfield.js +130 -0
- package/dist/components/sdds-textfield.js.map +1 -0
- package/dist/components/sdds-toast.d.ts +11 -0
- package/dist/components/sdds-toast.js +120 -0
- package/dist/components/sdds-toast.js.map +1 -0
- package/dist/components/sdds-toggle.d.ts +11 -0
- package/dist/components/sdds-toggle.js +72 -0
- package/dist/components/sdds-toggle.js.map +1 -0
- package/dist/components/sdds-tooltip.d.ts +11 -0
- package/dist/components/sdds-tooltip.js +130 -0
- package/dist/components/sdds-tooltip.js.map +1 -0
- package/dist/components/table-body-cell.js +104 -0
- package/dist/components/table-body-cell.js.map +1 -0
- package/dist/components/table-body-row.js +123 -0
- package/dist/components/table-body-row.js.map +1 -0
- package/dist/esm/sdds-toast.entry.js +1 -1
- package/dist/esm/sdds-toast.entry.js.map +1 -1
- package/dist/tegel/{p-46013562.entry.js → p-f51fe381.entry.js} +2 -2
- package/dist/tegel/p-f51fe381.entry.js.map +1 -0
- package/dist/tegel/tegel.esm.js +1 -1
- package/dist/types/components/toast/sdds-toast.d.ts +1 -1
- package/dist/types/components.d.ts +2 -2
- package/package.json +2 -2
- package/dist/tegel/p-46013562.entry.js.map +0 -1
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { d as defineCustomElement$2 } from './icon.js';
|
|
3
|
+
|
|
4
|
+
const sddsToastCss = ":host(.hide){display:none;visibility:hidden}:host{z-index:700}:host .toast-wrapper{display:flex;width:348px;background-color:var(--sdds-toast-background-color);border-radius:4px}:host .toast-wrapper.information{border-left:4px solid var(--sdds-information)}:host .toast-wrapper.information sdds-icon{color:var(--sdds-information)}:host .toast-wrapper.success{border-left:4px solid var(--sdds-positive)}:host .toast-wrapper.success sdds-icon{color:var(--sdds-positive)}:host .toast-wrapper.error{border-left:4px solid var(--sdds-negative)}:host .toast-wrapper.error sdds-icon{color:var(--sdds-negative)}:host .toast-wrapper.warning{border-left:4px solid var(--sdds-warning)}:host .toast-wrapper.warning sdds-icon{color:var(--sdds-warning)}:host .toast-wrapper button.toast-close{height:20px;width:20px;display:flex;align-items:center;justify-content:center;margin:14px 14px 0 0;border:none;background:transparent}:host .toast-wrapper button.toast-close:hover{cursor:pointer}:host .toast-wrapper button.toast-close:focus{outline:2px solid var(--sdds-blue-400);outline-offset:-2px}:host .toast-wrapper button.toast-close sdds-icon{color:var(--sdds-toast-dissmiss-color);padding:0}:host sdds-icon{padding:14px 0 0 12px}:host .toast-content{padding:16px 0 16px 10px;display:flex;flex-direction:column;flex:1}:host .toast-content .toast-header{font:var(--sdds-headline-07);letter-spacing:var(--sdds-headline-07-ls);color:var(--sdds-toast-headline-color)}:host .toast-content .toast-header.no-subheader{margin-bottom:4px}:host .toast-content .toast-header.only-header{margin-bottom:0}:host .toast-content .toast-subheader slot::slotted(*){margin-top:4px;color:var(--sdds-toast-subheadline-color);font:var(--sdds-detail-02);letter-spacing:var(--sdds-detail-02-ls);padding-bottom:16px;max-width:252px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .toast-content .toast-subheader.no-link slot::slotted(*){padding-bottom:0}:host slot[name=toast-link]::slotted(*){color:var(--sdds-toast-link-color)}:host .sdds-mode-variant-primary{--sdds-toast-background:var(--sdds-toast-background-primary)}:host .sdds-mode-variant-secondary{--sdds-toast-background:var(--sdds-toast-background-secondary)}";
|
|
5
|
+
|
|
6
|
+
const SddsToast$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
this.__registerHost();
|
|
10
|
+
this.__attachShadow();
|
|
11
|
+
this.sddsClose = createEvent(this, "sddsClose", 7);
|
|
12
|
+
this.getIconName = () => {
|
|
13
|
+
switch (this.type) {
|
|
14
|
+
case 'information':
|
|
15
|
+
return 'info';
|
|
16
|
+
case 'error':
|
|
17
|
+
return 'error';
|
|
18
|
+
case 'warning':
|
|
19
|
+
return 'warning';
|
|
20
|
+
case 'success':
|
|
21
|
+
return 'tick';
|
|
22
|
+
default:
|
|
23
|
+
return 'info';
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
this.handleClose = () => {
|
|
27
|
+
const sddsCloseEvent = this.sddsClose.emit({
|
|
28
|
+
toastId: this.toastId,
|
|
29
|
+
});
|
|
30
|
+
if (!sddsCloseEvent.defaultPrevented) {
|
|
31
|
+
this.hidden = true;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
this.getHeaderClasses = () => {
|
|
35
|
+
if (!this.hasSubheader && !this.hasLink) {
|
|
36
|
+
return 'only-header';
|
|
37
|
+
}
|
|
38
|
+
if (!this.hasSubheader) {
|
|
39
|
+
return 'no-subheader';
|
|
40
|
+
}
|
|
41
|
+
return '';
|
|
42
|
+
};
|
|
43
|
+
this.toastId = crypto.randomUUID();
|
|
44
|
+
this.header = undefined;
|
|
45
|
+
this.subheader = undefined;
|
|
46
|
+
this.type = 'information';
|
|
47
|
+
this.hidden = false;
|
|
48
|
+
this.toastRole = 'alert';
|
|
49
|
+
this.hasSubheader = undefined;
|
|
50
|
+
this.hasLink = undefined;
|
|
51
|
+
}
|
|
52
|
+
/** Hides the toast. */
|
|
53
|
+
async hideToast() {
|
|
54
|
+
this.hidden = true;
|
|
55
|
+
return {
|
|
56
|
+
toastId: this.toastId,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/** Shows the toast. */
|
|
60
|
+
async showToast() {
|
|
61
|
+
this.hidden = false;
|
|
62
|
+
return {
|
|
63
|
+
toastId: this.toastId,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
connectedCallback() {
|
|
67
|
+
const children = Array.from(this.host.children);
|
|
68
|
+
this.hasSubheader = children.some((childElement) => childElement.slot === 'toast-subheader');
|
|
69
|
+
this.hasLink = children.some((childElement) => childElement.slot === 'toast-link');
|
|
70
|
+
}
|
|
71
|
+
render() {
|
|
72
|
+
return (h(Host, { toastRole: this.toastRole, "aria-describedby": this.host.getAttribute('aria-describedby'), class: `${this.hidden ? 'hide' : 'show'}` }, h("div", { class: `
|
|
73
|
+
toast-wrapper
|
|
74
|
+
${this.type}
|
|
75
|
+
` }, h("sdds-icon", { name: this.getIconName(), size: "20px" }), h("div", { class: `toast-content` }, h("div", { class: `toast-header
|
|
76
|
+
${this.getHeaderClasses()}
|
|
77
|
+
` }, this.header), h("div", { class: `toast-subheader ${this.hasLink ? '' : 'no-link'}` }, h("slot", { name: "toast-subheader" })), h("slot", { name: "toast-link" })), h("button", { onClick: () => {
|
|
78
|
+
this.handleClose();
|
|
79
|
+
}, class: `toast-close` }, h("sdds-icon", { name: "cross", size: "20px" })))));
|
|
80
|
+
}
|
|
81
|
+
get host() { return this; }
|
|
82
|
+
static get style() { return sddsToastCss; }
|
|
83
|
+
}, [1, "sdds-toast", {
|
|
84
|
+
"toastId": [1, "toast-id"],
|
|
85
|
+
"header": [1],
|
|
86
|
+
"subheader": [1],
|
|
87
|
+
"type": [1],
|
|
88
|
+
"hidden": [4],
|
|
89
|
+
"toastRole": [1, "toast-role"],
|
|
90
|
+
"hasSubheader": [32],
|
|
91
|
+
"hasLink": [32],
|
|
92
|
+
"hideToast": [64],
|
|
93
|
+
"showToast": [64]
|
|
94
|
+
}]);
|
|
95
|
+
function defineCustomElement$1() {
|
|
96
|
+
if (typeof customElements === "undefined") {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const components = ["sdds-toast", "sdds-icon"];
|
|
100
|
+
components.forEach(tagName => { switch (tagName) {
|
|
101
|
+
case "sdds-toast":
|
|
102
|
+
if (!customElements.get(tagName)) {
|
|
103
|
+
customElements.define(tagName, SddsToast$1);
|
|
104
|
+
}
|
|
105
|
+
break;
|
|
106
|
+
case "sdds-icon":
|
|
107
|
+
if (!customElements.get(tagName)) {
|
|
108
|
+
defineCustomElement$2();
|
|
109
|
+
}
|
|
110
|
+
break;
|
|
111
|
+
} });
|
|
112
|
+
}
|
|
113
|
+
defineCustomElement$1();
|
|
114
|
+
|
|
115
|
+
const SddsToast = SddsToast$1;
|
|
116
|
+
const defineCustomElement = defineCustomElement$1;
|
|
117
|
+
|
|
118
|
+
export { SddsToast, defineCustomElement };
|
|
119
|
+
|
|
120
|
+
//# sourceMappingURL=sdds-toast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"sdds-toast.js","mappings":";;;AAAA,MAAM,YAAY,GAAG,upEAAupE;;MCQ/pEA,WAAS;;;;;;IAsDpB,gBAAW,GAAG;MACZ,QAAQ,IAAI,CAAC,IAAI;QACf,KAAK,aAAa;UAChB,OAAO,MAAM,CAAC;QAChB,KAAK,OAAO;UACV,OAAO,OAAO,CAAC;QACjB,KAAK,SAAS;UACZ,OAAO,SAAS,CAAC;QACnB,KAAK,SAAS;UACZ,OAAO,MAAM,CAAC;QAChB;UACE,OAAO,MAAM,CAAC;OACjB;KACF,CAAC;IAEF,gBAAW,GAAG;MACZ,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QACzC,OAAO,EAAE,IAAI,CAAC,OAAO;OACtB,CAAC,CAAC;MACH,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;OACpB;KACF,CAAC;IAQF,qBAAgB,GAAG;MACjB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;QACvC,OAAO,aAAa,CAAC;OACtB;MACD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;QACtB,OAAO,cAAc,CAAC;OACvB;MACD,OAAO,EAAE,CAAC;KACX,CAAC;mBA1FwB,MAAM,CAAC,UAAU,EAAE;;;gBASmB,aAAa;kBAGnD,KAAK;qBAGiB,OAAO;;;;;EAUvD,MAAM,SAAS;IACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACnB,OAAO;MACL,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC;GACH;;EAID,MAAM,SAAS;IACb,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACpB,OAAO;MACL,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC;GACH;EAqCD,iBAAiB;IACf,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC;IAC7F,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;GACpF;EAYD,MAAM;IACJ,QACE,EAAC,IAAI,IACH,SAAS,EAAE,IAAI,CAAC,SAAS,sBACP,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAC5D,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,IAEzC,WACE,KAAK,EAAE;;cAEH,IAAI,CAAC,IAAI;aACV,IAEH,iBAAW,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAC,MAAM,GAAa,EAC7D,WAAK,KAAK,EAAE,eAAe,IACzB,WACE,KAAK,EAAE;gBACL,IAAI,CAAC,gBAAgB,EAAE;eACxB,IAEA,IAAI,CAAC,MAAM,CACR,EACN,WAAK,KAAK,EAAE,mBAAmB,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,SAAS,EAAE,IAC5D,YAAM,IAAI,EAAC,iBAAiB,GAAQ,CAChC,EACN,YAAM,IAAI,EAAC,YAAY,GAAQ,CAC3B,EACN,cACE,OAAO,EAAE;QACP,IAAI,CAAC,WAAW,EAAE,CAAC;OACpB,EACD,KAAK,EAAE,aAAa,IAEpB,iBAAW,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,GAAa,CACzC,CACL,CACD,EACP;GACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["SddsToast"],"sources":["./src/components/toast/sdds-toast.scss?tag=sdds-toast&encapsulation=shadow","./src/components/toast/sdds-toast.tsx"],"sourcesContent":["@import '../../mixins/focus-state';\n@import '../../mixins/z-index';\n\n:host(.hide) {\n display: none;\n visibility: hidden;\n}\n\n:host {\n z-index: z(toast);\n\n .toast-wrapper {\n display: flex;\n width: calc(352px - 4px);\n background-color: var(--sdds-toast-background-color);\n border-radius: 4px;\n\n &.information {\n border-left: 4px solid var(--sdds-information);\n\n sdds-icon {\n color: var(--sdds-information);\n }\n }\n\n &.success {\n border-left: 4px solid var(--sdds-positive);\n\n sdds-icon {\n color: var(--sdds-positive);\n }\n }\n\n &.error {\n border-left: 4px solid var(--sdds-negative);\n\n sdds-icon {\n color: var(--sdds-negative);\n }\n }\n\n &.warning {\n border-left: 4px solid var(--sdds-warning);\n\n sdds-icon {\n color: var(--sdds-warning);\n }\n }\n\n button.toast-close {\n height: 20px;\n width: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 14px 14px 0 0;\n border: none;\n background: transparent;\n\n &:hover {\n cursor: pointer;\n }\n\n &:focus {\n @include sdds-focus-state;\n }\n\n sdds-icon {\n color: var(--sdds-toast-dissmiss-color);\n padding: 0;\n }\n }\n }\n\n sdds-icon {\n padding: 14px 0 0 12px;\n }\n\n .toast-content {\n padding: 16px 0 16px 10px;\n display: flex;\n flex-direction: column;\n flex: 1;\n\n .toast-header {\n font: var(--sdds-headline-07);\n letter-spacing: var(--sdds-headline-07-ls);\n color: var(--sdds-toast-headline-color);\n\n &.no-subheader {\n margin-bottom: 4px;\n }\n\n &.only-header {\n margin-bottom: 0;\n }\n }\n\n .toast-subheader {\n slot::slotted(*) {\n margin-top: 4px;\n color: var(--sdds-toast-subheadline-color);\n font: var(--sdds-detail-02);\n letter-spacing: var(--sdds-detail-02-ls);\n padding-bottom: 16px;\n max-width: 252px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n &.no-link {\n slot::slotted(*) {\n padding-bottom: 0;\n }\n }\n }\n }\n\n slot[name='toast-link']::slotted(*) {\n color: var(--sdds-toast-link-color);\n }\n\n .sdds-mode-variant-primary {\n --sdds-toast-background: var(--sdds-toast-background-primary);\n }\n\n .sdds-mode-variant-secondary {\n --sdds-toast-background: var(--sdds-toast-background-secondary);\n }\n}\n","import { Component, Host, h, Prop, Element, Event, EventEmitter } from '@stencil/core';\nimport { HostElement, Method, State } from '@stencil/core/internal';\n\n@Component({\n tag: 'sdds-toast',\n styleUrl: 'sdds-toast.scss',\n shadow: true,\n})\nexport class SddsToast {\n /** ID for the toast. Randomly generated if not specified. */\n @Prop() toastId: string = crypto.randomUUID();\n\n /** Header text for the component. */\n @Prop() header: string;\n\n /** Subheader text for the component. */\n @Prop() subheader: string;\n\n /** Type of toast. */\n @Prop() type: 'information' | 'error' | 'warning' | 'success' = 'information';\n\n /** Hides the toast. */\n @Prop() hidden: boolean = false;\n\n /** ARIA role for the toast. */\n @Prop() toastRole: 'alert' | 'log' | 'status' = 'alert';\n\n @Element() host: HostElement;\n\n @State() hasSubheader: boolean;\n\n @State() hasLink: boolean;\n\n /** Hides the toast. */\n @Method()\n async hideToast() {\n this.hidden = true;\n return {\n toastId: this.toastId,\n };\n }\n\n /** Shows the toast. */\n @Method()\n async showToast() {\n this.hidden = false;\n return {\n toastId: this.toastId,\n };\n }\n\n /** Sends unique toast identifier component is closed. */\n @Event({\n eventName: 'sddsClose',\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n sddsClose: EventEmitter<{\n toastId: string;\n }>;\n\n getIconName = () => {\n switch (this.type) {\n case 'information':\n return 'info';\n case 'error':\n return 'error';\n case 'warning':\n return 'warning';\n case 'success':\n return 'tick';\n default:\n return 'info';\n }\n };\n\n handleClose = () => {\n const sddsCloseEvent = this.sddsClose.emit({\n toastId: this.toastId,\n });\n if (!sddsCloseEvent.defaultPrevented) {\n this.hidden = true;\n }\n };\n\n connectedCallback() {\n const children = Array.from(this.host.children);\n this.hasSubheader = children.some((childElement) => childElement.slot === 'toast-subheader');\n this.hasLink = children.some((childElement) => childElement.slot === 'toast-link');\n }\n\n getHeaderClasses = () => {\n if (!this.hasSubheader && !this.hasLink) {\n return 'only-header';\n }\n if (!this.hasSubheader) {\n return 'no-subheader';\n }\n return '';\n };\n\n render() {\n return (\n <Host\n toastRole={this.toastRole}\n aria-describedby={this.host.getAttribute('aria-describedby')}\n class={`${this.hidden ? 'hide' : 'show'}`}\n >\n <div\n class={`\n toast-wrapper\n ${this.type}\n `}\n >\n <sdds-icon name={this.getIconName()} size=\"20px\"></sdds-icon>\n <div class={`toast-content`}>\n <div\n class={`toast-header\n ${this.getHeaderClasses()}\n `}\n >\n {this.header}\n </div>\n <div class={`toast-subheader ${this.hasLink ? '' : 'no-link'}`}>\n <slot name=\"toast-subheader\"></slot>\n </div>\n <slot name=\"toast-link\"></slot>\n </div>\n <button\n onClick={() => {\n this.handleClose();\n }}\n class={`toast-close`}\n >\n <sdds-icon name=\"cross\" size=\"20px\"></sdds-icon>\n </button>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface SddsToggle extends Components.SddsToggle, HTMLElement {}
|
|
4
|
+
export const SddsToggle: {
|
|
5
|
+
prototype: SddsToggle;
|
|
6
|
+
new (): SddsToggle;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
|
|
2
|
+
|
|
3
|
+
const sddsToggleCss = ".sdds-toggle-webcomponent.sc-sdds-toggle .toggle-headline.sc-sdds-toggle{font:var(--sdds-detail-02);letter-spacing:var(--sdds-detail-02-ls);color:var(--sdds-toggle-headline);margin-bottom:12px}.sdds-toggle-webcomponent.sc-sdds-toggle .toggle-headline.disabled.sc-sdds-toggle{color:var(--sdds-toggle-headline-disabled)}.sdds-toggle-webcomponent.sc-sdds-toggle input[type=checkbox].sc-sdds-toggle{margin:0;width:44px;height:24px;position:relative;display:inline-block;vertical-align:middle}.sdds-toggle-webcomponent.sc-sdds-toggle input[type=checkbox].sc-sdds-toggle::after,.sdds-toggle-webcomponent.sc-sdds-toggle input[type=checkbox].sc-sdds-toggle::before{content:\"\";position:absolute;box-sizing:border-box;transition:all 0.5s cubic-bezier(0.075, 0.82, 0.165, 1)}.sdds-toggle-webcomponent.sc-sdds-toggle input[type=checkbox].sc-sdds-toggle::before{width:44px;height:24px;border-radius:16px;background-color:var(--sdds-toggle-off-slider);left:0}.sdds-toggle-webcomponent.sc-sdds-toggle input[type=checkbox].sc-sdds-toggle::after{width:16px;height:16px;background-color:var(--sdds-toggle-switch);border-radius:50%;left:4px;top:4px}.sdds-toggle-webcomponent.sc-sdds-toggle input[type=checkbox].sc-sdds-toggle:focus{outline:none}.sdds-toggle-webcomponent.sc-sdds-toggle input[type=checkbox].sc-sdds-toggle:focus::before{background-color:var(--sdds-toggle-off-slider-focus);border:1px solid var(--sdds-toggle-off-border-focus)}.sdds-toggle-webcomponent.sc-sdds-toggle input[type=checkbox].sc-sdds-toggle:checked::before{background-color:var(--sdds-toggle-on-slider);border:1px solid var(--sdds-toggle-on-border-focus)}.sdds-toggle-webcomponent.sc-sdds-toggle input[type=checkbox].sc-sdds-toggle:checked::after{left:24px}.sdds-toggle-webcomponent.sc-sdds-toggle input[type=checkbox].sc-sdds-toggle:disabled::before{background-color:var(--sdds-toggle-slider-disabled);border:1px solid var(--sdds-toggle-slider-disabled)}.sdds-toggle-webcomponent.sc-sdds-toggle input[type=checkbox].sc-sdds-toggle:disabled::after{background-color:var(--sdds-toggle-switch-disabled)}.sdds-toggle-webcomponent.sc-sdds-toggle input[type=checkbox].sc-sdds-toggle:disabled:checked::before{background-color:var(--sdds-toggle-on-slider-disabled);border:1px solid var(--sdds-toggle-on-slider-disabled)}.sdds-toggle-webcomponent.sc-sdds-toggle input[type=checkbox].sc-sdds-toggle:disabled:checked::after{background-color:var(--sdds-toggle-switch-disabled)}.sdds-toggle-webcomponent.sc-sdds-toggle input[type=checkbox].sm.sc-sdds-toggle{width:28px;height:16px}.sdds-toggle-webcomponent.sc-sdds-toggle input[type=checkbox].sm.sc-sdds-toggle::before{width:28px;height:16px}.sdds-toggle-webcomponent.sc-sdds-toggle input[type=checkbox].sm.sc-sdds-toggle::after{width:8px;height:8px}.sdds-toggle-webcomponent.sc-sdds-toggle input[type=checkbox].sm.sc-sdds-toggle:checked::before{background-color:var(--sdds-toggle-on-slider)}.sdds-toggle-webcomponent.sc-sdds-toggle input[type=checkbox].sm.sc-sdds-toggle:checked::after{left:16px}.sdds-toggle-webcomponent.sc-sdds-toggle input[type=checkbox].sm.sc-sdds-toggle:disabled::before{background-color:var(--sdds-toggle-slider-disabled);border:1px solid var(--sdds-toggle-slider-disabled)}.sdds-toggle-webcomponent.sc-sdds-toggle input[type=checkbox].sm.sc-sdds-toggle:disabled::after{background-color:var(--sdds-toggle-switch-disabled)}.sdds-toggle-webcomponent.sc-sdds-toggle label.sc-sdds-toggle{display:inline-block;vertical-align:middle;font:var(--sdds-detail-01);letter-spacing:var(--sdds-detail-01-ls);color:var(--sdds-toggle-label-color);padding-left:8px}.sdds-toggle-webcomponent.sc-sdds-toggle label.disabled.sc-sdds-toggle{color:var(--sdds-toggle-label-color-disabled)}";
|
|
4
|
+
|
|
5
|
+
const SddsToggle$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
6
|
+
constructor() {
|
|
7
|
+
super();
|
|
8
|
+
this.__registerHost();
|
|
9
|
+
this.sddsToggleChangeEvent = createEvent(this, "sddsToggleChangeEvent", 7);
|
|
10
|
+
this.checked = false;
|
|
11
|
+
this.required = false;
|
|
12
|
+
this.ariaLabelledby = undefined;
|
|
13
|
+
this.ariaDescribedby = undefined;
|
|
14
|
+
this.size = 'lg';
|
|
15
|
+
this.name = undefined;
|
|
16
|
+
this.label = undefined;
|
|
17
|
+
this.headline = undefined;
|
|
18
|
+
this.disabled = false;
|
|
19
|
+
this.toggleId = crypto.randomUUID();
|
|
20
|
+
}
|
|
21
|
+
/** Toggles the toggle. */
|
|
22
|
+
async toggle() {
|
|
23
|
+
this.checked = !this.checked;
|
|
24
|
+
return {
|
|
25
|
+
toggleId: this.toggleId,
|
|
26
|
+
checked: this.checked,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
render() {
|
|
30
|
+
return (h("div", { class: "sdds-toggle-webcomponent" }, this.headline && (h("div", { class: `toggle-headline ${this.disabled ? 'disabled' : ''}` }, this.headline)), h("input", { "aria-labelledby": this.ariaLabelledby, "aria-describedby": this.ariaDescribedby, onChange: () => {
|
|
31
|
+
this.checked = !this.checked;
|
|
32
|
+
this.sddsToggleChangeEvent.emit({
|
|
33
|
+
toggleId: this.toggleId,
|
|
34
|
+
checked: this.checked,
|
|
35
|
+
});
|
|
36
|
+
}, class: `${this.size}`, checked: this.checked, disabled: this.disabled, required: this.required, type: "checkbox", name: this.name, id: this.toggleId, role: "switch" }), h("label", { class: `${this.disabled ? 'disabled' : ''}`, htmlFor: this.toggleId }, h("slot", null))));
|
|
37
|
+
}
|
|
38
|
+
static get style() { return sddsToggleCss; }
|
|
39
|
+
}, [6, "sdds-toggle", {
|
|
40
|
+
"checked": [516],
|
|
41
|
+
"required": [4],
|
|
42
|
+
"ariaLabelledby": [1, "aria-labelledby"],
|
|
43
|
+
"ariaDescribedby": [1, "aria-describedby"],
|
|
44
|
+
"size": [1],
|
|
45
|
+
"name": [1],
|
|
46
|
+
"label": [1],
|
|
47
|
+
"headline": [1],
|
|
48
|
+
"disabled": [4],
|
|
49
|
+
"toggleId": [1, "toggle-id"],
|
|
50
|
+
"toggle": [64]
|
|
51
|
+
}]);
|
|
52
|
+
function defineCustomElement$1() {
|
|
53
|
+
if (typeof customElements === "undefined") {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const components = ["sdds-toggle"];
|
|
57
|
+
components.forEach(tagName => { switch (tagName) {
|
|
58
|
+
case "sdds-toggle":
|
|
59
|
+
if (!customElements.get(tagName)) {
|
|
60
|
+
customElements.define(tagName, SddsToggle$1);
|
|
61
|
+
}
|
|
62
|
+
break;
|
|
63
|
+
} });
|
|
64
|
+
}
|
|
65
|
+
defineCustomElement$1();
|
|
66
|
+
|
|
67
|
+
const SddsToggle = SddsToggle$1;
|
|
68
|
+
const defineCustomElement = defineCustomElement$1;
|
|
69
|
+
|
|
70
|
+
export { SddsToggle, defineCustomElement };
|
|
71
|
+
|
|
72
|
+
//# sourceMappingURL=sdds-toggle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"sdds-toggle.js","mappings":";;AAAA,MAAM,aAAa,GAAG,ymHAAymH;;MCQlnHA,YAAU;;;;;mBAEuB,KAAK;oBAGrB,KAAK;;;gBASL,IAAI;;;;oBAYJ,KAAK;oBAGN,MAAM,CAAC,UAAU,EAAE;;;EAI9C,MAAM,MAAM;IACV,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;IAC7B,OAAO;MACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;MACvB,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC;GACH;EAcD,MAAM;IACJ,QACE,WAAK,KAAK,EAAC,0BAA0B,IAClC,IAAI,CAAC,QAAQ,KACZ,WAAK,KAAK,EAAE,mBAAmB,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE,EAAE,IAAG,IAAI,CAAC,QAAQ,CAAO,CACxF,EACD,gCACmB,IAAI,CAAC,cAAc,sBAClB,IAAI,CAAC,eAAe,EACtC,QAAQ,EAAE;QACR,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;UAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ;UACvB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;OACJ,EACD,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAC,UAAU,EACf,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,IAAI,EAAC,QAAQ,GACb,EACF,aAAO,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,IACxE,eAAa,CACP,CACJ,EACN;GACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["SddsToggle"],"sources":["./src/components/toggle/sdds-toggle.scss?tag=sdds-toggle&encapsulation=scoped","./src/components/toggle/sdds-toggle.tsx"],"sourcesContent":[".sdds-toggle-webcomponent {\n .toggle-headline {\n font: var(--sdds-detail-02);\n letter-spacing: var(--sdds-detail-02-ls);\n color: var(--sdds-toggle-headline);\n margin-bottom: 12px;\n\n &.disabled {\n color: var(--sdds-toggle-headline-disabled);\n }\n }\n\n input[type='checkbox'] {\n margin: 0;\n width: 44px;\n height: 24px;\n position: relative;\n display: inline-block;\n vertical-align: middle;\n\n &::after,\n &::before {\n content: '';\n position: absolute;\n box-sizing: border-box;\n transition: all 0.5s cubic-bezier(0.075, 0.82, 0.165, 1);\n }\n\n &::before {\n /* Slider */\n width: 44px;\n height: 24px;\n border-radius: 16px;\n background-color: var(--sdds-toggle-off-slider);\n left: 0;\n }\n\n /* Switch */\n &::after {\n width: 16px;\n height: 16px;\n background-color: var(--sdds-toggle-switch);\n border-radius: 50%;\n left: 4px;\n top: 4px;\n }\n\n &:focus {\n outline: none;\n\n &::before {\n background-color: var(--sdds-toggle-off-slider-focus);\n border: 1px solid var(--sdds-toggle-off-border-focus);\n }\n }\n\n &:checked {\n &::before {\n background-color: var(--sdds-toggle-on-slider);\n border: 1px solid var(--sdds-toggle-on-border-focus);\n }\n\n &::after {\n left: calc(44px - 20px);\n }\n }\n\n &:disabled {\n &::before {\n background-color: var(--sdds-toggle-slider-disabled);\n border: 1px solid var(--sdds-toggle-slider-disabled);\n }\n\n &::after {\n background-color: var(--sdds-toggle-switch-disabled);\n }\n }\n\n &:disabled:checked {\n &::before {\n background-color: var(--sdds-toggle-on-slider-disabled);\n border: 1px solid var(--sdds-toggle-on-slider-disabled);\n }\n\n &::after {\n background-color: var(--sdds-toggle-switch-disabled);\n }\n }\n\n &.sm {\n width: 28px;\n height: 16px;\n\n &::before {\n width: 28px;\n height: 16px;\n }\n\n &::after {\n width: 8px;\n height: 8px;\n }\n\n &:checked {\n &::before {\n background-color: var(--sdds-toggle-on-slider);\n }\n\n &::after {\n left: calc(44px - 28px); // slider width - switch width - padding\n }\n }\n\n &:disabled {\n &::before {\n background-color: var(--sdds-toggle-slider-disabled);\n border: 1px solid var(--sdds-toggle-slider-disabled);\n }\n\n &::after {\n background-color: var(--sdds-toggle-switch-disabled);\n }\n }\n }\n }\n\n label {\n display: inline-block;\n vertical-align: middle;\n font: var(--sdds-detail-01);\n letter-spacing: var(--sdds-detail-01-ls);\n color: var(--sdds-toggle-label-color);\n padding-left: 8px;\n\n &.disabled {\n color: var(--sdds-toggle-label-color-disabled);\n }\n }\n}\n","import { Component, h, Prop, Event, EventEmitter, Method } from '@stencil/core';\n\n@Component({\n tag: 'sdds-toggle',\n styleUrl: 'sdds-toggle.scss',\n shadow: false,\n scoped: true,\n})\nexport class SddsToggle {\n /** Sets the toggle as checked */\n @Prop({ reflect: true }) checked: boolean = false;\n\n /** Make the toggle required */\n @Prop() required: boolean = false;\n\n /** Aria-labelledby for the toggles input element. */\n @Prop() ariaLabelledby: string;\n\n /** Aria-describedby for the toggles input element. */\n @Prop() ariaDescribedby: string;\n\n /** Size of the toggle */\n @Prop() size: 'sm' | 'lg' = 'lg';\n\n /** Name of the toggles input element */\n @Prop() name: string;\n\n /** Label for the toggle */\n @Prop() label: string;\n\n /** Headline for the toggle */\n @Prop() headline: string;\n\n /** Sets the toggle in a disabled state */\n @Prop() disabled: boolean = false;\n\n /** ID of the toggles input element, if not specifed it's randomly generated */\n @Prop() toggleId: string = crypto.randomUUID();\n\n /** Toggles the toggle. */\n @Method()\n async toggle() {\n this.checked = !this.checked;\n return {\n toggleId: this.toggleId,\n checked: this.checked,\n };\n }\n\n /** Sends unique toggle identifier and status when it is toggled. */\n @Event({\n eventName: 'sddsToggleChangeEvent',\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n sddsToggleChangeEvent: EventEmitter<{\n toggleId: string;\n checked: boolean;\n }>;\n\n render() {\n return (\n <div class=\"sdds-toggle-webcomponent\">\n {this.headline && (\n <div class={`toggle-headline ${this.disabled ? 'disabled' : ''}`}>{this.headline}</div>\n )}\n <input\n aria-labelledby={this.ariaLabelledby}\n aria-describedby={this.ariaDescribedby}\n onChange={() => {\n this.checked = !this.checked;\n this.sddsToggleChangeEvent.emit({\n toggleId: this.toggleId,\n checked: this.checked,\n });\n }}\n class={`${this.size}`}\n checked={this.checked}\n disabled={this.disabled}\n required={this.required}\n type=\"checkbox\"\n name={this.name}\n id={this.toggleId}\n role=\"switch\"\n />\n <label class={`${this.disabled ? 'disabled' : ''}`} htmlFor={this.toggleId}>\n <slot></slot>\n </label>\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface SddsTooltip extends Components.SddsTooltip, HTMLElement {}
|
|
4
|
+
export const SddsTooltip: {
|
|
5
|
+
prototype: SddsTooltip;
|
|
6
|
+
new (): SddsTooltip;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
|
|
2
|
+
import { c as createPopper } from './popper.js';
|
|
3
|
+
|
|
4
|
+
const tooltipCss = ":root,.sdds-mode-light{--sdds-tooltip-background:var(--sdds-grey-800);--sdds-tooltip-color:var(--sdds-white)}.sdds-mode-dark{--sdds-tooltip-background:var(--sdds-grey-200);--sdds-tooltip-color:var(--sdds-grey-958)}.sdds-tooltip{box-sizing:border-box;font:var(--sdds-detail-05);letter-spacing:var(--sdds-detail-05-ls);color:var(--sdds-tooltip-color);background-color:var(--sdds-tooltip-background);border-radius:4px;padding:8px;word-wrap:break-word;max-width:192px;z-index:800;opacity:0;visibility:hidden;transition:opacity 200ms ease-in, visibility 200ms ease-in}.sdds-tooltip *{box-sizing:border-box}.sdds-tooltip.sdds-tooltip-top-left{border-radius:0 4px 4px}.sdds-tooltip.sdds-tooltip-top-right{border-radius:4px 0 4px 4px}.sdds-tooltip.sdds-tooltip-bottom-right{border-radius:4px 4px 0}.sdds-tooltip.sdds-tooltip-bottom-left{border-radius:4px 4px 4px 0}.sdds-tooltip-show{opacity:1;visibility:visible}";
|
|
5
|
+
|
|
6
|
+
const Tooltip = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
this.__registerHost();
|
|
10
|
+
this.__attachShadow();
|
|
11
|
+
this.offsetSkidding = 0;
|
|
12
|
+
this.offsetDistance = 8;
|
|
13
|
+
this.text = '';
|
|
14
|
+
this.selector = '';
|
|
15
|
+
this.referenceEl = undefined;
|
|
16
|
+
this.mouseOverTooltip = false;
|
|
17
|
+
this.show = false;
|
|
18
|
+
this.placement = 'bottom';
|
|
19
|
+
this.popperInstance = undefined;
|
|
20
|
+
this.target = undefined;
|
|
21
|
+
}
|
|
22
|
+
componentDidLoad() {
|
|
23
|
+
var _a;
|
|
24
|
+
this.target = (_a = this.referenceEl) !== null && _a !== void 0 ? _a : document.querySelector(this.selector);
|
|
25
|
+
const thisValue = this;
|
|
26
|
+
this.popperInstance = createPopper(this.target, this.tooltip, {
|
|
27
|
+
placement: thisValue.placement,
|
|
28
|
+
modifiers: [
|
|
29
|
+
{
|
|
30
|
+
name: 'positionCalc',
|
|
31
|
+
enabled: true,
|
|
32
|
+
phase: 'main',
|
|
33
|
+
fn({ state }) {
|
|
34
|
+
if (state.placement === 'bottom-start' || state.placement === 'right-start') {
|
|
35
|
+
thisValue.border = 'top-left';
|
|
36
|
+
}
|
|
37
|
+
else if (state.placement === 'bottom-end' || state.placement === 'left-start') {
|
|
38
|
+
thisValue.border = 'top-right';
|
|
39
|
+
}
|
|
40
|
+
else if (state.placement === 'top-end' || state.placement === 'left-end') {
|
|
41
|
+
thisValue.border = 'bottom-right';
|
|
42
|
+
}
|
|
43
|
+
else if (state.placement === 'top-start' || state.placement === 'right-end') {
|
|
44
|
+
thisValue.border = 'bottom-left';
|
|
45
|
+
}
|
|
46
|
+
else if (state.placement === 'bottom' || state.placement === 'top') {
|
|
47
|
+
thisValue.border = 'default';
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: 'offset',
|
|
53
|
+
options: {
|
|
54
|
+
offset: [this.offsetSkidding, this.offsetDistance],
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
});
|
|
59
|
+
const showTooltip = () => {
|
|
60
|
+
this.show = true;
|
|
61
|
+
};
|
|
62
|
+
const hideTooltip = () => {
|
|
63
|
+
this.show = false;
|
|
64
|
+
};
|
|
65
|
+
// For tabbing over element
|
|
66
|
+
this.target.addEventListener('focusin', () => {
|
|
67
|
+
showTooltip();
|
|
68
|
+
});
|
|
69
|
+
this.target.addEventListener('focusout', () => {
|
|
70
|
+
hideTooltip();
|
|
71
|
+
});
|
|
72
|
+
// For hovering over element with selector
|
|
73
|
+
this.target.addEventListener('mouseenter', () => {
|
|
74
|
+
showTooltip();
|
|
75
|
+
});
|
|
76
|
+
this.target.addEventListener('mouseleave', () => {
|
|
77
|
+
hideTooltip();
|
|
78
|
+
});
|
|
79
|
+
// For hovering over tooltip itself:
|
|
80
|
+
if (this.mouseOverTooltip === true) {
|
|
81
|
+
this.tooltip.addEventListener('mouseenter', () => {
|
|
82
|
+
showTooltip();
|
|
83
|
+
});
|
|
84
|
+
this.tooltip.addEventListener('mouseleave', () => {
|
|
85
|
+
hideTooltip();
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
disconnectedCallback() {
|
|
90
|
+
var _a;
|
|
91
|
+
(_a = this.popperInstance) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
92
|
+
}
|
|
93
|
+
/* Slot on line 118 is added to support adding HTML elements to component */
|
|
94
|
+
render() {
|
|
95
|
+
return (h("span", { ref: (el) => {
|
|
96
|
+
this.tooltip = el;
|
|
97
|
+
}, class: `sdds-tooltip sdds-tooltip-${this.border} ${this.show ? 'sdds-tooltip-show' : ''}` }, this.text, h("slot", null)));
|
|
98
|
+
}
|
|
99
|
+
static get style() { return tooltipCss; }
|
|
100
|
+
}, [1, "sdds-tooltip", {
|
|
101
|
+
"text": [1],
|
|
102
|
+
"selector": [1],
|
|
103
|
+
"referenceEl": [16],
|
|
104
|
+
"mouseOverTooltip": [4, "mouse-over-tooltip"],
|
|
105
|
+
"show": [1028],
|
|
106
|
+
"placement": [1],
|
|
107
|
+
"popperInstance": [32],
|
|
108
|
+
"target": [32]
|
|
109
|
+
}]);
|
|
110
|
+
function defineCustomElement$1() {
|
|
111
|
+
if (typeof customElements === "undefined") {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
const components = ["sdds-tooltip"];
|
|
115
|
+
components.forEach(tagName => { switch (tagName) {
|
|
116
|
+
case "sdds-tooltip":
|
|
117
|
+
if (!customElements.get(tagName)) {
|
|
118
|
+
customElements.define(tagName, Tooltip);
|
|
119
|
+
}
|
|
120
|
+
break;
|
|
121
|
+
} });
|
|
122
|
+
}
|
|
123
|
+
defineCustomElement$1();
|
|
124
|
+
|
|
125
|
+
const SddsTooltip = Tooltip;
|
|
126
|
+
const defineCustomElement = defineCustomElement$1;
|
|
127
|
+
|
|
128
|
+
export { SddsTooltip, defineCustomElement };
|
|
129
|
+
|
|
130
|
+
//# sourceMappingURL=sdds-tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"sdds-tooltip.js","mappings":";;;AAAA,MAAM,UAAU,GAAG,24BAA24B;;MCSj5B,OAAO;;;;;IAyBlB,mBAAc,GAAW,CAAC,CAAC;IAE3B,mBAAc,GAAW,CAAC,CAAC;gBAzBJ,EAAE;oBAGE,EAAE;;4BAMO,KAAK;gBAGA,KAAK;qBAGf,QAAQ;;;;EAcvC,gBAAgB;;IACd,IAAI,CAAC,MAAM,GAAG,MAAA,IAAI,CAAC,WAAW,mCAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAExE,MAAM,SAAS,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE;MAC5D,SAAS,EAAE,SAAS,CAAC,SAAS;MAC9B,SAAS,EAAE;QACT;UACE,IAAI,EAAE,cAAc;UACpB,OAAO,EAAE,IAAI;UACb,KAAK,EAAE,MAAM;UACb,EAAE,CAAC,EAAE,KAAK,EAAE;YACV,IAAI,KAAK,CAAC,SAAS,KAAK,cAAc,IAAI,KAAK,CAAC,SAAS,KAAK,aAAa,EAAE;cAC3E,SAAS,CAAC,MAAM,GAAG,UAAU,CAAC;aAC/B;iBAAM,IAAI,KAAK,CAAC,SAAS,KAAK,YAAY,IAAI,KAAK,CAAC,SAAS,KAAK,YAAY,EAAE;cAC/E,SAAS,CAAC,MAAM,GAAG,WAAW,CAAC;aAChC;iBAAM,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,UAAU,EAAE;cAC1E,SAAS,CAAC,MAAM,GAAG,cAAc,CAAC;aACnC;iBAAM,IAAI,KAAK,CAAC,SAAS,KAAK,WAAW,IAAI,KAAK,CAAC,SAAS,KAAK,WAAW,EAAE;cAC7E,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC;aAClC;iBAAM,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,EAAE;cACpE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC;aAC9B;WACF;SACF;QACD;UACE,IAAI,EAAE,QAAQ;UACd,OAAO,EAAE;YACP,MAAM,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC;WACnD;SACF;OACF;KACF,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG;MAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KAClB,CAAC;IAEF,MAAM,WAAW,GAAG;MAClB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACnB,CAAC;;IAGF,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE;MACtC,WAAW,EAAE,CAAC;KACf,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE;MACvC,WAAW,EAAE,CAAC;KACf,CAAC,CAAC;;IAGH,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE;MACzC,WAAW,EAAE,CAAC;KACf,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE;MACzC,WAAW,EAAE,CAAC;KACf,CAAC,CAAC;;IAGH,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,EAAE;MAClC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE;QAC1C,WAAW,EAAE,CAAC;OACf,CAAC,CAAC;MAEH,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE;QAC1C,WAAW,EAAE,CAAC;OACf,CAAC,CAAC;KACJ;GACF;EAED,oBAAoB;;IAClB,MAAA,IAAI,CAAC,cAAc,0CAAE,OAAO,EAAE,CAAC;GAChC;;EAGD,MAAM;IACJ,QACE,YACE,GAAG,EAAE,CAAC,EAAE;QACN,IAAI,CAAC,OAAO,GAAG,EAAsB,CAAC;OACvC,EACD,KAAK,EAAE,6BAA6B,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,GAAG,mBAAmB,GAAG,EAAE,EAAE,IAExF,IAAI,CAAC,IAAI,EACV,eAAQ,CACH,EACP;GACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["./src/components/tooltip/tooltip.scss?tag=sdds-tooltip&encapsulation=shadow","./src/components/tooltip/tooltip.tsx"],"sourcesContent":["@import '../../mixins/z-index';\n@import './tooltip-theme-vars.scss';\n@import '../../mixins/box-sizing';\n\n.sdds-tooltip {\n @include sdds-box-sizing;\n\n font: var(--sdds-detail-05);\n letter-spacing: var(--sdds-detail-05-ls);\n color: var(--sdds-tooltip-color);\n background-color: var(--sdds-tooltip-background);\n border-radius: 4px;\n padding: 8px;\n word-wrap: break-word;\n max-width: 192px;\n z-index: z(tooltip);\n opacity: 0;\n visibility: hidden;\n transition: opacity 200ms ease-in, visibility 200ms ease-in;\n\n &.sdds-tooltip-top-left {\n border-radius: 0 4px 4px;\n }\n\n &.sdds-tooltip-top-right {\n border-radius: 4px 0 4px 4px;\n }\n\n &.sdds-tooltip-bottom-right {\n border-radius: 4px 4px 0;\n }\n\n &.sdds-tooltip-bottom-left {\n border-radius: 4px 4px 4px 0;\n }\n}\n\n.sdds-tooltip-show {\n opacity: 1;\n visibility: visible;\n}\n","import { Component, h, Prop, State } from '@stencil/core';\nimport { createPopper } from '@popperjs/core';\nimport type { Placement, Instance } from '@popperjs/core';\n\n@Component({\n tag: 'sdds-tooltip',\n styleUrl: 'tooltip.scss',\n shadow: true,\n})\nexport class Tooltip {\n /** In case tooltip contains only text, no HTML, text can be passed by this prop */\n @Prop() text: string = '';\n\n /** The CSS-selector for an element that will trigger the tooltip */\n @Prop() selector: string = '';\n\n /** Element that will trigger the tooltip (takes priority over selector) */\n @Prop() referenceEl: HTMLElement;\n\n /** Allow mouse over tooltip. Useful when tooltip contains clickable elements like link or button. */\n @Prop() mouseOverTooltip: boolean = false;\n\n /** Prop in control of showing and hiding prop */\n @Prop({ mutable: true }) show: boolean = false;\n\n /** Placement of tooltip. */\n @Prop() placement: Placement = 'bottom';\n\n @State() popperInstance: Instance;\n\n @State() target: any;\n\n border: string;\n\n offsetSkidding: number = 0;\n\n offsetDistance: number = 8;\n\n tooltip!: HTMLInputElement;\n\n componentDidLoad() {\n this.target = this.referenceEl ?? document.querySelector(this.selector);\n\n const thisValue = this;\n this.popperInstance = createPopper(this.target, this.tooltip, {\n placement: thisValue.placement,\n modifiers: [\n {\n name: 'positionCalc',\n enabled: true,\n phase: 'main',\n fn({ state }) {\n if (state.placement === 'bottom-start' || state.placement === 'right-start') {\n thisValue.border = 'top-left';\n } else if (state.placement === 'bottom-end' || state.placement === 'left-start') {\n thisValue.border = 'top-right';\n } else if (state.placement === 'top-end' || state.placement === 'left-end') {\n thisValue.border = 'bottom-right';\n } else if (state.placement === 'top-start' || state.placement === 'right-end') {\n thisValue.border = 'bottom-left';\n } else if (state.placement === 'bottom' || state.placement === 'top') {\n thisValue.border = 'default';\n }\n },\n },\n {\n name: 'offset',\n options: {\n offset: [this.offsetSkidding, this.offsetDistance],\n },\n },\n ],\n });\n\n const showTooltip = () => {\n this.show = true;\n };\n\n const hideTooltip = () => {\n this.show = false;\n };\n\n // For tabbing over element\n this.target.addEventListener('focusin', () => {\n showTooltip();\n });\n\n this.target.addEventListener('focusout', () => {\n hideTooltip();\n });\n\n // For hovering over element with selector\n this.target.addEventListener('mouseenter', () => {\n showTooltip();\n });\n\n this.target.addEventListener('mouseleave', () => {\n hideTooltip();\n });\n\n // For hovering over tooltip itself:\n if (this.mouseOverTooltip === true) {\n this.tooltip.addEventListener('mouseenter', () => {\n showTooltip();\n });\n\n this.tooltip.addEventListener('mouseleave', () => {\n hideTooltip();\n });\n }\n }\n\n disconnectedCallback() {\n this.popperInstance?.destroy();\n }\n\n /* Slot on line 118 is added to support adding HTML elements to component */\n render() {\n return (\n <span\n ref={(el) => {\n this.tooltip = el as HTMLInputElement;\n }}\n class={`sdds-tooltip sdds-tooltip-${this.border} ${this.show ? 'sdds-tooltip-show' : ''}`}\n >\n {this.text}\n <slot />\n </span>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
|
|
3
|
+
const tableBodyCellCss = ":host(.sdds-table__body-cell){box-sizing:border-box;font:var(--sdds-detail-02);letter-spacing:var(--sdds-detail-02-ls);display:table-cell;box-sizing:border-box;color:var(--sdds-data-table-color);padding:var(--sdds-spacing-element-16);min-width:192px;vertical-align:top;background-color:transparent;transition:background-color 200ms ease}:host(.sdds-table__body-cell) *{box-sizing:border-box}:host(.sdds-table__body-cell--no-padding){padding:0}:host(.sdds-table__body-cell--hover){background-color:var(--sdds-data-table-body-cell-background-hover)}:host(.sdds-table__compact){padding:var(--sdds-spacing-element-8) var(--sdds-spacing-element-16)}:host(.sdds-table--divider){border-right:1px solid var(--sdds-data-table-divider)}:host(.sdds-table--divider:last-of-type){border-right:none}:host(.sdds-table--no-min-width){min-width:unset}";
|
|
4
|
+
|
|
5
|
+
const relevantTableProps = [
|
|
6
|
+
'verticalDividers',
|
|
7
|
+
'compactDesign',
|
|
8
|
+
'noMinWidth',
|
|
9
|
+
];
|
|
10
|
+
const TableBodyCell = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
11
|
+
constructor() {
|
|
12
|
+
super();
|
|
13
|
+
this.__registerHost();
|
|
14
|
+
this.__attachShadow();
|
|
15
|
+
this.cellValue = undefined;
|
|
16
|
+
this.cellKey = undefined;
|
|
17
|
+
this.disablePadding = false;
|
|
18
|
+
this.textAlignState = undefined;
|
|
19
|
+
this.activeSorting = false;
|
|
20
|
+
this.verticalDividers = false;
|
|
21
|
+
this.compactDesign = false;
|
|
22
|
+
this.noMinWidth = false;
|
|
23
|
+
this.whiteBackground = false;
|
|
24
|
+
this.tableId = '';
|
|
25
|
+
}
|
|
26
|
+
tablePropsChangedEventListener(event) {
|
|
27
|
+
if (this.tableId === event.detail.tableId) {
|
|
28
|
+
event.detail.changed
|
|
29
|
+
.filter((changedProp) => relevantTableProps.includes(changedProp))
|
|
30
|
+
.forEach((changedProp) => {
|
|
31
|
+
if (typeof this[changedProp] === 'undefined') {
|
|
32
|
+
throw new Error(`Table prop is not supported: ${changedProp}`);
|
|
33
|
+
}
|
|
34
|
+
this[changedProp] = event.detail[changedProp];
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// Listen to headKey from data-table-header-element
|
|
39
|
+
headCellHoverEventListener(event) {
|
|
40
|
+
const [receivedID, receivedKeyValue] = event.detail;
|
|
41
|
+
if (this.tableId === receivedID) {
|
|
42
|
+
this.activeSorting = this.cellKey === receivedKeyValue;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// Listen to textAlignEvent from data-table-header-element
|
|
46
|
+
textAlignEventListener(event) {
|
|
47
|
+
const [receivedID, receivedKey, receivedTextAlign] = event.detail;
|
|
48
|
+
if (this.tableId === receivedID) {
|
|
49
|
+
if (this.cellKey === receivedKey) {
|
|
50
|
+
this.textAlignState = receivedTextAlign;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
connectedCallback() {
|
|
55
|
+
this.tableEl = this.host.closest('sdds-table');
|
|
56
|
+
this.tableId = this.tableEl.tableId;
|
|
57
|
+
}
|
|
58
|
+
componentWillLoad() {
|
|
59
|
+
relevantTableProps.forEach((tablePropName) => {
|
|
60
|
+
this[tablePropName] = this.tableEl[tablePropName];
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
render() {
|
|
64
|
+
return (h(Host, { class: {
|
|
65
|
+
'sdds-table__body-cell': true,
|
|
66
|
+
'sdds-table__body-cell--hover': this.activeSorting,
|
|
67
|
+
'sdds-table__compact': this.compactDesign,
|
|
68
|
+
'sdds-table--divider': this.verticalDividers,
|
|
69
|
+
'sdds-table--no-min-width': this.noMinWidth,
|
|
70
|
+
'sdds-table__body-cell--no-padding': this.disablePadding,
|
|
71
|
+
}, style: { textAlign: this.textAlignState } }, this.cellValue, h("slot", null)));
|
|
72
|
+
}
|
|
73
|
+
get host() { return this; }
|
|
74
|
+
static get style() { return tableBodyCellCss; }
|
|
75
|
+
}, [1, "sdds-body-cell", {
|
|
76
|
+
"cellValue": [520, "cell-value"],
|
|
77
|
+
"cellKey": [520, "cell-key"],
|
|
78
|
+
"disablePadding": [516, "disable-padding"],
|
|
79
|
+
"textAlignState": [32],
|
|
80
|
+
"activeSorting": [32],
|
|
81
|
+
"verticalDividers": [32],
|
|
82
|
+
"compactDesign": [32],
|
|
83
|
+
"noMinWidth": [32],
|
|
84
|
+
"whiteBackground": [32],
|
|
85
|
+
"tableId": [32]
|
|
86
|
+
}, [[16, "tablePropsChangedEvent", "tablePropsChangedEventListener"], [16, "headCellHoverEvent", "headCellHoverEventListener"], [16, "textAlignEvent", "textAlignEventListener"]]]);
|
|
87
|
+
function defineCustomElement() {
|
|
88
|
+
if (typeof customElements === "undefined") {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
const components = ["sdds-body-cell"];
|
|
92
|
+
components.forEach(tagName => { switch (tagName) {
|
|
93
|
+
case "sdds-body-cell":
|
|
94
|
+
if (!customElements.get(tagName)) {
|
|
95
|
+
customElements.define(tagName, TableBodyCell);
|
|
96
|
+
}
|
|
97
|
+
break;
|
|
98
|
+
} });
|
|
99
|
+
}
|
|
100
|
+
defineCustomElement();
|
|
101
|
+
|
|
102
|
+
export { TableBodyCell as T, defineCustomElement as d };
|
|
103
|
+
|
|
104
|
+
//# sourceMappingURL=table-body-cell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"table-body-cell.js","mappings":";;AAAA,MAAM,gBAAgB,GAAG,o0BAAo0B;;ACG71B,MAAM,kBAAkB,GAAsC;EAC5D,kBAAkB;EAClB,eAAe;EACf,YAAY;CACb,CAAC;MAMW,aAAa;;;;;;;0BAQ2B,KAAK;;yBAItB,KAAK;4BAEF,KAAK;yBAER,KAAK;sBAER,KAAK;2BAEA,KAAK;mBAEd,EAAE;;EAO7B,8BAA8B,CAAC,KAA0C;IACvE,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;MACzC,KAAK,CAAC,MAAM,CAAC,OAAO;SACjB,MAAM,CAAC,CAAC,WAAW,KAAK,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;SACjE,OAAO,CAAC,CAAC,WAAW;QACnB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,WAAW,EAAE;UAC5C,MAAM,IAAI,KAAK,CAAC,gCAAgC,WAAW,EAAE,CAAC,CAAC;SAChE;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;OAC/C,CAAC,CAAC;KACN;GACF;;EAID,0BAA0B,CAAC,KAAuB;IAChD,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAEpD,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE;MAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,KAAK,gBAAgB,CAAC;KACxD;GACF;;EAID,sBAAsB,CAAC,KAAuB;IAC5C,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAElE,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE;MAC/B,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,EAAE;QAChC,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC;OACzC;KACF;GACF;EAED,iBAAiB;IACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;GACrC;EAED,iBAAiB;IACf,kBAAkB,CAAC,OAAO,CAAC,CAAC,aAAa;MACvC,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;KACnD,CAAC,CAAC;GACJ;EAED,MAAM;IACJ,QACE,EAAC,IAAI,IACH,KAAK,EAAE;QACL,uBAAuB,EAAE,IAAI;QAC7B,8BAA8B,EAAE,IAAI,CAAC,aAAa;QAClD,qBAAqB,EAAE,IAAI,CAAC,aAAa;QACzC,qBAAqB,EAAE,IAAI,CAAC,gBAAgB;QAC5C,0BAA0B,EAAE,IAAI,CAAC,UAAU;QAC3C,mCAAmC,EAAE,IAAI,CAAC,cAAc;OACzD,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAExC,IAAI,CAAC,SAAS,EACf,eAAQ,CACH,EACP;GACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["./src/components/data-table/table-body-cell/table-body-cell.scss?tag=sdds-body-cell&encapsulation=shadow","./src/components/data-table/table-body-cell/table-body-cell.tsx"],"sourcesContent":["@import '../../../mixins/box-sizing';\n\n:host(.sdds-table__body-cell) {\n @include sdds-box-sizing;\n\n font: var(--sdds-detail-02);\n letter-spacing: var(--sdds-detail-02-ls);\n display: table-cell;\n box-sizing: border-box;\n color: var(--sdds-data-table-color);\n padding: var(--sdds-spacing-element-16);\n min-width: 192px;\n vertical-align: top;\n background-color: transparent;\n transition: background-color 200ms ease;\n}\n\n:host(.sdds-table__body-cell--no-padding) {\n padding: 0;\n}\n\n:host(.sdds-table__body-cell--hover) {\n background-color: var(--sdds-data-table-body-cell-background-hover);\n}\n\n:host(.sdds-table__compact) {\n padding: var(--sdds-spacing-element-8) var(--sdds-spacing-element-16);\n}\n\n:host(.sdds-table--divider) {\n border-right: 1px solid var(--sdds-data-table-divider);\n}\n\n:host(.sdds-table--divider:last-of-type) {\n border-right: none;\n}\n\n:host(.sdds-table--no-min-width) {\n min-width: unset;\n}\n","import { Component, Element, h, Host, Listen, Prop, State } from '@stencil/core';\nimport { TablePropsChangedEvent } from '../table/table';\n\nconst relevantTableProps: TablePropsChangedEvent['changed'] = [\n 'verticalDividers',\n 'compactDesign',\n 'noMinWidth',\n];\n@Component({\n tag: 'sdds-body-cell',\n styleUrl: 'table-body-cell.scss',\n shadow: true,\n})\nexport class TableBodyCell {\n /** Value that will be presented as text inside a cell */\n @Prop({ reflect: true }) cellValue: string | number;\n\n /** Passing same cell key for all body cells which is used in head cell enables features of text align and hovering */\n @Prop({ reflect: true }) cellKey: any;\n\n /** Disables internal padding. Useful when passing other components to cell. */\n @Prop({ reflect: true }) disablePadding: boolean = false;\n\n @State() textAlignState: string;\n\n @State() activeSorting: boolean = false;\n\n @State() verticalDividers: boolean = false;\n\n @State() compactDesign: boolean = false;\n\n @State() noMinWidth: boolean = false;\n\n @State() whiteBackground: boolean = false;\n\n @State() tableId: string = '';\n\n @Element() host: HTMLElement;\n\n tableEl: HTMLSddsTableElement;\n\n @Listen('tablePropsChangedEvent', { target: 'body' })\n tablePropsChangedEventListener(event: CustomEvent<TablePropsChangedEvent>) {\n if (this.tableId === event.detail.tableId) {\n event.detail.changed\n .filter((changedProp) => relevantTableProps.includes(changedProp))\n .forEach((changedProp) => {\n if (typeof this[changedProp] === 'undefined') {\n throw new Error(`Table prop is not supported: ${changedProp}`);\n }\n this[changedProp] = event.detail[changedProp];\n });\n }\n }\n\n // Listen to headKey from data-table-header-element\n @Listen('headCellHoverEvent', { target: 'body' })\n headCellHoverEventListener(event: CustomEvent<any>) {\n const [receivedID, receivedKeyValue] = event.detail;\n\n if (this.tableId === receivedID) {\n this.activeSorting = this.cellKey === receivedKeyValue;\n }\n }\n\n // Listen to textAlignEvent from data-table-header-element\n @Listen('textAlignEvent', { target: 'body' })\n textAlignEventListener(event: CustomEvent<any>) {\n const [receivedID, receivedKey, receivedTextAlign] = event.detail;\n\n if (this.tableId === receivedID) {\n if (this.cellKey === receivedKey) {\n this.textAlignState = receivedTextAlign;\n }\n }\n }\n\n connectedCallback() {\n this.tableEl = this.host.closest('sdds-table');\n this.tableId = this.tableEl.tableId;\n }\n\n componentWillLoad() {\n relevantTableProps.forEach((tablePropName) => {\n this[tablePropName] = this.tableEl[tablePropName];\n });\n }\n\n render() {\n return (\n <Host\n class={{\n 'sdds-table__body-cell': true,\n 'sdds-table__body-cell--hover': this.activeSorting,\n 'sdds-table__compact': this.compactDesign,\n 'sdds-table--divider': this.verticalDividers,\n 'sdds-table--no-min-width': this.noMinWidth,\n 'sdds-table__body-cell--no-padding': this.disablePadding,\n }}\n style={{ textAlign: this.textAlignState }}\n >\n {this.cellValue}\n <slot />\n </Host>\n );\n }\n}\n"],"version":3}
|