@spectrum-web-components/sidenav 0.13.0-devmode.0 → 0.13.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 (63) hide show
  1. package/package.json +5 -5
  2. package/sp-sidenav-heading.dev.js +1 -0
  3. package/sp-sidenav-heading.dev.js.map +1 -1
  4. package/sp-sidenav-heading.js +1 -2
  5. package/sp-sidenav-heading.js.map +2 -2
  6. package/sp-sidenav-item.dev.js +1 -0
  7. package/sp-sidenav-item.dev.js.map +1 -1
  8. package/sp-sidenav-item.js +1 -2
  9. package/sp-sidenav-item.js.map +2 -2
  10. package/sp-sidenav.dev.js +1 -0
  11. package/sp-sidenav.dev.js.map +1 -1
  12. package/sp-sidenav.js +1 -2
  13. package/sp-sidenav.js.map +2 -2
  14. package/src/Sidenav.dev.js +11 -6
  15. package/src/Sidenav.dev.js.map +1 -1
  16. package/src/Sidenav.js +2 -132
  17. package/src/Sidenav.js.map +2 -2
  18. package/src/SidenavHeading.dev.js +1 -0
  19. package/src/SidenavHeading.dev.js.map +1 -1
  20. package/src/SidenavHeading.js +2 -40
  21. package/src/SidenavHeading.js.map +2 -2
  22. package/src/SidenavItem.dev.js +4 -1
  23. package/src/SidenavItem.dev.js.map +1 -1
  24. package/src/SidenavItem.js +9 -136
  25. package/src/SidenavItem.js.map +2 -2
  26. package/src/index.dev.js +1 -0
  27. package/src/index.dev.js.map +1 -1
  28. package/src/index.js +1 -3
  29. package/src/index.js.map +1 -1
  30. package/src/sidenav-heading.css.dev.js +1 -0
  31. package/src/sidenav-heading.css.dev.js.map +1 -1
  32. package/src/sidenav-heading.css.js +2 -4
  33. package/src/sidenav-heading.css.js.map +2 -2
  34. package/src/sidenav-item.css.dev.js +1 -0
  35. package/src/sidenav-item.css.dev.js.map +1 -1
  36. package/src/sidenav-item.css.js +2 -4
  37. package/src/sidenav-item.css.js.map +2 -2
  38. package/src/sidenav.css.dev.js +1 -0
  39. package/src/sidenav.css.dev.js.map +1 -1
  40. package/src/sidenav.css.js +2 -4
  41. package/src/sidenav.css.js.map +2 -2
  42. package/src/spectrum-sidenav-heading.css.dev.js +1 -0
  43. package/src/spectrum-sidenav-heading.css.dev.js.map +1 -1
  44. package/src/spectrum-sidenav-heading.css.js +2 -4
  45. package/src/spectrum-sidenav-heading.css.js.map +2 -2
  46. package/src/spectrum-sidenav-item.css.dev.js +1 -0
  47. package/src/spectrum-sidenav-item.css.dev.js.map +1 -1
  48. package/src/spectrum-sidenav-item.css.js +2 -4
  49. package/src/spectrum-sidenav-item.css.js.map +2 -2
  50. package/src/spectrum-sidenav.css.dev.js +1 -0
  51. package/src/spectrum-sidenav.css.dev.js.map +1 -1
  52. package/src/spectrum-sidenav.css.js +2 -4
  53. package/src/spectrum-sidenav.css.js.map +2 -2
  54. package/stories/sidenav.stories.js +1 -0
  55. package/stories/sidenav.stories.js.map +1 -1
  56. package/test/benchmark/test-basic.js +1 -0
  57. package/test/benchmark/test-basic.js.map +1 -1
  58. package/test/sidenav-item.test.js +25 -10
  59. package/test/sidenav-item.test.js.map +1 -1
  60. package/test/sidenav.test-vrt.js +1 -0
  61. package/test/sidenav.test-vrt.js.map +1 -1
  62. package/test/sidenav.test.js +73 -36
  63. package/test/sidenav.test.js.map +1 -1
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["sidenav.stories.ts"],
4
4
  "sourcesContent": ["/*\nCopyright 2020 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 { html, TemplateResult } from '@spectrum-web-components/base';\n\nimport '@spectrum-web-components/sidenav/sp-sidenav.js';\nimport '@spectrum-web-components/sidenav/sp-sidenav-item.js';\nimport '@spectrum-web-components/sidenav/sp-sidenav-heading.js';\n\nexport default {\n component: 'sp-sidenav',\n title: 'Sidenav',\n argTypes: {\n onChange: { action: 'change' },\n },\n};\n\nexport const Default = ({\n onChange,\n}: {\n onChange: () => void;\n}): TemplateResult => {\n return html`\n <sp-sidenav @change=${onChange} value=\"Section 2\">\n <sp-sidenav-item\n value=\"Section 1\"\n label=\"Section 1\"\n ></sp-sidenav-item>\n <sp-sidenav-item\n selected\n value=\"Section 2\"\n label=\"Section 2\"\n ></sp-sidenav-item>\n <sp-sidenav-heading label=\"CATEGORY 1\">\n <sp-sidenav-item\n value=\"Section 3\"\n label=\"Section 3\"\n ></sp-sidenav-item>\n <sp-sidenav-item\n value=\"Section 4\"\n label=\"Section 4\"\n ></sp-sidenav-item>\n </sp-sidenav-heading>\n </sp-sidenav>\n `;\n};\n\nexport const Multilevel = ({\n onChange,\n}: {\n onChange: () => void;\n}): TemplateResult => {\n return html`\n <sp-sidenav variant=\"multilevel\" value=\"2.3.1\" @change=${onChange}>\n <sp-sidenav-item value=\"foo\" label=\"foo\"></sp-sidenav-item>\n <sp-sidenav-item value=\"baz\" label=\"baz\" expanded>\n <sp-sidenav-item value=\"2.1\" label=\"2.1\"></sp-sidenav-item>\n <sp-sidenav-item value=\"2.2\" label=\"2.2\"></sp-sidenav-item>\n <sp-sidenav-item value=\"2.3\" label=\"2.3\" expanded>\n <sp-sidenav-item\n value=\"2.3.1\"\n label=\"2.3.1\"\n ></sp-sidenav-item>\n <sp-sidenav-item\n disabled\n value=\"2.3.2\"\n label=\"2.3.2\"\n ></sp-sidenav-item>\n </sp-sidenav-item>\n </sp-sidenav-item>\n <sp-sidenav-item value=\"test\" label=\"test\"></sp-sidenav-item>\n <sp-sidenav-item value=\"hi\" label=\"hi\"></sp-sidenav-item>\n </sp-sidenav>\n `;\n};\n\nMultilevel.storyName = 'Multi-level';\n\nexport const levelsAndDisabled = (): TemplateResult => {\n return html`\n <sp-sidenav>\n <sp-sidenav-heading label=\"CATEGORY 1\">\n <sp-sidenav-item value=\"Section 1\">Section 1</sp-sidenav-item>\n <sp-sidenav-item value=\"Section 2\" disabled>\n Section 2\n </sp-sidenav-item>\n <sp-sidenav-item value=\"Section 3\" expanded>\n Section 3\n <sp-sidenav-item value=\"Section 3a\">\n Section 3a\n </sp-sidenav-item>\n </sp-sidenav-item>\n </sp-sidenav-heading>\n </sp-sidenav>\n `;\n};\n\nexport const manageTabIndex = (): TemplateResult => {\n return html`\n <sp-sidenav manage-tab-index>\n <sp-sidenav-heading label=\"CATEGORY 1\">\n <sp-sidenav-item\n value=\"Section 0\"\n label=\"Section 0\"\n ></sp-sidenav-item>\n <sp-sidenav-item\n value=\"Section 1\"\n label=\"Section 1\"\n selected\n ></sp-sidenav-item>\n <sp-sidenav-item\n value=\"Section 2\"\n label=\"Section 2\"\n disabled\n ></sp-sidenav-item>\n <sp-sidenav-item value=\"Section 3\" label=\"Section 3\">\n <sp-sidenav-item\n value=\"Section 3a\"\n label=\"Section 3a\"\n ></sp-sidenav-item>\n </sp-sidenav-item>\n </sp-sidenav-heading>\n </sp-sidenav>\n `;\n};\n\nexport const Hrefs = ({\n onChange,\n}: {\n onChange: () => void;\n}): TemplateResult => {\n return html`\n <sp-sidenav @change=${onChange} value=\"current\">\n <sp-sidenav-heading label=\"GITHUB\">\n <sp-sidenav-item\n href=${window.location.href}\n label=\"Current\"\n value=\"current\"\n selected\n ></sp-sidenav-item>\n <sp-sidenav-item\n href=\"https://github.com/adobe/spectrum-web-components\"\n label=\"Code\"\n ></sp-sidenav-item>\n <sp-sidenav-item\n href=\"https://github.com/adobe/spectrum-web-components/issues\"\n label=\"Issues\"\n ></sp-sidenav-item>\n <sp-sidenav-item\n href=\"https://github.com/adobe/spectrum-web-components/pulls\"\n label=\"Pull Requests\"\n ></sp-sidenav-item>\n </sp-sidenav-heading>\n </sp-sidenav>\n `;\n};\n"],
5
- "mappings": "AAWA;AAEA;AACA;AACA;AAEA,eAAe;AAAA,EACX,WAAW;AAAA,EACX,OAAO;AAAA,EACP,UAAU;AAAA,IACN,UAAU,EAAE,QAAQ,SAAS;AAAA,EACjC;AACJ;AAEO,aAAM,UAAU,CAAC;AAAA,EACpB;AAAA,MAGkB;AAClB,SAAO;AAAA,8BACmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsB9B;AAEO,aAAM,aAAa,CAAC;AAAA,EACvB;AAAA,MAGkB;AAClB,SAAO;AAAA,iEACsD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqBjE;AAEA,WAAW,YAAY;AAEhB,aAAM,oBAAoB,MAAsB;AACnD,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBX;AAEO,aAAM,iBAAiB,MAAsB;AAChD,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0BX;AAEO,aAAM,QAAQ,CAAC;AAAA,EAClB;AAAA,MAGkB;AAClB,SAAO;AAAA,8BACmB;AAAA;AAAA;AAAA,2BAGH,OAAO,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoB3C;",
5
+ "mappings": ";AAWA,SAAS,YAA4B;AAErC,OAAO;AACP,OAAO;AACP,OAAO;AAEP,eAAe;AAAA,EACX,WAAW;AAAA,EACX,OAAO;AAAA,EACP,UAAU;AAAA,IACN,UAAU,EAAE,QAAQ,SAAS;AAAA,EACjC;AACJ;AAEO,aAAM,UAAU,CAAC;AAAA,EACpB;AACJ,MAEsB;AAClB,SAAO;AAAA,8BACmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsB9B;AAEO,aAAM,aAAa,CAAC;AAAA,EACvB;AACJ,MAEsB;AAClB,SAAO;AAAA,iEACsD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqBjE;AAEA,WAAW,YAAY;AAEhB,aAAM,oBAAoB,MAAsB;AACnD,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBX;AAEO,aAAM,iBAAiB,MAAsB;AAChD,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0BX;AAEO,aAAM,QAAQ,CAAC;AAAA,EAClB;AACJ,MAEsB;AAClB,SAAO;AAAA,8BACmB;AAAA;AAAA;AAAA,2BAGH,OAAO,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoB3C;",
6
6
  "names": []
7
7
  }
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  import "@spectrum-web-components/sidenav/sp-sidenav.js";
2
3
  import "@spectrum-web-components/sidenav/sp-sidenav-item.js";
3
4
  import "@spectrum-web-components/sidenav/sp-sidenav-heading.js";
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["test-basic.ts"],
4
4
  "sourcesContent": ["/*\nCopyright 2020 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*/\n\nimport '@spectrum-web-components/sidenav/sp-sidenav.js';\nimport '@spectrum-web-components/sidenav/sp-sidenav-item.js';\nimport '@spectrum-web-components/sidenav/sp-sidenav-heading.js';\nimport { html } from 'lit';\nimport { measureFixtureCreation } from '../../../../test/benchmark/helpers.js';\n\nmeasureFixtureCreation(html`\n <sp-sidenav manage-tab-index>\n <sp-sidenav-item value=\"Section 1\" label=\"Section 1\"></sp-sidenav-item>\n <sp-sidenav-item selected expanded value=\"Section 2\" label=\"Section 2\">\n <sp-sidenav-item\n value=\"Section 2a\"\n label=\"Section 2a\"\n ></sp-sidenav-item>\n <sp-sidenav-item\n value=\"Section 2b\"\n label=\"Section 2b\"\n ></sp-sidenav-item>\n <sp-sidenav-item\n value=\"Section 2c\"\n label=\"Section 2c\"\n ></sp-sidenav-item>\n </sp-sidenav-item>\n <sp-sidenav-heading label=\"CATEGORY 1\">\n <sp-sidenav-item\n value=\"Section 3\"\n label=\"Section 3\"\n ></sp-sidenav-item>\n <sp-sidenav-item value=\"Section 4\" label=\"Section 4\">\n <sp-sidenav-item\n value=\"Section 4a\"\n label=\"Section 4a\"\n ></sp-sidenav-item>\n <sp-sidenav-item\n value=\"Section 4b\"\n label=\"Section 4b\"\n ></sp-sidenav-item>\n <sp-sidenav-item\n value=\"Section 4c\"\n label=\"Section 4c\"\n ></sp-sidenav-item>\n </sp-sidenav-item>\n </sp-sidenav-heading>\n <sp-sidenav-item value=\"Section 1\" label=\"Section 1\"></sp-sidenav-item>\n <sp-sidenav-item selected expanded value=\"Section 2\" label=\"Section 2\">\n <sp-sidenav-item\n value=\"Section 2a\"\n label=\"Section 2a\"\n ></sp-sidenav-item>\n <sp-sidenav-item\n value=\"Section 2b\"\n label=\"Section 2b\"\n ></sp-sidenav-item>\n <sp-sidenav-item\n value=\"Section 2c\"\n label=\"Section 2c\"\n ></sp-sidenav-item>\n </sp-sidenav-item>\n <sp-sidenav-heading label=\"CATEGORY 1\">\n <sp-sidenav-item\n value=\"Section 3\"\n label=\"Section 3\"\n ></sp-sidenav-item>\n <sp-sidenav-item value=\"Section 4\" label=\"Section 4\">\n <sp-sidenav-item\n value=\"Section 4a\"\n label=\"Section 4a\"\n ></sp-sidenav-item>\n <sp-sidenav-item\n value=\"Section 4b\"\n label=\"Section 4b\"\n ></sp-sidenav-item>\n <sp-sidenav-item\n value=\"Section 4c\"\n label=\"Section 4c\"\n ></sp-sidenav-item>\n </sp-sidenav-item>\n </sp-sidenav-heading>\n </sp-sidenav>\n`);\n"],
5
- "mappings": "AAYA;AACA;AACA;AACA;AACA;AAEA,uBAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAyEtB;",
5
+ "mappings": ";AAYA,OAAO;AACP,OAAO;AACP,OAAO;AACP,SAAS,YAAY;AACrB,SAAS,8BAA8B;AAEvC,uBAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAyEtB;",
6
6
  "names": []
7
7
  }
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  import "@spectrum-web-components/sidenav/sp-sidenav.js";
2
3
  import "@spectrum-web-components/sidenav/sp-sidenav-item.js";
3
4
  import { elementUpdated, expect, fixture, html } from "@open-wc/testing";
@@ -7,14 +8,16 @@ describe("Sidenav Item", () => {
7
8
  const onSidenavSelect = () => {
8
9
  selected = true;
9
10
  };
10
- const el = await fixture(html`
11
+ const el = await fixture(
12
+ html`
11
13
  <sp-sidenav-item
12
14
  disabled
13
15
  value="Section 2"
14
16
  label="Section 2"
15
17
  @sidenav-select=${onSidenavSelect}
16
18
  ></sp-sidenav-item>
17
- `);
19
+ `
20
+ );
18
21
  await elementUpdated(el);
19
22
  expect(selected).to.be.false;
20
23
  el.click();
@@ -26,7 +29,8 @@ describe("Sidenav Item", () => {
26
29
  expect(selected).to.be.true;
27
30
  });
28
31
  it("clicking expands a sidenav item with children", async () => {
29
- const el = await fixture(html`
32
+ const el = await fixture(
33
+ html`
30
34
  <sp-sidenav-item>
31
35
  <sp-sidenav-item
32
36
  value="Section 1"
@@ -37,25 +41,31 @@ describe("Sidenav Item", () => {
37
41
  label="Section 2"
38
42
  ></sp-sidenav-item>
39
43
  </sp-sidenav-item>
40
- `);
44
+ `
45
+ );
41
46
  await elementUpdated(el);
42
47
  expect(el.shadowRoot).to.exist;
43
48
  if (!el.shadowRoot)
44
49
  return;
45
- let slot = el.shadowRoot.querySelector('slot[name="descendant"]');
50
+ let slot = el.shadowRoot.querySelector(
51
+ 'slot[name="descendant"]'
52
+ );
46
53
  expect(slot).not.to.exist;
47
54
  expect(el.expanded).to.be.false;
48
55
  el.click();
49
56
  await elementUpdated(el);
50
57
  expect(el.expanded).to.be.true;
51
- slot = el.shadowRoot.querySelector('slot[name="descendant"]');
58
+ slot = el.shadowRoot.querySelector(
59
+ 'slot[name="descendant"]'
60
+ );
52
61
  expect(slot).to.exist;
53
62
  if (!slot)
54
63
  return;
55
64
  expect(slot.assignedElements().length).to.equal(2);
56
65
  });
57
66
  it("populated `aria-current`", async () => {
58
- const el = await fixture(html`
67
+ const el = await fixture(
68
+ html`
59
69
  <sp-sidenav value="Section 2">
60
70
  <sp-sidenav-item
61
71
  href="https://opensource.adobe.com/spectrum-web-components/"
@@ -69,10 +79,15 @@ describe("Sidenav Item", () => {
69
79
  selected
70
80
  ></sp-sidenav-item>
71
81
  </sp-sidenav>
72
- `);
82
+ `
83
+ );
73
84
  await elementUpdated(el);
74
- const currentItem = el.querySelector("sp-sidenav-item:nth-child(2)");
75
- const otherItem = el.querySelector("sp-sidenav-item:nth-child(1)");
85
+ const currentItem = el.querySelector(
86
+ "sp-sidenav-item:nth-child(2)"
87
+ );
88
+ const otherItem = el.querySelector(
89
+ "sp-sidenav-item:nth-child(1)"
90
+ );
76
91
  await elementUpdated(currentItem);
77
92
  await elementUpdated(otherItem);
78
93
  expect(currentItem.focusElement.hasAttribute("aria-current"), "current").to.be.true;
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["sidenav-item.test.ts"],
4
4
  "sourcesContent": ["/*\nCopyright 2020 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*/\n\nimport '@spectrum-web-components/sidenav/sp-sidenav.js';\nimport '@spectrum-web-components/sidenav/sp-sidenav-item.js';\nimport { SideNavItem } from '@spectrum-web-components/sidenav';\nimport { elementUpdated, expect, fixture, html } from '@open-wc/testing';\n\ndescribe('Sidenav Item', () => {\n it('can exist disabled and with no parent', async () => {\n let selected = false;\n const onSidenavSelect = (): void => {\n selected = true;\n };\n const el = await fixture<SideNavItem>(\n html`\n <sp-sidenav-item\n disabled\n value=\"Section 2\"\n label=\"Section 2\"\n @sidenav-select=${onSidenavSelect}\n ></sp-sidenav-item>\n `\n );\n\n await elementUpdated(el);\n\n expect(selected).to.be.false;\n\n el.click();\n\n await elementUpdated(el);\n\n expect(selected).to.be.false;\n\n el.disabled = false;\n\n el.click();\n\n await elementUpdated(el);\n\n expect(selected).to.be.true;\n });\n\n it('clicking expands a sidenav item with children', async () => {\n const el = await fixture<SideNavItem>(\n html`\n <sp-sidenav-item>\n <sp-sidenav-item\n value=\"Section 1\"\n label=\"Section 1\"\n ></sp-sidenav-item>\n <sp-sidenav-item\n value=\"Section 2\"\n label=\"Section 2\"\n ></sp-sidenav-item>\n </sp-sidenav-item>\n `\n );\n\n await elementUpdated(el);\n\n expect(el.shadowRoot).to.exist;\n if (!el.shadowRoot) return;\n\n let slot: HTMLSlotElement | null = el.shadowRoot.querySelector(\n 'slot[name=\"descendant\"]'\n );\n expect(slot).not.to.exist;\n\n expect(el.expanded).to.be.false;\n\n el.click();\n\n await elementUpdated(el);\n\n expect(el.expanded).to.be.true;\n\n slot = el.shadowRoot.querySelector(\n 'slot[name=\"descendant\"]'\n ) as HTMLSlotElement;\n expect(slot).to.exist;\n if (!slot) return;\n\n expect(slot.assignedElements().length).to.equal(2);\n });\n\n it('populated `aria-current`', async () => {\n const el = await fixture<SideNavItem>(\n html`\n <sp-sidenav value=\"Section 2\">\n <sp-sidenav-item\n href=\"https://opensource.adobe.com/spectrum-web-components/\"\n label=\"Section 1\"\n value=\"Section 1\"\n ></sp-sidenav-item>\n <sp-sidenav-item\n href=${window.location.href}\n label=\"Section 2\"\n value=\"Section 2\"\n selected\n ></sp-sidenav-item>\n </sp-sidenav>\n `\n );\n\n await elementUpdated(el);\n\n const currentItem = el.querySelector(\n 'sp-sidenav-item:nth-child(2)'\n ) as SideNavItem;\n const otherItem = el.querySelector(\n 'sp-sidenav-item:nth-child(1)'\n ) as SideNavItem;\n\n await elementUpdated(currentItem);\n await elementUpdated(otherItem);\n\n expect(currentItem.focusElement.hasAttribute('aria-current'), 'current')\n .to.be.true;\n expect(otherItem.focusElement.hasAttribute('aria-current'), 'other').to\n .be.false;\n });\n});\n"],
5
- "mappings": "AAYA;AACA;AAEA;AAEA,SAAS,gBAAgB,MAAM;AAC3B,KAAG,yCAAyC,YAAY;AACpD,QAAI,WAAW;AACf,UAAM,kBAAkB,MAAY;AAChC,iBAAW;AAAA,IACf;AACA,UAAM,KAAK,MAAM,QACb;AAAA;AAAA;AAAA;AAAA;AAAA,sCAK0B;AAAA;AAAA,aAG9B;AAEA,UAAM,eAAe,EAAE;AAEvB,WAAO,QAAQ,EAAE,GAAG,GAAG;AAEvB,OAAG,MAAM;AAET,UAAM,eAAe,EAAE;AAEvB,WAAO,QAAQ,EAAE,GAAG,GAAG;AAEvB,OAAG,WAAW;AAEd,OAAG,MAAM;AAET,UAAM,eAAe,EAAE;AAEvB,WAAO,QAAQ,EAAE,GAAG,GAAG;AAAA,EAC3B,CAAC;AAED,KAAG,iDAAiD,YAAY;AAC5D,UAAM,KAAK,MAAM,QACb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAYJ;AAEA,UAAM,eAAe,EAAE;AAEvB,WAAO,GAAG,UAAU,EAAE,GAAG;AACzB,QAAI,CAAC,GAAG;AAAY;AAEpB,QAAI,OAA+B,GAAG,WAAW,cAC7C,yBACJ;AACA,WAAO,IAAI,EAAE,IAAI,GAAG;AAEpB,WAAO,GAAG,QAAQ,EAAE,GAAG,GAAG;AAE1B,OAAG,MAAM;AAET,UAAM,eAAe,EAAE;AAEvB,WAAO,GAAG,QAAQ,EAAE,GAAG,GAAG;AAE1B,WAAO,GAAG,WAAW,cACjB,yBACJ;AACA,WAAO,IAAI,EAAE,GAAG;AAChB,QAAI,CAAC;AAAM;AAEX,WAAO,KAAK,iBAAiB,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;AAAA,EACrD,CAAC;AAED,KAAG,4BAA4B,YAAY;AACvC,UAAM,KAAK,MAAM,QACb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAQmB,OAAO,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAOvC;AAEA,UAAM,eAAe,EAAE;AAEvB,UAAM,cAAc,GAAG,cACnB,8BACJ;AACA,UAAM,YAAY,GAAG,cACjB,8BACJ;AAEA,UAAM,eAAe,WAAW;AAChC,UAAM,eAAe,SAAS;AAE9B,WAAO,YAAY,aAAa,aAAa,cAAc,GAAG,SAAS,EAClE,GAAG,GAAG;AACX,WAAO,UAAU,aAAa,aAAa,cAAc,GAAG,OAAO,EAAE,GAChE,GAAG;AAAA,EACZ,CAAC;AACL,CAAC;",
5
+ "mappings": ";AAYA,OAAO;AACP,OAAO;AAEP,SAAS,gBAAgB,QAAQ,SAAS,YAAY;AAEtD,SAAS,gBAAgB,MAAM;AAC3B,KAAG,yCAAyC,YAAY;AACpD,QAAI,WAAW;AACf,UAAM,kBAAkB,MAAY;AAChC,iBAAW;AAAA,IACf;AACA,UAAM,KAAK,MAAM;AAAA,MACb;AAAA;AAAA;AAAA;AAAA;AAAA,sCAK0B;AAAA;AAAA;AAAA,IAG9B;AAEA,UAAM,eAAe,EAAE;AAEvB,WAAO,QAAQ,EAAE,GAAG,GAAG;AAEvB,OAAG,MAAM;AAET,UAAM,eAAe,EAAE;AAEvB,WAAO,QAAQ,EAAE,GAAG,GAAG;AAEvB,OAAG,WAAW;AAEd,OAAG,MAAM;AAET,UAAM,eAAe,EAAE;AAEvB,WAAO,QAAQ,EAAE,GAAG,GAAG;AAAA,EAC3B,CAAC;AAED,KAAG,iDAAiD,YAAY;AAC5D,UAAM,KAAK,MAAM;AAAA,MACb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYJ;AAEA,UAAM,eAAe,EAAE;AAEvB,WAAO,GAAG,UAAU,EAAE,GAAG;AACzB,QAAI,CAAC,GAAG;AAAY;AAEpB,QAAI,OAA+B,GAAG,WAAW;AAAA,MAC7C;AAAA,IACJ;AACA,WAAO,IAAI,EAAE,IAAI,GAAG;AAEpB,WAAO,GAAG,QAAQ,EAAE,GAAG,GAAG;AAE1B,OAAG,MAAM;AAET,UAAM,eAAe,EAAE;AAEvB,WAAO,GAAG,QAAQ,EAAE,GAAG,GAAG;AAE1B,WAAO,GAAG,WAAW;AAAA,MACjB;AAAA,IACJ;AACA,WAAO,IAAI,EAAE,GAAG;AAChB,QAAI,CAAC;AAAM;AAEX,WAAO,KAAK,iBAAiB,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;AAAA,EACrD,CAAC;AAED,KAAG,4BAA4B,YAAY;AACvC,UAAM,KAAK,MAAM;AAAA,MACb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAQmB,OAAO,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOvC;AAEA,UAAM,eAAe,EAAE;AAEvB,UAAM,cAAc,GAAG;AAAA,MACnB;AAAA,IACJ;AACA,UAAM,YAAY,GAAG;AAAA,MACjB;AAAA,IACJ;AAEA,UAAM,eAAe,WAAW;AAChC,UAAM,eAAe,SAAS;AAE9B,WAAO,YAAY,aAAa,aAAa,cAAc,GAAG,SAAS,EAClE,GAAG,GAAG;AACX,WAAO,UAAU,aAAa,aAAa,cAAc,GAAG,OAAO,EAAE,GAChE,GAAG;AAAA,EACZ,CAAC;AACL,CAAC;",
6
6
  "names": []
7
7
  }
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  import * as stories from "../stories/sidenav.stories.js";
2
3
  import { regressVisuals } from "../../../test/visual/test.js";
3
4
  regressVisuals("SidenavStories", stories);
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["sidenav.test-vrt.ts"],
4
4
  "sourcesContent": ["/*\nCopyright 2020 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*/\n\nimport * as stories from '../stories/sidenav.stories.js';\nimport { regressVisuals } from '../../../test/visual/test.js';\n\nregressVisuals('SidenavStories', stories);\n"],
5
- "mappings": "AAYA;AACA;AAEA,eAAe,kBAAkB,OAAO;",
5
+ "mappings": ";AAYA,YAAY,aAAa;AACzB,SAAS,sBAAsB;AAE/B,eAAe,kBAAkB,OAAO;",
6
6
  "names": []
7
7
  }
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  import "@spectrum-web-components/sidenav/sp-sidenav.js";
2
3
  import "@spectrum-web-components/sidenav/sp-sidenav-item.js";
3
4
  import "@spectrum-web-components/sidenav/sp-sidenav-heading.js";
@@ -20,7 +21,9 @@ import { spy } from "sinon";
20
21
  import { sendMouse } from "../../../test/plugins/browser.js";
21
22
  import { testForLitDevWarnings } from "../../../test/testing-helpers.js";
22
23
  describe("Sidenav", () => {
23
- testForLitDevWarnings(async () => await fixture(html`
24
+ testForLitDevWarnings(
25
+ async () => await fixture(
26
+ html`
24
27
  <sp-sidenav>
25
28
  <sp-sidenav-heading label="CATEGORY 1">
26
29
  <sp-sidenav-item
@@ -33,9 +36,12 @@ describe("Sidenav", () => {
33
36
  ></sp-sidenav-item>
34
37
  </sp-sidenav-heading>
35
38
  </sp-sidenav>
36
- `));
39
+ `
40
+ )
41
+ );
37
42
  it("loads", async () => {
38
- const el = await fixture(html`
43
+ const el = await fixture(
44
+ html`
39
45
  <sp-sidenav>
40
46
  <sp-sidenav-heading label="CATEGORY 1">
41
47
  <sp-sidenav-item
@@ -48,14 +54,17 @@ describe("Sidenav", () => {
48
54
  ></sp-sidenav-item>
49
55
  </sp-sidenav-heading>
50
56
  </sp-sidenav>
51
- `);
57
+ `
58
+ );
52
59
  await elementUpdated(el);
53
60
  await expect(el).to.be.accessible();
54
61
  });
55
62
  it("does not accept focus/click/blur when empty", async () => {
56
- const el = await fixture(html`
63
+ const el = await fixture(
64
+ html`
57
65
  <sp-sidenav></sp-sidenav>
58
- `);
66
+ `
67
+ );
59
68
  await elementUpdated(el);
60
69
  expect(document.activeElement === el).to.be.false;
61
70
  el.focus();
@@ -70,27 +79,32 @@ describe("Sidenav", () => {
70
79
  });
71
80
  it("does not accept keyboard events when items are not present", async () => {
72
81
  const errorSpy = spy();
73
- const el = await fixture(html`
82
+ const el = await fixture(
83
+ html`
74
84
  <sp-sidenav>
75
85
  <sp-sidenav-item
76
86
  value="Section 1"
77
87
  label="Section 1"
78
88
  ></sp-sidenav-item>
79
89
  </sp-sidenav>
80
- `);
90
+ `
91
+ );
81
92
  await elementUpdated(el);
82
93
  const item = el.querySelector("sp-sidenav-item");
83
94
  window.addEventListener("error", () => errorSpy());
84
95
  el.dispatchEvent(new FocusEvent("focusin"));
85
96
  item.remove();
86
97
  await elementUpdated(el);
87
- el.dispatchEvent(new KeyboardEvent("keydown", {
88
- code: "ArrowDown"
89
- }));
98
+ el.dispatchEvent(
99
+ new KeyboardEvent("keydown", {
100
+ code: "ArrowDown"
101
+ })
102
+ );
90
103
  expect(errorSpy.callCount).to.equal(0);
91
104
  });
92
105
  it("does not accept focus when all children [disabled]", async () => {
93
- const el = await fixture(html`
106
+ const el = await fixture(
107
+ html`
94
108
  <sp-sidenav>
95
109
  <sp-sidenav-item
96
110
  disabled
@@ -103,7 +117,8 @@ describe("Sidenav", () => {
103
117
  label="Section 2"
104
118
  ></sp-sidenav-item>
105
119
  </sp-sidenav>
106
- `);
120
+ `
121
+ );
107
122
  await elementUpdated(el);
108
123
  expect(document.activeElement === el).to.be.false;
109
124
  el.focus();
@@ -112,7 +127,8 @@ describe("Sidenav", () => {
112
127
  expect(el.matches(":focus-within")).to.be.false;
113
128
  });
114
129
  it("sets manageTabIndex on new children", async () => {
115
- const el = await fixture(html`
130
+ const el = await fixture(
131
+ html`
116
132
  <sp-sidenav>
117
133
  <sp-sidenav-item
118
134
  value="Section 1"
@@ -123,7 +139,8 @@ describe("Sidenav", () => {
123
139
  label="Section 2"
124
140
  ></sp-sidenav-item>
125
141
  </sp-sidenav>
126
- `);
142
+ `
143
+ );
127
144
  await elementUpdated(el);
128
145
  expect(el.manageTabIndex).to.be.false;
129
146
  const item1 = el.querySelector("sp-sidenav-item");
@@ -144,7 +161,8 @@ describe("Sidenav", () => {
144
161
  });
145
162
  it("handles select", async () => {
146
163
  const changeSpy = spy();
147
- const el = await fixture(html`
164
+ const el = await fixture(
165
+ html`
148
166
  <sp-sidenav @change=${() => changeSpy()}>
149
167
  <sp-sidenav-heading label="CATEGORY 1">
150
168
  <sp-sidenav-item
@@ -159,22 +177,29 @@ describe("Sidenav", () => {
159
177
  </sp-sidenav-item>
160
178
  </sp-sidenav-heading>
161
179
  </sp-sidenav>
162
- `);
180
+ `
181
+ );
163
182
  await elementUpdated(el);
164
183
  expect(el.value).to.be.undefined;
165
- const sidenavItem = el.querySelector('[value="Section 2"]');
166
- sidenavItem.dispatchEvent(new CustomEvent("sidenav-select", {
167
- bubbles: true,
168
- detail: {
169
- value: "Section 2"
170
- }
171
- }));
184
+ const sidenavItem = el.querySelector(
185
+ '[value="Section 2"]'
186
+ );
187
+ sidenavItem.dispatchEvent(
188
+ new CustomEvent("sidenav-select", {
189
+ bubbles: true,
190
+ detail: {
191
+ value: "Section 2"
192
+ }
193
+ })
194
+ );
172
195
  await elementUpdated(el);
173
196
  expect(el.value).to.equal("Section 2");
174
197
  expect(changeSpy.callCount).to.equal(1);
175
198
  sidenavItem.click();
176
199
  await elementUpdated(sidenavItem);
177
- const sidenavItemChild = el.querySelector('[value="Section 2a"]');
200
+ const sidenavItemChild = el.querySelector(
201
+ '[value="Section 2a"]'
202
+ );
178
203
  sidenavItemChild.click();
179
204
  await elementUpdated(el);
180
205
  expect(el.value).to.equal("Section 2a");
@@ -182,12 +207,13 @@ describe("Sidenav", () => {
182
207
  });
183
208
  it("prevents selection", async () => {
184
209
  const changeSpy = spy();
185
- const el = await fixture(html`
210
+ const el = await fixture(
211
+ html`
186
212
  <sp-sidenav
187
213
  @change=${(event) => {
188
- event.preventDefault();
189
- changeSpy();
190
- }}
214
+ event.preventDefault();
215
+ changeSpy();
216
+ }}
191
217
  >
192
218
  <sp-sidenav-heading label="CATEGORY 1">
193
219
  <sp-sidenav-item
@@ -206,7 +232,8 @@ describe("Sidenav", () => {
206
232
  </sp-sidenav-item>
207
233
  </sp-sidenav-heading>
208
234
  </sp-sidenav>
209
- `);
235
+ `
236
+ );
210
237
  await elementUpdated(el);
211
238
  expect(el.value).to.be.undefined;
212
239
  el.click();
@@ -217,7 +244,9 @@ describe("Sidenav", () => {
217
244
  it("prevents [tabindex=0] while `focusin`", async () => {
218
245
  const el = await fixture(manageTabIndex());
219
246
  const selected = el.querySelector('[value="Section 1"]');
220
- const toBeSelected = el.querySelector('[value="Section 0"]');
247
+ const toBeSelected = el.querySelector(
248
+ '[value="Section 0"]'
249
+ );
221
250
  await elementUpdated(el);
222
251
  await waitUntil(() => el.value === "Section 1", "wait for selection");
223
252
  expect(el.value).to.equal("Section 1");
@@ -245,7 +274,9 @@ describe("Sidenav", () => {
245
274
  });
246
275
  await elementUpdated(el);
247
276
  expect(el.value).to.equal("Section 0");
248
- expect(toBeSelected.tabIndex, "will be new focusable child").to.equal(-1);
277
+ expect(toBeSelected.tabIndex, "will be new focusable child").to.equal(
278
+ -1
279
+ );
249
280
  expect(selected.tabIndex, "no longer selected").to.equal(-1);
250
281
  });
251
282
  it("manage tab index", async () => {
@@ -283,7 +314,9 @@ describe("Sidenav", () => {
283
314
  it("focuses the child anchor not the root when [tabindex=-1]", async () => {
284
315
  const el = await fixture(manageTabIndex());
285
316
  await elementUpdated(el);
286
- const firstItem = el.querySelector('[value="Section 0"]');
317
+ const firstItem = el.querySelector(
318
+ '[value="Section 0"]'
319
+ );
287
320
  const selected = el.querySelector("[selected]");
288
321
  expect(selected.tabIndex).to.equal(0);
289
322
  expect(firstItem.tabIndex).to.equal(-1);
@@ -346,7 +379,8 @@ describe("Sidenav", () => {
346
379
  expect(typeof outsideFocused).not.to.equal(SideNavItem);
347
380
  });
348
381
  it("manage tab index for late added items", async () => {
349
- const el = await fixture(html`
382
+ const el = await fixture(
383
+ html`
350
384
  <sp-sidenav manage-tab-index>
351
385
  <sp-sidenav-item
352
386
  value="Section 0"
@@ -357,11 +391,14 @@ describe("Sidenav", () => {
357
391
  label="Section 1"
358
392
  ></sp-sidenav-item>
359
393
  </sp-sidenav>
360
- `);
394
+ `
395
+ );
361
396
  await elementUpdated(el);
362
397
  expect(el.manageTabIndex).to.be.true;
363
398
  const item1 = el.querySelector("sp-sidenav-item");
364
- const item2 = el.querySelector("sp-sidenav-item:nth-child(2)");
399
+ const item2 = el.querySelector(
400
+ "sp-sidenav-item:nth-child(2)"
401
+ );
365
402
  await elementUpdated(item1);
366
403
  await elementUpdated(item2);
367
404
  expect(item1.tabIndex, "first item tabindex").to.equal(0);
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["sidenav.test.ts"],
4
4
  "sourcesContent": ["/*\nCopyright 2020 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*/\n\nimport '@spectrum-web-components/sidenav/sp-sidenav.js';\nimport '@spectrum-web-components/sidenav/sp-sidenav-item.js';\nimport '@spectrum-web-components/sidenav/sp-sidenav-heading.js';\nimport { SideNav, SideNavItem } from '@spectrum-web-components/sidenav';\nimport { manageTabIndex } from '../stories/sidenav.stories.js';\nimport {\n arrowDownEvent,\n arrowUpEvent,\n shiftTabEvent,\n} from '../../../test/testing-helpers.js';\nimport {\n elementUpdated,\n expect,\n fixture,\n html,\n waitUntil,\n} from '@open-wc/testing';\nimport { LitElement, TemplateResult } from '@spectrum-web-components/base';\nimport { spy } from 'sinon';\nimport { sendMouse } from '../../../test/plugins/browser.js';\nimport { testForLitDevWarnings } from '../../../test/testing-helpers.js';\n\ndescribe('Sidenav', () => {\n testForLitDevWarnings(\n async () =>\n await fixture<SideNav>(\n html`\n <sp-sidenav>\n <sp-sidenav-heading label=\"CATEGORY 1\">\n <sp-sidenav-item\n value=\"Section 1\"\n label=\"Section 1\"\n ></sp-sidenav-item>\n <sp-sidenav-item\n value=\"Section 2\"\n label=\"Section 2\"\n ></sp-sidenav-item>\n </sp-sidenav-heading>\n </sp-sidenav>\n `\n )\n );\n it('loads', async () => {\n const el = await fixture<SideNav>(\n html`\n <sp-sidenav>\n <sp-sidenav-heading label=\"CATEGORY 1\">\n <sp-sidenav-item\n value=\"Section 1\"\n label=\"Section 1\"\n ></sp-sidenav-item>\n <sp-sidenav-item\n value=\"Section 2\"\n label=\"Section 2\"\n ></sp-sidenav-item>\n </sp-sidenav-heading>\n </sp-sidenav>\n `\n );\n\n await elementUpdated(el);\n\n await expect(el).to.be.accessible();\n });\n it('does not accept focus/click/blur when empty', async () => {\n const el = await fixture<SideNav>(\n html`\n <sp-sidenav></sp-sidenav>\n `\n );\n\n await elementUpdated(el);\n\n expect(document.activeElement === el).to.be.false;\n\n el.focus();\n await elementUpdated(el);\n\n expect(document.activeElement === el).to.be.false;\n\n el.blur();\n await elementUpdated(el);\n\n expect(document.activeElement === el).to.be.false;\n\n el.click();\n await elementUpdated(el);\n\n expect(document.activeElement === el).to.be.false;\n });\n it('does not accept keyboard events when items are not present', async () => {\n const errorSpy = spy();\n const el = await fixture<SideNav>(\n html`\n <sp-sidenav>\n <sp-sidenav-item\n value=\"Section 1\"\n label=\"Section 1\"\n ></sp-sidenav-item>\n </sp-sidenav>\n `\n );\n\n await elementUpdated(el);\n const item = el.querySelector('sp-sidenav-item') as SideNavItem;\n window.addEventListener('error', () => errorSpy());\n\n el.dispatchEvent(new FocusEvent('focusin'));\n item.remove();\n\n await elementUpdated(el);\n el.dispatchEvent(\n new KeyboardEvent('keydown', {\n code: 'ArrowDown',\n })\n );\n\n expect(errorSpy.callCount).to.equal(0);\n });\n it('does not accept focus when all children [disabled]', async () => {\n const el = await fixture<SideNav>(\n html`\n <sp-sidenav>\n <sp-sidenav-item\n disabled\n value=\"Section 1\"\n label=\"Section 1\"\n ></sp-sidenav-item>\n <sp-sidenav-item\n disabled\n value=\"Section 2\"\n label=\"Section 2\"\n ></sp-sidenav-item>\n </sp-sidenav>\n `\n );\n\n await elementUpdated(el);\n\n expect(document.activeElement === el).to.be.false;\n\n el.focus();\n await elementUpdated(el);\n\n expect(document.activeElement === el).to.be.false;\n expect(el.matches(':focus-within')).to.be.false;\n });\n it('sets manageTabIndex on new children', async () => {\n const el = await fixture<SideNav>(\n html`\n <sp-sidenav>\n <sp-sidenav-item\n value=\"Section 1\"\n label=\"Section 1\"\n ></sp-sidenav-item>\n <sp-sidenav-item\n value=\"Section 2\"\n label=\"Section 2\"\n ></sp-sidenav-item>\n </sp-sidenav>\n `\n );\n\n await elementUpdated(el);\n expect(el.manageTabIndex).to.be.false;\n\n const item1 = el.querySelector('sp-sidenav-item') as SideNavItem;\n expect(item1.tabIndex).to.equal(0);\n\n const newItem = document.createElement('sp-sidenav-item');\n newItem.value = 'Section 3';\n newItem.label = 'Section 3';\n el.appendChild(newItem);\n\n await elementUpdated(newItem);\n\n expect(newItem.tabIndex).to.equal(0);\n\n el.focus();\n const focused = document.activeElement as SideNavItem;\n focused.click();\n expect(focused.selected).to.be.true;\n\n el.dispatchEvent(shiftTabEvent());\n const outsideFocused = document.activeElement as HTMLElement;\n\n expect(typeof outsideFocused).not.to.equal(SideNavItem);\n });\n it('handles select', async () => {\n const changeSpy = spy();\n const el = await fixture<SideNav>(\n html`\n <sp-sidenav @change=${() => changeSpy()}>\n <sp-sidenav-heading label=\"CATEGORY 1\">\n <sp-sidenav-item\n value=\"Section 1\"\n label=\"Section 1\"\n ></sp-sidenav-item>\n <sp-sidenav-item value=\"Section 2\" label=\"Section 2\">\n <sp-sidenav-item\n value=\"Section 2a\"\n label=\"Section 2a\"\n ></sp-sidenav-item>\n </sp-sidenav-item>\n </sp-sidenav-heading>\n </sp-sidenav>\n `\n );\n\n await elementUpdated(el);\n\n expect(el.value).to.be.undefined;\n\n const sidenavItem = el.querySelector(\n '[value=\"Section 2\"]'\n ) as SideNavItem;\n sidenavItem.dispatchEvent(\n new CustomEvent('sidenav-select', {\n bubbles: true,\n detail: {\n value: 'Section 2',\n },\n })\n );\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('Section 2');\n expect(changeSpy.callCount).to.equal(1);\n\n sidenavItem.click();\n\n await elementUpdated(sidenavItem);\n\n const sidenavItemChild = el.querySelector(\n '[value=\"Section 2a\"]'\n ) as SideNavItem;\n sidenavItemChild.click();\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('Section 2a');\n expect(changeSpy.callCount).to.equal(2);\n });\n it('prevents selection', async () => {\n const changeSpy = spy();\n const el = await fixture<SideNav>(\n html`\n <sp-sidenav\n @change=${(event: Event) => {\n event.preventDefault();\n changeSpy();\n }}\n >\n <sp-sidenav-heading label=\"CATEGORY 1\">\n <sp-sidenav-item\n value=\"Section 1\"\n label=\"Section 1\"\n ></sp-sidenav-item>\n <sp-sidenav-item\n value=\"Section 2\"\n label=\"Section 2\"\n opened\n >\n <sp-sidenav-item\n value=\"Section 2a\"\n label=\"Section 2a\"\n ></sp-sidenav-item>\n </sp-sidenav-item>\n </sp-sidenav-heading>\n </sp-sidenav>\n `\n );\n\n await elementUpdated(el);\n\n expect(el.value).to.be.undefined;\n\n el.click();\n\n await elementUpdated(el);\n\n expect(el.value).to.be.undefined;\n expect(changeSpy.callCount).to.equal(1);\n });\n it('prevents [tabindex=0] while `focusin`', async () => {\n const el = await fixture<SideNav>(manageTabIndex());\n const selected = el.querySelector('[value=\"Section 1\"]') as SideNavItem;\n const toBeSelected = el.querySelector(\n '[value=\"Section 0\"]'\n ) as SideNavItem;\n\n await elementUpdated(el);\n await waitUntil(() => el.value === 'Section 1', 'wait for selection');\n\n expect(el.value).to.equal('Section 1');\n expect(selected.tabIndex, 'initially 0').to.equal(0);\n expect(toBeSelected.tabIndex, 'initially -1').to.equal(-1);\n\n el.focus();\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('Section 1');\n expect(selected.tabIndex, '-1 when focusin').to.equal(-1);\n\n el.blur();\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('Section 1');\n expect(selected.tabIndex, '0 when blur').to.equal(0);\n\n const bindingRect = toBeSelected.getBoundingClientRect();\n await sendMouse({\n steps: [\n {\n type: 'click',\n position: [\n bindingRect.x + bindingRect.width / 2,\n bindingRect.y + bindingRect.height / 2,\n ],\n },\n ],\n });\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('Section 0');\n expect(toBeSelected.tabIndex, 'will be new focusable child').to.equal(\n -1\n );\n expect(selected.tabIndex, 'no longer selected').to.equal(-1);\n });\n it('manage tab index', async () => {\n const el = await fixture<SideNav>(manageTabIndex());\n\n await elementUpdated(el);\n expect(el.value).to.equal('Section 1');\n\n el.focus();\n el.dispatchEvent(arrowUpEvent());\n let focused = document.activeElement as SideNavItem;\n focused.click();\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('Section 0');\n\n el.focus();\n el.dispatchEvent(arrowDownEvent());\n el.dispatchEvent(arrowDownEvent());\n focused = document.activeElement as SideNavItem;\n expect(focused.expanded, 'not expanded').to.be.false;\n focused.click();\n\n await elementUpdated(el);\n\n expect(focused.expanded, 'expanded').to.be.true;\n\n el.dispatchEvent(arrowDownEvent());\n await elementUpdated(el);\n focused = document.activeElement as SideNavItem;\n focused.click();\n\n await elementUpdated(el);\n\n expect(el.value).to.equal('Section 3a');\n\n document.body.focus();\n\n el.focus();\n focused = document.activeElement as SideNavItem;\n expect(focused.selected, 'selected').to.be.true;\n\n el.dispatchEvent(shiftTabEvent());\n const outsideFocused = document.activeElement as HTMLElement;\n\n expect(typeof outsideFocused).not.to.equal(SideNavItem);\n });\n it('focuses the child anchor not the root when [tabindex=-1]', async () => {\n const el = await fixture<SideNav>(manageTabIndex());\n\n await elementUpdated(el);\n const firstItem = el.querySelector(\n '[value=\"Section 0\"]'\n ) as SideNavItem;\n const selected = el.querySelector('[selected]') as SideNavItem;\n expect(selected.tabIndex).to.equal(0);\n expect(firstItem.tabIndex).to.equal(-1);\n\n const firstRect = firstItem.getBoundingClientRect();\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: [firstRect.x + 2, firstRect.y + 2],\n },\n {\n type: 'down',\n },\n ],\n });\n await elementUpdated(el);\n\n expect(firstItem.focusElement.matches(':focus')).to.be.true;\n });\n it('manage tab index through shadow DOM', async () => {\n class SideNavTestEl extends LitElement {\n protected override render(): TemplateResult {\n return manageTabIndex();\n }\n }\n customElements.define('sidenav-test-el', SideNavTestEl);\n const el = await fixture<SideNav>(html`\n <sidenav-test-el></sidenav-test-el>\n `);\n\n await elementUpdated(el);\n const rootNode = el.shadowRoot as ShadowRoot;\n const sidenavEl = rootNode.querySelector('sp-sidenav') as SideNav;\n\n await elementUpdated(sidenavEl);\n expect(sidenavEl.value).to.equal('Section 1');\n\n sidenavEl.focus();\n sidenavEl.dispatchEvent(arrowUpEvent());\n let focused = rootNode.activeElement as SideNavItem;\n focused.focusElement.click();\n\n await elementUpdated(sidenavEl);\n\n expect(sidenavEl.value).to.equal('Section 0');\n\n sidenavEl.focus();\n sidenavEl.dispatchEvent(arrowDownEvent());\n sidenavEl.dispatchEvent(arrowDownEvent());\n focused = rootNode.activeElement as SideNavItem;\n expect(focused.expanded).to.be.false;\n focused.focusElement.click();\n\n await elementUpdated(sidenavEl);\n\n expect(focused.expanded).to.be.true;\n\n sidenavEl.dispatchEvent(arrowDownEvent());\n await elementUpdated(sidenavEl);\n focused = rootNode.activeElement as SideNavItem;\n focused.focusElement.click();\n\n await elementUpdated(sidenavEl);\n\n expect(sidenavEl.value).to.equal('Section 3a');\n\n document.body.focus();\n\n sidenavEl.focus();\n focused = rootNode.activeElement as SideNavItem;\n expect(focused.selected).to.be.true;\n\n sidenavEl.dispatchEvent(shiftTabEvent());\n const outsideFocused = rootNode.activeElement as HTMLElement;\n\n expect(typeof outsideFocused).not.to.equal(SideNavItem);\n });\n it('manage tab index for late added items', async () => {\n const el = await fixture<SideNav>(\n html`\n <sp-sidenav manage-tab-index>\n <sp-sidenav-item\n value=\"Section 0\"\n label=\"Section 0\"\n ></sp-sidenav-item>\n <sp-sidenav-item\n value=\"Section 1\"\n label=\"Section 1\"\n ></sp-sidenav-item>\n </sp-sidenav>\n `\n );\n\n await elementUpdated(el);\n expect(el.manageTabIndex).to.be.true;\n\n const item1 = el.querySelector('sp-sidenav-item') as SideNavItem;\n const item2 = el.querySelector(\n 'sp-sidenav-item:nth-child(2)'\n ) as SideNavItem;\n\n await elementUpdated(item1);\n await elementUpdated(item2);\n expect(item1.tabIndex, 'first item tabindex').to.equal(0);\n expect(item2.tabIndex, 'second item tabindex').to.equal(-1);\n\n const item3 = document.createElement('sp-sidenav-item');\n item3.value = 'Section 2';\n item3.label = 'Section 2';\n\n await elementUpdated(el);\n\n el.appendChild(item3);\n\n await elementUpdated(item3);\n await elementUpdated(el);\n\n await waitUntil(() => item3.tabIndex === -1, 'after');\n });\n});\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }