@ui5/webcomponents 1.13.2 → 1.14.0-rc.0
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/CHANGELOG.md +19 -0
- package/dist/Avatar.d.ts +3 -3
- package/dist/Avatar.js.map +1 -1
- package/dist/AvatarGroup.d.ts +2 -3
- package/dist/AvatarGroup.js.map +1 -1
- package/dist/Breadcrumbs.d.ts +2 -2
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/BusyIndicator.d.ts +1 -1
- package/dist/BusyIndicator.js.map +1 -1
- package/dist/Button.d.ts +1 -1
- package/dist/Button.js.map +1 -1
- package/dist/Calendar.d.ts +1 -1
- package/dist/Calendar.js.map +1 -1
- package/dist/CalendarHeader.d.ts +2 -2
- package/dist/CalendarHeader.js.map +1 -1
- package/dist/Carousel.d.ts +2 -2
- package/dist/Carousel.js.map +1 -1
- package/dist/CheckBox.d.ts +2 -2
- package/dist/CheckBox.js.map +1 -1
- package/dist/ComboBox.d.ts +4 -4
- package/dist/ComboBox.js.map +1 -1
- package/dist/DateComponentBase.d.ts +3 -3
- package/dist/DateComponentBase.js.map +1 -1
- package/dist/DatePicker.d.ts +1 -1
- package/dist/DatePicker.js.map +1 -1
- package/dist/DayPicker.d.ts +1 -1
- package/dist/DayPicker.js.map +1 -1
- package/dist/Dialog.d.ts +1 -1
- package/dist/Dialog.js.map +1 -1
- package/dist/FileUploader.d.ts +1 -1
- package/dist/FileUploader.js.map +1 -1
- package/dist/Icon.d.ts +1 -1
- package/dist/Icon.js.map +1 -1
- package/dist/Input.d.ts +2 -2
- package/dist/Input.js.map +1 -1
- package/dist/Label.d.ts +1 -7
- package/dist/Label.js +0 -9
- package/dist/Label.js.map +1 -1
- package/dist/Link.d.ts +2 -2
- package/dist/Link.js.map +1 -1
- package/dist/List.d.ts +3 -3
- package/dist/List.js.map +1 -1
- package/dist/ListItem.d.ts +4 -4
- package/dist/ListItem.js.map +1 -1
- package/dist/MessageStrip.d.ts +3 -3
- package/dist/MessageStrip.js +8 -8
- package/dist/MessageStrip.js.map +1 -1
- package/dist/MultiComboBox.d.ts +4 -4
- package/dist/MultiComboBox.js.map +1 -1
- package/dist/Panel.d.ts +2 -2
- package/dist/Panel.js.map +1 -1
- package/dist/Popover.d.ts +8 -8
- package/dist/Popover.js +2 -2
- package/dist/Popover.js.map +1 -1
- package/dist/Popup.d.ts +1 -1
- package/dist/Popup.js.map +1 -1
- package/dist/ProgressIndicator.d.ts +1 -1
- package/dist/ProgressIndicator.js.map +1 -1
- package/dist/RadioButton.d.ts +2 -2
- package/dist/RadioButton.js.map +1 -1
- package/dist/SegmentedButtonItem.d.ts +1 -1
- package/dist/SegmentedButtonItem.js.map +1 -1
- package/dist/Select.d.ts +1 -1
- package/dist/Select.js.map +1 -1
- package/dist/SplitButton.d.ts +1 -1
- package/dist/SplitButton.js.map +1 -1
- package/dist/StandardListItem.d.ts +2 -2
- package/dist/StandardListItem.js.map +1 -1
- package/dist/StepInput.d.ts +2 -2
- package/dist/StepInput.js.map +1 -1
- package/dist/SuggestionItem.d.ts +2 -2
- package/dist/SuggestionItem.js.map +1 -1
- package/dist/Switch.d.ts +1 -1
- package/dist/Switch.js.map +1 -1
- package/dist/Tab.d.ts +1 -1
- package/dist/Tab.js.map +1 -1
- package/dist/TabContainer.d.ts +6 -6
- package/dist/TabContainer.js.map +1 -1
- package/dist/Table.d.ts +4 -4
- package/dist/Table.js.map +1 -1
- package/dist/TableCell.d.ts +14 -0
- package/dist/TableCell.js +19 -2
- package/dist/TableCell.js.map +1 -1
- package/dist/TableColumn.d.ts +1 -1
- package/dist/TableColumn.js.map +1 -1
- package/dist/TableGroupRow.d.ts +1 -1
- package/dist/TableGroupRow.js.map +1 -1
- package/dist/TableRow.d.ts +2 -2
- package/dist/TableRow.js +1 -1
- package/dist/TableRow.js.map +1 -1
- package/dist/TextArea.d.ts +1 -1
- package/dist/TextArea.js.map +1 -1
- package/dist/TimePickerBase.d.ts +1 -1
- package/dist/TimePickerBase.js.map +1 -1
- package/dist/Title.d.ts +2 -2
- package/dist/Title.js.map +1 -1
- package/dist/Toast.d.ts +1 -1
- package/dist/Toast.js.map +1 -1
- package/dist/Tokenizer.d.ts +1 -1
- package/dist/Tokenizer.js.map +1 -1
- package/dist/Tree.d.ts +1 -1
- package/dist/Tree.js.map +1 -1
- package/dist/TreeItem.d.ts +1 -1
- package/dist/TreeItem.js.map +1 -1
- package/dist/TreeItemBase.d.ts +3 -3
- package/dist/TreeItemBase.js.map +1 -1
- package/dist/api.json +1 -1
- package/dist/assets/IgnoreCustomElements.2238457d.css +1 -0
- package/dist/assets/Label.95b96777.css +1 -0
- package/dist/assets/messagebundle_en_US_sappsd.aec484c1.js +1 -0
- package/dist/assets/{messagebundle_en_US_saprigi.8f67a54b.js → messagebundle_en_US_saprigi.f321a5ab.js} +1 -1
- package/dist/assets/messagebundle_en_US_saptrc.94f1e535.js +1 -0
- package/dist/assets/{parameters-bundle.css.64a1fcb3.js → parameters-bundle.css.026dc74e.js} +1 -1
- package/dist/assets/{parameters-bundle.css.2480d334.js → parameters-bundle.css.0c41d58c.js} +1 -1
- package/dist/assets/{parameters-bundle.css.b06aacf3.js → parameters-bundle.css.14a79875.js} +1 -1
- package/dist/assets/{parameters-bundle.css.4cf7b367.js → parameters-bundle.css.23269e5b.js} +1 -1
- package/dist/assets/{parameters-bundle.css.0910d303.js → parameters-bundle.css.51692b82.js} +1 -1
- package/dist/assets/{parameters-bundle.css.e59780e1.js → parameters-bundle.css.5ab8f243.js} +1 -1
- package/dist/assets/{parameters-bundle.css.0c80e05a.js → parameters-bundle.css.64406af3.js} +1 -1
- package/dist/assets/{parameters-bundle.css.a0b1bee1.js → parameters-bundle.css.7c9daf4d.js} +1 -1
- package/dist/assets/{parameters-bundle.css.691f8760.js → parameters-bundle.css.8289b958.js} +1 -1
- package/dist/assets/{parameters-bundle.css.8a87377e.js → parameters-bundle.css.ba16125d.js} +1 -1
- package/dist/assets/{parameters-bundle.css.b8d253d9.js → parameters-bundle.css.db425c28.js} +1 -1
- package/dist/assets/{parameters-bundle.css.731f329b.js → parameters-bundle.css.eef2edf1.js} +1 -1
- package/dist/assets/test/pages/{ComboBox.html.7a8266c1.js → ComboBox.html.95e153b8.js} +1 -1
- package/dist/assets/test/pages/{Icon.html.ae37223a.js → Icon.html.251f84e4.js} +1 -1
- package/dist/assets/test/pages/{Label.html.227cb1b0.js → Label.html.df067063.js} +1 -1
- package/dist/assets/test/pages/{Popups.html.0c15c9f3.js → Popups.html.67ffb6cc.js} +1 -1
- package/dist/css/themes/Label.css +1 -1
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/css/themes/sap_belize/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_belize_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_belize_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
- package/dist/custom-elements.json +1 -1
- package/dist/features/InputSuggestions.d.ts +2 -2
- package/dist/features/InputSuggestions.js.map +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
- package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
- package/dist/generated/i18n/i18n-defaults.js +2 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/LabelTemplate.lit.js +2 -2
- package/dist/generated/templates/LabelTemplate.lit.js.map +1 -1
- package/dist/generated/themes/Label.css.js +1 -1
- package/dist/generated/themes/Label.css.js.map +1 -1
- package/dist/generated/themes/TextArea.css.js +1 -1
- package/dist/generated/themes/TextArea.css.js.map +1 -1
- package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_belize/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/i18n/messagebundle.properties +3 -0
- package/dist/i18n/messagebundle_en_US_sappsd.properties +2 -0
- package/dist/i18n/messagebundle_en_US_saprigi.properties +2 -0
- package/dist/i18n/messagebundle_en_US_saptrc.properties +2 -0
- package/dist/test/pages/72override.html +1 -1
- package/dist/test/pages/AnimanitionOff.html +1 -1
- package/dist/test/pages/Avatar.html +1 -1
- package/dist/test/pages/AvatarGroup.html +1 -1
- package/dist/test/pages/Badge.html +1 -1
- package/dist/test/pages/Breadcrumbs.html +1 -1
- package/dist/test/pages/BusyIndicator.html +1 -1
- package/dist/test/pages/Button.html +1 -1
- package/dist/test/pages/Calendar.html +1 -1
- package/dist/test/pages/Card.html +1 -1
- package/dist/test/pages/Carousel.html +1 -1
- package/dist/test/pages/CheckBox.html +1 -1
- package/dist/test/pages/ColorPalette.html +1 -1
- package/dist/test/pages/ColorPalettePopover.html +1 -1
- package/dist/test/pages/ColorPicker.html +1 -1
- package/dist/test/pages/ComboBox.html +2 -2
- package/dist/test/pages/Components.html +1 -1
- package/dist/test/pages/CoreControls.html +1 -1
- package/dist/test/pages/CoreControls_exp.html +1 -1
- package/dist/test/pages/CustomCSS.html +1 -1
- package/dist/test/pages/DatePicker.html +1 -1
- package/dist/test/pages/DatePicker_test_page.html +1 -1
- package/dist/test/pages/DateRangePicker.html +1 -1
- package/dist/test/pages/DateTimePicker.html +1 -1
- package/dist/test/pages/DateTimePicker_Timezone.html +1 -1
- package/dist/test/pages/DayPicker.html +1 -1
- package/dist/test/pages/Dialog.html +1 -1
- package/dist/test/pages/DialogLifecycle.html +1 -1
- package/dist/test/pages/DialogSemantic.html +1 -1
- package/dist/test/pages/Eventing.html +1 -1
- package/dist/test/pages/F6Test1.html +1 -1
- package/dist/test/pages/F6Test2.html +1 -1
- package/dist/test/pages/F6Test3.html +1 -1
- package/dist/test/pages/F6Test4.html +1 -1
- package/dist/test/pages/F6Test5.html +1 -1
- package/dist/test/pages/F6Test6.html +1 -1
- package/dist/test/pages/F6Test7.html +1 -1
- package/dist/test/pages/FileUploader.html +1 -1
- package/dist/test/pages/FormComponents.html +1 -1
- package/dist/test/pages/FormSupport.html +1 -1
- package/dist/test/pages/HCB.html +1 -1
- package/dist/test/pages/Icon.html +2 -2
- package/dist/test/pages/Icon_and_theming.html +1 -1
- package/dist/test/pages/Icon_custom.html +1 -1
- package/dist/test/pages/Input.html +1 -1
- package/dist/test/pages/InputFieldLabels.html +1 -1
- package/dist/test/pages/InputFieldMinWidth.html +1 -1
- package/dist/test/pages/InputIcons.html +1 -1
- package/dist/test/pages/Input_quickview.html +1 -1
- package/dist/test/pages/InputsAlignment.html +1 -1
- package/dist/test/pages/InputsLazyLoading.html +1 -1
- package/dist/test/pages/ItemNavigation.html +1 -1
- package/dist/test/pages/Kitchen.html +1 -1
- package/dist/test/pages/Kitchen.openui5.html +1 -1
- package/dist/test/pages/Label.html +45 -42
- package/dist/test/pages/Link.html +1 -1
- package/dist/test/pages/List.html +1 -1
- package/dist/test/pages/ListGrowing_Button.html +1 -1
- package/dist/test/pages/ListGrowing_Scroll.html +1 -1
- package/dist/test/pages/List_keyboard_support.html +1 -1
- package/dist/test/pages/List_test_page.html +1 -1
- package/dist/test/pages/LitKeyFunction.html +1 -1
- package/dist/test/pages/MemoryLeak.html +1 -1
- package/dist/test/pages/Menu.html +1 -1
- package/dist/test/pages/MessagePage.html +1 -1
- package/dist/test/pages/MessageStrip.html +1 -1
- package/dist/test/pages/MultiComboBox.html +1 -1
- package/dist/test/pages/MultiInput.html +1 -1
- package/dist/test/pages/MultiInput_Suggestions.html +1 -1
- package/dist/test/pages/OpenUI5-second.html +1 -1
- package/dist/test/pages/OpenUI5.html +1 -1
- package/dist/test/pages/Panel.html +1 -1
- package/dist/test/pages/Popover.html +1 -1
- package/dist/test/pages/PopoverArrowBounds.html +1 -1
- package/dist/test/pages/Popups.html +2 -2
- package/dist/test/pages/ProgressIndicator.html +1 -1
- package/dist/test/pages/RTL.html +1 -1
- package/dist/test/pages/RadioButton.html +1 -1
- package/dist/test/pages/RangeSlider.html +1 -1
- package/dist/test/pages/RatingIndicator.html +1 -1
- package/dist/test/pages/ResizeHandler.html +1 -1
- package/dist/test/pages/ResponsivePopover.html +1 -1
- package/dist/test/pages/SegmentedButton.html +1 -1
- package/dist/test/pages/Select.html +1 -1
- package/dist/test/pages/Simple.html +1 -1
- package/dist/test/pages/Slider.html +1 -1
- package/dist/test/pages/SplitButton.html +1 -1
- package/dist/test/pages/StepInput.html +1 -1
- package/dist/test/pages/Switch.html +1 -1
- package/dist/test/pages/TabContainer.html +1 -1
- package/dist/test/pages/Table-perf-pure.html +1 -1
- package/dist/test/pages/Table-perf.html +1 -1
- package/dist/test/pages/Table.html +3 -3
- package/dist/test/pages/Table2.html +1 -1
- package/dist/test/pages/TableAllPopin.html +1 -1
- package/dist/test/pages/TableCustomStyling.html +1 -1
- package/dist/test/pages/TableGrouping.html +1 -1
- package/dist/test/pages/TableGrowingWithButton.html +1 -1
- package/dist/test/pages/TableGrowingWithScroll.html +1 -1
- package/dist/test/pages/TableSelection.html +1 -1
- package/dist/test/pages/TextArea.html +1 -1
- package/dist/test/pages/TimePicker.html +1 -1
- package/dist/test/pages/TimeSelection.html +1 -1
- package/dist/test/pages/Title.html +1 -1
- package/dist/test/pages/Toast.html +1 -1
- package/dist/test/pages/ToggleButton.html +1 -1
- package/dist/test/pages/Tree.html +1 -1
- package/dist/test/pages/WheelSlider_Test_Page.html +1 -1
- package/dist/test/pages/base/AriaLabelHelper.html +1 -1
- package/dist/test/pages/base/DOMObserver.html +1 -1
- package/dist/test/pages/base/IconCollection.html +1 -1
- package/dist/test/pages/base/IconCollectionInCustomTheme.html +1 -1
- package/dist/test/pages/base/IgnoreCustomElements.html +26 -0
- package/dist/test/pages/base/InvisibleMessage.html +1 -1
- package/dist/test/pages/form.html +1 -1
- package/dist/test/pages/i18n-defaultLang.html +1 -1
- package/dist/test/pages/i18n-demo.html +1 -1
- package/package.json +7 -7
- package/src/Label.hbs +4 -6
- package/src/i18n/messagebundle.properties +3 -0
- package/src/i18n/messagebundle_en_US_sappsd.properties +2 -0
- package/src/i18n/messagebundle_en_US_saprigi.properties +2 -0
- package/src/i18n/messagebundle_en_US_saptrc.properties +2 -0
- package/src/themes/Label.css +11 -28
- package/src/themes/TextArea.css +16 -7
- package/src/themes/base/TextArea-parameters.css +0 -1
- package/src/themes/sap_horizon/TextArea-parameters.css +0 -5
- package/src/themes/sap_horizon_dark/TextArea-parameters.css +0 -5
- package/dist/assets/Label.b48eb771.css +0 -1
- package/dist/assets/messagebundle_en_US_sappsd.4b5e22df.js +0 -1
- package/dist/assets/messagebundle_en_US_saptrc.1c1645fc.js +0 -1
package/dist/Tokenizer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tokenizer.js","sourceRoot":"","sources":["../src/Tokenizer.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AAErF,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,aAAa,MAAM,wDAAwD,CAAC;AAEnF,OAAO,cAAc,MAAM,yDAAyD,CAAC;AACrF,OAAO,gBAAgB,MAAM,2DAA2D,CAAC;AACzF,OAAO,OAAO,MAAM,+CAA+C,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EACN,OAAO,EACP,WAAW,EACX,YAAY,EACZ,UAAU,EACV,WAAW,EACX,QAAQ,EACR,UAAU,EACV,SAAS,EACT,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,WAAW,EACX,UAAU,EACV,UAAU,EACV,SAAS,EACT,OAAO,EACP,MAAM,EACN,IAAI,EACJ,MAAM,GACN,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACjE,OAAO,UAAU,MAAM,kDAAkD,CAAC;AAC1E,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAGrD,OAAO,iBAAiB,MAAM,gDAAgD,CAAC;AAC/E,OAAO,wBAAwB,MAAM,uDAAuD,CAAC;AAC7F,OAAO,EACN,2BAA2B,EAC3B,oBAAoB,EACpB,wBAAwB,EACxB,4BAA4B,EAC5B,gCAAgC,EAChC,qCAAqC,GACrC,MAAM,mCAAmC,CAAC;AAE3C,SAAS;AACT,OAAO,YAAY,MAAM,qCAAqC,CAAC;AAC/D,OAAO,mBAAmB,MAAM,4CAA4C,CAAC;AAC7E,OAAO,0BAA0B,MAAM,mDAAmD,CAAC;AAC3F,OAAO,oBAAoB,MAAM,6CAA6C,CAAC;AAE/E,kDAAkD;AAClD,OAAO,cAAc,MAAM,uCAAuC,CAAC;AAMnE,IAAK,sBAGJ;AAHD,WAAK,sBAAsB;IAC1B,qCAAW,CAAA;IACX,uCAAa,CAAA;AACd,CAAC,EAHI,sBAAsB,KAAtB,sBAAsB,QAG1B;AACD;;;;;;;;;;;;;;GAcG;AAkCH,IAAM,SAAS,iBAAf,MAAM,SAAU,SAAQ,UAAU;IA8CjC,aAAa;QACZ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;IAChD,CAAC;IAED;QACC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpD,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE;YACxC,YAAY,EAAE,CAAC,CAAC;YAChB,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;SACnD,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;IAChD,CAAC;IAED,UAAU;QACT,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9D,CAAC;IAED,SAAS;QACR,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,oBAAoB;QACzB,IAAI,IAAI,CAAC,WAAW,EAAE;YACrB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YAExC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC;SAC/C;QAED,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;IACzC,CAAC;IAED,UAAU;QACT,OAAO,IAAI,CAAC,eAAe,CAAQ,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,eAAe,CAAQ,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,WAAW;QACd,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC;IACrD,CAAC;IAED,iBAAiB;QAChB,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO,EAAE,CAAC;SACV;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC3C,OAAO,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB;QACrB,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE;YAClD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,OAAO,CAAC,KAAK,EAAE,CAAC;SAChB;QAED,IAAI,CAAC,iBAAiB,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAEtI,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,kBAAmB,CAAC,WAAW,CAAC;YACjE,IAAI,CAAC,WAAW,EAAE,CAAC;SACnB;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnB,IAAI,CAAC,aAAa,EAAE,CAAC;SACrB;IACF,CAAC;IAED,OAAO,CAAC,CAAsC;QAC7C,MAAM,MAAM,GAAG,CAAC,CAAC,MAAe,CAAC;QACjC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,6DAA6D;YAC7E,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAClC,OAAO;SACP;QAED,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YAChC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;SACnF;aAAM;YACN,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAC7C;IACF,CAAC;IAED,iBAAiB,CAAC,CAAsC,EAAE,KAAY;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAe,CAAC;QACjC,MAAM,iBAAiB,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,+CAA+C;QACjI,MAAM,cAAc,GAAG,iBAAiB,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,gFAAgF;QAChM,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,sDAAsD;QAEhG,IAAI,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;QAEhD,IAAI,CAAC,SAAS,CAAkC,cAAc,EAAE,EAAE,GAAG,EAAE,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,+BAA+B,CAAC,SAAgB;QAC/C,IAAI,SAAS,IAAI,CAAC,OAAO,EAAE,EAAE;YAC5B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,sFAAsF;YAE/H,UAAU,CAAC,GAAG,EAAE;gBACf,SAAS,CAAC,KAAK,EAAE,CAAC;YACnB,CAAC,EAAE,CAAC,CAAC,CAAC;SACN;IACF,CAAC;IAED;;;;;;;OAOG;IACH,WAAW,CAAC,KAAY,EAAE,sBAAgC;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACxC,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,cAAc,GAAG,CAAC,iBAAiB,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC/G,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAE1D,IAAI,sBAAsB,EAAE,EAAE,wEAAwE;YACrG,cAAc,GAAG,iBAAiB,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC;SACzF;aAAM,EAAE,0FAA0F;YAClG,cAAc,GAAG,iBAAiB,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC;SACzG;QAED,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;QAEvC,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,OAAO,SAAS,IAAI,SAAS,CAAC,QAAQ,EAAE;gBACvC,SAAS,GAAG,sBAAsB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,CAAC;aACzF;SACD;aAAM;YACN,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;SACjC;QAED,IAAI,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;QAEhD,IAAI,CAAC,SAAS,CAAkC,cAAc,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,UAAU,CAAC,CAAc;QACxB,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;QAErC,IAAI,CAAC,SAAS,CAAkC,cAAc,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,UAAU,CAAC,CAAgB;QAC1B,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE;YACpB,CAAC,CAAC,cAAc,EAAE,CAAC;SACnB;QAED,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE;YACjC,CAAC,CAAC,cAAc,EAAE,CAAC;YAEnB,OAAO,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;SAC5C;QAED,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE;YACnB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;SACzB;QAED,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;YAClB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;SACxB;QAED,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,qBAAqB,CAAC,CAAgB,EAAE,MAAoB;QAC3D,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;QAE1C,MAAM,MAAM,GAAG,CAAC,CAAC,MAAe,CAAC;QAEjC,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;YACpE,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SACjF;QAED,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE;YACrH,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1G;QAED,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE;YAC3D,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1D;QAED,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE;YAC1C,CAAC,CAAC,cAAc,EAAE,CAAC;YAEnB,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;SAC1C;QAED,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;YACpD,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAE,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7H,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;SAC1C;IACF,CAAC;IAED,WAAW,CAAC,MAAoB,EAAE,aAAsB;QACvD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAC9B,OAAO,CAAC,CAAC,CAAC;SACV;QAED,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpD,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,gBAAgB,CAAC,CAAgB;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAe,CAAC;QACjC,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE/C,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACzE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,eAAe,CAAC,CAAgB;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAe,CAAC;QACjC,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE/C,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACzE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,mBAAmB,CAAC,YAAmB,EAAE,MAAoB,EAAE,SAAkB;QAChF,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACnB,OAAO,CAAC,CAAC,CAAC;SACV;QACD,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;QAE9E,IAAI,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE;YAC/B,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;SAC9B;QACD,IAAI,SAAS,GAAG,CAAC,EAAE;YAClB,SAAS,GAAG,CAAC,CAAC;SACd;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,gBAAgB,CAAC,CAAgB,EAAE,YAAmB,EAAE,MAAoB,EAAE,SAAkB;QAC/F,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAE5E,CAAC,CAAC,cAAc,EAAE,CAAC;QAEnB,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;YACrB,OAAO;SACP;QAED,UAAU,CAAC,GAAG,EAAE;YACf,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC,EAAE,CAAC,CAAC,CAAC;QAEN,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,iBAAiB,CAAC,YAAmB,EAAE,MAAoB,EAAE,SAAkB;QAC9E,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;QAEhF,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,SAAS,KAAK,MAAM,CAAC,MAAM,EAAE;YACpD,OAAO;SACP;QAED,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC7B,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;QAClC,UAAU,CAAC,GAAG,EAAE;YACf,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC,EAAE,CAAC,CAAC,CAAC;QAEN,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,CAAa;QACnB,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,YAAY,CAAC,CAAa;QACzB,IAAK,CAAC,CAAC,MAAsB,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;YACxD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAe,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;gBACxB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACrC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;aAC5B;SACD;IACF,CAAC;IAED,qBAAqB,CAAC,MAAoB;QACzC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAC9B,OAAO;SACP;QAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,qBAAqB,CAAC,CAA6B,EAAE,WAAW,GAAG,IAAI;QACtE,MAAM,MAAM,GAAG,CAAC,CAAC,MAAe,CAAC;QACjC,IAAI,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;YACrC,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAEvD,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC9B,IAAI,KAAK,KAAK,MAAM,EAAE;oBACrB,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;iBACvB;YACF,CAAC,CAAC,CAAC;SACH;IACF,CAAC;IAED,cAAc,CAAC,YAAoC,EAAE,MAAoB;QACxE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjG,qEAAqE;QACrE,MAAM,cAAc,GAAG,CAAC,CAAiB,EAAE,EAAE;YAC5C,IAAI,CAAC,CAAC,aAAa,EAAE;gBACpB,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;aACnD;YAED,CAAC,CAAC,cAAc,EAAE,CAAC;QACpB,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QACxD,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACnC,QAAQ,CAAC,mBAAmB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,aAAa;QACZ,IAAI,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE;YAC3C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACtC;IACF,CAAC;IAED;;;;OAIG;IACH,WAAW;QACV,MAAM,4BAA4B,GAAG,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAC3K,IAAI,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE;YAC3C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,4BAA6B,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;SACzE;IACF,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,KAAY;QAC1B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC7B,OAAO;SACP;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAChD,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,CAAC;QAE3E,IAAI,SAAS,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,EAAE;YAC7C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,GAAG,CAAC,kBAAkB,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACxH;aAAM,IAAI,SAAS,CAAC,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE;YACtD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,kBAAkB,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC1H;IACF,CAAC;IAED,KAAK,CAAC,gBAAgB;QACrB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAExC,OAAO,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAED,IAAI,UAAU;QACb,OAAO,WAAS,CAAC,UAAU,CAAC,OAAO,CAAC,2BAA2B,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACpF,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;IACzE,CAAC;IAED,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAc,yBAAyB,CAAE,CAAC;IAChF,CAAC;IAED,IAAI,kBAAkB;QACrB,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAc,kCAAkC,CAAC,CAAC;IACxF,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAc,+BAA+B,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,WAAS,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,WAAS,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,eAAe;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACrB,OAAO,EAAE,CAAC;SACV;QAED,uDAAuD;QACvD,0DAA0D;QAC1D,2CAA2C;QAC3C,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACjC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACvC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;YAC3D,MAAM,SAAS,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC;YACjC,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC;YACnC,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC;YAClC,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC;YAEpC,KAAK,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC;YAE3F,OAAO,KAAK,CAAC,SAAS,CAAC;QACxB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO,CAAC;IACtF,CAAC;IAED,IAAI,qBAAqB;QACxB,OAAO,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF,CAAC;IAED;;OAEG;IACF,IAAI,sBAAsB;QAC1B,MAAM,iBAAiB,GAAG;YACzB,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,aAAa;YACtB,WAAW,EAAE,aAAa;SAC1B,CAAC;QAEF,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,OAAO,EAAE,CAAC;IAClB,CAAC;IAED,IAAI,eAAe;QAClB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,OAAO;QACV,OAAO;YACN,OAAO,EAAE;gBACR,oBAAoB,EAAE,IAAI;gBAC1B,8BAA8B,EAAE,IAAI,CAAC,QAAQ;gBAC7C,0BAA0B,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM;aACrD;YACD,OAAO,EAAE;gBACR,wBAAwB,EAAE,IAAI;gBAC9B,iCAAiC,EAAE,CAAC,IAAI,CAAC,SAAS;gBAClD,8BAA8B,EAAE,IAAI,CAAC,SAAS;aAC9C;YACD,iBAAiB,EAAE;gBAClB,4BAA4B,EAAE,IAAI;gBAClC,+BAA+B,EAAE,IAAI,CAAC,WAAW;gBACjD,gCAAgC,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO;gBACxE,8BAA8B,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,KAAK;gBACpE,gCAAgC,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO;gBACxE,oCAAoC,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,WAAW;aAChF;SACD,CAAC;IACH,CAAC;IAED,IAAI,MAAM;QACT,OAAO;YACN,OAAO,EAAE;gBACR,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,EAAE;aACpE;YACD,wBAAwB,EAAE;gBACzB,OAAO,EAAE,IAAI,CAAC,eAAe,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,MAAM;gBAClF,YAAY,EAAE,MAAM;aACpB;YACD,aAAa,EAAE;gBACd,YAAY,EAAE,MAAM;aACpB;YACD,kBAAkB,EAAE;gBACnB,iBAAiB,EAAE,MAAM;aACzB;SACD,CAAC;IACH,CAAC;IAED,gBAAgB;QACf,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC;QAE7C,IAAI,WAAW,KAAK,CAAC,EAAE;YACtB,OAAO,WAAS,CAAC,UAAU,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;SAClE;QAED,IAAI,WAAW,KAAK,CAAC,EAAE;YACtB,OAAO,WAAS,CAAC,UAAU,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;SACtE;QAED,OAAO,WAAS,CAAC,UAAU,CAAC,OAAO,CAAC,qCAAqC,EAAE,WAAW,CAAC,CAAC;IACzF,CAAC;IAED;;OAEG;IACH,eAAe;QACd,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,OAAO;SACP;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtD,SAAS,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ;QACpB,WAAS,CAAC,UAAU,GAAG,MAAM,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,UAAU;QACf,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC5D,OAAO,cAAe,CAAC,aAAa,CAAoB,0BAA0B,CAAE,CAAC;IACtF,CAAC;CACD,CAAA;AA5lBA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;2CACT;AAGnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;2CACT;AAQnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;2CACT;AAGnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oDACG;AAG9B;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;kDACR;AAUzB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;6CACtC;AAGxB;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;8CACZ;AAGrB;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;yCAC9C;AAGtB;IADC,IAAI,EAAE;oDACgC;AAtClC,SAAS;IAjCd,aAAa,CAAC;QACd,GAAG,EAAE,eAAe;QACpB,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,iBAAiB;QAC3B,MAAM,EAAE,YAAY;QACpB,gBAAgB,EAAE;YACjB,0BAA0B;YAC1B,oBAAoB;YACpB,cAAc;YACd,mBAAmB;SACnB;QACD,kBAAkB,EAAE,wBAAwB;QAC5C,YAAY,EAAE;YACb,iBAAiB;YACjB,IAAI;YACJ,gBAAgB;YAChB,KAAK;YACL,MAAM;SACN;KACD,CAAC;IAED,KAAK,CAAC,cAAc,EAAE;QACtB,MAAM,EAAE;YACP,GAAG,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC1B;KACD,CAAC;IAED,KAAK,CAAC,uBAAuB,EAAE;QAC/B,MAAM,EAAE;YACP,GAAG,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC1B;KACD,CAAC;GACI,SAAS,CA8lBd;AAED,SAAS,CAAC,MAAM,EAAE,CAAC;AAEnB,eAAe,SAAS,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport type { ClassMap } from \"@ui5/webcomponents-base/dist/types.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport ScrollEnablement from \"@ui5/webcomponents-base/dist/delegate/ScrollEnablement.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n\tisSpace,\n\tisSpaceCtrl,\n\tisSpaceShift,\n\tisLeftCtrl,\n\tisRightCtrl,\n\tisUpCtrl,\n\tisDownCtrl,\n\tisUpShift,\n\tisDownShift,\n\tisLeftShift,\n\tisRightShift,\n\tisLeftShiftCtrl,\n\tisRightShiftCtrl,\n\tisEnd,\n\tisHome,\n\tisHomeShift,\n\tisEndShift,\n\tisHomeCtrl,\n\tisEndCtrl,\n\tisRight,\n\tisLeft,\n\tisUp,\n\tisDown,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport List from \"./List.js\";\nimport Title from \"./Title.js\";\nimport Button from \"./Button.js\";\nimport StandardListItem from \"./StandardListItem.js\";\nimport type Token from \"./Token.js\";\nimport type { TokenDeleteEventDetail } from \"./Token.js\";\nimport TokenizerTemplate from \"./generated/templates/TokenizerTemplate.lit.js\";\nimport TokenizerPopoverTemplate from \"./generated/templates/TokenizerPopoverTemplate.lit.js\";\nimport {\n\tMULTIINPUT_SHOW_MORE_TOKENS,\n\tTOKENIZER_ARIA_LABEL,\n\tTOKENIZER_POPOVER_REMOVE,\n\tTOKENIZER_ARIA_CONTAIN_TOKEN,\n\tTOKENIZER_ARIA_CONTAIN_ONE_TOKEN,\n\tTOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport TokenizerCss from \"./generated/themes/Tokenizer.css.js\";\nimport TokenizerPopoverCss from \"./generated/themes/TokenizerPopover.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\nimport ValueStateMessageCss from \"./generated/themes/ValueStateMessage.css.js\";\n\n// reuse suggestions focus styling for NMore popup\nimport SuggestionsCss from \"./generated/themes/Suggestions.css.js\";\n\ntype TokenizerTokenDeleteEventDetail = {\n\tref: Token;\n}\n\nenum ClipboardDataOperation {\n\tcut = \"cut\",\n\tcopy = \"copy\",\n}\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * A container for tokens.\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webc.main.Tokenizer\n * @extends sap.ui.webc.base.UI5Element\n * @tagname ui5-tokenizer\n * @usestextcontent\n * @private\n */\n@customElement({\n\ttag: \"ui5-tokenizer\",\n\tlanguageAware: true,\n\trenderer: litRender,\n\ttemplate: TokenizerTemplate,\n\tstyles: TokenizerCss,\n\tstaticAreaStyles: [\n\t\tResponsivePopoverCommonCss,\n\t\tValueStateMessageCss,\n\t\tSuggestionsCss,\n\t\tTokenizerPopoverCss,\n\t],\n\tstaticAreaTemplate: TokenizerPopoverTemplate,\n\tdependencies: [\n\t\tResponsivePopover,\n\t\tList,\n\t\tStandardListItem,\n\t\tTitle,\n\t\tButton,\n\t],\n})\n\n@event(\"token-delete\", {\n\tdetail: {\n\t\tref: { type: HTMLElement },\n\t},\n})\n\n@event(\"show-more-items-press\", {\n\tdetail: {\n\t\tref: { type: HTMLElement },\n\t},\n})\nclass Tokenizer extends UI5Element {\n\t@property({ type: Boolean })\n\tshowMore!: boolean;\n\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Indicates if the tokenizer should show all tokens or n more label instead\n\t *\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\texpanded!: boolean;\n\n\t@property({ type: Object })\n\tmorePopoverOpener!: Tokenizer;\n\n\t@property({ validator: Integer })\n\tpopoverMinWidth?: number;\n\n\t/**\n\t * Indicates the value state of the related input component.\n\t *\n\t * @type {sap.ui.webc.base.types.ValueState}\n\t * @defaultvalue \"None\"\n\t * @private\n\t */\n\t@property({ type: ValueState, defaultValue: ValueState.None })\n\tvalueState!: ValueState;\n\n\t@property({ validator: Integer })\n\t_nMoreCount!: number;\n\n\t@slot({ type: HTMLElement, \"default\": true, individualSlots: true })\n\ttokens!: Array<Token>;\n\n\t@slot()\n\tvalueStateMessage!: Array<HTMLElement>;\n\n\tstatic i18nBundle: I18nBundle;\n\t_resizeHandler: ResizeObserverCallback;\n\t_itemNav: ItemNavigation;\n\t_scrollEnablement: ScrollEnablement;\n\t_expandedScrollWidth?: number;\n\n\t_handleResize() {\n\t\tthis._nMoreCount = this.overflownTokens.length;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._resizeHandler = this._handleResize.bind(this);\n\n\t\tthis._itemNav = new ItemNavigation(this, {\n\t\t\tcurrentIndex: -1,\n\t\t\tgetItemsCallback: this._getVisibleTokens.bind(this),\n\t\t});\n\n\t\tthis._scrollEnablement = new ScrollEnablement(this);\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._nMoreCount = this.overflownTokens.length;\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this.contentDom, this._resizeHandler);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this.contentDom, this._resizeHandler);\n\t}\n\n\tasync _openOverflowPopover() {\n\t\tif (this.showPopover) {\n\t\t\tconst popover = await this.getPopover();\n\n\t\t\tpopover.showAt(this.morePopoverOpener || this);\n\t\t}\n\n\t\tthis.fireEvent(\"show-more-items-press\");\n\t}\n\n\t_getTokens() {\n\t\treturn this.getSlottedNodes<Token>(\"tokens\");\n\t}\n\n\tget _tokens() {\n\t\treturn this.getSlottedNodes<Token>(\"tokens\");\n\t}\n\n\tget showPopover() {\n\t\treturn !!Object.keys(this.morePopoverOpener).length;\n\t}\n\n\t_getVisibleTokens() {\n\t\tif (this.disabled) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn this._tokens.filter((token, index) => {\n\t\t\treturn index < (this._tokens.length - this._nMoreCount);\n\t\t});\n\t}\n\n\tasync onAfterRendering() {\n\t\tif (this.showPopover && !this._getTokens().length) {\n\t\t\tconst popover = await this.getPopover();\n\t\t\tpopover.close();\n\t\t}\n\n\t\tthis._scrollEnablement.scrollContainer = (this.expanded || !this.narrowContentDom) ? this.expandedContentDom! : this.narrowContentDom;\n\n\t\tif (this.expanded) {\n\t\t\tthis._expandedScrollWidth = this.expandedContentDom!.scrollWidth;\n\t\t\tthis.scrollToEnd();\n\t\t}\n\n\t\tif (!this.expanded) {\n\t\t\tthis.scrollToStart();\n\t\t}\n\t}\n\n\t_delete(e: CustomEvent<TokenDeleteEventDetail>) {\n\t\tconst target = e.target as Token;\n\t\tif (!e.detail) { // if there are no details, the event is triggered by a click\n\t\t\tthis._tokenClickDelete(e, target);\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._selectedTokens.length) {\n\t\t\tthis._selectedTokens.forEach(token => this.deleteToken(token, e.detail.backSpace));\n\t\t} else {\n\t\t\tthis.deleteToken(target, e.detail.backSpace);\n\t\t}\n\t}\n\n\t_tokenClickDelete(e: CustomEvent<TokenDeleteEventDetail>, token: Token) {\n\t\tconst tokens = this._getVisibleTokens();\n\t\tconst target = e.target as Token;\n\t\tconst deletedTokenIndex = token ? tokens.indexOf(token) : tokens.indexOf(target); // The index of the token that just got deleted\n\t\tconst nextTokenIndex = deletedTokenIndex === tokens.length - 1 ? deletedTokenIndex - 1 : deletedTokenIndex + 1; // The index of the next token that needs to be focused next due to the deletion\n\t\tconst nextToken = tokens[nextTokenIndex]; // if the last item was deleted this will be undefined\n\n\t\tthis._handleCurrentItemAfterDeletion(nextToken);\n\n\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { ref: token || target });\n\t}\n\n\t_handleCurrentItemAfterDeletion(nextToken: Token) {\n\t\tif (nextToken && !isPhone()) {\n\t\t\tthis._itemNav.setCurrentItem(nextToken); // update the item navigation with the new token or undefined, if the last was deleted\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tnextToken.focus();\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\t/**\n\t * Removes a token from the Tokenizer.\n\t * This method should only be used by ui5-multi-combobox and ui5-multi-input\n\t *\n\t * @protected\n\t * @param token Token to be focused.\n\t * @param forwardFocusToPrevious Indicates whether the focus will be forwarded to previous or next token after deletion.\n\t */\n\tdeleteToken(token: Token, forwardFocusToPrevious?: boolean) {\n\t\tconst tokens = this._getVisibleTokens();\n\t\tconst deletedTokenIndex = tokens.indexOf(token);\n\t\tlet nextTokenIndex = (deletedTokenIndex === tokens.length - 1) ? deletedTokenIndex - 1 : deletedTokenIndex + 1;\n\t\tconst notSelectedTokens = tokens.filter(t => !t.selected);\n\n\t\tif (forwardFocusToPrevious) { // on backspace key select the previous item (unless deleting the first)\n\t\t\tnextTokenIndex = deletedTokenIndex === 0 ? deletedTokenIndex + 1 : deletedTokenIndex - 1;\n\t\t} else { // on delete key or mouse click on the \"x\" select the next item (unless deleting the last)\n\t\t\tnextTokenIndex = deletedTokenIndex === tokens.length - 1 ? deletedTokenIndex - 1 : deletedTokenIndex + 1;\n\t\t}\n\n\t\tlet nextToken = tokens[nextTokenIndex];\n\n\t\tif (notSelectedTokens.length > 1) {\n\t\t\twhile (nextToken && nextToken.selected) {\n\t\t\t\tnextToken = forwardFocusToPrevious ? tokens[--nextTokenIndex] : tokens[++nextTokenIndex];\n\t\t\t}\n\t\t} else {\n\t\t\tnextToken = notSelectedTokens[0];\n\t\t}\n\n\t\tthis._handleCurrentItemAfterDeletion(nextToken);\n\n\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { ref: token });\n\t}\n\n\titemDelete(e: CustomEvent) {\n\t\tconst token = e.detail.item.tokenRef;\n\n\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { ref: token });\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isSpaceShift(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isSpace(e) || isSpaceCtrl(e)) {\n\t\t\te.preventDefault();\n\n\t\t\treturn this._handleTokenSelection(e, false);\n\t\t}\n\n\t\tif (isHomeShift(e)) {\n\t\t\tthis._handleHomeShift(e);\n\t\t}\n\n\t\tif (isEndShift(e)) {\n\t\t\tthis._handleEndShift(e);\n\t\t}\n\n\t\tthis._handleItemNavigation(e, this._tokens);\n\t}\n\n\t_handleItemNavigation(e: KeyboardEvent, tokens: Array<Token>) {\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\n\t\tconst target = e.target as Token;\n\n\t\tif (isLeftCtrl(e) || isRightCtrl(e) || isDownCtrl(e) || isUpCtrl(e)) {\n\t\t\treturn this._handleArrowCtrl(e, target, tokens, isRightCtrl(e) || isDownCtrl(e));\n\t\t}\n\n\t\tif (isLeftShift(e) || isRightShift(e) || isUpShift(e) || isDownShift(e) || isLeftShiftCtrl(e) || isRightShiftCtrl(e)) {\n\t\t\te.preventDefault();\n\t\t\treturn this._handleArrowShift(target, tokens, (isRightShift(e) || isRightShiftCtrl(e) || isDownShift(e)));\n\t\t}\n\n\t\tif (isHome(e) || isEnd(e) || isHomeCtrl(e) || isEndCtrl(e)) {\n\t\t\te.preventDefault();\n\t\t\treturn this._handleHome(tokens, isEnd(e) || isEndCtrl(e));\n\t\t}\n\n\t\tif (isCtrl && e.key.toLowerCase() === \"a\") {\n\t\t\te.preventDefault();\n\n\t\t\treturn this._toggleTokenSelection(tokens);\n\t\t}\n\n\t\tif (isLeft(e) || isRight(e) || isUp(e) || isDown(e)) {\n\t\t\tconst nextTokenIdx = this._calcNextTokenIndex(this._tokens.find(token => token.focused)!, tokens, (isRight(e) || isDown(e)));\n\t\t\tthis._scrollToToken(tokens[nextTokenIdx]);\n\t\t}\n\t}\n\n\t_handleHome(tokens: Array<Token>, endKeyPressed: boolean) {\n\t\tif (!tokens || !tokens.length) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tconst index = endKeyPressed ? tokens.length - 1 : 0;\n\n\t\ttokens[index].focus();\n\t\tthis._itemNav.setCurrentItem(tokens[index]);\n\t}\n\n\t_handleHomeShift(e: KeyboardEvent) {\n\t\tconst tokens = this.tokens;\n\t\tconst target = e.target as Token;\n\t\tconst currentTokenIdx = tokens.indexOf(target);\n\n\t\ttokens.filter((token, index) => index <= currentTokenIdx).forEach(token => {\n\t\t\ttoken.selected = true;\n\t\t});\n\n\t\ttokens[0].focus();\n\t\tthis._itemNav.setCurrentItem(tokens[0]);\n\t}\n\n\t_handleEndShift(e: KeyboardEvent) {\n\t\tconst tokens = this.tokens;\n\t\tconst target = e.target as Token;\n\t\tconst currentTokenIdx = tokens.indexOf(target);\n\n\t\ttokens.filter((token, index) => index >= currentTokenIdx).forEach(token => {\n\t\t\ttoken.selected = true;\n\t\t});\n\n\t\ttokens[tokens.length - 1].focus();\n\t\tthis._itemNav.setCurrentItem(tokens[tokens.length - 1]);\n\t}\n\n\t_calcNextTokenIndex(focusedToken: Token, tokens: Array<Token>, backwards: boolean) {\n\t\tif (!tokens.length) {\n\t\t\treturn -1;\n\t\t}\n\t\tconst focusedTokenIndex = tokens.indexOf(focusedToken);\n\t\tlet nextIndex = backwards ? (focusedTokenIndex + 1) : (focusedTokenIndex - 1);\n\n\t\tif (nextIndex >= tokens.length) {\n\t\t\tnextIndex = tokens.length - 1;\n\t\t}\n\t\tif (nextIndex < 0) {\n\t\t\tnextIndex = 0;\n\t\t}\n\n\t\treturn nextIndex;\n\t}\n\n\t_handleArrowCtrl(e: KeyboardEvent, focusedToken: Token, tokens: Array<Token>, backwards: boolean) {\n\t\tconst nextIndex = this._calcNextTokenIndex(focusedToken, tokens, backwards);\n\n\t\te.preventDefault();\n\n\t\tif (nextIndex === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\ttokens[nextIndex].focus();\n\t\t}, 0);\n\n\t\tthis._scrollToToken(tokens[nextIndex]);\n\t\tthis._itemNav.setCurrentItem(tokens[nextIndex]);\n\t}\n\n\t_handleArrowShift(focusedToken: Token, tokens: Array<Token>, backwards: boolean) {\n\t\tconst focusedTokenIndex = tokens.indexOf(focusedToken);\n\t\tconst nextIndex = backwards ? (focusedTokenIndex + 1) : (focusedTokenIndex - 1);\n\n\t\tif (nextIndex === -1 || nextIndex === tokens.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tfocusedToken.selected = true;\n\t\ttokens[nextIndex].selected = true;\n\t\tsetTimeout(() => {\n\t\t\ttokens[nextIndex].focus();\n\t\t}, 0);\n\n\t\tthis._scrollToToken(tokens[nextIndex]);\n\t\tthis._itemNav.setCurrentItem(tokens[nextIndex]);\n\t}\n\n\t_click(e: MouseEvent) {\n\t\tthis._handleTokenSelection(e);\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\tif ((e.target as HTMLElement).hasAttribute(\"ui5-token\")) {\n\t\t\tconst target = e.target as Token;\n\t\t\tif (!target.toBeDeleted) {\n\t\t\t\tthis._itemNav.setCurrentItem(target);\n\t\t\t\tthis._scrollToToken(target);\n\t\t\t}\n\t\t}\n\t}\n\n\t_toggleTokenSelection(tokens: Array<Token>) {\n\t\tif (!tokens || !tokens.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tokensAreSelected = tokens.every(token => token.selected);\n\t\ttokens.forEach(token => { token.selected = !tokensAreSelected; });\n\t}\n\n\t_handleTokenSelection(e: KeyboardEvent | MouseEvent, deselectAll = true) {\n\t\tconst target = e.target as Token;\n\t\tif (target.hasAttribute(\"ui5-token\")) {\n\t\t\tconst deselectTokens = deselectAll ? this._tokens : [];\n\n\t\t\tdeselectTokens.forEach(token => {\n\t\t\t\tif (token !== target) {\n\t\t\t\t\ttoken.selected = false;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\t_fillClipboard(shortcutName: ClipboardDataOperation, tokens: Array<Token>) {\n\t\tconst tokensTexts = tokens.filter(token => token.selected).map(token => token.text).join(\"\\r\\n\");\n\n\t\t/* fill clipboard with tokens' texts so parent can handle creation */\n\t\tconst cutToClipboard = (e: ClipboardEvent) => {\n\t\t\tif (e.clipboardData) {\n\t\t\t\te.clipboardData.setData(\"text/plain\", tokensTexts);\n\t\t\t}\n\n\t\t\te.preventDefault();\n\t\t};\n\n\t\tdocument.addEventListener(shortcutName, cutToClipboard);\n\t\tdocument.execCommand(shortcutName);\n\t\tdocument.removeEventListener(shortcutName, cutToClipboard);\n\t}\n\n\t/**\n\t * Scrolls the container of the tokens to its beginning.\n\t * This method is used by MultiInput and MultiComboBox.\n\t * @private\n\t */\n\tscrollToStart() {\n\t\tif (this._scrollEnablement.scrollContainer) {\n\t\t\tthis._scrollEnablement.scrollTo(0, 0);\n\t\t}\n\t}\n\n\t/**\n\t * Scrolls the container of the tokens to its end when expanded.\n\t * This method is used by MultiInput and MultiComboBox.\n\t * @private\n\t */\n\tscrollToEnd() {\n\t\tconst expandedTokenizerScrollWidth = this.expandedContentDom && (this.effectiveDir !== \"rtl\" ? this.expandedContentDom.scrollWidth : -this.expandedContentDom.scrollWidth);\n\t\tif (this._scrollEnablement.scrollContainer) {\n\t\t\tthis._scrollEnablement.scrollTo(expandedTokenizerScrollWidth!, 0, 5, 10);\n\t\t}\n\t}\n\n\t/**\n\t * Scrolls token to the visible area of the container.\n\t * Adds 4 pixels to the scroll position to ensure padding and border visibility on both ends\n\t * @private\n\t */\n\t_scrollToToken(token: Token) {\n\t\tif (!this.expandedContentDom) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tokenRect = token.getBoundingClientRect();\n\t\tconst tokenContainerRect = this.expandedContentDom.getBoundingClientRect();\n\n\t\tif (tokenRect.left < tokenContainerRect.left) {\n\t\t\tthis._scrollEnablement.scrollTo(this.expandedContentDom.scrollLeft - (tokenContainerRect.left - tokenRect.left + 5), 0);\n\t\t} else if (tokenRect.right > tokenContainerRect.right) {\n\t\t\tthis._scrollEnablement.scrollTo(this.expandedContentDom.scrollLeft + (tokenRect.right - tokenContainerRect.right + 5), 0);\n\t\t}\n\t}\n\n\tasync closeMorePopover() {\n\t\tconst popover = await this.getPopover();\n\n\t\tpopover.close();\n\t}\n\n\tget _nMoreText() {\n\t\treturn Tokenizer.i18nBundle.getText(MULTIINPUT_SHOW_MORE_TOKENS, this._nMoreCount);\n\t}\n\n\tget showNMore() {\n\t\treturn !this.expanded && this.showMore && !!this.overflownTokens.length;\n\t}\n\n\tget contentDom() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-tokenizer--content\")!;\n\t}\n\n\tget expandedContentDom() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-tokenizer-expanded--content\");\n\t}\n\n\tget narrowContentDom() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-tokenizer-nmore--content\");\n\t}\n\n\tget tokenizerLabel() {\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_LABEL);\n\t}\n\n\tget morePopoverTitle() {\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_POPOVER_REMOVE);\n\t}\n\n\tget overflownTokens() {\n\t\tif (!this.contentDom) {\n\t\t\treturn [];\n\t\t}\n\n\t\t// Reset the overflow prop of the tokens first in order\n\t\t// to use their dimensions for calculation because already\n\t\t// hidden tokens are set to 'display: none'\n\t\tthis._getTokens().forEach(token => {\n\t\t\ttoken.overflows = false;\n\t\t});\n\n\t\treturn this._getTokens().filter(token => {\n\t\t\tconst parentRect = this.contentDom.getBoundingClientRect();\n\t\t\tconst tokenRect = token.getBoundingClientRect();\n\t\t\tconst tokenEnd = tokenRect.right;\n\t\t\tconst parentEnd = parentRect.right;\n\t\t\tconst tokenStart = tokenRect.left;\n\t\t\tconst parentStart = parentRect.left;\n\n\t\t\ttoken.overflows = !this.expanded && ((tokenStart < parentStart) || (tokenEnd > parentEnd));\n\n\t\t\treturn token.overflows;\n\t\t});\n\t}\n\n\tget hasValueState() {\n\t\treturn this.valueState === ValueState.None || this.valueState === ValueState.Success;\n\t}\n\n\tget valueStateMessageText() {\n\t\treturn this.getSlottedNodes(\"valueStateMessage\").map(el => el.cloneNode(true));\n\t}\n\n\t/**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\t get _valueStateMessageIcon() {\n\t\tconst iconPerValueState = {\n\t\t\tError: \"error\",\n\t\t\tWarning: \"alert\",\n\t\t\tSuccess: \"sys-enter-2\",\n\t\t\tInformation: \"information\",\n\t\t};\n\n\t\treturn this.valueState !== ValueState.None ? iconPerValueState[this.valueState] : \"\";\n\t}\n\n\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget _selectedTokens() {\n\t\treturn this._getTokens().filter(token => token.selected);\n\t}\n\n\tget classes(): ClassMap {\n\t\treturn {\n\t\t\twrapper: {\n\t\t\t\t\"ui5-tokenizer-root\": true,\n\t\t\t\t\"ui5-tokenizer-nmore--wrapper\": this.showMore,\n\t\t\t\t\"ui5-tokenizer-no-padding\": !this._getTokens().length,\n\t\t\t},\n\t\t\tcontent: {\n\t\t\t\t\"ui5-tokenizer--content\": true,\n\t\t\t\t\"ui5-tokenizer-expanded--content\": !this.showNMore,\n\t\t\t\t\"ui5-tokenizer-nmore--content\": this.showNMore,\n\t\t\t},\n\t\t\tpopoverValueState: {\n\t\t\t\t\"ui5-valuestatemessage-root\": true,\n\t\t\t\t\"ui5-responsive-popover-header\": this.showPopover,\n\t\t\t\t\"ui5-valuestatemessage--success\": this.valueState === ValueState.Success,\n\t\t\t\t\"ui5-valuestatemessage--error\": this.valueState === ValueState.Error,\n\t\t\t\t\"ui5-valuestatemessage--warning\": this.valueState === ValueState.Warning,\n\t\t\t\t\"ui5-valuestatemessage--information\": this.valueState === ValueState.Information,\n\t\t\t},\n\t\t};\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tpopover: {\n\t\t\t\t\"min-width\": this.popoverMinWidth ? `${this.popoverMinWidth}px` : \"\",\n\t\t\t},\n\t\t\tpopoverValueStateMessage: {\n\t\t\t\t\"width\": this.popoverMinWidth && !isPhone() ? `${this.popoverMinWidth}px` : \"100%\",\n\t\t\t\t\"min-height\": \"2rem\",\n\t\t\t},\n\t\t\tpopoverHeader: {\n\t\t\t\t\"min-height\": \"2rem\",\n\t\t\t},\n\t\t\tpopoverHeaderTitle: {\n\t\t\t\t\"justify-content\": \"left\",\n\t\t\t},\n\t\t};\n\t}\n\n\t_tokensCountText() {\n\t\tconst iTokenCount = this._getTokens().length;\n\n\t\tif (iTokenCount === 0) {\n\t\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_CONTAIN_TOKEN);\n\t\t}\n\n\t\tif (iTokenCount === 1) {\n\t\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_CONTAIN_ONE_TOKEN);\n\t\t}\n\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS, iTokenCount);\n\t}\n\n\t/**\n\t * @protected\n\t */\n\t_focusLastToken() {\n\t\tif (this.tokens.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lastToken = this.tokens[this.tokens.length - 1];\n\t\tlastToken.focus();\n\t\tthis._itemNav.setCurrentItem(lastToken);\n\t}\n\n\tstatic async onDefine() {\n\t\tTokenizer.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tasync getPopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n}\n\nTokenizer.define();\n\nexport default Tokenizer;\nexport { ClipboardDataOperation };\nexport type { TokenizerTokenDeleteEventDetail };\n"]}
|
|
1
|
+
{"version":3,"file":"Tokenizer.js","sourceRoot":"","sources":["../src/Tokenizer.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport type { ClassMap } from \"@ui5/webcomponents-base/dist/types.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport ScrollEnablement from \"@ui5/webcomponents-base/dist/delegate/ScrollEnablement.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n\tisSpace,\n\tisSpaceCtrl,\n\tisSpaceShift,\n\tisLeftCtrl,\n\tisRightCtrl,\n\tisUpCtrl,\n\tisDownCtrl,\n\tisUpShift,\n\tisDownShift,\n\tisLeftShift,\n\tisRightShift,\n\tisLeftShiftCtrl,\n\tisRightShiftCtrl,\n\tisEnd,\n\tisHome,\n\tisHomeShift,\n\tisEndShift,\n\tisHomeCtrl,\n\tisEndCtrl,\n\tisRight,\n\tisLeft,\n\tisUp,\n\tisDown,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport List from \"./List.js\";\nimport Title from \"./Title.js\";\nimport Button from \"./Button.js\";\nimport StandardListItem from \"./StandardListItem.js\";\nimport type Token from \"./Token.js\";\nimport type { TokenDeleteEventDetail } from \"./Token.js\";\nimport TokenizerTemplate from \"./generated/templates/TokenizerTemplate.lit.js\";\nimport TokenizerPopoverTemplate from \"./generated/templates/TokenizerPopoverTemplate.lit.js\";\nimport {\n\tMULTIINPUT_SHOW_MORE_TOKENS,\n\tTOKENIZER_ARIA_LABEL,\n\tTOKENIZER_POPOVER_REMOVE,\n\tTOKENIZER_ARIA_CONTAIN_TOKEN,\n\tTOKENIZER_ARIA_CONTAIN_ONE_TOKEN,\n\tTOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport TokenizerCss from \"./generated/themes/Tokenizer.css.js\";\nimport TokenizerPopoverCss from \"./generated/themes/TokenizerPopover.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\nimport ValueStateMessageCss from \"./generated/themes/ValueStateMessage.css.js\";\n\n// reuse suggestions focus styling for NMore popup\nimport SuggestionsCss from \"./generated/themes/Suggestions.css.js\";\n\ntype TokenizerTokenDeleteEventDetail = {\n\tref: Token;\n}\n\nenum ClipboardDataOperation {\n\tcut = \"cut\",\n\tcopy = \"copy\",\n}\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * A container for tokens.\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webc.main.Tokenizer\n * @extends sap.ui.webc.base.UI5Element\n * @tagname ui5-tokenizer\n * @usestextcontent\n * @private\n */\n@customElement({\n\ttag: \"ui5-tokenizer\",\n\tlanguageAware: true,\n\trenderer: litRender,\n\ttemplate: TokenizerTemplate,\n\tstyles: TokenizerCss,\n\tstaticAreaStyles: [\n\t\tResponsivePopoverCommonCss,\n\t\tValueStateMessageCss,\n\t\tSuggestionsCss,\n\t\tTokenizerPopoverCss,\n\t],\n\tstaticAreaTemplate: TokenizerPopoverTemplate,\n\tdependencies: [\n\t\tResponsivePopover,\n\t\tList,\n\t\tStandardListItem,\n\t\tTitle,\n\t\tButton,\n\t],\n})\n\n@event(\"token-delete\", {\n\tdetail: {\n\t\tref: { type: HTMLElement },\n\t},\n})\n\n@event(\"show-more-items-press\", {\n\tdetail: {\n\t\tref: { type: HTMLElement },\n\t},\n})\nclass Tokenizer extends UI5Element {\n\t@property({ type: Boolean })\n\tshowMore!: boolean;\n\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Indicates if the tokenizer should show all tokens or n more label instead\n\t *\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\texpanded!: boolean;\n\n\t@property({ type: Object })\n\tmorePopoverOpener!: Tokenizer;\n\n\t@property({ validator: Integer })\n\tpopoverMinWidth?: number;\n\n\t/**\n\t * Indicates the value state of the related input component.\n\t *\n\t * @type {sap.ui.webc.base.types.ValueState}\n\t * @defaultvalue \"None\"\n\t * @private\n\t */\n\t@property({ type: ValueState, defaultValue: ValueState.None })\n\tvalueState!: `${ValueState}`;\n\n\t@property({ validator: Integer })\n\t_nMoreCount!: number;\n\n\t@slot({ type: HTMLElement, \"default\": true, individualSlots: true })\n\ttokens!: Array<Token>;\n\n\t@slot()\n\tvalueStateMessage!: Array<HTMLElement>;\n\n\tstatic i18nBundle: I18nBundle;\n\t_resizeHandler: ResizeObserverCallback;\n\t_itemNav: ItemNavigation;\n\t_scrollEnablement: ScrollEnablement;\n\t_expandedScrollWidth?: number;\n\n\t_handleResize() {\n\t\tthis._nMoreCount = this.overflownTokens.length;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._resizeHandler = this._handleResize.bind(this);\n\n\t\tthis._itemNav = new ItemNavigation(this, {\n\t\t\tcurrentIndex: -1,\n\t\t\tgetItemsCallback: this._getVisibleTokens.bind(this),\n\t\t});\n\n\t\tthis._scrollEnablement = new ScrollEnablement(this);\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._nMoreCount = this.overflownTokens.length;\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this.contentDom, this._resizeHandler);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this.contentDom, this._resizeHandler);\n\t}\n\n\tasync _openOverflowPopover() {\n\t\tif (this.showPopover) {\n\t\t\tconst popover = await this.getPopover();\n\n\t\t\tpopover.showAt(this.morePopoverOpener || this);\n\t\t}\n\n\t\tthis.fireEvent(\"show-more-items-press\");\n\t}\n\n\t_getTokens() {\n\t\treturn this.getSlottedNodes<Token>(\"tokens\");\n\t}\n\n\tget _tokens() {\n\t\treturn this.getSlottedNodes<Token>(\"tokens\");\n\t}\n\n\tget showPopover() {\n\t\treturn !!Object.keys(this.morePopoverOpener).length;\n\t}\n\n\t_getVisibleTokens() {\n\t\tif (this.disabled) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn this._tokens.filter((token, index) => {\n\t\t\treturn index < (this._tokens.length - this._nMoreCount);\n\t\t});\n\t}\n\n\tasync onAfterRendering() {\n\t\tif (this.showPopover && !this._getTokens().length) {\n\t\t\tconst popover = await this.getPopover();\n\t\t\tpopover.close();\n\t\t}\n\n\t\tthis._scrollEnablement.scrollContainer = (this.expanded || !this.narrowContentDom) ? this.expandedContentDom! : this.narrowContentDom;\n\n\t\tif (this.expanded) {\n\t\t\tthis._expandedScrollWidth = this.expandedContentDom!.scrollWidth;\n\t\t\tthis.scrollToEnd();\n\t\t}\n\n\t\tif (!this.expanded) {\n\t\t\tthis.scrollToStart();\n\t\t}\n\t}\n\n\t_delete(e: CustomEvent<TokenDeleteEventDetail>) {\n\t\tconst target = e.target as Token;\n\t\tif (!e.detail) { // if there are no details, the event is triggered by a click\n\t\t\tthis._tokenClickDelete(e, target);\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._selectedTokens.length) {\n\t\t\tthis._selectedTokens.forEach(token => this.deleteToken(token, e.detail.backSpace));\n\t\t} else {\n\t\t\tthis.deleteToken(target, e.detail.backSpace);\n\t\t}\n\t}\n\n\t_tokenClickDelete(e: CustomEvent<TokenDeleteEventDetail>, token: Token) {\n\t\tconst tokens = this._getVisibleTokens();\n\t\tconst target = e.target as Token;\n\t\tconst deletedTokenIndex = token ? tokens.indexOf(token) : tokens.indexOf(target); // The index of the token that just got deleted\n\t\tconst nextTokenIndex = deletedTokenIndex === tokens.length - 1 ? deletedTokenIndex - 1 : deletedTokenIndex + 1; // The index of the next token that needs to be focused next due to the deletion\n\t\tconst nextToken = tokens[nextTokenIndex]; // if the last item was deleted this will be undefined\n\n\t\tthis._handleCurrentItemAfterDeletion(nextToken);\n\n\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { ref: token || target });\n\t}\n\n\t_handleCurrentItemAfterDeletion(nextToken: Token) {\n\t\tif (nextToken && !isPhone()) {\n\t\t\tthis._itemNav.setCurrentItem(nextToken); // update the item navigation with the new token or undefined, if the last was deleted\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tnextToken.focus();\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\t/**\n\t * Removes a token from the Tokenizer.\n\t * This method should only be used by ui5-multi-combobox and ui5-multi-input\n\t *\n\t * @protected\n\t * @param token Token to be focused.\n\t * @param forwardFocusToPrevious Indicates whether the focus will be forwarded to previous or next token after deletion.\n\t */\n\tdeleteToken(token: Token, forwardFocusToPrevious?: boolean) {\n\t\tconst tokens = this._getVisibleTokens();\n\t\tconst deletedTokenIndex = tokens.indexOf(token);\n\t\tlet nextTokenIndex = (deletedTokenIndex === tokens.length - 1) ? deletedTokenIndex - 1 : deletedTokenIndex + 1;\n\t\tconst notSelectedTokens = tokens.filter(t => !t.selected);\n\n\t\tif (forwardFocusToPrevious) { // on backspace key select the previous item (unless deleting the first)\n\t\t\tnextTokenIndex = deletedTokenIndex === 0 ? deletedTokenIndex + 1 : deletedTokenIndex - 1;\n\t\t} else { // on delete key or mouse click on the \"x\" select the next item (unless deleting the last)\n\t\t\tnextTokenIndex = deletedTokenIndex === tokens.length - 1 ? deletedTokenIndex - 1 : deletedTokenIndex + 1;\n\t\t}\n\n\t\tlet nextToken = tokens[nextTokenIndex];\n\n\t\tif (notSelectedTokens.length > 1) {\n\t\t\twhile (nextToken && nextToken.selected) {\n\t\t\t\tnextToken = forwardFocusToPrevious ? tokens[--nextTokenIndex] : tokens[++nextTokenIndex];\n\t\t\t}\n\t\t} else {\n\t\t\tnextToken = notSelectedTokens[0];\n\t\t}\n\n\t\tthis._handleCurrentItemAfterDeletion(nextToken);\n\n\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { ref: token });\n\t}\n\n\titemDelete(e: CustomEvent) {\n\t\tconst token = e.detail.item.tokenRef;\n\n\t\tthis.fireEvent<TokenizerTokenDeleteEventDetail>(\"token-delete\", { ref: token });\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isSpaceShift(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isSpace(e) || isSpaceCtrl(e)) {\n\t\t\te.preventDefault();\n\n\t\t\treturn this._handleTokenSelection(e, false);\n\t\t}\n\n\t\tif (isHomeShift(e)) {\n\t\t\tthis._handleHomeShift(e);\n\t\t}\n\n\t\tif (isEndShift(e)) {\n\t\t\tthis._handleEndShift(e);\n\t\t}\n\n\t\tthis._handleItemNavigation(e, this._tokens);\n\t}\n\n\t_handleItemNavigation(e: KeyboardEvent, tokens: Array<Token>) {\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\n\t\tconst target = e.target as Token;\n\n\t\tif (isLeftCtrl(e) || isRightCtrl(e) || isDownCtrl(e) || isUpCtrl(e)) {\n\t\t\treturn this._handleArrowCtrl(e, target, tokens, isRightCtrl(e) || isDownCtrl(e));\n\t\t}\n\n\t\tif (isLeftShift(e) || isRightShift(e) || isUpShift(e) || isDownShift(e) || isLeftShiftCtrl(e) || isRightShiftCtrl(e)) {\n\t\t\te.preventDefault();\n\t\t\treturn this._handleArrowShift(target, tokens, (isRightShift(e) || isRightShiftCtrl(e) || isDownShift(e)));\n\t\t}\n\n\t\tif (isHome(e) || isEnd(e) || isHomeCtrl(e) || isEndCtrl(e)) {\n\t\t\te.preventDefault();\n\t\t\treturn this._handleHome(tokens, isEnd(e) || isEndCtrl(e));\n\t\t}\n\n\t\tif (isCtrl && e.key.toLowerCase() === \"a\") {\n\t\t\te.preventDefault();\n\n\t\t\treturn this._toggleTokenSelection(tokens);\n\t\t}\n\n\t\tif (isLeft(e) || isRight(e) || isUp(e) || isDown(e)) {\n\t\t\tconst nextTokenIdx = this._calcNextTokenIndex(this._tokens.find(token => token.focused)!, tokens, (isRight(e) || isDown(e)));\n\t\t\tthis._scrollToToken(tokens[nextTokenIdx]);\n\t\t}\n\t}\n\n\t_handleHome(tokens: Array<Token>, endKeyPressed: boolean) {\n\t\tif (!tokens || !tokens.length) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tconst index = endKeyPressed ? tokens.length - 1 : 0;\n\n\t\ttokens[index].focus();\n\t\tthis._itemNav.setCurrentItem(tokens[index]);\n\t}\n\n\t_handleHomeShift(e: KeyboardEvent) {\n\t\tconst tokens = this.tokens;\n\t\tconst target = e.target as Token;\n\t\tconst currentTokenIdx = tokens.indexOf(target);\n\n\t\ttokens.filter((token, index) => index <= currentTokenIdx).forEach(token => {\n\t\t\ttoken.selected = true;\n\t\t});\n\n\t\ttokens[0].focus();\n\t\tthis._itemNav.setCurrentItem(tokens[0]);\n\t}\n\n\t_handleEndShift(e: KeyboardEvent) {\n\t\tconst tokens = this.tokens;\n\t\tconst target = e.target as Token;\n\t\tconst currentTokenIdx = tokens.indexOf(target);\n\n\t\ttokens.filter((token, index) => index >= currentTokenIdx).forEach(token => {\n\t\t\ttoken.selected = true;\n\t\t});\n\n\t\ttokens[tokens.length - 1].focus();\n\t\tthis._itemNav.setCurrentItem(tokens[tokens.length - 1]);\n\t}\n\n\t_calcNextTokenIndex(focusedToken: Token, tokens: Array<Token>, backwards: boolean) {\n\t\tif (!tokens.length) {\n\t\t\treturn -1;\n\t\t}\n\t\tconst focusedTokenIndex = tokens.indexOf(focusedToken);\n\t\tlet nextIndex = backwards ? (focusedTokenIndex + 1) : (focusedTokenIndex - 1);\n\n\t\tif (nextIndex >= tokens.length) {\n\t\t\tnextIndex = tokens.length - 1;\n\t\t}\n\t\tif (nextIndex < 0) {\n\t\t\tnextIndex = 0;\n\t\t}\n\n\t\treturn nextIndex;\n\t}\n\n\t_handleArrowCtrl(e: KeyboardEvent, focusedToken: Token, tokens: Array<Token>, backwards: boolean) {\n\t\tconst nextIndex = this._calcNextTokenIndex(focusedToken, tokens, backwards);\n\n\t\te.preventDefault();\n\n\t\tif (nextIndex === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\ttokens[nextIndex].focus();\n\t\t}, 0);\n\n\t\tthis._scrollToToken(tokens[nextIndex]);\n\t\tthis._itemNav.setCurrentItem(tokens[nextIndex]);\n\t}\n\n\t_handleArrowShift(focusedToken: Token, tokens: Array<Token>, backwards: boolean) {\n\t\tconst focusedTokenIndex = tokens.indexOf(focusedToken);\n\t\tconst nextIndex = backwards ? (focusedTokenIndex + 1) : (focusedTokenIndex - 1);\n\n\t\tif (nextIndex === -1 || nextIndex === tokens.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tfocusedToken.selected = true;\n\t\ttokens[nextIndex].selected = true;\n\t\tsetTimeout(() => {\n\t\t\ttokens[nextIndex].focus();\n\t\t}, 0);\n\n\t\tthis._scrollToToken(tokens[nextIndex]);\n\t\tthis._itemNav.setCurrentItem(tokens[nextIndex]);\n\t}\n\n\t_click(e: MouseEvent) {\n\t\tthis._handleTokenSelection(e);\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\tif ((e.target as HTMLElement).hasAttribute(\"ui5-token\")) {\n\t\t\tconst target = e.target as Token;\n\t\t\tif (!target.toBeDeleted) {\n\t\t\t\tthis._itemNav.setCurrentItem(target);\n\t\t\t\tthis._scrollToToken(target);\n\t\t\t}\n\t\t}\n\t}\n\n\t_toggleTokenSelection(tokens: Array<Token>) {\n\t\tif (!tokens || !tokens.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tokensAreSelected = tokens.every(token => token.selected);\n\t\ttokens.forEach(token => { token.selected = !tokensAreSelected; });\n\t}\n\n\t_handleTokenSelection(e: KeyboardEvent | MouseEvent, deselectAll = true) {\n\t\tconst target = e.target as Token;\n\t\tif (target.hasAttribute(\"ui5-token\")) {\n\t\t\tconst deselectTokens = deselectAll ? this._tokens : [];\n\n\t\t\tdeselectTokens.forEach(token => {\n\t\t\t\tif (token !== target) {\n\t\t\t\t\ttoken.selected = false;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\t_fillClipboard(shortcutName: ClipboardDataOperation, tokens: Array<Token>) {\n\t\tconst tokensTexts = tokens.filter(token => token.selected).map(token => token.text).join(\"\\r\\n\");\n\n\t\t/* fill clipboard with tokens' texts so parent can handle creation */\n\t\tconst cutToClipboard = (e: ClipboardEvent) => {\n\t\t\tif (e.clipboardData) {\n\t\t\t\te.clipboardData.setData(\"text/plain\", tokensTexts);\n\t\t\t}\n\n\t\t\te.preventDefault();\n\t\t};\n\n\t\tdocument.addEventListener(shortcutName, cutToClipboard);\n\t\tdocument.execCommand(shortcutName);\n\t\tdocument.removeEventListener(shortcutName, cutToClipboard);\n\t}\n\n\t/**\n\t * Scrolls the container of the tokens to its beginning.\n\t * This method is used by MultiInput and MultiComboBox.\n\t * @private\n\t */\n\tscrollToStart() {\n\t\tif (this._scrollEnablement.scrollContainer) {\n\t\t\tthis._scrollEnablement.scrollTo(0, 0);\n\t\t}\n\t}\n\n\t/**\n\t * Scrolls the container of the tokens to its end when expanded.\n\t * This method is used by MultiInput and MultiComboBox.\n\t * @private\n\t */\n\tscrollToEnd() {\n\t\tconst expandedTokenizerScrollWidth = this.expandedContentDom && (this.effectiveDir !== \"rtl\" ? this.expandedContentDom.scrollWidth : -this.expandedContentDom.scrollWidth);\n\t\tif (this._scrollEnablement.scrollContainer) {\n\t\t\tthis._scrollEnablement.scrollTo(expandedTokenizerScrollWidth!, 0, 5, 10);\n\t\t}\n\t}\n\n\t/**\n\t * Scrolls token to the visible area of the container.\n\t * Adds 4 pixels to the scroll position to ensure padding and border visibility on both ends\n\t * @private\n\t */\n\t_scrollToToken(token: Token) {\n\t\tif (!this.expandedContentDom) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tokenRect = token.getBoundingClientRect();\n\t\tconst tokenContainerRect = this.expandedContentDom.getBoundingClientRect();\n\n\t\tif (tokenRect.left < tokenContainerRect.left) {\n\t\t\tthis._scrollEnablement.scrollTo(this.expandedContentDom.scrollLeft - (tokenContainerRect.left - tokenRect.left + 5), 0);\n\t\t} else if (tokenRect.right > tokenContainerRect.right) {\n\t\t\tthis._scrollEnablement.scrollTo(this.expandedContentDom.scrollLeft + (tokenRect.right - tokenContainerRect.right + 5), 0);\n\t\t}\n\t}\n\n\tasync closeMorePopover() {\n\t\tconst popover = await this.getPopover();\n\n\t\tpopover.close();\n\t}\n\n\tget _nMoreText() {\n\t\treturn Tokenizer.i18nBundle.getText(MULTIINPUT_SHOW_MORE_TOKENS, this._nMoreCount);\n\t}\n\n\tget showNMore() {\n\t\treturn !this.expanded && this.showMore && !!this.overflownTokens.length;\n\t}\n\n\tget contentDom() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-tokenizer--content\")!;\n\t}\n\n\tget expandedContentDom() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-tokenizer-expanded--content\");\n\t}\n\n\tget narrowContentDom() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-tokenizer-nmore--content\");\n\t}\n\n\tget tokenizerLabel() {\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_LABEL);\n\t}\n\n\tget morePopoverTitle() {\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_POPOVER_REMOVE);\n\t}\n\n\tget overflownTokens() {\n\t\tif (!this.contentDom) {\n\t\t\treturn [];\n\t\t}\n\n\t\t// Reset the overflow prop of the tokens first in order\n\t\t// to use their dimensions for calculation because already\n\t\t// hidden tokens are set to 'display: none'\n\t\tthis._getTokens().forEach(token => {\n\t\t\ttoken.overflows = false;\n\t\t});\n\n\t\treturn this._getTokens().filter(token => {\n\t\t\tconst parentRect = this.contentDom.getBoundingClientRect();\n\t\t\tconst tokenRect = token.getBoundingClientRect();\n\t\t\tconst tokenEnd = tokenRect.right;\n\t\t\tconst parentEnd = parentRect.right;\n\t\t\tconst tokenStart = tokenRect.left;\n\t\t\tconst parentStart = parentRect.left;\n\n\t\t\ttoken.overflows = !this.expanded && ((tokenStart < parentStart) || (tokenEnd > parentEnd));\n\n\t\t\treturn token.overflows;\n\t\t});\n\t}\n\n\tget hasValueState() {\n\t\treturn this.valueState === ValueState.None || this.valueState === ValueState.Success;\n\t}\n\n\tget valueStateMessageText() {\n\t\treturn this.getSlottedNodes(\"valueStateMessage\").map(el => el.cloneNode(true));\n\t}\n\n\t/**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\t get _valueStateMessageIcon() {\n\t\tconst iconPerValueState = {\n\t\t\tError: \"error\",\n\t\t\tWarning: \"alert\",\n\t\t\tSuccess: \"sys-enter-2\",\n\t\t\tInformation: \"information\",\n\t\t};\n\n\t\treturn this.valueState !== ValueState.None ? iconPerValueState[this.valueState] : \"\";\n\t}\n\n\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget _selectedTokens() {\n\t\treturn this._getTokens().filter(token => token.selected);\n\t}\n\n\tget classes(): ClassMap {\n\t\treturn {\n\t\t\twrapper: {\n\t\t\t\t\"ui5-tokenizer-root\": true,\n\t\t\t\t\"ui5-tokenizer-nmore--wrapper\": this.showMore,\n\t\t\t\t\"ui5-tokenizer-no-padding\": !this._getTokens().length,\n\t\t\t},\n\t\t\tcontent: {\n\t\t\t\t\"ui5-tokenizer--content\": true,\n\t\t\t\t\"ui5-tokenizer-expanded--content\": !this.showNMore,\n\t\t\t\t\"ui5-tokenizer-nmore--content\": this.showNMore,\n\t\t\t},\n\t\t\tpopoverValueState: {\n\t\t\t\t\"ui5-valuestatemessage-root\": true,\n\t\t\t\t\"ui5-responsive-popover-header\": this.showPopover,\n\t\t\t\t\"ui5-valuestatemessage--success\": this.valueState === ValueState.Success,\n\t\t\t\t\"ui5-valuestatemessage--error\": this.valueState === ValueState.Error,\n\t\t\t\t\"ui5-valuestatemessage--warning\": this.valueState === ValueState.Warning,\n\t\t\t\t\"ui5-valuestatemessage--information\": this.valueState === ValueState.Information,\n\t\t\t},\n\t\t};\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tpopover: {\n\t\t\t\t\"min-width\": this.popoverMinWidth ? `${this.popoverMinWidth}px` : \"\",\n\t\t\t},\n\t\t\tpopoverValueStateMessage: {\n\t\t\t\t\"width\": this.popoverMinWidth && !isPhone() ? `${this.popoverMinWidth}px` : \"100%\",\n\t\t\t\t\"min-height\": \"2rem\",\n\t\t\t},\n\t\t\tpopoverHeader: {\n\t\t\t\t\"min-height\": \"2rem\",\n\t\t\t},\n\t\t\tpopoverHeaderTitle: {\n\t\t\t\t\"justify-content\": \"left\",\n\t\t\t},\n\t\t};\n\t}\n\n\t_tokensCountText() {\n\t\tconst iTokenCount = this._getTokens().length;\n\n\t\tif (iTokenCount === 0) {\n\t\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_CONTAIN_TOKEN);\n\t\t}\n\n\t\tif (iTokenCount === 1) {\n\t\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_CONTAIN_ONE_TOKEN);\n\t\t}\n\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS, iTokenCount);\n\t}\n\n\t/**\n\t * @protected\n\t */\n\t_focusLastToken() {\n\t\tif (this.tokens.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lastToken = this.tokens[this.tokens.length - 1];\n\t\tlastToken.focus();\n\t\tthis._itemNav.setCurrentItem(lastToken);\n\t}\n\n\tstatic async onDefine() {\n\t\tTokenizer.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tasync getPopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n}\n\nTokenizer.define();\n\nexport default Tokenizer;\nexport { ClipboardDataOperation };\nexport type { TokenizerTokenDeleteEventDetail };\n"]}
|
package/dist/Tree.d.ts
CHANGED
package/dist/Tree.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tree.js","sourceRoot":"","sources":["../src/Tree.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport TreeItem from \"./TreeItem.js\";\nimport TreeItemCustom from \"./TreeItemCustom.js\";\nimport TreeList from \"./TreeList.js\";\nimport ListMode from \"./types/ListMode.js\";\nimport type TreeItemBase from \"./TreeItemBase.js\";\nimport type {\n\tTreeItemBaseToggleEventDetail,\n\tTreeItemBaseStepInEventDetail,\n\tTreeItemBaseStepOutEventDetail,\n} from \"./TreeItemBase.js\";\nimport type {\n\tClickEventDetail as ListItemClickEventDetail,\n\tDeleteEventDetail as ListItemDeleteEventDetail,\n\tSelectionChangeEventDetail as ListSelectionChangeEventDetail,\n} from \"./List.js\";\n\n// Template\nimport TreeTemplate from \"./generated/templates/TreeTemplate.lit.js\";\n\n// Styles\nimport TreeCss from \"./generated/themes/Tree.css.js\";\n\ntype TreeItemEventDetail = {\n\titem: TreeItemBase,\n}\ntype TreeItemToggleEventDetail = TreeItemEventDetail;\ntype TreeItemMouseoverEventDetail = TreeItemEventDetail;\ntype TreeItemMouseoutEventDetail = TreeItemEventDetail;\ntype TreeItemClickEventDetail = TreeItemEventDetail;\ntype TreeItemDeleteEventDetail = TreeItemEventDetail;\ntype TreeItemSelectionChangeEventDetail = {\n\tselectedItems: Array<TreeItemBase>;\n\tpreviouslySelectedItems: Array<TreeItemBase>;\n\ttargetItem: TreeItemBase;\n}\ntype WalkCallback = (item: TreeItemBase, level: number, index: number) => void;\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n * The <code>ui5-tree</code> component provides a tree structure for displaying data in a hierarchy.\n *\n * <h3>Usage</h3>\n *\n * <h4>When to use:</h4>\n * <ul>\n * <li>To display hierarchically structured items.</li>\n * <li>To select one or more items out of a set of hierarchically structured items.</li>\n * </ul>\n *\n * <h4>When not to use:</h4>\n * <ul>\n * <li>To display items not hierarchically strcutured. In this case, use the List component.</li>\n * <li>To select one item from a very small number of non-hierarchical items. Select or ComboBox might be more appropriate.</li>\n * <li>The hierarchy turns out to have only two levels. In this case, use List with group items.</li>\n * </ul>\n *\n * <h3>Keyboard Handling</h3>\n *\n * The <code>ui5-tree</code> provides advanced keyboard handling.\n * The user can use the following keyboard shortcuts in order to navigate trough the tree:\n * <ul>\n * <li>[UP/DOWN] - Navigates up and down the tree items that are currently visible.</li>\n * <li>[RIGHT] - Drills down the tree by expanding the tree nodes.</li>\n * <li>[LEFT] - Goes up the tree and collapses the tree nodes.</li>\n * </ul>\n * <br>\n *\n * The user can use the following keyboard shortcuts to perform selection,\n * when the <code>mode</code> property is in use:\n * <ul>\n * <li>[SPACE] - Selects the currently focused item upon keyup.</li>\n * <li>[ENTER] - Selects the currently focused item upon keydown.</li>\n * </ul>\n *\n * <h3>ES6 Module Import</h3>\n * <code>import \"@ui5/webcomponents/dist/Tree.js\";</code>\n * <br>\n * <code>import \"@ui5/webcomponents/dist/TreeItem.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webc.main.Tree\n * @extends sap.ui.webc.base.UI5Element\n * @tagname ui5-tree\n * @appenddocs sap.ui.webc.main.TreeItem sap.ui.webc.main.TreeItemCustom\n * @public\n * @since 1.0.0-rc.8\n */\n@customElement({\n\ttag: \"ui5-tree\",\n\trenderer: litRender,\n\tstyles: TreeCss,\n\ttemplate: TreeTemplate,\n\tdependencies: [\n\t\tTreeList,\n\t\tTreeItem,\n\t\tTreeItemCustom,\n\t],\n})\n/**\n * Fired when a tree item is expanded or collapsed.\n * <i>Note:</i> You can call <code>preventDefault()</code> on the event object to suppress the event, if needed.\n * This may be handy for example if you want to dynamically load tree items upon the user expanding a node.\n * Even if you prevented the event's default behavior, you can always manually call <code>toggle()</code> on a tree item.\n *\n * @event sap.ui.webc.main.Tree#item-toggle\n * @param {HTMLElement} item the toggled item.\n * @allowPreventDefault\n * @public\n */\n@event(\"item-toggle\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n})\n/**\n * Fired when the mouse cursor enters the tree item borders.\n * @event sap.ui.webc.main.Tree#item-mouseover\n * @param {HTMLElement} item the hovered item.\n * @since 1.0.0-rc.16\n * @public\n */\n@event(\"item-mouseover\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n})\n/**\n * Fired when the mouse cursor leaves the tree item borders.\n * @event sap.ui.webc.main.Tree#item-mouseout\n * @param {HTMLElement} item the hovered item.\n * @since 1.0.0-rc.16\n * @public\n */\n@event(\"item-mouseout\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n})\n/**\n * Fired when a tree item is activated.\n *\n * @event sap.ui.webc.main.Tree#item-click\n * @allowPreventDefault\n * @param {HTMLElement} item The clicked item.\n * @public\n */\n@event(\"item-click\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired when the Delete button of any tree item is pressed.\n * <br><br>\n * <b>Note:</b> A Delete button is displayed on each item,\n * when the component <code>mode</code> property is set to <code>Delete</code>.\n *\n * @event sap.ui.webc.main.Tree#item-delete\n * @param {HTMLElement} item the deleted item.\n * @public\n */\n@event(\"item-delete\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired when selection is changed by user interaction\n * in <code>SingleSelect</code>, <code>SingleSelectBegin</code>, <code>SingleSelectEnd</code> and <code>MultiSelect</code> modes.\n *\n * @event sap.ui.webc.main.Tree#selection-change\n * @param {Array} selectedItems An array of the selected items.\n * @param {Array} previouslySelectedItems An array of the previously selected items.\n * @param {HTMLElement} targetItem The item triggering the event.\n * @public\n */\n@event(\"selection-change\", {\n\tdetail: {\n\t\tselectedItems: { type: Array },\n\t\tpreviouslySelectedItems: { type: Array },\n\t\ttargetItem: { type: HTMLElement },\n\t},\n})\nclass Tree extends UI5Element {\n\t/**\n\t * Defines the mode of the component. Since the tree uses a <code>ui5-list</code> to display its structure,\n\t * the tree modes are exactly the same as the list modes, and are all applicable.\n\t *\n\t * <br><br>\n\t * <b>Note:</b>\n\t *\n\t * <ul>\n\t * <li><code>None</code></li>\n\t * <li><code>SingleSelect</code></li>\n\t * <li><code>SingleSelectBegin</code></li>\n\t * <li><code>SingleSelectEnd</code></li>\n\t * <li><code>MultiSelect</code></li>\n\t * <li><code>Delete</code></li>\n\t * </ul>\n\t *\n\t * @public\n\t * @type {sap.ui.webc.main.types.ListMode}\n\t * @name sap.ui.webc.main.Tree.prototype.mode\n\t * @defaultValue \"None\"\n\t */\n\t@property({ type: ListMode, defaultValue: ListMode.None })\n\tmode!: ListMode;\n\n\t/**\n\t * Defines the text that is displayed when the component contains no items.\n\t *\n\t * @type {string}\n\t * @name sap.ui.webc.main.Tree.prototype.noDataText\n\t * @defaultvalue \"\"\n\t * @public\n\t */\n\t@property()\n\tnoDataText!: string;\n\n\t/**\n\t * Defines the component header text.\n\t * <br><br>\n\t * <b>Note:</b> If the <code>header</code> slot is set, this property is ignored.\n\t *\n\t * @type {string}\n\t * @name sap.ui.webc.main.Tree.prototype.headerText\n\t * @defaultvalue \"\"\n\t * @public\n\t */\n\t@property()\n\theaderText!: string;\n\n\t/**\n\t * Defines the component footer text.\n\t *\n\t * @type {string}\n\t * @name sap.ui.webc.main.Tree.prototype.footerText\n\t * @defaultvalue \"\"\n\t * @public\n\t */\n\t@property()\n\tfooterText!: string;\n\n\t/**\n\t * Defines the accessible name of the component.\n\t *\n\t * @type {string}\n\t * @name sap.ui.webc.main.Tree.prototype.accessibleName\n\t * @defaultvalue: \"\"\n\t * @public\n\t * @since 1.8.0\n\t */\n\t@property()\n\taccessibleName!: string;\n\n\t/**\n\t * Defines the IDs of the elements that label the component.\n\t *\n\t * @type {string}\n\t * @name sap.ui.webc.main.Tree.prototype.accessibleNameRef\n\t * @defaultvalue \"\"\n\t * @public\n\t * @since 1.8.0\n\t */\n\t@property()\n\taccessibleNameRef!: string;\n\n\t/**\n\t * Defines the description for the accessible role of the component.\n\t * @protected\n\t * @type {string}\n\t * @name sap.ui.webc.main.Tree.prototype.accessibleRoleDescription\n\t * @defaultvalue undefined\n\t * @since 1.10.0\n\t */\n\t@property({ defaultValue: undefined, noAttribute: true })\n\taccessibleRoleDescription?: string;\n\n\t/**\n\t * Shows the toggle button at the end, rather than at the beginning of the items\n\t *\n\t * @protected\n\t * @since 1.0.0-rc.8\n\t */\n\t@property({ type: Boolean })\n\t_toggleButtonEnd!: boolean;\n\n\t/**\n\t * Represents the tree in a very minimal state - icons only with no text and no toggle buttons\n\t *\n\t * @protected\n\t * @since 1.0.0-rc.8\n\t */\n\t@property({ type: Boolean })\n\t_minimal!: boolean;\n\n\t/**\n\t * Defines the items of the component. Tree items may have other tree items as children.\n\t * <br><br>\n\t * <b>Note:</b> Use <code>ui5-tree-item</code> for the intended design.\n\t *\n\t * @type {sap.ui.webc.main.ITreeItem[]}\n\t * @name sap.ui.webc.main.Tree.prototype.default\n\t * @slot items\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n\titems!: Array<TreeItemBase>;\n\n\t/**\n\t * Defines the component header.\n\t * <br><br>\n\t * <b>Note:</b> When the <code>header</code> slot is set, the\n\t * <code>headerText</code> property is ignored.\n\t *\n\t * @type {HTMLElement[]}\n\t * @name sap.ui.webc.main.Tree.prototype.header\n\t * @slot header\n\t * @public\n\t */\n\t@slot()\n\theader!: Array<HTMLElement>;\n\n\tonBeforeRendering() {\n\t\tthis._prepareTreeItems();\n\t}\n\n\tget list() {\n\t\treturn this.getDomRef() as TreeList;\n\t}\n\n\tget _role() {\n\t\treturn this._minimal ? \"menubar\" : \"tree\";\n\t}\n\n\tget _label() {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget _hasHeader() {\n\t\treturn !!this.header.length;\n\t}\n\n\t_onListItemStepIn(e: CustomEvent<TreeItemBaseStepInEventDetail>) {\n\t\tconst treeItem = e.detail.item;\n\t\tif (treeItem.items.length > 0) {\n\t\t\tconst firstChild = treeItem.items[0];\n\t\t\tconst firstChildListItem = this._getListItemForTreeItem(firstChild);\n\t\t\tfirstChildListItem && this.list.focusItem(firstChildListItem);\n\t\t}\n\t}\n\n\t_onListItemStepOut(e: CustomEvent<TreeItemBaseStepOutEventDetail>) {\n\t\tconst treeItem = e.detail.item;\n\t\tif (treeItem.parentElement !== this) {\n\t\t\tconst parent = treeItem.parentElement as TreeItemBase;\n\t\t\tconst parentListItem = this._getListItemForTreeItem(parent);\n\t\t\tparentListItem && this.list.focusItem(parentListItem);\n\t\t}\n\t}\n\n\t_onListItemToggle(e: CustomEvent<TreeItemBaseToggleEventDetail>) {\n\t\tconst treeItem = e.detail.item;\n\t\tconst defaultPrevented = !this.fireEvent<TreeItemToggleEventDetail>(\"item-toggle\", { item: treeItem }, true);\n\t\tif (!defaultPrevented) {\n\t\t\ttreeItem.toggle();\n\t\t}\n\t}\n\n\t_onListItemClick(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst treeItem = e.detail.item as TreeItemBase;\n\n\t\tif (!this.fireEvent<TreeItemClickEventDetail>(\"item-click\", { item: treeItem }, true)) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onListItemDelete(e: CustomEvent<ListItemDeleteEventDetail>) {\n\t\tconst treeItem = e.detail.item as TreeItemBase;\n\t\tthis.fireEvent<TreeItemDeleteEventDetail>(\"item-delete\", { item: treeItem });\n\t}\n\n\t_onListItemMouseOver(e: MouseEvent) {\n\t\tconst target = e.target;\n\n\t\tif (this._isInstanceOfTreeItemBase(target)) {\n\t\t\tthis.fireEvent<TreeItemMouseoverEventDetail>(\"item-mouseover\", { item: target });\n\t\t}\n\t}\n\n\t_onListItemMouseOut(e: MouseEvent) {\n\t\tconst target = e.target;\n\n\t\tif (this._isInstanceOfTreeItemBase(target)) {\n\t\t\tthis.fireEvent<TreeItemMouseoutEventDetail>(\"item-mouseout\", { item: target });\n\t\t}\n\t}\n\n\t_onListSelectionChange(e: CustomEvent<ListSelectionChangeEventDetail>) {\n\t\tconst previouslySelectedItems = e.detail.previouslySelectedItems as Array<TreeItemBase>;\n\t\tconst selectedItems = e.detail.selectedItems as Array<TreeItemBase>;\n\t\tconst targetItem = e.detail.targetItem as TreeItemBase;\n\n\t\tpreviouslySelectedItems.forEach(item => {\n\t\t\titem.selected = false;\n\t\t});\n\t\tselectedItems.forEach(item => {\n\t\t\titem.selected = true;\n\t\t});\n\n\t\tthis.fireEvent<TreeItemSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\tpreviouslySelectedItems,\n\t\t\tselectedItems,\n\t\t\ttargetItem,\n\t\t});\n\t}\n\n\t_prepareTreeItems() {\n\t\t// set level to tree items\n\t\tthis.walk((item, level, index) => {\n\t\t\tconst parent = item.parentNode;\n\t\t\tconst ariaSetSize = (parent && parent.children.length) || this.items.length;\n\n\t\t\titem.setAttribute(\"level\", level.toString());\n\n\t\t\titem._toggleButtonEnd = this._toggleButtonEnd;\n\t\t\titem._minimal = this._minimal;\n\t\t\titem._setsize = ariaSetSize;\n\t\t\titem._posinset = index + 1;\n\t\t});\n\t}\n\n\t/**\n\t * Returns the corresponding list item for a given tree item\n\t *\n\t * @param item The tree item\n\t * @protected\n\t */\n\t_getListItemForTreeItem(item: TreeItemBase) {\n\t\treturn this.getItems().find(listItem => listItem === item);\n\t}\n\n\t/**\n\t * Returns the a flat array of all tree items\n\t * @protected\n\t * @returns {Array}\n\t */\n\tgetItems(): Array<TreeItemBase> {\n\t\treturn this.list.getItems();\n\t}\n\n\t/**\n\t * Focus a tree item by its index in the flat array of all tree items\n\t * @protected\n\t * @param index\n\t */\n\tfocusItemByIndex(index: number) {\n\t\tconst item = this.getItems()[index];\n\t\titem && this.list.focusItem(item);\n\t}\n\n\t/**\n\t * Perform Depth-First-Search walk on the tree and run a callback on each node\n\t *\n\t * @public\n\t * @param {function} callback function to execute on each node of the tree with 3 arguments: the node, the level and the index\n\t */\n\twalk(callback: WalkCallback) {\n\t\twalkTree(this, 1, callback);\n\t}\n\n\t_isInstanceOfTreeItemBase(object: any): object is TreeItemBase {\n\t\treturn \"isTreeItem\" in object;\n\t}\n}\n\nconst walkTree = (el: Tree | TreeItemBase, level: number, callback: WalkCallback) => {\n\t(el.items).forEach((item, index) => {\n\t\tcallback(item, level, index);\n\t\tif (item.items.length > 0) {\n\t\t\twalkTree(item, level + 1, callback);\n\t\t}\n\t});\n};\n\nTree.define();\n\nexport default Tree;\n\nexport type {\n\tTreeItemToggleEventDetail,\n\tTreeItemMouseoverEventDetail,\n\tTreeItemMouseoutEventDetail,\n\tTreeItemClickEventDetail,\n\tTreeItemDeleteEventDetail,\n\tTreeItemSelectionChangeEventDetail,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Tree.js","sourceRoot":"","sources":["../src/Tree.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport TreeItem from \"./TreeItem.js\";\nimport TreeItemCustom from \"./TreeItemCustom.js\";\nimport TreeList from \"./TreeList.js\";\nimport ListMode from \"./types/ListMode.js\";\nimport type TreeItemBase from \"./TreeItemBase.js\";\nimport type {\n\tTreeItemBaseToggleEventDetail,\n\tTreeItemBaseStepInEventDetail,\n\tTreeItemBaseStepOutEventDetail,\n} from \"./TreeItemBase.js\";\nimport type {\n\tClickEventDetail as ListItemClickEventDetail,\n\tDeleteEventDetail as ListItemDeleteEventDetail,\n\tSelectionChangeEventDetail as ListSelectionChangeEventDetail,\n} from \"./List.js\";\n\n// Template\nimport TreeTemplate from \"./generated/templates/TreeTemplate.lit.js\";\n\n// Styles\nimport TreeCss from \"./generated/themes/Tree.css.js\";\n\ntype TreeItemEventDetail = {\n\titem: TreeItemBase,\n}\ntype TreeItemToggleEventDetail = TreeItemEventDetail;\ntype TreeItemMouseoverEventDetail = TreeItemEventDetail;\ntype TreeItemMouseoutEventDetail = TreeItemEventDetail;\ntype TreeItemClickEventDetail = TreeItemEventDetail;\ntype TreeItemDeleteEventDetail = TreeItemEventDetail;\ntype TreeItemSelectionChangeEventDetail = {\n\tselectedItems: Array<TreeItemBase>;\n\tpreviouslySelectedItems: Array<TreeItemBase>;\n\ttargetItem: TreeItemBase;\n}\ntype WalkCallback = (item: TreeItemBase, level: number, index: number) => void;\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n * The <code>ui5-tree</code> component provides a tree structure for displaying data in a hierarchy.\n *\n * <h3>Usage</h3>\n *\n * <h4>When to use:</h4>\n * <ul>\n * <li>To display hierarchically structured items.</li>\n * <li>To select one or more items out of a set of hierarchically structured items.</li>\n * </ul>\n *\n * <h4>When not to use:</h4>\n * <ul>\n * <li>To display items not hierarchically strcutured. In this case, use the List component.</li>\n * <li>To select one item from a very small number of non-hierarchical items. Select or ComboBox might be more appropriate.</li>\n * <li>The hierarchy turns out to have only two levels. In this case, use List with group items.</li>\n * </ul>\n *\n * <h3>Keyboard Handling</h3>\n *\n * The <code>ui5-tree</code> provides advanced keyboard handling.\n * The user can use the following keyboard shortcuts in order to navigate trough the tree:\n * <ul>\n * <li>[UP/DOWN] - Navigates up and down the tree items that are currently visible.</li>\n * <li>[RIGHT] - Drills down the tree by expanding the tree nodes.</li>\n * <li>[LEFT] - Goes up the tree and collapses the tree nodes.</li>\n * </ul>\n * <br>\n *\n * The user can use the following keyboard shortcuts to perform selection,\n * when the <code>mode</code> property is in use:\n * <ul>\n * <li>[SPACE] - Selects the currently focused item upon keyup.</li>\n * <li>[ENTER] - Selects the currently focused item upon keydown.</li>\n * </ul>\n *\n * <h3>ES6 Module Import</h3>\n * <code>import \"@ui5/webcomponents/dist/Tree.js\";</code>\n * <br>\n * <code>import \"@ui5/webcomponents/dist/TreeItem.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webc.main.Tree\n * @extends sap.ui.webc.base.UI5Element\n * @tagname ui5-tree\n * @appenddocs sap.ui.webc.main.TreeItem sap.ui.webc.main.TreeItemCustom\n * @public\n * @since 1.0.0-rc.8\n */\n@customElement({\n\ttag: \"ui5-tree\",\n\trenderer: litRender,\n\tstyles: TreeCss,\n\ttemplate: TreeTemplate,\n\tdependencies: [\n\t\tTreeList,\n\t\tTreeItem,\n\t\tTreeItemCustom,\n\t],\n})\n/**\n * Fired when a tree item is expanded or collapsed.\n * <i>Note:</i> You can call <code>preventDefault()</code> on the event object to suppress the event, if needed.\n * This may be handy for example if you want to dynamically load tree items upon the user expanding a node.\n * Even if you prevented the event's default behavior, you can always manually call <code>toggle()</code> on a tree item.\n *\n * @event sap.ui.webc.main.Tree#item-toggle\n * @param {HTMLElement} item the toggled item.\n * @allowPreventDefault\n * @public\n */\n@event(\"item-toggle\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n})\n/**\n * Fired when the mouse cursor enters the tree item borders.\n * @event sap.ui.webc.main.Tree#item-mouseover\n * @param {HTMLElement} item the hovered item.\n * @since 1.0.0-rc.16\n * @public\n */\n@event(\"item-mouseover\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n})\n/**\n * Fired when the mouse cursor leaves the tree item borders.\n * @event sap.ui.webc.main.Tree#item-mouseout\n * @param {HTMLElement} item the hovered item.\n * @since 1.0.0-rc.16\n * @public\n */\n@event(\"item-mouseout\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n})\n/**\n * Fired when a tree item is activated.\n *\n * @event sap.ui.webc.main.Tree#item-click\n * @allowPreventDefault\n * @param {HTMLElement} item The clicked item.\n * @public\n */\n@event(\"item-click\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired when the Delete button of any tree item is pressed.\n * <br><br>\n * <b>Note:</b> A Delete button is displayed on each item,\n * when the component <code>mode</code> property is set to <code>Delete</code>.\n *\n * @event sap.ui.webc.main.Tree#item-delete\n * @param {HTMLElement} item the deleted item.\n * @public\n */\n@event(\"item-delete\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired when selection is changed by user interaction\n * in <code>SingleSelect</code>, <code>SingleSelectBegin</code>, <code>SingleSelectEnd</code> and <code>MultiSelect</code> modes.\n *\n * @event sap.ui.webc.main.Tree#selection-change\n * @param {Array} selectedItems An array of the selected items.\n * @param {Array} previouslySelectedItems An array of the previously selected items.\n * @param {HTMLElement} targetItem The item triggering the event.\n * @public\n */\n@event(\"selection-change\", {\n\tdetail: {\n\t\tselectedItems: { type: Array },\n\t\tpreviouslySelectedItems: { type: Array },\n\t\ttargetItem: { type: HTMLElement },\n\t},\n})\nclass Tree extends UI5Element {\n\t/**\n\t * Defines the mode of the component. Since the tree uses a <code>ui5-list</code> to display its structure,\n\t * the tree modes are exactly the same as the list modes, and are all applicable.\n\t *\n\t * <br><br>\n\t * <b>Note:</b>\n\t *\n\t * <ul>\n\t * <li><code>None</code></li>\n\t * <li><code>SingleSelect</code></li>\n\t * <li><code>SingleSelectBegin</code></li>\n\t * <li><code>SingleSelectEnd</code></li>\n\t * <li><code>MultiSelect</code></li>\n\t * <li><code>Delete</code></li>\n\t * </ul>\n\t *\n\t * @public\n\t * @type {sap.ui.webc.main.types.ListMode}\n\t * @name sap.ui.webc.main.Tree.prototype.mode\n\t * @defaultValue \"None\"\n\t */\n\t@property({ type: ListMode, defaultValue: ListMode.None })\n\tmode!: `${ListMode}`;\n\n\t/**\n\t * Defines the text that is displayed when the component contains no items.\n\t *\n\t * @type {string}\n\t * @name sap.ui.webc.main.Tree.prototype.noDataText\n\t * @defaultvalue \"\"\n\t * @public\n\t */\n\t@property()\n\tnoDataText!: string;\n\n\t/**\n\t * Defines the component header text.\n\t * <br><br>\n\t * <b>Note:</b> If the <code>header</code> slot is set, this property is ignored.\n\t *\n\t * @type {string}\n\t * @name sap.ui.webc.main.Tree.prototype.headerText\n\t * @defaultvalue \"\"\n\t * @public\n\t */\n\t@property()\n\theaderText!: string;\n\n\t/**\n\t * Defines the component footer text.\n\t *\n\t * @type {string}\n\t * @name sap.ui.webc.main.Tree.prototype.footerText\n\t * @defaultvalue \"\"\n\t * @public\n\t */\n\t@property()\n\tfooterText!: string;\n\n\t/**\n\t * Defines the accessible name of the component.\n\t *\n\t * @type {string}\n\t * @name sap.ui.webc.main.Tree.prototype.accessibleName\n\t * @defaultvalue: \"\"\n\t * @public\n\t * @since 1.8.0\n\t */\n\t@property()\n\taccessibleName!: string;\n\n\t/**\n\t * Defines the IDs of the elements that label the component.\n\t *\n\t * @type {string}\n\t * @name sap.ui.webc.main.Tree.prototype.accessibleNameRef\n\t * @defaultvalue \"\"\n\t * @public\n\t * @since 1.8.0\n\t */\n\t@property()\n\taccessibleNameRef!: string;\n\n\t/**\n\t * Defines the description for the accessible role of the component.\n\t * @protected\n\t * @type {string}\n\t * @name sap.ui.webc.main.Tree.prototype.accessibleRoleDescription\n\t * @defaultvalue undefined\n\t * @since 1.10.0\n\t */\n\t@property({ defaultValue: undefined, noAttribute: true })\n\taccessibleRoleDescription?: string;\n\n\t/**\n\t * Shows the toggle button at the end, rather than at the beginning of the items\n\t *\n\t * @protected\n\t * @since 1.0.0-rc.8\n\t */\n\t@property({ type: Boolean })\n\t_toggleButtonEnd!: boolean;\n\n\t/**\n\t * Represents the tree in a very minimal state - icons only with no text and no toggle buttons\n\t *\n\t * @protected\n\t * @since 1.0.0-rc.8\n\t */\n\t@property({ type: Boolean })\n\t_minimal!: boolean;\n\n\t/**\n\t * Defines the items of the component. Tree items may have other tree items as children.\n\t * <br><br>\n\t * <b>Note:</b> Use <code>ui5-tree-item</code> for the intended design.\n\t *\n\t * @type {sap.ui.webc.main.ITreeItem[]}\n\t * @name sap.ui.webc.main.Tree.prototype.default\n\t * @slot items\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n\titems!: Array<TreeItemBase>;\n\n\t/**\n\t * Defines the component header.\n\t * <br><br>\n\t * <b>Note:</b> When the <code>header</code> slot is set, the\n\t * <code>headerText</code> property is ignored.\n\t *\n\t * @type {HTMLElement[]}\n\t * @name sap.ui.webc.main.Tree.prototype.header\n\t * @slot header\n\t * @public\n\t */\n\t@slot()\n\theader!: Array<HTMLElement>;\n\n\tonBeforeRendering() {\n\t\tthis._prepareTreeItems();\n\t}\n\n\tget list() {\n\t\treturn this.getDomRef() as TreeList;\n\t}\n\n\tget _role() {\n\t\treturn this._minimal ? \"menubar\" : \"tree\";\n\t}\n\n\tget _label() {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget _hasHeader() {\n\t\treturn !!this.header.length;\n\t}\n\n\t_onListItemStepIn(e: CustomEvent<TreeItemBaseStepInEventDetail>) {\n\t\tconst treeItem = e.detail.item;\n\t\tif (treeItem.items.length > 0) {\n\t\t\tconst firstChild = treeItem.items[0];\n\t\t\tconst firstChildListItem = this._getListItemForTreeItem(firstChild);\n\t\t\tfirstChildListItem && this.list.focusItem(firstChildListItem);\n\t\t}\n\t}\n\n\t_onListItemStepOut(e: CustomEvent<TreeItemBaseStepOutEventDetail>) {\n\t\tconst treeItem = e.detail.item;\n\t\tif (treeItem.parentElement !== this) {\n\t\t\tconst parent = treeItem.parentElement as TreeItemBase;\n\t\t\tconst parentListItem = this._getListItemForTreeItem(parent);\n\t\t\tparentListItem && this.list.focusItem(parentListItem);\n\t\t}\n\t}\n\n\t_onListItemToggle(e: CustomEvent<TreeItemBaseToggleEventDetail>) {\n\t\tconst treeItem = e.detail.item;\n\t\tconst defaultPrevented = !this.fireEvent<TreeItemToggleEventDetail>(\"item-toggle\", { item: treeItem }, true);\n\t\tif (!defaultPrevented) {\n\t\t\ttreeItem.toggle();\n\t\t}\n\t}\n\n\t_onListItemClick(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst treeItem = e.detail.item as TreeItemBase;\n\n\t\tif (!this.fireEvent<TreeItemClickEventDetail>(\"item-click\", { item: treeItem }, true)) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onListItemDelete(e: CustomEvent<ListItemDeleteEventDetail>) {\n\t\tconst treeItem = e.detail.item as TreeItemBase;\n\t\tthis.fireEvent<TreeItemDeleteEventDetail>(\"item-delete\", { item: treeItem });\n\t}\n\n\t_onListItemMouseOver(e: MouseEvent) {\n\t\tconst target = e.target;\n\n\t\tif (this._isInstanceOfTreeItemBase(target)) {\n\t\t\tthis.fireEvent<TreeItemMouseoverEventDetail>(\"item-mouseover\", { item: target });\n\t\t}\n\t}\n\n\t_onListItemMouseOut(e: MouseEvent) {\n\t\tconst target = e.target;\n\n\t\tif (this._isInstanceOfTreeItemBase(target)) {\n\t\t\tthis.fireEvent<TreeItemMouseoutEventDetail>(\"item-mouseout\", { item: target });\n\t\t}\n\t}\n\n\t_onListSelectionChange(e: CustomEvent<ListSelectionChangeEventDetail>) {\n\t\tconst previouslySelectedItems = e.detail.previouslySelectedItems as Array<TreeItemBase>;\n\t\tconst selectedItems = e.detail.selectedItems as Array<TreeItemBase>;\n\t\tconst targetItem = e.detail.targetItem as TreeItemBase;\n\n\t\tpreviouslySelectedItems.forEach(item => {\n\t\t\titem.selected = false;\n\t\t});\n\t\tselectedItems.forEach(item => {\n\t\t\titem.selected = true;\n\t\t});\n\n\t\tthis.fireEvent<TreeItemSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\tpreviouslySelectedItems,\n\t\t\tselectedItems,\n\t\t\ttargetItem,\n\t\t});\n\t}\n\n\t_prepareTreeItems() {\n\t\t// set level to tree items\n\t\tthis.walk((item, level, index) => {\n\t\t\tconst parent = item.parentNode;\n\t\t\tconst ariaSetSize = (parent && parent.children.length) || this.items.length;\n\n\t\t\titem.setAttribute(\"level\", level.toString());\n\n\t\t\titem._toggleButtonEnd = this._toggleButtonEnd;\n\t\t\titem._minimal = this._minimal;\n\t\t\titem._setsize = ariaSetSize;\n\t\t\titem._posinset = index + 1;\n\t\t});\n\t}\n\n\t/**\n\t * Returns the corresponding list item for a given tree item\n\t *\n\t * @param item The tree item\n\t * @protected\n\t */\n\t_getListItemForTreeItem(item: TreeItemBase) {\n\t\treturn this.getItems().find(listItem => listItem === item);\n\t}\n\n\t/**\n\t * Returns the a flat array of all tree items\n\t * @protected\n\t * @returns {Array}\n\t */\n\tgetItems(): Array<TreeItemBase> {\n\t\treturn this.list.getItems();\n\t}\n\n\t/**\n\t * Focus a tree item by its index in the flat array of all tree items\n\t * @protected\n\t * @param index\n\t */\n\tfocusItemByIndex(index: number) {\n\t\tconst item = this.getItems()[index];\n\t\titem && this.list.focusItem(item);\n\t}\n\n\t/**\n\t * Perform Depth-First-Search walk on the tree and run a callback on each node\n\t *\n\t * @public\n\t * @param {function} callback function to execute on each node of the tree with 3 arguments: the node, the level and the index\n\t */\n\twalk(callback: WalkCallback) {\n\t\twalkTree(this, 1, callback);\n\t}\n\n\t_isInstanceOfTreeItemBase(object: any): object is TreeItemBase {\n\t\treturn \"isTreeItem\" in object;\n\t}\n}\n\nconst walkTree = (el: Tree | TreeItemBase, level: number, callback: WalkCallback) => {\n\t(el.items).forEach((item, index) => {\n\t\tcallback(item, level, index);\n\t\tif (item.items.length > 0) {\n\t\t\twalkTree(item, level + 1, callback);\n\t\t}\n\t});\n};\n\nTree.define();\n\nexport default Tree;\n\nexport type {\n\tTreeItemToggleEventDetail,\n\tTreeItemMouseoverEventDetail,\n\tTreeItemMouseoutEventDetail,\n\tTreeItemClickEventDetail,\n\tTreeItemDeleteEventDetail,\n\tTreeItemSelectionChangeEventDetail,\n};\n"]}
|
package/dist/TreeItem.d.ts
CHANGED
package/dist/TreeItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeItem.js","sourceRoot":"","sources":["../src/TreeItem.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,UAAU,MAAM,kDAAkD,CAAC;AAC1E,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,WAAW;AACX,OAAO,gBAAgB,MAAM,+CAA+C,CAAC;AAE7E,SAAS;AACT,OAAO,WAAW,MAAM,oCAAoC,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAMH,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,YAAY;IAoClC,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC3C,CAAC;CACD,CAAA;AA7BA;IADC,QAAQ,EAAE;sCACG;AAWd;IADC,QAAQ,EAAE;gDACa;AAaxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"TreeItem.js","sourceRoot":"","sources":["../src/TreeItem.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,UAAU,MAAM,kDAAkD,CAAC;AAC1E,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,WAAW;AACX,OAAO,gBAAgB,MAAM,+CAA+C,CAAC;AAE7E,SAAS;AACT,OAAO,WAAW,MAAM,oCAAoC,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAMH,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,YAAY;IAoClC,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC3C,CAAC;CACD,CAAA;AA7BA;IADC,QAAQ,EAAE;sCACG;AAWd;IADC,QAAQ,EAAE;gDACa;AAaxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;qDACxB;AAlCjC,QAAQ;IALb,aAAa,CAAC;QACd,GAAG,EAAE,eAAe;QACpB,QAAQ,EAAE,gBAAgB;QAC1B,MAAM,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC;KAC1C,CAAC;GACI,QAAQ,CAuCb;AAED,QAAQ,CAAC,MAAM,EAAE,CAAC;AAElB,eAAe,QAAQ,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport TreeItemBase from \"./TreeItemBase.js\";\n// Template\nimport TreeItemTemplate from \"./generated/templates/TreeItemTemplate.lit.js\";\n\n// Styles\nimport treeItemCss from \"./generated/themes/TreeItem.css.js\";\n\n/**\n * @class\n * <h3 class=\"comment-api-title\">Overview</h3>\n * The <code>ui5-tree-item</code> represents a node in a tree structure, shown as a <code>ui5-list</code>.\n * <br>\n * This is the item to use inside a <code>ui5-tree</code>.\n * You can represent an arbitrary tree structure by recursively nesting tree items.\n *\n * <h3>CSS Shadow Parts</h3>\n *\n * <ui5-link target=\"_blank\" href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/::part\">CSS Shadow Parts</ui5-link> allow developers to style elements inside the Shadow DOM.\n * <br>\n * The <code>ui5-tree-item</code> exposes the following CSS Shadow Parts:\n * <ul>\n * <li>title - Used to style the title of the tree list item</li>\n * <li>additionalText - Used to style the additionalText of the tree list item</li>\n * <li>icon - Used to style the icon of the tree list item</li>\n * </ul>\n *\n * <h3>ES6 Module Import</h3>\n * <code>import \"@ui5/webcomponents/dist/TreeItem.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webc.main.TreeItem\n * @extends sap.ui.webc.main.TreeItemBase\n * @tagname ui5-tree-item\n * @public\n * @implements sap.ui.webc.main.ITreeItem\n * @since 1.0.0-rc.8\n */\n@customElement({\n\ttag: \"ui5-tree-item\",\n\ttemplate: TreeItemTemplate,\n\tstyles: [TreeItemBase.styles, treeItemCss],\n})\nclass TreeItem extends TreeItemBase {\n\t/**\n\t * Defines the text of the tree item.\n\t *\n\t * @public\n\t * @type {string}\n\t * @name sap.ui.webc.main.TreeItem.prototype.text\n\t * @defaultValue \"\"\n\t */\n\t@property()\n\ttext!: string;\n\n\t/**\n\t * Defines the <code>additionalText</code>, displayed in the end of the tree item.\n\t * @type {string}\n\t * @name sap.ui.webc.main.TreeItem.prototype.additionalText\n\t * @defaultvalue \"\"\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\tadditionalText!: string;\n\n\t/**\n\t * Defines the state of the <code>additionalText</code>.\n\t * <br>\n\t * Available options are: <code>\"None\"</code> (by default), <code>\"Success\"</code>, <code>\"Warning\"</code>, <code>\"Information\"</code> and <code>\"Error\"</code>.\n\t * @type {sap.ui.webc.base.types.ValueState}\n\t * @name sap.ui.webc.main.TreeItem.prototype.additionalTextState\n\t * @defaultvalue \"None\"\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: ValueState, defaultValue: ValueState.None })\n\tadditionalTextState!: `${ValueState}`;\n\n\tget _showTitle() {\n\t\treturn this.text.length && !this._minimal;\n\t}\n}\n\nTreeItem.define();\n\nexport default TreeItem;\n"]}
|
package/dist/TreeItemBase.d.ts
CHANGED
|
@@ -101,7 +101,7 @@ declare class TreeItemBase extends ListItem {
|
|
|
101
101
|
* @public
|
|
102
102
|
* @since 1.0.0-rc.15
|
|
103
103
|
*/
|
|
104
|
-
additionalTextState: ValueState
|
|
104
|
+
additionalTextState: `${ValueState}`;
|
|
105
105
|
/**
|
|
106
106
|
* Defines the accessible name of the component.
|
|
107
107
|
*
|
|
@@ -159,7 +159,7 @@ declare class TreeItemBase extends ListItem {
|
|
|
159
159
|
* @since 1.10.0
|
|
160
160
|
* @private
|
|
161
161
|
*/
|
|
162
|
-
ariaHaspopup?: HasPopup
|
|
162
|
+
ariaHaspopup?: `${HasPopup}`;
|
|
163
163
|
/**
|
|
164
164
|
* Defines the items of the component.
|
|
165
165
|
* <br />
|
|
@@ -195,7 +195,7 @@ declare class TreeItemBase extends ListItem {
|
|
|
195
195
|
ariaSelectedText: string | undefined;
|
|
196
196
|
listItemAriaLabel: string | undefined;
|
|
197
197
|
ariaOwns: string | undefined;
|
|
198
|
-
ariaHaspopup:
|
|
198
|
+
ariaHaspopup: "Dialog" | "Grid" | "ListBox" | "Menu" | "Tree" | undefined;
|
|
199
199
|
ariaChecked: boolean;
|
|
200
200
|
ariaSelected: boolean;
|
|
201
201
|
ariaLabel: string;
|
package/dist/TreeItemBase.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeItemBase.js","sourceRoot":"","sources":["../src/TreeItemBase.ts"],"names":[],"mappings":"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","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport type { ClassMap } from \"@ui5/webcomponents-base/dist/types.js\";\nimport { isLeft, isRight } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport ListItem from \"./ListItem.js\";\nimport Icon from \"./Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-right-arrow.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport {\n\tTREE_ITEM_ARIA_LABEL,\n\tTREE_ITEM_EXPAND_NODE,\n\tTREE_ITEM_COLLAPSE_NODE,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport TreeItemBaseTemplate from \"./generated/templates/TreeItemBaseTemplate.lit.js\";\n\n// Styles\nimport treeItemCss from \"./generated/themes/TreeItem.css.js\";\n\nimport HasPopup from \"./types/HasPopup.js\";\n\ntype TreeItemBaseEventDetail = {\n\titem: TreeItemBase,\n}\ntype TreeItemBaseToggleEventDetail = TreeItemBaseEventDetail;\ntype TreeItemBaseStepInEventDetail = TreeItemBaseEventDetail;\ntype TreeItemBaseStepOutEventDetail = TreeItemBaseEventDetail;\n\n/**\n * A class to serve as a foundation\n * for the <code>TreeItem</code> and <code>TreeItemCustom</code> classes.\n *\n * @abstract\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webc.main.TreeItemBase\n * @extends sap.ui.webc.main.ListItem\n * @public\n */\n@customElement({\n\tlanguageAware: true,\n\ttemplate: TreeItemBaseTemplate,\n\tstyles: [\n\t\tListItem.styles,\n\t\ttreeItemCss,\n\t],\n\tdependencies: [\n\t\t...ListItem.dependencies,\n\t\tIcon,\n\t],\n})\n/**\n * Fired when the user interacts with the expand/collapse button of the tree list item.\n * @event\n * @param {HTMLElement} item the toggled item.\n * @protected\n */\n@event(\"toggle\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired when the user drills down into the tree hierarchy by pressing the right arrow on the tree node.\n *\n * @event sap.ui.webc.main.TreeItemBase#step-in\n * @param {HTMLElement} item the item on which right arrow was pressed.\n * @protected\n */\n@event(\"step-in\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired when the user goes up the tree hierarchy by pressing the left arrow on the tree node.\n *\n * @event sap.ui.webc.main.TreeItemBase#step-out\n * @param {HTMLElement} item the item on which left arrow was pressed.\n * @protected\n */\n@event(\"step-out\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n})\nclass TreeItemBase extends ListItem {\n\t/**\n\t * Defines the indentation of the tree list item. Use level 1 for tree list items, representing top-level tree nodes.\n\t *\n\t * @type {sap.ui.webc.base.types.Integer}\n\t * @name sap.ui.webc.main.TreeItemBase.prototype.level\n\t * @protected\n\t * @defaultValue 1\n\t */\n\t@property({ validator: Integer, defaultValue: 1 })\n\tlevel!: number;\n\n\t/**\n\t * If set, an icon will be displayed before the text of the tree list item.\n\t *\n\t * @public\n\t * @name sap.ui.webc.main.TreeItemBase.prototype.icon\n\t * @type {string}\n\t * @defaultValue \"\"\n\t */\n\t@property()\n\ticon!: string;\n\n\t/**\n\t * Defines whether the tree list item should display an expand/collapse button.\n\t *\n\t * @type {boolean}\n\t * @name sap.ui.webc.main.TreeItemBase.prototype.showToggleButton\n\t * @defaultvalue false\n\t * @protected\n\t */\n\t@property({ type: Boolean })\n\tshowToggleButton!: boolean;\n\n\t/**\n\t * Defines whether the tree list item will show a collapse or expand icon inside its toggle button.\n\t *\n\t * @type {boolean}\n\t * @name sap.ui.webc.main.TreeItemBase.prototype.expanded\n\t * @defaultvalue false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\texpanded!: boolean;\n\n\t/**\n\t* Defines whether the selection of a tree node is displayed as partially selected.\n\t* <br><br>\n\t* <b>Note:</b> The indeterminate state can be set only programmatically and can’t be achieved by user\n\t* interaction, meaning that the resulting visual state depends on the values of the <code>indeterminate</code>\n\t* and <code>selected</code> properties:\n\t* <ul>\n\t* <li> If a tree node has both <code>selected</code> and <code>indeterminate</code> set to <code>true</code>, it is displayed as partially selected.\n\t* <li> If a tree node has <code>selected</code> set to <code>true</code> and <code>indeterminate</code> set to <code>false</code>, it is displayed as selected.\n\t* <li> If a tree node has <code>selected</code> set to <code>false</code>, it is displayed as not selected regardless of the value of the <code>indeterminate</code> property.\n\t* </ul>\n\t* <br>\n\t* <b>Note:</b> This property takes effect only when the <code>ui5-tree</code> is in <code>MultiSelect</code> mode.\n\t* @type {boolean}\n\t* @name sap.ui.webc.main.TreeItemBase.prototype.indeterminate\n\t* @defaultvalue false\n\t* @public\n\t* @since 1.1.0\n\t*/\n\t@property({ type: Boolean })\n\tindeterminate!: boolean;\n\n\t/**\n\t * Defines whether the tree node has children, even if currently no other tree nodes are slotted inside.\n\t * <br>\n\t * <i>Note:</i> This property is useful for showing big tree structures where not all nodes are initially loaded due to performance reasons.\n\t * Set this to <code>true</code> for nodes you intend to load lazily, when the user clicks the expand button.\n\t * It is not necessary to set this property otherwise. If a tree item has children, the expand button will be displayed anyway.\n\t *\n\t * @type {boolean}\n\t * @name sap.ui.webc.main.TreeItemBase.prototype.hasChildren\n\t * @defaultvalue false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thasChildren!: boolean;\n\n\t/**\n\t * Defines the state of the <code>additionalText</code>.\n\t * <br>\n\t * Available options are: <code>\"None\"</code> (by default), <code>\"Success\"</code>, <code>\"Warning\"</code>, <code>\"Information\"</code> and <code>\"Error\"</code>.\n\t * @type {sap.ui.webc.base.types.ValueState}\n\t * @name sap.ui.webc.main.TreeItemBase.prototype.additionalTextState\n\t * @defaultvalue \"None\"\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: ValueState, defaultValue: ValueState.None })\n\tadditionalTextState!: ValueState;\n\n\t/**\n\t * Defines the accessible name of the component.\n\t *\n\t * @type {string}\n\t * @name sap.ui.webc.main.TreeItemBase.prototype.accessibleName\n\t * @defaultvalue: \"\"\n\t * @public\n\t * @since 1.8.0\n\t */\n\t@property()\n\taccessibleName!: string;\n\n\t/**\n\t * Defines whether the toggle button is shown at the end, rather than at the beginning of the item\n\t *\n\t * @protected\n\t * @since 1.0.0-rc.8\n\t */\n\t@property({ type: Boolean })\n\t_toggleButtonEnd!: boolean;\n\n\t/**\n\t * Defines whether the item shows minimal details - only icon (no text or toggle button)\n\t *\n\t * @protected\n\t * @since 1.0.0-rc.8\n\t */\n\t@property({ type: Boolean })\n\t_minimal!: boolean;\n\n\t/**\n\t * @private\n\t * @since 1.0.0-rc.11\n\t */\n\t@property({ validator: Integer, defaultValue: 1, noAttribute: true })\n\t_setsize!: number;\n\n\t/**\n\t * @private\n\t * @since 1.0.0-rc.11\n\t */\n\t@property({ validator: Integer, defaultValue: 1, noAttribute: true })\n\t_posinset!: number;\n\n\t/**\n\t * Defines the description for the accessible role of the component.\n\t * @protected\n\t * @type {string}\n\t * @defaultvalue undefined\n\t * @since 1.10.0\n\t */\n\t@property({ type: String, defaultValue: undefined, noAttribute: true })\n\taccessibleRoleDescription?: string;\n\n\t/**\n\t * Defines if the item should be collapsible or not.\n\t * It is true, for example, for the items inside the Popover of the Side Navigation\n\t * @private\n\t * @type {boolean}\n\t * @defaultvalue false\n\t * @since 1.10.0\n\t */\n\t@property({ type: Boolean })\n\t_fixed!: boolean;\n\n\t/**\n\t * Defines the availability and type of interactive popup element that can be triggered by the component on which the property is set.\n\t * @type {sap.ui.webc.main.types.HasPopup}\n\t * @since 1.10.0\n\t * @private\n\t */\n\t@property({ type: HasPopup, noAttribute: true })\n\tariaHaspopup?: HasPopup;\n\n\t/**\n\t * Defines the items of the component.\n\t * <br />\n\t * <br />\n\t * <b>Note:</b> Use <code>ui5-tree-item</code> or <code>ui5-tree-item-custom</code>\n\t *\n\t * @type {sap.ui.webc.main.ITreeItem[]}\n\t * @name sap.ui.webc.main.TreeItemBase.prototype.default\n\t * @slot items\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true })\n\titems!: Array<TreeItemBase>;\n\n\tonBeforeRendering() {\n\t\tthis.actionable = false;\n\t\tthis.showToggleButton = this.requiresToggleButton;\n\t}\n\n\tget classes(): ClassMap {\n\t\tconst allClasses = super.classes;\n\t\tallClasses.main[\"ui5-li-root-tree\"] = true;\n\t\treturn allClasses;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tpreContent: {\n\t\t\t\t\"padding-inline-start\": `calc(var(--_ui5-tree-indent-step) * ${this.effectiveLevel})`,\n\t\t\t},\n\t\t};\n\t}\n\n\tget requiresToggleButton() {\n\t\treturn !this._fixed ? (this.hasChildren || this.items.length > 0) : false;\n\t}\n\n\tget effectiveLevel() {\n\t\treturn this.level - 1;\n\t}\n\n\tget hasParent() {\n\t\treturn this.level > 1;\n\t}\n\n\tget _toggleIconName() {\n\t\treturn this.expanded ? \"navigation-down-arrow\" : \"navigation-right-arrow\";\n\t}\n\n\tget _showToggleButtonBeginning() {\n\t\treturn this.showToggleButton && !this._minimal && !this._toggleButtonEnd;\n\t}\n\n\tget _showToggleButtonEnd() {\n\t\treturn this.showToggleButton && !this._minimal && this._toggleButtonEnd;\n\t}\n\n\tget _ariaLabel() {\n\t\treturn this.accessibleRoleDescription ? undefined : TreeItemBase.i18nBundle.getText(TREE_ITEM_ARIA_LABEL);\n\t}\n\n\tget _accInfo() {\n\t\tconst accInfoSettings = {\n\t\t\trole: this._minimal ? \"menuitemradio\" : \"treeitem\",\n\t\t\tariaExpanded: this.showToggleButton && !this._minimal ? this.expanded : undefined,\n\t\t\tariaLevel: this._minimal ? undefined : this.level,\n\t\t\tposinset: this._posinset,\n\t\t\tsetsize: this._setsize,\n\t\t\tariaSelectedText: this.ariaSelectedText,\n\t\t\tlistItemAriaLabel: !this.accessibleName ? this._ariaLabel : undefined,\n\t\t\tariaOwns: this.expanded ? `${this._id}-subtree` : undefined,\n\t\t\tariaHaspopup: this.ariaHaspopup || undefined,\n\t\t\tariaChecked: false,\n\t\t\tariaSelected: false,\n\t\t};\n\n\t\tif (this._minimal) {\n\t\t\taccInfoSettings.ariaChecked = this.selected;\n\t\t} else {\n\t\t\taccInfoSettings.ariaSelected = this.selected;\n\t\t}\n\n\t\treturn { ...super._accInfo, ...accInfoSettings };\n\t}\n\n\t/**\n\t * Used to duck-type TreeItem elements without using instanceof\n\t * @returns {boolean}\n\t * @protected\n\t */\n\tget isTreeItem() {\n\t\treturn true;\n\t}\n\n\t/**\n\t * Call this method to manually switch the <code>expanded</code> state of a tree item.\n\t * @public\n\t * @method\n\t * @name sap.ui.webc.main.TreeItemBase#toggle\n\t */\n\ttoggle() {\n\t\tthis.expanded = !this.expanded;\n\t}\n\n\t_toggleClick(e: MouseEvent | KeyboardEvent) {\n\t\te.stopPropagation();\n\t\tthis.fireEvent<TreeItemBaseToggleEventDetail>(\"toggle\", { item: this });\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tsuper._onkeydown(e);\n\n\t\tif (!this._fixed && this.showToggleButton && isRight(e)) {\n\t\t\tif (!this.expanded) {\n\t\t\t\tthis.fireEvent<TreeItemBaseToggleEventDetail>(\"toggle\", { item: this });\n\t\t\t} else {\n\t\t\t\tthis.fireEvent<TreeItemBaseStepInEventDetail>(\"step-in\", { item: this });\n\t\t\t}\n\t\t}\n\n\t\tif (!this._fixed && isLeft(e)) {\n\t\t\tif (this.expanded) {\n\t\t\t\tthis.fireEvent<TreeItemBaseToggleEventDetail>(\"toggle\", { item: this });\n\t\t\t} else if (this.hasParent) {\n\t\t\t\tthis.fireEvent<TreeItemBaseStepOutEventDetail>(\"step-out\", { item: this });\n\t\t\t}\n\t\t}\n\t}\n\n\tget iconAccessibleName() {\n\t\treturn this.expanded ? TreeItemBase.i18nBundle.getText(TREE_ITEM_COLLAPSE_NODE) : TreeItemBase.i18nBundle.getText(TREE_ITEM_EXPAND_NODE);\n\t}\n\n\tstatic async onDefine() {\n\t\t[TreeItemBase.i18nBundle] = await Promise.all([\n\t\t\tgetI18nBundle(\"@ui5/webcomponents\"),\n\t\t\tsuper.onDefine(),\n\t\t]);\n\t}\n}\n\nexport default TreeItemBase;\nexport type {\n\tTreeItemBaseToggleEventDetail,\n\tTreeItemBaseStepInEventDetail,\n\tTreeItemBaseStepOutEventDetail,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"TreeItemBase.js","sourceRoot":"","sources":["../src/TreeItemBase.ts"],"names":[],"mappings":"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","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport type { ClassMap } from \"@ui5/webcomponents-base/dist/types.js\";\nimport { isLeft, isRight } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport ListItem from \"./ListItem.js\";\nimport Icon from \"./Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-right-arrow.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport {\n\tTREE_ITEM_ARIA_LABEL,\n\tTREE_ITEM_EXPAND_NODE,\n\tTREE_ITEM_COLLAPSE_NODE,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport TreeItemBaseTemplate from \"./generated/templates/TreeItemBaseTemplate.lit.js\";\n\n// Styles\nimport treeItemCss from \"./generated/themes/TreeItem.css.js\";\n\nimport HasPopup from \"./types/HasPopup.js\";\n\ntype TreeItemBaseEventDetail = {\n\titem: TreeItemBase,\n}\ntype TreeItemBaseToggleEventDetail = TreeItemBaseEventDetail;\ntype TreeItemBaseStepInEventDetail = TreeItemBaseEventDetail;\ntype TreeItemBaseStepOutEventDetail = TreeItemBaseEventDetail;\n\n/**\n * A class to serve as a foundation\n * for the <code>TreeItem</code> and <code>TreeItemCustom</code> classes.\n *\n * @abstract\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webc.main.TreeItemBase\n * @extends sap.ui.webc.main.ListItem\n * @public\n */\n@customElement({\n\tlanguageAware: true,\n\ttemplate: TreeItemBaseTemplate,\n\tstyles: [\n\t\tListItem.styles,\n\t\ttreeItemCss,\n\t],\n\tdependencies: [\n\t\t...ListItem.dependencies,\n\t\tIcon,\n\t],\n})\n/**\n * Fired when the user interacts with the expand/collapse button of the tree list item.\n * @event\n * @param {HTMLElement} item the toggled item.\n * @protected\n */\n@event(\"toggle\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired when the user drills down into the tree hierarchy by pressing the right arrow on the tree node.\n *\n * @event sap.ui.webc.main.TreeItemBase#step-in\n * @param {HTMLElement} item the item on which right arrow was pressed.\n * @protected\n */\n@event(\"step-in\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired when the user goes up the tree hierarchy by pressing the left arrow on the tree node.\n *\n * @event sap.ui.webc.main.TreeItemBase#step-out\n * @param {HTMLElement} item the item on which left arrow was pressed.\n * @protected\n */\n@event(\"step-out\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n})\nclass TreeItemBase extends ListItem {\n\t/**\n\t * Defines the indentation of the tree list item. Use level 1 for tree list items, representing top-level tree nodes.\n\t *\n\t * @type {sap.ui.webc.base.types.Integer}\n\t * @name sap.ui.webc.main.TreeItemBase.prototype.level\n\t * @protected\n\t * @defaultValue 1\n\t */\n\t@property({ validator: Integer, defaultValue: 1 })\n\tlevel!: number;\n\n\t/**\n\t * If set, an icon will be displayed before the text of the tree list item.\n\t *\n\t * @public\n\t * @name sap.ui.webc.main.TreeItemBase.prototype.icon\n\t * @type {string}\n\t * @defaultValue \"\"\n\t */\n\t@property()\n\ticon!: string;\n\n\t/**\n\t * Defines whether the tree list item should display an expand/collapse button.\n\t *\n\t * @type {boolean}\n\t * @name sap.ui.webc.main.TreeItemBase.prototype.showToggleButton\n\t * @defaultvalue false\n\t * @protected\n\t */\n\t@property({ type: Boolean })\n\tshowToggleButton!: boolean;\n\n\t/**\n\t * Defines whether the tree list item will show a collapse or expand icon inside its toggle button.\n\t *\n\t * @type {boolean}\n\t * @name sap.ui.webc.main.TreeItemBase.prototype.expanded\n\t * @defaultvalue false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\texpanded!: boolean;\n\n\t/**\n\t* Defines whether the selection of a tree node is displayed as partially selected.\n\t* <br><br>\n\t* <b>Note:</b> The indeterminate state can be set only programmatically and can’t be achieved by user\n\t* interaction, meaning that the resulting visual state depends on the values of the <code>indeterminate</code>\n\t* and <code>selected</code> properties:\n\t* <ul>\n\t* <li> If a tree node has both <code>selected</code> and <code>indeterminate</code> set to <code>true</code>, it is displayed as partially selected.\n\t* <li> If a tree node has <code>selected</code> set to <code>true</code> and <code>indeterminate</code> set to <code>false</code>, it is displayed as selected.\n\t* <li> If a tree node has <code>selected</code> set to <code>false</code>, it is displayed as not selected regardless of the value of the <code>indeterminate</code> property.\n\t* </ul>\n\t* <br>\n\t* <b>Note:</b> This property takes effect only when the <code>ui5-tree</code> is in <code>MultiSelect</code> mode.\n\t* @type {boolean}\n\t* @name sap.ui.webc.main.TreeItemBase.prototype.indeterminate\n\t* @defaultvalue false\n\t* @public\n\t* @since 1.1.0\n\t*/\n\t@property({ type: Boolean })\n\tindeterminate!: boolean;\n\n\t/**\n\t * Defines whether the tree node has children, even if currently no other tree nodes are slotted inside.\n\t * <br>\n\t * <i>Note:</i> This property is useful for showing big tree structures where not all nodes are initially loaded due to performance reasons.\n\t * Set this to <code>true</code> for nodes you intend to load lazily, when the user clicks the expand button.\n\t * It is not necessary to set this property otherwise. If a tree item has children, the expand button will be displayed anyway.\n\t *\n\t * @type {boolean}\n\t * @name sap.ui.webc.main.TreeItemBase.prototype.hasChildren\n\t * @defaultvalue false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thasChildren!: boolean;\n\n\t/**\n\t * Defines the state of the <code>additionalText</code>.\n\t * <br>\n\t * Available options are: <code>\"None\"</code> (by default), <code>\"Success\"</code>, <code>\"Warning\"</code>, <code>\"Information\"</code> and <code>\"Error\"</code>.\n\t * @type {sap.ui.webc.base.types.ValueState}\n\t * @name sap.ui.webc.main.TreeItemBase.prototype.additionalTextState\n\t * @defaultvalue \"None\"\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: ValueState, defaultValue: ValueState.None })\n\tadditionalTextState!: `${ValueState}`;\n\n\t/**\n\t * Defines the accessible name of the component.\n\t *\n\t * @type {string}\n\t * @name sap.ui.webc.main.TreeItemBase.prototype.accessibleName\n\t * @defaultvalue: \"\"\n\t * @public\n\t * @since 1.8.0\n\t */\n\t@property()\n\taccessibleName!: string;\n\n\t/**\n\t * Defines whether the toggle button is shown at the end, rather than at the beginning of the item\n\t *\n\t * @protected\n\t * @since 1.0.0-rc.8\n\t */\n\t@property({ type: Boolean })\n\t_toggleButtonEnd!: boolean;\n\n\t/**\n\t * Defines whether the item shows minimal details - only icon (no text or toggle button)\n\t *\n\t * @protected\n\t * @since 1.0.0-rc.8\n\t */\n\t@property({ type: Boolean })\n\t_minimal!: boolean;\n\n\t/**\n\t * @private\n\t * @since 1.0.0-rc.11\n\t */\n\t@property({ validator: Integer, defaultValue: 1, noAttribute: true })\n\t_setsize!: number;\n\n\t/**\n\t * @private\n\t * @since 1.0.0-rc.11\n\t */\n\t@property({ validator: Integer, defaultValue: 1, noAttribute: true })\n\t_posinset!: number;\n\n\t/**\n\t * Defines the description for the accessible role of the component.\n\t * @protected\n\t * @type {string}\n\t * @defaultvalue undefined\n\t * @since 1.10.0\n\t */\n\t@property({ type: String, defaultValue: undefined, noAttribute: true })\n\taccessibleRoleDescription?: string;\n\n\t/**\n\t * Defines if the item should be collapsible or not.\n\t * It is true, for example, for the items inside the Popover of the Side Navigation\n\t * @private\n\t * @type {boolean}\n\t * @defaultvalue false\n\t * @since 1.10.0\n\t */\n\t@property({ type: Boolean })\n\t_fixed!: boolean;\n\n\t/**\n\t * Defines the availability and type of interactive popup element that can be triggered by the component on which the property is set.\n\t * @type {sap.ui.webc.main.types.HasPopup}\n\t * @since 1.10.0\n\t * @private\n\t */\n\t@property({ type: HasPopup, noAttribute: true })\n\tariaHaspopup?: `${HasPopup}`;\n\n\t/**\n\t * Defines the items of the component.\n\t * <br />\n\t * <br />\n\t * <b>Note:</b> Use <code>ui5-tree-item</code> or <code>ui5-tree-item-custom</code>\n\t *\n\t * @type {sap.ui.webc.main.ITreeItem[]}\n\t * @name sap.ui.webc.main.TreeItemBase.prototype.default\n\t * @slot items\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true })\n\titems!: Array<TreeItemBase>;\n\n\tonBeforeRendering() {\n\t\tthis.actionable = false;\n\t\tthis.showToggleButton = this.requiresToggleButton;\n\t}\n\n\tget classes(): ClassMap {\n\t\tconst allClasses = super.classes;\n\t\tallClasses.main[\"ui5-li-root-tree\"] = true;\n\t\treturn allClasses;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tpreContent: {\n\t\t\t\t\"padding-inline-start\": `calc(var(--_ui5-tree-indent-step) * ${this.effectiveLevel})`,\n\t\t\t},\n\t\t};\n\t}\n\n\tget requiresToggleButton() {\n\t\treturn !this._fixed ? (this.hasChildren || this.items.length > 0) : false;\n\t}\n\n\tget effectiveLevel() {\n\t\treturn this.level - 1;\n\t}\n\n\tget hasParent() {\n\t\treturn this.level > 1;\n\t}\n\n\tget _toggleIconName() {\n\t\treturn this.expanded ? \"navigation-down-arrow\" : \"navigation-right-arrow\";\n\t}\n\n\tget _showToggleButtonBeginning() {\n\t\treturn this.showToggleButton && !this._minimal && !this._toggleButtonEnd;\n\t}\n\n\tget _showToggleButtonEnd() {\n\t\treturn this.showToggleButton && !this._minimal && this._toggleButtonEnd;\n\t}\n\n\tget _ariaLabel() {\n\t\treturn this.accessibleRoleDescription ? undefined : TreeItemBase.i18nBundle.getText(TREE_ITEM_ARIA_LABEL);\n\t}\n\n\tget _accInfo() {\n\t\tconst accInfoSettings = {\n\t\t\trole: this._minimal ? \"menuitemradio\" : \"treeitem\",\n\t\t\tariaExpanded: this.showToggleButton && !this._minimal ? this.expanded : undefined,\n\t\t\tariaLevel: this._minimal ? undefined : this.level,\n\t\t\tposinset: this._posinset,\n\t\t\tsetsize: this._setsize,\n\t\t\tariaSelectedText: this.ariaSelectedText,\n\t\t\tlistItemAriaLabel: !this.accessibleName ? this._ariaLabel : undefined,\n\t\t\tariaOwns: this.expanded ? `${this._id}-subtree` : undefined,\n\t\t\tariaHaspopup: this.ariaHaspopup || undefined,\n\t\t\tariaChecked: false,\n\t\t\tariaSelected: false,\n\t\t};\n\n\t\tif (this._minimal) {\n\t\t\taccInfoSettings.ariaChecked = this.selected;\n\t\t} else {\n\t\t\taccInfoSettings.ariaSelected = this.selected;\n\t\t}\n\n\t\treturn { ...super._accInfo, ...accInfoSettings };\n\t}\n\n\t/**\n\t * Used to duck-type TreeItem elements without using instanceof\n\t * @returns {boolean}\n\t * @protected\n\t */\n\tget isTreeItem() {\n\t\treturn true;\n\t}\n\n\t/**\n\t * Call this method to manually switch the <code>expanded</code> state of a tree item.\n\t * @public\n\t * @method\n\t * @name sap.ui.webc.main.TreeItemBase#toggle\n\t */\n\ttoggle() {\n\t\tthis.expanded = !this.expanded;\n\t}\n\n\t_toggleClick(e: MouseEvent | KeyboardEvent) {\n\t\te.stopPropagation();\n\t\tthis.fireEvent<TreeItemBaseToggleEventDetail>(\"toggle\", { item: this });\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tsuper._onkeydown(e);\n\n\t\tif (!this._fixed && this.showToggleButton && isRight(e)) {\n\t\t\tif (!this.expanded) {\n\t\t\t\tthis.fireEvent<TreeItemBaseToggleEventDetail>(\"toggle\", { item: this });\n\t\t\t} else {\n\t\t\t\tthis.fireEvent<TreeItemBaseStepInEventDetail>(\"step-in\", { item: this });\n\t\t\t}\n\t\t}\n\n\t\tif (!this._fixed && isLeft(e)) {\n\t\t\tif (this.expanded) {\n\t\t\t\tthis.fireEvent<TreeItemBaseToggleEventDetail>(\"toggle\", { item: this });\n\t\t\t} else if (this.hasParent) {\n\t\t\t\tthis.fireEvent<TreeItemBaseStepOutEventDetail>(\"step-out\", { item: this });\n\t\t\t}\n\t\t}\n\t}\n\n\tget iconAccessibleName() {\n\t\treturn this.expanded ? TreeItemBase.i18nBundle.getText(TREE_ITEM_COLLAPSE_NODE) : TreeItemBase.i18nBundle.getText(TREE_ITEM_EXPAND_NODE);\n\t}\n\n\tstatic async onDefine() {\n\t\t[TreeItemBase.i18nBundle] = await Promise.all([\n\t\t\tgetI18nBundle(\"@ui5/webcomponents\"),\n\t\t\tsuper.onDefine(),\n\t\t]);\n\t}\n}\n\nexport default TreeItemBase;\nexport type {\n\tTreeItemBaseToggleEventDetail,\n\tTreeItemBaseStepInEventDetail,\n\tTreeItemBaseStepOutEventDetail,\n};\n"]}
|