@spectrum-web-components/overlay 0.40.0 → 0.40.2
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/README.md +12 -0
- package/custom-elements.json +1 -1
- package/package.json +7 -7
- package/src/Overlay.d.ts +1 -1
- package/src/Overlay.dev.js +8 -3
- package/src/Overlay.dev.js.map +2 -2
- package/src/Overlay.js +1 -1
- package/src/Overlay.js.map +2 -2
- package/src/OverlayDialog.dev.js +1 -3
- package/src/OverlayDialog.dev.js.map +2 -2
- package/src/OverlayDialog.js +1 -1
- package/src/OverlayDialog.js.map +2 -2
- package/src/OverlayNoPopover.dev.js +1 -3
- package/src/OverlayNoPopover.dev.js.map +2 -2
- package/src/OverlayNoPopover.js +1 -1
- package/src/OverlayNoPopover.js.map +2 -2
- package/src/OverlayPopover.dev.js +1 -3
- package/src/OverlayPopover.dev.js.map +2 -2
- package/src/OverlayPopover.js +1 -1
- package/src/OverlayPopover.js.map +2 -2
- package/stories/index.js +40 -0
- package/stories/index.js.map +7 -0
- package/stories/overlay-element.stories.js +7 -0
- package/stories/overlay-element.stories.js.map +2 -2
- package/stories/overlay-story-components.js +32 -0
- package/stories/overlay-story-components.js.map +2 -2
- package/test/index.js +7 -5
- package/test/index.js.map +2 -2
- package/test/overlay-update.test.js +2 -0
- package/test/overlay-update.test.js.map +2 -2
package/test/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["index.ts"],
|
|
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 { fixture, isOnTopLayer } from '../../../test/testing-helpers.js';\nimport {\n aTimeout,\n elementUpdated,\n expect,\n html,\n nextFrame,\n oneEvent,\n waitUntil,\n} from '@open-wc/testing';\n\nimport {\n OverlayTrigger,\n TriggerInteractions,\n} from '@spectrum-web-components/overlay';\nimport '@spectrum-web-components/button/sp-button.js';\nimport { Button } from '@spectrum-web-components/button';\nimport '@spectrum-web-components/popover/sp-popover.js';\nimport { Popover } from '@spectrum-web-components/popover';\nimport '@spectrum-web-components/theme/sp-theme.js';\nimport { sendMouse } from '../../../test/plugins/browser.js';\nimport { sendKeys } from '@web/test-runner-commands';\nimport { isWebKit } from '@spectrum-web-components/shared';\n\nfunction pressKey(code: string): void {\n const up = new KeyboardEvent('keyup', {\n bubbles: true,\n cancelable: true,\n key: code,\n code,\n });\n document.dispatchEvent(up);\n}\n\nconst pressSpace = (): void => pressKey('Space');\n\nexport const runOverlayTriggerTests = (type: string): void => {\n describe(`Overlay Trigger - ${type}`, () => {\n describe('open/close', () => {\n beforeEach(async function () {\n this.testDiv = await fixture<HTMLDivElement>(\n html`\n <div>\n <style>\n body {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n </style>\n <overlay-trigger id=\"trigger\" placement=\"top\">\n <sp-button\n id=\"outer-button\"\n variant=\"primary\"\n slot=\"trigger\"\n >\n Show Popover\n </sp-button>\n <sp-popover\n id=\"outer-popover\"\n slot=\"click-content\"\n direction=\"bottom\"\n tip\n >\n <sp-dialog\n no-divider\n class=\"options-popover-content\"\n >\n <overlay-trigger\n id=\"inner-trigger\"\n placement=\"bottom\"\n >\n <sp-button\n id=\"inner-button\"\n slot=\"trigger\"\n >\n Press Me\n </sp-button>\n <sp-popover\n id=\"inner-popover\"\n slot=\"click-content\"\n direction=\"bottom\"\n tip\n >\n <sp-dialog\n no-divider\n class=\"options-popover-content\"\n >\n Another Popover\n </sp-dialog>\n </sp-popover>\n </overlay-trigger>\n </sp-dialog>\n </sp-popover>\n <div\n id=\"hover-content\"\n slot=\"hover-content\"\n class=\"tooltip\"\n delay=\"100\"\n >\n Tooltip\n </div>\n </overlay-trigger>\n </div>\n `\n );\n await nextFrame();\n await nextFrame();\n await nextFrame();\n await nextFrame();\n await nextFrame();\n await nextFrame();\n\n this.innerTrigger = this.testDiv.querySelector(\n '#inner-trigger'\n ) as OverlayTrigger;\n this.outerTrigger = this.testDiv.querySelector(\n '#trigger'\n ) as OverlayTrigger;\n this.innerButton = this.testDiv.querySelector(\n '#inner-button'\n ) as Button;\n this.outerButton = this.testDiv.querySelector(\n '#outer-button'\n ) as Button;\n this.innerClickContent = this.testDiv.querySelector(\n '#inner-popover'\n ) as Popover;\n this.outerClickContent = this.testDiv.querySelector(\n '#outer-popover'\n ) as Popover;\n this.hoverContent = this.testDiv.querySelector(\n '#hover-content'\n ) as HTMLDivElement;\n });\n\n it('opens a popover', async function () {\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover not available at point'\n ).to.be.false;\n\n expect(this.outerButton).to.exist;\n const open = oneEvent(this.outerTrigger, 'sp-opened');\n this.outerButton.click();\n await open;\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover available at point'\n ).to.be.true;\n });\n\n it('[disabled] closes a popover', async function () {\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover not available at point'\n ).to.be.false;\n expect(this.outerTrigger.disabled).to.be.false;\n\n expect(this.outerButton).to.exist;\n\n const opened = oneEvent(this.outerButton, 'sp-opened');\n this.outerButton.click();\n await opened;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover available at point'\n ).to.be.true;\n\n const closed = oneEvent(this.outerButton, 'sp-closed');\n this.outerTrigger.disabled = true;\n await closed;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover not available at point'\n ).to.be.false;\n });\n\n it('resizes a popover', async function () {\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover not available at point'\n ).to.be.false;\n\n expect(this.outerButton).to.exist;\n const open = oneEvent(this.outerTrigger, 'sp-opened');\n this.outerButton.click();\n await open;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover available at point'\n ).to.be.true;\n\n window.dispatchEvent(new Event('resize'));\n window.dispatchEvent(new Event('resize'));\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover available at point'\n ).to.be.true;\n });\n\n ['modal', 'replace', 'inline'].map((type: string) => {\n it(`opens a popover - [type=\"${type}\"]`, async function () {\n this.outerTrigger.type = type as Extract<\n TriggerInteractions,\n 'inline' | 'modal' | 'replace'\n >;\n await elementUpdated(this.outerTrigger);\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover not available at point'\n ).to.be.false;\n\n expect(this.outerButton).to.exist;\n const opened = oneEvent(this.outerTrigger, 'sp-opened');\n this.outerButton.click();\n await opened;\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover available at point'\n ).to.be.true;\n });\n });\n\n it('does not open a hover popover when a click popover is open', async function () {\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover not available at point'\n ).to.be.false;\n expect(\n await isOnTopLayer(this.hoverContent),\n 'hover not available at point'\n ).to.be.false;\n\n expect(this.outerButton).to.exist;\n const open = oneEvent(this.outerTrigger, 'sp-opened');\n this.outerButton.click();\n await open;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover available at point'\n ).to.be.true;\n expect(\n await isOnTopLayer(this.hoverContent),\n 'hover not available at point'\n ).to.be.false;\n\n this.outerButton.dispatchEvent(\n new Event('mouseenter', {\n bubbles: true,\n composed: true,\n })\n );\n\n await nextFrame();\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover available at point'\n ).to.be.true;\n expect(\n await isOnTopLayer(this.hoverContent),\n 'hover not available at point'\n ).to.be.false;\n });\n\n it('does not open a popover when [disabled]', async function () {\n const triggerZone = this.outerTrigger.shadowRoot.querySelector(\n '#trigger'\n ) as HTMLDivElement;\n\n expect(this.outerTrigger.disabled).to.be.false;\n let open = oneEvent(this.outerTrigger, 'sp-opened');\n this.outerButton.click();\n await open;\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'hover available at point'\n ).to.be.true;\n let closed = oneEvent(this.outerTrigger, 'sp-closed');\n sendMouse({\n steps: [\n {\n type: 'click',\n position: [1, 1],\n },\n ],\n });\n await closed;\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'hover not available at point'\n ).to.be.false;\n\n this.outerTrigger.disabled = true;\n await elementUpdated(this.outerTrigger);\n\n expect(this.outerTrigger.disabled).to.be.true;\n expect(this.outerTrigger.hasAttribute('disabled')).to.be.true;\n // // The overlay shouldn't open here.\n this.outerButton.click();\n await aTimeout(150);\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'hover not available at point'\n ).to.be.false;\n // The overlay shouldn't open here, either.\n triggerZone.dispatchEvent(new Event('mouseenter'));\n await aTimeout(150);\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'hover not available at point'\n ).to.be.false;\n\n this.outerTrigger.disabled = false;\n await elementUpdated(this.outerTrigger);\n\n expect(this.outerTrigger.disabled).to.be.false;\n expect(this.outerTrigger.hasAttribute('disabled')).to.be.false;\n open = oneEvent(this.outerTrigger, 'sp-opened');\n this.outerButton.click();\n await open;\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'hover available at point'\n ).to.be.true;\n closed = oneEvent(this.outerTrigger, 'sp-closed');\n this.outerButton.click();\n await closed;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'hover not available at point'\n ).to.be.false;\n });\n\n it('opens a nested popover', async function () {\n if (isWebKit()) {\n // breaks on https://bugs.webkit.org/show_bug.cgi?id=263081 skip for now.\n this.skip();\n }\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'hover not available at point'\n ).to.be.false;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'hover not available at point'\n ).to.be.false;\n\n expect(this.outerButton).to.exist;\n let open = oneEvent(this.outerTrigger, 'sp-opened');\n this.outerButton.click();\n await open;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content available at point'\n ).to.be.true;\n expect(await isOnTopLayer(this.innerClickContent)).to.be.false;\n\n open = oneEvent(this.innerTrigger, 'sp-opened');\n this.innerButton.click();\n await open;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content available at point'\n ).to.be.true;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content available at point'\n ).to.be.true;\n });\n\n it('focus previous \"modal\" when closing nested \"modal\"', async function () {\n this.outerTrigger.type = 'modal';\n this.innerTrigger.type = 'modal';\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content not available at point'\n ).to.be.false;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content not available at point'\n ).to.be.false;\n\n const outerOpen = oneEvent(this.outerButton, 'sp-opened');\n this.outerButton.click();\n await outerOpen;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content available at point'\n ).to.be.true;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content available at point'\n ).to.be.false;\n\n const innerOpen = oneEvent(this.innerButton, 'sp-opened');\n this.innerButton.click();\n await innerOpen;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content available at point'\n ).to.be.true;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content available at point'\n ).to.be.true;\n\n const innerClose = oneEvent(this.innerButton, 'sp-closed');\n await sendKeys({\n press: 'Escape',\n });\n await innerClose;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content available at point'\n ).to.be.true;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content not available at point'\n ).to.be.false;\n\n expect(\n document.activeElement === this.innerButton,\n 'outer popover recieved focus'\n ).to.be.true;\n });\n\n it('escape closes an open popover', async function () {\n this.outerTrigger.type = 'modal';\n this.innerTrigger.type = 'modal';\n const outerOpen = oneEvent(this.outerButton, 'sp-opened');\n this.outerButton.click();\n await outerOpen;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content available at point'\n ).to.be.true;\n\n const innerOpen = oneEvent(this.innerButton, 'sp-opened');\n this.innerButton.click();\n await innerOpen;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content available at point'\n ).to.be.true;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content available at point'\n ).to.be.true;\n\n pressSpace();\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content available at point'\n ).to.be.true;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content available at point'\n ).to.be.true;\n\n const innerClose = oneEvent(this.innerButton, 'sp-closed');\n await sendKeys({\n press: 'Escape',\n });\n await innerClose;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content available at point'\n ).to.be.true;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content not available at point'\n ).to.be.false;\n\n const outerClose = oneEvent(this.outerButton, 'sp-closed');\n await sendKeys({\n press: 'Escape',\n });\n await outerClose;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content not available at point'\n ).to.be.false;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content not available at point'\n ).to.be.false;\n });\n\n it('click closes an open popover', async function () {\n if (isWebKit()) {\n // breaks on https://bugs.webkit.org/show_bug.cgi?id=263081 skip for now.\n this.skip();\n }\n this.outerTrigger.type = 'auto';\n this.innerTrigger.type = 'auto';\n const outerOpen = oneEvent(this.outerButton, 'sp-opened');\n this.outerButton.click();\n await outerOpen;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content is available at point'\n ).to.be.true;\n\n const innerOpen = oneEvent(this.innerButton, 'sp-opened');\n this.innerButton.click();\n await innerOpen;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content is available at point'\n ).to.be.true;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content is available at point'\n ).to.be.true;\n\n // Test that clicking in the overlay content does not close the overlay\n // 200ms is slightly more than the overlay animation fade out time (130ms)\n this.innerClickContent.click();\n await aTimeout(200);\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content is available at point'\n ).to.be.true;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content is available at point'\n ).to.be.true;\n\n const innerClose = oneEvent(this.innerButton, 'sp-closed');\n const outerClose = oneEvent(this.outerButton, 'sp-closed');\n sendMouse({\n steps: [\n {\n type: 'click',\n position: [1, 1],\n },\n ],\n });\n await innerClose;\n await outerClose;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content is not available at point'\n ).to.be.not;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content is not available at point'\n ).to.be.not;\n });\n\n it('opens a hover popover', async function () {\n expect(await isOnTopLayer(this.hoverContent)).to.be.false;\n\n const rect = this.outerTrigger.getBoundingClientRect();\n const open = oneEvent(this.outerTrigger, 'sp-opened');\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rect.left + rect.width / 2,\n rect.top + rect.height / 2,\n ],\n },\n ],\n });\n await open;\n expect(\n await isOnTopLayer(this.hoverContent),\n 'hover content is available at point'\n ).to.be.true;\n\n const close = oneEvent(this.outerTrigger, 'sp-closed');\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rect.left + rect.width * 2,\n rect.top + rect.height / 2,\n ],\n },\n ],\n });\n await close;\n expect(\n await isOnTopLayer(this.hoverContent),\n 'hover content is not available at point'\n ).to.be.false;\n });\n\n it('closes a hover popover', async function () {\n expect(await isOnTopLayer(this.hoverContent)).to.be.false;\n\n const rect = this.outerTrigger.getBoundingClientRect();\n const close = oneEvent(this.outerTrigger, 'sp-closed');\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rect.left + rect.width / 2,\n rect.top + rect.height / 2,\n ],\n },\n ],\n });\n await nextFrame();\n await nextFrame();\n await nextFrame();\n await nextFrame();\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rect.left + rect.width * 2,\n rect.top + rect.height / 2,\n ],\n },\n ],\n });\n await close;\n expect(\n await isOnTopLayer(this.hoverContent),\n 'hover content is not available at point'\n ).to.be.false;\n });\n\n it('dispatches events on open/close', async function () {\n const opened = oneEvent(this.outerButton, 'sp-opened');\n this.outerButton.click();\n const openedEvent = await opened;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'hover content is available at point'\n ).to.be.true;\n expect(this.outerTrigger.open).to.equal('click');\n\n expect(openedEvent.detail.interaction).to.equal('auto');\n\n const closed = oneEvent(this.outerButton, 'sp-closed');\n sendMouse({\n steps: [\n {\n type: 'click',\n position: [1, 1],\n },\n ],\n });\n const closedEvent = await closed;\n expect(closedEvent.detail.interaction).to.equal('auto');\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'hover content is not available at point'\n ).to.be.false;\n });\n });\n describe('System interactions', () => {\n afterEach(async () => {\n const triggers = document.querySelectorAll('overlay-trigger');\n const closes: Promise<CustomEvent<unknown>>[] = [];\n triggers.forEach((trigger) => {\n if (trigger.open) {\n const close = oneEvent(trigger, 'sp-closed');\n trigger.open = undefined;\n closes.push(close);\n }\n });\n await Promise.all(closes);\n });\n it.skip('manages multiple layers of `type=\"modal\"', async () => {\n const el = await fixture(html`\n <overlay-trigger type=\"modal\">\n <sp-button slot=\"trigger\" variant=\"accent\">\n Toggle Dialog\n </sp-button>\n <sp-popover slot=\"click-content\">\n <sp-dialog no-divider>\n <overlay-trigger>\n <sp-button slot=\"trigger\" variant=\"primary\">\n Toggle Dialog\n </sp-button>\n <sp-popover slot=\"click-content\">\n <sp-dialog no-divider>\n <overlay-trigger type=\"modal\">\n <sp-button\n slot=\"trigger\"\n variant=\"secondary\"\n >\n Toggle Dialog\n </sp-button>\n <sp-popover\n slot=\"click-content\"\n >\n <sp-dialog no-divider>\n <p>\n When you get this\n deep, this\n ActiveOverlay should\n be the only one in\n [slot=\"open\"].\n </p>\n <p>\n All of the rest of\n the ActiveOverlay\n elements should have\n had their [slot]\n attribute removed.\n </p>\n <p>\n Closing this\n ActiveOverlay should\n replace them...\n </p>\n </sp-dialog>\n </sp-popover>\n </overlay-trigger>\n </sp-dialog>\n </sp-popover>\n </overlay-trigger>\n </sp-dialog>\n </sp-popover>\n </overlay-trigger>\n `);\n const overlayTriggers = [\n ...el.querySelectorAll('overlay-trigger'),\n ];\n let activeOverlays = [\n ...document.querySelectorAll('active-overlay'),\n ];\n const triggers = [\n ...el.querySelectorAll('sp-button[slot=\"trigger\"]'),\n ] as Button[];\n\n expect(activeOverlays.length, 'no previous overlays').to.equal(\n 0\n );\n\n let open = oneEvent(triggers[0], 'sp-opened');\n triggers[0]?.click();\n await open;\n await elementUpdated(overlayTriggers[0]);\n activeOverlays = [\n ...document.querySelectorAll('active-overlay'),\n ];\n expect(\n activeOverlays.length,\n 'The first `active-overlay` element has been added.'\n ).to.equal(1);\n expect(\n activeOverlays[0].slot,\n 'first overlay, first time'\n ).to.equal('open');\n\n open = oneEvent(triggers[1], 'sp-opened');\n triggers[1]?.click();\n await open;\n await elementUpdated(overlayTriggers[1]);\n activeOverlays = [\n ...document.querySelectorAll('active-overlay'),\n ];\n expect(\n activeOverlays.length,\n 'The second `active-overlay` element has been added.'\n ).to.equal(2);\n\n expect(\n activeOverlays[0].slot,\n 'first overlay, second time'\n ).to.equal('open');\n expect(\n activeOverlays[1].slot,\n 'second overlay, second time'\n ).to.equal('open');\n\n open = oneEvent(triggers[2], 'sp-opened');\n triggers[2]?.click();\n await open;\n await elementUpdated(overlayTriggers[2]);\n activeOverlays = [\n ...document.querySelectorAll('active-overlay'),\n ];\n expect(\n activeOverlays.length,\n 'The third `active-overlay` element has been added.'\n ).to.equal(3);\n\n expect(\n activeOverlays[0].hasAttribute('slot'),\n 'first overlay, third time'\n ).to.be.false;\n expect(\n activeOverlays[1].hasAttribute('slot'),\n 'second overlay, third time'\n ).to.be.false;\n expect(\n activeOverlays[2].slot,\n 'third overlay, third time'\n ).to.equal('open');\n\n await nextFrame();\n const closed = oneEvent(triggers[2], 'sp-closed');\n sendMouse({\n steps: [\n {\n type: 'click',\n position: [1, 1],\n },\n ],\n });\n await closed;\n await elementUpdated(overlayTriggers[2]);\n activeOverlays = [\n ...document.querySelectorAll('active-overlay'),\n ];\n expect(\n activeOverlays.length,\n 'The third `active-overlay` element has been removed.'\n ).to.equal(2);\n\n await waitUntil(() => {\n return activeOverlays[0].slot === 'open';\n }, 'first overlay, last time');\n expect(\n activeOverlays[1].slot,\n 'second overlay, last time'\n ).to.equal('open');\n });\n });\n });\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
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 { fixture, isOnTopLayer } from '../../../test/testing-helpers.js';\nimport {\n aTimeout,\n elementUpdated,\n expect,\n html,\n nextFrame,\n oneEvent,\n waitUntil,\n} from '@open-wc/testing';\n\nimport {\n OverlayTrigger,\n TriggerInteractions,\n} from '@spectrum-web-components/overlay';\nimport '@spectrum-web-components/button/sp-button.js';\nimport { Button } from '@spectrum-web-components/button';\nimport '@spectrum-web-components/popover/sp-popover.js';\nimport { Popover } from '@spectrum-web-components/popover';\nimport '@spectrum-web-components/theme/sp-theme.js';\nimport { sendMouse } from '../../../test/plugins/browser.js';\nimport { sendKeys } from '@web/test-runner-commands';\nimport { isWebKit } from '@spectrum-web-components/shared';\n\nfunction pressKey(code: string): void {\n const up = new KeyboardEvent('keyup', {\n bubbles: true,\n cancelable: true,\n key: code,\n code,\n });\n document.dispatchEvent(up);\n}\n\nconst pressSpace = (): void => pressKey('Space');\n\nexport const runOverlayTriggerTests = (type: string): void => {\n describe(`Overlay Trigger - ${type}`, () => {\n describe('open/close', () => {\n beforeEach(async function () {\n this.testDiv = await fixture<HTMLDivElement>(\n html`\n <div>\n <style>\n body {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n </style>\n <overlay-trigger id=\"trigger\" placement=\"top\">\n <sp-button\n id=\"outer-button\"\n variant=\"primary\"\n slot=\"trigger\"\n >\n Show Popover\n </sp-button>\n <sp-popover\n id=\"outer-popover\"\n slot=\"click-content\"\n direction=\"bottom\"\n tip\n >\n <sp-dialog\n no-divider\n class=\"options-popover-content\"\n >\n <overlay-trigger\n id=\"inner-trigger\"\n placement=\"bottom\"\n >\n <sp-button\n id=\"inner-button\"\n slot=\"trigger\"\n >\n Press Me\n </sp-button>\n <sp-popover\n id=\"inner-popover\"\n slot=\"click-content\"\n direction=\"bottom\"\n tip\n >\n <sp-dialog\n no-divider\n class=\"options-popover-content\"\n >\n Another Popover\n </sp-dialog>\n </sp-popover>\n </overlay-trigger>\n </sp-dialog>\n </sp-popover>\n <div\n id=\"hover-content\"\n slot=\"hover-content\"\n class=\"tooltip\"\n delay=\"100\"\n >\n Tooltip\n </div>\n </overlay-trigger>\n </div>\n `\n );\n await nextFrame();\n await nextFrame();\n await nextFrame();\n await nextFrame();\n await nextFrame();\n await nextFrame();\n\n this.innerTrigger = this.testDiv.querySelector(\n '#inner-trigger'\n ) as OverlayTrigger;\n this.outerTrigger = this.testDiv.querySelector(\n '#trigger'\n ) as OverlayTrigger;\n this.innerButton = this.testDiv.querySelector(\n '#inner-button'\n ) as Button;\n this.outerButton = this.testDiv.querySelector(\n '#outer-button'\n ) as Button;\n this.innerClickContent = this.testDiv.querySelector(\n '#inner-popover'\n ) as Popover;\n this.outerClickContent = this.testDiv.querySelector(\n '#outer-popover'\n ) as Popover;\n this.hoverContent = this.testDiv.querySelector(\n '#hover-content'\n ) as HTMLDivElement;\n });\n\n it('opens a popover', async function () {\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover not available at point'\n ).to.be.false;\n\n expect(this.outerButton).to.exist;\n const open = oneEvent(this.outerTrigger, 'sp-opened');\n this.outerButton.click();\n await open;\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover available at point'\n ).to.be.true;\n });\n\n it('[disabled] closes a popover', async function () {\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover not available at point'\n ).to.be.false;\n expect(this.outerTrigger.disabled).to.be.false;\n\n expect(this.outerButton).to.exist;\n\n const opened = oneEvent(this.outerButton, 'sp-opened');\n this.outerButton.click();\n await opened;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover available at point'\n ).to.be.true;\n\n const closed = oneEvent(this.outerButton, 'sp-closed');\n this.outerTrigger.disabled = true;\n await closed;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover not available at point'\n ).to.be.false;\n });\n\n it('resizes a popover', async function () {\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover not available at point'\n ).to.be.false;\n\n expect(this.outerButton).to.exist;\n const open = oneEvent(this.outerTrigger, 'sp-opened');\n this.outerButton.click();\n await open;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover available at point'\n ).to.be.true;\n\n window.dispatchEvent(new Event('resize'));\n window.dispatchEvent(new Event('resize'));\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover available at point'\n ).to.be.true;\n });\n\n ['modal', 'replace', 'inline'].map((type: string) => {\n it(`opens a popover - [type=\"${type}\"]`, async function () {\n this.outerTrigger.type = type as Extract<\n TriggerInteractions,\n 'inline' | 'modal' | 'replace'\n >;\n await elementUpdated(this.outerTrigger);\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover not available at point'\n ).to.be.false;\n\n expect(this.outerButton).to.exist;\n const opened = oneEvent(this.outerTrigger, 'sp-opened');\n this.outerButton.click();\n await opened;\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover available at point'\n ).to.be.true;\n });\n });\n\n it('does not open a hover popover when a click popover is open', async function () {\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover not available at point'\n ).to.be.false;\n expect(\n await isOnTopLayer(this.hoverContent),\n 'hover not available at point'\n ).to.be.false;\n\n expect(this.outerButton).to.exist;\n const open = oneEvent(this.outerTrigger, 'sp-opened');\n this.outerButton.click();\n await open;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover available at point'\n ).to.be.true;\n expect(\n await isOnTopLayer(this.hoverContent),\n 'hover not available at point'\n ).to.be.false;\n\n this.outerButton.dispatchEvent(\n new Event('mouseenter', {\n bubbles: true,\n composed: true,\n })\n );\n\n await nextFrame();\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'popover available at point'\n ).to.be.true;\n expect(\n await isOnTopLayer(this.hoverContent),\n 'hover not available at point'\n ).to.be.false;\n });\n\n it('does not open a popover when [disabled]', async function () {\n const triggerZone = this.outerTrigger.shadowRoot.querySelector(\n '#trigger'\n ) as HTMLDivElement;\n\n expect(this.outerTrigger.disabled).to.be.false;\n let open = oneEvent(this.outerTrigger, 'sp-opened');\n this.outerButton.click();\n await open;\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'hover available at point'\n ).to.be.true;\n let closed = oneEvent(this.outerTrigger, 'sp-closed');\n sendMouse({\n steps: [\n {\n type: 'click',\n position: [1, 1],\n },\n ],\n });\n await closed;\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'hover not available at point'\n ).to.be.false;\n\n this.outerTrigger.disabled = true;\n await elementUpdated(this.outerTrigger);\n\n expect(this.outerTrigger.disabled).to.be.true;\n expect(this.outerTrigger.hasAttribute('disabled')).to.be.true;\n // // The overlay shouldn't open here.\n this.outerButton.click();\n await aTimeout(150);\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'hover not available at point'\n ).to.be.false;\n // The overlay shouldn't open here, either.\n triggerZone.dispatchEvent(new Event('mouseenter'));\n await aTimeout(150);\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'hover not available at point'\n ).to.be.false;\n\n this.outerTrigger.disabled = false;\n await elementUpdated(this.outerTrigger);\n\n expect(this.outerTrigger.disabled).to.be.false;\n expect(this.outerTrigger.hasAttribute('disabled')).to.be.false;\n open = oneEvent(this.outerTrigger, 'sp-opened');\n this.outerButton.click();\n await open;\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'hover available at point'\n ).to.be.true;\n closed = oneEvent(this.outerTrigger, 'sp-closed');\n this.outerButton.click();\n await closed;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'hover not available at point'\n ).to.be.false;\n });\n\n it('opens a nested popover', async function () {\n if (isWebKit()) {\n // breaks on https://bugs.webkit.org/show_bug.cgi?id=263081 skip for now.\n this.skip();\n }\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'hover not available at point'\n ).to.be.false;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'hover not available at point'\n ).to.be.false;\n\n expect(this.outerButton).to.exist;\n let open = oneEvent(this.outerTrigger, 'sp-opened');\n this.outerButton.click();\n await open;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content available at point'\n ).to.be.true;\n expect(await isOnTopLayer(this.innerClickContent)).to.be.false;\n\n open = oneEvent(this.innerTrigger, 'sp-opened');\n this.innerButton.click();\n await open;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content available at point'\n ).to.be.true;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content available at point'\n ).to.be.true;\n });\n\n it('focus previous \"modal\" when closing nested \"modal\"', async function () {\n this.outerTrigger.type = 'modal';\n this.innerTrigger.type = 'modal';\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content not available at point'\n ).to.be.false;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content not available at point'\n ).to.be.false;\n\n const outerOpen = oneEvent(this.outerButton, 'sp-opened');\n this.outerButton.click();\n await outerOpen;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content available at point'\n ).to.be.true;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content available at point'\n ).to.be.false;\n\n const innerOpen = oneEvent(this.innerButton, 'sp-opened');\n this.innerButton.click();\n await innerOpen;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content available at point'\n ).to.be.true;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content available at point'\n ).to.be.true;\n\n const innerClose = oneEvent(this.innerButton, 'sp-closed');\n await sendKeys({\n press: 'Escape',\n });\n await innerClose;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content available at point'\n ).to.be.true;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content not available at point'\n ).to.be.false;\n\n expect(\n document.activeElement === this.innerButton,\n 'outer popover recieved focus'\n ).to.be.true;\n });\n\n it('escape closes an open popover', async function () {\n this.outerTrigger.type = 'modal';\n this.innerTrigger.type = 'modal';\n const outerOpen = oneEvent(this.outerButton, 'sp-opened');\n this.outerButton.click();\n await outerOpen;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content available at point'\n ).to.be.true;\n\n const innerOpen = oneEvent(this.innerButton, 'sp-opened');\n this.innerButton.click();\n await innerOpen;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content available at point'\n ).to.be.true;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content available at point'\n ).to.be.true;\n\n pressSpace();\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content available at point'\n ).to.be.true;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content available at point'\n ).to.be.true;\n\n const innerClose = oneEvent(this.innerButton, 'sp-closed');\n await sendKeys({\n press: 'Escape',\n });\n await innerClose;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content available at point'\n ).to.be.true;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content not available at point'\n ).to.be.false;\n\n const outerClose = oneEvent(this.outerButton, 'sp-closed');\n await sendKeys({\n press: 'Escape',\n });\n await outerClose;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content not available at point'\n ).to.be.false;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content not available at point'\n ).to.be.false;\n });\n\n it('click closes an open popover', async function () {\n if (isWebKit()) {\n // breaks on https://bugs.webkit.org/show_bug.cgi?id=263081 skip for now.\n this.skip();\n }\n this.outerTrigger.type = 'auto';\n this.innerTrigger.type = 'auto';\n const outerOpen = oneEvent(this.outerButton, 'sp-opened');\n this.outerButton.click();\n await outerOpen;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content is available at point'\n ).to.be.true;\n\n const innerOpen = oneEvent(this.innerButton, 'sp-opened');\n this.innerButton.click();\n await innerOpen;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content is available at point'\n ).to.be.true;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content is available at point'\n ).to.be.true;\n\n // Test that clicking in the overlay content does not close the overlay\n // 200ms is slightly more than the overlay animation fade out time (130ms)\n this.innerClickContent.click();\n await aTimeout(200);\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content is available at point'\n ).to.be.true;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content is available at point'\n ).to.be.true;\n\n const innerClose = oneEvent(this.innerButton, 'sp-closed');\n const outerClose = oneEvent(this.outerButton, 'sp-closed');\n sendMouse({\n steps: [\n {\n type: 'click',\n position: [1, 1],\n },\n ],\n });\n await innerClose;\n await outerClose;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'outer click content is not available at point'\n ).to.be.not;\n expect(\n await isOnTopLayer(this.innerClickContent),\n 'inner click content is not available at point'\n ).to.be.not;\n });\n\n it('opens a hover popover', async function () {\n expect(await isOnTopLayer(this.hoverContent)).to.be.false;\n\n const rect = this.outerTrigger.getBoundingClientRect();\n const open = oneEvent(this.outerTrigger, 'sp-opened');\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rect.left + rect.width / 2,\n rect.top + rect.height / 2,\n ],\n },\n ],\n });\n await open;\n expect(\n await isOnTopLayer(this.hoverContent),\n 'hover content is available at point'\n ).to.be.true;\n\n const close = oneEvent(this.outerTrigger, 'sp-closed');\n sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rect.left + rect.width * 2,\n rect.top + rect.height / 2,\n ],\n },\n ],\n });\n await close;\n expect(\n await isOnTopLayer(this.hoverContent),\n 'hover content is not available at point'\n ).to.be.false;\n });\n\n it('closes a hover popover', async function () {\n expect(await isOnTopLayer(this.hoverContent)).to.be.false;\n\n const rect = this.outerTrigger.getBoundingClientRect();\n const open = oneEvent(this.outerTrigger, 'sp-opened');\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rect.left + rect.width / 2,\n rect.top + rect.height / 2,\n ],\n },\n ],\n });\n await open;\n const close = oneEvent(this.outerTrigger, 'sp-closed');\n expect(\n await isOnTopLayer(this.hoverContent),\n 'hover content is available at point'\n ).to.be.true;\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: [\n rect.left + rect.width * 2,\n rect.top + rect.height / 2,\n ],\n },\n ],\n });\n await close;\n expect(\n await isOnTopLayer(this.hoverContent),\n 'hover content is not available at point'\n ).to.be.false;\n });\n\n it('dispatches events on open/close', async function () {\n const opened = oneEvent(this.outerButton, 'sp-opened');\n this.outerButton.click();\n const openedEvent = await opened;\n\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'hover content is available at point'\n ).to.be.true;\n expect(this.outerTrigger.open).to.equal('click');\n\n expect(openedEvent.detail.interaction).to.equal('auto');\n\n const closed = oneEvent(this.outerButton, 'sp-closed');\n sendMouse({\n steps: [\n {\n type: 'click',\n position: [1, 1],\n },\n ],\n });\n const closedEvent = await closed;\n expect(closedEvent.detail.interaction).to.equal('auto');\n expect(\n await isOnTopLayer(this.outerClickContent),\n 'hover content is not available at point'\n ).to.be.false;\n });\n });\n describe('System interactions', () => {\n afterEach(async () => {\n const triggers = document.querySelectorAll('overlay-trigger');\n const closes: Promise<CustomEvent<unknown>>[] = [];\n triggers.forEach((trigger) => {\n if (trigger.open) {\n const close = oneEvent(trigger, 'sp-closed');\n trigger.open = undefined;\n closes.push(close);\n }\n });\n await Promise.all(closes);\n });\n it.skip('manages multiple layers of `type=\"modal\"', async () => {\n const el = await fixture(html`\n <overlay-trigger type=\"modal\">\n <sp-button slot=\"trigger\" variant=\"accent\">\n Toggle Dialog\n </sp-button>\n <sp-popover slot=\"click-content\">\n <sp-dialog no-divider>\n <overlay-trigger>\n <sp-button slot=\"trigger\" variant=\"primary\">\n Toggle Dialog\n </sp-button>\n <sp-popover slot=\"click-content\">\n <sp-dialog no-divider>\n <overlay-trigger type=\"modal\">\n <sp-button\n slot=\"trigger\"\n variant=\"secondary\"\n >\n Toggle Dialog\n </sp-button>\n <sp-popover\n slot=\"click-content\"\n >\n <sp-dialog no-divider>\n <p>\n When you get this\n deep, this\n ActiveOverlay should\n be the only one in\n [slot=\"open\"].\n </p>\n <p>\n All of the rest of\n the ActiveOverlay\n elements should have\n had their [slot]\n attribute removed.\n </p>\n <p>\n Closing this\n ActiveOverlay should\n replace them...\n </p>\n </sp-dialog>\n </sp-popover>\n </overlay-trigger>\n </sp-dialog>\n </sp-popover>\n </overlay-trigger>\n </sp-dialog>\n </sp-popover>\n </overlay-trigger>\n `);\n const overlayTriggers = [\n ...el.querySelectorAll('overlay-trigger'),\n ];\n let activeOverlays = [\n ...document.querySelectorAll('active-overlay'),\n ];\n const triggers = [\n ...el.querySelectorAll('sp-button[slot=\"trigger\"]'),\n ] as Button[];\n\n expect(activeOverlays.length, 'no previous overlays').to.equal(\n 0\n );\n\n let open = oneEvent(triggers[0], 'sp-opened');\n triggers[0]?.click();\n await open;\n await elementUpdated(overlayTriggers[0]);\n activeOverlays = [\n ...document.querySelectorAll('active-overlay'),\n ];\n expect(\n activeOverlays.length,\n 'The first `active-overlay` element has been added.'\n ).to.equal(1);\n expect(\n activeOverlays[0].slot,\n 'first overlay, first time'\n ).to.equal('open');\n\n open = oneEvent(triggers[1], 'sp-opened');\n triggers[1]?.click();\n await open;\n await elementUpdated(overlayTriggers[1]);\n activeOverlays = [\n ...document.querySelectorAll('active-overlay'),\n ];\n expect(\n activeOverlays.length,\n 'The second `active-overlay` element has been added.'\n ).to.equal(2);\n\n expect(\n activeOverlays[0].slot,\n 'first overlay, second time'\n ).to.equal('open');\n expect(\n activeOverlays[1].slot,\n 'second overlay, second time'\n ).to.equal('open');\n\n open = oneEvent(triggers[2], 'sp-opened');\n triggers[2]?.click();\n await open;\n await elementUpdated(overlayTriggers[2]);\n activeOverlays = [\n ...document.querySelectorAll('active-overlay'),\n ];\n expect(\n activeOverlays.length,\n 'The third `active-overlay` element has been added.'\n ).to.equal(3);\n\n expect(\n activeOverlays[0].hasAttribute('slot'),\n 'first overlay, third time'\n ).to.be.false;\n expect(\n activeOverlays[1].hasAttribute('slot'),\n 'second overlay, third time'\n ).to.be.false;\n expect(\n activeOverlays[2].slot,\n 'third overlay, third time'\n ).to.equal('open');\n\n await nextFrame();\n const closed = oneEvent(triggers[2], 'sp-closed');\n sendMouse({\n steps: [\n {\n type: 'click',\n position: [1, 1],\n },\n ],\n });\n await closed;\n await elementUpdated(overlayTriggers[2]);\n activeOverlays = [\n ...document.querySelectorAll('active-overlay'),\n ];\n expect(\n activeOverlays.length,\n 'The third `active-overlay` element has been removed.'\n ).to.equal(2);\n\n await waitUntil(() => {\n return activeOverlays[0].slot === 'open';\n }, 'first overlay, last time');\n expect(\n activeOverlays[1].slot,\n 'second overlay, last time'\n ).to.equal('open');\n });\n });\n });\n};\n"],
|
|
5
|
+
"mappings": ";AAYA,SAAS,SAAS,oBAAoB;AACtC;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAMP,OAAO;AAEP,OAAO;AAEP,OAAO;AACP,SAAS,iBAAiB;AAC1B,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AAEzB,SAAS,SAAS,MAAoB;AAClC,QAAM,KAAK,IAAI,cAAc,SAAS;AAAA,IAClC,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,KAAK;AAAA,IACL;AAAA,EACJ,CAAC;AACD,WAAS,cAAc,EAAE;AAC7B;AAEA,MAAM,aAAa,MAAY,SAAS,OAAO;AAExC,aAAM,yBAAyB,CAAC,SAAuB;AAC1D,WAAS,qBAAqB,IAAI,IAAI,MAAM;AACxC,aAAS,cAAc,MAAM;AACzB,iBAAW,iBAAkB;AACzB,aAAK,UAAU,MAAM;AAAA,UACjB;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,QAgEJ;AACA,cAAM,UAAU;AAChB,cAAM,UAAU;AAChB,cAAM,UAAU;AAChB,cAAM,UAAU;AAChB,cAAM,UAAU;AAChB,cAAM,UAAU;AAEhB,aAAK,eAAe,KAAK,QAAQ;AAAA,UAC7B;AAAA,QACJ;AACA,aAAK,eAAe,KAAK,QAAQ;AAAA,UAC7B;AAAA,QACJ;AACA,aAAK,cAAc,KAAK,QAAQ;AAAA,UAC5B;AAAA,QACJ;AACA,aAAK,cAAc,KAAK,QAAQ;AAAA,UAC5B;AAAA,QACJ;AACA,aAAK,oBAAoB,KAAK,QAAQ;AAAA,UAClC;AAAA,QACJ;AACA,aAAK,oBAAoB,KAAK,QAAQ;AAAA,UAClC;AAAA,QACJ;AACA,aAAK,eAAe,KAAK,QAAQ;AAAA,UAC7B;AAAA,QACJ;AAAA,MACJ,CAAC;AAED,SAAG,mBAAmB,iBAAkB;AACpC;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAER,eAAO,KAAK,WAAW,EAAE,GAAG;AAC5B,cAAM,OAAO,SAAS,KAAK,cAAc,WAAW;AACpD,aAAK,YAAY,MAAM;AACvB,cAAM;AACN;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAAA,MACZ,CAAC;AAED,SAAG,+BAA+B,iBAAkB;AAChD;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR,eAAO,KAAK,aAAa,QAAQ,EAAE,GAAG,GAAG;AAEzC,eAAO,KAAK,WAAW,EAAE,GAAG;AAE5B,cAAM,SAAS,SAAS,KAAK,aAAa,WAAW;AACrD,aAAK,YAAY,MAAM;AACvB,cAAM;AAEN;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAER,cAAM,SAAS,SAAS,KAAK,aAAa,WAAW;AACrD,aAAK,aAAa,WAAW;AAC7B,cAAM;AAEN;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAAA,MACZ,CAAC;AAED,SAAG,qBAAqB,iBAAkB;AACtC;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAER,eAAO,KAAK,WAAW,EAAE,GAAG;AAC5B,cAAM,OAAO,SAAS,KAAK,cAAc,WAAW;AACpD,aAAK,YAAY,MAAM;AACvB,cAAM;AAEN;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAER,eAAO,cAAc,IAAI,MAAM,QAAQ,CAAC;AACxC,eAAO,cAAc,IAAI,MAAM,QAAQ,CAAC;AAExC;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAAA,MACZ,CAAC;AAED,OAAC,SAAS,WAAW,QAAQ,EAAE,IAAI,CAACA,UAAiB;AACjD,WAAG,4BAA4BA,KAAI,MAAM,iBAAkB;AACvD,eAAK,aAAa,OAAOA;AAIzB,gBAAM,eAAe,KAAK,YAAY;AACtC;AAAA,YACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,YACzC;AAAA,UACJ,EAAE,GAAG,GAAG;AAER,iBAAO,KAAK,WAAW,EAAE,GAAG;AAC5B,gBAAM,SAAS,SAAS,KAAK,cAAc,WAAW;AACtD,eAAK,YAAY,MAAM;AACvB,gBAAM;AACN;AAAA,YACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,YACzC;AAAA,UACJ,EAAE,GAAG,GAAG;AAAA,QACZ,CAAC;AAAA,MACL,CAAC;AAED,SAAG,8DAA8D,iBAAkB;AAC/E;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR;AAAA,UACI,MAAM,aAAa,KAAK,YAAY;AAAA,UACpC;AAAA,QACJ,EAAE,GAAG,GAAG;AAER,eAAO,KAAK,WAAW,EAAE,GAAG;AAC5B,cAAM,OAAO,SAAS,KAAK,cAAc,WAAW;AACpD,aAAK,YAAY,MAAM;AACvB,cAAM;AAEN;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR;AAAA,UACI,MAAM,aAAa,KAAK,YAAY;AAAA,UACpC;AAAA,QACJ,EAAE,GAAG,GAAG;AAER,aAAK,YAAY;AAAA,UACb,IAAI,MAAM,cAAc;AAAA,YACpB,SAAS;AAAA,YACT,UAAU;AAAA,UACd,CAAC;AAAA,QACL;AAEA,cAAM,UAAU;AAEhB;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR;AAAA,UACI,MAAM,aAAa,KAAK,YAAY;AAAA,UACpC;AAAA,QACJ,EAAE,GAAG,GAAG;AAAA,MACZ,CAAC;AAED,SAAG,2CAA2C,iBAAkB;AAC5D,cAAM,cAAc,KAAK,aAAa,WAAW;AAAA,UAC7C;AAAA,QACJ;AAEA,eAAO,KAAK,aAAa,QAAQ,EAAE,GAAG,GAAG;AACzC,YAAI,OAAO,SAAS,KAAK,cAAc,WAAW;AAClD,aAAK,YAAY,MAAM;AACvB,cAAM;AACN;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR,YAAI,SAAS,SAAS,KAAK,cAAc,WAAW;AACpD,kBAAU;AAAA,UACN,OAAO;AAAA,YACH;AAAA,cACI,MAAM;AAAA,cACN,UAAU,CAAC,GAAG,CAAC;AAAA,YACnB;AAAA,UACJ;AAAA,QACJ,CAAC;AACD,cAAM;AACN;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAER,aAAK,aAAa,WAAW;AAC7B,cAAM,eAAe,KAAK,YAAY;AAEtC,eAAO,KAAK,aAAa,QAAQ,EAAE,GAAG,GAAG;AACzC,eAAO,KAAK,aAAa,aAAa,UAAU,CAAC,EAAE,GAAG,GAAG;AAEzD,aAAK,YAAY,MAAM;AACvB,cAAM,SAAS,GAAG;AAClB;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAER,oBAAY,cAAc,IAAI,MAAM,YAAY,CAAC;AACjD,cAAM,SAAS,GAAG;AAClB;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAER,aAAK,aAAa,WAAW;AAC7B,cAAM,eAAe,KAAK,YAAY;AAEtC,eAAO,KAAK,aAAa,QAAQ,EAAE,GAAG,GAAG;AACzC,eAAO,KAAK,aAAa,aAAa,UAAU,CAAC,EAAE,GAAG,GAAG;AACzD,eAAO,SAAS,KAAK,cAAc,WAAW;AAC9C,aAAK,YAAY,MAAM;AACvB,cAAM;AACN;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR,iBAAS,SAAS,KAAK,cAAc,WAAW;AAChD,aAAK,YAAY,MAAM;AACvB,cAAM;AAEN;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAAA,MACZ,CAAC;AAED,SAAG,0BAA0B,iBAAkB;AAC3C,YAAI,SAAS,GAAG;AAEZ,eAAK,KAAK;AAAA,QACd;AACA;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAER,eAAO,KAAK,WAAW,EAAE,GAAG;AAC5B,YAAI,OAAO,SAAS,KAAK,cAAc,WAAW;AAClD,aAAK,YAAY,MAAM;AACvB,cAAM;AAEN;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR,eAAO,MAAM,aAAa,KAAK,iBAAiB,CAAC,EAAE,GAAG,GAAG;AAEzD,eAAO,SAAS,KAAK,cAAc,WAAW;AAC9C,aAAK,YAAY,MAAM;AACvB,cAAM;AAEN;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAAA,MACZ,CAAC;AAED,SAAG,sDAAsD,iBAAkB;AACvE,aAAK,aAAa,OAAO;AACzB,aAAK,aAAa,OAAO;AAEzB;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAER,cAAM,YAAY,SAAS,KAAK,aAAa,WAAW;AACxD,aAAK,YAAY,MAAM;AACvB,cAAM;AAEN;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAER,cAAM,YAAY,SAAS,KAAK,aAAa,WAAW;AACxD,aAAK,YAAY,MAAM;AACvB,cAAM;AAEN;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAER,cAAM,aAAa,SAAS,KAAK,aAAa,WAAW;AACzD,cAAM,SAAS;AAAA,UACX,OAAO;AAAA,QACX,CAAC;AACD,cAAM;AAEN;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAER;AAAA,UACI,SAAS,kBAAkB,KAAK;AAAA,UAChC;AAAA,QACJ,EAAE,GAAG,GAAG;AAAA,MACZ,CAAC;AAED,SAAG,iCAAiC,iBAAkB;AAClD,aAAK,aAAa,OAAO;AACzB,aAAK,aAAa,OAAO;AACzB,cAAM,YAAY,SAAS,KAAK,aAAa,WAAW;AACxD,aAAK,YAAY,MAAM;AACvB,cAAM;AAEN;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAER,cAAM,YAAY,SAAS,KAAK,aAAa,WAAW;AACxD,aAAK,YAAY,MAAM;AACvB,cAAM;AAEN;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAER,mBAAW;AAEX;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAER,cAAM,aAAa,SAAS,KAAK,aAAa,WAAW;AACzD,cAAM,SAAS;AAAA,UACX,OAAO;AAAA,QACX,CAAC;AACD,cAAM;AAEN;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAER,cAAM,aAAa,SAAS,KAAK,aAAa,WAAW;AACzD,cAAM,SAAS;AAAA,UACX,OAAO;AAAA,QACX,CAAC;AACD,cAAM;AAEN;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAAA,MACZ,CAAC;AAED,SAAG,gCAAgC,iBAAkB;AACjD,YAAI,SAAS,GAAG;AAEZ,eAAK,KAAK;AAAA,QACd;AACA,aAAK,aAAa,OAAO;AACzB,aAAK,aAAa,OAAO;AACzB,cAAM,YAAY,SAAS,KAAK,aAAa,WAAW;AACxD,aAAK,YAAY,MAAM;AACvB,cAAM;AAEN;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAER,cAAM,YAAY,SAAS,KAAK,aAAa,WAAW;AACxD,aAAK,YAAY,MAAM;AACvB,cAAM;AAEN;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAIR,aAAK,kBAAkB,MAAM;AAC7B,cAAM,SAAS,GAAG;AAElB;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAER,cAAM,aAAa,SAAS,KAAK,aAAa,WAAW;AACzD,cAAM,aAAa,SAAS,KAAK,aAAa,WAAW;AACzD,kBAAU;AAAA,UACN,OAAO;AAAA,YACH;AAAA,cACI,MAAM;AAAA,cACN,UAAU,CAAC,GAAG,CAAC;AAAA,YACnB;AAAA,UACJ;AAAA,QACJ,CAAC;AACD,cAAM;AACN,cAAM;AAEN;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAAA,MACZ,CAAC;AAED,SAAG,yBAAyB,iBAAkB;AAC1C,eAAO,MAAM,aAAa,KAAK,YAAY,CAAC,EAAE,GAAG,GAAG;AAEpD,cAAM,OAAO,KAAK,aAAa,sBAAsB;AACrD,cAAM,OAAO,SAAS,KAAK,cAAc,WAAW;AACpD,kBAAU;AAAA,UACN,OAAO;AAAA,YACH;AAAA,cACI,MAAM;AAAA,cACN,UAAU;AAAA,gBACN,KAAK,OAAO,KAAK,QAAQ;AAAA,gBACzB,KAAK,MAAM,KAAK,SAAS;AAAA,cAC7B;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ,CAAC;AACD,cAAM;AACN;AAAA,UACI,MAAM,aAAa,KAAK,YAAY;AAAA,UACpC;AAAA,QACJ,EAAE,GAAG,GAAG;AAER,cAAM,QAAQ,SAAS,KAAK,cAAc,WAAW;AACrD,kBAAU;AAAA,UACN,OAAO;AAAA,YACH;AAAA,cACI,MAAM;AAAA,cACN,UAAU;AAAA,gBACN,KAAK,OAAO,KAAK,QAAQ;AAAA,gBACzB,KAAK,MAAM,KAAK,SAAS;AAAA,cAC7B;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ,CAAC;AACD,cAAM;AACN;AAAA,UACI,MAAM,aAAa,KAAK,YAAY;AAAA,UACpC;AAAA,QACJ,EAAE,GAAG,GAAG;AAAA,MACZ,CAAC;AAED,SAAG,0BAA0B,iBAAkB;AAC3C,eAAO,MAAM,aAAa,KAAK,YAAY,CAAC,EAAE,GAAG,GAAG;AAEpD,cAAM,OAAO,KAAK,aAAa,sBAAsB;AACrD,cAAM,OAAO,SAAS,KAAK,cAAc,WAAW;AACpD,cAAM,UAAU;AAAA,UACZ,OAAO;AAAA,YACH;AAAA,cACI,MAAM;AAAA,cACN,UAAU;AAAA,gBACN,KAAK,OAAO,KAAK,QAAQ;AAAA,gBACzB,KAAK,MAAM,KAAK,SAAS;AAAA,cAC7B;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ,CAAC;AACD,cAAM;AACN,cAAM,QAAQ,SAAS,KAAK,cAAc,WAAW;AACrD;AAAA,UACI,MAAM,aAAa,KAAK,YAAY;AAAA,UACpC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR,cAAM,UAAU;AAAA,UACZ,OAAO;AAAA,YACH;AAAA,cACI,MAAM;AAAA,cACN,UAAU;AAAA,gBACN,KAAK,OAAO,KAAK,QAAQ;AAAA,gBACzB,KAAK,MAAM,KAAK,SAAS;AAAA,cAC7B;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ,CAAC;AACD,cAAM;AACN;AAAA,UACI,MAAM,aAAa,KAAK,YAAY;AAAA,UACpC;AAAA,QACJ,EAAE,GAAG,GAAG;AAAA,MACZ,CAAC;AAED,SAAG,mCAAmC,iBAAkB;AACpD,cAAM,SAAS,SAAS,KAAK,aAAa,WAAW;AACrD,aAAK,YAAY,MAAM;AACvB,cAAM,cAAc,MAAM;AAE1B;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR,eAAO,KAAK,aAAa,IAAI,EAAE,GAAG,MAAM,OAAO;AAE/C,eAAO,YAAY,OAAO,WAAW,EAAE,GAAG,MAAM,MAAM;AAEtD,cAAM,SAAS,SAAS,KAAK,aAAa,WAAW;AACrD,kBAAU;AAAA,UACN,OAAO;AAAA,YACH;AAAA,cACI,MAAM;AAAA,cACN,UAAU,CAAC,GAAG,CAAC;AAAA,YACnB;AAAA,UACJ;AAAA,QACJ,CAAC;AACD,cAAM,cAAc,MAAM;AAC1B,eAAO,YAAY,OAAO,WAAW,EAAE,GAAG,MAAM,MAAM;AACtD;AAAA,UACI,MAAM,aAAa,KAAK,iBAAiB;AAAA,UACzC;AAAA,QACJ,EAAE,GAAG,GAAG;AAAA,MACZ,CAAC;AAAA,IACL,CAAC;AACD,aAAS,uBAAuB,MAAM;AAClC,gBAAU,YAAY;AAClB,cAAM,WAAW,SAAS,iBAAiB,iBAAiB;AAC5D,cAAM,SAA0C,CAAC;AACjD,iBAAS,QAAQ,CAAC,YAAY;AAC1B,cAAI,QAAQ,MAAM;AACd,kBAAM,QAAQ,SAAS,SAAS,WAAW;AAC3C,oBAAQ,OAAO;AACf,mBAAO,KAAK,KAAK;AAAA,UACrB;AAAA,QACJ,CAAC;AACD,cAAM,QAAQ,IAAI,MAAM;AAAA,MAC5B,CAAC;AACD,SAAG,KAAK,4CAA4C,YAAY;AArsB5E;AAssBgB,cAAM,KAAK,MAAM,QAAQ;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,iBAoDxB;AACD,cAAM,kBAAkB;AAAA,UACpB,GAAG,GAAG,iBAAiB,iBAAiB;AAAA,QAC5C;AACA,YAAI,iBAAiB;AAAA,UACjB,GAAG,SAAS,iBAAiB,gBAAgB;AAAA,QACjD;AACA,cAAM,WAAW;AAAA,UACb,GAAG,GAAG,iBAAiB,2BAA2B;AAAA,QACtD;AAEA,eAAO,eAAe,QAAQ,sBAAsB,EAAE,GAAG;AAAA,UACrD;AAAA,QACJ;AAEA,YAAI,OAAO,SAAS,SAAS,CAAC,GAAG,WAAW;AAC5C,uBAAS,CAAC,MAAV,mBAAa;AACb,cAAM;AACN,cAAM,eAAe,gBAAgB,CAAC,CAAC;AACvC,yBAAiB;AAAA,UACb,GAAG,SAAS,iBAAiB,gBAAgB;AAAA,QACjD;AACA;AAAA,UACI,eAAe;AAAA,UACf;AAAA,QACJ,EAAE,GAAG,MAAM,CAAC;AACZ;AAAA,UACI,eAAe,CAAC,EAAE;AAAA,UAClB;AAAA,QACJ,EAAE,GAAG,MAAM,MAAM;AAEjB,eAAO,SAAS,SAAS,CAAC,GAAG,WAAW;AACxC,uBAAS,CAAC,MAAV,mBAAa;AACb,cAAM;AACN,cAAM,eAAe,gBAAgB,CAAC,CAAC;AACvC,yBAAiB;AAAA,UACb,GAAG,SAAS,iBAAiB,gBAAgB;AAAA,QACjD;AACA;AAAA,UACI,eAAe;AAAA,UACf;AAAA,QACJ,EAAE,GAAG,MAAM,CAAC;AAEZ;AAAA,UACI,eAAe,CAAC,EAAE;AAAA,UAClB;AAAA,QACJ,EAAE,GAAG,MAAM,MAAM;AACjB;AAAA,UACI,eAAe,CAAC,EAAE;AAAA,UAClB;AAAA,QACJ,EAAE,GAAG,MAAM,MAAM;AAEjB,eAAO,SAAS,SAAS,CAAC,GAAG,WAAW;AACxC,uBAAS,CAAC,MAAV,mBAAa;AACb,cAAM;AACN,cAAM,eAAe,gBAAgB,CAAC,CAAC;AACvC,yBAAiB;AAAA,UACb,GAAG,SAAS,iBAAiB,gBAAgB;AAAA,QACjD;AACA;AAAA,UACI,eAAe;AAAA,UACf;AAAA,QACJ,EAAE,GAAG,MAAM,CAAC;AAEZ;AAAA,UACI,eAAe,CAAC,EAAE,aAAa,MAAM;AAAA,UACrC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR;AAAA,UACI,eAAe,CAAC,EAAE,aAAa,MAAM;AAAA,UACrC;AAAA,QACJ,EAAE,GAAG,GAAG;AACR;AAAA,UACI,eAAe,CAAC,EAAE;AAAA,UAClB;AAAA,QACJ,EAAE,GAAG,MAAM,MAAM;AAEjB,cAAM,UAAU;AAChB,cAAM,SAAS,SAAS,SAAS,CAAC,GAAG,WAAW;AAChD,kBAAU;AAAA,UACN,OAAO;AAAA,YACH;AAAA,cACI,MAAM;AAAA,cACN,UAAU,CAAC,GAAG,CAAC;AAAA,YACnB;AAAA,UACJ;AAAA,QACJ,CAAC;AACD,cAAM;AACN,cAAM,eAAe,gBAAgB,CAAC,CAAC;AACvC,yBAAiB;AAAA,UACb,GAAG,SAAS,iBAAiB,gBAAgB;AAAA,QACjD;AACA;AAAA,UACI,eAAe;AAAA,UACf;AAAA,QACJ,EAAE,GAAG,MAAM,CAAC;AAEZ,cAAM,UAAU,MAAM;AAClB,iBAAO,eAAe,CAAC,EAAE,SAAS;AAAA,QACtC,GAAG,0BAA0B;AAC7B;AAAA,UACI,eAAe,CAAC,EAAE;AAAA,UAClB;AAAA,QACJ,EAAE,GAAG,MAAM,MAAM;AAAA,MACrB,CAAC;AAAA,IACL,CAAC;AAAA,EACL,CAAC;AACL;",
|
|
6
6
|
"names": ["type"]
|
|
7
7
|
}
|
|
@@ -9,6 +9,8 @@ describe("sp-update-overlays event", () => {
|
|
|
9
9
|
const item = el.querySelector(
|
|
10
10
|
'[label="Other things"]'
|
|
11
11
|
);
|
|
12
|
+
el.content = "click";
|
|
13
|
+
await elementUpdated(el);
|
|
12
14
|
const height0 = container.getBoundingClientRect().height;
|
|
13
15
|
const opened = oneEvent(el, "sp-opened");
|
|
14
16
|
el.open = "click";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["overlay-update.test.ts"],
|
|
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 { elementUpdated, expect, oneEvent } from '@open-wc/testing';\nimport { AccordionItem } from '@spectrum-web-components/accordion/src/AccordionItem.js';\nimport { OverlayTrigger } from '../src/OverlayTrigger.js';\nimport { accordion } from '../stories/overlay.stories.js';\nimport { fixture } from '../../../test/testing-helpers.js';\n\ndescribe('sp-update-overlays event', () => {\n it('updates overlay height', async () => {\n const el = await fixture<OverlayTrigger>(accordion());\n const container = el.querySelector('sp-popover') as HTMLElement;\n const item = el.querySelector(\n '[label=\"Other things\"]'\n ) as AccordionItem;\n\n const height0 = container.getBoundingClientRect().height;\n\n const opened = oneEvent(el, 'sp-opened');\n el.open = 'click';\n await opened;\n\n const height1 = container.getBoundingClientRect().height;\n expect(height1).to.equal(height0);\n\n item.click();\n await elementUpdated(item);\n\n const height2 = container.getBoundingClientRect().height;\n expect(height2).to.not.equal(height0);\n\n expect(height1).to.be.lessThan(height2);\n });\n});\n"],
|
|
5
|
-
"mappings": ";AAWA,SAAS,gBAAgB,QAAQ,gBAAgB;AAGjD,SAAS,iBAAiB;AAC1B,SAAS,eAAe;AAExB,SAAS,4BAA4B,MAAM;AACvC,KAAG,0BAA0B,YAAY;AACrC,UAAM,KAAK,MAAM,QAAwB,UAAU,CAAC;AACpD,UAAM,YAAY,GAAG,cAAc,YAAY;AAC/C,UAAM,OAAO,GAAG;AAAA,MACZ;AAAA,IACJ;AAEA,UAAM,UAAU,UAAU,sBAAsB,EAAE;AAElD,UAAM,SAAS,SAAS,IAAI,WAAW;AACvC,OAAG,OAAO;AACV,UAAM;AAEN,UAAM,UAAU,UAAU,sBAAsB,EAAE;AAClD,WAAO,OAAO,EAAE,GAAG,MAAM,OAAO;AAEhC,SAAK,MAAM;AACX,UAAM,eAAe,IAAI;AAEzB,UAAM,UAAU,UAAU,sBAAsB,EAAE;AAClD,WAAO,OAAO,EAAE,GAAG,IAAI,MAAM,OAAO;AAEpC,WAAO,OAAO,EAAE,GAAG,GAAG,SAAS,OAAO;AAAA,EAC1C,CAAC;AACL,CAAC;",
|
|
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 { elementUpdated, expect, oneEvent } from '@open-wc/testing';\nimport { AccordionItem } from '@spectrum-web-components/accordion/src/AccordionItem.js';\nimport { OverlayTrigger } from '../src/OverlayTrigger.js';\nimport { accordion } from '../stories/overlay.stories.js';\nimport { fixture } from '../../../test/testing-helpers.js';\n\ndescribe('sp-update-overlays event', () => {\n it('updates overlay height', async () => {\n const el = await fixture<OverlayTrigger>(accordion());\n const container = el.querySelector('sp-popover') as HTMLElement;\n const item = el.querySelector(\n '[label=\"Other things\"]'\n ) as AccordionItem;\n\n el.content = 'click';\n await elementUpdated(el);\n\n const height0 = container.getBoundingClientRect().height;\n\n const opened = oneEvent(el, 'sp-opened');\n el.open = 'click';\n await opened;\n\n const height1 = container.getBoundingClientRect().height;\n expect(height1).to.equal(height0);\n\n item.click();\n await elementUpdated(item);\n\n const height2 = container.getBoundingClientRect().height;\n expect(height2).to.not.equal(height0);\n\n expect(height1).to.be.lessThan(height2);\n });\n});\n"],
|
|
5
|
+
"mappings": ";AAWA,SAAS,gBAAgB,QAAQ,gBAAgB;AAGjD,SAAS,iBAAiB;AAC1B,SAAS,eAAe;AAExB,SAAS,4BAA4B,MAAM;AACvC,KAAG,0BAA0B,YAAY;AACrC,UAAM,KAAK,MAAM,QAAwB,UAAU,CAAC;AACpD,UAAM,YAAY,GAAG,cAAc,YAAY;AAC/C,UAAM,OAAO,GAAG;AAAA,MACZ;AAAA,IACJ;AAEA,OAAG,UAAU;AACb,UAAM,eAAe,EAAE;AAEvB,UAAM,UAAU,UAAU,sBAAsB,EAAE;AAElD,UAAM,SAAS,SAAS,IAAI,WAAW;AACvC,OAAG,OAAO;AACV,UAAM;AAEN,UAAM,UAAU,UAAU,sBAAsB,EAAE;AAClD,WAAO,OAAO,EAAE,GAAG,MAAM,OAAO;AAEhC,SAAK,MAAM;AACX,UAAM,eAAe,IAAI;AAEzB,UAAM,UAAU,UAAU,sBAAsB,EAAE;AAClD,WAAO,OAAO,EAAE,GAAG,IAAI,MAAM,OAAO;AAEpC,WAAO,OAAO,EAAE,GAAG,GAAG,SAAS,OAAO;AAAA,EAC1C,CAAC;AACL,CAAC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|