@siemens/ix 0.0.0-pr-1974-20250627115746 → 0.0.0-pr-1974-20250627142646

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 (158) hide show
  1. package/package.json +2 -2
  2. package/dist/collection/components/application-header/test/application-header.ct.js +0 -389
  3. package/dist/collection/components/application-header/test/application-header.ct.js.map +0 -1
  4. package/dist/collection/components/avatar/test/avatar.ct.js +0 -85
  5. package/dist/collection/components/avatar/test/avatar.ct.js.map +0 -1
  6. package/dist/collection/components/blind/test/blind.ct.js +0 -16
  7. package/dist/collection/components/blind/test/blind.ct.js.map +0 -1
  8. package/dist/collection/components/breadcrumb/test/breadcrumb.ct.js +0 -98
  9. package/dist/collection/components/breadcrumb/test/breadcrumb.ct.js.map +0 -1
  10. package/dist/collection/components/button/test/button.ct.js +0 -153
  11. package/dist/collection/components/button/test/button.ct.js.map +0 -1
  12. package/dist/collection/components/category-filter/test/category-filter.ct.js +0 -62
  13. package/dist/collection/components/category-filter/test/category-filter.ct.js.map +0 -1
  14. package/dist/collection/components/checkbox/tests/checkbox.ct.js +0 -86
  15. package/dist/collection/components/checkbox/tests/checkbox.ct.js.map +0 -1
  16. package/dist/collection/components/checkbox-group/test/checkbox-group.ct.js +0 -48
  17. package/dist/collection/components/checkbox-group/test/checkbox-group.ct.js.map +0 -1
  18. package/dist/collection/components/chip/test/chip.ct.js +0 -76
  19. package/dist/collection/components/chip/test/chip.ct.js.map +0 -1
  20. package/dist/collection/components/custom-field/tests/custom-field.ct.js +0 -68
  21. package/dist/collection/components/custom-field/tests/custom-field.ct.js.map +0 -1
  22. package/dist/collection/components/date-dropdown/test/date-dropdown.ct.js +0 -215
  23. package/dist/collection/components/date-dropdown/test/date-dropdown.ct.js.map +0 -1
  24. package/dist/collection/components/date-input/tests/date-input.ct.js +0 -117
  25. package/dist/collection/components/date-input/tests/date-input.ct.js.map +0 -1
  26. package/dist/collection/components/date-picker/test/date-picker.ct.js +0 -221
  27. package/dist/collection/components/date-picker/test/date-picker.ct.js.map +0 -1
  28. package/dist/collection/components/datetime-picker/test/datetime-picker.ct.js +0 -55
  29. package/dist/collection/components/datetime-picker/test/datetime-picker.ct.js.map +0 -1
  30. package/dist/collection/components/drawer/test/drawer.ct.js +0 -67
  31. package/dist/collection/components/drawer/test/drawer.ct.js.map +0 -1
  32. package/dist/collection/components/dropdown/test/dropdown.ct.js +0 -624
  33. package/dist/collection/components/dropdown/test/dropdown.ct.js.map +0 -1
  34. package/dist/collection/components/dropdown-button/dropdown-button.ct.js +0 -51
  35. package/dist/collection/components/dropdown-button/dropdown-button.ct.js.map +0 -1
  36. package/dist/collection/components/event-list/test/event-list.ct.js +0 -88
  37. package/dist/collection/components/event-list/test/event-list.ct.js.map +0 -1
  38. package/dist/collection/components/expanding-search/test/expanding-search.ct.js +0 -56
  39. package/dist/collection/components/expanding-search/test/expanding-search.ct.js.map +0 -1
  40. package/dist/collection/components/field-label/tests/field-label.ct.js +0 -121
  41. package/dist/collection/components/field-label/tests/field-label.ct.js.map +0 -1
  42. package/dist/collection/components/field-wrapper/tests/field-wrapper.ct.js +0 -63
  43. package/dist/collection/components/field-wrapper/tests/field-wrapper.ct.js.map +0 -1
  44. package/dist/collection/components/flip-tile/test/flip-tile.ct.js +0 -89
  45. package/dist/collection/components/flip-tile/test/flip-tile.ct.js.map +0 -1
  46. package/dist/collection/components/group/test/group.ct.js +0 -115
  47. package/dist/collection/components/group/test/group.ct.js.map +0 -1
  48. package/dist/collection/components/icon-button/test/icon-button.ct.js +0 -30
  49. package/dist/collection/components/icon-button/test/icon-button.ct.js.map +0 -1
  50. package/dist/collection/components/input/tests/form-ready.ct.js +0 -73
  51. package/dist/collection/components/input/tests/form-ready.ct.js.map +0 -1
  52. package/dist/collection/components/input/tests/validation.ct.js +0 -84
  53. package/dist/collection/components/input/tests/validation.ct.js.map +0 -1
  54. package/dist/collection/components/input-group/tests/input-group.ct.js +0 -161
  55. package/dist/collection/components/input-group/tests/input-group.ct.js.map +0 -1
  56. package/dist/collection/components/menu/test/menu.ct.js +0 -256
  57. package/dist/collection/components/menu/test/menu.ct.js.map +0 -1
  58. package/dist/collection/components/menu-about/test/menu-about.ct.js +0 -65
  59. package/dist/collection/components/menu-about/test/menu-about.ct.js.map +0 -1
  60. package/dist/collection/components/menu-avatar-item/test/menu-avatar-item.ct.js +0 -47
  61. package/dist/collection/components/menu-avatar-item/test/menu-avatar-item.ct.js.map +0 -1
  62. package/dist/collection/components/menu-category/test/menu-category.ct.js +0 -274
  63. package/dist/collection/components/menu-category/test/menu-category.ct.js.map +0 -1
  64. package/dist/collection/components/menu-item/test/menu-item.ct.js +0 -67
  65. package/dist/collection/components/menu-item/test/menu-item.ct.js.map +0 -1
  66. package/dist/collection/components/menu-settings/test/menu-settings.ct.js +0 -32
  67. package/dist/collection/components/menu-settings/test/menu-settings.ct.js.map +0 -1
  68. package/dist/collection/components/message-bar/test/message-bar.ct.js +0 -28
  69. package/dist/collection/components/message-bar/test/message-bar.ct.js.map +0 -1
  70. package/dist/collection/components/modal/test/modal.ct.js +0 -204
  71. package/dist/collection/components/modal/test/modal.ct.js.map +0 -1
  72. package/dist/collection/components/pagination/test/pagination.ct.js +0 -68
  73. package/dist/collection/components/pagination/test/pagination.ct.js.map +0 -1
  74. package/dist/collection/components/pane/test/panes.ct.js +0 -59
  75. package/dist/collection/components/pane/test/panes.ct.js.map +0 -1
  76. package/dist/collection/components/pane-layout/test/pane-layout.ct.js +0 -60
  77. package/dist/collection/components/pane-layout/test/pane-layout.ct.js.map +0 -1
  78. package/dist/collection/components/pill/test/pill.ct.js +0 -63
  79. package/dist/collection/components/pill/test/pill.ct.js.map +0 -1
  80. package/dist/collection/components/radio/test/radio.ct.js +0 -77
  81. package/dist/collection/components/radio/test/radio.ct.js.map +0 -1
  82. package/dist/collection/components/radio-group/test/radio-group.ct.js +0 -117
  83. package/dist/collection/components/radio-group/test/radio-group.ct.js.map +0 -1
  84. package/dist/collection/components/select/test/select-keyboard.ct.js +0 -380
  85. package/dist/collection/components/select/test/select-keyboard.ct.js.map +0 -1
  86. package/dist/collection/components/select/test/select.ct.js +0 -594
  87. package/dist/collection/components/select/test/select.ct.js.map +0 -1
  88. package/dist/collection/components/slider/test/slider.ct.js +0 -65
  89. package/dist/collection/components/slider/test/slider.ct.js.map +0 -1
  90. package/dist/collection/components/tabs/test/tabs.ct.js +0 -134
  91. package/dist/collection/components/tabs/test/tabs.ct.js.map +0 -1
  92. package/dist/collection/components/time-input/test/time-input.ct.js +0 -62
  93. package/dist/collection/components/time-input/test/time-input.ct.js.map +0 -1
  94. package/dist/collection/components/time-picker/test/time-picker.ct.js +0 -172
  95. package/dist/collection/components/time-picker/test/time-picker.ct.js.map +0 -1
  96. package/dist/collection/components/toggle/test/toggle.ct.js +0 -84
  97. package/dist/collection/components/toggle/test/toggle.ct.js.map +0 -1
  98. package/dist/collection/components/tooltip/test/tooltip.ct.js +0 -243
  99. package/dist/collection/components/tooltip/test/tooltip.ct.js.map +0 -1
  100. package/dist/collection/components/tree/test/tree.ct.js +0 -355
  101. package/dist/collection/components/tree/test/tree.ct.js.map +0 -1
  102. package/dist/collection/components/upload/test/upload.ct.js +0 -17
  103. package/dist/collection/components/upload/test/upload.ct.js.map +0 -1
  104. package/dist/collection/components/workflow-steps/test/workflow-steps.ct.js +0 -74
  105. package/dist/collection/components/workflow-steps/test/workflow-steps.ct.js.map +0 -1
  106. package/dist/collection/tests/utils/test/matchMedia.mock.js +0 -22
  107. package/dist/types/components/application-header/test/application-header.ct.d.ts +0 -1
  108. package/dist/types/components/avatar/test/avatar.ct.d.ts +0 -1
  109. package/dist/types/components/blind/test/blind.ct.d.ts +0 -1
  110. package/dist/types/components/breadcrumb/test/breadcrumb.ct.d.ts +0 -1
  111. package/dist/types/components/button/test/button.ct.d.ts +0 -7
  112. package/dist/types/components/category-filter/test/category-filter.ct.d.ts +0 -1
  113. package/dist/types/components/checkbox/tests/checkbox.ct.d.ts +0 -1
  114. package/dist/types/components/checkbox-group/test/checkbox-group.ct.d.ts +0 -1
  115. package/dist/types/components/chip/test/chip.ct.d.ts +0 -1
  116. package/dist/types/components/custom-field/tests/custom-field.ct.d.ts +0 -1
  117. package/dist/types/components/date-dropdown/test/date-dropdown.ct.d.ts +0 -1
  118. package/dist/types/components/date-input/tests/date-input.ct.d.ts +0 -1
  119. package/dist/types/components/date-picker/test/date-picker.ct.d.ts +0 -1
  120. package/dist/types/components/datetime-picker/test/datetime-picker.ct.d.ts +0 -1
  121. package/dist/types/components/drawer/test/drawer.ct.d.ts +0 -1
  122. package/dist/types/components/dropdown/test/dropdown.ct.d.ts +0 -1
  123. package/dist/types/components/dropdown-button/dropdown-button.ct.d.ts +0 -1
  124. package/dist/types/components/event-list/test/event-list.ct.d.ts +0 -1
  125. package/dist/types/components/expanding-search/test/expanding-search.ct.d.ts +0 -1
  126. package/dist/types/components/field-label/tests/field-label.ct.d.ts +0 -1
  127. package/dist/types/components/field-wrapper/tests/field-wrapper.ct.d.ts +0 -1
  128. package/dist/types/components/flip-tile/test/flip-tile.ct.d.ts +0 -1
  129. package/dist/types/components/group/test/group.ct.d.ts +0 -1
  130. package/dist/types/components/icon-button/test/icon-button.ct.d.ts +0 -1
  131. package/dist/types/components/input/tests/form-ready.ct.d.ts +0 -1
  132. package/dist/types/components/input/tests/validation.ct.d.ts +0 -1
  133. package/dist/types/components/input-group/tests/input-group.ct.d.ts +0 -1
  134. package/dist/types/components/menu/test/menu.ct.d.ts +0 -1
  135. package/dist/types/components/menu-about/test/menu-about.ct.d.ts +0 -1
  136. package/dist/types/components/menu-avatar-item/test/menu-avatar-item.ct.d.ts +0 -1
  137. package/dist/types/components/menu-category/test/menu-category.ct.d.ts +0 -1
  138. package/dist/types/components/menu-item/test/menu-item.ct.d.ts +0 -1
  139. package/dist/types/components/menu-settings/test/menu-settings.ct.d.ts +0 -1
  140. package/dist/types/components/message-bar/test/message-bar.ct.d.ts +0 -1
  141. package/dist/types/components/modal/test/modal.ct.d.ts +0 -8
  142. package/dist/types/components/pagination/test/pagination.ct.d.ts +0 -1
  143. package/dist/types/components/pane/test/panes.ct.d.ts +0 -1
  144. package/dist/types/components/pane-layout/test/pane-layout.ct.d.ts +0 -1
  145. package/dist/types/components/pill/test/pill.ct.d.ts +0 -1
  146. package/dist/types/components/radio/test/radio.ct.d.ts +0 -1
  147. package/dist/types/components/radio-group/test/radio-group.ct.d.ts +0 -1
  148. package/dist/types/components/select/test/select-keyboard.ct.d.ts +0 -1
  149. package/dist/types/components/select/test/select.ct.d.ts +0 -1
  150. package/dist/types/components/slider/test/slider.ct.d.ts +0 -1
  151. package/dist/types/components/tabs/test/tabs.ct.d.ts +0 -1
  152. package/dist/types/components/time-input/test/time-input.ct.d.ts +0 -1
  153. package/dist/types/components/time-picker/test/time-picker.ct.d.ts +0 -1
  154. package/dist/types/components/toggle/test/toggle.ct.d.ts +0 -1
  155. package/dist/types/components/tooltip/test/tooltip.ct.d.ts +0 -1
  156. package/dist/types/components/tree/test/tree.ct.d.ts +0 -1
  157. package/dist/types/components/upload/test/upload.ct.d.ts +0 -1
  158. package/dist/types/components/workflow-steps/test/workflow-steps.ct.d.ts +0 -1
@@ -1 +0,0 @@
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 */\nimport { ElementHandle, expect, Locator, Page } from '@playwright/test';\nimport {\n iconCogwheel,\n iconHeart,\n iconPin,\n iconPrint,\n iconStar,\n} from '@siemens/ix-icons/icons';\nimport { regressionTest, viewPorts } from '@utils/test';\n\nconst html = String.raw;\n\nregressionTest('renders', async ({ mount, page }) => {\n await mount(\n `\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 icons: { iconPin, iconStar, iconHeart, iconCogwheel },\n }\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\nregressionTest('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\nregressionTest.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 regressionTest(' = 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 regressionTest(' = 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 regressionTest(' = 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 regressionTest(' = 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\nregressionTest('Prevent closing', async ({ page, mount }) => {\n await mount(`\n <ix-button id=\"trigger\">Open</ix-button>\n <ix-dropdown trigger=\"trigger\">\n <ix-dropdown-header id=\"header\">Header</ix-dropdown-header>\n <ix-dropdown-item id=\"item-1\">Item 1</ix-dropdown-item>\n </ix-dropdown>`);\n\n const header = await page.locator('ix-dropdown-header');\n header.evaluate((h) =>\n h.addEventListener('click', (event) => {\n event.preventDefault();\n })\n );\n await page.locator('#trigger').click();\n await expect(header).toBeVisible();\n await header.click();\n await expect(header).toBeVisible();\n await page.locator('#item-1').click();\n await expect(header).not.toBeVisible();\n});\n\nregressionTest.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 regressionTest('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 regressionTest('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 regressionTest.describe('close by Escape with close behavior', () => {\n regressionTest(' = 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 regressionTest(' = 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 regressionTest(' = 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 regressionTest(' = 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\nregressionTest.describe('nested dropdown 2/3', () => {\n const button1Text = 'Triggerbutton1';\n const button2Text = 'Triggerbutton2';\n\n regressionTest.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 regressionTest('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\nregressionTest.describe('nested dropdown 3/3', () => {\n regressionTest.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 regressionTest('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\nregressionTest(\n 'Nested dropdowns within application-header',\n 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\n label=\"MainItem 3\"\n id=\"submenu-01\"\n ></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.locator('ix-icon-button');\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);\n\nregressionTest.describe('resolve during element connect', () => {\n regressionTest.beforeEach(async ({ mount }) => {\n await mount(\n `\n <ix-button id=\"trigger\">Open</ix-button>\n <ix-dropdown trigger=\"trigger\">\n <ix-dropdown-item label=\"Item 1\" icon=\"print\"></ix-dropdown-item>\n <ix-dropdown-item label=\"Item 2\"></ix-dropdown-item>\n <ix-dropdown-item>Custom</ix-dropdown-item>\n </ix-dropdown>\n `,\n {\n icons: { iconPrint },\n }\n );\n });\n\n regressionTest('attach and detach from dom', async ({ page }) => {\n await page.evaluate(() => {\n const dropdown = document.querySelector('ix-dropdown')!;\n const mount = document.querySelector('#mount')!;\n mount.removeChild(dropdown);\n mount.append(dropdown);\n });\n\n const dropdown = page.locator('ix-dropdown');\n await page.locator('ix-button').first().click();\n\n await expect(dropdown).toBeVisible();\n });\n\n regressionTest('add element within runtime', async ({ page }) => {\n await page.evaluate(async () => {\n const divElement = document.createElement('div');\n const mount = document.querySelector('#mount')!;\n mount.appendChild(divElement);\n });\n\n const dropdown = page.locator('ix-dropdown');\n await page.locator('ix-button').first().click();\n\n await expect(dropdown).toBeVisible();\n });\n});\n\nregressionTest('Child dropdown disconnects', async ({ mount, page }) => {\n await mount(`<ix-button id=\"trigger\">Open</ix-button>\n <ix-dropdown closeBehavior=\"outside\" trigger=\"trigger\">\n <ix-dropdown-item id=\"item-1\">Item level 1</ix-dropdown-item>\n <ix-dropdown-button label=\"Nested\">\n <ix-dropdown-item id=\"item-1\">Item level 2</ix-dropdown-item>\n </ix-dropdown-button>\n </ix-dropdown>`);\n const trigger = page.locator('ix-button').first();\n await trigger.click();\n const dropdown = page.locator('ix-dropdown').first();\n\n await expect(dropdown).toBeVisible();\n\n await dropdown.evaluate((dd) => {\n dd.removeChild(dd.querySelector('ix-dropdown-button')!);\n });\n\n await trigger.click();\n await trigger.click();\n await expect(dropdown).toBeVisible();\n});\n\nregressionTest.describe('A11y', () => {\n regressionTest.describe('Keyboard navigation', () => {\n regressionTest.beforeEach(async ({ page, mount }) => {\n await mount(\n `\n <ix-button id=\"trigger\">Open</ix-button>\n <ix-dropdown trigger=\"trigger\">\n <ix-dropdown-item label=\"Item 1\" icon=\"print\"></ix-dropdown-item>\n <ix-dropdown-item label=\"Item 2\"></ix-dropdown-item>\n <ix-dropdown-item>Custom</ix-dropdown-item>\n </ix-dropdown>\n `,\n {\n icons: { iconPrint },\n }\n );\n\n await page.locator('#trigger').click();\n });\n\n regressionTest.describe('ArrowDown', () => {\n regressionTest('trigger -> first item', async ({ page }) => {\n await page.keyboard.press('ArrowDown');\n await page.waitForTimeout(100);\n const item = await page.locator('ix-dropdown-item').first();\n await expect(item).toBeFocused();\n });\n\n regressionTest('first item -> second item', async ({ page }) => {\n await page.keyboard.press('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.press('ArrowDown');\n await page.waitForTimeout(100);\n const item = await page.locator('ix-dropdown-item').nth(1);\n await expect(item).toBeFocused();\n });\n });\n\n regressionTest.describe('ArrowUp', () => {\n regressionTest('second item -> fist item', async ({ page }) => {\n await page.keyboard.press('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.press('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.press('ArrowUp');\n const item = page.locator('ix-dropdown-item').first();\n await expect(item).toBeFocused();\n });\n });\n });\n});\n\nregressionTest('Dropdown works in floating-ui', async ({ mount, page }) => {\n await mount(`\n <style>\n .dialog {\n animation: fade-in 0.2s forwards;\n overflow: visible;\n }\n\n @keyframes fade-in {\n 0% {\n opacity: 0;\n transform: translate(0, -50px);\n }\n 100% {\n opacity: 1;\n transform: translate(0, 0);\n }\n }\n </style>\n\n <dialog id=\"dialog\" class=\"dialog\">\n <ix-button id=\"trigger\">Open</ix-button>\n <ix-dropdown id=\"dropdown\" trigger=\"trigger\">\n <ix-dropdown-item label=\"Item 1\"></ix-dropdown-item>\n <ix-dropdown-item label=\"Item 2\"></ix-dropdown-item>\n </ix-dropdown>\n </dialog>\n `);\n\n await page.evaluate(() => {\n const dialog = document.getElementById('dialog') as HTMLDialogElement;\n dialog.showModal();\n });\n\n const trigger = page.locator('#trigger');\n await trigger.click();\n\n const dropdown = page.locator('#dropdown');\n\n const dropdownRect = (await dropdown.boundingBox())!;\n const triggerRect = (await trigger.boundingBox())!;\n\n expect(Math.round(dropdownRect.x)).toBe(Math.round(triggerRect.x));\n expect(Math.round(dropdownRect.y)).toBe(\n Math.round(triggerRect.y + triggerRect.height)\n );\n});\n\nregressionTest(\n 'last dropdown item can be accessed via scrolling',\n async ({ mount, page }) => {\n await mount(`\n <ix-button id=\"trigger\">Open</ix-button>\n <ix-dropdown trigger=\"trigger\">\n ${Array.from(\n { length: 20 },\n (_, i) => `<ix-dropdown-item label=\"Item ${i}\"></ix-dropdown-item>`\n ).join('')}\n </ix-dropdown>\n `);\n\n await page.locator('#trigger').click();\n\n const lastItem = page.locator('ix-dropdown-item').last();\n await lastItem.evaluate((item) => {\n item.scrollIntoView();\n });\n await expect(lastItem).toBeVisible();\n }\n);\n\nregressionTest(\n 'last dropdown item can be accessed, dropdown placed at center of page',\n async ({ mount, page }) => {\n await mount(`\n <body style=\"width: 100vw; height: 100vh;\">\n <div style=\"height:calc(50vh-1px)\"></div>\n <ix-button id=\"trigger\">Open</ix-button>\n <ix-dropdown trigger=\"trigger\">\n ${Array.from(\n { length: 20 },\n (_, i) => `<ix-dropdown-item label=\"Item ${i}\"></ix-dropdown-item>`\n ).join('')}\n </ix-dropdown>\n </body>\n `);\n\n await page.locator('#trigger').click();\n\n const lastItem = page.locator('ix-dropdown-item').last();\n await lastItem.evaluate((item) => {\n item.scrollIntoView();\n });\n await expect(lastItem).toBeVisible();\n }\n);\n"]}
@@ -1,51 +0,0 @@
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 "../../tests/utils/test/index";
11
- regressionTest('renders', async ({ mount, page }) => {
12
- await mount(`
13
- <ix-dropdown-button label="Open">
14
- <ix-dropdown-item label="Test"></ix-dropdown-item>
15
- </ix-dropdown-button>
16
- `);
17
- await page.locator('ix-dropdown-button').click();
18
- const item = page.locator('ix-dropdown-item');
19
- await expect(item).toBeVisible();
20
- await item.click();
21
- await expect(item).not.toBeVisible();
22
- });
23
- regressionTest('close behavior - outside', async ({ mount, page }) => {
24
- await mount(`
25
- <ix-dropdown-button close-behavior="outside" label="Open">
26
- <ix-dropdown-item label="Test"></ix-dropdown-item>
27
- </ix-dropdown-button>
28
- `);
29
- await page.locator('ix-dropdown-button').click();
30
- const item = page.locator('ix-dropdown-item');
31
- await expect(item).toBeVisible();
32
- await item.click();
33
- await expect(item).toBeVisible();
34
- });
35
- regressionTest('submenu', async ({ mount, page }) => {
36
- await mount(`
37
- <ix-dropdown-button close-behavior="outside" label="Open">
38
- <ix-dropdown-item label="Test" id="submenu"></ix-dropdown-item>
39
- </ix-dropdown-button>
40
- <ix-dropdown close-behavior="outside" trigger="submenu">
41
- <ix-dropdown-item label="Subitem"></ix-dropdown-item>
42
- </ix-dropdown>
43
- `);
44
- await page.locator('ix-dropdown-button').click();
45
- const item = page.locator('ix-dropdown-item').first();
46
- await item.click();
47
- const subItem = page.locator('ix-dropdown-item').last();
48
- await subItem.click();
49
- await expect(subItem).toBeVisible();
50
- });
51
- //# sourceMappingURL=dropdown-button.ct.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dropdown-button.ct.js","sourceRoot":"","sources":["../../../src/components/dropdown-button/dropdown-button.ct.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,cAAc,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;IAClD,MAAM,KAAK,CAAC;;;;GAIX,CAAC,CAAC;IAEH,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9C,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IAEjC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;AACvC,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,0BAA0B,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;IACnE,MAAM,KAAK,CAAC;;;;GAIX,CAAC,CAAC;IAEH,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9C,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IAEjC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AACnC,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;IAClD,MAAM,KAAK,CAAC;;;;;;;GAOX,CAAC,CAAC;IAEH,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC;IACtD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IAEtB,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;AACtC,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 */\nimport { expect } from '@playwright/test';\nimport { regressionTest } from '@utils/test';\n\nregressionTest('renders', async ({ mount, page }) => {\n await mount(`\n <ix-dropdown-button label=\"Open\">\n <ix-dropdown-item label=\"Test\"></ix-dropdown-item>\n </ix-dropdown-button>\n `);\n\n await page.locator('ix-dropdown-button').click();\n const item = page.locator('ix-dropdown-item');\n await expect(item).toBeVisible();\n\n await item.click();\n await expect(item).not.toBeVisible();\n});\n\nregressionTest('close behavior - outside', async ({ mount, page }) => {\n await mount(`\n <ix-dropdown-button close-behavior=\"outside\" label=\"Open\">\n <ix-dropdown-item label=\"Test\"></ix-dropdown-item>\n </ix-dropdown-button>\n `);\n\n await page.locator('ix-dropdown-button').click();\n const item = page.locator('ix-dropdown-item');\n await expect(item).toBeVisible();\n\n await item.click();\n await expect(item).toBeVisible();\n});\n\nregressionTest('submenu', async ({ mount, page }) => {\n await mount(`\n <ix-dropdown-button close-behavior=\"outside\" label=\"Open\">\n <ix-dropdown-item label=\"Test\" id=\"submenu\"></ix-dropdown-item>\n </ix-dropdown-button>\n <ix-dropdown close-behavior=\"outside\" trigger=\"submenu\">\n <ix-dropdown-item label=\"Subitem\"></ix-dropdown-item>\n </ix-dropdown>\n `);\n\n await page.locator('ix-dropdown-button').click();\n const item = page.locator('ix-dropdown-item').first();\n await item.click();\n const subItem = page.locator('ix-dropdown-item').last();\n await subItem.click();\n\n await expect(subItem).toBeVisible();\n});\n"]}
@@ -1,88 +0,0 @@
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
- /*
10
- * SPDX-FileCopyrightText: 2023 Siemens AG
11
- *
12
- * SPDX-License-Identifier: MIT
13
- *
14
- * This source code is licensed under the MIT license found in the
15
- * LICENSE file in the root directory of this source tree.
16
- */
17
- import "jest";
18
- import { regressionTest } from "../../../tests/utils/test/index";
19
- import { expect } from "@playwright/test";
20
- regressionTest('renders', async ({ mount, page }) => {
21
- await mount(`
22
- <ix-event-list>
23
- <ix-event-list-item color="color-primary">Text 1</ix-event-list-item>
24
- <ix-event-list-item color="color-primary">Text 2</ix-event-list-item>
25
- <ix-event-list-item color="color-primary">Text 3</ix-event-list-item>
26
- <ix-event-list-item color="color-primary">Text 4</ix-event-list-item>
27
- </ix-event-list>
28
- `);
29
- const eventList = page.locator('ix-event-list');
30
- await expect(eventList).toHaveClass(/hydrated/);
31
- });
32
- regressionTest('check if items still clickable', async ({ mount, page }) => {
33
- await mount(`
34
- <ix-event-list>
35
- <ix-event-list-item color="color-primary" selected>Text 1</ix-event-list-item>
36
- <ix-event-list-item color="color-primary">Text 2</ix-event-list-item>
37
- <ix-event-list-item color="color-primary">Text 3</ix-event-list-item>
38
- <ix-event-list-item color="color-primary">Text 4</ix-event-list-item>
39
- </ix-event-list>
40
- `);
41
- await page.waitForTimeout(500);
42
- const firstEventListItem = page.locator('ix-event-list-item').first();
43
- const secondEventListItem = page.locator('ix-event-list-item').nth(1);
44
- const thirdEventListItem = page.locator('ix-event-list-item').last();
45
- const clickCountHandle = await page.evaluateHandle(() => {
46
- return { count: 0 };
47
- });
48
- await firstEventListItem.evaluate((eventListItem, clickCountHandle) => {
49
- eventListItem.addEventListener('click', () => {
50
- clickCountHandle.count++;
51
- });
52
- }, clickCountHandle);
53
- await firstEventListItem.click();
54
- await secondEventListItem.click();
55
- await thirdEventListItem.click();
56
- //Check if still clickable
57
- await firstEventListItem.click();
58
- expect((await clickCountHandle.jsonValue()).count).toBe(2);
59
- clickCountHandle.dispose();
60
- });
61
- regressionTest('should dynamically add an item and verify all list items have correct height', async ({ mount, page }) => {
62
- const itemHeight = 60;
63
- await mount(`
64
- <ix-event-list item-height="${itemHeight}">
65
- <ix-event-list-item color="color-primary">Text 1</ix-event-list-item>
66
- <ix-event-list-item color="color-primary">Text 2</ix-event-list-item>
67
- <ix-event-list-item color="color-primary">Text 3</ix-event-list-item>
68
- <ix-event-list-item color="color-primary">Text 4</ix-event-list-item>
69
- </ix-event-list>
70
- `);
71
- await page.evaluate(() => {
72
- const eventListItem = document.createElement('ix-event-list-item');
73
- eventListItem.textContent = 'Newly added item';
74
- const eventList = document.querySelector('ix-event-list');
75
- if (eventList) {
76
- eventList.appendChild(eventListItem);
77
- }
78
- });
79
- const eventListItems = page.locator('ix-event-list-item');
80
- const lastItem = eventListItems.last();
81
- await expect(eventListItems).toHaveCount(5);
82
- await expect(lastItem).toHaveJSProperty('offsetHeight', itemHeight);
83
- const heights = await eventListItems.evaluateAll((items) => items.map((item) => (item instanceof HTMLElement ? item.offsetHeight : 0)));
84
- heights.forEach((height) => {
85
- expect(height).toBe(itemHeight);
86
- });
87
- });
88
- //# sourceMappingURL=event-list.ct.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-list.ct.js","sourceRoot":"","sources":["../../../../src/components/event-list/test/event-list.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 'jest';\nimport { regressionTest } from '@utils/test';\nimport { expect } from '@playwright/test';\n\nregressionTest('renders', async ({ mount, page }) => {\n await mount(`\n <ix-event-list>\n <ix-event-list-item color=\"color-primary\">Text 1</ix-event-list-item>\n <ix-event-list-item color=\"color-primary\">Text 2</ix-event-list-item>\n <ix-event-list-item color=\"color-primary\">Text 3</ix-event-list-item>\n <ix-event-list-item color=\"color-primary\">Text 4</ix-event-list-item>\n </ix-event-list>\n `);\n\n const eventList = page.locator('ix-event-list');\n await expect(eventList).toHaveClass(/hydrated/);\n});\n\nregressionTest('check if items still clickable', async ({ mount, page }) => {\n await mount(`\n <ix-event-list>\n <ix-event-list-item color=\"color-primary\" selected>Text 1</ix-event-list-item>\n <ix-event-list-item color=\"color-primary\">Text 2</ix-event-list-item>\n <ix-event-list-item color=\"color-primary\">Text 3</ix-event-list-item>\n <ix-event-list-item color=\"color-primary\">Text 4</ix-event-list-item>\n </ix-event-list>\n `);\n\n await page.waitForTimeout(500);\n const firstEventListItem = page.locator('ix-event-list-item').first();\n const secondEventListItem = page.locator('ix-event-list-item').nth(1);\n const thirdEventListItem = page.locator('ix-event-list-item').last();\n\n const clickCountHandle = await page.evaluateHandle(() => {\n return { count: 0 };\n });\n\n await firstEventListItem.evaluate((eventListItem, clickCountHandle) => {\n eventListItem.addEventListener('click', () => {\n clickCountHandle.count++;\n });\n }, clickCountHandle);\n\n await firstEventListItem.click();\n await secondEventListItem.click();\n await thirdEventListItem.click();\n\n //Check if still clickable\n await firstEventListItem.click();\n expect((await clickCountHandle.jsonValue()).count).toBe(2);\n\n clickCountHandle.dispose();\n});\n\nregressionTest(\n 'should dynamically add an item and verify all list items have correct height',\n async ({ mount, page }) => {\n const itemHeight = 60;\n\n await mount(`\n <ix-event-list item-height=\"${itemHeight}\">\n <ix-event-list-item color=\"color-primary\">Text 1</ix-event-list-item>\n <ix-event-list-item color=\"color-primary\">Text 2</ix-event-list-item>\n <ix-event-list-item color=\"color-primary\">Text 3</ix-event-list-item>\n <ix-event-list-item color=\"color-primary\">Text 4</ix-event-list-item>\n </ix-event-list>\n `);\n\n await page.evaluate(() => {\n const eventListItem = document.createElement('ix-event-list-item');\n eventListItem.textContent = 'Newly added item';\n\n const eventList = document.querySelector('ix-event-list');\n if (eventList) {\n eventList.appendChild(eventListItem);\n }\n });\n\n const eventListItems = page.locator('ix-event-list-item');\n const lastItem = eventListItems.last();\n await expect(eventListItems).toHaveCount(5);\n await expect(lastItem).toHaveJSProperty('offsetHeight', itemHeight);\n\n const heights = await eventListItems.evaluateAll((items) =>\n items.map((item) => (item instanceof HTMLElement ? item.offsetHeight : 0))\n );\n\n heights.forEach((height) => {\n expect(height).toBe(itemHeight);\n });\n }\n);\n"]}
@@ -1,56 +0,0 @@
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 "../../../tests/utils/test/index";
11
- regressionTest('renders', async ({ mount, page }) => {
12
- await mount(`<ix-expanding-search></ix-expanding-search>`);
13
- const button = page.locator('ix-expanding-search');
14
- await expect(button).toHaveClass(/hydrated/);
15
- });
16
- regressionTest('expands input', async ({ mount, page }) => {
17
- await mount(`<ix-expanding-search></ix-expanding-search>`);
18
- const element = page.locator('ix-expanding-search');
19
- const button = page.locator('button');
20
- await button.click();
21
- await expect(element).toHaveClass(/expanded/);
22
- });
23
- regressionTest('collapse input', async ({ mount, page }) => {
24
- await mount(`<ix-expanding-search></ix-expanding-search>`);
25
- const element = page.locator('ix-expanding-search');
26
- const button = page.locator('button');
27
- const input = page.locator('input');
28
- await button.click();
29
- await input.click();
30
- await input.blur();
31
- await expect(element).not.toHaveClass(/expanded/);
32
- });
33
- regressionTest('changes input', async ({ mount, page }) => {
34
- await mount(`<ix-expanding-search></ix-expanding-search>`);
35
- const element = page.locator('ix-expanding-search');
36
- const button = page.locator('button');
37
- const input = page.locator('input');
38
- await button.click();
39
- await input.fill('new input');
40
- await input.blur();
41
- await expect(element).toHaveClass(/expanded/);
42
- });
43
- regressionTest('erases the input when clear button is clicked', async ({ mount, page }) => {
44
- await mount(`<ix-expanding-search></ix-expanding-search>`);
45
- const element = page.locator('ix-expanding-search');
46
- const button = page.locator('button');
47
- const clearButton = page.locator('[data-testid="clear-button"]');
48
- const input = page.locator('input');
49
- await button.click();
50
- await input.fill('new input');
51
- await clearButton.click();
52
- await input.blur();
53
- await expect(input).toHaveValue('');
54
- await expect(element).not.toHaveClass(/expanded/);
55
- });
56
- //# sourceMappingURL=expanding-search.ct.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"expanding-search.ct.js","sourceRoot":"","sources":["../../../../src/components/expanding-search/test/expanding-search.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 */\nimport { expect } from '@playwright/test';\nimport { regressionTest } from '@utils/test';\n\nregressionTest('renders', async ({ mount, page }) => {\n await mount(`<ix-expanding-search></ix-expanding-search>`);\n const button = page.locator('ix-expanding-search');\n await expect(button).toHaveClass(/hydrated/);\n});\n\nregressionTest('expands input', async ({ mount, page }) => {\n await mount(`<ix-expanding-search></ix-expanding-search>`);\n const element = page.locator('ix-expanding-search');\n const button = page.locator('button');\n\n await button.click();\n await expect(element).toHaveClass(/expanded/);\n});\n\nregressionTest('collapse input', async ({ mount, page }) => {\n await mount(`<ix-expanding-search></ix-expanding-search>`);\n const element = page.locator('ix-expanding-search');\n const button = page.locator('button');\n const input = page.locator('input');\n\n await button.click();\n await input.click();\n await input.blur();\n await expect(element).not.toHaveClass(/expanded/);\n});\n\nregressionTest('changes input', async ({ mount, page }) => {\n await mount(`<ix-expanding-search></ix-expanding-search>`);\n const element = page.locator('ix-expanding-search');\n const button = page.locator('button');\n const input = page.locator('input');\n\n await button.click();\n await input.fill('new input');\n\n await input.blur();\n await expect(element).toHaveClass(/expanded/);\n});\n\nregressionTest(\n 'erases the input when clear button is clicked',\n async ({ mount, page }) => {\n await mount(`<ix-expanding-search></ix-expanding-search>`);\n const element = page.locator('ix-expanding-search');\n const button = page.locator('button');\n const clearButton = page.locator('[data-testid=\"clear-button\"]');\n const input = page.locator('input');\n\n await button.click();\n await input.fill('new input');\n\n await clearButton.click();\n await input.blur();\n\n await expect(input).toHaveValue('');\n await expect(element).not.toHaveClass(/expanded/);\n }\n);\n"]}
@@ -1,121 +0,0 @@
1
- /*
2
- * SPDX-FileCopyrightText: 2024 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 "../../../tests/utils/test/index";
11
- regressionTest('renders', async ({ mount, page }) => {
12
- await mount(`<ix-field-label>My Label</ix-field-label>`);
13
- const fieldLabelElement = page.locator('ix-field-label');
14
- await expect(fieldLabelElement).toHaveClass(/hydrated/);
15
- await expect(fieldLabelElement.locator('label').locator('ix-typography')).toHaveClass(/typography-label/);
16
- await expect(fieldLabelElement.filter({ hasText: 'My Label' })).toHaveText('My Label');
17
- });
18
- regressionTest('required', async ({ mount, page }) => {
19
- await mount(`<ix-field-label required>MyLabel</ix-field-label>`);
20
- const labelElement = page.locator('ix-field-label');
21
- await expect(labelElement).toHaveText('MyLabel*');
22
- });
23
- regressionTest('focus native input by label click', async ({ mount, page }) => {
24
- await mount(`
25
- <ix-field-label html-for="input">MyLabel</ix-field-label>
26
- <input data-testid="input" id="input" />
27
- `);
28
- const labelElement = page.locator('ix-field-label');
29
- await labelElement.click();
30
- const inputElement = page.getByTestId('input');
31
- await expect(inputElement).toBeFocused();
32
- });
33
- regressionTest.describe('click label', () => {
34
- ['ix-input', 'ix-number-input', 'ix-date-input', 'ix-textarea'].forEach((selector) => {
35
- regressionTest(`focus ${selector} by external label click`, async ({ mount, page }) => {
36
- await mount(`
37
- <ix-field-label html-for="input">MyLabel</ix-field-label>
38
- <${selector} id="input"></${selector}>
39
- `);
40
- const labelElement = page.locator('ix-field-label');
41
- await labelElement.click();
42
- const component = page.locator(selector);
43
- const focusElement = selector !== 'ix-textarea'
44
- ? component.locator('input')
45
- : component.locator('textarea');
46
- await expect(focusElement).toBeFocused();
47
- });
48
- regressionTest(`focus ${selector} by embedded label click`, async ({ mount, page }) => {
49
- await mount(`
50
- <${selector} label="MyLabel"></${selector}>
51
- `);
52
- const component = page.locator(selector);
53
- await expect(component).toHaveClass(/hydrated/);
54
- const labelElement = component
55
- .locator('ix-field-wrapper')
56
- .locator('ix-field-label');
57
- await labelElement.click();
58
- const focusElement = selector !== 'ix-textarea'
59
- ? component.locator('input')
60
- : component.locator('textarea');
61
- await expect(focusElement).toBeFocused();
62
- });
63
- });
64
- });
65
- regressionTest('valid color', async ({ mount, page }) => {
66
- await mount(`<ix-field-label>LabelValid</ix-field-label>`);
67
- const labelElement = page.locator('ix-field-label');
68
- await expect(labelElement).not.toHaveAttribute('is-invalid');
69
- await expect(labelElement.locator('ix-typography')).toHaveAttribute('style', 'color: var(--theme-color-soft-text);');
70
- });
71
- regressionTest('invalid color', async ({ mount, page }) => {
72
- await mount(`<ix-field-label is-invalid>LabelInvalid</ix-field-label>`);
73
- const labelElement = page.locator('ix-field-label');
74
- await expect(labelElement).toHaveAttribute('is-invalid');
75
- await expect(labelElement.locator('ix-typography')).toHaveAttribute('style', 'color: var(--theme-color-alarm-text);');
76
- });
77
- regressionTest('valid color with valid text field', async ({ mount, page }) => {
78
- await mount(`
79
- <ix-input label="label text">valid field</ix-input>
80
- `);
81
- const fieldElement = page.locator('ix-input');
82
- const labelElement = page.locator('ix-field-label');
83
- await expect(fieldElement).not.toHaveClass(/ix-invalid--required/);
84
- await expect(labelElement.locator('ix-typography')).toHaveAttribute('style', 'color: var(--theme-color-soft-text);');
85
- });
86
- regressionTest('invalid color with invalid text field', async ({ mount, page }) => {
87
- await mount(`
88
- <ix-input label="invalid label text" required>invalid field</ix-input>
89
- `);
90
- const fieldElement = page.locator('ix-input');
91
- const inputElement = fieldElement.locator('input');
92
- await expect(inputElement).toBeVisible();
93
- const labelElement = page.locator('ix-field-label');
94
- await inputElement.focus();
95
- await inputElement.blur();
96
- await expect(fieldElement).toHaveClass(/ix-invalid--required/);
97
- await expect(labelElement.locator('ix-typography')).toHaveAttribute('style', 'color: var(--theme-color-alarm-text);');
98
- });
99
- regressionTest('valid color with valid textarea field', async ({ mount, page }) => {
100
- await mount(`
101
- <ix-textarea label="label text">valid field</ix-textarea>
102
- `);
103
- const fieldElement = page.locator('ix-textarea');
104
- const labelElement = page.locator('ix-field-label');
105
- await expect(fieldElement).not.toHaveClass(/ix-invalid--required/);
106
- await expect(labelElement.locator('ix-typography')).toHaveAttribute('style', 'color: var(--theme-color-soft-text);');
107
- });
108
- regressionTest('invalid color with invalid textarea field', async ({ mount, page }) => {
109
- await mount(`
110
- <ix-textarea label="invalid label text" required>invalid field</ix-textarea>
111
- `);
112
- const fieldElement = page.locator('ix-textarea');
113
- const textareaElement = fieldElement.locator('textarea');
114
- await expect(textareaElement).toBeVisible();
115
- const labelElement = page.locator('ix-field-label');
116
- await textareaElement.focus();
117
- await textareaElement.blur();
118
- await expect(fieldElement).toHaveClass(/ix-invalid--required/);
119
- await expect(labelElement.locator('ix-typography')).toHaveAttribute('style', 'color: var(--theme-color-alarm-text);');
120
- });
121
- //# sourceMappingURL=field-label.ct.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"field-label.ct.js","sourceRoot":"","sources":["../../../../src/components/field-label/tests/field-label.ct.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 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 { expect } from '@playwright/test';\nimport { regressionTest } from '@utils/test';\n\nregressionTest('renders', async ({ mount, page }) => {\n await mount(`<ix-field-label>My Label</ix-field-label>`);\n const fieldLabelElement = page.locator('ix-field-label');\n await expect(fieldLabelElement).toHaveClass(/hydrated/);\n await expect(\n fieldLabelElement.locator('label').locator('ix-typography')\n ).toHaveClass(/typography-label/);\n await expect(fieldLabelElement.filter({ hasText: 'My Label' })).toHaveText(\n 'My Label'\n );\n});\n\nregressionTest('required', async ({ mount, page }) => {\n await mount(`<ix-field-label required>MyLabel</ix-field-label>`);\n const labelElement = page.locator('ix-field-label');\n await expect(labelElement).toHaveText('MyLabel*');\n});\n\nregressionTest('focus native input by label click', async ({ mount, page }) => {\n await mount(`\n <ix-field-label html-for=\"input\">MyLabel</ix-field-label>\n <input data-testid=\"input\" id=\"input\" />\n `);\n const labelElement = page.locator('ix-field-label');\n await labelElement.click();\n\n const inputElement = page.getByTestId('input');\n await expect(inputElement).toBeFocused();\n});\n\nregressionTest.describe('click label', () => {\n ['ix-input', 'ix-number-input', 'ix-date-input', 'ix-textarea'].forEach(\n (selector) => {\n regressionTest(\n `focus ${selector} by external label click`,\n async ({ mount, page }) => {\n await mount(`\n <ix-field-label html-for=\"input\">MyLabel</ix-field-label>\n <${selector} id=\"input\"></${selector}>\n `);\n const labelElement = page.locator('ix-field-label');\n await labelElement.click();\n\n const component = page.locator(selector);\n const focusElement =\n selector !== 'ix-textarea'\n ? component.locator('input')\n : component.locator('textarea');\n await expect(focusElement).toBeFocused();\n }\n );\n\n regressionTest(\n `focus ${selector} by embedded label click`,\n async ({ mount, page }) => {\n await mount(`\n <${selector} label=\"MyLabel\"></${selector}>\n `);\n\n const component = page.locator(selector);\n await expect(component).toHaveClass(/hydrated/);\n\n const labelElement = component\n .locator('ix-field-wrapper')\n .locator('ix-field-label');\n\n await labelElement.click();\n\n const focusElement =\n selector !== 'ix-textarea'\n ? component.locator('input')\n : component.locator('textarea');\n\n await expect(focusElement).toBeFocused();\n }\n );\n }\n );\n});\n\nregressionTest('valid color', async ({ mount, page }) => {\n await mount(`<ix-field-label>LabelValid</ix-field-label>`);\n\n const labelElement = page.locator('ix-field-label');\n\n await expect(labelElement).not.toHaveAttribute('is-invalid');\n await expect(labelElement.locator('ix-typography')).toHaveAttribute(\n 'style',\n 'color: var(--theme-color-soft-text);'\n );\n});\n\nregressionTest('invalid color', async ({ mount, page }) => {\n await mount(`<ix-field-label is-invalid>LabelInvalid</ix-field-label>`);\n\n const labelElement = page.locator('ix-field-label');\n\n await expect(labelElement).toHaveAttribute('is-invalid');\n await expect(labelElement.locator('ix-typography')).toHaveAttribute(\n 'style',\n 'color: var(--theme-color-alarm-text);'\n );\n});\n\nregressionTest('valid color with valid text field', async ({ mount, page }) => {\n await mount(`\n <ix-input label=\"label text\">valid field</ix-input>\n `);\n\n const fieldElement = page.locator('ix-input');\n const labelElement = page.locator('ix-field-label');\n\n await expect(fieldElement).not.toHaveClass(/ix-invalid--required/);\n\n await expect(labelElement.locator('ix-typography')).toHaveAttribute(\n 'style',\n 'color: var(--theme-color-soft-text);'\n );\n});\n\nregressionTest(\n 'invalid color with invalid text field',\n async ({ mount, page }) => {\n await mount(`\n <ix-input label=\"invalid label text\" required>invalid field</ix-input>\n `);\n\n const fieldElement = page.locator('ix-input');\n const inputElement = fieldElement.locator('input');\n await expect(inputElement).toBeVisible();\n\n const labelElement = page.locator('ix-field-label');\n\n await inputElement.focus();\n await inputElement.blur();\n\n await expect(fieldElement).toHaveClass(/ix-invalid--required/);\n await expect(labelElement.locator('ix-typography')).toHaveAttribute(\n 'style',\n 'color: var(--theme-color-alarm-text);'\n );\n }\n);\n\nregressionTest(\n 'valid color with valid textarea field',\n async ({ mount, page }) => {\n await mount(`\n <ix-textarea label=\"label text\">valid field</ix-textarea>\n `);\n\n const fieldElement = page.locator('ix-textarea');\n const labelElement = page.locator('ix-field-label');\n\n await expect(fieldElement).not.toHaveClass(/ix-invalid--required/);\n\n await expect(labelElement.locator('ix-typography')).toHaveAttribute(\n 'style',\n 'color: var(--theme-color-soft-text);'\n );\n }\n);\n\nregressionTest(\n 'invalid color with invalid textarea field',\n async ({ mount, page }) => {\n await mount(`\n <ix-textarea label=\"invalid label text\" required>invalid field</ix-textarea>\n `);\n\n const fieldElement = page.locator('ix-textarea');\n const textareaElement = fieldElement.locator('textarea');\n await expect(textareaElement).toBeVisible();\n\n const labelElement = page.locator('ix-field-label');\n\n await textareaElement.focus();\n await textareaElement.blur();\n\n await expect(fieldElement).toHaveClass(/ix-invalid--required/);\n\n await expect(labelElement.locator('ix-typography')).toHaveAttribute(\n 'style',\n 'color: var(--theme-color-alarm-text);'\n );\n }\n);\n"]}
@@ -1,63 +0,0 @@
1
- /*
2
- * SPDX-FileCopyrightText: 2025 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 "../../../tests/utils/test/index";
11
- regressionTest('renders', async ({ mount, page }) => {
12
- await mount(`
13
- <ix-field-wrapper helper-text="Helper text">
14
- <div style="position: relative; width: 100%; height: 2rem; background: red;">Content</div>
15
- </ix-field-wrapper>
16
- `);
17
- const fieldWrapperElement = page.locator('ix-field-wrapper');
18
- await expect(fieldWrapperElement).toHaveClass(/hydrated/);
19
- await expect(fieldWrapperElement
20
- .locator('.field-bottom')
21
- .locator('ix-typography.bottom-text')
22
- .filter({ hasText: 'Helper text' })).toHaveText('Helper text');
23
- });
24
- regressionTest('show text dependent on provided state', async ({ mount, page }) => {
25
- await mount(`
26
- <ix-field-wrapper helper-text="Helper text" invalid-text="invalid text" is-invalid>
27
- <div style="position: relative; width: 100%; height: 2rem; background: red;">Content</div>
28
- </ix-field-wrapper>
29
- `);
30
- const fieldWrapperElement = page.locator('ix-field-wrapper');
31
- await expect(fieldWrapperElement).toHaveClass(/hydrated/);
32
- await expect(fieldWrapperElement
33
- .locator('.field-bottom')
34
- .locator('ix-typography.bottom-text')
35
- .filter({ hasText: 'invalid text' })).toHaveText('invalid text');
36
- });
37
- regressionTest('show text by tooltip', async ({ mount, page }) => {
38
- await mount(`
39
- <ix-field-wrapper helper-text="Helper text" invalid-text="invalid text" show-text-as-tooltip>
40
- <div style="position: relative; width: 100%; height: 2rem; background: red;">Content</div>
41
- </ix-field-wrapper>
42
- `);
43
- const fieldWrapperElement = page.locator('ix-field-wrapper');
44
- await expect(fieldWrapperElement).toHaveClass(/hydrated/);
45
- await page.mouse.move(10, 10);
46
- const tooltip = fieldWrapperElement.locator('ix-tooltip');
47
- await expect(tooltip).toHaveClass(/visible/);
48
- await expect(tooltip).toContainText('Helper text');
49
- });
50
- regressionTest('show text by tooltip invalid', async ({ mount, page }) => {
51
- await mount(`
52
- <ix-field-wrapper helper-text="Helper text" invalid-text="invalid text" is-invalid show-text-as-tooltip>
53
- <div style="position: relative; width: 100%; height: 2rem; background: red;">Content</div>
54
- </ix-field-wrapper>
55
- `);
56
- const fieldWrapperElement = page.locator('ix-field-wrapper');
57
- await expect(fieldWrapperElement).toHaveClass(/hydrated/);
58
- await page.mouse.move(10, 10);
59
- const tooltip = fieldWrapperElement.locator('ix-tooltip');
60
- await expect(tooltip).toHaveClass(/visible/);
61
- await expect(tooltip).toContainText('invalid text');
62
- });
63
- //# sourceMappingURL=field-wrapper.ct.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"field-wrapper.ct.js","sourceRoot":"","sources":["../../../../src/components/field-wrapper/tests/field-wrapper.ct.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,cAAc,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;IAClD,MAAM,KAAK,CACT;;;;KAIC,CACF,CAAC;IACF,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC7D,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,MAAM,CACV,mBAAmB;SAChB,OAAO,CAAC,eAAe,CAAC;SACxB,OAAO,CAAC,2BAA2B,CAAC;SACpC,MAAM,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CACtC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,cAAc,CACZ,uCAAuC,EACvC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;IACxB,MAAM,KAAK,CACT;;;;KAID,CACA,CAAC;IACF,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC7D,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,MAAM,CACV,mBAAmB;SAChB,OAAO,CAAC,eAAe,CAAC;SACxB,OAAO,CAAC,2BAA2B,CAAC;SACpC,MAAM,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CACvC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF,cAAc,CAAC,sBAAsB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;IAC/D,MAAM,KAAK,CACT;;;;KAIC,CACF,CAAC;IACF,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC7D,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE1D,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAE9B,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,8BAA8B,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;IACvE,MAAM,KAAK,CACT;;;;KAIC,CACF,CAAC;IACF,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC7D,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE1D,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAE9B,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2025 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('renders', async ({ mount, page }) => {\n await mount(\n `\n <ix-field-wrapper helper-text=\"Helper text\">\n <div style=\"position: relative; width: 100%; height: 2rem; background: red;\">Content</div>\n </ix-field-wrapper>\n `\n );\n const fieldWrapperElement = page.locator('ix-field-wrapper');\n await expect(fieldWrapperElement).toHaveClass(/hydrated/);\n await expect(\n fieldWrapperElement\n .locator('.field-bottom')\n .locator('ix-typography.bottom-text')\n .filter({ hasText: 'Helper text' })\n ).toHaveText('Helper text');\n});\n\nregressionTest(\n 'show text dependent on provided state',\n async ({ mount, page }) => {\n await mount(\n `\n <ix-field-wrapper helper-text=\"Helper text\" invalid-text=\"invalid text\" is-invalid>\n <div style=\"position: relative; width: 100%; height: 2rem; background: red;\">Content</div>\n </ix-field-wrapper>\n `\n );\n const fieldWrapperElement = page.locator('ix-field-wrapper');\n await expect(fieldWrapperElement).toHaveClass(/hydrated/);\n await expect(\n fieldWrapperElement\n .locator('.field-bottom')\n .locator('ix-typography.bottom-text')\n .filter({ hasText: 'invalid text' })\n ).toHaveText('invalid text');\n }\n);\n\nregressionTest('show text by tooltip', async ({ mount, page }) => {\n await mount(\n `\n <ix-field-wrapper helper-text=\"Helper text\" invalid-text=\"invalid text\" show-text-as-tooltip>\n <div style=\"position: relative; width: 100%; height: 2rem; background: red;\">Content</div>\n </ix-field-wrapper>\n `\n );\n const fieldWrapperElement = page.locator('ix-field-wrapper');\n await expect(fieldWrapperElement).toHaveClass(/hydrated/);\n\n await page.mouse.move(10, 10);\n\n const tooltip = fieldWrapperElement.locator('ix-tooltip');\n await expect(tooltip).toHaveClass(/visible/);\n await expect(tooltip).toContainText('Helper text');\n});\n\nregressionTest('show text by tooltip invalid', async ({ mount, page }) => {\n await mount(\n `\n <ix-field-wrapper helper-text=\"Helper text\" invalid-text=\"invalid text\" is-invalid show-text-as-tooltip>\n <div style=\"position: relative; width: 100%; height: 2rem; background: red;\">Content</div>\n </ix-field-wrapper>\n `\n );\n const fieldWrapperElement = page.locator('ix-field-wrapper');\n await expect(fieldWrapperElement).toHaveClass(/hydrated/);\n\n await page.mouse.move(10, 10);\n\n const tooltip = fieldWrapperElement.locator('ix-tooltip');\n await expect(tooltip).toHaveClass(/visible/);\n await expect(tooltip).toContainText('invalid text');\n});\n"]}