xmlui 0.11.4 → 0.11.6
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/bin/index.cjs +8836 -0
- package/dist/bin/index.js +8825 -0
- package/dist/lib/{apiInterceptorWorker-QiltRtq1.js → apiInterceptorWorker-dwrAyq6l.js} +126 -151
- package/dist/lib/{index-Cq0EMm3L.js → index-x4orhWfi.js} +1888 -2133
- package/dist/lib/index.css +1 -1
- package/dist/lib/{initMock-DCigV4Zh.js → initMock-DrUirixi.js} +19 -22
- package/dist/lib/language-server-web-worker.js +13 -5
- package/dist/lib/language-server.js +11 -3
- package/dist/lib/{metadata-utils-BiolWMg9.js → metadata-utils-2bsMr4Gd.js} +58 -26
- package/dist/lib/{server-common-DyCHOk-z.js → server-common-DI3W4cob.js} +6297 -5930
- package/dist/lib/syntax-textmate.js +8 -2472
- package/dist/lib/testing.d.ts +1 -0
- package/dist/lib/testing.js +20 -23
- package/dist/lib/{transform-DHf9tQF7.js → transform-CQ_6R-43.js} +159 -126
- package/dist/lib/vite-xmlui-plugin.d.ts +10 -0
- package/dist/lib/vite-xmlui-plugin.js +8316 -0
- package/dist/lib/{xmlui-parser-CHN3mADy.js → xmlui-parser-CW8YmGjO.js} +10 -11
- package/dist/lib/xmlui-parser.js +2 -2
- package/dist/lib/{xmlui-serializer-CYNSHAlP.js → xmlui-serializer-CeCcgdVR.js} +19 -19
- package/dist/lib/xmlui.d.ts +122 -1
- package/dist/lib/xmlui.js +8 -3
- package/dist/metadata/{apiInterceptorWorker-Dql7QGw2.js → apiInterceptorWorker-Wgm2_zjg.js} +124 -149
- package/dist/metadata/{collectedComponentMetadata-CLaDZhmc.js → collectedComponentMetadata-BGdap_gu.js} +1919 -2124
- package/dist/metadata/{initMock-Buqah4JF.js → initMock-DlJ0S4Uy.js} +19 -22
- package/dist/metadata/xmlui-metadata.css +1 -0
- package/dist/metadata/xmlui-metadata.js +1 -1
- package/dist/metadata/xmlui-metadata.umd.cjs +3 -3
- package/dist/standalone/xmlui-standalone.es.d.ts +171 -2
- package/dist/standalone/xmlui-standalone.umd.js +36 -37
- package/package.json +20 -50
- package/dist/lib/vite-xmlui-plugin/index.js +0 -13985
- package/dist/lib/vite-xmlui-plugin/package.json +0 -3
- package/dist/metadata/style.css +0 -1
- package/dist/scripts/bin/bootstrap.cjs +0 -4
- package/dist/scripts/bin/build-lib.js +0 -126
- package/dist/scripts/bin/build.js +0 -266
- package/dist/scripts/bin/index.js +0 -167
- package/dist/scripts/bin/preview.js +0 -44
- package/dist/scripts/bin/start.js +0 -52
- package/dist/scripts/bin/vite-xmlui-plugin.js +0 -109
- package/dist/scripts/bin/viteConfig.js +0 -144
- package/dist/scripts/package.json +0 -285
- package/dist/scripts/src/abstractions/ActionDefs.js +0 -2
- package/dist/scripts/src/abstractions/AppContextDefs.js +0 -4
- package/dist/scripts/src/abstractions/ComponentDefs.js +0 -2
- package/dist/scripts/src/abstractions/ContainerDefs.js +0 -2
- package/dist/scripts/src/abstractions/ExtensionDefs.js +0 -2
- package/dist/scripts/src/abstractions/FunctionDefs.js +0 -2
- package/dist/scripts/src/abstractions/RendererDefs.js +0 -2
- package/dist/scripts/src/abstractions/ThemingDefs.js +0 -2
- package/dist/scripts/src/abstractions/scripting/BlockScope.js +0 -2
- package/dist/scripts/src/abstractions/scripting/Compilation.js +0 -2
- package/dist/scripts/src/abstractions/scripting/LogicalThread.js +0 -2
- package/dist/scripts/src/abstractions/scripting/LoopScope.js +0 -2
- package/dist/scripts/src/abstractions/scripting/ScriptParserError.js +0 -2
- package/dist/scripts/src/abstractions/scripting/Token.js +0 -2
- package/dist/scripts/src/abstractions/scripting/TryScope.js +0 -2
- package/dist/scripts/src/abstractions/scripting/TryScopeExp.js +0 -2
- package/dist/scripts/src/abstractions/scripting/modules.js +0 -2
- package/dist/scripts/src/components/APICall/APICall.js +0 -130
- package/dist/scripts/src/components/APICall/APICall.spec.js +0 -910
- package/dist/scripts/src/components/APICall/APICallNative.js +0 -36
- package/dist/scripts/src/components/Accordion/Accordion.js +0 -97
- package/dist/scripts/src/components/Accordion/Accordion.spec.js +0 -969
- package/dist/scripts/src/components/Accordion/AccordionContext.js +0 -20
- package/dist/scripts/src/components/Accordion/AccordionItem.js +0 -35
- package/dist/scripts/src/components/Accordion/AccordionItemNative.js +0 -95
- package/dist/scripts/src/components/Accordion/AccordionNative.js +0 -141
- package/dist/scripts/src/components/Animation/AnimationNative.js +0 -263
- package/dist/scripts/src/components/App/App.js +0 -581
- package/dist/scripts/src/components/App/App.spec.js +0 -331
- package/dist/scripts/src/components/App/AppLayoutContext.js +0 -49
- package/dist/scripts/src/components/App/AppNative.js +0 -308
- package/dist/scripts/src/components/App/AppStateContext.js +0 -9
- package/dist/scripts/src/components/App/IndexerContext.js +0 -44
- package/dist/scripts/src/components/App/LinkInfoContext.js +0 -9
- package/dist/scripts/src/components/App/SearchContext.js +0 -35
- package/dist/scripts/src/components/App/Sheet.js +0 -99
- package/dist/scripts/src/components/AppHeader/AppHeader.js +0 -58
- package/dist/scripts/src/components/AppHeader/AppHeader.spec.js +0 -169
- package/dist/scripts/src/components/AppHeader/AppHeaderNative.js +0 -72
- package/dist/scripts/src/components/AppState/AppState.js +0 -75
- package/dist/scripts/src/components/AppState/AppState.spec.js +0 -292
- package/dist/scripts/src/components/AppState/AppStateNative.js +0 -51
- package/dist/scripts/src/components/AutoComplete/AutoComplete.js +0 -109
- package/dist/scripts/src/components/AutoComplete/AutoComplete.spec.js +0 -546
- package/dist/scripts/src/components/AutoComplete/AutoCompleteContext.js +0 -19
- package/dist/scripts/src/components/AutoComplete/AutoCompleteNative.js +0 -498
- package/dist/scripts/src/components/Avatar/Avatar.js +0 -55
- package/dist/scripts/src/components/Avatar/Avatar.spec.js +0 -1514
- package/dist/scripts/src/components/Avatar/AvatarNative.js +0 -58
- package/dist/scripts/src/components/Backdrop/Backdrop.js +0 -40
- package/dist/scripts/src/components/Backdrop/Backdrop.spec.js +0 -131
- package/dist/scripts/src/components/Backdrop/BackdropNative.js +0 -25
- package/dist/scripts/src/components/Badge/Badge.js +0 -81
- package/dist/scripts/src/components/Badge/Badge.spec.js +0 -2214
- package/dist/scripts/src/components/Badge/BadgeNative.js +0 -46
- package/dist/scripts/src/components/Bookmark/Bookmark.js +0 -48
- package/dist/scripts/src/components/Bookmark/Bookmark.spec.js +0 -230
- package/dist/scripts/src/components/Bookmark/BookmarkNative.js +0 -55
- package/dist/scripts/src/components/Breakout/Breakout.js +0 -17
- package/dist/scripts/src/components/Breakout/Breakout.spec.js +0 -56
- package/dist/scripts/src/components/Breakout/BreakoutNative.js +0 -24
- package/dist/scripts/src/components/Button/Button-style.spec.js +0 -274
- package/dist/scripts/src/components/Button/Button.js +0 -171
- package/dist/scripts/src/components/Button/Button.spec.js +0 -425
- package/dist/scripts/src/components/Button/ButtonNative.js +0 -109
- package/dist/scripts/src/components/Card/Card.js +0 -89
- package/dist/scripts/src/components/Card/Card.spec.js +0 -150
- package/dist/scripts/src/components/Card/CardNative.js +0 -41
- package/dist/scripts/src/components/Carousel/Carousel.js +0 -133
- package/dist/scripts/src/components/Carousel/Carousel.spec.js +0 -557
- package/dist/scripts/src/components/Carousel/CarouselContext.js +0 -57
- package/dist/scripts/src/components/Carousel/CarouselItem.js +0 -15
- package/dist/scripts/src/components/Carousel/CarouselItemNative.js +0 -40
- package/dist/scripts/src/components/Carousel/CarouselNative.js +0 -195
- package/dist/scripts/src/components/ChangeListener/ChangeListener.js +0 -34
- package/dist/scripts/src/components/ChangeListener/ChangeListener.spec.js +0 -169
- package/dist/scripts/src/components/ChangeListener/ChangeListenerNative.js +0 -30
- package/dist/scripts/src/components/Charts/AreaChart/AreaChart.js +0 -92
- package/dist/scripts/src/components/Charts/AreaChart/AreaChart.spec.js +0 -999
- package/dist/scripts/src/components/Charts/AreaChart/AreaChartNative.js +0 -127
- package/dist/scripts/src/components/Charts/BarChart/BarChart.js +0 -97
- package/dist/scripts/src/components/Charts/BarChart/BarChart.spec.js +0 -597
- package/dist/scripts/src/components/Charts/BarChart/BarChartNative.js +0 -317
- package/dist/scripts/src/components/Charts/DonutChart/DonutChart.js +0 -60
- package/dist/scripts/src/components/Charts/DonutChart/DonutChart.spec.js +0 -608
- package/dist/scripts/src/components/Charts/LabelList/LabelList.js +0 -41
- package/dist/scripts/src/components/Charts/LabelList/LabelList.spec.js +0 -539
- package/dist/scripts/src/components/Charts/LabelList/LabelListNative.js +0 -25
- package/dist/scripts/src/components/Charts/Legend/Legend.js +0 -33
- package/dist/scripts/src/components/Charts/Legend/Legend.spec.js +0 -558
- package/dist/scripts/src/components/Charts/Legend/LegendNative.js +0 -64
- package/dist/scripts/src/components/Charts/LineChart/LineChart.js +0 -94
- package/dist/scripts/src/components/Charts/LineChart/LineChart.spec.js +0 -450
- package/dist/scripts/src/components/Charts/LineChart/LineChartNative.js +0 -192
- package/dist/scripts/src/components/Charts/PieChart/PieChart.js +0 -64
- package/dist/scripts/src/components/Charts/PieChart/PieChart.spec.js +0 -584
- package/dist/scripts/src/components/Charts/PieChart/PieChartNative.js +0 -167
- package/dist/scripts/src/components/Charts/RadarChart/RadarChart.js +0 -92
- package/dist/scripts/src/components/Charts/RadarChart/RadarChart.spec.js +0 -571
- package/dist/scripts/src/components/Charts/RadarChart/RadarChartNative.js +0 -125
- package/dist/scripts/src/components/Charts/Tooltip/TooltipContent.js +0 -27
- package/dist/scripts/src/components/Charts/Tooltip/TooltipContent.spec.js +0 -451
- package/dist/scripts/src/components/Charts/utils/ChartProvider.js +0 -65
- package/dist/scripts/src/components/Charts/utils/abstractions.js +0 -26
- package/dist/scripts/src/components/Checkbox/Checkbox.js +0 -81
- package/dist/scripts/src/components/Checkbox/Checkbox.spec.js +0 -900
- package/dist/scripts/src/components/CodeBlock/CodeBlock.js +0 -42
- package/dist/scripts/src/components/CodeBlock/CodeBlock.spec.js +0 -196
- package/dist/scripts/src/components/CodeBlock/CodeBlockNative.js +0 -127
- package/dist/scripts/src/components/CodeBlock/highlight-code.js +0 -273
- package/dist/scripts/src/components/ColorPicker/ColorPicker.js +0 -54
- package/dist/scripts/src/components/ColorPicker/ColorPicker.spec.js +0 -355
- package/dist/scripts/src/components/ColorPicker/ColorPickerNative.js +0 -86
- package/dist/scripts/src/components/Column/Column.js +0 -89
- package/dist/scripts/src/components/Column/ColumnNative.js +0 -49
- package/dist/scripts/src/components/Column/TableContext.js +0 -12
- package/dist/scripts/src/components/Column/doc-resources/list-component-data.js +0 -53
- package/dist/scripts/src/components/ComponentProvider.js +0 -811
- package/dist/scripts/src/components/ComponentRegistryContext.js +0 -44
- package/dist/scripts/src/components/ContentSeparator/ContentSeparator.js +0 -51
- package/dist/scripts/src/components/ContentSeparator/ContentSeparator.spec.js +0 -531
- package/dist/scripts/src/components/ContentSeparator/ContentSeparatorNative.js +0 -31
- package/dist/scripts/src/components/DataSource/DataSource.js +0 -124
- package/dist/scripts/src/components/DateInput/DateInput.js +0 -197
- package/dist/scripts/src/components/DateInput/DateInput.spec.js +0 -1023
- package/dist/scripts/src/components/DateInput/DateInputNative.js +0 -734
- package/dist/scripts/src/components/DatePicker/DatePicker.js +0 -146
- package/dist/scripts/src/components/DatePicker/DatePicker.spec.js +0 -394
- package/dist/scripts/src/components/DatePicker/DatePickerNative.js +0 -326
- package/dist/scripts/src/components/DropdownMenu/DropdownMenu.js +0 -196
- package/dist/scripts/src/components/DropdownMenu/DropdownMenu.spec.js +0 -331
- package/dist/scripts/src/components/DropdownMenu/DropdownMenuNative.js +0 -146
- package/dist/scripts/src/components/EmojiSelector/EmojiSelector.js +0 -26
- package/dist/scripts/src/components/EmojiSelector/EmojiSelector.spec.js +0 -29
- package/dist/scripts/src/components/EmojiSelector/EmojiSelectorNative.js +0 -71
- package/dist/scripts/src/components/ExpandableItem/ExpandableItem.js +0 -101
- package/dist/scripts/src/components/ExpandableItem/ExpandableItem.spec.js +0 -435
- package/dist/scripts/src/components/ExpandableItem/ExpandableItemNative.js +0 -109
- package/dist/scripts/src/components/FileInput/FileInput.js +0 -80
- package/dist/scripts/src/components/FileInput/FileInput.spec.js +0 -285
- package/dist/scripts/src/components/FileInput/FileInputNative.js +0 -161
- package/dist/scripts/src/components/FileUploadDropZone/FileUploadDropZone.js +0 -58
- package/dist/scripts/src/components/FileUploadDropZone/FileUploadDropZone.spec.js +0 -296
- package/dist/scripts/src/components/FileUploadDropZone/FileUploadDropZoneNative.js +0 -134
- package/dist/scripts/src/components/FlowLayout/FlowLayout.js +0 -65
- package/dist/scripts/src/components/FlowLayout/FlowLayout.spec.js +0 -518
- package/dist/scripts/src/components/FlowLayout/FlowLayoutNative.js +0 -153
- package/dist/scripts/src/components/Footer/Footer.js +0 -45
- package/dist/scripts/src/components/Footer/Footer.spec.js +0 -991
- package/dist/scripts/src/components/Footer/FooterNative.js +0 -35
- package/dist/scripts/src/components/Form/Form.js +0 -161
- package/dist/scripts/src/components/Form/Form.spec.js +0 -1719
- package/dist/scripts/src/components/Form/FormContext.js +0 -124
- package/dist/scripts/src/components/Form/FormNative.js +0 -463
- package/dist/scripts/src/components/Form/formActions.js +0 -115
- package/dist/scripts/src/components/FormItem/FormItem.js +0 -231
- package/dist/scripts/src/components/FormItem/FormItem.spec.js +0 -1022
- package/dist/scripts/src/components/FormItem/FormItemNative.js +0 -255
- package/dist/scripts/src/components/FormItem/HelperText.js +0 -27
- package/dist/scripts/src/components/FormItem/ItemWithLabel.js +0 -52
- package/dist/scripts/src/components/FormItem/Validations.js +0 -389
- package/dist/scripts/src/components/FormSection/FormSection.js +0 -56
- package/dist/scripts/src/components/Fragment/Fragment.js +0 -24
- package/dist/scripts/src/components/Fragment/Fragment.spec.js +0 -50
- package/dist/scripts/src/components/Heading/H1.spec.js +0 -66
- package/dist/scripts/src/components/Heading/H2.spec.js +0 -66
- package/dist/scripts/src/components/Heading/H3.spec.js +0 -66
- package/dist/scripts/src/components/Heading/H4.spec.js +0 -66
- package/dist/scripts/src/components/Heading/H5.spec.js +0 -66
- package/dist/scripts/src/components/Heading/H6.spec.js +0 -66
- package/dist/scripts/src/components/Heading/Heading.js +0 -396
- package/dist/scripts/src/components/Heading/Heading.spec.js +0 -966
- package/dist/scripts/src/components/Heading/HeadingNative.js +0 -98
- package/dist/scripts/src/components/Heading/abstractions.js +0 -4
- package/dist/scripts/src/components/HoverCard/HoverCard.js +0 -18
- package/dist/scripts/src/components/HoverCard/HovercardNative.js +0 -44
- package/dist/scripts/src/components/HtmlTags/HtmlTags.js +0 -1441
- package/dist/scripts/src/components/HtmlTags/HtmlTags.spec.js +0 -69
- package/dist/scripts/src/components/IFrame/IFrame.js +0 -77
- package/dist/scripts/src/components/IFrame/IFrame.spec.js +0 -527
- package/dist/scripts/src/components/IFrame/IFrameNative.js +0 -46
- package/dist/scripts/src/components/Icon/AdmonitionDanger.js +0 -10
- package/dist/scripts/src/components/Icon/AdmonitionInfo.js +0 -10
- package/dist/scripts/src/components/Icon/AdmonitionNote.js +0 -10
- package/dist/scripts/src/components/Icon/AdmonitionTip.js +0 -10
- package/dist/scripts/src/components/Icon/AdmonitionWarning.js +0 -10
- package/dist/scripts/src/components/Icon/ApiIcon.js +0 -10
- package/dist/scripts/src/components/Icon/ArrowDropDown.js +0 -11
- package/dist/scripts/src/components/Icon/ArrowDropUp.js +0 -11
- package/dist/scripts/src/components/Icon/ArrowLeft.js +0 -11
- package/dist/scripts/src/components/Icon/ArrowRight.js +0 -11
- package/dist/scripts/src/components/Icon/Attach.js +0 -10
- package/dist/scripts/src/components/Icon/Binding.js +0 -11
- package/dist/scripts/src/components/Icon/BoardIcon.js +0 -7
- package/dist/scripts/src/components/Icon/BoxIcon.js +0 -10
- package/dist/scripts/src/components/Icon/CheckIcon.js +0 -7
- package/dist/scripts/src/components/Icon/ChevronDownIcon.js +0 -7
- package/dist/scripts/src/components/Icon/ChevronLeft.js +0 -7
- package/dist/scripts/src/components/Icon/ChevronRight.js +0 -7
- package/dist/scripts/src/components/Icon/ChevronUpIcon.js +0 -7
- package/dist/scripts/src/components/Icon/CodeFileIcon.js +0 -10
- package/dist/scripts/src/components/Icon/CodeSandbox.js +0 -10
- package/dist/scripts/src/components/Icon/CompactListIcon.js +0 -7
- package/dist/scripts/src/components/Icon/ContentCopyIcon.js +0 -7
- package/dist/scripts/src/components/Icon/DarkToLightIcon.js +0 -10
- package/dist/scripts/src/components/Icon/DatabaseIcon.js +0 -11
- package/dist/scripts/src/components/Icon/DocFileIcon.js +0 -10
- package/dist/scripts/src/components/Icon/DocIcon.js +0 -10
- package/dist/scripts/src/components/Icon/DotMenuHorizontalIcon.js +0 -7
- package/dist/scripts/src/components/Icon/DotMenuIcon.js +0 -7
- package/dist/scripts/src/components/Icon/EmailIcon.js +0 -7
- package/dist/scripts/src/components/Icon/EmptyFolderIcon.js +0 -10
- package/dist/scripts/src/components/Icon/ErrorIcon.js +0 -7
- package/dist/scripts/src/components/Icon/ExpressionIcon.js +0 -10
- package/dist/scripts/src/components/Icon/FillPlusCricleIcon.js +0 -7
- package/dist/scripts/src/components/Icon/FilterIcon.js +0 -10
- package/dist/scripts/src/components/Icon/FolderIcon.js +0 -10
- package/dist/scripts/src/components/Icon/GlobeIcon.js +0 -7
- package/dist/scripts/src/components/Icon/HomeIcon.js +0 -7
- package/dist/scripts/src/components/Icon/HyperLinkIcon.js +0 -7
- package/dist/scripts/src/components/Icon/Icon.js +0 -42
- package/dist/scripts/src/components/Icon/Icon.spec.js +0 -527
- package/dist/scripts/src/components/Icon/IconNative.js +0 -127
- package/dist/scripts/src/components/Icon/ImageFileIcon.js +0 -10
- package/dist/scripts/src/components/Icon/Inspect.js +0 -10
- package/dist/scripts/src/components/Icon/LightToDark.js +0 -10
- package/dist/scripts/src/components/Icon/LinkIcon.js +0 -7
- package/dist/scripts/src/components/Icon/ListIcon.js +0 -7
- package/dist/scripts/src/components/Icon/LooseListIcon.js +0 -7
- package/dist/scripts/src/components/Icon/MoonIcon.js +0 -10
- package/dist/scripts/src/components/Icon/MoreOptionsIcon.js +0 -7
- package/dist/scripts/src/components/Icon/NoSortIcon.js +0 -8
- package/dist/scripts/src/components/Icon/PDFIcon.js +0 -10
- package/dist/scripts/src/components/Icon/PenIcon.js +0 -7
- package/dist/scripts/src/components/Icon/PhoneIcon.js +0 -7
- package/dist/scripts/src/components/Icon/PhotoIcon.js +0 -10
- package/dist/scripts/src/components/Icon/PlusIcon.js +0 -7
- package/dist/scripts/src/components/Icon/SearchIcon.js +0 -7
- package/dist/scripts/src/components/Icon/ShareIcon.js +0 -10
- package/dist/scripts/src/components/Icon/SortAscendingIcon.js +0 -8
- package/dist/scripts/src/components/Icon/SortDescendingIcon.js +0 -8
- package/dist/scripts/src/components/Icon/StarsIcon.js +0 -10
- package/dist/scripts/src/components/Icon/SunIcon.js +0 -10
- package/dist/scripts/src/components/Icon/TableDeleteColumnIcon.js +0 -7
- package/dist/scripts/src/components/Icon/TableDeleteRowIcon.js +0 -7
- package/dist/scripts/src/components/Icon/TableInsertColumnIcon.js +0 -7
- package/dist/scripts/src/components/Icon/TableInsertRowIcon.js +0 -7
- package/dist/scripts/src/components/Icon/TrashIcon.js +0 -7
- package/dist/scripts/src/components/Icon/TrendingDownIcon.js +0 -10
- package/dist/scripts/src/components/Icon/TrendingLevelIcon.js +0 -10
- package/dist/scripts/src/components/Icon/TrendingUpIcon.js +0 -10
- package/dist/scripts/src/components/Icon/TxtIcon.js +0 -10
- package/dist/scripts/src/components/Icon/UnknownFileIcon.js +0 -10
- package/dist/scripts/src/components/Icon/UnlinkIcon.js +0 -10
- package/dist/scripts/src/components/Icon/UserIcon.js +0 -7
- package/dist/scripts/src/components/Icon/WarningIcon.js +0 -7
- package/dist/scripts/src/components/Icon/XlsIcon.js +0 -10
- package/dist/scripts/src/components/IconProvider.js +0 -300
- package/dist/scripts/src/components/IconRegistryContext.js +0 -318
- package/dist/scripts/src/components/Image/Image.js +0 -52
- package/dist/scripts/src/components/Image/Image.spec.js +0 -198
- package/dist/scripts/src/components/Image/ImageNative.js +0 -73
- package/dist/scripts/src/components/Input/InputAdornment.js +0 -28
- package/dist/scripts/src/components/Input/InputDivider.js +0 -35
- package/dist/scripts/src/components/Input/InputLabel.js +0 -25
- package/dist/scripts/src/components/Input/PartialInput.js +0 -155
- package/dist/scripts/src/components/Input/index.js +0 -5
- package/dist/scripts/src/components/InspectButton/InspectButton.js +0 -35
- package/dist/scripts/src/components/Items/Items.js +0 -39
- package/dist/scripts/src/components/Items/Items.spec.js +0 -397
- package/dist/scripts/src/components/Items/ItemsNative.js +0 -33
- package/dist/scripts/src/components/Link/Link.js +0 -82
- package/dist/scripts/src/components/Link/Link.spec.js +0 -894
- package/dist/scripts/src/components/Link/LinkNative.js +0 -48
- package/dist/scripts/src/components/List/List.js +0 -130
- package/dist/scripts/src/components/List/List.spec.js +0 -927
- package/dist/scripts/src/components/List/ListNative.js +0 -433
- package/dist/scripts/src/components/List/doc-resources/list-component-data.js +0 -53
- package/dist/scripts/src/components/Logo/Logo.js +0 -30
- package/dist/scripts/src/components/Logo/LogoNative.js +0 -32
- package/dist/scripts/src/components/Markdown/CodeText.js +0 -38
- package/dist/scripts/src/components/Markdown/Markdown.js +0 -143
- package/dist/scripts/src/components/Markdown/Markdown.spec.js +0 -188
- package/dist/scripts/src/components/Markdown/MarkdownNative.js +0 -476
- package/dist/scripts/src/components/Markdown/parse-binding-expr.js +0 -60
- package/dist/scripts/src/components/Markdown/utils.js +0 -389
- package/dist/scripts/src/components/ModalDialog/ConfirmationModalContextProvider.js +0 -111
- package/dist/scripts/src/components/ModalDialog/Dialog.js +0 -20
- package/dist/scripts/src/components/ModalDialog/ModalDialog.js +0 -83
- package/dist/scripts/src/components/ModalDialog/ModalDialog.spec.js +0 -181
- package/dist/scripts/src/components/ModalDialog/ModalDialogNative.js +0 -217
- package/dist/scripts/src/components/ModalDialog/ModalVisibilityContext.js +0 -60
- package/dist/scripts/src/components/NavGroup/NavGroup.js +0 -70
- package/dist/scripts/src/components/NavGroup/NavGroup.spec.js +0 -304
- package/dist/scripts/src/components/NavGroup/NavGroupContext.js +0 -13
- package/dist/scripts/src/components/NavGroup/NavGroupNative.js +0 -133
- package/dist/scripts/src/components/NavLink/NavLink.js +0 -86
- package/dist/scripts/src/components/NavLink/NavLink.spec.js +0 -864
- package/dist/scripts/src/components/NavLink/NavLinkNative.js +0 -73
- package/dist/scripts/src/components/NavPanel/NavPanel.js +0 -53
- package/dist/scripts/src/components/NavPanel/NavPanel.spec.js +0 -864
- package/dist/scripts/src/components/NavPanel/NavPanelNative.js +0 -222
- package/dist/scripts/src/components/NestedApp/AppWithCodeView.js +0 -91
- package/dist/scripts/src/components/NestedApp/AppWithCodeViewNative.js +0 -84
- package/dist/scripts/src/components/NestedApp/NestedApp.js +0 -86
- package/dist/scripts/src/components/NestedApp/NestedAppNative.js +0 -231
- package/dist/scripts/src/components/NestedApp/Tooltip.js +0 -46
- package/dist/scripts/src/components/NestedApp/defaultProps.js +0 -12
- package/dist/scripts/src/components/NestedApp/utils.js +0 -67
- package/dist/scripts/src/components/NoResult/NoResult.js +0 -46
- package/dist/scripts/src/components/NoResult/NoResult.spec.js +0 -863
- package/dist/scripts/src/components/NoResult/NoResultNative.js +0 -31
- package/dist/scripts/src/components/NumberBox/NumberBox.js +0 -123
- package/dist/scripts/src/components/NumberBox/NumberBox.spec.js +0 -979
- package/dist/scripts/src/components/NumberBox/NumberBoxNative.js +0 -513
- package/dist/scripts/src/components/NumberBox/numberbox-abstractions.js +0 -109
- package/dist/scripts/src/components/Option/Option.js +0 -44
- package/dist/scripts/src/components/Option/Option.spec.js +0 -474
- package/dist/scripts/src/components/Option/OptionNative.js +0 -29
- package/dist/scripts/src/components/Option/OptionTypeProvider.js +0 -16
- package/dist/scripts/src/components/PageMetaTitle/PageMetaTilteNative.js +0 -13
- package/dist/scripts/src/components/PageMetaTitle/PageMetaTitle.js +0 -22
- package/dist/scripts/src/components/PageMetaTitle/PageMetaTitle.spec.js +0 -80
- package/dist/scripts/src/components/Pages/Pages.js +0 -54
- package/dist/scripts/src/components/Pages/PagesNative.js +0 -57
- package/dist/scripts/src/components/Pagination/Pagination.js +0 -107
- package/dist/scripts/src/components/Pagination/Pagination.spec.js +0 -1008
- package/dist/scripts/src/components/Pagination/PaginationNative.js +0 -157
- package/dist/scripts/src/components/PositionedContainer/PositionedContainer.js +0 -24
- package/dist/scripts/src/components/PositionedContainer/PositionedContainerNative.js +0 -14
- package/dist/scripts/src/components/ProfileMenu/ProfileMenu.js +0 -20
- package/dist/scripts/src/components/ProgressBar/ProgressBar.js +0 -38
- package/dist/scripts/src/components/ProgressBar/ProgressBar.spec.js +0 -166
- package/dist/scripts/src/components/ProgressBar/ProgressBarNative.js +0 -28
- package/dist/scripts/src/components/Queue/Queue.js +0 -85
- package/dist/scripts/src/components/Queue/Queue.spec.js +0 -624
- package/dist/scripts/src/components/Queue/QueueNative.js +0 -342
- package/dist/scripts/src/components/Queue/queueActions.js +0 -87
- package/dist/scripts/src/components/RadioGroup/RadioGroup.js +0 -61
- package/dist/scripts/src/components/RadioGroup/RadioGroup.spec.js +0 -490
- package/dist/scripts/src/components/RadioGroup/RadioGroupNative.js +0 -158
- package/dist/scripts/src/components/RadioGroup/RadioItem.js +0 -28
- package/dist/scripts/src/components/RadioGroup/RadioItemNative.js +0 -62
- package/dist/scripts/src/components/RealTimeAdapter/RealTimeAdapter.js +0 -24
- package/dist/scripts/src/components/RealTimeAdapter/RealTimeAdapterNative.js +0 -135
- package/dist/scripts/src/components/Redirect/Redirect.js +0 -31
- package/dist/scripts/src/components/Redirect/Redirect.spec.js +0 -527
- package/dist/scripts/src/components/ResponsiveBar/ResponsiveBar.js +0 -60
- package/dist/scripts/src/components/ResponsiveBar/ResponsiveBar.spec.js +0 -76
- package/dist/scripts/src/components/ResponsiveBar/ResponsiveBarNative.js +0 -313
- package/dist/scripts/src/components/Select/HiddenOption.js +0 -20
- package/dist/scripts/src/components/Select/OptionContext.js +0 -12
- package/dist/scripts/src/components/Select/Select.js +0 -131
- package/dist/scripts/src/components/Select/Select.spec.js +0 -763
- package/dist/scripts/src/components/Select/SelectContext.js +0 -16
- package/dist/scripts/src/components/Select/SelectNative.js +0 -440
- package/dist/scripts/src/components/SelectionStore/SelectionStore.js +0 -25
- package/dist/scripts/src/components/SelectionStore/SelectionStoreNative.js +0 -103
- package/dist/scripts/src/components/Slider/Slider.js +0 -115
- package/dist/scripts/src/components/Slider/Slider.spec.js +0 -677
- package/dist/scripts/src/components/Slider/SliderNative.js +0 -237
- package/dist/scripts/src/components/Slot/Slot.js +0 -17
- package/dist/scripts/src/components/Slot/Slot.spec.js +0 -368
- package/dist/scripts/src/components/SlotItem.js +0 -32
- package/dist/scripts/src/components/SpaceFiller/SpaceFiller.js +0 -20
- package/dist/scripts/src/components/SpaceFiller/SpaceFiller.spec.js +0 -184
- package/dist/scripts/src/components/SpaceFiller/SpaceFillerNative.js +0 -10
- package/dist/scripts/src/components/Spinner/Spinner.js +0 -39
- package/dist/scripts/src/components/Spinner/Spinner.spec.js +0 -161
- package/dist/scripts/src/components/Spinner/SpinnerNative.js +0 -48
- package/dist/scripts/src/components/Splitter/HSplitter.spec.js +0 -104
- package/dist/scripts/src/components/Splitter/Splitter.js +0 -163
- package/dist/scripts/src/components/Splitter/Splitter.spec.js +0 -856
- package/dist/scripts/src/components/Splitter/SplitterNative.js +0 -205
- package/dist/scripts/src/components/Splitter/VSplitter.spec.js +0 -104
- package/dist/scripts/src/components/Splitter/utils.js +0 -22
- package/dist/scripts/src/components/Stack/CHStack.spec.js +0 -86
- package/dist/scripts/src/components/Stack/CVStack.spec.js +0 -86
- package/dist/scripts/src/components/Stack/HStack.spec.js +0 -67
- package/dist/scripts/src/components/Stack/Stack.js +0 -156
- package/dist/scripts/src/components/Stack/Stack.spec.js +0 -654
- package/dist/scripts/src/components/Stack/StackNative.js +0 -45
- package/dist/scripts/src/components/Stack/VStack.spec.js +0 -67
- package/dist/scripts/src/components/StickyBox/StickyBox.js +0 -34
- package/dist/scripts/src/components/StickyBox/StickyBoxNative.js +0 -42
- package/dist/scripts/src/components/Switch/Switch.js +0 -80
- package/dist/scripts/src/components/Switch/Switch.spec.js +0 -834
- package/dist/scripts/src/components/Table/Table.js +0 -268
- package/dist/scripts/src/components/Table/Table.spec.js +0 -827
- package/dist/scripts/src/components/Table/TableNative.js +0 -670
- package/dist/scripts/src/components/Table/doc-resources/list-component-data.js +0 -53
- package/dist/scripts/src/components/Table/useRowSelection.js +0 -454
- package/dist/scripts/src/components/TableOfContents/TableOfContents.js +0 -76
- package/dist/scripts/src/components/TableOfContents/TableOfContents.spec.js +0 -838
- package/dist/scripts/src/components/TableOfContents/TableOfContentsNative.js +0 -81
- package/dist/scripts/src/components/Tabs/TabContext.js +0 -58
- package/dist/scripts/src/components/Tabs/TabItem.js +0 -44
- package/dist/scripts/src/components/Tabs/TabItemNative.js +0 -53
- package/dist/scripts/src/components/Tabs/Tabs.js +0 -95
- package/dist/scripts/src/components/Tabs/Tabs.spec.js +0 -1237
- package/dist/scripts/src/components/Tabs/TabsNative.js +0 -137
- package/dist/scripts/src/components/Text/Text.js +0 -181
- package/dist/scripts/src/components/Text/Text.spec.js +0 -1676
- package/dist/scripts/src/components/Text/TextNative.js +0 -244
- package/dist/scripts/src/components/TextArea/TextArea.js +0 -103
- package/dist/scripts/src/components/TextArea/TextArea.spec.js +0 -886
- package/dist/scripts/src/components/TextArea/TextAreaNative.js +0 -196
- package/dist/scripts/src/components/TextArea/TextAreaResizable.js +0 -73
- package/dist/scripts/src/components/TextArea/useComposedRef.js +0 -60
- package/dist/scripts/src/components/TextBox/TextBox.js +0 -133
- package/dist/scripts/src/components/TextBox/TextBox.spec.js +0 -758
- package/dist/scripts/src/components/TextBox/TextBoxNative.js +0 -142
- package/dist/scripts/src/components/Theme/NotificationToast.js +0 -64
- package/dist/scripts/src/components/Theme/Theme.js +0 -47
- package/dist/scripts/src/components/Theme/Theme.spec.js +0 -390
- package/dist/scripts/src/components/Theme/ThemeNative.js +0 -162
- package/dist/scripts/src/components/TimeInput/TimeInput.js +0 -149
- package/dist/scripts/src/components/TimeInput/TimeInput.spec.js +0 -1236
- package/dist/scripts/src/components/TimeInput/TimeInputNative.js +0 -650
- package/dist/scripts/src/components/TimeInput/utils.js +0 -197
- package/dist/scripts/src/components/Timer/Timer.js +0 -62
- package/dist/scripts/src/components/Timer/Timer.spec.js +0 -328
- package/dist/scripts/src/components/Timer/TimerNative.js +0 -178
- package/dist/scripts/src/components/Toggle/Toggle.js +0 -172
- package/dist/scripts/src/components/ToneChangerButton/ToneChangerButton.js +0 -63
- package/dist/scripts/src/components/ToneChangerButton/ToneChangerButton.spec.js +0 -414
- package/dist/scripts/src/components/ToneSwitch/ToneSwitch.js +0 -51
- package/dist/scripts/src/components/ToneSwitch/ToneSwitch.spec.js +0 -89
- package/dist/scripts/src/components/ToneSwitch/ToneSwitchNative.js +0 -42
- package/dist/scripts/src/components/Tooltip/Tooltip.js +0 -118
- package/dist/scripts/src/components/Tooltip/Tooltip.spec.js +0 -418
- package/dist/scripts/src/components/Tooltip/TooltipNative.js +0 -160
- package/dist/scripts/src/components/Tree/Tree-dynamic.spec.js +0 -2894
- package/dist/scripts/src/components/Tree/Tree-icons.spec.js +0 -206
- package/dist/scripts/src/components/Tree/Tree.spec.js +0 -2839
- package/dist/scripts/src/components/Tree/TreeComponent.js +0 -324
- package/dist/scripts/src/components/Tree/TreeNative.js +0 -1129
- package/dist/scripts/src/components/Tree/testData.js +0 -296
- package/dist/scripts/src/components/TreeDisplay/TreeDisplay.js +0 -49
- package/dist/scripts/src/components/TreeDisplay/TreeDisplayNative.js +0 -104
- package/dist/scripts/src/components/ValidationSummary/ValidationSummary.js +0 -64
- package/dist/scripts/src/components/VisuallyHidden.js +0 -21
- package/dist/scripts/src/components/abstractions.js +0 -341
- package/dist/scripts/src/components/chart-color-schemes.js +0 -43
- package/dist/scripts/src/components/collectedComponentMetadata.js +0 -316
- package/dist/scripts/src/components/component-utils.js +0 -29
- package/dist/scripts/src/components/container-helpers.js +0 -26
- package/dist/scripts/src/components/metadata-helpers.js +0 -269
- package/dist/scripts/src/components-core/ApiBoundComponent.js +0 -227
- package/dist/scripts/src/components-core/AppContext.js +0 -16
- package/dist/scripts/src/components-core/ComponentDecorator.js +0 -74
- package/dist/scripts/src/components-core/ComponentViewer.js +0 -69
- package/dist/scripts/src/components-core/CompoundComponent.js +0 -145
- package/dist/scripts/src/components-core/DebugViewProvider.js +0 -43
- package/dist/scripts/src/components-core/EngineError.js +0 -91
- package/dist/scripts/src/components-core/InspectorContext.js +0 -248
- package/dist/scripts/src/components-core/LoaderComponent.js +0 -109
- package/dist/scripts/src/components-core/RestApiProxy.js +0 -468
- package/dist/scripts/src/components-core/StandaloneApp.js +0 -821
- package/dist/scripts/src/components-core/StandaloneExtensionManager.js +0 -44
- package/dist/scripts/src/components-core/TableOfContentsContext.js +0 -168
- package/dist/scripts/src/components-core/abstractions/ComponentRenderer.js +0 -2
- package/dist/scripts/src/components-core/abstractions/LoaderRenderer.js +0 -2
- package/dist/scripts/src/components-core/abstractions/standalone.js +0 -2
- package/dist/scripts/src/components-core/abstractions/treeAbstractions.js +0 -2
- package/dist/scripts/src/components-core/action/APICall.js +0 -284
- package/dist/scripts/src/components-core/action/FileDownloadAction.js +0 -80
- package/dist/scripts/src/components-core/action/FileUploadAction.js +0 -88
- package/dist/scripts/src/components-core/action/NavigateAction.js +0 -20
- package/dist/scripts/src/components-core/action/TimedAction.js +0 -21
- package/dist/scripts/src/components-core/action/actions.js +0 -15
- package/dist/scripts/src/components-core/appContext/date-functions.js +0 -24
- package/dist/scripts/src/components-core/appContext/math-function.js +0 -27
- package/dist/scripts/src/components-core/appContext/misc-utils.js +0 -14
- package/dist/scripts/src/components-core/behaviors/Behavior.js +0 -2
- package/dist/scripts/src/components-core/behaviors/CoreBehaviors.js +0 -201
- package/dist/scripts/src/components-core/component-hooks.js +0 -25
- package/dist/scripts/src/components-core/constants.js +0 -18
- package/dist/scripts/src/components-core/descriptorHelper.js +0 -96
- package/dist/scripts/src/components-core/devtools/InspectorDialog.js +0 -135
- package/dist/scripts/src/components-core/devtools/InspectorDialogVisibilityContext.js +0 -8
- package/dist/scripts/src/components-core/event-handlers.js +0 -46
- package/dist/scripts/src/components-core/interception/ApiInterceptor.js +0 -247
- package/dist/scripts/src/components-core/interception/ApiInterceptorProvider.js +0 -167
- package/dist/scripts/src/components-core/interception/Backend.js +0 -141
- package/dist/scripts/src/components-core/interception/Errors.js +0 -129
- package/dist/scripts/src/components-core/interception/InMemoryDb.js +0 -41
- package/dist/scripts/src/components-core/interception/IndexedDb.js +0 -205
- package/dist/scripts/src/components-core/interception/ReadonlyCollection.js +0 -145
- package/dist/scripts/src/components-core/interception/abstractions.js +0 -2
- package/dist/scripts/src/components-core/interception/apiInterceptorWorker.js +0 -44
- package/dist/scripts/src/components-core/interception/initMock.js +0 -20
- package/dist/scripts/src/components-core/interception/useApiInterceptorContext.js +0 -9
- package/dist/scripts/src/components-core/loader/ApiLoader.js +0 -54
- package/dist/scripts/src/components-core/loader/DataLoader.js +0 -330
- package/dist/scripts/src/components-core/loader/ExternalDataLoader.js +0 -60
- package/dist/scripts/src/components-core/loader/Loader.js +0 -159
- package/dist/scripts/src/components-core/loader/MockLoaderRenderer.js +0 -43
- package/dist/scripts/src/components-core/loader/PageableLoader.js +0 -272
- package/dist/scripts/src/components-core/markup-check.js +0 -279
- package/dist/scripts/src/components-core/parts.js +0 -11
- package/dist/scripts/src/components-core/renderers.js +0 -76
- package/dist/scripts/src/components-core/rendering/AppContent.js +0 -400
- package/dist/scripts/src/components-core/rendering/AppRoot.js +0 -87
- package/dist/scripts/src/components-core/rendering/AppWrapper.js +0 -49
- package/dist/scripts/src/components-core/rendering/ComponentAdapter.js +0 -380
- package/dist/scripts/src/components-core/rendering/ComponentWrapper.js +0 -166
- package/dist/scripts/src/components-core/rendering/Container.js +0 -621
- package/dist/scripts/src/components-core/rendering/ContainerWrapper.js +0 -94
- package/dist/scripts/src/components-core/rendering/ErrorBoundary.js +0 -65
- package/dist/scripts/src/components-core/rendering/InvalidComponent.js +0 -17
- package/dist/scripts/src/components-core/rendering/StandaloneComponent.js +0 -39
- package/dist/scripts/src/components-core/rendering/StateContainer.js +0 -350
- package/dist/scripts/src/components-core/rendering/UnknownComponent.js +0 -15
- package/dist/scripts/src/components-core/rendering/buildProxy.js +0 -58
- package/dist/scripts/src/components-core/rendering/collectFnVarDeps.js +0 -49
- package/dist/scripts/src/components-core/rendering/containers.js +0 -19
- package/dist/scripts/src/components-core/rendering/nodeUtils.js +0 -6
- package/dist/scripts/src/components-core/rendering/reducer.js +0 -160
- package/dist/scripts/src/components-core/rendering/renderChild.js +0 -82
- package/dist/scripts/src/components-core/rendering/valueExtractor.js +0 -216
- package/dist/scripts/src/components-core/reportEngineError.js +0 -62
- package/dist/scripts/src/components-core/script-runner/AttributeValueParser.js +0 -117
- package/dist/scripts/src/components-core/script-runner/BindingTreeEvaluationContext.js +0 -33
- package/dist/scripts/src/components-core/script-runner/ParameterParser.js +0 -117
- package/dist/scripts/src/components-core/script-runner/ScriptingSourceTree.js +0 -45
- package/dist/scripts/src/components-core/script-runner/asyncProxy.js +0 -96
- package/dist/scripts/src/components-core/script-runner/bannedFunctions.js +0 -34
- package/dist/scripts/src/components-core/script-runner/eval-tree-async.js +0 -613
- package/dist/scripts/src/components-core/script-runner/eval-tree-common.js +0 -439
- package/dist/scripts/src/components-core/script-runner/eval-tree-sync.js +0 -522
- package/dist/scripts/src/components-core/script-runner/process-statement-async.js +0 -761
- package/dist/scripts/src/components-core/script-runner/process-statement-common.js +0 -208
- package/dist/scripts/src/components-core/script-runner/process-statement-sync.js +0 -746
- package/dist/scripts/src/components-core/script-runner/simplify-expression.js +0 -386
- package/dist/scripts/src/components-core/script-runner/statement-queue.js +0 -63
- package/dist/scripts/src/components-core/script-runner/visitors.js +0 -369
- package/dist/scripts/src/components-core/theming/StyleContext.js +0 -133
- package/dist/scripts/src/components-core/theming/StyleRegistry.js +0 -171
- package/dist/scripts/src/components-core/theming/ThemeContext.js +0 -53
- package/dist/scripts/src/components-core/theming/ThemeProvider.js +0 -342
- package/dist/scripts/src/components-core/theming/component-layout-resolver.js +0 -153
- package/dist/scripts/src/components-core/theming/extendThemeUtils.js +0 -47
- package/dist/scripts/src/components-core/theming/hvar.js +0 -105
- package/dist/scripts/src/components-core/theming/layout-resolver.js +0 -388
- package/dist/scripts/src/components-core/theming/parse-layout-props.js +0 -136
- package/dist/scripts/src/components-core/theming/themeVars.js +0 -62
- package/dist/scripts/src/components-core/theming/themes/base-utils.js +0 -15
- package/dist/scripts/src/components-core/theming/themes/palette.js +0 -57
- package/dist/scripts/src/components-core/theming/themes/root.js +0 -434
- package/dist/scripts/src/components-core/theming/themes/solid.js +0 -16
- package/dist/scripts/src/components-core/theming/themes/theme-colors.js +0 -561
- package/dist/scripts/src/components-core/theming/themes/xmlui.js +0 -57
- package/dist/scripts/src/components-core/theming/transformThemeVars.js +0 -733
- package/dist/scripts/src/components-core/theming/utils.js +0 -31
- package/dist/scripts/src/components-core/utils/DataLoaderQueryKeyGenerator.js +0 -41
- package/dist/scripts/src/components-core/utils/LruCache.js +0 -184
- package/dist/scripts/src/components-core/utils/actionUtils.js +0 -32
- package/dist/scripts/src/components-core/utils/audio-utils.js +0 -83
- package/dist/scripts/src/components-core/utils/base64-utils.js +0 -124
- package/dist/scripts/src/components-core/utils/compound-utils.js +0 -11
- package/dist/scripts/src/components-core/utils/css-utils.js +0 -179
- package/dist/scripts/src/components-core/utils/date-utils.js +0 -186
- package/dist/scripts/src/components-core/utils/extractParam.js +0 -281
- package/dist/scripts/src/components-core/utils/hooks.js +0 -400
- package/dist/scripts/src/components-core/utils/mergeProps.js +0 -45
- package/dist/scripts/src/components-core/utils/misc.js +0 -539
- package/dist/scripts/src/components-core/utils/request-params.js +0 -70
- package/dist/scripts/src/components-core/utils/statementUtils.js +0 -224
- package/dist/scripts/src/components-core/utils/treeUtils.js +0 -226
- package/dist/scripts/src/components-core/xmlui-parser.js +0 -548
- package/dist/scripts/src/index-standalone.js +0 -61
- package/dist/scripts/src/index.js +0 -158
- package/dist/scripts/src/language-server/server-common.js +0 -152
- package/dist/scripts/src/language-server/server-web-worker.js +0 -47
- package/dist/scripts/src/language-server/server.js +0 -42
- package/dist/scripts/src/language-server/services/common/docs-generation.js +0 -73
- package/dist/scripts/src/language-server/services/common/lsp-utils.js +0 -9
- package/dist/scripts/src/language-server/services/common/metadata-utils.js +0 -157
- package/dist/scripts/src/language-server/services/common/syntax-node-utilities.js +0 -127
- package/dist/scripts/src/language-server/services/completion.js +0 -288
- package/dist/scripts/src/language-server/services/diagnostic.js +0 -19
- package/dist/scripts/src/language-server/services/format.js +0 -569
- package/dist/scripts/src/language-server/services/hover.js +0 -164
- package/dist/scripts/src/language-server/xmlui-metadata-generated.js +0 -16276
- package/dist/scripts/src/logging/LoggerContext.js +0 -22
- package/dist/scripts/src/logging/LoggerInitializer.js +0 -14
- package/dist/scripts/src/logging/LoggerService.js +0 -60
- package/dist/scripts/src/logging/xmlui.js +0 -21
- package/dist/scripts/src/parsers/common/GenericToken.js +0 -2
- package/dist/scripts/src/parsers/common/InputStream.js +0 -59
- package/dist/scripts/src/parsers/common/utils.js +0 -19
- package/dist/scripts/src/parsers/scripting/Lexer.js +0 -1097
- package/dist/scripts/src/parsers/scripting/Parser.js +0 -2638
- package/dist/scripts/src/parsers/scripting/ParserError.js +0 -47
- package/dist/scripts/src/parsers/scripting/ScriptingNodeTypes.js +0 -50
- package/dist/scripts/src/parsers/scripting/TokenTrait.js +0 -108
- package/dist/scripts/src/parsers/scripting/TokenType.js +0 -109
- package/dist/scripts/src/parsers/scripting/code-behind-collect.js +0 -101
- package/dist/scripts/src/parsers/scripting/modules.js +0 -105
- package/dist/scripts/src/parsers/scripting/tree-visitor.js +0 -601
- package/dist/scripts/src/parsers/style-parser/StyleInputStream.js +0 -39
- package/dist/scripts/src/parsers/style-parser/StyleLexer.js +0 -623
- package/dist/scripts/src/parsers/style-parser/StyleParser.js +0 -453
- package/dist/scripts/src/parsers/style-parser/errors.js +0 -37
- package/dist/scripts/src/parsers/style-parser/source-tree.js +0 -2
- package/dist/scripts/src/parsers/style-parser/tokens.js +0 -43
- package/dist/scripts/src/parsers/xmlui-parser/CharacterCodes.js +0 -136
- package/dist/scripts/src/parsers/xmlui-parser/ParserError.js +0 -60
- package/dist/scripts/src/parsers/xmlui-parser/diagnostics.js +0 -172
- package/dist/scripts/src/parsers/xmlui-parser/fileExtensions.js +0 -6
- package/dist/scripts/src/parsers/xmlui-parser/index.js +0 -29
- package/dist/scripts/src/parsers/xmlui-parser/lint.js +0 -165
- package/dist/scripts/src/parsers/xmlui-parser/parser.js +0 -627
- package/dist/scripts/src/parsers/xmlui-parser/scanner.js +0 -415
- package/dist/scripts/src/parsers/xmlui-parser/syntax-kind.js +0 -123
- package/dist/scripts/src/parsers/xmlui-parser/syntax-node.js +0 -83
- package/dist/scripts/src/parsers/xmlui-parser/transform.js +0 -1131
- package/dist/scripts/src/parsers/xmlui-parser/utils.js +0 -83
- package/dist/scripts/src/parsers/xmlui-parser/xmlui-serializer.js +0 -582
- package/dist/scripts/src/parsers/xmlui-parser/xmlui-tree.js +0 -2
- package/dist/scripts/src/syntax/monaco/grammar.monacoLanguage.js +0 -286
- package/dist/scripts/src/syntax/monaco/index.js +0 -14
- package/dist/scripts/src/syntax/monaco/xmlui-dark.js +0 -25
- package/dist/scripts/src/syntax/monaco/xmlui-light.js +0 -25
- package/dist/scripts/src/syntax/monaco/xmluiscript.monacoLanguage.js +0 -310
- package/dist/scripts/src/syntax/textMate/index.js +0 -14
- package/dist/scripts/src/syntax/textMate/xmlui-dark.json +0 -631
- package/dist/scripts/src/syntax/textMate/xmlui-light.json +0 -565
- package/dist/scripts/src/syntax/textMate/xmlui.json +0 -564
- package/dist/scripts/src/syntax/textMate/xmlui.tmLanguage.json +0 -341
- package/dist/scripts/src/testing/ComponentDrivers.js +0 -1380
- package/dist/scripts/src/testing/assertions.js +0 -444
- package/dist/scripts/src/testing/component-test-helpers.js +0 -373
- package/dist/scripts/src/testing/drivers/DateInputDriver.js +0 -19
- package/dist/scripts/src/testing/drivers/ModalDialogDriver.js +0 -10
- package/dist/scripts/src/testing/drivers/NumberBoxDriver.js +0 -44
- package/dist/scripts/src/testing/drivers/TextBoxDriver.js +0 -20
- package/dist/scripts/src/testing/drivers/TimeInputDriver.js +0 -22
- package/dist/scripts/src/testing/drivers/TimerDriver.js +0 -64
- package/dist/scripts/src/testing/drivers/TreeDriver.js +0 -13
- package/dist/scripts/src/testing/drivers/index.js +0 -9
- package/dist/scripts/src/testing/fixtures.js +0 -519
- package/dist/scripts/src/testing/index.js +0 -69
- package/dist/scripts/src/testing/infrastructure/TestBed.js +0 -17
- package/dist/scripts/src/testing/infrastructure/main.js +0 -9
- package/dist/scripts/src/testing/infrastructure/public/mockServiceWorker.js +0 -266
- package/dist/scripts/src/testing/themed-app-test-helpers.js +0 -133
|
@@ -1,2894 +0,0 @@
|
|
|
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
|
-
const testData_1 = require("./testData");
|
|
14
|
-
// =============================================================================
|
|
15
|
-
// IMPERATIVE API TESTS
|
|
16
|
-
// =============================================================================
|
|
17
|
-
fixtures_1.test.describe("Imperative API", () => {
|
|
18
|
-
(0, fixtures_1.test)("exposes expandNode method", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
19
|
-
yield initTestBed(`
|
|
20
|
-
<Fragment>
|
|
21
|
-
<VStack height="400px">
|
|
22
|
-
<Tree id="treeApi" testId="tree"
|
|
23
|
-
dataFormat="flat"
|
|
24
|
-
data='{${JSON.stringify(testData_1.flatTreeData)}}'>
|
|
25
|
-
<property name="itemTemplate">
|
|
26
|
-
<HStack testId="{$item.id}:expand" verticalAlignment="center">
|
|
27
|
-
<Text value="{$item.name}" />
|
|
28
|
-
</HStack>
|
|
29
|
-
</property>
|
|
30
|
-
</Tree>
|
|
31
|
-
</VStack>
|
|
32
|
-
<Button id="expandBtn" testId="expand-node-btn" label="Expand Node 1"
|
|
33
|
-
onClick="treeApi.expandNode(1);" />
|
|
34
|
-
</Fragment>
|
|
35
|
-
`);
|
|
36
|
-
const tree = yield createTreeDriver("tree");
|
|
37
|
-
const expandButton = yield createButtonDriver("expand-node-btn");
|
|
38
|
-
// Initially, tree should be collapsed
|
|
39
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:expand")).toBeVisible(); // Root visible
|
|
40
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:expand")).not.toBeVisible(); // Child hidden
|
|
41
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:expand")).not.toBeVisible(); // Child hidden
|
|
42
|
-
// Click expand specific node button
|
|
43
|
-
yield expandButton.click();
|
|
44
|
-
// Verify node 1's children are now visible but grandchildren are still hidden
|
|
45
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:expand")).toBeVisible(); // Root visible
|
|
46
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:expand")).toBeVisible(); // Child now visible
|
|
47
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:expand")).toBeVisible(); // Child now visible
|
|
48
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:expand")).not.toBeVisible(); // Grandchild still hidden (node 2 not expanded)
|
|
49
|
-
}));
|
|
50
|
-
(0, fixtures_1.test)("exposes collapseNode method", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
51
|
-
yield initTestBed(`
|
|
52
|
-
<Fragment>
|
|
53
|
-
<VStack height="400px">
|
|
54
|
-
<Tree id="treeApi" testId="tree"
|
|
55
|
-
dataFormat="flat"
|
|
56
|
-
defaultExpanded="all"
|
|
57
|
-
data='{${JSON.stringify(testData_1.flatTreeData)}}'>
|
|
58
|
-
<property name="itemTemplate">
|
|
59
|
-
<HStack testId="{$item.id}:expand" verticalAlignment="center">
|
|
60
|
-
<Text value="{$item.name}" />
|
|
61
|
-
</HStack>
|
|
62
|
-
</property>
|
|
63
|
-
</Tree>
|
|
64
|
-
</VStack>
|
|
65
|
-
<Button id="collapseBtn" testId="collapse-btn" label="Collapse Node 1"
|
|
66
|
-
onClick="treeApi.collapseNode(1);" />
|
|
67
|
-
</Fragment>
|
|
68
|
-
`);
|
|
69
|
-
const tree = yield createTreeDriver("tree");
|
|
70
|
-
const collapseButton = yield createButtonDriver("collapse-btn");
|
|
71
|
-
// Verify tree starts with all nodes visible (defaultExpanded="all")
|
|
72
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:expand")).toBeVisible();
|
|
73
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:expand")).toBeVisible();
|
|
74
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:expand")).toBeVisible();
|
|
75
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:expand")).toBeVisible();
|
|
76
|
-
// Click collapse node button
|
|
77
|
-
yield collapseButton.click();
|
|
78
|
-
// Verify node 1 children are now hidden
|
|
79
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:expand")).toBeVisible(); // Root still visible
|
|
80
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:expand")).not.toBeVisible(); // Child hidden
|
|
81
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:expand")).not.toBeVisible(); // Child hidden
|
|
82
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:expand")).not.toBeVisible(); // Grandchild hidden
|
|
83
|
-
}));
|
|
84
|
-
(0, fixtures_1.test)("exposes expandAll method", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
85
|
-
yield initTestBed(`
|
|
86
|
-
<Fragment>
|
|
87
|
-
<VStack height="400px">
|
|
88
|
-
<Tree id="treeApi" testId="tree"
|
|
89
|
-
dataFormat="flat"
|
|
90
|
-
data='{${JSON.stringify(testData_1.flatTreeData)}}'>
|
|
91
|
-
<property name="itemTemplate">
|
|
92
|
-
<HStack testId="{$item.id}:expandall" verticalAlignment="center">
|
|
93
|
-
<Text value="{$item.name}" />
|
|
94
|
-
</HStack>
|
|
95
|
-
</property>
|
|
96
|
-
</Tree>
|
|
97
|
-
</VStack>
|
|
98
|
-
<Button id="expandBtn" testId="expand-all-btn" label="Expand All"
|
|
99
|
-
onClick="treeApi.expandAll();" />
|
|
100
|
-
</Fragment>
|
|
101
|
-
`);
|
|
102
|
-
const tree = yield createTreeDriver("tree");
|
|
103
|
-
const expandButton = yield createButtonDriver("expand-all-btn");
|
|
104
|
-
// Initially, tree should be collapsed (not expanded)
|
|
105
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:expandall")).not.toBeVisible();
|
|
106
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:expandall")).not.toBeVisible();
|
|
107
|
-
// Click expandAll button
|
|
108
|
-
yield expandButton.click();
|
|
109
|
-
// Verify all nodes are now visible (expanded)
|
|
110
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:expandall")).toBeVisible(); // Root
|
|
111
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:expandall")).toBeVisible(); // Child
|
|
112
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:expandall")).toBeVisible(); // Child
|
|
113
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:expandall")).toBeVisible(); // Grandchild
|
|
114
|
-
}));
|
|
115
|
-
(0, fixtures_1.test)("exposes collapseAll method", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
116
|
-
yield initTestBed(`
|
|
117
|
-
<Fragment>
|
|
118
|
-
<VStack height="400px">
|
|
119
|
-
<Tree id="treeApi" testId="tree"
|
|
120
|
-
dataFormat="flat"
|
|
121
|
-
defaultExpanded="all"
|
|
122
|
-
data='{${JSON.stringify(testData_1.flatTreeData)}}'>
|
|
123
|
-
<property name="itemTemplate">
|
|
124
|
-
<HStack testId="{$item.id}:collapseall" verticalAlignment="center">
|
|
125
|
-
<Text value="{$item.name}" />
|
|
126
|
-
</HStack>
|
|
127
|
-
</property>
|
|
128
|
-
</Tree>
|
|
129
|
-
</VStack>
|
|
130
|
-
<Button id="collapseBtn" testId="collapse-all-btn" label="Collapse All"
|
|
131
|
-
onClick="treeApi.collapseAll();" />
|
|
132
|
-
</Fragment>
|
|
133
|
-
`);
|
|
134
|
-
const tree = yield createTreeDriver("tree");
|
|
135
|
-
const collapseButton = yield createButtonDriver("collapse-all-btn");
|
|
136
|
-
// Initially, tree should be fully expanded (defaultExpanded="all")
|
|
137
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:collapseall")).toBeVisible(); // Root
|
|
138
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:collapseall")).toBeVisible(); // Child
|
|
139
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:collapseall")).toBeVisible(); // Child
|
|
140
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:collapseall")).toBeVisible(); // Grandchild
|
|
141
|
-
// Click collapseAll button
|
|
142
|
-
yield collapseButton.click();
|
|
143
|
-
// Verify only root nodes are visible (all collapsed)
|
|
144
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:collapseall")).toBeVisible(); // Root still visible
|
|
145
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:collapseall")).not.toBeVisible(); // Child hidden
|
|
146
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:collapseall")).not.toBeVisible(); // Child hidden
|
|
147
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:collapseall")).not.toBeVisible(); // Grandchild hidden
|
|
148
|
-
}));
|
|
149
|
-
(0, fixtures_1.test)("exposes scrollToItem method", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
150
|
-
// Create a larger dataset to ensure scrolling is needed
|
|
151
|
-
const largeTreeData = [
|
|
152
|
-
{ id: 1, name: "Root Item 1", parentId: null },
|
|
153
|
-
{ id: 2, name: "Child Item 1.1", parentId: 1 },
|
|
154
|
-
{ id: 3, name: "Child Item 1.2", parentId: 1 },
|
|
155
|
-
{ id: 4, name: "Grandchild Item 1.1.1", parentId: 2 },
|
|
156
|
-
{ id: 5, name: "Grandchild Item 1.1.2", parentId: 2 },
|
|
157
|
-
{ id: 6, name: "Root Item 2", parentId: null },
|
|
158
|
-
{ id: 7, name: "Child Item 2.1", parentId: 6 },
|
|
159
|
-
{ id: 8, name: "Child Item 2.2", parentId: 6 },
|
|
160
|
-
{ id: 9, name: "Child Item 2.3", parentId: 6 },
|
|
161
|
-
{ id: 10, name: "Root Item 3", parentId: null },
|
|
162
|
-
{ id: 11, name: "Child Item 3.1", parentId: 10 },
|
|
163
|
-
{ id: 12, name: "Child Item 3.2", parentId: 10 },
|
|
164
|
-
{ id: 13, name: "Root Item 4", parentId: null },
|
|
165
|
-
{ id: 14, name: "Child Item 4.1", parentId: 13 },
|
|
166
|
-
{ id: 15, name: "Child Item 4.2", parentId: 13 },
|
|
167
|
-
{ id: 16, name: "Root Item 5", parentId: null },
|
|
168
|
-
{ id: 17, name: "Child Item 5.1", parentId: 16 },
|
|
169
|
-
{ id: 18, name: "Child Item 5.2", parentId: 16 },
|
|
170
|
-
{ id: 19, name: "Target Item (Bottom)", parentId: 16 }, // This will be at the bottom
|
|
171
|
-
];
|
|
172
|
-
const { testStateDriver } = yield initTestBed(`
|
|
173
|
-
<Fragment>
|
|
174
|
-
<VStack height="150px">
|
|
175
|
-
<Tree id="treeApi" testId="tree"
|
|
176
|
-
dataFormat="flat"
|
|
177
|
-
parentIdField="parentId"
|
|
178
|
-
defaultExpanded="all"
|
|
179
|
-
data='{${JSON.stringify(largeTreeData)}}'>
|
|
180
|
-
<property name="itemTemplate">
|
|
181
|
-
<HStack testId="{$item.id}:scroll" verticalAlignment="center">
|
|
182
|
-
<Text value="{$item.name}" />
|
|
183
|
-
</HStack>
|
|
184
|
-
</property>
|
|
185
|
-
</Tree>
|
|
186
|
-
</VStack>
|
|
187
|
-
<Button id="scrollBtn" testId="scroll-btn" label="Scroll to Bottom Item" onClick="
|
|
188
|
-
treeApi.scrollToItem('19');
|
|
189
|
-
testState = { actionPerformed: 'scrollToItem', itemId: '19' };
|
|
190
|
-
" />
|
|
191
|
-
</Fragment>
|
|
192
|
-
`);
|
|
193
|
-
const tree = yield createTreeDriver("tree");
|
|
194
|
-
const scrollButton = yield createButtonDriver("scroll-btn");
|
|
195
|
-
// Verify tree is visible and first items are visible
|
|
196
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:scroll")).toBeVisible();
|
|
197
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:scroll")).toBeVisible();
|
|
198
|
-
// Verify the target item at the bottom is initially NOT visible in the small viewport
|
|
199
|
-
// (Due to the small height of 150px and many items, item 19 should be out of view)
|
|
200
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("19:scroll")).not.toBeVisible();
|
|
201
|
-
// Click scroll to item button
|
|
202
|
-
yield scrollButton.click();
|
|
203
|
-
// Verify test state confirms action was performed
|
|
204
|
-
yield fixtures_1.expect.poll(testStateDriver.testState).toEqual({
|
|
205
|
-
actionPerformed: "scrollToItem",
|
|
206
|
-
itemId: "19",
|
|
207
|
-
});
|
|
208
|
-
// After scrolling, the target item should now be visible
|
|
209
|
-
// Note: We can't easily test the exact scroll position in virtualized components,
|
|
210
|
-
// but we can verify the API was called successfully
|
|
211
|
-
}));
|
|
212
|
-
(0, fixtures_1.test)("exposes getSelectedNode method", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
213
|
-
const { testStateDriver } = yield initTestBed(`
|
|
214
|
-
<Fragment>
|
|
215
|
-
<VStack height="400px">
|
|
216
|
-
<Tree id="treeApi" testId="tree"
|
|
217
|
-
dataFormat="flat"
|
|
218
|
-
defaultExpanded="all"
|
|
219
|
-
selectedValue="2"
|
|
220
|
-
data='{${JSON.stringify(testData_1.flatTreeData)}}'>
|
|
221
|
-
<property name="itemTemplate">
|
|
222
|
-
<HStack testId="{$item.id}:selected" verticalAlignment="center">
|
|
223
|
-
<Text value="{$item.name}" />
|
|
224
|
-
</HStack>
|
|
225
|
-
</property>
|
|
226
|
-
</Tree>
|
|
227
|
-
</VStack>
|
|
228
|
-
<Button id="getSelectedBtn" testId="get-selected-btn" label="Get Selected" onClick="
|
|
229
|
-
const selectedNode = treeApi.getSelectedNode();
|
|
230
|
-
testState = {
|
|
231
|
-
hasSelectedNode: selectedNode !== null,
|
|
232
|
-
selectedNodeKey: selectedNode?.key,
|
|
233
|
-
selectedNodeName: selectedNode?.displayName
|
|
234
|
-
};
|
|
235
|
-
" />
|
|
236
|
-
</Fragment>
|
|
237
|
-
`);
|
|
238
|
-
const tree = yield createTreeDriver("tree");
|
|
239
|
-
const getSelectedButton = yield createButtonDriver("get-selected-btn");
|
|
240
|
-
// Verify tree is visible with selection
|
|
241
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:selected")).toBeVisible();
|
|
242
|
-
// Click get selected node button
|
|
243
|
-
yield getSelectedButton.click();
|
|
244
|
-
// Verify getSelectedNode returns correct data
|
|
245
|
-
yield fixtures_1.expect.poll(testStateDriver.testState).toEqual({
|
|
246
|
-
hasSelectedNode: true,
|
|
247
|
-
selectedNodeKey: 2,
|
|
248
|
-
selectedNodeName: "Child Item 1.1",
|
|
249
|
-
});
|
|
250
|
-
}));
|
|
251
|
-
(0, fixtures_1.test)("exposes appendNode method with flat data format #1", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
252
|
-
yield initTestBed(`
|
|
253
|
-
<Fragment>
|
|
254
|
-
<VStack height="400px">
|
|
255
|
-
<Tree id="treeApi" testId="tree"
|
|
256
|
-
dataFormat="flat"
|
|
257
|
-
data='{${JSON.stringify(testData_1.flatTreeData)}}'>
|
|
258
|
-
<property name="itemTemplate">
|
|
259
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
260
|
-
<Text value="{$item.name}" />
|
|
261
|
-
</HStack>
|
|
262
|
-
</property>
|
|
263
|
-
</Tree>
|
|
264
|
-
</VStack>
|
|
265
|
-
<Button id="appendBtn" testId="append-btn" label="Append Child to Node 1"
|
|
266
|
-
onClick="treeApi.appendNode(1, { id: 5, name: 'New Child Item' });" />
|
|
267
|
-
<Button id="expandBtn" testId="expand-btn" label="Expand Node 1"
|
|
268
|
-
onClick="treeApi.expandNode(1);" />
|
|
269
|
-
</Fragment>
|
|
270
|
-
`);
|
|
271
|
-
const tree = yield createTreeDriver("tree");
|
|
272
|
-
const appendButton = yield createButtonDriver("append-btn");
|
|
273
|
-
const expandButton = yield createButtonDriver("expand-btn");
|
|
274
|
-
// Check initial tree structure - only root nodes visible
|
|
275
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
276
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).not.toBeVisible(); // Child hidden (collapsed)
|
|
277
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).not.toBeVisible(); // Child hidden (collapsed)
|
|
278
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).not.toBeVisible(); // Grandchild hidden (collapsed)
|
|
279
|
-
// Append new node using API
|
|
280
|
-
yield appendButton.click();
|
|
281
|
-
// Expand node 1 to see its children
|
|
282
|
-
yield expandButton.click();
|
|
283
|
-
// Verify original children are visible
|
|
284
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Original child
|
|
285
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Original child
|
|
286
|
-
// Verify new node is now visible as a child of node 1
|
|
287
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5")).toBeVisible(); // New child
|
|
288
|
-
}));
|
|
289
|
-
(0, fixtures_1.test)("exposes appendNode method with flat data format #2", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
290
|
-
yield initTestBed(`
|
|
291
|
-
<Fragment>
|
|
292
|
-
<VStack height="400px">
|
|
293
|
-
<Tree id="treeApi" testId="tree"
|
|
294
|
-
dataFormat="flat"
|
|
295
|
-
defaultExpanded="all"
|
|
296
|
-
data='{${JSON.stringify(testData_1.flatTreeData)}}'>
|
|
297
|
-
<property name="itemTemplate">
|
|
298
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
299
|
-
<Text value="{$item.name}" />
|
|
300
|
-
</HStack>
|
|
301
|
-
</property>
|
|
302
|
-
</Tree>
|
|
303
|
-
</VStack>
|
|
304
|
-
<Button id="appendBtn" testId="append-btn" label="Append new root node"
|
|
305
|
-
onClick="treeApi.appendNode(null, { id: 5, name: 'New Root Item' });" />
|
|
306
|
-
</Fragment>
|
|
307
|
-
`);
|
|
308
|
-
const tree = yield createTreeDriver("tree");
|
|
309
|
-
const appendButton = yield createButtonDriver("append-btn");
|
|
310
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
311
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
312
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
313
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
314
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
315
|
-
// Append new root node using API
|
|
316
|
-
yield appendButton.click();
|
|
317
|
-
// Verify original nodes are still visible
|
|
318
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Original root
|
|
319
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Original child
|
|
320
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Original child
|
|
321
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Original grandchild
|
|
322
|
-
// Verify new root node is now visible
|
|
323
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5")).toBeVisible(); // New root node
|
|
324
|
-
}));
|
|
325
|
-
(0, fixtures_1.test)("exposes appendNode method with hierarchy data format #1", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
326
|
-
yield initTestBed(`
|
|
327
|
-
<Fragment>
|
|
328
|
-
<VStack height="400px">
|
|
329
|
-
<Tree id="treeApi" testId="tree"
|
|
330
|
-
dataFormat="hierarchy"
|
|
331
|
-
data='{${JSON.stringify(testData_1.hierarchyTreeData)}}'>
|
|
332
|
-
<property name="itemTemplate">
|
|
333
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
334
|
-
<Text value="{$item.name}" />
|
|
335
|
-
</HStack>
|
|
336
|
-
</property>
|
|
337
|
-
</Tree>
|
|
338
|
-
</VStack>
|
|
339
|
-
<Button id="appendBtn" testId="append-btn" label="Append Child to Node 1"
|
|
340
|
-
onClick="treeApi.appendNode(1, { id: 5, name: 'New Child Item' });" />
|
|
341
|
-
<Button id="expandBtn" testId="expand-btn" label="Expand Node 1"
|
|
342
|
-
onClick="treeApi.expandNode(1);" />
|
|
343
|
-
</Fragment>
|
|
344
|
-
`);
|
|
345
|
-
const tree = yield createTreeDriver("tree");
|
|
346
|
-
const appendButton = yield createButtonDriver("append-btn");
|
|
347
|
-
const expandButton = yield createButtonDriver("expand-btn");
|
|
348
|
-
// Check initial tree structure - only root nodes visible
|
|
349
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
350
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).not.toBeVisible(); // Child hidden (collapsed)
|
|
351
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).not.toBeVisible(); // Child hidden (collapsed)
|
|
352
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).not.toBeVisible(); // Grandchild hidden (collapsed)
|
|
353
|
-
// Append new node using API
|
|
354
|
-
yield appendButton.click();
|
|
355
|
-
// Expand node 1 to see its children
|
|
356
|
-
yield expandButton.click();
|
|
357
|
-
// Verify original children are visible
|
|
358
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Original child
|
|
359
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Original child
|
|
360
|
-
// Verify new node is now visible as a child of node 1
|
|
361
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5")).toBeVisible(); // New child
|
|
362
|
-
}));
|
|
363
|
-
(0, fixtures_1.test)("exposes appendNode method with hierarchy data format #2", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
364
|
-
yield initTestBed(`
|
|
365
|
-
<Fragment>
|
|
366
|
-
<VStack height="400px">
|
|
367
|
-
<Tree id="treeApi" testId="tree"
|
|
368
|
-
dataFormat="hierarchy"
|
|
369
|
-
defaultExpanded="all"
|
|
370
|
-
data='{${JSON.stringify(testData_1.hierarchyTreeData)}}'>
|
|
371
|
-
<property name="itemTemplate">
|
|
372
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
373
|
-
<Text value="{$item.name}" />
|
|
374
|
-
</HStack>
|
|
375
|
-
</property>
|
|
376
|
-
</Tree>
|
|
377
|
-
</VStack>
|
|
378
|
-
<Button id="appendBtn" testId="append-btn" label="Append new root node"
|
|
379
|
-
onClick="treeApi.appendNode(null, { id: 5, name: 'New Root Item' });" />
|
|
380
|
-
</Fragment>
|
|
381
|
-
`);
|
|
382
|
-
const tree = yield createTreeDriver("tree");
|
|
383
|
-
const appendButton = yield createButtonDriver("append-btn");
|
|
384
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
385
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
386
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
387
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
388
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
389
|
-
// Append new root node using API
|
|
390
|
-
yield appendButton.click();
|
|
391
|
-
// Verify original nodes are still visible
|
|
392
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Original root
|
|
393
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Original child
|
|
394
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Original child
|
|
395
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Original grandchild
|
|
396
|
-
// Verify new root node is now visible
|
|
397
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5")).toBeVisible(); // New root node
|
|
398
|
-
}));
|
|
399
|
-
(0, fixtures_1.test)("exposes removeNode method with flat data format #1 - remove leaf node", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
400
|
-
yield initTestBed(`
|
|
401
|
-
<Fragment>
|
|
402
|
-
<VStack height="400px">
|
|
403
|
-
<Tree id="treeApi" testId="tree"
|
|
404
|
-
dataFormat="flat"
|
|
405
|
-
defaultExpanded="all"
|
|
406
|
-
data='{${JSON.stringify(testData_1.flatTreeData)}}'>
|
|
407
|
-
<property name="itemTemplate">
|
|
408
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
409
|
-
<Text value="{$item.name}" />
|
|
410
|
-
</HStack>
|
|
411
|
-
</property>
|
|
412
|
-
</Tree>
|
|
413
|
-
</VStack>
|
|
414
|
-
<Button id="removeBtn" testId="remove-btn" label="Remove Leaf Node 4"
|
|
415
|
-
onClick="treeApi.removeNode(4);" />
|
|
416
|
-
</Fragment>
|
|
417
|
-
`);
|
|
418
|
-
const tree = yield createTreeDriver("tree");
|
|
419
|
-
const removeButton = yield createButtonDriver("remove-btn");
|
|
420
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
421
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
422
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
423
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
424
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
425
|
-
// Remove leaf node using API
|
|
426
|
-
yield removeButton.click();
|
|
427
|
-
// Verify original nodes are still visible except removed node
|
|
428
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Original root
|
|
429
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Original child
|
|
430
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Original child
|
|
431
|
-
// Verify removed node is no longer visible
|
|
432
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).not.toBeVisible(); // Removed leaf node
|
|
433
|
-
}));
|
|
434
|
-
(0, fixtures_1.test)("exposes removeNode method with flat data format #2 - remove parent with children", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
435
|
-
yield initTestBed(`
|
|
436
|
-
<Fragment>
|
|
437
|
-
<VStack height="400px">
|
|
438
|
-
<Tree id="treeApi" testId="tree"
|
|
439
|
-
dataFormat="flat"
|
|
440
|
-
defaultExpanded="all"
|
|
441
|
-
data='{${JSON.stringify(testData_1.flatTreeData)}}'>
|
|
442
|
-
<property name="itemTemplate">
|
|
443
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
444
|
-
<Text value="{$item.name}" />
|
|
445
|
-
</HStack>
|
|
446
|
-
</property>
|
|
447
|
-
</Tree>
|
|
448
|
-
</VStack>
|
|
449
|
-
<Button id="removeBtn" testId="remove-btn" label="Remove Node 2 and its children"
|
|
450
|
-
onClick="treeApi.removeNode(2);" />
|
|
451
|
-
</Fragment>
|
|
452
|
-
`);
|
|
453
|
-
const tree = yield createTreeDriver("tree");
|
|
454
|
-
const removeButton = yield createButtonDriver("remove-btn");
|
|
455
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
456
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
457
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
458
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
459
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
460
|
-
// Remove parent node and its children using API
|
|
461
|
-
yield removeButton.click();
|
|
462
|
-
// Verify remaining nodes are still visible
|
|
463
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Original root
|
|
464
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Original child (not removed)
|
|
465
|
-
// Verify removed nodes are no longer visible
|
|
466
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).not.toBeVisible(); // Removed parent
|
|
467
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).not.toBeVisible(); // Removed child (descendant of node 2)
|
|
468
|
-
}));
|
|
469
|
-
(0, fixtures_1.test)("exposes removeNode method with flat data format #3 - remove root node", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
470
|
-
yield initTestBed(`
|
|
471
|
-
<Fragment>
|
|
472
|
-
<VStack height="400px">
|
|
473
|
-
<Tree id="treeApi" testId="tree"
|
|
474
|
-
dataFormat="flat"
|
|
475
|
-
defaultExpanded="all"
|
|
476
|
-
data='{${JSON.stringify(testData_1.flatTreeData)}}'>
|
|
477
|
-
<property name="itemTemplate">
|
|
478
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
479
|
-
<Text value="{$item.name}" />
|
|
480
|
-
</HStack>
|
|
481
|
-
</property>
|
|
482
|
-
</Tree>
|
|
483
|
-
</VStack>
|
|
484
|
-
<Button id="removeBtn" testId="remove-btn" label="Remove Root Node 1 and all descendants"
|
|
485
|
-
onClick="treeApi.removeNode(1);" />
|
|
486
|
-
</Fragment>
|
|
487
|
-
`);
|
|
488
|
-
const tree = yield createTreeDriver("tree");
|
|
489
|
-
const removeButton = yield createButtonDriver("remove-btn");
|
|
490
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
491
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
492
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
493
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
494
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
495
|
-
// Remove root node and all descendants using API
|
|
496
|
-
yield removeButton.click();
|
|
497
|
-
// Verify all nodes are removed since they were all descendants of node 1
|
|
498
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).not.toBeVisible(); // Removed root
|
|
499
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).not.toBeVisible(); // Removed descendant
|
|
500
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).not.toBeVisible(); // Removed descendant
|
|
501
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).not.toBeVisible(); // Removed descendant
|
|
502
|
-
}));
|
|
503
|
-
(0, fixtures_1.test)("exposes removeChildren method with flat data format #1 - remove children of parent node", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
504
|
-
yield initTestBed(`
|
|
505
|
-
<Fragment>
|
|
506
|
-
<VStack height="400px">
|
|
507
|
-
<Tree id="treeApi" testId="tree"
|
|
508
|
-
dataFormat="flat"
|
|
509
|
-
defaultExpanded="all"
|
|
510
|
-
data='{${JSON.stringify(testData_1.flatTreeData)}}'>
|
|
511
|
-
<property name="itemTemplate">
|
|
512
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
513
|
-
<Text value="{$item.name}" />
|
|
514
|
-
</HStack>
|
|
515
|
-
</property>
|
|
516
|
-
</Tree>
|
|
517
|
-
</VStack>
|
|
518
|
-
<Button id="removeChildrenBtn" testId="remove-children-btn" label="Remove children of Node 1"
|
|
519
|
-
onClick="treeApi.removeChildren(1);" />
|
|
520
|
-
</Fragment>
|
|
521
|
-
`);
|
|
522
|
-
const tree = yield createTreeDriver("tree");
|
|
523
|
-
const removeChildrenButton = yield createButtonDriver("remove-children-btn");
|
|
524
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
525
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
526
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
527
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
528
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
529
|
-
// Remove children of node 1 using API
|
|
530
|
-
yield removeChildrenButton.click();
|
|
531
|
-
// Verify parent node 1 is still visible
|
|
532
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Parent node kept
|
|
533
|
-
// Verify all children and descendants are removed
|
|
534
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).not.toBeVisible(); // Removed child
|
|
535
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).not.toBeVisible(); // Removed child
|
|
536
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).not.toBeVisible(); // Removed descendant
|
|
537
|
-
}));
|
|
538
|
-
(0, fixtures_1.test)("exposes removeChildren method with flat data format #2 - remove children of node with one child", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
539
|
-
yield initTestBed(`
|
|
540
|
-
<Fragment>
|
|
541
|
-
<VStack height="400px">
|
|
542
|
-
<Tree id="treeApi" testId="tree"
|
|
543
|
-
dataFormat="flat"
|
|
544
|
-
defaultExpanded="all"
|
|
545
|
-
data='{${JSON.stringify(testData_1.flatTreeData)}}'>
|
|
546
|
-
<property name="itemTemplate">
|
|
547
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
548
|
-
<Text value="{$item.name}" />
|
|
549
|
-
</HStack>
|
|
550
|
-
</property>
|
|
551
|
-
</Tree>
|
|
552
|
-
</VStack>
|
|
553
|
-
<Button id="removeChildrenBtn" testId="remove-children-btn" label="Remove children of Node 2"
|
|
554
|
-
onClick="treeApi.removeChildren(2);" />
|
|
555
|
-
</Fragment>
|
|
556
|
-
`);
|
|
557
|
-
const tree = yield createTreeDriver("tree");
|
|
558
|
-
const removeChildrenButton = yield createButtonDriver("remove-children-btn");
|
|
559
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
560
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
561
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
562
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
563
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
564
|
-
// Remove children of node 2 using API
|
|
565
|
-
yield removeChildrenButton.click();
|
|
566
|
-
// Verify nodes 1, 2, and 3 are still visible (not affected)
|
|
567
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root still visible
|
|
568
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Parent node kept
|
|
569
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Sibling not affected
|
|
570
|
-
// Verify only node 4 (child of node 2) is removed
|
|
571
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).not.toBeVisible(); // Removed child
|
|
572
|
-
}));
|
|
573
|
-
(0, fixtures_1.test)("exposes removeChildren method with flat data format #3 - remove children of leaf node (no effect)", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
574
|
-
yield initTestBed(`
|
|
575
|
-
<Fragment>
|
|
576
|
-
<VStack height="400px">
|
|
577
|
-
<Tree id="treeApi" testId="tree"
|
|
578
|
-
dataFormat="flat"
|
|
579
|
-
defaultExpanded="all"
|
|
580
|
-
data='{${JSON.stringify(testData_1.flatTreeData)}}'>
|
|
581
|
-
<property name="itemTemplate">
|
|
582
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
583
|
-
<Text value="{$item.name}" />
|
|
584
|
-
</HStack>
|
|
585
|
-
</property>
|
|
586
|
-
</Tree>
|
|
587
|
-
</VStack>
|
|
588
|
-
<Button id="removeChildrenBtn" testId="remove-children-btn" label="Remove children of Leaf Node 4"
|
|
589
|
-
onClick="treeApi.removeChildren(4);" />
|
|
590
|
-
</Fragment>
|
|
591
|
-
`);
|
|
592
|
-
const tree = yield createTreeDriver("tree");
|
|
593
|
-
const removeChildrenButton = yield createButtonDriver("remove-children-btn");
|
|
594
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
595
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
596
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
597
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
598
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
599
|
-
// Remove children of leaf node 4 using API (should have no effect)
|
|
600
|
-
yield removeChildrenButton.click();
|
|
601
|
-
// Verify all nodes are still visible (no changes since node 4 has no children)
|
|
602
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root still visible
|
|
603
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child still visible
|
|
604
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child still visible
|
|
605
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Leaf node still visible
|
|
606
|
-
}));
|
|
607
|
-
(0, fixtures_1.test)("exposes removeNode method with hierarchy data format #1 - remove leaf node", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
608
|
-
yield initTestBed(`
|
|
609
|
-
<Fragment>
|
|
610
|
-
<VStack height="400px">
|
|
611
|
-
<Tree id="treeApi" testId="tree"
|
|
612
|
-
dataFormat="hierarchy"
|
|
613
|
-
defaultExpanded="all"
|
|
614
|
-
data='{${JSON.stringify(testData_1.hierarchyTreeData)}}'>
|
|
615
|
-
<property name="itemTemplate">
|
|
616
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
617
|
-
<Text value="{$item.name}" />
|
|
618
|
-
</HStack>
|
|
619
|
-
</property>
|
|
620
|
-
</Tree>
|
|
621
|
-
</VStack>
|
|
622
|
-
<Button id="removeBtn" testId="remove-btn" label="Remove Leaf Node 4"
|
|
623
|
-
onClick="treeApi.removeNode(4);" />
|
|
624
|
-
</Fragment>
|
|
625
|
-
`);
|
|
626
|
-
const tree = yield createTreeDriver("tree");
|
|
627
|
-
const removeButton = yield createButtonDriver("remove-btn");
|
|
628
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
629
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
630
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
631
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
632
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
633
|
-
// Remove leaf node using API
|
|
634
|
-
yield removeButton.click();
|
|
635
|
-
// Verify original nodes are still visible except removed node
|
|
636
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Original root
|
|
637
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Original child
|
|
638
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Original child
|
|
639
|
-
// Verify removed node is no longer visible
|
|
640
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).not.toBeVisible(); // Removed leaf node
|
|
641
|
-
}));
|
|
642
|
-
(0, fixtures_1.test)("exposes removeNode method with hierarchy data format #2 - remove parent with children", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
643
|
-
yield initTestBed(`
|
|
644
|
-
<Fragment>
|
|
645
|
-
<VStack height="400px">
|
|
646
|
-
<Tree id="treeApi" testId="tree"
|
|
647
|
-
dataFormat="hierarchy"
|
|
648
|
-
defaultExpanded="all"
|
|
649
|
-
data='{${JSON.stringify(testData_1.hierarchyTreeData)}}'>
|
|
650
|
-
<property name="itemTemplate">
|
|
651
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
652
|
-
<Text value="{$item.name}" />
|
|
653
|
-
</HStack>
|
|
654
|
-
</property>
|
|
655
|
-
</Tree>
|
|
656
|
-
</VStack>
|
|
657
|
-
<Button id="removeBtn" testId="remove-btn" label="Remove Node 3 and its children"
|
|
658
|
-
onClick="treeApi.removeNode(3);" />
|
|
659
|
-
</Fragment>
|
|
660
|
-
`);
|
|
661
|
-
const tree = yield createTreeDriver("tree");
|
|
662
|
-
const removeButton = yield createButtonDriver("remove-btn");
|
|
663
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
664
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
665
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
666
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
667
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
668
|
-
// Remove parent node and its children using API
|
|
669
|
-
yield removeButton.click();
|
|
670
|
-
// Verify remaining nodes are still visible
|
|
671
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Original root
|
|
672
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Original child (not removed)
|
|
673
|
-
// Verify removed nodes are no longer visible
|
|
674
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).not.toBeVisible(); // Removed parent
|
|
675
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).not.toBeVisible(); // Removed child (descendant of node 3)
|
|
676
|
-
}));
|
|
677
|
-
(0, fixtures_1.test)("exposes removeNode method with hierarchy data format #3 - remove root node", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
678
|
-
yield initTestBed(`
|
|
679
|
-
<Fragment>
|
|
680
|
-
<VStack height="400px">
|
|
681
|
-
<Tree id="treeApi" testId="tree"
|
|
682
|
-
dataFormat="hierarchy"
|
|
683
|
-
defaultExpanded="all"
|
|
684
|
-
data='{${JSON.stringify(testData_1.hierarchyTreeData)}}'>
|
|
685
|
-
<property name="itemTemplate">
|
|
686
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
687
|
-
<Text value="{$item.name}" />
|
|
688
|
-
</HStack>
|
|
689
|
-
</property>
|
|
690
|
-
</Tree>
|
|
691
|
-
</VStack>
|
|
692
|
-
<Button id="removeBtn" testId="remove-btn" label="Remove Root Node 1 and all descendants"
|
|
693
|
-
onClick="treeApi.removeNode(1);" />
|
|
694
|
-
</Fragment>
|
|
695
|
-
`);
|
|
696
|
-
const tree = yield createTreeDriver("tree");
|
|
697
|
-
const removeButton = yield createButtonDriver("remove-btn");
|
|
698
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
699
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
700
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
701
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
702
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
703
|
-
// Remove root node and all descendants using API
|
|
704
|
-
yield removeButton.click();
|
|
705
|
-
// Verify all nodes are removed since they were all descendants of node 1
|
|
706
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).not.toBeVisible(); // Removed root
|
|
707
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).not.toBeVisible(); // Removed descendant
|
|
708
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).not.toBeVisible(); // Removed descendant
|
|
709
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).not.toBeVisible(); // Removed descendant
|
|
710
|
-
}));
|
|
711
|
-
(0, fixtures_1.test)("exposes removeChildren method with hierarchy data format #1 - remove children of parent node", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
712
|
-
yield initTestBed(`
|
|
713
|
-
<Fragment>
|
|
714
|
-
<VStack height="400px">
|
|
715
|
-
<Tree id="treeApi" testId="tree"
|
|
716
|
-
dataFormat="hierarchy"
|
|
717
|
-
defaultExpanded="all"
|
|
718
|
-
data='{${JSON.stringify(testData_1.hierarchyTreeData)}}'>
|
|
719
|
-
<property name="itemTemplate">
|
|
720
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
721
|
-
<Text value="{$item.name}" />
|
|
722
|
-
</HStack>
|
|
723
|
-
</property>
|
|
724
|
-
</Tree>
|
|
725
|
-
</VStack>
|
|
726
|
-
<Button id="removeChildrenBtn" testId="remove-children-btn" label="Remove children of Node 1"
|
|
727
|
-
onClick="treeApi.removeChildren(1);" />
|
|
728
|
-
</Fragment>
|
|
729
|
-
`);
|
|
730
|
-
const tree = yield createTreeDriver("tree");
|
|
731
|
-
const removeChildrenButton = yield createButtonDriver("remove-children-btn");
|
|
732
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
733
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
734
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
735
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
736
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
737
|
-
// Remove children of node 1 using API
|
|
738
|
-
yield removeChildrenButton.click();
|
|
739
|
-
// Verify parent node 1 is still visible
|
|
740
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Parent node kept
|
|
741
|
-
// Verify all children and descendants are removed
|
|
742
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).not.toBeVisible(); // Removed child
|
|
743
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).not.toBeVisible(); // Removed child
|
|
744
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).not.toBeVisible(); // Removed descendant
|
|
745
|
-
}));
|
|
746
|
-
(0, fixtures_1.test)("exposes removeChildren method with hierarchy data format #2 - remove children of node with children", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
747
|
-
yield initTestBed(`
|
|
748
|
-
<Fragment>
|
|
749
|
-
<VStack height="400px">
|
|
750
|
-
<Tree id="treeApi" testId="tree"
|
|
751
|
-
dataFormat="hierarchy"
|
|
752
|
-
defaultExpanded="all"
|
|
753
|
-
data='{${JSON.stringify(testData_1.hierarchyTreeData)}}'>
|
|
754
|
-
<property name="itemTemplate">
|
|
755
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
756
|
-
<Text value="{$item.name}" />
|
|
757
|
-
</HStack>
|
|
758
|
-
</property>
|
|
759
|
-
</Tree>
|
|
760
|
-
</VStack>
|
|
761
|
-
<Button id="removeChildrenBtn" testId="remove-children-btn" label="Remove children of Node 3"
|
|
762
|
-
onClick="treeApi.removeChildren(3);" />
|
|
763
|
-
</Fragment>
|
|
764
|
-
`);
|
|
765
|
-
const tree = yield createTreeDriver("tree");
|
|
766
|
-
const removeChildrenButton = yield createButtonDriver("remove-children-btn");
|
|
767
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
768
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
769
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
770
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
771
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
772
|
-
// Remove children of node 3 using API
|
|
773
|
-
yield removeChildrenButton.click();
|
|
774
|
-
// Verify nodes 1, 2, and 3 are still visible (not affected)
|
|
775
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root still visible
|
|
776
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Sibling not affected
|
|
777
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Parent node kept
|
|
778
|
-
// Verify only node 4 (child of node 3) is removed
|
|
779
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).not.toBeVisible(); // Removed child
|
|
780
|
-
}));
|
|
781
|
-
(0, fixtures_1.test)("exposes removeChildren method with hierarchy data format #3 - remove children of leaf node (no effect)", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
782
|
-
yield initTestBed(`
|
|
783
|
-
<Fragment>
|
|
784
|
-
<VStack height="400px">
|
|
785
|
-
<Tree id="treeApi" testId="tree"
|
|
786
|
-
dataFormat="hierarchy"
|
|
787
|
-
defaultExpanded="all"
|
|
788
|
-
data='{${JSON.stringify(testData_1.hierarchyTreeData)}}'>
|
|
789
|
-
<property name="itemTemplate">
|
|
790
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
791
|
-
<Text value="{$item.name}" />
|
|
792
|
-
</HStack>
|
|
793
|
-
</property>
|
|
794
|
-
</Tree>
|
|
795
|
-
</VStack>
|
|
796
|
-
<Button id="removeChildrenBtn" testId="remove-children-btn" label="Remove children of Leaf Node 2"
|
|
797
|
-
onClick="treeApi.removeChildren(2);" />
|
|
798
|
-
</Fragment>
|
|
799
|
-
`);
|
|
800
|
-
const tree = yield createTreeDriver("tree");
|
|
801
|
-
const removeChildrenButton = yield createButtonDriver("remove-children-btn");
|
|
802
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
803
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
804
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
805
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
806
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
807
|
-
// Remove children of leaf node 2 using API (should have no effect)
|
|
808
|
-
yield removeChildrenButton.click();
|
|
809
|
-
// Verify all nodes are still visible (no changes since node 2 has no children in hierarchy data)
|
|
810
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root still visible
|
|
811
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Leaf node still visible
|
|
812
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Sibling still visible
|
|
813
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Child of sibling still visible
|
|
814
|
-
}));
|
|
815
|
-
(0, fixtures_1.test)("exposes insertNodeBefore method with flat data format #1 - insert before sibling node", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
816
|
-
yield initTestBed(`
|
|
817
|
-
<Fragment>
|
|
818
|
-
<VStack height="400px">
|
|
819
|
-
<Tree id="treeApi" testId="tree"
|
|
820
|
-
dataFormat="flat"
|
|
821
|
-
defaultExpanded="all"
|
|
822
|
-
data='{${JSON.stringify(testData_1.flatTreeData)}}'>
|
|
823
|
-
<property name="itemTemplate">
|
|
824
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
825
|
-
<Text value="{$item.name}" />
|
|
826
|
-
</HStack>
|
|
827
|
-
</property>
|
|
828
|
-
</Tree>
|
|
829
|
-
</VStack>
|
|
830
|
-
<Button id="insertBtn" testId="insert-btn" label="Insert before Node 3"
|
|
831
|
-
onClick="treeApi.insertNodeBefore(3, { id: 5, name: 'New Node Before 3' });" />
|
|
832
|
-
</Fragment>
|
|
833
|
-
`);
|
|
834
|
-
const tree = yield createTreeDriver("tree");
|
|
835
|
-
const insertButton = yield createButtonDriver("insert-btn");
|
|
836
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
837
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
838
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
839
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
840
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
841
|
-
// Insert new node before node 3 using API
|
|
842
|
-
yield insertButton.click();
|
|
843
|
-
// Verify all original nodes are still visible
|
|
844
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root still visible
|
|
845
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child still visible
|
|
846
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child still visible
|
|
847
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild still visible
|
|
848
|
-
// Verify new node is visible (inserted as sibling of node 3)
|
|
849
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5")).toBeVisible(); // New node inserted
|
|
850
|
-
}));
|
|
851
|
-
(0, fixtures_1.test)("exposes insertNodeBefore method with flat data format #2 - insert before first child", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
852
|
-
yield initTestBed(`
|
|
853
|
-
<Fragment>
|
|
854
|
-
<VStack height="400px">
|
|
855
|
-
<Tree id="treeApi" testId="tree"
|
|
856
|
-
dataFormat="flat"
|
|
857
|
-
defaultExpanded="all"
|
|
858
|
-
data='{${JSON.stringify(testData_1.flatTreeData)}}'>
|
|
859
|
-
<property name="itemTemplate">
|
|
860
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
861
|
-
<Text value="{$item.name}" />
|
|
862
|
-
</HStack>
|
|
863
|
-
</property>
|
|
864
|
-
</Tree>
|
|
865
|
-
</VStack>
|
|
866
|
-
<Button id="insertBtn" testId="insert-btn" label="Insert before Node 2"
|
|
867
|
-
onClick="treeApi.insertNodeBefore(2, { id: 5, name: 'New First Child' });" />
|
|
868
|
-
</Fragment>
|
|
869
|
-
`);
|
|
870
|
-
const tree = yield createTreeDriver("tree");
|
|
871
|
-
const insertButton = yield createButtonDriver("insert-btn");
|
|
872
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
873
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
874
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
875
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
876
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
877
|
-
// Insert new node before node 2 using API
|
|
878
|
-
yield insertButton.click();
|
|
879
|
-
// Verify all original nodes are still visible
|
|
880
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root still visible
|
|
881
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child still visible
|
|
882
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child still visible
|
|
883
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild still visible
|
|
884
|
-
// Verify new node is visible (inserted as first child of node 1)
|
|
885
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5")).toBeVisible(); // New node inserted
|
|
886
|
-
}));
|
|
887
|
-
(0, fixtures_1.test)("exposes insertNodeBefore method with flat data format #3 - insert before root node", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
888
|
-
yield initTestBed(`
|
|
889
|
-
<Fragment>
|
|
890
|
-
<VStack height="400px">
|
|
891
|
-
<Tree id="treeApi" testId="tree"
|
|
892
|
-
dataFormat="flat"
|
|
893
|
-
defaultExpanded="all"
|
|
894
|
-
data='{${JSON.stringify(testData_1.flatTreeData)}}'>
|
|
895
|
-
<property name="itemTemplate">
|
|
896
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
897
|
-
<Text value="{$item.name}" />
|
|
898
|
-
</HStack>
|
|
899
|
-
</property>
|
|
900
|
-
</Tree>
|
|
901
|
-
</VStack>
|
|
902
|
-
<Button id="insertBtn" testId="insert-btn" label="Insert before Root Node 1"
|
|
903
|
-
onClick="treeApi.insertNodeBefore(1, { id: 5, name: 'New Root Before 1' });" />
|
|
904
|
-
</Fragment>
|
|
905
|
-
`);
|
|
906
|
-
const tree = yield createTreeDriver("tree");
|
|
907
|
-
const insertButton = yield createButtonDriver("insert-btn");
|
|
908
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
909
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
910
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
911
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
912
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
913
|
-
// Insert new node before root node 1 using API
|
|
914
|
-
yield insertButton.click();
|
|
915
|
-
// Verify all original nodes are still visible
|
|
916
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root still visible
|
|
917
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child still visible
|
|
918
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child still visible
|
|
919
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild still visible
|
|
920
|
-
// Verify new node is visible (inserted as new root before node 1)
|
|
921
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5")).toBeVisible(); // New node inserted
|
|
922
|
-
}));
|
|
923
|
-
(0, fixtures_1.test)("exposes insertNodeBefore method with hierarchy data format #1 - insert before sibling node", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
924
|
-
yield initTestBed(`
|
|
925
|
-
<Fragment>
|
|
926
|
-
<VStack height="400px">
|
|
927
|
-
<Tree id="treeApi" testId="tree"
|
|
928
|
-
dataFormat="hierarchy"
|
|
929
|
-
defaultExpanded="all"
|
|
930
|
-
data='{${JSON.stringify(testData_1.hierarchyTreeData)}}'>
|
|
931
|
-
<property name="itemTemplate">
|
|
932
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
933
|
-
<Text value="{$item.name}" />
|
|
934
|
-
</HStack>
|
|
935
|
-
</property>
|
|
936
|
-
</Tree>
|
|
937
|
-
</VStack>
|
|
938
|
-
<Button id="insertBtn" testId="insert-btn" label="Insert before Node 3"
|
|
939
|
-
onClick="treeApi.insertNodeBefore(3, { id: 5, name: 'New Node Before 3' });" />
|
|
940
|
-
</Fragment>
|
|
941
|
-
`);
|
|
942
|
-
const tree = yield createTreeDriver("tree");
|
|
943
|
-
const insertButton = yield createButtonDriver("insert-btn");
|
|
944
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
945
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
946
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
947
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
948
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
949
|
-
// Insert new node before node 3 using API
|
|
950
|
-
yield insertButton.click();
|
|
951
|
-
// Verify all original nodes are still visible
|
|
952
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root still visible
|
|
953
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child still visible
|
|
954
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child still visible
|
|
955
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild still visible
|
|
956
|
-
// Verify new node is visible (inserted as sibling of node 3)
|
|
957
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5")).toBeVisible(); // New node inserted
|
|
958
|
-
}));
|
|
959
|
-
(0, fixtures_1.test)("exposes insertNodeBefore method with hierarchy data format #2 - insert before first child", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
960
|
-
yield initTestBed(`
|
|
961
|
-
<Fragment>
|
|
962
|
-
<VStack height="400px">
|
|
963
|
-
<Tree id="treeApi" testId="tree"
|
|
964
|
-
dataFormat="hierarchy"
|
|
965
|
-
defaultExpanded="all"
|
|
966
|
-
data='{${JSON.stringify(testData_1.hierarchyTreeData)}}'>
|
|
967
|
-
<property name="itemTemplate">
|
|
968
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
969
|
-
<Text value="{$item.name}" />
|
|
970
|
-
</HStack>
|
|
971
|
-
</property>
|
|
972
|
-
</Tree>
|
|
973
|
-
</VStack>
|
|
974
|
-
<Button id="insertBtn" testId="insert-btn" label="Insert before Node 2"
|
|
975
|
-
onClick="treeApi.insertNodeBefore(2, { id: 5, name: 'New First Child' });" />
|
|
976
|
-
</Fragment>
|
|
977
|
-
`);
|
|
978
|
-
const tree = yield createTreeDriver("tree");
|
|
979
|
-
const insertButton = yield createButtonDriver("insert-btn");
|
|
980
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
981
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
982
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
983
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
984
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
985
|
-
// Insert new node before node 2 using API
|
|
986
|
-
yield insertButton.click();
|
|
987
|
-
// Verify all original nodes are still visible
|
|
988
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root still visible
|
|
989
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child still visible
|
|
990
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child still visible
|
|
991
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild still visible
|
|
992
|
-
// Verify new node is visible (inserted as first child of node 1)
|
|
993
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5")).toBeVisible(); // New node inserted
|
|
994
|
-
}));
|
|
995
|
-
(0, fixtures_1.test)("exposes insertNodeBefore method with hierarchy data format #3 - insert before root node", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
996
|
-
yield initTestBed(`
|
|
997
|
-
<Fragment>
|
|
998
|
-
<VStack height="400px">
|
|
999
|
-
<Tree id="treeApi" testId="tree"
|
|
1000
|
-
dataFormat="hierarchy"
|
|
1001
|
-
defaultExpanded="all"
|
|
1002
|
-
data='{${JSON.stringify(testData_1.hierarchyTreeData)}}'>
|
|
1003
|
-
<property name="itemTemplate">
|
|
1004
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
1005
|
-
<Text value="{$item.name}" />
|
|
1006
|
-
</HStack>
|
|
1007
|
-
</property>
|
|
1008
|
-
</Tree>
|
|
1009
|
-
</VStack>
|
|
1010
|
-
<Button id="insertBtn" testId="insert-btn" label="Insert before Root Node 1"
|
|
1011
|
-
onClick="treeApi.insertNodeBefore(1, { id: 5, name: 'New Root Before 1' });" />
|
|
1012
|
-
</Fragment>
|
|
1013
|
-
`);
|
|
1014
|
-
const tree = yield createTreeDriver("tree");
|
|
1015
|
-
const insertButton = yield createButtonDriver("insert-btn");
|
|
1016
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
1017
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
1018
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
1019
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
1020
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
1021
|
-
// Insert new node before root node 1 using API
|
|
1022
|
-
yield insertButton.click();
|
|
1023
|
-
// Verify all original nodes are still visible
|
|
1024
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root still visible
|
|
1025
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child still visible
|
|
1026
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child still visible
|
|
1027
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild still visible
|
|
1028
|
-
// Verify new node is visible (inserted as new root before node 1)
|
|
1029
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5")).toBeVisible(); // New node inserted
|
|
1030
|
-
}));
|
|
1031
|
-
(0, fixtures_1.test)("exposes insertNodeAfter method with flat data format #1 - insert after sibling node", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
1032
|
-
yield initTestBed(`
|
|
1033
|
-
<Fragment>
|
|
1034
|
-
<VStack height="400px">
|
|
1035
|
-
<Tree id="treeApi" testId="tree"
|
|
1036
|
-
dataFormat="flat"
|
|
1037
|
-
defaultExpanded="all"
|
|
1038
|
-
data='{${JSON.stringify(testData_1.flatTreeData)}}'>
|
|
1039
|
-
<property name="itemTemplate">
|
|
1040
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
1041
|
-
<Text value="{$item.name}" />
|
|
1042
|
-
</HStack>
|
|
1043
|
-
</property>
|
|
1044
|
-
</Tree>
|
|
1045
|
-
</VStack>
|
|
1046
|
-
<Button id="insertBtn" testId="insert-btn" label="Insert after Node 2"
|
|
1047
|
-
onClick="treeApi.insertNodeAfter(2, { id: 5, name: 'New Node After 2' });" />
|
|
1048
|
-
</Fragment>
|
|
1049
|
-
`);
|
|
1050
|
-
const tree = yield createTreeDriver("tree");
|
|
1051
|
-
const insertButton = yield createButtonDriver("insert-btn");
|
|
1052
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
1053
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
1054
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
1055
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
1056
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
1057
|
-
// Insert new node after node 2 using API
|
|
1058
|
-
yield insertButton.click();
|
|
1059
|
-
// Verify all original nodes are still visible
|
|
1060
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root still visible
|
|
1061
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child still visible
|
|
1062
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child still visible
|
|
1063
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild still visible
|
|
1064
|
-
// Verify new node is visible (inserted as sibling after node 2)
|
|
1065
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5")).toBeVisible(); // New node inserted
|
|
1066
|
-
}));
|
|
1067
|
-
(0, fixtures_1.test)("exposes insertNodeAfter method with flat data format #2 - insert after last child", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
1068
|
-
yield initTestBed(`
|
|
1069
|
-
<Fragment>
|
|
1070
|
-
<VStack height="400px">
|
|
1071
|
-
<Tree id="treeApi" testId="tree"
|
|
1072
|
-
dataFormat="flat"
|
|
1073
|
-
defaultExpanded="all"
|
|
1074
|
-
data='{${JSON.stringify(testData_1.flatTreeData)}}'>
|
|
1075
|
-
<property name="itemTemplate">
|
|
1076
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
1077
|
-
<Text value="{$item.name}" />
|
|
1078
|
-
</HStack>
|
|
1079
|
-
</property>
|
|
1080
|
-
</Tree>
|
|
1081
|
-
</VStack>
|
|
1082
|
-
<Button id="insertBtn" testId="insert-btn" label="Insert after Node 3"
|
|
1083
|
-
onClick="treeApi.insertNodeAfter(3, { id: 5, name: 'New Last Child' });" />
|
|
1084
|
-
</Fragment>
|
|
1085
|
-
`);
|
|
1086
|
-
const tree = yield createTreeDriver("tree");
|
|
1087
|
-
const insertButton = yield createButtonDriver("insert-btn");
|
|
1088
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
1089
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
1090
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
1091
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
1092
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
1093
|
-
// Insert new node after node 3 using API
|
|
1094
|
-
yield insertButton.click();
|
|
1095
|
-
// Verify all original nodes are still visible
|
|
1096
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root still visible
|
|
1097
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child still visible
|
|
1098
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child still visible
|
|
1099
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild still visible
|
|
1100
|
-
// Verify new node is visible (inserted as last child of node 1)
|
|
1101
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5")).toBeVisible(); // New node inserted
|
|
1102
|
-
}));
|
|
1103
|
-
(0, fixtures_1.test)("exposes insertNodeAfter method with flat data format #3 - insert after root node", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
1104
|
-
yield initTestBed(`
|
|
1105
|
-
<Fragment>
|
|
1106
|
-
<VStack height="400px">
|
|
1107
|
-
<Tree id="treeApi" testId="tree"
|
|
1108
|
-
dataFormat="flat"
|
|
1109
|
-
defaultExpanded="all"
|
|
1110
|
-
data='{${JSON.stringify(testData_1.flatTreeData)}}'>
|
|
1111
|
-
<property name="itemTemplate">
|
|
1112
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
1113
|
-
<Text value="{$item.name}" />
|
|
1114
|
-
</HStack>
|
|
1115
|
-
</property>
|
|
1116
|
-
</Tree>
|
|
1117
|
-
</VStack>
|
|
1118
|
-
<Button id="insertBtn" testId="insert-btn" label="Insert after Root Node 1"
|
|
1119
|
-
onClick="treeApi.insertNodeAfter(1, { id: 5, name: 'New Root After 1' });" />
|
|
1120
|
-
</Fragment>
|
|
1121
|
-
`);
|
|
1122
|
-
const tree = yield createTreeDriver("tree");
|
|
1123
|
-
const insertButton = yield createButtonDriver("insert-btn");
|
|
1124
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
1125
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
1126
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
1127
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
1128
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
1129
|
-
// Insert new node after root node 1 using API
|
|
1130
|
-
yield insertButton.click();
|
|
1131
|
-
// Verify all original nodes are still visible
|
|
1132
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root still visible
|
|
1133
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child still visible
|
|
1134
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child still visible
|
|
1135
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild still visible
|
|
1136
|
-
// Verify new node is visible (inserted as new root after node 1)
|
|
1137
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5")).toBeVisible(); // New node inserted
|
|
1138
|
-
}));
|
|
1139
|
-
(0, fixtures_1.test)("exposes insertNodeAfter method with hierarchy data format #1 - insert after sibling node", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
1140
|
-
yield initTestBed(`
|
|
1141
|
-
<Fragment>
|
|
1142
|
-
<VStack height="400px">
|
|
1143
|
-
<Tree id="treeApi" testId="tree"
|
|
1144
|
-
dataFormat="hierarchy"
|
|
1145
|
-
defaultExpanded="all"
|
|
1146
|
-
data='{${JSON.stringify(testData_1.hierarchyTreeData)}}'>
|
|
1147
|
-
<property name="itemTemplate">
|
|
1148
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
1149
|
-
<Text value="{$item.name}" />
|
|
1150
|
-
</HStack>
|
|
1151
|
-
</property>
|
|
1152
|
-
</Tree>
|
|
1153
|
-
</VStack>
|
|
1154
|
-
<Button id="insertBtn" testId="insert-btn" label="Insert after Node 2"
|
|
1155
|
-
onClick="treeApi.insertNodeAfter(2, { id: 5, name: 'New Node After 2' });" />
|
|
1156
|
-
</Fragment>
|
|
1157
|
-
`);
|
|
1158
|
-
const tree = yield createTreeDriver("tree");
|
|
1159
|
-
const insertButton = yield createButtonDriver("insert-btn");
|
|
1160
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
1161
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
1162
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
1163
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
1164
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
1165
|
-
// Insert new node after node 2 using API
|
|
1166
|
-
yield insertButton.click();
|
|
1167
|
-
// Verify all original nodes are still visible
|
|
1168
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root still visible
|
|
1169
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child still visible
|
|
1170
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child still visible
|
|
1171
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild still visible
|
|
1172
|
-
// Verify new node is visible (inserted as sibling after node 2)
|
|
1173
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5")).toBeVisible(); // New node inserted
|
|
1174
|
-
}));
|
|
1175
|
-
(0, fixtures_1.test)("exposes insertNodeAfter method with hierarchy data format #2 - insert after last child", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
1176
|
-
yield initTestBed(`
|
|
1177
|
-
<Fragment>
|
|
1178
|
-
<VStack height="400px">
|
|
1179
|
-
<Tree id="treeApi" testId="tree"
|
|
1180
|
-
dataFormat="hierarchy"
|
|
1181
|
-
defaultExpanded="all"
|
|
1182
|
-
data='{${JSON.stringify(testData_1.hierarchyTreeData)}}'>
|
|
1183
|
-
<property name="itemTemplate">
|
|
1184
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
1185
|
-
<Text value="{$item.name}" />
|
|
1186
|
-
</HStack>
|
|
1187
|
-
</property>
|
|
1188
|
-
</Tree>
|
|
1189
|
-
</VStack>
|
|
1190
|
-
<Button id="insertBtn" testId="insert-btn" label="Insert after Node 3"
|
|
1191
|
-
onClick="treeApi.insertNodeAfter(3, { id: 5, name: 'New Last Child' });" />
|
|
1192
|
-
</Fragment>
|
|
1193
|
-
`);
|
|
1194
|
-
const tree = yield createTreeDriver("tree");
|
|
1195
|
-
const insertButton = yield createButtonDriver("insert-btn");
|
|
1196
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
1197
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
1198
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
1199
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
1200
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
1201
|
-
// Insert new node after node 3 using API
|
|
1202
|
-
yield insertButton.click();
|
|
1203
|
-
// Verify all original nodes are still visible
|
|
1204
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root still visible
|
|
1205
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child still visible
|
|
1206
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child still visible
|
|
1207
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild still visible
|
|
1208
|
-
// Verify new node is visible (inserted as last child of node 1)
|
|
1209
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5")).toBeVisible(); // New node inserted
|
|
1210
|
-
}));
|
|
1211
|
-
(0, fixtures_1.test)("exposes insertNodeAfter method with hierarchy data format #3 - insert after root node", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
1212
|
-
yield initTestBed(`
|
|
1213
|
-
<Fragment>
|
|
1214
|
-
<VStack height="400px">
|
|
1215
|
-
<Tree id="treeApi" testId="tree"
|
|
1216
|
-
dataFormat="hierarchy"
|
|
1217
|
-
defaultExpanded="all"
|
|
1218
|
-
data='{${JSON.stringify(testData_1.hierarchyTreeData)}}'>
|
|
1219
|
-
<property name="itemTemplate">
|
|
1220
|
-
<HStack testId="{$item.id}" verticalAlignment="center">
|
|
1221
|
-
<Text value="{$item.name}" />
|
|
1222
|
-
</HStack>
|
|
1223
|
-
</property>
|
|
1224
|
-
</Tree>
|
|
1225
|
-
</VStack>
|
|
1226
|
-
<Button id="insertBtn" testId="insert-btn" label="Insert after Root Node 1"
|
|
1227
|
-
onClick="treeApi.insertNodeAfter(1, { id: 5, name: 'New Root After 1' });" />
|
|
1228
|
-
</Fragment>
|
|
1229
|
-
`);
|
|
1230
|
-
const tree = yield createTreeDriver("tree");
|
|
1231
|
-
const insertButton = yield createButtonDriver("insert-btn");
|
|
1232
|
-
// Check initial tree structure - all nodes visible due to defaultExpanded="all"
|
|
1233
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root visible
|
|
1234
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child visible (expanded)
|
|
1235
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child visible (expanded)
|
|
1236
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild visible (expanded)
|
|
1237
|
-
// Insert new node after root node 1 using API
|
|
1238
|
-
yield insertButton.click();
|
|
1239
|
-
// Verify all original nodes are still visible
|
|
1240
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1")).toBeVisible(); // Root still visible
|
|
1241
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2")).toBeVisible(); // Child still visible
|
|
1242
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3")).toBeVisible(); // Child still visible
|
|
1243
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4")).toBeVisible(); // Grandchild still visible
|
|
1244
|
-
// Verify new node is visible (inserted as new root after node 1)
|
|
1245
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5")).toBeVisible(); // New node inserted
|
|
1246
|
-
}));
|
|
1247
|
-
(0, fixtures_1.test)("exposes scrollIntoView method", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
1248
|
-
// Create a deeper hierarchy to test scrollIntoView with expansion
|
|
1249
|
-
const deepTreeData = [
|
|
1250
|
-
{ id: 1, name: "Root Item 1", parentId: null },
|
|
1251
|
-
{ id: 2, name: "Child Item 1.1", parentId: 1 },
|
|
1252
|
-
{ id: 3, name: "Child Item 1.2", parentId: 1 },
|
|
1253
|
-
{ id: 4, name: "Grandchild Item 1.1.1", parentId: 2 },
|
|
1254
|
-
{ id: 5, name: "Great-grandchild Item 1.1.1.1", parentId: 4 },
|
|
1255
|
-
{ id: 6, name: "Root Item 2", parentId: null },
|
|
1256
|
-
{ id: 7, name: "Child Item 2.1", parentId: 6 },
|
|
1257
|
-
{ id: 8, name: "Child Item 2.2", parentId: 6 },
|
|
1258
|
-
{ id: 9, name: "Grandchild Item 2.1.1", parentId: 7 },
|
|
1259
|
-
{ id: 10, name: "Root Item 3", parentId: null },
|
|
1260
|
-
{ id: 11, name: "Child Item 3.1", parentId: 10 },
|
|
1261
|
-
{ id: 12, name: "Deeply Nested Target", parentId: 11 }, // This requires expansion to be visible
|
|
1262
|
-
];
|
|
1263
|
-
const { testStateDriver } = yield initTestBed(`
|
|
1264
|
-
<Fragment>
|
|
1265
|
-
<VStack height="100px">
|
|
1266
|
-
<Tree id="treeApi" testId="tree"
|
|
1267
|
-
dataFormat="flat"
|
|
1268
|
-
parentIdField="parentId"
|
|
1269
|
-
data='{${JSON.stringify(deepTreeData)}}'>
|
|
1270
|
-
<property name="itemTemplate">
|
|
1271
|
-
<HStack testId="{$item.id}:scrollview" verticalAlignment="center">
|
|
1272
|
-
<Text value="{$item.name}" />
|
|
1273
|
-
</HStack>
|
|
1274
|
-
</property>
|
|
1275
|
-
</Tree>
|
|
1276
|
-
</VStack>
|
|
1277
|
-
<Button id="scrollViewBtn" testId="scroll-view-btn" label="Scroll Into View Deep Target" onClick="
|
|
1278
|
-
treeApi.scrollIntoView('12');
|
|
1279
|
-
testState = { actionPerformed: 'scrollIntoView', itemId: '12' };
|
|
1280
|
-
" />
|
|
1281
|
-
</Fragment>
|
|
1282
|
-
`);
|
|
1283
|
-
const tree = yield createTreeDriver("tree");
|
|
1284
|
-
const scrollViewButton = yield createButtonDriver("scroll-view-btn");
|
|
1285
|
-
// Initially, tree should be collapsed so the deep target is not visible
|
|
1286
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:scrollview")).toBeVisible(); // Root visible
|
|
1287
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("6:scrollview")).toBeVisible(); // Root visible
|
|
1288
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("10:scrollview")).toBeVisible(); // Root visible
|
|
1289
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("11:scrollview")).not.toBeVisible(); // Child hidden (collapsed)
|
|
1290
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("12:scrollview")).not.toBeVisible(); // Deep target hidden (needs expansion)
|
|
1291
|
-
// Click scroll into view button
|
|
1292
|
-
yield scrollViewButton.click();
|
|
1293
|
-
// Verify test state confirms action was performed
|
|
1294
|
-
yield fixtures_1.expect.poll(testStateDriver.testState).toEqual({
|
|
1295
|
-
actionPerformed: "scrollIntoView",
|
|
1296
|
-
itemId: "12",
|
|
1297
|
-
});
|
|
1298
|
-
// Verify that the node and its parents are now expanded (target should be visible)
|
|
1299
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("10:scrollview")).toBeVisible(); // Root still visible
|
|
1300
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("11:scrollview")).toBeVisible(); // Parent expanded
|
|
1301
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("12:scrollview")).toBeVisible(); // Target node now visible
|
|
1302
|
-
}));
|
|
1303
|
-
(0, fixtures_1.test)("exposes refreshData method", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
1304
|
-
const { testStateDriver } = yield initTestBed(`
|
|
1305
|
-
<Fragment>
|
|
1306
|
-
<VStack height="400px">
|
|
1307
|
-
<Tree id="treeApi" testId="tree"
|
|
1308
|
-
dataFormat="flat"
|
|
1309
|
-
defaultExpanded="all"
|
|
1310
|
-
data='{${JSON.stringify(testData_1.flatTreeData)}}'>
|
|
1311
|
-
<property name="itemTemplate">
|
|
1312
|
-
<HStack testId="{$item.id}:refresh" verticalAlignment="center">
|
|
1313
|
-
<Text value="{$item.name}" />
|
|
1314
|
-
</HStack>
|
|
1315
|
-
</property>
|
|
1316
|
-
</Tree>
|
|
1317
|
-
</VStack>
|
|
1318
|
-
<Button id="refreshBtn" testId="refresh-btn" label="Refresh Data" onClick="
|
|
1319
|
-
treeApi.refreshData();
|
|
1320
|
-
testState = { actionPerformed: 'refreshData' };
|
|
1321
|
-
" />
|
|
1322
|
-
</Fragment>
|
|
1323
|
-
`);
|
|
1324
|
-
const tree = yield createTreeDriver("tree");
|
|
1325
|
-
const refreshButton = yield createButtonDriver("refresh-btn");
|
|
1326
|
-
// Verify tree is visible with original data
|
|
1327
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:refresh")).toBeVisible();
|
|
1328
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:refresh")).toBeVisible();
|
|
1329
|
-
// Click refresh data button
|
|
1330
|
-
yield refreshButton.click();
|
|
1331
|
-
// Verify test state confirms action was performed
|
|
1332
|
-
// Note: refreshData forces re-processing but with same data, tree should remain the same
|
|
1333
|
-
yield fixtures_1.expect.poll(testStateDriver.testState).toEqual({
|
|
1334
|
-
actionPerformed: "refreshData",
|
|
1335
|
-
});
|
|
1336
|
-
// Tree should still be visible after refresh
|
|
1337
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:refresh")).toBeVisible();
|
|
1338
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:refresh")).toBeVisible();
|
|
1339
|
-
}));
|
|
1340
|
-
// =============================================================================
|
|
1341
|
-
// COMPREHENSIVE API METHOD TESTS
|
|
1342
|
-
// =============================================================================
|
|
1343
|
-
fixtures_1.test.describe("API Method Tests", () => {
|
|
1344
|
-
(0, fixtures_1.test)("expandAll() - expands all nodes and makes all children visible", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
1345
|
-
const { testStateDriver } = yield initTestBed(`
|
|
1346
|
-
<Fragment>
|
|
1347
|
-
<VStack height="400px">
|
|
1348
|
-
<Tree id="treeApi" testId="tree"
|
|
1349
|
-
dataFormat="hierarchy"
|
|
1350
|
-
data='{${JSON.stringify(testData_1.hierarchyTreeData)}}'>
|
|
1351
|
-
<property name="itemTemplate">
|
|
1352
|
-
<HStack testId="{$item.id}:expandall">
|
|
1353
|
-
<Text value="{$item.name}" />
|
|
1354
|
-
</HStack>
|
|
1355
|
-
</property>
|
|
1356
|
-
</Tree>
|
|
1357
|
-
</VStack>
|
|
1358
|
-
<Button testId="expandall-btn" label="Expand All" onClick="
|
|
1359
|
-
treeApi.expandAll();
|
|
1360
|
-
testState = { actionPerformed: 'expandAll' };
|
|
1361
|
-
" />
|
|
1362
|
-
</Fragment>
|
|
1363
|
-
`);
|
|
1364
|
-
const tree = yield createTreeDriver("tree");
|
|
1365
|
-
const expandAllButton = yield createButtonDriver("expandall-btn");
|
|
1366
|
-
// BEFORE: Verify tree starts collapsed - only root visible
|
|
1367
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:expandall")).toBeVisible(); // Root visible
|
|
1368
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:expandall")).not.toBeVisible(); // Child hidden
|
|
1369
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:expandall")).not.toBeVisible(); // Child hidden
|
|
1370
|
-
// Trigger expandAll API
|
|
1371
|
-
yield expandAllButton.click();
|
|
1372
|
-
// Wait for async API call to complete
|
|
1373
|
-
yield fixtures_1.expect.poll(testStateDriver.testState).toEqual({ actionPerformed: "expandAll" });
|
|
1374
|
-
// AFTER: Verify all nodes are now visible
|
|
1375
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:expandall")).toBeVisible(); // Root still visible
|
|
1376
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:expandall")).toBeVisible(); // Child now visible
|
|
1377
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:expandall")).toBeVisible(); // Child now visible
|
|
1378
|
-
// Note: For hierarchyTreeData, we only have 2 levels, so all should be visible after expandAll
|
|
1379
|
-
}));
|
|
1380
|
-
(0, fixtures_1.test)("collapseAll() - collapses all nodes and hides all children", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
1381
|
-
const { testStateDriver } = yield initTestBed(`
|
|
1382
|
-
<Fragment>
|
|
1383
|
-
<VStack height="400px">
|
|
1384
|
-
<Tree id="treeApi" testId="tree"
|
|
1385
|
-
dataFormat="hierarchy"
|
|
1386
|
-
defaultExpanded="all"
|
|
1387
|
-
data='{${JSON.stringify(testData_1.hierarchyTreeData)}}'>
|
|
1388
|
-
<property name="itemTemplate">
|
|
1389
|
-
<HStack testId="{$item.id}:collapseall">
|
|
1390
|
-
<Text value="{$item.name}" />
|
|
1391
|
-
</HStack>
|
|
1392
|
-
</property>
|
|
1393
|
-
</Tree>
|
|
1394
|
-
</VStack>
|
|
1395
|
-
<Button testId="collapseall-btn" label="Collapse All" onClick="
|
|
1396
|
-
treeApi.collapseAll();
|
|
1397
|
-
testState = { actionPerformed: 'collapseAll' };
|
|
1398
|
-
" />
|
|
1399
|
-
</Fragment>
|
|
1400
|
-
`);
|
|
1401
|
-
const tree = yield createTreeDriver("tree");
|
|
1402
|
-
const collapseAllButton = yield createButtonDriver("collapseall-btn");
|
|
1403
|
-
// BEFORE: Verify tree starts expanded - all nodes visible
|
|
1404
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:collapseall")).toBeVisible(); // Root visible
|
|
1405
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:collapseall")).toBeVisible(); // Child visible
|
|
1406
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:collapseall")).toBeVisible(); // Child visible
|
|
1407
|
-
// Trigger collapseAll API
|
|
1408
|
-
yield collapseAllButton.click();
|
|
1409
|
-
// Wait for async API call to complete
|
|
1410
|
-
yield fixtures_1.expect.poll(testStateDriver.testState).toEqual({ actionPerformed: "collapseAll" });
|
|
1411
|
-
// AFTER: Verify only root nodes are visible, children are hidden
|
|
1412
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:collapseall")).toBeVisible(); // Root still visible
|
|
1413
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:collapseall")).not.toBeVisible(); // Child now hidden
|
|
1414
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:collapseall")).not.toBeVisible(); // Child now hidden
|
|
1415
|
-
}));
|
|
1416
|
-
(0, fixtures_1.test)("expandAll() - with deep hierarchy (4+ levels)", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
1417
|
-
// Create a deeper hierarchy for thorough testing
|
|
1418
|
-
const deepHierarchyData = [
|
|
1419
|
-
{
|
|
1420
|
-
id: 1,
|
|
1421
|
-
name: "Root Level 0",
|
|
1422
|
-
children: [
|
|
1423
|
-
{
|
|
1424
|
-
id: 2,
|
|
1425
|
-
name: "Level 1 - Branch A",
|
|
1426
|
-
children: [
|
|
1427
|
-
{
|
|
1428
|
-
id: 3,
|
|
1429
|
-
name: "Level 2 - Branch A.1",
|
|
1430
|
-
children: [
|
|
1431
|
-
{ id: 4, name: "Level 3 - Leaf A.1.1", children: [] },
|
|
1432
|
-
{ id: 5, name: "Level 3 - Leaf A.1.2", children: [] },
|
|
1433
|
-
],
|
|
1434
|
-
},
|
|
1435
|
-
{ id: 6, name: "Level 2 - Branch A.2", children: [] },
|
|
1436
|
-
],
|
|
1437
|
-
},
|
|
1438
|
-
{
|
|
1439
|
-
id: 7,
|
|
1440
|
-
name: "Level 1 - Branch B",
|
|
1441
|
-
children: [{ id: 8, name: "Level 2 - Branch B.1", children: [] }],
|
|
1442
|
-
},
|
|
1443
|
-
],
|
|
1444
|
-
},
|
|
1445
|
-
];
|
|
1446
|
-
const { testStateDriver } = yield initTestBed(`
|
|
1447
|
-
<Fragment>
|
|
1448
|
-
<VStack height="400px">
|
|
1449
|
-
<Tree id="treeApi" testId="tree"
|
|
1450
|
-
dataFormat="hierarchy"
|
|
1451
|
-
data='{${JSON.stringify(deepHierarchyData)}}'>
|
|
1452
|
-
<property name="itemTemplate">
|
|
1453
|
-
<HStack testId="{$item.id}:deep">
|
|
1454
|
-
<Text value="{$item.name}" />
|
|
1455
|
-
</HStack>
|
|
1456
|
-
</property>
|
|
1457
|
-
</Tree>
|
|
1458
|
-
</VStack>
|
|
1459
|
-
<Button testId="expandall-deep-btn" label="Expand All Deep" onClick="
|
|
1460
|
-
treeApi.expandAll();
|
|
1461
|
-
testState = { actionPerformed: 'expandAllDeep' };
|
|
1462
|
-
" />
|
|
1463
|
-
</Fragment>
|
|
1464
|
-
`);
|
|
1465
|
-
const tree = yield createTreeDriver("tree");
|
|
1466
|
-
const expandAllButton = yield createButtonDriver("expandall-deep-btn");
|
|
1467
|
-
// BEFORE: Verify tree starts collapsed - only root visible
|
|
1468
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:deep")).toBeVisible(); // Root (Level 0)
|
|
1469
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:deep")).not.toBeVisible(); // Level 1 - Branch A (hidden)
|
|
1470
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:deep")).not.toBeVisible(); // Level 2 - Branch A.1 (hidden)
|
|
1471
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:deep")).not.toBeVisible(); // Level 3 - Leaf A.1.1 (hidden)
|
|
1472
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("7:deep")).not.toBeVisible(); // Level 1 - Branch B (hidden)
|
|
1473
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("8:deep")).not.toBeVisible(); // Level 2 - Branch B.1 (hidden)
|
|
1474
|
-
// Trigger expandAll API
|
|
1475
|
-
yield expandAllButton.click();
|
|
1476
|
-
// Wait for async API call to complete
|
|
1477
|
-
yield fixtures_1.expect.poll(testStateDriver.testState).toEqual({ actionPerformed: "expandAllDeep" });
|
|
1478
|
-
// AFTER: Verify ALL levels are now visible (4 levels deep)
|
|
1479
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:deep")).toBeVisible(); // Root (Level 0) - still visible
|
|
1480
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:deep")).toBeVisible(); // Level 1 - Branch A (now visible)
|
|
1481
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:deep")).toBeVisible(); // Level 2 - Branch A.1 (now visible)
|
|
1482
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:deep")).toBeVisible(); // Level 3 - Leaf A.1.1 (now visible)
|
|
1483
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5:deep")).toBeVisible(); // Level 3 - Leaf A.1.2 (now visible)
|
|
1484
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("6:deep")).toBeVisible(); // Level 2 - Branch A.2 (now visible)
|
|
1485
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("7:deep")).toBeVisible(); // Level 1 - Branch B (now visible)
|
|
1486
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("8:deep")).toBeVisible(); // Level 2 - Branch B.1 (now visible)
|
|
1487
|
-
}));
|
|
1488
|
-
(0, fixtures_1.test)("collapseAll() - with deep hierarchy (4+ levels)", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
1489
|
-
// Use the same deep hierarchy data
|
|
1490
|
-
const deepHierarchyData = [
|
|
1491
|
-
{
|
|
1492
|
-
id: 1,
|
|
1493
|
-
name: "Root Level 0",
|
|
1494
|
-
children: [
|
|
1495
|
-
{
|
|
1496
|
-
id: 2,
|
|
1497
|
-
name: "Level 1 - Branch A",
|
|
1498
|
-
children: [
|
|
1499
|
-
{
|
|
1500
|
-
id: 3,
|
|
1501
|
-
name: "Level 2 - Branch A.1",
|
|
1502
|
-
children: [
|
|
1503
|
-
{ id: 4, name: "Level 3 - Leaf A.1.1", children: [] },
|
|
1504
|
-
{ id: 5, name: "Level 3 - Leaf A.1.2", children: [] },
|
|
1505
|
-
],
|
|
1506
|
-
},
|
|
1507
|
-
{ id: 6, name: "Level 2 - Branch A.2", children: [] },
|
|
1508
|
-
],
|
|
1509
|
-
},
|
|
1510
|
-
{
|
|
1511
|
-
id: 7,
|
|
1512
|
-
name: "Level 1 - Branch B",
|
|
1513
|
-
children: [{ id: 8, name: "Level 2 - Branch B.1", children: [] }],
|
|
1514
|
-
},
|
|
1515
|
-
],
|
|
1516
|
-
},
|
|
1517
|
-
];
|
|
1518
|
-
const { testStateDriver } = yield initTestBed(`
|
|
1519
|
-
<Fragment>
|
|
1520
|
-
<VStack height="400px">
|
|
1521
|
-
<Tree id="treeApi" testId="tree"
|
|
1522
|
-
dataFormat="hierarchy"
|
|
1523
|
-
defaultExpanded="all"
|
|
1524
|
-
data='{${JSON.stringify(deepHierarchyData)}}'>
|
|
1525
|
-
<property name="itemTemplate">
|
|
1526
|
-
<HStack testId="{$item.id}:deepcollapse">
|
|
1527
|
-
<Text value="{$item.name}" />
|
|
1528
|
-
</HStack>
|
|
1529
|
-
</property>
|
|
1530
|
-
</Tree>
|
|
1531
|
-
</VStack>
|
|
1532
|
-
<Button testId="collapseall-deep-btn" label="Collapse All Deep" onClick="
|
|
1533
|
-
treeApi.collapseAll();
|
|
1534
|
-
testState = { actionPerformed: 'collapseAllDeep' };
|
|
1535
|
-
" />
|
|
1536
|
-
</Fragment>
|
|
1537
|
-
`);
|
|
1538
|
-
const tree = yield createTreeDriver("tree");
|
|
1539
|
-
const collapseAllButton = yield createButtonDriver("collapseall-deep-btn");
|
|
1540
|
-
// BEFORE: Verify tree starts fully expanded - all levels visible
|
|
1541
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:deepcollapse")).toBeVisible(); // Root (Level 0)
|
|
1542
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:deepcollapse")).toBeVisible(); // Level 1 - Branch A
|
|
1543
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:deepcollapse")).toBeVisible(); // Level 2 - Branch A.1
|
|
1544
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:deepcollapse")).toBeVisible(); // Level 3 - Leaf A.1.1
|
|
1545
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5:deepcollapse")).toBeVisible(); // Level 3 - Leaf A.1.2
|
|
1546
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("7:deepcollapse")).toBeVisible(); // Level 1 - Branch B
|
|
1547
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("8:deepcollapse")).toBeVisible(); // Level 2 - Branch B.1
|
|
1548
|
-
// Trigger collapseAll API
|
|
1549
|
-
yield collapseAllButton.click();
|
|
1550
|
-
// Wait for async API call to complete
|
|
1551
|
-
yield fixtures_1.expect.poll(testStateDriver.testState).toEqual({ actionPerformed: "collapseAllDeep" });
|
|
1552
|
-
// AFTER: Verify only root level nodes are visible, all children hidden
|
|
1553
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:deepcollapse")).toBeVisible(); // Root (Level 0) - still visible
|
|
1554
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:deepcollapse")).not.toBeVisible(); // Level 1 - Branch A (now hidden)
|
|
1555
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:deepcollapse")).not.toBeVisible(); // Level 2 - Branch A.1 (now hidden)
|
|
1556
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:deepcollapse")).not.toBeVisible(); // Level 3 - Leaf A.1.1 (now hidden)
|
|
1557
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5:deepcollapse")).not.toBeVisible(); // Level 3 - Leaf A.1.2 (now hidden)
|
|
1558
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("6:deepcollapse")).not.toBeVisible(); // Level 2 - Branch A.2 (now hidden)
|
|
1559
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("7:deepcollapse")).not.toBeVisible(); // Level 1 - Branch B (now hidden)
|
|
1560
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("8:deepcollapse")).not.toBeVisible(); // Level 2 - Branch B.1 (now hidden)
|
|
1561
|
-
}));
|
|
1562
|
-
(0, fixtures_1.test)("expandToLevel(level) - expands nodes only to specified depth", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
1563
|
-
// Use deep hierarchy to test expandToLevel properly
|
|
1564
|
-
const deepHierarchyData = [
|
|
1565
|
-
{
|
|
1566
|
-
id: 1,
|
|
1567
|
-
name: "Root Level 0",
|
|
1568
|
-
children: [
|
|
1569
|
-
{
|
|
1570
|
-
id: 2,
|
|
1571
|
-
name: "Level 1 - Branch A",
|
|
1572
|
-
children: [
|
|
1573
|
-
{
|
|
1574
|
-
id: 3,
|
|
1575
|
-
name: "Level 2 - Branch A.1",
|
|
1576
|
-
children: [
|
|
1577
|
-
{ id: 4, name: "Level 3 - Leaf A.1.1", children: [] },
|
|
1578
|
-
{ id: 5, name: "Level 3 - Leaf A.1.2", children: [] },
|
|
1579
|
-
],
|
|
1580
|
-
},
|
|
1581
|
-
{ id: 6, name: "Level 2 - Branch A.2", children: [] },
|
|
1582
|
-
],
|
|
1583
|
-
},
|
|
1584
|
-
{
|
|
1585
|
-
id: 7,
|
|
1586
|
-
name: "Level 1 - Branch B",
|
|
1587
|
-
children: [{ id: 8, name: "Level 2 - Branch B.1", children: [] }],
|
|
1588
|
-
},
|
|
1589
|
-
],
|
|
1590
|
-
},
|
|
1591
|
-
];
|
|
1592
|
-
const { testStateDriver } = yield initTestBed(`
|
|
1593
|
-
<Fragment>
|
|
1594
|
-
<VStack height="400px">
|
|
1595
|
-
<Tree id="treeApi" testId="tree"
|
|
1596
|
-
dataFormat="hierarchy"
|
|
1597
|
-
data='{${JSON.stringify(deepHierarchyData)}}'>
|
|
1598
|
-
<property name="itemTemplate">
|
|
1599
|
-
<HStack testId="{$item.id}:level">
|
|
1600
|
-
<Text value="{$item.name}" />
|
|
1601
|
-
</HStack>
|
|
1602
|
-
</property>
|
|
1603
|
-
</Tree>
|
|
1604
|
-
</VStack>
|
|
1605
|
-
<Button testId="expand-level0-btn" label="Expand to Level 0" onClick="
|
|
1606
|
-
treeApi.expandToLevel(0);
|
|
1607
|
-
testState = { actionPerformed: 'expandToLevel0' };
|
|
1608
|
-
" />
|
|
1609
|
-
<Button testId="expand-level1-btn" label="Expand to Level 1" onClick="
|
|
1610
|
-
treeApi.expandToLevel(1);
|
|
1611
|
-
testState = { actionPerformed: 'expandToLevel1' };
|
|
1612
|
-
" />
|
|
1613
|
-
<Button testId="expand-level2-btn" label="Expand to Level 2" onClick="
|
|
1614
|
-
treeApi.expandToLevel(2);
|
|
1615
|
-
testState = { actionPerformed: 'expandToLevel2' };
|
|
1616
|
-
" />
|
|
1617
|
-
<Button testId="expand-level3-btn" label="Expand to Level 3" onClick="
|
|
1618
|
-
treeApi.expandToLevel(3);
|
|
1619
|
-
testState = { actionPerformed: 'expandToLevel3' };
|
|
1620
|
-
" />
|
|
1621
|
-
</Fragment>
|
|
1622
|
-
`);
|
|
1623
|
-
const tree = yield createTreeDriver("tree");
|
|
1624
|
-
const expandLevel0Button = yield createButtonDriver("expand-level0-btn");
|
|
1625
|
-
const expandLevel1Button = yield createButtonDriver("expand-level1-btn");
|
|
1626
|
-
const expandLevel2Button = yield createButtonDriver("expand-level2-btn");
|
|
1627
|
-
const expandLevel3Button = yield createButtonDriver("expand-level3-btn");
|
|
1628
|
-
// INITIAL STATE: Verify tree starts collapsed - only root visible
|
|
1629
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:level")).toBeVisible(); // Level 0 (Root)
|
|
1630
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:level")).not.toBeVisible(); // Level 1 (hidden)
|
|
1631
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:level")).not.toBeVisible(); // Level 2 (hidden)
|
|
1632
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:level")).not.toBeVisible(); // Level 3 (hidden)
|
|
1633
|
-
// TEST 1: expandToLevel(0) - should show only root level (no expansion)
|
|
1634
|
-
yield expandLevel0Button.click();
|
|
1635
|
-
yield fixtures_1.expect.poll(testStateDriver.testState).toEqual({ actionPerformed: "expandToLevel0" });
|
|
1636
|
-
// AFTER expandToLevel(0): Only Level 0 visible
|
|
1637
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:level")).toBeVisible(); // Level 0 (Root) - visible
|
|
1638
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:level")).not.toBeVisible(); // Level 1 - Branch A (hidden)
|
|
1639
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("7:level")).not.toBeVisible(); // Level 1 - Branch B (hidden)
|
|
1640
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:level")).not.toBeVisible(); // Level 2 - Branch A.1 (hidden)
|
|
1641
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("8:level")).not.toBeVisible(); // Level 2 - Branch B.1 (hidden)
|
|
1642
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:level")).not.toBeVisible(); // Level 3 - Leaf A.1.1 (hidden)
|
|
1643
|
-
// TEST 2: expandToLevel(1) - should show Level 0 and Level 1 only
|
|
1644
|
-
yield expandLevel1Button.click();
|
|
1645
|
-
yield fixtures_1.expect.poll(testStateDriver.testState).toEqual({ actionPerformed: "expandToLevel1" });
|
|
1646
|
-
// AFTER expandToLevel(1): Level 0 and 1 visible, Level 2+ hidden
|
|
1647
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:level")).toBeVisible(); // Level 0 (Root) - visible
|
|
1648
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:level")).toBeVisible(); // Level 1 - Branch A (now visible)
|
|
1649
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("7:level")).toBeVisible(); // Level 1 - Branch B (now visible)
|
|
1650
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:level")).not.toBeVisible(); // Level 2 - Branch A.1 (still hidden)
|
|
1651
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("6:level")).not.toBeVisible(); // Level 2 - Branch A.2 (still hidden)
|
|
1652
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("8:level")).not.toBeVisible(); // Level 2 - Branch B.1 (still hidden)
|
|
1653
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:level")).not.toBeVisible(); // Level 3 - Leaf A.1.1 (still hidden)
|
|
1654
|
-
// TEST 3: expandToLevel(2) - should show Level 0, 1, and 2
|
|
1655
|
-
yield expandLevel2Button.click();
|
|
1656
|
-
yield fixtures_1.expect.poll(testStateDriver.testState).toEqual({ actionPerformed: "expandToLevel2" });
|
|
1657
|
-
// AFTER expandToLevel(2): Level 0, 1, and 2 visible, Level 3+ hidden
|
|
1658
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:level")).toBeVisible(); // Level 0 (Root) - visible
|
|
1659
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:level")).toBeVisible(); // Level 1 - Branch A - visible
|
|
1660
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("7:level")).toBeVisible(); // Level 1 - Branch B - visible
|
|
1661
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:level")).toBeVisible(); // Level 2 - Branch A.1 (now visible)
|
|
1662
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("6:level")).toBeVisible(); // Level 2 - Branch A.2 (now visible)
|
|
1663
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("8:level")).toBeVisible(); // Level 2 - Branch B.1 (now visible)
|
|
1664
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:level")).not.toBeVisible(); // Level 3 - Leaf A.1.1 (still hidden)
|
|
1665
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5:level")).not.toBeVisible(); // Level 3 - Leaf A.1.2 (still hidden)
|
|
1666
|
-
// TEST 4: expandToLevel(3) - should show all levels (0, 1, 2, and 3)
|
|
1667
|
-
yield expandLevel3Button.click();
|
|
1668
|
-
yield fixtures_1.expect.poll(testStateDriver.testState).toEqual({ actionPerformed: "expandToLevel3" });
|
|
1669
|
-
// AFTER expandToLevel(3): All levels visible (complete expansion for this tree)
|
|
1670
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:level")).toBeVisible(); // Level 0 (Root) - visible
|
|
1671
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:level")).toBeVisible(); // Level 1 - Branch A - visible
|
|
1672
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("7:level")).toBeVisible(); // Level 1 - Branch B - visible
|
|
1673
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:level")).toBeVisible(); // Level 2 - Branch A.1 - visible
|
|
1674
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("6:level")).toBeVisible(); // Level 2 - Branch A.2 - visible
|
|
1675
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("8:level")).toBeVisible(); // Level 2 - Branch B.1 - visible
|
|
1676
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:level")).toBeVisible(); // Level 3 - Leaf A.1.1 (now visible)
|
|
1677
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5:level")).toBeVisible(); // Level 3 - Leaf A.1.2 (now visible)
|
|
1678
|
-
}));
|
|
1679
|
-
(0, fixtures_1.test)("expandNode(nodeId) - expands specific node and shows its children", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
1680
|
-
// Use deep hierarchy to test individual node expansion
|
|
1681
|
-
const deepHierarchyData = [
|
|
1682
|
-
{
|
|
1683
|
-
id: 1,
|
|
1684
|
-
name: "Root Level 0",
|
|
1685
|
-
children: [
|
|
1686
|
-
{
|
|
1687
|
-
id: 2,
|
|
1688
|
-
name: "Level 1 - Branch A",
|
|
1689
|
-
children: [
|
|
1690
|
-
{
|
|
1691
|
-
id: 3,
|
|
1692
|
-
name: "Level 2 - Branch A.1",
|
|
1693
|
-
children: [
|
|
1694
|
-
{ id: 4, name: "Level 3 - Leaf A.1.1", children: [] },
|
|
1695
|
-
{ id: 5, name: "Level 3 - Leaf A.1.2", children: [] },
|
|
1696
|
-
],
|
|
1697
|
-
},
|
|
1698
|
-
{ id: 6, name: "Level 2 - Branch A.2", children: [] },
|
|
1699
|
-
],
|
|
1700
|
-
},
|
|
1701
|
-
{
|
|
1702
|
-
id: 7,
|
|
1703
|
-
name: "Level 1 - Branch B",
|
|
1704
|
-
children: [{ id: 8, name: "Level 2 - Branch B.1", children: [] }],
|
|
1705
|
-
},
|
|
1706
|
-
],
|
|
1707
|
-
},
|
|
1708
|
-
];
|
|
1709
|
-
const { testStateDriver } = yield initTestBed(`
|
|
1710
|
-
<Fragment>
|
|
1711
|
-
<VStack height="400px">
|
|
1712
|
-
<Tree id="treeApi" testId="tree"
|
|
1713
|
-
dataFormat="hierarchy"
|
|
1714
|
-
data='{${JSON.stringify(deepHierarchyData)}}'>
|
|
1715
|
-
<property name="itemTemplate">
|
|
1716
|
-
<HStack testId="{$item.id}:level">
|
|
1717
|
-
<Text value="{$item.name}" />
|
|
1718
|
-
</HStack>
|
|
1719
|
-
</property>
|
|
1720
|
-
</Tree>
|
|
1721
|
-
</VStack>
|
|
1722
|
-
<Button testId="expand-root-btn" label="Expand Root" onClick="
|
|
1723
|
-
treeApi.expandNode(1);
|
|
1724
|
-
testState = { actionPerformed: 'expandRoot' };
|
|
1725
|
-
" />
|
|
1726
|
-
<Button testId="expand-node2-btn" label="Expand Node 2" onClick="
|
|
1727
|
-
treeApi.expandNode(2);
|
|
1728
|
-
testState = { actionPerformed: 'expandNode2' };
|
|
1729
|
-
" />
|
|
1730
|
-
<Button testId="expand-node3-btn" label="Expand Node 3" onClick="
|
|
1731
|
-
treeApi.expandNode(3);
|
|
1732
|
-
testState = { actionPerformed: 'expandNode3' };
|
|
1733
|
-
" />
|
|
1734
|
-
<Button testId="expand-node7-btn" label="Expand Node 7" onClick="
|
|
1735
|
-
treeApi.expandNode(7);
|
|
1736
|
-
testState = { actionPerformed: 'expandNode7' };
|
|
1737
|
-
" />
|
|
1738
|
-
</Fragment>
|
|
1739
|
-
`);
|
|
1740
|
-
const tree = yield createTreeDriver("tree");
|
|
1741
|
-
const expandRootButton = yield createButtonDriver("expand-root-btn");
|
|
1742
|
-
const expandNode2Button = yield createButtonDriver("expand-node2-btn");
|
|
1743
|
-
const expandNode3Button = yield createButtonDriver("expand-node3-btn");
|
|
1744
|
-
const expandNode7Button = yield createButtonDriver("expand-node7-btn");
|
|
1745
|
-
// INITIAL STATE: Verify tree starts collapsed - only root visible
|
|
1746
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:level")).toBeVisible(); // Level 0 (Root) - visible
|
|
1747
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:level")).not.toBeVisible(); // Level 1 - Branch A (hidden)
|
|
1748
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:level")).not.toBeVisible(); // Level 2 - Branch A.1 (hidden)
|
|
1749
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:level")).not.toBeVisible(); // Level 3 - Leaf A.1.1 (hidden)
|
|
1750
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("6:level")).not.toBeVisible(); // Level 2 - Branch A.2 (hidden)
|
|
1751
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("7:level")).not.toBeVisible(); // Level 1 - Branch B (hidden)
|
|
1752
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("8:level")).not.toBeVisible(); // Level 2 - Branch B.1 (hidden)
|
|
1753
|
-
// FIRST: Expand root to make Level 1 nodes visible
|
|
1754
|
-
yield expandRootButton.click();
|
|
1755
|
-
yield fixtures_1.expect.poll(testStateDriver.testState).toEqual({ actionPerformed: "expandRoot" });
|
|
1756
|
-
// AFTER expanding root: Level 1 nodes become visible
|
|
1757
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:level")).toBeVisible(); // Level 0 (Root) - still visible
|
|
1758
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:level")).toBeVisible(); // Level 1 - Branch A (now visible)
|
|
1759
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("7:level")).toBeVisible(); // Level 1 - Branch B (now visible)
|
|
1760
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:level")).not.toBeVisible(); // Level 2 - Branch A.1 (still hidden)
|
|
1761
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:level")).not.toBeVisible(); // Level 3 - Leaf A.1.1 (still hidden)
|
|
1762
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("6:level")).not.toBeVisible(); // Level 2 - Branch A.2 (still hidden)
|
|
1763
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("8:level")).not.toBeVisible(); // Level 2 - Branch B.1 (still hidden)
|
|
1764
|
-
// TEST 1: expandNode(2) - should expand "Level 1 - Branch A" and show its children
|
|
1765
|
-
yield expandNode2Button.click();
|
|
1766
|
-
yield fixtures_1.expect.poll(testStateDriver.testState).toEqual({ actionPerformed: "expandNode2" });
|
|
1767
|
-
// AFTER expandNode(2): Node 2's children become visible, others stay hidden
|
|
1768
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:level")).toBeVisible(); // Level 0 (Root) - still visible
|
|
1769
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:level")).toBeVisible(); // Level 1 - Branch A (still visible)
|
|
1770
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:level")).toBeVisible(); // Level 2 - Branch A.1 (now visible - child of node 2)
|
|
1771
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("6:level")).toBeVisible(); // Level 2 - Branch A.2 (now visible - child of node 2)
|
|
1772
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:level")).not.toBeVisible(); // Level 3 - Leaf A.1.1 (still hidden - child of node 3)
|
|
1773
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5:level")).not.toBeVisible(); // Level 3 - Leaf A.1.2 (still hidden - child of node 3)
|
|
1774
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("7:level")).toBeVisible(); // Level 1 - Branch B (still visible from root expansion)
|
|
1775
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("8:level")).not.toBeVisible(); // Level 2 - Branch B.1 (still hidden - child of node 7)
|
|
1776
|
-
// TEST 2: expandNode(3) - should expand "Level 2 - Branch A.1" and show its children
|
|
1777
|
-
yield expandNode3Button.click();
|
|
1778
|
-
yield fixtures_1.expect.poll(testStateDriver.testState).toEqual({ actionPerformed: "expandNode3" });
|
|
1779
|
-
// AFTER expandNode(3): Node 3's children become visible, previous expansions remain
|
|
1780
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:level")).toBeVisible(); // Level 0 (Root) - still visible
|
|
1781
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:level")).toBeVisible(); // Level 1 - Branch A - still visible
|
|
1782
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:level")).toBeVisible(); // Level 2 - Branch A.1 - still visible
|
|
1783
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("6:level")).toBeVisible(); // Level 2 - Branch A.2 - still visible
|
|
1784
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:level")).toBeVisible(); // Level 3 - Leaf A.1.1 (now visible - child of node 3)
|
|
1785
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5:level")).toBeVisible(); // Level 3 - Leaf A.1.2 (now visible - child of node 3)
|
|
1786
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("7:level")).toBeVisible(); // Level 1 - Branch B (still visible from root expansion)
|
|
1787
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("8:level")).not.toBeVisible(); // Level 2 - Branch B.1 (still hidden - child of node 7)
|
|
1788
|
-
// TEST 3: expandNode(7) - should expand "Level 1 - Branch B" and show its children
|
|
1789
|
-
yield expandNode7Button.click();
|
|
1790
|
-
yield fixtures_1.expect.poll(testStateDriver.testState).toEqual({ actionPerformed: "expandNode7" });
|
|
1791
|
-
// AFTER expandNode(7): Node 7's children become visible, all previous expansions remain
|
|
1792
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:level")).toBeVisible(); // Level 0 (Root) - still visible
|
|
1793
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:level")).toBeVisible(); // Level 1 - Branch A - still visible
|
|
1794
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:level")).toBeVisible(); // Level 2 - Branch A.1 - still visible
|
|
1795
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("6:level")).toBeVisible(); // Level 2 - Branch A.2 - still visible
|
|
1796
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:level")).toBeVisible(); // Level 3 - Leaf A.1.1 - still visible
|
|
1797
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5:level")).toBeVisible(); // Level 3 - Leaf A.1.2 - still visible
|
|
1798
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("7:level")).toBeVisible(); // Level 1 - Branch B - still visible
|
|
1799
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("8:level")).toBeVisible(); // Level 2 - Branch B.1 (now visible - child of node 7)
|
|
1800
|
-
}));
|
|
1801
|
-
(0, fixtures_1.test)("expandNode(nodeId) - negative tests for invalid or inaccessible nodes", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
1802
|
-
// Use simple hierarchy to test negative cases clearly
|
|
1803
|
-
const simpleHierarchyData = [
|
|
1804
|
-
{
|
|
1805
|
-
id: 1,
|
|
1806
|
-
name: "Root Level 0",
|
|
1807
|
-
children: [
|
|
1808
|
-
{
|
|
1809
|
-
id: 2,
|
|
1810
|
-
name: "Level 1 - Branch A",
|
|
1811
|
-
children: [{ id: 3, name: "Level 2 - Leaf A.1", children: [] }],
|
|
1812
|
-
},
|
|
1813
|
-
],
|
|
1814
|
-
},
|
|
1815
|
-
];
|
|
1816
|
-
const { testStateDriver } = yield initTestBed(`
|
|
1817
|
-
<Fragment>
|
|
1818
|
-
<VStack height="400px">
|
|
1819
|
-
<Tree id="treeApi" testId="tree"
|
|
1820
|
-
dataFormat="hierarchy"
|
|
1821
|
-
data='{${JSON.stringify(simpleHierarchyData)}}'>
|
|
1822
|
-
<property name="itemTemplate">
|
|
1823
|
-
<HStack testId="{$item.id}:level">
|
|
1824
|
-
<Text value="{$item.name}" />
|
|
1825
|
-
</HStack>
|
|
1826
|
-
</property>
|
|
1827
|
-
</Tree>
|
|
1828
|
-
</VStack>
|
|
1829
|
-
<Button testId="expand-nonexistent-btn" label="Expand Non-existent Node" onClick="
|
|
1830
|
-
treeApi.expandNode(999);
|
|
1831
|
-
testState = { actionPerformed: 'expandNonExistent' };
|
|
1832
|
-
" />
|
|
1833
|
-
<Button testId="expand-leaf-node3-btn" label="Expand Leaf Node 3" onClick="
|
|
1834
|
-
treeApi.expandNode(3);
|
|
1835
|
-
testState = { actionPerformed: 'expandLeafNode3' };
|
|
1836
|
-
" />
|
|
1837
|
-
<Button testId="expand-root-btn" label="Expand Root" onClick="
|
|
1838
|
-
treeApi.expandNode(1);
|
|
1839
|
-
testState = { actionPerformed: 'expandRoot' };
|
|
1840
|
-
" />
|
|
1841
|
-
<Button testId="expand-node2-btn" label="Expand Node 2" onClick="
|
|
1842
|
-
treeApi.expandNode(2);
|
|
1843
|
-
testState = { actionPerformed: 'expandNode2' };
|
|
1844
|
-
" />
|
|
1845
|
-
</Fragment>
|
|
1846
|
-
`);
|
|
1847
|
-
const tree = yield createTreeDriver("tree");
|
|
1848
|
-
const expandNonExistentButton = yield createButtonDriver("expand-nonexistent-btn");
|
|
1849
|
-
const expandLeafNode3Button = yield createButtonDriver("expand-leaf-node3-btn");
|
|
1850
|
-
const expandRootButton = yield createButtonDriver("expand-root-btn");
|
|
1851
|
-
const expandNode2Button = yield createButtonDriver("expand-node2-btn");
|
|
1852
|
-
// INITIAL STATE: Only root visible, all children hidden
|
|
1853
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:level")).toBeVisible(); // Root - visible
|
|
1854
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:level")).not.toBeVisible(); // Level 1 - hidden
|
|
1855
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:level")).not.toBeVisible(); // Level 2 - hidden
|
|
1856
|
-
// NEGATIVE TEST 1: Try to expand non-existent node (ID 999)
|
|
1857
|
-
yield expandNonExistentButton.click();
|
|
1858
|
-
yield fixtures_1.expect
|
|
1859
|
-
.poll(testStateDriver.testState)
|
|
1860
|
-
.toEqual({ actionPerformed: "expandNonExistent" });
|
|
1861
|
-
// AFTER expandNode(999): Should have no effect, tree state unchanged
|
|
1862
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:level")).toBeVisible(); // Root - still visible
|
|
1863
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:level")).not.toBeVisible(); // Level 1 - still hidden
|
|
1864
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:level")).not.toBeVisible(); // Level 2 - still hidden
|
|
1865
|
-
// NEGATIVE TEST 2: Try to expand leaf node 3 (which has no children) while it's hidden
|
|
1866
|
-
yield expandLeafNode3Button.click();
|
|
1867
|
-
yield fixtures_1.expect.poll(testStateDriver.testState).toEqual({ actionPerformed: "expandLeafNode3" });
|
|
1868
|
-
// AFTER expandNode(3) on hidden leaf: Should have no effect since node is not visible
|
|
1869
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:level")).toBeVisible(); // Root - still visible
|
|
1870
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:level")).not.toBeVisible(); // Level 1 - still hidden
|
|
1871
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:level")).not.toBeVisible(); // Level 2 - still hidden
|
|
1872
|
-
// Now expand the tree properly to make nodes visible
|
|
1873
|
-
yield expandRootButton.click();
|
|
1874
|
-
yield fixtures_1.expect.poll(testStateDriver.testState).toEqual({ actionPerformed: "expandRoot" });
|
|
1875
|
-
yield expandNode2Button.click();
|
|
1876
|
-
yield fixtures_1.expect.poll(testStateDriver.testState).toEqual({ actionPerformed: "expandNode2" });
|
|
1877
|
-
// After proper expansion: All nodes should be visible
|
|
1878
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:level")).toBeVisible(); // Root - visible
|
|
1879
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:level")).toBeVisible(); // Level 1 - visible
|
|
1880
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:level")).toBeVisible(); // Level 2 - visible
|
|
1881
|
-
// NEGATIVE TEST 3: Try to expand leaf node 3 again (now that it's visible but still has no children)
|
|
1882
|
-
yield expandLeafNode3Button.click();
|
|
1883
|
-
yield fixtures_1.expect.poll(testStateDriver.testState).toEqual({ actionPerformed: "expandLeafNode3" });
|
|
1884
|
-
// AFTER expandNode(3) on visible leaf: Should have no visible effect since leaf nodes can't expand
|
|
1885
|
-
// Tree state should remain the same - all nodes still visible
|
|
1886
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:level")).toBeVisible(); // Root - still visible
|
|
1887
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:level")).toBeVisible(); // Level 1 - still visible
|
|
1888
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:level")).toBeVisible(); // Level 2 - still visible
|
|
1889
|
-
}));
|
|
1890
|
-
(0, fixtures_1.test)("collapseNode(nodeId) - collapses specific node and hides its children", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
1891
|
-
// Use deep hierarchy to test individual node collapse
|
|
1892
|
-
const deepHierarchyData = [
|
|
1893
|
-
{
|
|
1894
|
-
id: 1,
|
|
1895
|
-
name: "Root Level 0",
|
|
1896
|
-
children: [
|
|
1897
|
-
{
|
|
1898
|
-
id: 2,
|
|
1899
|
-
name: "Level 1 - Branch A",
|
|
1900
|
-
children: [
|
|
1901
|
-
{
|
|
1902
|
-
id: 3,
|
|
1903
|
-
name: "Level 2 - Branch A.1",
|
|
1904
|
-
children: [
|
|
1905
|
-
{ id: 4, name: "Level 3 - Leaf A.1.1", children: [] },
|
|
1906
|
-
{ id: 5, name: "Level 3 - Leaf A.1.2", children: [] },
|
|
1907
|
-
],
|
|
1908
|
-
},
|
|
1909
|
-
{ id: 6, name: "Level 2 - Branch A.2", children: [] },
|
|
1910
|
-
],
|
|
1911
|
-
},
|
|
1912
|
-
{
|
|
1913
|
-
id: 7,
|
|
1914
|
-
name: "Level 1 - Branch B",
|
|
1915
|
-
children: [{ id: 8, name: "Level 2 - Branch B.1", children: [] }],
|
|
1916
|
-
},
|
|
1917
|
-
],
|
|
1918
|
-
},
|
|
1919
|
-
];
|
|
1920
|
-
const { testStateDriver } = yield initTestBed(`
|
|
1921
|
-
<Fragment>
|
|
1922
|
-
<VStack height="400px">
|
|
1923
|
-
<Tree id="treeApi" testId="tree"
|
|
1924
|
-
dataFormat="hierarchy"
|
|
1925
|
-
defaultExpanded="all"
|
|
1926
|
-
data='{${JSON.stringify(deepHierarchyData)}}'>
|
|
1927
|
-
<property name="itemTemplate">
|
|
1928
|
-
<HStack testId="{$item.id}:level">
|
|
1929
|
-
<Text value="{$item.name}" />
|
|
1930
|
-
</HStack>
|
|
1931
|
-
</property>
|
|
1932
|
-
</Tree>
|
|
1933
|
-
</VStack>
|
|
1934
|
-
<Button testId="collapse-node3-btn" label="Collapse Node 3" onClick="
|
|
1935
|
-
treeApi.collapseNode(3);
|
|
1936
|
-
testState = { actionPerformed: 'collapseNode3' };
|
|
1937
|
-
" />
|
|
1938
|
-
<Button testId="collapse-node2-btn" label="Collapse Node 2" onClick="
|
|
1939
|
-
treeApi.collapseNode(2);
|
|
1940
|
-
testState = { actionPerformed: 'collapseNode2' };
|
|
1941
|
-
" />
|
|
1942
|
-
<Button testId="collapse-root-btn" label="Collapse Root" onClick="
|
|
1943
|
-
treeApi.collapseNode(1);
|
|
1944
|
-
testState = { actionPerformed: 'collapseRoot' };
|
|
1945
|
-
" />
|
|
1946
|
-
</Fragment>
|
|
1947
|
-
`);
|
|
1948
|
-
const tree = yield createTreeDriver("tree");
|
|
1949
|
-
const collapseNode3Button = yield createButtonDriver("collapse-node3-btn");
|
|
1950
|
-
const collapseNode2Button = yield createButtonDriver("collapse-node2-btn");
|
|
1951
|
-
const collapseRootButton = yield createButtonDriver("collapse-root-btn");
|
|
1952
|
-
// INITIAL STATE: Tree starts fully expanded - all nodes visible
|
|
1953
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:level")).toBeVisible(); // Level 0 (Root) - visible
|
|
1954
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:level")).toBeVisible(); // Level 1 - Branch A - visible
|
|
1955
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:level")).toBeVisible(); // Level 2 - Branch A.1 - visible
|
|
1956
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:level")).toBeVisible(); // Level 3 - Leaf A.1.1 - visible
|
|
1957
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5:level")).toBeVisible(); // Level 3 - Leaf A.1.2 - visible
|
|
1958
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("6:level")).toBeVisible(); // Level 2 - Branch A.2 - visible
|
|
1959
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("7:level")).toBeVisible(); // Level 1 - Branch B - visible
|
|
1960
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("8:level")).toBeVisible(); // Level 2 - Branch B.1 - visible
|
|
1961
|
-
// TEST 1: collapseNode(3) - should collapse "Level 2 - Branch A.1" and hide its children
|
|
1962
|
-
yield collapseNode3Button.click();
|
|
1963
|
-
yield fixtures_1.expect.poll(testStateDriver.testState).toEqual({ actionPerformed: "collapseNode3" });
|
|
1964
|
-
// AFTER collapseNode(3): Node 3's children become hidden, others remain visible
|
|
1965
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:level")).toBeVisible(); // Level 0 (Root) - still visible
|
|
1966
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:level")).toBeVisible(); // Level 1 - Branch A - still visible
|
|
1967
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:level")).toBeVisible(); // Level 2 - Branch A.1 - still visible (but collapsed)
|
|
1968
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:level")).not.toBeVisible(); // Level 3 - Leaf A.1.1 (now hidden - child of collapsed node 3)
|
|
1969
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5:level")).not.toBeVisible(); // Level 3 - Leaf A.1.2 (now hidden - child of collapsed node 3)
|
|
1970
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("6:level")).toBeVisible(); // Level 2 - Branch A.2 - still visible (not child of node 3)
|
|
1971
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("7:level")).toBeVisible(); // Level 1 - Branch B - still visible
|
|
1972
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("8:level")).toBeVisible(); // Level 2 - Branch B.1 - still visible
|
|
1973
|
-
// TEST 2: collapseNode(2) - should collapse "Level 1 - Branch A" and hide all its descendants
|
|
1974
|
-
yield collapseNode2Button.click();
|
|
1975
|
-
yield fixtures_1.expect.poll(testStateDriver.testState).toEqual({ actionPerformed: "collapseNode2" });
|
|
1976
|
-
// AFTER collapseNode(2): Node 2's entire subtree becomes hidden
|
|
1977
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:level")).toBeVisible(); // Level 0 (Root) - still visible
|
|
1978
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:level")).toBeVisible(); // Level 1 - Branch A - still visible (but collapsed)
|
|
1979
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:level")).not.toBeVisible(); // Level 2 - Branch A.1 (now hidden - child of collapsed node 2)
|
|
1980
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:level")).not.toBeVisible(); // Level 3 - Leaf A.1.1 (still hidden)
|
|
1981
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5:level")).not.toBeVisible(); // Level 3 - Leaf A.1.2 (still hidden)
|
|
1982
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("6:level")).not.toBeVisible(); // Level 2 - Branch A.2 (now hidden - child of collapsed node 2)
|
|
1983
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("7:level")).toBeVisible(); // Level 1 - Branch B - still visible (not descendant of node 2)
|
|
1984
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("8:level")).toBeVisible(); // Level 2 - Branch B.1 - still visible
|
|
1985
|
-
// TEST 3: collapseNode(1) - should collapse root and hide all children
|
|
1986
|
-
yield collapseRootButton.click();
|
|
1987
|
-
yield fixtures_1.expect.poll(testStateDriver.testState).toEqual({ actionPerformed: "collapseRoot" });
|
|
1988
|
-
// AFTER collapseNode(1): All children of root become hidden
|
|
1989
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:level")).toBeVisible(); // Level 0 (Root) - still visible (but collapsed)
|
|
1990
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:level")).not.toBeVisible(); // Level 1 - Branch A (now hidden - child of collapsed root)
|
|
1991
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:level")).not.toBeVisible(); // Level 2 - Branch A.1 (still hidden)
|
|
1992
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("4:level")).not.toBeVisible(); // Level 3 - Leaf A.1.1 (still hidden)
|
|
1993
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("5:level")).not.toBeVisible(); // Level 3 - Leaf A.1.2 (still hidden)
|
|
1994
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("6:level")).not.toBeVisible(); // Level 2 - Branch A.2 (still hidden)
|
|
1995
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("7:level")).not.toBeVisible(); // Level 1 - Branch B (now hidden - child of collapsed root)
|
|
1996
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("8:level")).not.toBeVisible(); // Level 2 - Branch B.1 (now hidden)
|
|
1997
|
-
}));
|
|
1998
|
-
(0, fixtures_1.test)("collapseNode(nodeId) - negative tests for invalid or leaf nodes", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
1999
|
-
// Use simple hierarchy for negative tests
|
|
2000
|
-
const simpleHierarchyData = [
|
|
2001
|
-
{
|
|
2002
|
-
id: 1,
|
|
2003
|
-
name: "Root Level 0",
|
|
2004
|
-
children: [
|
|
2005
|
-
{
|
|
2006
|
-
id: 2,
|
|
2007
|
-
name: "Level 1 - Branch A",
|
|
2008
|
-
children: [{ id: 3, name: "Level 2 - Leaf A.1", children: [] }],
|
|
2009
|
-
},
|
|
2010
|
-
],
|
|
2011
|
-
},
|
|
2012
|
-
];
|
|
2013
|
-
const { testStateDriver } = yield initTestBed(`
|
|
2014
|
-
<Fragment>
|
|
2015
|
-
<VStack height="400px">
|
|
2016
|
-
<Tree id="treeApi" testId="tree"
|
|
2017
|
-
dataFormat="hierarchy"
|
|
2018
|
-
defaultExpanded="all"
|
|
2019
|
-
data='{${JSON.stringify(simpleHierarchyData)}}'>
|
|
2020
|
-
<property name="itemTemplate">
|
|
2021
|
-
<HStack testId="{$item.id}:level">
|
|
2022
|
-
<Text value="{$item.name}" />
|
|
2023
|
-
</HStack>
|
|
2024
|
-
</property>
|
|
2025
|
-
</Tree>
|
|
2026
|
-
</VStack>
|
|
2027
|
-
<Button testId="collapse-nonexistent-btn" label="Collapse Non-existent Node" onClick="
|
|
2028
|
-
treeApi.collapseNode(999);
|
|
2029
|
-
testState = { actionPerformed: 'collapseNonExistent' };
|
|
2030
|
-
" />
|
|
2031
|
-
<Button testId="collapse-leaf-node3-btn" label="Collapse Leaf Node 3" onClick="
|
|
2032
|
-
treeApi.collapseNode(3);
|
|
2033
|
-
testState = { actionPerformed: 'collapseLeafNode3' };
|
|
2034
|
-
" />
|
|
2035
|
-
</Fragment>
|
|
2036
|
-
`);
|
|
2037
|
-
const tree = yield createTreeDriver("tree");
|
|
2038
|
-
const collapseNonExistentButton = yield createButtonDriver("collapse-nonexistent-btn");
|
|
2039
|
-
const collapseLeafNode3Button = yield createButtonDriver("collapse-leaf-node3-btn");
|
|
2040
|
-
// INITIAL STATE: Tree starts fully expanded
|
|
2041
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:level")).toBeVisible(); // Root - visible
|
|
2042
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:level")).toBeVisible(); // Level 1 - visible
|
|
2043
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:level")).toBeVisible(); // Level 2 - visible
|
|
2044
|
-
// NEGATIVE TEST 1: Try to collapse non-existent node (ID 999)
|
|
2045
|
-
yield collapseNonExistentButton.click();
|
|
2046
|
-
yield fixtures_1.expect
|
|
2047
|
-
.poll(testStateDriver.testState)
|
|
2048
|
-
.toEqual({ actionPerformed: "collapseNonExistent" });
|
|
2049
|
-
// AFTER collapseNode(999): Should have no effect, tree state unchanged
|
|
2050
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:level")).toBeVisible(); // Root - still visible
|
|
2051
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:level")).toBeVisible(); // Level 1 - still visible
|
|
2052
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:level")).toBeVisible(); // Level 2 - still visible
|
|
2053
|
-
// NEGATIVE TEST 2: Try to collapse leaf node 3 (which has no children to hide)
|
|
2054
|
-
yield collapseLeafNode3Button.click();
|
|
2055
|
-
yield fixtures_1.expect
|
|
2056
|
-
.poll(testStateDriver.testState)
|
|
2057
|
-
.toEqual({ actionPerformed: "collapseLeafNode3" });
|
|
2058
|
-
// AFTER collapseNode(3) on leaf: Should have no visible effect since leaf nodes have no children
|
|
2059
|
-
// Tree state should remain the same
|
|
2060
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("1:level")).toBeVisible(); // Root - still visible
|
|
2061
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("2:level")).toBeVisible(); // Level 1 - still visible
|
|
2062
|
-
yield (0, fixtures_1.expect)(tree.getByTestId("3:level")).toBeVisible(); // Level 2 - still visible
|
|
2063
|
-
}));
|
|
2064
|
-
(0, fixtures_1.test)("selectNode(nodeId) - API method executes without error", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
2065
|
-
// Use hierarchy for testing selectNode API
|
|
2066
|
-
const selectableHierarchyData = [
|
|
2067
|
-
{
|
|
2068
|
-
id: 1,
|
|
2069
|
-
name: "Root Level 0",
|
|
2070
|
-
children: [
|
|
2071
|
-
{
|
|
2072
|
-
id: 2,
|
|
2073
|
-
name: "Level 1 - Branch A",
|
|
2074
|
-
children: [{ id: 3, name: "Level 2 - Leaf A.1", children: [] }],
|
|
2075
|
-
},
|
|
2076
|
-
],
|
|
2077
|
-
},
|
|
2078
|
-
];
|
|
2079
|
-
yield initTestBed(`
|
|
2080
|
-
<Fragment>
|
|
2081
|
-
<VStack height="400px" var.selectedNodeId="{null}">
|
|
2082
|
-
<Text testId="selectedId">{selectedNodeId}</Text>
|
|
2083
|
-
<Tree id="treeApi" testId="tree"
|
|
2084
|
-
dataFormat="hierarchy"
|
|
2085
|
-
defaultExpanded="all"
|
|
2086
|
-
onSelectionDidChange="node => {selectedNodeId = node.newNode.id}"
|
|
2087
|
-
data='{${JSON.stringify(selectableHierarchyData)}}'>
|
|
2088
|
-
<property name="itemTemplate">
|
|
2089
|
-
<HStack testId="{$item.id}:selection">
|
|
2090
|
-
<Text value="{$item.name}" />
|
|
2091
|
-
</HStack>
|
|
2092
|
-
</property>
|
|
2093
|
-
</Tree>
|
|
2094
|
-
</VStack>
|
|
2095
|
-
<Button testId="select-node2-btn" label="Select Node 2" onClick="treeApi.selectNode(2);" />
|
|
2096
|
-
<Button testId="select-nonexistent-btn" label="Select Non-existent Node" onClick="
|
|
2097
|
-
treeApi.selectNode('999');
|
|
2098
|
-
const selectedNode = treeApi.getSelectedNode();
|
|
2099
|
-
testState = { actionPerformed: 'selectNonExistent', selectedNodeData: selectedNode };
|
|
2100
|
-
" />
|
|
2101
|
-
</Fragment>
|
|
2102
|
-
`);
|
|
2103
|
-
const tree = yield createTreeDriver("tree");
|
|
2104
|
-
const selectNode2Button = yield createButtonDriver("select-node2-btn");
|
|
2105
|
-
const selectNonExistentButton = yield createButtonDriver("select-nonexistent-btn");
|
|
2106
|
-
const selectedIdText = page.getByTestId("selectedId");
|
|
2107
|
-
// INITIAL STATE: No selection
|
|
2108
|
-
yield (0, fixtures_1.expect)(selectedIdText).toHaveText("");
|
|
2109
|
-
// TEST 1: selectNode('2') API call completes without error
|
|
2110
|
-
yield selectNode2Button.click();
|
|
2111
|
-
yield (0, fixtures_1.expect)(selectedIdText).toHaveText("2");
|
|
2112
|
-
// TEST 2: selectNode('999') with invalid ID completes without error
|
|
2113
|
-
yield selectNonExistentButton.click();
|
|
2114
|
-
yield (0, fixtures_1.expect)(selectedIdText).toHaveText("");
|
|
2115
|
-
}));
|
|
2116
|
-
(0, fixtures_1.test)("getSelectedNode() - returns correct selected node data", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
2117
|
-
// Simple hierarchy for testing getSelectedNode API
|
|
2118
|
-
const simpleHierarchyData = [
|
|
2119
|
-
{
|
|
2120
|
-
id: 1,
|
|
2121
|
-
name: "Root Level 0",
|
|
2122
|
-
children: [
|
|
2123
|
-
{ id: 2, name: "Level 1 - Branch A", children: [] },
|
|
2124
|
-
{ id: 3, name: "Level 1 - Branch B", children: [] },
|
|
2125
|
-
],
|
|
2126
|
-
},
|
|
2127
|
-
];
|
|
2128
|
-
const { testStateDriver } = yield initTestBed(`
|
|
2129
|
-
<Fragment>
|
|
2130
|
-
<VStack height="400px">
|
|
2131
|
-
<Tree id="treeApi" testId="tree"
|
|
2132
|
-
dataFormat="hierarchy"
|
|
2133
|
-
defaultExpanded="all"
|
|
2134
|
-
selectedValue="{2}"
|
|
2135
|
-
data='{${JSON.stringify(simpleHierarchyData)}}'>
|
|
2136
|
-
<property name="itemTemplate">
|
|
2137
|
-
<HStack testId="{$item.id}:selection">
|
|
2138
|
-
<Text value="{$item.name}" />
|
|
2139
|
-
</HStack>
|
|
2140
|
-
</property>
|
|
2141
|
-
</Tree>
|
|
2142
|
-
</VStack>
|
|
2143
|
-
<Button testId="get-selected-btn" label="Get Selected Node" onClick="
|
|
2144
|
-
const selectedNode = treeApi.getSelectedNode();
|
|
2145
|
-
testState = {
|
|
2146
|
-
actionPerformed: 'getSelected',
|
|
2147
|
-
selectedNodeData: selectedNode,
|
|
2148
|
-
selectedKey: selectedNode?.key,
|
|
2149
|
-
selectedName: selectedNode?.name
|
|
2150
|
-
};
|
|
2151
|
-
" />
|
|
2152
|
-
<Button testId="get-selected-null-btn" label="Get Selected When None" onClick="
|
|
2153
|
-
const selectedNode = treeApi.getSelectedNode();
|
|
2154
|
-
testState = {
|
|
2155
|
-
actionPerformed: 'getSelectedNull',
|
|
2156
|
-
selectedNodeData: selectedNode
|
|
2157
|
-
};
|
|
2158
|
-
" />
|
|
2159
|
-
</Fragment>
|
|
2160
|
-
`);
|
|
2161
|
-
const getSelectedButton = yield createButtonDriver("get-selected-btn");
|
|
2162
|
-
// TEST 1: getSelectedNode() returns correct node when selectedValue is set
|
|
2163
|
-
yield getSelectedButton.click();
|
|
2164
|
-
yield fixtures_1.expect
|
|
2165
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2166
|
-
const state = yield testStateDriver.testState();
|
|
2167
|
-
return state.actionPerformed;
|
|
2168
|
-
}))
|
|
2169
|
-
.toBe("getSelected");
|
|
2170
|
-
// Verify getSelectedNode returns the correct node data
|
|
2171
|
-
yield fixtures_1.expect
|
|
2172
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2173
|
-
const state = yield testStateDriver.testState();
|
|
2174
|
-
return state.selectedKey;
|
|
2175
|
-
}))
|
|
2176
|
-
.toBe(2);
|
|
2177
|
-
yield fixtures_1.expect
|
|
2178
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2179
|
-
const state = yield testStateDriver.testState();
|
|
2180
|
-
return state.selectedName;
|
|
2181
|
-
}))
|
|
2182
|
-
.toBe("Level 1 - Branch A");
|
|
2183
|
-
// Verify the returned node is not null
|
|
2184
|
-
yield fixtures_1.expect
|
|
2185
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2186
|
-
const state = yield testStateDriver.testState();
|
|
2187
|
-
return state.selectedNodeData;
|
|
2188
|
-
}))
|
|
2189
|
-
.not.toBe(null);
|
|
2190
|
-
// TEST 2: Test with no selection (update tree to have no selectedValue)
|
|
2191
|
-
const { testStateDriver: testStateDriver2 } = yield initTestBed(`
|
|
2192
|
-
<Fragment>
|
|
2193
|
-
<VStack height="400px">
|
|
2194
|
-
<Tree id="treeApi" testId="tree"
|
|
2195
|
-
dataFormat="hierarchy"
|
|
2196
|
-
defaultExpanded="all"
|
|
2197
|
-
data='{${JSON.stringify(simpleHierarchyData)}}'>
|
|
2198
|
-
<property name="itemTemplate">
|
|
2199
|
-
<HStack testId="{$item.id}:selection">
|
|
2200
|
-
<Text value="{$item.name}" />
|
|
2201
|
-
</HStack>
|
|
2202
|
-
</property>
|
|
2203
|
-
</Tree>
|
|
2204
|
-
</VStack>
|
|
2205
|
-
<Button testId="get-selected-null-btn" label="Get Selected When None" onClick="
|
|
2206
|
-
const selectedNode = treeApi.getSelectedNode();
|
|
2207
|
-
testState = {
|
|
2208
|
-
actionPerformed: 'getSelectedNull',
|
|
2209
|
-
selectedNodeData: selectedNode
|
|
2210
|
-
};
|
|
2211
|
-
" />
|
|
2212
|
-
</Fragment>
|
|
2213
|
-
`);
|
|
2214
|
-
const getSelectedNullButton = yield createButtonDriver("get-selected-null-btn");
|
|
2215
|
-
yield getSelectedNullButton.click();
|
|
2216
|
-
yield fixtures_1.expect
|
|
2217
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2218
|
-
const state = yield testStateDriver2.testState();
|
|
2219
|
-
return state.actionPerformed;
|
|
2220
|
-
}))
|
|
2221
|
-
.toBe("getSelectedNull");
|
|
2222
|
-
// Verify getSelectedNode returns null when no selection
|
|
2223
|
-
yield fixtures_1.expect
|
|
2224
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2225
|
-
const state = yield testStateDriver2.testState();
|
|
2226
|
-
return state.selectedNodeData;
|
|
2227
|
-
}))
|
|
2228
|
-
.toBe(null);
|
|
2229
|
-
}));
|
|
2230
|
-
(0, fixtures_1.test)("clearSelection() - API method executes without error", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
2231
|
-
// Simple hierarchy for testing clearSelection API
|
|
2232
|
-
const simpleHierarchyData = [
|
|
2233
|
-
{
|
|
2234
|
-
id: 1,
|
|
2235
|
-
name: "Root Level 0",
|
|
2236
|
-
children: [{ id: 2, name: "Level 1 - Branch A", children: [] }],
|
|
2237
|
-
},
|
|
2238
|
-
];
|
|
2239
|
-
const { testStateDriver } = yield initTestBed(`
|
|
2240
|
-
<Fragment>
|
|
2241
|
-
<VStack height="400px">
|
|
2242
|
-
<Tree id="treeApi" testId="tree"
|
|
2243
|
-
dataFormat="hierarchy"
|
|
2244
|
-
defaultExpanded="all"
|
|
2245
|
-
data='{${JSON.stringify(simpleHierarchyData)}}'>
|
|
2246
|
-
<property name="itemTemplate">
|
|
2247
|
-
<HStack testId="{$item.id}:clear">
|
|
2248
|
-
<Text value="{$item.name}" />
|
|
2249
|
-
</HStack>
|
|
2250
|
-
</property>
|
|
2251
|
-
</Tree>
|
|
2252
|
-
</VStack>
|
|
2253
|
-
<Button testId="clear-selection-btn" label="Clear Selection" onClick="
|
|
2254
|
-
try {
|
|
2255
|
-
treeApi.clearSelection();
|
|
2256
|
-
testState = {
|
|
2257
|
-
actionPerformed: 'clearSelection',
|
|
2258
|
-
success: true,
|
|
2259
|
-
error: null
|
|
2260
|
-
};
|
|
2261
|
-
} catch (error) {
|
|
2262
|
-
testState = {
|
|
2263
|
-
actionPerformed: 'clearSelection',
|
|
2264
|
-
success: false,
|
|
2265
|
-
error: error.message
|
|
2266
|
-
};
|
|
2267
|
-
}
|
|
2268
|
-
" />
|
|
2269
|
-
<Button testId="get-selected-btn" label="Get Selected Node" onClick="
|
|
2270
|
-
try {
|
|
2271
|
-
const selectedNode = treeApi.getSelectedNode();
|
|
2272
|
-
testState = {
|
|
2273
|
-
actionPerformed: 'getSelected',
|
|
2274
|
-
success: true,
|
|
2275
|
-
selectedNodeData: selectedNode,
|
|
2276
|
-
error: null
|
|
2277
|
-
};
|
|
2278
|
-
} catch (error) {
|
|
2279
|
-
testState = {
|
|
2280
|
-
actionPerformed: 'getSelected',
|
|
2281
|
-
success: false,
|
|
2282
|
-
error: error.message
|
|
2283
|
-
};
|
|
2284
|
-
}
|
|
2285
|
-
" />
|
|
2286
|
-
</Fragment>
|
|
2287
|
-
`);
|
|
2288
|
-
const clearSelectionButton = yield createButtonDriver("clear-selection-btn");
|
|
2289
|
-
const getSelectedButton = yield createButtonDriver("get-selected-btn");
|
|
2290
|
-
// TEST: clearSelection() API call completes without error
|
|
2291
|
-
yield clearSelectionButton.click();
|
|
2292
|
-
yield fixtures_1.expect
|
|
2293
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2294
|
-
const state = yield testStateDriver.testState();
|
|
2295
|
-
return state.actionPerformed;
|
|
2296
|
-
}))
|
|
2297
|
-
.toBe("clearSelection");
|
|
2298
|
-
let currentState = yield testStateDriver.testState();
|
|
2299
|
-
(0, fixtures_1.expect)(currentState.success).toBe(true);
|
|
2300
|
-
(0, fixtures_1.expect)(currentState.error).toBe(null);
|
|
2301
|
-
// TEST: getSelectedNode() API call completes without error
|
|
2302
|
-
yield getSelectedButton.click();
|
|
2303
|
-
yield fixtures_1.expect
|
|
2304
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2305
|
-
const state = yield testStateDriver.testState();
|
|
2306
|
-
return state.actionPerformed;
|
|
2307
|
-
}))
|
|
2308
|
-
.toBe("getSelected");
|
|
2309
|
-
currentState = yield testStateDriver.testState();
|
|
2310
|
-
(0, fixtures_1.expect)(currentState.success).toBe(true);
|
|
2311
|
-
(0, fixtures_1.expect)(currentState.error).toBe(null);
|
|
2312
|
-
// When no selection is managed, getSelectedNode() returns null
|
|
2313
|
-
(0, fixtures_1.expect)(currentState.selectedNodeData).toBe(null);
|
|
2314
|
-
}));
|
|
2315
|
-
(0, fixtures_1.test)("getNodeById() - returns correct node data or null for invalid keys", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
2316
|
-
// Rich hierarchy data for testing getNodeById API
|
|
2317
|
-
const hierarchyData = [
|
|
2318
|
-
{
|
|
2319
|
-
id: 1,
|
|
2320
|
-
name: "Root Level 0",
|
|
2321
|
-
children: [
|
|
2322
|
-
{
|
|
2323
|
-
id: 2,
|
|
2324
|
-
name: "Level 1 - Branch A",
|
|
2325
|
-
children: [
|
|
2326
|
-
{ id: 4, name: "Level 2 - Leaf A1", children: [] },
|
|
2327
|
-
{ id: 5, name: "Level 2 - Leaf A2", children: [] },
|
|
2328
|
-
],
|
|
2329
|
-
},
|
|
2330
|
-
{ id: 3, name: "Level 1 - Branch B", children: [] },
|
|
2331
|
-
],
|
|
2332
|
-
},
|
|
2333
|
-
{
|
|
2334
|
-
id: 6,
|
|
2335
|
-
name: "Root Level 1",
|
|
2336
|
-
children: [{ id: 7, name: "Level 1 - Branch C", children: [] }],
|
|
2337
|
-
},
|
|
2338
|
-
];
|
|
2339
|
-
const { testStateDriver } = yield initTestBed(`
|
|
2340
|
-
<Fragment>
|
|
2341
|
-
<VStack height="400px">
|
|
2342
|
-
<Tree id="treeApi" testId="tree"
|
|
2343
|
-
dataFormat="hierarchy"
|
|
2344
|
-
defaultExpanded="all"
|
|
2345
|
-
data='{${JSON.stringify(hierarchyData)}}'>
|
|
2346
|
-
<property name="itemTemplate">
|
|
2347
|
-
<HStack testId="{$item.id}:getById">
|
|
2348
|
-
<Text value="{$item.name}" />
|
|
2349
|
-
</HStack>
|
|
2350
|
-
</property>
|
|
2351
|
-
</Tree>
|
|
2352
|
-
</VStack>
|
|
2353
|
-
<Button testId="get-node1-btn" label="Get Node 1" onClick="
|
|
2354
|
-
const node = treeApi.getNodeById(1);
|
|
2355
|
-
testState = {
|
|
2356
|
-
actionPerformed: 'getNode1',
|
|
2357
|
-
nodeData: node,
|
|
2358
|
-
nodeKey: node?.key,
|
|
2359
|
-
nodeName: node?.name
|
|
2360
|
-
};
|
|
2361
|
-
" />
|
|
2362
|
-
<Button testId="get-node4-btn" label="Get Node 4" onClick="
|
|
2363
|
-
const node = treeApi.getNodeById(4);
|
|
2364
|
-
testState = {
|
|
2365
|
-
actionPerformed: 'getNode4',
|
|
2366
|
-
nodeData: node,
|
|
2367
|
-
nodeKey: node?.key,
|
|
2368
|
-
nodeName: node?.name
|
|
2369
|
-
};
|
|
2370
|
-
" />
|
|
2371
|
-
<Button testId="get-node7-btn" label="Get Node 7" onClick="
|
|
2372
|
-
const node = treeApi.getNodeById(7);
|
|
2373
|
-
testState = {
|
|
2374
|
-
actionPerformed: 'getNode7',
|
|
2375
|
-
nodeData: node,
|
|
2376
|
-
nodeKey: node?.key,
|
|
2377
|
-
nodeName: node?.name
|
|
2378
|
-
};
|
|
2379
|
-
" />
|
|
2380
|
-
<Button testId="get-invalid-btn" label="Get Invalid Node" onClick="
|
|
2381
|
-
const node = treeApi.getNodeById(999);
|
|
2382
|
-
testState = {
|
|
2383
|
-
actionPerformed: 'getInvalid',
|
|
2384
|
-
nodeData: node,
|
|
2385
|
-
nodeExists: node !== null
|
|
2386
|
-
};
|
|
2387
|
-
" />
|
|
2388
|
-
</Fragment>
|
|
2389
|
-
`);
|
|
2390
|
-
const getNode1Button = yield createButtonDriver("get-node1-btn");
|
|
2391
|
-
const getNode4Button = yield createButtonDriver("get-node4-btn");
|
|
2392
|
-
const getNode7Button = yield createButtonDriver("get-node7-btn");
|
|
2393
|
-
const getInvalidButton = yield createButtonDriver("get-invalid-btn");
|
|
2394
|
-
// TEST: getNodeById(1) should return root node data
|
|
2395
|
-
yield getNode1Button.click();
|
|
2396
|
-
yield fixtures_1.expect
|
|
2397
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2398
|
-
const state = yield testStateDriver.testState();
|
|
2399
|
-
return state.actionPerformed;
|
|
2400
|
-
}))
|
|
2401
|
-
.toBe("getNode1");
|
|
2402
|
-
let currentState = yield testStateDriver.testState();
|
|
2403
|
-
(0, fixtures_1.expect)(currentState.nodeKey).toBe(1);
|
|
2404
|
-
(0, fixtures_1.expect)(currentState.nodeName).toBe("Root Level 0");
|
|
2405
|
-
(0, fixtures_1.expect)(currentState.nodeData).not.toBe(null);
|
|
2406
|
-
// TEST: getNodeById(4) should return deep nested node data
|
|
2407
|
-
yield getNode4Button.click();
|
|
2408
|
-
yield fixtures_1.expect
|
|
2409
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2410
|
-
const state = yield testStateDriver.testState();
|
|
2411
|
-
return state.actionPerformed;
|
|
2412
|
-
}))
|
|
2413
|
-
.toBe("getNode4");
|
|
2414
|
-
currentState = yield testStateDriver.testState();
|
|
2415
|
-
(0, fixtures_1.expect)(currentState.nodeKey).toBe(4);
|
|
2416
|
-
(0, fixtures_1.expect)(currentState.nodeName).toBe("Level 2 - Leaf A1");
|
|
2417
|
-
(0, fixtures_1.expect)(currentState.nodeData).not.toBe(null);
|
|
2418
|
-
// TEST: getNodeById(7) should return node from second root
|
|
2419
|
-
yield getNode7Button.click();
|
|
2420
|
-
yield fixtures_1.expect
|
|
2421
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2422
|
-
const state = yield testStateDriver.testState();
|
|
2423
|
-
return state.actionPerformed;
|
|
2424
|
-
}))
|
|
2425
|
-
.toBe("getNode7");
|
|
2426
|
-
currentState = yield testStateDriver.testState();
|
|
2427
|
-
(0, fixtures_1.expect)(currentState.nodeKey).toBe(7);
|
|
2428
|
-
(0, fixtures_1.expect)(currentState.nodeName).toBe("Level 1 - Branch C");
|
|
2429
|
-
(0, fixtures_1.expect)(currentState.nodeData).not.toBe(null);
|
|
2430
|
-
// TEST: getNodeById(999) should return null for non-existent node
|
|
2431
|
-
yield getInvalidButton.click();
|
|
2432
|
-
yield fixtures_1.expect
|
|
2433
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2434
|
-
const state = yield testStateDriver.testState();
|
|
2435
|
-
return state.actionPerformed;
|
|
2436
|
-
}))
|
|
2437
|
-
.toBe("getInvalid");
|
|
2438
|
-
currentState = yield testStateDriver.testState();
|
|
2439
|
-
(0, fixtures_1.expect)(currentState.nodeExists).toBe(false);
|
|
2440
|
-
(0, fixtures_1.expect)(currentState.nodeData).toBe(null);
|
|
2441
|
-
}));
|
|
2442
|
-
(0, fixtures_1.test)("getNodeById() - can retrieve nodes within collapsed parents", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
2443
|
-
// Hierarchy with nested structure to test collapsed nodes
|
|
2444
|
-
const hierarchyData = [
|
|
2445
|
-
{
|
|
2446
|
-
id: 1,
|
|
2447
|
-
name: "Root Level 0",
|
|
2448
|
-
children: [
|
|
2449
|
-
{
|
|
2450
|
-
id: 2,
|
|
2451
|
-
name: "Level 1 - Branch A",
|
|
2452
|
-
children: [
|
|
2453
|
-
{ id: 4, name: "Level 2 - Hidden Leaf A1", children: [] },
|
|
2454
|
-
{ id: 5, name: "Level 2 - Hidden Leaf A2", children: [] },
|
|
2455
|
-
],
|
|
2456
|
-
},
|
|
2457
|
-
{ id: 3, name: "Level 1 - Branch B", children: [] },
|
|
2458
|
-
],
|
|
2459
|
-
},
|
|
2460
|
-
];
|
|
2461
|
-
const { testStateDriver } = yield initTestBed(`
|
|
2462
|
-
<Fragment>
|
|
2463
|
-
<VStack height="400px">
|
|
2464
|
-
<Tree id="treeApi" testId="tree"
|
|
2465
|
-
dataFormat="hierarchy"
|
|
2466
|
-
defaultExpanded="all"
|
|
2467
|
-
data='{${JSON.stringify(hierarchyData)}}'>
|
|
2468
|
-
<property name="itemTemplate">
|
|
2469
|
-
<HStack testId="{$item.id}:hidden">
|
|
2470
|
-
<Text value="{$item.name}" />
|
|
2471
|
-
</HStack>
|
|
2472
|
-
</property>
|
|
2473
|
-
</Tree>
|
|
2474
|
-
</VStack>
|
|
2475
|
-
<Button testId="collapse-node2-btn" label="Collapse Node 2" onClick="
|
|
2476
|
-
treeApi.collapseNode(2);
|
|
2477
|
-
testState = { actionPerformed: 'collapseNode2' };
|
|
2478
|
-
" />
|
|
2479
|
-
<Button testId="get-visible-node1-btn" label="Get Visible Node 1" onClick="
|
|
2480
|
-
const node = treeApi.getNodeById(1);
|
|
2481
|
-
testState = {
|
|
2482
|
-
actionPerformed: 'getVisibleNode1',
|
|
2483
|
-
nodeData: node,
|
|
2484
|
-
nodeKey: node?.key,
|
|
2485
|
-
nodeName: node?.name,
|
|
2486
|
-
nodeExists: node !== null
|
|
2487
|
-
};
|
|
2488
|
-
" />
|
|
2489
|
-
<Button testId="get-hidden-node4-btn" label="Get Hidden Node 4" onClick="
|
|
2490
|
-
const node = treeApi.getNodeById(4);
|
|
2491
|
-
testState = {
|
|
2492
|
-
actionPerformed: 'getHiddenNode4',
|
|
2493
|
-
nodeData: node,
|
|
2494
|
-
nodeKey: node?.key,
|
|
2495
|
-
nodeName: node?.name,
|
|
2496
|
-
nodeExists: node !== null
|
|
2497
|
-
};
|
|
2498
|
-
" />
|
|
2499
|
-
<Button testId="get-hidden-node5-btn" label="Get Hidden Node 5" onClick="
|
|
2500
|
-
const node = treeApi.getNodeById(5);
|
|
2501
|
-
testState = {
|
|
2502
|
-
actionPerformed: 'getHiddenNode5',
|
|
2503
|
-
nodeData: node,
|
|
2504
|
-
nodeKey: node?.key,
|
|
2505
|
-
nodeName: node?.name,
|
|
2506
|
-
nodeExists: node !== null
|
|
2507
|
-
};
|
|
2508
|
-
" />
|
|
2509
|
-
<Button testId="expand-node2-btn" label="Expand Node 2" onClick="
|
|
2510
|
-
treeApi.expandNode(2);
|
|
2511
|
-
testState = { actionPerformed: 'expandNode2' };
|
|
2512
|
-
" />
|
|
2513
|
-
<Button testId="get-now-visible-node4-btn" label="Get Now Visible Node 4" onClick="
|
|
2514
|
-
const node = treeApi.getNodeById(4);
|
|
2515
|
-
testState = {
|
|
2516
|
-
actionPerformed: 'getNowVisibleNode4',
|
|
2517
|
-
nodeData: node,
|
|
2518
|
-
nodeKey: node?.key,
|
|
2519
|
-
nodeName: node?.name,
|
|
2520
|
-
nodeExists: node !== null
|
|
2521
|
-
};
|
|
2522
|
-
" />
|
|
2523
|
-
</Fragment>
|
|
2524
|
-
`);
|
|
2525
|
-
const tree = yield createTreeDriver("tree");
|
|
2526
|
-
const collapseNode2Button = yield createButtonDriver("collapse-node2-btn");
|
|
2527
|
-
const getVisibleNode1Button = yield createButtonDriver("get-visible-node1-btn");
|
|
2528
|
-
const getHiddenNode4Button = yield createButtonDriver("get-hidden-node4-btn");
|
|
2529
|
-
const getHiddenNode5Button = yield createButtonDriver("get-hidden-node5-btn");
|
|
2530
|
-
const expandNode2Button = yield createButtonDriver("expand-node2-btn");
|
|
2531
|
-
const getNowVisibleNode4Button = yield createButtonDriver("get-now-visible-node4-btn");
|
|
2532
|
-
// INITIAL STATE: defaultExpanded="all", so all nodes are visible
|
|
2533
|
-
// First, verify all nodes are visible initially
|
|
2534
|
-
const node1Wrapper = tree.getNodeWrapperByTestId("1:hidden");
|
|
2535
|
-
const node2Wrapper = tree.getNodeWrapperByTestId("2:hidden");
|
|
2536
|
-
const node4Wrapper = tree.getNodeWrapperByTestId("4:hidden");
|
|
2537
|
-
const node5Wrapper = tree.getNodeWrapperByTestId("5:hidden");
|
|
2538
|
-
yield (0, fixtures_1.expect)(node1Wrapper).toBeVisible();
|
|
2539
|
-
yield (0, fixtures_1.expect)(node2Wrapper).toBeVisible();
|
|
2540
|
-
yield (0, fixtures_1.expect)(node4Wrapper).toBeVisible();
|
|
2541
|
-
yield (0, fixtures_1.expect)(node5Wrapper).toBeVisible();
|
|
2542
|
-
// Now collapse node 2 to hide its children
|
|
2543
|
-
yield collapseNode2Button.click();
|
|
2544
|
-
yield fixtures_1.expect
|
|
2545
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2546
|
-
const state = yield testStateDriver.testState();
|
|
2547
|
-
return state.actionPerformed;
|
|
2548
|
-
}))
|
|
2549
|
-
.toBe("collapseNode2");
|
|
2550
|
-
// After collapse, node 2 is still visible but its children (4, 5) are hidden
|
|
2551
|
-
yield (0, fixtures_1.expect)(node1Wrapper).toBeVisible();
|
|
2552
|
-
yield (0, fixtures_1.expect)(node2Wrapper).toBeVisible();
|
|
2553
|
-
yield (0, fixtures_1.expect)(node4Wrapper).not.toBeVisible();
|
|
2554
|
-
yield (0, fixtures_1.expect)(node5Wrapper).not.toBeVisible();
|
|
2555
|
-
// TEST: getNodeById(1) should work for visible node
|
|
2556
|
-
yield getVisibleNode1Button.click();
|
|
2557
|
-
yield fixtures_1.expect
|
|
2558
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2559
|
-
const state = yield testStateDriver.testState();
|
|
2560
|
-
return state.actionPerformed;
|
|
2561
|
-
}))
|
|
2562
|
-
.toBe("getVisibleNode1");
|
|
2563
|
-
let currentState = yield testStateDriver.testState();
|
|
2564
|
-
(0, fixtures_1.expect)(currentState.nodeKey).toBe(1);
|
|
2565
|
-
(0, fixtures_1.expect)(currentState.nodeName).toBe("Root Level 0");
|
|
2566
|
-
(0, fixtures_1.expect)(currentState.nodeExists).toBe(true);
|
|
2567
|
-
// TEST: getNodeById(4) should work even though node 4 is hidden (collapsed parent)
|
|
2568
|
-
// This tests whether the API can access data model nodes regardless of DOM visibility
|
|
2569
|
-
yield getHiddenNode4Button.click();
|
|
2570
|
-
yield fixtures_1.expect
|
|
2571
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2572
|
-
const state = yield testStateDriver.testState();
|
|
2573
|
-
return state.actionPerformed;
|
|
2574
|
-
}))
|
|
2575
|
-
.toBe("getHiddenNode4");
|
|
2576
|
-
currentState = yield testStateDriver.testState();
|
|
2577
|
-
(0, fixtures_1.expect)(currentState.nodeKey).toBe(4);
|
|
2578
|
-
(0, fixtures_1.expect)(currentState.nodeName).toBe("Level 2 - Hidden Leaf A1");
|
|
2579
|
-
(0, fixtures_1.expect)(currentState.nodeExists).toBe(true);
|
|
2580
|
-
// TEST: getNodeById(5) should also work for another hidden node
|
|
2581
|
-
yield getHiddenNode5Button.click();
|
|
2582
|
-
yield fixtures_1.expect
|
|
2583
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2584
|
-
const state = yield testStateDriver.testState();
|
|
2585
|
-
return state.actionPerformed;
|
|
2586
|
-
}))
|
|
2587
|
-
.toBe("getHiddenNode5");
|
|
2588
|
-
currentState = yield testStateDriver.testState();
|
|
2589
|
-
(0, fixtures_1.expect)(currentState.nodeKey).toBe(5);
|
|
2590
|
-
(0, fixtures_1.expect)(currentState.nodeName).toBe("Level 2 - Hidden Leaf A2");
|
|
2591
|
-
(0, fixtures_1.expect)(currentState.nodeExists).toBe(true);
|
|
2592
|
-
// Now expand the parent node to make children visible again
|
|
2593
|
-
yield expandNode2Button.click();
|
|
2594
|
-
yield fixtures_1.expect
|
|
2595
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2596
|
-
const state = yield testStateDriver.testState();
|
|
2597
|
-
return state.actionPerformed;
|
|
2598
|
-
}))
|
|
2599
|
-
.toBe("expandNode2");
|
|
2600
|
-
// Verify nodes are now visible in DOM again
|
|
2601
|
-
yield (0, fixtures_1.expect)(node4Wrapper).toBeVisible();
|
|
2602
|
-
yield (0, fixtures_1.expect)(node5Wrapper).toBeVisible();
|
|
2603
|
-
// TEST: getNodeById(4) should still work now that it's visible again
|
|
2604
|
-
yield getNowVisibleNode4Button.click();
|
|
2605
|
-
yield fixtures_1.expect
|
|
2606
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2607
|
-
const state = yield testStateDriver.testState();
|
|
2608
|
-
return state.actionPerformed;
|
|
2609
|
-
}))
|
|
2610
|
-
.toBe("getNowVisibleNode4");
|
|
2611
|
-
currentState = yield testStateDriver.testState();
|
|
2612
|
-
(0, fixtures_1.expect)(currentState.nodeKey).toBe(4);
|
|
2613
|
-
(0, fixtures_1.expect)(currentState.nodeName).toBe("Level 2 - Hidden Leaf A1");
|
|
2614
|
-
(0, fixtures_1.expect)(currentState.nodeExists).toBe(true);
|
|
2615
|
-
}));
|
|
2616
|
-
(0, fixtures_1.test)("getExpandedNodes() - returns array of expanded node keys", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createTreeDriver, createButtonDriver, }) {
|
|
2617
|
-
// Hierarchy data for testing expanded nodes tracking
|
|
2618
|
-
const hierarchyData = [
|
|
2619
|
-
{
|
|
2620
|
-
id: 1,
|
|
2621
|
-
name: "Root Level 0",
|
|
2622
|
-
children: [
|
|
2623
|
-
{
|
|
2624
|
-
id: 2,
|
|
2625
|
-
name: "Level 1 - Branch A",
|
|
2626
|
-
children: [
|
|
2627
|
-
{ id: 4, name: "Level 2 - Leaf A1", children: [] },
|
|
2628
|
-
{ id: 5, name: "Level 2 - Leaf A2", children: [] },
|
|
2629
|
-
],
|
|
2630
|
-
},
|
|
2631
|
-
{ id: 3, name: "Level 1 - Branch B", children: [] },
|
|
2632
|
-
],
|
|
2633
|
-
},
|
|
2634
|
-
{
|
|
2635
|
-
id: 6,
|
|
2636
|
-
name: "Root Level 1",
|
|
2637
|
-
children: [{ id: 7, name: "Level 1 - Branch C", children: [] }],
|
|
2638
|
-
},
|
|
2639
|
-
];
|
|
2640
|
-
const { testStateDriver } = yield initTestBed(`
|
|
2641
|
-
<Fragment>
|
|
2642
|
-
<VStack height="400px">
|
|
2643
|
-
<Tree id="treeApi" testId="tree"
|
|
2644
|
-
dataFormat="hierarchy"
|
|
2645
|
-
defaultExpanded="none"
|
|
2646
|
-
data='{${JSON.stringify(hierarchyData)}}'>
|
|
2647
|
-
<property name="itemTemplate">
|
|
2648
|
-
<HStack testId="{$item.id}:expand">
|
|
2649
|
-
<Text value="{$item.name}" />
|
|
2650
|
-
</HStack>
|
|
2651
|
-
</property>
|
|
2652
|
-
</Tree>
|
|
2653
|
-
</VStack>
|
|
2654
|
-
<Button testId="get-expanded-initial-btn" label="Get Expanded Initial" onClick="
|
|
2655
|
-
const expanded = treeApi.getExpandedNodes();
|
|
2656
|
-
testState = {
|
|
2657
|
-
actionPerformed: 'getExpandedInitial',
|
|
2658
|
-
expandedNodes: expanded,
|
|
2659
|
-
expandedCount: expanded.length
|
|
2660
|
-
};
|
|
2661
|
-
" />
|
|
2662
|
-
<Button testId="expand-node1-btn" label="Expand Node 1" onClick="
|
|
2663
|
-
treeApi.expandNode(1);
|
|
2664
|
-
testState = { actionPerformed: 'expandNode1' };
|
|
2665
|
-
" />
|
|
2666
|
-
<Button testId="get-expanded-after1-btn" label="Get Expanded After 1" onClick="
|
|
2667
|
-
const expanded = treeApi.getExpandedNodes();
|
|
2668
|
-
testState = {
|
|
2669
|
-
actionPerformed: 'getExpandedAfter1',
|
|
2670
|
-
expandedNodes: expanded,
|
|
2671
|
-
expandedCount: expanded.length
|
|
2672
|
-
};
|
|
2673
|
-
" />
|
|
2674
|
-
<Button testId="expand-node2-btn" label="Expand Node 2" onClick="
|
|
2675
|
-
treeApi.expandNode(2);
|
|
2676
|
-
testState = { actionPerformed: 'expandNode2' };
|
|
2677
|
-
" />
|
|
2678
|
-
<Button testId="get-expanded-after2-btn" label="Get Expanded After 2" onClick="
|
|
2679
|
-
const expanded = treeApi.getExpandedNodes();
|
|
2680
|
-
testState = {
|
|
2681
|
-
actionPerformed: 'getExpandedAfter2',
|
|
2682
|
-
expandedNodes: expanded,
|
|
2683
|
-
expandedCount: expanded.length
|
|
2684
|
-
};
|
|
2685
|
-
" />
|
|
2686
|
-
<Button testId="expand-all-btn" label="Expand All" onClick="
|
|
2687
|
-
treeApi.expandAll();
|
|
2688
|
-
testState = { actionPerformed: 'expandAll' };
|
|
2689
|
-
" />
|
|
2690
|
-
<Button testId="get-expanded-all-btn" label="Get Expanded All" onClick="
|
|
2691
|
-
const expanded = treeApi.getExpandedNodes();
|
|
2692
|
-
testState = {
|
|
2693
|
-
actionPerformed: 'getExpandedAll',
|
|
2694
|
-
expandedNodes: expanded,
|
|
2695
|
-
expandedCount: expanded.length
|
|
2696
|
-
};
|
|
2697
|
-
" />
|
|
2698
|
-
<Button testId="collapse-node2-btn" label="Collapse Node 2" onClick="
|
|
2699
|
-
treeApi.collapseNode(2);
|
|
2700
|
-
testState = { actionPerformed: 'collapseNode2' };
|
|
2701
|
-
" />
|
|
2702
|
-
<Button testId="get-expanded-after-collapse-btn" label="Get Expanded After Collapse" onClick="
|
|
2703
|
-
const expanded = treeApi.getExpandedNodes();
|
|
2704
|
-
testState = {
|
|
2705
|
-
actionPerformed: 'getExpandedAfterCollapse',
|
|
2706
|
-
expandedNodes: expanded,
|
|
2707
|
-
expandedCount: expanded.length
|
|
2708
|
-
};
|
|
2709
|
-
" />
|
|
2710
|
-
</Fragment>
|
|
2711
|
-
`);
|
|
2712
|
-
const getExpandedInitialButton = yield createButtonDriver("get-expanded-initial-btn");
|
|
2713
|
-
const expandNode1Button = yield createButtonDriver("expand-node1-btn");
|
|
2714
|
-
const getExpandedAfter1Button = yield createButtonDriver("get-expanded-after1-btn");
|
|
2715
|
-
const expandNode2Button = yield createButtonDriver("expand-node2-btn");
|
|
2716
|
-
const getExpandedAfter2Button = yield createButtonDriver("get-expanded-after2-btn");
|
|
2717
|
-
const expandAllButton = yield createButtonDriver("expand-all-btn");
|
|
2718
|
-
const getExpandedAllButton = yield createButtonDriver("get-expanded-all-btn");
|
|
2719
|
-
const collapseNode2Button = yield createButtonDriver("collapse-node2-btn");
|
|
2720
|
-
const getExpandedAfterCollapseButton = yield createButtonDriver("get-expanded-after-collapse-btn");
|
|
2721
|
-
// INITIAL STATE: defaultExpanded="none", so no nodes should be expanded
|
|
2722
|
-
yield getExpandedInitialButton.click();
|
|
2723
|
-
yield fixtures_1.expect
|
|
2724
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2725
|
-
const state = yield testStateDriver.testState();
|
|
2726
|
-
return state.actionPerformed;
|
|
2727
|
-
}))
|
|
2728
|
-
.toBe("getExpandedInitial");
|
|
2729
|
-
let currentState = yield testStateDriver.testState();
|
|
2730
|
-
(0, fixtures_1.expect)(currentState.expandedCount).toBe(0);
|
|
2731
|
-
(0, fixtures_1.expect)(currentState.expandedNodes).toEqual([]);
|
|
2732
|
-
// EXPAND NODE 1: Should add node 1 to expanded list
|
|
2733
|
-
yield expandNode1Button.click();
|
|
2734
|
-
yield fixtures_1.expect
|
|
2735
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2736
|
-
const state = yield testStateDriver.testState();
|
|
2737
|
-
return state.actionPerformed;
|
|
2738
|
-
}))
|
|
2739
|
-
.toBe("expandNode1");
|
|
2740
|
-
yield getExpandedAfter1Button.click();
|
|
2741
|
-
yield fixtures_1.expect
|
|
2742
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2743
|
-
const state = yield testStateDriver.testState();
|
|
2744
|
-
return state.actionPerformed;
|
|
2745
|
-
}))
|
|
2746
|
-
.toBe("getExpandedAfter1");
|
|
2747
|
-
currentState = yield testStateDriver.testState();
|
|
2748
|
-
(0, fixtures_1.expect)(currentState.expandedCount).toBe(1);
|
|
2749
|
-
(0, fixtures_1.expect)(currentState.expandedNodes).toEqual([1]);
|
|
2750
|
-
// EXPAND NODE 2: Should add node 2 to expanded list (alongside node 1)
|
|
2751
|
-
yield expandNode2Button.click();
|
|
2752
|
-
yield fixtures_1.expect
|
|
2753
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2754
|
-
const state = yield testStateDriver.testState();
|
|
2755
|
-
return state.actionPerformed;
|
|
2756
|
-
}))
|
|
2757
|
-
.toBe("expandNode2");
|
|
2758
|
-
yield getExpandedAfter2Button.click();
|
|
2759
|
-
yield fixtures_1.expect
|
|
2760
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2761
|
-
const state = yield testStateDriver.testState();
|
|
2762
|
-
return state.actionPerformed;
|
|
2763
|
-
}))
|
|
2764
|
-
.toBe("getExpandedAfter2");
|
|
2765
|
-
currentState = yield testStateDriver.testState();
|
|
2766
|
-
(0, fixtures_1.expect)(currentState.expandedCount).toBe(2);
|
|
2767
|
-
(0, fixtures_1.expect)(currentState.expandedNodes).toEqual(fixtures_1.expect.arrayContaining([1, 2]));
|
|
2768
|
-
// EXPAND ALL: Should expand all nodes with children
|
|
2769
|
-
yield expandAllButton.click();
|
|
2770
|
-
yield fixtures_1.expect
|
|
2771
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2772
|
-
const state = yield testStateDriver.testState();
|
|
2773
|
-
return state.actionPerformed;
|
|
2774
|
-
}))
|
|
2775
|
-
.toBe("expandAll");
|
|
2776
|
-
yield getExpandedAllButton.click();
|
|
2777
|
-
yield fixtures_1.expect
|
|
2778
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2779
|
-
const state = yield testStateDriver.testState();
|
|
2780
|
-
return state.actionPerformed;
|
|
2781
|
-
}))
|
|
2782
|
-
.toBe("getExpandedAll");
|
|
2783
|
-
currentState = yield testStateDriver.testState();
|
|
2784
|
-
// After expandAll, ALL nodes are added to the expanded list
|
|
2785
|
-
// This includes leaf nodes, which is the current implementation behavior
|
|
2786
|
-
(0, fixtures_1.expect)(currentState.expandedCount).toBe(7);
|
|
2787
|
-
(0, fixtures_1.expect)(currentState.expandedNodes).toEqual(fixtures_1.expect.arrayContaining([1, 2, 3, 4, 5, 6, 7]));
|
|
2788
|
-
// COLLAPSE NODE 2: Should remove node 2 from expanded list
|
|
2789
|
-
yield collapseNode2Button.click();
|
|
2790
|
-
yield fixtures_1.expect
|
|
2791
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2792
|
-
const state = yield testStateDriver.testState();
|
|
2793
|
-
return state.actionPerformed;
|
|
2794
|
-
}))
|
|
2795
|
-
.toBe("collapseNode2");
|
|
2796
|
-
yield getExpandedAfterCollapseButton.click();
|
|
2797
|
-
yield fixtures_1.expect
|
|
2798
|
-
.poll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
2799
|
-
const state = yield testStateDriver.testState();
|
|
2800
|
-
return state.actionPerformed;
|
|
2801
|
-
}))
|
|
2802
|
-
.toBe("getExpandedAfterCollapse");
|
|
2803
|
-
currentState = yield testStateDriver.testState();
|
|
2804
|
-
(0, fixtures_1.expect)(currentState.expandedCount).toBe(4);
|
|
2805
|
-
// When node 2 is collapsed, its descendants (4, 5) are also removed from expanded list
|
|
2806
|
-
(0, fixtures_1.expect)(currentState.expandedNodes).toEqual(fixtures_1.expect.arrayContaining([1, 3, 6, 7]));
|
|
2807
|
-
(0, fixtures_1.expect)(currentState.expandedNodes).not.toEqual(fixtures_1.expect.arrayContaining([2, 4, 5]));
|
|
2808
|
-
}));
|
|
2809
|
-
});
|
|
2810
|
-
});
|
|
2811
|
-
// =============================================================================
|
|
2812
|
-
// DYNAMIC FIELD SUPPORT TESTS
|
|
2813
|
-
// =============================================================================
|
|
2814
|
-
fixtures_1.test.describe("Dynamic Field Support", () => {
|
|
2815
|
-
(0, fixtures_1.test)("should display expand/collapse icons for dynamic nodes even without children", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed, createTreeDriver, }) {
|
|
2816
|
-
yield initTestBed(`
|
|
2817
|
-
<VStack height="400px">
|
|
2818
|
-
<Tree testId="tree"
|
|
2819
|
-
dataFormat="hierarchy"
|
|
2820
|
-
data='{${JSON.stringify(testData_1.dynamicTreeData)}}'
|
|
2821
|
-
defaultExpanded="none">
|
|
2822
|
-
<property name="itemTemplate">
|
|
2823
|
-
<HStack testId="{$item.id}:{$item.depth}">
|
|
2824
|
-
<Text value="{$item.name}" />
|
|
2825
|
-
</HStack>
|
|
2826
|
-
</property>
|
|
2827
|
-
</Tree>
|
|
2828
|
-
</VStack>
|
|
2829
|
-
`);
|
|
2830
|
-
const tree = yield createTreeDriver("tree");
|
|
2831
|
-
yield (0, fixtures_1.expect)(tree.component).toBeVisible();
|
|
2832
|
-
// --- We see an extra icon because Node 3 is dynamic ---
|
|
2833
|
-
yield (0, fixtures_1.expect)(tree.getIconsByName("chevronright")).toHaveCount(2);
|
|
2834
|
-
// Verify tree items are rendered (only root level nodes should be visible initially)
|
|
2835
|
-
yield (0, fixtures_1.expect)(page.getByTestId("1:0")).toBeVisible();
|
|
2836
|
-
yield (0, fixtures_1.expect)(page.getByTestId("3:0")).toBeVisible();
|
|
2837
|
-
yield (0, fixtures_1.expect)(page.getByTestId("4:0")).toBeVisible();
|
|
2838
|
-
// Node 2 should not be visible initially as parent is collapsed
|
|
2839
|
-
yield (0, fixtures_1.expect)(page.getByTestId("2:1")).not.toBeVisible();
|
|
2840
|
-
}));
|
|
2841
|
-
(0, fixtures_1.test)("should use custom dynamicField name", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed, createTreeDriver }) {
|
|
2842
|
-
yield initTestBed(`
|
|
2843
|
-
<VStack height="400px">
|
|
2844
|
-
<Tree testId="tree"
|
|
2845
|
-
dataFormat="hierarchy"
|
|
2846
|
-
dynamicField="canLoadMore"
|
|
2847
|
-
data='{${JSON.stringify(testData_1.customDynamicTreeData)}}'
|
|
2848
|
-
defaultExpanded="none">
|
|
2849
|
-
<property name="itemTemplate">
|
|
2850
|
-
<HStack testId="{$item.id}:{$item.depth}">
|
|
2851
|
-
<Text value="{$item.name}" />
|
|
2852
|
-
</HStack>
|
|
2853
|
-
</property>
|
|
2854
|
-
</Tree>
|
|
2855
|
-
</VStack>
|
|
2856
|
-
`);
|
|
2857
|
-
const tree = yield createTreeDriver("tree");
|
|
2858
|
-
yield (0, fixtures_1.expect)(tree.component).toBeVisible();
|
|
2859
|
-
// --- We see an extra icon because Node 3 is dynamic ---
|
|
2860
|
-
yield (0, fixtures_1.expect)(tree.getIconsByName("chevronright")).toHaveCount(2);
|
|
2861
|
-
// Verify tree items are rendered (only root level nodes should be visible initially)
|
|
2862
|
-
yield (0, fixtures_1.expect)(page.getByTestId("1:0")).toBeVisible();
|
|
2863
|
-
yield (0, fixtures_1.expect)(page.getByTestId("3:0")).toBeVisible();
|
|
2864
|
-
yield (0, fixtures_1.expect)(page.getByTestId("4:0")).toBeVisible();
|
|
2865
|
-
// Node 2 should not be visible initially as parent is collapsed
|
|
2866
|
-
yield (0, fixtures_1.expect)(page.getByTestId("2:1")).not.toBeVisible();
|
|
2867
|
-
}));
|
|
2868
|
-
(0, fixtures_1.test)("should work with flat data format and dynamic field", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed, createTreeDriver, }) {
|
|
2869
|
-
yield initTestBed(`
|
|
2870
|
-
<VStack height="400px">
|
|
2871
|
-
<Tree testId="tree"
|
|
2872
|
-
dataFormat="flat"
|
|
2873
|
-
data='{${JSON.stringify(testData_1.dynamicFlatData)}}'
|
|
2874
|
-
defaultExpanded="none">
|
|
2875
|
-
<property name="itemTemplate">
|
|
2876
|
-
<HStack testId="{$item.id}:{$item.depth}">
|
|
2877
|
-
<Text value="{$item.name}" />
|
|
2878
|
-
</HStack>
|
|
2879
|
-
</property>
|
|
2880
|
-
</Tree>
|
|
2881
|
-
</VStack>
|
|
2882
|
-
`);
|
|
2883
|
-
const tree = yield createTreeDriver("tree");
|
|
2884
|
-
yield (0, fixtures_1.expect)(tree.component).toBeVisible();
|
|
2885
|
-
// --- We see an extra icon because Node 3 is dynamic ---
|
|
2886
|
-
yield (0, fixtures_1.expect)(tree.getIconsByName("chevronright")).toHaveCount(2);
|
|
2887
|
-
// Verify tree items are rendered (only root level nodes should be visible initially)
|
|
2888
|
-
yield (0, fixtures_1.expect)(page.getByTestId("1:0")).toBeVisible();
|
|
2889
|
-
yield (0, fixtures_1.expect)(page.getByTestId("3:0")).toBeVisible();
|
|
2890
|
-
yield (0, fixtures_1.expect)(page.getByTestId("4:0")).toBeVisible();
|
|
2891
|
-
// Node 2 should not be visible initially as parent is collapsed
|
|
2892
|
-
yield (0, fixtures_1.expect)(page.getByTestId("2:1")).not.toBeVisible();
|
|
2893
|
-
}));
|
|
2894
|
-
});
|