@govtechsg/sgds-web-component 3.26.1-rc.1 → 3.26.1

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 (119) hide show
  1. package/components/Checkbox/index.umd.min.js +233 -233
  2. package/components/Checkbox/index.umd.min.js.map +1 -1
  3. package/components/Checkbox/sgds-checkbox.d.ts +0 -1
  4. package/components/Checkbox/sgds-checkbox.js +1 -6
  5. package/components/Checkbox/sgds-checkbox.js.map +1 -1
  6. package/components/ComboBox/index.umd.min.js +241 -241
  7. package/components/ComboBox/index.umd.min.js.map +1 -1
  8. package/components/Datepicker/index.umd.min.js +86 -86
  9. package/components/Datepicker/index.umd.min.js.map +1 -1
  10. package/components/Input/index.umd.min.js +2 -2
  11. package/components/Input/index.umd.min.js.map +1 -1
  12. package/components/Input/input.js +1 -1
  13. package/components/QuantityToggle/index.umd.min.js +40 -40
  14. package/components/QuantityToggle/index.umd.min.js.map +1 -1
  15. package/components/QuantityToggle/sgds-quantity-toggle.d.ts +1 -2
  16. package/components/QuantityToggle/sgds-quantity-toggle.js +9 -18
  17. package/components/QuantityToggle/sgds-quantity-toggle.js.map +1 -1
  18. package/components/Select/index.umd.min.js +1 -1
  19. package/components/Tab/index.umd.min.js +1 -1
  20. package/components/Tab/index.umd.min.js.map +1 -1
  21. package/components/Tab/tab-panel.js +1 -1
  22. package/components/Textarea/index.umd.min.js +1 -1
  23. package/components/Textarea/index.umd.min.js.map +1 -1
  24. package/components/Textarea/textarea.js +1 -1
  25. package/components/index.d.ts +0 -4
  26. package/components/index.js +0 -4
  27. package/components/index.js.map +1 -1
  28. package/components/index.umd.min.js +482 -576
  29. package/components/index.umd.min.js.map +1 -1
  30. package/css/fouc.css +1 -5
  31. package/custom-elements.json +3036 -4391
  32. package/index.d.ts +0 -1
  33. package/index.js +0 -1
  34. package/index.js.map +1 -1
  35. package/index.umd.min.js +311 -405
  36. package/index.umd.min.js.map +1 -1
  37. package/package.json +1 -1
  38. package/react/components/Checkbox/sgds-checkbox.cjs.js +1 -6
  39. package/react/components/Checkbox/sgds-checkbox.cjs.js.map +1 -1
  40. package/react/components/Checkbox/sgds-checkbox.js +1 -6
  41. package/react/components/Checkbox/sgds-checkbox.js.map +1 -1
  42. package/react/components/Input/input.cjs.js +1 -1
  43. package/react/components/Input/input.js +1 -1
  44. package/react/components/QuantityToggle/sgds-quantity-toggle.cjs.js +9 -18
  45. package/react/components/QuantityToggle/sgds-quantity-toggle.cjs.js.map +1 -1
  46. package/react/components/QuantityToggle/sgds-quantity-toggle.js +9 -18
  47. package/react/components/QuantityToggle/sgds-quantity-toggle.js.map +1 -1
  48. package/react/components/Tab/tab-panel.cjs.js +1 -1
  49. package/react/components/Tab/tab-panel.js +1 -1
  50. package/react/components/Textarea/textarea.cjs.js +1 -1
  51. package/react/components/Textarea/textarea.js +1 -1
  52. package/react/index.cjs.js +124 -132
  53. package/react/index.cjs.js.map +1 -1
  54. package/react/index.d.ts +1 -5
  55. package/react/index.js +1 -5
  56. package/react/index.js.map +1 -1
  57. package/react/styles/form-text-control.cjs.js +1 -1
  58. package/react/styles/form-text-control.js +1 -1
  59. package/styles/form-text-control.js +1 -1
  60. package/types/react.d.ts +16 -109
  61. package/components/DataTable/data-table.js +0 -6
  62. package/components/DataTable/data-table.js.map +0 -1
  63. package/components/DataTable/index.d.ts +0 -12
  64. package/components/DataTable/index.js +0 -11
  65. package/components/DataTable/index.js.map +0 -1
  66. package/components/DataTable/index.umd.min.js +0 -2634
  67. package/components/DataTable/index.umd.min.js.map +0 -1
  68. package/components/DataTable/sgds-data-table-cell.d.ts +0 -15
  69. package/components/DataTable/sgds-data-table-cell.js +0 -32
  70. package/components/DataTable/sgds-data-table-cell.js.map +0 -1
  71. package/components/DataTable/sgds-data-table-head.d.ts +0 -28
  72. package/components/DataTable/sgds-data-table-head.js +0 -69
  73. package/components/DataTable/sgds-data-table-head.js.map +0 -1
  74. package/components/DataTable/sgds-data-table-row.d.ts +0 -76
  75. package/components/DataTable/sgds-data-table-row.js +0 -333
  76. package/components/DataTable/sgds-data-table-row.js.map +0 -1
  77. package/components/DataTable/sgds-data-table.d.ts +0 -82
  78. package/components/DataTable/sgds-data-table.js +0 -405
  79. package/components/DataTable/sgds-data-table.js.map +0 -1
  80. package/react/components/DataTable/data-table.cjs.js +0 -11
  81. package/react/components/DataTable/data-table.cjs.js.map +0 -1
  82. package/react/components/DataTable/data-table.js +0 -7
  83. package/react/components/DataTable/data-table.js.map +0 -1
  84. package/react/components/DataTable/sgds-data-table-cell.cjs.js +0 -38
  85. package/react/components/DataTable/sgds-data-table-cell.cjs.js.map +0 -1
  86. package/react/components/DataTable/sgds-data-table-cell.js +0 -33
  87. package/react/components/DataTable/sgds-data-table-cell.js.map +0 -1
  88. package/react/components/DataTable/sgds-data-table-head.cjs.js +0 -75
  89. package/react/components/DataTable/sgds-data-table-head.cjs.js.map +0 -1
  90. package/react/components/DataTable/sgds-data-table-head.js +0 -70
  91. package/react/components/DataTable/sgds-data-table-head.js.map +0 -1
  92. package/react/components/DataTable/sgds-data-table-row.cjs.js +0 -339
  93. package/react/components/DataTable/sgds-data-table-row.cjs.js.map +0 -1
  94. package/react/components/DataTable/sgds-data-table-row.js +0 -334
  95. package/react/components/DataTable/sgds-data-table-row.js.map +0 -1
  96. package/react/components/DataTable/sgds-data-table.cjs.js +0 -411
  97. package/react/components/DataTable/sgds-data-table.cjs.js.map +0 -1
  98. package/react/components/DataTable/sgds-data-table.js +0 -406
  99. package/react/components/DataTable/sgds-data-table.js.map +0 -1
  100. package/react/data-table/index.cjs.js +0 -44
  101. package/react/data-table/index.cjs.js.map +0 -1
  102. package/react/data-table/index.d.ts +0 -4
  103. package/react/data-table/index.js +0 -20
  104. package/react/data-table/index.js.map +0 -1
  105. package/react/data-table-cell/index.cjs.js +0 -40
  106. package/react/data-table-cell/index.cjs.js.map +0 -1
  107. package/react/data-table-cell/index.d.ts +0 -4
  108. package/react/data-table-cell/index.js +0 -16
  109. package/react/data-table-cell/index.js.map +0 -1
  110. package/react/data-table-head/index.cjs.js +0 -40
  111. package/react/data-table-head/index.cjs.js.map +0 -1
  112. package/react/data-table-head/index.d.ts +0 -4
  113. package/react/data-table-head/index.js +0 -16
  114. package/react/data-table-head/index.js.map +0 -1
  115. package/react/data-table-row/index.cjs.js +0 -45
  116. package/react/data-table-row/index.cjs.js.map +0 -1
  117. package/react/data-table-row/index.d.ts +0 -4
  118. package/react/data-table-row/index.js +0 -21
  119. package/react/data-table-row/index.js.map +0 -1
@@ -1,33 +0,0 @@
1
- 'use client';
2
- import { __decorate } from 'tslib';
3
- import { css, html } from 'lit';
4
- import SgdsElement from '../../base/sgds-element.js';
5
- import { property } from 'lit/decorators.js';
6
-
7
- /**
8
- * @summary Data container for a table cell. Rendered as a `<td>` by the parent `sgds-data-table-row`.
9
- *
10
- * @slot default - Content to display inside the cell.
11
- */
12
- class SgdsDataTableCell extends SgdsElement {
13
- render() {
14
- return html `<slot></slot>`;
15
- }
16
- }
17
- SgdsDataTableCell.styles = [
18
- ...SgdsElement.styles,
19
- css `
20
- :host {
21
- display: contents;
22
- }
23
- `
24
- ];
25
- __decorate([
26
- property({ type: Number, reflect: true })
27
- ], SgdsDataTableCell.prototype, "colspan", void 0);
28
- __decorate([
29
- property({ type: Number, reflect: true })
30
- ], SgdsDataTableCell.prototype, "rowspan", void 0);
31
-
32
- export { SgdsDataTableCell, SgdsDataTableCell as default };
33
- //# sourceMappingURL=sgds-data-table-cell.js.map
@@ -1 +0,0 @@
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;;;;"}
@@ -1,75 +0,0 @@
1
- 'use client';
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, '__esModule', { value: true });
5
-
6
- var tslib = require('tslib');
7
- var lit = require('lit');
8
- var sgdsElement = require('../../base/sgds-element.cjs.js');
9
- var decorators_js = require('lit/decorators.js');
10
-
11
- /**
12
- * @summary Data container for a table header cell. Rendered as a `<th>` by the parent `sgds-data-table-row`.
13
- *
14
- * @slot default - Content to display inside the header cell.
15
- *
16
- */
17
- class SgdsDataTableHead extends sgdsElement["default"] {
18
- constructor() {
19
- super(...arguments);
20
- /** Text alignment for the header content. */
21
- this.textAlign = "left";
22
- /** When true, clicking this header cycles through ascending → descending → none sort. */
23
- this.sorting = false;
24
- /** Column key emitted in the row's internal sort payload, used to identify which column to sort. */
25
- this.sortKey = "";
26
- }
27
- /** @internal — called by the row when the rendered `<th>` is clicked. */
28
- handleSortClick() {
29
- if (!this.sorting)
30
- return;
31
- const next = this.ariasort === "ascending" ? "descending" : this.ariasort === "descending" ? "none" : "ascending";
32
- this.ariasort = next;
33
- this.emit("i-sgds-sort", {
34
- detail: { key: this.sortKey, direction: next },
35
- bubbles: true,
36
- composed: true
37
- });
38
- }
39
- render() {
40
- return lit.html `<slot></slot>`;
41
- }
42
- }
43
- SgdsDataTableHead.styles = [
44
- ...sgdsElement["default"].styles,
45
- lit.css `
46
- :host {
47
- display: contents;
48
- }
49
- `
50
- ];
51
- tslib.__decorate([
52
- decorators_js.property({ type: String, reflect: true })
53
- ], SgdsDataTableHead.prototype, "width", void 0);
54
- tslib.__decorate([
55
- decorators_js.property({ type: Number, reflect: true })
56
- ], SgdsDataTableHead.prototype, "colspan", void 0);
57
- tslib.__decorate([
58
- decorators_js.property({ type: Number, reflect: true })
59
- ], SgdsDataTableHead.prototype, "rowspan", void 0);
60
- tslib.__decorate([
61
- decorators_js.property({ type: String, reflect: true })
62
- ], SgdsDataTableHead.prototype, "textAlign", void 0);
63
- tslib.__decorate([
64
- decorators_js.property({ type: String, reflect: true })
65
- ], SgdsDataTableHead.prototype, "ariasort", void 0);
66
- tslib.__decorate([
67
- decorators_js.property({ type: Boolean, reflect: true })
68
- ], SgdsDataTableHead.prototype, "sorting", void 0);
69
- tslib.__decorate([
70
- decorators_js.property({ type: String, reflect: true })
71
- ], SgdsDataTableHead.prototype, "sortKey", void 0);
72
-
73
- exports.SgdsDataTableHead = SgdsDataTableHead;
74
- exports["default"] = SgdsDataTableHead;
75
- //# sourceMappingURL=sgds-data-table-head.cjs.js.map
@@ -1 +0,0 @@
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,70 +0,0 @@
1
- 'use client';
2
- import { __decorate } from 'tslib';
3
- import { css, html } from 'lit';
4
- import SgdsElement from '../../base/sgds-element.js';
5
- import { property } from 'lit/decorators.js';
6
-
7
- /**
8
- * @summary Data container for a table header cell. Rendered as a `<th>` by the parent `sgds-data-table-row`.
9
- *
10
- * @slot default - Content to display inside the header cell.
11
- *
12
- */
13
- class SgdsDataTableHead extends SgdsElement {
14
- constructor() {
15
- super(...arguments);
16
- /** Text alignment for the header content. */
17
- this.textAlign = "left";
18
- /** When true, clicking this header cycles through ascending → descending → none sort. */
19
- this.sorting = false;
20
- /** Column key emitted in the row's internal sort payload, used to identify which column to sort. */
21
- this.sortKey = "";
22
- }
23
- /** @internal — called by the row when the rendered `<th>` is clicked. */
24
- handleSortClick() {
25
- if (!this.sorting)
26
- return;
27
- const next = this.ariasort === "ascending" ? "descending" : this.ariasort === "descending" ? "none" : "ascending";
28
- this.ariasort = next;
29
- this.emit("i-sgds-sort", {
30
- detail: { key: this.sortKey, direction: next },
31
- bubbles: true,
32
- composed: true
33
- });
34
- }
35
- render() {
36
- return html `<slot></slot>`;
37
- }
38
- }
39
- SgdsDataTableHead.styles = [
40
- ...SgdsElement.styles,
41
- css `
42
- :host {
43
- display: contents;
44
- }
45
- `
46
- ];
47
- __decorate([
48
- property({ type: String, reflect: true })
49
- ], SgdsDataTableHead.prototype, "width", void 0);
50
- __decorate([
51
- property({ type: Number, reflect: true })
52
- ], SgdsDataTableHead.prototype, "colspan", void 0);
53
- __decorate([
54
- property({ type: Number, reflect: true })
55
- ], SgdsDataTableHead.prototype, "rowspan", void 0);
56
- __decorate([
57
- property({ type: String, reflect: true })
58
- ], SgdsDataTableHead.prototype, "textAlign", void 0);
59
- __decorate([
60
- property({ type: String, reflect: true })
61
- ], SgdsDataTableHead.prototype, "ariasort", void 0);
62
- __decorate([
63
- property({ type: Boolean, reflect: true })
64
- ], SgdsDataTableHead.prototype, "sorting", void 0);
65
- __decorate([
66
- property({ type: String, reflect: true })
67
- ], SgdsDataTableHead.prototype, "sortKey", void 0);
68
-
69
- export { SgdsDataTableHead, SgdsDataTableHead as default };
70
- //# sourceMappingURL=sgds-data-table-head.js.map
@@ -1 +0,0 @@
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;;;;"}
@@ -1,339 +0,0 @@
1
- 'use client';
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, '__esModule', { value: true });
5
-
6
- var tslib = require('tslib');
7
- var lit = require('lit');
8
- var decorators_js = require('lit/decorators.js');
9
- var ifDefined_js = require('lit/directives/if-defined.js');
10
- var sgdsElement = require('../../base/sgds-element.cjs.js');
11
- var sgdsCheckbox = require('../Checkbox/sgds-checkbox.cjs.js');
12
- var animate = require('../../utils/animate.cjs.js');
13
- var animationRegistry = require('../../utils/animation-registry.cjs.js');
14
- var event = require('../../utils/event.cjs.js');
15
- var watch = require('../../utils/watch.cjs.js');
16
- var dataTable = require('./data-table.cjs.js');
17
- var sgdsDataTableCell = require('./sgds-data-table-cell.cjs.js');
18
- var sgdsDataTableHead = require('./sgds-data-table-head.cjs.js');
19
- var sgdsIcon = require('../Icon/sgds-icon.cjs.js');
20
-
21
- /**
22
- * @summary A data table row. Set `expand` to enable an expandable content area beneath
23
- * the row, then place detail content in the `content` slot.
24
- *
25
- * @slot default - Insert `sgds-data-table-cell` or `sgds-data-table-head` elements.
26
- * @slot content - Content shown in the animated expand area beneath the row.
27
- *
28
- * @event sgds-show - Emitted when the expandable row begins to open.
29
- * @event sgds-after-show - Emitted after the expandable row open animation completes.
30
- * @event sgds-hide - Emitted when the expandable row begins to close.
31
- * @event sgds-after-hide - Emitted after the expandable row close animation completes.
32
- */
33
- class SgdsDataTableRow extends sgdsElement["default"] {
34
- constructor() {
35
- super(...arguments);
36
- /** Arbitrary data associated with this row. Returned in event detail on row selection. */
37
- this.rowData = {};
38
- /** When true, the row has an expandable content area toggled by a chevron. */
39
- this.expand = false;
40
- /** When true, the expandable content area is open. */
41
- this.open = false;
42
- /** When true, the row is checked. */
43
- this.checked = false;
44
- /** @internal — set by `sgds-data-table` to show a checkbox cell on this row. */
45
- this.showCheckbox = false;
46
- /** @internal — set by `sgds-data-table` when at least one sibling row is expandable. */
47
- this.showExpandPlaceholder = false;
48
- /** @internal — per-column alignment injected by `sgds-data-table` from header cells. */
49
- this.columnAlignments = [];
50
- /** @internal — set by `sgds-data-table` to indicate whether body rows exist. */
51
- this.hasDataRows = false;
52
- this._isHeaderRow = false;
53
- this._cellSlotNames = new WeakMap();
54
- }
55
- /** The checkbox rendered inside this row, if `showCheckbox` is true. */
56
- get checkbox() {
57
- var _a;
58
- return (_a = this._checkboxEl) !== null && _a !== void 0 ? _a : null;
59
- }
60
- connectedCallback() {
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();
70
- }
71
- firstUpdated() {
72
- if (this._expandableBody) {
73
- this._expandableBody.hidden = !this.open;
74
- }
75
- }
76
- async handleExpandedChange() {
77
- if (this.open) {
78
- const sgdsShow = this.emit("sgds-show", { cancelable: true });
79
- if (sgdsShow.defaultPrevented) {
80
- this.open = false;
81
- return;
82
- }
83
- await animate.stopAnimations(this._expandableBody);
84
- this._expandableBody.hidden = false;
85
- const { keyframes, options } = animationRegistry.getAnimation(this, "row.expand.show");
86
- await animate.animateTo(this._expandableBody, animate.shimKeyframesHeightAuto(keyframes, this._expandableBody.scrollHeight), options);
87
- this.emit("sgds-after-show");
88
- }
89
- else {
90
- const sgdsHide = this.emit("sgds-hide", { cancelable: true });
91
- if (sgdsHide.defaultPrevented) {
92
- this.open = true;
93
- return;
94
- }
95
- await animate.stopAnimations(this._expandableBody);
96
- const { keyframes, options } = animationRegistry.getAnimation(this, "row.expand.hide");
97
- await animate.animateTo(this._expandableBody, animate.shimKeyframesHeightAuto(keyframes, this._expandableBody.scrollHeight), options);
98
- this._expandableBody.hidden = true;
99
- this.emit("sgds-after-hide");
100
- }
101
- }
102
- async handleCheckedChange() {
103
- if (this.checked) {
104
- this.emit("i-sgds-change", { detail: { checked: true } });
105
- }
106
- }
107
- /** Opens the expandable content area. */
108
- async show() {
109
- if (this.open)
110
- return;
111
- this.open = true;
112
- return event.waitForEvent(this, "sgds-after-show");
113
- }
114
- /** Closes the expandable content area. */
115
- async hide() {
116
- if (!this.open)
117
- return;
118
- this.open = false;
119
- return event.waitForEvent(this, "sgds-after-hide");
120
- }
121
- /** @internal — returns visible text content for a body cell by visual column index. */
122
- getCellText(columnIndex) {
123
- var _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);
146
- this._isHeaderRow = cells.some(cell => cell instanceof sgdsDataTableHead.SgdsDataTableHead);
147
- this.requestUpdate();
148
- }
149
- _onCheckboxChange(e) {
150
- this.emit("i-sgds-change", { detail: { checked: e.target.checked } });
151
- }
152
- _toggleExpand() {
153
- this.open ? this.hide() : this.show();
154
- }
155
- _onExpandKeyDown(e) {
156
- if (e.key !== "Enter")
157
- return;
158
- e.preventDefault();
159
- this._toggleExpand();
160
- }
161
- _onSortKeyDown(e, header) {
162
- if (e.key !== "Enter")
163
- return;
164
- e.preventDefault();
165
- header.handleSortClick();
166
- }
167
- _renderCell(el, columnIndex) {
168
- var _a;
169
- const slotName = this._cellSlotNames.get(el);
170
- if (el instanceof sgdsDataTableHead.SgdsDataTableHead) {
171
- return lit.html `<th
172
- width=${ifDefined_js.ifDefined(el.width)}
173
- colspan=${ifDefined_js.ifDefined(el.colspan)}
174
- rowspan=${ifDefined_js.ifDefined(el.rowspan)}
175
- aria-sort=${ifDefined_js.ifDefined(el.ariasort)}
176
- scope="col"
177
- tabindex=${ifDefined_js.ifDefined(el.sorting ? "0" : undefined)}
178
- ?data-sorting=${el.sorting}
179
- @click=${el.sorting ? () => el.handleSortClick() : lit.nothing}
180
- @keydown=${el.sorting ? (e) => this._onSortKeyDown(e, el) : lit.nothing}
181
- >
182
- <div class="data-table-head ${el.textAlign === "right" ? "align-right" : "align-left"}">
183
- ${slotName ? lit.html `<slot name=${slotName}></slot>` : lit.nothing}
184
- ${el.sorting
185
- ? lit.html `
186
- <button
187
- type="button"
188
- class="sort-button ${el.ariasort === "none" ? "" : "active"}"
189
- aria-label=${el.ariasort === "descending" ? "Sort descending" : "Sort ascending"}
190
- ?disabled=${!this.hasDataRows}
191
- >
192
- <sgds-icon
193
- class="sort-icon"
194
- name=${el.ariasort === "descending" ? "sort-descending" : "sort-ascending"}
195
- size="sm"
196
- ></sgds-icon>
197
- </button>
198
- `
199
- : lit.nothing}
200
- </div>
201
- </th>`;
202
- }
203
- const cellAlignment = (_a = this.columnAlignments[columnIndex]) !== null && _a !== void 0 ? _a : "left";
204
- return lit.html `<td colspan=${ifDefined_js.ifDefined(el.colspan)} rowspan=${ifDefined_js.ifDefined(el.rowspan)}>
205
- <div class="data-table-cell ${cellAlignment === "right" ? "align-right" : "align-left"}">
206
- ${slotName ? lit.html `<slot name=${slotName}></slot>` : lit.nothing}
207
- </div>
208
- </td>`;
209
- }
210
- _renderExpandCell() {
211
- if (this._isHeaderRow) {
212
- return lit.html `<th class="control-cell" scope="col"></th>`;
213
- }
214
- return lit.html `<td class="control-cell" @click=${this._toggleExpand} @keydown=${this._onExpandKeyDown} tabindex="0">
215
- <div class="data-table-cell expand-cell">
216
- <sgds-icon name=${this.open ? "chevron-up" : "chevron-down"} size="md"></sgds-icon>
217
- </div>
218
- </td>`;
219
- }
220
- _renderExpandPlaceholder() {
221
- return this._isHeaderRow ? lit.html `<th class="control-cell" scope="col"></th>` : lit.html `<td class="control-cell"></td>`;
222
- }
223
- _renderCheckboxCell() {
224
- return this._isHeaderRow
225
- ? lit.html `<th class="control-cell" scope="col">
226
- <div class="data-table-cell checkbox-cell">
227
- <sgds-checkbox .checked=${this.checked} @sgds-change=${this._onCheckboxChange}></sgds-checkbox>
228
- </div>
229
- </th>`
230
- : lit.html `<td class="control-cell">
231
- <div class="data-table-cell checkbox-cell">
232
- <sgds-checkbox .checked=${this.checked} @sgds-change=${this._onCheckboxChange}></sgds-checkbox>
233
- </div>
234
- </td>`;
235
- }
236
- render() {
237
- const cells = this._getCells();
238
- const totalCols = cells.length + (this.showCheckbox ? 1 : 0) + (this.expand || this.showExpandPlaceholder ? 1 : 0);
239
- const rowPart = this._isHeaderRow ? "row row-header" : "row row-body";
240
- return lit.html `
241
- <tr part=${rowPart} ?data-header-row=${this._isHeaderRow} class=${this.open ? "active" : ""}>
242
- ${this.expand
243
- ? this._renderExpandCell()
244
- : this.showExpandPlaceholder
245
- ? this._renderExpandPlaceholder()
246
- : lit.nothing}
247
- ${this.showCheckbox ? this._renderCheckboxCell() : lit.nothing}
248
- ${(() => {
249
- let visualColumnIndex = 0;
250
- return cells.map(el => {
251
- const renderedCell = this._renderCell(el, visualColumnIndex);
252
- const span = Number(el.colspan) > 0 ? Number(el.colspan) : 1;
253
- visualColumnIndex += span;
254
- return renderedCell;
255
- });
256
- })()}
257
- </tr>
258
-
259
- ${this.expand
260
- ? lit.html `
261
- <tr class="expandable-row">
262
- <td colspan=${totalCols} class="expandable-td">
263
- <div class="expandable-body">
264
- <div class="expandable-content">
265
- <slot name="content"></slot>
266
- </div>
267
- </div>
268
- </td>
269
- </tr>
270
- `
271
- : lit.nothing}
272
- `;
273
- }
274
- }
275
- SgdsDataTableRow.styles = [...sgdsElement["default"].styles, dataTable["default"]];
276
- /** @internal */
277
- SgdsDataTableRow.dependencies = {
278
- "sgds-checkbox": sgdsCheckbox.SgdsCheckbox,
279
- "sgds-data-table-cell": sgdsDataTableCell.SgdsDataTableCell,
280
- "sgds-data-table-head": sgdsDataTableHead.SgdsDataTableHead,
281
- "sgds-icon": sgdsIcon.SgdsIcon
282
- };
283
- tslib.__decorate([
284
- decorators_js.property({ type: Object, reflect: true })
285
- ], SgdsDataTableRow.prototype, "rowData", void 0);
286
- tslib.__decorate([
287
- decorators_js.property({ type: Boolean, reflect: true })
288
- ], SgdsDataTableRow.prototype, "expand", void 0);
289
- tslib.__decorate([
290
- decorators_js.property({ type: Boolean, reflect: true })
291
- ], SgdsDataTableRow.prototype, "open", void 0);
292
- tslib.__decorate([
293
- decorators_js.property({ type: Boolean, reflect: true })
294
- ], SgdsDataTableRow.prototype, "checked", void 0);
295
- tslib.__decorate([
296
- decorators_js.property({ type: Boolean })
297
- ], SgdsDataTableRow.prototype, "showCheckbox", void 0);
298
- tslib.__decorate([
299
- decorators_js.property({ type: Boolean })
300
- ], SgdsDataTableRow.prototype, "showExpandPlaceholder", void 0);
301
- tslib.__decorate([
302
- decorators_js.property({ attribute: false })
303
- ], SgdsDataTableRow.prototype, "columnAlignments", void 0);
304
- tslib.__decorate([
305
- decorators_js.property({ type: Boolean })
306
- ], SgdsDataTableRow.prototype, "hasDataRows", void 0);
307
- tslib.__decorate([
308
- decorators_js.query(".expandable-body")
309
- ], SgdsDataTableRow.prototype, "_expandableBody", void 0);
310
- tslib.__decorate([
311
- decorators_js.query("sgds-checkbox")
312
- ], SgdsDataTableRow.prototype, "_checkboxEl", void 0);
313
- tslib.__decorate([
314
- decorators_js.state()
315
- ], SgdsDataTableRow.prototype, "_isHeaderRow", void 0);
316
- tslib.__decorate([
317
- watch.watch("open", { waitUntilFirstUpdate: true })
318
- ], SgdsDataTableRow.prototype, "handleExpandedChange", null);
319
- tslib.__decorate([
320
- watch.watch("checked")
321
- ], SgdsDataTableRow.prototype, "handleCheckedChange", null);
322
- animationRegistry.setDefaultAnimation("row.expand.show", {
323
- keyframes: [
324
- { height: "0", opacity: "0" },
325
- { height: "auto", opacity: "1" }
326
- ],
327
- options: { duration: 250, easing: "ease-in-out" }
328
- });
329
- animationRegistry.setDefaultAnimation("row.expand.hide", {
330
- keyframes: [
331
- { height: "auto", opacity: "1" },
332
- { height: "0", opacity: "0" }
333
- ],
334
- options: { duration: 250, easing: "ease-in-out" }
335
- });
336
-
337
- exports.SgdsDataTableRow = SgdsDataTableRow;
338
- exports["default"] = SgdsDataTableRow;
339
- //# sourceMappingURL=sgds-data-table-row.cjs.js.map
@@ -1 +0,0 @@
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":";;;;;;;;;;;;;;;;;;;;AAcA;;;;;;;;;;;AAWG;AACG,MAAO,gBAAiB,SAAQA,sBAAW,CAAA;AAAjD,IAAA,WAAA,GAAA;;;QAY6C,IAAO,CAAA,OAAA,GAA4B,EAAE,CAAC;;QAGrC,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;;QAGf,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;;QAGb,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;;QAG/B,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;;QAGrB,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;;QAG3B,IAAgB,CAAA,gBAAA,GAA4B,EAAE,CAAC;;QAElD,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAQhC,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAiD,CAAC;KAwPvF;;AApPC,IAAA,IAAI,QAAQ,GAAA;;AACV,QAAA,OAAO,MAAA,IAAI,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,CAAC;KACjC;IAED,iBAAiB,GAAA;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAClF,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;IAED,oBAAoB,GAAA;;AAClB,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,iBAAiB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,EAAE,CAAC;QACrC,KAAK,CAAC,oBAAoB,EAAE,CAAC;KAC9B;IAED,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;SAC1C;KACF;IAGK,MAAA,oBAAoB,GAAA;AACxB,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,YAAA,IAAI,QAAQ,CAAC,gBAAgB,EAAE;AAC7B,gBAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;gBAClB,OAAO;aACR;AACD,YAAA,MAAMC,sBAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC3C,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,KAAK,CAAC;AACpC,YAAA,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAGC,8BAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;AACrE,YAAA,MAAMC,iBAAS,CACb,IAAI,CAAC,eAAe,EACpBC,+BAAuB,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EACrE,OAAO,CACR,CAAC;AACF,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SAC9B;aAAM;AACL,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,YAAA,IAAI,QAAQ,CAAC,gBAAgB,EAAE;AAC7B,gBAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gBACjB,OAAO;aACR;AACD,YAAA,MAAMH,sBAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC3C,YAAA,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAGC,8BAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;AACrE,YAAA,MAAMC,iBAAS,CACb,IAAI,CAAC,eAAe,EACpBC,+BAAuB,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EACrE,OAAO,CACR,CAAC;AACF,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;AACnC,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SAC9B;KACF;IAGK,MAAA,mBAAmB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;SAC3D;KACF;;AAGM,IAAA,MAAM,IAAI,GAAA;QACf,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO;AACtB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,OAAOC,kBAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;KAC9C;;AAGM,IAAA,MAAM,IAAI,GAAA;QACf,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO;AACvB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAClB,QAAA,OAAOA,kBAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;KAC9C;;AAGM,IAAA,WAAW,CAAC,WAAmB,EAAA;;AACpC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,YAAYC,mCAAiB,CAAwB,CAAC;AACxG,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,EAAE,IAAI,EAAE,CAAC;KACxC;IAEO,SAAS,GAAA;QACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CACrC,KAAK,IAAI,KAAK,YAAYA,mCAAiB,IAAI,KAAK,YAAYC,mCAAiB,CAClC,CAAC;KACnD;AAEO,IAAA,cAAc,CAAC,KAAmD,EAAA;AACxE,QAAA,KAAK,CAAC,OAAO,CAAC,IAAI,IAAG;YACnB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAClC,YAAA,MAAM,QAAQ,GAAG,CAAQ,KAAA,EAAA,KAAK,EAAE,CAAC;YACjC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACxC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE;AAC1C,gBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;aACrC;AACH,SAAC,CAAC,CAAC;KACJ;IAEO,qBAAqB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,YAAYA,mCAAiB,CAAC,CAAC;QAC1E,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;AAEO,IAAA,iBAAiB,CAAC,CAAc,EAAA;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAG,CAAC,CAAC,MAAuB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;KACzF;IAEO,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;KACvC;AAEO,IAAA,gBAAgB,CAAC,CAAgB,EAAA;AACvC,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;YAAE,OAAO;QAC9B,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAEO,cAAc,CAAC,CAAgB,EAAE,MAAyB,EAAA;AAChE,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;YAAE,OAAO;QAC9B,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,MAAM,CAAC,eAAe,EAAE,CAAC;KAC1B;IAEO,WAAW,CAAC,EAAyC,EAAE,WAAmB,EAAA;;QAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAE7C,QAAA,IAAI,EAAE,YAAYA,mCAAiB,EAAE;AACnC,YAAA,OAAOC,QAAI,CAAA,CAAA;AACD,cAAA,EAAAC,sBAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;AACjB,gBAAA,EAAAA,sBAAS,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;AACrB,gBAAA,EAAAA,sBAAS,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;AACnB,kBAAA,EAAAA,sBAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAA;;AAEvB,iBAAA,EAAAA,sBAAS,CAAC,EAAE,CAAC,OAAO,GAAG,GAAG,GAAG,SAAS,CAAC,CAAA;AAClC,sBAAA,EAAA,EAAE,CAAC,OAAO,CAAA;AACjB,eAAA,EAAA,EAAE,CAAC,OAAO,GAAG,MAAM,EAAE,CAAC,eAAe,EAAE,GAAGC,WAAO,CAAA;mBAC/C,EAAE,CAAC,OAAO,GAAG,CAAC,CAAgB,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,GAAGA,WAAO,CAAA;;sCAEpD,EAAE,CAAC,SAAS,KAAK,OAAO,GAAG,aAAa,GAAG,YAAY,CAAA;YACjF,QAAQ,GAAGF,QAAI,CAAA,CAAc,WAAA,EAAA,QAAQ,CAAU,QAAA,CAAA,GAAGE,WAAO,CAAA;AACzD,UAAA,EAAA,EAAE,CAAC,OAAO;kBACRF,QAAI,CAAA,CAAA;;;uCAGqB,EAAE,CAAC,QAAQ,KAAK,MAAM,GAAG,EAAE,GAAG,QAAQ,CAAA;+BAC9C,EAAE,CAAC,QAAQ,KAAK,YAAY,GAAG,iBAAiB,GAAG,gBAAgB,CAAA;8BACpE,CAAC,IAAI,CAAC,WAAW,CAAA;;;;2BAIpB,EAAE,CAAC,QAAQ,KAAK,YAAY,GAAG,iBAAiB,GAAG,gBAAgB,CAAA;;;;AAI/E,cAAA,CAAA;AACH,kBAAEE,WAAO,CAAA;;YAET,CAAC;SACR;QAED,MAAM,aAAa,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,MAAM,CAAC;AACnE,QAAA,OAAOF,QAAI,CAAA,CAAe,YAAA,EAAAC,sBAAS,CAAC,EAAE,CAAC,OAAO,CAAC,YAAYA,sBAAS,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;oCAChD,aAAa,KAAK,OAAO,GAAG,aAAa,GAAG,YAAY,CAAA;UAClF,QAAQ,GAAGD,QAAI,CAAA,CAAc,WAAA,EAAA,QAAQ,CAAU,QAAA,CAAA,GAAGE,WAAO,CAAA;;UAEzD,CAAC;KACR;IAEO,iBAAiB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,OAAOF,QAAI,CAAA,CAAA,0CAAA,CAA4C,CAAC;SACzD;QAED,OAAOA,QAAI,CAAA,CAAmC,gCAAA,EAAA,IAAI,CAAC,aAAa,CAAA,UAAA,EAAa,IAAI,CAAC,gBAAgB,CAAA;;0BAE5E,IAAI,CAAC,IAAI,GAAG,YAAY,GAAG,cAAc,CAAA;;UAEzD,CAAC;KACR;IAEO,wBAAwB,GAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,YAAY,GAAGA,QAAI,CAAA,CAAA,0CAAA,CAA4C,GAAGA,QAAI,CAAA,gCAAgC,CAAC;KACpH;IAEO,mBAAmB,GAAA;QACzB,OAAO,IAAI,CAAC,YAAY;cACpBA,QAAI,CAAA,CAAA;;AAE0B,oCAAA,EAAA,IAAI,CAAC,OAAO,CAAiB,cAAA,EAAA,IAAI,CAAC,iBAAiB,CAAA;;AAE3E,aAAA,CAAA;cACNA,QAAI,CAAA,CAAA;;AAE0B,oCAAA,EAAA,IAAI,CAAC,OAAO,CAAiB,cAAA,EAAA,IAAI,CAAC,iBAAiB,CAAA;;cAE3E,CAAC;KACZ;IAED,MAAM,GAAA;AACJ,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AAC/B,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,qBAAqB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnH,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,gBAAgB,GAAG,cAAc,CAAC;AAEtE,QAAA,OAAOA,QAAI,CAAA,CAAA;AACE,eAAA,EAAA,OAAO,CAAqB,kBAAA,EAAA,IAAI,CAAC,YAAY,UAAU,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,EAAE,CAAA;AACvF,QAAA,EAAA,IAAI,CAAC,MAAM;AACX,cAAE,IAAI,CAAC,iBAAiB,EAAE;cACxB,IAAI,CAAC,qBAAqB;AAC5B,kBAAE,IAAI,CAAC,wBAAwB,EAAE;AACjC,kBAAEE,WAAO,CAAA;AACT,QAAA,EAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAGA,WAAO,CAAA;AACxD,QAAA,EAAA,CAAC,MAAK;YACN,IAAI,iBAAiB,GAAG,CAAC,CAAC;AAC1B,YAAA,OAAO,KAAK,CAAC,GAAG,CAAC,EAAE,IAAG;gBACpB,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;gBAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC7D,iBAAiB,IAAI,IAAI,CAAC;AAC1B,gBAAA,OAAO,YAAY,CAAC;AACtB,aAAC,CAAC,CAAC;AACL,SAAC,GAAG,CAAA;;;AAGJ,MAAA,EAAA,IAAI,CAAC,MAAM;cACTF,QAAI,CAAA,CAAA;;4BAEc,SAAS,CAAA;;;;;;;;AAQ1B,UAAA,CAAA;AACH,cAAEE,WAAO,CAAA;KACZ,CAAC;KACH;;AA/RM,gBAAM,CAAA,MAAA,GAAG,CAAC,GAAGV,sBAAW,CAAC,MAAM,EAAEW,oBAAa,CAAxC,CAA0C;AAEvD;AACO,gBAAA,CAAA,YAAY,GAAG;AACpB,IAAA,eAAe,EAAEC,yBAAY;AAC7B,IAAA,sBAAsB,EAAEN,mCAAiB;AACzC,IAAA,sBAAsB,EAAEC,mCAAiB;AACzC,IAAA,WAAW,EAAEM,iBAAQ;AACtB,CALkB,CAKjB;AAGyCC,gBAAA,CAAA;IAA1CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAuC,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGrCD,gBAAA,CAAA;IAA3CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAgB,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGfD,gBAAA,CAAA;IAA3CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAc,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGbD,gBAAA,CAAA;IAA3CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAiB,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAG/BD,gBAAA,CAAA;AAA5B,IAAAC,sBAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAAsB,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGrBD,gBAAA,CAAA;AAA5B,IAAAC,sBAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAA+B,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,uBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAG3BD,gBAAA,CAAA;AAA/B,IAAAC,sBAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAAgD,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAElDD,gBAAA,CAAA;AAA5B,IAAAC,sBAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAAqB,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGdD,gBAAA,CAAA;IAAlCE,mBAAK,CAAC,kBAAkB,CAAC;AAAuC,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGjCF,gBAAA,CAAA;IAA/BE,mBAAK,CAAC,eAAe,CAAC;AAAoC,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAE1CF,gBAAA,CAAA;AAAhB,IAAAG,mBAAK,EAAE;AAA8B,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AA4BhCH,gBAAA,CAAA;IADLI,WAAK,CAAC,MAAM,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;AAiC7C,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,sBAAA,EAAA,IAAA,CAAA,CAAA;AAGKJ,gBAAA,CAAA;IADLI,WAAK,CAAC,SAAS,CAAC;AAKhB,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,qBAAA,EAAA,IAAA,CAAA,CAAA;AAwLHC,qCAAmB,CAAC,iBAAiB,EAAE;AACrC,IAAA,SAAS,EAAE;AACT,QAAA,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;AAC7B,QAAA,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;AACjC,KAAA;IACD,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE;AAClD,CAAA,CAAC,CAAC;AAEHA,qCAAmB,CAAC,iBAAiB,EAAE;AACrC,IAAA,SAAS,EAAE;AACT,QAAA,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;AAChC,QAAA,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;AAC9B,KAAA;IACD,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE;AAClD,CAAA,CAAC;;;;;"}