@spectrum-web-components/table 0.39.3 → 0.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spectrum-web-components/table",
3
- "version": "0.39.3",
3
+ "version": "0.40.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -117,10 +117,10 @@
117
117
  "dependencies": {
118
118
  "@lit-labs/observers": "^2.0.0",
119
119
  "@lit-labs/virtualizer": "^2.0.6",
120
- "@spectrum-web-components/base": "^0.39.3",
121
- "@spectrum-web-components/checkbox": "^0.39.3",
122
- "@spectrum-web-components/icon": "^0.39.3",
123
- "@spectrum-web-components/icons-ui": "^0.39.3"
120
+ "@spectrum-web-components/base": "^0.40.0",
121
+ "@spectrum-web-components/checkbox": "^0.40.0",
122
+ "@spectrum-web-components/icon": "^0.40.0",
123
+ "@spectrum-web-components/icons-ui": "^0.40.0"
124
124
  },
125
125
  "devDependencies": {
126
126
  "@spectrum-css/table": "^5.0.1"
@@ -132,5 +132,5 @@
132
132
  "./elements.js",
133
133
  "./**/*.dev.js"
134
134
  ],
135
- "gitHead": "d7840b3a9b99db4de62c44e3fb91b69dec7319af"
135
+ "gitHead": "24d5569a839da94892ecfd125428779587ffb1f5"
136
136
  }
@@ -50,6 +50,14 @@ export class TableRow extends SpectrumElement {
50
50
  }
51
51
  async manageSelected() {
52
52
  await this.updateComplete;
53
+ if (this.selectable) {
54
+ this.setAttribute(
55
+ "aria-selected",
56
+ this.selected ? "true" : "false"
57
+ );
58
+ } else {
59
+ this.removeAttribute("aria-selected");
60
+ }
53
61
  const [checkboxCell] = this.checkboxCells;
54
62
  if (!checkboxCell)
55
63
  return;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["TableRow.ts"],
4
- "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport {\n CSSResultArray,\n html,\n PropertyValues,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n queryAssignedElements,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport styles from './table-row.css.js';\nimport { TableCheckboxCell } from './TableCheckboxCell.dev.js'\n\n/**\n * @element sp-table-row\n *\n * @fires sorted - Announces that `selected` of the table row has changed\n */\nexport class TableRow extends SpectrumElement {\n public static override get styles(): CSSResultArray {\n return [styles];\n }\n\n @queryAssignedElements({\n selector: 'sp-table-checkbox-cell',\n flatten: true,\n })\n checkboxCells!: TableCheckboxCell[];\n\n @property({ reflect: true })\n public role = 'row';\n\n @property({ type: Boolean })\n public selectable = false;\n\n @property({ type: Boolean, reflect: true })\n public selected = false;\n\n @property({ type: String })\n public value = '';\n\n protected async handleChange(\n event: Event & { target: TableCheckboxCell }\n ): Promise<void> {\n if (!event.target.checkbox) {\n return;\n }\n\n this.selected = event.target.checkbox.checked;\n\n await 0;\n\n if (event.defaultPrevented) {\n this.selected = !this.selected;\n }\n }\n\n protected handleSlotchange({\n target,\n }: Event & { target: HTMLSlotElement }): void {\n const assignedElements = target.assignedElements();\n this.selectable = !!assignedElements.find(\n (el) => el.localName === 'sp-table-checkbox-cell'\n );\n }\n\n protected async manageSelected(): Promise<void> {\n await this.updateComplete;\n const [checkboxCell] = this.checkboxCells;\n if (!checkboxCell) return;\n checkboxCell.checked = this.selected;\n }\n\n protected handleClick(event: Event): void {\n if (\n event\n .composedPath()\n .find(\n (node) =>\n (node as HTMLElement).localName ===\n 'sp-table-checkbox-cell'\n )\n ) {\n return;\n }\n const [checkboxCell] = this.checkboxCells;\n if (!checkboxCell) /* c8 ignore next */ return;\n checkboxCell.click();\n }\n\n protected override render(): TemplateResult {\n return html`\n <slot\n @change=${this.handleChange}\n @slotchange=${this.handleSlotchange}\n ></slot>\n `;\n }\n\n protected override willUpdate(changed: PropertyValues<this>): void {\n if (changed.has('selected')) {\n this.manageSelected();\n }\n if (changed.has('selectable')) {\n if (this.selectable) {\n this.addEventListener('click', this.handleClick);\n } else {\n this.removeEventListener('click', this.handleClick);\n }\n }\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;AAWA;AAAA,EAEI;AAAA,EAEA;AAAA,OAEG;AACP;AAAA,EACI;AAAA,EACA;AAAA,OACG;AACP,OAAO,YAAY;AAQZ,aAAM,iBAAiB,gBAAgB;AAAA,EAAvC;AAAA;AAYH,SAAO,OAAO;AAGd,SAAO,aAAa;AAGpB,SAAO,WAAW;AAGlB,SAAO,QAAQ;AAAA;AAAA,EApBf,WAA2B,SAAyB;AAChD,WAAO,CAAC,MAAM;AAAA,EAClB;AAAA,EAoBA,MAAgB,aACZ,OACa;AACb,QAAI,CAAC,MAAM,OAAO,UAAU;AACxB;AAAA,IACJ;AAEA,SAAK,WAAW,MAAM,OAAO,SAAS;AAEtC,UAAM;AAEN,QAAI,MAAM,kBAAkB;AACxB,WAAK,WAAW,CAAC,KAAK;AAAA,IAC1B;AAAA,EACJ;AAAA,EAEU,iBAAiB;AAAA,IACvB;AAAA,EACJ,GAA8C;AAC1C,UAAM,mBAAmB,OAAO,iBAAiB;AACjD,SAAK,aAAa,CAAC,CAAC,iBAAiB;AAAA,MACjC,CAAC,OAAO,GAAG,cAAc;AAAA,IAC7B;AAAA,EACJ;AAAA,EAEA,MAAgB,iBAAgC;AAC5C,UAAM,KAAK;AACX,UAAM,CAAC,YAAY,IAAI,KAAK;AAC5B,QAAI,CAAC;AAAc;AACnB,iBAAa,UAAU,KAAK;AAAA,EAChC;AAAA,EAEU,YAAY,OAAoB;AACtC,QACI,MACK,aAAa,EACb;AAAA,MACG,CAAC,SACI,KAAqB,cACtB;AAAA,IACR,GACN;AACE;AAAA,IACJ;AACA,UAAM,CAAC,YAAY,IAAI,KAAK;AAC5B,QAAI,CAAC;AAAmC;AACxC,iBAAa,MAAM;AAAA,EACvB;AAAA,EAEmB,SAAyB;AACxC,WAAO;AAAA;AAAA,0BAEW,KAAK,YAAY;AAAA,8BACb,KAAK,gBAAgB;AAAA;AAAA;AAAA,EAG/C;AAAA,EAEmB,WAAW,SAAqC;AAC/D,QAAI,QAAQ,IAAI,UAAU,GAAG;AACzB,WAAK,eAAe;AAAA,IACxB;AACA,QAAI,QAAQ,IAAI,YAAY,GAAG;AAC3B,UAAI,KAAK,YAAY;AACjB,aAAK,iBAAiB,SAAS,KAAK,WAAW;AAAA,MACnD,OAAO;AACH,aAAK,oBAAoB,SAAS,KAAK,WAAW;AAAA,MACtD;AAAA,IACJ;AAAA,EACJ;AACJ;AApFI;AAAA,EAJC,sBAAsB;AAAA,IACnB,UAAU;AAAA,IACV,SAAS;AAAA,EACb,CAAC;AAAA,GARQ,SAST;AAGO;AAAA,EADN,SAAS,EAAE,SAAS,KAAK,CAAC;AAAA,GAXlB,SAYF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,QAAQ,CAAC;AAAA,GAdlB,SAeF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GAjBjC,SAkBF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GApBjB,SAqBF;",
4
+ "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport {\n CSSResultArray,\n html,\n PropertyValues,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n queryAssignedElements,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport styles from './table-row.css.js';\nimport { TableCheckboxCell } from './TableCheckboxCell.dev.js'\n\n/**\n * @element sp-table-row\n *\n * @fires sorted - Announces that `selected` of the table row has changed\n */\nexport class TableRow extends SpectrumElement {\n public static override get styles(): CSSResultArray {\n return [styles];\n }\n\n @queryAssignedElements({\n selector: 'sp-table-checkbox-cell',\n flatten: true,\n })\n checkboxCells!: TableCheckboxCell[];\n\n @property({ reflect: true })\n public role = 'row';\n\n @property({ type: Boolean })\n public selectable = false;\n\n @property({ type: Boolean, reflect: true })\n public selected = false;\n\n @property({ type: String })\n public value = '';\n\n protected async handleChange(\n event: Event & { target: TableCheckboxCell }\n ): Promise<void> {\n if (!event.target.checkbox) {\n return;\n }\n\n this.selected = event.target.checkbox.checked;\n\n await 0;\n\n if (event.defaultPrevented) {\n this.selected = !this.selected;\n }\n }\n\n protected handleSlotchange({\n target,\n }: Event & { target: HTMLSlotElement }): void {\n const assignedElements = target.assignedElements();\n this.selectable = !!assignedElements.find(\n (el) => el.localName === 'sp-table-checkbox-cell'\n );\n }\n\n protected async manageSelected(): Promise<void> {\n await this.updateComplete;\n // Manage differently when parent table does not have `role=\"grid\"`.\n // See: https://github.com/adobe/spectrum-web-components/issues/3397 and https://github.com/adobe/spectrum-web-components/issues/3395\n if (this.selectable) {\n this.setAttribute(\n 'aria-selected',\n this.selected ? 'true' : 'false'\n );\n } else {\n this.removeAttribute('aria-selected');\n }\n const [checkboxCell] = this.checkboxCells;\n if (!checkboxCell) return;\n checkboxCell.checked = this.selected;\n }\n\n protected handleClick(event: Event): void {\n if (\n event\n .composedPath()\n .find(\n (node) =>\n (node as HTMLElement).localName ===\n 'sp-table-checkbox-cell'\n )\n ) {\n return;\n }\n const [checkboxCell] = this.checkboxCells;\n if (!checkboxCell) /* c8 ignore next */ return;\n checkboxCell.click();\n }\n\n protected override render(): TemplateResult {\n return html`\n <slot\n @change=${this.handleChange}\n @slotchange=${this.handleSlotchange}\n ></slot>\n `;\n }\n\n protected override willUpdate(changed: PropertyValues<this>): void {\n if (changed.has('selected')) {\n this.manageSelected();\n }\n if (changed.has('selectable')) {\n if (this.selectable) {\n this.addEventListener('click', this.handleClick);\n } else {\n this.removeEventListener('click', this.handleClick);\n }\n }\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;AAWA;AAAA,EAEI;AAAA,EAEA;AAAA,OAEG;AACP;AAAA,EACI;AAAA,EACA;AAAA,OACG;AACP,OAAO,YAAY;AAQZ,aAAM,iBAAiB,gBAAgB;AAAA,EAAvC;AAAA;AAYH,SAAO,OAAO;AAGd,SAAO,aAAa;AAGpB,SAAO,WAAW;AAGlB,SAAO,QAAQ;AAAA;AAAA,EApBf,WAA2B,SAAyB;AAChD,WAAO,CAAC,MAAM;AAAA,EAClB;AAAA,EAoBA,MAAgB,aACZ,OACa;AACb,QAAI,CAAC,MAAM,OAAO,UAAU;AACxB;AAAA,IACJ;AAEA,SAAK,WAAW,MAAM,OAAO,SAAS;AAEtC,UAAM;AAEN,QAAI,MAAM,kBAAkB;AACxB,WAAK,WAAW,CAAC,KAAK;AAAA,IAC1B;AAAA,EACJ;AAAA,EAEU,iBAAiB;AAAA,IACvB;AAAA,EACJ,GAA8C;AAC1C,UAAM,mBAAmB,OAAO,iBAAiB;AACjD,SAAK,aAAa,CAAC,CAAC,iBAAiB;AAAA,MACjC,CAAC,OAAO,GAAG,cAAc;AAAA,IAC7B;AAAA,EACJ;AAAA,EAEA,MAAgB,iBAAgC;AAC5C,UAAM,KAAK;AAGX,QAAI,KAAK,YAAY;AACjB,WAAK;AAAA,QACD;AAAA,QACA,KAAK,WAAW,SAAS;AAAA,MAC7B;AAAA,IACJ,OAAO;AACH,WAAK,gBAAgB,eAAe;AAAA,IACxC;AACA,UAAM,CAAC,YAAY,IAAI,KAAK;AAC5B,QAAI,CAAC;AAAc;AACnB,iBAAa,UAAU,KAAK;AAAA,EAChC;AAAA,EAEU,YAAY,OAAoB;AACtC,QACI,MACK,aAAa,EACb;AAAA,MACG,CAAC,SACI,KAAqB,cACtB;AAAA,IACR,GACN;AACE;AAAA,IACJ;AACA,UAAM,CAAC,YAAY,IAAI,KAAK;AAC5B,QAAI,CAAC;AAAmC;AACxC,iBAAa,MAAM;AAAA,EACvB;AAAA,EAEmB,SAAyB;AACxC,WAAO;AAAA;AAAA,0BAEW,KAAK,YAAY;AAAA,8BACb,KAAK,gBAAgB;AAAA;AAAA;AAAA,EAG/C;AAAA,EAEmB,WAAW,SAAqC;AAC/D,QAAI,QAAQ,IAAI,UAAU,GAAG;AACzB,WAAK,eAAe;AAAA,IACxB;AACA,QAAI,QAAQ,IAAI,YAAY,GAAG;AAC3B,UAAI,KAAK,YAAY;AACjB,aAAK,iBAAiB,SAAS,KAAK,WAAW;AAAA,MACnD,OAAO;AACH,aAAK,oBAAoB,SAAS,KAAK,WAAW;AAAA,MACtD;AAAA,IACJ;AAAA,EACJ;AACJ;AA9FI;AAAA,EAJC,sBAAsB;AAAA,IACnB,UAAU;AAAA,IACV,SAAS;AAAA,EACb,CAAC;AAAA,GARQ,SAST;AAGO;AAAA,EADN,SAAS,EAAE,SAAS,KAAK,CAAC;AAAA,GAXlB,SAYF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,QAAQ,CAAC;AAAA,GAdlB,SAeF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GAjBjC,SAkBF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GApBjB,SAqBF;",
6
6
  "names": []
7
7
  }
package/src/TableRow.js CHANGED
@@ -1,7 +1,7 @@
1
- "use strict";var h=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var c=(i,s,e,l)=>{for(var t=l>1?void 0:l?n(s,e):s,a=i.length-1,o;a>=0;a--)(o=i[a])&&(t=(l?o(s,e,t):o(t))||t);return l&&t&&h(s,e,t),t};import{html as d,SpectrumElement as p}from"@spectrum-web-components/base";import{property as r,queryAssignedElements as m}from"@spectrum-web-components/base/src/decorators.js";import u from"./table-row.css.js";export class TableRow extends p{constructor(){super(...arguments);this.role="row";this.selectable=!1;this.selected=!1;this.value=""}static get styles(){return[u]}async handleChange(e){e.target.checkbox&&(this.selected=e.target.checkbox.checked,await 0,e.defaultPrevented&&(this.selected=!this.selected))}handleSlotchange({target:e}){const l=e.assignedElements();this.selectable=!!l.find(t=>t.localName==="sp-table-checkbox-cell")}async manageSelected(){await this.updateComplete;const[e]=this.checkboxCells;e&&(e.checked=this.selected)}handleClick(e){if(e.composedPath().find(t=>t.localName==="sp-table-checkbox-cell"))return;const[l]=this.checkboxCells;l&&l.click()}render(){return d`
1
+ "use strict";var h=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var s=(i,c,e,l)=>{for(var t=l>1?void 0:l?n(c,e):c,a=i.length-1,o;a>=0;a--)(o=i[a])&&(t=(l?o(c,e,t):o(t))||t);return l&&t&&h(c,e,t),t};import{html as d,SpectrumElement as p}from"@spectrum-web-components/base";import{property as r,queryAssignedElements as m}from"@spectrum-web-components/base/src/decorators.js";import u from"./table-row.css.js";export class TableRow extends p{constructor(){super(...arguments);this.role="row";this.selectable=!1;this.selected=!1;this.value=""}static get styles(){return[u]}async handleChange(e){e.target.checkbox&&(this.selected=e.target.checkbox.checked,await 0,e.defaultPrevented&&(this.selected=!this.selected))}handleSlotchange({target:e}){const l=e.assignedElements();this.selectable=!!l.find(t=>t.localName==="sp-table-checkbox-cell")}async manageSelected(){await this.updateComplete,this.selectable?this.setAttribute("aria-selected",this.selected?"true":"false"):this.removeAttribute("aria-selected");const[e]=this.checkboxCells;e&&(e.checked=this.selected)}handleClick(e){if(e.composedPath().find(t=>t.localName==="sp-table-checkbox-cell"))return;const[l]=this.checkboxCells;l&&l.click()}render(){return d`
2
2
  <slot
3
3
  @change=${this.handleChange}
4
4
  @slotchange=${this.handleSlotchange}
5
5
  ></slot>
6
- `}willUpdate(e){e.has("selected")&&this.manageSelected(),e.has("selectable")&&(this.selectable?this.addEventListener("click",this.handleClick):this.removeEventListener("click",this.handleClick))}}c([m({selector:"sp-table-checkbox-cell",flatten:!0})],TableRow.prototype,"checkboxCells",2),c([r({reflect:!0})],TableRow.prototype,"role",2),c([r({type:Boolean})],TableRow.prototype,"selectable",2),c([r({type:Boolean,reflect:!0})],TableRow.prototype,"selected",2),c([r({type:String})],TableRow.prototype,"value",2);
6
+ `}willUpdate(e){e.has("selected")&&this.manageSelected(),e.has("selectable")&&(this.selectable?this.addEventListener("click",this.handleClick):this.removeEventListener("click",this.handleClick))}}s([m({selector:"sp-table-checkbox-cell",flatten:!0})],TableRow.prototype,"checkboxCells",2),s([r({reflect:!0})],TableRow.prototype,"role",2),s([r({type:Boolean})],TableRow.prototype,"selectable",2),s([r({type:Boolean,reflect:!0})],TableRow.prototype,"selected",2),s([r({type:String})],TableRow.prototype,"value",2);
7
7
  //# sourceMappingURL=TableRow.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["TableRow.ts"],
4
- "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport {\n CSSResultArray,\n html,\n PropertyValues,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n queryAssignedElements,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport styles from './table-row.css.js';\nimport { TableCheckboxCell } from './TableCheckboxCell.js';\n\n/**\n * @element sp-table-row\n *\n * @fires sorted - Announces that `selected` of the table row has changed\n */\nexport class TableRow extends SpectrumElement {\n public static override get styles(): CSSResultArray {\n return [styles];\n }\n\n @queryAssignedElements({\n selector: 'sp-table-checkbox-cell',\n flatten: true,\n })\n checkboxCells!: TableCheckboxCell[];\n\n @property({ reflect: true })\n public role = 'row';\n\n @property({ type: Boolean })\n public selectable = false;\n\n @property({ type: Boolean, reflect: true })\n public selected = false;\n\n @property({ type: String })\n public value = '';\n\n protected async handleChange(\n event: Event & { target: TableCheckboxCell }\n ): Promise<void> {\n if (!event.target.checkbox) {\n return;\n }\n\n this.selected = event.target.checkbox.checked;\n\n await 0;\n\n if (event.defaultPrevented) {\n this.selected = !this.selected;\n }\n }\n\n protected handleSlotchange({\n target,\n }: Event & { target: HTMLSlotElement }): void {\n const assignedElements = target.assignedElements();\n this.selectable = !!assignedElements.find(\n (el) => el.localName === 'sp-table-checkbox-cell'\n );\n }\n\n protected async manageSelected(): Promise<void> {\n await this.updateComplete;\n const [checkboxCell] = this.checkboxCells;\n if (!checkboxCell) return;\n checkboxCell.checked = this.selected;\n }\n\n protected handleClick(event: Event): void {\n if (\n event\n .composedPath()\n .find(\n (node) =>\n (node as HTMLElement).localName ===\n 'sp-table-checkbox-cell'\n )\n ) {\n return;\n }\n const [checkboxCell] = this.checkboxCells;\n if (!checkboxCell) /* c8 ignore next */ return;\n checkboxCell.click();\n }\n\n protected override render(): TemplateResult {\n return html`\n <slot\n @change=${this.handleChange}\n @slotchange=${this.handleSlotchange}\n ></slot>\n `;\n }\n\n protected override willUpdate(changed: PropertyValues<this>): void {\n if (changed.has('selected')) {\n this.manageSelected();\n }\n if (changed.has('selectable')) {\n if (this.selectable) {\n this.addEventListener('click', this.handleClick);\n } else {\n this.removeEventListener('click', this.handleClick);\n }\n }\n }\n}\n"],
5
- "mappings": "qNAWA,OAEI,QAAAA,EAEA,mBAAAC,MAEG,gCACP,OACI,YAAAC,EACA,yBAAAC,MACG,kDACP,OAAOC,MAAY,qBAQZ,aAAM,iBAAiBH,CAAgB,CAAvC,kCAYH,KAAO,KAAO,MAGd,KAAO,WAAa,GAGpB,KAAO,SAAW,GAGlB,KAAO,MAAQ,GApBf,WAA2B,QAAyB,CAChD,MAAO,CAACG,CAAM,CAClB,CAoBA,MAAgB,aACZC,EACa,CACRA,EAAM,OAAO,WAIlB,KAAK,SAAWA,EAAM,OAAO,SAAS,QAEtC,KAAM,GAEFA,EAAM,mBACN,KAAK,SAAW,CAAC,KAAK,UAE9B,CAEU,iBAAiB,CACvB,OAAAC,CACJ,EAA8C,CAC1C,MAAMC,EAAmBD,EAAO,iBAAiB,EACjD,KAAK,WAAa,CAAC,CAACC,EAAiB,KAChCC,GAAOA,EAAG,YAAc,wBAC7B,CACJ,CAEA,MAAgB,gBAAgC,CAC5C,MAAM,KAAK,eACX,KAAM,CAACC,CAAY,EAAI,KAAK,cACvBA,IACLA,EAAa,QAAU,KAAK,SAChC,CAEU,YAAYJ,EAAoB,CACtC,GACIA,EACK,aAAa,EACb,KACIK,GACIA,EAAqB,YACtB,wBACR,EAEJ,OAEJ,KAAM,CAACD,CAAY,EAAI,KAAK,cACvBA,GACLA,EAAa,MAAM,CACvB,CAEmB,QAAyB,CACxC,OAAOT;AAAA;AAAA,0BAEW,KAAK,YAAY;AAAA,8BACb,KAAK,gBAAgB;AAAA;AAAA,SAG/C,CAEmB,WAAWW,EAAqC,CAC3DA,EAAQ,IAAI,UAAU,GACtB,KAAK,eAAe,EAEpBA,EAAQ,IAAI,YAAY,IACpB,KAAK,WACL,KAAK,iBAAiB,QAAS,KAAK,WAAW,EAE/C,KAAK,oBAAoB,QAAS,KAAK,WAAW,EAG9D,CACJ,CApFIC,EAAA,CAJCT,EAAsB,CACnB,SAAU,yBACV,QAAS,EACb,CAAC,GARQ,SAST,6BAGOS,EAAA,CADNV,EAAS,CAAE,QAAS,EAAK,CAAC,GAXlB,SAYF,oBAGAU,EAAA,CADNV,EAAS,CAAE,KAAM,OAAQ,CAAC,GAdlB,SAeF,0BAGAU,EAAA,CADNV,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GAjBjC,SAkBF,wBAGAU,EAAA,CADNV,EAAS,CAAE,KAAM,MAAO,CAAC,GApBjB,SAqBF",
4
+ "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport {\n CSSResultArray,\n html,\n PropertyValues,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n queryAssignedElements,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport styles from './table-row.css.js';\nimport { TableCheckboxCell } from './TableCheckboxCell.js';\n\n/**\n * @element sp-table-row\n *\n * @fires sorted - Announces that `selected` of the table row has changed\n */\nexport class TableRow extends SpectrumElement {\n public static override get styles(): CSSResultArray {\n return [styles];\n }\n\n @queryAssignedElements({\n selector: 'sp-table-checkbox-cell',\n flatten: true,\n })\n checkboxCells!: TableCheckboxCell[];\n\n @property({ reflect: true })\n public role = 'row';\n\n @property({ type: Boolean })\n public selectable = false;\n\n @property({ type: Boolean, reflect: true })\n public selected = false;\n\n @property({ type: String })\n public value = '';\n\n protected async handleChange(\n event: Event & { target: TableCheckboxCell }\n ): Promise<void> {\n if (!event.target.checkbox) {\n return;\n }\n\n this.selected = event.target.checkbox.checked;\n\n await 0;\n\n if (event.defaultPrevented) {\n this.selected = !this.selected;\n }\n }\n\n protected handleSlotchange({\n target,\n }: Event & { target: HTMLSlotElement }): void {\n const assignedElements = target.assignedElements();\n this.selectable = !!assignedElements.find(\n (el) => el.localName === 'sp-table-checkbox-cell'\n );\n }\n\n protected async manageSelected(): Promise<void> {\n await this.updateComplete;\n // Manage differently when parent table does not have `role=\"grid\"`.\n // See: https://github.com/adobe/spectrum-web-components/issues/3397 and https://github.com/adobe/spectrum-web-components/issues/3395\n if (this.selectable) {\n this.setAttribute(\n 'aria-selected',\n this.selected ? 'true' : 'false'\n );\n } else {\n this.removeAttribute('aria-selected');\n }\n const [checkboxCell] = this.checkboxCells;\n if (!checkboxCell) return;\n checkboxCell.checked = this.selected;\n }\n\n protected handleClick(event: Event): void {\n if (\n event\n .composedPath()\n .find(\n (node) =>\n (node as HTMLElement).localName ===\n 'sp-table-checkbox-cell'\n )\n ) {\n return;\n }\n const [checkboxCell] = this.checkboxCells;\n if (!checkboxCell) /* c8 ignore next */ return;\n checkboxCell.click();\n }\n\n protected override render(): TemplateResult {\n return html`\n <slot\n @change=${this.handleChange}\n @slotchange=${this.handleSlotchange}\n ></slot>\n `;\n }\n\n protected override willUpdate(changed: PropertyValues<this>): void {\n if (changed.has('selected')) {\n this.manageSelected();\n }\n if (changed.has('selectable')) {\n if (this.selectable) {\n this.addEventListener('click', this.handleClick);\n } else {\n this.removeEventListener('click', this.handleClick);\n }\n }\n }\n}\n"],
5
+ "mappings": "qNAWA,OAEI,QAAAA,EAEA,mBAAAC,MAEG,gCACP,OACI,YAAAC,EACA,yBAAAC,MACG,kDACP,OAAOC,MAAY,qBAQZ,aAAM,iBAAiBH,CAAgB,CAAvC,kCAYH,KAAO,KAAO,MAGd,KAAO,WAAa,GAGpB,KAAO,SAAW,GAGlB,KAAO,MAAQ,GApBf,WAA2B,QAAyB,CAChD,MAAO,CAACG,CAAM,CAClB,CAoBA,MAAgB,aACZC,EACa,CACRA,EAAM,OAAO,WAIlB,KAAK,SAAWA,EAAM,OAAO,SAAS,QAEtC,KAAM,GAEFA,EAAM,mBACN,KAAK,SAAW,CAAC,KAAK,UAE9B,CAEU,iBAAiB,CACvB,OAAAC,CACJ,EAA8C,CAC1C,MAAMC,EAAmBD,EAAO,iBAAiB,EACjD,KAAK,WAAa,CAAC,CAACC,EAAiB,KAChCC,GAAOA,EAAG,YAAc,wBAC7B,CACJ,CAEA,MAAgB,gBAAgC,CAC5C,MAAM,KAAK,eAGP,KAAK,WACL,KAAK,aACD,gBACA,KAAK,SAAW,OAAS,OAC7B,EAEA,KAAK,gBAAgB,eAAe,EAExC,KAAM,CAACC,CAAY,EAAI,KAAK,cACvBA,IACLA,EAAa,QAAU,KAAK,SAChC,CAEU,YAAYJ,EAAoB,CACtC,GACIA,EACK,aAAa,EACb,KACIK,GACIA,EAAqB,YACtB,wBACR,EAEJ,OAEJ,KAAM,CAACD,CAAY,EAAI,KAAK,cACvBA,GACLA,EAAa,MAAM,CACvB,CAEmB,QAAyB,CACxC,OAAOT;AAAA;AAAA,0BAEW,KAAK,YAAY;AAAA,8BACb,KAAK,gBAAgB;AAAA;AAAA,SAG/C,CAEmB,WAAWW,EAAqC,CAC3DA,EAAQ,IAAI,UAAU,GACtB,KAAK,eAAe,EAEpBA,EAAQ,IAAI,YAAY,IACpB,KAAK,WACL,KAAK,iBAAiB,QAAS,KAAK,WAAW,EAE/C,KAAK,oBAAoB,QAAS,KAAK,WAAW,EAG9D,CACJ,CA9FIC,EAAA,CAJCT,EAAsB,CACnB,SAAU,yBACV,QAAS,EACb,CAAC,GARQ,SAST,6BAGOS,EAAA,CADNV,EAAS,CAAE,QAAS,EAAK,CAAC,GAXlB,SAYF,oBAGAU,EAAA,CADNV,EAAS,CAAE,KAAM,OAAQ,CAAC,GAdlB,SAeF,0BAGAU,EAAA,CADNV,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GAjBjC,SAkBF,wBAGAU,EAAA,CADNV,EAAS,CAAE,KAAM,MAAO,CAAC,GApBjB,SAqBF",
6
6
  "names": ["html", "SpectrumElement", "property", "queryAssignedElements", "styles", "event", "target", "assignedElements", "el", "checkboxCell", "node", "changed", "__decorateClass"]
7
7
  }
@@ -92,6 +92,7 @@ describe("Table Selects", () => {
92
92
  await elementUpdated(el);
93
93
  expect(rowTwoCheckbox.checked).to.be.false;
94
94
  expect(rowTwo.selected).to.be.false;
95
+ expect(rowTwo.getAttribute("aria-selected")).to.equal("false");
95
96
  expect(el.selected.length).to.equal(0);
96
97
  });
97
98
  it("ignores unexpected `change` events", async () => {
@@ -139,6 +140,7 @@ describe("Table Selects", () => {
139
140
  const rowTwoCheckbox = rowTwo.querySelector(
140
141
  "sp-table-checkbox-cell"
141
142
  );
143
+ expect(rowTwo.getAttribute("aria-selected")).to.equal("false");
142
144
  const rowThree = el.querySelector(".row3");
143
145
  const rowThreeCheckbox = rowThree.querySelector(
144
146
  "sp-table-checkbox-cell"
@@ -147,6 +149,7 @@ describe("Table Selects", () => {
147
149
  await elementUpdated(el);
148
150
  expect(rowTwoCheckbox.checked).to.be.true;
149
151
  expect(el.selected).to.deep.equal(["row2"]);
152
+ expect(rowTwo.getAttribute("aria-selected")).to.equal("true");
150
153
  rowThreeCheckbox.checkbox.click();
151
154
  await elementUpdated(el);
152
155
  await elementUpdated(rowTwoCheckbox);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["table-selects.test.ts"],
4
- "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport {\n elementUpdated,\n expect,\n fixture,\n html,\n nextFrame,\n} from '@open-wc/testing';\n\nimport '@spectrum-web-components/table/sp-table.js';\nimport '@spectrum-web-components/table/sp-table-head.js';\nimport '@spectrum-web-components/table/sp-table-head-cell.js';\nimport '@spectrum-web-components/table/sp-table-body.js';\nimport '@spectrum-web-components/table/sp-table-row.js';\nimport '@spectrum-web-components/table/sp-table-cell.js';\nimport type {\n Table,\n TableCheckboxCell,\n TableRow,\n} from '@spectrum-web-components/table';\nimport {\n elements,\n noSelectsSpecified,\n selectsMultiple,\n selectsSingle,\n} from '../stories/table-elements.stories.js';\nimport { spy } from 'sinon';\nimport { ignoreResizeObserverLoopError } from '../../../test/testing-helpers.js';\n\nignoreResizeObserverLoopError(before, after);\n\ndescribe('Table Selects', () => {\n it('selects items not initially visible in the <sp-table-body>', async () => {\n const el = await fixture<Table>(elements());\n\n el.selects = 'single';\n el.selected = ['row5'];\n\n await elementUpdated(el);\n\n const rowFive = el.querySelector('.row5') as TableRow;\n const rowFiveCheckbox = rowFive.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n const checkboxes = el.querySelectorAll(\n 'sp-table-checkbox-cell:nth-child(n+1):nth-child(n+4)'\n ) as NodeListOf<TableCheckboxCell>;\n\n checkboxes.forEach((checkbox) => {\n expect(checkbox.checkbox.checked).to.be.false;\n });\n\n el.scrollTop = el.scrollHeight;\n\n await nextFrame();\n\n expect(rowFiveCheckbox.checkbox.checked).to.be.true;\n });\n it('can prevent selection', async () => {\n const el = await fixture<Table>(html`\n <sp-table\n size=\"m\"\n selects=\"single\"\n @change=${(event: Event) => {\n event.preventDefault();\n }}\n >\n <sp-table-head>\n <sp-table-head-cell>Column Title</sp-table-head-cell>\n <sp-table-head-cell>Column Title</sp-table-head-cell>\n <sp-table-head-cell>Column Title</sp-table-head-cell>\n </sp-table-head>\n <sp-table-body style=\"height: 120px\">\n <sp-table-row value=\"row1\" class=\"row1\">\n <sp-table-cell>Row Item Alpha</sp-table-cell>\n <sp-table-cell>Row Item Alpha</sp-table-cell>\n <sp-table-cell>Row Item Alpha</sp-table-cell>\n </sp-table-row>\n <sp-table-row value=\"row2\" class=\"row2\">\n <sp-table-cell>Row Item Bravo</sp-table-cell>\n <sp-table-cell>Row Item Bravo</sp-table-cell>\n <sp-table-cell>Row Item Bravo</sp-table-cell>\n </sp-table-row>\n <sp-table-row value=\"row3\" class=\"row3\">\n <sp-table-cell>Row Item Charlie</sp-table-cell>\n <sp-table-cell>Row Item Charlie</sp-table-cell>\n <sp-table-cell>Row Item Charlie</sp-table-cell>\n </sp-table-row>\n <sp-table-row value=\"row4\" class=\"row4\">\n <sp-table-cell>Row Item Delta</sp-table-cell>\n <sp-table-cell>Row Item Delta</sp-table-cell>\n <sp-table-cell>Row Item Delta</sp-table-cell>\n </sp-table-row>\n <sp-table-row value=\"row5\" class=\"row5\">\n <sp-table-cell>Row Item Echo</sp-table-cell>\n <sp-table-cell>Row Item Echo</sp-table-cell>\n <sp-table-cell>Row Item Echo</sp-table-cell>\n </sp-table-row>\n </sp-table-body>\n </sp-table>\n `);\n\n const rowTwo = el.querySelector('.row2') as TableRow;\n const rowTwoCheckbox = rowTwo.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n rowTwoCheckbox.checkbox.click();\n await elementUpdated(el);\n\n expect(rowTwoCheckbox.checked).to.be.false;\n expect(rowTwo.selected).to.be.false;\n expect(el.selected.length).to.equal(0);\n });\n it('ignores unexpected `change` events', async () => {\n const changeSpy = spy();\n const el = await fixture<Table>(html`\n <sp-table\n size=\"m\"\n selects=\"single\"\n @change=${(event: Event) => {\n event.preventDefault();\n changeSpy();\n }}\n >\n <sp-table-head>\n <sp-table-head-cell>Column Title</sp-table-head-cell>\n <sp-table-head-cell>Column Title</sp-table-head-cell>\n <sp-table-head-cell>Column Title</sp-table-head-cell>\n </sp-table-head>\n <sp-table-body style=\"height: 120px\">\n <sp-table-row value=\"row1\" class=\"row1\">\n <sp-table-cell>Row Item Alpha</sp-table-cell>\n <sp-table-cell>Row Item Alpha</sp-table-cell>\n <sp-table-cell>\n <sp-checkbox>Test checkbox</sp-checkbox>\n </sp-table-cell>\n </sp-table-row>\n </sp-table-body>\n </sp-table>\n `);\n\n const checkbox = el.querySelector('sp-checkbox');\n\n try {\n checkbox?.click();\n expect(changeSpy.callCount).to.equal(1);\n } catch (error) {\n expect(true, 'There was an error due to the click.').to.be.false;\n }\n });\n it('surfaces [selects=\"single\"] selection', async () => {\n const el = await fixture<Table>(selectsSingle());\n\n expect(el.selected, \"'Row 1 selected\").to.deep.equal(['row1']);\n });\n\n it('selects via `click` while [selects=\"single\"]', async () => {\n const el = await fixture<Table>(selectsSingle());\n const rowTwo = el.querySelector('.row2') as TableRow;\n const rowTwoCheckbox = rowTwo.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n const rowThree = el.querySelector('.row3') as TableRow;\n const rowThreeCheckbox = rowThree.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n rowTwoCheckbox.checkbox.click();\n await elementUpdated(el);\n\n expect(rowTwoCheckbox.checked).to.be.true;\n expect(el.selected).to.deep.equal(['row2']);\n\n rowThreeCheckbox.checkbox.click();\n await elementUpdated(el);\n await elementUpdated(rowTwoCheckbox); // webkit needs this\n\n expect(rowThreeCheckbox.checkbox.checked).to.be.true;\n expect(rowTwoCheckbox.checkbox.checked).to.be.false;\n expect(el.selected.length).to.equal(1);\n\n rowTwo.click();\n await elementUpdated(el);\n\n expect(rowTwoCheckbox.checked).to.be.true;\n expect(el.selected).to.deep.equal(['row2']);\n });\n\n it('surfaces [selects=\"multiple\"] selection', async () => {\n const el = await fixture<Table>(selectsMultiple());\n\n expect(el.selected, 'Rows 1 and 2 selected').to.deep.equal([\n 'row1',\n 'row2',\n ]);\n });\n\n it('selects via `click` while [selects=\"multiple\"] selection', async () => {\n const el = await fixture<Table>(selectsMultiple());\n const rowFour = el.querySelector('.row4') as TableRow;\n const tableHeadCheckboxCell = el.querySelector(\n 'sp-table-head sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n const rowFourCheckbox = rowFour.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n await elementUpdated(el);\n expect(el.selected.length).to.equal(2);\n\n rowFourCheckbox.checkbox.click();\n await elementUpdated(el);\n\n expect(rowFourCheckbox.checked).to.be.true;\n expect(el.selected).to.deep.equal(['row1', 'row2', 'row4']);\n\n tableHeadCheckboxCell.click();\n await elementUpdated(el);\n\n expect(el.selected).to.deep.equal([\n 'row1',\n 'row2',\n 'row4',\n 'row3',\n 'row5',\n ]);\n });\n\n it('allows [selects] to be changed by the application', async () => {\n const el = await fixture<Table>(elements());\n\n expect(el.selects).to.be.undefined;\n\n el.selects = 'single';\n\n await elementUpdated(el);\n expect(el.selects).to.equal('single');\n\n await elementUpdated(el);\n await nextFrame();\n await nextFrame();\n\n const rowTwoCheckboxCell = el.querySelector(\n '.row2 sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n const rowOneCheckboxCell = el.querySelector(\n '.row1 sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n const tableHeadCheckboxCell = el.querySelector(\n 'sp-table-head sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(tableHeadCheckboxCell.selectsSingle).to.be.true;\n\n rowOneCheckboxCell.checkbox.click();\n await elementUpdated(el);\n\n expect(el.selected).to.deep.equal(['row1']);\n expect(rowOneCheckboxCell.checkbox.checked).to.be.true;\n expect(rowTwoCheckboxCell.checkbox.checked).to.be.false;\n\n el.selects = 'multiple';\n await elementUpdated(el);\n\n expect(el.selects).to.equal('multiple');\n expect(tableHeadCheckboxCell.indeterminate).to.be.true;\n\n rowTwoCheckboxCell.checkbox.click();\n\n await elementUpdated(el);\n await elementUpdated(rowTwoCheckboxCell);\n\n expect(el.selected).to.deep.equal(['row1', 'row2']);\n expect(rowOneCheckboxCell.checkbox.checked).to.be.true;\n expect(rowTwoCheckboxCell.checkbox.checked).to.be.true;\n expect(tableHeadCheckboxCell.indeterminate).to.be.true;\n });\n\n it('selects a user-passed value for .selected array with no [selects] specified, but does not allow interaction afterwards', async () => {\n const el = await fixture<Table>(noSelectsSpecified());\n\n await elementUpdated(el);\n\n expect(el.selected.length).to.equal(2);\n\n const rows = el.querySelectorAll('sp-table-row');\n\n rows.forEach((row) => {\n const checkbox = row.querySelector('sp-table-checkbox-cell');\n expect(checkbox).to.be.null;\n });\n });\n\n it('allows .selected values to be changed by the application when [selects=\"multiple\"]', async () => {\n const el = await fixture<Table>(selectsMultiple());\n await elementUpdated(el);\n\n const rowThreeCheckboxCell = el.querySelector(\n '.row3 sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n const rowOneCheckboxCell = el.querySelector(\n '.row1 sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(el.selected).to.deep.equal(['row1', 'row2']);\n expect(rowOneCheckboxCell.checkbox.checked).to.be.true;\n expect(rowThreeCheckboxCell.checkbox.checked).to.be.false;\n\n el.selected = ['row1', 'row3'];\n\n await elementUpdated(el);\n await elementUpdated(rowThreeCheckboxCell);\n\n expect(el.selected).to.deep.equal(['row1', 'row3']);\n expect(rowOneCheckboxCell.checkbox.checked).to.be.true;\n expect(rowThreeCheckboxCell.checkbox.checked).to.be.true;\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport {\n elementUpdated,\n expect,\n fixture,\n html,\n nextFrame,\n} from '@open-wc/testing';\n\nimport '@spectrum-web-components/table/sp-table.js';\nimport '@spectrum-web-components/table/sp-table-head.js';\nimport '@spectrum-web-components/table/sp-table-head-cell.js';\nimport '@spectrum-web-components/table/sp-table-body.js';\nimport '@spectrum-web-components/table/sp-table-row.js';\nimport '@spectrum-web-components/table/sp-table-cell.js';\nimport type {\n Table,\n TableCheckboxCell,\n TableRow,\n} from '@spectrum-web-components/table';\nimport {\n elements,\n noSelectsSpecified,\n selectsMultiple,\n selectsSingle,\n} from '../stories/table-elements.stories.js';\nimport { spy } from 'sinon';\nimport { ignoreResizeObserverLoopError } from '../../../test/testing-helpers.js';\n\nignoreResizeObserverLoopError(before, after);\n\ndescribe('Table Selects', () => {\n it('selects items not initially visible in the <sp-table-body>', async () => {\n const el = await fixture<Table>(elements());\n\n el.selects = 'single';\n el.selected = ['row5'];\n\n await elementUpdated(el);\n\n const rowFive = el.querySelector('.row5') as TableRow;\n const rowFiveCheckbox = rowFive.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n const checkboxes = el.querySelectorAll(\n 'sp-table-checkbox-cell:nth-child(n+1):nth-child(n+4)'\n ) as NodeListOf<TableCheckboxCell>;\n\n checkboxes.forEach((checkbox) => {\n expect(checkbox.checkbox.checked).to.be.false;\n });\n\n el.scrollTop = el.scrollHeight;\n\n await nextFrame();\n\n expect(rowFiveCheckbox.checkbox.checked).to.be.true;\n });\n it('can prevent selection', async () => {\n const el = await fixture<Table>(html`\n <sp-table\n size=\"m\"\n selects=\"single\"\n @change=${(event: Event) => {\n event.preventDefault();\n }}\n >\n <sp-table-head>\n <sp-table-head-cell>Column Title</sp-table-head-cell>\n <sp-table-head-cell>Column Title</sp-table-head-cell>\n <sp-table-head-cell>Column Title</sp-table-head-cell>\n </sp-table-head>\n <sp-table-body style=\"height: 120px\">\n <sp-table-row value=\"row1\" class=\"row1\">\n <sp-table-cell>Row Item Alpha</sp-table-cell>\n <sp-table-cell>Row Item Alpha</sp-table-cell>\n <sp-table-cell>Row Item Alpha</sp-table-cell>\n </sp-table-row>\n <sp-table-row value=\"row2\" class=\"row2\">\n <sp-table-cell>Row Item Bravo</sp-table-cell>\n <sp-table-cell>Row Item Bravo</sp-table-cell>\n <sp-table-cell>Row Item Bravo</sp-table-cell>\n </sp-table-row>\n <sp-table-row value=\"row3\" class=\"row3\">\n <sp-table-cell>Row Item Charlie</sp-table-cell>\n <sp-table-cell>Row Item Charlie</sp-table-cell>\n <sp-table-cell>Row Item Charlie</sp-table-cell>\n </sp-table-row>\n <sp-table-row value=\"row4\" class=\"row4\">\n <sp-table-cell>Row Item Delta</sp-table-cell>\n <sp-table-cell>Row Item Delta</sp-table-cell>\n <sp-table-cell>Row Item Delta</sp-table-cell>\n </sp-table-row>\n <sp-table-row value=\"row5\" class=\"row5\">\n <sp-table-cell>Row Item Echo</sp-table-cell>\n <sp-table-cell>Row Item Echo</sp-table-cell>\n <sp-table-cell>Row Item Echo</sp-table-cell>\n </sp-table-row>\n </sp-table-body>\n </sp-table>\n `);\n\n const rowTwo = el.querySelector('.row2') as TableRow;\n const rowTwoCheckbox = rowTwo.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n rowTwoCheckbox.checkbox.click();\n await elementUpdated(el);\n\n expect(rowTwoCheckbox.checked).to.be.false;\n expect(rowTwo.selected).to.be.false;\n expect(rowTwo.getAttribute('aria-selected')).to.equal('false');\n expect(el.selected.length).to.equal(0);\n });\n it('ignores unexpected `change` events', async () => {\n const changeSpy = spy();\n const el = await fixture<Table>(html`\n <sp-table\n size=\"m\"\n selects=\"single\"\n @change=${(event: Event) => {\n event.preventDefault();\n changeSpy();\n }}\n >\n <sp-table-head>\n <sp-table-head-cell>Column Title</sp-table-head-cell>\n <sp-table-head-cell>Column Title</sp-table-head-cell>\n <sp-table-head-cell>Column Title</sp-table-head-cell>\n </sp-table-head>\n <sp-table-body style=\"height: 120px\">\n <sp-table-row value=\"row1\" class=\"row1\">\n <sp-table-cell>Row Item Alpha</sp-table-cell>\n <sp-table-cell>Row Item Alpha</sp-table-cell>\n <sp-table-cell>\n <sp-checkbox>Test checkbox</sp-checkbox>\n </sp-table-cell>\n </sp-table-row>\n </sp-table-body>\n </sp-table>\n `);\n\n const checkbox = el.querySelector('sp-checkbox');\n\n try {\n checkbox?.click();\n expect(changeSpy.callCount).to.equal(1);\n } catch (error) {\n expect(true, 'There was an error due to the click.').to.be.false;\n }\n });\n it('surfaces [selects=\"single\"] selection', async () => {\n const el = await fixture<Table>(selectsSingle());\n\n expect(el.selected, \"'Row 1 selected\").to.deep.equal(['row1']);\n });\n\n it('selects via `click` while [selects=\"single\"]', async () => {\n const el = await fixture<Table>(selectsSingle());\n const rowTwo = el.querySelector('.row2') as TableRow;\n const rowTwoCheckbox = rowTwo.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(rowTwo.getAttribute('aria-selected')).to.equal('false');\n\n const rowThree = el.querySelector('.row3') as TableRow;\n const rowThreeCheckbox = rowThree.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n rowTwoCheckbox.checkbox.click();\n await elementUpdated(el);\n\n expect(rowTwoCheckbox.checked).to.be.true;\n expect(el.selected).to.deep.equal(['row2']);\n expect(rowTwo.getAttribute('aria-selected')).to.equal('true');\n\n rowThreeCheckbox.checkbox.click();\n await elementUpdated(el);\n await elementUpdated(rowTwoCheckbox); // webkit needs this\n\n expect(rowThreeCheckbox.checkbox.checked).to.be.true;\n expect(rowTwoCheckbox.checkbox.checked).to.be.false;\n expect(el.selected.length).to.equal(1);\n\n rowTwo.click();\n await elementUpdated(el);\n\n expect(rowTwoCheckbox.checked).to.be.true;\n expect(el.selected).to.deep.equal(['row2']);\n });\n\n it('surfaces [selects=\"multiple\"] selection', async () => {\n const el = await fixture<Table>(selectsMultiple());\n\n expect(el.selected, 'Rows 1 and 2 selected').to.deep.equal([\n 'row1',\n 'row2',\n ]);\n });\n\n it('selects via `click` while [selects=\"multiple\"] selection', async () => {\n const el = await fixture<Table>(selectsMultiple());\n const rowFour = el.querySelector('.row4') as TableRow;\n const tableHeadCheckboxCell = el.querySelector(\n 'sp-table-head sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n const rowFourCheckbox = rowFour.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n await elementUpdated(el);\n expect(el.selected.length).to.equal(2);\n\n rowFourCheckbox.checkbox.click();\n await elementUpdated(el);\n\n expect(rowFourCheckbox.checked).to.be.true;\n expect(el.selected).to.deep.equal(['row1', 'row2', 'row4']);\n\n tableHeadCheckboxCell.click();\n await elementUpdated(el);\n\n expect(el.selected).to.deep.equal([\n 'row1',\n 'row2',\n 'row4',\n 'row3',\n 'row5',\n ]);\n });\n\n it('allows [selects] to be changed by the application', async () => {\n const el = await fixture<Table>(elements());\n\n expect(el.selects).to.be.undefined;\n\n el.selects = 'single';\n\n await elementUpdated(el);\n expect(el.selects).to.equal('single');\n\n await elementUpdated(el);\n await nextFrame();\n await nextFrame();\n\n const rowTwoCheckboxCell = el.querySelector(\n '.row2 sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n const rowOneCheckboxCell = el.querySelector(\n '.row1 sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n const tableHeadCheckboxCell = el.querySelector(\n 'sp-table-head sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(tableHeadCheckboxCell.selectsSingle).to.be.true;\n\n rowOneCheckboxCell.checkbox.click();\n await elementUpdated(el);\n\n expect(el.selected).to.deep.equal(['row1']);\n expect(rowOneCheckboxCell.checkbox.checked).to.be.true;\n expect(rowTwoCheckboxCell.checkbox.checked).to.be.false;\n\n el.selects = 'multiple';\n await elementUpdated(el);\n\n expect(el.selects).to.equal('multiple');\n expect(tableHeadCheckboxCell.indeterminate).to.be.true;\n\n rowTwoCheckboxCell.checkbox.click();\n\n await elementUpdated(el);\n await elementUpdated(rowTwoCheckboxCell);\n\n expect(el.selected).to.deep.equal(['row1', 'row2']);\n expect(rowOneCheckboxCell.checkbox.checked).to.be.true;\n expect(rowTwoCheckboxCell.checkbox.checked).to.be.true;\n expect(tableHeadCheckboxCell.indeterminate).to.be.true;\n });\n\n it('selects a user-passed value for .selected array with no [selects] specified, but does not allow interaction afterwards', async () => {\n const el = await fixture<Table>(noSelectsSpecified());\n\n await elementUpdated(el);\n\n expect(el.selected.length).to.equal(2);\n\n const rows = el.querySelectorAll('sp-table-row');\n\n rows.forEach((row) => {\n const checkbox = row.querySelector('sp-table-checkbox-cell');\n expect(checkbox).to.be.null;\n });\n });\n\n it('allows .selected values to be changed by the application when [selects=\"multiple\"]', async () => {\n const el = await fixture<Table>(selectsMultiple());\n await elementUpdated(el);\n\n const rowThreeCheckboxCell = el.querySelector(\n '.row3 sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n const rowOneCheckboxCell = el.querySelector(\n '.row1 sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(el.selected).to.deep.equal(['row1', 'row2']);\n expect(rowOneCheckboxCell.checkbox.checked).to.be.true;\n expect(rowThreeCheckboxCell.checkbox.checked).to.be.false;\n\n el.selected = ['row1', 'row3'];\n\n await elementUpdated(el);\n await elementUpdated(rowThreeCheckboxCell);\n\n expect(el.selected).to.deep.equal(['row1', 'row3']);\n expect(rowOneCheckboxCell.checkbox.checked).to.be.true;\n expect(rowThreeCheckboxCell.checkbox.checked).to.be.true;\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }