xmlui 0.10.13 → 0.10.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/{index-Db5iQkFp.mjs → index-779mp2Bm.mjs} +943 -736
- package/dist/lib/index.css +1 -1
- package/dist/lib/{initMock-B9LtmFJG.mjs → initMock-CAXdczCj.mjs} +1 -1
- package/dist/lib/xmlui.d.ts +16 -1
- package/dist/lib/xmlui.mjs +33 -32
- package/dist/metadata/{collectedComponentMetadata-BN8eg9Gr.mjs → collectedComponentMetadata-7DFXlw-J.mjs} +15057 -14865
- package/dist/metadata/{initMock-J7pN8owj.mjs → initMock-AFWEftc6.mjs} +1 -1
- package/dist/metadata/style.css +1 -1
- package/dist/metadata/xmlui-metadata.mjs +1 -1
- package/dist/metadata/xmlui-metadata.umd.js +3 -3
- package/dist/scripts/bin/build-lib.js +21 -13
- package/dist/scripts/bin/viteConfig.js +3 -1
- package/dist/scripts/package.json +1 -1
- package/dist/scripts/src/abstractions/scripting/Token.js +2 -0
- package/dist/scripts/src/abstractions/scripting/TryScope.js +2 -0
- package/dist/scripts/src/abstractions/scripting/modules.js +2 -0
- package/dist/scripts/src/components/APICall/APICall.spec.js +910 -0
- package/dist/scripts/src/components/Accordion/Accordion.spec.js +969 -0
- package/dist/scripts/src/components/Animation/Animation.js +50 -0
- package/dist/scripts/src/components/App/App.spec.js +219 -0
- package/dist/scripts/src/components/AppHeader/AppHeader.spec.js +169 -0
- package/dist/scripts/src/components/AppState/AppState.spec.js +268 -0
- package/dist/scripts/src/components/AutoComplete/AutoComplete.spec.js +383 -0
- package/dist/scripts/src/components/Avatar/Avatar.spec.js +1543 -0
- package/dist/scripts/src/components/Backdrop/Backdrop.spec.js +131 -0
- package/dist/scripts/src/components/Badge/Badge.spec.js +2214 -0
- package/dist/scripts/src/components/Bookmark/Bookmark.spec.js +230 -0
- package/dist/scripts/src/components/Breakout/Breakout.spec.js +56 -0
- package/dist/scripts/src/components/Button/Button-style.spec.js +274 -0
- package/dist/scripts/src/components/Button/Button.spec.js +454 -0
- package/dist/scripts/src/components/Card/Card.spec.js +150 -0
- package/dist/scripts/src/components/Carousel/Carousel.spec.js +343 -0
- package/dist/scripts/src/components/Carousel/CarouselNative.js +2 -2
- package/dist/scripts/src/components/ChangeListener/ChangeListener.spec.js +169 -0
- package/dist/scripts/src/components/Charts/AreaChart/AreaChart.spec.js +999 -0
- package/dist/scripts/src/components/Charts/BarChart/BarChart.spec.js +597 -0
- package/dist/scripts/src/components/Charts/DonutChart/DonutChart.spec.js +608 -0
- package/dist/scripts/src/components/Charts/LabelList/LabelList.spec.js +539 -0
- package/dist/scripts/src/components/Charts/Legend/Legend.spec.js +558 -0
- package/dist/scripts/src/components/Charts/LineChart/LineChart.spec.js +450 -0
- package/dist/scripts/src/components/Charts/PieChart/PieChart.spec.js +584 -0
- package/dist/scripts/src/components/Charts/RadarChart/RadarChart.spec.js +571 -0
- package/dist/scripts/src/components/Charts/Tooltip/TooltipContent.spec.js +449 -0
- package/dist/scripts/src/components/Checkbox/Checkbox.spec.js +964 -0
- package/dist/scripts/src/components/CodeBlock/CodeBlock.spec.js +196 -0
- package/dist/scripts/src/components/ColorPicker/ColorPicker.spec.js +283 -0
- package/dist/scripts/src/components/ColorPicker/ColorPickerNative.js +9 -26
- package/dist/scripts/src/components/Column/doc-resources/list-component-data.js +53 -0
- package/dist/scripts/src/components/ComponentProvider.js +6 -2
- package/dist/scripts/src/components/ContentSeparator/ContentSeparator.spec.js +338 -0
- package/dist/scripts/src/components/DateInput/DateInput.spec.js +918 -0
- package/dist/scripts/src/components/DatePicker/DatePicker.spec.js +362 -0
- package/dist/scripts/src/components/DatePicker/DatePickerNative.js +3 -3
- package/dist/scripts/src/components/DropdownMenu/DropdownMenu.spec.js +331 -0
- package/dist/scripts/src/components/EmojiSelector/EmojiSelector.spec.js +29 -0
- package/dist/scripts/src/components/ExpandableItem/ExpandableItem.spec.js +435 -0
- package/dist/scripts/src/components/FileInput/FileInput.spec.js +249 -0
- package/dist/scripts/src/components/FileUploadDropZone/FileUploadDropZone.spec.js +296 -0
- package/dist/scripts/src/components/FlowLayout/FlowLayout.spec.js +518 -0
- package/dist/scripts/src/components/Footer/Footer.spec.js +991 -0
- package/dist/scripts/src/components/Form/Form.spec.js +1257 -0
- package/dist/scripts/src/components/FormItem/FormItem.spec.js +723 -0
- package/dist/scripts/src/components/FormSection/FormSection.js +6 -31
- package/dist/scripts/src/components/Fragment/Fragment.spec.js +50 -0
- package/dist/scripts/src/components/Heading/H1.spec.js +66 -0
- package/dist/scripts/src/components/Heading/H2.spec.js +66 -0
- package/dist/scripts/src/components/Heading/H3.spec.js +66 -0
- package/dist/scripts/src/components/Heading/H4.spec.js +66 -0
- package/dist/scripts/src/components/Heading/H5.spec.js +66 -0
- package/dist/scripts/src/components/Heading/H6.spec.js +66 -0
- package/dist/scripts/src/components/Heading/Heading.spec.js +897 -0
- package/dist/scripts/src/components/HtmlTags/HtmlTags.spec.js +69 -0
- package/dist/scripts/src/components/IFrame/IFrame.spec.js +527 -0
- package/dist/scripts/src/components/Icon/ArrowDropDown.js +11 -0
- package/dist/scripts/src/components/Icon/ArrowDropUp.js +11 -0
- package/dist/scripts/src/components/Icon/ArrowLeft.js +11 -0
- package/dist/scripts/src/components/Icon/ArrowRight.js +11 -0
- package/dist/scripts/src/components/Icon/ChevronDownIcon.js +7 -0
- package/dist/scripts/src/components/Icon/ChevronUpIcon.js +7 -0
- package/dist/scripts/src/components/Icon/Icon.spec.js +527 -0
- package/dist/scripts/src/components/Icon/SunIcon.js +10 -0
- package/dist/scripts/src/components/Image/Image.js +2 -1
- package/dist/scripts/src/components/Image/Image.spec.js +198 -0
- package/dist/scripts/src/components/Image/ImageNative.js +30 -2
- package/dist/scripts/src/components/Input/InputLabel.js +25 -0
- package/dist/scripts/src/components/Input/index.js +5 -0
- package/dist/scripts/src/components/Items/Items.spec.js +397 -0
- package/dist/scripts/src/components/Link/Link.spec.js +894 -0
- package/dist/scripts/src/components/List/List.spec.js +927 -0
- package/dist/scripts/src/components/List/doc-resources/list-component-data.js +53 -0
- package/dist/scripts/src/components/Markdown/Markdown.spec.js +188 -0
- package/dist/scripts/src/components/ModalDialog/ModalDialog.spec.js +162 -0
- package/dist/scripts/src/components/NavGroup/NavGroup.spec.js +153 -0
- package/dist/scripts/src/components/NavGroup/NavGroupNative.js +2 -2
- package/dist/scripts/src/components/NavLink/NavLink.spec.js +864 -0
- package/dist/scripts/src/components/NavPanel/NavPanel.spec.js +864 -0
- package/dist/scripts/src/components/NoResult/NoResult.spec.js +863 -0
- package/dist/scripts/src/components/NumberBox/NumberBox.spec.js +1231 -0
- package/dist/scripts/src/components/Option/Option.spec.js +472 -0
- package/dist/scripts/src/components/PageMetaTitle/PageMetaTitle.spec.js +80 -0
- package/dist/scripts/src/components/Pagination/Pagination.spec.js +1003 -0
- package/dist/scripts/src/components/ProfileMenu/ProfileMenu.js +20 -0
- package/dist/scripts/src/components/ProgressBar/ProgressBar.spec.js +166 -0
- package/dist/scripts/src/components/Queue/Queue.spec.js +626 -0
- package/dist/scripts/src/components/RadioGroup/RadioGroup.spec.js +479 -0
- package/dist/scripts/src/components/Redirect/Redirect.spec.js +527 -0
- package/dist/scripts/src/components/ResponsiveBar/ResponsiveBar.spec.js +76 -0
- package/dist/scripts/src/components/Select/Select.spec.js +527 -0
- package/dist/scripts/src/components/Slider/Slider.js +2 -0
- package/dist/scripts/src/components/Slider/Slider.spec.js +574 -0
- package/dist/scripts/src/components/Slider/SliderNative.js +62 -25
- package/dist/scripts/src/components/Slot/Slot.spec.js +368 -0
- package/dist/scripts/src/components/SpaceFiller/SpaceFiller.spec.js +184 -0
- package/dist/scripts/src/components/Spinner/Spinner.spec.js +161 -0
- package/dist/scripts/src/components/Splitter/HSplitter.spec.js +104 -0
- package/dist/scripts/src/components/Splitter/Splitter.spec.js +543 -0
- package/dist/scripts/src/components/Splitter/VSplitter.spec.js +104 -0
- package/dist/scripts/src/components/Stack/CHStack.spec.js +86 -0
- package/dist/scripts/src/components/Stack/CVStack.spec.js +86 -0
- package/dist/scripts/src/components/Stack/HStack.spec.js +67 -0
- package/dist/scripts/src/components/Stack/Stack.spec.js +654 -0
- package/dist/scripts/src/components/Stack/VStack.spec.js +67 -0
- package/dist/scripts/src/components/Switch/Switch.spec.js +829 -0
- package/dist/scripts/src/components/Table/Table.spec.js +555 -0
- package/dist/scripts/src/components/Table/doc-resources/list-component-data.js +53 -0
- package/dist/scripts/src/components/TableOfContents/TableOfContents.spec.js +838 -0
- package/dist/scripts/src/components/Tabs/Tabs.spec.js +875 -0
- package/dist/scripts/src/components/Text/Text.spec.js +1075 -0
- package/dist/scripts/src/components/TextArea/TextArea.spec.js +714 -0
- package/dist/scripts/src/components/TextBox/TextBox.spec.js +643 -0
- package/dist/scripts/src/components/Theme/Theme.spec.js +124 -0
- package/dist/scripts/src/components/TimeInput/TimeInput.spec.js +1122 -0
- package/dist/scripts/src/components/Timer/Timer.spec.js +358 -0
- package/dist/scripts/src/components/ToneChangerButton/ToneChangerButton.spec.js +414 -0
- package/dist/scripts/src/components/ToneSwitch/ToneSwitch.spec.js +89 -0
- package/dist/scripts/src/components/Tooltip/Tooltip.spec.js +418 -0
- package/dist/scripts/src/components/chart-color-schemes.js +43 -0
- package/dist/scripts/src/components-core/CompoundComponent.js +1 -1
- package/dist/scripts/src/components-core/RestApiProxy.js +85 -8
- package/dist/scripts/src/components-core/devtools/InspectorDialogVisibilityContext.js +8 -0
- package/dist/scripts/src/components-core/renderers.js +31 -0
- package/dist/scripts/src/components-core/script-runner/simplify-expression.js +386 -0
- package/dist/scripts/src/components-core/theming/component-layout-resolver.js +153 -0
- package/dist/scripts/src/components-core/theming/parse-layout-props.js +98 -0
- package/dist/scripts/src/components-core/theming/themes/solid.js +16 -0
- package/dist/scripts/src/components-core/utils/audio-utils.js +83 -0
- package/dist/scripts/src/index-standalone.js +61 -0
- package/dist/scripts/src/index.js +2 -1
- package/dist/scripts/src/language-server/server-common.js +151 -0
- package/dist/scripts/src/language-server/server-web-worker.js +47 -0
- package/dist/scripts/src/language-server/server.js +42 -0
- package/dist/scripts/src/language-server/services/common/docs-generation.js +73 -0
- package/dist/scripts/src/language-server/services/common/lsp-utils.js +9 -0
- package/dist/scripts/src/language-server/services/common/syntax-node-utilities.js +135 -0
- package/dist/scripts/src/language-server/services/completion.js +270 -0
- package/dist/scripts/src/language-server/services/diagnostic.js +19 -0
- package/dist/scripts/src/language-server/services/format.js +430 -0
- package/dist/scripts/src/language-server/services/hover.js +164 -0
- package/dist/scripts/src/language-server/xmlui-metadata-generated.mjs +16266 -0
- package/dist/scripts/src/logging/xmlui.js +21 -0
- package/dist/scripts/src/parsers/common/utils.js +19 -0
- package/dist/scripts/src/syntax/monaco/grammar.monacoLanguage.js +286 -0
- package/dist/scripts/src/syntax/monaco/index.js +14 -0
- package/dist/scripts/src/syntax/monaco/xmlui-dark.js +25 -0
- package/dist/scripts/src/syntax/monaco/xmlui-light.js +25 -0
- package/dist/scripts/src/syntax/monaco/xmluiscript.monacoLanguage.js +310 -0
- package/dist/scripts/src/syntax/textMate/index.js +14 -0
- package/dist/scripts/src/syntax/textMate/xmlui-dark.json +631 -0
- package/dist/scripts/src/syntax/textMate/xmlui-light.json +565 -0
- package/dist/scripts/src/syntax/textMate/xmlui.json +564 -0
- package/dist/scripts/src/syntax/textMate/xmlui.tmLanguage.json +341 -0
- package/dist/scripts/src/testing/ComponentDrivers.js +1355 -0
- package/dist/scripts/src/testing/assertions.js +444 -0
- package/dist/scripts/src/testing/component-test-helpers.js +389 -0
- package/dist/scripts/src/testing/drivers/DateInputDriver.js +19 -0
- package/dist/scripts/src/testing/drivers/ModalDialogDriver.js +10 -0
- package/dist/scripts/src/testing/drivers/TimeInputDriver.js +22 -0
- package/dist/scripts/src/testing/drivers/TimerDriver.js +64 -0
- package/dist/scripts/src/testing/fixtures.js +487 -0
- package/dist/scripts/src/testing/infrastructure/TestBed.js +17 -0
- package/dist/scripts/src/testing/infrastructure/main.js +9 -0
- package/dist/scripts/src/testing/infrastructure/public/mockServiceWorker.js +266 -0
- package/dist/scripts/src/testing/themed-app-test-helpers.js +139 -0
- package/dist/standalone/xmlui-standalone.es.d.ts +18 -1
- package/dist/standalone/xmlui-standalone.umd.js +36 -36
- package/package.json +1 -1
|
@@ -0,0 +1,527 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const fixtures_1 = require("../../testing/fixtures");
|
|
13
|
+
(0, fixtures_1.test)("dynamic options displayed with Items component", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createSelectDriver, page, }) {
|
|
14
|
+
yield initTestBed(`
|
|
15
|
+
<Select>
|
|
16
|
+
<Items data="{['One', 'Two', 'Three']}" >
|
|
17
|
+
<Option value="{$itemIndex}" label="{$item}" />
|
|
18
|
+
</Items>
|
|
19
|
+
</Select>`);
|
|
20
|
+
const driver = yield createSelectDriver();
|
|
21
|
+
yield driver.click();
|
|
22
|
+
yield (0, fixtures_1.expect)(page.getByRole("option", { name: "One" })).toBeVisible();
|
|
23
|
+
yield (0, fixtures_1.expect)(page.getByRole("option", { name: "Two" })).toBeVisible();
|
|
24
|
+
yield (0, fixtures_1.expect)(page.getByRole("option", { name: "Three" })).toBeVisible();
|
|
25
|
+
}));
|
|
26
|
+
(0, fixtures_1.test)("changing selected option in form", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createSelectDriver }) {
|
|
27
|
+
yield initTestBed(`
|
|
28
|
+
<Form data="{{sel: 'opt1'}}">
|
|
29
|
+
<FormItem testId="mySelect" type="select" bindTo="sel">
|
|
30
|
+
<Option value="opt1" label="first"/>
|
|
31
|
+
<Option value="opt2" label="second"/>
|
|
32
|
+
<Option value="opt3" label="third"/>
|
|
33
|
+
</FormItem>
|
|
34
|
+
</Form>`);
|
|
35
|
+
const driver = yield createSelectDriver("mySelect");
|
|
36
|
+
yield (0, fixtures_1.expect)(driver.component.locator("select")).toHaveValue("opt1");
|
|
37
|
+
yield driver.toggleOptionsVisibility();
|
|
38
|
+
yield driver.selectLabel("second");
|
|
39
|
+
yield (0, fixtures_1.expect)(driver.component.locator("select")).toHaveValue("opt2");
|
|
40
|
+
}));
|
|
41
|
+
(0, fixtures_1.test)("initialValue set to first valid value", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed }) {
|
|
42
|
+
yield initTestBed(`
|
|
43
|
+
<Fragment>
|
|
44
|
+
<Select id="mySelect" initialValue="{0}">
|
|
45
|
+
<Option value="{0}" label="Zero"/>
|
|
46
|
+
<Option value="{1}" label="One"/>
|
|
47
|
+
<Option value="{2}" label="Two"/>
|
|
48
|
+
</Select>
|
|
49
|
+
<Text testId="text">Selected value: {mySelect.value}</Text>
|
|
50
|
+
</Fragment>
|
|
51
|
+
`);
|
|
52
|
+
yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: 0");
|
|
53
|
+
yield (0, fixtures_1.expect)(page.getByText("Zero", { exact: true })).toBeVisible();
|
|
54
|
+
yield (0, fixtures_1.expect)(page.getByText("One", { exact: true })).not.toBeVisible();
|
|
55
|
+
}));
|
|
56
|
+
(0, fixtures_1.test)("initialValue set to non-existant option", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed }) {
|
|
57
|
+
yield initTestBed(`
|
|
58
|
+
<Fragment>
|
|
59
|
+
<Select id="mySelect" initialValue="{42}">
|
|
60
|
+
<Option value="{0}" label="Zero"/>
|
|
61
|
+
<Option value="{1}" label="One"/>
|
|
62
|
+
<Option value="{2}" label="Two"/>
|
|
63
|
+
</Select>
|
|
64
|
+
<Text testId="text">Selected value: {mySelect.value}</Text>
|
|
65
|
+
</Fragment>
|
|
66
|
+
`);
|
|
67
|
+
yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: 42");
|
|
68
|
+
}));
|
|
69
|
+
(0, fixtures_1.test)("reset works with initialValue", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed, createSelectDriver, createButtonDriver, }) {
|
|
70
|
+
yield initTestBed(`
|
|
71
|
+
<Fragment>
|
|
72
|
+
<Select id="mySelect" initialValue="{0}">
|
|
73
|
+
<Option value="{0}" label="Zero"/>
|
|
74
|
+
<Option value="{1}" label="One"/>
|
|
75
|
+
<Option value="{2}" label="Two"/>
|
|
76
|
+
</Select>
|
|
77
|
+
<Button id="resetBtn" label="reset" onClick="mySelect.reset()"/>
|
|
78
|
+
<Text testId="text">Selected value: {mySelect.value}</Text>
|
|
79
|
+
</Fragment>
|
|
80
|
+
`);
|
|
81
|
+
const selectDrv = yield createSelectDriver("mySelect");
|
|
82
|
+
yield selectDrv.toggleOptionsVisibility();
|
|
83
|
+
yield selectDrv.selectLabel("One");
|
|
84
|
+
yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: 1");
|
|
85
|
+
const btnDriver = yield createButtonDriver("resetBtn");
|
|
86
|
+
yield btnDriver.click();
|
|
87
|
+
yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: 0");
|
|
88
|
+
}));
|
|
89
|
+
(0, fixtures_1.test)("reset works with no intialValue", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed, createSelectDriver, createButtonDriver, }) {
|
|
90
|
+
yield initTestBed(`
|
|
91
|
+
<Fragment>
|
|
92
|
+
<Select id="mySelect">
|
|
93
|
+
<Option value="{0}" label="Zero"/>
|
|
94
|
+
<Option value="{1}" label="One"/>
|
|
95
|
+
<Option value="{2}" label="Two"/>
|
|
96
|
+
</Select>
|
|
97
|
+
<Button id="resetBtn" label="reset" onClick="mySelect.reset()"/>
|
|
98
|
+
<Text testId="text">Selected value: {mySelect.value}</Text>
|
|
99
|
+
</Fragment>
|
|
100
|
+
`);
|
|
101
|
+
const selectDrv = yield createSelectDriver("mySelect");
|
|
102
|
+
yield selectDrv.toggleOptionsVisibility();
|
|
103
|
+
yield selectDrv.selectLabel("One");
|
|
104
|
+
yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: 1");
|
|
105
|
+
const btnDriver = yield createButtonDriver("resetBtn");
|
|
106
|
+
yield btnDriver.click();
|
|
107
|
+
yield (0, fixtures_1.expect)(page.getByTestId("text")).not.toContainText("1");
|
|
108
|
+
}));
|
|
109
|
+
(0, fixtures_1.test)("disabled Select cannot be opened", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, createSelectDriver, initTestBed }) {
|
|
110
|
+
yield initTestBed(`
|
|
111
|
+
<Select enabled="{false}">
|
|
112
|
+
<Option value="1" label="One"/>
|
|
113
|
+
<Option value="2" label="Two"/>
|
|
114
|
+
</Select>
|
|
115
|
+
`);
|
|
116
|
+
const driver = yield createSelectDriver();
|
|
117
|
+
yield driver.click({ force: true });
|
|
118
|
+
yield (0, fixtures_1.expect)(page.getByText("One")).not.toBeVisible();
|
|
119
|
+
}));
|
|
120
|
+
(0, fixtures_1.test)("readOnly Select shows options, but value cannot be changed", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed, createSelectDriver, }) {
|
|
121
|
+
yield initTestBed(`
|
|
122
|
+
<Select readOnly initialValue="1">
|
|
123
|
+
<Option value="1" label="One"/>
|
|
124
|
+
<Option value="2" label="Two"/>
|
|
125
|
+
</Select>
|
|
126
|
+
`);
|
|
127
|
+
const driver = yield createSelectDriver();
|
|
128
|
+
yield (0, fixtures_1.expect)(page.getByText("Two")).not.toBeVisible();
|
|
129
|
+
yield (0, fixtures_1.expect)(page.getByText("One")).toBeVisible();
|
|
130
|
+
yield driver.toggleOptionsVisibility();
|
|
131
|
+
yield driver.selectLabel("Two");
|
|
132
|
+
yield (0, fixtures_1.expect)(page.getByText("Two")).not.toBeVisible();
|
|
133
|
+
yield (0, fixtures_1.expect)(page.getByText("One")).toBeVisible();
|
|
134
|
+
// verify dropdown is not visible but value is shown
|
|
135
|
+
}));
|
|
136
|
+
(0, fixtures_1.test)("readOnly multi-Select shows options, but value cannot be changed", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed, createSelectDriver, }) {
|
|
137
|
+
yield initTestBed(`
|
|
138
|
+
<Select readOnly initialValue="{[1, 2]}" multiSelect>
|
|
139
|
+
<Option value="1" label="One"/>
|
|
140
|
+
<Option value="2" label="Two"/>
|
|
141
|
+
<Option value="3" label="Three"/>
|
|
142
|
+
</Select>
|
|
143
|
+
`);
|
|
144
|
+
const driver = yield createSelectDriver();
|
|
145
|
+
yield (0, fixtures_1.expect)(page.getByText("Three")).not.toBeVisible();
|
|
146
|
+
yield (0, fixtures_1.expect)(page.getByText("One")).toBeVisible();
|
|
147
|
+
yield (0, fixtures_1.expect)(page.getByText("Two")).toBeVisible();
|
|
148
|
+
yield driver.toggleOptionsVisibility();
|
|
149
|
+
yield driver.selectLabel("Three");
|
|
150
|
+
yield (0, fixtures_1.expect)(page.getByText("Three")).not.toBeVisible();
|
|
151
|
+
yield (0, fixtures_1.expect)(page.getByText("One")).toBeVisible();
|
|
152
|
+
yield (0, fixtures_1.expect)(page.getByText("Two")).toBeVisible();
|
|
153
|
+
}));
|
|
154
|
+
(0, fixtures_1.test)("disabled Option cannot be selected", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createSelectDriver, page }) {
|
|
155
|
+
yield initTestBed(`
|
|
156
|
+
<Select>
|
|
157
|
+
<Option value="1" label="One"/>
|
|
158
|
+
<Option value="2" label="Two" enabled="{false}"/>
|
|
159
|
+
</Select>
|
|
160
|
+
`);
|
|
161
|
+
yield (0, fixtures_1.expect)(page.getByRole("option", { name: "One" })).not.toBeVisible();
|
|
162
|
+
yield (0, fixtures_1.expect)(page.getByRole("option", { name: "Two" })).not.toBeVisible();
|
|
163
|
+
const driver = yield createSelectDriver();
|
|
164
|
+
yield driver.toggleOptionsVisibility();
|
|
165
|
+
yield driver.selectLabel("Two");
|
|
166
|
+
yield (0, fixtures_1.expect)(page.getByRole("option", { name: "One" })).toBeVisible();
|
|
167
|
+
yield (0, fixtures_1.expect)(page.getByRole("option", { name: "Two" })).toBeVisible();
|
|
168
|
+
}));
|
|
169
|
+
(0, fixtures_1.test)("clicking label brings up the options", { tag: "@smoke" }, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver }) {
|
|
170
|
+
yield initTestBed(`
|
|
171
|
+
<Select label="Choose an option">
|
|
172
|
+
<Option value="1" label="One"/>
|
|
173
|
+
<Option value="2" label="Two"/>
|
|
174
|
+
</Select>
|
|
175
|
+
`);
|
|
176
|
+
yield page.getByLabel("Choose an option").click();
|
|
177
|
+
yield (0, fixtures_1.expect)(page.getByRole("option", { name: "One" })).toBeVisible();
|
|
178
|
+
yield (0, fixtures_1.expect)(page.getByRole("option", { name: "Two" })).toBeVisible();
|
|
179
|
+
}));
|
|
180
|
+
(0, fixtures_1.test)("label displayed for selected numeric value", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed }) {
|
|
181
|
+
yield initTestBed(`
|
|
182
|
+
<Fragment>
|
|
183
|
+
<Select initialValue="{0}" >
|
|
184
|
+
<Option value="{0}" label="Zero"/>
|
|
185
|
+
<Option value="{1}" label="One"/>
|
|
186
|
+
<Option value="{2}" label="Two"/>
|
|
187
|
+
</Select>
|
|
188
|
+
</Fragment>
|
|
189
|
+
`);
|
|
190
|
+
yield (0, fixtures_1.expect)(page.getByText("Zero")).toBeVisible();
|
|
191
|
+
}));
|
|
192
|
+
(0, fixtures_1.test)("autoFocus brings the focus to component", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver, }) {
|
|
193
|
+
yield initTestBed(`
|
|
194
|
+
<Select>
|
|
195
|
+
<Option value="1" label="One"/>
|
|
196
|
+
<Option value="2" label="Two"/>
|
|
197
|
+
</Select>
|
|
198
|
+
<Select testId="focused-select" autoFocus>
|
|
199
|
+
<Option value="1" label="One"/>
|
|
200
|
+
<Option value="2" label="Two"/>
|
|
201
|
+
</Select>
|
|
202
|
+
`);
|
|
203
|
+
const driver = yield createSelectDriver("focused-select");
|
|
204
|
+
yield (0, fixtures_1.expect)(driver.component).toBeFocused();
|
|
205
|
+
}));
|
|
206
|
+
(0, fixtures_1.test)("emptyListTemplate shown when wrapped inside an App component", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver, }) {
|
|
207
|
+
yield initTestBed(`
|
|
208
|
+
<App>
|
|
209
|
+
<Select testId="mySelect">
|
|
210
|
+
<property name="emptyListTemplate">
|
|
211
|
+
<Text value="Nothing to see here!" />
|
|
212
|
+
</property>
|
|
213
|
+
</Select>
|
|
214
|
+
</App>
|
|
215
|
+
`);
|
|
216
|
+
const driver = yield createSelectDriver("mySelect");
|
|
217
|
+
yield driver.click();
|
|
218
|
+
yield (0, fixtures_1.expect)(page.getByText("Nothing to see here!", { exact: true })).toBeVisible();
|
|
219
|
+
}));
|
|
220
|
+
(0, fixtures_1.test)("optionTemplate is shown", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver }) {
|
|
221
|
+
yield initTestBed(`
|
|
222
|
+
<Select>
|
|
223
|
+
<Items items="{[
|
|
224
|
+
{ value: 'opt1', label: 'first' },
|
|
225
|
+
{ value: 'opt2', label: 'second' },
|
|
226
|
+
{ value: 'opt3', label: 'third' },
|
|
227
|
+
]}">
|
|
228
|
+
<Option value="{$item.value}" label="{$item.label}">
|
|
229
|
+
<Text>Template for value {$item.value}</Text>
|
|
230
|
+
</Option>
|
|
231
|
+
</Items>
|
|
232
|
+
</Select>
|
|
233
|
+
`);
|
|
234
|
+
const driver = yield createSelectDriver();
|
|
235
|
+
yield driver.click();
|
|
236
|
+
yield (0, fixtures_1.expect)(page.getByText("Template for value opt1")).toBeVisible();
|
|
237
|
+
yield (0, fixtures_1.expect)(page.getByText("Template for value opt2")).toBeVisible();
|
|
238
|
+
yield (0, fixtures_1.expect)(page.getByText("Template for value opt3")).toBeVisible();
|
|
239
|
+
}));
|
|
240
|
+
(0, fixtures_1.test)("labelBreak prop defaults to false", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver }) {
|
|
241
|
+
yield page.setViewportSize({ width: 300, height: 720 });
|
|
242
|
+
yield initTestBed(`
|
|
243
|
+
<Select
|
|
244
|
+
label="Dignissimos esse quasi esse cupiditate qui qui. Ut provident ad voluptatem tenetur sit consequuntur. Aliquam nisi fugit ut temporibus itaque ducimus rerum. Dolorem reprehenderit qui adipisci. Ullam harum atque ipsa."
|
|
245
|
+
|
|
246
|
+
>
|
|
247
|
+
<Option value="1" label="One"/>
|
|
248
|
+
<Option value="2" label="Two"/>
|
|
249
|
+
</Select>
|
|
250
|
+
`);
|
|
251
|
+
const labelWidth = (yield page.getByText("Dignissimos esse quasi").boundingBox()).width;
|
|
252
|
+
const select = page.getByRole("button").or(page.getByRole("combobox")).first();
|
|
253
|
+
const { width: selectWidth } = yield select.boundingBox();
|
|
254
|
+
(0, fixtures_1.expect)(labelWidth).toBeGreaterThan(selectWidth);
|
|
255
|
+
}));
|
|
256
|
+
(0, fixtures_1.test)("placeholder is shown", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver }) {
|
|
257
|
+
yield initTestBed(`
|
|
258
|
+
<Select placeholder="Please select an item">
|
|
259
|
+
<Option value="opt1" label="first"/>
|
|
260
|
+
<Option value="opt2" label="second"/>
|
|
261
|
+
<Option value="opt3" label="third"/>
|
|
262
|
+
</Select>
|
|
263
|
+
`);
|
|
264
|
+
yield (0, fixtures_1.expect)(page.getByText("Please select an item")).toBeVisible();
|
|
265
|
+
}));
|
|
266
|
+
(0, fixtures_1.test)("Option without label and value is not rendered", { tag: "@smoke" }, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver }) {
|
|
267
|
+
yield initTestBed(`
|
|
268
|
+
<Select placeholder="Please select an item">
|
|
269
|
+
<Option />
|
|
270
|
+
<Option />
|
|
271
|
+
<Option />
|
|
272
|
+
</Select>
|
|
273
|
+
`);
|
|
274
|
+
const driver = yield createSelectDriver();
|
|
275
|
+
yield driver.click();
|
|
276
|
+
yield (0, fixtures_1.expect)(page.getByRole("option")).not.toBeVisible();
|
|
277
|
+
}));
|
|
278
|
+
(0, fixtures_1.test)("Option value defaults to label", { tag: "@smoke" }, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver }) {
|
|
279
|
+
yield initTestBed(`
|
|
280
|
+
<Fragment>
|
|
281
|
+
<Select id="mySelect">
|
|
282
|
+
<Option label="Zero"/>
|
|
283
|
+
<Option label="One"/>
|
|
284
|
+
<Option label="Two"/>
|
|
285
|
+
</Select>
|
|
286
|
+
<Text testId="text">Selected value: {mySelect.value}</Text>
|
|
287
|
+
</Fragment>
|
|
288
|
+
`);
|
|
289
|
+
const driver = yield createSelectDriver("mySelect");
|
|
290
|
+
yield driver.toggleOptionsVisibility();
|
|
291
|
+
yield driver.selectLabel("Zero");
|
|
292
|
+
yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: Zero");
|
|
293
|
+
}));
|
|
294
|
+
fixtures_1.test.describe("searchable select", () => {
|
|
295
|
+
(0, fixtures_1.test)("placeholder is shown", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver }) {
|
|
296
|
+
yield initTestBed(`
|
|
297
|
+
<Select searchable placeholder="Please select an item">
|
|
298
|
+
<Option value="opt1" label="first"/>
|
|
299
|
+
<Option value="opt2" label="second"/>
|
|
300
|
+
<Option value="opt3" label="third"/>
|
|
301
|
+
</Select>
|
|
302
|
+
`);
|
|
303
|
+
yield (0, fixtures_1.expect)(page.getByText("Please select an item")).toBeVisible();
|
|
304
|
+
}));
|
|
305
|
+
(0, fixtures_1.test)("inProgressNotificationMessage shown when inProgress is true", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver, }) {
|
|
306
|
+
yield initTestBed(`
|
|
307
|
+
<Select searchable inProgress inProgressNotificationMessage="in-progress-msg">
|
|
308
|
+
<Option value="opt1" label="first"/>
|
|
309
|
+
<Option value="opt2" label="second"/>
|
|
310
|
+
<Option value="opt3" label="third"/>
|
|
311
|
+
</Select>
|
|
312
|
+
`);
|
|
313
|
+
const driver = yield createSelectDriver();
|
|
314
|
+
yield driver.click();
|
|
315
|
+
yield (0, fixtures_1.expect)(page.getByText("in-progress-msg")).toBeVisible();
|
|
316
|
+
}));
|
|
317
|
+
(0, fixtures_1.test)("inProgressNotificationMessage not shown when inProgress is false", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver, }) {
|
|
318
|
+
yield initTestBed(`
|
|
319
|
+
<Select searchable inProgress="false" inProgressNotificationMessage="in-progress-msg">
|
|
320
|
+
<Option value="opt1" label="first"/>
|
|
321
|
+
<Option value="opt2" label="second"/>
|
|
322
|
+
<Option value="opt3" label="third"/>
|
|
323
|
+
</Select>
|
|
324
|
+
`);
|
|
325
|
+
const driver = yield createSelectDriver();
|
|
326
|
+
yield driver.click();
|
|
327
|
+
yield (0, fixtures_1.expect)(page.getByText("in-progress-msg")).not.toBeVisible();
|
|
328
|
+
}));
|
|
329
|
+
(0, fixtures_1.test)("search filters option labels", { tag: "@smoke" }, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver }) {
|
|
330
|
+
yield initTestBed(`
|
|
331
|
+
<Select searchable>
|
|
332
|
+
<Option value="opt1" label="first"/>
|
|
333
|
+
<Option value="opt2" label="second"/>
|
|
334
|
+
<Option value="opt3" label="third"/>
|
|
335
|
+
</Select>
|
|
336
|
+
`);
|
|
337
|
+
const driver = yield createSelectDriver();
|
|
338
|
+
yield driver.toggleOptionsVisibility();
|
|
339
|
+
yield driver.searchFor("econd");
|
|
340
|
+
const options = yield page.getByRole("option").all();
|
|
341
|
+
(0, fixtures_1.expect)(options).toHaveLength(1);
|
|
342
|
+
yield (0, fixtures_1.expect)(options[0]).toHaveText("second");
|
|
343
|
+
}));
|
|
344
|
+
});
|
|
345
|
+
(0, fixtures_1.test)('labelWidth applies with labelPosition="start"', (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver, }) {
|
|
346
|
+
yield page.setViewportSize({ width: 300, height: 720 });
|
|
347
|
+
yield initTestBed(`
|
|
348
|
+
<Select label="Dignissimos esse quasi" labelWidth="200px" labelPosition="start" >
|
|
349
|
+
<Option value="opt1" label="first"/>
|
|
350
|
+
<Option value="opt2" label="second"/>
|
|
351
|
+
<Option value="opt3" label="third"/>
|
|
352
|
+
<Option value="opt4" label="fourth"/>
|
|
353
|
+
<Option value="opt5" label="fifth"/>
|
|
354
|
+
</Select>
|
|
355
|
+
`);
|
|
356
|
+
const labelWidth = (yield page.getByText("Dignissimos esse quasi").boundingBox()).width;
|
|
357
|
+
(0, fixtures_1.expect)(labelWidth).toBeGreaterThanOrEqual(200);
|
|
358
|
+
}));
|
|
359
|
+
fixtures_1.test.describe("multiSelect", () => {
|
|
360
|
+
(0, fixtures_1.test)("initialValue='{[0]}' works", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed }) {
|
|
361
|
+
yield initTestBed(`
|
|
362
|
+
<Fragment>
|
|
363
|
+
<Select id="mySelect" initialValue="{[0]}" multiSelect>
|
|
364
|
+
<Option value="{0}" label="Zero"/>
|
|
365
|
+
<Option value="{1}" label="One"/>
|
|
366
|
+
<Option value="{2}" label="Two"/>
|
|
367
|
+
</Select>
|
|
368
|
+
<Text testId="text">Selected value: {mySelect.value}</Text>
|
|
369
|
+
</Fragment>
|
|
370
|
+
`);
|
|
371
|
+
yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: 0");
|
|
372
|
+
}));
|
|
373
|
+
(0, fixtures_1.test)("initialValue='{[0,1]}' works", { tag: "@smoke" }, (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed }) {
|
|
374
|
+
yield initTestBed(`
|
|
375
|
+
<Fragment>
|
|
376
|
+
<Select id="mySelect" initialValue="{[0,1]}" multiSelect>
|
|
377
|
+
<Option value="{0}" label="Zero"/>
|
|
378
|
+
<Option value="{1}" label="One"/>
|
|
379
|
+
<Option value="{2}" label="Two"/>
|
|
380
|
+
</Select>
|
|
381
|
+
<Text testId="text">Selected value: {mySelect.value}</Text>
|
|
382
|
+
</Fragment>
|
|
383
|
+
`);
|
|
384
|
+
yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: 0,1");
|
|
385
|
+
}));
|
|
386
|
+
(0, fixtures_1.test)("select multiple items without closing listbox", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed, createSelectDriver, createButtonDriver, }) {
|
|
387
|
+
const { testStateDriver } = yield initTestBed(`
|
|
388
|
+
<Fragment>
|
|
389
|
+
<Select id="mySelect" multiSelect>
|
|
390
|
+
<Option value="{0}" label="Zero"/>
|
|
391
|
+
<Option value="{1}" label="One"/>
|
|
392
|
+
<Option value="{2}" label="Two"/>
|
|
393
|
+
</Select>
|
|
394
|
+
<Text testId="text">Selected value: {mySelect.value}</Text>
|
|
395
|
+
</Fragment>
|
|
396
|
+
`);
|
|
397
|
+
const selectDrv = yield createSelectDriver("mySelect");
|
|
398
|
+
yield selectDrv.toggleOptionsVisibility();
|
|
399
|
+
yield selectDrv.selectMultipleLabels(["Zero", "One"]);
|
|
400
|
+
/* problem is that the listbox closes after the 1st selection is made */
|
|
401
|
+
yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: 0,1");
|
|
402
|
+
}));
|
|
403
|
+
(0, fixtures_1.test)("clicking label brings up the options", { tag: "@smoke" }, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver }) {
|
|
404
|
+
yield initTestBed(`
|
|
405
|
+
<Select label="Choose an option" multiSelect>
|
|
406
|
+
<Option value="1" label="One"/>
|
|
407
|
+
<Option value="2" label="Two"/>
|
|
408
|
+
</Select>
|
|
409
|
+
`);
|
|
410
|
+
yield page.getByLabel("Choose an option").click();
|
|
411
|
+
yield (0, fixtures_1.expect)(page.getByRole("option", { name: "One" })).toBeVisible();
|
|
412
|
+
yield (0, fixtures_1.expect)(page.getByRole("option", { name: "Two" })).toBeVisible();
|
|
413
|
+
}));
|
|
414
|
+
(0, fixtures_1.test)("labelBreak prop defaults to false", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver }) {
|
|
415
|
+
yield page.setViewportSize({ width: 300, height: 720 });
|
|
416
|
+
yield initTestBed(`
|
|
417
|
+
<Select
|
|
418
|
+
label="Dignissimos esse quasi esse cupiditate qui qui. Ut provident ad voluptatem tenetur sit consequuntur. Aliquam nisi fugit ut temporibus itaque ducimus rerum. Dolorem reprehenderit qui adipisci. Ullam harum atque ipsa."
|
|
419
|
+
multiSelect>
|
|
420
|
+
<Option value="1" label="One"/>
|
|
421
|
+
<Option value="2" label="Two"/>
|
|
422
|
+
</Select>
|
|
423
|
+
`);
|
|
424
|
+
const labelWidth = (yield page.getByText("Dignissimos esse quasi").boundingBox()).width;
|
|
425
|
+
const select = page.getByRole("button").or(page.getByRole("combobox")).first();
|
|
426
|
+
const { width: selectWidth } = yield select.boundingBox();
|
|
427
|
+
(0, fixtures_1.expect)(labelWidth).toBeGreaterThan(selectWidth);
|
|
428
|
+
}));
|
|
429
|
+
(0, fixtures_1.test)('labelPosition="start" is left in ltr language', (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, }) {
|
|
430
|
+
yield initTestBed(`
|
|
431
|
+
<Select multiSelect label="hi there" labelPosition="start" labelBreak="false">
|
|
432
|
+
<Option value="1" label="One"/>
|
|
433
|
+
<Option value="2" label="Two"/>
|
|
434
|
+
</Select>
|
|
435
|
+
`);
|
|
436
|
+
const { x: labelX } = yield page.getByText("hi there").boundingBox();
|
|
437
|
+
const select = page.getByRole("button").or(page.getByRole("combobox")).first();
|
|
438
|
+
const { x: selectX } = yield select.boundingBox();
|
|
439
|
+
(0, fixtures_1.expect)(labelX).toBeLessThan(selectX);
|
|
440
|
+
}));
|
|
441
|
+
(0, fixtures_1.test)('labelPosition="start" is right in rtl language', (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, }) {
|
|
442
|
+
yield initTestBed(`
|
|
443
|
+
<VStack direction="rtl">
|
|
444
|
+
<Select multiSelect label="hi there" labelPosition="start" labelBreak="false">
|
|
445
|
+
<Option value="1" label="One" />
|
|
446
|
+
<Option value="2" label="Two" />
|
|
447
|
+
</Select>
|
|
448
|
+
</VStack>
|
|
449
|
+
`);
|
|
450
|
+
const { x: labelX } = yield page.getByText("hi there").boundingBox();
|
|
451
|
+
const select = page.getByRole("button").or(page.getByRole("combobox")).first();
|
|
452
|
+
const { x: selectX } = yield select.boundingBox();
|
|
453
|
+
(0, fixtures_1.expect)(labelX).toBeGreaterThan(selectX);
|
|
454
|
+
}));
|
|
455
|
+
(0, fixtures_1.test)("multiSelect autoFocus brings the focus to component", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver, }) {
|
|
456
|
+
yield initTestBed(`
|
|
457
|
+
<Select multiSelect>
|
|
458
|
+
<Option value="1" label="One"/>
|
|
459
|
+
<Option value="2" label="Two"/>
|
|
460
|
+
</Select>
|
|
461
|
+
<Select testId="focused-select" multmultiSelect autoFocus>
|
|
462
|
+
<Option value="1" label="One"/>
|
|
463
|
+
<Option value="2" label="Two"/>
|
|
464
|
+
</Select>
|
|
465
|
+
`);
|
|
466
|
+
const driver = yield createSelectDriver("focused-select");
|
|
467
|
+
yield (0, fixtures_1.expect)(driver.component).toBeFocused();
|
|
468
|
+
}));
|
|
469
|
+
(0, fixtures_1.test)("autoFocus brings the focus to component", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, createSelectDriver, }) {
|
|
470
|
+
yield initTestBed(`
|
|
471
|
+
<Select initialValue="opt1" placeholder="Select..." multiSelect>
|
|
472
|
+
<property name="valueTemplate">
|
|
473
|
+
<HStack>
|
|
474
|
+
<Text>{$item.value}={$item.label}</Text>
|
|
475
|
+
<Button
|
|
476
|
+
variant="ghost"
|
|
477
|
+
icon="close"
|
|
478
|
+
size="xs"
|
|
479
|
+
testId="remove-item-btn"
|
|
480
|
+
onClick="$itemContext.removeItem()"/>
|
|
481
|
+
</HStack>
|
|
482
|
+
</property>
|
|
483
|
+
<Option value="opt1" label="first"/>
|
|
484
|
+
<Option value="opt2" label="second"/>
|
|
485
|
+
<Option value="opt3" label="third"/>
|
|
486
|
+
</Select>
|
|
487
|
+
`);
|
|
488
|
+
const driver = yield createSelectDriver();
|
|
489
|
+
yield driver.toggleOptionsVisibility();
|
|
490
|
+
yield driver.selectLabel("first");
|
|
491
|
+
yield (0, fixtures_1.expect)(page.getByText("opt1=first", { exact: true })).toBeVisible();
|
|
492
|
+
yield page.getByTestId("remove-item-btn").click();
|
|
493
|
+
yield (0, fixtures_1.expect)(page.getByText("opt1=first", { exact: true })).not.toBeVisible();
|
|
494
|
+
}));
|
|
495
|
+
});
|
|
496
|
+
fixtures_1.test.describe("searchable multiselect", { tag: "@smoke" }, () => {
|
|
497
|
+
(0, fixtures_1.test)("searching for and selecting 2 items works", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed, createSelectDriver, }) {
|
|
498
|
+
yield initTestBed(`
|
|
499
|
+
<Fragment>
|
|
500
|
+
<Select id="mySelect" testId="mySelect" multiSelect searchable>
|
|
501
|
+
<Option value="{0}" label="Zero"/>
|
|
502
|
+
<Option value="{1}" label="One"/>
|
|
503
|
+
<Option value="{2}" label="Two"/>
|
|
504
|
+
</Select>
|
|
505
|
+
<Text testId="text">Selected value: {mySelect.value}</Text>
|
|
506
|
+
</Fragment>
|
|
507
|
+
`);
|
|
508
|
+
const driver = yield createSelectDriver("mySelect");
|
|
509
|
+
yield driver.toggleOptionsVisibility();
|
|
510
|
+
yield driver.selectFirstLabelPostSearh("One");
|
|
511
|
+
yield driver.selectFirstLabelPostSearh("Two");
|
|
512
|
+
yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: 1,2");
|
|
513
|
+
}));
|
|
514
|
+
});
|
|
515
|
+
//this is an upstream issue: https://github.com/radix-ui/primitives/issues/3135
|
|
516
|
+
(0, fixtures_1.test)("initialValue honored when used within Form", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
|
|
517
|
+
yield initTestBed(`
|
|
518
|
+
<Form>
|
|
519
|
+
<Select id="mySelect" initialValue="opt3">
|
|
520
|
+
<Option value="opt1" label="first"/>
|
|
521
|
+
<Option value="opt2" label="second"/>
|
|
522
|
+
<Option value="opt3" label="third"/>
|
|
523
|
+
</Select>
|
|
524
|
+
<Text testId="text">Selected value: {mySelect.value}</Text>
|
|
525
|
+
</Form>`);
|
|
526
|
+
yield (0, fixtures_1.expect)(page.getByTestId("text")).toHaveText("Selected value: opt3");
|
|
527
|
+
}));
|
|
@@ -88,6 +88,8 @@ exports.SliderMd = (0, metadata_helpers_1.createMetadata)({
|
|
|
88
88
|
[`borderStyle-thumb-${COMP}`]: "solid",
|
|
89
89
|
[`borderColor-thumb-${COMP}`]: "$color-surface-50",
|
|
90
90
|
[`backgroundColor-thumb-${COMP}`]: "$color-primary",
|
|
91
|
+
[`backgroundColor-thumb-${COMP}--focus`]: "$color-primary",
|
|
92
|
+
[`boxShadow-thumb-${COMP}--focus`]: "0 0 0 6px rgb(from $color-primary r g b / 0.4)",
|
|
91
93
|
[`backgroundColor-thumb-${COMP}--hover`]: "$color-primary",
|
|
92
94
|
[`boxShadow-thumb-${COMP}--hover`]: "0 0 0 6px rgb(from $color-primary r g b / 0.4)",
|
|
93
95
|
[`backgroundColor-thumb-${COMP}--active`]: "$color-primary-400",
|