@ui5/webcomponents-fiori 2.25.0-rc.0 → 2.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +49 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/IllustratedMessage.d.ts +12 -12
- package/dist/IllustratedMessage.js +65 -52
- package/dist/IllustratedMessage.js.map +1 -1
- package/dist/MediaGalleryTemplate.js +1 -1
- package/dist/MediaGalleryTemplate.js.map +1 -1
- package/dist/ShellBar.js +7 -1
- package/dist/ShellBar.js.map +1 -1
- package/dist/ShellBarSearch.d.ts +1 -0
- package/dist/ShellBarSearch.js +6 -0
- package/dist/ShellBarSearch.js.map +1 -1
- package/dist/SideNavigation.d.ts +6 -1
- package/dist/SideNavigation.js +63 -0
- package/dist/SideNavigation.js.map +1 -1
- package/dist/SideNavigationItemBase.d.ts +1 -0
- package/dist/SideNavigationItemBase.js +4 -0
- package/dist/SideNavigationItemBase.js.map +1 -1
- package/dist/UserSettingsAccountView.js +2 -2
- package/dist/UserSettingsAccountView.js.map +1 -1
- package/dist/UserSettingsAppearanceViewItemTemplate.js +1 -1
- package/dist/UserSettingsAppearanceViewItemTemplate.js.map +1 -1
- package/dist/UserSettingsAppearanceViewTemplate.js +2 -2
- package/dist/UserSettingsAppearanceViewTemplate.js.map +1 -1
- package/dist/UserSettingsDialog.d.ts +18 -0
- package/dist/UserSettingsDialog.js +49 -3
- package/dist/UserSettingsDialog.js.map +1 -1
- package/dist/UserSettingsDialogTemplate.js +3 -3
- package/dist/UserSettingsDialogTemplate.js.map +1 -1
- package/dist/UserSettingsItemTemplate.js +1 -1
- package/dist/UserSettingsItemTemplate.js.map +1 -1
- package/dist/css/themes/IllustratedMessage.css +1 -1
- package/dist/css/themes/SideNavigation.css +1 -1
- package/dist/css/themes/SideNavigationGroup.css +1 -1
- package/dist/css/themes/SideNavigationItem.css +1 -1
- package/dist/css/themes/SideNavigationItemBase.css +1 -1
- package/dist/css/themes/SideNavigationSubItem.css +1 -1
- package/dist/css/themes/UserSettingsAccountView.css +1 -1
- package/dist/css/themes/UserSettingsAppearanceViewItem.css +1 -1
- package/dist/css/themes/UserSettingsDialog.css +1 -1
- package/dist/css/themes/UserSettingsItem.css +1 -1
- package/dist/css/themes/UserSettingsView.css +1 -1
- package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_auto/parameters-bundle.css +2 -2
- package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +2 -2
- package/dist/custom-elements-internal.json +44 -3
- package/dist/custom-elements.json +36 -3
- 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_cnr.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_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_id.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_mk.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_sr.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_horizon/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_auto/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
- package/dist/generated/i18n/i18n-defaults.js +6 -4
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/themes/IllustratedMessage.css.d.ts +1 -1
- package/dist/generated/themes/IllustratedMessage.css.js +1 -1
- package/dist/generated/themes/IllustratedMessage.css.js.map +1 -1
- package/dist/generated/themes/SideNavigation.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigation.css.js +1 -1
- package/dist/generated/themes/SideNavigation.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationGroup.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationGroup.css.js +1 -1
- package/dist/generated/themes/SideNavigationGroup.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationItem.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationItem.css.js +1 -1
- package/dist/generated/themes/SideNavigationItem.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationItemBase.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationItemBase.css.js +1 -1
- package/dist/generated/themes/SideNavigationItemBase.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationSubItem.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationSubItem.css.js +1 -1
- package/dist/generated/themes/SideNavigationSubItem.css.js.map +1 -1
- package/dist/generated/themes/UserSettingsAccountView.css.d.ts +1 -1
- package/dist/generated/themes/UserSettingsAccountView.css.js +1 -1
- package/dist/generated/themes/UserSettingsAccountView.css.js.map +1 -1
- package/dist/generated/themes/UserSettingsAppearanceViewItem.css.d.ts +1 -1
- package/dist/generated/themes/UserSettingsAppearanceViewItem.css.js +1 -1
- package/dist/generated/themes/UserSettingsAppearanceViewItem.css.js.map +1 -1
- package/dist/generated/themes/UserSettingsDialog.css.d.ts +1 -1
- package/dist/generated/themes/UserSettingsDialog.css.js +1 -1
- package/dist/generated/themes/UserSettingsDialog.css.js.map +1 -1
- package/dist/generated/themes/UserSettingsItem.css.d.ts +1 -1
- package/dist/generated/themes/UserSettingsItem.css.js +1 -1
- package/dist/generated/themes/UserSettingsItem.css.js.map +1 -1
- package/dist/generated/themes/UserSettingsView.css.d.ts +1 -1
- package/dist/generated/themes/UserSettingsView.css.js +1 -1
- package/dist/generated/themes/UserSettingsView.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js +2 -2
- package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +2 -2
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
- package/dist/shellbar/ShellBarSearch.d.ts +3 -1
- package/dist/shellbar/ShellBarSearch.js +3 -2
- package/dist/shellbar/ShellBarSearch.js.map +1 -1
- package/dist/vscode.html-custom-data.json +6 -1
- package/dist/web-types.json +34 -8
- package/package.json +8 -8
- package/src/MediaGalleryTemplate.tsx +6 -2
- package/src/UserSettingsAppearanceViewItemTemplate.tsx +1 -3
- package/src/UserSettingsAppearanceViewTemplate.tsx +2 -2
- package/src/UserSettingsDialogTemplate.tsx +9 -2
- package/src/UserSettingsItemTemplate.tsx +1 -1
- package/src/i18n/messagebundle.properties +9 -3
- package/src/i18n/messagebundle_ar.properties +3 -3
- package/src/i18n/messagebundle_bg.properties +3 -3
- package/src/i18n/messagebundle_ca.properties +3 -3
- package/src/i18n/messagebundle_cnr.properties +3 -3
- package/src/i18n/messagebundle_cs.properties +3 -3
- package/src/i18n/messagebundle_cy.properties +3 -3
- package/src/i18n/messagebundle_da.properties +3 -3
- package/src/i18n/messagebundle_el.properties +3 -3
- package/src/i18n/messagebundle_en.properties +3 -3
- package/src/i18n/messagebundle_en_GB.properties +3 -3
- package/src/i18n/messagebundle_en_US_sappsd.properties +3 -3
- package/src/i18n/messagebundle_en_US_saprigi.properties +10 -6
- package/src/i18n/messagebundle_en_US_saptrc.properties +3 -3
- package/src/i18n/messagebundle_es.properties +3 -3
- package/src/i18n/messagebundle_es_MX.properties +3 -3
- package/src/i18n/messagebundle_et.properties +3 -3
- package/src/i18n/messagebundle_fi.properties +3 -3
- package/src/i18n/messagebundle_fr.properties +3 -3
- package/src/i18n/messagebundle_fr_CA.properties +2 -2
- package/src/i18n/messagebundle_hi.properties +3 -3
- package/src/i18n/messagebundle_hr.properties +3 -3
- package/src/i18n/messagebundle_hu.properties +3 -3
- package/src/i18n/messagebundle_id.properties +3 -3
- package/src/i18n/messagebundle_it.properties +3 -3
- package/src/i18n/messagebundle_iw.properties +3 -3
- package/src/i18n/messagebundle_ja.properties +3 -3
- package/src/i18n/messagebundle_kk.properties +3 -3
- package/src/i18n/messagebundle_ko.properties +3 -3
- package/src/i18n/messagebundle_lt.properties +3 -3
- package/src/i18n/messagebundle_lv.properties +3 -3
- package/src/i18n/messagebundle_mk.properties +3 -3
- package/src/i18n/messagebundle_ms.properties +3 -3
- package/src/i18n/messagebundle_nl.properties +3 -3
- package/src/i18n/messagebundle_no.properties +3 -3
- package/src/i18n/messagebundle_pl.properties +3 -3
- package/src/i18n/messagebundle_pt.properties +3 -3
- package/src/i18n/messagebundle_pt_PT.properties +3 -3
- package/src/i18n/messagebundle_ro.properties +3 -3
- package/src/i18n/messagebundle_ru.properties +3 -3
- package/src/i18n/messagebundle_sh.properties +3 -3
- package/src/i18n/messagebundle_sk.properties +3 -3
- package/src/i18n/messagebundle_sl.properties +3 -3
- package/src/i18n/messagebundle_sr.properties +3 -3
- package/src/i18n/messagebundle_sv.properties +3 -3
- package/src/i18n/messagebundle_th.properties +1 -1
- package/src/i18n/messagebundle_tr.properties +3 -3
- package/src/i18n/messagebundle_uk.properties +3 -3
- package/src/i18n/messagebundle_vi.properties +3 -3
- package/src/i18n/messagebundle_zh_CN.properties +3 -3
- package/src/i18n/messagebundle_zh_TW.properties +3 -3
- package/src/themes/IllustratedMessage.css +12 -22
- package/src/themes/SideNavigation.css +10 -0
- package/src/themes/SideNavigationItemBase.css +4 -0
- package/src/themes/UserSettingsAccountView.css +2 -0
- package/src/themes/UserSettingsAppearanceViewItem.css +3 -10
- package/src/themes/UserSettingsDialog.css +5 -0
- package/src/themes/UserSettingsItem.css +3 -2
- package/src/themes/UserSettingsView.css +4 -17
- package/src/themes/sap_horizon/HeroBanner-parameters.css +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SideNavigation.js","sourceRoot":"","sources":["../src/SideNavigation.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { createMultiInstanceChecker } from \"@ui5/webcomponents-base/dist/util/createMultiInstanceChecker.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRender from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type ResponsivePopover from \"@ui5/webcomponents/dist/ResponsivePopover.js\";\nimport type NavigationMenu from \"./NavigationMenu.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport createInstanceChecker from \"@ui5/webcomponents-base/dist/util/createInstanceChecker.js\";\n\nimport NavigationMode from \"@ui5/webcomponents-base/dist/types/NavigationMode.js\";\nimport type SideNavigationItemBase from \"./SideNavigationItemBase.js\";\nimport { isInstanceOfSideNavigationSelectableItemBase } from \"./SideNavigationSelectableItemBase.js\";\nimport { isInstanceOfSideNavigationItemBase } from \"./SideNavigationItemBase.js\";\nimport type SideNavigationSelectableItemBase from \"./SideNavigationSelectableItemBase.js\";\nimport { isInstanceOfSideNavigationItem } from \"./SideNavigationItem.js\";\nimport { isInstanceOfSideNavigationGroup } from \"./SideNavigationGroup.js\";\nimport type SideNavigationItem from \"./SideNavigationItem.js\";\nimport type SideNavigationSubItem from \"./SideNavigationSubItem.js\";\nimport type SideNavigationGroup from \"./SideNavigationGroup.js\";\nimport SideNavigationTemplate from \"./SideNavigationTemplate.js\";\n\nimport {\n\tSIDE_NAVIGATION_POPOVER_HIDDEN_TEXT,\n\tSIDE_NAVIGATION_COLLAPSED_LIST_ARIA_ROLE_DESC,\n\tSIDE_NAVIGATION_LIST_ARIA_ROLE_DESC,\n\tSIDE_NAVIGATION_OVERFLOW_ACCESSIBLE_NAME,\n\tSIDE_NAVIGATION_FLEXIBLE_LIST_LABEL,\n\tSIDE_NAVIGATION_FIXED_LIST_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport SideNavigationCss from \"./generated/themes/SideNavigation.css.js\";\nimport SideNavigationPopoverCss from \"./generated/themes/SideNavigationPopover.css.js\";\n\nconst PAGE_UP_DOWN_SIZE = 10;\nconst SCREEN_WIDTH_BREAKPOINT = 600;\n\ntype SideNavigationPopoverContents = {\n\titem: SideNavigationItem,\n\tsubItems: Array<SideNavigationSubItem>,\n};\n\ntype SideNavigationSelectionChangeEventDetail = {\n\titem: SideNavigationItemBase,\n};\n\ntype SideNavigationItemClickEventDetail = {\n\titem: SideNavigationSelectableItemBase,\n};\n\ntype PopupSideNavigationItem = SideNavigationItem & { associatedItem: SideNavigationSelectableItemBase };\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `SideNavigation` is used as a standard menu in applications.\n * It consists of three containers: header (top-aligned), main navigation section (top-aligned) and the secondary section (bottom-aligned).\n *\n * - The header is meant for displaying user related information - profile data, avatar, etc.\n * - The main navigation section is related to the user's current work context.\n * - The secondary section is mostly used to link additional information that may be of interest (legal information, developer communities, external help, contact information and so on).\n *\n * ### Usage\n *\n * Use the available `ui5-side-navigation-group`, `ui5-side-navigation-item`\n * and `ui5-side-navigation-sub-item` components to build your menu.\n * The items can consist of text only or an icon with text. The use or non-use of icons must be consistent for all items on one level.\n * You must not combine entries with and without icons on the same level. We strongly recommend that you do not use icons on the second level.\n *\n * The `ui5-side-navigation` component is designed to be used within a `ui5-navigation-layout` component to ensure an optimal user experience.\n *\n * Using it standalone may not match the intended design and functionality.\n * For example, the side navigation may not exhibit the correct behavior on smaller screens.\n * Additionally, the padding of the `ui5-shellbar` will not match the padding of the side navigation.\n *\n * ### Keyboard Handling\n *\n * ### Fast Navigation\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/SideNavigation.js\"`\n *\n * `import \"@ui5/webcomponents-fiori/dist/SideNavigationGroup.js\";` (for `ui5-side-navigation-group`)\n *\n * `import \"@ui5/webcomponents-fiori/dist/SideNavigationItem.js\";` (for `ui5-side-navigation-item`)\n *\n * `import \"@ui5/webcomponents-fiori/dist/SideNavigationSubItem.js\";` (for `ui5-side-navigation-sub-item`)\n * @constructor\n * @extends UI5Element\n * @since 1.0.0-rc.8\n * @public\n */\n\n@customElement({\n\ttag: \"ui5-side-navigation\",\n\tfastNavigation: true,\n\trenderer: jsxRender,\n\ttemplate: SideNavigationTemplate,\n\tstyles: [SideNavigationCss, SideNavigationPopoverCss],\n})\n\n/**\n * Fired when the selection has changed via user interaction.\n *\n * @param {SideNavigationSelectableItemBase} item The selected item.\n * @public\n */\n@event(\"selection-change\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired when an item is clicked.\n *\n * @param {SideNavigationSelectableItemBase} item The clicked item.\n * @since 2.20.0\n * @public\n */\n@event(\"item-click\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\nclass SideNavigation extends UI5Element {\n\teventDetails!: {\n\t\t\"selection-change\": SideNavigationSelectionChangeEventDetail,\n\t\t\"item-click\": SideNavigationItemClickEventDetail\n\t}\n\n\t/**\n\t * Defines whether the `ui5-side-navigation` is expanded or collapsed.\n\t *\n\t * **Note:** On small screens (screen width of 599px or less) the collapsed mode is not supported, and in\n\t * expanded mode the side navigation will take the whole width of the screen.\n\t * The `ui5-side-navigation` component is intended to be used within a `ui5-navigation-layout`\n\t * component to ensure proper responsive behavior. If you choose not to use the\n\t * `ui5-navigation-layout`, you will need to implement the appropriate responsive patterns yourself,\n\t * particularly for smaller screens where the collapsed mode should not be used.\n\t *\n\t * @public\n\t * @default false\n\t */\n\t@property({ type: Boolean })\n\tcollapsed = false;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.9.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the main items of the component.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n\titems!: DefaultSlot<SideNavigationItemBase>;\n\n\t/**\n\t * Defines the fixed items at the bottom of the component.\n\t *\n\t * **Note:** In order to achieve the best user experience, it is recommended that you keep the fixed items \"flat\" (do not pass sub-items)\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true })\n\tfixedItems!: Slot<SideNavigationItemBase>;\n\n\t/**\n\t * Defines the header of the `ui5-side-navigation`.\n\t *\n\t * **Note:** The header is displayed when the component is expanded - the property `collapsed` is false;\n\t *\n\t * @public\n\t * @since 1.0.0-rc.11\n\t */\n\t@slot()\n\theader!: Slot<HTMLElement>;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_popoverContents!: SideNavigationPopoverContents;\n\n\t@property({ type: Boolean })\n\tinPopover = false;\n\n\t@property({ type: Object })\n\t_menuPopoverItems: Array<SideNavigationItem> = [];\n\n\t_isOverflow = false;\n\t_flexibleItemNavigation: ItemNavigation;\n\t_fixedItemNavigation: ItemNavigation;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._flexibleItemNavigation = new ItemNavigation(this, {\n\t\t\tskipItemsSize: PAGE_UP_DOWN_SIZE, // PAGE_UP and PAGE_DOWN will skip trough 10 items\n\t\t\tnavigationMode: NavigationMode.Vertical,\n\t\t\tgetItemsCallback: () => this.getEnabledFlexibleItems(),\n\t\t});\n\n\t\tthis._fixedItemNavigation = new ItemNavigation(this, {\n\t\t\tskipItemsSize: PAGE_UP_DOWN_SIZE, // PAGE_UP and PAGE_DOWN will skip trough 10 items\n\t\t\tnavigationMode: NavigationMode.Vertical,\n\t\t\tgetItemsCallback: () => this.getEnabledFixedItems(),\n\t\t});\n\n\t\tthis._handleResizeBound = this.handleResize.bind(this);\n\t\tthis._isOverflow = false;\n\t}\n\n\t_handleResizeBound: () => void;\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\n\t\tthis._getAllItems(this.items)\n\t\t\t.concat(this._getAllItems(this.fixedItems))\n\t\t\t.forEach(item => {\n\t\t\t\titem.sideNavCollapsed = this.collapsed;\n\t\t\t\titem.inPopover = this.inPopover;\n\t\t\t\titem.sideNavigation = this;\n\t\t\t});\n\n\t\tthis.initGroupsSettings(this.items);\n\t\tthis.initGroupsSettings(this.fixedItems);\n\t}\n\n\tinitGroupsSettings(items: Array<SideNavigationItemBase>) {\n\t\tlet isPreviousItemGroup = false;\n\n\t\titems.forEach(item => {\n\t\t\tconst isGroup = isInstanceOfSideNavigationGroup(item);\n\n\t\t\tif (isGroup) {\n\t\t\t\titem.belowGroup = isPreviousItemGroup;\n\t\t\t}\n\n\t\t\tisPreviousItemGroup = isGroup;\n\t\t});\n\t}\n\n\t_onAfterPopoverOpen() {\n\t\t// as the tree/list inside the popover is never destroyed,\n\t\t// item navigation index should be managed, because items are\n\t\t// dynamically recreated and tabIndexes are not updated\n\t\tconst tree = this.getPickerTree();\n\t\tconst selectedItem = tree._findSelectedItem(tree.items);\n\t\tif (selectedItem) {\n\t\t\tselectedItem.focus();\n\t\t} else {\n\t\t\ttree.items[0]?.applyInitialFocusInPopover();\n\t\t}\n\t}\n\n\t_onBeforePopoverOpen() {\n\t\tconst popover = this.getPicker();\n\t\t(popover?.opener as HTMLElement)?.classList.add(\"ui5-sn-item-active\");\n\t}\n\n\t_onBeforePopoverClose() {\n\t\tconst popover = this.getPicker();\n\t\t(popover?.opener as HTMLElement)?.classList.remove(\"ui5-sn-item-active\");\n\t}\n\n\t_onBeforeMenuOpen() {\n\t\tconst popover = this.getOverflowPopover();\n\t\tpopover._popover.preventFocusRestore = false;\n\t\t(popover?.opener as HTMLElement)?.classList.add(\"ui5-sn-item-active\");\n\t}\n\n\t_onBeforeMenuClose() {\n\t\tconst popover = this.getOverflowPopover();\n\t\t(popover?.opener as HTMLElement)?.classList.remove(\"ui5-sn-item-active\");\n\t}\n\n\t_bn?: SideNavigationSelectableItemBase;\n\n\t_onMenuClose() {\n\t\tconst menu = this.getOverflowPopover();\n\t\tif (!menu._popover.preventFocusRestore) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst selectedItem = this._findSelectedItem(this.items);\n\n\t\tif (selectedItem) {\n\t\t\tthis.focusItem(selectedItem);\n\t\t\tselectedItem.focus();\n\t\t}\n\t}\n\n\tget accSideNavigationPopoverHiddenText() {\n\t\treturn SideNavigation.i18nBundle.getText(SIDE_NAVIGATION_POPOVER_HIDDEN_TEXT);\n\t}\n\n\tget ariaRoleDescNavigationList() {\n\t\tlet key = SIDE_NAVIGATION_LIST_ARIA_ROLE_DESC;\n\t\tif (this.collapsed) {\n\t\t\tkey = SIDE_NAVIGATION_COLLAPSED_LIST_ARIA_ROLE_DESC;\n\t\t}\n\n\t\treturn SideNavigation.i18nBundle.getText(key);\n\t}\n\n\tget navigationMenuPrimaryHiddenText() {\n\t\treturn SideNavigation.i18nBundle.getText(SIDE_NAVIGATION_FLEXIBLE_LIST_LABEL);\n\t}\n\n\tget navigationMenuFooterHiddenText() {\n\t\treturn SideNavigation.i18nBundle.getText(SIDE_NAVIGATION_FIXED_LIST_LABEL);\n\t}\n\n\tget overflowAccessibleName() {\n\t\treturn SideNavigation.i18nBundle.getText(SIDE_NAVIGATION_OVERFLOW_ACCESSIBLE_NAME);\n\t}\n\n\tget _effectiveCollapsed() {\n\t\treturn this.collapsed && !this._isSmallScreen();\n\t}\n\n\thandlePopupItemClick(e: KeyboardEvent | PointerEvent) {\n\t\tconst associatedItem = (e.target as PopupSideNavigationItem).associatedItem;\n\n\t\tif (associatedItem.effectiveDisabled) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isInstanceOfSideNavigationItem(associatedItem) && associatedItem.unselectable) {\n\t\t\treturn;\n\t\t}\n\n\t\te.stopPropagation();\n\n\t\tconst altKey = (e.detail as any)?.altKey,\n\t\t\tctrlKey = (e.detail as any)?.ctrlKey,\n\t\t\tmetaKey = (e.detail as any)?.metaKey,\n\t\t\tshiftKey = (e.detail as any)?.shiftKey;\n\n\t\tconst executeEvent = associatedItem.fireDecoratorEvent(\"click\", {\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t});\n\n\t\tif (!executeEvent) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (associatedItem.selected) {\n\t\t\tthis.closePicker();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._selectItem(associatedItem);\n\n\t\tthis.closePicker();\n\t\tthis._popoverContents.item?.getDomRef()!.classList.add(\"ui5-sn-item-no-hover-effect\");\n\t}\n\n\tgetOverflowPopover() {\n\t\treturn this.shadowRoot!.querySelector<NavigationMenu>(\".ui5-side-navigation-overflow-menu\")!;\n\t}\n\n\tgetPicker() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\topenPicker(opener: HTMLElement) {\n\t\topener.classList.add(\"ui5-sn-item-active\");\n\n\t\tconst responsivePopover = this.getPicker();\n\t\tresponsivePopover.opener = opener;\n\t\tresponsivePopover.open = true;\n\t}\n\n\topenOverflowMenu(opener: HTMLElement) {\n\t\topener.classList.add(\"ui5-sn-item-active\");\n\n\t\tconst menu = this.getOverflowPopover();\n\t\tmenu.opener = opener;\n\t\tmenu.open = true;\n\t}\n\n\tclosePicker() {\n\t\tconst responsivePopover = this.getPicker();\n\t\tresponsivePopover.open = false;\n\t}\n\n\tcloseMenu(preventFocusRestore: boolean = false) {\n\t\tconst menu = this.getOverflowPopover();\n\t\tmenu._popover.preventFocusRestore = preventFocusRestore;\n\t\tmenu.open = false;\n\t}\n\n\tgetPickerTree() {\n\t\tconst picker = this.getPicker();\n\t\treturn picker.querySelector<SideNavigation>(\"[ui5-side-navigation]\")!;\n\t}\n\n\tget hasHeader() {\n\t\treturn !!this.header.length;\n\t}\n\n\tget showHeader() {\n\t\treturn this.hasHeader && !this.collapsed;\n\t}\n\n\tget hasFixedItems() {\n\t\treturn !!this.fixedItems.length;\n\t}\n\n\tget _rootRole() {\n\t\treturn this.inPopover ? \"none\" : undefined;\n\t}\n\n\tgetEnabledFixedItems(): Array<ITabbable> {\n\t\treturn this.getEnabledItems(this.fixedItems);\n\t}\n\n\tgetEnabledFlexibleItems(): Array<ITabbable> {\n\t\tconst items = this.getEnabledItems(this.items);\n\n\t\tif (this._overflowItem) {\n\t\t\titems.push(this._overflowItem);\n\t\t}\n\n\t\treturn items;\n\t}\n\n\tgetEnabledItems(items: Array<SideNavigationItemBase>): Array<ITabbable> {\n\t\tconst result = new Array<ITabbable>();\n\n\t\tthis._getFocusableItems(items).forEach(item => {\n\t\t\tif (this.collapsed && item.classList.contains(\"ui5-sn-item-hidden\")) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresult.push(item);\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tfocusItem(item: SideNavigationItemBase) {\n\t\tif (item.isFixedItem) {\n\t\t\tthis._fixedItemNavigation.setCurrentItem(item);\n\t\t} else {\n\t\t\tthis._flexibleItemNavigation.setCurrentItem(item);\n\t\t}\n\t}\n\n\tonAfterRendering() {\n\t\tif (!this.getDomRef()?.matches(\":focus-within\")) {\n\t\t\tlet selectedItem = this._findSelectedItem(this.items);\n\t\t\tif (selectedItem) {\n\t\t\t\tthis._flexibleItemNavigation.setCurrentItem(selectedItem);\n\t\t\t}\n\n\t\t\tselectedItem = this._findSelectedItem(this.fixedItems);\n\t\t\tif (selectedItem) {\n\t\t\t\tthis._fixedItemNavigation.setCurrentItem(selectedItem);\n\t\t\t}\n\t\t}\n\n\t\tif (this.collapsed) {\n\t\t\tthis.handleResize();\n\t\t}\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._handleResizeBound);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._handleResizeBound);\n\t}\n\n\thandleResize() {\n\t\t// In smaller screen the side navigation hidden when collapsed and there is no overflow items\n\t\tif (window.innerWidth > SCREEN_WIDTH_BREAKPOINT) {\n\t\t\tthis._updateOverflowItems();\n\t\t}\n\t}\n\n\t_updateOverflowItems() {\n\t\tconst domRef = this.getDomRef();\n\t\tif (!this.collapsed || !domRef) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst overflowItem = this._overflowItem!;\n\t\tconst flexibleContentDomRef: HTMLElement = domRef.querySelector(\".ui5-sn-flexible\")!;\n\t\tif (!overflowItem) {\n\t\t\treturn null;\n\t\t}\n\n\t\toverflowItem.classList.add(\"ui5-sn-item-hidden\");\n\n\t\tconst overflowItems = this.overflowItems;\n\n\t\tlet itemsHeight = overflowItems.reduce<number>((sum, itemRef) => {\n\t\t\tif (!itemRef) {\n\t\t\t\treturn sum;\n\t\t\t}\n\t\t\titemRef.classList.remove(\"ui5-sn-item-hidden\");\n\t\t\treturn sum + itemRef.offsetHeight;\n\t\t}, 0);\n\n\t\tconst { paddingTop, paddingBottom } = window.getComputedStyle(flexibleContentDomRef);\n\t\tconst listHeight = flexibleContentDomRef?.offsetHeight - parseInt(paddingTop) - parseInt(paddingBottom);\n\n\t\tif (itemsHeight <= listHeight) {\n\t\t\treturn;\n\t\t}\n\n\t\toverflowItem.classList.remove(\"ui5-sn-item-hidden\");\n\n\t\titemsHeight = overflowItem.offsetHeight;\n\n\t\tconst selectedItem = overflowItems.filter(isInstanceOfSideNavigationSelectableItemBase).find(item => item._selected);\n\n\t\tif (selectedItem) {\n\t\t\tconst selectedItemDomRef = selectedItem.getDomRef();\n\n\t\t\tif (selectedItemDomRef) {\n\t\t\t\tconst { marginTop, marginBottom } = window.getComputedStyle(selectedItemDomRef);\n\t\t\t\titemsHeight += selectedItemDomRef.offsetHeight + parseFloat(marginTop) + parseFloat(marginBottom);\n\t\t\t}\n\t\t}\n\n\t\toverflowItems.forEach(item => {\n\t\t\tif (!item || item === selectedItem) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet itemDomRef;\n\n\t\t\tif (isInstanceOfSideNavigationItemBase(item) && item.getDomRef()) {\n\t\t\t\titemDomRef = item.getDomRef();\n\t\t\t} else {\n\t\t\t\titemDomRef = item;\n\t\t\t}\n\n\t\t\tif (itemDomRef) {\n\t\t\t\tconst { marginTop, marginBottom } = window.getComputedStyle(itemDomRef);\n\t\t\t\titemsHeight += itemDomRef.offsetHeight + parseFloat(marginTop) + parseFloat(marginBottom);\n\n\t\t\t\tif (itemsHeight > listHeight) {\n\t\t\t\t\titem.classList.add(\"ui5-sn-item-hidden\");\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._flexibleItemNavigation._init();\n\t}\n\n\t_findFocusedItem(items: Array<SideNavigationItemBase>): SideNavigationItemBase | undefined {\n\t\treturn this._getFocusableItems(items).find(item => item.forcedTabIndex === \"0\");\n\t}\n\n\t_getSelectableItems(items: Array<SideNavigationItemBase>): Array<SideNavigationSelectableItemBase> {\n\t\treturn items.filter(instanceOfItemOrGroup).reduce((result, item) => {\n\t\t\treturn result.concat(item.selectableItems);\n\t\t}, new Array<SideNavigationSelectableItemBase>());\n\t}\n\n\t_getFocusableItems(items: Array<SideNavigationItemBase>): Array<SideNavigationItemBase> {\n\t\treturn items.filter(instanceOfItemOrGroup).reduce((result, item) => {\n\t\t\treturn result.concat(item.focusableItems);\n\t\t}, new Array<SideNavigationItemBase>());\n\t}\n\n\t_getAllItems(items: Array<SideNavigationItemBase>): Array<SideNavigationItemBase> {\n\t\treturn items.filter(instanceOfItemOrGroup).reduce((result, item) => {\n\t\t\treturn result.concat(item.allItems);\n\t\t}, new Array<SideNavigationItemBase>());\n\t}\n\n\t_findSelectedItem(items: Array<SideNavigationItemBase>): SideNavigationSelectableItemBase | undefined {\n\t\treturn this._getSelectableItems(items).find(item => item._selected);\n\t}\n\n\tget overflowItems(): Array<HTMLElement> {\n\t\treturn this.items.filter(instanceOfItemOrGroup).reduce((result, item) => {\n\t\t\treturn result.concat(item.overflowItems);\n\t\t}, new Array<HTMLElement>());\n\t}\n\n\tprivate _isSmallScreen(): boolean {\n\t\treturn isPhone() || window.innerWidth < SCREEN_WIDTH_BREAKPOINT;\n\t}\n\n\t_handleItemClick(e: KeyboardEvent | MouseEvent, item: SideNavigationSelectableItemBase) {\n\t\tthis.fireDecoratorEvent(\"item-click\", { item });\n\n\t\tif (item.effectiveDisabled) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (item.selected && !this.collapsed) {\n\t\t\tconst {\n\t\t\t\taltKey,\n\t\t\t\tctrlKey,\n\t\t\t\tmetaKey,\n\t\t\t\tshiftKey,\n\t\t\t} = e;\n\n\t\t\tconst executeEvent = item.fireDecoratorEvent(\"click\", {\n\t\t\t\taltKey,\n\t\t\t\tctrlKey,\n\t\t\t\tmetaKey,\n\t\t\t\tshiftKey,\n\t\t\t});\n\n\t\t\tif (!executeEvent) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._effectiveCollapsed && isInstanceOfSideNavigationItem(item) && item.items.length) {\n\t\t\te.preventDefault();\n\t\t\tthis._isOverflow = false;\n\n\t\t\tthis._popoverContents = {\n\t\t\t\titem,\n\t\t\t\tsubItems: item.items,\n\t\t\t};\n\n\t\t\tthis.openPicker(item.getFocusDomRef() as HTMLElement);\n\t\t} else {\n\t\t\tconst {\n\t\t\t\taltKey,\n\t\t\t\tctrlKey,\n\t\t\t\tmetaKey,\n\t\t\t\tshiftKey,\n\t\t\t} = e;\n\n\t\t\tconst executeEvent = item.fireDecoratorEvent(\"click\", {\n\t\t\t\taltKey,\n\t\t\t\tctrlKey,\n\t\t\t\tmetaKey,\n\t\t\t\tshiftKey,\n\t\t\t});\n\n\t\t\tif (!executeEvent) {\n\t\t\t\te.preventDefault();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!item.selected) {\n\t\t\t\tthis._selectItem(item);\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleOverflowClick() {\n\t\tthis._isOverflow = true;\n\t\tthis._menuPopoverItems = this._getOverflowItems();\n\n\t\tthis.openOverflowMenu(this._overflowItem!);\n\t}\n\n\t_getOverflowItems(): Array<SideNavigationItem> {\n\t\tconst overflowClass = \"ui5-sn-item-hidden\";\n\t\tconst result: Array<SideNavigationItem> = [];\n\n\t\tthis.overflowItems.forEach(item => {\n\t\t\tif (item && isInstanceOfSideNavigationItem(item) && item.classList.contains(overflowClass)) {\n\t\t\t\tresult.push(item);\n\t\t\t}\n\t\t});\n\n\t\treturn result;\n\t}\n\n\t_selectItem(item: SideNavigationSelectableItemBase) {\n\t\tif (!item.isSelectable) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.fireDecoratorEvent(\"selection-change\", { item })) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet items = this._getSelectableItems(this.items);\n\t\titems = items.concat(this._getSelectableItems(this.fixedItems));\n\n\t\titems.forEach(current => {\n\t\t\tcurrent.selected = false;\n\t\t});\n\n\t\titem.selected = true;\n\t}\n\n\tget _overflowItem() {\n\t\tconst overflowItem = this.shadowRoot!.querySelector<SideNavigationItem>(\".ui5-sn-item-overflow\");\n\t\tif (overflowItem) {\n\t\t\toverflowItem.sideNavigation = this;\n\t\t}\n\n\t\treturn overflowItem;\n\t}\n\n\tget isOverflow() {\n\t\treturn this._isOverflow;\n\t}\n\n\tget isSideNavigation() {\n\t\treturn true;\n\t}\n\n\tcaptureRef(ref: HTMLElement & { associatedItem?: UI5Element } | null) {\n\t\tif (!ref) {\n\t\t\treturn;\n\t\t}\n\n\t\tref.associatedItem = this;\n\n\t\tconst item = this as unknown as SideNavigationItem | SideNavigationSubItem;\n\t\tif (item.tag?.length > 0) {\n\t\t\tconst existingTags = Array.from(ref.children).filter(child => child.getAttribute(\"slot\") === \"tag\");\n\t\t\texistingTags.forEach(tag => tag.remove());\n\n\t\t\titem.tag.forEach((tagEl: HTMLElement) => {\n\t\t\t\tconst clonedTag = tagEl.cloneNode(true) as HTMLElement;\n\t\t\t\tclonedTag.setAttribute(\"slot\", \"tag\");\n\t\t\t\tref.appendChild(clonedTag);\n\t\t\t});\n\t\t}\n\t}\n}\n\nconst instanceOfItemOrGroup = createMultiInstanceChecker<SideNavigationItem | SideNavigationGroup>([\"isSideNavigationItem\", \"isSideNavigationGroup\"]);\n\nSideNavigation.define();\n\nexport const isInstanceOfSideNavigation = createInstanceChecker<SideNavigation>(\"isSideNavigation\");\nexport default SideNavigation;\n\nexport type {\n\tSideNavigationSelectionChangeEventDetail,\n\tSideNavigationItemClickEventDetail,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"SideNavigation.js","sourceRoot":"","sources":["../src/SideNavigation.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { Slot, DefaultSlot, ChangeInfo } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { createMultiInstanceChecker } from \"@ui5/webcomponents-base/dist/util/createMultiInstanceChecker.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRender from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type ResponsivePopover from \"@ui5/webcomponents/dist/ResponsivePopover.js\";\nimport type NavigationMenu from \"./NavigationMenu.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport createInstanceChecker from \"@ui5/webcomponents-base/dist/util/createInstanceChecker.js\";\n\nimport NavigationMode from \"@ui5/webcomponents-base/dist/types/NavigationMode.js\";\nimport type SideNavigationItemBase from \"./SideNavigationItemBase.js\";\nimport { isInstanceOfSideNavigationSelectableItemBase } from \"./SideNavigationSelectableItemBase.js\";\nimport { isInstanceOfSideNavigationItemBase } from \"./SideNavigationItemBase.js\";\nimport type SideNavigationSelectableItemBase from \"./SideNavigationSelectableItemBase.js\";\nimport { isInstanceOfSideNavigationItem } from \"./SideNavigationItem.js\";\nimport { isInstanceOfSideNavigationGroup } from \"./SideNavigationGroup.js\";\nimport type SideNavigationItem from \"./SideNavigationItem.js\";\nimport type SideNavigationSubItem from \"./SideNavigationSubItem.js\";\nimport type SideNavigationGroup from \"./SideNavigationGroup.js\";\nimport SideNavigationTemplate from \"./SideNavigationTemplate.js\";\n\nimport {\n\tSIDE_NAVIGATION_POPOVER_HIDDEN_TEXT,\n\tSIDE_NAVIGATION_COLLAPSED_LIST_ARIA_ROLE_DESC,\n\tSIDE_NAVIGATION_LIST_ARIA_ROLE_DESC,\n\tSIDE_NAVIGATION_OVERFLOW_ACCESSIBLE_NAME,\n\tSIDE_NAVIGATION_FLEXIBLE_LIST_LABEL,\n\tSIDE_NAVIGATION_FIXED_LIST_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport SideNavigationCss from \"./generated/themes/SideNavigation.css.js\";\nimport SideNavigationPopoverCss from \"./generated/themes/SideNavigationPopover.css.js\";\n\nconst PAGE_UP_DOWN_SIZE = 10;\nconst SCREEN_WIDTH_BREAKPOINT = 600;\n\ntype SideNavigationPopoverContents = {\n\titem: SideNavigationItem,\n\tsubItems: Array<SideNavigationSubItem>,\n};\n\ntype SideNavigationSelectionChangeEventDetail = {\n\titem: SideNavigationItemBase,\n};\n\ntype SideNavigationItemClickEventDetail = {\n\titem: SideNavigationSelectableItemBase,\n};\n\ntype PopupSideNavigationItem = SideNavigationItem & { associatedItem: SideNavigationSelectableItemBase };\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `SideNavigation` is used as a standard menu in applications.\n * It consists of three containers: header (top-aligned), main navigation section (top-aligned) and the secondary section (bottom-aligned).\n *\n * - The header is meant for displaying user related information - profile data, avatar, etc.\n * - The main navigation section is related to the user's current work context.\n * - The secondary section is mostly used to link additional information that may be of interest (legal information, developer communities, external help, contact information and so on).\n *\n * ### Usage\n *\n * Use the available `ui5-side-navigation-group`, `ui5-side-navigation-item`\n * and `ui5-side-navigation-sub-item` components to build your menu.\n * The items can consist of text only or an icon with text. The use or non-use of icons must be consistent for all items on one level.\n * You must not combine entries with and without icons on the same level. We strongly recommend that you do not use icons on the second level.\n *\n * The `ui5-side-navigation` component is designed to be used within a `ui5-navigation-layout` component to ensure an optimal user experience.\n *\n * Using it standalone may not match the intended design and functionality.\n * For example, the side navigation may not exhibit the correct behavior on smaller screens.\n * Additionally, the padding of the `ui5-shellbar` will not match the padding of the side navigation.\n *\n * ### Keyboard Handling\n *\n * ### Fast Navigation\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/SideNavigation.js\"`\n *\n * `import \"@ui5/webcomponents-fiori/dist/SideNavigationGroup.js\";` (for `ui5-side-navigation-group`)\n *\n * `import \"@ui5/webcomponents-fiori/dist/SideNavigationItem.js\";` (for `ui5-side-navigation-item`)\n *\n * `import \"@ui5/webcomponents-fiori/dist/SideNavigationSubItem.js\";` (for `ui5-side-navigation-sub-item`)\n * @constructor\n * @extends UI5Element\n * @since 1.0.0-rc.8\n * @public\n */\n\n@customElement({\n\ttag: \"ui5-side-navigation\",\n\tfastNavigation: true,\n\trenderer: jsxRender,\n\ttemplate: SideNavigationTemplate,\n\tstyles: [SideNavigationCss, SideNavigationPopoverCss],\n})\n\n/**\n * Fired when the selection has changed via user interaction.\n *\n * @param {SideNavigationSelectableItemBase} item The selected item.\n * @public\n */\n@event(\"selection-change\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired when an item is clicked.\n *\n * @param {SideNavigationSelectableItemBase} item The clicked item.\n * @since 2.20.0\n * @public\n */\n@event(\"item-click\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\nclass SideNavigation extends UI5Element {\n\teventDetails!: {\n\t\t\"selection-change\": SideNavigationSelectionChangeEventDetail,\n\t\t\"item-click\": SideNavigationItemClickEventDetail\n\t}\n\n\t/**\n\t * Defines whether the `ui5-side-navigation` is expanded or collapsed.\n\t *\n\t * **Note:** On small screens (screen width of 599px or less) the collapsed mode is not supported, and in\n\t * expanded mode the side navigation will take the whole width of the screen.\n\t * The `ui5-side-navigation` component is intended to be used within a `ui5-navigation-layout`\n\t * component to ensure proper responsive behavior. If you choose not to use the\n\t * `ui5-navigation-layout`, you will need to implement the appropriate responsive patterns yourself,\n\t * particularly for smaller screens where the collapsed mode should not be used.\n\t *\n\t * @public\n\t * @default false\n\t */\n\t@property({ type: Boolean })\n\tcollapsed = false;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.9.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the main items of the component.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n\titems!: DefaultSlot<SideNavigationItemBase>;\n\n\t/**\n\t * Defines the fixed items at the bottom of the component.\n\t *\n\t * **Note:** In order to achieve the best user experience, it is recommended that you keep the fixed items \"flat\" (do not pass sub-items)\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true })\n\tfixedItems!: Slot<SideNavigationItemBase>;\n\n\t/**\n\t * Defines the header of the `ui5-side-navigation`.\n\t *\n\t * **Note:** The header is displayed when the component is expanded - the property `collapsed` is false;\n\t *\n\t * @public\n\t * @since 1.0.0-rc.11\n\t */\n\t@slot()\n\theader!: Slot<HTMLElement>;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_popoverContents!: SideNavigationPopoverContents;\n\n\t@property({ type: Boolean })\n\tinPopover = false;\n\n\t@property({ type: Object })\n\t_menuPopoverItems: Array<SideNavigationItem> = [];\n\n\t_isOverflow = false;\n\t_flexibleItemNavigation: ItemNavigation;\n\t_fixedItemNavigation: ItemNavigation;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._flexibleItemNavigation = new ItemNavigation(this, {\n\t\t\tskipItemsSize: PAGE_UP_DOWN_SIZE, // PAGE_UP and PAGE_DOWN will skip trough 10 items\n\t\t\tnavigationMode: NavigationMode.Vertical,\n\t\t\tgetItemsCallback: () => this.getEnabledFlexibleItems(),\n\t\t});\n\n\t\tthis._fixedItemNavigation = new ItemNavigation(this, {\n\t\t\tskipItemsSize: PAGE_UP_DOWN_SIZE, // PAGE_UP and PAGE_DOWN will skip trough 10 items\n\t\t\tnavigationMode: NavigationMode.Vertical,\n\t\t\tgetItemsCallback: () => this.getEnabledFixedItems(),\n\t\t});\n\n\t\tthis._handleResizeBound = this.handleResize.bind(this);\n\t\tthis._isOverflow = false;\n\t}\n\n\t_handleResizeBound: () => void;\n\t_fnTransitionEnd?: (event: TransitionEvent) => void;\n\t_animationTimeoutId?: ReturnType<typeof setTimeout>;\n\t_bAnimating = false;\n\n\tonInvalidation(changeInfo: ChangeInfo) {\n\t\tif (changeInfo.type === \"property\" && changeInfo.name === \"collapsed\") {\n\t\t\tif (this.getDomRef()) {\n\t\t\t\tthis._bAnimating = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\n\t\tthis._getAllItems(this.items)\n\t\t\t.concat(this._getAllItems(this.fixedItems))\n\t\t\t.forEach(item => {\n\t\t\t\titem.sideNavCollapsed = this.collapsed;\n\t\t\t\titem.inPopover = this.inPopover;\n\t\t\t\titem.sideNavigation = this;\n\t\t\t\titem.sideNavAnimating = this._bAnimating;\n\t\t\t});\n\n\t\tthis.initGroupsSettings(this.items);\n\t\tthis.initGroupsSettings(this.fixedItems);\n\t}\n\n\tinitGroupsSettings(items: Array<SideNavigationItemBase>) {\n\t\tlet isPreviousItemGroup = false;\n\n\t\titems.forEach(item => {\n\t\t\tconst isGroup = isInstanceOfSideNavigationGroup(item);\n\n\t\t\tif (isGroup) {\n\t\t\t\titem.belowGroup = isPreviousItemGroup;\n\t\t\t}\n\n\t\t\tisPreviousItemGroup = isGroup;\n\t\t});\n\t}\n\n\t_onAfterPopoverOpen() {\n\t\t// as the tree/list inside the popover is never destroyed,\n\t\t// item navigation index should be managed, because items are\n\t\t// dynamically recreated and tabIndexes are not updated\n\t\tconst tree = this.getPickerTree();\n\t\tconst selectedItem = tree._findSelectedItem(tree.items);\n\t\tif (selectedItem) {\n\t\t\tselectedItem.focus();\n\t\t} else {\n\t\t\ttree.items[0]?.applyInitialFocusInPopover();\n\t\t}\n\t}\n\n\t_onBeforePopoverOpen() {\n\t\tconst popover = this.getPicker();\n\t\t(popover?.opener as HTMLElement)?.classList.add(\"ui5-sn-item-active\");\n\t}\n\n\t_onBeforePopoverClose() {\n\t\tconst popover = this.getPicker();\n\t\t(popover?.opener as HTMLElement)?.classList.remove(\"ui5-sn-item-active\");\n\t}\n\n\t_onBeforeMenuOpen() {\n\t\tconst popover = this.getOverflowPopover();\n\t\tpopover._popover.preventFocusRestore = false;\n\t\t(popover?.opener as HTMLElement)?.classList.add(\"ui5-sn-item-active\");\n\t}\n\n\t_onBeforeMenuClose() {\n\t\tconst popover = this.getOverflowPopover();\n\t\t(popover?.opener as HTMLElement)?.classList.remove(\"ui5-sn-item-active\");\n\t}\n\n\t_bn?: SideNavigationSelectableItemBase;\n\n\t_onMenuClose() {\n\t\tconst menu = this.getOverflowPopover();\n\t\tif (!menu._popover.preventFocusRestore) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst selectedItem = this._findSelectedItem(this.items);\n\n\t\tif (selectedItem) {\n\t\t\tthis.focusItem(selectedItem);\n\t\t\tselectedItem.focus();\n\t\t}\n\t}\n\n\tget accSideNavigationPopoverHiddenText() {\n\t\treturn SideNavigation.i18nBundle.getText(SIDE_NAVIGATION_POPOVER_HIDDEN_TEXT);\n\t}\n\n\tget ariaRoleDescNavigationList() {\n\t\tlet key = SIDE_NAVIGATION_LIST_ARIA_ROLE_DESC;\n\t\tif (this.collapsed) {\n\t\t\tkey = SIDE_NAVIGATION_COLLAPSED_LIST_ARIA_ROLE_DESC;\n\t\t}\n\n\t\treturn SideNavigation.i18nBundle.getText(key);\n\t}\n\n\tget navigationMenuPrimaryHiddenText() {\n\t\treturn SideNavigation.i18nBundle.getText(SIDE_NAVIGATION_FLEXIBLE_LIST_LABEL);\n\t}\n\n\tget navigationMenuFooterHiddenText() {\n\t\treturn SideNavigation.i18nBundle.getText(SIDE_NAVIGATION_FIXED_LIST_LABEL);\n\t}\n\n\tget overflowAccessibleName() {\n\t\treturn SideNavigation.i18nBundle.getText(SIDE_NAVIGATION_OVERFLOW_ACCESSIBLE_NAME);\n\t}\n\n\tget _effectiveCollapsed() {\n\t\treturn this.collapsed && !this._isSmallScreen();\n\t}\n\n\thandlePopupItemClick(e: KeyboardEvent | PointerEvent) {\n\t\tconst associatedItem = (e.target as PopupSideNavigationItem).associatedItem;\n\n\t\tif (associatedItem.effectiveDisabled) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isInstanceOfSideNavigationItem(associatedItem) && associatedItem.unselectable) {\n\t\t\treturn;\n\t\t}\n\n\t\te.stopPropagation();\n\n\t\tconst altKey = (e.detail as any)?.altKey,\n\t\t\tctrlKey = (e.detail as any)?.ctrlKey,\n\t\t\tmetaKey = (e.detail as any)?.metaKey,\n\t\t\tshiftKey = (e.detail as any)?.shiftKey;\n\n\t\tconst executeEvent = associatedItem.fireDecoratorEvent(\"click\", {\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t});\n\n\t\tif (!executeEvent) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (associatedItem.selected) {\n\t\t\tthis.closePicker();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._selectItem(associatedItem);\n\n\t\tthis.closePicker();\n\t\tthis._popoverContents.item?.getDomRef()!.classList.add(\"ui5-sn-item-no-hover-effect\");\n\t}\n\n\tgetOverflowPopover() {\n\t\treturn this.shadowRoot!.querySelector<NavigationMenu>(\".ui5-side-navigation-overflow-menu\")!;\n\t}\n\n\tgetPicker() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\topenPicker(opener: HTMLElement) {\n\t\topener.classList.add(\"ui5-sn-item-active\");\n\n\t\tconst responsivePopover = this.getPicker();\n\t\tresponsivePopover.opener = opener;\n\t\tresponsivePopover.open = true;\n\t}\n\n\topenOverflowMenu(opener: HTMLElement) {\n\t\topener.classList.add(\"ui5-sn-item-active\");\n\n\t\tconst menu = this.getOverflowPopover();\n\t\tmenu.opener = opener;\n\t\tmenu.open = true;\n\t}\n\n\tclosePicker() {\n\t\tconst responsivePopover = this.getPicker();\n\t\tresponsivePopover.open = false;\n\t}\n\n\tcloseMenu(preventFocusRestore: boolean = false) {\n\t\tconst menu = this.getOverflowPopover();\n\t\tmenu._popover.preventFocusRestore = preventFocusRestore;\n\t\tmenu.open = false;\n\t}\n\n\tgetPickerTree() {\n\t\tconst picker = this.getPicker();\n\t\treturn picker.querySelector<SideNavigation>(\"[ui5-side-navigation]\")!;\n\t}\n\n\tget hasHeader() {\n\t\treturn !!this.header.length;\n\t}\n\n\tget showHeader() {\n\t\treturn this.hasHeader && !this.collapsed;\n\t}\n\n\tget hasFixedItems() {\n\t\treturn !!this.fixedItems.length;\n\t}\n\n\tget _rootRole() {\n\t\treturn this.inPopover ? \"none\" : undefined;\n\t}\n\n\tgetEnabledFixedItems(): Array<ITabbable> {\n\t\treturn this.getEnabledItems(this.fixedItems);\n\t}\n\n\tgetEnabledFlexibleItems(): Array<ITabbable> {\n\t\tconst items = this.getEnabledItems(this.items);\n\n\t\tif (this._overflowItem) {\n\t\t\titems.push(this._overflowItem);\n\t\t}\n\n\t\treturn items;\n\t}\n\n\tgetEnabledItems(items: Array<SideNavigationItemBase>): Array<ITabbable> {\n\t\tconst result = new Array<ITabbable>();\n\n\t\tthis._getFocusableItems(items).forEach(item => {\n\t\t\tif (this.collapsed && item.classList.contains(\"ui5-sn-item-hidden\")) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresult.push(item);\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tfocusItem(item: SideNavigationItemBase) {\n\t\tif (item.isFixedItem) {\n\t\t\tthis._fixedItemNavigation.setCurrentItem(item);\n\t\t} else {\n\t\t\tthis._flexibleItemNavigation.setCurrentItem(item);\n\t\t}\n\t}\n\n\tonAfterRendering() {\n\t\tif (!this.getDomRef()?.matches(\":focus-within\")) {\n\t\t\tlet selectedItem = this._findSelectedItem(this.items);\n\t\t\tif (selectedItem) {\n\t\t\t\tthis._flexibleItemNavigation.setCurrentItem(selectedItem);\n\t\t\t}\n\n\t\t\tselectedItem = this._findSelectedItem(this.fixedItems);\n\t\t\tif (selectedItem) {\n\t\t\t\tthis._fixedItemNavigation.setCurrentItem(selectedItem);\n\t\t\t}\n\t\t}\n\n\t\tif (this.collapsed) {\n\t\t\tthis.handleResize();\n\t\t}\n\n\t\tthis._handleExpandCollapseAnimation();\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._handleResizeBound);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._handleResizeBound);\n\t\tif (this._fnTransitionEnd) {\n\t\t\tthis.removeEventListener(\"transitionend\", this._fnTransitionEnd);\n\t\t\tthis._fnTransitionEnd = undefined;\n\t\t}\n\t\tif (this._animationTimeoutId) {\n\t\t\tclearTimeout(this._animationTimeoutId);\n\t\t\tthis._animationTimeoutId = undefined;\n\t\t}\n\t\tthis._bAnimating = false;\n\t}\n\n\thandleResize() {\n\t\t// In smaller screen the side navigation hidden when collapsed and there is no overflow items\n\t\tif (window.innerWidth > SCREEN_WIDTH_BREAKPOINT) {\n\t\t\tthis._updateOverflowItems();\n\t\t}\n\t}\n\n\t_updateOverflowItems() {\n\t\tconst domRef = this.getDomRef();\n\t\tif (!this.collapsed || !domRef) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst overflowItem = this._overflowItem!;\n\t\tconst flexibleContentDomRef: HTMLElement = domRef.querySelector(\".ui5-sn-flexible\")!;\n\t\tif (!overflowItem) {\n\t\t\treturn null;\n\t\t}\n\n\t\toverflowItem.classList.add(\"ui5-sn-item-hidden\");\n\n\t\tconst overflowItems = this.overflowItems;\n\n\t\tlet itemsHeight = overflowItems.reduce<number>((sum, itemRef) => {\n\t\t\tif (!itemRef) {\n\t\t\t\treturn sum;\n\t\t\t}\n\t\t\titemRef.classList.remove(\"ui5-sn-item-hidden\");\n\t\t\treturn sum + itemRef.offsetHeight;\n\t\t}, 0);\n\n\t\tconst { paddingTop, paddingBottom } = window.getComputedStyle(flexibleContentDomRef);\n\t\tconst listHeight = flexibleContentDomRef?.offsetHeight - parseInt(paddingTop) - parseInt(paddingBottom);\n\n\t\tif (itemsHeight <= listHeight) {\n\t\t\treturn;\n\t\t}\n\n\t\toverflowItem.classList.remove(\"ui5-sn-item-hidden\");\n\n\t\titemsHeight = overflowItem.offsetHeight;\n\n\t\tconst selectedItem = overflowItems.filter(isInstanceOfSideNavigationSelectableItemBase).find(item => item._selected);\n\n\t\tif (selectedItem) {\n\t\t\tconst selectedItemDomRef = selectedItem.getDomRef();\n\n\t\t\tif (selectedItemDomRef) {\n\t\t\t\tconst { marginTop, marginBottom } = window.getComputedStyle(selectedItemDomRef);\n\t\t\t\titemsHeight += selectedItemDomRef.offsetHeight + parseFloat(marginTop) + parseFloat(marginBottom);\n\t\t\t}\n\t\t}\n\n\t\toverflowItems.forEach(item => {\n\t\t\tif (!item || item === selectedItem) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet itemDomRef;\n\n\t\t\tif (isInstanceOfSideNavigationItemBase(item) && item.getDomRef()) {\n\t\t\t\titemDomRef = item.getDomRef();\n\t\t\t} else {\n\t\t\t\titemDomRef = item;\n\t\t\t}\n\n\t\t\tif (itemDomRef) {\n\t\t\t\tconst { marginTop, marginBottom } = window.getComputedStyle(itemDomRef);\n\t\t\t\titemsHeight += itemDomRef.offsetHeight + parseFloat(marginTop) + parseFloat(marginBottom);\n\n\t\t\t\tif (itemsHeight > listHeight) {\n\t\t\t\t\titem.classList.add(\"ui5-sn-item-hidden\");\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._flexibleItemNavigation._init();\n\t}\n\n\t_findFocusedItem(items: Array<SideNavigationItemBase>): SideNavigationItemBase | undefined {\n\t\treturn this._getFocusableItems(items).find(item => item.forcedTabIndex === \"0\");\n\t}\n\n\t_getSelectableItems(items: Array<SideNavigationItemBase>): Array<SideNavigationSelectableItemBase> {\n\t\treturn items.filter(instanceOfItemOrGroup).reduce((result, item) => {\n\t\t\treturn result.concat(item.selectableItems);\n\t\t}, new Array<SideNavigationSelectableItemBase>());\n\t}\n\n\t_getFocusableItems(items: Array<SideNavigationItemBase>): Array<SideNavigationItemBase> {\n\t\treturn items.filter(instanceOfItemOrGroup).reduce((result, item) => {\n\t\t\treturn result.concat(item.focusableItems);\n\t\t}, new Array<SideNavigationItemBase>());\n\t}\n\n\t_getAllItems(items: Array<SideNavigationItemBase>): Array<SideNavigationItemBase> {\n\t\treturn items.filter(instanceOfItemOrGroup).reduce((result, item) => {\n\t\t\treturn result.concat(item.allItems);\n\t\t}, new Array<SideNavigationItemBase>());\n\t}\n\n\t_findSelectedItem(items: Array<SideNavigationItemBase>): SideNavigationSelectableItemBase | undefined {\n\t\treturn this._getSelectableItems(items).find(item => item._selected);\n\t}\n\n\tget overflowItems(): Array<HTMLElement> {\n\t\treturn this.items.filter(instanceOfItemOrGroup).reduce((result, item) => {\n\t\t\treturn result.concat(item.overflowItems);\n\t\t}, new Array<HTMLElement>());\n\t}\n\n\tprivate _isSmallScreen(): boolean {\n\t\treturn isPhone() || window.innerWidth < SCREEN_WIDTH_BREAKPOINT;\n\t}\n\n\t_handleExpandCollapseAnimation() {\n\t\tif (!this._bAnimating) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst oDomRef = this.getDomRef();\n\t\tif (!oDomRef) {\n\t\t\treturn;\n\t\t}\n\n\t\toDomRef.classList.add(\"ui5-sn-animating\");\n\n\t\tif (this._fnTransitionEnd) {\n\t\t\tthis.removeEventListener(\"transitionend\", this._fnTransitionEnd);\n\t\t}\n\n\t\tif (this._animationTimeoutId) {\n\t\t\tclearTimeout(this._animationTimeoutId);\n\t\t}\n\n\t\tconst cleanupAnimation = () => {\n\t\t\toDomRef.classList.remove(\"ui5-sn-animating\");\n\t\t\tif (this._fnTransitionEnd) {\n\t\t\t\tthis.removeEventListener(\"transitionend\", this._fnTransitionEnd);\n\t\t\t\tthis._fnTransitionEnd = undefined;\n\t\t\t}\n\t\t\tif (this._animationTimeoutId) {\n\t\t\t\tclearTimeout(this._animationTimeoutId);\n\t\t\t\tthis._animationTimeoutId = undefined;\n\t\t\t}\n\t\t\tthis._bAnimating = false;\n\n\t\t\tthis._getAllItems(this.items)\n\t\t\t\t.concat(this._getAllItems(this.fixedItems))\n\t\t\t\t.forEach(item => {\n\t\t\t\t\titem.sideNavAnimating = false;\n\t\t\t\t});\n\t\t};\n\n\t\tthis._fnTransitionEnd = (oEvent: TransitionEvent) => {\n\t\t\tif (oEvent.propertyName !== \"width\" && oEvent.propertyName !== \"min-width\") {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcleanupAnimation();\n\t\t};\n\n\t\tthis.addEventListener(\"transitionend\", this._fnTransitionEnd);\n\n\t\t// Fallback timeout in case transitionend doesn't fire\n\t\tthis._animationTimeoutId = setTimeout(() => {\n\t\t\tcleanupAnimation();\n\t\t}, 500);\n\t}\n\n\t_handleItemClick(e: KeyboardEvent | MouseEvent, item: SideNavigationSelectableItemBase) {\n\t\tthis.fireDecoratorEvent(\"item-click\", { item });\n\n\t\tif (item.effectiveDisabled) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (item.selected && !this.collapsed) {\n\t\t\tconst {\n\t\t\t\taltKey,\n\t\t\t\tctrlKey,\n\t\t\t\tmetaKey,\n\t\t\t\tshiftKey,\n\t\t\t} = e;\n\n\t\t\tconst executeEvent = item.fireDecoratorEvent(\"click\", {\n\t\t\t\taltKey,\n\t\t\t\tctrlKey,\n\t\t\t\tmetaKey,\n\t\t\t\tshiftKey,\n\t\t\t});\n\n\t\t\tif (!executeEvent) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._effectiveCollapsed && isInstanceOfSideNavigationItem(item) && item.items.length) {\n\t\t\te.preventDefault();\n\t\t\tthis._isOverflow = false;\n\n\t\t\tthis._popoverContents = {\n\t\t\t\titem,\n\t\t\t\tsubItems: item.items,\n\t\t\t};\n\n\t\t\tthis.openPicker(item.getFocusDomRef() as HTMLElement);\n\t\t} else {\n\t\t\tconst {\n\t\t\t\taltKey,\n\t\t\t\tctrlKey,\n\t\t\t\tmetaKey,\n\t\t\t\tshiftKey,\n\t\t\t} = e;\n\n\t\t\tconst executeEvent = item.fireDecoratorEvent(\"click\", {\n\t\t\t\taltKey,\n\t\t\t\tctrlKey,\n\t\t\t\tmetaKey,\n\t\t\t\tshiftKey,\n\t\t\t});\n\n\t\t\tif (!executeEvent) {\n\t\t\t\te.preventDefault();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!item.selected) {\n\t\t\t\tthis._selectItem(item);\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleOverflowClick() {\n\t\tthis._isOverflow = true;\n\t\tthis._menuPopoverItems = this._getOverflowItems();\n\n\t\tthis.openOverflowMenu(this._overflowItem!);\n\t}\n\n\t_getOverflowItems(): Array<SideNavigationItem> {\n\t\tconst overflowClass = \"ui5-sn-item-hidden\";\n\t\tconst result: Array<SideNavigationItem> = [];\n\n\t\tthis.overflowItems.forEach(item => {\n\t\t\tif (item && isInstanceOfSideNavigationItem(item) && item.classList.contains(overflowClass)) {\n\t\t\t\tresult.push(item);\n\t\t\t}\n\t\t});\n\n\t\treturn result;\n\t}\n\n\t_selectItem(item: SideNavigationSelectableItemBase) {\n\t\tif (!item.isSelectable) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.fireDecoratorEvent(\"selection-change\", { item })) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet items = this._getSelectableItems(this.items);\n\t\titems = items.concat(this._getSelectableItems(this.fixedItems));\n\n\t\titems.forEach(current => {\n\t\t\tcurrent.selected = false;\n\t\t});\n\n\t\titem.selected = true;\n\t}\n\n\tget _overflowItem() {\n\t\tconst overflowItem = this.shadowRoot!.querySelector<SideNavigationItem>(\".ui5-sn-item-overflow\");\n\t\tif (overflowItem) {\n\t\t\toverflowItem.sideNavigation = this;\n\t\t}\n\n\t\treturn overflowItem;\n\t}\n\n\tget isOverflow() {\n\t\treturn this._isOverflow;\n\t}\n\n\tget isSideNavigation() {\n\t\treturn true;\n\t}\n\n\tcaptureRef(ref: HTMLElement & { associatedItem?: UI5Element } | null) {\n\t\tif (!ref) {\n\t\t\treturn;\n\t\t}\n\n\t\tref.associatedItem = this;\n\n\t\tconst item = this as unknown as SideNavigationItem | SideNavigationSubItem;\n\t\tif (item.tag?.length > 0) {\n\t\t\tconst existingTags = Array.from(ref.children).filter(child => child.getAttribute(\"slot\") === \"tag\");\n\t\t\texistingTags.forEach(tag => tag.remove());\n\n\t\t\titem.tag.forEach((tagEl: HTMLElement) => {\n\t\t\t\tconst clonedTag = tagEl.cloneNode(true) as HTMLElement;\n\t\t\t\tclonedTag.setAttribute(\"slot\", \"tag\");\n\t\t\t\tref.appendChild(clonedTag);\n\t\t\t});\n\t\t}\n\t}\n}\n\nconst instanceOfItemOrGroup = createMultiInstanceChecker<SideNavigationItem | SideNavigationGroup>([\"isSideNavigationItem\", \"isSideNavigationGroup\"]);\n\nSideNavigation.define();\n\nexport const isInstanceOfSideNavigation = createInstanceChecker<SideNavigation>(\"isSideNavigation\");\nexport default SideNavigation;\n\nexport type {\n\tSideNavigationSelectionChangeEventDetail,\n\tSideNavigationItemClickEventDetail,\n};\n"]}
|
|
@@ -33,6 +33,7 @@ class SideNavigationItemBase extends UI5Element {
|
|
|
33
33
|
this.disabled = false;
|
|
34
34
|
this.forcedTabIndex = "-1";
|
|
35
35
|
this.sideNavCollapsed = false;
|
|
36
|
+
this.sideNavAnimating = false;
|
|
36
37
|
this.inPopover = false;
|
|
37
38
|
/**
|
|
38
39
|
* Defines if the item's group is disabled.
|
|
@@ -114,6 +115,9 @@ __decorate([
|
|
|
114
115
|
__decorate([
|
|
115
116
|
property({ type: Boolean })
|
|
116
117
|
], SideNavigationItemBase.prototype, "sideNavCollapsed", void 0);
|
|
118
|
+
__decorate([
|
|
119
|
+
property({ type: Boolean })
|
|
120
|
+
], SideNavigationItemBase.prototype, "sideNavAnimating", void 0);
|
|
117
121
|
__decorate([
|
|
118
122
|
property({ type: Boolean })
|
|
119
123
|
], SideNavigationItemBase.prototype, "inPopover", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SideNavigationItemBase.js","sourceRoot":"","sources":["../src/SideNavigationItemBase.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,EACN,SAAS,GACT,MAAM,wCAAwC,CAAC;AAGhD,OAAO,qBAAqB,MAAM,4DAA4D,CAAC;AAS/F;;;;;;;;;GASG;AACH,MAAM,sBAAuB,SAAQ,UAAU;IAA/C;;QAcC;;;;;;;;WAQG;QAEH,aAAQ,GAAG,KAAK,CAAC;QA0BjB,mBAAc,GAAG,IAAI,CAAC;QAGtB,qBAAgB,GAAG,KAAK,CAAC;QAGzB,cAAS,GAAG,KAAK,CAAC;QAIlB;;;;;WAKG;QAEH,mBAAc,GAAY,KAAK,CAAC;IAwEjC,CAAC;IAtEA,UAAU;QACT,IAAI,SAAS,EAAE,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAClC,CAAC;IACF,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC;IAClC,CAAC;IAED,IAAI,WAAW;QACd,OAAO,KAAK,CAAC;IACd,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED,IAAI,YAAY;QACf,MAAM,OAAO,GAAG,EAAE,CAAC;QAEnB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtF,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC;IAED,IAAI,cAAc,CAAC,cAAc;QAChC,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,IAAI,WAAW;QACd,IAAI,OAAO,GAAiB,IAAI,CAAC,CAAC,sBAAsB;QACxD,IAAI,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAE1C,OAAO,aAAa,EAAE,CAAC;YACtB,IAAI,aAAa,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBACvD,MAAM;YACP,CAAC;YAED,OAAO,GAAG,aAAa,CAAC;YACxB,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QACvC,CAAC;QAED,OAAO,OAAO,EAAE,IAAI,KAAK,YAAY,CAAC;IACvC,CAAC;IAED,IAAI,wBAAwB;QAC3B,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACH,0BAA0B;IAE1B,CAAC;CACD;
|
|
1
|
+
{"version":3,"file":"SideNavigationItemBase.js","sourceRoot":"","sources":["../src/SideNavigationItemBase.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport {\n\tisDesktop,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type SideNavigation from \"./SideNavigation.js\";\nimport createInstanceChecker from \"@ui5/webcomponents-base/dist/util/createInstanceChecker.js\";\n\ntype SideNavigationItemClickEventDetail = {\n\taltKey: boolean;\n\tctrlKey: boolean;\n\tmetaKey: boolean;\n\tshiftKey: boolean;\n}\n\n/**\n * @class\n * Base class for the items that are accepted by the `ui5-side-navigation` component.\n *\n * @constructor\n * @extends UI5Element\n * @abstract\n * @public\n * @since 1.19.0\n */\nclass SideNavigationItemBase extends UI5Element implements ITabbable {\n\teventDetails!: {\n\t\tclick: SideNavigationItemClickEventDetail\n\t}\n\n\t/**\n\t * Defines the text of the item.\n\t *\n\t * @public\n\t * @default undefined\n\t */\n\t@property()\n\ttext?: string;\n\n\t/**\n\t * Defines whether the component is disabled.\n\t * A disabled component can't be pressed or\n\t * focused, and it is not in the tab chain.\n\t *\n\t * @default false\n\t * @public\n\t * @since 1.19.0\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines the tooltip of the component.\n\t *\n\t * A tooltip attribute should be provided, in order to represent meaning/function,\n\t * when the component is collapsed (\"icon only\" design is visualized) or the item text is truncated.\n\t *\n\t * @default undefined\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@property()\n\ttooltip?: string;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t *\n\t * @default undefined\n\t * @public\n\t * @since 2.22.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t@property({ noAttribute: true })\n\tforcedTabIndex = \"-1\";\n\n\t@property({ type: Boolean })\n\tsideNavCollapsed = false;\n\n\t@property({ type: Boolean })\n\tsideNavAnimating = false;\n\n\t@property({ type: Boolean })\n\tinPopover = false;\n\n\t_sideNavigation!: SideNavigation;\n\n\t/**\n\t * Defines if the item's group is disabled.\n\t * @private\n\t * @default false\n\t * @since 2.10.0\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_groupDisabled: boolean = false;\n\n\tonEnterDOM() {\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tget _tooltip() {\n\t\treturn this.tooltip || undefined;\n\t}\n\n\tget hasSubItems() {\n\t\treturn false;\n\t}\n\n\tget effectiveDisabled() {\n\t\treturn this.disabled;\n\t}\n\n\tget classesArray() {\n\t\tconst classes = [];\n\n\t\tif (this.effectiveDisabled) {\n\t\t\tclasses.push(\"ui5-sn-item-disabled\");\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tget _classes() {\n\t\treturn this.classesArray.join(\" \");\n\t}\n\n\tget effectiveTabIndex() {\n\t\treturn this.forcedTabIndex !== undefined ? parseInt(this.forcedTabIndex) : undefined;\n\t}\n\n\tget sideNavigation() {\n\t\treturn this._sideNavigation;\n\t}\n\n\tset sideNavigation(sideNavigation) {\n\t\tthis._sideNavigation = sideNavigation;\n\t}\n\n\tget isFixedItem() {\n\t\tlet element : HTMLElement = this; // eslint-disable-line\n\t\tlet parentElement = element.parentElement;\n\n\t\twhile (parentElement) {\n\t\t\tif (parentElement.hasAttribute(\"ui5-side-navigation\")) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\telement = parentElement;\n\t\t\tparentElement = element.parentElement;\n\t\t}\n\n\t\treturn element?.slot === \"fixedItems\";\n\t}\n\n\tget isSideNavigationItemBase() {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tapplyInitialFocusInPopover() {\n\n\t}\n}\n\nexport default SideNavigationItemBase;\nexport type {\n\tSideNavigationItemClickEventDetail,\n};\nexport const isInstanceOfSideNavigationItemBase = createInstanceChecker<SideNavigationItemBase>(\"isSideNavigationItemBase\");\n"]}
|
|
@@ -46,10 +46,10 @@ class UserSettingsAccountView extends UserSettingsView {
|
|
|
46
46
|
this.fireDecoratorEvent("manage-account-click");
|
|
47
47
|
}
|
|
48
48
|
get _manageAccountButtonText() {
|
|
49
|
-
return UserSettingsAccountView_1.i18nBundle
|
|
49
|
+
return UserSettingsAccountView_1.i18nBundle?.getText(USER_SETTINGS_ACCOUNT_MANAGE_ACCOUNT_BUTTON_TXT);
|
|
50
50
|
}
|
|
51
51
|
get _editAvatarTooltip() {
|
|
52
|
-
return UserSettingsAccountView_1.i18nBundle
|
|
52
|
+
return UserSettingsAccountView_1.i18nBundle?.getText(USER_SETTINGS_ACCOUNT_EDIT_AVATAR_TXT);
|
|
53
53
|
}
|
|
54
54
|
get _account() {
|
|
55
55
|
return this?.account?.[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserSettingsAccountView.js","sourceRoot":"","sources":["../src/UserSettingsAccountView.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,+BAA+B,MAAM,sCAAsC,CAAC;AACnF,OAAO,EACN,aAAa,EAAE,UAAU,IAAI,IAAI,EAAE,WAAW,IAAI,KAAK,EAAE,QAAQ,GACjE,MAAM,4CAA4C,CAAC;AACpD,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAE/E,OAAO,kBAAkB,MAAM,4CAA4C,CAAC;AAC5E,OAAO,0BAA0B,MAAM,mDAAmD,CAAC;AAG3F,QAAQ;AACR,OAAO,EACN,qCAAqC,EACrC,+CAA+C,GAC/C,MAAM,mCAAmC,CAAC;AAC3C,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAgCnE,IAAM,uBAAuB;AAX7B;;;;;;;;;;GAUG;AACH,MAAM,uBAAwB,SAAQ,gBAAgB;IAAtD;;QAmBC;;;;;WAKG;QAEH,sBAAiB,GAAG,KAAK,CAAC;IA0B3B,CAAC;IArBA,sBAAsB,CAAC,CAAc;QACpC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;QAChD,CAAC;IACF,CAAC;IAED,yBAAyB;QACxB,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,wBAAwB;QAC3B,OAAO,yBAAuB,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"UserSettingsAccountView.js","sourceRoot":"","sources":["../src/UserSettingsAccountView.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,+BAA+B,MAAM,sCAAsC,CAAC;AACnF,OAAO,EACN,aAAa,EAAE,UAAU,IAAI,IAAI,EAAE,WAAW,IAAI,KAAK,EAAE,QAAQ,GACjE,MAAM,4CAA4C,CAAC;AACpD,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAE/E,OAAO,kBAAkB,MAAM,4CAA4C,CAAC;AAC5E,OAAO,0BAA0B,MAAM,mDAAmD,CAAC;AAG3F,QAAQ;AACR,OAAO,EACN,qCAAqC,EACrC,+CAA+C,GAC/C,MAAM,mCAAmC,CAAC;AAC3C,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAgCnE,IAAM,uBAAuB;AAX7B;;;;;;;;;;GAUG;AACH,MAAM,uBAAwB,SAAQ,gBAAgB;IAAtD;;QAmBC;;;;;WAKG;QAEH,sBAAiB,GAAG,KAAK,CAAC;IA0B3B,CAAC;IArBA,sBAAsB,CAAC,CAAc;QACpC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;QAChD,CAAC;IACF,CAAC;IAED,yBAAyB;QACxB,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,wBAAwB;QAC3B,OAAO,yBAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,+CAA+C,CAAC,CAAC;IACrG,CAAC;IAED,IAAI,kBAAkB;QACrB,OAAO,yBAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,qCAAqC,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;CACD,CAAA;AAnCA;IAPC,IAAI,CAAC;QACL,IAAI,EAAE,WAAW;QACjB,uBAAuB,EAAE;YACxB,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,KAAK;SACZ;KACD,CAAC;wDAC8B;AAShC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kEACF;AAGnB;IADN,IAAI,CAAC,0BAA0B,CAAC;iDACH;AA7BzB,uBAAuB;IA7B5B,aAAa,CAAC;QACd,GAAG,EAAE,gCAAgC;QACrC,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,+BAA+B;QACzC,MAAM,EAAE,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;KACxD,CAAC;IACF;;;OAGG;;IACF,KAAK,CAAC,qBAAqB,CAAC;IAE7B;;;OAGG;;IACF,KAAK,CAAC,sBAAsB,CAAC;IAE9B;;;;;;;;;;OAUG;GACG,uBAAuB,CAoD5B;AAED,uBAAuB,CAAC,MAAM,EAAE,CAAC;AACjC,eAAe,uBAAuB,CAAC","sourcesContent":["import UserSettingsView from \"./UserSettingsView.js\";\nimport UserSettingsAccountViewTemplate from \"./UserSettingsAccountViewTemplate.js\";\nimport {\n\tcustomElement, slotStrict as slot, eventStrict as event, property,\n} from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport UserSettingViewCss from \"./generated/themes/UserSettingsView.css.js\";\nimport UserSettingsAccountViewCss from \"./generated/themes/UserSettingsAccountView.css.js\";\nimport type UserMenuAccount from \"./UserMenuAccount.js\";\n\n// Texts\nimport {\n\tUSER_SETTINGS_ACCOUNT_EDIT_AVATAR_TXT,\n\tUSER_SETTINGS_ACCOUNT_MANAGE_ACCOUNT_BUTTON_TXT,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type { Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\n@customElement({\n\ttag: \"ui5-user-settings-account-view\",\n\trenderer: jsxRenderer,\n\ttemplate: UserSettingsAccountViewTemplate,\n\tstyles: [UserSettingViewCss, UserSettingsAccountViewCss],\n})\n/**\n * Fired when the `Edit Accounts` button is selected.\n * @public\n */\n@event(\"edit-accounts-click\")\n\n/**\n * Fired when the `Manage Account` button is selected.\n * @public\n */\n@event(\"manage-account-click\")\n\n/**\n * @class\n * ### Overview\n *\n * The `ui5-user-settings-account-view` represents a view displayed in the `ui5-user-settings-item`.\n *\n * @constructor\n * @extends UserSettingsView\n * @public\n * @since 2.17.0\n */\nclass UserSettingsAccountView extends UserSettingsView {\n\teventDetails!: {\n\t\t\"edit-accounts-click\": void;\n\t\t\"manage-account-click\": void;\n\t}\n\t/**\n\t * Defines the user account.\n\t *\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: true,\n\t\t\tslots: false,\n\t\t},\n\t})\n\taccount!: Slot<UserMenuAccount>;\n\n\t/**\n\t * Defines if the User Menu shows the `Manage Account` option.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowManageAccount = false;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\t_handleEditAvatarClick(e: CustomEvent) {\n\t\tif (e.type === \"click\") {\n\t\t\tthis.fireDecoratorEvent(\"edit-accounts-click\");\n\t\t}\n\t}\n\n\t_handleManageAccountClick() {\n\t\tthis.fireDecoratorEvent(\"manage-account-click\");\n\t}\n\n\tget _manageAccountButtonText() {\n\t\treturn UserSettingsAccountView.i18nBundle?.getText(USER_SETTINGS_ACCOUNT_MANAGE_ACCOUNT_BUTTON_TXT);\n\t}\n\n\tget _editAvatarTooltip() {\n\t\treturn UserSettingsAccountView.i18nBundle?.getText(USER_SETTINGS_ACCOUNT_EDIT_AVATAR_TXT);\n\t}\n\n\tget _account() {\n\t\treturn this?.account?.[0];\n\t}\n}\n\nUserSettingsAccountView.define();\nexport default UserSettingsAccountView;\n"]}
|
|
@@ -8,6 +8,6 @@ export default function UserSettingsAppearanceViewItemTemplate() {
|
|
|
8
8
|
});
|
|
9
9
|
}
|
|
10
10
|
function listItemContent() {
|
|
11
|
-
return (_jsx("div", { class: "list-item", children: _jsxs("div", { class: "item-left", children: [_jsx(Avatar, {
|
|
11
|
+
return (_jsx("div", { class: "list-item", children: _jsxs("div", { class: "item-left", children: [_jsx(Avatar, { shape: "Square", icon: this.icon, "color-scheme": this.colorScheme, size: AvatarSize.S }), _jsx("div", { class: "item-texts", children: _jsx("span", { class: "item-title", children: this.text }) })] }) }));
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=UserSettingsAppearanceViewItemTemplate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserSettingsAppearanceViewItemTemplate.js","sourceRoot":"","sources":["../src/UserSettingsAppearanceViewItemTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,sBAAsB,MAAM,mDAAmD,CAAC;AACvF,OAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,OAAO,UAAU,MAAM,6CAA6C,CAAC;AAErE,MAAM,CAAC,OAAO,UAAU,sCAAsC;IAC7D,OAAO,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE;QACxC,eAAe,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;KAC3C,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe;IACvB,OAAO,CACN,cAAK,KAAK,EAAC,WAAW,YACrB,eAAK,KAAK,EAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"UserSettingsAppearanceViewItemTemplate.js","sourceRoot":"","sources":["../src/UserSettingsAppearanceViewItemTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,sBAAsB,MAAM,mDAAmD,CAAC;AACvF,OAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,OAAO,UAAU,MAAM,6CAA6C,CAAC;AAErE,MAAM,CAAC,OAAO,UAAU,sCAAsC;IAC7D,OAAO,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE;QACxC,eAAe,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;KAC3C,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe;IACvB,OAAO,CACN,cAAK,KAAK,EAAC,WAAW,YACrB,eAAK,KAAK,EAAC,WAAW,aACrB,KAAC,MAAM,IAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,kBAAgB,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,GAAW,EACrG,cAAK,KAAK,EAAC,YAAY,YACtB,eAAM,KAAK,EAAC,YAAY,YAAE,IAAI,CAAC,IAAI,GAAQ,GACtC,IACD,GACD,CACN,CAAC;AACH,CAAC","sourcesContent":["import type UserSettingsAppearanceViewItem from \"./UserSettingsAppearanceViewItem.js\";\nimport ListItemCustomTemplate from \"@ui5/webcomponents/dist/ListItemCustomTemplate.js\";\nimport Avatar from \"@ui5/webcomponents/dist/Avatar.js\";\nimport AvatarSize from \"@ui5/webcomponents/dist/types/AvatarSize.js\";\n\nexport default function UserSettingsAppearanceViewItemTemplate(this: UserSettingsAppearanceViewItem) {\n\treturn ListItemCustomTemplate.call(this, {\n\t\tlistItemContent: listItemContent.bind(this),\n\t});\n}\n\nfunction listItemContent(this: UserSettingsAppearanceViewItem) {\n\treturn (\n\t\t<div class=\"list-item\">\n\t\t\t<div class=\"item-left\">\n\t\t\t\t<Avatar shape=\"Square\" icon={this.icon} color-scheme={this.colorScheme} size={AvatarSize.S}></Avatar>\n\t\t\t\t<div class=\"item-texts\">\n\t\t\t\t\t<span class=\"item-title\">{this.text}</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
|
|
2
2
|
import List from "@ui5/webcomponents/dist/List.js";
|
|
3
|
-
import
|
|
3
|
+
import ListItemGroupHeader from "@ui5/webcomponents/dist/ListItemGroupHeader.js";
|
|
4
4
|
export default function UserSettingsAppearanceViewTemplate() {
|
|
5
|
-
return (_jsx("div", { class: "ui5-user-settings-view-container", children: _jsxs("div", { class: "ui5-user-settings-view", children: [_jsx("slot", { name: "additionalContent" }), _jsxs(List, { class: "user-settings-appearance-view-list", onItemClick: this._handleItemClick, "data-sap-ui-fastnavgroup": "false", children: [this.text && _jsx(
|
|
5
|
+
return (_jsx("div", { class: "ui5-user-settings-view-container", children: _jsxs("div", { class: "ui5-user-settings-view", children: [_jsx("slot", { name: "additionalContent" }), _jsxs(List, { class: "user-settings-appearance-view-list", onItemClick: this._handleItemClick, "data-sap-ui-fastnavgroup": "false", children: [this.text && _jsx(ListItemGroupHeader, { class: "user-settings-appearance-view-top-header", children: this.text }), _jsx("slot", {})] })] }) }));
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=UserSettingsAppearanceViewTemplate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserSettingsAppearanceViewTemplate.js","sourceRoot":"","sources":["../src/UserSettingsAppearanceViewTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,
|
|
1
|
+
{"version":3,"file":"UserSettingsAppearanceViewTemplate.js","sourceRoot":"","sources":["../src/UserSettingsAppearanceViewTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,mBAAmB,MAAM,gDAAgD,CAAC;AAEjF,MAAM,CAAC,OAAO,UAAU,kCAAkC;IACzD,OAAO,CACN,cAAK,KAAK,EAAC,kCAAkC,YAC5C,eAAK,KAAK,EAAC,wBAAwB,aAClC,eAAM,IAAI,EAAC,mBAAmB,GAAQ,EACtC,MAAC,IAAI,IAAC,KAAK,EAAC,oCAAoC,EAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,8BAA2B,OAAO,aACnH,IAAI,CAAC,IAAI,IAAI,KAAC,mBAAmB,IAAC,KAAK,EAAC,0CAA0C,YAAE,IAAI,CAAC,IAAI,GAAuB,EACrH,gBAAa,IACP,IACF,GACD,CACN,CAAC;AACH,CAAC","sourcesContent":["import type UserSettingsAppearanceView from \"./UserSettingsAppearanceView.js\";\nimport List from \"@ui5/webcomponents/dist/List.js\";\nimport ListItemGroupHeader from \"@ui5/webcomponents/dist/ListItemGroupHeader.js\";\n\nexport default function UserSettingsAppearanceViewTemplate(this: UserSettingsAppearanceView) {\n\treturn (\n\t\t<div class=\"ui5-user-settings-view-container\">\n\t\t\t<div class=\"ui5-user-settings-view\">\n\t\t\t\t<slot name=\"additionalContent\"></slot>\n\t\t\t\t<List class=\"user-settings-appearance-view-list\" onItemClick={this._handleItemClick} data-sap-ui-fastnavgroup=\"false\">\n\t\t\t\t\t{this.text && <ListItemGroupHeader class=\"user-settings-appearance-view-top-header\">{this.text}</ListItemGroupHeader>}\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</List>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -30,6 +30,8 @@ declare class UserSettingsDialog extends UI5Element {
|
|
|
30
30
|
"open": void;
|
|
31
31
|
"before-close": UserSettingsBeforeCloseEventDetail;
|
|
32
32
|
"close": void;
|
|
33
|
+
"save": void;
|
|
34
|
+
"cancel": void;
|
|
33
35
|
};
|
|
34
36
|
/**
|
|
35
37
|
* Defines, if the User Settings Dialog is opened.
|
|
@@ -53,6 +55,18 @@ declare class UserSettingsDialog extends UI5Element {
|
|
|
53
55
|
* @public
|
|
54
56
|
*/
|
|
55
57
|
showSearchField: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Defines whether the dialog offers Save and Cancel actions in its footer.
|
|
60
|
+
*
|
|
61
|
+
* When true, the footer renders a Save (Emphasized) and a Cancel button
|
|
62
|
+
* instead of the default Close button. Save and Cancel each fire a
|
|
63
|
+
* corresponding event; the application is responsible for closing the
|
|
64
|
+
* dialog (typically after persisting or discarding the changes).
|
|
65
|
+
*
|
|
66
|
+
* @default false
|
|
67
|
+
* @public
|
|
68
|
+
*/
|
|
69
|
+
saveMode: boolean;
|
|
56
70
|
/**
|
|
57
71
|
* Defines the user settings items.
|
|
58
72
|
*
|
|
@@ -105,10 +119,14 @@ declare class UserSettingsDialog extends UI5Element {
|
|
|
105
119
|
get accessibleNameText(): string;
|
|
106
120
|
get ariaRoleDescList(): string;
|
|
107
121
|
get closeButtonText(): string;
|
|
122
|
+
get saveButtonText(): string;
|
|
123
|
+
get cancelButtonText(): string;
|
|
108
124
|
get noSearchResultsText(): string;
|
|
109
125
|
get _selectedItemSlotName(): string | undefined;
|
|
110
126
|
get _showSettingWithNavigation(): boolean;
|
|
111
127
|
_handleCloseButtonClick(): void;
|
|
128
|
+
_handleSaveButtonClick(): void;
|
|
129
|
+
_handleCancelButtonClick(): void;
|
|
112
130
|
_handleCollapseClick(): void;
|
|
113
131
|
_handleInput(e: CustomEvent<InputEventDetail>): void;
|
|
114
132
|
captureRef(ref: HTMLElement & {
|
|
@@ -14,7 +14,7 @@ import MediaRange from "@ui5/webcomponents-base/dist/MediaRange.js";
|
|
|
14
14
|
import UserSettingsDialogTemplate from "./UserSettingsDialogTemplate.js";
|
|
15
15
|
import UserSettingsDialogCss from "./generated/themes/UserSettingsDialog.css.js";
|
|
16
16
|
// Texts
|
|
17
|
-
import { USER_SETTINGS_DIALOG_ACCESSIBLE_NAME, USER_SETTINGS_LIST_ARIA_ROLE_DESC, USER_SETTINGS_DIALOG_CLOSE_BUTTON_TEXT, USER_SETTINGS_DIALOG_NO_SEARCH_RESULTS_TEXT, } from "./generated/i18n/i18n-defaults.js";
|
|
17
|
+
import { USER_SETTINGS_DIALOG_ACCESSIBLE_NAME, USER_SETTINGS_LIST_ARIA_ROLE_DESC, USER_SETTINGS_DIALOG_CLOSE_BUTTON_TEXT, USER_SETTINGS_DIALOG_SAVE_BUTTON_TEXT, USER_SETTINGS_DIALOG_CANCEL_BUTTON_TEXT, USER_SETTINGS_DIALOG_NO_SEARCH_RESULTS_TEXT, } from "./generated/i18n/i18n-defaults.js";
|
|
18
18
|
/**
|
|
19
19
|
* @class
|
|
20
20
|
* ### Overview
|
|
@@ -48,6 +48,18 @@ let UserSettingsDialog = UserSettingsDialog_1 = class UserSettingsDialog extends
|
|
|
48
48
|
* @public
|
|
49
49
|
*/
|
|
50
50
|
this.showSearchField = false;
|
|
51
|
+
/**
|
|
52
|
+
* Defines whether the dialog offers Save and Cancel actions in its footer.
|
|
53
|
+
*
|
|
54
|
+
* When true, the footer renders a Save (Emphasized) and a Cancel button
|
|
55
|
+
* instead of the default Close button. Save and Cancel each fire a
|
|
56
|
+
* corresponding event; the application is responsible for closing the
|
|
57
|
+
* dialog (typically after persisting or discarding the changes).
|
|
58
|
+
*
|
|
59
|
+
* @default false
|
|
60
|
+
* @public
|
|
61
|
+
*/
|
|
62
|
+
this.saveMode = false;
|
|
51
63
|
/**
|
|
52
64
|
* @private
|
|
53
65
|
*/
|
|
@@ -156,6 +168,12 @@ let UserSettingsDialog = UserSettingsDialog_1 = class UserSettingsDialog extends
|
|
|
156
168
|
get closeButtonText() {
|
|
157
169
|
return UserSettingsDialog_1.i18nBundle.getText(USER_SETTINGS_DIALOG_CLOSE_BUTTON_TEXT);
|
|
158
170
|
}
|
|
171
|
+
get saveButtonText() {
|
|
172
|
+
return UserSettingsDialog_1.i18nBundle.getText(USER_SETTINGS_DIALOG_SAVE_BUTTON_TEXT);
|
|
173
|
+
}
|
|
174
|
+
get cancelButtonText() {
|
|
175
|
+
return UserSettingsDialog_1.i18nBundle.getText(USER_SETTINGS_DIALOG_CANCEL_BUTTON_TEXT);
|
|
176
|
+
}
|
|
159
177
|
get noSearchResultsText() {
|
|
160
178
|
return UserSettingsDialog_1.i18nBundle.getText(USER_SETTINGS_DIALOG_NO_SEARCH_RESULTS_TEXT);
|
|
161
179
|
}
|
|
@@ -171,6 +189,12 @@ let UserSettingsDialog = UserSettingsDialog_1 = class UserSettingsDialog extends
|
|
|
171
189
|
this.open = false;
|
|
172
190
|
}
|
|
173
191
|
}
|
|
192
|
+
_handleSaveButtonClick() {
|
|
193
|
+
this.fireDecoratorEvent("save");
|
|
194
|
+
}
|
|
195
|
+
_handleCancelButtonClick() {
|
|
196
|
+
this.fireDecoratorEvent("cancel");
|
|
197
|
+
}
|
|
174
198
|
_handleCollapseClick() {
|
|
175
199
|
this._collapsed = false;
|
|
176
200
|
}
|
|
@@ -192,6 +216,9 @@ __decorate([
|
|
|
192
216
|
__decorate([
|
|
193
217
|
property({ type: Boolean })
|
|
194
218
|
], UserSettingsDialog.prototype, "showSearchField", void 0);
|
|
219
|
+
__decorate([
|
|
220
|
+
property({ type: Boolean })
|
|
221
|
+
], UserSettingsDialog.prototype, "saveMode", void 0);
|
|
195
222
|
__decorate([
|
|
196
223
|
slot({
|
|
197
224
|
"default": true,
|
|
@@ -248,13 +275,16 @@ UserSettingsDialog = UserSettingsDialog_1 = __decorate([
|
|
|
248
275
|
cancelable: true,
|
|
249
276
|
})
|
|
250
277
|
/**
|
|
251
|
-
* Fired when
|
|
278
|
+
* Fired when the settings dialog is opened.
|
|
252
279
|
* @public
|
|
253
280
|
*/
|
|
254
281
|
,
|
|
255
282
|
event("open")
|
|
256
283
|
/**
|
|
257
284
|
* Fired before the settings dialog is closed.
|
|
285
|
+
*
|
|
286
|
+
* **Note:** This event is cancelable via `preventDefault()`, allowing the application to keep the
|
|
287
|
+
* dialog open — for example, to prompt the user about unsaved changes before dismissal.
|
|
258
288
|
* @public
|
|
259
289
|
*/
|
|
260
290
|
,
|
|
@@ -262,11 +292,27 @@ UserSettingsDialog = UserSettingsDialog_1 = __decorate([
|
|
|
262
292
|
cancelable: true,
|
|
263
293
|
})
|
|
264
294
|
/**
|
|
265
|
-
* Fired when
|
|
295
|
+
* Fired when the settings dialog is closed.
|
|
266
296
|
* @public
|
|
267
297
|
*/
|
|
268
298
|
,
|
|
269
299
|
event("close")
|
|
300
|
+
/**
|
|
301
|
+
* Fired when the Save button in the footer is clicked.
|
|
302
|
+
* The dialog does not close automatically — the application is responsible
|
|
303
|
+
* for closing it after persisting the changes.
|
|
304
|
+
* @public
|
|
305
|
+
*/
|
|
306
|
+
,
|
|
307
|
+
event("save")
|
|
308
|
+
/**
|
|
309
|
+
* Fired when the Cancel button in the footer is clicked.
|
|
310
|
+
* The dialog does not close automatically — the application is responsible
|
|
311
|
+
* for closing it after discarding the changes.
|
|
312
|
+
* @public
|
|
313
|
+
*/
|
|
314
|
+
,
|
|
315
|
+
event("cancel")
|
|
270
316
|
], UserSettingsDialog);
|
|
271
317
|
UserSettingsDialog.define();
|
|
272
318
|
export default UserSettingsDialog;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserSettingsDialog.js","sourceRoot":"","sources":["../src/UserSettingsDialog.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport {\n\tcustomElement, property, slotStrict as slot, eventStrict as event,\n} from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type Input from \"@ui5/webcomponents/dist/Input.js\";\nimport type { InputEventDetail } from \"@ui5/webcomponents/dist/Input.js\";\nimport type { ListItemClickEventDetail } from \"@ui5/webcomponents/dist/List.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type ListItemBase from \"@ui5/webcomponents/dist/ListItemBase.js\";\nimport type { PopupBeforeCloseEventDetail } from \"@ui5/webcomponents/dist/Popup.js\";\nimport { isPhone, isTablet, isCombi } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport MediaRange from \"@ui5/webcomponents-base/dist/MediaRange.js\";\nimport UserSettingsDialogTemplate from \"./UserSettingsDialogTemplate.js\";\nimport type UserSettingsItem from \"./UserSettingsItem.js\";\nimport UserSettingsDialogCss from \"./generated/themes/UserSettingsDialog.css.js\";\n\n// Texts\nimport {\n\tUSER_SETTINGS_DIALOG_ACCESSIBLE_NAME,\n\tUSER_SETTINGS_LIST_ARIA_ROLE_DESC,\n\tUSER_SETTINGS_DIALOG_CLOSE_BUTTON_TEXT,\n\tUSER_SETTINGS_DIALOG_NO_SEARCH_RESULTS_TEXT,\n} from \"./generated/i18n/i18n-defaults.js\";\n\ntype UserSettingsItemSelectEventDetail = {\n\titem: UserSettingsItem;\n}\n\ntype UserSettingsBeforeCloseEventDetail = PopupBeforeCloseEventDetail;\n\n/**\n * @class\n * ### Overview\n *\n * The `ui5-user-settings-dialog` is an SAP Fiori-specific web component used in the `ui5-user-menu`.\n * It allows the user to easily view information and settings for an account.\n *\n * ### ES6 Module Import\n * `import \"@ui5/webcomponents-fiori/dist/UserSettingsDialog.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @public\n * @since 2.8.0\n */\n@customElement({\n\ttag: \"ui5-user-settings-dialog\",\n\trenderer: jsxRenderer,\n\ttemplate: UserSettingsDialogTemplate,\n\tstyles: [UserSettingsDialogCss],\n})\n\n/**\n * Fired when an item is selected.\n * @param {UserSettingsItem} item The selected `user settings item`.\n * @public\n */\n@event(\"selection-change\", {\n\tcancelable: true,\n})\n\n/**\n * Fired when a settings dialog is open.\n * @public\n */\n@event(\"open\")\n\n/**\n * Fired before the settings dialog is closed.\n * @public\n */\n@event(\"before-close\", {\n\tcancelable: true,\n})\n\n/**\n * Fired when a settings dialog is closed.\n * @public\n */\n@event(\"close\")\n\nclass UserSettingsDialog extends UI5Element {\n\teventDetails!: {\n\t\t\"selection-change\": UserSettingsItemSelectEventDetail,\n\t\t\"open\": void,\n\t\t\"before-close\": UserSettingsBeforeCloseEventDetail,\n\t\t\"close\": void,\n\t};\n\t/**\n\t * Defines, if the User Settings Dialog is opened.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t/**\n\t * Defines the headerText of the item.\n\t *\n\t * @public\n\t * @default undefined\n\t */\n\t@property({ type: String })\n\theaderText?: string;\n\n\t/**\n\t * Defines if the Search Field would be displayed.\n\t *\n\t * **Note:** By default the Search Field is not displayed.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowSearchField = false;\n\n\t/**\n\t * Defines the user settings items.\n\t *\n\t * **Note:** If no setting item is set as `selected`, the first one will be selected.\n\t * @public\n\t */\n\t@slot({\n\t\t\"default\": true,\n\t\ttype: HTMLElement,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: true,\n\t\t\tslots: true,\n\t\t},\n\t})\n\titems!: DefaultSlot<UserSettingsItem>;\n\n\t/**\n\t * Defines the fixed user settings items.\n\t *\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: true,\n\t\t\tslots: true,\n\t\t},\n\t})\n\tfixedItems!: Slot<UserSettingsItem>;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: String })\n\t_searchValue = \"\";\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_collapsed = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_selectedSetting?: UserSettingsItem;\n\n\t/**\n\t * @private\n\t */\n\t_filteredItems: Array<UserSettingsItem> = [];\n\n\t/**\n\t * @private\n\t */\n\t_filteredFixedItems: Array<UserSettingsItem> = [];\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_showNoSearchResult = false;\n\n\t/**\n\t * Defines the current media query size.\n\t * @private\n\t */\n\t@property({ type: String })\n\t_mediaRange?: any;\n\n\tonEnterDOM() {\n\t\tthis.setAttribute(\"data-sap-ui-fastnavgroup-container\", \"true\");\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._mediaRange = MediaRange.getCurrentRange(MediaRange.RANGESETS.RANGE_4STEPS);\n\t\tconst searchValue = this._searchValue.toLowerCase();\n\t\tthis._filteredItems = [];\n\t\tthis._filteredFixedItems = [];\n\t\tconst siblingsWithIcon = this.items.some(item => !!item.icon);\n\t\tthis.items.forEach(item => {\n\t\t\tif (item.text.toLowerCase().includes(searchValue)) {\n\t\t\t\tthis._filteredItems.push(item);\n\t\t\t}\n\n\t\t\tif (item.selected) {\n\t\t\t\tthis._selectedSetting = item;\n\t\t\t}\n\t\t\titem._siblingsWithIcon = siblingsWithIcon;\n\t\t});\n\n\t\tthis.fixedItems.forEach(item => {\n\t\t\tif (item.text.toLowerCase().includes(searchValue)) {\n\t\t\t\tthis._filteredFixedItems.push(item);\n\t\t\t}\n\n\t\t\tif (item.selected) {\n\t\t\t\tthis._selectedSetting = item;\n\t\t\t}\n\t\t});\n\n\t\tif (this._filteredItems.length === 0 && this._filteredFixedItems.length === 0) {\n\t\t\tthis._showNoSearchResult = true;\n\t\t} else {\n\t\t\tthis._showNoSearchResult = false;\n\t\t}\n\n\t\tif (!this._selectedSetting) {\n\t\t\tthis._selectedSetting = this.items[0] || this.fixedItems[0];\n\t\t}\n\n\t\tconst allItems = [...this.items, ...this.fixedItems];\n\t\tallItems.forEach(item => {\n\t\t\tif (item === this._selectedSetting) {\n\t\t\t\titem.setAttribute(\"data-sap-ui-fastnavgroup\", \"true\");\n\t\t\t} else {\n\t\t\t\titem.removeAttribute(\"data-sap-ui-fastnavgroup\");\n\t\t\t}\n\t\t});\n\t}\n\n\t_handleItemClick(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst setting = e.detail.item as ListItemBase & { associatedSettingItem: UserSettingsItem };\n\t\tconst settingItem = setting.associatedSettingItem;\n\t\tconst eventPrevented = !this.fireDecoratorEvent(\"selection-change\", {\n\t\t\titem: settingItem,\n\t\t});\n\t\tthis._collapsed = true;\n\n\t\tif (!eventPrevented) {\n\t\t\tthis.items.forEach(item => {\n\t\t\t\titem.selected = false;\n\t\t\t});\n\t\t\tthis.fixedItems.forEach(item => {\n\t\t\t\titem.selected = false;\n\t\t\t});\n\t\t\tsettingItem.selected = true;\n\t\t}\n\t}\n\n\t_handleDialogAfterOpen() {\n\t\tthis.fireDecoratorEvent(\"open\");\n\t}\n\n\t_handleDialogBeforeClose(e: CustomEvent<PopupBeforeCloseEventDetail>) {\n\t\tif (!e.detail.escPressed) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst eventPrevented = !this.fireDecoratorEvent(\"before-close\", e.detail);\n\n\t\tif (eventPrevented) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_handleDialogAfterClose() {\n\t\tthis.open = false;\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\tget accessibleNameText() {\n\t\treturn UserSettingsDialog.i18nBundle.getText(USER_SETTINGS_DIALOG_ACCESSIBLE_NAME);\n\t}\n\n\tget ariaRoleDescList() {\n\t\treturn UserSettingsDialog.i18nBundle.getText(USER_SETTINGS_LIST_ARIA_ROLE_DESC);\n\t}\n\n\tget closeButtonText() {\n\t\treturn UserSettingsDialog.i18nBundle.getText(USER_SETTINGS_DIALOG_CLOSE_BUTTON_TEXT);\n\t}\n\tget noSearchResultsText() {\n\t\treturn UserSettingsDialog.i18nBundle.getText(USER_SETTINGS_DIALOG_NO_SEARCH_RESULTS_TEXT);\n\t}\n\n\tget _selectedItemSlotName() {\n\t\treturn this._selectedSetting ? this._selectedSetting._individualSlot : \"\";\n\t}\n\n\tget _showSettingWithNavigation() {\n\t\treturn (isPhone() || (isTablet() && !isCombi())) || (this._mediaRange === \"S\" || this._mediaRange === \"M\");\n\t}\n\n\t_handleCloseButtonClick() {\n\t\tconst eventPrevented = !this.fireDecoratorEvent(\"before-close\", { escPressed: false });\n\n\t\tif (!eventPrevented) {\n\t\t\tthis.open = false;\n\t\t}\n\t}\n\n\t_handleCollapseClick() {\n\t\tthis._collapsed = false;\n\t}\n\n\t_handleInput(e: CustomEvent<InputEventDetail>) {\n\t\tthis._searchValue = (e.target as Input).value;\n\t}\n\n\tcaptureRef(ref: HTMLElement & { associatedSettingItem?: UI5Element} | null) {\n\t\tif (ref) {\n\t\t\tref.associatedSettingItem = this;\n\t\t}\n\t}\n}\n\nUserSettingsDialog.define();\n\nexport default UserSettingsDialog;\nexport type {\n\tUserSettingsItemSelectEventDetail,\n\tUserSettingsBeforeCloseEventDetail,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"UserSettingsDialog.js","sourceRoot":"","sources":["../src/UserSettingsDialog.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport {\n\tcustomElement, property, slotStrict as slot, eventStrict as event,\n} from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type Input from \"@ui5/webcomponents/dist/Input.js\";\nimport type { InputEventDetail } from \"@ui5/webcomponents/dist/Input.js\";\nimport type { ListItemClickEventDetail } from \"@ui5/webcomponents/dist/List.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type ListItemBase from \"@ui5/webcomponents/dist/ListItemBase.js\";\nimport type { PopupBeforeCloseEventDetail } from \"@ui5/webcomponents/dist/Popup.js\";\nimport { isPhone, isTablet, isCombi } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport MediaRange from \"@ui5/webcomponents-base/dist/MediaRange.js\";\nimport UserSettingsDialogTemplate from \"./UserSettingsDialogTemplate.js\";\nimport type UserSettingsItem from \"./UserSettingsItem.js\";\nimport UserSettingsDialogCss from \"./generated/themes/UserSettingsDialog.css.js\";\n\n// Texts\nimport {\n\tUSER_SETTINGS_DIALOG_ACCESSIBLE_NAME,\n\tUSER_SETTINGS_LIST_ARIA_ROLE_DESC,\n\tUSER_SETTINGS_DIALOG_CLOSE_BUTTON_TEXT,\n\tUSER_SETTINGS_DIALOG_SAVE_BUTTON_TEXT,\n\tUSER_SETTINGS_DIALOG_CANCEL_BUTTON_TEXT,\n\tUSER_SETTINGS_DIALOG_NO_SEARCH_RESULTS_TEXT,\n} from \"./generated/i18n/i18n-defaults.js\";\n\ntype UserSettingsItemSelectEventDetail = {\n\titem: UserSettingsItem;\n}\n\ntype UserSettingsBeforeCloseEventDetail = PopupBeforeCloseEventDetail;\n\n/**\n * @class\n * ### Overview\n *\n * The `ui5-user-settings-dialog` is an SAP Fiori-specific web component used in the `ui5-user-menu`.\n * It allows the user to easily view information and settings for an account.\n *\n * ### ES6 Module Import\n * `import \"@ui5/webcomponents-fiori/dist/UserSettingsDialog.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @public\n * @since 2.8.0\n */\n@customElement({\n\ttag: \"ui5-user-settings-dialog\",\n\trenderer: jsxRenderer,\n\ttemplate: UserSettingsDialogTemplate,\n\tstyles: [UserSettingsDialogCss],\n})\n\n/**\n * Fired when an item is selected.\n * @param {UserSettingsItem} item The selected `user settings item`.\n * @public\n */\n@event(\"selection-change\", {\n\tcancelable: true,\n})\n\n/**\n * Fired when the settings dialog is opened.\n * @public\n */\n@event(\"open\")\n\n/**\n * Fired before the settings dialog is closed.\n *\n * **Note:** This event is cancelable via `preventDefault()`, allowing the application to keep the\n * dialog open — for example, to prompt the user about unsaved changes before dismissal.\n * @public\n */\n@event(\"before-close\", {\n\tcancelable: true,\n})\n\n/**\n * Fired when the settings dialog is closed.\n * @public\n */\n@event(\"close\")\n\n/**\n * Fired when the Save button in the footer is clicked.\n * The dialog does not close automatically — the application is responsible\n * for closing it after persisting the changes.\n * @public\n */\n@event(\"save\")\n\n/**\n * Fired when the Cancel button in the footer is clicked.\n * The dialog does not close automatically — the application is responsible\n * for closing it after discarding the changes.\n * @public\n */\n@event(\"cancel\")\n\nclass UserSettingsDialog extends UI5Element {\n\teventDetails!: {\n\t\t\"selection-change\": UserSettingsItemSelectEventDetail,\n\t\t\"open\": void,\n\t\t\"before-close\": UserSettingsBeforeCloseEventDetail,\n\t\t\"close\": void,\n\t\t\"save\": void,\n\t\t\"cancel\": void,\n\t};\n\t/**\n\t * Defines, if the User Settings Dialog is opened.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t/**\n\t * Defines the headerText of the item.\n\t *\n\t * @public\n\t * @default undefined\n\t */\n\t@property({ type: String })\n\theaderText?: string;\n\n\t/**\n\t * Defines if the Search Field would be displayed.\n\t *\n\t * **Note:** By default the Search Field is not displayed.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowSearchField = false;\n\n\t/**\n\t * Defines whether the dialog offers Save and Cancel actions in its footer.\n\t *\n\t * When true, the footer renders a Save (Emphasized) and a Cancel button\n\t * instead of the default Close button. Save and Cancel each fire a\n\t * corresponding event; the application is responsible for closing the\n\t * dialog (typically after persisting or discarding the changes).\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tsaveMode = false;\n\n\t/**\n\t * Defines the user settings items.\n\t *\n\t * **Note:** If no setting item is set as `selected`, the first one will be selected.\n\t * @public\n\t */\n\t@slot({\n\t\t\"default\": true,\n\t\ttype: HTMLElement,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: true,\n\t\t\tslots: true,\n\t\t},\n\t})\n\titems!: DefaultSlot<UserSettingsItem>;\n\n\t/**\n\t * Defines the fixed user settings items.\n\t *\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: true,\n\t\t\tslots: true,\n\t\t},\n\t})\n\tfixedItems!: Slot<UserSettingsItem>;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: String })\n\t_searchValue = \"\";\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_collapsed = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_selectedSetting?: UserSettingsItem;\n\n\t/**\n\t * @private\n\t */\n\t_filteredItems: Array<UserSettingsItem> = [];\n\n\t/**\n\t * @private\n\t */\n\t_filteredFixedItems: Array<UserSettingsItem> = [];\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_showNoSearchResult = false;\n\n\t/**\n\t * Defines the current media query size.\n\t * @private\n\t */\n\t@property({ type: String })\n\t_mediaRange?: any;\n\n\tonEnterDOM() {\n\t\tthis.setAttribute(\"data-sap-ui-fastnavgroup-container\", \"true\");\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._mediaRange = MediaRange.getCurrentRange(MediaRange.RANGESETS.RANGE_4STEPS);\n\t\tconst searchValue = this._searchValue.toLowerCase();\n\t\tthis._filteredItems = [];\n\t\tthis._filteredFixedItems = [];\n\t\tconst siblingsWithIcon = this.items.some(item => !!item.icon);\n\t\tthis.items.forEach(item => {\n\t\t\tif (item.text.toLowerCase().includes(searchValue)) {\n\t\t\t\tthis._filteredItems.push(item);\n\t\t\t}\n\n\t\t\tif (item.selected) {\n\t\t\t\tthis._selectedSetting = item;\n\t\t\t}\n\t\t\titem._siblingsWithIcon = siblingsWithIcon;\n\t\t});\n\n\t\tthis.fixedItems.forEach(item => {\n\t\t\tif (item.text.toLowerCase().includes(searchValue)) {\n\t\t\t\tthis._filteredFixedItems.push(item);\n\t\t\t}\n\n\t\t\tif (item.selected) {\n\t\t\t\tthis._selectedSetting = item;\n\t\t\t}\n\t\t});\n\n\t\tif (this._filteredItems.length === 0 && this._filteredFixedItems.length === 0) {\n\t\t\tthis._showNoSearchResult = true;\n\t\t} else {\n\t\t\tthis._showNoSearchResult = false;\n\t\t}\n\n\t\tif (!this._selectedSetting) {\n\t\t\tthis._selectedSetting = this.items[0] || this.fixedItems[0];\n\t\t}\n\n\t\tconst allItems = [...this.items, ...this.fixedItems];\n\t\tallItems.forEach(item => {\n\t\t\tif (item === this._selectedSetting) {\n\t\t\t\titem.setAttribute(\"data-sap-ui-fastnavgroup\", \"true\");\n\t\t\t} else {\n\t\t\t\titem.removeAttribute(\"data-sap-ui-fastnavgroup\");\n\t\t\t}\n\t\t});\n\t}\n\n\t_handleItemClick(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst setting = e.detail.item as ListItemBase & { associatedSettingItem: UserSettingsItem };\n\t\tconst settingItem = setting.associatedSettingItem;\n\t\tconst eventPrevented = !this.fireDecoratorEvent(\"selection-change\", {\n\t\t\titem: settingItem,\n\t\t});\n\t\tthis._collapsed = true;\n\n\t\tif (!eventPrevented) {\n\t\t\tthis.items.forEach(item => {\n\t\t\t\titem.selected = false;\n\t\t\t});\n\t\t\tthis.fixedItems.forEach(item => {\n\t\t\t\titem.selected = false;\n\t\t\t});\n\t\t\tsettingItem.selected = true;\n\t\t}\n\t}\n\n\t_handleDialogAfterOpen() {\n\t\tthis.fireDecoratorEvent(\"open\");\n\t}\n\n\t_handleDialogBeforeClose(e: CustomEvent<PopupBeforeCloseEventDetail>) {\n\t\tif (!e.detail.escPressed) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst eventPrevented = !this.fireDecoratorEvent(\"before-close\", e.detail);\n\n\t\tif (eventPrevented) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_handleDialogAfterClose() {\n\t\tthis.open = false;\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\tget accessibleNameText() {\n\t\treturn UserSettingsDialog.i18nBundle.getText(USER_SETTINGS_DIALOG_ACCESSIBLE_NAME);\n\t}\n\n\tget ariaRoleDescList() {\n\t\treturn UserSettingsDialog.i18nBundle.getText(USER_SETTINGS_LIST_ARIA_ROLE_DESC);\n\t}\n\n\tget closeButtonText() {\n\t\treturn UserSettingsDialog.i18nBundle.getText(USER_SETTINGS_DIALOG_CLOSE_BUTTON_TEXT);\n\t}\n\tget saveButtonText() {\n\t\treturn UserSettingsDialog.i18nBundle.getText(USER_SETTINGS_DIALOG_SAVE_BUTTON_TEXT);\n\t}\n\tget cancelButtonText() {\n\t\treturn UserSettingsDialog.i18nBundle.getText(USER_SETTINGS_DIALOG_CANCEL_BUTTON_TEXT);\n\t}\n\tget noSearchResultsText() {\n\t\treturn UserSettingsDialog.i18nBundle.getText(USER_SETTINGS_DIALOG_NO_SEARCH_RESULTS_TEXT);\n\t}\n\n\tget _selectedItemSlotName() {\n\t\treturn this._selectedSetting ? this._selectedSetting._individualSlot : \"\";\n\t}\n\n\tget _showSettingWithNavigation() {\n\t\treturn (isPhone() || (isTablet() && !isCombi())) || (this._mediaRange === \"S\" || this._mediaRange === \"M\");\n\t}\n\n\t_handleCloseButtonClick() {\n\t\tconst eventPrevented = !this.fireDecoratorEvent(\"before-close\", { escPressed: false });\n\n\t\tif (!eventPrevented) {\n\t\t\tthis.open = false;\n\t\t}\n\t}\n\n\t_handleSaveButtonClick() {\n\t\tthis.fireDecoratorEvent(\"save\");\n\t}\n\n\t_handleCancelButtonClick() {\n\t\tthis.fireDecoratorEvent(\"cancel\");\n\t}\n\n\t_handleCollapseClick() {\n\t\tthis._collapsed = false;\n\t}\n\n\t_handleInput(e: CustomEvent<InputEventDetail>) {\n\t\tthis._searchValue = (e.target as Input).value;\n\t}\n\n\tcaptureRef(ref: HTMLElement & { associatedSettingItem?: UI5Element} | null) {\n\t\tif (ref) {\n\t\t\tref.associatedSettingItem = this;\n\t\t}\n\t}\n}\n\nUserSettingsDialog.define();\n\nexport default UserSettingsDialog;\nexport type {\n\tUserSettingsItemSelectEventDetail,\n\tUserSettingsBeforeCloseEventDetail,\n};\n"]}
|