@govtechsg/sgds-web-component 3.24.1-rc.2 → 3.24.1-rc.3

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.
Files changed (40) hide show
  1. package/components/DataTable/index.umd.min.js +290 -286
  2. package/components/DataTable/index.umd.min.js.map +1 -1
  3. package/components/DataTable/sgds-data-table-cell.d.ts +2 -1
  4. package/components/DataTable/sgds-data-table-cell.js +10 -2
  5. package/components/DataTable/sgds-data-table-cell.js.map +1 -1
  6. package/components/DataTable/sgds-data-table-head.d.ts +2 -1
  7. package/components/DataTable/sgds-data-table-head.js +10 -2
  8. package/components/DataTable/sgds-data-table-head.js.map +1 -1
  9. package/components/DataTable/sgds-data-table-row.d.ts +8 -3
  10. package/components/DataTable/sgds-data-table-row.js +40 -17
  11. package/components/DataTable/sgds-data-table-row.js.map +1 -1
  12. package/components/DataTable/sgds-data-table.js +17 -6
  13. package/components/DataTable/sgds-data-table.js.map +1 -1
  14. package/components/index.umd.min.js +57 -48
  15. package/components/index.umd.min.js.map +1 -1
  16. package/css/fouc.css +3 -3
  17. package/custom-elements.json +806 -785
  18. package/index.umd.min.js +18 -9
  19. package/index.umd.min.js.map +1 -1
  20. package/package.json +1 -1
  21. package/react/components/DataTable/sgds-data-table-cell.cjs.js +9 -1
  22. package/react/components/DataTable/sgds-data-table-cell.cjs.js.map +1 -1
  23. package/react/components/DataTable/sgds-data-table-cell.js +10 -2
  24. package/react/components/DataTable/sgds-data-table-cell.js.map +1 -1
  25. package/react/components/DataTable/sgds-data-table-head.cjs.js +9 -1
  26. package/react/components/DataTable/sgds-data-table-head.cjs.js.map +1 -1
  27. package/react/components/DataTable/sgds-data-table-head.js +10 -2
  28. package/react/components/DataTable/sgds-data-table-head.js.map +1 -1
  29. package/react/components/DataTable/sgds-data-table-row.cjs.js +39 -16
  30. package/react/components/DataTable/sgds-data-table-row.cjs.js.map +1 -1
  31. package/react/components/DataTable/sgds-data-table-row.js +40 -17
  32. package/react/components/DataTable/sgds-data-table-row.js.map +1 -1
  33. package/react/components/DataTable/sgds-data-table.cjs.js +17 -6
  34. package/react/components/DataTable/sgds-data-table.cjs.js.map +1 -1
  35. package/react/components/DataTable/sgds-data-table.js +17 -6
  36. package/react/components/DataTable/sgds-data-table.js.map +1 -1
  37. package/react/index.cjs.js +26 -26
  38. package/react/index.d.ts +3 -3
  39. package/react/index.js +3 -3
  40. package/types/react.d.ts +29 -29
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@govtechsg/sgds-web-component",
3
- "version": "3.24.1-rc.2",
3
+ "version": "3.24.1-rc.3",
4
4
  "description": "",
5
5
  "main": "./index.umd.js",
6
6
  "module": "./index.js",
@@ -15,9 +15,17 @@ var decorators_js = require('lit/decorators.js');
15
15
  */
16
16
  class SgdsDataTableCell extends sgdsElement["default"] {
17
17
  render() {
18
- return lit.nothing;
18
+ return lit.html `<slot></slot>`;
19
19
  }
20
20
  }
21
+ SgdsDataTableCell.styles = [
22
+ ...sgdsElement["default"].styles,
23
+ lit.css `
24
+ :host {
25
+ display: contents;
26
+ }
27
+ `
28
+ ];
21
29
  tslib.__decorate([
22
30
  decorators_js.property({ type: Number, reflect: true })
23
31
  ], SgdsDataTableCell.prototype, "colspan", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-data-table-cell.cjs.js","sources":["../../../../src/components/DataTable/sgds-data-table-cell.ts"],"sourcesContent":["import { nothing } from \"lit\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { property } from \"lit/decorators.js\";\n\n/**\n * @summary Data container for a table cell. Rendered as a `<td>` by the parent `sgds-data-table-row`.\n *\n * @slot default - Content to display inside the cell.\n */\nexport class SgdsDataTableCell extends SgdsElement {\n /** Number of columns this cell spans. */\n @property({ type: Number, reflect: true }) colspan: number | undefined;\n\n /** Number of rows this cell spans. */\n @property({ type: Number, reflect: true }) rowspan: number | undefined;\n\n render() {\n return nothing;\n }\n}\n\nexport default SgdsDataTableCell;\n"],"names":["SgdsElement","nothing","__decorate","property"],"mappings":";;;;;;;;;;AAIA;;;;AAIG;AACG,MAAO,iBAAkB,SAAQA,sBAAW,CAAA;IAOhD,MAAM,GAAA;AACJ,QAAA,OAAOC,WAAO,CAAC;KAChB;AACF,CAAA;AAR4CC,gBAAA,CAAA;IAA1CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAA6B,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAG5BD,gBAAA,CAAA;IAA1CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAA6B,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;;;;;"}
1
+ {"version":3,"file":"sgds-data-table-cell.cjs.js","sources":["../../../../src/components/DataTable/sgds-data-table-cell.ts"],"sourcesContent":["import { css, html } from \"lit\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { property } from \"lit/decorators.js\";\n\n/**\n * @summary Data container for a table cell. Rendered as a `<td>` by the parent `sgds-data-table-row`.\n *\n * @slot default - Content to display inside the cell.\n */\nexport class SgdsDataTableCell extends SgdsElement {\n static styles = [\n ...SgdsElement.styles,\n css`\n :host {\n display: contents;\n }\n `\n ];\n\n /** Number of columns this cell spans. */\n @property({ type: Number, reflect: true }) colspan: number | undefined;\n\n /** Number of rows this cell spans. */\n @property({ type: Number, reflect: true }) rowspan: number | undefined;\n\n render() {\n return html`<slot></slot>`;\n }\n}\n\nexport default SgdsDataTableCell;\n"],"names":["SgdsElement","html","css","__decorate","property"],"mappings":";;;;;;;;;;AAIA;;;;AAIG;AACG,MAAO,iBAAkB,SAAQA,sBAAW,CAAA;IAgBhD,MAAM,GAAA;QACJ,OAAOC,QAAI,CAAA,CAAA,aAAA,CAAe,CAAC;KAC5B;;AAjBM,iBAAA,CAAA,MAAM,GAAG;IACd,GAAGD,sBAAW,CAAC,MAAM;AACrB,IAAAE,OAAG,CAAA,CAAA;;;;AAIF,IAAA,CAAA;CACF,CAAC;AAGyCC,gBAAA,CAAA;IAA1CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAA6B,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAG5BD,gBAAA,CAAA;IAA1CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAA6B,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import { __decorate } from 'tslib';
3
- import { nothing } from 'lit';
3
+ import { css, html } from 'lit';
4
4
  import SgdsElement from '../../base/sgds-element.js';
5
5
  import { property } from 'lit/decorators.js';
6
6
 
@@ -11,9 +11,17 @@ import { property } from 'lit/decorators.js';
11
11
  */
12
12
  class SgdsDataTableCell extends SgdsElement {
13
13
  render() {
14
- return nothing;
14
+ return html `<slot></slot>`;
15
15
  }
16
16
  }
17
+ SgdsDataTableCell.styles = [
18
+ ...SgdsElement.styles,
19
+ css `
20
+ :host {
21
+ display: contents;
22
+ }
23
+ `
24
+ ];
17
25
  __decorate([
18
26
  property({ type: Number, reflect: true })
19
27
  ], SgdsDataTableCell.prototype, "colspan", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-data-table-cell.js","sources":["../../../../src/components/DataTable/sgds-data-table-cell.ts"],"sourcesContent":["import { nothing } from \"lit\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { property } from \"lit/decorators.js\";\n\n/**\n * @summary Data container for a table cell. Rendered as a `<td>` by the parent `sgds-data-table-row`.\n *\n * @slot default - Content to display inside the cell.\n */\nexport class SgdsDataTableCell extends SgdsElement {\n /** Number of columns this cell spans. */\n @property({ type: Number, reflect: true }) colspan: number | undefined;\n\n /** Number of rows this cell spans. */\n @property({ type: Number, reflect: true }) rowspan: number | undefined;\n\n render() {\n return nothing;\n }\n}\n\nexport default SgdsDataTableCell;\n"],"names":[],"mappings":";;;;;;AAIA;;;;AAIG;AACG,MAAO,iBAAkB,SAAQ,WAAW,CAAA;IAOhD,MAAM,GAAA;AACJ,QAAA,OAAO,OAAO,CAAC;KAChB;AACF,CAAA;AAR4C,UAAA,CAAA;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAA6B,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAG5B,UAAA,CAAA;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAA6B,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"sgds-data-table-cell.js","sources":["../../../../src/components/DataTable/sgds-data-table-cell.ts"],"sourcesContent":["import { css, html } from \"lit\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { property } from \"lit/decorators.js\";\n\n/**\n * @summary Data container for a table cell. Rendered as a `<td>` by the parent `sgds-data-table-row`.\n *\n * @slot default - Content to display inside the cell.\n */\nexport class SgdsDataTableCell extends SgdsElement {\n static styles = [\n ...SgdsElement.styles,\n css`\n :host {\n display: contents;\n }\n `\n ];\n\n /** Number of columns this cell spans. */\n @property({ type: Number, reflect: true }) colspan: number | undefined;\n\n /** Number of rows this cell spans. */\n @property({ type: Number, reflect: true }) rowspan: number | undefined;\n\n render() {\n return html`<slot></slot>`;\n }\n}\n\nexport default SgdsDataTableCell;\n"],"names":[],"mappings":";;;;;;AAIA;;;;AAIG;AACG,MAAO,iBAAkB,SAAQ,WAAW,CAAA;IAgBhD,MAAM,GAAA;QACJ,OAAO,IAAI,CAAA,CAAA,aAAA,CAAe,CAAC;KAC5B;;AAjBM,iBAAA,CAAA,MAAM,GAAG;IACd,GAAG,WAAW,CAAC,MAAM;AACrB,IAAA,GAAG,CAAA,CAAA;;;;AAIF,IAAA,CAAA;CACF,CAAC;AAGyC,UAAA,CAAA;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAA6B,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAG5B,UAAA,CAAA;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAA6B,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;;;;"}
@@ -37,9 +37,17 @@ class SgdsDataTableHead extends sgdsElement["default"] {
37
37
  });
38
38
  }
39
39
  render() {
40
- return lit.nothing;
40
+ return lit.html `<slot></slot>`;
41
41
  }
42
42
  }
43
+ SgdsDataTableHead.styles = [
44
+ ...sgdsElement["default"].styles,
45
+ lit.css `
46
+ :host {
47
+ display: contents;
48
+ }
49
+ `
50
+ ];
43
51
  tslib.__decorate([
44
52
  decorators_js.property({ type: String, reflect: true })
45
53
  ], SgdsDataTableHead.prototype, "width", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-data-table-head.cjs.js","sources":["../../../../src/components/DataTable/sgds-data-table-head.ts"],"sourcesContent":["import { nothing } from \"lit\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { property } from \"lit/decorators.js\";\n\n/**\n * @summary Data container for a table header cell. Rendered as a `<th>` by the parent `sgds-data-table-row`.\n *\n * @slot default - Content to display inside the header cell.\n *\n */\nexport class SgdsDataTableHead extends SgdsElement {\n /** Sets the column width. */\n @property({ type: String, reflect: true }) width: string | undefined;\n\n /** Number of columns this cell spans. */\n @property({ type: Number, reflect: true }) colspan: number | undefined;\n\n /** Number of rows this cell spans. */\n @property({ type: Number, reflect: true }) rowspan: number | undefined;\n\n /** Text alignment for the header content. */\n @property({ type: String, reflect: true }) textAlign: \"left\" | \"right\" = \"left\";\n\n /** Current sort direction for this column. */\n @property({ type: String, reflect: true }) ariasort: \"ascending\" | \"descending\" | \"none\" | \"other\" | undefined;\n\n /** When true, clicking this header cycles through ascending → descending → none sort. */\n @property({ type: Boolean, reflect: true }) sorting = false;\n\n /** Column key emitted in the row's internal sort payload, used to identify which column to sort. */\n @property({ type: String, reflect: true }) sortKey = \"\";\n\n /** @internal — called by the row when the rendered `<th>` is clicked. */\n handleSortClick() {\n if (!this.sorting) return;\n const next = this.ariasort === \"ascending\" ? \"descending\" : this.ariasort === \"descending\" ? \"none\" : \"ascending\";\n this.ariasort = next;\n this.emit(\"i-sgds-sort\", {\n detail: { key: this.sortKey, direction: next },\n bubbles: true,\n composed: true\n });\n }\n\n render() {\n return nothing;\n }\n}\n\nexport default SgdsDataTableHead;\n"],"names":["SgdsElement","nothing","__decorate","property"],"mappings":";;;;;;;;;;AAIA;;;;;AAKG;AACG,MAAO,iBAAkB,SAAQA,sBAAW,CAAA;AAAlD,IAAA,WAAA,GAAA;;;QAW6C,IAAS,CAAA,SAAA,GAAqB,MAAM,CAAC;;QAMpC,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;;QAGjB,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;KAiBzD;;IAdC,eAAe,GAAA;QACb,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,KAAK,WAAW,GAAG,YAAY,GAAG,IAAI,CAAC,QAAQ,KAAK,YAAY,GAAG,MAAM,GAAG,WAAW,CAAC;AAClH,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;AAC9C,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC,CAAC;KACJ;IAED,MAAM,GAAA;AACJ,QAAA,OAAOC,WAAO,CAAC;KAChB;AACF,CAAA;AAnC4CC,gBAAA,CAAA;IAA1CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAA2B,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAG1BD,gBAAA,CAAA;IAA1CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAA6B,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAG5BD,gBAAA,CAAA;IAA1CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAA6B,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAG5BD,gBAAA,CAAA;IAA1CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAsC,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGrCD,gBAAA,CAAA;IAA1CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAqE,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGnED,gBAAA,CAAA;IAA3CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAiB,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGjBD,gBAAA,CAAA;IAA1CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAc,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;;;;;"}
1
+ {"version":3,"file":"sgds-data-table-head.cjs.js","sources":["../../../../src/components/DataTable/sgds-data-table-head.ts"],"sourcesContent":["import { css, html } from \"lit\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { property } from \"lit/decorators.js\";\n\n/**\n * @summary Data container for a table header cell. Rendered as a `<th>` by the parent `sgds-data-table-row`.\n *\n * @slot default - Content to display inside the header cell.\n *\n */\nexport class SgdsDataTableHead extends SgdsElement {\n static styles = [\n ...SgdsElement.styles,\n css`\n :host {\n display: contents;\n }\n `\n ];\n\n /** Sets the column width. */\n @property({ type: String, reflect: true }) width: string | undefined;\n\n /** Number of columns this cell spans. */\n @property({ type: Number, reflect: true }) colspan: number | undefined;\n\n /** Number of rows this cell spans. */\n @property({ type: Number, reflect: true }) rowspan: number | undefined;\n\n /** Text alignment for the header content. */\n @property({ type: String, reflect: true }) textAlign: \"left\" | \"right\" = \"left\";\n\n /** Current sort direction for this column. */\n @property({ type: String, reflect: true }) ariasort: \"ascending\" | \"descending\" | \"none\" | \"other\" | undefined;\n\n /** When true, clicking this header cycles through ascending → descending → none sort. */\n @property({ type: Boolean, reflect: true }) sorting = false;\n\n /** Column key emitted in the row's internal sort payload, used to identify which column to sort. */\n @property({ type: String, reflect: true }) sortKey = \"\";\n\n /** @internal — called by the row when the rendered `<th>` is clicked. */\n handleSortClick() {\n if (!this.sorting) return;\n const next = this.ariasort === \"ascending\" ? \"descending\" : this.ariasort === \"descending\" ? \"none\" : \"ascending\";\n this.ariasort = next;\n this.emit(\"i-sgds-sort\", {\n detail: { key: this.sortKey, direction: next },\n bubbles: true,\n composed: true\n });\n }\n\n render() {\n return html`<slot></slot>`;\n }\n}\n\nexport default SgdsDataTableHead;\n"],"names":["SgdsElement","html","css","__decorate","property"],"mappings":";;;;;;;;;;AAIA;;;;;AAKG;AACG,MAAO,iBAAkB,SAAQA,sBAAW,CAAA;AAAlD,IAAA,WAAA,GAAA;;;QAoB6C,IAAS,CAAA,SAAA,GAAqB,MAAM,CAAC;;QAMpC,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;;QAGjB,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;KAiBzD;;IAdC,eAAe,GAAA;QACb,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,KAAK,WAAW,GAAG,YAAY,GAAG,IAAI,CAAC,QAAQ,KAAK,YAAY,GAAG,MAAM,GAAG,WAAW,CAAC;AAClH,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;AAC9C,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC,CAAC;KACJ;IAED,MAAM,GAAA;QACJ,OAAOC,QAAI,CAAA,CAAA,aAAA,CAAe,CAAC;KAC5B;;AA5CM,iBAAA,CAAA,MAAM,GAAG;IACd,GAAGD,sBAAW,CAAC,MAAM;AACrB,IAAAE,OAAG,CAAA,CAAA;;;;AAIF,IAAA,CAAA;AACF,CAPY,CAOX;AAGyCC,gBAAA,CAAA;IAA1CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAA2B,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAG1BD,gBAAA,CAAA;IAA1CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAA6B,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAG5BD,gBAAA,CAAA;IAA1CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAA6B,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAG5BD,gBAAA,CAAA;IAA1CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAsC,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGrCD,gBAAA,CAAA;IAA1CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAqE,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGnED,gBAAA,CAAA;IAA3CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAiB,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGjBD,gBAAA,CAAA;IAA1CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAc,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import { __decorate } from 'tslib';
3
- import { nothing } from 'lit';
3
+ import { css, html } from 'lit';
4
4
  import SgdsElement from '../../base/sgds-element.js';
5
5
  import { property } from 'lit/decorators.js';
6
6
 
@@ -33,9 +33,17 @@ class SgdsDataTableHead extends SgdsElement {
33
33
  });
34
34
  }
35
35
  render() {
36
- return nothing;
36
+ return html `<slot></slot>`;
37
37
  }
38
38
  }
39
+ SgdsDataTableHead.styles = [
40
+ ...SgdsElement.styles,
41
+ css `
42
+ :host {
43
+ display: contents;
44
+ }
45
+ `
46
+ ];
39
47
  __decorate([
40
48
  property({ type: String, reflect: true })
41
49
  ], SgdsDataTableHead.prototype, "width", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-data-table-head.js","sources":["../../../../src/components/DataTable/sgds-data-table-head.ts"],"sourcesContent":["import { nothing } from \"lit\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { property } from \"lit/decorators.js\";\n\n/**\n * @summary Data container for a table header cell. Rendered as a `<th>` by the parent `sgds-data-table-row`.\n *\n * @slot default - Content to display inside the header cell.\n *\n */\nexport class SgdsDataTableHead extends SgdsElement {\n /** Sets the column width. */\n @property({ type: String, reflect: true }) width: string | undefined;\n\n /** Number of columns this cell spans. */\n @property({ type: Number, reflect: true }) colspan: number | undefined;\n\n /** Number of rows this cell spans. */\n @property({ type: Number, reflect: true }) rowspan: number | undefined;\n\n /** Text alignment for the header content. */\n @property({ type: String, reflect: true }) textAlign: \"left\" | \"right\" = \"left\";\n\n /** Current sort direction for this column. */\n @property({ type: String, reflect: true }) ariasort: \"ascending\" | \"descending\" | \"none\" | \"other\" | undefined;\n\n /** When true, clicking this header cycles through ascending → descending → none sort. */\n @property({ type: Boolean, reflect: true }) sorting = false;\n\n /** Column key emitted in the row's internal sort payload, used to identify which column to sort. */\n @property({ type: String, reflect: true }) sortKey = \"\";\n\n /** @internal — called by the row when the rendered `<th>` is clicked. */\n handleSortClick() {\n if (!this.sorting) return;\n const next = this.ariasort === \"ascending\" ? \"descending\" : this.ariasort === \"descending\" ? \"none\" : \"ascending\";\n this.ariasort = next;\n this.emit(\"i-sgds-sort\", {\n detail: { key: this.sortKey, direction: next },\n bubbles: true,\n composed: true\n });\n }\n\n render() {\n return nothing;\n }\n}\n\nexport default SgdsDataTableHead;\n"],"names":[],"mappings":";;;;;;AAIA;;;;;AAKG;AACG,MAAO,iBAAkB,SAAQ,WAAW,CAAA;AAAlD,IAAA,WAAA,GAAA;;;QAW6C,IAAS,CAAA,SAAA,GAAqB,MAAM,CAAC;;QAMpC,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;;QAGjB,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;KAiBzD;;IAdC,eAAe,GAAA;QACb,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,KAAK,WAAW,GAAG,YAAY,GAAG,IAAI,CAAC,QAAQ,KAAK,YAAY,GAAG,MAAM,GAAG,WAAW,CAAC;AAClH,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;AAC9C,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC,CAAC;KACJ;IAED,MAAM,GAAA;AACJ,QAAA,OAAO,OAAO,CAAC;KAChB;AACF,CAAA;AAnC4C,UAAA,CAAA;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAA2B,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAG1B,UAAA,CAAA;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAA6B,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAG5B,UAAA,CAAA;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAA6B,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAG5B,UAAA,CAAA;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAsC,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGrC,UAAA,CAAA;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAqE,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGnE,UAAA,CAAA;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAiB,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGjB,UAAA,CAAA;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAc,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"sgds-data-table-head.js","sources":["../../../../src/components/DataTable/sgds-data-table-head.ts"],"sourcesContent":["import { css, html } from \"lit\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { property } from \"lit/decorators.js\";\n\n/**\n * @summary Data container for a table header cell. Rendered as a `<th>` by the parent `sgds-data-table-row`.\n *\n * @slot default - Content to display inside the header cell.\n *\n */\nexport class SgdsDataTableHead extends SgdsElement {\n static styles = [\n ...SgdsElement.styles,\n css`\n :host {\n display: contents;\n }\n `\n ];\n\n /** Sets the column width. */\n @property({ type: String, reflect: true }) width: string | undefined;\n\n /** Number of columns this cell spans. */\n @property({ type: Number, reflect: true }) colspan: number | undefined;\n\n /** Number of rows this cell spans. */\n @property({ type: Number, reflect: true }) rowspan: number | undefined;\n\n /** Text alignment for the header content. */\n @property({ type: String, reflect: true }) textAlign: \"left\" | \"right\" = \"left\";\n\n /** Current sort direction for this column. */\n @property({ type: String, reflect: true }) ariasort: \"ascending\" | \"descending\" | \"none\" | \"other\" | undefined;\n\n /** When true, clicking this header cycles through ascending → descending → none sort. */\n @property({ type: Boolean, reflect: true }) sorting = false;\n\n /** Column key emitted in the row's internal sort payload, used to identify which column to sort. */\n @property({ type: String, reflect: true }) sortKey = \"\";\n\n /** @internal — called by the row when the rendered `<th>` is clicked. */\n handleSortClick() {\n if (!this.sorting) return;\n const next = this.ariasort === \"ascending\" ? \"descending\" : this.ariasort === \"descending\" ? \"none\" : \"ascending\";\n this.ariasort = next;\n this.emit(\"i-sgds-sort\", {\n detail: { key: this.sortKey, direction: next },\n bubbles: true,\n composed: true\n });\n }\n\n render() {\n return html`<slot></slot>`;\n }\n}\n\nexport default SgdsDataTableHead;\n"],"names":[],"mappings":";;;;;;AAIA;;;;;AAKG;AACG,MAAO,iBAAkB,SAAQ,WAAW,CAAA;AAAlD,IAAA,WAAA,GAAA;;;QAoB6C,IAAS,CAAA,SAAA,GAAqB,MAAM,CAAC;;QAMpC,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;;QAGjB,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;KAiBzD;;IAdC,eAAe,GAAA;QACb,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,KAAK,WAAW,GAAG,YAAY,GAAG,IAAI,CAAC,QAAQ,KAAK,YAAY,GAAG,MAAM,GAAG,WAAW,CAAC;AAClH,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;AAC9C,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC,CAAC;KACJ;IAED,MAAM,GAAA;QACJ,OAAO,IAAI,CAAA,CAAA,aAAA,CAAe,CAAC;KAC5B;;AA5CM,iBAAA,CAAA,MAAM,GAAG;IACd,GAAG,WAAW,CAAC,MAAM;AACrB,IAAA,GAAG,CAAA,CAAA;;;;AAIF,IAAA,CAAA;AACF,CAPY,CAOX;AAGyC,UAAA,CAAA;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAA2B,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAG1B,UAAA,CAAA;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAA6B,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAG5B,UAAA,CAAA;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAA6B,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAG5B,UAAA,CAAA;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAsC,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGrC,UAAA,CAAA;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAqE,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGnE,UAAA,CAAA;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAiB,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGjB,UAAA,CAAA;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAc,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;;;;"}
@@ -50,6 +50,7 @@ class SgdsDataTableRow extends sgdsElement["default"] {
50
50
  /** @internal — set by `sgds-data-table` to indicate whether body rows exist. */
51
51
  this.hasDataRows = false;
52
52
  this._isHeaderRow = false;
53
+ this._cellSlotNames = new WeakMap();
53
54
  }
54
55
  /** The checkbox rendered inside this row, if `showCheckbox` is true. */
55
56
  get checkbox() {
@@ -58,6 +59,14 @@ class SgdsDataTableRow extends sgdsElement["default"] {
58
59
  }
59
60
  connectedCallback() {
60
61
  super.connectedCallback();
62
+ this._lightDomObserver = new MutationObserver(() => this._handleLightDomChange());
63
+ this._lightDomObserver.observe(this, { childList: true });
64
+ this._handleLightDomChange();
65
+ }
66
+ disconnectedCallback() {
67
+ var _a;
68
+ (_a = this._lightDomObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
69
+ super.disconnectedCallback();
61
70
  }
62
71
  firstUpdated() {
63
72
  if (this._expandableBody) {
@@ -109,9 +118,31 @@ class SgdsDataTableRow extends sgdsElement["default"] {
109
118
  this.open = false;
110
119
  return event.waitForEvent(this, "sgds-after-hide");
111
120
  }
112
- _onSlotChange() {
121
+ /** @internal — returns visible text content for a body cell by visual column index. */
122
+ getCellText(columnIndex) {
113
123
  var _a;
114
- const cells = (_a = this._assignedCells) !== null && _a !== void 0 ? _a : [];
124
+ const cells = this._getCells().filter(cell => cell instanceof sgdsDataTableCell.SgdsDataTableCell);
125
+ const cell = cells[columnIndex];
126
+ if (!cell)
127
+ return "";
128
+ return ((_a = cell.textContent) !== null && _a !== void 0 ? _a : "").trim();
129
+ }
130
+ _getCells() {
131
+ return Array.from(this.children).filter(child => child instanceof sgdsDataTableCell.SgdsDataTableCell || child instanceof sgdsDataTableHead.SgdsDataTableHead);
132
+ }
133
+ _syncCellSlots(cells) {
134
+ cells.forEach(cell => {
135
+ const index = cells.indexOf(cell);
136
+ const slotName = `cell-${index}`;
137
+ this._cellSlotNames.set(cell, slotName);
138
+ if (cell.getAttribute("slot") !== slotName) {
139
+ cell.setAttribute("slot", slotName);
140
+ }
141
+ });
142
+ }
143
+ _handleLightDomChange() {
144
+ const cells = this._getCells();
145
+ this._syncCellSlots(cells);
115
146
  this._isHeaderRow = cells.some(cell => cell instanceof sgdsDataTableHead.SgdsDataTableHead);
116
147
  this.requestUpdate();
117
148
  }
@@ -135,7 +166,7 @@ class SgdsDataTableRow extends sgdsElement["default"] {
135
166
  }
136
167
  _renderCell(el, columnIndex) {
137
168
  var _a;
138
- const children = Array.from(el.childNodes).map(n => n.cloneNode(true));
169
+ const slotName = this._cellSlotNames.get(el);
139
170
  if (el instanceof sgdsDataTableHead.SgdsDataTableHead) {
140
171
  return lit.html `<th
141
172
  width=${ifDefined_js.ifDefined(el.width)}
@@ -149,7 +180,7 @@ class SgdsDataTableRow extends sgdsElement["default"] {
149
180
  @keydown=${el.sorting ? (e) => this._onSortKeyDown(e, el) : lit.nothing}
150
181
  >
151
182
  <div class="data-table-head ${el.textAlign === "right" ? "align-right" : "align-left"}">
152
- ${children}
183
+ ${slotName ? lit.html `<slot name=${slotName}></slot>` : lit.nothing}
153
184
  ${el.sorting
154
185
  ? lit.html `
155
186
  <button
@@ -171,7 +202,9 @@ class SgdsDataTableRow extends sgdsElement["default"] {
171
202
  }
172
203
  const cellAlignment = (_a = this.columnAlignments[columnIndex]) !== null && _a !== void 0 ? _a : "left";
173
204
  return lit.html `<td colspan=${ifDefined_js.ifDefined(el.colspan)} rowspan=${ifDefined_js.ifDefined(el.rowspan)}>
174
- <div class="data-table-cell ${cellAlignment === "right" ? "align-right" : "align-left"}">${children}</div>
205
+ <div class="data-table-cell ${cellAlignment === "right" ? "align-right" : "align-left"}">
206
+ ${slotName ? lit.html `<slot name=${slotName}></slot>` : lit.nothing}
207
+ </div>
175
208
  </td>`;
176
209
  }
177
210
  _renderExpandCell() {
@@ -200,19 +233,12 @@ class SgdsDataTableRow extends sgdsElement["default"] {
200
233
  </div>
201
234
  </td>`;
202
235
  }
203
- _renderHiddenSlotCell() {
204
- return this._isHeaderRow
205
- ? lit.html `<th hidden style="display:none"><slot @slotchange=${this._onSlotChange}></slot></th>`
206
- : lit.html `<td hidden style="display:none"><slot @slotchange=${this._onSlotChange}></slot></td>`;
207
- }
208
236
  render() {
209
- var _a;
210
- const cells = (_a = this._assignedCells) !== null && _a !== void 0 ? _a : [];
237
+ const cells = this._getCells();
211
238
  const totalCols = cells.length + (this.showCheckbox ? 1 : 0) + (this.expand || this.showExpandPlaceholder ? 1 : 0);
212
239
  const rowPart = this._isHeaderRow ? "row row-header" : "row row-body";
213
240
  return lit.html `
214
241
  <tr part=${rowPart} ?data-header-row=${this._isHeaderRow} class=${this.open ? "active" : ""}>
215
- ${this._renderHiddenSlotCell()}
216
242
  ${this.expand
217
243
  ? this._renderExpandCell()
218
244
  : this.showExpandPlaceholder
@@ -284,9 +310,6 @@ tslib.__decorate([
284
310
  tslib.__decorate([
285
311
  decorators_js.query("sgds-checkbox")
286
312
  ], SgdsDataTableRow.prototype, "_checkboxEl", void 0);
287
- tslib.__decorate([
288
- decorators_js.queryAssignedElements({ flatten: true })
289
- ], SgdsDataTableRow.prototype, "_assignedCells", void 0);
290
313
  tslib.__decorate([
291
314
  decorators_js.state()
292
315
  ], SgdsDataTableRow.prototype, "_isHeaderRow", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-data-table-row.cjs.js","sources":["../../../../src/components/DataTable/sgds-data-table-row.ts"],"sourcesContent":["import { html, nothing } from \"lit\";\nimport { property, query, queryAssignedElements, state } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { SgdsCheckbox } from \"../Checkbox/sgds-checkbox\";\nimport { animateTo, shimKeyframesHeightAuto, stopAnimations } from \"../../utils/animate\";\nimport { getAnimation, setDefaultAnimation } from \"../../utils/animation-registry\";\nimport { waitForEvent } from \"../../utils/event\";\nimport { watch } from \"../../utils/watch\";\nimport tableRowStyle from \"./data-table.css\";\nimport SgdsDataTableCell from \"./sgds-data-table-cell\";\nimport SgdsDataTableHead from \"./sgds-data-table-head\";\nimport { SgdsIcon } from \"../Icon/sgds-icon\";\n\n/**\n * @summary A data table row. Set `expand` to enable an expandable content area beneath\n * the row, then place detail content in the `content` slot.\n *\n * @slot default - Insert `sgds-data-table-cell` or `sgds-data-table-head` elements.\n * @slot content - Content shown in the animated expand area beneath the row.\n *\n * @event sgds-show - Emitted when the expandable row begins to open.\n * @event sgds-after-show - Emitted after the expandable row open animation completes.\n * @event sgds-hide - Emitted when the expandable row begins to close.\n * @event sgds-after-hide - Emitted after the expandable row close animation completes.\n */\nexport class SgdsDataTableRow extends SgdsElement {\n static styles = [...SgdsElement.styles, tableRowStyle];\n\n /** @internal */\n static dependencies = {\n \"sgds-checkbox\": SgdsCheckbox,\n \"sgds-data-table-cell\": SgdsDataTableCell,\n \"sgds-data-table-head\": SgdsDataTableHead,\n \"sgds-icon\": SgdsIcon\n };\n\n /** Arbitrary data associated with this row. Returned in event detail on row selection. */\n @property({ type: Object, reflect: true }) rowData: Record<string, unknown> = {};\n\n /** When true, the row has an expandable content area toggled by a chevron. */\n @property({ type: Boolean, reflect: true }) expand = false;\n\n /** When true, the expandable content area is open. */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /** When true, the row is checked. */\n @property({ type: Boolean, reflect: true }) checked = false;\n\n /** @internal — set by `sgds-data-table` to show a checkbox cell on this row. */\n @property({ type: Boolean }) showCheckbox = false;\n\n /** @internal — set by `sgds-data-table` when at least one sibling row is expandable. */\n @property({ type: Boolean }) showExpandPlaceholder = false;\n\n /** @internal — per-column alignment injected by `sgds-data-table` from header cells. */\n @property({ attribute: false }) columnAlignments: Array<\"left\" | \"right\"> = [];\n /** @internal — set by `sgds-data-table` to indicate whether body rows exist. */\n @property({ type: Boolean }) hasDataRows = false;\n\n /** @internal */\n @query(\".expandable-body\") private _expandableBody!: HTMLElement;\n\n /** @internal */\n @query(\"sgds-checkbox\") private _checkboxEl!: SgdsCheckbox;\n\n @queryAssignedElements({ flatten: true })\n private _assignedCells!: Array<SgdsDataTableCell | SgdsDataTableHead>;\n\n @state() private _isHeaderRow = false;\n\n /** The checkbox rendered inside this row, if `showCheckbox` is true. */\n get checkbox(): SgdsCheckbox | null {\n return this._checkboxEl ?? null;\n }\n\n connectedCallback() {\n super.connectedCallback();\n }\n\n firstUpdated() {\n if (this._expandableBody) {\n this._expandableBody.hidden = !this.open;\n }\n }\n\n @watch(\"open\", { waitUntilFirstUpdate: true })\n async handleExpandedChange() {\n if (this.open) {\n const sgdsShow = this.emit(\"sgds-show\", { cancelable: true });\n if (sgdsShow.defaultPrevented) {\n this.open = false;\n return;\n }\n await stopAnimations(this._expandableBody);\n this._expandableBody.hidden = false;\n const { keyframes, options } = getAnimation(this, \"row.expand.show\");\n await animateTo(\n this._expandableBody,\n shimKeyframesHeightAuto(keyframes, this._expandableBody.scrollHeight),\n options\n );\n this.emit(\"sgds-after-show\");\n } else {\n const sgdsHide = this.emit(\"sgds-hide\", { cancelable: true });\n if (sgdsHide.defaultPrevented) {\n this.open = true;\n return;\n }\n await stopAnimations(this._expandableBody);\n const { keyframes, options } = getAnimation(this, \"row.expand.hide\");\n await animateTo(\n this._expandableBody,\n shimKeyframesHeightAuto(keyframes, this._expandableBody.scrollHeight),\n options\n );\n this._expandableBody.hidden = true;\n this.emit(\"sgds-after-hide\");\n }\n }\n\n @watch(\"checked\")\n async handleCheckedChange() {\n if (this.checked) {\n this.emit(\"i-sgds-change\", { detail: { checked: true } });\n }\n }\n\n /** Opens the expandable content area. */\n public async show() {\n if (this.open) return;\n this.open = true;\n return waitForEvent(this, \"sgds-after-show\");\n }\n\n /** Closes the expandable content area. */\n public async hide() {\n if (!this.open) return;\n this.open = false;\n return waitForEvent(this, \"sgds-after-hide\");\n }\n\n private _onSlotChange() {\n const cells = this._assignedCells ?? [];\n this._isHeaderRow = cells.some(cell => cell instanceof SgdsDataTableHead);\n this.requestUpdate();\n }\n\n private _onCheckboxChange(e: CustomEvent) {\n this.emit(\"i-sgds-change\", { detail: { checked: (e.target as SgdsCheckbox).checked } });\n }\n\n private _toggleExpand() {\n this.open ? this.hide() : this.show();\n }\n\n private _onExpandKeyDown(e: KeyboardEvent) {\n if (e.key !== \"Enter\") return;\n e.preventDefault();\n this._toggleExpand();\n }\n\n private _onSortKeyDown(e: KeyboardEvent, header: SgdsDataTableHead) {\n if (e.key !== \"Enter\") return;\n e.preventDefault();\n header.handleSortClick();\n }\n\n private _renderCell(el: SgdsDataTableCell | SgdsDataTableHead, columnIndex: number) {\n const children = Array.from(el.childNodes).map(n => n.cloneNode(true));\n\n if (el instanceof SgdsDataTableHead) {\n return html`<th\n width=${ifDefined(el.width)}\n colspan=${ifDefined(el.colspan)}\n rowspan=${ifDefined(el.rowspan)}\n aria-sort=${ifDefined(el.ariasort)}\n scope=\"col\"\n tabindex=${ifDefined(el.sorting ? \"0\" : undefined)}\n ?data-sorting=${el.sorting}\n @click=${el.sorting ? () => el.handleSortClick() : nothing}\n @keydown=${el.sorting ? (e: KeyboardEvent) => this._onSortKeyDown(e, el) : nothing}\n >\n <div class=\"data-table-head ${el.textAlign === \"right\" ? \"align-right\" : \"align-left\"}\">\n ${children}\n ${el.sorting\n ? html`\n <button\n type=\"button\"\n class=\"sort-button ${el.ariasort === \"none\" ? \"\" : \"active\"}\"\n aria-label=${el.ariasort === \"descending\" ? \"Sort descending\" : \"Sort ascending\"}\n ?disabled=${!this.hasDataRows}\n >\n <sgds-icon\n class=\"sort-icon\"\n name=${el.ariasort === \"descending\" ? \"sort-descending\" : \"sort-ascending\"}\n size=\"sm\"\n ></sgds-icon>\n </button>\n `\n : nothing}\n </div>\n </th>`;\n }\n\n const cellAlignment = this.columnAlignments[columnIndex] ?? \"left\";\n return html`<td colspan=${ifDefined(el.colspan)} rowspan=${ifDefined(el.rowspan)}>\n <div class=\"data-table-cell ${cellAlignment === \"right\" ? \"align-right\" : \"align-left\"}\">${children}</div>\n </td>`;\n }\n\n private _renderExpandCell() {\n if (this._isHeaderRow) {\n return html`<th class=\"control-cell\" scope=\"col\"></th>`;\n }\n\n return html`<td class=\"control-cell\" @click=${this._toggleExpand} @keydown=${this._onExpandKeyDown} tabindex=\"0\">\n <div class=\"data-table-cell expand-cell\">\n <sgds-icon name=${this.open ? \"chevron-up\" : \"chevron-down\"} size=\"md\"></sgds-icon>\n </div>\n </td>`;\n }\n\n private _renderExpandPlaceholder() {\n return this._isHeaderRow ? html`<th class=\"control-cell\" scope=\"col\"></th>` : html`<td class=\"control-cell\"></td>`;\n }\n\n private _renderCheckboxCell() {\n return this._isHeaderRow\n ? html`<th class=\"control-cell\" scope=\"col\">\n <div class=\"data-table-cell checkbox-cell\">\n <sgds-checkbox .checked=${this.checked} @sgds-change=${this._onCheckboxChange}></sgds-checkbox>\n </div>\n </th>`\n : html`<td class=\"control-cell\">\n <div class=\"data-table-cell checkbox-cell\">\n <sgds-checkbox .checked=${this.checked} @sgds-change=${this._onCheckboxChange}></sgds-checkbox>\n </div>\n </td>`;\n }\n\n private _renderHiddenSlotCell() {\n return this._isHeaderRow\n ? html`<th hidden style=\"display:none\"><slot @slotchange=${this._onSlotChange}></slot></th>`\n : html`<td hidden style=\"display:none\"><slot @slotchange=${this._onSlotChange}></slot></td>`;\n }\n\n render() {\n const cells = this._assignedCells ?? [];\n const totalCols = cells.length + (this.showCheckbox ? 1 : 0) + (this.expand || this.showExpandPlaceholder ? 1 : 0);\n const rowPart = this._isHeaderRow ? \"row row-header\" : \"row row-body\";\n\n return html`\n <tr part=${rowPart} ?data-header-row=${this._isHeaderRow} class=${this.open ? \"active\" : \"\"}>\n ${this._renderHiddenSlotCell()}\n ${this.expand\n ? this._renderExpandCell()\n : this.showExpandPlaceholder\n ? this._renderExpandPlaceholder()\n : nothing}\n ${this.showCheckbox ? this._renderCheckboxCell() : nothing}\n ${(() => {\n let visualColumnIndex = 0;\n return cells.map(el => {\n const renderedCell = this._renderCell(el, visualColumnIndex);\n const span = Number(el.colspan) > 0 ? Number(el.colspan) : 1;\n visualColumnIndex += span;\n return renderedCell;\n });\n })()}\n </tr>\n\n ${this.expand\n ? html`\n <tr class=\"expandable-row\">\n <td colspan=${totalCols} class=\"expandable-td\">\n <div class=\"expandable-body\">\n <div class=\"expandable-content\">\n <slot name=\"content\"></slot>\n </div>\n </div>\n </td>\n </tr>\n `\n : nothing}\n `;\n }\n}\n\nsetDefaultAnimation(\"row.expand.show\", {\n keyframes: [\n { height: \"0\", opacity: \"0\" },\n { height: \"auto\", opacity: \"1\" }\n ],\n options: { duration: 250, easing: \"ease-in-out\" }\n});\n\nsetDefaultAnimation(\"row.expand.hide\", {\n keyframes: [\n { height: \"auto\", opacity: \"1\" },\n { height: \"0\", opacity: \"0\" }\n ],\n options: { duration: 250, easing: \"ease-in-out\" }\n});\n\nexport default SgdsDataTableRow;\n"],"names":["SgdsElement","stopAnimations","getAnimation","animateTo","shimKeyframesHeightAuto","waitForEvent","SgdsDataTableHead","html","ifDefined","nothing","tableRowStyle","SgdsCheckbox","SgdsDataTableCell","SgdsIcon","__decorate","property","query","queryAssignedElements","state","watch","setDefaultAnimation"],"mappings":"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"}
1
+ {"version":3,"file":"sgds-data-table-row.cjs.js","sources":["../../../../src/components/DataTable/sgds-data-table-row.ts"],"sourcesContent":["import { html, nothing } from \"lit\";\nimport { property, query, state } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { SgdsCheckbox } from \"../Checkbox/sgds-checkbox\";\nimport { animateTo, shimKeyframesHeightAuto, stopAnimations } from \"../../utils/animate\";\nimport { getAnimation, setDefaultAnimation } from \"../../utils/animation-registry\";\nimport { waitForEvent } from \"../../utils/event\";\nimport { watch } from \"../../utils/watch\";\nimport tableRowStyle from \"./data-table.css\";\nimport SgdsDataTableCell from \"./sgds-data-table-cell\";\nimport SgdsDataTableHead from \"./sgds-data-table-head\";\nimport { SgdsIcon } from \"../Icon/sgds-icon\";\n\n/**\n * @summary A data table row. Set `expand` to enable an expandable content area beneath\n * the row, then place detail content in the `content` slot.\n *\n * @slot default - Insert `sgds-data-table-cell` or `sgds-data-table-head` elements.\n * @slot content - Content shown in the animated expand area beneath the row.\n *\n * @event sgds-show - Emitted when the expandable row begins to open.\n * @event sgds-after-show - Emitted after the expandable row open animation completes.\n * @event sgds-hide - Emitted when the expandable row begins to close.\n * @event sgds-after-hide - Emitted after the expandable row close animation completes.\n */\nexport class SgdsDataTableRow extends SgdsElement {\n static styles = [...SgdsElement.styles, tableRowStyle];\n\n /** @internal */\n static dependencies = {\n \"sgds-checkbox\": SgdsCheckbox,\n \"sgds-data-table-cell\": SgdsDataTableCell,\n \"sgds-data-table-head\": SgdsDataTableHead,\n \"sgds-icon\": SgdsIcon\n };\n\n /** Arbitrary data associated with this row. Returned in event detail on row selection. */\n @property({ type: Object, reflect: true }) rowData: Record<string, unknown> = {};\n\n /** When true, the row has an expandable content area toggled by a chevron. */\n @property({ type: Boolean, reflect: true }) expand = false;\n\n /** When true, the expandable content area is open. */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /** When true, the row is checked. */\n @property({ type: Boolean, reflect: true }) checked = false;\n\n /** @internal — set by `sgds-data-table` to show a checkbox cell on this row. */\n @property({ type: Boolean }) showCheckbox = false;\n\n /** @internal — set by `sgds-data-table` when at least one sibling row is expandable. */\n @property({ type: Boolean }) showExpandPlaceholder = false;\n\n /** @internal — per-column alignment injected by `sgds-data-table` from header cells. */\n @property({ attribute: false }) columnAlignments: Array<\"left\" | \"right\"> = [];\n /** @internal — set by `sgds-data-table` to indicate whether body rows exist. */\n @property({ type: Boolean }) hasDataRows = false;\n\n /** @internal */\n @query(\".expandable-body\") private _expandableBody!: HTMLElement;\n\n /** @internal */\n @query(\"sgds-checkbox\") private _checkboxEl!: SgdsCheckbox;\n\n @state() private _isHeaderRow = false;\n private _cellSlotNames = new WeakMap<SgdsDataTableCell | SgdsDataTableHead, string>();\n private _lightDomObserver?: MutationObserver;\n\n /** The checkbox rendered inside this row, if `showCheckbox` is true. */\n get checkbox(): SgdsCheckbox | null {\n return this._checkboxEl ?? null;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this._lightDomObserver = new MutationObserver(() => this._handleLightDomChange());\n this._lightDomObserver.observe(this, { childList: true });\n this._handleLightDomChange();\n }\n\n disconnectedCallback() {\n this._lightDomObserver?.disconnect();\n super.disconnectedCallback();\n }\n\n firstUpdated() {\n if (this._expandableBody) {\n this._expandableBody.hidden = !this.open;\n }\n }\n\n @watch(\"open\", { waitUntilFirstUpdate: true })\n async handleExpandedChange() {\n if (this.open) {\n const sgdsShow = this.emit(\"sgds-show\", { cancelable: true });\n if (sgdsShow.defaultPrevented) {\n this.open = false;\n return;\n }\n await stopAnimations(this._expandableBody);\n this._expandableBody.hidden = false;\n const { keyframes, options } = getAnimation(this, \"row.expand.show\");\n await animateTo(\n this._expandableBody,\n shimKeyframesHeightAuto(keyframes, this._expandableBody.scrollHeight),\n options\n );\n this.emit(\"sgds-after-show\");\n } else {\n const sgdsHide = this.emit(\"sgds-hide\", { cancelable: true });\n if (sgdsHide.defaultPrevented) {\n this.open = true;\n return;\n }\n await stopAnimations(this._expandableBody);\n const { keyframes, options } = getAnimation(this, \"row.expand.hide\");\n await animateTo(\n this._expandableBody,\n shimKeyframesHeightAuto(keyframes, this._expandableBody.scrollHeight),\n options\n );\n this._expandableBody.hidden = true;\n this.emit(\"sgds-after-hide\");\n }\n }\n\n @watch(\"checked\")\n async handleCheckedChange() {\n if (this.checked) {\n this.emit(\"i-sgds-change\", { detail: { checked: true } });\n }\n }\n\n /** Opens the expandable content area. */\n public async show() {\n if (this.open) return;\n this.open = true;\n return waitForEvent(this, \"sgds-after-show\");\n }\n\n /** Closes the expandable content area. */\n public async hide() {\n if (!this.open) return;\n this.open = false;\n return waitForEvent(this, \"sgds-after-hide\");\n }\n\n /** @internal — returns visible text content for a body cell by visual column index. */\n public getCellText(columnIndex: number) {\n const cells = this._getCells().filter(cell => cell instanceof SgdsDataTableCell) as SgdsDataTableCell[];\n const cell = cells[columnIndex];\n if (!cell) return \"\";\n return (cell.textContent ?? \"\").trim();\n }\n\n private _getCells() {\n return Array.from(this.children).filter(\n child => child instanceof SgdsDataTableCell || child instanceof SgdsDataTableHead\n ) as Array<SgdsDataTableCell | SgdsDataTableHead>;\n }\n\n private _syncCellSlots(cells: Array<SgdsDataTableCell | SgdsDataTableHead>) {\n cells.forEach(cell => {\n const index = cells.indexOf(cell);\n const slotName = `cell-${index}`;\n this._cellSlotNames.set(cell, slotName);\n if (cell.getAttribute(\"slot\") !== slotName) {\n cell.setAttribute(\"slot\", slotName);\n }\n });\n }\n\n private _handleLightDomChange() {\n const cells = this._getCells();\n this._syncCellSlots(cells);\n this._isHeaderRow = cells.some(cell => cell instanceof SgdsDataTableHead);\n this.requestUpdate();\n }\n\n private _onCheckboxChange(e: CustomEvent) {\n this.emit(\"i-sgds-change\", { detail: { checked: (e.target as SgdsCheckbox).checked } });\n }\n\n private _toggleExpand() {\n this.open ? this.hide() : this.show();\n }\n\n private _onExpandKeyDown(e: KeyboardEvent) {\n if (e.key !== \"Enter\") return;\n e.preventDefault();\n this._toggleExpand();\n }\n\n private _onSortKeyDown(e: KeyboardEvent, header: SgdsDataTableHead) {\n if (e.key !== \"Enter\") return;\n e.preventDefault();\n header.handleSortClick();\n }\n\n private _renderCell(el: SgdsDataTableCell | SgdsDataTableHead, columnIndex: number) {\n const slotName = this._cellSlotNames.get(el);\n\n if (el instanceof SgdsDataTableHead) {\n return html`<th\n width=${ifDefined(el.width)}\n colspan=${ifDefined(el.colspan)}\n rowspan=${ifDefined(el.rowspan)}\n aria-sort=${ifDefined(el.ariasort)}\n scope=\"col\"\n tabindex=${ifDefined(el.sorting ? \"0\" : undefined)}\n ?data-sorting=${el.sorting}\n @click=${el.sorting ? () => el.handleSortClick() : nothing}\n @keydown=${el.sorting ? (e: KeyboardEvent) => this._onSortKeyDown(e, el) : nothing}\n >\n <div class=\"data-table-head ${el.textAlign === \"right\" ? \"align-right\" : \"align-left\"}\">\n ${slotName ? html`<slot name=${slotName}></slot>` : nothing}\n ${el.sorting\n ? html`\n <button\n type=\"button\"\n class=\"sort-button ${el.ariasort === \"none\" ? \"\" : \"active\"}\"\n aria-label=${el.ariasort === \"descending\" ? \"Sort descending\" : \"Sort ascending\"}\n ?disabled=${!this.hasDataRows}\n >\n <sgds-icon\n class=\"sort-icon\"\n name=${el.ariasort === \"descending\" ? \"sort-descending\" : \"sort-ascending\"}\n size=\"sm\"\n ></sgds-icon>\n </button>\n `\n : nothing}\n </div>\n </th>`;\n }\n\n const cellAlignment = this.columnAlignments[columnIndex] ?? \"left\";\n return html`<td colspan=${ifDefined(el.colspan)} rowspan=${ifDefined(el.rowspan)}>\n <div class=\"data-table-cell ${cellAlignment === \"right\" ? \"align-right\" : \"align-left\"}\">\n ${slotName ? html`<slot name=${slotName}></slot>` : nothing}\n </div>\n </td>`;\n }\n\n private _renderExpandCell() {\n if (this._isHeaderRow) {\n return html`<th class=\"control-cell\" scope=\"col\"></th>`;\n }\n\n return html`<td class=\"control-cell\" @click=${this._toggleExpand} @keydown=${this._onExpandKeyDown} tabindex=\"0\">\n <div class=\"data-table-cell expand-cell\">\n <sgds-icon name=${this.open ? \"chevron-up\" : \"chevron-down\"} size=\"md\"></sgds-icon>\n </div>\n </td>`;\n }\n\n private _renderExpandPlaceholder() {\n return this._isHeaderRow ? html`<th class=\"control-cell\" scope=\"col\"></th>` : html`<td class=\"control-cell\"></td>`;\n }\n\n private _renderCheckboxCell() {\n return this._isHeaderRow\n ? html`<th class=\"control-cell\" scope=\"col\">\n <div class=\"data-table-cell checkbox-cell\">\n <sgds-checkbox .checked=${this.checked} @sgds-change=${this._onCheckboxChange}></sgds-checkbox>\n </div>\n </th>`\n : html`<td class=\"control-cell\">\n <div class=\"data-table-cell checkbox-cell\">\n <sgds-checkbox .checked=${this.checked} @sgds-change=${this._onCheckboxChange}></sgds-checkbox>\n </div>\n </td>`;\n }\n\n render() {\n const cells = this._getCells();\n const totalCols = cells.length + (this.showCheckbox ? 1 : 0) + (this.expand || this.showExpandPlaceholder ? 1 : 0);\n const rowPart = this._isHeaderRow ? \"row row-header\" : \"row row-body\";\n\n return html`\n <tr part=${rowPart} ?data-header-row=${this._isHeaderRow} class=${this.open ? \"active\" : \"\"}>\n ${this.expand\n ? this._renderExpandCell()\n : this.showExpandPlaceholder\n ? this._renderExpandPlaceholder()\n : nothing}\n ${this.showCheckbox ? this._renderCheckboxCell() : nothing}\n ${(() => {\n let visualColumnIndex = 0;\n return cells.map(el => {\n const renderedCell = this._renderCell(el, visualColumnIndex);\n const span = Number(el.colspan) > 0 ? Number(el.colspan) : 1;\n visualColumnIndex += span;\n return renderedCell;\n });\n })()}\n </tr>\n\n ${this.expand\n ? html`\n <tr class=\"expandable-row\">\n <td colspan=${totalCols} class=\"expandable-td\">\n <div class=\"expandable-body\">\n <div class=\"expandable-content\">\n <slot name=\"content\"></slot>\n </div>\n </div>\n </td>\n </tr>\n `\n : nothing}\n `;\n }\n}\n\nsetDefaultAnimation(\"row.expand.show\", {\n keyframes: [\n { height: \"0\", opacity: \"0\" },\n { height: \"auto\", opacity: \"1\" }\n ],\n options: { duration: 250, easing: \"ease-in-out\" }\n});\n\nsetDefaultAnimation(\"row.expand.hide\", {\n keyframes: [\n { height: \"auto\", opacity: \"1\" },\n { height: \"0\", opacity: \"0\" }\n ],\n options: { duration: 250, easing: \"ease-in-out\" }\n});\n\nexport default SgdsDataTableRow;\n"],"names":["SgdsElement","stopAnimations","getAnimation","animateTo","shimKeyframesHeightAuto","waitForEvent","SgdsDataTableCell","SgdsDataTableHead","html","ifDefined","nothing","tableRowStyle","SgdsCheckbox","SgdsIcon","__decorate","property","query","state","watch","setDefaultAnimation"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { __decorate } from 'tslib';
3
3
  import { html, nothing } from 'lit';
4
- import { property, query, queryAssignedElements, state } from 'lit/decorators.js';
4
+ import { property, query, state } from 'lit/decorators.js';
5
5
  import { ifDefined } from 'lit/directives/if-defined.js';
6
6
  import SgdsElement from '../../base/sgds-element.js';
7
7
  import { SgdsCheckbox } from '../Checkbox/sgds-checkbox.js';
@@ -46,6 +46,7 @@ class SgdsDataTableRow extends SgdsElement {
46
46
  /** @internal — set by `sgds-data-table` to indicate whether body rows exist. */
47
47
  this.hasDataRows = false;
48
48
  this._isHeaderRow = false;
49
+ this._cellSlotNames = new WeakMap();
49
50
  }
50
51
  /** The checkbox rendered inside this row, if `showCheckbox` is true. */
51
52
  get checkbox() {
@@ -54,6 +55,14 @@ class SgdsDataTableRow extends SgdsElement {
54
55
  }
55
56
  connectedCallback() {
56
57
  super.connectedCallback();
58
+ this._lightDomObserver = new MutationObserver(() => this._handleLightDomChange());
59
+ this._lightDomObserver.observe(this, { childList: true });
60
+ this._handleLightDomChange();
61
+ }
62
+ disconnectedCallback() {
63
+ var _a;
64
+ (_a = this._lightDomObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
65
+ super.disconnectedCallback();
57
66
  }
58
67
  firstUpdated() {
59
68
  if (this._expandableBody) {
@@ -105,9 +114,31 @@ class SgdsDataTableRow extends SgdsElement {
105
114
  this.open = false;
106
115
  return waitForEvent(this, "sgds-after-hide");
107
116
  }
108
- _onSlotChange() {
117
+ /** @internal — returns visible text content for a body cell by visual column index. */
118
+ getCellText(columnIndex) {
109
119
  var _a;
110
- const cells = (_a = this._assignedCells) !== null && _a !== void 0 ? _a : [];
120
+ const cells = this._getCells().filter(cell => cell instanceof SgdsDataTableCell);
121
+ const cell = cells[columnIndex];
122
+ if (!cell)
123
+ return "";
124
+ return ((_a = cell.textContent) !== null && _a !== void 0 ? _a : "").trim();
125
+ }
126
+ _getCells() {
127
+ return Array.from(this.children).filter(child => child instanceof SgdsDataTableCell || child instanceof SgdsDataTableHead);
128
+ }
129
+ _syncCellSlots(cells) {
130
+ cells.forEach(cell => {
131
+ const index = cells.indexOf(cell);
132
+ const slotName = `cell-${index}`;
133
+ this._cellSlotNames.set(cell, slotName);
134
+ if (cell.getAttribute("slot") !== slotName) {
135
+ cell.setAttribute("slot", slotName);
136
+ }
137
+ });
138
+ }
139
+ _handleLightDomChange() {
140
+ const cells = this._getCells();
141
+ this._syncCellSlots(cells);
111
142
  this._isHeaderRow = cells.some(cell => cell instanceof SgdsDataTableHead);
112
143
  this.requestUpdate();
113
144
  }
@@ -131,7 +162,7 @@ class SgdsDataTableRow extends SgdsElement {
131
162
  }
132
163
  _renderCell(el, columnIndex) {
133
164
  var _a;
134
- const children = Array.from(el.childNodes).map(n => n.cloneNode(true));
165
+ const slotName = this._cellSlotNames.get(el);
135
166
  if (el instanceof SgdsDataTableHead) {
136
167
  return html `<th
137
168
  width=${ifDefined(el.width)}
@@ -145,7 +176,7 @@ class SgdsDataTableRow extends SgdsElement {
145
176
  @keydown=${el.sorting ? (e) => this._onSortKeyDown(e, el) : nothing}
146
177
  >
147
178
  <div class="data-table-head ${el.textAlign === "right" ? "align-right" : "align-left"}">
148
- ${children}
179
+ ${slotName ? html `<slot name=${slotName}></slot>` : nothing}
149
180
  ${el.sorting
150
181
  ? html `
151
182
  <button
@@ -167,7 +198,9 @@ class SgdsDataTableRow extends SgdsElement {
167
198
  }
168
199
  const cellAlignment = (_a = this.columnAlignments[columnIndex]) !== null && _a !== void 0 ? _a : "left";
169
200
  return html `<td colspan=${ifDefined(el.colspan)} rowspan=${ifDefined(el.rowspan)}>
170
- <div class="data-table-cell ${cellAlignment === "right" ? "align-right" : "align-left"}">${children}</div>
201
+ <div class="data-table-cell ${cellAlignment === "right" ? "align-right" : "align-left"}">
202
+ ${slotName ? html `<slot name=${slotName}></slot>` : nothing}
203
+ </div>
171
204
  </td>`;
172
205
  }
173
206
  _renderExpandCell() {
@@ -196,19 +229,12 @@ class SgdsDataTableRow extends SgdsElement {
196
229
  </div>
197
230
  </td>`;
198
231
  }
199
- _renderHiddenSlotCell() {
200
- return this._isHeaderRow
201
- ? html `<th hidden style="display:none"><slot @slotchange=${this._onSlotChange}></slot></th>`
202
- : html `<td hidden style="display:none"><slot @slotchange=${this._onSlotChange}></slot></td>`;
203
- }
204
232
  render() {
205
- var _a;
206
- const cells = (_a = this._assignedCells) !== null && _a !== void 0 ? _a : [];
233
+ const cells = this._getCells();
207
234
  const totalCols = cells.length + (this.showCheckbox ? 1 : 0) + (this.expand || this.showExpandPlaceholder ? 1 : 0);
208
235
  const rowPart = this._isHeaderRow ? "row row-header" : "row row-body";
209
236
  return html `
210
237
  <tr part=${rowPart} ?data-header-row=${this._isHeaderRow} class=${this.open ? "active" : ""}>
211
- ${this._renderHiddenSlotCell()}
212
238
  ${this.expand
213
239
  ? this._renderExpandCell()
214
240
  : this.showExpandPlaceholder
@@ -280,9 +306,6 @@ __decorate([
280
306
  __decorate([
281
307
  query("sgds-checkbox")
282
308
  ], SgdsDataTableRow.prototype, "_checkboxEl", void 0);
283
- __decorate([
284
- queryAssignedElements({ flatten: true })
285
- ], SgdsDataTableRow.prototype, "_assignedCells", void 0);
286
309
  __decorate([
287
310
  state()
288
311
  ], SgdsDataTableRow.prototype, "_isHeaderRow", void 0);