@sapudex/web-components 2.40.0 → 2.42.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/config/wdio.conf.cjs +18 -2
- package/cypress/specs/Dropdown.cy.tsx +90 -0
- package/cypress/specs/MessageStrip.cy.tsx +77 -0
- package/cypress/specs/PasswordField.cy.tsx +37 -0
- package/cypress/specs/Search.cy.tsx +244 -138
- package/cypress/specs/SelectBox.cy.tsx +184 -5
- package/cypress/support/component-imports.instrumented.ts +2 -0
- package/cypress/support/component-imports.src.ts +2 -0
- package/cypress.config.ts +10 -0
- package/dist/Dropdown.d.ts +5 -0
- package/dist/Dropdown.js +56 -0
- package/dist/Dropdown.js.map +1 -1
- package/dist/List.d.ts +1 -6
- package/dist/List.js +2 -10
- package/dist/List.js.map +1 -1
- package/dist/MastheadCountrySelector.d.ts +7 -0
- package/dist/MastheadCountrySelector.js +3 -0
- package/dist/MastheadCountrySelector.js.map +1 -1
- package/dist/MessageStrip.d.ts +25 -0
- package/dist/MessageStrip.js +16 -4
- package/dist/MessageStrip.js.map +1 -1
- package/dist/PasswordField.d.ts +10 -0
- package/dist/PasswordField.js +17 -2
- package/dist/PasswordField.js.map +1 -1
- package/dist/PasswordFieldTemplate.js +1 -1
- package/dist/PasswordFieldTemplate.js.map +1 -1
- package/dist/Search.d.ts +1 -1
- package/dist/Search.js +13 -9
- package/dist/Search.js.map +1 -1
- package/dist/SearchTemplate.js +3 -3
- package/dist/SearchTemplate.js.map +1 -1
- package/dist/SearchableListBase.d.ts +1 -6
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SearchableListBaseTemplate.js +1 -1
- package/dist/SearchableListBaseTemplate.js.map +1 -1
- package/dist/SelectBase.d.ts +7 -1
- package/dist/SelectBase.js +114 -17
- package/dist/SelectBase.js.map +1 -1
- package/dist/TextField.d.ts +1 -1
- package/dist/TextField.js +2 -2
- package/dist/TextField.js.map +1 -1
- package/dist/TextFieldTemplate.js +1 -1
- package/dist/TextFieldTemplate.js.map +1 -1
- package/dist/assets/{InputSuggestions-DAElWNvY.js → InputSuggestions-DVRXb_CJ.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-B2fGcGW7.js → ListItemStandardExpandableTextTemplate-DhmGlKzk.js} +1 -1
- package/dist/assets/{bundle.esm-DPVxY8xv.js → bundle.esm-CjF11YUZ.js} +233 -233
- package/dist/assets/messagebundle_en-BZqDcZHN.js +1 -0
- package/dist/assets/messagebundle_hu-CBV3ISbF.js +1 -0
- package/dist/assets/messagebundle_tr-DOeCmUdx.js +1 -0
- package/dist/assets/messagebundle_uk-GmdhsMsP.js +1 -0
- package/dist/assets/messagebundle_zh_CN-CHwH3F3-.js +1 -0
- package/dist/assets/messagebundle_zh_TW-FO0BCkub.js +1 -0
- package/dist/css/themes/MastheadCountrySelector.css +1 -1
- package/dist/css/themes/MastheadMenuItem.css +1 -1
- package/dist/css/themes/MastheadProfileMenu.css +1 -1
- package/dist/css/themes/StatusMessage.css +1 -1
- package/dist/css/themes/TextField.css +1 -1
- package/dist/css/themes/Toast.css +1 -1
- package/dist/css/themes/Wizard.css +1 -1
- package/dist/css/themes/WizardTab.css +1 -1
- package/dist/custom-elements-internal.json +114 -146
- package/dist/custom-elements.json +114 -114
- package/dist/features/SearchSuggestionsPopover.d.ts +6 -9
- package/dist/features/SearchSuggestionsPopover.js +47 -163
- package/dist/features/SearchSuggestionsPopover.js.map +1 -1
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hu.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_zh_CN.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +3 -2
- package/dist/generated/i18n/i18n-defaults.js +3 -2
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js +6 -5
- package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +1 -1
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
- package/dist/generated/themes/MastheadCountrySelector.css.d.ts +1 -1
- package/dist/generated/themes/MastheadCountrySelector.css.js +1 -1
- package/dist/generated/themes/MastheadCountrySelector.css.js.map +1 -1
- package/dist/generated/themes/MastheadMenuItem.css.d.ts +1 -1
- package/dist/generated/themes/MastheadMenuItem.css.js +1 -1
- package/dist/generated/themes/MastheadMenuItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.d.ts +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.js +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.js.map +1 -1
- package/dist/generated/themes/StatusMessage.css.d.ts +1 -1
- package/dist/generated/themes/StatusMessage.css.js +1 -1
- package/dist/generated/themes/StatusMessage.css.js.map +1 -1
- package/dist/generated/themes/TextField.css.d.ts +1 -1
- package/dist/generated/themes/TextField.css.js +1 -1
- package/dist/generated/themes/TextField.css.js.map +1 -1
- package/dist/generated/themes/Toast.css.d.ts +1 -1
- package/dist/generated/themes/Toast.css.js +1 -1
- package/dist/generated/themes/Toast.css.js.map +1 -1
- package/dist/generated/themes/Wizard.css.d.ts +1 -1
- package/dist/generated/themes/Wizard.css.js +1 -1
- package/dist/generated/themes/Wizard.css.js.map +1 -1
- package/dist/generated/themes/WizardTab.css.d.ts +1 -1
- package/dist/generated/themes/WizardTab.css.js +1 -1
- package/dist/generated/themes/WizardTab.css.js.map +1 -1
- package/dist/messagebundle.properties +2 -1
- package/dist/messagebundle_en.properties +2 -1
- package/dist/messagebundle_hu.properties +125 -0
- package/dist/messagebundle_tr.properties +126 -0
- package/dist/messagebundle_uk.properties +128 -0
- package/dist/messagebundle_zh_CN.properties +126 -0
- package/dist/messagebundle_zh_TW.properties +126 -0
- package/dist/utils/sanitizeString.js +1 -4
- package/dist/utils/sanitizeString.js.map +1 -1
- package/dist/vscode.html-custom-data.json +30 -25
- package/dist/web-types.json +61 -41
- package/package.json +2 -2
- package/src/Dropdown.ts +62 -0
- package/src/List.ts +3 -18
- package/src/MastheadCountrySelector.hbs +2 -0
- package/src/MastheadCountrySelector.ts +9 -0
- package/src/MastheadMobileMenu.hbs +1 -0
- package/src/MessageStrip.ts +37 -4
- package/src/PasswordField.ts +24 -0
- package/src/PasswordFieldTemplate.tsx +2 -2
- package/src/Search.ts +13 -9
- package/src/SearchTemplate.tsx +0 -3
- package/src/SearchableListBase.ts +1 -6
- package/src/SearchableListBaseTemplate.tsx +0 -1
- package/src/SelectBase.ts +114 -19
- package/src/TextField.ts +1 -1
- package/src/TextFieldTemplate.tsx +1 -1
- package/src/features/SearchSuggestionsPopover.ts +55 -177
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/templates/MastheadCountrySelectorTemplate.lit.ts +6 -5
- package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +1 -1
- package/src/generated/themes/MastheadCountrySelector.css.ts +1 -1
- package/src/generated/themes/MastheadMenuItem.css.ts +1 -1
- package/src/generated/themes/MastheadProfileMenu.css.ts +1 -1
- package/src/generated/themes/StatusMessage.css.ts +1 -1
- package/src/generated/themes/TextField.css.ts +1 -1
- package/src/generated/themes/Toast.css.ts +1 -1
- package/src/generated/themes/Wizard.css.ts +1 -1
- package/src/generated/themes/WizardTab.css.ts +1 -1
- package/src/i18n/messagebundle.properties +2 -1
- package/src/i18n/messagebundle_en.properties +2 -1
- package/src/i18n/messagebundle_hu.properties +125 -0
- package/src/i18n/messagebundle_tr.properties +126 -0
- package/src/i18n/messagebundle_uk.properties +128 -0
- package/src/i18n/messagebundle_zh_CN.properties +126 -0
- package/src/i18n/messagebundle_zh_TW.properties +126 -0
- package/src/themes/MastheadCountrySelector.css +5 -2
- package/src/themes/MastheadMenuItem.css +12 -4
- package/src/themes/MastheadProfileMenu.css +0 -5
- package/src/themes/StatusMessage.css +4 -4
- package/src/themes/TextField.css +3 -0
- package/src/themes/Toast.css +14 -2
- package/src/themes/Wizard.css +7 -0
- package/src/themes/WizardTab.css +23 -0
- package/src/utils/sanitizeString.ts +1 -4
- package/dist/assets/messagebundle_en-BxjFAY2S.js +0 -1
- package/dist/assets/messagebundle_hu-BEMbu-EE.js +0 -1
- package/dist/assets/messagebundle_tr-9FvYSV7d.js +0 -1
- package/dist/assets/messagebundle_uk-BgTRxken.js +0 -1
- package/dist/assets/messagebundle_zh_CN-BsCxQ-NE.js +0 -1
- package/dist/assets/messagebundle_zh_TW-Li9m-Dgo.js +0 -1
|
@@ -3396,16 +3396,6 @@
|
|
|
3396
3396
|
"default": "undefined",
|
|
3397
3397
|
"privacy": "public"
|
|
3398
3398
|
},
|
|
3399
|
-
{
|
|
3400
|
-
"kind": "field",
|
|
3401
|
-
"name": "tabNavigationEnabled",
|
|
3402
|
-
"type": {
|
|
3403
|
-
"text": "boolean | undefined"
|
|
3404
|
-
},
|
|
3405
|
-
"description": "Enables tab navigation for the list.",
|
|
3406
|
-
"default": "\"\"",
|
|
3407
|
-
"privacy": "public"
|
|
3408
|
-
},
|
|
3409
3399
|
{
|
|
3410
3400
|
"kind": "field",
|
|
3411
3401
|
"name": "valueState",
|
|
@@ -3549,15 +3539,6 @@
|
|
|
3549
3539
|
"type": {
|
|
3550
3540
|
"text": "boolean"
|
|
3551
3541
|
}
|
|
3552
|
-
},
|
|
3553
|
-
{
|
|
3554
|
-
"description": "Enables tab navigation for the list.",
|
|
3555
|
-
"name": "tab-navigation-enabled",
|
|
3556
|
-
"default": "\"\"",
|
|
3557
|
-
"fieldName": "tabNavigationEnabled",
|
|
3558
|
-
"type": {
|
|
3559
|
-
"text": "boolean | undefined"
|
|
3560
|
-
}
|
|
3561
3542
|
}
|
|
3562
3543
|
],
|
|
3563
3544
|
"superclass": {
|
|
@@ -5666,16 +5647,6 @@
|
|
|
5666
5647
|
"default": "false",
|
|
5667
5648
|
"privacy": "public"
|
|
5668
5649
|
},
|
|
5669
|
-
{
|
|
5670
|
-
"kind": "field",
|
|
5671
|
-
"name": "tabNavigationEnabled",
|
|
5672
|
-
"type": {
|
|
5673
|
-
"text": "boolean | undefined"
|
|
5674
|
-
},
|
|
5675
|
-
"description": "Enables tab navigation for the list.",
|
|
5676
|
-
"default": "\"\"",
|
|
5677
|
-
"privacy": "public"
|
|
5678
|
-
},
|
|
5679
5650
|
{
|
|
5680
5651
|
"kind": "field",
|
|
5681
5652
|
"name": "triggerAccessibleRole",
|
|
@@ -6004,15 +5975,6 @@
|
|
|
6004
5975
|
"text": "boolean"
|
|
6005
5976
|
}
|
|
6006
5977
|
},
|
|
6007
|
-
{
|
|
6008
|
-
"description": "Enables tab navigation for the list.",
|
|
6009
|
-
"name": "tab-navigation-enabled",
|
|
6010
|
-
"default": "\"\"",
|
|
6011
|
-
"fieldName": "tabNavigationEnabled",
|
|
6012
|
-
"type": {
|
|
6013
|
-
"text": "boolean | undefined"
|
|
6014
|
-
}
|
|
6015
|
-
},
|
|
6016
5978
|
{
|
|
6017
5979
|
"description": "Allows setting a custom role for dropdown trigger.",
|
|
6018
5980
|
"name": "trigger-accessible-role",
|
|
@@ -9632,16 +9594,6 @@
|
|
|
9632
9594
|
"default": "\"SingleSelect\"",
|
|
9633
9595
|
"privacy": "public"
|
|
9634
9596
|
},
|
|
9635
|
-
{
|
|
9636
|
-
"kind": "field",
|
|
9637
|
-
"name": "tabNavigationEnabled",
|
|
9638
|
-
"type": {
|
|
9639
|
-
"text": "boolean | undefined"
|
|
9640
|
-
},
|
|
9641
|
-
"description": "Enables tab navigation for the list.",
|
|
9642
|
-
"default": "\"\"",
|
|
9643
|
-
"privacy": "public"
|
|
9644
|
-
},
|
|
9645
9597
|
{
|
|
9646
9598
|
"kind": "field",
|
|
9647
9599
|
"name": "type",
|
|
@@ -9738,15 +9690,6 @@
|
|
|
9738
9690
|
"text": "\"SingleSelect\" | \"MultiSelect\" | \"SingleContent\" | \"RadioGroup\""
|
|
9739
9691
|
}
|
|
9740
9692
|
},
|
|
9741
|
-
{
|
|
9742
|
-
"description": "Enables tab navigation for the list.",
|
|
9743
|
-
"name": "tab-navigation-enabled",
|
|
9744
|
-
"default": "\"\"",
|
|
9745
|
-
"fieldName": "tabNavigationEnabled",
|
|
9746
|
-
"type": {
|
|
9747
|
-
"text": "boolean | undefined"
|
|
9748
|
-
}
|
|
9749
|
-
},
|
|
9750
9693
|
{
|
|
9751
9694
|
"description": "Defines the type of the item.",
|
|
9752
9695
|
"name": "type",
|
|
@@ -12030,6 +11973,16 @@
|
|
|
12030
11973
|
"default": "\"\"",
|
|
12031
11974
|
"privacy": "public"
|
|
12032
11975
|
},
|
|
11976
|
+
{
|
|
11977
|
+
"kind": "field",
|
|
11978
|
+
"name": "hideSearch",
|
|
11979
|
+
"type": {
|
|
11980
|
+
"text": "boolean"
|
|
11981
|
+
},
|
|
11982
|
+
"description": "Hides the search field in the country list view.",
|
|
11983
|
+
"default": "false",
|
|
11984
|
+
"privacy": "public"
|
|
11985
|
+
},
|
|
12033
11986
|
{
|
|
12034
11987
|
"kind": "field",
|
|
12035
11988
|
"name": "languageVoice",
|
|
@@ -12153,6 +12106,15 @@
|
|
|
12153
12106
|
"text": "string"
|
|
12154
12107
|
}
|
|
12155
12108
|
},
|
|
12109
|
+
{
|
|
12110
|
+
"description": "Hides the search field in the country list view.",
|
|
12111
|
+
"name": "hide-search",
|
|
12112
|
+
"default": "false",
|
|
12113
|
+
"fieldName": "hideSearch",
|
|
12114
|
+
"type": {
|
|
12115
|
+
"text": "boolean"
|
|
12116
|
+
}
|
|
12117
|
+
},
|
|
12156
12118
|
{
|
|
12157
12119
|
"description": "Defines the language voice of the search",
|
|
12158
12120
|
"name": "language-voice",
|
|
@@ -14817,6 +14779,36 @@
|
|
|
14817
14779
|
"description": "Defines whether the MessageStrip renders close button.",
|
|
14818
14780
|
"privacy": "public"
|
|
14819
14781
|
},
|
|
14782
|
+
{
|
|
14783
|
+
"kind": "field",
|
|
14784
|
+
"name": "statusErrorText",
|
|
14785
|
+
"type": {
|
|
14786
|
+
"text": "string"
|
|
14787
|
+
},
|
|
14788
|
+
"description": "Defines custom status text for error type",
|
|
14789
|
+
"default": "\"\"",
|
|
14790
|
+
"privacy": "public"
|
|
14791
|
+
},
|
|
14792
|
+
{
|
|
14793
|
+
"kind": "field",
|
|
14794
|
+
"name": "statusInformationText",
|
|
14795
|
+
"type": {
|
|
14796
|
+
"text": "string"
|
|
14797
|
+
},
|
|
14798
|
+
"description": "Defines custom status text for information type",
|
|
14799
|
+
"default": "\"\"",
|
|
14800
|
+
"privacy": "public"
|
|
14801
|
+
},
|
|
14802
|
+
{
|
|
14803
|
+
"kind": "field",
|
|
14804
|
+
"name": "statusSuccessText",
|
|
14805
|
+
"type": {
|
|
14806
|
+
"text": "string"
|
|
14807
|
+
},
|
|
14808
|
+
"description": "Defines custom status text for success type",
|
|
14809
|
+
"default": "\"\"",
|
|
14810
|
+
"privacy": "public"
|
|
14811
|
+
},
|
|
14820
14812
|
{
|
|
14821
14813
|
"kind": "field",
|
|
14822
14814
|
"name": "statusType",
|
|
@@ -14833,6 +14825,16 @@
|
|
|
14833
14825
|
"description": "Defines the component Status Type.",
|
|
14834
14826
|
"privacy": "public"
|
|
14835
14827
|
},
|
|
14828
|
+
{
|
|
14829
|
+
"kind": "field",
|
|
14830
|
+
"name": "statusWarningText",
|
|
14831
|
+
"type": {
|
|
14832
|
+
"text": "string"
|
|
14833
|
+
},
|
|
14834
|
+
"description": "Defines custom status text for warning type",
|
|
14835
|
+
"default": "\"\"",
|
|
14836
|
+
"privacy": "public"
|
|
14837
|
+
},
|
|
14836
14838
|
{
|
|
14837
14839
|
"kind": "field",
|
|
14838
14840
|
"name": "colorScheme",
|
|
@@ -14889,6 +14891,33 @@
|
|
|
14889
14891
|
"text": "boolean"
|
|
14890
14892
|
}
|
|
14891
14893
|
},
|
|
14894
|
+
{
|
|
14895
|
+
"description": "Defines custom status text for error type",
|
|
14896
|
+
"name": "status-error-text",
|
|
14897
|
+
"default": "\"\"",
|
|
14898
|
+
"fieldName": "statusErrorText",
|
|
14899
|
+
"type": {
|
|
14900
|
+
"text": "string"
|
|
14901
|
+
}
|
|
14902
|
+
},
|
|
14903
|
+
{
|
|
14904
|
+
"description": "Defines custom status text for information type",
|
|
14905
|
+
"name": "status-information-text",
|
|
14906
|
+
"default": "\"\"",
|
|
14907
|
+
"fieldName": "statusInformationText",
|
|
14908
|
+
"type": {
|
|
14909
|
+
"text": "string"
|
|
14910
|
+
}
|
|
14911
|
+
},
|
|
14912
|
+
{
|
|
14913
|
+
"description": "Defines custom status text for success type",
|
|
14914
|
+
"name": "status-success-text",
|
|
14915
|
+
"default": "\"\"",
|
|
14916
|
+
"fieldName": "statusSuccessText",
|
|
14917
|
+
"type": {
|
|
14918
|
+
"text": "string"
|
|
14919
|
+
}
|
|
14920
|
+
},
|
|
14892
14921
|
{
|
|
14893
14922
|
"description": "Defines the component Status Type.",
|
|
14894
14923
|
"name": "status-type",
|
|
@@ -14897,6 +14926,15 @@
|
|
|
14897
14926
|
"text": "\"Text\" | \"None\" | \"Icon\""
|
|
14898
14927
|
}
|
|
14899
14928
|
},
|
|
14929
|
+
{
|
|
14930
|
+
"description": "Defines custom status text for warning type",
|
|
14931
|
+
"name": "status-warning-text",
|
|
14932
|
+
"default": "\"\"",
|
|
14933
|
+
"fieldName": "statusWarningText",
|
|
14934
|
+
"type": {
|
|
14935
|
+
"text": "string"
|
|
14936
|
+
}
|
|
14937
|
+
},
|
|
14900
14938
|
{
|
|
14901
14939
|
"description": "Defines the color scheme of the component.\nThere are 10 predefined schemes.\nTo use one you can set a number from `\"1\"` to `\"10\"`. The `colorScheme` `\"1\"` will be set by default.",
|
|
14902
14940
|
"name": "color-scheme",
|
|
@@ -15588,6 +15626,16 @@
|
|
|
15588
15626
|
"default": "false",
|
|
15589
15627
|
"privacy": "public"
|
|
15590
15628
|
},
|
|
15629
|
+
{
|
|
15630
|
+
"kind": "field",
|
|
15631
|
+
"name": "hideButtonTooltip",
|
|
15632
|
+
"type": {
|
|
15633
|
+
"text": "string"
|
|
15634
|
+
},
|
|
15635
|
+
"description": "Defines the tooltip for the hide password button.",
|
|
15636
|
+
"default": "\"\"",
|
|
15637
|
+
"privacy": "public"
|
|
15638
|
+
},
|
|
15591
15639
|
{
|
|
15592
15640
|
"kind": "field",
|
|
15593
15641
|
"name": "label",
|
|
@@ -15778,6 +15826,15 @@
|
|
|
15778
15826
|
"text": "boolean"
|
|
15779
15827
|
}
|
|
15780
15828
|
},
|
|
15829
|
+
{
|
|
15830
|
+
"description": "Defines the tooltip for the hide password button.",
|
|
15831
|
+
"name": "hide-button-tooltip",
|
|
15832
|
+
"default": "\"\"",
|
|
15833
|
+
"fieldName": "hideButtonTooltip",
|
|
15834
|
+
"type": {
|
|
15835
|
+
"text": "string"
|
|
15836
|
+
}
|
|
15837
|
+
},
|
|
15781
15838
|
{
|
|
15782
15839
|
"description": "Defines label text for the input field.",
|
|
15783
15840
|
"name": "label",
|
|
@@ -18646,16 +18703,6 @@
|
|
|
18646
18703
|
"description": "Defines if the search input is visible.",
|
|
18647
18704
|
"default": "false",
|
|
18648
18705
|
"privacy": "public"
|
|
18649
|
-
},
|
|
18650
|
-
{
|
|
18651
|
-
"kind": "field",
|
|
18652
|
-
"name": "tabNavigationEnabled",
|
|
18653
|
-
"type": {
|
|
18654
|
-
"text": "boolean | undefined"
|
|
18655
|
-
},
|
|
18656
|
-
"description": "Enables tab navigation for the list.",
|
|
18657
|
-
"default": "\"\"",
|
|
18658
|
-
"privacy": "public"
|
|
18659
18706
|
}
|
|
18660
18707
|
],
|
|
18661
18708
|
"events": [
|
|
@@ -18807,15 +18854,6 @@
|
|
|
18807
18854
|
"type": {
|
|
18808
18855
|
"text": "boolean"
|
|
18809
18856
|
}
|
|
18810
|
-
},
|
|
18811
|
-
{
|
|
18812
|
-
"description": "Enables tab navigation for the list.",
|
|
18813
|
-
"name": "tab-navigation-enabled",
|
|
18814
|
-
"default": "\"\"",
|
|
18815
|
-
"fieldName": "tabNavigationEnabled",
|
|
18816
|
-
"type": {
|
|
18817
|
-
"text": "boolean | undefined"
|
|
18818
|
-
}
|
|
18819
18857
|
}
|
|
18820
18858
|
],
|
|
18821
18859
|
"superclass": {
|
|
@@ -20398,16 +20436,6 @@
|
|
|
20398
20436
|
"default": "undefined",
|
|
20399
20437
|
"privacy": "public"
|
|
20400
20438
|
},
|
|
20401
|
-
{
|
|
20402
|
-
"kind": "field",
|
|
20403
|
-
"name": "tabNavigationEnabled",
|
|
20404
|
-
"type": {
|
|
20405
|
-
"text": "boolean | undefined"
|
|
20406
|
-
},
|
|
20407
|
-
"description": "Enables tab navigation for the list.",
|
|
20408
|
-
"default": "\"\"",
|
|
20409
|
-
"privacy": "public"
|
|
20410
|
-
},
|
|
20411
20439
|
{
|
|
20412
20440
|
"kind": "field",
|
|
20413
20441
|
"name": "valueState",
|
|
@@ -20529,15 +20557,6 @@
|
|
|
20529
20557
|
"type": {
|
|
20530
20558
|
"text": "boolean"
|
|
20531
20559
|
}
|
|
20532
|
-
},
|
|
20533
|
-
{
|
|
20534
|
-
"description": "Enables tab navigation for the list.",
|
|
20535
|
-
"name": "tab-navigation-enabled",
|
|
20536
|
-
"default": "\"\"",
|
|
20537
|
-
"fieldName": "tabNavigationEnabled",
|
|
20538
|
-
"type": {
|
|
20539
|
-
"text": "boolean | undefined"
|
|
20540
|
-
}
|
|
20541
20560
|
}
|
|
20542
20561
|
],
|
|
20543
20562
|
"events": [
|
|
@@ -20836,16 +20855,6 @@
|
|
|
20836
20855
|
"default": "undefined",
|
|
20837
20856
|
"privacy": "public"
|
|
20838
20857
|
},
|
|
20839
|
-
{
|
|
20840
|
-
"kind": "field",
|
|
20841
|
-
"name": "tabNavigationEnabled",
|
|
20842
|
-
"type": {
|
|
20843
|
-
"text": "boolean | undefined"
|
|
20844
|
-
},
|
|
20845
|
-
"description": "Enables tab navigation for the list.",
|
|
20846
|
-
"default": "\"\"",
|
|
20847
|
-
"privacy": "public"
|
|
20848
|
-
},
|
|
20849
20858
|
{
|
|
20850
20859
|
"kind": "field",
|
|
20851
20860
|
"name": "tooltipPlacement",
|
|
@@ -21054,15 +21063,6 @@
|
|
|
21054
21063
|
"text": "boolean"
|
|
21055
21064
|
}
|
|
21056
21065
|
},
|
|
21057
|
-
{
|
|
21058
|
-
"description": "Enables tab navigation for the list.",
|
|
21059
|
-
"name": "tab-navigation-enabled",
|
|
21060
|
-
"default": "\"\"",
|
|
21061
|
-
"fieldName": "tabNavigationEnabled",
|
|
21062
|
-
"type": {
|
|
21063
|
-
"text": "boolean | undefined"
|
|
21064
|
-
}
|
|
21065
|
-
},
|
|
21066
21066
|
{
|
|
21067
21067
|
"description": "Determines on which side of the component the Tooltip is displayed.",
|
|
21068
21068
|
"name": "tooltip-placement",
|
|
@@ -6,7 +6,7 @@ interface SuggestionComponent extends UI5Element {
|
|
|
6
6
|
open: boolean;
|
|
7
7
|
value?: string;
|
|
8
8
|
suggestionItems?: string;
|
|
9
|
-
openSuggestionPopup
|
|
9
|
+
openSuggestionPopup: boolean;
|
|
10
10
|
}
|
|
11
11
|
type SearchInputSuggestion = {
|
|
12
12
|
handleSelectItem: () => void;
|
|
@@ -26,8 +26,6 @@ declare class Suggestion {
|
|
|
26
26
|
focusabledList?: HTMLDivElement;
|
|
27
27
|
lists?: Array<HTMLDivElement>;
|
|
28
28
|
_focusHandler: UDExListWithFirstLetterFocus;
|
|
29
|
-
_tabEscapedFromPopover: boolean;
|
|
30
|
-
_shiftTabEscapedFromPopover: boolean;
|
|
31
29
|
constructor(component: SuggestionComponent);
|
|
32
30
|
_getComponent(): SuggestionComponent;
|
|
33
31
|
_getSuggestionPopover(): Popover | null;
|
|
@@ -39,15 +37,14 @@ declare class Suggestion {
|
|
|
39
37
|
resetFocusState(): void;
|
|
40
38
|
onFocusInput(): void;
|
|
41
39
|
onEnter(e: KeyboardEvent): void;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
40
|
+
getAllFocusableItems(): Element[];
|
|
41
|
+
private _updateItemSelection;
|
|
42
|
+
onKeyDown(e: KeyboardEvent): void;
|
|
43
|
+
onKeyUp(e: KeyboardEvent): void;
|
|
44
|
+
onTab(): void;
|
|
45
45
|
onEscape(e: KeyboardEvent): void;
|
|
46
46
|
onKeyTabList(e: KeyboardEvent): void;
|
|
47
47
|
onPrevKeyTabList(e: KeyboardEvent): void;
|
|
48
|
-
onKeyDown(e: KeyboardEvent): true | undefined;
|
|
49
|
-
onKeyUp(e: KeyboardEvent): true | undefined;
|
|
50
|
-
handlePrevTabReset(e: KeyboardEvent): void;
|
|
51
48
|
static get dependencies(): (typeof Button | typeof Popover)[];
|
|
52
49
|
}
|
|
53
50
|
export default Suggestion;
|
|
@@ -13,8 +13,6 @@ import UDExFirstLetterFocusHandler from "../utils/ListWithFirstLetterFocus.js";
|
|
|
13
13
|
class Suggestion {
|
|
14
14
|
constructor(component) {
|
|
15
15
|
this._focusHandler = new UDExFirstLetterFocusHandler();
|
|
16
|
-
this._tabEscapedFromPopover = false;
|
|
17
|
-
this._shiftTabEscapedFromPopover = false;
|
|
18
16
|
this.component = component;
|
|
19
17
|
this._getSuggestionPopover();
|
|
20
18
|
this.selectedItemIndex = -1;
|
|
@@ -50,18 +48,12 @@ class Suggestion {
|
|
|
50
48
|
}
|
|
51
49
|
}
|
|
52
50
|
initLists() {
|
|
53
|
-
const list = this.popover?.querySelectorAll(".udex-search-suggestions__list")
|
|
54
|
-
|
|
55
|
-
if (this.focusabledList && this.lists?.length && newLists.length) {
|
|
56
|
-
const oldIndex = this.lists.indexOf(this.focusabledList);
|
|
57
|
-
if (oldIndex >= 0 && oldIndex < newLists.length) {
|
|
58
|
-
this.focusabledList = newLists[oldIndex];
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
this.lists = newLists;
|
|
51
|
+
const list = this.popover?.querySelectorAll(".udex-search-suggestions__list") ?? [];
|
|
52
|
+
this.lists = Array.from(list);
|
|
62
53
|
}
|
|
63
54
|
close() {
|
|
64
55
|
this._getSuggestionPopover();
|
|
56
|
+
this.getAllFocusableItems().forEach(item => item.removeAttribute("aria-selected"));
|
|
65
57
|
this._getComponent().open = false;
|
|
66
58
|
this.popover.open = false;
|
|
67
59
|
this.selectedItemIndex = -1;
|
|
@@ -80,36 +72,45 @@ class Suggestion {
|
|
|
80
72
|
this.component.value = this._getItems()[this.selectedItemIndex].getAttribute("title")?.replace(/<[^>]*>?/gm, "");
|
|
81
73
|
}
|
|
82
74
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
this._shiftTabEscapedFromPopover = false;
|
|
90
|
-
e.preventDefault();
|
|
91
|
-
this.focusabledList = this.lists[0];
|
|
92
|
-
this.selectedItemIndex = -1;
|
|
93
|
-
this.focusabledList.focus();
|
|
75
|
+
getAllFocusableItems() {
|
|
76
|
+
return Array.from(this.popover?.querySelectorAll("[ui5-button]") ?? []);
|
|
77
|
+
}
|
|
78
|
+
_updateItemSelection(items, nextIndex) {
|
|
79
|
+
if (this.selectedItemIndex >= 0 && this.selectedItemIndex < items.length) {
|
|
80
|
+
items[this.selectedItemIndex].removeAttribute("aria-selected");
|
|
94
81
|
}
|
|
82
|
+
const button = items[nextIndex];
|
|
83
|
+
button.setAttribute("aria-selected", "true");
|
|
84
|
+
button.focus();
|
|
85
|
+
this.selectedItemIndex = nextIndex;
|
|
95
86
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
87
|
+
onKeyDown(e) {
|
|
88
|
+
e.preventDefault();
|
|
89
|
+
const items = this.getAllFocusableItems();
|
|
90
|
+
if (!items.length) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const nextIndex = this.selectedItemIndex < 0 || this.selectedItemIndex >= items.length - 1
|
|
94
|
+
? 0
|
|
95
|
+
: this.selectedItemIndex + 1;
|
|
96
|
+
this._updateItemSelection(items, nextIndex);
|
|
99
97
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
98
|
+
onKeyUp(e) {
|
|
99
|
+
e.preventDefault();
|
|
100
|
+
const items = this.getAllFocusableItems();
|
|
101
|
+
if (!items.length) {
|
|
103
102
|
return;
|
|
104
103
|
}
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
this.
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
104
|
+
const prevIndex = this.selectedItemIndex <= 0
|
|
105
|
+
? items.length - 1
|
|
106
|
+
: this.selectedItemIndex - 1;
|
|
107
|
+
this._updateItemSelection(items, prevIndex);
|
|
108
|
+
}
|
|
109
|
+
onTab() {
|
|
110
|
+
if (!this._getComponent().openSuggestionPopup) {
|
|
111
|
+
this.close();
|
|
112
112
|
}
|
|
113
|
+
this.resetFocusState();
|
|
113
114
|
}
|
|
114
115
|
onEscape(e) {
|
|
115
116
|
e.preventDefault();
|
|
@@ -117,140 +118,23 @@ class Suggestion {
|
|
|
117
118
|
this.onFocusInput();
|
|
118
119
|
}
|
|
119
120
|
onKeyTabList(e) {
|
|
120
|
-
const keepOpen = !!this.component.openSuggestionPopup;
|
|
121
|
-
if (this.lists?.length === 2) {
|
|
122
|
-
if (this.focusabledList === this.lists[1]) {
|
|
123
|
-
e.preventDefault();
|
|
124
|
-
if (keepOpen) {
|
|
125
|
-
this.focusabledList = undefined;
|
|
126
|
-
this.selectedItemIndex = -1;
|
|
127
|
-
this._tabEscapedFromPopover = true;
|
|
128
|
-
this.onFocusInput();
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
this.close();
|
|
132
|
-
this.onFocusInput();
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
if (this.focusabledList === this.lists[0]) {
|
|
136
|
-
e.preventDefault();
|
|
137
|
-
this.focusabledList = this.lists[1];
|
|
138
|
-
this.focusabledList.focus();
|
|
139
|
-
this.selectedItemIndex = -1;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
if (this.lists?.length === 1) {
|
|
143
|
-
e.preventDefault();
|
|
144
|
-
if (keepOpen) {
|
|
145
|
-
this.focusabledList = undefined;
|
|
146
|
-
this.selectedItemIndex = -1;
|
|
147
|
-
this._tabEscapedFromPopover = true;
|
|
148
|
-
this.onFocusInput();
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
this.close();
|
|
152
|
-
this.onFocusInput();
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
onPrevKeyTabList(e) {
|
|
156
|
-
const keepOpen = !!this.component.openSuggestionPopup;
|
|
157
121
|
e.preventDefault();
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
}
|
|
165
|
-
this.onFocusInput();
|
|
166
|
-
return;
|
|
167
|
-
}
|
|
168
|
-
if (this.focusabledList === this.lists[1]) {
|
|
169
|
-
this.focusabledList = this.lists[0];
|
|
170
|
-
this.focusabledList.focus();
|
|
171
|
-
this.selectedItemIndex = -1;
|
|
172
|
-
}
|
|
122
|
+
this.close();
|
|
123
|
+
this.resetFocusState();
|
|
124
|
+
const shadow = this._getComponent().shadowRoot;
|
|
125
|
+
const firstBtn = shadow?.querySelector("#reset-button, #voice-button, #submit-button");
|
|
126
|
+
if (firstBtn) {
|
|
127
|
+
firstBtn.focus();
|
|
173
128
|
}
|
|
174
|
-
|
|
175
|
-
if (keepOpen) {
|
|
176
|
-
this.focusabledList = undefined;
|
|
177
|
-
this.selectedItemIndex = -1;
|
|
178
|
-
this._shiftTabEscapedFromPopover = true;
|
|
179
|
-
}
|
|
129
|
+
else {
|
|
180
130
|
this.onFocusInput();
|
|
181
131
|
}
|
|
182
132
|
}
|
|
183
|
-
|
|
184
|
-
e.preventDefault();
|
|
185
|
-
const nextSelectedIdx = this.selectedItemIndex;
|
|
186
|
-
const focusabledItems = this.getFocusableItems();
|
|
187
|
-
const itemCount = focusabledItems.length - 1;
|
|
188
|
-
if (this.lists?.length) {
|
|
189
|
-
if (nextSelectedIdx === -1) {
|
|
190
|
-
const button = focusabledItems[0];
|
|
191
|
-
button.setAttribute("aria-selected", "true");
|
|
192
|
-
button.focus();
|
|
193
|
-
this.selectedItemIndex = 0;
|
|
194
|
-
this.focusabledList?.setAttribute("aria-activedescendant", button.id);
|
|
195
|
-
return true;
|
|
196
|
-
}
|
|
197
|
-
if (nextSelectedIdx >= 0 && nextSelectedIdx !== itemCount) {
|
|
198
|
-
const button = focusabledItems[nextSelectedIdx + 1];
|
|
199
|
-
focusabledItems[nextSelectedIdx].removeAttribute("aria-selected");
|
|
200
|
-
button.setAttribute("aria-selected", "true");
|
|
201
|
-
button.focus();
|
|
202
|
-
this.selectedItemIndex = nextSelectedIdx + 1;
|
|
203
|
-
this.focusabledList?.setAttribute("aria-activedescendant", button.id);
|
|
204
|
-
return true;
|
|
205
|
-
}
|
|
206
|
-
if (nextSelectedIdx === itemCount && this.focusabledList === this.lists[0] && this.lists.length === 2) {
|
|
207
|
-
focusabledItems[nextSelectedIdx].removeAttribute("aria-selected");
|
|
208
|
-
this.focusabledList?.removeAttribute("aria-activedescendant");
|
|
209
|
-
this.focusabledList = this.lists[1];
|
|
210
|
-
this.focusabledList.focus();
|
|
211
|
-
this.selectedItemIndex = -1;
|
|
212
|
-
return true;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
onKeyUp(e) {
|
|
133
|
+
onPrevKeyTabList(e) {
|
|
217
134
|
e.preventDefault();
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
if (this.lists?.length) {
|
|
222
|
-
if (previousSelectedIdx === -1) {
|
|
223
|
-
const button = focusabledItems[0];
|
|
224
|
-
button.setAttribute("aria-selected", "true");
|
|
225
|
-
button.focus();
|
|
226
|
-
this.selectedItemIndex = 0;
|
|
227
|
-
this.focusabledList?.setAttribute("aria-activedescendant", button.id);
|
|
228
|
-
return true;
|
|
229
|
-
}
|
|
230
|
-
if (previousSelectedIdx > 0 && previousSelectedIdx <= itemCount) {
|
|
231
|
-
const button = focusabledItems[previousSelectedIdx - 1];
|
|
232
|
-
focusabledItems[previousSelectedIdx].removeAttribute("aria-selected");
|
|
233
|
-
button.setAttribute("aria-selected", "true");
|
|
234
|
-
button.focus();
|
|
235
|
-
this.selectedItemIndex = previousSelectedIdx - 1;
|
|
236
|
-
this.focusabledList?.setAttribute("aria-activedescendant", button.id);
|
|
237
|
-
return true;
|
|
238
|
-
}
|
|
239
|
-
if (previousSelectedIdx === 0 && this.lists.length === 2 && this.focusabledList === this.lists[1]) {
|
|
240
|
-
focusabledItems[previousSelectedIdx].removeAttribute("aria-selected");
|
|
241
|
-
this.focusabledList?.removeAttribute("aria-activedescendant");
|
|
242
|
-
this.focusabledList = this.lists[0];
|
|
243
|
-
this.focusabledList.focus();
|
|
244
|
-
this.selectedItemIndex = -1;
|
|
245
|
-
return true;
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
handlePrevTabReset(e) {
|
|
250
|
-
if (this.focusabledList) {
|
|
251
|
-
e.preventDefault();
|
|
252
|
-
this.focusabledList.focus();
|
|
253
|
-
}
|
|
135
|
+
this.close();
|
|
136
|
+
this.resetFocusState();
|
|
137
|
+
this.onFocusInput();
|
|
254
138
|
}
|
|
255
139
|
static get dependencies() {
|
|
256
140
|
return [
|