@ui5/webcomponents 1.9.2 → 1.10.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/dist/Avatar.d.ts +251 -0
- package/dist/Avatar.js +203 -406
- package/dist/Avatar.js.map +1 -0
- package/dist/AvatarGroup.js +8 -8
- package/dist/Badge.d.ts +82 -0
- package/dist/Badge.js +65 -117
- package/dist/Badge.js.map +1 -0
- package/dist/Breadcrumbs.d.ts +200 -0
- package/dist/Breadcrumbs.js +438 -584
- package/dist/Breadcrumbs.js.map +1 -0
- package/dist/BreadcrumbsItem.d.ts +73 -0
- package/dist/BreadcrumbsItem.js +33 -87
- package/dist/BreadcrumbsItem.js.map +1 -0
- package/dist/BusyIndicator.js +6 -7
- package/dist/Button.d.ts +257 -0
- package/dist/Button.js +236 -456
- package/dist/Button.js.map +1 -0
- package/dist/Calendar.d.ts +251 -0
- package/dist/Calendar.js +266 -350
- package/dist/Calendar.js.map +1 -0
- package/dist/CalendarDate.d.ts +28 -0
- package/dist/CalendarDate.js +20 -30
- package/dist/CalendarDate.js.map +1 -0
- package/dist/CalendarHeader.d.ts +87 -0
- package/dist/CalendarHeader.js +144 -198
- package/dist/CalendarHeader.js.map +1 -0
- package/dist/CalendarPart.d.ts +53 -0
- package/dist/CalendarPart.js +71 -92
- package/dist/CalendarPart.js.map +1 -0
- package/dist/Card.d.ts +91 -0
- package/dist/Card.js +68 -123
- package/dist/Card.js.map +1 -0
- package/dist/CardHeader.d.ts +123 -0
- package/dist/CardHeader.js +152 -240
- package/dist/CardHeader.js.map +1 -0
- package/dist/Carousel.js +33 -11
- package/dist/CheckBox.d.ts +256 -0
- package/dist/CheckBox.js +219 -410
- package/dist/CheckBox.js.map +1 -0
- package/dist/ColorPalette.d.ts +140 -0
- package/dist/ColorPalette.js +362 -455
- package/dist/ColorPalette.js.map +1 -0
- package/dist/ColorPaletteItem.d.ts +68 -0
- package/dist/ColorPaletteItem.js +66 -114
- package/dist/ColorPaletteItem.js.map +1 -0
- package/dist/ColorPalettePopover.d.ts +127 -0
- package/dist/ColorPalettePopover.js +144 -203
- package/dist/ColorPalettePopover.js.map +1 -0
- package/dist/ColorPicker.d.ts +147 -0
- package/dist/ColorPicker.js +371 -556
- package/dist/ColorPicker.js.map +1 -0
- package/dist/ComboBox.js +9 -9
- package/dist/ComboBoxGroupItem.js +6 -6
- package/dist/ComboBoxItem.js +4 -4
- package/dist/CustomListItem.d.ts +44 -0
- package/dist/CustomListItem.js +52 -79
- package/dist/CustomListItem.js.map +1 -0
- package/dist/DateComponentBase.d.ts +83 -0
- package/dist/DateComponentBase.js +101 -143
- package/dist/DateComponentBase.js.map +1 -0
- package/dist/DatePicker.d.ts +452 -0
- package/dist/DatePicker.js +540 -737
- package/dist/DatePicker.js.map +1 -0
- package/dist/DateRangePicker.d.ts +169 -0
- package/dist/DateRangePicker.js +269 -315
- package/dist/DateRangePicker.js.map +1 -0
- package/dist/DateTimePicker.d.ts +207 -0
- package/dist/DateTimePicker.js +254 -339
- package/dist/DateTimePicker.js.map +1 -0
- package/dist/DayPicker.d.ts +243 -0
- package/dist/DayPicker.js +605 -730
- package/dist/DayPicker.js.map +1 -0
- package/dist/Dialog.d.ts +238 -0
- package/dist/Dialog.js +380 -606
- package/dist/Dialog.js.map +1 -0
- package/dist/DurationPicker.js +5 -5
- package/dist/FileUploader.d.ts +238 -0
- package/dist/FileUploader.js +305 -489
- package/dist/FileUploader.js.map +1 -0
- package/dist/Filters.d.ts +5 -0
- package/dist/Filters.js +10 -21
- package/dist/Filters.js.map +1 -0
- package/dist/GroupHeaderListItem.d.ts +45 -0
- package/dist/GroupHeaderListItem.js +42 -76
- package/dist/GroupHeaderListItem.js.map +1 -0
- package/dist/Icon.d.ts +252 -0
- package/dist/Icon.js +179 -306
- package/dist/Icon.js.map +1 -0
- package/dist/Input.d.ts +607 -0
- package/dist/Input.js +1095 -1627
- package/dist/Input.js.map +1 -0
- package/dist/Interfaces.d.ts +161 -0
- package/dist/Interfaces.js +45 -85
- package/dist/Interfaces.js.map +1 -0
- package/dist/Label.d.ts +98 -0
- package/dist/Label.js +63 -124
- package/dist/Label.js.map +1 -0
- package/dist/Link.d.ts +222 -0
- package/dist/Link.js +177 -358
- package/dist/Link.js.map +1 -0
- package/dist/List.d.ts +383 -0
- package/dist/List.js +706 -1029
- package/dist/List.js.map +1 -0
- package/dist/ListItem.d.ts +201 -0
- package/dist/ListItem.js +298 -407
- package/dist/ListItem.js.map +1 -0
- package/dist/ListItemBase.d.ts +61 -0
- package/dist/ListItemBase.js +114 -167
- package/dist/ListItemBase.js.map +1 -0
- package/dist/Menu.d.ts +187 -0
- package/dist/Menu.js +428 -453
- package/dist/Menu.js.map +1 -0
- package/dist/MenuItem.d.ts +124 -0
- package/dist/MenuItem.js +66 -166
- package/dist/MenuItem.js.map +1 -0
- package/dist/MessageStrip.d.ts +135 -0
- package/dist/MessageStrip.js +119 -207
- package/dist/MessageStrip.js.map +1 -0
- package/dist/MonthPicker.d.ts +109 -0
- package/dist/MonthPicker.js +260 -285
- package/dist/MonthPicker.js.map +1 -0
- package/dist/MultiComboBox.js +13 -11
- package/dist/MultiComboBoxGroupItem.js +6 -6
- package/dist/MultiComboBoxItem.js +4 -4
- package/dist/MultiInput.js +13 -10
- package/dist/Option.js +6 -6
- package/dist/Panel.d.ts +238 -0
- package/dist/Panel.js +230 -405
- package/dist/Panel.js.map +1 -0
- package/dist/Popover.d.ts +332 -0
- package/dist/Popover.js +520 -766
- package/dist/Popover.js.map +1 -0
- package/dist/Popup.d.ts +293 -0
- package/dist/Popup.js +404 -576
- package/dist/Popup.js.map +1 -0
- package/dist/ProgressIndicator.d.ts +121 -0
- package/dist/ProgressIndicator.js +121 -207
- package/dist/ProgressIndicator.js.map +1 -0
- package/dist/RadioButton.js +7 -8
- package/dist/RadioButtonGroup.js +1 -1
- package/dist/RangeSlider.d.ts +363 -0
- package/dist/RangeSlider.js +682 -757
- package/dist/RangeSlider.js.map +1 -0
- package/dist/RatingIndicator.js +7 -7
- package/dist/ResponsivePopover.d.ts +108 -0
- package/dist/ResponsivePopover.js +148 -174
- package/dist/ResponsivePopover.js.map +1 -0
- package/dist/SegmentedButton.js +24 -11
- package/dist/SegmentedButtonItem.js +5 -5
- package/dist/Select.js +8 -8
- package/dist/Slider.d.ts +163 -0
- package/dist/Slider.js +241 -261
- package/dist/Slider.js.map +1 -0
- package/dist/SliderBase.d.ts +357 -0
- package/dist/SliderBase.js +588 -794
- package/dist/SliderBase.js.map +1 -0
- package/dist/SplitButton.d.ts +220 -0
- package/dist/SplitButton.js +211 -382
- package/dist/SplitButton.js.map +1 -0
- package/dist/StandardListItem.d.ts +158 -0
- package/dist/StandardListItem.js +79 -174
- package/dist/StandardListItem.js.map +1 -0
- package/dist/StepInput.d.ts +301 -0
- package/dist/StepInput.js +378 -615
- package/dist/StepInput.js.map +1 -0
- package/dist/SuggestionGroupItem.d.ts +35 -0
- package/dist/SuggestionGroupItem.js +35 -51
- package/dist/SuggestionGroupItem.js.map +1 -0
- package/dist/SuggestionItem.d.ts +104 -0
- package/dist/SuggestionItem.js +49 -131
- package/dist/SuggestionItem.js.map +1 -0
- package/dist/SuggestionListItem.d.ts +47 -0
- package/dist/SuggestionListItem.js +38 -52
- package/dist/SuggestionListItem.js.map +1 -0
- package/dist/Switch.d.ts +167 -0
- package/dist/Switch.js +136 -251
- package/dist/Switch.js.map +1 -0
- package/dist/Tab.js +13 -8
- package/dist/TabContainer.js +20 -19
- package/dist/TabSeparator.js +3 -3
- package/dist/Table.d.ts +426 -0
- package/dist/Table.js +792 -1107
- package/dist/Table.js.map +1 -0
- package/dist/TableCell.d.ts +51 -0
- package/dist/TableCell.js +43 -60
- package/dist/TableCell.js.map +1 -0
- package/dist/TableColumn.d.ts +101 -0
- package/dist/TableColumn.js +53 -99
- package/dist/TableColumn.js.map +1 -0
- package/dist/TableGroupRow.d.ts +79 -0
- package/dist/TableGroupRow.js +97 -134
- package/dist/TableGroupRow.js.map +1 -0
- package/dist/TableRow.d.ts +160 -0
- package/dist/TableRow.js +315 -429
- package/dist/TableRow.js.map +1 -0
- package/dist/TextArea.js +11 -11
- package/dist/TimePicker.d.ts +116 -0
- package/dist/TimePicker.js +61 -96
- package/dist/TimePicker.js.map +1 -0
- package/dist/TimePickerBase.d.ts +188 -0
- package/dist/TimePickerBase.js +350 -453
- package/dist/TimePickerBase.js.map +1 -0
- package/dist/TimeSelection.d.ts +162 -0
- package/dist/TimeSelection.js +358 -468
- package/dist/TimeSelection.js.map +1 -0
- package/dist/Title.d.ts +69 -0
- package/dist/Title.js +62 -105
- package/dist/Title.js.map +1 -0
- package/dist/Toast.js +6 -6
- package/dist/ToggleButton.js +3 -4
- package/dist/Token.js +24 -7
- package/dist/Tokenizer.js +12 -8
- package/dist/Tree.js +28 -14
- package/dist/TreeItemBase.js +1 -1
- package/dist/TreeList.js +9 -4
- package/dist/WheelSlider.d.ts +122 -0
- package/dist/WheelSlider.js +302 -410
- package/dist/WheelSlider.js.map +1 -0
- package/dist/YearPicker.d.ts +105 -0
- package/dist/YearPicker.js +298 -328
- package/dist/YearPicker.js.map +1 -0
- package/dist/api.json +1 -1
- package/dist/assets/HT-1000.59a0ea5a.jpg +0 -0
- package/dist/assets/HT-1010.7b05e4f5.jpg +0 -0
- package/dist/assets/HT-1022.6fa171f0.jpg +0 -0
- package/dist/assets/ar.76457d6b.js +1 -0
- package/dist/assets/ar_EG.facab575.js +1 -0
- package/dist/assets/ar_SA.037c760a.js +1 -0
- package/dist/assets/bg.eb54e36a.js +1 -0
- package/dist/assets/ca.1047c043.js +1 -0
- package/dist/assets/cs.47109072.js +1 -0
- package/dist/assets/da.1562c279.js +1 -0
- package/dist/assets/de.3397b9d2.js +1 -0
- package/dist/assets/de_AT.fb777626.js +1 -0
- package/dist/assets/de_CH.c4011bf2.js +1 -0
- package/dist/assets/el.52a181c7.js +1 -0
- package/dist/assets/el_CY.065e8a48.js +1 -0
- package/dist/assets/en.8b571af2.js +1 -0
- package/dist/assets/en_AU.29f5e0e2.js +1 -0
- package/dist/assets/en_GB.b0afb274.js +1 -0
- package/dist/assets/en_HK.188c8a39.js +1 -0
- package/dist/assets/en_IE.b52bdf4f.js +1 -0
- package/dist/assets/en_IN.5925f501.js +1 -0
- package/dist/assets/en_NZ.adc1b6af.js +1 -0
- package/dist/assets/en_PG.2e475ab9.js +1 -0
- package/dist/assets/en_SG.400dc7e5.js +1 -0
- package/dist/assets/en_ZA.06de0b73.js +1 -0
- package/dist/assets/es.d137c08c.js +1 -0
- package/dist/assets/es_AR.a719c078.js +1 -0
- package/dist/assets/es_BO.ba051d49.js +1 -0
- package/dist/assets/es_CL.876855d2.js +1 -0
- package/dist/assets/es_CO.51c37c4d.js +1 -0
- package/dist/assets/es_MX.c11d012e.js +1 -0
- package/dist/assets/es_PE.1a5de4db.js +1 -0
- package/dist/assets/es_UY.29036823.js +1 -0
- package/dist/assets/es_VE.22e2164a.js +1 -0
- package/dist/assets/et.d802827f.js +1 -0
- package/dist/assets/fa.59b6aa5f.js +1 -0
- package/dist/assets/fi.2cc79303.js +1 -0
- package/dist/assets/fr.055c2d0d.js +1 -0
- package/dist/assets/fr_BE.79a4448b.js +1 -0
- package/dist/assets/fr_CA.0c4a98e4.js +1 -0
- package/dist/assets/fr_CH.ba0db8bd.js +1 -0
- package/dist/assets/fr_LU.21a6bcea.js +1 -0
- package/dist/assets/he.e187c6df.js +1 -0
- package/dist/assets/hi.cb35adb1.js +1 -0
- package/dist/assets/hr.24bc905c.js +1 -0
- package/dist/assets/hu.aadbd74c.js +1 -0
- package/dist/assets/id.b9bd26e5.js +1 -0
- package/dist/assets/it.36ffae4a.js +1 -0
- package/dist/assets/{it.bcf089f4.js → it_CH.7ef1e2bf.js} +1 -1
- package/dist/assets/ja.a08af783.js +1 -0
- package/dist/assets/kk.5d3dddbe.js +1 -0
- package/dist/assets/ko.264fdf35.js +1 -0
- package/dist/assets/lt.b967d42b.js +1 -0
- package/dist/assets/lv.9c0f8206.js +1 -0
- package/dist/assets/{messagebundle_ar.dec7510d.js → messagebundle_ar.7f1e385c.js} +1 -1
- package/dist/assets/{messagebundle_bg.39183011.js → messagebundle_bg.67505cb7.js} +1 -1
- package/dist/assets/messagebundle_ca.64fb370c.js +1 -0
- package/dist/assets/messagebundle_cs.ce8b8a69.js +1 -0
- package/dist/assets/messagebundle_cy.3dad0e1d.js +1 -0
- package/dist/assets/messagebundle_da.ff79429b.js +1 -0
- package/dist/assets/messagebundle_de.e9f4d979.js +1 -0
- package/dist/assets/{messagebundle_el.d41a6312.js → messagebundle_el.50666070.js} +1 -1
- package/dist/assets/messagebundle_en.edda053c.js +1 -0
- package/dist/assets/messagebundle_en_GB.9eb5f8cf.js +1 -0
- package/dist/assets/{messagebundle_en_US_sappsd.86cc73b7.js → messagebundle_en_US_sappsd.c97ca89f.js} +1 -1
- package/dist/assets/{messagebundle_en_US_saprigi.a7b06ef5.js → messagebundle_en_US_saprigi.d0b577b7.js} +1 -1
- package/dist/assets/messagebundle_en_US_saptrc.7da9b71b.js +1 -0
- package/dist/assets/messagebundle_es.3b0d6da4.js +1 -0
- package/dist/assets/messagebundle_es_MX.da0228db.js +1 -0
- package/dist/assets/messagebundle_et.2cfc3295.js +1 -0
- package/dist/assets/messagebundle_fi.f62f59fc.js +1 -0
- package/dist/assets/messagebundle_fr.7d7c418f.js +1 -0
- package/dist/assets/messagebundle_fr_CA.a4592fb9.js +1 -0
- package/dist/assets/{messagebundle_hi.b968aad6.js → messagebundle_hi.2f3db639.js} +1 -1
- package/dist/assets/messagebundle_hr.f8282341.js +1 -0
- package/dist/assets/messagebundle_hu.2589bdb3.js +1 -0
- package/dist/assets/messagebundle_it.146c4b3c.js +1 -0
- package/dist/assets/messagebundle_iw.2766f5a1.js +1 -0
- package/dist/assets/messagebundle_ja.b0b6d3d0.js +1 -0
- package/dist/assets/{messagebundle_kk.24effffd.js → messagebundle_kk.f9132ede.js} +1 -1
- package/dist/assets/messagebundle_ko.d23a9de8.js +1 -0
- package/dist/assets/messagebundle_lt.e2f6f5b0.js +1 -0
- package/dist/assets/messagebundle_lv.6b0ad93c.js +1 -0
- package/dist/assets/messagebundle_ms.8d8ac7f1.js +1 -0
- package/dist/assets/messagebundle_nl.1bb5da42.js +1 -0
- package/dist/assets/messagebundle_no.c7ee6784.js +1 -0
- package/dist/assets/messagebundle_pl.0d1b3dd1.js +1 -0
- package/dist/assets/messagebundle_pt.33ff9d42.js +1 -0
- package/dist/assets/messagebundle_pt_PT.a91f6468.js +1 -0
- package/dist/assets/messagebundle_ro.bd2e01e0.js +1 -0
- package/dist/assets/{messagebundle_ru.e7ffdb7d.js → messagebundle_ru.388e4272.js} +1 -1
- package/dist/assets/messagebundle_sh.122ca47b.js +1 -0
- package/dist/assets/messagebundle_sk.66d70983.js +1 -0
- package/dist/assets/messagebundle_sl.3f1a077f.js +1 -0
- package/dist/assets/messagebundle_sv.71f16a40.js +1 -0
- package/dist/assets/{messagebundle_th.4f145df6.js → messagebundle_th.700d6a4a.js} +1 -1
- package/dist/assets/messagebundle_tr.6f267da9.js +1 -0
- package/dist/assets/{messagebundle_uk.fc20aaae.js → messagebundle_uk.52e9f0c8.js} +1 -1
- package/dist/assets/messagebundle_vi.e9fe4caa.js +1 -0
- package/dist/assets/messagebundle_zh_CN.8ff0766b.js +1 -0
- package/dist/assets/messagebundle_zh_TW.25b49650.js +1 -0
- package/dist/assets/ms.5a523fbe.js +1 -0
- package/dist/assets/nb.6e98bbca.js +1 -0
- package/dist/assets/nl.84e9e6df.js +1 -0
- package/dist/assets/nl_BE.0f374ea5.js +1 -0
- package/dist/assets/parameters-bundle.css.09fdcedf.js +1 -0
- package/dist/assets/parameters-bundle.css.0c16556f.js +1 -0
- package/dist/assets/parameters-bundle.css.1d5159c7.js +1 -0
- package/dist/assets/parameters-bundle.css.3d586108.js +1 -0
- package/dist/assets/parameters-bundle.css.3fe96be2.js +1 -0
- package/dist/assets/parameters-bundle.css.44ff7825.js +1 -0
- package/dist/assets/parameters-bundle.css.58325286.js +1 -0
- package/dist/assets/parameters-bundle.css.5c29069a.js +1 -0
- package/dist/assets/parameters-bundle.css.759ff23e.js +1 -0
- package/dist/assets/parameters-bundle.css.7ad77620.js +1 -0
- package/dist/assets/parameters-bundle.css.ab7cc9c4.js +1 -0
- package/dist/assets/parameters-bundle.css.e7002fc1.js +1 -0
- package/dist/assets/pl.c8acba9e.js +1 -0
- package/dist/assets/pt.676d5650.js +1 -0
- package/dist/assets/pt_PT.0bbc2da6.js +1 -0
- package/dist/assets/ro.10993af2.js +1 -0
- package/dist/assets/ru.4aba168e.js +1 -0
- package/dist/assets/ru_UA.334d6613.js +1 -0
- package/dist/assets/sk.3183c85e.js +1 -0
- package/dist/assets/sl.edad6042.js +1 -0
- package/dist/assets/sr.3e293379.js +1 -0
- package/dist/assets/sr_Latn.0f4a03c3.js +1 -0
- package/dist/assets/sv.e76e14e4.js +1 -0
- package/dist/assets/th.f5491ec1.js +1 -0
- package/dist/assets/tr.3b838818.js +1 -0
- package/dist/assets/uk.ebbd81a0.js +1 -0
- package/dist/assets/vi.87616fa0.js +1 -0
- package/dist/assets/zh_CN.de478ef9.js +1 -0
- package/dist/assets/zh_HK.834c3161.js +1 -0
- package/dist/assets/zh_SG.13241ee3.js +1 -0
- package/dist/assets/zh_TW.8f4a16b5.js +1 -0
- package/dist/css/themes/Avatar.css +1 -1
- package/dist/css/themes/BusyIndicator.css +1 -1
- package/dist/css/themes/Button.css +1 -1
- package/dist/css/themes/CardHeader.css +1 -1
- package/dist/css/themes/Carousel.css +1 -1
- package/dist/css/themes/ComboBox.css +1 -1
- package/dist/css/themes/DatePicker.css +1 -1
- package/dist/css/themes/Dialog.css +1 -1
- package/dist/css/themes/Icon.css +1 -1
- package/dist/css/themes/Input.css +1 -1
- package/dist/css/themes/ListItem.css +1 -1
- package/dist/css/themes/MultiComboBox.css +1 -1
- package/dist/css/themes/MultiInput.css +1 -1
- package/dist/css/themes/RadioButton.css +1 -1
- package/dist/css/themes/Select.css +1 -1
- package/dist/css/themes/TabInStrip.css +1 -1
- package/dist/css/themes/Table.css +1 -1
- package/dist/css/themes/TableCell.css +1 -1
- package/dist/css/themes/TableRow.css +1 -1
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/css/themes/Tokenizer.css +1 -1
- package/dist/css/themes/ValueStateMessage.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/features/ColorPaletteMoreColors.d.ts +13 -0
- package/dist/features/ColorPaletteMoreColors.js +23 -33
- package/dist/features/ColorPaletteMoreColors.js.map +1 -0
- package/dist/features/InputElementsFormSupport.d.ts +31 -0
- package/dist/features/InputElementsFormSupport.js +95 -101
- package/dist/features/InputElementsFormSupport.js.map +1 -0
- package/dist/features/InputSuggestions.d.ts +130 -0
- package/dist/features/InputSuggestions.js +457 -590
- package/dist/features/InputSuggestions.js.map +1 -0
- package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_GB.json +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/i18n/messagebundle_es.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_TW.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.js +2 -2
- package/dist/generated/templates/CardHeaderTemplate.lit.js +1 -1
- package/dist/generated/templates/CardTemplate.lit.js +1 -1
- package/dist/generated/templates/CheckBoxTemplate.lit.js +1 -1
- package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +19 -17
- package/dist/generated/templates/CustomListItemTemplate.lit.js +9 -7
- package/dist/generated/templates/DialogTemplate.lit.js +1 -1
- package/dist/generated/templates/IconTemplate.lit.js +1 -1
- package/dist/generated/templates/InputTemplate.lit.js +1 -1
- package/dist/generated/templates/LinkTemplate.lit.js +1 -1
- package/dist/generated/templates/ListItemTemplate.lit.js +9 -7
- package/dist/generated/templates/ListTemplate.lit.js +3 -3
- package/dist/generated/templates/MenuTemplate.lit.js +1 -1
- package/dist/generated/templates/MonthPickerTemplate.lit.js +1 -1
- package/dist/generated/templates/MultiInputTemplate.lit.js +1 -1
- package/dist/generated/templates/PopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/RangeSliderTemplate.lit.js +1 -1
- package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/SegmentedButtonTemplate.lit.js +1 -1
- package/dist/generated/templates/SliderTemplate.lit.js +1 -1
- package/dist/generated/templates/StandardListItemTemplate.lit.js +20 -16
- package/dist/generated/templates/SuggestionListItemTemplate.lit.js +23 -19
- package/dist/generated/templates/SwitchTemplate.lit.js +1 -1
- package/dist/generated/templates/TabInStripTemplate.lit.js +1 -1
- package/dist/generated/templates/TableRowTemplate.lit.js +5 -2
- package/dist/generated/templates/TableTemplate.lit.js +1 -1
- package/dist/generated/templates/TokenTemplate.lit.js +1 -1
- package/dist/generated/templates/TreeItemBaseTemplate.lit.js +10 -8
- package/dist/generated/templates/TreeItemCustomTemplate.lit.js +10 -8
- package/dist/generated/templates/TreeItemTemplate.lit.js +10 -8
- package/dist/generated/templates/TreeTemplate.lit.js +1 -1
- package/dist/generated/templates/YearPickerTemplate.lit.js +1 -1
- package/dist/generated/themes/Avatar.css.js +1 -1
- package/dist/generated/themes/BusyIndicator.css.js +1 -1
- package/dist/generated/themes/Button.css.js +1 -1
- package/dist/generated/themes/CardHeader.css.js +1 -1
- package/dist/generated/themes/Carousel.css.js +1 -1
- package/dist/generated/themes/ComboBox.css.js +1 -1
- package/dist/generated/themes/DatePicker.css.js +1 -1
- package/dist/generated/themes/Dialog.css.js +1 -1
- package/dist/generated/themes/Icon.css.js +1 -1
- package/dist/generated/themes/Input.css.js +1 -1
- package/dist/generated/themes/ListItem.css.js +1 -1
- package/dist/generated/themes/MultiComboBox.css.js +1 -1
- package/dist/generated/themes/MultiInput.css.js +1 -1
- package/dist/generated/themes/RadioButton.css.js +1 -1
- package/dist/generated/themes/Select.css.js +1 -1
- package/dist/generated/themes/TabInStrip.css.js +1 -1
- package/dist/generated/themes/Table.css.js +1 -1
- package/dist/generated/themes/TableCell.css.js +1 -1
- package/dist/generated/themes/TableRow.css.js +1 -1
- package/dist/generated/themes/TextArea.css.js +1 -1
- package/dist/generated/themes/Tokenizer.css.js +1 -1
- package/dist/generated/themes/ValueStateMessage.css.js +1 -1
- package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
- package/dist/i18n/messagebundle.properties +6 -0
- package/dist/i18n/messagebundle_ar.properties +4 -0
- package/dist/i18n/messagebundle_bg.properties +4 -0
- package/dist/i18n/messagebundle_ca.properties +4 -0
- package/dist/i18n/messagebundle_cs.properties +4 -0
- package/dist/i18n/messagebundle_cy.properties +4 -0
- package/dist/i18n/messagebundle_da.properties +4 -0
- package/dist/i18n/messagebundle_de.properties +4 -0
- package/dist/i18n/messagebundle_el.properties +4 -0
- package/dist/i18n/messagebundle_en.properties +4 -0
- package/dist/i18n/messagebundle_en_GB.properties +4 -0
- package/dist/i18n/messagebundle_en_US_sappsd.properties +4 -0
- package/dist/i18n/messagebundle_en_US_saprigi.properties +4 -0
- package/dist/i18n/messagebundle_en_US_saptrc.properties +4 -0
- package/dist/i18n/messagebundle_es.properties +4 -0
- package/dist/i18n/messagebundle_es_MX.properties +4 -0
- package/dist/i18n/messagebundle_et.properties +4 -0
- package/dist/i18n/messagebundle_fi.properties +4 -0
- package/dist/i18n/messagebundle_fr.properties +4 -0
- package/dist/i18n/messagebundle_fr_CA.properties +4 -0
- package/dist/i18n/messagebundle_hi.properties +4 -0
- package/dist/i18n/messagebundle_hr.properties +4 -0
- package/dist/i18n/messagebundle_hu.properties +4 -0
- package/dist/i18n/messagebundle_id.properties +4 -0
- package/dist/i18n/messagebundle_it.properties +4 -0
- package/dist/i18n/messagebundle_iw.properties +4 -0
- package/dist/i18n/messagebundle_ja.properties +4 -0
- package/dist/i18n/messagebundle_kk.properties +4 -0
- package/dist/i18n/messagebundle_ko.properties +4 -0
- package/dist/i18n/messagebundle_lt.properties +4 -0
- package/dist/i18n/messagebundle_lv.properties +4 -0
- package/dist/i18n/messagebundle_ms.properties +4 -0
- package/dist/i18n/messagebundle_nl.properties +4 -0
- package/dist/i18n/messagebundle_no.properties +5 -1
- package/dist/i18n/messagebundle_pl.properties +4 -0
- package/dist/i18n/messagebundle_pt.properties +4 -0
- package/dist/i18n/messagebundle_pt_PT.properties +4 -0
- package/dist/i18n/messagebundle_ro.properties +4 -0
- package/dist/i18n/messagebundle_ru.properties +4 -0
- package/dist/i18n/messagebundle_sh.properties +4 -0
- package/dist/i18n/messagebundle_sk.properties +4 -0
- package/dist/i18n/messagebundle_sl.properties +4 -0
- package/dist/i18n/messagebundle_sv.properties +4 -0
- package/dist/i18n/messagebundle_th.properties +4 -0
- package/dist/i18n/messagebundle_tr.properties +4 -0
- package/dist/i18n/messagebundle_uk.properties +4 -0
- package/dist/i18n/messagebundle_vi.properties +4 -0
- package/dist/i18n/messagebundle_zh_CN.properties +4 -0
- package/dist/i18n/messagebundle_zh_TW.properties +4 -0
- package/dist/popup-utils/OpenedPopupsRegistry.d.ts +9 -0
- package/dist/popup-utils/OpenedPopupsRegistry.js +43 -37
- package/dist/popup-utils/OpenedPopupsRegistry.js.map +1 -0
- package/dist/popup-utils/PopoverRegistry.d.ts +9 -0
- package/dist/popup-utils/PopoverRegistry.js +103 -123
- package/dist/popup-utils/PopoverRegistry.js.map +1 -0
- package/dist/timepicker-utils/TimeSlider.d.ts +15 -0
- package/dist/timepicker-utils/TimeSlider.js +80 -92
- package/dist/timepicker-utils/TimeSlider.js.map +1 -0
- package/dist/types/AvatarColorScheme.d.ts +78 -0
- package/dist/types/AvatarColorScheme.js +75 -99
- package/dist/types/AvatarColorScheme.js.map +1 -0
- package/dist/types/AvatarGroupType.d.ts +26 -0
- package/dist/types/AvatarGroupType.js +22 -37
- package/dist/types/AvatarGroupType.js.map +1 -0
- package/dist/types/AvatarShape.d.ts +24 -0
- package/dist/types/AvatarShape.js +20 -35
- package/dist/types/AvatarShape.js.map +1 -0
- package/dist/types/AvatarSize.d.ts +47 -0
- package/dist/types/AvatarSize.js +43 -61
- package/dist/types/AvatarSize.js.map +1 -0
- package/dist/types/BreadcrumbsDesign.d.ts +26 -0
- package/dist/types/BreadcrumbsDesign.js +23 -37
- package/dist/types/BreadcrumbsDesign.js.map +1 -0
- package/dist/types/BreadcrumbsSeparatorStyle.d.ts +48 -0
- package/dist/types/BreadcrumbsSeparatorStyle.js +45 -64
- package/dist/types/BreadcrumbsSeparatorStyle.js.map +1 -0
- package/dist/types/BusyIndicatorSize.d.ts +30 -0
- package/dist/types/BusyIndicatorSize.js +27 -42
- package/dist/types/BusyIndicatorSize.js.map +1 -0
- package/dist/types/ButtonDesign.d.ts +48 -0
- package/dist/types/ButtonDesign.js +45 -63
- package/dist/types/ButtonDesign.js.map +1 -0
- package/dist/types/CalendarSelectionMode.d.ts +30 -0
- package/dist/types/CalendarSelectionMode.js +27 -42
- package/dist/types/CalendarSelectionMode.js.map +1 -0
- package/dist/types/CarouselArrowsPlacement.d.ts +24 -0
- package/dist/types/CarouselArrowsPlacement.js +21 -35
- package/dist/types/CarouselArrowsPlacement.js.map +1 -0
- package/dist/types/CarouselPageIndicatorStyle.d.ts +25 -0
- package/dist/types/CarouselPageIndicatorStyle.js +27 -0
- package/dist/types/CarouselPageIndicatorStyle.js.map +1 -0
- package/dist/types/HasPopup.d.ts +42 -0
- package/dist/types/HasPopup.js +38 -56
- package/dist/types/HasPopup.js.map +1 -0
- package/dist/types/IconDesign.d.ts +60 -0
- package/dist/types/IconDesign.js +62 -0
- package/dist/types/IconDesign.js.map +1 -0
- package/dist/types/InputType.d.ts +48 -0
- package/dist/types/InputType.js +45 -63
- package/dist/types/InputType.js.map +1 -0
- package/dist/types/LinkDesign.d.ts +30 -0
- package/dist/types/LinkDesign.js +27 -42
- package/dist/types/LinkDesign.js.map +1 -0
- package/dist/types/ListGrowingMode.d.ts +31 -0
- package/dist/types/ListGrowingMode.js +28 -43
- package/dist/types/ListGrowingMode.js.map +1 -0
- package/dist/types/ListItemType.d.ts +36 -0
- package/dist/types/ListItemType.js +33 -42
- package/dist/types/ListItemType.js.map +1 -0
- package/dist/types/ListMode.d.ts +56 -0
- package/dist/types/ListMode.js +53 -72
- package/dist/types/ListMode.js.map +1 -0
- package/dist/types/ListSeparators.d.ts +31 -0
- package/dist/types/ListSeparators.js +28 -41
- package/dist/types/ListSeparators.js.map +1 -0
- package/dist/types/MessageStripDesign.d.ts +36 -0
- package/dist/types/MessageStripDesign.js +33 -49
- package/dist/types/MessageStripDesign.js.map +1 -0
- package/dist/types/PanelAccessibleRole.d.ts +33 -0
- package/dist/types/PanelAccessibleRole.js +30 -43
- package/dist/types/PanelAccessibleRole.js.map +1 -0
- package/dist/types/PopoverHorizontalAlign.d.ts +36 -0
- package/dist/types/PopoverHorizontalAlign.js +33 -49
- package/dist/types/PopoverHorizontalAlign.js.map +1 -0
- package/dist/types/PopoverPlacementType.d.ts +36 -0
- package/dist/types/PopoverPlacementType.js +33 -49
- package/dist/types/PopoverPlacementType.js.map +1 -0
- package/dist/types/PopoverVerticalAlign.d.ts +36 -0
- package/dist/types/PopoverVerticalAlign.js +33 -49
- package/dist/types/PopoverVerticalAlign.js.map +1 -0
- package/dist/types/Priority.d.ts +36 -0
- package/dist/types/Priority.js +32 -49
- package/dist/types/Priority.js.map +1 -0
- package/dist/types/SemanticColor.d.ts +42 -0
- package/dist/types/SemanticColor.js +39 -56
- package/dist/types/SemanticColor.js.map +1 -0
- package/dist/types/SwitchDesign.d.ts +24 -0
- package/dist/types/SwitchDesign.js +21 -35
- package/dist/types/SwitchDesign.js.map +1 -0
- package/dist/types/TabContainerBackgroundDesign.d.ts +30 -0
- package/dist/types/TabContainerBackgroundDesign.js +27 -43
- package/dist/types/TabContainerBackgroundDesign.js.map +1 -0
- package/dist/types/TabContainerTabsPlacement.d.ts +24 -0
- package/dist/types/TabContainerTabsPlacement.js +21 -35
- package/dist/types/TabContainerTabsPlacement.js.map +1 -0
- package/dist/types/TabLayout.d.ts +24 -0
- package/dist/types/TabLayout.js +21 -35
- package/dist/types/TabLayout.js.map +1 -0
- package/dist/types/TableColumnPopinDisplay.d.ts +24 -0
- package/dist/types/TableColumnPopinDisplay.js +26 -0
- package/dist/types/TableColumnPopinDisplay.js.map +1 -0
- package/dist/types/TableGrowingMode.d.ts +31 -0
- package/dist/types/TableGrowingMode.js +28 -43
- package/dist/types/TableGrowingMode.js.map +1 -0
- package/dist/types/TableMode.d.ts +30 -0
- package/dist/types/TableMode.js +27 -42
- package/dist/types/TableMode.js.map +1 -0
- package/dist/types/TableRowType.d.ts +24 -0
- package/dist/types/TableRowType.js +21 -35
- package/dist/types/TableRowType.js.map +1 -0
- package/dist/types/TabsOverflowMode.d.ts +24 -0
- package/dist/types/TabsOverflowMode.js +21 -35
- package/dist/types/TabsOverflowMode.js.map +1 -0
- package/dist/types/TitleLevel.d.ts +48 -0
- package/dist/types/TitleLevel.js +45 -63
- package/dist/types/TitleLevel.js.map +1 -0
- package/dist/types/ToastPlacement.d.ts +67 -0
- package/dist/types/ToastPlacement.js +64 -86
- package/dist/types/ToastPlacement.js.map +1 -0
- package/dist/types/WrappingType.d.ts +24 -0
- package/dist/types/WrappingType.js +20 -35
- package/dist/types/WrappingType.js.map +1 -0
- package/global.d.ts +12 -0
- package/package-scripts.js +1 -0
- package/package.json +7 -7
- package/src/Avatar.ts +435 -0
- package/src/AvatarGroup.js +8 -8
- package/src/Badge.ts +143 -0
- package/src/Breadcrumbs.hbs +41 -38
- package/src/{Breadcrumbs.js → Breadcrumbs.ts} +228 -187
- package/src/BreadcrumbsItem.ts +92 -0
- package/src/BusyIndicator.js +6 -7
- package/src/Button.ts +503 -0
- package/src/{Calendar.js → Calendar.ts} +152 -142
- package/src/CalendarDate.ts +36 -0
- package/src/CalendarHeader.ts +218 -0
- package/src/{CalendarPart.js → CalendarPart.ts} +15 -26
- package/src/Card.hbs +1 -1
- package/src/{Card.js → Card.ts} +67 -75
- package/src/CardHeader.hbs +1 -1
- package/src/CardHeader.ts +275 -0
- package/src/Carousel.hbs +72 -72
- package/src/Carousel.js +33 -11
- package/src/CheckBox.hbs +3 -3
- package/src/CheckBox.ts +466 -0
- package/src/{ColorPalette.js → ColorPalette.ts} +184 -165
- package/src/ColorPaletteItem.ts +124 -0
- package/src/{ColorPalettePopover.js → ColorPalettePopover.ts} +99 -97
- package/src/ColorPicker.ts +536 -0
- package/src/ComboBox.js +9 -9
- package/src/ComboBoxGroupItem.js +6 -6
- package/src/ComboBoxItem.js +4 -4
- package/src/ComboBoxPopover.hbs +45 -42
- package/src/CustomListItem.ts +89 -0
- package/src/DateComponentBase.ts +174 -0
- package/src/{DatePicker.js → DatePicker.ts} +355 -330
- package/src/{DateRangePicker.js → DateRangePicker.ts} +65 -61
- package/src/{DateTimePicker.js → DateTimePicker.ts} +82 -80
- package/src/{DayPicker.js → DayPicker.ts} +274 -218
- package/src/Dialog.hbs +1 -1
- package/src/{Dialog.js → Dialog.ts} +208 -195
- package/src/DurationPicker.js +5 -5
- package/src/FileUploader.ts +526 -0
- package/src/Filters.ts +28 -0
- package/src/GroupHeaderListItem.ts +86 -0
- package/src/Icon.hbs +1 -1
- package/src/{Icon.js → Icon.ts} +204 -182
- package/src/Input.hbs +3 -1
- package/src/{Input.js → Input.ts} +738 -706
- package/src/{Interfaces.js → Interfaces.ts} +40 -40
- package/src/Label.ts +143 -0
- package/src/Link.hbs +1 -1
- package/src/Link.ts +406 -0
- package/src/List.hbs +11 -2
- package/src/List.ts +1143 -0
- package/src/ListItem.hbs +12 -2
- package/src/ListItem.ts +497 -0
- package/src/ListItemBase.ts +168 -0
- package/src/Menu.hbs +4 -1
- package/src/Menu.ts +609 -0
- package/src/MenuItem.ts +168 -0
- package/src/MessageStrip.ts +245 -0
- package/src/MonthPicker.hbs +1 -0
- package/src/{MonthPicker.js → MonthPicker.ts} +147 -104
- package/src/MultiComboBox.js +13 -11
- package/src/MultiComboBoxGroupItem.js +6 -6
- package/src/MultiComboBoxItem.js +4 -4
- package/src/MultiInput.js +13 -10
- package/src/Option.js +6 -6
- package/src/{Panel.js → Panel.ts} +179 -219
- package/src/Popover.hbs +1 -1
- package/src/{Popover.js → Popover.ts} +293 -268
- package/src/{Popup.js → Popup.ts} +227 -210
- package/src/{ProgressIndicator.js → ProgressIndicator.ts} +91 -95
- package/src/RadioButton.js +7 -8
- package/src/RadioButtonGroup.js +1 -1
- package/src/RangeSlider.hbs +11 -5
- package/src/{RangeSlider.js → RangeSlider.ts} +248 -173
- package/src/RatingIndicator.js +7 -7
- package/src/{ResponsivePopover.js → ResponsivePopover.ts} +84 -62
- package/src/SegmentedButton.hbs +1 -0
- package/src/SegmentedButton.js +24 -11
- package/src/SegmentedButtonItem.js +5 -5
- package/src/Select.js +8 -8
- package/src/Slider.hbs +2 -2
- package/src/{Slider.js → Slider.ts} +94 -62
- package/src/{SliderBase.js → SliderBase.ts} +238 -270
- package/src/{SplitButton.js → SplitButton.ts} +217 -235
- package/src/StandardListItem.hbs +10 -4
- package/src/StandardListItem.ts +217 -0
- package/src/StepInput.hbs +1 -1
- package/src/{StepInput.js → StepInput.ts} +275 -314
- package/src/SuggestionGroupItem.ts +51 -0
- package/src/SuggestionItem.ts +134 -0
- package/src/{SuggestionListItem.js → SuggestionListItem.ts} +30 -32
- package/src/Switch.hbs +2 -2
- package/src/Switch.ts +299 -0
- package/src/Tab.js +13 -8
- package/src/TabContainer.js +20 -19
- package/src/TabInStrip.hbs +2 -1
- package/src/TabSeparator.js +3 -3
- package/src/Table.hbs +7 -1
- package/src/Table.ts +1303 -0
- package/src/{TableCell.js → TableCell.ts} +32 -42
- package/src/TableColumn.ts +135 -0
- package/src/TableGroupRow.ts +159 -0
- package/src/TableRow.hbs +17 -5
- package/src/TableRow.ts +505 -0
- package/src/TextArea.js +11 -11
- package/src/{TimePicker.js → TimePicker.ts} +43 -50
- package/src/{TimePickerBase.js → TimePickerBase.ts} +154 -145
- package/src/{TimeSelection.js → TimeSelection.ts} +198 -170
- package/src/Title.ts +117 -0
- package/src/Toast.js +6 -6
- package/src/ToggleButton.js +3 -4
- package/src/Token.hbs +1 -0
- package/src/Token.js +24 -7
- package/src/Tokenizer.js +12 -8
- package/src/Tree.hbs +2 -1
- package/src/Tree.js +28 -14
- package/src/TreeItemBase.js +1 -1
- package/src/TreeList.js +9 -4
- package/src/{WheelSlider.js → WheelSlider.ts} +120 -126
- package/src/YearPicker.hbs +1 -0
- package/src/{YearPicker.js → YearPicker.ts} +146 -101
- package/src/features/{ColorPaletteMoreColors.js → ColorPaletteMoreColors.ts} +8 -3
- package/src/features/{InputElementsFormSupport.js → InputElementsFormSupport.ts} +49 -17
- package/src/features/{InputSuggestions.js → InputSuggestions.ts} +154 -99
- package/src/i18n/messagebundle.properties +6 -0
- package/src/i18n/messagebundle_ar.properties +4 -0
- package/src/i18n/messagebundle_bg.properties +4 -0
- package/src/i18n/messagebundle_ca.properties +4 -0
- package/src/i18n/messagebundle_cs.properties +4 -0
- package/src/i18n/messagebundle_cy.properties +4 -0
- package/src/i18n/messagebundle_da.properties +4 -0
- package/src/i18n/messagebundle_de.properties +4 -0
- package/src/i18n/messagebundle_el.properties +4 -0
- package/src/i18n/messagebundle_en.properties +4 -0
- package/src/i18n/messagebundle_en_GB.properties +4 -0
- package/src/i18n/messagebundle_en_US_sappsd.properties +4 -0
- package/src/i18n/messagebundle_en_US_saprigi.properties +4 -0
- package/src/i18n/messagebundle_en_US_saptrc.properties +4 -0
- package/src/i18n/messagebundle_es.properties +4 -0
- package/src/i18n/messagebundle_es_MX.properties +4 -0
- package/src/i18n/messagebundle_et.properties +4 -0
- package/src/i18n/messagebundle_fi.properties +4 -0
- package/src/i18n/messagebundle_fr.properties +4 -0
- package/src/i18n/messagebundle_fr_CA.properties +4 -0
- package/src/i18n/messagebundle_hi.properties +4 -0
- package/src/i18n/messagebundle_hr.properties +4 -0
- package/src/i18n/messagebundle_hu.properties +4 -0
- package/src/i18n/messagebundle_id.properties +4 -0
- package/src/i18n/messagebundle_it.properties +4 -0
- package/src/i18n/messagebundle_iw.properties +4 -0
- package/src/i18n/messagebundle_ja.properties +4 -0
- package/src/i18n/messagebundle_kk.properties +4 -0
- package/src/i18n/messagebundle_ko.properties +4 -0
- package/src/i18n/messagebundle_lt.properties +4 -0
- package/src/i18n/messagebundle_lv.properties +4 -0
- package/src/i18n/messagebundle_ms.properties +4 -0
- package/src/i18n/messagebundle_nl.properties +4 -0
- package/src/i18n/messagebundle_no.properties +5 -1
- package/src/i18n/messagebundle_pl.properties +4 -0
- package/src/i18n/messagebundle_pt.properties +4 -0
- package/src/i18n/messagebundle_pt_PT.properties +4 -0
- package/src/i18n/messagebundle_ro.properties +4 -0
- package/src/i18n/messagebundle_ru.properties +4 -0
- package/src/i18n/messagebundle_sh.properties +4 -0
- package/src/i18n/messagebundle_sk.properties +4 -0
- package/src/i18n/messagebundle_sl.properties +4 -0
- package/src/i18n/messagebundle_sv.properties +4 -0
- package/src/i18n/messagebundle_th.properties +4 -0
- package/src/i18n/messagebundle_tr.properties +4 -0
- package/src/i18n/messagebundle_uk.properties +4 -0
- package/src/i18n/messagebundle_vi.properties +4 -0
- package/src/i18n/messagebundle_zh_CN.properties +4 -0
- package/src/i18n/messagebundle_zh_TW.properties +4 -0
- package/src/popup-utils/{OpenedPopupsRegistry.js → OpenedPopupsRegistry.ts} +31 -5
- package/src/popup-utils/{PopoverRegistry.js → PopoverRegistry.ts} +50 -29
- package/src/themes/Avatar.css +5 -2
- package/src/themes/BusyIndicator.css +1 -1
- package/src/themes/Button.css +14 -13
- package/src/themes/CardHeader.css +19 -2
- package/src/themes/Carousel.css +4 -4
- package/src/themes/DatePicker.css +7 -1
- package/src/themes/Dialog.css +2 -2
- package/src/themes/Icon.css +37 -0
- package/src/themes/Input.css +26 -2
- package/src/themes/ListItem.css +20 -2
- package/src/themes/MultiComboBox.css +0 -4
- package/src/themes/MultiInput.css +1 -5
- package/src/themes/RadioButton.css +6 -6
- package/src/themes/Select.css +1 -1
- package/src/themes/TabInStrip.css +10 -10
- package/src/themes/Table.css +1 -1
- package/src/themes/TableCell.css +4 -0
- package/src/themes/TableRow.css +9 -0
- package/src/themes/TextArea.css +16 -23
- package/src/themes/Tokenizer.css +1 -1
- package/src/themes/ValueStateMessage.css +9 -1
- package/src/themes/base/Avatar-parameters.css +1 -0
- package/src/themes/base/Input-parameters.css +11 -1
- package/src/themes/base/Select-parameters.css +1 -1
- package/src/themes/base/TextArea-parameters.css +18 -0
- package/src/themes/base/Tokenizer-parameters.css +1 -0
- package/src/themes/base/sizes-parameters.css +1 -9
- package/src/themes/sap_belize/TextArea-parameters.css +8 -0
- package/src/themes/sap_belize_hcb/TextArea-parameters.css +8 -0
- package/src/themes/sap_belize_hcw/TextArea-parameters.css +8 -0
- package/src/themes/sap_fiori_3_hcb/TextArea-parameters.css +13 -3
- package/src/themes/sap_fiori_3_hcw/TextArea-parameters.css +13 -3
- package/src/themes/sap_horizon/CheckBox-parameters.css +1 -0
- package/src/themes/sap_horizon/Input-parameters.css +3 -0
- package/src/themes/sap_horizon/TextArea-parameters.css +14 -0
- package/src/themes/sap_horizon/Tokenizer-parameters.css +5 -0
- package/src/themes/sap_horizon/parameters-bundle.css +1 -1
- package/src/themes/sap_horizon_dark/Input-parameters.css +3 -0
- package/src/themes/sap_horizon_dark/ListItemBase-parameters.css +0 -1
- package/src/themes/sap_horizon_dark/TextArea-parameters.css +14 -0
- package/src/themes/sap_horizon_dark/Tokenizer-parameters.css +5 -0
- package/src/themes/sap_horizon_dark/parameters-bundle.css +1 -1
- package/src/themes/sap_horizon_exp/Select-parameters.css +1 -1
- package/src/themes/sap_horizon_hcb/Input-parameters.css +1 -0
- package/src/themes/sap_horizon_hcb/TextArea-parameters.css +15 -6
- package/src/themes/sap_horizon_hcw/Input-parameters.css +1 -0
- package/src/themes/sap_horizon_hcw/TextArea-parameters.css +15 -6
- package/src/timepicker-utils/{TimeSlider.js → TimeSlider.ts} +26 -9
- package/src/types/AvatarColorScheme.ts +89 -0
- package/src/types/AvatarGroupType.ts +28 -0
- package/src/types/AvatarShape.ts +26 -0
- package/src/types/AvatarSize.ts +52 -0
- package/src/types/BreadcrumbsDesign.ts +28 -0
- package/src/types/BreadcrumbsSeparatorStyle.ts +55 -0
- package/src/types/BusyIndicatorSize.ts +33 -0
- package/src/types/ButtonDesign.ts +54 -0
- package/src/types/CalendarSelectionMode.ts +33 -0
- package/src/types/CarouselArrowsPlacement.ts +26 -0
- package/src/types/CarouselPageIndicatorStyle.ts +27 -0
- package/src/types/HasPopup.ts +47 -0
- package/src/types/IconDesign.ts +68 -0
- package/src/types/{InputType.js → InputType.ts} +13 -27
- package/src/types/LinkDesign.ts +33 -0
- package/src/types/ListGrowingMode.ts +34 -0
- package/src/types/ListItemType.ts +40 -0
- package/src/types/{ListMode.js → ListMode.ts} +14 -28
- package/src/types/ListSeparators.ts +32 -0
- package/src/types/MessageStripDesign.ts +40 -0
- package/src/types/PanelAccessibleRole.ts +37 -0
- package/src/types/PopoverHorizontalAlign.ts +40 -0
- package/src/types/PopoverPlacementType.ts +40 -0
- package/src/types/PopoverVerticalAlign.ts +40 -0
- package/src/types/Priority.ts +40 -0
- package/src/types/SemanticColor.ts +47 -0
- package/src/types/SwitchDesign.ts +26 -0
- package/src/types/TabContainerBackgroundDesign.ts +33 -0
- package/src/types/TabContainerTabsPlacement.ts +26 -0
- package/src/types/TabLayout.ts +26 -0
- package/src/types/TableColumnPopinDisplay.ts +26 -0
- package/src/types/TableGrowingMode.ts +34 -0
- package/src/types/TableMode.ts +33 -0
- package/src/types/TableRowType.ts +26 -0
- package/src/types/TabsOverflowMode.ts +26 -0
- package/src/types/{TitleLevel.js → TitleLevel.ts} +13 -27
- package/src/types/ToastPlacement.ts +77 -0
- package/src/types/WrappingType.ts +26 -0
- package/tsconfig.json +14 -0
- package/dist/assets/ar.7fd1011b.js +0 -1
- package/dist/assets/ar_EG.4dd5f305.js +0 -1
- package/dist/assets/ar_SA.8c5a937a.js +0 -1
- package/dist/assets/bg.a4d82c03.js +0 -1
- package/dist/assets/ca.0021f734.js +0 -1
- package/dist/assets/cs.0e585b65.js +0 -1
- package/dist/assets/da.521611de.js +0 -1
- package/dist/assets/de.63fdffdf.js +0 -1
- package/dist/assets/de_AT.ea95f993.js +0 -1
- package/dist/assets/de_CH.90d5e701.js +0 -1
- package/dist/assets/el.3e1beb01.js +0 -1
- package/dist/assets/el_CY.209073e0.js +0 -1
- package/dist/assets/en.1af5f31c.js +0 -1
- package/dist/assets/en_AU.25e8cf38.js +0 -1
- package/dist/assets/en_GB.43297e37.js +0 -1
- package/dist/assets/en_HK.0da1e0b5.js +0 -1
- package/dist/assets/en_IE.c4988873.js +0 -1
- package/dist/assets/en_IN.96d721e2.js +0 -1
- package/dist/assets/en_NZ.1091e526.js +0 -1
- package/dist/assets/en_PG.f028e345.js +0 -1
- package/dist/assets/en_SG.8d370bdb.js +0 -1
- package/dist/assets/en_ZA.0cbf9d6e.js +0 -1
- package/dist/assets/es.37dda275.js +0 -1
- package/dist/assets/es_AR.da796f99.js +0 -1
- package/dist/assets/es_BO.2b15333c.js +0 -1
- package/dist/assets/es_CL.048ca1f2.js +0 -1
- package/dist/assets/es_CO.257ed3d6.js +0 -1
- package/dist/assets/es_MX.061e6bbb.js +0 -1
- package/dist/assets/es_PE.f7c17b7a.js +0 -1
- package/dist/assets/es_UY.73781c0c.js +0 -1
- package/dist/assets/es_VE.fe0f3310.js +0 -1
- package/dist/assets/et.fbe81c9d.js +0 -1
- package/dist/assets/fa.acfcfa4d.js +0 -1
- package/dist/assets/fi.0379b5fc.js +0 -1
- package/dist/assets/fr.f6c58c06.js +0 -1
- package/dist/assets/fr_BE.c6e52c3f.js +0 -1
- package/dist/assets/fr_CA.e3c92112.js +0 -1
- package/dist/assets/fr_CH.fc89bdfc.js +0 -1
- package/dist/assets/fr_LU.4fffec47.js +0 -1
- package/dist/assets/he.ca2cb3e0.js +0 -1
- package/dist/assets/hi.82a0ad5b.js +0 -1
- package/dist/assets/hr.ab15877f.js +0 -1
- package/dist/assets/hu.c3d72d24.js +0 -1
- package/dist/assets/id.163ccc8d.js +0 -1
- package/dist/assets/it_CH.69227571.js +0 -1
- package/dist/assets/ja.18f39a5b.js +0 -1
- package/dist/assets/kk.a697e741.js +0 -1
- package/dist/assets/ko.ebe1e5db.js +0 -1
- package/dist/assets/lt.775927de.js +0 -1
- package/dist/assets/lv.d7e9d5e6.js +0 -1
- package/dist/assets/messagebundle_ca.0d94d392.js +0 -1
- package/dist/assets/messagebundle_cs.fd5eaccc.js +0 -1
- package/dist/assets/messagebundle_cy.ff1e6c97.js +0 -1
- package/dist/assets/messagebundle_da.5ff8a1f1.js +0 -1
- package/dist/assets/messagebundle_de.bff2fc47.js +0 -1
- package/dist/assets/messagebundle_en.fdb7abce.js +0 -1
- package/dist/assets/messagebundle_en_GB.4a95abfb.js +0 -1
- package/dist/assets/messagebundle_en_US_saptrc.71435964.js +0 -1
- package/dist/assets/messagebundle_es.04498029.js +0 -1
- package/dist/assets/messagebundle_es_MX.a39214a3.js +0 -1
- package/dist/assets/messagebundle_et.d2e7cd16.js +0 -1
- package/dist/assets/messagebundle_fi.1aa86ded.js +0 -1
- package/dist/assets/messagebundle_fr.d651062e.js +0 -1
- package/dist/assets/messagebundle_fr_CA.5a066480.js +0 -1
- package/dist/assets/messagebundle_hr.51d15b46.js +0 -1
- package/dist/assets/messagebundle_hu.f66f6bd4.js +0 -1
- package/dist/assets/messagebundle_it.fc18db7c.js +0 -1
- package/dist/assets/messagebundle_iw.61cc9591.js +0 -1
- package/dist/assets/messagebundle_ja.9d222bf0.js +0 -1
- package/dist/assets/messagebundle_ko.c1f9bbe4.js +0 -1
- package/dist/assets/messagebundle_lt.68cc1270.js +0 -1
- package/dist/assets/messagebundle_lv.45ee5e9b.js +0 -1
- package/dist/assets/messagebundle_ms.5c238d83.js +0 -1
- package/dist/assets/messagebundle_nl.42d4c6f9.js +0 -1
- package/dist/assets/messagebundle_no.040efcc2.js +0 -1
- package/dist/assets/messagebundle_pl.180e5190.js +0 -1
- package/dist/assets/messagebundle_pt.8c0b8aa8.js +0 -1
- package/dist/assets/messagebundle_pt_PT.08badb3a.js +0 -1
- package/dist/assets/messagebundle_ro.dc736139.js +0 -1
- package/dist/assets/messagebundle_sh.06513aad.js +0 -1
- package/dist/assets/messagebundle_sk.f8c93117.js +0 -1
- package/dist/assets/messagebundle_sl.e321cf3f.js +0 -1
- package/dist/assets/messagebundle_sv.7c70049d.js +0 -1
- package/dist/assets/messagebundle_tr.b1de509f.js +0 -1
- package/dist/assets/messagebundle_vi.39c09ada.js +0 -1
- package/dist/assets/messagebundle_zh_CN.cb6c2fc4.js +0 -1
- package/dist/assets/messagebundle_zh_TW.38b9d6a7.js +0 -1
- package/dist/assets/ms.d6569411.js +0 -1
- package/dist/assets/nb.e08266d5.js +0 -1
- package/dist/assets/nl.9999541e.js +0 -1
- package/dist/assets/nl_BE.10b9e463.js +0 -1
- package/dist/assets/parameters-bundle.css.1f15a001.js +0 -1
- package/dist/assets/parameters-bundle.css.2c92b83f.js +0 -1
- package/dist/assets/parameters-bundle.css.37d45e6a.js +0 -1
- package/dist/assets/parameters-bundle.css.43cfec9f.js +0 -1
- package/dist/assets/parameters-bundle.css.6ac2a3ec.js +0 -1
- package/dist/assets/parameters-bundle.css.8156fdfe.js +0 -1
- package/dist/assets/parameters-bundle.css.9ff9d4cd.js +0 -1
- package/dist/assets/parameters-bundle.css.abcd1057.js +0 -1
- package/dist/assets/parameters-bundle.css.b58e1801.js +0 -1
- package/dist/assets/parameters-bundle.css.d4817fb4.js +0 -1
- package/dist/assets/parameters-bundle.css.dd8f8072.js +0 -1
- package/dist/assets/parameters-bundle.css.feee54fa.js +0 -1
- package/dist/assets/pl.896f748a.js +0 -1
- package/dist/assets/pt.9282da43.js +0 -1
- package/dist/assets/pt_PT.8de6f4a2.js +0 -1
- package/dist/assets/ro.f27aab0d.js +0 -1
- package/dist/assets/ru.925a56df.js +0 -1
- package/dist/assets/ru_UA.066d9903.js +0 -1
- package/dist/assets/sk.cea36c4c.js +0 -1
- package/dist/assets/sl.00e904c8.js +0 -1
- package/dist/assets/sr.5ffa8a72.js +0 -1
- package/dist/assets/sr_Latn.37760dd7.js +0 -1
- package/dist/assets/sv.e8d71660.js +0 -1
- package/dist/assets/th.9c7b50b0.js +0 -1
- package/dist/assets/tr.0a0fb3ee.js +0 -1
- package/dist/assets/uk.7ee1da23.js +0 -1
- package/dist/assets/vi.b1f74e9c.js +0 -1
- package/dist/assets/zh_CN.a1d71c11.js +0 -1
- package/dist/assets/zh_HK.a47dd921.js +0 -1
- package/dist/assets/zh_SG.1cd17a31.js +0 -1
- package/dist/assets/zh_TW.b03069d7.js +0 -1
- package/dist/types/GrowingMode.js +0 -48
- package/src/Avatar.js +0 -451
- package/src/Badge.js +0 -151
- package/src/BreadcrumbsItem.js +0 -103
- package/src/Button.js +0 -513
- package/src/CalendarDate.js +0 -45
- package/src/CalendarHeader.js +0 -213
- package/src/CardHeader.js +0 -283
- package/src/CheckBox.js +0 -471
- package/src/ColorPaletteItem.js +0 -137
- package/src/ColorPicker.js +0 -600
- package/src/CustomListItem.js +0 -99
- package/src/DateComponentBase.js +0 -168
- package/src/FileUploader.js +0 -533
- package/src/Filters.js +0 -28
- package/src/GroupHeaderListItem.js +0 -94
- package/src/Label.js +0 -158
- package/src/Link.js +0 -410
- package/src/List.js +0 -1120
- package/src/ListItem.js +0 -428
- package/src/ListItemBase.js +0 -181
- package/src/Menu.js +0 -502
- package/src/MenuItem.js +0 -193
- package/src/MessageStrip.js +0 -256
- package/src/StandardListItem.js +0 -207
- package/src/SuggestionGroupItem.js +0 -64
- package/src/SuggestionItem.js +0 -146
- package/src/Switch.js +0 -306
- package/src/Table.js +0 -1200
- package/src/TableColumn.js +0 -129
- package/src/TableGroupRow.js +0 -167
- package/src/TableRow.js +0 -464
- package/src/Title.js +0 -132
- package/src/types/AvatarColorScheme.js +0 -104
- package/src/types/AvatarGroupType.js +0 -43
- package/src/types/AvatarShape.js +0 -41
- package/src/types/AvatarSize.js +0 -67
- package/src/types/BreadcrumbsDesign.js +0 -42
- package/src/types/BreadcrumbsSeparatorStyle.js +0 -69
- package/src/types/BusyIndicatorSize.js +0 -47
- package/src/types/ButtonDesign.js +0 -68
- package/src/types/CalendarSelectionMode.js +0 -47
- package/src/types/CarouselArrowsPlacement.js +0 -40
- package/src/types/GrowingMode.js +0 -48
- package/src/types/HasPopup.js +0 -62
- package/src/types/LinkDesign.js +0 -47
- package/src/types/ListGrowingMode.js +0 -48
- package/src/types/ListItemType.js +0 -47
- package/src/types/ListSeparators.js +0 -46
- package/src/types/MessageStripDesign.js +0 -54
- package/src/types/PanelAccessibleRole.js +0 -48
- package/src/types/PopoverHorizontalAlign.js +0 -54
- package/src/types/PopoverPlacementType.js +0 -54
- package/src/types/PopoverVerticalAlign.js +0 -54
- package/src/types/Priority.js +0 -55
- package/src/types/SemanticColor.js +0 -61
- package/src/types/SwitchDesign.js +0 -40
- package/src/types/TabContainerBackgroundDesign.js +0 -48
- package/src/types/TabContainerTabsPlacement.js +0 -40
- package/src/types/TabLayout.js +0 -40
- package/src/types/TableGrowingMode.js +0 -48
- package/src/types/TableMode.js +0 -47
- package/src/types/TableRowType.js +0 -40
- package/src/types/TabsOverflowMode.js +0 -40
- package/src/types/ToastPlacement.js +0 -91
- package/src/types/WrappingType.js +0 -41
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
3
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
4
|
+
import event from "@ui5/webcomponents-base/dist/decorators/event.js";
|
|
5
|
+
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
6
|
+
import languageAware from "@ui5/webcomponents-base/dist/decorators/languageAware.js";
|
|
7
|
+
import type { ClassMap } from "@ui5/webcomponents-base/dist/types.js";
|
|
2
8
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
3
9
|
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
4
10
|
import {
|
|
@@ -22,6 +28,8 @@ import {
|
|
|
22
28
|
isEnd,
|
|
23
29
|
} from "@ui5/webcomponents-base/dist/Keys.js";
|
|
24
30
|
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
31
|
+
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
32
|
+
import type { I18nText } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
25
33
|
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
26
34
|
import { getEffectiveAriaLabelText, getAssociatedLabelForTexts } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
|
|
27
35
|
import { getCaretPosition, setCaretPosition } from "@ui5/webcomponents-base/dist/util/Caret.js";
|
|
@@ -32,13 +40,20 @@ import "@ui5/webcomponents-icons/dist/error.js";
|
|
|
32
40
|
import "@ui5/webcomponents-icons/dist/alert.js";
|
|
33
41
|
import "@ui5/webcomponents-icons/dist/sys-enter-2.js";
|
|
34
42
|
import "@ui5/webcomponents-icons/dist/information.js";
|
|
43
|
+
import type SuggestionItem from "./SuggestionItem.js";
|
|
44
|
+
import type { InputSuggestionText, SuggestionComponent } from "./features/InputSuggestions.js";
|
|
45
|
+
import type InputSuggestions from "./features/InputSuggestions.js";
|
|
46
|
+
import type FormSupportT from "./features/InputElementsFormSupport.js";
|
|
47
|
+
import type { IFormElement } from "./features/InputElementsFormSupport.js";
|
|
48
|
+
import type SuggestionListItem from "./SuggestionListItem.js";
|
|
49
|
+
import type { PopupScrollEventDetail } from "./Popup.js";
|
|
35
50
|
import InputType from "./types/InputType.js";
|
|
36
51
|
import Popover from "./Popover.js";
|
|
37
52
|
import Icon from "./Icon.js";
|
|
38
53
|
// Templates
|
|
39
54
|
import InputTemplate from "./generated/templates/InputTemplate.lit.js";
|
|
40
55
|
import InputPopoverTemplate from "./generated/templates/InputPopoverTemplate.lit.js";
|
|
41
|
-
import
|
|
56
|
+
import { StartsWith } from "./Filters.js";
|
|
42
57
|
|
|
43
58
|
import {
|
|
44
59
|
VALUE_STATE_SUCCESS,
|
|
@@ -54,6 +69,7 @@ import {
|
|
|
54
69
|
INPUT_SUGGESTIONS_ONE_HIT,
|
|
55
70
|
INPUT_SUGGESTIONS_MORE_HITS,
|
|
56
71
|
INPUT_SUGGESTIONS_NO_HIT,
|
|
72
|
+
// @ts-ignore
|
|
57
73
|
} from "./generated/i18n/i18n-defaults.js";
|
|
58
74
|
|
|
59
75
|
// Styles
|
|
@@ -62,465 +78,54 @@ import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverComm
|
|
|
62
78
|
import ValueStateMessageCss from "./generated/themes/ValueStateMessage.css.js";
|
|
63
79
|
import SuggestionsCss from "./generated/themes/Suggestions.css.js";
|
|
64
80
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
* automatically imports the <code><ui5-suggestion-item></code> and <code><ui5-suggestion-group-item></code> for your convenience.
|
|
114
|
-
*
|
|
115
|
-
* @type {sap.ui.webcomponents.main.IInputSuggestionItem[]}
|
|
116
|
-
* @slot suggestionItems
|
|
117
|
-
* @public
|
|
118
|
-
*/
|
|
119
|
-
"default": {
|
|
120
|
-
propertyName: "suggestionItems",
|
|
121
|
-
type: HTMLElement,
|
|
122
|
-
},
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* The slot is used for native <code>input</code> HTML element to enable form submit,
|
|
126
|
-
* when <code>name</code> property is set.
|
|
127
|
-
* @type {HTMLElement[]}
|
|
128
|
-
* @private
|
|
129
|
-
*/
|
|
130
|
-
formSupport: {
|
|
131
|
-
type: HTMLElement,
|
|
132
|
-
},
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Defines the value state message that will be displayed as pop up under the component.
|
|
136
|
-
* <br><br>
|
|
137
|
-
*
|
|
138
|
-
* <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.
|
|
139
|
-
* <br><br>
|
|
140
|
-
* <b>Note:</b> The <code>valueStateMessage</code> would be displayed,
|
|
141
|
-
* when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
|
|
142
|
-
* <br><br>
|
|
143
|
-
* <b>Note:</b> If the component has <code>suggestionItems</code>,
|
|
144
|
-
* the <code>valueStateMessage</code> would be displayed as part of the same popover, if used on desktop, or dialog - on phone.
|
|
145
|
-
* @type {HTMLElement[]}
|
|
146
|
-
* @since 1.0.0-rc.6
|
|
147
|
-
* @slot
|
|
148
|
-
* @public
|
|
149
|
-
*/
|
|
150
|
-
valueStateMessage: {
|
|
151
|
-
type: HTMLElement,
|
|
152
|
-
},
|
|
153
|
-
},
|
|
154
|
-
properties: /** @lends sap.ui.webcomponents.main.Input.prototype */ {
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* Defines whether the component is in disabled state.
|
|
158
|
-
* <br><br>
|
|
159
|
-
* <b>Note:</b> A disabled component is completely noninteractive.
|
|
160
|
-
*
|
|
161
|
-
* @type {boolean}
|
|
162
|
-
* @defaultvalue false
|
|
163
|
-
* @public
|
|
164
|
-
*/
|
|
165
|
-
disabled: {
|
|
166
|
-
type: Boolean,
|
|
167
|
-
},
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* Defines if characters within the suggestions are to be highlighted
|
|
171
|
-
* in case the input value matches parts of the suggestions text.
|
|
172
|
-
* <br><br>
|
|
173
|
-
* <b>Note:</b> takes effect when <code>showSuggestions</code> is set to <code>true</code>
|
|
174
|
-
*
|
|
175
|
-
* @type {boolean}
|
|
176
|
-
* @defaultvalue false
|
|
177
|
-
* @private
|
|
178
|
-
* @sicne 1.0.0-rc.8
|
|
179
|
-
*/
|
|
180
|
-
highlight: {
|
|
181
|
-
type: Boolean,
|
|
182
|
-
},
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* Defines a short hint intended to aid the user with data entry when the
|
|
186
|
-
* component has no value.
|
|
187
|
-
* @type {string}
|
|
188
|
-
* @defaultvalue ""
|
|
189
|
-
* @public
|
|
190
|
-
*/
|
|
191
|
-
placeholder: {
|
|
192
|
-
type: String,
|
|
193
|
-
},
|
|
194
|
-
|
|
195
|
-
/**
|
|
196
|
-
* Defines whether the component is read-only.
|
|
197
|
-
* <br><br>
|
|
198
|
-
* <b>Note:</b> A read-only component is not editable,
|
|
199
|
-
* but still provides visual feedback upon user interaction.
|
|
200
|
-
*
|
|
201
|
-
* @type {boolean}
|
|
202
|
-
* @defaultvalue false
|
|
203
|
-
* @public
|
|
204
|
-
*/
|
|
205
|
-
readonly: {
|
|
206
|
-
type: Boolean,
|
|
207
|
-
},
|
|
208
|
-
|
|
209
|
-
/**
|
|
210
|
-
* Defines whether the component is required.
|
|
211
|
-
*
|
|
212
|
-
* @type {boolean}
|
|
213
|
-
* @defaultvalue false
|
|
214
|
-
* @public
|
|
215
|
-
* @since 1.0.0-rc.3
|
|
216
|
-
*/
|
|
217
|
-
required: {
|
|
218
|
-
type: Boolean,
|
|
219
|
-
},
|
|
220
|
-
|
|
221
|
-
/**
|
|
222
|
-
* Defines whether the value will be autcompleted to match an item
|
|
223
|
-
*
|
|
224
|
-
* @type {boolean}
|
|
225
|
-
* @defaultvalue false
|
|
226
|
-
* @public
|
|
227
|
-
* @since 1.4.0
|
|
228
|
-
*/
|
|
229
|
-
noTypeahead: {
|
|
230
|
-
type: Boolean,
|
|
231
|
-
},
|
|
232
|
-
|
|
233
|
-
/**
|
|
234
|
-
* Defines the HTML type of the component.
|
|
235
|
-
* Available options are: <code>Text</code>, <code>Email</code>,
|
|
236
|
-
* <code>Number</code>, <code>Password</code>, <code>Tel</code>, and <code>URL</code>.
|
|
237
|
-
* <br><br>
|
|
238
|
-
* <b>Notes:</b>
|
|
239
|
-
* <ul>
|
|
240
|
-
* <li>The particular effect of this property differs depending on the browser
|
|
241
|
-
* and the current language settings, especially for type <code>Number</code>.</li>
|
|
242
|
-
* <li>The property is mostly intended to be used with touch devices
|
|
243
|
-
* that use different soft keyboard layouts depending on the given input type.</li>
|
|
244
|
-
* </ul>
|
|
245
|
-
*
|
|
246
|
-
* @type {sap.ui.webcomponents.main.types.InputType}
|
|
247
|
-
* @defaultvalue "Text"
|
|
248
|
-
* @public
|
|
249
|
-
*/
|
|
250
|
-
type: {
|
|
251
|
-
type: InputType,
|
|
252
|
-
defaultValue: InputType.Text,
|
|
253
|
-
},
|
|
254
|
-
|
|
255
|
-
/**
|
|
256
|
-
* Defines the value of the component.
|
|
257
|
-
* <br><br>
|
|
258
|
-
* <b>Note:</b> The property is updated upon typing.
|
|
259
|
-
*
|
|
260
|
-
* @type {string}
|
|
261
|
-
* @defaultvalue ""
|
|
262
|
-
* @formEvents change input
|
|
263
|
-
* @formProperty
|
|
264
|
-
* @public
|
|
265
|
-
*/
|
|
266
|
-
value: {
|
|
267
|
-
type: String,
|
|
268
|
-
},
|
|
269
|
-
|
|
270
|
-
/**
|
|
271
|
-
* Defines the inner stored value of the component.
|
|
272
|
-
* <br><br>
|
|
273
|
-
* <b>Note:</b> The property is updated upon typing. In some special cases the old value is kept (e.g. deleting the value after the dot in a float)
|
|
274
|
-
*
|
|
275
|
-
* @type {string}
|
|
276
|
-
* @defaultvalue ""
|
|
277
|
-
* @private
|
|
278
|
-
*/
|
|
279
|
-
_innerValue: {
|
|
280
|
-
type: String,
|
|
281
|
-
noAttribute: true,
|
|
282
|
-
},
|
|
283
|
-
|
|
284
|
-
/**
|
|
285
|
-
* Defines the value state of the component.
|
|
286
|
-
* <br><br>
|
|
287
|
-
* Available options are:
|
|
288
|
-
* <ul>
|
|
289
|
-
* <li><code>None</code></li>
|
|
290
|
-
* <li><code>Error</code></li>
|
|
291
|
-
* <li><code>Warning</code></li>
|
|
292
|
-
* <li><code>Success</code></li>
|
|
293
|
-
* <li><code>Information</code></li>
|
|
294
|
-
* </ul>
|
|
295
|
-
*
|
|
296
|
-
* @type {sap.ui.webcomponents.base.types.ValueState}
|
|
297
|
-
* @defaultvalue "None"
|
|
298
|
-
* @public
|
|
299
|
-
*/
|
|
300
|
-
valueState: {
|
|
301
|
-
type: ValueState,
|
|
302
|
-
defaultValue: ValueState.None,
|
|
303
|
-
},
|
|
304
|
-
|
|
305
|
-
/**
|
|
306
|
-
* Determines the name with which the component will be submitted in an HTML form.
|
|
307
|
-
*
|
|
308
|
-
* <br><br>
|
|
309
|
-
* <b>Important:</b> For the <code>name</code> property to have effect, you must add the following import to your project:
|
|
310
|
-
* <code>import "@ui5/webcomponents/dist/features/InputElementsFormSupport.js";</code>
|
|
311
|
-
*
|
|
312
|
-
* <br><br>
|
|
313
|
-
* <b>Note:</b> When set, a native <code>input</code> HTML element
|
|
314
|
-
* will be created inside the component so that it can be submitted as
|
|
315
|
-
* part of an HTML form. Do not use this property unless you need to submit a form.
|
|
316
|
-
*
|
|
317
|
-
* @type {string}
|
|
318
|
-
* @defaultvalue ""
|
|
319
|
-
* @public
|
|
320
|
-
*/
|
|
321
|
-
name: {
|
|
322
|
-
type: String,
|
|
323
|
-
},
|
|
324
|
-
|
|
325
|
-
/**
|
|
326
|
-
* Defines whether the component should show suggestions, if such are present.
|
|
327
|
-
* <br><br>
|
|
328
|
-
* <b>Note:</b> You need to import the <code>InputSuggestions</code> module
|
|
329
|
-
* from <code>"@ui5/webcomponents/dist/features/InputSuggestions.js"</code> to enable this functionality.
|
|
330
|
-
* @type {boolean}
|
|
331
|
-
* @defaultvalue false
|
|
332
|
-
* @public
|
|
333
|
-
*/
|
|
334
|
-
showSuggestions: {
|
|
335
|
-
type: Boolean,
|
|
336
|
-
},
|
|
337
|
-
|
|
338
|
-
/**
|
|
339
|
-
* Sets the maximum number of characters available in the input field.
|
|
340
|
-
* <br><br>
|
|
341
|
-
* <b>Note:</b> This property is not compatible with the ui5-input type InputType.Number. If the ui5-input type is set to Number, the maxlength value is ignored.
|
|
342
|
-
* @type {sap.ui.webcomponents.base.types.Integer}
|
|
343
|
-
* @since 1.0.0-rc.5
|
|
344
|
-
* @public
|
|
345
|
-
*/
|
|
346
|
-
maxlength: {
|
|
347
|
-
type: Integer,
|
|
348
|
-
},
|
|
349
|
-
|
|
350
|
-
/**
|
|
351
|
-
* Defines the accessible ARIA name of the component.
|
|
352
|
-
*
|
|
353
|
-
* @type {string}
|
|
354
|
-
* @public
|
|
355
|
-
* @since 1.0.0-rc.15
|
|
356
|
-
*/
|
|
357
|
-
accessibleName: {
|
|
358
|
-
type: String,
|
|
359
|
-
},
|
|
360
|
-
|
|
361
|
-
/**
|
|
362
|
-
* Receives id(or many ids) of the elements that label the input.
|
|
363
|
-
*
|
|
364
|
-
* @type {string}
|
|
365
|
-
* @defaultvalue ""
|
|
366
|
-
* @public
|
|
367
|
-
* @since 1.0.0-rc.15
|
|
368
|
-
*/
|
|
369
|
-
accessibleNameRef: {
|
|
370
|
-
type: String,
|
|
371
|
-
defaultValue: "",
|
|
372
|
-
},
|
|
373
|
-
|
|
374
|
-
/**
|
|
375
|
-
* Defines whether the clear icon of the input will be shown.
|
|
376
|
-
*
|
|
377
|
-
* @type {boolean}
|
|
378
|
-
* @defaultvalue false
|
|
379
|
-
* @public
|
|
380
|
-
* @since 1.2.0
|
|
381
|
-
*/
|
|
382
|
-
showClearIcon: {
|
|
383
|
-
type: Boolean,
|
|
384
|
-
},
|
|
385
|
-
|
|
386
|
-
/**
|
|
387
|
-
* Defines whether the clear icon is visible.
|
|
388
|
-
*
|
|
389
|
-
* @type {boolean}
|
|
390
|
-
* @defaultvalue false
|
|
391
|
-
* @private
|
|
392
|
-
* @since 1.2.0
|
|
393
|
-
*/
|
|
394
|
-
effectiveShowClearIcon: {
|
|
395
|
-
type: Boolean,
|
|
396
|
-
},
|
|
397
|
-
|
|
398
|
-
/**
|
|
399
|
-
* @private
|
|
400
|
-
*/
|
|
401
|
-
focused: {
|
|
402
|
-
type: Boolean,
|
|
403
|
-
},
|
|
404
|
-
|
|
405
|
-
openOnMobile: {
|
|
406
|
-
type: Boolean,
|
|
407
|
-
},
|
|
408
|
-
|
|
409
|
-
open: {
|
|
410
|
-
type: Boolean,
|
|
411
|
-
},
|
|
412
|
-
|
|
413
|
-
/**
|
|
414
|
-
* Determines whether to manually show the suggestions popover
|
|
415
|
-
* @private
|
|
416
|
-
*/
|
|
417
|
-
_forceOpen: {
|
|
418
|
-
type: Boolean,
|
|
419
|
-
},
|
|
420
|
-
|
|
421
|
-
/**
|
|
422
|
-
* Indicates whether the visual focus is on the value state header
|
|
423
|
-
* @private
|
|
424
|
-
*/
|
|
425
|
-
_isValueStateFocused: {
|
|
426
|
-
type: Boolean,
|
|
427
|
-
},
|
|
428
|
-
|
|
429
|
-
_input: {
|
|
430
|
-
type: Object,
|
|
431
|
-
},
|
|
432
|
-
|
|
433
|
-
_inputAccInfo: {
|
|
434
|
-
type: Object,
|
|
435
|
-
},
|
|
436
|
-
|
|
437
|
-
_nativeInputAttributes: {
|
|
438
|
-
type: Object,
|
|
439
|
-
},
|
|
440
|
-
|
|
441
|
-
_inputWidth: {
|
|
442
|
-
type: Integer,
|
|
443
|
-
},
|
|
444
|
-
|
|
445
|
-
_listWidth: {
|
|
446
|
-
type: Integer,
|
|
447
|
-
},
|
|
448
|
-
|
|
449
|
-
_isPopoverOpen: {
|
|
450
|
-
type: Boolean,
|
|
451
|
-
noAttribute: true,
|
|
452
|
-
},
|
|
453
|
-
|
|
454
|
-
_inputIconFocused: {
|
|
455
|
-
type: Boolean,
|
|
456
|
-
noAttribute: true,
|
|
457
|
-
},
|
|
458
|
-
},
|
|
459
|
-
events: /** @lends sap.ui.webcomponents.main.Input.prototype */ {
|
|
460
|
-
/**
|
|
461
|
-
* Fired when the input operation has finished by pressing Enter or on focusout.
|
|
462
|
-
*
|
|
463
|
-
* @event
|
|
464
|
-
* @public
|
|
465
|
-
*/
|
|
466
|
-
change: {},
|
|
467
|
-
|
|
468
|
-
/**
|
|
469
|
-
* Fired when the value of the component changes at each keystroke,
|
|
470
|
-
* and when a suggestion item has been selected.
|
|
471
|
-
*
|
|
472
|
-
* @event
|
|
473
|
-
* @public
|
|
474
|
-
*/
|
|
475
|
-
input: {},
|
|
476
|
-
|
|
477
|
-
/**
|
|
478
|
-
* Fired when a suggestion item, that is displayed in the suggestion popup, is selected.
|
|
479
|
-
*
|
|
480
|
-
* @event sap.ui.webcomponents.main.Input#suggestion-item-select
|
|
481
|
-
* @param {HTMLElement} item The selected item.
|
|
482
|
-
* @public
|
|
483
|
-
*/
|
|
484
|
-
"suggestion-item-select": {
|
|
485
|
-
detail: {
|
|
486
|
-
item: { type: HTMLElement },
|
|
487
|
-
},
|
|
488
|
-
},
|
|
489
|
-
|
|
490
|
-
/**
|
|
491
|
-
* Fired when the user navigates to a suggestion item via the ARROW keys,
|
|
492
|
-
* as a preview, before the final selection.
|
|
493
|
-
*
|
|
494
|
-
* @event sap.ui.webcomponents.main.Input#suggestion-item-preview
|
|
495
|
-
* @param {HTMLElement} item The previewed suggestion item.
|
|
496
|
-
* @param {HTMLElement} targetRef The DOM ref of the suggestion item.
|
|
497
|
-
* @public
|
|
498
|
-
* @since 1.0.0-rc.8
|
|
499
|
-
*/
|
|
500
|
-
"suggestion-item-preview": {
|
|
501
|
-
detail: {
|
|
502
|
-
item: { type: HTMLElement },
|
|
503
|
-
targetRef: { type: HTMLElement },
|
|
504
|
-
},
|
|
505
|
-
},
|
|
506
|
-
|
|
507
|
-
/**
|
|
508
|
-
* Fired when the user scrolls the suggestion popover.
|
|
509
|
-
*
|
|
510
|
-
* @event sap.ui.webcomponents.main.Input#suggestion-scroll
|
|
511
|
-
* @param {Integer} scrollTop The current scroll position.
|
|
512
|
-
* @param {HTMLElement} scrollContainer The scroll container.
|
|
513
|
-
* @protected
|
|
514
|
-
* @since 1.0.0-rc.8
|
|
515
|
-
*/
|
|
516
|
-
"suggestion-scroll": {
|
|
517
|
-
detail: {
|
|
518
|
-
scrollTop: { type: Integer },
|
|
519
|
-
scrollContainer: { type: HTMLElement },
|
|
520
|
-
},
|
|
521
|
-
},
|
|
522
|
-
},
|
|
523
|
-
};
|
|
81
|
+
type NativeInputAttributes = {
|
|
82
|
+
min?: number,
|
|
83
|
+
max?: number,
|
|
84
|
+
step?: number
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
type AccInfo = {
|
|
88
|
+
ariaRoledescription?: string,
|
|
89
|
+
ariaDescribedBy?: string,
|
|
90
|
+
ariaHasPopup?: string,
|
|
91
|
+
ariaAutoComplete?: string,
|
|
92
|
+
role?: string,
|
|
93
|
+
ariaControls?: string,
|
|
94
|
+
ariaExpanded?: string,
|
|
95
|
+
ariaDescription?: string,
|
|
96
|
+
ariaLabel?: string,
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// all sementic events
|
|
100
|
+
enum INPUT_EVENTS {
|
|
101
|
+
CHANGE = "change",
|
|
102
|
+
INPUT = "input",
|
|
103
|
+
SUGGESTION_ITEM_SELECT = "suggestion-item-select",
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// all user interactions
|
|
107
|
+
enum INPUT_ACTIONS {
|
|
108
|
+
ACTION_ENTER = "enter",
|
|
109
|
+
ACTION_USER_INPUT = "input",
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
type InputEventDetail = {
|
|
113
|
+
inputType?: string;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
type SuggestionItemSelectEventDetail = {
|
|
117
|
+
item: SuggestionItem;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
type SuggestionItemPreviewEventDetail = {
|
|
121
|
+
item: SuggestionItem;
|
|
122
|
+
targetRef: SuggestionListItem;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
type SuggestionScrollEventDetail = {
|
|
126
|
+
scrollTop: number;
|
|
127
|
+
scrollContainer: HTMLElement;
|
|
128
|
+
}
|
|
524
129
|
|
|
525
130
|
/**
|
|
526
131
|
* @class
|
|
@@ -565,17 +170,458 @@ const metadata = {
|
|
|
565
170
|
*
|
|
566
171
|
* @constructor
|
|
567
172
|
* @author SAP SE
|
|
568
|
-
* @alias sap.ui.
|
|
569
|
-
* @extends sap.ui.
|
|
173
|
+
* @alias sap.ui.webc.main.Input
|
|
174
|
+
* @extends sap.ui.webc.base.UI5Element
|
|
570
175
|
* @tagname ui5-input
|
|
571
176
|
* @appenddocs SuggestionItem SuggestionGroupItem
|
|
572
|
-
* @implements sap.ui.
|
|
177
|
+
* @implements sap.ui.webc.main.IInput
|
|
573
178
|
* @public
|
|
574
179
|
*/
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
180
|
+
@customElement("ui5-input")
|
|
181
|
+
@languageAware
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Fired when the input operation has finished by pressing Enter or on focusout.
|
|
185
|
+
*
|
|
186
|
+
* @event sap.ui.webc.main.Input#change
|
|
187
|
+
* @public
|
|
188
|
+
*/
|
|
189
|
+
@event("change")
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Fired when the value of the component changes at each keystroke,
|
|
193
|
+
* and when a suggestion item has been selected.
|
|
194
|
+
*
|
|
195
|
+
* @event sap.ui.webc.main.Input#input
|
|
196
|
+
* @public
|
|
197
|
+
*/
|
|
198
|
+
@event("input")
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Fired when a suggestion item, that is displayed in the suggestion popup, is selected.
|
|
202
|
+
*
|
|
203
|
+
* @event sap.ui.webc.main.Input#suggestion-item-select
|
|
204
|
+
* @param {HTMLElement} item The selected item.
|
|
205
|
+
* @public
|
|
206
|
+
*/
|
|
207
|
+
@event("suggestion-item-select", {
|
|
208
|
+
detail: {
|
|
209
|
+
item: { type: HTMLElement },
|
|
210
|
+
},
|
|
211
|
+
})
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Fired when the user navigates to a suggestion item via the ARROW keys,
|
|
215
|
+
* as a preview, before the final selection.
|
|
216
|
+
*
|
|
217
|
+
* @event sap.ui.webc.main.Input#suggestion-item-preview
|
|
218
|
+
* @param {HTMLElement} item The previewed suggestion item.
|
|
219
|
+
* @param {HTMLElement} targetRef The DOM ref of the suggestion item.
|
|
220
|
+
* @public
|
|
221
|
+
* @since 1.0.0-rc.8
|
|
222
|
+
*/
|
|
223
|
+
@event("suggestion-item-preview", {
|
|
224
|
+
detail: {
|
|
225
|
+
item: { type: HTMLElement },
|
|
226
|
+
targetRef: { type: HTMLElement },
|
|
227
|
+
},
|
|
228
|
+
})
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Fired when the user scrolls the suggestion popover.
|
|
232
|
+
*
|
|
233
|
+
* @event sap.ui.webc.main.Input#suggestion-scroll
|
|
234
|
+
* @param {Integer} scrollTop The current scroll position.
|
|
235
|
+
* @param {HTMLElement} scrollContainer The scroll container.
|
|
236
|
+
* @protected
|
|
237
|
+
* @since 1.0.0-rc.8
|
|
238
|
+
*/
|
|
239
|
+
@event("suggestion-scroll", {
|
|
240
|
+
detail: {
|
|
241
|
+
scrollTop: { type: Integer },
|
|
242
|
+
scrollContainer: { type: HTMLElement },
|
|
243
|
+
},
|
|
244
|
+
})
|
|
245
|
+
|
|
246
|
+
class Input extends UI5Element implements SuggestionComponent, IFormElement {
|
|
247
|
+
/**
|
|
248
|
+
* Defines whether the component is in disabled state.
|
|
249
|
+
* <br><br>
|
|
250
|
+
* <b>Note:</b> A disabled component is completely noninteractive.
|
|
251
|
+
*
|
|
252
|
+
* @type {boolean}
|
|
253
|
+
* @name sap.ui.webc.main.Input.prototype.disabled
|
|
254
|
+
* @defaultvalue false
|
|
255
|
+
* @public
|
|
256
|
+
*/
|
|
257
|
+
@property({ type: Boolean })
|
|
258
|
+
disabled!: boolean;
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Defines if characters within the suggestions are to be highlighted
|
|
262
|
+
* in case the input value matches parts of the suggestions text.
|
|
263
|
+
* <br><br>
|
|
264
|
+
* <b>Note:</b> takes effect when <code>showSuggestions</code> is set to <code>true</code>
|
|
265
|
+
*
|
|
266
|
+
* @type {boolean}
|
|
267
|
+
* @defaultvalue false
|
|
268
|
+
* @private
|
|
269
|
+
* @sicne 1.0.0-rc.8
|
|
270
|
+
*/
|
|
271
|
+
@property({ type: Boolean })
|
|
272
|
+
highlight!: boolean;
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* Defines a short hint intended to aid the user with data entry when the
|
|
276
|
+
* component has no value.
|
|
277
|
+
* @type {string}
|
|
278
|
+
* @name sap.ui.webc.main.Input.prototype.placeholder
|
|
279
|
+
* @defaultvalue ""
|
|
280
|
+
* @public
|
|
281
|
+
*/
|
|
282
|
+
@property()
|
|
283
|
+
placeholder!: string;
|
|
284
|
+
|
|
285
|
+
/**
|
|
286
|
+
* Defines whether the component is read-only.
|
|
287
|
+
* <br><br>
|
|
288
|
+
* <b>Note:</b> A read-only component is not editable,
|
|
289
|
+
* but still provides visual feedback upon user interaction.
|
|
290
|
+
*
|
|
291
|
+
* @type {boolean}
|
|
292
|
+
* @name sap.ui.webc.main.Input.prototype.readonly
|
|
293
|
+
* @defaultvalue false
|
|
294
|
+
* @public
|
|
295
|
+
*/
|
|
296
|
+
@property({ type: Boolean })
|
|
297
|
+
readonly!: boolean;
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* Defines whether the component is required.
|
|
301
|
+
*
|
|
302
|
+
* @type {boolean}
|
|
303
|
+
* @name sap.ui.webc.main.Input.prototype.required
|
|
304
|
+
* @defaultvalue false
|
|
305
|
+
* @public
|
|
306
|
+
* @since 1.0.0-rc.3
|
|
307
|
+
*/
|
|
308
|
+
@property({ type: Boolean })
|
|
309
|
+
required!: boolean;
|
|
310
|
+
|
|
311
|
+
/**
|
|
312
|
+
* Defines whether the value will be autcompleted to match an item
|
|
313
|
+
*
|
|
314
|
+
* @type {boolean}
|
|
315
|
+
* @name sap.ui.webc.main.Input.prototype.noTypeahead
|
|
316
|
+
* @defaultvalue false
|
|
317
|
+
* @public
|
|
318
|
+
* @since 1.4.0
|
|
319
|
+
*/
|
|
320
|
+
@property({ type: Boolean })
|
|
321
|
+
noTypeahead!: boolean;
|
|
322
|
+
|
|
323
|
+
/**
|
|
324
|
+
* Defines the HTML type of the component.
|
|
325
|
+
* Available options are: <code>Text</code>, <code>Email</code>,
|
|
326
|
+
* <code>Number</code>, <code>Password</code>, <code>Tel</code>, and <code>URL</code>.
|
|
327
|
+
* <br><br>
|
|
328
|
+
* <b>Notes:</b>
|
|
329
|
+
* <ul>
|
|
330
|
+
* <li>The particular effect of this property differs depending on the browser
|
|
331
|
+
* and the current language settings, especially for type <code>Number</code>.</li>
|
|
332
|
+
* <li>The property is mostly intended to be used with touch devices
|
|
333
|
+
* that use different soft keyboard layouts depending on the given input type.</li>
|
|
334
|
+
* </ul>
|
|
335
|
+
*
|
|
336
|
+
* @type {sap.ui.webc.main.types.InputType}
|
|
337
|
+
* @name sap.ui.webc.main.Input.prototype.type
|
|
338
|
+
* @defaultvalue "Text"
|
|
339
|
+
* @public
|
|
340
|
+
*/
|
|
341
|
+
@property({ type: InputType, defaultValue: InputType.Text })
|
|
342
|
+
type!: InputType;
|
|
343
|
+
|
|
344
|
+
/**
|
|
345
|
+
* Defines the value of the component.
|
|
346
|
+
* <br><br>
|
|
347
|
+
* <b>Note:</b> The property is updated upon typing.
|
|
348
|
+
*
|
|
349
|
+
* @type {string}
|
|
350
|
+
* @name sap.ui.webc.main.Input.prototype.value
|
|
351
|
+
* @defaultvalue ""
|
|
352
|
+
* @formEvents change input
|
|
353
|
+
* @formProperty
|
|
354
|
+
* @public
|
|
355
|
+
*/
|
|
356
|
+
@property()
|
|
357
|
+
value!: string;
|
|
358
|
+
|
|
359
|
+
/**
|
|
360
|
+
* Defines the inner stored value of the component.
|
|
361
|
+
* <br><br>
|
|
362
|
+
* <b>Note:</b> The property is updated upon typing. In some special cases the old value is kept (e.g. deleting the value after the dot in a float)
|
|
363
|
+
*
|
|
364
|
+
* @type {string}
|
|
365
|
+
* @defaultvalue ""
|
|
366
|
+
* @private
|
|
367
|
+
*/
|
|
368
|
+
@property({ noAttribute: true })
|
|
369
|
+
_innerValue!: string;
|
|
370
|
+
|
|
371
|
+
/**
|
|
372
|
+
* Defines the value state of the component.
|
|
373
|
+
* <br><br>
|
|
374
|
+
* Available options are:
|
|
375
|
+
* <ul>
|
|
376
|
+
* <li><code>None</code></li>
|
|
377
|
+
* <li><code>Error</code></li>
|
|
378
|
+
* <li><code>Warning</code></li>
|
|
379
|
+
* <li><code>Success</code></li>
|
|
380
|
+
* <li><code>Information</code></li>
|
|
381
|
+
* </ul>
|
|
382
|
+
*
|
|
383
|
+
* @type {sap.ui.webc.base.types.ValueState}
|
|
384
|
+
* @name sap.ui.webc.main.Input.prototype.valueState
|
|
385
|
+
* @defaultvalue "None"
|
|
386
|
+
* @public
|
|
387
|
+
*/
|
|
388
|
+
@property({ type: ValueState, defaultValue: ValueState.None })
|
|
389
|
+
valueState!: ValueState;
|
|
390
|
+
|
|
391
|
+
/**
|
|
392
|
+
* Determines the name with which the component will be submitted in an HTML form.
|
|
393
|
+
*
|
|
394
|
+
* <br><br>
|
|
395
|
+
* <b>Important:</b> For the <code>name</code> property to have effect, you must add the following import to your project:
|
|
396
|
+
* <code>import "@ui5/webcomponents/dist/features/InputElementsFormSupport.js";</code>
|
|
397
|
+
*
|
|
398
|
+
* <br><br>
|
|
399
|
+
* <b>Note:</b> When set, a native <code>input</code> HTML element
|
|
400
|
+
* will be created inside the component so that it can be submitted as
|
|
401
|
+
* part of an HTML form. Do not use this property unless you need to submit a form.
|
|
402
|
+
*
|
|
403
|
+
* @type {string}
|
|
404
|
+
* @name sap.ui.webc.main.Input.prototype.name
|
|
405
|
+
* @defaultvalue ""
|
|
406
|
+
* @public
|
|
407
|
+
*/
|
|
408
|
+
@property()
|
|
409
|
+
name!: string;
|
|
410
|
+
|
|
411
|
+
/**
|
|
412
|
+
* Defines whether the component should show suggestions, if such are present.
|
|
413
|
+
* <br><br>
|
|
414
|
+
* <b>Note:</b> You need to import the <code>InputSuggestions</code> module
|
|
415
|
+
* from <code>"@ui5/webcomponents/dist/features/InputSuggestions.js"</code> to enable this functionality.
|
|
416
|
+
* @type {boolean}
|
|
417
|
+
* @name sap.ui.webc.main.Input.prototype.showSuggestions
|
|
418
|
+
* @defaultvalue false
|
|
419
|
+
* @public
|
|
420
|
+
*/
|
|
421
|
+
@property({ type: Boolean })
|
|
422
|
+
showSuggestions!: boolean;
|
|
423
|
+
|
|
424
|
+
/**
|
|
425
|
+
* Sets the maximum number of characters available in the input field.
|
|
426
|
+
* <br><br>
|
|
427
|
+
* <b>Note:</b> This property is not compatible with the ui5-input type InputType.Number. If the ui5-input type is set to Number, the maxlength value is ignored.
|
|
428
|
+
* @type {sap.ui.webc.base.types.Integer}
|
|
429
|
+
* @name sap.ui.webc.main.Input.prototype.maxlength
|
|
430
|
+
* @since 1.0.0-rc.5
|
|
431
|
+
* @public
|
|
432
|
+
*/
|
|
433
|
+
@property({ validator: Integer })
|
|
434
|
+
maxlength?: number;
|
|
435
|
+
|
|
436
|
+
/**
|
|
437
|
+
* Defines the accessible ARIA name of the component.
|
|
438
|
+
*
|
|
439
|
+
* @type {string}
|
|
440
|
+
* @name sap.ui.webc.main.Input.prototype.accessibleName
|
|
441
|
+
* @public
|
|
442
|
+
* @since 1.0.0-rc.15
|
|
443
|
+
*/
|
|
444
|
+
@property()
|
|
445
|
+
accessibleName!: string;
|
|
446
|
+
|
|
447
|
+
/**
|
|
448
|
+
* Receives id(or many ids) of the elements that label the input.
|
|
449
|
+
*
|
|
450
|
+
* @type {string}
|
|
451
|
+
* @name sap.ui.webc.main.Input.prototype.accessibleNameRef
|
|
452
|
+
* @defaultvalue ""
|
|
453
|
+
* @public
|
|
454
|
+
* @since 1.0.0-rc.15
|
|
455
|
+
*/
|
|
456
|
+
@property({ defaultValue: "" })
|
|
457
|
+
accessibleNameRef!: string;
|
|
458
|
+
|
|
459
|
+
/**
|
|
460
|
+
* Defines whether the clear icon of the input will be shown.
|
|
461
|
+
*
|
|
462
|
+
* @type {boolean}
|
|
463
|
+
* @name sap.ui.webc.main.Input.prototype.showClearIcon
|
|
464
|
+
* @defaultvalue false
|
|
465
|
+
* @public
|
|
466
|
+
* @since 1.2.0
|
|
467
|
+
*/
|
|
468
|
+
@property({ type: Boolean })
|
|
469
|
+
showClearIcon!: boolean;
|
|
470
|
+
|
|
471
|
+
/**
|
|
472
|
+
* Defines whether the clear icon is visible.
|
|
473
|
+
*
|
|
474
|
+
* @type {boolean}
|
|
475
|
+
* @defaultvalue false
|
|
476
|
+
* @private
|
|
477
|
+
* @since 1.2.0
|
|
478
|
+
*/
|
|
479
|
+
@property({ type: Boolean })
|
|
480
|
+
effectiveShowClearIcon!: boolean;
|
|
481
|
+
|
|
482
|
+
/**
|
|
483
|
+
* @private
|
|
484
|
+
*/
|
|
485
|
+
@property({ type: Boolean })
|
|
486
|
+
focused!: boolean;
|
|
487
|
+
|
|
488
|
+
@property({ type: Boolean })
|
|
489
|
+
openOnMobile!: boolean;
|
|
490
|
+
|
|
491
|
+
@property({ type: Boolean })
|
|
492
|
+
open!: boolean;
|
|
493
|
+
|
|
494
|
+
/**
|
|
495
|
+
* Determines whether to manually show the suggestions popover
|
|
496
|
+
* @private
|
|
497
|
+
*/
|
|
498
|
+
@property({ type: Boolean })
|
|
499
|
+
_forceOpen!: boolean;
|
|
500
|
+
|
|
501
|
+
/**
|
|
502
|
+
* Indicates whether the visual focus is on the value state header
|
|
503
|
+
* @private
|
|
504
|
+
*/
|
|
505
|
+
@property({ type: Boolean })
|
|
506
|
+
_isValueStateFocused!: boolean;
|
|
507
|
+
|
|
508
|
+
@property({ type: Object, noAttribute: true })
|
|
509
|
+
_inputAccInfo!: AccInfo;
|
|
510
|
+
|
|
511
|
+
@property({ type: Object, noAttribute: true })
|
|
512
|
+
_nativeInputAttributes!: NativeInputAttributes;
|
|
513
|
+
|
|
514
|
+
@property({ validator: Integer })
|
|
515
|
+
_inputWidth?: number;
|
|
516
|
+
|
|
517
|
+
@property({ validator: Integer })
|
|
518
|
+
_listWidth?: number;
|
|
519
|
+
|
|
520
|
+
@property({ type: Boolean, noAttribute: true })
|
|
521
|
+
_isPopoverOpen!: boolean;
|
|
522
|
+
|
|
523
|
+
@property({ type: Boolean, noAttribute: true })
|
|
524
|
+
_inputIconFocused!: boolean;
|
|
525
|
+
|
|
526
|
+
/**
|
|
527
|
+
* Defines the suggestion items.
|
|
528
|
+
* <br><br>
|
|
529
|
+
* Example:
|
|
530
|
+
* <br><br>
|
|
531
|
+
* <ui5-input show-suggestions><br>
|
|
532
|
+
* <ui5-suggestion-item text="Item #1"></ui5-suggestion-item><br>
|
|
533
|
+
* <ui5-suggestion-item text="Item #2"></ui5-suggestion-item><br>
|
|
534
|
+
* </ui5-input>
|
|
535
|
+
* <br>
|
|
536
|
+
* <ui5-input show-suggestions>
|
|
537
|
+
* <ui5-suggestion-group-item text="Group #1"></ui5-suggestion-group-item>
|
|
538
|
+
* <ui5-suggestion-item text="Item #1"></ui5-suggestion-item>
|
|
539
|
+
* <ui5-suggestion-item text="Item #2"></ui5-suggestion-item>
|
|
540
|
+
* <ui5-suggestion-group-item text="Group #2"></ui5-suggestion-group-item>
|
|
541
|
+
* <ui5-suggestion-item text="Item #3"></ui5-suggestion-item>
|
|
542
|
+
* <ui5-suggestion-item text="Item #4"></ui5-suggestion-item>
|
|
543
|
+
* </ui5-input>
|
|
544
|
+
* <br><br>
|
|
545
|
+
* <b>Note:</b> The suggestions would be displayed only if the <code>showSuggestions</code>
|
|
546
|
+
* property is set to <code>true</code>.
|
|
547
|
+
* <br><br>
|
|
548
|
+
* <b>Note:</b> The <code><ui5-suggestion-item></code> and <code><ui5-suggestion-group-item></code> are recommended to be used as suggestion items.
|
|
549
|
+
* <br><br>
|
|
550
|
+
* <b>Note:</b> Importing the Input Suggestions Support feature:
|
|
551
|
+
* <br>
|
|
552
|
+
* <code>import "@ui5/webcomponents/dist/features/InputSuggestions.js";</code>
|
|
553
|
+
* <br>
|
|
554
|
+
* automatically imports the <code><ui5-suggestion-item></code> and <code><ui5-suggestion-group-item></code> for your convenience.
|
|
555
|
+
*
|
|
556
|
+
* @type {sap.ui.webc.main.IInputSuggestionItem[]}
|
|
557
|
+
* @name sap.ui.webc.main.Input.prototype.default
|
|
558
|
+
* @slot suggestionItems
|
|
559
|
+
* @public
|
|
560
|
+
*/
|
|
561
|
+
@slot({ type: HTMLElement, "default": true })
|
|
562
|
+
suggestionItems!: Array<SuggestionItem>;
|
|
563
|
+
|
|
564
|
+
/**
|
|
565
|
+
* Defines the icon to be displayed in the component.
|
|
566
|
+
*
|
|
567
|
+
* @type {sap.ui.webc.main.IIcon[]}
|
|
568
|
+
* @name sap.ui.webc.main.Input.prototype.icon
|
|
569
|
+
* @slot
|
|
570
|
+
* @public
|
|
571
|
+
*/
|
|
572
|
+
@slot()
|
|
573
|
+
icon!: Array<Icon>;
|
|
574
|
+
|
|
575
|
+
/**
|
|
576
|
+
* The slot is used for native <code>input</code> HTML element to enable form submit,
|
|
577
|
+
* when <code>name</code> property is set.
|
|
578
|
+
* @type {HTMLElement[]}
|
|
579
|
+
* @private
|
|
580
|
+
*/
|
|
581
|
+
@slot()
|
|
582
|
+
formSupport!: Array<HTMLElement>;
|
|
583
|
+
|
|
584
|
+
/**
|
|
585
|
+
* Defines the value state message that will be displayed as pop up under the component.
|
|
586
|
+
* <br><br>
|
|
587
|
+
*
|
|
588
|
+
* <b>Note:</b> If not specified, a default text (in the respective language) will be displayed.
|
|
589
|
+
* <br><br>
|
|
590
|
+
* <b>Note:</b> The <code>valueStateMessage</code> would be displayed,
|
|
591
|
+
* when the component is in <code>Information</code>, <code>Warning</code> or <code>Error</code> value state.
|
|
592
|
+
* <br><br>
|
|
593
|
+
* <b>Note:</b> If the component has <code>suggestionItems</code>,
|
|
594
|
+
* the <code>valueStateMessage</code> would be displayed as part of the same popover, if used on desktop, or dialog - on phone.
|
|
595
|
+
* @type {HTMLElement[]}
|
|
596
|
+
* @name sap.ui.webc.main.Input.prototype.valueStateMessage
|
|
597
|
+
* @since 1.0.0-rc.6
|
|
598
|
+
* @slot
|
|
599
|
+
* @public
|
|
600
|
+
*/
|
|
601
|
+
@slot()
|
|
602
|
+
valueStateMessage!: Array<HTMLElement>;
|
|
603
|
+
|
|
604
|
+
hasSuggestionItemSelected: boolean;
|
|
605
|
+
valueBeforeItemSelection: string;
|
|
606
|
+
valueBeforeItemPreview: string
|
|
607
|
+
suggestionSelectionCanceled: boolean;
|
|
608
|
+
previousValue: string;
|
|
609
|
+
firstRendering: boolean;
|
|
610
|
+
typedInValue: string;
|
|
611
|
+
lastConfirmedValue: string
|
|
612
|
+
isTyping: boolean
|
|
613
|
+
suggestionsTexts: Array<InputSuggestionText>;
|
|
614
|
+
_handleResizeBound: () => void;
|
|
615
|
+
_keepInnerValue: boolean;
|
|
616
|
+
_shouldAutocomplete?: boolean;
|
|
617
|
+
_keyDown?: boolean;
|
|
618
|
+
_isKeyNavigation?: boolean;
|
|
619
|
+
Suggestions?: InputSuggestions;
|
|
620
|
+
FormSupport?: typeof FormSupportT;
|
|
621
|
+
_selectedText?: string;
|
|
622
|
+
_clearIconClicked?: boolean;
|
|
623
|
+
_previewItem?: SuggestionListItem;
|
|
624
|
+
static i18nBundle: I18nBundle;
|
|
579
625
|
|
|
580
626
|
static get render() {
|
|
581
627
|
return litRender;
|
|
@@ -617,32 +663,20 @@ class Input extends UI5Element {
|
|
|
617
663
|
this.suggestionSelectionCanceled = false;
|
|
618
664
|
|
|
619
665
|
// tracks the value between focus in and focus out to detect that change event should be fired.
|
|
620
|
-
this.previousValue =
|
|
666
|
+
this.previousValue = "";
|
|
621
667
|
|
|
622
668
|
// Indicates, if the component is rendering for first time.
|
|
623
669
|
this.firstRendering = true;
|
|
624
670
|
|
|
625
|
-
// The
|
|
626
|
-
this.
|
|
671
|
+
// The typed in value.
|
|
672
|
+
this.typedInValue = "";
|
|
627
673
|
|
|
628
674
|
// The last value confirmed by the user with "ENTER"
|
|
629
675
|
this.lastConfirmedValue = "";
|
|
630
676
|
|
|
631
|
-
// The value that the user is typed in the input
|
|
632
|
-
this.valueBeforeAutoComplete = "";
|
|
633
|
-
|
|
634
677
|
// Indicates, if the user is typing. Gets reset once popup is closed
|
|
635
678
|
this.isTyping = false;
|
|
636
679
|
|
|
637
|
-
// all sementic events
|
|
638
|
-
this.EVENT_CHANGE = "change";
|
|
639
|
-
this.EVENT_INPUT = "input";
|
|
640
|
-
this.EVENT_SUGGESTION_ITEM_SELECT = "suggestion-item-select";
|
|
641
|
-
|
|
642
|
-
// all user interactions
|
|
643
|
-
this.ACTION_ENTER = "enter";
|
|
644
|
-
this.ACTION_USER_INPUT = "input";
|
|
645
|
-
|
|
646
680
|
// Suggestions array initialization
|
|
647
681
|
this.suggestionsTexts = [];
|
|
648
682
|
|
|
@@ -666,15 +700,15 @@ class Input extends UI5Element {
|
|
|
666
700
|
|
|
667
701
|
if (this.showSuggestions) {
|
|
668
702
|
this.enableSuggestions();
|
|
669
|
-
this.suggestionsTexts = this.Suggestions
|
|
703
|
+
this.suggestionsTexts = this.Suggestions!.defaultSlotProperties(this.typedInValue);
|
|
670
704
|
}
|
|
671
705
|
|
|
672
706
|
this.effectiveShowClearIcon = (this.showClearIcon && !!this.value && !this.readonly && !this.disabled);
|
|
673
707
|
|
|
674
|
-
this.FormSupport = getFeature("FormSupport");
|
|
675
|
-
const hasItems = this.suggestionItems.length;
|
|
708
|
+
this.FormSupport = getFeature<typeof FormSupportT>("FormSupport");
|
|
709
|
+
const hasItems = !!this.suggestionItems.length;
|
|
676
710
|
const hasValue = !!this.value;
|
|
677
|
-
const isFocused = this.shadowRoot
|
|
711
|
+
const isFocused = this.shadowRoot!.querySelector("input") === getActiveElement();
|
|
678
712
|
|
|
679
713
|
if (this._isPhone) {
|
|
680
714
|
this.open = this.openOnMobile;
|
|
@@ -697,16 +731,15 @@ class Input extends UI5Element {
|
|
|
697
731
|
return;
|
|
698
732
|
}
|
|
699
733
|
|
|
700
|
-
const autoCompletedChars = innerInput.selectionEnd - innerInput.selectionStart
|
|
734
|
+
const autoCompletedChars = innerInput.selectionEnd! - innerInput.selectionStart!;
|
|
701
735
|
|
|
702
736
|
// Typehead causes issues on Android devices, so we disable it for now
|
|
703
737
|
// If there is already a selection the autocomplete has already been performed
|
|
704
738
|
if (this._shouldAutocomplete && !isAndroid() && !autoCompletedChars && !this._isKeyNavigation) {
|
|
705
739
|
const item = this._getFirstMatchingItem(value);
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
this._handleTypeAhead(item, value);
|
|
740
|
+
if (item) {
|
|
741
|
+
this._handleTypeAhead(item, value);
|
|
742
|
+
}
|
|
710
743
|
}
|
|
711
744
|
}
|
|
712
745
|
|
|
@@ -726,52 +759,48 @@ class Input extends UI5Element {
|
|
|
726
759
|
}
|
|
727
760
|
}
|
|
728
761
|
|
|
729
|
-
_onkeydown(
|
|
762
|
+
_onkeydown(e: KeyboardEvent) {
|
|
730
763
|
this._isKeyNavigation = true;
|
|
731
|
-
this._shouldAutocomplete = !this.noTypeahead && !(isBackSpace(
|
|
764
|
+
this._shouldAutocomplete = !this.noTypeahead && !(isBackSpace(e) || isDelete(e) || isEscape(e));
|
|
732
765
|
|
|
733
|
-
if (isUp(
|
|
734
|
-
return this._handleUp(
|
|
766
|
+
if (isUp(e)) {
|
|
767
|
+
return this._handleUp(e);
|
|
735
768
|
}
|
|
736
769
|
|
|
737
|
-
if (isDown(
|
|
738
|
-
return this._handleDown(
|
|
770
|
+
if (isDown(e)) {
|
|
771
|
+
return this._handleDown(e);
|
|
739
772
|
}
|
|
740
773
|
|
|
741
|
-
if (isSpace(
|
|
742
|
-
return this._handleSpace(
|
|
774
|
+
if (isSpace(e)) {
|
|
775
|
+
return this._handleSpace(e);
|
|
743
776
|
}
|
|
744
777
|
|
|
745
|
-
if (isTabNext(
|
|
746
|
-
return this._handleTab(
|
|
778
|
+
if (isTabNext(e)) {
|
|
779
|
+
return this._handleTab();
|
|
747
780
|
}
|
|
748
781
|
|
|
749
|
-
if (isEnter(
|
|
750
|
-
return this._handleEnter(
|
|
782
|
+
if (isEnter(e)) {
|
|
783
|
+
return this._handleEnter(e);
|
|
751
784
|
}
|
|
752
785
|
|
|
753
|
-
if (isPageUp(
|
|
754
|
-
return this._handlePageUp(
|
|
786
|
+
if (isPageUp(e)) {
|
|
787
|
+
return this._handlePageUp(e);
|
|
755
788
|
}
|
|
756
789
|
|
|
757
|
-
if (isPageDown(
|
|
758
|
-
return this._handlePageDown(
|
|
790
|
+
if (isPageDown(e)) {
|
|
791
|
+
return this._handlePageDown(e);
|
|
759
792
|
}
|
|
760
793
|
|
|
761
|
-
if (isHome(
|
|
762
|
-
return this._handleHome(
|
|
794
|
+
if (isHome(e)) {
|
|
795
|
+
return this._handleHome(e);
|
|
763
796
|
}
|
|
764
797
|
|
|
765
|
-
if (isEnd(
|
|
766
|
-
return this._handleEnd(
|
|
798
|
+
if (isEnd(e)) {
|
|
799
|
+
return this._handleEnd(e);
|
|
767
800
|
}
|
|
768
801
|
|
|
769
|
-
if (isEscape(
|
|
770
|
-
return this._handleEscape(
|
|
771
|
-
}
|
|
772
|
-
|
|
773
|
-
if (isBackSpace(event)) {
|
|
774
|
-
this._selectedText = window.getSelection().toString();
|
|
802
|
+
if (isEscape(e)) {
|
|
803
|
+
return this._handleEscape();
|
|
775
804
|
}
|
|
776
805
|
|
|
777
806
|
if (this.showSuggestions) {
|
|
@@ -782,53 +811,52 @@ class Input extends UI5Element {
|
|
|
782
811
|
this._isKeyNavigation = false;
|
|
783
812
|
}
|
|
784
813
|
|
|
785
|
-
_onkeyup(
|
|
814
|
+
_onkeyup(e: KeyboardEvent) {
|
|
786
815
|
// The native Delete event does not update the value property "on time".
|
|
787
816
|
// So, the (native) change event is always fired with the old value
|
|
788
|
-
if (isDelete(
|
|
789
|
-
this.value =
|
|
817
|
+
if (isDelete(e)) {
|
|
818
|
+
this.value = (e.target as HTMLInputElement).value;
|
|
790
819
|
}
|
|
791
820
|
|
|
792
821
|
this._keyDown = false;
|
|
793
822
|
}
|
|
794
823
|
|
|
795
|
-
|
|
796
|
-
_handleUp(event) {
|
|
824
|
+
_handleUp(e: KeyboardEvent) {
|
|
797
825
|
if (this.Suggestions && this.Suggestions.isOpened()) {
|
|
798
|
-
this.Suggestions.onUp(
|
|
826
|
+
this.Suggestions.onUp(e);
|
|
799
827
|
}
|
|
800
828
|
}
|
|
801
829
|
|
|
802
|
-
_handleDown(
|
|
830
|
+
_handleDown(e: KeyboardEvent) {
|
|
803
831
|
if (this.Suggestions && this.Suggestions.isOpened()) {
|
|
804
|
-
this.Suggestions.onDown(
|
|
832
|
+
this.Suggestions.onDown(e);
|
|
805
833
|
}
|
|
806
834
|
}
|
|
807
835
|
|
|
808
|
-
_handleSpace(
|
|
836
|
+
_handleSpace(e: KeyboardEvent) {
|
|
809
837
|
if (this.Suggestions) {
|
|
810
|
-
this.Suggestions.onSpace(
|
|
838
|
+
this.Suggestions.onSpace(e);
|
|
811
839
|
}
|
|
812
840
|
}
|
|
813
841
|
|
|
814
|
-
_handleTab(
|
|
842
|
+
_handleTab() {
|
|
815
843
|
if (this.Suggestions && (this.previousValue !== this.value)) {
|
|
816
|
-
this.Suggestions.onTab(
|
|
844
|
+
this.Suggestions.onTab();
|
|
817
845
|
}
|
|
818
846
|
}
|
|
819
847
|
|
|
820
|
-
_handleEnter(
|
|
821
|
-
const itemPressed = !!(this.Suggestions && this.Suggestions.onEnter(
|
|
822
|
-
const innerInput = this.getInputDOMRefSync()
|
|
848
|
+
_handleEnter(e: KeyboardEvent) {
|
|
849
|
+
const itemPressed = !!(this.Suggestions && this.Suggestions.onEnter(e));
|
|
850
|
+
const innerInput = this.getInputDOMRefSync()!;
|
|
823
851
|
// Check for autocompleted item
|
|
824
852
|
const matchingItem = this.suggestionItems.find(item => {
|
|
825
853
|
return (item.text && item.text === this.value) || (item.textContent === this.value);
|
|
826
854
|
});
|
|
827
855
|
|
|
828
856
|
if (matchingItem) {
|
|
829
|
-
const itemText = matchingItem.text ? matchingItem.text : matchingItem.textContent;
|
|
857
|
+
const itemText = matchingItem.text ? matchingItem.text : (matchingItem.textContent || "");
|
|
830
858
|
|
|
831
|
-
|
|
859
|
+
innerInput.setSelectionRange(itemText.length, itemText.length);
|
|
832
860
|
if (!itemPressed) {
|
|
833
861
|
this.selectSuggestion(matchingItem, true);
|
|
834
862
|
this.open = false;
|
|
@@ -852,39 +880,39 @@ class Input extends UI5Element {
|
|
|
852
880
|
this.focused = true;
|
|
853
881
|
}
|
|
854
882
|
|
|
855
|
-
_handlePageUp(
|
|
883
|
+
_handlePageUp(e: KeyboardEvent) {
|
|
856
884
|
if (this._isSuggestionsFocused) {
|
|
857
|
-
this.Suggestions
|
|
885
|
+
this.Suggestions!.onPageUp(e);
|
|
858
886
|
} else {
|
|
859
|
-
|
|
887
|
+
e.preventDefault();
|
|
860
888
|
}
|
|
861
889
|
}
|
|
862
890
|
|
|
863
|
-
_handlePageDown(
|
|
891
|
+
_handlePageDown(e: KeyboardEvent) {
|
|
864
892
|
if (this._isSuggestionsFocused) {
|
|
865
|
-
this.Suggestions
|
|
893
|
+
this.Suggestions!.onPageDown(e);
|
|
866
894
|
} else {
|
|
867
|
-
|
|
895
|
+
e.preventDefault();
|
|
868
896
|
}
|
|
869
897
|
}
|
|
870
898
|
|
|
871
|
-
_handleHome(
|
|
899
|
+
_handleHome(e: KeyboardEvent) {
|
|
872
900
|
if (this._isSuggestionsFocused) {
|
|
873
|
-
this.Suggestions
|
|
901
|
+
this.Suggestions!.onHome(e);
|
|
874
902
|
}
|
|
875
903
|
}
|
|
876
904
|
|
|
877
|
-
_handleEnd(
|
|
905
|
+
_handleEnd(e: KeyboardEvent) {
|
|
878
906
|
if (this._isSuggestionsFocused) {
|
|
879
|
-
this.Suggestions
|
|
907
|
+
this.Suggestions!.onEnd(e);
|
|
880
908
|
}
|
|
881
909
|
}
|
|
882
910
|
|
|
883
911
|
_handleEscape() {
|
|
884
912
|
const hasSuggestions = this.showSuggestions && !!this.Suggestions;
|
|
885
913
|
const isOpen = hasSuggestions && this.open;
|
|
886
|
-
const innerInput = this.getInputDOMRefSync()
|
|
887
|
-
const isAutoCompleted = innerInput.selectionEnd - innerInput.selectionStart > 0;
|
|
914
|
+
const innerInput = this.getInputDOMRefSync()!;
|
|
915
|
+
const isAutoCompleted = innerInput.selectionEnd! - innerInput.selectionStart! > 0;
|
|
888
916
|
|
|
889
917
|
this.isTyping = false;
|
|
890
918
|
|
|
@@ -893,9 +921,9 @@ class Input extends UI5Element {
|
|
|
893
921
|
return;
|
|
894
922
|
}
|
|
895
923
|
|
|
896
|
-
if (
|
|
924
|
+
if (isOpen && this.Suggestions!._isItemOnTarget()) {
|
|
897
925
|
// Restore the value.
|
|
898
|
-
this.value = this.
|
|
926
|
+
this.value = this.typedInValue || this.valueBeforeItemPreview;
|
|
899
927
|
|
|
900
928
|
// Mark that the selection has been canceled, so the popover can close
|
|
901
929
|
// and not reopen, due to receiving focus.
|
|
@@ -906,7 +934,7 @@ class Input extends UI5Element {
|
|
|
906
934
|
}
|
|
907
935
|
|
|
908
936
|
if (isAutoCompleted) {
|
|
909
|
-
this.value = this.
|
|
937
|
+
this.value = this.typedInValue;
|
|
910
938
|
}
|
|
911
939
|
|
|
912
940
|
if (this._isValueStateFocused) {
|
|
@@ -915,20 +943,20 @@ class Input extends UI5Element {
|
|
|
915
943
|
}
|
|
916
944
|
}
|
|
917
945
|
|
|
918
|
-
async _onfocusin(
|
|
946
|
+
async _onfocusin(e: FocusEvent) {
|
|
919
947
|
await this.getInputDOMRef();
|
|
920
948
|
|
|
921
|
-
this.valueBeforeAutoComplete = "";
|
|
922
949
|
this.focused = true; // invalidating property
|
|
923
950
|
this.previousValue = this.value;
|
|
924
951
|
this.valueBeforeItemPreview = this.value;
|
|
925
952
|
|
|
926
|
-
this._inputIconFocused =
|
|
953
|
+
this._inputIconFocused = !!e.target && e.target === this.querySelector<Icon>("[ui5-icon]");
|
|
927
954
|
}
|
|
928
955
|
|
|
929
|
-
_onfocusout(
|
|
930
|
-
const
|
|
931
|
-
const
|
|
956
|
+
_onfocusout(e: FocusEvent) {
|
|
957
|
+
const toBeFocused = e.relatedTarget as HTMLElement;
|
|
958
|
+
const focusedOutToSuggestions = this.Suggestions && toBeFocused && toBeFocused.shadowRoot && toBeFocused.shadowRoot.contains(this.Suggestions.responsivePopover as Node);
|
|
959
|
+
const focusedOutToValueStateMessage = toBeFocused && toBeFocused.shadowRoot && toBeFocused.shadowRoot.querySelector(".ui5-valuestatemessage-root");
|
|
932
960
|
|
|
933
961
|
this._keepInnerValue = false;
|
|
934
962
|
|
|
@@ -940,13 +968,11 @@ class Input extends UI5Element {
|
|
|
940
968
|
// if focusout is triggered by pressing on suggestion item or value state message popover, skip invalidation, because re-rendering
|
|
941
969
|
// will happen before "itemPress" event, which will make item "active" state not visualized
|
|
942
970
|
if (focusedOutToSuggestions || focusedOutToValueStateMessage) {
|
|
943
|
-
|
|
971
|
+
e.stopImmediatePropagation();
|
|
944
972
|
return;
|
|
945
973
|
}
|
|
946
974
|
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
if (toBeFocused && toBeFocused.classList.contains(this._id)) {
|
|
975
|
+
if (toBeFocused && (toBeFocused).classList.contains(this._id)) {
|
|
950
976
|
return;
|
|
951
977
|
}
|
|
952
978
|
|
|
@@ -972,7 +998,7 @@ class Input extends UI5Element {
|
|
|
972
998
|
this.Suggestions._clearItemFocus();
|
|
973
999
|
}
|
|
974
1000
|
|
|
975
|
-
_click(
|
|
1001
|
+
_click() {
|
|
976
1002
|
if (isPhone() && !this.readonly && this.Suggestions) {
|
|
977
1003
|
this.blur();
|
|
978
1004
|
this.openOnMobile = true;
|
|
@@ -985,15 +1011,15 @@ class Input extends UI5Element {
|
|
|
985
1011
|
return;
|
|
986
1012
|
}
|
|
987
1013
|
|
|
988
|
-
if (this.previousValue !== this.getInputDOMRefSync()
|
|
989
|
-
this.previousValue = this.getInputDOMRefSync()
|
|
990
|
-
this.fireEvent(
|
|
1014
|
+
if (this.previousValue !== this.getInputDOMRefSync()!.value) {
|
|
1015
|
+
this.previousValue = this.getInputDOMRefSync()!.value;
|
|
1016
|
+
this.fireEvent(INPUT_EVENTS.CHANGE);
|
|
991
1017
|
}
|
|
992
1018
|
}
|
|
993
1019
|
|
|
994
1020
|
_clear() {
|
|
995
1021
|
this.value = "";
|
|
996
|
-
this.fireEvent(
|
|
1022
|
+
this.fireEvent<InputEventDetail>(INPUT_EVENTS.INPUT);
|
|
997
1023
|
if (!this._isPhone) {
|
|
998
1024
|
this.focus();
|
|
999
1025
|
}
|
|
@@ -1003,18 +1029,19 @@ class Input extends UI5Element {
|
|
|
1003
1029
|
this._clearIconClicked = true;
|
|
1004
1030
|
}
|
|
1005
1031
|
|
|
1006
|
-
_scroll(
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
scrollContainer: detail.targetRef,
|
|
1032
|
+
_scroll(e: CustomEvent<PopupScrollEventDetail>) {
|
|
1033
|
+
this.fireEvent<SuggestionScrollEventDetail>("suggestion-scroll", {
|
|
1034
|
+
scrollTop: e.detail.scrollTop,
|
|
1035
|
+
scrollContainer: e.detail.targetRef,
|
|
1011
1036
|
});
|
|
1012
1037
|
}
|
|
1013
1038
|
|
|
1014
|
-
_handleInput(
|
|
1039
|
+
_handleInput(e: InputEvent | CustomEvent<InputEventDetail>) {
|
|
1015
1040
|
const inputDomRef = this.getInputDOMRefSync();
|
|
1016
|
-
const emptyValueFiredOnNumberInput = this.value && this.isTypeNumber && !inputDomRef
|
|
1017
|
-
const eventType =
|
|
1041
|
+
const emptyValueFiredOnNumberInput = this.value && this.isTypeNumber && !inputDomRef!.value;
|
|
1042
|
+
const eventType: string = (e as InputEvent).inputType
|
|
1043
|
+
|| (e.detail && (e as CustomEvent<InputEventDetail>).detail.inputType!)
|
|
1044
|
+
|| "";
|
|
1018
1045
|
this._keepInnerValue = false;
|
|
1019
1046
|
|
|
1020
1047
|
const allowedEventTypes = [
|
|
@@ -1036,64 +1063,67 @@ class Input extends UI5Element {
|
|
|
1036
1063
|
this._shouldAutocomplete = !allowedEventTypes.includes(eventType) && !this.noTypeahead;
|
|
1037
1064
|
this.suggestionSelectionCanceled = false;
|
|
1038
1065
|
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1066
|
+
if (e instanceof InputEvent) {
|
|
1067
|
+
// ---- Special cases of numeric Input ----
|
|
1068
|
+
// ---------------- Start -----------------
|
|
1069
|
+
|
|
1070
|
+
// When the last character after the delimiter is removed.
|
|
1071
|
+
// In such cases, we want to skip the re-rendering of the
|
|
1072
|
+
// component as this leads to cursor repositioning and causes user experience issues.
|
|
1073
|
+
|
|
1074
|
+
// There are few scenarios:
|
|
1075
|
+
// Example: type "123.4" and press BACKSPACE - the native input is firing event with the whole part as value (123).
|
|
1076
|
+
// Pressing BACKSPACE again will remove the delimiter and the native input will fire event with the whole part as value again (123).
|
|
1077
|
+
// Example: type "123.456", select/mark "456" and press BACKSPACE - the native input is firing event with the whole part as value (123).
|
|
1078
|
+
// Example: type "123.456", select/mark "123.456" and press BACKSPACE - the native input is firing event with empty value.
|
|
1079
|
+
const delimiterCase = this.isTypeNumber
|
|
1080
|
+
&& (e.inputType === "deleteContentForward" || e.inputType === "deleteContentBackward")
|
|
1081
|
+
&& !(e.target as HTMLInputElement).value.includes(".")
|
|
1082
|
+
&& this.value.includes(".");
|
|
1083
|
+
|
|
1084
|
+
// Handle special numeric notation with "e", example "12.5e12"
|
|
1085
|
+
const eNotationCase = emptyValueFiredOnNumberInput && e.data === "e";
|
|
1086
|
+
|
|
1087
|
+
// Handle special numeric notation with "-", example "-3"
|
|
1088
|
+
// When pressing BACKSPACE, the native input fires event with empty value
|
|
1089
|
+
const minusRemovalCase = emptyValueFiredOnNumberInput
|
|
1090
|
+
&& this.value.startsWith("-")
|
|
1091
|
+
&& this.value.length === 2
|
|
1092
|
+
&& (e.inputType === "deleteContentForward" || e.inputType === "deleteContentBackward");
|
|
1093
|
+
|
|
1094
|
+
if (delimiterCase || eNotationCase || minusRemovalCase) {
|
|
1095
|
+
this.value = (e.target as HTMLInputElement).value;
|
|
1096
|
+
this._keepInnerValue = true;
|
|
1097
|
+
}
|
|
1098
|
+
// ----------------- End ------------------
|
|
1069
1099
|
}
|
|
1070
|
-
// ----------------- End ------------------
|
|
1071
1100
|
|
|
1072
|
-
if (
|
|
1101
|
+
if (e.target === inputDomRef) {
|
|
1073
1102
|
this.focused = true;
|
|
1074
1103
|
|
|
1075
1104
|
// stop the native event, as the semantic "input" would be fired.
|
|
1076
|
-
|
|
1105
|
+
e.stopImmediatePropagation();
|
|
1077
1106
|
}
|
|
1078
1107
|
|
|
1079
|
-
this.fireEventByAction(
|
|
1108
|
+
this.fireEventByAction(INPUT_ACTIONS.ACTION_ENTER, e as InputEvent);
|
|
1080
1109
|
|
|
1081
1110
|
this.hasSuggestionItemSelected = false;
|
|
1082
1111
|
this._isValueStateFocused = false;
|
|
1083
1112
|
|
|
1084
1113
|
if (this.Suggestions) {
|
|
1085
|
-
this.Suggestions.updateSelectedItemPosition(
|
|
1114
|
+
this.Suggestions.updateSelectedItemPosition(-1);
|
|
1086
1115
|
}
|
|
1087
1116
|
|
|
1088
1117
|
this.isTyping = true;
|
|
1089
1118
|
}
|
|
1090
1119
|
|
|
1091
|
-
_startsWithMatchingItems(str) {
|
|
1120
|
+
_startsWithMatchingItems(str: string): Array<SuggestionItem> {
|
|
1092
1121
|
const textProp = this.suggestionItems[0].text ? "text" : "textContent";
|
|
1093
|
-
|
|
1122
|
+
|
|
1123
|
+
return StartsWith(str, this.suggestionItems, textProp);
|
|
1094
1124
|
}
|
|
1095
1125
|
|
|
1096
|
-
_getFirstMatchingItem(current) {
|
|
1126
|
+
_getFirstMatchingItem(current: string) {
|
|
1097
1127
|
if (!this.suggestionItems.length) {
|
|
1098
1128
|
return;
|
|
1099
1129
|
}
|
|
@@ -1105,13 +1135,9 @@ class Input extends UI5Element {
|
|
|
1105
1135
|
}
|
|
1106
1136
|
}
|
|
1107
1137
|
|
|
1108
|
-
_handleTypeAhead(item, filterValue) {
|
|
1109
|
-
if (!item) {
|
|
1110
|
-
return;
|
|
1111
|
-
}
|
|
1112
|
-
|
|
1138
|
+
_handleTypeAhead(item: SuggestionItem, filterValue: string) {
|
|
1113
1139
|
const value = item.text ? item.text : item.textContent || "";
|
|
1114
|
-
const innerInput = this.getInputDOMRefSync()
|
|
1140
|
+
const innerInput = this.getInputDOMRefSync()!;
|
|
1115
1141
|
|
|
1116
1142
|
filterValue = filterValue || "";
|
|
1117
1143
|
this._innerValue = value;
|
|
@@ -1129,14 +1155,14 @@ class Input extends UI5Element {
|
|
|
1129
1155
|
this._inputWidth = this.offsetWidth;
|
|
1130
1156
|
}
|
|
1131
1157
|
|
|
1132
|
-
_closeRespPopover(
|
|
1133
|
-
this.Suggestions
|
|
1158
|
+
_closeRespPopover() {
|
|
1159
|
+
this.Suggestions!.close(true);
|
|
1134
1160
|
}
|
|
1135
1161
|
|
|
1136
1162
|
async _afterOpenPopover() {
|
|
1137
1163
|
// Set initial focus to the native input
|
|
1138
1164
|
if (isPhone()) {
|
|
1139
|
-
(await this.getInputDOMRef())
|
|
1165
|
+
(await this.getInputDOMRef())!.focus();
|
|
1140
1166
|
}
|
|
1141
1167
|
}
|
|
1142
1168
|
|
|
@@ -1179,13 +1205,16 @@ class Input extends UI5Element {
|
|
|
1179
1205
|
|
|
1180
1206
|
async _getPopover() {
|
|
1181
1207
|
const staticAreaItem = await this.getStaticAreaItemDomRef();
|
|
1182
|
-
return staticAreaItem
|
|
1208
|
+
return staticAreaItem!.querySelector<Popover>("[ui5-popover]")!;
|
|
1183
1209
|
}
|
|
1184
1210
|
|
|
1185
1211
|
/**
|
|
1186
1212
|
* Manually opens the suggestions popover, assuming suggestions are enabled. Items must be preloaded for it to open.
|
|
1187
|
-
* @since 1.3.0
|
|
1188
1213
|
* @public
|
|
1214
|
+
* @method
|
|
1215
|
+
* @name sap.ui.webc.main.Input#openPicker
|
|
1216
|
+
* @return {void}
|
|
1217
|
+
* @since 1.3.0
|
|
1189
1218
|
*/
|
|
1190
1219
|
openPicker() {
|
|
1191
1220
|
if (!this.suggestionItems.length || this.disabled || this.readonly) {
|
|
@@ -1200,23 +1229,23 @@ class Input extends UI5Element {
|
|
|
1200
1229
|
return;
|
|
1201
1230
|
}
|
|
1202
1231
|
|
|
1203
|
-
const Suggestions = getFeature("InputSuggestions");
|
|
1232
|
+
const Suggestions = getFeature<typeof InputSuggestions>("InputSuggestions");
|
|
1204
1233
|
|
|
1205
1234
|
if (Suggestions) {
|
|
1206
|
-
this.Suggestions = new Suggestions(this, "suggestionItems", true);
|
|
1235
|
+
this.Suggestions = new Suggestions(this, "suggestionItems", true, false);
|
|
1207
1236
|
} else {
|
|
1208
1237
|
throw new Error(`You have to import "@ui5/webcomponents/dist/features/InputSuggestions.js" module to use ui5-input suggestions`);
|
|
1209
1238
|
}
|
|
1210
1239
|
}
|
|
1211
1240
|
|
|
1212
|
-
selectSuggestion(item, keyboardUsed) {
|
|
1213
|
-
if (item.
|
|
1241
|
+
selectSuggestion(item: SuggestionItem, keyboardUsed: boolean) {
|
|
1242
|
+
if (item.groupItem) {
|
|
1214
1243
|
return;
|
|
1215
1244
|
}
|
|
1216
1245
|
|
|
1217
|
-
const innerInput = this.getInputDOMRefSync()
|
|
1218
|
-
const value = this.
|
|
1219
|
-
const itemText = item.text || item.textContent; // keep textContent for compatibility
|
|
1246
|
+
const innerInput = this.getInputDOMRefSync()!;
|
|
1247
|
+
const value = this.typedInValue || this.value;
|
|
1248
|
+
const itemText = item.text || item.textContent || ""; // keep textContent for compatibility
|
|
1220
1249
|
const fireInput = keyboardUsed
|
|
1221
1250
|
? this.valueBeforeItemSelection !== itemText : value !== itemText;
|
|
1222
1251
|
|
|
@@ -1226,8 +1255,8 @@ class Input extends UI5Element {
|
|
|
1226
1255
|
this.value = itemText;
|
|
1227
1256
|
this.valueBeforeItemSelection = itemText;
|
|
1228
1257
|
this.lastConfirmedValue = itemText;
|
|
1229
|
-
|
|
1230
|
-
this.fireEvent(
|
|
1258
|
+
innerInput.value = itemText;
|
|
1259
|
+
this.fireEvent<InputEventDetail>(INPUT_EVENTS.INPUT);
|
|
1231
1260
|
this._handleChange();
|
|
1232
1261
|
innerInput.setSelectionRange(this.value.length, this.value.length);
|
|
1233
1262
|
}
|
|
@@ -1235,14 +1264,14 @@ class Input extends UI5Element {
|
|
|
1235
1264
|
this.valueBeforeItemPreview = "";
|
|
1236
1265
|
this.suggestionSelectionCanceled = false;
|
|
1237
1266
|
|
|
1238
|
-
this.fireEvent(
|
|
1267
|
+
this.fireEvent<SuggestionItemSelectEventDetail>(INPUT_EVENTS.SUGGESTION_ITEM_SELECT, { item });
|
|
1239
1268
|
|
|
1240
1269
|
this.isTyping = false;
|
|
1241
1270
|
this.openOnMobile = false;
|
|
1242
1271
|
this._forceOpen = false;
|
|
1243
1272
|
}
|
|
1244
1273
|
|
|
1245
|
-
previewSuggestion(item) {
|
|
1274
|
+
previewSuggestion(item: SuggestionListItem) {
|
|
1246
1275
|
this.valueBeforeItemSelection = this.value;
|
|
1247
1276
|
this.updateValueOnPreview(item);
|
|
1248
1277
|
this.announceSelectedItem();
|
|
@@ -1253,19 +1282,20 @@ class Input extends UI5Element {
|
|
|
1253
1282
|
* Updates the input value on item preview.
|
|
1254
1283
|
* @param {Object} item The item that is on preview
|
|
1255
1284
|
*/
|
|
1256
|
-
updateValueOnPreview(item) {
|
|
1257
|
-
const noPreview = item.type === "Inactive" || item.
|
|
1258
|
-
const innerInput = this.getInputDOMRefSync()
|
|
1259
|
-
const itemValue = noPreview ? this.valueBeforeItemPreview : (item.effectiveTitle || item.textContent);
|
|
1285
|
+
updateValueOnPreview(item: SuggestionListItem) {
|
|
1286
|
+
const noPreview = item.type === "Inactive" || item.groupItem;
|
|
1287
|
+
const innerInput = this.getInputDOMRefSync()!;
|
|
1288
|
+
const itemValue = noPreview ? this.valueBeforeItemPreview : (item.effectiveTitle || item.textContent || "");
|
|
1260
1289
|
|
|
1261
1290
|
this.value = itemValue;
|
|
1262
1291
|
innerInput.value = itemValue;
|
|
1263
|
-
innerInput.setSelectionRange(this.
|
|
1292
|
+
innerInput.setSelectionRange(this.typedInValue.length, this.value.length);
|
|
1264
1293
|
}
|
|
1265
1294
|
|
|
1266
1295
|
/**
|
|
1267
1296
|
* The suggestion item on preview.
|
|
1268
|
-
* @type {sap.ui.
|
|
1297
|
+
* @type {sap.ui.webc.main.IInputSuggestionItem | null}
|
|
1298
|
+
* @name sap.ui.webc.main.Input.prototype.previewItem
|
|
1269
1299
|
* @readonly
|
|
1270
1300
|
* @public
|
|
1271
1301
|
*/
|
|
@@ -1277,20 +1307,20 @@ class Input extends UI5Element {
|
|
|
1277
1307
|
return this.getSuggestionByListItem(this._previewItem);
|
|
1278
1308
|
}
|
|
1279
1309
|
|
|
1280
|
-
async fireEventByAction(action,
|
|
1310
|
+
async fireEventByAction(action: INPUT_ACTIONS, e: InputEvent) {
|
|
1281
1311
|
if (this.disabled || this.readonly) {
|
|
1282
1312
|
return;
|
|
1283
1313
|
}
|
|
1284
1314
|
|
|
1285
1315
|
const inputValue = await this.getInputValue();
|
|
1286
|
-
const isUserInput = action ===
|
|
1316
|
+
const isUserInput = action === INPUT_ACTIONS.ACTION_ENTER;
|
|
1287
1317
|
|
|
1288
1318
|
this.value = inputValue;
|
|
1289
|
-
this.
|
|
1319
|
+
this.typedInValue = inputValue;
|
|
1290
1320
|
this.valueBeforeItemPreview = inputValue;
|
|
1291
1321
|
|
|
1292
1322
|
if (isUserInput) { // input
|
|
1293
|
-
this.fireEvent(
|
|
1323
|
+
this.fireEvent<InputEventDetail>(INPUT_EVENTS.INPUT, { inputType: e.inputType });
|
|
1294
1324
|
// Angular two way data binding
|
|
1295
1325
|
this.fireEvent("value-changed");
|
|
1296
1326
|
}
|
|
@@ -1300,7 +1330,7 @@ class Input extends UI5Element {
|
|
|
1300
1330
|
const domRef = this.getDomRef();
|
|
1301
1331
|
|
|
1302
1332
|
if (domRef) {
|
|
1303
|
-
return (await this.getInputDOMRef())
|
|
1333
|
+
return (await this.getInputDOMRef())!.value;
|
|
1304
1334
|
}
|
|
1305
1335
|
return "";
|
|
1306
1336
|
}
|
|
@@ -1308,7 +1338,7 @@ class Input extends UI5Element {
|
|
|
1308
1338
|
async getInputDOMRef() {
|
|
1309
1339
|
if (isPhone() && this.Suggestions) {
|
|
1310
1340
|
await this.Suggestions._getSuggestionPopover();
|
|
1311
|
-
return this.Suggestions
|
|
1341
|
+
return this.Suggestions.responsivePopover!.querySelector<Input>(".ui5-input-inner-phone")!;
|
|
1312
1342
|
}
|
|
1313
1343
|
|
|
1314
1344
|
return this.nativeInput;
|
|
@@ -1316,7 +1346,7 @@ class Input extends UI5Element {
|
|
|
1316
1346
|
|
|
1317
1347
|
getInputDOMRefSync() {
|
|
1318
1348
|
if (isPhone() && this.Suggestions && this.Suggestions.responsivePopover) {
|
|
1319
|
-
return this.Suggestions.responsivePopover.querySelector(".ui5-input-inner-phone")
|
|
1349
|
+
return this.Suggestions.responsivePopover.querySelector(".ui5-input-inner-phone")!.shadowRoot!.querySelector<HTMLInputElement>("input")!;
|
|
1320
1350
|
}
|
|
1321
1351
|
|
|
1322
1352
|
return this.nativeInput;
|
|
@@ -1327,19 +1357,21 @@ class Input extends UI5Element {
|
|
|
1327
1357
|
* @protected
|
|
1328
1358
|
*/
|
|
1329
1359
|
get nativeInput() {
|
|
1330
|
-
|
|
1360
|
+
const domRef = this.getDomRef();
|
|
1361
|
+
|
|
1362
|
+
return domRef ? domRef.querySelector<HTMLInputElement>(`input`) : null;
|
|
1331
1363
|
}
|
|
1332
1364
|
|
|
1333
1365
|
get nativeInputWidth() {
|
|
1334
|
-
return this.nativeInput
|
|
1366
|
+
return this.nativeInput ? this.nativeInput.offsetWidth : 0;
|
|
1335
1367
|
}
|
|
1336
1368
|
|
|
1337
1369
|
getLabelableElementId() {
|
|
1338
1370
|
return this.getInputId();
|
|
1339
1371
|
}
|
|
1340
1372
|
|
|
1341
|
-
getSuggestionByListItem(item) {
|
|
1342
|
-
const key = parseInt(item.getAttribute("data-ui5-key"));
|
|
1373
|
+
getSuggestionByListItem(item: SuggestionListItem): SuggestionItem {
|
|
1374
|
+
const key = parseInt(item.getAttribute("data-ui5-key")!);
|
|
1343
1375
|
return this.suggestionItems[key];
|
|
1344
1376
|
}
|
|
1345
1377
|
|
|
@@ -1362,10 +1394,8 @@ class Input extends UI5Element {
|
|
|
1362
1394
|
}
|
|
1363
1395
|
|
|
1364
1396
|
/* Suggestions interface */
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
onItemMouseOver(event) {
|
|
1368
|
-
const item = event.target;
|
|
1397
|
+
onItemMouseOver(e: MouseEvent) {
|
|
1398
|
+
const item = e.target as SuggestionListItem;
|
|
1369
1399
|
const suggestion = this.getSuggestionByListItem(item);
|
|
1370
1400
|
suggestion && suggestion.fireEvent("mouseover", {
|
|
1371
1401
|
item: suggestion,
|
|
@@ -1373,8 +1403,8 @@ class Input extends UI5Element {
|
|
|
1373
1403
|
});
|
|
1374
1404
|
}
|
|
1375
1405
|
|
|
1376
|
-
onItemMouseOut(
|
|
1377
|
-
const item =
|
|
1406
|
+
onItemMouseOut(e: MouseEvent) {
|
|
1407
|
+
const item = e.target as SuggestionListItem;
|
|
1378
1408
|
const suggestion = this.getSuggestionByListItem(item);
|
|
1379
1409
|
suggestion && suggestion.fireEvent("mouseout", {
|
|
1380
1410
|
item: suggestion,
|
|
@@ -1382,46 +1412,42 @@ class Input extends UI5Element {
|
|
|
1382
1412
|
});
|
|
1383
1413
|
}
|
|
1384
1414
|
|
|
1385
|
-
onItemMouseDown(
|
|
1386
|
-
|
|
1415
|
+
onItemMouseDown(e: MouseEvent) {
|
|
1416
|
+
e.preventDefault();
|
|
1387
1417
|
}
|
|
1388
1418
|
|
|
1389
|
-
onItemSelected(item, keyboardUsed) {
|
|
1419
|
+
onItemSelected(item: SuggestionItem, keyboardUsed: boolean) {
|
|
1390
1420
|
this.selectSuggestion(item, keyboardUsed);
|
|
1391
1421
|
}
|
|
1392
1422
|
|
|
1393
|
-
onItemPreviewed(item) {
|
|
1423
|
+
onItemPreviewed(item: SuggestionListItem) {
|
|
1394
1424
|
this.previewSuggestion(item);
|
|
1395
|
-
this.fireEvent("suggestion-item-preview", {
|
|
1425
|
+
this.fireEvent<SuggestionItemPreviewEventDetail>("suggestion-item-preview", {
|
|
1396
1426
|
item: this.getSuggestionByListItem(item),
|
|
1397
1427
|
targetRef: item,
|
|
1398
1428
|
});
|
|
1399
1429
|
}
|
|
1400
1430
|
|
|
1401
|
-
onOpen() {}
|
|
1402
|
-
|
|
1403
|
-
onClose() {}
|
|
1404
|
-
|
|
1405
1431
|
get valueStateTypeMappings() {
|
|
1406
1432
|
return {
|
|
1407
|
-
"Success": Input.i18nBundle.getText(VALUE_STATE_TYPE_SUCCESS),
|
|
1408
|
-
"Information": Input.i18nBundle.getText(VALUE_STATE_TYPE_INFORMATION),
|
|
1409
|
-
"Error": Input.i18nBundle.getText(VALUE_STATE_TYPE_ERROR),
|
|
1410
|
-
"Warning": Input.i18nBundle.getText(VALUE_STATE_TYPE_WARNING),
|
|
1433
|
+
"Success": Input.i18nBundle.getText(VALUE_STATE_TYPE_SUCCESS as I18nText),
|
|
1434
|
+
"Information": Input.i18nBundle.getText(VALUE_STATE_TYPE_INFORMATION as I18nText),
|
|
1435
|
+
"Error": Input.i18nBundle.getText(VALUE_STATE_TYPE_ERROR as I18nText),
|
|
1436
|
+
"Warning": Input.i18nBundle.getText(VALUE_STATE_TYPE_WARNING as I18nText),
|
|
1411
1437
|
};
|
|
1412
1438
|
}
|
|
1413
1439
|
|
|
1414
1440
|
valueStateTextMappings() {
|
|
1415
1441
|
return {
|
|
1416
|
-
"Success": Input.i18nBundle.getText(VALUE_STATE_SUCCESS),
|
|
1417
|
-
"Information": Input.i18nBundle.getText(VALUE_STATE_INFORMATION),
|
|
1418
|
-
"Error": Input.i18nBundle.getText(VALUE_STATE_ERROR),
|
|
1419
|
-
"Warning": Input.i18nBundle.getText(VALUE_STATE_WARNING),
|
|
1442
|
+
"Success": Input.i18nBundle.getText(VALUE_STATE_SUCCESS as I18nText),
|
|
1443
|
+
"Information": Input.i18nBundle.getText(VALUE_STATE_INFORMATION as I18nText),
|
|
1444
|
+
"Error": Input.i18nBundle.getText(VALUE_STATE_ERROR as I18nText),
|
|
1445
|
+
"Warning": Input.i18nBundle.getText(VALUE_STATE_WARNING as I18nText),
|
|
1420
1446
|
};
|
|
1421
1447
|
}
|
|
1422
1448
|
|
|
1423
1449
|
announceSelectedItem() {
|
|
1424
|
-
const invisibleText = this.shadowRoot
|
|
1450
|
+
const invisibleText = this.shadowRoot!.querySelector(`#${this._id}-selectionText`)!;
|
|
1425
1451
|
|
|
1426
1452
|
if (this.Suggestions && this.Suggestions._isItemOnTarget()) {
|
|
1427
1453
|
invisibleText.textContent = this.itemSelectionAnnounce;
|
|
@@ -1435,7 +1461,7 @@ class Input extends UI5Element {
|
|
|
1435
1461
|
}
|
|
1436
1462
|
|
|
1437
1463
|
get _headerTitleText() {
|
|
1438
|
-
return Input.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);
|
|
1464
|
+
return Input.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE as I18nText);
|
|
1439
1465
|
}
|
|
1440
1466
|
|
|
1441
1467
|
get inputType() {
|
|
@@ -1488,22 +1514,24 @@ class Input extends UI5Element {
|
|
|
1488
1514
|
return;
|
|
1489
1515
|
}
|
|
1490
1516
|
|
|
1517
|
+
const valueState = this.valueState !== ValueState.None ? this.valueStateTypeMappings[this.valueState] : "";
|
|
1518
|
+
|
|
1491
1519
|
if (this.shouldDisplayDefaultValueStateMessage) {
|
|
1492
|
-
return `${
|
|
1520
|
+
return this.valueStateText ? `${valueState} ${this.valueStateText}` : valueState;
|
|
1493
1521
|
}
|
|
1494
1522
|
|
|
1495
|
-
return `${
|
|
1523
|
+
return `${valueState}`.concat(" ", this.valueStateMessageText.map(el => el.textContent).join(" "));
|
|
1496
1524
|
}
|
|
1497
1525
|
|
|
1498
1526
|
get itemSelectionAnnounce() {
|
|
1499
|
-
return this.Suggestions ? this.Suggestions.itemSelectionAnnounce :
|
|
1527
|
+
return this.Suggestions ? this.Suggestions.itemSelectionAnnounce : "";
|
|
1500
1528
|
}
|
|
1501
1529
|
|
|
1502
|
-
get classes() {
|
|
1530
|
+
get classes(): ClassMap {
|
|
1503
1531
|
return {
|
|
1504
1532
|
popover: {
|
|
1505
|
-
"ui5-suggestions-popover": !this.
|
|
1506
|
-
"ui5-suggestions-popover-with-value-state-header": !this.
|
|
1533
|
+
"ui5-suggestions-popover": !this._isPhone && this.showSuggestions,
|
|
1534
|
+
"ui5-suggestions-popover-with-value-state-header": !this._isPhone && this.showSuggestions && this.hasValueStateMessage,
|
|
1507
1535
|
},
|
|
1508
1536
|
popoverValueState: {
|
|
1509
1537
|
"ui5-valuestatemessage-root": true,
|
|
@@ -1521,17 +1549,19 @@ class Input extends UI5Element {
|
|
|
1521
1549
|
|
|
1522
1550
|
const stylesObject = {
|
|
1523
1551
|
popoverHeader: {
|
|
1524
|
-
"max-width": `${this._inputWidth}px
|
|
1552
|
+
"max-width": this._inputWidth ? `${this._inputWidth}px` : "",
|
|
1525
1553
|
},
|
|
1526
1554
|
suggestionPopoverHeader: {
|
|
1527
1555
|
"display": this._listWidth === 0 ? "none" : "inline-block",
|
|
1528
|
-
"width": `${this._listWidth}px
|
|
1556
|
+
"width": this._listWidth ? `${this._listWidth}px` : "",
|
|
1529
1557
|
},
|
|
1530
1558
|
suggestionsPopover: {
|
|
1531
|
-
"min-width": `${this._inputWidth}px
|
|
1532
|
-
"max-width": (this._inputWidth / remSizeIxPx) > 40 ? `${this._inputWidth}px` : "40rem",
|
|
1559
|
+
"min-width": this._inputWidth ? `${this._inputWidth}px` : "",
|
|
1560
|
+
"max-width": this._inputWidth && (this._inputWidth / remSizeIxPx) > 40 ? `${this._inputWidth}px` : "40rem",
|
|
1561
|
+
},
|
|
1562
|
+
innerInput: {
|
|
1563
|
+
"padding": "",
|
|
1533
1564
|
},
|
|
1534
|
-
innerInput: {},
|
|
1535
1565
|
};
|
|
1536
1566
|
|
|
1537
1567
|
if (this.nativeInputWidth < 48) {
|
|
@@ -1564,28 +1594,28 @@ class Input extends UI5Element {
|
|
|
1564
1594
|
get hasValueStateMessage() {
|
|
1565
1595
|
return this.hasValueState && this.valueState !== ValueState.Success
|
|
1566
1596
|
&& (!this._inputIconFocused // Handles the cases when valueStateMessage is forwarded (from datepicker e.g.)
|
|
1567
|
-
|
|
1597
|
+
|| !!(this._isPhone && this.Suggestions)); // Handles Input with suggestions on mobile
|
|
1568
1598
|
}
|
|
1569
1599
|
|
|
1570
1600
|
get valueStateText() {
|
|
1571
|
-
return this.valueStateTextMappings()[this.valueState];
|
|
1601
|
+
return this.valueState !== ValueState.None ? this.valueStateTextMappings()[this.valueState] : undefined;
|
|
1572
1602
|
}
|
|
1573
1603
|
|
|
1574
1604
|
get suggestionsText() {
|
|
1575
|
-
return Input.i18nBundle.getText(INPUT_SUGGESTIONS);
|
|
1605
|
+
return Input.i18nBundle.getText(INPUT_SUGGESTIONS as I18nText);
|
|
1576
1606
|
}
|
|
1577
1607
|
|
|
1578
1608
|
get availableSuggestionsCount() {
|
|
1579
|
-
if (this.showSuggestions && (this.value || this.Suggestions
|
|
1609
|
+
if (this.showSuggestions && (this.value || this.Suggestions!.isOpened())) {
|
|
1580
1610
|
switch (this.suggestionsTexts.length) {
|
|
1581
1611
|
case 0:
|
|
1582
|
-
return Input.i18nBundle.getText(INPUT_SUGGESTIONS_NO_HIT);
|
|
1612
|
+
return Input.i18nBundle.getText(INPUT_SUGGESTIONS_NO_HIT as I18nText);
|
|
1583
1613
|
|
|
1584
1614
|
case 1:
|
|
1585
|
-
return Input.i18nBundle.getText(INPUT_SUGGESTIONS_ONE_HIT);
|
|
1615
|
+
return Input.i18nBundle.getText(INPUT_SUGGESTIONS_ONE_HIT as I18nText);
|
|
1586
1616
|
|
|
1587
1617
|
default:
|
|
1588
|
-
return Input.i18nBundle.getText(INPUT_SUGGESTIONS_MORE_HITS, this.suggestionsTexts.length);
|
|
1618
|
+
return Input.i18nBundle.getText(INPUT_SUGGESTIONS_MORE_HITS as I18nText, this.suggestionsTexts.length);
|
|
1589
1619
|
}
|
|
1590
1620
|
}
|
|
1591
1621
|
|
|
@@ -1623,13 +1653,15 @@ class Input extends UI5Element {
|
|
|
1623
1653
|
Information: `<path xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" d="M3 0C1.34315 0 0 1.34315 0 3V15C0 16.6569 1.34315 18 3 18H15C16.6569 18 18 16.6569 18 15V3C18 1.34315 16.6569 0 15 0H3ZM9 6.5C9.82843 6.5 10.5 5.82843 10.5 5C10.5 4.17157 9.82843 3.5 9 3.5C8.17157 3.5 7.5 4.17157 7.5 5C7.5 5.82843 8.17157 6.5 9 6.5ZM9 8.5C9.55228 8.5 10 8.94772 10 9.5V13.5C10 14.0523 9.55228 14.5 9 14.5C8.44771 14.5 8 14.0523 8 13.5V9.5C8 8.94772 8.44771 8.5 9 8.5Z" fill="#1B90FF"/>`,
|
|
1624
1654
|
};
|
|
1625
1655
|
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1656
|
+
if (this.valueState !== ValueState.None) {
|
|
1657
|
+
return `
|
|
1658
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="20" viewBox="0 0 20 20" fill="none">
|
|
1659
|
+
${iconPerValueState[this.valueState]};
|
|
1660
|
+
</svg>
|
|
1661
|
+
`;
|
|
1662
|
+
}
|
|
1631
1663
|
|
|
1632
|
-
return
|
|
1664
|
+
return "";
|
|
1633
1665
|
}
|
|
1634
1666
|
|
|
1635
1667
|
get _valueStatePopoverHorizontalAlign() {
|
|
@@ -1654,8 +1686,8 @@ class Input extends UI5Element {
|
|
|
1654
1686
|
* Returns the caret position inside the native input
|
|
1655
1687
|
* @protected
|
|
1656
1688
|
*/
|
|
1657
|
-
getCaretPosition() {
|
|
1658
|
-
return getCaretPosition(this.nativeInput);
|
|
1689
|
+
getCaretPosition(): number | null {
|
|
1690
|
+
return getCaretPosition(this.nativeInput!);
|
|
1659
1691
|
}
|
|
1660
1692
|
|
|
1661
1693
|
/**
|
|
@@ -1663,15 +1695,15 @@ class Input extends UI5Element {
|
|
|
1663
1695
|
* @protected
|
|
1664
1696
|
* @param pos
|
|
1665
1697
|
*/
|
|
1666
|
-
setCaretPosition(pos) {
|
|
1667
|
-
setCaretPosition(this.nativeInput
|
|
1698
|
+
setCaretPosition(pos: number | null) {
|
|
1699
|
+
setCaretPosition(this.nativeInput!, pos);
|
|
1668
1700
|
}
|
|
1669
1701
|
|
|
1670
1702
|
/**
|
|
1671
1703
|
* Removes the fractional part of floating-point number.
|
|
1672
1704
|
* @param {string} value the numeric value of Input of type "Number"
|
|
1673
1705
|
*/
|
|
1674
|
-
removeFractionalPart(value) {
|
|
1706
|
+
removeFractionalPart(value: string) {
|
|
1675
1707
|
if (value.includes(".")) {
|
|
1676
1708
|
return value.slice(0, value.indexOf("."));
|
|
1677
1709
|
}
|
|
@@ -1683,13 +1715,13 @@ class Input extends UI5Element {
|
|
|
1683
1715
|
}
|
|
1684
1716
|
|
|
1685
1717
|
static get dependencies() {
|
|
1686
|
-
const Suggestions = getFeature("InputSuggestions");
|
|
1718
|
+
const Suggestions = getFeature<typeof InputSuggestions>("InputSuggestions");
|
|
1687
1719
|
|
|
1688
|
-
return [Popover, Icon].concat(Suggestions ? Suggestions.dependencies : []);
|
|
1720
|
+
return ([Popover, Icon] as Array<typeof UI5Element>).concat(Suggestions ? Suggestions.dependencies : []);
|
|
1689
1721
|
}
|
|
1690
1722
|
|
|
1691
1723
|
static async onDefine() {
|
|
1692
|
-
const Suggestions = getFeature("InputSuggestions");
|
|
1724
|
+
const Suggestions = getFeature<typeof InputSuggestions>("InputSuggestions");
|
|
1693
1725
|
|
|
1694
1726
|
[Input.i18nBundle] = await Promise.all([
|
|
1695
1727
|
getI18nBundle("@ui5/webcomponents"),
|