@govtechsg/sgds-web-component 3.10.0-rc.4 → 3.10.0
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/base/select-element.d.ts +0 -1
- package/base/select-element.js +0 -1
- package/base/select-element.js.map +1 -1
- package/components/Checkbox/index.umd.min.js +3 -3
- package/components/Checkbox/index.umd.min.js.map +1 -1
- package/components/Checkbox/sgds-checkbox-group.d.ts +0 -1
- package/components/Checkbox/sgds-checkbox-group.js +0 -1
- package/components/Checkbox/sgds-checkbox-group.js.map +1 -1
- package/components/Checkbox/sgds-checkbox.d.ts +0 -1
- package/components/Checkbox/sgds-checkbox.js +0 -1
- package/components/Checkbox/sgds-checkbox.js.map +1 -1
- package/components/ComboBox/index.umd.min.js +225 -225
- package/components/ComboBox/index.umd.min.js.map +1 -1
- package/components/Datepicker/index.umd.min.js +3 -3
- package/components/Datepicker/index.umd.min.js.map +1 -1
- package/components/Datepicker/sgds-datepicker.d.ts +0 -1
- package/components/Datepicker/sgds-datepicker.js +0 -1
- package/components/Datepicker/sgds-datepicker.js.map +1 -1
- package/components/FileUpload/index.umd.min.js +2 -2
- package/components/FileUpload/index.umd.min.js.map +1 -1
- package/components/FileUpload/sgds-file-upload.d.ts +0 -1
- package/components/FileUpload/sgds-file-upload.js +0 -1
- package/components/FileUpload/sgds-file-upload.js.map +1 -1
- package/components/Input/index.umd.min.js +2 -2
- package/components/Input/index.umd.min.js.map +1 -1
- package/components/Input/sgds-input.d.ts +0 -1
- package/components/Input/sgds-input.js +0 -1
- package/components/Input/sgds-input.js.map +1 -1
- package/components/QuantityToggle/index.umd.min.js +3 -3
- package/components/QuantityToggle/index.umd.min.js.map +1 -1
- package/components/QuantityToggle/sgds-quantity-toggle.d.ts +0 -1
- package/components/QuantityToggle/sgds-quantity-toggle.js +0 -1
- package/components/QuantityToggle/sgds-quantity-toggle.js.map +1 -1
- package/components/Radio/index.umd.min.js +6 -6
- package/components/Radio/index.umd.min.js.map +1 -1
- package/components/Radio/sgds-radio-group.d.ts +0 -1
- package/components/Radio/sgds-radio-group.js +0 -1
- package/components/Radio/sgds-radio-group.js.map +1 -1
- package/components/Select/index.umd.min.js +2 -2
- package/components/Select/index.umd.min.js.map +1 -1
- package/components/SystemBanner/index.umd.min.js +2 -2
- package/components/SystemBanner/index.umd.min.js.map +1 -1
- package/components/SystemBanner/sgds-system-banner.d.ts +2 -2
- package/components/SystemBanner/sgds-system-banner.js +5 -5
- package/components/SystemBanner/sgds-system-banner.js.map +1 -1
- package/components/Table/index.umd.min.js +62 -17
- package/components/Table/index.umd.min.js.map +1 -1
- package/components/Table/sgds-table-cell.js +1 -1
- package/components/Table/sgds-table-cell.js.map +1 -1
- package/components/Table/sgds-table-head.d.ts +2 -5
- package/components/Table/sgds-table-head.js +24 -15
- package/components/Table/sgds-table-head.js.map +1 -1
- package/components/Table/sgds-table.d.ts +41 -6
- package/components/Table/sgds-table.js +57 -15
- package/components/Table/sgds-table.js.map +1 -1
- package/components/Table/table-cell.js +1 -1
- package/components/Table/table-context.d.ts +3 -0
- package/components/Table/table-context.js +6 -0
- package/components/Table/table-context.js.map +1 -0
- package/components/Table/table-head.js +1 -1
- package/components/Table/table.js +1 -1
- package/components/Textarea/index.umd.min.js +6 -6
- package/components/Textarea/index.umd.min.js.map +1 -1
- package/components/Textarea/sgds-textarea.d.ts +0 -1
- package/components/Textarea/sgds-textarea.js +0 -1
- package/components/Textarea/sgds-textarea.js.map +1 -1
- package/components/index.umd.min.js +31 -27
- package/components/index.umd.min.js.map +1 -1
- package/index.umd.min.js +616 -612
- package/index.umd.min.js.map +1 -1
- package/package.json +1 -1
- package/react/base/select-element.cjs.js +0 -1
- package/react/base/select-element.cjs.js.map +1 -1
- package/react/base/select-element.js +0 -1
- package/react/base/select-element.js.map +1 -1
- package/react/components/Checkbox/sgds-checkbox-group.cjs.js +0 -1
- package/react/components/Checkbox/sgds-checkbox-group.cjs.js.map +1 -1
- package/react/components/Checkbox/sgds-checkbox-group.js +0 -1
- package/react/components/Checkbox/sgds-checkbox-group.js.map +1 -1
- package/react/components/Checkbox/sgds-checkbox.cjs.js +0 -1
- package/react/components/Checkbox/sgds-checkbox.cjs.js.map +1 -1
- package/react/components/Checkbox/sgds-checkbox.js +0 -1
- package/react/components/Checkbox/sgds-checkbox.js.map +1 -1
- package/react/components/Datepicker/sgds-datepicker.cjs.js +0 -1
- package/react/components/Datepicker/sgds-datepicker.cjs.js.map +1 -1
- package/react/components/Datepicker/sgds-datepicker.js +0 -1
- package/react/components/Datepicker/sgds-datepicker.js.map +1 -1
- package/react/components/FileUpload/sgds-file-upload.cjs.js +0 -1
- package/react/components/FileUpload/sgds-file-upload.cjs.js.map +1 -1
- package/react/components/FileUpload/sgds-file-upload.js +0 -1
- package/react/components/FileUpload/sgds-file-upload.js.map +1 -1
- package/react/components/Input/sgds-input.cjs.js +0 -1
- package/react/components/Input/sgds-input.cjs.js.map +1 -1
- package/react/components/Input/sgds-input.js +0 -1
- package/react/components/Input/sgds-input.js.map +1 -1
- package/react/components/QuantityToggle/sgds-quantity-toggle.cjs.js +0 -1
- package/react/components/QuantityToggle/sgds-quantity-toggle.cjs.js.map +1 -1
- package/react/components/QuantityToggle/sgds-quantity-toggle.js +0 -1
- package/react/components/QuantityToggle/sgds-quantity-toggle.js.map +1 -1
- package/react/components/Radio/sgds-radio-group.cjs.js +0 -1
- package/react/components/Radio/sgds-radio-group.cjs.js.map +1 -1
- package/react/components/Radio/sgds-radio-group.js +0 -1
- package/react/components/Radio/sgds-radio-group.js.map +1 -1
- package/react/components/SystemBanner/sgds-system-banner.cjs.js +5 -5
- package/react/components/SystemBanner/sgds-system-banner.cjs.js.map +1 -1
- package/react/components/SystemBanner/sgds-system-banner.js +5 -5
- package/react/components/SystemBanner/sgds-system-banner.js.map +1 -1
- package/react/components/Table/sgds-table-cell.cjs.js +1 -1
- package/react/components/Table/sgds-table-cell.cjs.js.map +1 -1
- package/react/components/Table/sgds-table-cell.js +1 -1
- package/react/components/Table/sgds-table-cell.js.map +1 -1
- package/react/components/Table/sgds-table-head.cjs.js +24 -15
- package/react/components/Table/sgds-table-head.cjs.js.map +1 -1
- package/react/components/Table/sgds-table-head.js +24 -15
- package/react/components/Table/sgds-table-head.js.map +1 -1
- package/react/components/Table/sgds-table.cjs.js +56 -14
- package/react/components/Table/sgds-table.cjs.js.map +1 -1
- package/react/components/Table/sgds-table.js +57 -15
- package/react/components/Table/sgds-table.js.map +1 -1
- package/react/components/Table/table-cell.cjs.js +1 -1
- package/react/components/Table/table-cell.js +1 -1
- package/react/components/Table/table-context.cjs.js +11 -0
- package/react/components/Table/table-context.cjs.js.map +1 -0
- package/react/components/Table/table-context.js +7 -0
- package/react/components/Table/table-context.js.map +1 -0
- package/react/components/Table/table-head.cjs.js +1 -1
- package/react/components/Table/table-head.js +1 -1
- package/react/components/Table/table.cjs.js +1 -1
- package/react/components/Table/table.js +1 -1
- package/react/components/Textarea/sgds-textarea.cjs.js +0 -1
- package/react/components/Textarea/sgds-textarea.cjs.js.map +1 -1
- package/react/components/Textarea/sgds-textarea.js +0 -1
- package/react/components/Textarea/sgds-textarea.js.map +1 -1
- package/react/utils/inputValidationController.cjs.js +2 -2
- package/react/utils/inputValidationController.cjs.js.map +1 -1
- package/react/utils/inputValidationController.js +2 -2
- package/react/utils/inputValidationController.js.map +1 -1
- package/react/utils/validatorMixin.cjs.js +10 -13
- package/react/utils/validatorMixin.cjs.js.map +1 -1
- package/react/utils/validatorMixin.js +10 -13
- package/react/utils/validatorMixin.js.map +1 -1
- package/utils/inputValidationController.d.ts +1 -1
- package/utils/inputValidationController.js +2 -2
- package/utils/inputValidationController.js.map +1 -1
- package/utils/validatorMixin.js +10 -13
- package/utils/validatorMixin.js.map +1 -1
|
@@ -13,7 +13,7 @@ class SgdsTableCell extends SgdsElement {
|
|
|
13
13
|
this.setAttribute("role", "cell");
|
|
14
14
|
}
|
|
15
15
|
render() {
|
|
16
|
-
return html
|
|
16
|
+
return html `<div class="table-cell"><slot></slot></div>`;
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
SgdsTableCell.styles = [...SgdsElement.styles, css_248z];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sgds-table-cell.js","sources":["../../../src/components/Table/sgds-table-cell.ts"],"sourcesContent":["import { html } from \"lit\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport tableCellStyle from \"./table-cell.css\";\n\n/**\n * @summary Table cell is used for presenting individual data values, interactive elements, or custom content within a table row.\n *\n * @slot - Insert any elements to be rendered as the cell’s content.\n */\nexport class SgdsTableCell extends SgdsElement {\n static styles = [...SgdsElement.styles, tableCellStyle];\n\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute(\"role\", \"cell\");\n }\n\n render() {\n return html
|
|
1
|
+
{"version":3,"file":"sgds-table-cell.js","sources":["../../../src/components/Table/sgds-table-cell.ts"],"sourcesContent":["import { html } from \"lit\";\n\nimport SgdsElement from \"../../base/sgds-element\";\nimport tableCellStyle from \"./table-cell.css\";\n\n/**\n * @summary Table cell is used for presenting individual data values, interactive elements, or custom content within a table row.\n *\n * @slot - Insert any elements to be rendered as the cell’s content.\n */\nexport class SgdsTableCell extends SgdsElement {\n static styles = [...SgdsElement.styles, tableCellStyle];\n\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute(\"role\", \"cell\");\n }\n\n render() {\n return html`<div class=\"table-cell\"><slot></slot></div>`;\n }\n}\n\nexport default SgdsTableCell;\n"],"names":["tableCellStyle"],"mappings":";;;;AAKA;;;;AAIG;AACG,MAAO,aAAc,SAAQ,WAAW,CAAA;IAG5C,iBAAiB,GAAA;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACnC;IAED,MAAM,GAAA;QACJ,OAAO,IAAI,CAAA,CAAA,2CAAA,CAA6C,CAAC;KAC1D;;AATM,aAAM,CAAA,MAAA,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,EAAEA,QAAc,CAAC;;;;"}
|
|
@@ -6,12 +6,9 @@ import SgdsElement from "../../base/sgds-element";
|
|
|
6
6
|
*/
|
|
7
7
|
export declare class SgdsTableHead extends SgdsElement {
|
|
8
8
|
static styles: import("lit").CSSResult[];
|
|
9
|
-
|
|
10
|
-
* To indicate if the header will have a darker bottom border style
|
|
11
|
-
*/
|
|
12
|
-
private border;
|
|
13
|
-
_handleBorderChange(): void;
|
|
9
|
+
private _headerBackground;
|
|
14
10
|
connectedCallback(): void;
|
|
11
|
+
_handleHeaderBackground(): void;
|
|
15
12
|
render(): import("lit").TemplateResult<1>;
|
|
16
13
|
}
|
|
17
14
|
export default SgdsTableHead;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { __decorate } from 'tslib';
|
|
2
2
|
import { html } from 'lit';
|
|
3
|
-
import { state } from 'lit/decorators.js';
|
|
4
3
|
import SgdsElement from '../../base/sgds-element.js';
|
|
5
|
-
import { watch } from '../../utils/watch.js';
|
|
6
4
|
import css_248z from './table-head.js';
|
|
5
|
+
import { consume } from '@lit/context';
|
|
6
|
+
import { TableHeaderBackgroundContext } from './table-context.js';
|
|
7
|
+
import { state } from 'lit/decorators.js';
|
|
8
|
+
import { classMap } from 'lit/directives/class-map.js';
|
|
9
|
+
import { watch } from '../../utils/watch.js';
|
|
7
10
|
|
|
8
11
|
/**
|
|
9
12
|
* @summary Table head represents a table header cell that identifies a group of information within the table.
|
|
@@ -13,31 +16,37 @@ import css_248z from './table-head.js';
|
|
|
13
16
|
class SgdsTableHead extends SgdsElement {
|
|
14
17
|
constructor() {
|
|
15
18
|
super(...arguments);
|
|
16
|
-
|
|
17
|
-
* To indicate if the header will have a darker bottom border style
|
|
18
|
-
*/
|
|
19
|
-
this.border = false;
|
|
20
|
-
}
|
|
21
|
-
_handleBorderChange() {
|
|
22
|
-
var _a, _b;
|
|
23
|
-
this.border = ((_b = (_a = this.nextElementSibling) === null || _a === void 0 ? void 0 : _a.tagName) === null || _b === void 0 ? void 0 : _b.toLowerCase()) !== "sgds-table-cell";
|
|
24
|
-
this.border ? this.setAttribute("border", "true") : this.removeAttribute("border");
|
|
19
|
+
this._headerBackground = false;
|
|
25
20
|
}
|
|
26
21
|
connectedCallback() {
|
|
27
22
|
super.connectedCallback();
|
|
28
23
|
this.setAttribute("role", "columnheader");
|
|
29
24
|
}
|
|
25
|
+
_handleHeaderBackground() {
|
|
26
|
+
if (this._headerBackground)
|
|
27
|
+
this.setAttribute("headerBackground", "true");
|
|
28
|
+
else
|
|
29
|
+
this.removeAttribute("headerBackground");
|
|
30
|
+
}
|
|
30
31
|
render() {
|
|
31
|
-
return html `<
|
|
32
|
+
return html `<div
|
|
33
|
+
class=${classMap({
|
|
34
|
+
"table-head": true,
|
|
35
|
+
"header-background": this._headerBackground
|
|
36
|
+
})}
|
|
37
|
+
>
|
|
38
|
+
<slot></slot>
|
|
39
|
+
</div>`;
|
|
32
40
|
}
|
|
33
41
|
}
|
|
34
42
|
SgdsTableHead.styles = [...SgdsElement.styles, css_248z];
|
|
35
43
|
__decorate([
|
|
44
|
+
consume({ context: TableHeaderBackgroundContext, subscribe: true }),
|
|
36
45
|
state()
|
|
37
|
-
], SgdsTableHead.prototype, "
|
|
46
|
+
], SgdsTableHead.prototype, "_headerBackground", void 0);
|
|
38
47
|
__decorate([
|
|
39
|
-
watch("
|
|
40
|
-
], SgdsTableHead.prototype, "
|
|
48
|
+
watch("_headerBackground")
|
|
49
|
+
], SgdsTableHead.prototype, "_handleHeaderBackground", null);
|
|
41
50
|
|
|
42
51
|
export { SgdsTableHead, SgdsTableHead as default };
|
|
43
52
|
//# sourceMappingURL=sgds-table-head.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sgds-table-head.js","sources":["../../../src/components/Table/sgds-table-head.ts"],"sourcesContent":["import { html } from \"lit\";\nimport {
|
|
1
|
+
{"version":3,"file":"sgds-table-head.js","sources":["../../../src/components/Table/sgds-table-head.ts"],"sourcesContent":["import { html } from \"lit\";\n\nimport SgdsElement from \"../../base/sgds-element\";\nimport tableHeadStyle from \"./table-head.css\";\n\nimport { consume } from \"@lit/context\";\nimport { TableHeaderBackgroundContext } from \"./table-context\";\nimport { state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { watch } from \"../../utils/watch\";\n\n/**\n * @summary Table head represents a table header cell that identifies a group of information within the table.\n *\n * @slot - Place any elements inside to display as the header content.\n */\n\nexport class SgdsTableHead extends SgdsElement {\n static styles = [...SgdsElement.styles, tableHeadStyle];\n\n @consume({ context: TableHeaderBackgroundContext, subscribe: true })\n @state()\n private _headerBackground = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute(\"role\", \"columnheader\");\n }\n\n @watch(\"_headerBackground\")\n _handleHeaderBackground() {\n if (this._headerBackground) this.setAttribute(\"headerBackground\", \"true\");\n else this.removeAttribute(\"headerBackground\");\n }\n\n render() {\n return html`<div\n class=${classMap({\n \"table-head\": true,\n \"header-background\": this._headerBackground\n })}\n >\n <slot></slot>\n </div>`;\n }\n}\n\nexport default SgdsTableHead;\n"],"names":["tableHeadStyle"],"mappings":";;;;;;;;;;AAWA;;;;AAIG;AAEG,MAAO,aAAc,SAAQ,WAAW,CAAA;AAA9C,IAAA,WAAA,GAAA;;QAKU,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;KAuBnC;IArBC,iBAAiB,GAAA;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;KAC3C;IAGD,uBAAuB,GAAA;QACrB,IAAI,IAAI,CAAC,iBAAiB;AAAE,YAAA,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;;AACrE,YAAA,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;KAC/C;IAED,MAAM,GAAA;AACJ,QAAA,OAAO,IAAI,CAAA,CAAA;AACD,YAAA,EAAA,QAAQ,CAAC;AACf,YAAA,YAAY,EAAE,IAAI;YAClB,mBAAmB,EAAE,IAAI,CAAC,iBAAiB;SAC5C,CAAC,CAAA;;;WAGG,CAAC;KACT;;AA1BM,aAAM,CAAA,MAAA,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,EAAEA,QAAc,CAAzC,CAA2C;AAIhD,UAAA,CAAA;IAFP,OAAO,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACnE,IAAA,KAAK,EAAE;AAC0B,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAQlC,UAAA,CAAA;IADC,KAAK,CAAC,mBAAmB,CAAC;AAI1B,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,yBAAA,EAAA,IAAA,CAAA;;;;"}
|
|
@@ -9,27 +9,62 @@ export type HeaderPosition = "horizontal" | "vertical" | "both";
|
|
|
9
9
|
export declare class SgdsTable extends SgdsElement {
|
|
10
10
|
static styles: import("lit").CSSResult[];
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
12
|
+
* Specifies the responsive breakpoint for the table.
|
|
13
|
+
* Use "sm", "md", "lg", or "xl" to create responsive tables up to a particular breakpoint.
|
|
14
|
+
* From that breakpoint and up, the table will behave normally and not scroll horizontally.
|
|
15
|
+
* Use "always" to make the table always responsive.
|
|
16
|
+
*
|
|
17
|
+
* (@deprecated) Deprecated since 3.9.0 legacy from v2
|
|
18
|
+
* @type {"sm" | "md" | "lg" | "xl" | "always"}
|
|
13
19
|
*/
|
|
14
20
|
responsive: "sm" | "md" | "lg" | "xl" | "always";
|
|
15
21
|
/**
|
|
16
|
-
*
|
|
22
|
+
* Array of strings to populate row header cells.
|
|
23
|
+
* @type {string[]}
|
|
17
24
|
*/
|
|
18
25
|
rowHeader: string[];
|
|
19
26
|
/**
|
|
20
|
-
*
|
|
27
|
+
* Array of strings to populate column header cells.
|
|
28
|
+
* Only used when `headerPosition` is set to "vertical" or "both".
|
|
29
|
+
* @type {string[]}
|
|
21
30
|
*/
|
|
22
31
|
columnHeader: string[];
|
|
23
32
|
/**
|
|
24
|
-
*
|
|
33
|
+
* Two-dimensional array of strings or numbers to populate table data cells.
|
|
34
|
+
* @type {Array<(string | number)[]>}
|
|
25
35
|
*/
|
|
26
36
|
tableData: Array<(string | number)[]>;
|
|
27
37
|
/**
|
|
28
|
-
* Defines the placement of headers in the table
|
|
38
|
+
* Defines the placement of headers in the table.
|
|
39
|
+
* Use "horizontal" for top headers only, "vertical" for left headers only,
|
|
40
|
+
* or "both" for both row and column headers.
|
|
41
|
+
* @type {"horizontal" | "vertical" | "both"}
|
|
42
|
+
* @default "horizontal"
|
|
29
43
|
*/
|
|
30
44
|
headerPosition: HeaderPosition;
|
|
31
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* Enables background styling on horizontal header rows.
|
|
47
|
+
* When true, applies background color to header cells for better visual distinction.
|
|
48
|
+
* @type {boolean}
|
|
49
|
+
* @default false
|
|
50
|
+
*/
|
|
51
|
+
headerBackground: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Enables borders around table cells.
|
|
54
|
+
* When true, displays visible borders between all table cells.
|
|
55
|
+
* @type {boolean}
|
|
56
|
+
* @default false
|
|
57
|
+
*/
|
|
58
|
+
tableBorder: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Indicates the presence of the default slot.
|
|
61
|
+
* Used for server-side rendering to determine table structure.
|
|
62
|
+
* @type {boolean}
|
|
63
|
+
* @internal
|
|
64
|
+
* @default false
|
|
65
|
+
*/
|
|
32
66
|
hasDefaultSlot: boolean;
|
|
67
|
+
private _headerBackground;
|
|
33
68
|
/** @internal */
|
|
34
69
|
private readonly hasSlotController;
|
|
35
70
|
connectedCallback(): void;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { __decorate } from 'tslib';
|
|
2
2
|
import { html } from 'lit';
|
|
3
|
-
import { property } from 'lit/decorators.js';
|
|
3
|
+
import { property, state } from 'lit/decorators.js';
|
|
4
4
|
import { classMap } from 'lit/directives/class-map.js';
|
|
5
5
|
import SgdsElement from '../../base/sgds-element.js';
|
|
6
6
|
import css_248z from './table.js';
|
|
7
7
|
import { HasSlotController } from '../../utils/slot.js';
|
|
8
|
+
import { provide } from '@lit/context';
|
|
9
|
+
import { TableHeaderBackgroundContext } from './table-context.js';
|
|
8
10
|
|
|
9
11
|
/**
|
|
10
12
|
* @summary Table is used for displaying collections of data in organized rows and columns.
|
|
@@ -16,23 +18,52 @@ class SgdsTable extends SgdsElement {
|
|
|
16
18
|
constructor() {
|
|
17
19
|
super(...arguments);
|
|
18
20
|
/**
|
|
19
|
-
*
|
|
21
|
+
* Array of strings to populate row header cells.
|
|
22
|
+
* @type {string[]}
|
|
20
23
|
*/
|
|
21
24
|
this.rowHeader = [];
|
|
22
25
|
/**
|
|
23
|
-
*
|
|
26
|
+
* Array of strings to populate column header cells.
|
|
27
|
+
* Only used when `headerPosition` is set to "vertical" or "both".
|
|
28
|
+
* @type {string[]}
|
|
24
29
|
*/
|
|
25
30
|
this.columnHeader = [];
|
|
26
31
|
/**
|
|
27
|
-
*
|
|
32
|
+
* Two-dimensional array of strings or numbers to populate table data cells.
|
|
33
|
+
* @type {Array<(string | number)[]>}
|
|
28
34
|
*/
|
|
29
35
|
this.tableData = [];
|
|
30
36
|
/**
|
|
31
|
-
* Defines the placement of headers in the table
|
|
37
|
+
* Defines the placement of headers in the table.
|
|
38
|
+
* Use "horizontal" for top headers only, "vertical" for left headers only,
|
|
39
|
+
* or "both" for both row and column headers.
|
|
40
|
+
* @type {"horizontal" | "vertical" | "both"}
|
|
41
|
+
* @default "horizontal"
|
|
32
42
|
*/
|
|
33
43
|
this.headerPosition = "horizontal";
|
|
34
|
-
/**
|
|
44
|
+
/**
|
|
45
|
+
* Enables background styling on horizontal header rows.
|
|
46
|
+
* When true, applies background color to header cells for better visual distinction.
|
|
47
|
+
* @type {boolean}
|
|
48
|
+
* @default false
|
|
49
|
+
*/
|
|
50
|
+
this.headerBackground = false;
|
|
51
|
+
/**
|
|
52
|
+
* Enables borders around table cells.
|
|
53
|
+
* When true, displays visible borders between all table cells.
|
|
54
|
+
* @type {boolean}
|
|
55
|
+
* @default false
|
|
56
|
+
*/
|
|
57
|
+
this.tableBorder = false;
|
|
58
|
+
/**
|
|
59
|
+
* Indicates the presence of the default slot.
|
|
60
|
+
* Used for server-side rendering to determine table structure.
|
|
61
|
+
* @type {boolean}
|
|
62
|
+
* @internal
|
|
63
|
+
* @default false
|
|
64
|
+
*/
|
|
35
65
|
this.hasDefaultSlot = false;
|
|
66
|
+
this._headerBackground = false;
|
|
36
67
|
/** @internal */
|
|
37
68
|
this.hasSlotController = new HasSlotController(this, "[default]");
|
|
38
69
|
}
|
|
@@ -42,19 +73,20 @@ class SgdsTable extends SgdsElement {
|
|
|
42
73
|
updated() {
|
|
43
74
|
if (!this.hasDefaultSlot)
|
|
44
75
|
this.hasDefaultSlot = this.hasSlotController.test("[default]");
|
|
76
|
+
this._headerBackground = this.headerBackground;
|
|
45
77
|
}
|
|
46
78
|
_renderTable() {
|
|
47
79
|
if (this.headerPosition === "horizontal") {
|
|
48
80
|
return html `
|
|
49
81
|
<thead>
|
|
50
82
|
<tr>
|
|
51
|
-
${this.rowHeader.map((header) => html ` <th>${header}</th> `)}
|
|
83
|
+
${this.rowHeader.map((header) => html ` <th><div>${header}</div></th> `)}
|
|
52
84
|
</tr>
|
|
53
85
|
</thead>
|
|
54
86
|
<tbody>
|
|
55
87
|
${this.tableData.map(row => html `
|
|
56
88
|
<tr>
|
|
57
|
-
${row.map((cell) => html `<td>${cell}</td>`)}
|
|
89
|
+
${row.map((cell) => html `<td><div>${cell}</div></td>`)}
|
|
58
90
|
</tr>
|
|
59
91
|
`)}
|
|
60
92
|
</tbody>
|
|
@@ -64,15 +96,15 @@ class SgdsTable extends SgdsElement {
|
|
|
64
96
|
return html `
|
|
65
97
|
<thead>
|
|
66
98
|
<tr>
|
|
67
|
-
<th></th>
|
|
68
|
-
${this.rowHeader.map((header) => html ` <th>${header}</th> `)}
|
|
99
|
+
<th><div></div></th>
|
|
100
|
+
${this.rowHeader.map((header) => html ` <th><div>${header}</div></th> `)}
|
|
69
101
|
</tr>
|
|
70
102
|
</thead>
|
|
71
103
|
<tbody>
|
|
72
104
|
${this.tableData.map((row, index) => html `
|
|
73
105
|
<tr>
|
|
74
|
-
<th>${this.columnHeader[index]}</th>
|
|
75
|
-
${row.map((cell) => html `<td>${cell}</td>`)}
|
|
106
|
+
<th><div>${this.columnHeader[index]}</div></th>
|
|
107
|
+
${row.map((cell) => html `<td><div>${cell}</div></td>`)}
|
|
76
108
|
</tr>
|
|
77
109
|
`)}
|
|
78
110
|
</tbody>
|
|
@@ -83,8 +115,8 @@ class SgdsTable extends SgdsElement {
|
|
|
83
115
|
return html `
|
|
84
116
|
${flippedTableData.map((row, index) => html `
|
|
85
117
|
<tr>
|
|
86
|
-
<th>${this.columnHeader[index]}</th>
|
|
87
|
-
${row.map((cell) => html `<td>${cell}</td>`)}
|
|
118
|
+
<th><div>${this.columnHeader[index]}</div></th>
|
|
119
|
+
${row.map((cell) => html `<td><div>${cell}</div></td>`)}
|
|
88
120
|
</tr>
|
|
89
121
|
`)}
|
|
90
122
|
`;
|
|
@@ -102,7 +134,7 @@ class SgdsTable extends SgdsElement {
|
|
|
102
134
|
})}
|
|
103
135
|
tabindex="0"
|
|
104
136
|
>
|
|
105
|
-
<slot id="table-slot" class
|
|
137
|
+
<slot id="table-slot" class=${classMap({ table: true, "no-border": !this.hasDefaultSlot })}></slot>
|
|
106
138
|
|
|
107
139
|
${!this.hasDefaultSlot
|
|
108
140
|
? html `<table class="table">
|
|
@@ -129,9 +161,19 @@ __decorate([
|
|
|
129
161
|
__decorate([
|
|
130
162
|
property({ type: String })
|
|
131
163
|
], SgdsTable.prototype, "headerPosition", void 0);
|
|
164
|
+
__decorate([
|
|
165
|
+
property({ type: Boolean })
|
|
166
|
+
], SgdsTable.prototype, "headerBackground", void 0);
|
|
167
|
+
__decorate([
|
|
168
|
+
property({ type: Boolean })
|
|
169
|
+
], SgdsTable.prototype, "tableBorder", void 0);
|
|
132
170
|
__decorate([
|
|
133
171
|
property({ type: Boolean })
|
|
134
172
|
], SgdsTable.prototype, "hasDefaultSlot", void 0);
|
|
173
|
+
__decorate([
|
|
174
|
+
provide({ context: TableHeaderBackgroundContext }),
|
|
175
|
+
state()
|
|
176
|
+
], SgdsTable.prototype, "_headerBackground", void 0);
|
|
135
177
|
|
|
136
178
|
export { SgdsTable, SgdsTable as default };
|
|
137
179
|
//# sourceMappingURL=sgds-table.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sgds-table.js","sources":["../../../src/components/Table/sgds-table.ts"],"sourcesContent":["import { html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport SgdsElement from \"../../base/sgds-element\";\n\nimport tableStyle from \"./table.css\";\nimport { HasSlotController } from \"../../utils/slot\";\n\nexport type HeaderPosition = \"horizontal\" | \"vertical\" | \"both\";\n\n/**\n * @summary Table is used for displaying collections of data in organized rows and columns.\n * It supports two rendering methods: supply an array of data for automatic table generation, or use the slot to insert custom table elements for full structural control.\n *\n * @slot - Insert custom table elements (such as rows, headers, or cells) to define the table structure manually.\n */\n\nexport class SgdsTable extends SgdsElement {\n static styles = [...SgdsElement.styles, tableStyle];\n\n /**\n * Use responsive=\"sm\", responsive=\"md\" , responsive=\"lg\", or responsive=\"xl\" as needed to create responsive tables up to a particular breakpoint. From that breakpoint and up, the table will behave normally and not scroll horizontally. Use reponsive=\"always\" to let table be always responsive\n */\n @property({ type: String, reflect: true }) responsive: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"always\";\n\n /**\n * Populate row header cells using Arrays\n */\n @property({ type: Array }) rowHeader: string[] = [];\n\n /**\n * Populate column header cells using Arrays only when <code>headerPosition=\"vertical\"</code> or <code>headerPosition=\"both\"</code>\n */\n @property({ type: Array }) columnHeader: string[] = [];\n\n /**\n * Populate data cells using Arrays\n */\n @property({ type: Array }) tableData: Array<(string | number)[]> = [];\n\n /**\n * Defines the placement of headers in the table (horizontal, vertical, or both)\n */\n @property({ type: String }) headerPosition: HeaderPosition = \"horizontal\";\n\n /** Used only for SSR to indicate the presence of the `default` slot. */\n @property({ type: Boolean }) hasDefaultSlot = false;\n\n /** @internal */\n private readonly hasSlotController = new HasSlotController(this, \"[default]\");\n\n connectedCallback() {\n super.connectedCallback();\n }\n\n updated() {\n if (!this.hasDefaultSlot) this.hasDefaultSlot = this.hasSlotController.test(\"[default]\");\n }\n\n private _renderTable() {\n if (this.headerPosition === \"horizontal\") {\n return html`\n <thead>\n <tr>\n ${this.rowHeader.map((header: string) => html` <th>${header}</th> `)}\n </tr>\n </thead>\n <tbody>\n ${this.tableData.map(\n row => html`\n <tr>\n ${row.map((cell: string) => html`<td>${cell}</td>`)}\n </tr>\n `\n )}\n </tbody>\n `;\n }\n\n if (this.headerPosition === \"both\") {\n return html`\n <thead>\n <tr>\n <th></th>\n ${this.rowHeader.map((header: string) => html` <th>${header}</th> `)}\n </tr>\n </thead>\n <tbody>\n ${this.tableData.map(\n (row, index) => html`\n <tr>\n <th>${this.columnHeader[index]}</th>\n ${row.map((cell: string) => html`<td>${cell}</td>`)}\n </tr>\n `\n )}\n </tbody>\n `;\n }\n\n if (this.headerPosition === \"vertical\") {\n const flippedTableData = this.tableData[0].map((_, colIndex) => this.tableData.map(row => row[colIndex]));\n\n return html`\n ${flippedTableData.map(\n (row, index) => html`\n <tr>\n <th>${this.columnHeader[index]}</th>\n ${row.map((cell: string) => html`<td>${cell}</td>`)}\n </tr>\n `\n )}\n `;\n }\n }\n\n render() {\n return html`\n <div\n class=${classMap({\n \"table-responsive\": this.responsive === \"always\",\n \"table-responsive-sm\": this.responsive === \"sm\",\n \"table-responsive-md\": this.responsive === \"md\",\n \"table-responsive-lg\": this.responsive === \"lg\",\n \"table-responsive-xl\": this.responsive === \"xl\"\n })}\n tabindex=\"0\"\n >\n <slot id=\"table-slot\" class=\"table\"></slot>\n\n ${!this.hasDefaultSlot\n ? html`<table class=\"table\">\n ${this._renderTable()}\n </table>`\n : \"\"}\n </div>\n `;\n }\n}\n\nexport default SgdsTable;\n"],"names":["tableStyle"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sgds-table.js","sources":["../../../src/components/Table/sgds-table.ts"],"sourcesContent":["import { html } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport SgdsElement from \"../../base/sgds-element\";\n\nimport tableStyle from \"./table.css\";\nimport { HasSlotController } from \"../../utils/slot\";\nimport { provide } from \"@lit/context\";\nimport { TableHeaderBackgroundContext } from \"./table-context\";\n\nexport type HeaderPosition = \"horizontal\" | \"vertical\" | \"both\";\n\n/**\n * @summary Table is used for displaying collections of data in organized rows and columns.\n * It supports two rendering methods: supply an array of data for automatic table generation, or use the slot to insert custom table elements for full structural control.\n *\n * @slot - Insert custom table elements (such as rows, headers, or cells) to define the table structure manually.\n */\n\nexport class SgdsTable extends SgdsElement {\n static styles = [...SgdsElement.styles, tableStyle];\n\n /**\n * Specifies the responsive breakpoint for the table.\n * Use \"sm\", \"md\", \"lg\", or \"xl\" to create responsive tables up to a particular breakpoint.\n * From that breakpoint and up, the table will behave normally and not scroll horizontally.\n * Use \"always\" to make the table always responsive.\n *\n * (@deprecated) Deprecated since 3.9.0 legacy from v2\n * @type {\"sm\" | \"md\" | \"lg\" | \"xl\" | \"always\"}\n */\n @property({ type: String, reflect: true }) responsive: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"always\";\n\n /**\n * Array of strings to populate row header cells.\n * @type {string[]}\n */\n @property({ type: Array }) rowHeader: string[] = [];\n\n /**\n * Array of strings to populate column header cells.\n * Only used when `headerPosition` is set to \"vertical\" or \"both\".\n * @type {string[]}\n */\n @property({ type: Array }) columnHeader: string[] = [];\n\n /**\n * Two-dimensional array of strings or numbers to populate table data cells.\n * @type {Array<(string | number)[]>}\n */\n @property({ type: Array }) tableData: Array<(string | number)[]> = [];\n\n /**\n * Defines the placement of headers in the table.\n * Use \"horizontal\" for top headers only, \"vertical\" for left headers only,\n * or \"both\" for both row and column headers.\n * @type {\"horizontal\" | \"vertical\" | \"both\"}\n * @default \"horizontal\"\n */\n @property({ type: String }) headerPosition: HeaderPosition = \"horizontal\";\n\n /**\n * Enables background styling on horizontal header rows.\n * When true, applies background color to header cells for better visual distinction.\n * @type {boolean}\n * @default false\n */\n @property({ type: Boolean }) headerBackground = false;\n\n /**\n * Enables borders around table cells.\n * When true, displays visible borders between all table cells.\n * @type {boolean}\n * @default false\n */\n @property({ type: Boolean }) tableBorder = false;\n\n /**\n * Indicates the presence of the default slot.\n * Used for server-side rendering to determine table structure.\n * @type {boolean}\n * @internal\n * @default false\n */\n @property({ type: Boolean }) hasDefaultSlot = false;\n\n @provide({ context: TableHeaderBackgroundContext })\n @state()\n private _headerBackground = false;\n\n /** @internal */\n private readonly hasSlotController = new HasSlotController(this, \"[default]\");\n\n connectedCallback() {\n super.connectedCallback();\n }\n\n updated() {\n if (!this.hasDefaultSlot) this.hasDefaultSlot = this.hasSlotController.test(\"[default]\");\n this._headerBackground = this.headerBackground;\n }\n\n private _renderTable() {\n if (this.headerPosition === \"horizontal\") {\n return html`\n <thead>\n <tr>\n ${this.rowHeader.map((header: string) => html` <th><div>${header}</div></th> `)}\n </tr>\n </thead>\n <tbody>\n ${this.tableData.map(\n row => html`\n <tr>\n ${row.map((cell: string) => html`<td><div>${cell}</div></td>`)}\n </tr>\n `\n )}\n </tbody>\n `;\n }\n\n if (this.headerPosition === \"both\") {\n return html`\n <thead>\n <tr>\n <th><div></div></th>\n ${this.rowHeader.map((header: string) => html` <th><div>${header}</div></th> `)}\n </tr>\n </thead>\n <tbody>\n ${this.tableData.map(\n (row, index) => html`\n <tr>\n <th><div>${this.columnHeader[index]}</div></th>\n ${row.map((cell: string) => html`<td><div>${cell}</div></td>`)}\n </tr>\n `\n )}\n </tbody>\n `;\n }\n\n if (this.headerPosition === \"vertical\") {\n const flippedTableData = this.tableData[0].map((_, colIndex) => this.tableData.map(row => row[colIndex]));\n\n return html`\n ${flippedTableData.map(\n (row, index) => html`\n <tr>\n <th><div>${this.columnHeader[index]}</div></th>\n ${row.map((cell: string) => html`<td><div>${cell}</div></td>`)}\n </tr>\n `\n )}\n `;\n }\n }\n\n render() {\n return html`\n <div\n class=${classMap({\n \"table-responsive\": this.responsive === \"always\",\n \"table-responsive-sm\": this.responsive === \"sm\",\n \"table-responsive-md\": this.responsive === \"md\",\n \"table-responsive-lg\": this.responsive === \"lg\",\n \"table-responsive-xl\": this.responsive === \"xl\"\n })}\n tabindex=\"0\"\n >\n <slot id=\"table-slot\" class=${classMap({ table: true, \"no-border\": !this.hasDefaultSlot })}></slot>\n\n ${!this.hasDefaultSlot\n ? html`<table class=\"table\">\n ${this._renderTable()}\n </table>`\n : \"\"}\n </div>\n `;\n }\n}\n\nexport default SgdsTable;\n"],"names":["tableStyle"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
2
|
|
|
3
|
-
var css_248z = css`:host{border-bottom:var(--sgds-border-width-1) solid var(--sgds-border-color-muted);display:table-cell;padding:var(--sgds-padding-
|
|
3
|
+
var css_248z = css`:host{border-bottom:var(--sgds-border-width-1) solid var(--sgds-border-color-muted);display:table-cell;vertical-align:middle}.table-cell{align-items:center;display:flex;min-height:var(--sgds-dimension-56);padding:var(--sgds-padding-sm) var(--sgds-padding-md)}`;
|
|
4
4
|
|
|
5
5
|
export { css_248z as default };
|
|
6
6
|
//# sourceMappingURL=table-cell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-context.js","sources":["../../../src/components/Table/table-context.ts"],"sourcesContent":["import { createContext } from \"@lit/context\";\n\nexport const TableHeaderBackgroundContext = createContext<boolean>(\"table-header-background\");\n"],"names":[],"mappings":";;MAEa,4BAA4B,GAAG,aAAa,CAAU,yBAAyB;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
2
|
|
|
3
|
-
var css_248z = css`:host{border-bottom:var(--sgds-border-width-1) solid var(--sgds-border-color-
|
|
3
|
+
var css_248z = css`:host{border-bottom:var(--sgds-border-width-1) solid var(--sgds-border-color-muted);display:table-cell;vertical-align:middle}:host([headerBackground]){background-color:var(--sgds-surface-raised)}.table-head{align-items:center;display:flex;font-weight:700;min-height:var(--sgds-dimension-56);padding:var(--sgds-padding-sm) var(--sgds-padding-md)}`;
|
|
4
4
|
|
|
5
5
|
export { css_248z as default };
|
|
6
6
|
//# sourceMappingURL=table-head.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
2
|
|
|
3
|
-
var css_248z = css`tbody,td,th,thead,tr{border:var(--sgds-border-width-0) solid;border-color:inherit}th{text-align:-webkit-match-parent}table{border-collapse:collapse;caption-side:bottom}.table{
|
|
3
|
+
var css_248z = css`tbody,td,th,thead,tr{border:var(--sgds-border-width-0) solid;border-color:inherit}th{text-align:-webkit-match-parent}table{border-collapse:collapse;caption-side:bottom}.table{display:table;width:100%}.hidden{display:none}.table>:not(caption) td,.table>:not(caption) th{border-bottom:var(--sgds-border-width-1) solid var(--sgds-border-color-muted)}.table>:not(caption) td>div,.table>:not(caption) th>div{align-items:center;display:flex;min-height:var(--sgds-dimension-56);padding:var(--sgds-padding-sm) var(--sgds-padding-md)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:first-child){border-top:var(--sgds-border-width-1) solid var(--sgds-border-color-emphasis)}.table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}:host([tableBorder]) .table{border:var(--sgds-border-width-1) solid;border-color:var(--sgds-border-color-muted);border-bottom:0}:host([tableBorder]) .table.no-border{border:0}:host([headerBackground]) th{background-color:var(--sgds-surface-raised)}@media (max-width:575.98px){.table-responsive-sm{-webkit-overflow-scrolling:touch;overflow-x:auto}}@media (max-width:767.98px){.table-responsive-md{-webkit-overflow-scrolling:touch;overflow-x:auto}}@media (max-width:991.98px){.table-responsive-lg{-webkit-overflow-scrolling:touch;overflow-x:auto}}@media (max-width:1199.98px){.table-responsive-xl{-webkit-overflow-scrolling:touch;overflow-x:auto}}@media (max-width:1399.98px){.table-responsive-xxl{-webkit-overflow-scrolling:touch;overflow-x:auto}}`;
|
|
4
4
|
|
|
5
5
|
export { css_248z as default };
|
|
6
6
|
//# sourceMappingURL=table.js.map
|