@siemens/ix 2.1.0-beta.1 → 2.1.0-beta.3

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 (66) hide show
  1. package/components/card.js +8 -3
  2. package/components/card.js.map +1 -1
  3. package/components/dropdown.js +55 -47
  4. package/components/dropdown.js.map +1 -1
  5. package/components/ix-action-card.js +2 -4
  6. package/components/ix-action-card.js.map +1 -1
  7. package/components/ix-push-card.js +1 -1
  8. package/components/ix-push-card.js.map +1 -1
  9. package/dist/cjs/ix-action-card.cjs.entry.js +2 -4
  10. package/dist/cjs/ix-action-card.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ix-card_2.cjs.entry.js +6 -2
  12. package/dist/cjs/ix-card_2.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ix-dropdown.cjs.entry.js +55 -47
  14. package/dist/cjs/ix-dropdown.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ix-push-card.cjs.entry.js +1 -1
  16. package/dist/cjs/ix-push-card.cjs.entry.js.map +1 -1
  17. package/dist/cjs/loader.cjs.js +1 -1
  18. package/dist/cjs/siemens-ix.cjs.js +1 -1
  19. package/dist/collection/components/action-card/action-card.css +0 -141
  20. package/dist/collection/components/action-card/action-card.js +1 -3
  21. package/dist/collection/components/action-card/action-card.js.map +1 -1
  22. package/dist/collection/components/card/card.css +103 -0
  23. package/dist/collection/components/card/card.js +25 -1
  24. package/dist/collection/components/card/card.js.map +1 -1
  25. package/dist/collection/components/dropdown/dropdown-controller.js +39 -22
  26. package/dist/collection/components/dropdown/dropdown-controller.js.map +1 -1
  27. package/dist/collection/components/dropdown/dropdown.js +20 -29
  28. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  29. package/dist/collection/components/dropdown/test/dropdown.ct.js +112 -21
  30. package/dist/collection/components/dropdown/test/dropdown.ct.js.map +1 -1
  31. package/dist/collection/components/push-card/push-card.css +0 -56
  32. package/dist/collection/tests/card/card.e2e.js +23 -0
  33. package/dist/collection/tests/card/card.e2e.js.map +1 -0
  34. package/dist/esm/ix-action-card.entry.js +2 -4
  35. package/dist/esm/ix-action-card.entry.js.map +1 -1
  36. package/dist/esm/ix-card_2.entry.js +6 -2
  37. package/dist/esm/ix-card_2.entry.js.map +1 -1
  38. package/dist/esm/ix-dropdown.entry.js +55 -47
  39. package/dist/esm/ix-dropdown.entry.js.map +1 -1
  40. package/dist/esm/ix-push-card.entry.js +1 -1
  41. package/dist/esm/ix-push-card.entry.js.map +1 -1
  42. package/dist/esm/loader.js +1 -1
  43. package/dist/esm/siemens-ix.js +1 -1
  44. package/dist/siemens-ix/p-731a81c6.entry.js +2 -0
  45. package/dist/siemens-ix/p-731a81c6.entry.js.map +1 -0
  46. package/dist/siemens-ix/p-9f03e475.entry.js +2 -0
  47. package/dist/siemens-ix/p-9f03e475.entry.js.map +1 -0
  48. package/dist/siemens-ix/p-ba379675.entry.js +2 -0
  49. package/dist/siemens-ix/p-ba379675.entry.js.map +1 -0
  50. package/dist/siemens-ix/p-c5965787.entry.js +2 -0
  51. package/dist/siemens-ix/p-c5965787.entry.js.map +1 -0
  52. package/dist/siemens-ix/siemens-ix.esm.js +1 -1
  53. package/dist/siemens-ix/siemens-ix.esm.js.map +1 -1
  54. package/dist/types/components/card/card.d.ts +4 -0
  55. package/dist/types/components/dropdown/dropdown-controller.d.ts +8 -5
  56. package/dist/types/components/dropdown/dropdown.d.ts +4 -2
  57. package/dist/types/components.d.ts +14 -6
  58. package/package.json +1 -1
  59. package/dist/siemens-ix/p-0872fe61.entry.js +0 -2
  60. package/dist/siemens-ix/p-0872fe61.entry.js.map +0 -1
  61. package/dist/siemens-ix/p-a38ec9e8.entry.js +0 -2
  62. package/dist/siemens-ix/p-a38ec9e8.entry.js.map +0 -1
  63. package/dist/siemens-ix/p-e12d4a6f.entry.js +0 -2
  64. package/dist/siemens-ix/p-e12d4a6f.entry.js.map +0 -1
  65. package/dist/siemens-ix/p-e359d3c5.entry.js +0 -2
  66. package/dist/siemens-ix/p-e359d3c5.entry.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.ct.js","sourceRoot":"","sources":["../../../../src/components/dropdown/test/dropdown.ct.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { ElementHandle, expect, Locator, Page } from '@playwright/test';\nimport { test, viewPorts } from '@utils/test';\n\nconst html = String.raw;\n\ntest('renders', async ({ mount, page }) => {\n await mount(`\n <ix-split-button label=\"Test 1\">\n <ix-dropdown-item>Test 1</ix-dropdown-item>\n </ix-split-button>\n\n <ix-split-button label=\"Test 2\">\n <ix-dropdown-item>Test 1</ix-dropdown-item>\n </ix-split-button>\n\n <ix-group header=\"Title\" sub-header=\"Subtitle\">\n <ix-dropdown slot=\"dropdown\">\n <ix-dropdown-item label=\"Item 1\" icon=\"pin\" />\n <ix-dropdown-item label=\"Item 2\" icon=\"star\" />\n <ix-dropdown-item label=\"Item 3\" icon=\"heart\" />\n <ix-dropdown-item label=\"Item 4\" icon=\"cogwheel\" />\n </ix-dropdown>\n </ix-group>\n\n <ix-group header=\"Title\" sub-header=\"Subtitle\">\n <ix-dropdown slot=\"dropdown\">\n <ix-dropdown-item label=\"Item 1\" icon=\"pin\" />\n <ix-dropdown-item label=\"Item 2\" icon=\"star\" />\n <ix-dropdown-item label=\"Item 3\" icon=\"heart\" />\n <ix-dropdown-item label=\"Item 4\" icon=\"cogwheel\" />\n </ix-dropdown>\n </ix-group>\n `);\n\n const sb1 = page.locator('ix-split-button').nth(0);\n const sb2 = page.locator('ix-split-button').nth(1);\n\n const g1 = page.locator('ix-group').nth(0);\n const g2 = page.locator('ix-group').nth(1);\n\n const sb1Dropdown = sb1.locator('ix-dropdown');\n const sb2Dropdown = sb2.locator('ix-dropdown');\n const g1Dropdown = g1.locator('ix-dropdown');\n const g2Dropdown = g2.locator('ix-dropdown');\n\n await sb1.locator('ix-icon-button').first().click();\n\n await expectToBeVisible(\n [sb1Dropdown, sb2Dropdown, g1Dropdown, g2Dropdown],\n 0\n );\n\n await sb2.locator('ix-icon-button').first().click();\n\n await expectToBeVisible(\n [sb1Dropdown, sb2Dropdown, g1Dropdown, g2Dropdown],\n 1\n );\n\n await g2.locator('ix-icon-button').click();\n\n await expectToBeVisible(\n [sb1Dropdown, sb2Dropdown, g1Dropdown, g2Dropdown],\n 3\n );\n});\n\nfunction expectToBeVisible(elements: Locator[], index: number) {\n return Promise.all(\n elements.map(async (element, i) => {\n let ef = expect(element);\n if (i !== index) {\n ef = ef.not;\n }\n await ef.toBeVisible();\n })\n );\n}\n\ntest('trigger toggles', async ({ mount, page }) => {\n await mount(`<ix-button id=\"trigger\">Open</ix-button>\n <ix-dropdown trigger=\"trigger\" trigger-toggles=\"true\">\n <ix-dropdown-item label=\"Item 1\"></ix-dropdown-item>\n <ix-dropdown-item label=\"Item 2\"></ix-dropdown-item>\n </ix-dropdown>\n `);\n\n await page.locator('ix-button').click();\n const dropdown = page.locator('.dropdown-menu');\n await expect(dropdown).toHaveClass(/show/);\n await expect(dropdown).toBeVisible();\n\n await page.locator('ix-button').click();\n const after = page.locator('.dropdown-menu');\n await expect(after).not.toHaveClass(/show/);\n await expect(dropdown).not.toBeVisible();\n});\n\ntest.describe('Close behavior', () => {\n function mountDropdown(\n mount: (selector: string) => Promise<ElementHandle<HTMLElement>>,\n config: {\n closeBehavior: string | boolean;\n }\n ) {\n const closeBehavior = config.closeBehavior\n ? `close-behavior=\"${config.closeBehavior}\"`\n : '';\n\n return mount(`\n <ix-button id=\"level-1\">Trigger</ix-button>\n <ix-dropdown id=\"dropdown-level-1\" trigger=\"level-1\" ${closeBehavior}>\n <ix-dropdown-item>Item 1</ix-dropdown-item>\n <ix-dropdown-item>Item 2</ix-dropdown-item>\n <ix-dropdown-item>Item 3</ix-dropdown-item>\n </ix-dropdown>\n `);\n }\n\n let triggerButton: Locator;\n let dropdownLevel1: Locator;\n\n let dropdownLevel1_Item1: Locator;\n\n function setupTest(page: Page) {\n triggerButton = page.locator('#level-1');\n dropdownLevel1 = page.locator('#dropdown-level-1');\n\n dropdownLevel1_Item1 = dropdownLevel1\n .locator('ix-dropdown-item')\n .getByText('Item 1');\n }\n\n test(' = both', async ({ mount, page }) => {\n await mountDropdown(mount, {\n closeBehavior: 'both',\n });\n\n setupTest(page);\n\n await triggerButton.click();\n await expect(dropdownLevel1).toBeVisible();\n\n await page.mouse.click(400, 200);\n await expect(dropdownLevel1).not.toBeVisible();\n\n await triggerButton.click();\n await expect(dropdownLevel1).toBeVisible();\n\n await dropdownLevel1_Item1.click();\n await expect(dropdownLevel1).not.toBeVisible();\n });\n\n test(' = inside', async ({ mount, page }) => {\n await mountDropdown(mount, {\n closeBehavior: 'inside',\n });\n\n setupTest(page);\n\n await triggerButton.click();\n await expect(dropdownLevel1).toBeVisible();\n\n await page.mouse.click(400, 200);\n await expect(dropdownLevel1).toBeVisible();\n\n await dropdownLevel1_Item1.click();\n await expect(dropdownLevel1).not.toBeVisible();\n });\n\n test(' = outside', async ({ mount, page }) => {\n await mountDropdown(mount, {\n closeBehavior: 'outside',\n });\n\n setupTest(page);\n\n await triggerButton.click();\n await expect(dropdownLevel1).toBeVisible();\n\n await page.mouse.click(400, 200);\n await expect(dropdownLevel1).not.toBeVisible();\n\n await triggerButton.click();\n await expect(dropdownLevel1).toBeVisible();\n\n await dropdownLevel1_Item1.click();\n await expect(dropdownLevel1).toBeVisible();\n });\n\n test(' = false', async ({ mount, page }) => {\n await mountDropdown(mount, {\n // Disable close behavior\n closeBehavior: false,\n });\n\n // Have to be provided via javascript, otherwise the component parse the value as a string.\n await page\n .locator('ix-dropdown')\n .evaluate((dropdown: any) => (dropdown.closeBehavior = false));\n\n setupTest(page);\n\n await triggerButton.click();\n await expect(dropdownLevel1).toBeVisible();\n\n await page.mouse.click(400, 200);\n await expect(dropdownLevel1).toBeVisible();\n\n await triggerButton.click();\n await expect(dropdownLevel1).not.toBeVisible();\n\n await triggerButton.click();\n await expect(dropdownLevel1).toBeVisible();\n\n await dropdownLevel1_Item1.click({\n force: true,\n });\n await expect(dropdownLevel1).toBeVisible();\n });\n});\n\ntest.describe('Nested dropdowns 1/2', () => {\n function mountDropdown(\n mount: (selector: string) => Promise<ElementHandle<HTMLElement>>\n ) {\n return mount(html`\n <ix-button id=\"trigger-dropdown-1\">Trigger 1</ix-button>\n <ix-dropdown id=\"dropdown-1\" trigger=\"trigger-dropdown-1\">\n <ix-dropdown-item id=\"trigger-dropdown-2\">Item 1</ix-dropdown-item>\n <ix-dropdown-item>Item 2</ix-dropdown-item>\n <ix-dropdown-item id=\"trigger-dropdown-3\">Item 3</ix-dropdown-item>\n </ix-dropdown>\n\n <ix-dropdown trigger=\"trigger-dropdown-2\" id=\"dropdown-2\">\n <ix-dropdown-item>Item 1.1</ix-dropdown-item>\n <ix-dropdown-item>Item 1.2</ix-dropdown-item>\n <ix-dropdown-item>Item 1.3</ix-dropdown-item>\n </ix-dropdown>\n\n <ix-dropdown trigger=\"trigger-dropdown-3\" id=\"dropdown-3\">\n <ix-dropdown-item>Item 3.1</ix-dropdown-item>\n <ix-dropdown-item>Item 3.2</ix-dropdown-item>\n <ix-dropdown-item id=\"trigger-dropdown-4\">Item 3.3</ix-dropdown-item>\n </ix-dropdown>\n\n <ix-dropdown trigger=\"trigger-dropdown-4\" id=\"dropdown-4\">\n <ix-dropdown-item>Item 3.3.1</ix-dropdown-item>\n <ix-dropdown-item>Item 3.3.2</ix-dropdown-item>\n <ix-dropdown-item>Item 3.3.3</ix-dropdown-item>\n </ix-dropdown>\n\n <ix-button id=\"trigger-dropdown-5\">Trigger 5</ix-button>\n <ix-dropdown id=\"dropdown-5\" trigger=\"trigger-dropdown-5\">\n <ix-dropdown-item>Item 1</ix-dropdown-item>\n <ix-dropdown-item>Item 2</ix-dropdown-item>\n <ix-dropdown-item id=\"trigger-dropdown-6\">Item 3</ix-dropdown-item>\n </ix-dropdown>\n\n <ix-dropdown id=\"dropdown-6\" trigger=\"trigger-dropdown-6\">\n <ix-dropdown-item>Item 1</ix-dropdown-item>\n <ix-dropdown-item>Item 2</ix-dropdown-item>\n <ix-dropdown-item>Item 3</ix-dropdown-item>\n </ix-dropdown>\n `);\n }\n\n let triggerDropdown1: Locator;\n let triggerDropdown2: Locator;\n let triggerDropdown3: Locator;\n let triggerDropdown4: Locator;\n let triggerDropdown5: Locator;\n\n let dropdown1: Locator;\n let dropdown2: Locator;\n let dropdown3: Locator;\n let dropdown4: Locator;\n let dropdown5: Locator;\n\n function setupTest(page: Page) {\n triggerDropdown1 = page.locator('#trigger-dropdown-1');\n triggerDropdown2 = page.locator('#trigger-dropdown-2');\n triggerDropdown3 = page.locator('#trigger-dropdown-3');\n triggerDropdown4 = page.locator('#trigger-dropdown-4');\n triggerDropdown5 = page.locator('#trigger-dropdown-5');\n\n dropdown1 = page.locator('#dropdown-1');\n dropdown2 = page.locator('#dropdown-2');\n dropdown3 = page.locator('#dropdown-3');\n dropdown4 = page.locator('#dropdown-4');\n dropdown5 = page.locator('#dropdown-5');\n }\n\n test('close neighbor sub menu', async ({ mount, page }) => {\n await mountDropdown(mount);\n setupTest(page);\n\n await triggerDropdown1.click();\n await expect(dropdown1).toBeVisible();\n\n await triggerDropdown3.click();\n await expect(dropdown3).toBeVisible();\n\n await triggerDropdown5.click();\n await expect(dropdown5).toBeVisible();\n await expect(dropdown1).not.toBeVisible();\n await expect(dropdown3).not.toBeVisible();\n });\n\n test('close assigned submenu', async ({ mount, page }) => {\n await mountDropdown(mount);\n\n setupTest(page);\n\n await triggerDropdown1.click();\n await expect(dropdown1).toBeVisible();\n\n await triggerDropdown2.click();\n await expect(dropdown2).toBeVisible();\n\n await triggerDropdown3.click();\n await expect(dropdown2).not.toBeVisible();\n await expect(dropdown3).toBeVisible();\n\n await triggerDropdown4.click();\n await expect(dropdown4).toBeVisible();\n\n await triggerDropdown3.click();\n await expect(dropdown3).not.toBeVisible();\n await expect(dropdown4).not.toBeVisible();\n });\n\n test('close by Escape', async ({ mount, page }) => {\n await mountDropdown(mount);\n\n setupTest(page);\n\n await triggerDropdown1.click();\n await expect(dropdown1).toBeVisible();\n\n await triggerDropdown2.click();\n await expect(dropdown2).toBeVisible();\n\n await triggerDropdown3.click();\n await expect(dropdown2).not.toBeVisible();\n await expect(dropdown3).toBeVisible();\n\n await triggerDropdown4.click();\n await expect(dropdown4).toBeVisible();\n\n await page.keyboard.press('Escape');\n\n await expect(dropdown1).not.toBeVisible();\n await expect(dropdown2).not.toBeVisible();\n await expect(dropdown3).not.toBeVisible();\n await expect(dropdown4).not.toBeVisible();\n });\n});\n\ntest.describe('nested dropdown 2/2', () => {\n const button1Text = 'Triggerbutton1';\n const button2Text = 'Triggerbutton2';\n\n test.beforeEach(async ({ mount }) => {\n await mount(`\n <button id=\"trigger1\">${button1Text}</button>\n <ix-dropdown trigger=\"trigger1\">\n <button id=\"trigger2\">${button2Text}</button>\n <ix-dropdown trigger=\"trigger2\">\n <ix-dropdown-item label=\"Item 1\"></ix-dropdown-item>\n </ix-dropdown>\n </ix-dropdown>\n `);\n });\n\n test('can open nested dropdown', async ({ page }) => {\n await page.getByText(button1Text).click();\n await page.getByText(button2Text).click();\n const nestedDropdownItem = page.locator('ix-dropdown-item');\n\n await expect(nestedDropdownItem).toHaveClass(/hydrated/);\n });\n});\n\ntest('Nested dropdowns within application-header', async ({ mount, page }) => {\n await mount(html`\n <ix-application-header>\n <ix-dropdown-button label=\"Trigger\">\n <ix-dropdown-item label=\"MainItem 1\"></ix-dropdown-item>\n <ix-dropdown-item label=\"MainItem 2\"></ix-dropdown-item>\n <ix-dropdown-item label=\"MainItem 3\" id=\"submenu-01\"></ix-dropdown-item>\n </ix-dropdown-button>\n </ix-application-header>\n <ix-dropdown id=\"submenu\" trigger=\"submenu-01\">\n <ix-dropdown-item>SubMenuItem 1</ix-dropdown-item>\n <ix-dropdown-item>SubMenuItem 2</ix-dropdown-item>\n <ix-dropdown-item>SubMenuItem 3</ix-dropdown-item>\n <ix-dropdown-item>SubMenuItem 4</ix-dropdown-item>\n </ix-dropdown>\n `);\n await page.setViewportSize(viewPorts.sm);\n await page.waitForTimeout(500);\n\n const header = page.locator('ix-application-header');\n await expect(header).toBeVisible();\n\n const overflowTrigger = header.getByRole('button', { name: 'More Menu' });\n await overflowTrigger.click();\n\n const dropdownButton = header.locator('ix-dropdown-button');\n await dropdownButton.locator('ix-button').click();\n\n const dropdownOfDropdownButton = dropdownButton.locator('ix-dropdown');\n await expect(dropdownOfDropdownButton).toBeVisible();\n\n const submenuTrigger = page\n .locator('ix-dropdown-item')\n .getByText('MainItem 3');\n await expect(submenuTrigger).toBeVisible();\n await submenuTrigger.click();\n\n const submenuDropdown = page.locator('#submenu');\n\n await expect(submenuDropdown).toBeVisible();\n\n const subMenuItem = submenuDropdown\n .locator('ix-dropdown-item')\n .getByText('SubMenuItem 3');\n\n await subMenuItem.click();\n\n await expect(submenuDropdown).not.toBeVisible();\n await expect(dropdownOfDropdownButton).not.toBeVisible();\n});\n"]}
1
+ {"version":3,"file":"dropdown.ct.js","sourceRoot":"","sources":["../../../../src/components/dropdown/test/dropdown.ct.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;GAOG;AACH,OAAO,EAAiB,MAAM,EAAiB,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC;AAExB,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;IACxC,MAAM,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BX,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEnD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAE3C,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAE7C,MAAM,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;IAEpD,MAAM,iBAAiB,CACrB,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,EAClD,CAAC,CACF,CAAC;IAEF,MAAM,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;IAEpD,MAAM,iBAAiB,CACrB,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,EAClD,CAAC,CACF,CAAC;IAEF,MAAM,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;IAE3C,MAAM,iBAAiB,CACrB,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,EAClD,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,SAAS,iBAAiB,CAAC,QAAmB,EAAE,KAAa;IAC3D,OAAO,OAAO,CAAC,GAAG,CAChB,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;QAChC,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;YAChB,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;QACd,CAAC;QACD,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;IACzB,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;IAChD,MAAM,KAAK,CAAC;;;;;GAKX,CAAC,CAAC;IAEH,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAChD,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAErC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7C,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;AAC3C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IACnC,SAAS,aAAa,CACpB,KAAgE,EAChE,MAEC;QAED,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa;YACxC,CAAC,CAAC,mBAAmB,MAAM,CAAC,aAAa,GAAG;YAC5C,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO,KAAK,CAAC;;6DAE4C,aAAa;;;;;GAKvE,CAAC,CAAC;IACH,CAAC;IAED,IAAI,aAAsB,CAAC;IAC3B,IAAI,cAAuB,CAAC;IAE5B,IAAI,oBAA6B,CAAC;IAElC,SAAS,SAAS,CAAC,IAAU;QAC3B,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACzC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAEnD,oBAAoB,GAAG,cAAc;aAClC,OAAO,CAAC,kBAAkB,CAAC;aAC3B,SAAS,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;QACxC,MAAM,aAAa,CAAC,KAAK,EAAE;YACzB,aAAa,EAAE,MAAM;SACtB,CAAC,CAAC;QAEH,SAAS,CAAC,IAAI,CAAC,CAAC;QAEhB,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACjC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAE/C,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;QAE3C,MAAM,oBAAoB,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;QAC1C,MAAM,aAAa,CAAC,KAAK,EAAE;YACzB,aAAa,EAAE,QAAQ;SACxB,CAAC,CAAC;QAEH,SAAS,CAAC,IAAI,CAAC,CAAC;QAEhB,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACjC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;QAE3C,MAAM,oBAAoB,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;QAC3C,MAAM,aAAa,CAAC,KAAK,EAAE;YACzB,aAAa,EAAE,SAAS;SACzB,CAAC,CAAC;QAEH,SAAS,CAAC,IAAI,CAAC,CAAC;QAEhB,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACjC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAE/C,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;QAE3C,MAAM,oBAAoB,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;QACzC,MAAM,aAAa,CAAC,KAAK,EAAE;YACzB,yBAAyB;YACzB,aAAa,EAAE,KAAK;SACrB,CAAC,CAAC;QAEH,2FAA2F;QAC3F,MAAM,IAAI;aACP,OAAO,CAAC,aAAa,CAAC;aACtB,QAAQ,CAAC,CAAC,QAAa,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC;QAEjE,SAAS,CAAC,IAAI,CAAC,CAAC;QAEhB,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACjC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;QAE3C,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAE/C,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;QAE3C,MAAM,oBAAoB,CAAC,KAAK,CAAC;YAC/B,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACzC,SAAS,aAAa,CACpB,KAAgE,EAChE,MAEC;;QAED,OAAO,KAAK,CAAC,IAAI,CAAA;;;0BAGK,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,mCAAI,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuCpD,CAAC,CAAC;IACL,CAAC;IAED,IAAI,gBAAyB,CAAC;IAC9B,IAAI,gBAAyB,CAAC;IAC9B,IAAI,gBAAyB,CAAC;IAC9B,IAAI,gBAAyB,CAAC;IAC9B,IAAI,gBAAyB,CAAC;IAE9B,IAAI,SAAkB,CAAC;IACvB,IAAI,SAAkB,CAAC;IACvB,IAAI,SAAkB,CAAC;IACvB,IAAI,SAAkB,CAAC;IACvB,IAAI,SAAkB,CAAC;IAEvB,SAAS,SAAS,CAAC,IAAU;QAC3B,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACvD,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACvD,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACvD,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACvD,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAEvD,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACxC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACxC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACxC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACxC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,CAAC,yBAAyB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;QACxD,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3B,SAAS,CAAC,IAAI,CAAC,CAAC;QAEhB,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAEtC,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAEtC,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wBAAwB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;QACvD,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;QAE3B,SAAS,CAAC,IAAI,CAAC,CAAC;QAEhB,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAEtC,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAEtC,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAEtC,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAEtC,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;QACxD,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;YACxC,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;YAE3B,SAAS,CAAC,IAAI,CAAC,CAAC;YAEhB,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAEtC,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAEtC,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAEtC,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAEtC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEpC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;YAC1C,MAAM,aAAa,CAAC,KAAK,EAAE;gBACzB,aAAa,EAAE,QAAQ;aACxB,CAAC,CAAC;YAEH,SAAS,CAAC,IAAI,CAAC,CAAC;YAEhB,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAEtC,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAEtC,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAEtC,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAEtC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEpC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;YAC3C,MAAM,aAAa,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;YAEzD,SAAS,CAAC,IAAI,CAAC,CAAC;YAEhB,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAEtC,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAEtC,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAEtC,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAEtC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEpC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;YACzC,MAAM,aAAa,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;YAErD,SAAS,CAAC,IAAI,CAAC,CAAC;YAEhB,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAEtC,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAEtC,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAEtC,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAEtC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEpC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACxC,MAAM,WAAW,GAAG,gBAAgB,CAAC;IACrC,MAAM,WAAW,GAAG,gBAAgB,CAAC;IAErC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAClC,MAAM,KAAK,CAAC;8BACc,WAAW;;gCAET,WAAW;;;;;KAKtC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,0BAA0B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAClD,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1C,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1C,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAE5D,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACxC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAClC,MAAM,KAAK,CAAC;;;;;;;;;;;;KAYX,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+BAA+B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACvD,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAC7D,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAE7D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAE9C,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAE/B,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4CAA4C,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;IAC3E,MAAM,KAAK,CAAC,IAAI,CAAA;;;;;;;;;;;;;;GAcf,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAE/B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACrD,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IAEnC,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IAC1E,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC;IAE9B,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC5D,MAAM,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;IAElD,MAAM,wBAAwB,GAAG,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACvE,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC,WAAW,EAAE,CAAC;IAErD,MAAM,cAAc,GAAG,IAAI;SACxB,OAAO,CAAC,kBAAkB,CAAC;SAC3B,SAAS,CAAC,YAAY,CAAC,CAAC;IAC3B,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC;IAE7B,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAEjD,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;IAE5C,MAAM,WAAW,GAAG,eAAe;SAChC,OAAO,CAAC,kBAAkB,CAAC;SAC3B,SAAS,CAAC,eAAe,CAAC,CAAC;IAE9B,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;IAE1B,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IAChD,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;AAC3D,CAAC,CAAC,CAAC","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { ElementHandle, expect, Locator, Page } from '@playwright/test';\nimport { test, viewPorts } from '@utils/test';\n\nconst html = String.raw;\n\ntest('renders', async ({ mount, page }) => {\n await mount(`\n <ix-split-button label=\"Test 1\">\n <ix-dropdown-item>Test 1</ix-dropdown-item>\n </ix-split-button>\n\n <ix-split-button label=\"Test 2\">\n <ix-dropdown-item>Test 1</ix-dropdown-item>\n </ix-split-button>\n\n <ix-group header=\"Title\" sub-header=\"Subtitle\">\n <ix-dropdown slot=\"dropdown\">\n <ix-dropdown-item label=\"Item 1\" icon=\"pin\" />\n <ix-dropdown-item label=\"Item 2\" icon=\"star\" />\n <ix-dropdown-item label=\"Item 3\" icon=\"heart\" />\n <ix-dropdown-item label=\"Item 4\" icon=\"cogwheel\" />\n </ix-dropdown>\n </ix-group>\n\n <ix-group header=\"Title\" sub-header=\"Subtitle\">\n <ix-dropdown slot=\"dropdown\">\n <ix-dropdown-item label=\"Item 1\" icon=\"pin\" />\n <ix-dropdown-item label=\"Item 2\" icon=\"star\" />\n <ix-dropdown-item label=\"Item 3\" icon=\"heart\" />\n <ix-dropdown-item label=\"Item 4\" icon=\"cogwheel\" />\n </ix-dropdown>\n </ix-group>\n `);\n\n const sb1 = page.locator('ix-split-button').nth(0);\n const sb2 = page.locator('ix-split-button').nth(1);\n\n const g1 = page.locator('ix-group').nth(0);\n const g2 = page.locator('ix-group').nth(1);\n\n const sb1Dropdown = sb1.locator('ix-dropdown');\n const sb2Dropdown = sb2.locator('ix-dropdown');\n const g1Dropdown = g1.locator('ix-dropdown');\n const g2Dropdown = g2.locator('ix-dropdown');\n\n await sb1.locator('ix-icon-button').first().click();\n\n await expectToBeVisible(\n [sb1Dropdown, sb2Dropdown, g1Dropdown, g2Dropdown],\n 0\n );\n\n await sb2.locator('ix-icon-button').first().click();\n\n await expectToBeVisible(\n [sb1Dropdown, sb2Dropdown, g1Dropdown, g2Dropdown],\n 1\n );\n\n await g2.locator('ix-icon-button').click();\n\n await expectToBeVisible(\n [sb1Dropdown, sb2Dropdown, g1Dropdown, g2Dropdown],\n 3\n );\n});\n\nfunction expectToBeVisible(elements: Locator[], index: number) {\n return Promise.all(\n elements.map(async (element, i) => {\n let ef = expect(element);\n if (i !== index) {\n ef = ef.not;\n }\n await ef.toBeVisible();\n })\n );\n}\n\ntest('trigger toggles', async ({ mount, page }) => {\n await mount(`<ix-button id=\"trigger\">Open</ix-button>\n <ix-dropdown trigger=\"trigger\" trigger-toggles=\"true\">\n <ix-dropdown-item label=\"Item 1\"></ix-dropdown-item>\n <ix-dropdown-item label=\"Item 2\"></ix-dropdown-item>\n </ix-dropdown>\n `);\n\n await page.locator('ix-button').click();\n const dropdown = page.locator('.dropdown-menu');\n await expect(dropdown).toHaveClass(/show/);\n await expect(dropdown).toBeVisible();\n\n await page.locator('ix-button').click();\n const after = page.locator('.dropdown-menu');\n await expect(after).not.toHaveClass(/show/);\n await expect(dropdown).not.toBeVisible();\n});\n\ntest.describe('Close behavior', () => {\n function mountDropdown(\n mount: (selector: string) => Promise<ElementHandle<HTMLElement>>,\n config: {\n closeBehavior: string | boolean;\n }\n ) {\n const closeBehavior = config.closeBehavior\n ? `close-behavior=\"${config.closeBehavior}\"`\n : '';\n\n return mount(`\n <ix-button id=\"level-1\">Trigger</ix-button>\n <ix-dropdown id=\"dropdown-level-1\" trigger=\"level-1\" ${closeBehavior}>\n <ix-dropdown-item>Item 1</ix-dropdown-item>\n <ix-dropdown-item>Item 2</ix-dropdown-item>\n <ix-dropdown-item>Item 3</ix-dropdown-item>\n </ix-dropdown>\n `);\n }\n\n let triggerButton: Locator;\n let dropdownLevel1: Locator;\n\n let dropdownLevel1_Item1: Locator;\n\n function setupTest(page: Page) {\n triggerButton = page.locator('#level-1');\n dropdownLevel1 = page.locator('#dropdown-level-1');\n\n dropdownLevel1_Item1 = dropdownLevel1\n .locator('ix-dropdown-item')\n .getByText('Item 1');\n }\n\n test(' = both', async ({ mount, page }) => {\n await mountDropdown(mount, {\n closeBehavior: 'both',\n });\n\n setupTest(page);\n\n await triggerButton.click();\n await expect(dropdownLevel1).toBeVisible();\n\n await page.mouse.click(400, 200);\n await expect(dropdownLevel1).not.toBeVisible();\n\n await triggerButton.click();\n await expect(dropdownLevel1).toBeVisible();\n\n await dropdownLevel1_Item1.click();\n await expect(dropdownLevel1).not.toBeVisible();\n });\n\n test(' = inside', async ({ mount, page }) => {\n await mountDropdown(mount, {\n closeBehavior: 'inside',\n });\n\n setupTest(page);\n\n await triggerButton.click();\n await expect(dropdownLevel1).toBeVisible();\n\n await page.mouse.click(400, 200);\n await expect(dropdownLevel1).toBeVisible();\n\n await dropdownLevel1_Item1.click();\n await expect(dropdownLevel1).not.toBeVisible();\n });\n\n test(' = outside', async ({ mount, page }) => {\n await mountDropdown(mount, {\n closeBehavior: 'outside',\n });\n\n setupTest(page);\n\n await triggerButton.click();\n await expect(dropdownLevel1).toBeVisible();\n\n await page.mouse.click(400, 200);\n await expect(dropdownLevel1).not.toBeVisible();\n\n await triggerButton.click();\n await expect(dropdownLevel1).toBeVisible();\n\n await dropdownLevel1_Item1.click();\n await expect(dropdownLevel1).toBeVisible();\n });\n\n test(' = false', async ({ mount, page }) => {\n await mountDropdown(mount, {\n // Disable close behavior\n closeBehavior: false,\n });\n\n // Have to be provided via javascript, otherwise the component parse the value as a string.\n await page\n .locator('ix-dropdown')\n .evaluate((dropdown: any) => (dropdown.closeBehavior = false));\n\n setupTest(page);\n\n await triggerButton.click();\n await expect(dropdownLevel1).toBeVisible();\n\n await page.mouse.click(400, 200);\n await expect(dropdownLevel1).toBeVisible();\n\n await triggerButton.click();\n await expect(dropdownLevel1).not.toBeVisible();\n\n await triggerButton.click();\n await expect(dropdownLevel1).toBeVisible();\n\n await dropdownLevel1_Item1.click({\n force: true,\n });\n await expect(dropdownLevel1).toBeVisible();\n });\n});\n\ntest.describe('Nested dropdowns 1/3', () => {\n function mountDropdown(\n mount: (selector: string) => Promise<ElementHandle<HTMLElement>>,\n config?: {\n closeBehavior: string | boolean;\n }\n ) {\n return mount(html`\n <ix-button id=\"trigger-dropdown-1\">Trigger 1</ix-button>\n <ix-dropdown\n close-behavior=\"${config?.closeBehavior ?? 'both'}\"\n id=\"dropdown-1\"\n trigger=\"trigger-dropdown-1\"\n >\n <ix-dropdown-item id=\"trigger-dropdown-2\">Item 1</ix-dropdown-item>\n <ix-dropdown-item>Item 2</ix-dropdown-item>\n <ix-dropdown-item id=\"trigger-dropdown-3\">Item 3</ix-dropdown-item>\n </ix-dropdown>\n\n <ix-dropdown trigger=\"trigger-dropdown-2\" id=\"dropdown-2\">\n <ix-dropdown-item>Item 1.1</ix-dropdown-item>\n <ix-dropdown-item>Item 1.2</ix-dropdown-item>\n <ix-dropdown-item>Item 1.3</ix-dropdown-item>\n </ix-dropdown>\n\n <ix-dropdown trigger=\"trigger-dropdown-3\" id=\"dropdown-3\">\n <ix-dropdown-item>Item 3.1</ix-dropdown-item>\n <ix-dropdown-item>Item 3.2</ix-dropdown-item>\n <ix-dropdown-item id=\"trigger-dropdown-4\">Item 3.3</ix-dropdown-item>\n </ix-dropdown>\n\n <ix-dropdown trigger=\"trigger-dropdown-4\" id=\"dropdown-4\">\n <ix-dropdown-item>Item 3.3.1</ix-dropdown-item>\n <ix-dropdown-item>Item 3.3.2</ix-dropdown-item>\n <ix-dropdown-item>Item 3.3.3</ix-dropdown-item>\n </ix-dropdown>\n\n <ix-button id=\"trigger-dropdown-5\">Trigger 5</ix-button>\n <ix-dropdown id=\"dropdown-5\" trigger=\"trigger-dropdown-5\">\n <ix-dropdown-item>Item 1</ix-dropdown-item>\n <ix-dropdown-item>Item 2</ix-dropdown-item>\n <ix-dropdown-item id=\"trigger-dropdown-6\">Item 3</ix-dropdown-item>\n </ix-dropdown>\n\n <ix-dropdown id=\"dropdown-6\" trigger=\"trigger-dropdown-6\">\n <ix-dropdown-item>Item 1</ix-dropdown-item>\n <ix-dropdown-item>Item 2</ix-dropdown-item>\n <ix-dropdown-item>Item 3</ix-dropdown-item>\n </ix-dropdown>\n `);\n }\n\n let triggerDropdown1: Locator;\n let triggerDropdown2: Locator;\n let triggerDropdown3: Locator;\n let triggerDropdown4: Locator;\n let triggerDropdown5: Locator;\n\n let dropdown1: Locator;\n let dropdown2: Locator;\n let dropdown3: Locator;\n let dropdown4: Locator;\n let dropdown5: Locator;\n\n function setupTest(page: Page) {\n triggerDropdown1 = page.locator('#trigger-dropdown-1');\n triggerDropdown2 = page.locator('#trigger-dropdown-2');\n triggerDropdown3 = page.locator('#trigger-dropdown-3');\n triggerDropdown4 = page.locator('#trigger-dropdown-4');\n triggerDropdown5 = page.locator('#trigger-dropdown-5');\n\n dropdown1 = page.locator('#dropdown-1');\n dropdown2 = page.locator('#dropdown-2');\n dropdown3 = page.locator('#dropdown-3');\n dropdown4 = page.locator('#dropdown-4');\n dropdown5 = page.locator('#dropdown-5');\n }\n\n test('close neighbor sub menu', async ({ mount, page }) => {\n await mountDropdown(mount);\n setupTest(page);\n\n await triggerDropdown1.click();\n await expect(dropdown1).toBeVisible();\n\n await triggerDropdown3.click();\n await expect(dropdown3).toBeVisible();\n\n await triggerDropdown5.click();\n await expect(dropdown5).toBeVisible();\n await expect(dropdown1).not.toBeVisible();\n await expect(dropdown3).not.toBeVisible();\n });\n\n test('close assigned submenu', async ({ mount, page }) => {\n await mountDropdown(mount);\n\n setupTest(page);\n\n await triggerDropdown1.click();\n await expect(dropdown1).toBeVisible();\n\n await triggerDropdown2.click();\n await expect(dropdown2).toBeVisible();\n\n await triggerDropdown3.click();\n await expect(dropdown2).not.toBeVisible();\n await expect(dropdown3).toBeVisible();\n\n await triggerDropdown4.click();\n await expect(dropdown4).toBeVisible();\n\n await triggerDropdown3.click();\n await expect(dropdown3).not.toBeVisible();\n await expect(dropdown4).not.toBeVisible();\n });\n\n test.describe('close by Escape with close behavior', () => {\n test(' = both', async ({ mount, page }) => {\n await mountDropdown(mount);\n\n setupTest(page);\n\n await triggerDropdown1.click();\n await expect(dropdown1).toBeVisible();\n\n await triggerDropdown2.click();\n await expect(dropdown2).toBeVisible();\n\n await triggerDropdown3.click();\n await expect(dropdown2).not.toBeVisible();\n await expect(dropdown3).toBeVisible();\n\n await triggerDropdown4.click();\n await expect(dropdown4).toBeVisible();\n\n await page.keyboard.press('Escape');\n\n await expect(dropdown1).not.toBeVisible();\n await expect(dropdown2).not.toBeVisible();\n await expect(dropdown3).not.toBeVisible();\n await expect(dropdown4).not.toBeVisible();\n });\n\n test(' = inside', async ({ mount, page }) => {\n await mountDropdown(mount, {\n closeBehavior: 'inside',\n });\n\n setupTest(page);\n\n await triggerDropdown1.click();\n await expect(dropdown1).toBeVisible();\n\n await triggerDropdown2.click();\n await expect(dropdown2).toBeVisible();\n\n await triggerDropdown3.click();\n await expect(dropdown2).not.toBeVisible();\n await expect(dropdown3).toBeVisible();\n\n await triggerDropdown4.click();\n await expect(dropdown4).toBeVisible();\n\n await page.keyboard.press('Escape');\n\n await expect(dropdown1).not.toBeVisible();\n await expect(dropdown2).not.toBeVisible();\n await expect(dropdown3).not.toBeVisible();\n await expect(dropdown4).not.toBeVisible();\n });\n\n test(' = outside', async ({ mount, page }) => {\n await mountDropdown(mount, { closeBehavior: 'outside' });\n\n setupTest(page);\n\n await triggerDropdown1.click();\n await expect(dropdown1).toBeVisible();\n\n await triggerDropdown2.click();\n await expect(dropdown2).toBeVisible();\n\n await triggerDropdown3.click();\n await expect(dropdown2).not.toBeVisible();\n await expect(dropdown3).toBeVisible();\n\n await triggerDropdown4.click();\n await expect(dropdown4).toBeVisible();\n\n await page.keyboard.press('Escape');\n\n await expect(dropdown1).not.toBeVisible();\n await expect(dropdown2).not.toBeVisible();\n await expect(dropdown3).not.toBeVisible();\n await expect(dropdown4).not.toBeVisible();\n });\n\n test(' = false', async ({ mount, page }) => {\n await mountDropdown(mount, { closeBehavior: false });\n\n setupTest(page);\n\n await triggerDropdown1.click();\n await expect(dropdown1).toBeVisible();\n\n await triggerDropdown2.click();\n await expect(dropdown2).toBeVisible();\n\n await triggerDropdown3.click();\n await expect(dropdown2).not.toBeVisible();\n await expect(dropdown3).toBeVisible();\n\n await triggerDropdown4.click();\n await expect(dropdown4).toBeVisible();\n\n await page.keyboard.press('Escape');\n\n await expect(dropdown1).not.toBeVisible();\n await expect(dropdown2).not.toBeVisible();\n await expect(dropdown3).not.toBeVisible();\n await expect(dropdown4).not.toBeVisible();\n });\n });\n});\n\ntest.describe('nested dropdown 2/3', () => {\n const button1Text = 'Triggerbutton1';\n const button2Text = 'Triggerbutton2';\n\n test.beforeEach(async ({ mount }) => {\n await mount(`\n <button id=\"trigger1\">${button1Text}</button>\n <ix-dropdown trigger=\"trigger1\">\n <button id=\"trigger2\">${button2Text}</button>\n <ix-dropdown trigger=\"trigger2\">\n <ix-dropdown-item label=\"Item 1\"></ix-dropdown-item>\n </ix-dropdown>\n </ix-dropdown>\n `);\n });\n\n test('can open nested dropdown', async ({ page }) => {\n await page.getByText(button1Text).click();\n await page.getByText(button2Text).click();\n const nestedDropdownItem = page.locator('ix-dropdown-item');\n\n await expect(nestedDropdownItem).toHaveClass(/hydrated/);\n });\n});\n\ntest.describe('nested dropdown 3/3', () => {\n test.beforeEach(async ({ mount }) => {\n await mount(`\n <ix-button id=\"trigger-dropdown-1\">Trigger 1</ix-button>\n <ix-dropdown id=\"dropdown-1\" close-behavior=\"outside\" trigger=\"trigger-dropdown-1\">\n <ix-dropdown-item id=\"trigger-dropdown-2\">Item 1</ix-dropdown-item>\n <ix-dropdown-item>Item 2</ix-dropdown-item>\n </ix-dropdown>\n\n <ix-dropdown trigger=\"trigger-dropdown-2\" id=\"dropdown-2\" close-behavior=\"inside\">\n <ix-dropdown-item>Item 1.1</ix-dropdown-item>\n <ix-dropdown-item>Item 1.2</ix-dropdown-item>\n <ix-dropdown-item>Item 1.3</ix-dropdown-item>\n </ix-dropdown>\n `);\n });\n\n test('close child on parent dismiss', async ({ page }) => {\n const triggerDropdown1 = page.locator('#trigger-dropdown-1');\n const triggerDropdown2 = page.locator('#trigger-dropdown-2');\n\n const dropdown1 = page.locator('#dropdown-1');\n const dropdown2 = page.locator('#dropdown-2');\n\n await triggerDropdown1.click();\n await triggerDropdown2.click();\n await triggerDropdown1.click();\n\n await expect(dropdown1).not.toBeVisible();\n await expect(dropdown2).not.toBeVisible();\n });\n});\n\ntest('Nested dropdowns within application-header', async ({ mount, page }) => {\n await mount(html`\n <ix-application-header>\n <ix-dropdown-button label=\"Trigger\">\n <ix-dropdown-item label=\"MainItem 1\"></ix-dropdown-item>\n <ix-dropdown-item label=\"MainItem 2\"></ix-dropdown-item>\n <ix-dropdown-item label=\"MainItem 3\" id=\"submenu-01\"></ix-dropdown-item>\n </ix-dropdown-button>\n </ix-application-header>\n <ix-dropdown id=\"submenu\" trigger=\"submenu-01\">\n <ix-dropdown-item>SubMenuItem 1</ix-dropdown-item>\n <ix-dropdown-item>SubMenuItem 2</ix-dropdown-item>\n <ix-dropdown-item>SubMenuItem 3</ix-dropdown-item>\n <ix-dropdown-item>SubMenuItem 4</ix-dropdown-item>\n </ix-dropdown>\n `);\n await page.setViewportSize(viewPorts.sm);\n await page.waitForTimeout(500);\n\n const header = page.locator('ix-application-header');\n await expect(header).toBeVisible();\n\n const overflowTrigger = header.getByRole('button', { name: 'More Menu' });\n await overflowTrigger.click();\n\n const dropdownButton = header.locator('ix-dropdown-button');\n await dropdownButton.locator('ix-button').click();\n\n const dropdownOfDropdownButton = dropdownButton.locator('ix-dropdown');\n await expect(dropdownOfDropdownButton).toBeVisible();\n\n const submenuTrigger = page\n .locator('ix-dropdown-item')\n .getByText('MainItem 3');\n await expect(submenuTrigger).toBeVisible();\n await submenuTrigger.click();\n\n const submenuDropdown = page.locator('#submenu');\n\n await expect(submenuDropdown).toBeVisible();\n\n const subMenuItem = submenuDropdown\n .locator('ix-dropdown-item')\n .getByText('SubMenuItem 3');\n\n await subMenuItem.click();\n\n await expect(submenuDropdown).not.toBeVisible();\n await expect(dropdownOfDropdownButton).not.toBeVisible();\n});\n"]}
@@ -18,60 +18,4 @@
18
18
  }
19
19
  :host ix-card-content {
20
20
  height: 11rem;
21
- }
22
-
23
- :host(:hover) ix-card.card-insight:hover {
24
- --ix-card-background: var(--theme-color-ghost--hover);
25
- }
26
- :host(:hover) ix-card.card-notification:hover {
27
- --ix-card-background: var(--theme-color-component-1--hover);
28
- }
29
- :host(:hover) ix-card.card-alarm:hover {
30
- --ix-card-background: var(--theme-color-alarm--hover);
31
- }
32
- :host(:hover) ix-card.card-critical:hover {
33
- --ix-card-background: var(--theme-color-critical--hover);
34
- }
35
- :host(:hover) ix-card.card-warning:hover {
36
- --ix-card-background: var(--theme-color-warning--hover);
37
- }
38
- :host(:hover) ix-card.card-success:hover {
39
- --ix-card-background: var(--theme-color-success--hover);
40
- }
41
- :host(:hover) ix-card.card-info:hover {
42
- --ix-card-background: var(--theme-color-info--hover);
43
- }
44
- :host(:hover) ix-card.card-neutral:hover {
45
- --ix-card-background: var(--theme-color-neutral--hover);
46
- }
47
- :host(:hover) ix-card.card-primary:hover {
48
- --ix-card-background: var(--theme-color-primary--hover);
49
- }
50
-
51
- :host(:active) ix-card.card-insight:active {
52
- --ix-card-background: var(--theme-color-ghost--active);
53
- }
54
- :host(:active) ix-card.card-notification:active {
55
- --ix-card-background: var(--theme-color-component-1--active);
56
- }
57
- :host(:active) ix-card.card-alarm:active {
58
- --ix-card-background: var(--theme-color-alarm--active);
59
- }
60
- :host(:active) ix-card.card-critical:active {
61
- --ix-card-background: var(--theme-color-critical--active);
62
- }
63
- :host(:active) ix-card.card-warning:active {
64
- --ix-card-background: var(--theme-color-warning--active);
65
- }
66
- :host(:active) ix-card.card-success:active {
67
- --ix-card-background: var(--theme-color-success--active);
68
- }
69
- :host(:active) ix-card.card-info:active {
70
- --ix-card-background: var(--theme-color-info--active);
71
- }
72
- :host(:active) ix-card.card-neutral:active {
73
- --ix-card-background: var(--theme-color-neutral--active);
74
- }
75
- :host(:active) ix-card.card-primary:active {
76
- --ix-card-background: var(--theme-color-primary--active);
77
21
  }
@@ -0,0 +1,23 @@
1
+ /*
2
+ * SPDX-FileCopyrightText: 2023 Siemens AG
3
+ *
4
+ * SPDX-License-Identifier: MIT
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+ import { expect } from "@playwright/test";
10
+ import { regressionTest } from "../utils/test/index";
11
+ regressionTest.describe('card: basic', () => {
12
+ regressionTest('should not have visual regressions', async ({ page }) => {
13
+ await page.goto('card/basic');
14
+ await page.waitForTimeout(1000);
15
+ expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();
16
+ });
17
+ regressionTest('should have selected state', async ({ page }) => {
18
+ await page.goto('card/selected');
19
+ await page.waitForTimeout(1000);
20
+ expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();
21
+ });
22
+ });
23
+ //# sourceMappingURL=card.e2e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.e2e.js","sourceRoot":"","sources":["../../../src/tests/card/card.e2e.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,cAAc,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC1C,cAAc,CAAC,oCAAoC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACtE,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9B,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAEhC,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,cAAc,CAAC,4BAA4B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAC9D,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { expect } from '@playwright/test';\nimport { regressionTest } from '@utils/test';\n\nregressionTest.describe('card: basic', () => {\n regressionTest('should not have visual regressions', async ({ page }) => {\n await page.goto('card/basic');\n await page.waitForTimeout(1000);\n\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n\n regressionTest('should have selected state', async ({ page }) => {\n await page.goto('card/selected');\n await page.waitForTimeout(1000);\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n});\n"]}
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-38dea61d.js';
2
2
 
3
- const actionCardCss = ":host{display:block;position:relative;min-width:13.375rem;width:13.375rem;height:7.5rem;min-height:7.5rem;cursor:pointer;margin:0.25rem 0}:host *,:host *::after,:host *::before{box-sizing:border-box}:host ::-webkit-scrollbar-button{display:none}:host ::-webkit-scrollbar{width:0.5rem;height:0.5rem}:host ::-webkit-scrollbar-track{border-radius:5px;background:var(--theme-scrollbar-track--background)}:host ::-webkit-scrollbar-track:hover{background:var(--theme-scrollbar-track--background--hover)}:host ::-webkit-scrollbar-thumb{border-radius:5px;background:var(--theme-scrollbar-thumb--background)}:host ::-webkit-scrollbar-thumb:hover{background:var(--theme-scrollbar-thumb--background--hover)}:host ::-webkit-scrollbar-corner{display:none}:host ix-card{width:100%;height:100%}:host ix-card.card-insight:hover{--ix-card-background:var(--theme-color-ghost--hover)}:host ix-card.card-insight:active{--ix-card-background:var(--theme-color-ghost--active)}:host ix-card.card-notification:hover{--ix-card-background:var(--theme-color-component-1--hover)}:host ix-card.card-notification:active{--ix-card-background:var(--theme-color-component-1--active)}:host ix-card.card-alarm:hover{--ix-card-background:var(--theme-color-alarm--hover)}:host ix-card.card-alarm:active{--ix-card-background:var(--theme-color-alarm--active)}:host ix-card.card-critical:hover{--ix-card-background:var(--theme-color-critical--hover)}:host ix-card.card-critical:active{--ix-card-background:var(--theme-color-critical--active)}:host ix-card.card-warning:hover{--ix-card-background:var(--theme-color-warning--hover)}:host ix-card.card-warning:active{--ix-card-background:var(--theme-color-warning--active)}:host ix-card.card-success:hover{--ix-card-background:var(--theme-color-success--hover)}:host ix-card.card-success:active{--ix-card-background:var(--theme-color-success--active)}:host ix-card.card-info:hover{--ix-card-background:var(--theme-color-info--hover)}:host ix-card.card-info:active{--ix-card-background:var(--theme-color-info--active)}:host ix-card.card-neutral:hover{--ix-card-background:var(--theme-color-neutral--hover)}:host ix-card.card-neutral:active{--ix-card-background:var(--theme-color-neutral--active)}:host ix-card.card-primary:hover{--ix-card-background:var(--theme-color-primary--hover)}:host ix-card.card-primary:active{--ix-card-background:var(--theme-color-primary--active)}:host(:hover) ix-card.card-insight:hover{--ix-card-background:var(--theme-color-ghost--hover)}:host(:hover) ix-card.card-notification:hover{--ix-card-background:var(--theme-color-component-1--hover)}:host(:hover) ix-card.card-alarm:hover{--ix-card-background:var(--theme-color-alarm--hover)}:host(:hover) ix-card.card-critical:hover{--ix-card-background:var(--theme-color-critical--hover)}:host(:hover) ix-card.card-warning:hover{--ix-card-background:var(--theme-color-warning--hover)}:host(:hover) ix-card.card-success:hover{--ix-card-background:var(--theme-color-success--hover)}:host(:hover) ix-card.card-info:hover{--ix-card-background:var(--theme-color-info--hover)}:host(:hover) ix-card.card-neutral:hover{--ix-card-background:var(--theme-color-neutral--hover)}:host(:hover) ix-card.card-primary:hover{--ix-card-background:var(--theme-color-primary--hover)}:host(:active) ix-card.card-insight:active{--ix-card-background:var(--theme-color-ghost--active)}:host(:active) ix-card.card-notification:active{--ix-card-background:var(--theme-color-component-1--active)}:host(:active) ix-card.card-alarm:active{--ix-card-background:var(--theme-color-alarm--active)}:host(:active) ix-card.card-critical:active{--ix-card-background:var(--theme-color-critical--active)}:host(:active) ix-card.card-warning:active{--ix-card-background:var(--theme-color-warning--active)}:host(:active) ix-card.card-success:active{--ix-card-background:var(--theme-color-success--active)}:host(:active) ix-card.card-info:active{--ix-card-background:var(--theme-color-info--active)}:host(:active) ix-card.card-neutral:active{--ix-card-background:var(--theme-color-neutral--active)}:host(:active) ix-card.card-primary:active{--ix-card-background:var(--theme-color-primary--active)}:host(.selected) ix-card{--ix-card-border-color:var(--theme-color-dynamic)}:host(.selected) ix-card.card-insight{--ix-card-background:var(--theme-color-ghost--selected)}:host(.selected) ix-card.card-notification{--ix-card-background:var(--theme-color-ghost--selected)}:host(.selected) ix-card.card-alarm{--ix-card-background:var(--theme-color-alarm--active)}:host(.selected) ix-card.card-critical{--ix-card-background:var(--theme-color-critical--active)}:host(.selected) ix-card.card-warning{--ix-card-background:var(--theme-color-warning--active)}:host(.selected) ix-card.card-success{--ix-card-background:var(--theme-color-success--active)}:host(.selected) ix-card.card-info{--ix-card-background:var(--theme-color-info--active)}:host(.selected) ix-card.card-neutral{--ix-card-background:var(--theme-color-neutral--active)}:host(.selected) ix-card.card-primary{--ix-card-background:var(--theme-color-primary--active)}";
3
+ const actionCardCss = ":host{display:block;position:relative;min-width:13.375rem;width:13.375rem;height:7.5rem;min-height:7.5rem;cursor:pointer;margin:0.25rem 0}:host *,:host *::after,:host *::before{box-sizing:border-box}:host ::-webkit-scrollbar-button{display:none}:host ::-webkit-scrollbar{width:0.5rem;height:0.5rem}:host ::-webkit-scrollbar-track{border-radius:5px;background:var(--theme-scrollbar-track--background)}:host ::-webkit-scrollbar-track:hover{background:var(--theme-scrollbar-track--background--hover)}:host ::-webkit-scrollbar-thumb{border-radius:5px;background:var(--theme-scrollbar-thumb--background)}:host ::-webkit-scrollbar-thumb:hover{background:var(--theme-scrollbar-thumb--background--hover)}:host ::-webkit-scrollbar-corner{display:none}:host ix-card{width:100%;height:100%}";
4
4
  const IxActionCardStyle0 = actionCardCss;
5
5
 
6
6
  const IxActionCard = class {
@@ -13,9 +13,7 @@ const IxActionCard = class {
13
13
  this.selected = false;
14
14
  }
15
15
  render() {
16
- return (h(Host, { key: '3a788ab94d828d99ba24d7cb424d8ea2e06bf389', class: {
17
- selected: this.selected,
18
- } }, h("ix-card", { key: '9662f167e776640a16486a59390541ba7ec5c637', variant: this.variant, class: 'pointer' }, h("ix-card-content", { key: '49f97e5dd691c4b2be89767b1e6d8bd74b5daa9a' }, this.icon ? (h("ix-icon", { class: 'icon', name: this.icon, size: "24" })) : null, h("div", { key: 'f5e947a3c3f2cc4565a0040c0a33da3447099f3b' }, this.heading ? (h("ix-typography", { format: "h4" }, this.heading)) : null, this.subheading ? (h("ix-typography", { format: "h5", color: this.variant === 'insight' ? 'soft' : undefined }, this.subheading)) : null, h("slot", { key: 'ee0460a3e07e6497ccea98a0efcb7d009c5a4d64' }))))));
16
+ return (h(Host, { key: '42f95fd1de84746fcad8094b51909364a10dddb3' }, h("ix-card", { key: '9dfb5ad9782e314dc4751cf2dd1cceebea9f3eca', selected: this.selected, variant: this.variant, class: 'pointer' }, h("ix-card-content", { key: '29683fa1a1cc83dea13af3a26232f1b575788d3a' }, this.icon ? (h("ix-icon", { class: 'icon', name: this.icon, size: "24" })) : null, h("div", { key: '125ac2f8b62cc1512b0a7c9d687a3f0a85eca5c3' }, this.heading ? (h("ix-typography", { format: "h4" }, this.heading)) : null, this.subheading ? (h("ix-typography", { format: "h5", color: this.variant === 'insight' ? 'soft' : undefined }, this.subheading)) : null, h("slot", { key: '7b76ddd1c734a4b741022914695bdeb3af2c2988' }))))));
19
17
  }
20
18
  };
21
19
  IxActionCard.style = IxActionCardStyle0;
@@ -1 +1 @@
1
- {"file":"ix-action-card.entry.js","mappings":";;AAAA,MAAM,aAAa,GAAG,47JAA47J,CAAC;AACn9J,2BAAe,aAAa;;MCqBf,YAAY;;;uBAIc,SAAS;oBAKX,SAAS;;;wBAezB,KAAK;;IAExB,MAAM;QACJ,QACE,EAAC,IAAI,qDACH,KAAK,EAAE;gBACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,IAED,gEAAS,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,IAC9C,0EACG,IAAI,CAAC,IAAI,IACR,eAAS,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAC,IAAI,GAAW,IAC3D,IAAI,EACR,8DACG,IAAI,CAAC,OAAO,IACX,qBAAe,MAAM,EAAC,IAAI,IAAE,IAAI,CAAC,OAAO,CAAiB,IACvD,IAAI,EACP,IAAI,CAAC,UAAU,IACd,qBACE,MAAM,EAAC,IAAI,EACX,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,SAAS,GAAG,MAAM,GAAG,SAAS,IAErD,IAAI,CAAC,UAAU,CACF,IACd,IAAI,EACR,8DAAa,CACT,CACU,CACV,CACL,EACP;KACH;;;;;;","names":[],"sources":["src/components/action-card/action-card.scss?tag=ix-action-card&encapsulation=shadow","src/components/action-card/action-card.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n@import 'mixins/shadow-dom/component';\n\n:host {\n @include ix-component;\n display: block;\n position: relative;\n min-width: 13.375rem;\n width: 13.375rem;\n height: 7.5rem;\n min-height: 7.5rem;\n cursor: pointer;\n\n margin: 0.25rem 0;\n\n ix-card {\n width: 100%;\n height: 100%;\n }\n\n ix-card.card-insight:hover {\n --ix-card-background: var(--theme-color-ghost--hover);\n }\n\n ix-card.card-insight:active {\n --ix-card-background: var(--theme-color-ghost--active);\n }\n\n ix-card.card-notification:hover {\n --ix-card-background: var(--theme-color-component-1--hover);\n }\n\n ix-card.card-notification:active {\n --ix-card-background: var(--theme-color-component-1--active);\n }\n\n ix-card.card-alarm:hover {\n --ix-card-background: var(--theme-color-alarm--hover);\n }\n\n ix-card.card-alarm:active {\n --ix-card-background: var(--theme-color-alarm--active);\n }\n\n ix-card.card-critical:hover {\n --ix-card-background: var(--theme-color-critical--hover);\n }\n\n ix-card.card-critical:active {\n --ix-card-background: var(--theme-color-critical--active);\n }\n\n ix-card.card-warning:hover {\n --ix-card-background: var(--theme-color-warning--hover);\n }\n\n ix-card.card-warning:active {\n --ix-card-background: var(--theme-color-warning--active);\n }\n\n ix-card.card-success:hover {\n --ix-card-background: var(--theme-color-success--hover);\n }\n\n ix-card.card-success:active {\n --ix-card-background: var(--theme-color-success--active);\n }\n\n ix-card.card-info:hover {\n --ix-card-background: var(--theme-color-info--hover);\n }\n\n ix-card.card-info:active {\n --ix-card-background: var(--theme-color-info--active);\n }\n\n ix-card.card-neutral:hover {\n --ix-card-background: var(--theme-color-neutral--hover);\n }\n\n ix-card.card-neutral:active {\n --ix-card-background: var(--theme-color-neutral--active);\n }\n\n ix-card.card-primary:hover {\n --ix-card-background: var(--theme-color-primary--hover);\n }\n\n ix-card.card-primary:active {\n --ix-card-background: var(--theme-color-primary--active);\n }\n}\n\n:host(:hover) {\n ix-card.card-insight:hover {\n --ix-card-background: var(--theme-color-ghost--hover);\n }\n\n ix-card.card-notification:hover {\n --ix-card-background: var(--theme-color-component-1--hover);\n }\n\n ix-card.card-alarm:hover {\n --ix-card-background: var(--theme-color-alarm--hover);\n }\n\n ix-card.card-critical:hover {\n --ix-card-background: var(--theme-color-critical--hover);\n }\n\n ix-card.card-warning:hover {\n --ix-card-background: var(--theme-color-warning--hover);\n }\n\n ix-card.card-success:hover {\n --ix-card-background: var(--theme-color-success--hover);\n }\n\n ix-card.card-info:hover {\n --ix-card-background: var(--theme-color-info--hover);\n }\n\n ix-card.card-neutral:hover {\n --ix-card-background: var(--theme-color-neutral--hover);\n }\n\n ix-card.card-primary:hover {\n --ix-card-background: var(--theme-color-primary--hover);\n }\n}\n\n:host(:active) {\n ix-card.card-insight:active {\n --ix-card-background: var(--theme-color-ghost--active);\n }\n\n ix-card.card-notification:active {\n --ix-card-background: var(--theme-color-component-1--active);\n }\n\n ix-card.card-alarm:active {\n --ix-card-background: var(--theme-color-alarm--active);\n }\n\n ix-card.card-critical:active {\n --ix-card-background: var(--theme-color-critical--active);\n }\n\n ix-card.card-warning:active {\n --ix-card-background: var(--theme-color-warning--active);\n }\n\n ix-card.card-success:active {\n --ix-card-background: var(--theme-color-success--active);\n }\n\n ix-card.card-info:active {\n --ix-card-background: var(--theme-color-info--active);\n }\n\n ix-card.card-neutral:active {\n --ix-card-background: var(--theme-color-neutral--active);\n }\n\n ix-card.card-primary:active {\n --ix-card-background: var(--theme-color-primary--active);\n }\n}\n\n:host(.selected) {\n ix-card {\n --ix-card-border-color: var(--theme-color-dynamic);\n }\n\n ix-card.card-insight {\n --ix-card-background: var(--theme-color-ghost--selected);\n }\n\n ix-card.card-notification {\n --ix-card-background: var(--theme-color-ghost--selected);\n }\n\n ix-card.card-alarm {\n --ix-card-background: var(--theme-color-alarm--active);\n }\n\n ix-card.card-critical {\n --ix-card-background: var(--theme-color-critical--active);\n }\n\n ix-card.card-warning {\n --ix-card-background: var(--theme-color-warning--active);\n }\n\n ix-card.card-success {\n --ix-card-background: var(--theme-color-success--active);\n }\n\n ix-card.card-info {\n --ix-card-background: var(--theme-color-info--active);\n }\n\n ix-card.card-neutral {\n --ix-card-background: var(--theme-color-neutral--active);\n }\n\n ix-card.card-primary {\n --ix-card-background: var(--theme-color-primary--active);\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Component, h, Host, Prop } from '@stencil/core';\nimport { CardVariant } from '../card/card';\n\nexport type ActionCardVariant = CardVariant;\n\n/**\n * @since 1.6.0\n */\n@Component({\n tag: 'ix-action-card',\n styleUrl: 'action-card.scss',\n shadow: true,\n})\nexport class IxActionCard {\n /**\n * Card variant\n */\n @Prop() variant: ActionCardVariant = 'insight';\n\n /**\n * Card icon\n */\n @Prop() icon: string | undefined = undefined;\n\n /**\n * Card heading\n */\n @Prop() heading: string;\n\n /**\n * Card subheading\n */\n @Prop() subheading: string;\n\n /**\n * Card selection\n */\n @Prop() selected = false;\n\n render() {\n return (\n <Host\n class={{\n selected: this.selected,\n }}\n >\n <ix-card variant={this.variant} class={'pointer'}>\n <ix-card-content>\n {this.icon ? (\n <ix-icon class={'icon'} name={this.icon} size=\"24\"></ix-icon>\n ) : null}\n <div>\n {this.heading ? (\n <ix-typography format=\"h4\">{this.heading}</ix-typography>\n ) : null}\n {this.subheading ? (\n <ix-typography\n format=\"h5\"\n color={this.variant === 'insight' ? 'soft' : undefined}\n >\n {this.subheading}\n </ix-typography>\n ) : null}\n <slot></slot>\n </div>\n </ix-card-content>\n </ix-card>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"ix-action-card.entry.js","mappings":";;AAAA,MAAM,aAAa,GAAG,6wBAA6wB,CAAC;AACpyB,2BAAe,aAAa;;MCqBf,YAAY;;;uBAIc,SAAS;oBAKX,SAAS;;;wBAezB,KAAK;;IAExB,MAAM;QACJ,QACE,EAAC,IAAI,uDACH,gEACE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,KAAK,EAAE,SAAS,IAEhB,0EACG,IAAI,CAAC,IAAI,IACR,eAAS,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAC,IAAI,GAAW,IAC3D,IAAI,EACR,8DACG,IAAI,CAAC,OAAO,IACX,qBAAe,MAAM,EAAC,IAAI,IAAE,IAAI,CAAC,OAAO,CAAiB,IACvD,IAAI,EACP,IAAI,CAAC,UAAU,IACd,qBACE,MAAM,EAAC,IAAI,EACX,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,SAAS,GAAG,MAAM,GAAG,SAAS,IAErD,IAAI,CAAC,UAAU,CACF,IACd,IAAI,EACR,8DAAa,CACT,CACU,CACV,CACL,EACP;KACH;;;;;;","names":[],"sources":["src/components/action-card/action-card.scss?tag=ix-action-card&encapsulation=shadow","src/components/action-card/action-card.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n@import 'mixins/shadow-dom/component';\n\n:host {\n @include ix-component;\n display: block;\n position: relative;\n min-width: 13.375rem;\n width: 13.375rem;\n height: 7.5rem;\n min-height: 7.5rem;\n cursor: pointer;\n\n margin: 0.25rem 0;\n\n ix-card {\n width: 100%;\n height: 100%;\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Component, h, Host, Prop } from '@stencil/core';\nimport { CardVariant } from '../card/card';\n\nexport type ActionCardVariant = CardVariant;\n\n/**\n * @since 1.6.0\n */\n@Component({\n tag: 'ix-action-card',\n styleUrl: 'action-card.scss',\n shadow: true,\n})\nexport class IxActionCard {\n /**\n * Card variant\n */\n @Prop() variant: ActionCardVariant = 'insight';\n\n /**\n * Card icon\n */\n @Prop() icon: string | undefined = undefined;\n\n /**\n * Card heading\n */\n @Prop() heading: string;\n\n /**\n * Card subheading\n */\n @Prop() subheading: string;\n\n /**\n * Card selection\n */\n @Prop() selected = false;\n\n render() {\n return (\n <Host>\n <ix-card\n selected={this.selected}\n variant={this.variant}\n class={'pointer'}\n >\n <ix-card-content>\n {this.icon ? (\n <ix-icon class={'icon'} name={this.icon} size=\"24\"></ix-icon>\n ) : null}\n <div>\n {this.heading ? (\n <ix-typography format=\"h4\">{this.heading}</ix-typography>\n ) : null}\n {this.subheading ? (\n <ix-typography\n format=\"h5\"\n color={this.variant === 'insight' ? 'soft' : undefined}\n >\n {this.subheading}\n </ix-typography>\n ) : null}\n <slot></slot>\n </div>\n </ix-card-content>\n </ix-card>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,15 +1,19 @@
1
1
  import { r as registerInstance, h, H as Host, g as getElement } from './index-38dea61d.js';
2
2
 
3
- const cardCss = ":host{display:flex;position:relative;flex-direction:column;align-items:flex-start;align-self:flex-start;overflow:hidden;width:20rem;border:1px solid var(--ix-card-border-color, var(--theme-color-soft-bdr));border-radius:var(--theme-default-border-radius)}:host *,:host *::after,:host *::before{box-sizing:border-box}:host ::-webkit-scrollbar-button{display:none}:host ::-webkit-scrollbar{width:0.5rem;height:0.5rem}:host ::-webkit-scrollbar-track{border-radius:5px;background:var(--theme-scrollbar-track--background)}:host ::-webkit-scrollbar-track:hover{background:var(--theme-scrollbar-track--background--hover)}:host ::-webkit-scrollbar-thumb{border-radius:5px;background:var(--theme-scrollbar-thumb--background)}:host ::-webkit-scrollbar-thumb:hover{background:var(--theme-scrollbar-thumb--background--hover)}:host ::-webkit-scrollbar-corner{display:none}:host .card-content{display:block;position:relative;flex-shrink:0;flex-grow:1;width:100%;height:calc(100% - 2rem);background-color:var(--ix-card-background, transparent);border-top-left-radius:var(--theme-default-border-radius);border-top-right-radius:var(--theme-default-border-radius)}:host .card-footer{display:flex;position:relative;width:100%}:host(.card-insight){--ix-card-background:transparent;--ix-card-border-color:var(--theme-color-soft-bdr)}:host(.card-notification){--ix-card-background:var(--theme-color-component-1)}:host(.card-alarm){--ix-card-background:var(--theme-color-alarm);color:var(--theme-color-alarm--contrast)}:host(.card-critical){--ix-card-background:var(--theme-color-critical);color:var(--theme-color-critical--contrast)}:host(.card-warning){--ix-card-background:var(--theme-color-warning);color:var(--theme-color-warning--contrast)}:host(.card-success){--ix-card-background:var(--theme-color-success);color:var(--theme-color-success--contrast)}:host(.card-info){--ix-card-background:var(--theme-color-info);color:var(--theme-color-info--contrast)}:host(.card-neutral){--ix-card-background:var(--theme-color-neutral);color:var(--theme-color-neutral--contrast)}:host(.card-primary){--ix-card-background:var(--theme-color-primary);color:var(--theme-color-neutral--contrast)}:host(:not(.card-insight)){--ix-card-border-color:transparent}";
3
+ const cardCss = ":host{display:flex;position:relative;flex-direction:column;align-items:flex-start;align-self:flex-start;overflow:hidden;width:20rem;border:1px solid var(--ix-card-border-color, var(--theme-color-soft-bdr));border-radius:var(--theme-default-border-radius)}:host *,:host *::after,:host *::before{box-sizing:border-box}:host ::-webkit-scrollbar-button{display:none}:host ::-webkit-scrollbar{width:0.5rem;height:0.5rem}:host ::-webkit-scrollbar-track{border-radius:5px;background:var(--theme-scrollbar-track--background)}:host ::-webkit-scrollbar-track:hover{background:var(--theme-scrollbar-track--background--hover)}:host ::-webkit-scrollbar-thumb{border-radius:5px;background:var(--theme-scrollbar-thumb--background)}:host ::-webkit-scrollbar-thumb:hover{background:var(--theme-scrollbar-thumb--background--hover)}:host ::-webkit-scrollbar-corner{display:none}:host .card-content{display:block;position:relative;flex-shrink:0;flex-grow:1;width:100%;height:calc(100% - 2rem);background-color:var(--ix-card-background, transparent);border-top-left-radius:var(--theme-default-border-radius);border-top-right-radius:var(--theme-default-border-radius)}:host .card-footer{display:flex;position:relative;width:100%}:host(.card-insight){--ix-card-background:transparent;--ix-card-border-color:var(--theme-color-soft-bdr)}:host(.card-notification){--ix-card-background:var(--theme-color-component-1)}:host(.card-alarm){--ix-card-background:var(--theme-color-alarm);color:var(--theme-color-alarm--contrast)}:host(.card-critical){--ix-card-background:var(--theme-color-critical);color:var(--theme-color-critical--contrast)}:host(.card-warning){--ix-card-background:var(--theme-color-warning);color:var(--theme-color-warning--contrast)}:host(.card-success){--ix-card-background:var(--theme-color-success);color:var(--theme-color-success--contrast)}:host(.card-info){--ix-card-background:var(--theme-color-info);color:var(--theme-color-info--contrast)}:host(.card-neutral){--ix-card-background:var(--theme-color-neutral);color:var(--theme-color-neutral--contrast)}:host(.card-primary){--ix-card-background:var(--theme-color-primary);color:var(--theme-color-neutral--contrast)}:host(:not(.card-insight)){--ix-card-border-color:transparent}:host(.card-insight:hover){--ix-card-background:var(--theme-color-ghost--hover)}:host(.card-notification:hover){--ix-card-background:var(--theme-color-component-1--hover)}:host(.card-alarm:hover){--ix-card-background:var(--theme-color-alarm--hover)}:host(.card-critical:hover){--ix-card-background:var(--theme-color-critical--hover)}:host(.card-warning:hover){--ix-card-background:var(--theme-color-warning--hover)}:host(.card-success:hover){--ix-card-background:var(--theme-color-success--hover)}:host(.card-info:hover){--ix-card-background:var(--theme-color-info--hover)}:host(.card-neutral:hover){--ix-card-background:var(--theme-color-neutral--hover)}:host(.card-primary:hover){--ix-card-background:var(--theme-color-primary--hover)}:host(.card-insight:active){--ix-card-background:var(--theme-color-ghost--active)}:host(.card-notification:active){--ix-card-background:var(--theme-color-component-1--active)}:host(.card-alarm:active){--ix-card-background:var(--theme-color-alarm--active)}:host(.card-critical:active){--ix-card-background:var(--theme-color-critical--active)}:host(.card-warning:active){--ix-card-background:var(--theme-color-warning--active)}:host(.card-success:active){--ix-card-background:var(--theme-color-success--active)}:host(.card-info:active){--ix-card-background:var(--theme-color-info--active)}:host(.card-neutral:active){--ix-card-background:var(--theme-color-neutral--active)}:host(.card-primary:active){--ix-card-background:var(--theme-color-primary--active)}:host(.selected){--ix-card-border-color:var(--theme-color-dynamic)}:host(.selected).card-insight{--ix-card-background:var(--theme-color-ghost--selected)}:host(.selected).card-notification{--ix-card-background:var(--theme-color-ghost--selected)}:host(.selected).card-alarm{--ix-card-background:var(--theme-color-alarm--active)}:host(.selected).card-critical{--ix-card-background:var(--theme-color-critical--active)}:host(.selected).card-warning{--ix-card-background:var(--theme-color-warning--active)}:host(.selected).card-success{--ix-card-background:var(--theme-color-success--active)}:host(.selected).card-info{--ix-card-background:var(--theme-color-info--active)}:host(.selected).card-neutral{--ix-card-background:var(--theme-color-neutral--active)}:host(.selected).card-primary{--ix-card-background:var(--theme-color-primary--active)}";
4
4
  const IxCardStyle0 = cardCss;
5
5
 
6
6
  const Card = class {
7
7
  constructor(hostRef) {
8
8
  registerInstance(this, hostRef);
9
9
  this.variant = 'insight';
10
+ this.selected = undefined;
10
11
  }
11
12
  render() {
12
- return (h(Host, { key: '1400295cbd52991dcd9a15240919b8c8a57f8543', class: `card-${this.variant}` }, h("div", { key: '4b98f1a17ea28c12790e88223a583d388576f213', class: "card-content" }, h("slot", { key: '79128897b09ee594e113ed03469f3c6bcf7e6420' })), h("div", { key: 'd0e80d0b216840d12edfb418b52d254f0b200bc7', class: "card-footer" }, h("slot", { key: 'a21cb2fe9942019cb238955fc65644b408e70e40', name: "card-accordion" }))));
13
+ return (h(Host, { key: 'f91df8c114ec01e95ae0eba29c8acf3cacbdec25', class: {
14
+ selected: this.selected,
15
+ [`card-${this.variant}`]: true,
16
+ } }, h("div", { key: '24c775b7ae7b2940df9e101b702b91a17a0f6749', class: "card-content" }, h("slot", { key: '57bfc8eb49985aae6aff8ea277475b2012ac8ba2' })), h("div", { key: '8eac7eefd8020827e0ebf38be231de2c7b934797', class: "card-footer" }, h("slot", { key: '207dc0b0ce6279ecb9dfda76e3d03a145a5ff168', name: "card-accordion" }))));
13
17
  }
14
18
  get hostElement() { return getElement(this); }
15
19
  };
@@ -1 +1 @@
1
- {"file":"ix-card.ix-card-content.entry.js","mappings":";;AAAA,MAAM,OAAO,GAAG,krEAAkrE,CAAC;AACnsE,qBAAe,OAAO;;MCoBT,IAAI;;;uBAMgB,SAAS;;IAExC,MAAM;QACJ,QACE,EAAC,IAAI,qDAAC,KAAK,EAAE,QAAQ,IAAI,CAAC,OAAO,EAAE,IACjC,4DAAK,KAAK,EAAC,cAAc,IACvB,8DAAa,CACT,EACN,4DAAK,KAAK,EAAC,aAAa,IACtB,6DAAM,IAAI,EAAC,gBAAgB,GAAQ,CAC/B,CACD,EACP;KACH;;;;;ACxCH,MAAM,cAAc,GAAG,otBAAotB,CAAC;AAC5uB,4BAAe,cAAc;;MCShB,WAAW;;;;IACtB,MAAM;QACJ,QACE,EAAC,IAAI,uDACH,8DAAa,CACR,EACP;KACH;;;;;;","names":[],"sources":["src/components/card/card.scss?tag=ix-card&encapsulation=shadow","src/components/card/card.tsx","src/components/card-content/card-content.scss?tag=ix-card-content&encapsulation=shadow","src/components/card-content/card-content.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n@import 'mixins/shadow-dom/component';\n\n:host {\n @include ix-component;\n display: flex;\n position: relative;\n flex-direction: column;\n align-items: flex-start;\n align-self: flex-start;\n overflow: hidden;\n\n width: 20rem;\n\n border: 1px solid var(--ix-card-border-color, var(--theme-color-soft-bdr));\n border-radius: var(--theme-default-border-radius);\n\n .card-content {\n display: block;\n position: relative;\n flex-shrink: 0;\n flex-grow: 1;\n width: 100%;\n height: calc(100% - 2rem);\n background-color: var(--ix-card-background, transparent);\n border-top-left-radius: var(--theme-default-border-radius);\n border-top-right-radius: var(--theme-default-border-radius);\n }\n\n .card-footer {\n display: flex;\n position: relative;\n width: 100%;\n }\n}\n\n:host(.card-insight) {\n --ix-card-background: transparent;\n --ix-card-border-color: var(--theme-color-soft-bdr);\n}\n\n:host(.card-notification) {\n --ix-card-background: var(--theme-color-component-1);\n}\n\n:host(.card-alarm) {\n --ix-card-background: var(--theme-color-alarm);\n color: var(--theme-color-alarm--contrast);\n}\n\n:host(.card-critical) {\n --ix-card-background: var(--theme-color-critical);\n color: var(--theme-color-critical--contrast);\n}\n\n:host(.card-warning) {\n --ix-card-background: var(--theme-color-warning);\n color: var(--theme-color-warning--contrast);\n}\n\n:host(.card-success) {\n --ix-card-background: var(--theme-color-success);\n color: var(--theme-color-success--contrast);\n}\n\n:host(.card-info) {\n --ix-card-background: var(--theme-color-info);\n color: var(--theme-color-info--contrast);\n}\n\n:host(.card-neutral) {\n --ix-card-background: var(--theme-color-neutral);\n color: var(--theme-color-neutral--contrast);\n}\n\n:host(.card-primary) {\n --ix-card-background: var(--theme-color-primary);\n color: var(--theme-color-neutral--contrast);\n}\n\n:host(:not(.card-insight)) {\n --ix-card-border-color: transparent;\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core';\n\nexport type CardVariant =\n | 'insight'\n | 'notification'\n | 'alarm'\n | 'critical'\n | 'warning'\n | 'info'\n | 'neutral'\n | 'success'\n | 'primary';\n\n/**\n * @since 1.6.0\n */\n@Component({\n tag: 'ix-card',\n styleUrl: 'card.scss',\n shadow: true,\n})\nexport class Card {\n @Element() hostElement: HTMLIxCardElement;\n\n /**\n * Card variant\n */\n @Prop() variant: CardVariant = 'insight';\n\n render() {\n return (\n <Host class={`card-${this.variant}`}>\n <div class=\"card-content\">\n <slot></slot>\n </div>\n <div class=\"card-footer\">\n <slot name=\"card-accordion\"></slot>\n </div>\n </Host>\n );\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n@import 'mixins/shadow-dom/component';\n\n:host {\n @include ix-component;\n\n display: flex;\n position: relative;\n flex-direction: column;\n align-items: flex-start;\n gap: 0.5rem;\n padding: 1rem;\n height: 100%;\n}\n","import { Component, h, Host } from '@stencil/core';\n\n/**\n * @since 1.6.0\n */\n@Component({\n tag: 'ix-card-content',\n styleUrl: 'card-content.scss',\n shadow: true,\n})\nexport class CardContent {\n render() {\n return (\n <Host>\n <slot></slot>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"ix-card.ix-card-content.entry.js","mappings":";;AAAA,MAAM,OAAO,GAAG,48IAA48I,CAAC;AAC79I,qBAAe,OAAO;;MCoBT,IAAI;;;uBAMgB,SAAS;;;IAOxC,MAAM;QACJ,QACE,EAAC,IAAI,qDACH,KAAK,EAAE;gBACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI;aAC/B,IAED,4DAAK,KAAK,EAAC,cAAc,IACvB,8DAAa,CACT,EACN,4DAAK,KAAK,EAAC,aAAa,IACtB,6DAAM,IAAI,EAAC,gBAAgB,GAAQ,CAC/B,CACD,EACP;KACH;;;;;AClDH,MAAM,cAAc,GAAG,otBAAotB,CAAC;AAC5uB,4BAAe,cAAc;;MCShB,WAAW;;;;IACtB,MAAM;QACJ,QACE,EAAC,IAAI,uDACH,8DAAa,CACR,EACP;KACH;;;;;;","names":[],"sources":["src/components/card/card.scss?tag=ix-card&encapsulation=shadow","src/components/card/card.tsx","src/components/card-content/card-content.scss?tag=ix-card-content&encapsulation=shadow","src/components/card-content/card-content.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n@import 'mixins/shadow-dom/component';\n\n:host {\n @include ix-component;\n display: flex;\n position: relative;\n flex-direction: column;\n align-items: flex-start;\n align-self: flex-start;\n overflow: hidden;\n\n width: 20rem;\n\n border: 1px solid var(--ix-card-border-color, var(--theme-color-soft-bdr));\n border-radius: var(--theme-default-border-radius);\n\n .card-content {\n display: block;\n position: relative;\n flex-shrink: 0;\n flex-grow: 1;\n width: 100%;\n height: calc(100% - 2rem);\n background-color: var(--ix-card-background, transparent);\n border-top-left-radius: var(--theme-default-border-radius);\n border-top-right-radius: var(--theme-default-border-radius);\n }\n\n .card-footer {\n display: flex;\n position: relative;\n width: 100%;\n }\n}\n\n:host(.card-insight) {\n --ix-card-background: transparent;\n --ix-card-border-color: var(--theme-color-soft-bdr);\n}\n\n:host(.card-notification) {\n --ix-card-background: var(--theme-color-component-1);\n}\n\n:host(.card-alarm) {\n --ix-card-background: var(--theme-color-alarm);\n color: var(--theme-color-alarm--contrast);\n}\n\n:host(.card-critical) {\n --ix-card-background: var(--theme-color-critical);\n color: var(--theme-color-critical--contrast);\n}\n\n:host(.card-warning) {\n --ix-card-background: var(--theme-color-warning);\n color: var(--theme-color-warning--contrast);\n}\n\n:host(.card-success) {\n --ix-card-background: var(--theme-color-success);\n color: var(--theme-color-success--contrast);\n}\n\n:host(.card-info) {\n --ix-card-background: var(--theme-color-info);\n color: var(--theme-color-info--contrast);\n}\n\n:host(.card-neutral) {\n --ix-card-background: var(--theme-color-neutral);\n color: var(--theme-color-neutral--contrast);\n}\n\n:host(.card-primary) {\n --ix-card-background: var(--theme-color-primary);\n color: var(--theme-color-neutral--contrast);\n}\n\n:host(:not(.card-insight)) {\n --ix-card-border-color: transparent;\n}\n\n// ### Hover ###\n\n:host(.card-insight:hover) {\n --ix-card-background: var(--theme-color-ghost--hover);\n}\n\n:host(.card-notification:hover) {\n --ix-card-background: var(--theme-color-component-1--hover);\n}\n\n:host(.card-alarm:hover) {\n --ix-card-background: var(--theme-color-alarm--hover);\n}\n\n:host(.card-critical:hover) {\n --ix-card-background: var(--theme-color-critical--hover);\n}\n\n:host(.card-warning:hover) {\n --ix-card-background: var(--theme-color-warning--hover);\n}\n\n:host(.card-success:hover) {\n --ix-card-background: var(--theme-color-success--hover);\n}\n\n:host(.card-info:hover) {\n --ix-card-background: var(--theme-color-info--hover);\n}\n\n:host(.card-neutral:hover) {\n --ix-card-background: var(--theme-color-neutral--hover);\n}\n\n:host(.card-primary:hover) {\n --ix-card-background: var(--theme-color-primary--hover);\n}\n\n// ### Active ###\n\n:host(.card-insight:active) {\n --ix-card-background: var(--theme-color-ghost--active);\n}\n\n:host(.card-notification:active) {\n --ix-card-background: var(--theme-color-component-1--active);\n}\n\n:host(.card-alarm:active) {\n --ix-card-background: var(--theme-color-alarm--active);\n}\n\n:host(.card-critical:active) {\n --ix-card-background: var(--theme-color-critical--active);\n}\n\n:host(.card-warning:active) {\n --ix-card-background: var(--theme-color-warning--active);\n}\n\n:host(.card-success:active) {\n --ix-card-background: var(--theme-color-success--active);\n}\n\n:host(.card-info:active) {\n --ix-card-background: var(--theme-color-info--active);\n}\n\n:host(.card-neutral:active) {\n --ix-card-background: var(--theme-color-neutral--active);\n}\n\n:host(.card-primary:active) {\n --ix-card-background: var(--theme-color-primary--active);\n}\n\n// ### Selected ###\n\n:host(.selected) {\n --ix-card-border-color: var(--theme-color-dynamic);\n\n &.card-insight {\n --ix-card-background: var(--theme-color-ghost--selected);\n }\n\n &.card-notification {\n --ix-card-background: var(--theme-color-ghost--selected);\n }\n\n &.card-alarm {\n --ix-card-background: var(--theme-color-alarm--active);\n }\n\n &.card-critical {\n --ix-card-background: var(--theme-color-critical--active);\n }\n\n &.card-warning {\n --ix-card-background: var(--theme-color-warning--active);\n }\n\n &.card-success {\n --ix-card-background: var(--theme-color-success--active);\n }\n\n &.card-info {\n --ix-card-background: var(--theme-color-info--active);\n }\n\n &.card-neutral {\n --ix-card-background: var(--theme-color-neutral--active);\n }\n\n &.card-primary {\n --ix-card-background: var(--theme-color-primary--active);\n }\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core';\n\nexport type CardVariant =\n | 'insight'\n | 'notification'\n | 'alarm'\n | 'critical'\n | 'warning'\n | 'info'\n | 'neutral'\n | 'success'\n | 'primary';\n\n/**\n * @since 1.6.0\n */\n@Component({\n tag: 'ix-card',\n styleUrl: 'card.scss',\n shadow: true,\n})\nexport class Card {\n @Element() hostElement: HTMLIxCardElement;\n\n /**\n * Card variant\n */\n @Prop() variant: CardVariant = 'insight';\n\n /**\n * @since 2.1.0\n */\n @Prop() selected: boolean;\n\n render() {\n return (\n <Host\n class={{\n selected: this.selected,\n [`card-${this.variant}`]: true,\n }}\n >\n <div class=\"card-content\">\n <slot></slot>\n </div>\n <div class=\"card-footer\">\n <slot name=\"card-accordion\"></slot>\n </div>\n </Host>\n );\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n@import 'mixins/shadow-dom/component';\n\n:host {\n @include ix-component;\n\n display: flex;\n position: relative;\n flex-direction: column;\n align-items: flex-start;\n gap: 0.5rem;\n padding: 1rem;\n height: 100%;\n}\n","import { Component, h, Host } from '@stencil/core';\n\n/**\n * @since 1.6.0\n */\n@Component({\n tag: 'ix-card-content',\n styleUrl: 'card-content.scss',\n shadow: true,\n})\nexport class CardContent {\n render() {\n return (\n <Host>\n <slot></slot>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -15,21 +15,21 @@ function hasDropdownItemWrapperImplemented(item) {
15
15
  }
16
16
  class DropdownController {
17
17
  constructor() {
18
- this.dropdowns = new Set();
19
- this.dropdownRules = {};
18
+ this.dropdowns = new Map();
19
+ this.submenuIds = {};
20
20
  this.isWindowListenerActive = false;
21
21
  }
22
22
  connected(dropdown) {
23
23
  if (!this.isWindowListenerActive) {
24
24
  this.addOverlayListeners();
25
25
  }
26
- this.dropdowns.add(dropdown);
26
+ this.dropdowns.set(dropdown.getId(), dropdown);
27
27
  if (dropdown.discoverAllSubmenus) {
28
28
  this.discoverSubmenus();
29
29
  }
30
30
  }
31
31
  disconnected(dropdown) {
32
- this.dropdowns.delete(dropdown);
32
+ this.dropdowns.delete(dropdown.getId());
33
33
  }
34
34
  discoverSubmenus() {
35
35
  this.dropdowns.forEach((dropdown) => {
@@ -37,44 +37,57 @@ class DropdownController {
37
37
  });
38
38
  }
39
39
  present(dropdown) {
40
- this.dropdownRules[dropdown.getId()] = dropdown.getAssignedSubmenuIds();
41
40
  if (!dropdown.isPresent() && dropdown.willPresent()) {
41
+ this.submenuIds[dropdown.getId()] = dropdown.getAssignedSubmenuIds();
42
42
  dropdown.present();
43
- this.dismissPath(dropdown.getId());
43
+ }
44
+ }
45
+ dismissChildren(uid) {
46
+ const childIds = this.submenuIds[uid] || [];
47
+ for (const id of childIds) {
48
+ this.dismiss(this.dropdowns.get(id));
44
49
  }
45
50
  }
46
51
  dismiss(dropdown) {
47
52
  if (dropdown.isPresent() && dropdown.willDismiss()) {
53
+ this.dismissChildren(dropdown.getId());
48
54
  dropdown.dismiss();
49
- delete this.dropdownRules[dropdown.getId()];
55
+ delete this.submenuIds[dropdown.getId()];
50
56
  }
51
57
  }
52
- dismissAll() {
53
- for (const dropdown of this.dropdowns) {
54
- if (dropdown.closeBehavior === 'inside' ||
55
- dropdown.closeBehavior === false) {
56
- continue;
58
+ dismissAll(includeUids) {
59
+ this.dropdowns.forEach((dropdown) => {
60
+ if (!(includeUids === null || includeUids === void 0 ? void 0 : includeUids.includes(dropdown.getId())) &&
61
+ (dropdown.closeBehavior === 'inside' ||
62
+ dropdown.closeBehavior === false)) {
63
+ return;
57
64
  }
58
65
  this.dismiss(dropdown);
59
- }
66
+ });
60
67
  }
61
- dismissPath(uid) {
68
+ dismissOthers(uid) {
62
69
  let path = this.buildComposedPath(uid, new Set());
63
- for (const dropdown of this.dropdowns) {
70
+ this.dropdowns.forEach((dropdown) => {
64
71
  if (dropdown.isPresent() &&
65
72
  dropdown.closeBehavior !== 'inside' &&
66
73
  dropdown.closeBehavior !== false &&
67
74
  !path.has(dropdown.getId())) {
68
75
  this.dismiss(dropdown);
69
76
  }
70
- }
77
+ });
78
+ }
79
+ pathIncludesTrigger(eventTargets) {
80
+ return !!eventTargets.find((element) => { var _a; return !!((_a = element.hasAttribute) === null || _a === void 0 ? void 0 : _a.call(element, 'data-ix-dropdown-trigger')); });
81
+ }
82
+ pathIncludesDropdown(eventTargets) {
83
+ return !!eventTargets.find((element) => element.tagName === 'IX-DROPDOWN');
71
84
  }
72
85
  buildComposedPath(id, path) {
73
- if (this.dropdownRules[id]) {
86
+ if (this.submenuIds[id]) {
74
87
  path.add(id);
75
88
  }
76
- for (const ruleKey of Object.keys(this.dropdownRules)) {
77
- if (this.dropdownRules[ruleKey].includes(id)) {
89
+ for (const ruleKey of Object.keys(this.submenuIds)) {
90
+ if (this.submenuIds[ruleKey].includes(id)) {
78
91
  this.buildComposedPath(ruleKey, path).forEach((key) => path.add(key));
79
92
  }
80
93
  }
@@ -82,12 +95,16 @@ class DropdownController {
82
95
  }
83
96
  addOverlayListeners() {
84
97
  this.isWindowListenerActive = true;
85
- window.addEventListener('click', () => {
86
- this.dismissAll();
98
+ window.addEventListener('click', (event) => {
99
+ const hasTrigger = this.pathIncludesTrigger(event.composedPath());
100
+ const hasDropdown = this.pathIncludesDropdown(event.composedPath());
101
+ if (!hasTrigger && !hasDropdown) {
102
+ this.dismissAll();
103
+ }
87
104
  });
88
105
  window.addEventListener('keydown', (event) => {
89
106
  if (event.key === 'Escape') {
90
- this.dismissAll();
107
+ this.dismissAll([...this.dropdowns.keys()]);
91
108
  }
92
109
  });
93
110
  }
@@ -174,25 +191,18 @@ const Dropdown = class {
174
191
  addEventListenersFor() {
175
192
  var _a;
176
193
  (_a = this.disposeListener) === null || _a === void 0 ? void 0 : _a.call(this);
177
- const stopEventDispatching = (event) => {
178
- // Prevent default and stop event bubbling to window, otherwise controller will close all dropdowns
179
- if (this.triggerElement.hasAttribute('data-ix-dropdown-trigger')) {
180
- event.preventDefault();
181
- event.stopPropagation();
182
- }
183
- };
184
194
  const toggleController = () => {
185
195
  if (!this.isPresent()) {
186
196
  dropdownController.present(this);
187
197
  }
188
198
  else {
189
199
  dropdownController.dismiss(this);
190
- dropdownController.dismissPath(this.getId());
191
200
  }
201
+ dropdownController.dismissOthers(this.getId());
192
202
  };
193
203
  this.disposeListener = addDisposableEventListener(this.triggerElement, 'click', (event) => {
194
- stopEventDispatching(event);
195
- toggleController();
204
+ if (!event.defaultPrevented)
205
+ toggleController();
196
206
  });
197
207
  this.triggerElement.setAttribute('data-ix-dropdown-trigger', this.localUId);
198
208
  }
@@ -327,15 +337,6 @@ const Dropdown = class {
327
337
  }
328
338
  async componentDidLoad() {
329
339
  this.changedTrigger(this.trigger);
330
- // Event listener to check if a dropdown is inside another dropdown
331
- // Cancellation of the event will prevent the closing of the parent dropdown
332
- this.hostElement.addEventListener('check-nested-dropdown', (event) => {
333
- if (event.detail === this.localUId) {
334
- return;
335
- }
336
- event.preventDefault();
337
- event.stopPropagation();
338
- });
339
340
  }
340
341
  async componentDidRender() {
341
342
  await this.applyDropdownPosition();
@@ -343,13 +344,20 @@ const Dropdown = class {
343
344
  ? this.resolveElement(this.anchor)
344
345
  : this.resolveElement(this.trigger));
345
346
  }
347
+ isTriggerElement(element) {
348
+ const trigger = !!element.hasAttribute('data-ix-dropdown-trigger');
349
+ return trigger;
350
+ }
346
351
  onDropdownClick(event) {
347
- event.preventDefault();
348
- event.stopPropagation();
352
+ if (dropdownController.pathIncludesTrigger(event.composedPath())) {
353
+ event.preventDefault();
354
+ if (this.isTriggerElement(event.target))
355
+ return;
356
+ }
349
357
  if (this.closeBehavior === 'inside' || this.closeBehavior === 'both') {
350
- dropdownController.dismiss(this);
351
- dropdownController.dismissAll();
358
+ dropdownController.dismissAll([this.getId()]);
352
359
  }
360
+ dropdownController.dismissOthers(this.getId());
353
361
  }
354
362
  /**
355
363
  * Update position of dropdown
@@ -358,7 +366,7 @@ const Dropdown = class {
358
366
  this.applyDropdownPosition();
359
367
  }
360
368
  render() {
361
- return (h(Host, { key: '8fb927fe57c7b259118d9a89a034313d0c07098d', "data-ix-dropdown": this.localUId, ref: (ref) => (this.dropdownRef = ref), class: {
369
+ return (h(Host, { key: '6747db1bc7c303781400a3ede0635fc84a32d61b', "data-ix-dropdown": this.localUId, ref: (ref) => (this.dropdownRef = ref), class: {
362
370
  'dropdown-menu': true,
363
371
  show: this.show,
364
372
  overflow: true,
@@ -366,7 +374,7 @@ const Dropdown = class {
366
374
  margin: '0',
367
375
  minWidth: '0px',
368
376
  position: this.positioningStrategy,
369
- }, role: "list", onClick: (event) => this.onDropdownClick(event) }, h("div", { key: '11d80d65c56162887bb134987b24a054c882e65a', style: { display: 'contents' } }, this.header && h("div", { class: "dropdown-header" }, this.header), h("slot", { key: '3046a97cbf32535f78be7256c1f747e708c1ed9c' }))));
377
+ }, role: "list", onClick: (event) => this.onDropdownClick(event) }, h("div", { key: '3407be8208d5fb220b80744afb9a5aa938b4b658', style: { display: 'contents' } }, this.header && h("div", { class: "dropdown-header" }, this.header), h("slot", { key: '48df3c460330d7ef698b1624d93ad548e95902d0' }))));
370
378
  }
371
379
  get hostElement() { return getElement(this); }
372
380
  static get watchers() { return {