@spectrum-web-components/table 1.2.0-beta.11 → 1.2.0-beta.12

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": "1.2.0-beta.11",
3
+ "version": "1.2.0-beta.12",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -123,10 +123,10 @@
123
123
  "dependencies": {
124
124
  "@lit-labs/observers": "^2.0.2",
125
125
  "@lit-labs/virtualizer": "^2.0.12",
126
- "@spectrum-web-components/base": "^1.2.0-beta.11",
127
- "@spectrum-web-components/checkbox": "^1.2.0-beta.11",
128
- "@spectrum-web-components/icon": "^1.2.0-beta.11",
129
- "@spectrum-web-components/icons-ui": "^1.2.0-beta.11"
126
+ "@spectrum-web-components/base": "^1.2.0-beta.12",
127
+ "@spectrum-web-components/checkbox": "^1.2.0-beta.12",
128
+ "@spectrum-web-components/icon": "^1.2.0-beta.12",
129
+ "@spectrum-web-components/icons-ui": "^1.2.0-beta.12"
130
130
  },
131
131
  "devDependencies": {
132
132
  "@spectrum-css/table": "7.0.0-s2-foundations.17"
@@ -138,5 +138,5 @@
138
138
  "./elements.js",
139
139
  "./**/*.dev.js"
140
140
  ],
141
- "gitHead": "75f083178efc8593564132048c87594639405fa2"
141
+ "gitHead": "c14029936cd6224fb669993a9890b2ed0c3c9575"
142
142
  }
@@ -18,7 +18,6 @@ import { property } from "@spectrum-web-components/base/src/decorators.js";
18
18
  import "@spectrum-web-components/icons-ui/icons/sp-icon-arrow100.js";
19
19
  import styles from "./table-head-cell.css.js";
20
20
  import arrowStyles from "@spectrum-web-components/icon/src/spectrum-icon-arrow.css.js";
21
- import arrowOverrides from "@spectrum-web-components/icon/src/icon-arrow-overrides.css.js";
22
21
  const ariaSortValue = (sortDirection) => {
23
22
  const values = {
24
23
  asc: "ascending",
@@ -35,7 +34,7 @@ export class TableHeadCell extends SpectrumElement {
35
34
  this.sortKey = "";
36
35
  }
37
36
  static get styles() {
38
- return [styles, arrowStyles, arrowOverrides];
37
+ return [styles, arrowStyles];
39
38
  }
40
39
  handleKeydown(event) {
41
40
  const { code } = event;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["TableHeadCell.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 nothing,\n PropertyValues,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { property } from '@spectrum-web-components/base/src/decorators.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-arrow100.js';\n\nimport styles from './table-head-cell.css.js';\nimport arrowStyles from '@spectrum-web-components/icon/src/spectrum-icon-arrow.css.js';\nimport arrowOverrides from '@spectrum-web-components/icon/src/icon-arrow-overrides.css.js';\n\nexport type SortedEventDetails = {\n sortDirection: 'asc' | 'desc';\n sortKey: string;\n};\n\nconst ariaSortValue = (sortDirection?: 'asc' | 'desc'): string => {\n const values = {\n asc: 'ascending',\n desc: 'descending',\n };\n return values[sortDirection as 'asc' | 'desc'] || 'none';\n};\n\n/**\n * @element sp-table-head-cell\n *\n * @fires sorted - Announces that the table head has been sorted and handles the sorted event\n */\nexport class TableHeadCell extends SpectrumElement {\n public static override get styles(): CSSResultArray {\n return [styles, arrowStyles, arrowOverrides];\n }\n\n @property({ type: Boolean, reflect: true })\n public active = false;\n\n @property({ reflect: true })\n public override role = 'columnheader';\n\n @property({ type: Boolean, reflect: true })\n public sortable = false;\n\n @property({ reflect: true, attribute: 'sort-direction' })\n public sortDirection: 'asc' | 'desc' | undefined;\n\n @property({ attribute: 'sort-key' })\n public sortKey = '';\n\n protected handleKeydown(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Space':\n event.preventDefault();\n this.addEventListener('keyup', this.handleKeyup);\n this.active = true;\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n private handleKeypress(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Enter':\n case 'NumpadEnter':\n this.click();\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n protected handleKeyup(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Space':\n this.active = false;\n this.removeEventListener('keyup', this.handleKeyup);\n this.click();\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n protected handleClick(): void {\n if (!this.sortable) return;\n if (this.sortDirection) {\n this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';\n } else {\n this.sortDirection = 'asc';\n }\n this.dispatchEvent(\n new CustomEvent<SortedEventDetails>('sorted', {\n bubbles: true,\n detail: {\n sortDirection: this.sortDirection,\n sortKey: this.sortKey,\n },\n })\n );\n }\n\n protected override render(): TemplateResult {\n const visiblySorted = this.sortable && !!this.sortDirection;\n return html`\n ${visiblySorted\n ? html`\n <sp-icon-arrow100\n class=\"sortedIcon spectrum-UIIcon-ArrowDown100\"\n ></sp-icon-arrow100>\n `\n : nothing}\n <slot></slot>\n `;\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.addEventListener('click', this.handleClick);\n this.addEventListener('keydown', this.handleKeydown);\n this.addEventListener('keypress', this.handleKeypress);\n }\n\n protected override update(changes: PropertyValues): void {\n if (changes.has('sortDirection')) {\n this.setAttribute('aria-sort', ariaSortValue(this.sortDirection));\n }\n if (changes.has('sortable')) {\n this.tabIndex = this.sortable ? 0 : -1;\n }\n super.update(changes);\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 CSSResultArray,\n html,\n nothing,\n PropertyValues,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { property } from '@spectrum-web-components/base/src/decorators.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-arrow100.js';\n\nimport styles from './table-head-cell.css.js';\nimport arrowStyles from '@spectrum-web-components/icon/src/spectrum-icon-arrow.css.js';\n\nexport type SortedEventDetails = {\n sortDirection: 'asc' | 'desc';\n sortKey: string;\n};\n\nconst ariaSortValue = (sortDirection?: 'asc' | 'desc'): string => {\n const values = {\n asc: 'ascending',\n desc: 'descending',\n };\n return values[sortDirection as 'asc' | 'desc'] || 'none';\n};\n\n/**\n * @element sp-table-head-cell\n *\n * @fires sorted - Announces that the table head has been sorted and handles the sorted event\n */\nexport class TableHeadCell extends SpectrumElement {\n public static override get styles(): CSSResultArray {\n return [styles, arrowStyles];\n }\n\n @property({ type: Boolean, reflect: true })\n public active = false;\n\n @property({ reflect: true })\n public override role = 'columnheader';\n\n @property({ type: Boolean, reflect: true })\n public sortable = false;\n\n @property({ reflect: true, attribute: 'sort-direction' })\n public sortDirection: 'asc' | 'desc' | undefined;\n\n @property({ attribute: 'sort-key' })\n public sortKey = '';\n\n protected handleKeydown(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Space':\n event.preventDefault();\n this.addEventListener('keyup', this.handleKeyup);\n this.active = true;\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n private handleKeypress(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Enter':\n case 'NumpadEnter':\n this.click();\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n protected handleKeyup(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Space':\n this.active = false;\n this.removeEventListener('keyup', this.handleKeyup);\n this.click();\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n protected handleClick(): void {\n if (!this.sortable) return;\n if (this.sortDirection) {\n this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';\n } else {\n this.sortDirection = 'asc';\n }\n this.dispatchEvent(\n new CustomEvent<SortedEventDetails>('sorted', {\n bubbles: true,\n detail: {\n sortDirection: this.sortDirection,\n sortKey: this.sortKey,\n },\n })\n );\n }\n\n protected override render(): TemplateResult {\n const visiblySorted = this.sortable && !!this.sortDirection;\n return html`\n ${visiblySorted\n ? html`\n <sp-icon-arrow100\n class=\"sortedIcon spectrum-UIIcon-ArrowDown100\"\n ></sp-icon-arrow100>\n `\n : nothing}\n <slot></slot>\n `;\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.addEventListener('click', this.handleClick);\n this.addEventListener('keydown', this.handleKeydown);\n this.addEventListener('keypress', this.handleKeypress);\n }\n\n protected override update(changes: PropertyValues): void {\n if (changes.has('sortDirection')) {\n this.setAttribute('aria-sort', ariaSortValue(this.sortDirection));\n }\n if (changes.has('sortable')) {\n this.tabIndex = this.sortable ? 0 : -1;\n }\n super.update(changes);\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,9 +1,9 @@
1
- "use strict";var l=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var i=(o,s,e,t)=>{for(var r=t>1?void 0:t?p(s,e):s,c=o.length-1,n;c>=0;c--)(n=o[c])&&(r=(t?n(s,e,r):n(r))||r);return t&&r&&l(s,e,r),r};import{html as d,nothing as u,SpectrumElement as h}from"@spectrum-web-components/base";import{property as a}from"@spectrum-web-components/base/src/decorators.js";import"@spectrum-web-components/icons-ui/icons/sp-icon-arrow100.js";import v from"./table-head-cell.css.js";import y from"@spectrum-web-components/icon/src/spectrum-icon-arrow.css.js";import b from"@spectrum-web-components/icon/src/icon-arrow-overrides.css.js";const f=o=>({asc:"ascending",desc:"descending"})[o]||"none";export class TableHeadCell extends h{constructor(){super(...arguments);this.active=!1;this.role="columnheader";this.sortable=!1;this.sortKey=""}static get styles(){return[v,y,b]}handleKeydown(e){const{code:t}=e;switch(t){case"Space":e.preventDefault(),this.addEventListener("keyup",this.handleKeyup),this.active=!0;break;default:break}}handleKeypress(e){const{code:t}=e;switch(t){case"Enter":case"NumpadEnter":this.click();break;default:break}}handleKeyup(e){const{code:t}=e;switch(t){case"Space":this.active=!1,this.removeEventListener("keyup",this.handleKeyup),this.click();break;default:break}}handleClick(){this.sortable&&(this.sortDirection?this.sortDirection=this.sortDirection==="asc"?"desc":"asc":this.sortDirection="asc",this.dispatchEvent(new CustomEvent("sorted",{bubbles:!0,detail:{sortDirection:this.sortDirection,sortKey:this.sortKey}})))}render(){const e=this.sortable&&!!this.sortDirection;return d`
1
+ "use strict";var l=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var i=(o,s,e,t)=>{for(var r=t>1?void 0:t?p(s,e):s,a=o.length-1,n;a>=0;a--)(n=o[a])&&(r=(t?n(s,e,r):n(r))||r);return t&&r&&l(s,e,r),r};import{html as d,nothing as u,SpectrumElement as h}from"@spectrum-web-components/base";import{property as c}from"@spectrum-web-components/base/src/decorators.js";import"@spectrum-web-components/icons-ui/icons/sp-icon-arrow100.js";import y from"./table-head-cell.css.js";import v from"@spectrum-web-components/icon/src/spectrum-icon-arrow.css.js";const b=o=>({asc:"ascending",desc:"descending"})[o]||"none";export class TableHeadCell extends h{constructor(){super(...arguments);this.active=!1;this.role="columnheader";this.sortable=!1;this.sortKey=""}static get styles(){return[y,v]}handleKeydown(e){const{code:t}=e;switch(t){case"Space":e.preventDefault(),this.addEventListener("keyup",this.handleKeyup),this.active=!0;break;default:break}}handleKeypress(e){const{code:t}=e;switch(t){case"Enter":case"NumpadEnter":this.click();break;default:break}}handleKeyup(e){const{code:t}=e;switch(t){case"Space":this.active=!1,this.removeEventListener("keyup",this.handleKeyup),this.click();break;default:break}}handleClick(){this.sortable&&(this.sortDirection?this.sortDirection=this.sortDirection==="asc"?"desc":"asc":this.sortDirection="asc",this.dispatchEvent(new CustomEvent("sorted",{bubbles:!0,detail:{sortDirection:this.sortDirection,sortKey:this.sortKey}})))}render(){const e=this.sortable&&!!this.sortDirection;return d`
2
2
  ${e?d`
3
3
  <sp-icon-arrow100
4
4
  class="sortedIcon spectrum-UIIcon-ArrowDown100"
5
5
  ></sp-icon-arrow100>
6
6
  `:u}
7
7
  <slot></slot>
8
- `}firstUpdated(e){super.firstUpdated(e),this.addEventListener("click",this.handleClick),this.addEventListener("keydown",this.handleKeydown),this.addEventListener("keypress",this.handleKeypress)}update(e){e.has("sortDirection")&&this.setAttribute("aria-sort",f(this.sortDirection)),e.has("sortable")&&(this.tabIndex=this.sortable?0:-1),super.update(e)}}i([a({type:Boolean,reflect:!0})],TableHeadCell.prototype,"active",2),i([a({reflect:!0})],TableHeadCell.prototype,"role",2),i([a({type:Boolean,reflect:!0})],TableHeadCell.prototype,"sortable",2),i([a({reflect:!0,attribute:"sort-direction"})],TableHeadCell.prototype,"sortDirection",2),i([a({attribute:"sort-key"})],TableHeadCell.prototype,"sortKey",2);
8
+ `}firstUpdated(e){super.firstUpdated(e),this.addEventListener("click",this.handleClick),this.addEventListener("keydown",this.handleKeydown),this.addEventListener("keypress",this.handleKeypress)}update(e){e.has("sortDirection")&&this.setAttribute("aria-sort",b(this.sortDirection)),e.has("sortable")&&(this.tabIndex=this.sortable?0:-1),super.update(e)}}i([c({type:Boolean,reflect:!0})],TableHeadCell.prototype,"active",2),i([c({reflect:!0})],TableHeadCell.prototype,"role",2),i([c({type:Boolean,reflect:!0})],TableHeadCell.prototype,"sortable",2),i([c({reflect:!0,attribute:"sort-direction"})],TableHeadCell.prototype,"sortDirection",2),i([c({attribute:"sort-key"})],TableHeadCell.prototype,"sortKey",2);
9
9
  //# sourceMappingURL=TableHeadCell.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["TableHeadCell.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 nothing,\n PropertyValues,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { property } from '@spectrum-web-components/base/src/decorators.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-arrow100.js';\n\nimport styles from './table-head-cell.css.js';\nimport arrowStyles from '@spectrum-web-components/icon/src/spectrum-icon-arrow.css.js';\nimport arrowOverrides from '@spectrum-web-components/icon/src/icon-arrow-overrides.css.js';\n\nexport type SortedEventDetails = {\n sortDirection: 'asc' | 'desc';\n sortKey: string;\n};\n\nconst ariaSortValue = (sortDirection?: 'asc' | 'desc'): string => {\n const values = {\n asc: 'ascending',\n desc: 'descending',\n };\n return values[sortDirection as 'asc' | 'desc'] || 'none';\n};\n\n/**\n * @element sp-table-head-cell\n *\n * @fires sorted - Announces that the table head has been sorted and handles the sorted event\n */\nexport class TableHeadCell extends SpectrumElement {\n public static override get styles(): CSSResultArray {\n return [styles, arrowStyles, arrowOverrides];\n }\n\n @property({ type: Boolean, reflect: true })\n public active = false;\n\n @property({ reflect: true })\n public override role = 'columnheader';\n\n @property({ type: Boolean, reflect: true })\n public sortable = false;\n\n @property({ reflect: true, attribute: 'sort-direction' })\n public sortDirection: 'asc' | 'desc' | undefined;\n\n @property({ attribute: 'sort-key' })\n public sortKey = '';\n\n protected handleKeydown(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Space':\n event.preventDefault();\n this.addEventListener('keyup', this.handleKeyup);\n this.active = true;\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n private handleKeypress(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Enter':\n case 'NumpadEnter':\n this.click();\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n protected handleKeyup(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Space':\n this.active = false;\n this.removeEventListener('keyup', this.handleKeyup);\n this.click();\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n protected handleClick(): void {\n if (!this.sortable) return;\n if (this.sortDirection) {\n this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';\n } else {\n this.sortDirection = 'asc';\n }\n this.dispatchEvent(\n new CustomEvent<SortedEventDetails>('sorted', {\n bubbles: true,\n detail: {\n sortDirection: this.sortDirection,\n sortKey: this.sortKey,\n },\n })\n );\n }\n\n protected override render(): TemplateResult {\n const visiblySorted = this.sortable && !!this.sortDirection;\n return html`\n ${visiblySorted\n ? html`\n <sp-icon-arrow100\n class=\"sortedIcon spectrum-UIIcon-ArrowDown100\"\n ></sp-icon-arrow100>\n `\n : nothing}\n <slot></slot>\n `;\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.addEventListener('click', this.handleClick);\n this.addEventListener('keydown', this.handleKeydown);\n this.addEventListener('keypress', this.handleKeypress);\n }\n\n protected override update(changes: PropertyValues): void {\n if (changes.has('sortDirection')) {\n this.setAttribute('aria-sort', ariaSortValue(this.sortDirection));\n }\n if (changes.has('sortable')) {\n this.tabIndex = this.sortable ? 0 : -1;\n }\n super.update(changes);\n }\n}\n"],
5
- "mappings": "qNAWA,OAEI,QAAAA,EACA,WAAAC,EAEA,mBAAAC,MAEG,gCACP,OAAS,YAAAC,MAAgB,kDACzB,MAAO,8DAEP,OAAOC,MAAY,2BACnB,OAAOC,MAAiB,+DACxB,OAAOC,MAAoB,gEAO3B,MAAMC,EAAiBC,IACJ,CACX,IAAK,YACL,KAAM,YACV,GACcA,CAA+B,GAAK,OAQ/C,aAAM,sBAAsBN,CAAgB,CAA5C,kCAMH,KAAO,OAAS,GAGhB,KAAgB,KAAO,eAGvB,KAAO,SAAW,GAMlB,KAAO,QAAU,GAjBjB,WAA2B,QAAyB,CAChD,MAAO,CAACE,EAAQC,EAAaC,CAAc,CAC/C,CAiBU,cAAcG,EAA4B,CAChD,KAAM,CAAE,KAAAC,CAAK,EAAID,EACjB,OAAQC,EAAM,CACV,IAAK,QACDD,EAAM,eAAe,EACrB,KAAK,iBAAiB,QAAS,KAAK,WAAW,EAC/C,KAAK,OAAS,GACd,MAEJ,QACI,KACR,CACJ,CAEQ,eAAeA,EAA4B,CAC/C,KAAM,CAAE,KAAAC,CAAK,EAAID,EACjB,OAAQC,EAAM,CACV,IAAK,QACL,IAAK,cACD,KAAK,MAAM,EACX,MAEJ,QACI,KACR,CACJ,CAEU,YAAYD,EAA4B,CAC9C,KAAM,CAAE,KAAAC,CAAK,EAAID,EACjB,OAAQC,EAAM,CACV,IAAK,QACD,KAAK,OAAS,GACd,KAAK,oBAAoB,QAAS,KAAK,WAAW,EAClD,KAAK,MAAM,EACX,MAEJ,QACI,KACR,CACJ,CAEU,aAAoB,CACrB,KAAK,WACN,KAAK,cACL,KAAK,cAAgB,KAAK,gBAAkB,MAAQ,OAAS,MAE7D,KAAK,cAAgB,MAEzB,KAAK,cACD,IAAI,YAAgC,SAAU,CAC1C,QAAS,GACT,OAAQ,CACJ,cAAe,KAAK,cACpB,QAAS,KAAK,OAClB,CACJ,CAAC,CACL,EACJ,CAEmB,QAAyB,CACxC,MAAMC,EAAgB,KAAK,UAAY,CAAC,CAAC,KAAK,cAC9C,OAAOX;AAAA,cACDW,EACIX;AAAA;AAAA;AAAA;AAAA,oBAKAC,CAAO;AAAA;AAAA,SAGrB,CAEmB,aAAaW,EAA+B,CAC3D,MAAM,aAAaA,CAAO,EAC1B,KAAK,iBAAiB,QAAS,KAAK,WAAW,EAC/C,KAAK,iBAAiB,UAAW,KAAK,aAAa,EACnD,KAAK,iBAAiB,WAAY,KAAK,cAAc,CACzD,CAEmB,OAAOA,EAA+B,CACjDA,EAAQ,IAAI,eAAe,GAC3B,KAAK,aAAa,YAAaL,EAAc,KAAK,aAAa,CAAC,EAEhEK,EAAQ,IAAI,UAAU,IACtB,KAAK,SAAW,KAAK,SAAW,EAAI,IAExC,MAAM,OAAOA,CAAO,CACxB,CACJ,CAvGWC,EAAA,CADNV,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GALjC,cAMF,sBAGSU,EAAA,CADfV,EAAS,CAAE,QAAS,EAAK,CAAC,GARlB,cASO,oBAGTU,EAAA,CADNV,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GAXjC,cAYF,wBAGAU,EAAA,CADNV,EAAS,CAAE,QAAS,GAAM,UAAW,gBAAiB,CAAC,GAd/C,cAeF,6BAGAU,EAAA,CADNV,EAAS,CAAE,UAAW,UAAW,CAAC,GAjB1B,cAkBF",
6
- "names": ["html", "nothing", "SpectrumElement", "property", "styles", "arrowStyles", "arrowOverrides", "ariaSortValue", "sortDirection", "event", "code", "visiblySorted", "changes", "__decorateClass"]
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 nothing,\n PropertyValues,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { property } from '@spectrum-web-components/base/src/decorators.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-arrow100.js';\n\nimport styles from './table-head-cell.css.js';\nimport arrowStyles from '@spectrum-web-components/icon/src/spectrum-icon-arrow.css.js';\n\nexport type SortedEventDetails = {\n sortDirection: 'asc' | 'desc';\n sortKey: string;\n};\n\nconst ariaSortValue = (sortDirection?: 'asc' | 'desc'): string => {\n const values = {\n asc: 'ascending',\n desc: 'descending',\n };\n return values[sortDirection as 'asc' | 'desc'] || 'none';\n};\n\n/**\n * @element sp-table-head-cell\n *\n * @fires sorted - Announces that the table head has been sorted and handles the sorted event\n */\nexport class TableHeadCell extends SpectrumElement {\n public static override get styles(): CSSResultArray {\n return [styles, arrowStyles];\n }\n\n @property({ type: Boolean, reflect: true })\n public active = false;\n\n @property({ reflect: true })\n public override role = 'columnheader';\n\n @property({ type: Boolean, reflect: true })\n public sortable = false;\n\n @property({ reflect: true, attribute: 'sort-direction' })\n public sortDirection: 'asc' | 'desc' | undefined;\n\n @property({ attribute: 'sort-key' })\n public sortKey = '';\n\n protected handleKeydown(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Space':\n event.preventDefault();\n this.addEventListener('keyup', this.handleKeyup);\n this.active = true;\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n private handleKeypress(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Enter':\n case 'NumpadEnter':\n this.click();\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n protected handleKeyup(event: KeyboardEvent): void {\n const { code } = event;\n switch (code) {\n case 'Space':\n this.active = false;\n this.removeEventListener('keyup', this.handleKeyup);\n this.click();\n break;\n /* c8 ignore next 2 */\n default:\n break;\n }\n }\n\n protected handleClick(): void {\n if (!this.sortable) return;\n if (this.sortDirection) {\n this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';\n } else {\n this.sortDirection = 'asc';\n }\n this.dispatchEvent(\n new CustomEvent<SortedEventDetails>('sorted', {\n bubbles: true,\n detail: {\n sortDirection: this.sortDirection,\n sortKey: this.sortKey,\n },\n })\n );\n }\n\n protected override render(): TemplateResult {\n const visiblySorted = this.sortable && !!this.sortDirection;\n return html`\n ${visiblySorted\n ? html`\n <sp-icon-arrow100\n class=\"sortedIcon spectrum-UIIcon-ArrowDown100\"\n ></sp-icon-arrow100>\n `\n : nothing}\n <slot></slot>\n `;\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.addEventListener('click', this.handleClick);\n this.addEventListener('keydown', this.handleKeydown);\n this.addEventListener('keypress', this.handleKeypress);\n }\n\n protected override update(changes: PropertyValues): void {\n if (changes.has('sortDirection')) {\n this.setAttribute('aria-sort', ariaSortValue(this.sortDirection));\n }\n if (changes.has('sortable')) {\n this.tabIndex = this.sortable ? 0 : -1;\n }\n super.update(changes);\n }\n}\n"],
5
+ "mappings": "qNAWA,OAEI,QAAAA,EACA,WAAAC,EAEA,mBAAAC,MAEG,gCACP,OAAS,YAAAC,MAAgB,kDACzB,MAAO,8DAEP,OAAOC,MAAY,2BACnB,OAAOC,MAAiB,+DAOxB,MAAMC,EAAiBC,IACJ,CACX,IAAK,YACL,KAAM,YACV,GACcA,CAA+B,GAAK,OAQ/C,aAAM,sBAAsBL,CAAgB,CAA5C,kCAMH,KAAO,OAAS,GAGhB,KAAgB,KAAO,eAGvB,KAAO,SAAW,GAMlB,KAAO,QAAU,GAjBjB,WAA2B,QAAyB,CAChD,MAAO,CAACE,EAAQC,CAAW,CAC/B,CAiBU,cAAcG,EAA4B,CAChD,KAAM,CAAE,KAAAC,CAAK,EAAID,EACjB,OAAQC,EAAM,CACV,IAAK,QACDD,EAAM,eAAe,EACrB,KAAK,iBAAiB,QAAS,KAAK,WAAW,EAC/C,KAAK,OAAS,GACd,MAEJ,QACI,KACR,CACJ,CAEQ,eAAeA,EAA4B,CAC/C,KAAM,CAAE,KAAAC,CAAK,EAAID,EACjB,OAAQC,EAAM,CACV,IAAK,QACL,IAAK,cACD,KAAK,MAAM,EACX,MAEJ,QACI,KACR,CACJ,CAEU,YAAYD,EAA4B,CAC9C,KAAM,CAAE,KAAAC,CAAK,EAAID,EACjB,OAAQC,EAAM,CACV,IAAK,QACD,KAAK,OAAS,GACd,KAAK,oBAAoB,QAAS,KAAK,WAAW,EAClD,KAAK,MAAM,EACX,MAEJ,QACI,KACR,CACJ,CAEU,aAAoB,CACrB,KAAK,WACN,KAAK,cACL,KAAK,cAAgB,KAAK,gBAAkB,MAAQ,OAAS,MAE7D,KAAK,cAAgB,MAEzB,KAAK,cACD,IAAI,YAAgC,SAAU,CAC1C,QAAS,GACT,OAAQ,CACJ,cAAe,KAAK,cACpB,QAAS,KAAK,OAClB,CACJ,CAAC,CACL,EACJ,CAEmB,QAAyB,CACxC,MAAMC,EAAgB,KAAK,UAAY,CAAC,CAAC,KAAK,cAC9C,OAAOV;AAAA,cACDU,EACIV;AAAA;AAAA;AAAA;AAAA,oBAKAC,CAAO;AAAA;AAAA,SAGrB,CAEmB,aAAaU,EAA+B,CAC3D,MAAM,aAAaA,CAAO,EAC1B,KAAK,iBAAiB,QAAS,KAAK,WAAW,EAC/C,KAAK,iBAAiB,UAAW,KAAK,aAAa,EACnD,KAAK,iBAAiB,WAAY,KAAK,cAAc,CACzD,CAEmB,OAAOA,EAA+B,CACjDA,EAAQ,IAAI,eAAe,GAC3B,KAAK,aAAa,YAAaL,EAAc,KAAK,aAAa,CAAC,EAEhEK,EAAQ,IAAI,UAAU,IACtB,KAAK,SAAW,KAAK,SAAW,EAAI,IAExC,MAAM,OAAOA,CAAO,CACxB,CACJ,CAvGWC,EAAA,CADNT,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GALjC,cAMF,sBAGSS,EAAA,CADfT,EAAS,CAAE,QAAS,EAAK,CAAC,GARlB,cASO,oBAGTS,EAAA,CADNT,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GAXjC,cAYF,wBAGAS,EAAA,CADNT,EAAS,CAAE,QAAS,GAAM,UAAW,gBAAiB,CAAC,GAd/C,cAeF,6BAGAS,EAAA,CADNT,EAAS,CAAE,UAAW,UAAW,CAAC,GAjB1B,cAkBF",
6
+ "names": ["html", "nothing", "SpectrumElement", "property", "styles", "arrowStyles", "ariaSortValue", "sortDirection", "event", "code", "visiblySorted", "changes", "__decorateClass"]
7
7
  }