@ui5/webcomponents-fiori 2.5.0-rc.1 → 2.5.0-rc.3
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 +29 -0
- package/README.md +3 -0
- package/cypress/specs/UserMenu.cy.ts +345 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/BarcodeScannerDialog.d.ts +5 -0
- package/dist/BarcodeScannerDialog.js +1 -17
- package/dist/BarcodeScannerDialog.js.map +1 -1
- package/dist/DynamicPage.d.ts +4 -0
- package/dist/DynamicPage.js +1 -1
- package/dist/DynamicPage.js.map +1 -1
- package/dist/DynamicPageHeaderActions.d.ts +6 -0
- package/dist/DynamicPageHeaderActions.js +1 -1
- package/dist/DynamicPageHeaderActions.js.map +1 -1
- package/dist/DynamicPageTitle.d.ts +3 -0
- package/dist/DynamicPageTitle.js +1 -1
- package/dist/DynamicPageTitle.js.map +1 -1
- package/dist/DynamicSideContent.d.ts +3 -0
- package/dist/DynamicSideContent.js +1 -27
- package/dist/DynamicSideContent.js.map +1 -1
- package/dist/FlexibleColumnLayout.d.ts +3 -0
- package/dist/FlexibleColumnLayout.js +1 -31
- package/dist/FlexibleColumnLayout.js.map +1 -1
- package/dist/MediaGallery.d.ts +5 -0
- package/dist/MediaGallery.js +1 -7
- package/dist/MediaGallery.js.map +1 -1
- package/dist/MediaGalleryItem.d.ts +5 -0
- package/dist/MediaGalleryItem.js +1 -1
- package/dist/MediaGalleryItem.js.map +1 -1
- package/dist/NotificationList.d.ts +6 -0
- package/dist/NotificationList.js +1 -19
- package/dist/NotificationList.js.map +1 -1
- package/dist/NotificationListGroupItem.d.ts +4 -0
- package/dist/NotificationListGroupItem.js +1 -1
- package/dist/NotificationListGroupItem.js.map +1 -1
- package/dist/NotificationListGroupList.d.ts +1 -0
- package/dist/NotificationListGroupList.js +3 -0
- package/dist/NotificationListGroupList.js.map +1 -1
- package/dist/NotificationListItem.d.ts +4 -0
- package/dist/NotificationListItem.js +1 -9
- package/dist/NotificationListItem.js.map +1 -1
- package/dist/NotificationListItemBase.d.ts +1 -0
- package/dist/NotificationListItemBase.js.map +1 -1
- package/dist/ProductSwitchItem.d.ts +7 -1
- package/dist/ProductSwitchItem.js +3 -3
- package/dist/ProductSwitchItem.js.map +1 -1
- package/dist/ShellBar.d.ts +8 -0
- package/dist/ShellBar.js +1 -35
- package/dist/ShellBar.js.map +1 -1
- package/dist/ShellBarItem.d.ts +3 -0
- package/dist/ShellBarItem.js +1 -4
- package/dist/ShellBarItem.js.map +1 -1
- package/dist/SideNavigation.d.ts +5 -2
- package/dist/SideNavigation.js +5 -9
- package/dist/SideNavigation.js.map +1 -1
- package/dist/SideNavigationSelectableItemBase.d.ts +3 -0
- package/dist/SideNavigationSelectableItemBase.js +1 -1
- package/dist/SideNavigationSelectableItemBase.js.map +1 -1
- package/dist/TimelineGroupItem.d.ts +3 -0
- package/dist/TimelineGroupItem.js +1 -1
- package/dist/TimelineGroupItem.js.map +1 -1
- package/dist/TimelineItem.d.ts +3 -0
- package/dist/TimelineItem.js +2 -2
- package/dist/TimelineItem.js.map +1 -1
- package/dist/UploadCollection.d.ts +4 -0
- package/dist/UploadCollection.js +4 -17
- package/dist/UploadCollection.js.map +1 -1
- package/dist/UploadCollectionItem.d.ts +8 -0
- package/dist/UploadCollectionItem.js +1 -1
- package/dist/UploadCollectionItem.js.map +1 -1
- package/dist/UserMenu.d.ts +128 -0
- package/dist/UserMenu.js +293 -0
- package/dist/UserMenu.js.map +1 -0
- package/dist/UserMenuAccount.d.ts +47 -0
- package/dist/UserMenuAccount.js +101 -0
- package/dist/UserMenuAccount.js.map +1 -0
- package/dist/UserMenuItem.d.ts +35 -0
- package/dist/UserMenuItem.js +53 -0
- package/dist/UserMenuItem.js.map +1 -0
- package/dist/ViewSettingsDialog.d.ts +7 -0
- package/dist/ViewSettingsDialog.js +2 -46
- package/dist/ViewSettingsDialog.js.map +1 -1
- package/dist/Wizard.d.ts +3 -0
- package/dist/Wizard.js +1 -15
- package/dist/Wizard.js.map +1 -1
- package/dist/WizardTab.d.ts +4 -0
- package/dist/WizardTab.js +1 -1
- package/dist/WizardTab.js.map +1 -1
- package/dist/bundle.esm.js +3 -0
- package/dist/bundle.esm.js.map +1 -1
- package/dist/css/themes/DynamicPage.css +1 -1
- package/dist/css/themes/DynamicPageHeader.css +1 -1
- package/dist/css/themes/DynamicPageHeaderActions.css +1 -1
- package/dist/css/themes/DynamicPageTitle.css +1 -1
- package/dist/css/themes/FlexibleColumnLayout.css +1 -1
- package/dist/css/themes/MediaGallery.css +1 -1
- package/dist/css/themes/MediaGalleryItem.css +1 -1
- package/dist/css/themes/NotificationListGroupItem.css +1 -1
- package/dist/css/themes/NotificationListItem.css +1 -1
- package/dist/css/themes/NotificationListItemBase.css +1 -1
- package/dist/css/themes/NotificationStateIcon.css +1 -1
- package/dist/css/themes/Page.css +1 -1
- package/dist/css/themes/ProductSwitchItem.css +1 -1
- package/dist/css/themes/ShellBar.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/SideNavigationPopover.css +1 -1
- package/dist/css/themes/SideNavigationSubItem.css +1 -1
- package/dist/css/themes/Timeline.css +1 -1
- package/dist/css/themes/TimelineGroupItem.css +1 -1
- package/dist/css/themes/TimelineItem.css +1 -1
- package/dist/css/themes/UploadCollection.css +1 -1
- package/dist/css/themes/UploadCollectionItem.css +1 -1
- package/dist/css/themes/UserMenu.css +1 -0
- package/dist/css/themes/UserMenuItem.css +1 -0
- package/dist/css/themes/ViewSettingsDialog.css +1 -1
- package/dist/css/themes/Wizard.css +1 -1
- package/dist/css/themes/WizardTab.css +1 -1
- package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
- package/dist/custom-elements-internal.json +566 -19
- package/dist/custom-elements.json +400 -8
- package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +8 -1
- package/dist/generated/i18n/i18n-defaults.js +8 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/UserMenuItemTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/UserMenuItemTemplate.lit.js +35 -0
- package/dist/generated/templates/UserMenuItemTemplate.lit.js.map +1 -0
- package/dist/generated/templates/UserMenuTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/UserMenuTemplate.lit.js +21 -0
- package/dist/generated/templates/UserMenuTemplate.lit.js.map +1 -0
- package/dist/generated/templates/ViewSettingsDialogTemplate.lit.js +1 -1
- package/dist/generated/templates/ViewSettingsDialogTemplate.lit.js.map +1 -1
- package/dist/generated/templates/WizardTabTemplate.lit.js +4 -3
- package/dist/generated/templates/WizardTabTemplate.lit.js.map +1 -1
- package/dist/generated/themes/DynamicPage.css.js +1 -1
- package/dist/generated/themes/DynamicPage.css.js.map +1 -1
- package/dist/generated/themes/DynamicPageHeader.css.js +1 -1
- package/dist/generated/themes/DynamicPageHeader.css.js.map +1 -1
- package/dist/generated/themes/DynamicPageHeaderActions.css.js +1 -1
- package/dist/generated/themes/DynamicPageHeaderActions.css.js.map +1 -1
- package/dist/generated/themes/DynamicPageTitle.css.js +1 -1
- package/dist/generated/themes/DynamicPageTitle.css.js.map +1 -1
- package/dist/generated/themes/FlexibleColumnLayout.css.js +1 -1
- package/dist/generated/themes/FlexibleColumnLayout.css.js.map +1 -1
- package/dist/generated/themes/MediaGallery.css.js +1 -1
- package/dist/generated/themes/MediaGallery.css.js.map +1 -1
- package/dist/generated/themes/MediaGalleryItem.css.js +1 -1
- package/dist/generated/themes/MediaGalleryItem.css.js.map +1 -1
- package/dist/generated/themes/NotificationListGroupItem.css.js +1 -1
- package/dist/generated/themes/NotificationListGroupItem.css.js.map +1 -1
- package/dist/generated/themes/NotificationListItem.css.js +1 -1
- package/dist/generated/themes/NotificationListItem.css.js.map +1 -1
- package/dist/generated/themes/NotificationListItemBase.css.js +1 -1
- package/dist/generated/themes/NotificationListItemBase.css.js.map +1 -1
- package/dist/generated/themes/NotificationStateIcon.css.js +1 -1
- package/dist/generated/themes/NotificationStateIcon.css.js.map +1 -1
- package/dist/generated/themes/Page.css.js +1 -1
- package/dist/generated/themes/Page.css.js.map +1 -1
- package/dist/generated/themes/ProductSwitchItem.css.js +1 -1
- package/dist/generated/themes/ProductSwitchItem.css.js.map +1 -1
- package/dist/generated/themes/ShellBar.css.js +1 -1
- package/dist/generated/themes/ShellBar.css.js.map +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.js +1 -1
- package/dist/generated/themes/SideNavigationGroup.css.js.map +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.js +1 -1
- package/dist/generated/themes/SideNavigationItemBase.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationPopover.css.js +1 -1
- package/dist/generated/themes/SideNavigationPopover.css.js.map +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/Timeline.css.js +1 -1
- package/dist/generated/themes/Timeline.css.js.map +1 -1
- package/dist/generated/themes/TimelineGroupItem.css.js +1 -1
- package/dist/generated/themes/TimelineGroupItem.css.js.map +1 -1
- package/dist/generated/themes/TimelineItem.css.js +1 -1
- package/dist/generated/themes/TimelineItem.css.js.map +1 -1
- package/dist/generated/themes/UploadCollection.css.js +1 -1
- package/dist/generated/themes/UploadCollection.css.js.map +1 -1
- package/dist/generated/themes/UploadCollectionItem.css.js +1 -1
- package/dist/generated/themes/UploadCollectionItem.css.js.map +1 -1
- package/dist/generated/themes/UserMenu.css.d.ts +3 -0
- package/dist/generated/themes/UserMenu.css.js +9 -0
- package/dist/generated/themes/UserMenu.css.js.map +1 -0
- package/dist/generated/themes/UserMenuItem.css.d.ts +3 -0
- package/dist/generated/themes/UserMenuItem.css.js +9 -0
- package/dist/generated/themes/UserMenuItem.css.js.map +1 -0
- package/dist/generated/themes/ViewSettingsDialog.css.js +1 -1
- package/dist/generated/themes/ViewSettingsDialog.css.js.map +1 -1
- package/dist/generated/themes/Wizard.css.js +1 -1
- package/dist/generated/themes/Wizard.css.js.map +1 -1
- package/dist/generated/themes/WizardTab.css.js +1 -1
- package/dist/generated/themes/WizardTab.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
- package/dist/vscode.html-custom-data.json +76 -1
- package/dist/web-types.json +214 -12
- package/package.json +7 -7
- package/src/UserMenu.hbs +99 -0
- package/src/UserMenuItem.hbs +1 -0
- package/src/ViewSettingsDialog.hbs +1 -1
- package/src/WizardTab.hbs +3 -1
- package/src/i18n/messagebundle.properties +23 -0
- package/src/themes/UserMenu.css +107 -0
- package/src/themes/UserMenuItem.css +11 -0
package/dist/MediaGallery.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaGallery.js","sourceRoot":"","sources":["../src/MediaGallery.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,cAAc,MAAM,yDAAyD,CAAC;AACrF,OAAO,aAAa,MAAM,wDAAwD,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACjE,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,cAAc,MAAM,sDAAsD,CAAC;AAClF,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,MAAM,MAAM,mCAAmC,CAAC;AAEvD,OAAO,QAAQ,MAAM,qCAAqC,CAAC;AAC3D,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,KAAK,MAAM,kDAAkD,CAAC;AAErE,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,sBAAsB,MAAM,mCAAmC,CAAC;AACvE,OAAO,kBAAkB,MAAM,+BAA+B,CAAC;AAI/D,SAAS;AACT,OAAO,eAAe,MAAM,wCAAwC,CAAC;AAErE,WAAW;AACX,OAAO,oBAAoB,MAAM,mDAAmD,CAAC;AAiBrF,uDAAuD;AACvD,iDAAiD;AACjD,MAAM,aAAa,GAA2B;IAC7C,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;CACP,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AA8CH,IAAM,YAAY,oBAAlB,MAAM,YAAa,SAAQ,UAAU;IA6FpC;QACC,KAAK,EAAE,CAAC;QA7FT;;;;;;WAMG;QAEH,sBAAiB,GAAG,KAAK,CAAC;QAE1B;;;;;;;;WAQG;QAEH,2BAAsB,GAAG,KAAK,CAAC;QAE/B;;;;WAIG;QAEH,WAAM,GAA4B,MAAM,CAAC;QAEzC;;;;;WAKG;QAEH,wBAAmB,GAAyC,MAAM,CAAC;QAEnE;;;;;WAKG;QAEH,sBAAiB,GAAuC,QAAQ,CAAC;QAEjE;;;;;;WAMG;QAEH,oBAAe,GAA4B,UAAU,CAAC;QAEtD;;;WAGG;QAEH,eAAU,GAAG,GAAG,CAAC;QAEjB;;;WAGG;QAEH,kBAAa,GAAG,CAAC,CAAC;QAwBjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE;YAC/C,cAAc,EAAE,cAAc,CAAC,IAAI;YACnC,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE;SACjD,CAAC,CAAC;IACJ,CAAC;IAED,UAAU;QACT,CAAC,OAAO,EAAE,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED,SAAS;QACR,CAAC,OAAO,EAAE,IAAI,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;IAED,gBAAgB;QACf,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzB,CAAC;IAED,gBAAgB;QACf,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;YAC/B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;gBACnD,UAAU,EAAE,MAAM,EAAE,CAAC;YACtB,CAAC;YACD,OAAO;QACR,CAAC;QACD,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5D,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3C,CAAC;QACD,IAAI,YAAY,IAAI,YAAY,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;YACzD,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;IACF,CAAC;IAED,iBAAiB,CAAa,IAAuB;QACpD,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IACvC,CAAC;IAED,mBAAmB;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChD,CAAC;IAED,iBAAiB,CAAC,KAAa;QAC9B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACxF,CAAC;IAED,aAAa;QACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAG,EACjC,MAAM,GAAG,QAAQ,CAAC,YAAY,EAC9B,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC;QAE9B,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,OAAO,EAAE,EAAE,CAAC;YACpC,OAAO;QACR,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACpD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEhE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC7D,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC3D,CAAC;IAED,sBAAsB,CAAC,KAAa,EAAE,MAAc;QACnD,MAAM,UAAU,GAAG,cAAY,CAAC,gBAAgB,CAAC;QACjD,IAAI,YAAY,EACf,YAAY,CAAC;QAEd,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,OAAO,CAAC,CAAC;QACV,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,KAAK,kBAAkB,CAAC,UAAU,EAAE,CAAC;YAC5D,YAAY,GAAG,MAAM,GAAG,UAAU,CAAC;YACnC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACP,YAAY,GAAG,KAAK,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,mDAAmD;YAC5F,YAAY,GAAG,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC1D,CAAC;IAED,wBAAwB,CAAC,MAAe;QACvC,IAAI,CAAC,QAAS,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,wBAAwB;QAEzD,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,UAAU,GAAG,cAAY,CAAC,gBAAgB,EAC/C,KAAK,GAAG,IAAI,CAAC,QAAS,CAAC,WAAW,CAAC;YAEpC,IAAI,eAAe,GAAG,IAAI,CAAC,SAAS,EAAG,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;YACxE,IAAI,IAAI,CAAC,eAAe,KAAK,kBAAkB,CAAC,QAAQ,EAAE,CAAC;gBAC1D,eAAe,IAAI,CAAC,cAAY,CAAC,gBAAgB,GAAG,UAAU,CAAC,CAAC;YACjE,CAAC;YAED,IAAI,KAAK,GAAG,eAAe,EAAE,CAAC;gBAC7B,gBAAgB;gBAChB,IAAI,CAAC,QAAS,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,eAAe,IAAI,CAAC;YACrD,CAAC;QACF,CAAC;IACF,CAAC;IAED,uBAAuB,CAAC,MAAe;QACtC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO;QACR,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EACvC,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAEvD,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa,CAAC;IAC9C,CAAC;IAED,qBAAqB;QACpB,IAAI,IAAI,CAAC,MAAM,KAAK,kBAAkB,CAAC,IAAI,EAAE,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ;gBACvD,CAAC,CAAC,kBAAkB,CAAC,UAAU,CAAC;QAClC,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAED,gCAAgC,CAAC,YAAoB;QACpD,IAAI,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,cAAY,CAAC,gBAAgB,CAAC,CAAC;QAC/E,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7B,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,eAAe,CAAC;IACxB,CAAC;IAED,gBAAgB,CAAC,YAAoB,EAAE,YAAoB;QAC1D,MAAM,2BAA2B,GAAG,IAAI,CAAC,gCAAgC,CAAC,YAAY,CAAC,EACtF,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,2BAA2B,GAAG,YAAY,CAAC,CAAC;QAC5F,IAAI,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YAC9D,OAAO,YAAY,CAAC;QACrB,CAAC;QACD,OAAO,YAAY,GAAG,CAAC,CAAC,CAAC,8DAA8D;IACxF,CAAC;IAED,kBAAkB;QACjB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACX,CAAC;QAED,MAAM,KAAK,GAAqB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAElF,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,WAAW,CAAC,IAAuB,EAAE,eAAe,GAAG,KAAK;QAC3D,IAAI,IAAI,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;YACjC,OAAO;QACR,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAE1B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,eAAe,EAAE,CAAC;YACrB,IAAI,CAAC,kBAAkB,CAAyC,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/F,CAAC;QAED,IAAI,OAAO,EAAE,EAAE,CAAC;YACf,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;IACF,CAAC;IAED,mBAAmB,CAAC,YAA+B;QAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,kBAAkB,CAAC,IAAuB;QACzC,MAAM,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,EAC9D,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;IACtD,CAAC;IAED,eAAe,CAAC,IAAuB;QACtC,IAAI,KAAK,CAAC;QACV,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAC9B,UAAU,GAAG,QAAS,CAAC,gBAAgB,EACvC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAEpC,QAAS,CAAC,gBAAgB,GAAG,KAAK,CAAC;QACnC,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QAElC,IAAI,UAAU,EAAE,CAAC;YAChB,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACnC,QAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC/B,QAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACF,CAAC;IAED,iBAAiB,CAAC,CAAa;QAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAoB,0BAA0B,CAAE,CAAC;QAE5E,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACpD,CAAC;IACF,CAAC;IAED,mBAAmB;QAClB,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC;IAED,mBAAmB;QAClB,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAClC,OAAO;QACR,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;IAC/C,CAAC;IAED,mBAAmB,CAAC,CAA2C;QAC9D,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,EAC3C,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAE7C,IAAI,CAAC,kBAAkB,CAAyC,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpD,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAW,gBAAgB,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAc,4BAA4B,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAmB,qDAAqD,CAAC,CAAC;IAChH,CAAC;IAED,IAAI,YAAY;QACf,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAS,0CAA0C,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,aAAa;QAChB,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;QACjE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,OAAO,EAAE,CAAC;IAClB,CAAC;IAED,IAAI,eAAe;QAClB,OAAO,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,YAAY;QACf,OAAO,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC;IAChC,CAAC;IAED,IAAI,sBAAsB;QACzB,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,sBAAsB;QACzB,OAAO,CAAC,CAAC,IAAI,CAAC,sBAAsB;eAChC,IAAI,CAAC,iBAAiB;eACtB,CAAC,IAAI,CAAC,eAAe,KAAK,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,wBAAwB;QAC3B,iCAAiC;QACjC,oEAAoE;QACpE,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC;IACrC,CAAC;IAED,MAAM,KAAK,gBAAgB;QAC1B,OAAO,EAAE,CAAC,CAAC,KAAK;IACjB,CAAC;IAED,MAAM,KAAK,gBAAgB;QAC1B,OAAO,EAAE,CAAC,CAAC,KAAK;IACjB,CAAC;CACD,CAAA;AAlYA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;uDACF;AAY1B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4DACG;AAQ/B;IADC,QAAQ,EAAE;4CAC8B;AASzC;IADC,QAAQ,EAAE;yDACwD;AASnE;IADC,QAAQ,EAAE;uDACsD;AAUjE;IADC,QAAQ,EAAE;qDAC2C;AAOtD;IADC,QAAQ,EAAE;gDACM;AAOjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;mDAC5B;AAgBlB;IANC,IAAI,CAAC;QACL,IAAI,EAAE,WAAW;QACjB,eAAe,EAAE,IAAI;QACrB,uBAAuB,EAAE,IAAI;QAC7B,SAAS,EAAE,IAAI;KACf,CAAC;2CAC+B;AAvF5B,YAAY;IA7CjB,aAAa,CAAC;QACd,GAAG,EAAE,mBAAmB;QACxB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,CAAC,eAAe,CAAC;QACzB,QAAQ,EAAE,oBAAoB;QAC9B,YAAY,EAAE;YACb,gBAAgB;YAChB,MAAM;YACN,QAAQ;SACR;KACD,CAAC;IAEF;;;;OAIG;;IACF,KAAK,CAAyC,kBAAkB,EAAE;QAClE,MAAM,EAAE;YACP;;eAEG;YACH,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC3B;QACD,OAAO,EAAE,IAAI;KACb,CAAC;IAEF;;;OAGG;;IACF,KAAK,CAAC,gBAAgB,EAAE;QACxB,OAAO,EAAE,IAAI;KACb,CAAC;IAEF;;;;;OAKG;;IACF,KAAK,CAAC,oBAAoB,EAAE;QAC5B,OAAO,EAAE,IAAI;KACb,CAAC;GAEI,YAAY,CA2YjB;AAED,YAAY,CAAC,MAAM,EAAE,CAAC;AAEtB,eAAe,YAAY,CAAC","sourcesContent":["import ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport MediaRange from \"@ui5/webcomponents-base/dist/MediaRange.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport NavigationMode from \"@ui5/webcomponents-base/dist/types/NavigationMode.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\nimport type { CarouselNavigateEventDetail } from \"@ui5/webcomponents/dist/Carousel.js\";\nimport Carousel from \"@ui5/webcomponents/dist/Carousel.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport MediaGalleryItem from \"./MediaGalleryItem.js\";\nimport MediaGalleryItemLayout from \"./types/MediaGalleryItemLayout.js\";\nimport MediaGalleryLayout from \"./types/MediaGalleryLayout.js\";\nimport type MediaGalleryMenuHorizontalAlign from \"./types/MediaGalleryMenuHorizontalAlign.js\";\nimport type MediaGalleryMenuVerticalAlign from \"./types/MediaGalleryMenuVerticalAlign.js\";\n\n// Styles\nimport MediaGalleryCss from \"./generated/themes/MediaGallery.css.js\";\n\n// Template\nimport MediaGalleryTemplate from \"./generated/templates/MediaGalleryTemplate.lit.js\";\n\n/**\n * Interface for components that can be slotted inside `ui5-media-gallery` as items.\n * @public\n */\ninterface IMediaGalleryItem extends HTMLElement, ITabbable {\n\tselected: boolean,\n\tdisabled: boolean,\n\tdisplayedContent: HTMLElement | null;\n\tlayout: `${MediaGalleryItemLayout}`\n}\n\ntype MediaGallerySelectionChangeEventDetail = {\n\titem: IMediaGalleryItem;\n}\n\n// The allowed number of thumbnail columns on each size\n// (relevant when `showAllThumbnails` is enabled)\nconst COLUMNS_COUNT: Record<string, number> = {\n\t\"S\": 1,\n\t\"M\": 2,\n\t\"L\": 3,\n\t\"XL\": 4,\n};\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-media-gallery` component allows the user to browse through multimedia items. Currently,\n * the supported items are images and videos. The items should be defined using the `ui5-media-gallery-item`\n * component.\n *\n * The items are initially displayed as thumbnails. When the user selects a thumbnail, the corresponding item\n * is displayed in larger size.\n *\n * The component is responsive by default and adjusts the position of the menu with respect to viewport size,\n * but the application is able to further customize the layout via the provided API.\n *\n * ### Keyboard Handling\n * The `ui5-media-gallery` provides advanced keyboard handling.\n *\n * When the thumbnails menu is focused the following keyboard\n * shortcuts allow the user to navigate through the thumbnail items:\n *\n * - [Up] or [Down] - Navigates up and down the items\n * - [Home] - Navigates to first item\n * - [End] - Navigates to the last item\n * - [Space], [Enter] - Selects an item\n *\n * ### ES6 Module Import\n * `import \"@ui5/webcomponents-fiori/dist/MediaGallery.js\";`\n *\n * `import \"@ui5/webcomponents-fiori/dist/MediaGalleryItem.js\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.1.0\n */\n@customElement({\n\ttag: \"ui5-media-gallery\",\n\trenderer: litRender,\n\tstyles: [MediaGalleryCss],\n\ttemplate: MediaGalleryTemplate,\n\tdependencies: [\n\t\tMediaGalleryItem,\n\t\tButton,\n\t\tCarousel,\n\t],\n})\n\n/**\n * Fired when selection is changed by user interaction.\n * @param {HTMLElement} item the selected item.\n * @public\n */\n@event<MediaGallerySelectionChangeEventDetail>(\"selection-change\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\titem: { type: HTMLElement },\n\t},\n\tbubbles: true,\n})\n\n/**\n * Fired when the thumbnails overflow button is clicked.\n * @public\n */\n@event(\"overflow-click\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the display area is clicked.\n * The display area is the central area that contains\n * the enlarged content of the currently selected item.\n * @public\n */\n@event(\"display-area-click\", {\n\tbubbles: true,\n})\n\nclass MediaGallery extends UI5Element {\n\t/**\n\t * If set to `true`, all thumbnails are rendered in a scrollable container.\n\t * If `false`, only up to five thumbnails are rendered, followed by\n\t * an overflow button that shows the count of the remaining thumbnails.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowAllThumbnails = false;\n\n\t/**\n\t * If enabled, a `display-area-click` event is fired\n\t * when the user clicks or taps on the display area.\n\t *\n\t * The display area is the central area that contains\n\t * the enlarged content of the currently selected item.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tinteractiveDisplayArea = false;\n\n\t/**\n\t * Determines the layout of the component.\n\t * @default \"Auto\"\n\t * @public\n\t */\n\t@property()\n\tlayout: `${MediaGalleryLayout}` = \"Auto\";\n\n\t/**\n\t * Determines the horizontal alignment of the thumbnails menu\n\t * vs. the central display area.\n\t * @default \"Left\"\n\t * @public\n\t */\n\t@property()\n\tmenuHorizontalAlign: `${MediaGalleryMenuHorizontalAlign}` = \"Left\";\n\n\t/**\n\t * Determines the vertical alignment of the thumbnails menu\n\t * vs. the central display area.\n\t * @default \"Bottom\"\n\t * @public\n\t */\n\t@property()\n\tmenuVerticalAlign: `${MediaGalleryMenuVerticalAlign}` = \"Bottom\";\n\n\t/**\n\t * Determines the actual applied layout type\n\t * (esp. needed when the app did not specify a fixed layout type\n\t * but selected `Auto` layout type).\n\t * @default \"Vertical\"\n\t * @private\n\t */\n\t@property()\n\teffectiveLayout: `${MediaGalleryLayout}` = \"Vertical\";\n\n\t/**\n\t * Defines the current media query size.\n\t * @private\n\t */\n\t@property()\n\tmediaRange = \"S\";\n\n\t/**\n\t * The number of items in the overflow.\n\t * @private\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_overflowSize = 0;\n\n\t/**\n\t * Defines the component items.\n\t *\n\t * **Note:** Only one selected item is allowed.\n\t *\n\t * **Note:** Use the `ui5-media-gallery-item` component to define the desired items.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: true,\n\t\t\"default\": true,\n\t})\n\titems!: Array<IMediaGalleryItem>;\n\n\t_itemNavigation: ItemNavigation;\n\t_onResize: () => void;\n\t_selectedItem?: IMediaGalleryItem;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._onResize = this._updateLayout.bind(this);\n\n\t\tthis._itemNavigation = new ItemNavigation(this, {\n\t\t\tnavigationMode: NavigationMode.Auto,\n\t\t\tgetItemsCallback: () => this._getFocusableItems(),\n\t\t});\n\t}\n\n\tonEnterDOM() {\n\t\t!isPhone() && ResizeHandler.register(this, this._onResize);\n\t}\n\n\tonExitDOM() {\n\t\t!isPhone() && ResizeHandler.deregister(this, this._onResize);\n\t}\n\n\tonAfterRendering() {\n\t\tthis._updateLayout();\n\t\tthis._updateSelection();\n\t}\n\n\t_updateSelection() {\n\t\tif (this.items.length === 0) {\n\t\t\tthis._selectedItem = undefined;\n\t\t\tif (this._mainItem) {\n\t\t\t\tconst oldContent = this._mainItem.displayedContent;\n\t\t\t\toldContent?.remove();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tlet itemToSelect = this.items.find(item => item.selected);\n\t\tif (!itemToSelect || !this._isSelectableItem(itemToSelect)) {\n\t\t\titemToSelect = this._findSelectableItem();\n\t\t}\n\t\tif (itemToSelect && itemToSelect !== this._selectedItem) {\n\t\t\tthis._selectItem(itemToSelect);\n\t\t}\n\t}\n\n\t_isSelectableItem(this: void, item: IMediaGalleryItem) {\n\t\treturn !item.disabled && !item.hidden;\n\t}\n\n\t_findSelectableItem() {\n\t\treturn this.items.find(this._isSelectableItem);\n\t}\n\n\t_updateMediaRange(width: number) {\n\t\tthis.mediaRange = MediaRange.getCurrentRange(MediaRange.RANGESETS.RANGE_4STEPS, width);\n\t}\n\n\t_updateLayout() {\n\t\tconst rootNode = this.getDomRef()!,\n\t\t\theight = rootNode.offsetHeight,\n\t\t\twidth = rootNode.offsetWidth;\n\n\t\tif (!width || !height || isPhone()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._updateMediaRange(width);\n\t\tthis.effectiveLayout = this._infereffectiveLayout();\n\t\tthis._overflowSize = this._calculateOverflowSize(width, height);\n\n\t\tthis._toggleDisplaySquareSize(this._shouldHaveSquareDisplay);\n\t\tthis._toggleMainItem9x16size(this._shouldHaveWideDisplay);\n\t}\n\n\t_calculateOverflowSize(width: number, height: number) {\n\t\tconst marginSize = MediaGallery.THUMBNAIL_MARGIN;\n\t\tlet columnHeight,\n\t\t\tcolumnsCount;\n\n\t\tif (this.showAllThumbnails) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tif (this.effectiveLayout === MediaGalleryLayout.Horizontal) {\n\t\t\tcolumnHeight = height - marginSize;\n\t\t\tcolumnsCount = this.showAllThumbnails ? COLUMNS_COUNT[this.mediaRange] : 1;\n\t\t} else {\n\t\t\tcolumnHeight = width - (marginSize * 2); // column is flexed to appear as a row in this case\n\t\t\tcolumnsCount = 1;\n\t\t}\n\t\treturn this._getOverflowSize(columnHeight, columnsCount);\n\t}\n\n\t_toggleDisplaySquareSize(enable: boolean) {\n\t\tthis._display!.style.width = \"\"; // restore default width\n\n\t\tif (enable) {\n\t\t\tconst marginSize = MediaGallery.THUMBNAIL_MARGIN,\n\t\t\t\twidth = this._display!.offsetWidth;\n\n\t\t\tlet availableHeight = this.getDomRef()!.offsetHeight - (2 * marginSize);\n\t\t\tif (this.effectiveLayout === MediaGalleryLayout.Vertical) {\n\t\t\t\tavailableHeight -= (MediaGallery.THUMBNAIL_HEIGHT + marginSize);\n\t\t\t}\n\n\t\t\tif (width > availableHeight) {\n\t\t\t\t// set to square\n\t\t\t\tthis._display!.style.width = `${availableHeight}px`;\n\t\t\t}\n\t\t}\n\t}\n\n\t_toggleMainItem9x16size(enable: boolean) {\n\t\tif (!this._mainItem) {\n\t\t\treturn;\n\t\t}\n\t\tconst width = this._mainItem.offsetWidth,\n\t\t\tcontentHeight = enable ? `${(width / 16) * 9}px` : \"\";\n\n\t\tthis._mainItem.contentHeight = contentHeight;\n\t}\n\n\t_infereffectiveLayout() {\n\t\tif (this.layout === MediaGalleryLayout.Auto) {\n\t\t\treturn (this._isPhoneSize) ? MediaGalleryLayout.Vertical\n\t\t\t\t: MediaGalleryLayout.Horizontal;\n\t\t}\n\t\treturn this.layout;\n\t}\n\n\t_getMaxAllowedThumbnailsInColumn(columnHeight: number) {\n\t\tlet maxAllowedItems = Math.floor(columnHeight / MediaGallery.THUMBNAIL_HEIGHT);\n\t\tif (!this.showAllThumbnails) {\n\t\t\tmaxAllowedItems = Math.min(maxAllowedItems, 5);\n\t\t}\n\t\treturn maxAllowedItems;\n\t}\n\n\t_getOverflowSize(columnHeight: number, columnsCount: number) {\n\t\tconst maxAlowedThumbnailsInColumn = this._getMaxAllowedThumbnailsInColumn(columnHeight),\n\t\t\toverflowSize = Math.max(0, this.items.length - maxAlowedThumbnailsInColumn * columnsCount);\n\t\tif (overflowSize === this.items.length || overflowSize === 0) {\n\t\t\treturn overflowSize;\n\t\t}\n\t\treturn overflowSize + 1; // overflow 1 extra item to make room for overflow btn as well\n\t}\n\n\t_getFocusableItems() {\n\t\tif (!this._showThumbnails) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst items: Array<ITabbable> = this._visibleItems.filter(item => !item.disabled);\n\n\t\tif (this._overflowBtn) {\n\t\t\titems.push(this._overflowBtn);\n\t\t}\n\t\treturn items;\n\t}\n\n\t_selectItem(item: IMediaGalleryItem, userInteraction = false) {\n\t\tif (item === this._selectedItem) {\n\t\t\treturn;\n\t\t}\n\t\tthis._selectedItem = item;\n\n\t\tthis._updateSelectedFlag(item);\n\t\tthis._itemNavigation.setCurrentItem(item);\n\n\t\tif (userInteraction) {\n\t\t\tthis.fireDecoratorEvent<MediaGallerySelectionChangeEventDetail>(\"selection-change\", { item });\n\t\t}\n\n\t\tif (isPhone()) {\n\t\t\tthis._selectItemOnPhone(item);\n\t\t} else {\n\t\t\tthis._displayContent(item);\n\t\t}\n\t}\n\n\t_updateSelectedFlag(itemToSelect: IMediaGalleryItem) {\n\t\tthis.items.forEach(next => { next.selected = false; });\n\t\titemToSelect.selected = true;\n\t}\n\n\t_selectItemOnPhone(item: IMediaGalleryItem) {\n\t\tconst selectableItemIndex = this._selectableItems.indexOf(item),\n\t\t\tcarousel = this._carousel;\n\t\tcarousel && carousel.navigateTo(selectableItemIndex);\n\t}\n\n\t_displayContent(item: IMediaGalleryItem) {\n\t\tlet clone;\n\t\tconst mainItem = this._mainItem,\n\t\t\toldContent = mainItem!.displayedContent,\n\t\t\tnewContent = item.displayedContent;\n\n\t\tmainItem!._thumbnailDesign = false;\n\t\toldContent && oldContent.remove();\n\n\t\tif (newContent) {\n\t\t\tclone = newContent.cloneNode(true);\n\t\t\tmainItem!.layout = item.layout;\n\t\t\tmainItem!.appendChild(clone);\n\t\t}\n\t}\n\n\t_onThumbnailClick(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tconst item = target.closest<IMediaGalleryItem>(\"[ui5-media-gallery-item]\")!;\n\n\t\tif (item.disabled) {\n\t\t\treturn;\n\t\t}\n\t\tif (item !== this._selectedItem) {\n\t\t\tthis._selectItem(item, true /* userInteraction */);\n\t\t}\n\t}\n\n\t_onOverflowBtnClick() {\n\t\tthis.fireDecoratorEvent(\"overflow-click\");\n\t}\n\n\t_onDisplayAreaClick() {\n\t\tif (!this.interactiveDisplayArea) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"display-area-click\");\n\t}\n\n\t_onCarouselNavigate(e: CustomEvent<CarouselNavigateEventDetail>) {\n\t\tconst selectedIndex = e.detail.selectedIndex,\n\t\t\titem = this._selectableItems[selectedIndex];\n\n\t\tthis.fireDecoratorEvent<MediaGallerySelectionChangeEventDetail>(\"selection-change\", { item });\n\t}\n\n\tget _mainItemTabIndex() {\n\t\treturn this.interactiveDisplayArea ? 0 : undefined;\n\t}\n\n\tget _selectableItems() {\n\t\treturn this.items.filter(this._isSelectableItem);\n\t}\n\n\tget _carousel() {\n\t\treturn this.shadowRoot!.querySelector<Carousel>(\"[ui5-carousel]\");\n\t}\n\n\tget _display() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-media-gallery-display\");\n\t}\n\n\tget _mainItem() {\n\t\treturn this.shadowRoot!.querySelector<MediaGalleryItem>(\".ui5-media-gallery-display [ui5-media-gallery-item]\");\n\t}\n\n\tget _overflowBtn() {\n\t\treturn this.shadowRoot!.querySelector<Button>(\".ui5-media-gallery-overflow [ui5-button]\");\n\t}\n\n\tget _visibleItems() {\n\t\tconst visibleItemsCount = this.items.length - this._overflowSize;\n\t\treturn this.items.slice(0, visibleItemsCount);\n\t}\n\n\tget _isPhonePlatform() {\n\t\treturn isPhone();\n\t}\n\n\tget _showThumbnails() {\n\t\treturn !isPhone();\n\t}\n\n\tget _showOverflowBtn() {\n\t\treturn this._overflowSize > 0;\n\t}\n\n\tget _isPhoneSize() {\n\t\treturn this.mediaRange === \"S\";\n\t}\n\n\tget _mainItemHasWideLayout() {\n\t\treturn this._mainItem && (this._mainItem.layout === MediaGalleryItemLayout.Wide);\n\t}\n\n\tget _shouldHaveWideDisplay() {\n\t\treturn !!this._mainItemHasWideLayout\n\t\t\t&& this.showAllThumbnails\n\t\t\t&& (this.effectiveLayout === MediaGalleryLayout.Horizontal);\n\t}\n\n\tget _shouldHaveSquareDisplay() {\n\t\t// by default it should be square\n\t\t// with the only exception when a wide 9*16 item should be displayed\n\t\treturn !this._shouldHaveWideDisplay;\n\t}\n\n\tstatic get THUMBNAIL_HEIGHT() {\n\t\treturn 80; // px\n\t}\n\n\tstatic get THUMBNAIL_MARGIN() {\n\t\treturn 16; // px\n\t}\n}\n\nMediaGallery.define();\n\nexport default MediaGallery;\n\nexport type {\n\tMediaGallerySelectionChangeEventDetail,\n\tIMediaGalleryItem,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"MediaGallery.js","sourceRoot":"","sources":["../src/MediaGallery.ts"],"names":[],"mappings":"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","sourcesContent":["import ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport MediaRange from \"@ui5/webcomponents-base/dist/MediaRange.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport NavigationMode from \"@ui5/webcomponents-base/dist/types/NavigationMode.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\nimport type { CarouselNavigateEventDetail } from \"@ui5/webcomponents/dist/Carousel.js\";\nimport Carousel from \"@ui5/webcomponents/dist/Carousel.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport MediaGalleryItem from \"./MediaGalleryItem.js\";\nimport MediaGalleryItemLayout from \"./types/MediaGalleryItemLayout.js\";\nimport MediaGalleryLayout from \"./types/MediaGalleryLayout.js\";\nimport type MediaGalleryMenuHorizontalAlign from \"./types/MediaGalleryMenuHorizontalAlign.js\";\nimport type MediaGalleryMenuVerticalAlign from \"./types/MediaGalleryMenuVerticalAlign.js\";\n\n// Styles\nimport MediaGalleryCss from \"./generated/themes/MediaGallery.css.js\";\n\n// Template\nimport MediaGalleryTemplate from \"./generated/templates/MediaGalleryTemplate.lit.js\";\n\n/**\n * Interface for components that can be slotted inside `ui5-media-gallery` as items.\n * @public\n */\ninterface IMediaGalleryItem extends HTMLElement, ITabbable {\n\tselected: boolean,\n\tdisabled: boolean,\n\tdisplayedContent: HTMLElement | null;\n\tlayout: `${MediaGalleryItemLayout}`\n}\n\ntype MediaGallerySelectionChangeEventDetail = {\n\titem: IMediaGalleryItem;\n}\n\n// The allowed number of thumbnail columns on each size\n// (relevant when `showAllThumbnails` is enabled)\nconst COLUMNS_COUNT: Record<string, number> = {\n\t\"S\": 1,\n\t\"M\": 2,\n\t\"L\": 3,\n\t\"XL\": 4,\n};\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-media-gallery` component allows the user to browse through multimedia items. Currently,\n * the supported items are images and videos. The items should be defined using the `ui5-media-gallery-item`\n * component.\n *\n * The items are initially displayed as thumbnails. When the user selects a thumbnail, the corresponding item\n * is displayed in larger size.\n *\n * The component is responsive by default and adjusts the position of the menu with respect to viewport size,\n * but the application is able to further customize the layout via the provided API.\n *\n * ### Keyboard Handling\n * The `ui5-media-gallery` provides advanced keyboard handling.\n *\n * When the thumbnails menu is focused the following keyboard\n * shortcuts allow the user to navigate through the thumbnail items:\n *\n * - [Up] or [Down] - Navigates up and down the items\n * - [Home] - Navigates to first item\n * - [End] - Navigates to the last item\n * - [Space], [Enter] - Selects an item\n *\n * ### ES6 Module Import\n * `import \"@ui5/webcomponents-fiori/dist/MediaGallery.js\";`\n *\n * `import \"@ui5/webcomponents-fiori/dist/MediaGalleryItem.js\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.1.0\n */\n@customElement({\n\ttag: \"ui5-media-gallery\",\n\trenderer: litRender,\n\tstyles: [MediaGalleryCss],\n\ttemplate: MediaGalleryTemplate,\n\tdependencies: [\n\t\tMediaGalleryItem,\n\t\tButton,\n\t\tCarousel,\n\t],\n})\n\n/**\n * Fired when selection is changed by user interaction.\n * @param {HTMLElement} item the selected item.\n * @public\n */\n@event(\"selection-change\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the thumbnails overflow button is clicked.\n * @public\n */\n@event(\"overflow-click\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the display area is clicked.\n * The display area is the central area that contains\n * the enlarged content of the currently selected item.\n * @public\n */\n@event(\"display-area-click\", {\n\tbubbles: true,\n})\n\nclass MediaGallery extends UI5Element {\n\teventDetails!: {\n\t\t\"selection-change\": MediaGallerySelectionChangeEventDetail,\n\t\t\"overflow-click\": void,\n\t\t\"display-area-click\": void,\n\t}\n\t/**\n\t * If set to `true`, all thumbnails are rendered in a scrollable container.\n\t * If `false`, only up to five thumbnails are rendered, followed by\n\t * an overflow button that shows the count of the remaining thumbnails.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowAllThumbnails = false;\n\n\t/**\n\t * If enabled, a `display-area-click` event is fired\n\t * when the user clicks or taps on the display area.\n\t *\n\t * The display area is the central area that contains\n\t * the enlarged content of the currently selected item.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tinteractiveDisplayArea = false;\n\n\t/**\n\t * Determines the layout of the component.\n\t * @default \"Auto\"\n\t * @public\n\t */\n\t@property()\n\tlayout: `${MediaGalleryLayout}` = \"Auto\";\n\n\t/**\n\t * Determines the horizontal alignment of the thumbnails menu\n\t * vs. the central display area.\n\t * @default \"Left\"\n\t * @public\n\t */\n\t@property()\n\tmenuHorizontalAlign: `${MediaGalleryMenuHorizontalAlign}` = \"Left\";\n\n\t/**\n\t * Determines the vertical alignment of the thumbnails menu\n\t * vs. the central display area.\n\t * @default \"Bottom\"\n\t * @public\n\t */\n\t@property()\n\tmenuVerticalAlign: `${MediaGalleryMenuVerticalAlign}` = \"Bottom\";\n\n\t/**\n\t * Determines the actual applied layout type\n\t * (esp. needed when the app did not specify a fixed layout type\n\t * but selected `Auto` layout type).\n\t * @default \"Vertical\"\n\t * @private\n\t */\n\t@property()\n\teffectiveLayout: `${MediaGalleryLayout}` = \"Vertical\";\n\n\t/**\n\t * Defines the current media query size.\n\t * @private\n\t */\n\t@property()\n\tmediaRange = \"S\";\n\n\t/**\n\t * The number of items in the overflow.\n\t * @private\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_overflowSize = 0;\n\n\t/**\n\t * Defines the component items.\n\t *\n\t * **Note:** Only one selected item is allowed.\n\t *\n\t * **Note:** Use the `ui5-media-gallery-item` component to define the desired items.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: true,\n\t\t\"default\": true,\n\t})\n\titems!: Array<IMediaGalleryItem>;\n\n\t_itemNavigation: ItemNavigation;\n\t_onResize: () => void;\n\t_selectedItem?: IMediaGalleryItem;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._onResize = this._updateLayout.bind(this);\n\n\t\tthis._itemNavigation = new ItemNavigation(this, {\n\t\t\tnavigationMode: NavigationMode.Auto,\n\t\t\tgetItemsCallback: () => this._getFocusableItems(),\n\t\t});\n\t}\n\n\tonEnterDOM() {\n\t\t!isPhone() && ResizeHandler.register(this, this._onResize);\n\t}\n\n\tonExitDOM() {\n\t\t!isPhone() && ResizeHandler.deregister(this, this._onResize);\n\t}\n\n\tonAfterRendering() {\n\t\tthis._updateLayout();\n\t\tthis._updateSelection();\n\t}\n\n\t_updateSelection() {\n\t\tif (this.items.length === 0) {\n\t\t\tthis._selectedItem = undefined;\n\t\t\tif (this._mainItem) {\n\t\t\t\tconst oldContent = this._mainItem.displayedContent;\n\t\t\t\toldContent?.remove();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tlet itemToSelect = this.items.find(item => item.selected);\n\t\tif (!itemToSelect || !this._isSelectableItem(itemToSelect)) {\n\t\t\titemToSelect = this._findSelectableItem();\n\t\t}\n\t\tif (itemToSelect && itemToSelect !== this._selectedItem) {\n\t\t\tthis._selectItem(itemToSelect);\n\t\t}\n\t}\n\n\t_isSelectableItem(this: void, item: IMediaGalleryItem) {\n\t\treturn !item.disabled && !item.hidden;\n\t}\n\n\t_findSelectableItem() {\n\t\treturn this.items.find(this._isSelectableItem);\n\t}\n\n\t_updateMediaRange(width: number) {\n\t\tthis.mediaRange = MediaRange.getCurrentRange(MediaRange.RANGESETS.RANGE_4STEPS, width);\n\t}\n\n\t_updateLayout() {\n\t\tconst rootNode = this.getDomRef()!,\n\t\t\theight = rootNode.offsetHeight,\n\t\t\twidth = rootNode.offsetWidth;\n\n\t\tif (!width || !height || isPhone()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._updateMediaRange(width);\n\t\tthis.effectiveLayout = this._infereffectiveLayout();\n\t\tthis._overflowSize = this._calculateOverflowSize(width, height);\n\n\t\tthis._toggleDisplaySquareSize(this._shouldHaveSquareDisplay);\n\t\tthis._toggleMainItem9x16size(this._shouldHaveWideDisplay);\n\t}\n\n\t_calculateOverflowSize(width: number, height: number) {\n\t\tconst marginSize = MediaGallery.THUMBNAIL_MARGIN;\n\t\tlet columnHeight,\n\t\t\tcolumnsCount;\n\n\t\tif (this.showAllThumbnails) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tif (this.effectiveLayout === MediaGalleryLayout.Horizontal) {\n\t\t\tcolumnHeight = height - marginSize;\n\t\t\tcolumnsCount = this.showAllThumbnails ? COLUMNS_COUNT[this.mediaRange] : 1;\n\t\t} else {\n\t\t\tcolumnHeight = width - (marginSize * 2); // column is flexed to appear as a row in this case\n\t\t\tcolumnsCount = 1;\n\t\t}\n\t\treturn this._getOverflowSize(columnHeight, columnsCount);\n\t}\n\n\t_toggleDisplaySquareSize(enable: boolean) {\n\t\tthis._display!.style.width = \"\"; // restore default width\n\n\t\tif (enable) {\n\t\t\tconst marginSize = MediaGallery.THUMBNAIL_MARGIN,\n\t\t\t\twidth = this._display!.offsetWidth;\n\n\t\t\tlet availableHeight = this.getDomRef()!.offsetHeight - (2 * marginSize);\n\t\t\tif (this.effectiveLayout === MediaGalleryLayout.Vertical) {\n\t\t\t\tavailableHeight -= (MediaGallery.THUMBNAIL_HEIGHT + marginSize);\n\t\t\t}\n\n\t\t\tif (width > availableHeight) {\n\t\t\t\t// set to square\n\t\t\t\tthis._display!.style.width = `${availableHeight}px`;\n\t\t\t}\n\t\t}\n\t}\n\n\t_toggleMainItem9x16size(enable: boolean) {\n\t\tif (!this._mainItem) {\n\t\t\treturn;\n\t\t}\n\t\tconst width = this._mainItem.offsetWidth,\n\t\t\tcontentHeight = enable ? `${(width / 16) * 9}px` : \"\";\n\n\t\tthis._mainItem.contentHeight = contentHeight;\n\t}\n\n\t_infereffectiveLayout() {\n\t\tif (this.layout === MediaGalleryLayout.Auto) {\n\t\t\treturn (this._isPhoneSize) ? MediaGalleryLayout.Vertical\n\t\t\t\t: MediaGalleryLayout.Horizontal;\n\t\t}\n\t\treturn this.layout;\n\t}\n\n\t_getMaxAllowedThumbnailsInColumn(columnHeight: number) {\n\t\tlet maxAllowedItems = Math.floor(columnHeight / MediaGallery.THUMBNAIL_HEIGHT);\n\t\tif (!this.showAllThumbnails) {\n\t\t\tmaxAllowedItems = Math.min(maxAllowedItems, 5);\n\t\t}\n\t\treturn maxAllowedItems;\n\t}\n\n\t_getOverflowSize(columnHeight: number, columnsCount: number) {\n\t\tconst maxAlowedThumbnailsInColumn = this._getMaxAllowedThumbnailsInColumn(columnHeight),\n\t\t\toverflowSize = Math.max(0, this.items.length - maxAlowedThumbnailsInColumn * columnsCount);\n\t\tif (overflowSize === this.items.length || overflowSize === 0) {\n\t\t\treturn overflowSize;\n\t\t}\n\t\treturn overflowSize + 1; // overflow 1 extra item to make room for overflow btn as well\n\t}\n\n\t_getFocusableItems() {\n\t\tif (!this._showThumbnails) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst items: Array<ITabbable> = this._visibleItems.filter(item => !item.disabled);\n\n\t\tif (this._overflowBtn) {\n\t\t\titems.push(this._overflowBtn);\n\t\t}\n\t\treturn items;\n\t}\n\n\t_selectItem(item: IMediaGalleryItem, userInteraction = false) {\n\t\tif (item === this._selectedItem) {\n\t\t\treturn;\n\t\t}\n\t\tthis._selectedItem = item;\n\n\t\tthis._updateSelectedFlag(item);\n\t\tthis._itemNavigation.setCurrentItem(item);\n\n\t\tif (userInteraction) {\n\t\t\tthis.fireDecoratorEvent(\"selection-change\", { item });\n\t\t}\n\n\t\tif (isPhone()) {\n\t\t\tthis._selectItemOnPhone(item);\n\t\t} else {\n\t\t\tthis._displayContent(item);\n\t\t}\n\t}\n\n\t_updateSelectedFlag(itemToSelect: IMediaGalleryItem) {\n\t\tthis.items.forEach(next => { next.selected = false; });\n\t\titemToSelect.selected = true;\n\t}\n\n\t_selectItemOnPhone(item: IMediaGalleryItem) {\n\t\tconst selectableItemIndex = this._selectableItems.indexOf(item),\n\t\t\tcarousel = this._carousel;\n\t\tcarousel && carousel.navigateTo(selectableItemIndex);\n\t}\n\n\t_displayContent(item: IMediaGalleryItem) {\n\t\tlet clone;\n\t\tconst mainItem = this._mainItem,\n\t\t\toldContent = mainItem!.displayedContent,\n\t\t\tnewContent = item.displayedContent;\n\n\t\tmainItem!._thumbnailDesign = false;\n\t\toldContent && oldContent.remove();\n\n\t\tif (newContent) {\n\t\t\tclone = newContent.cloneNode(true);\n\t\t\tmainItem!.layout = item.layout;\n\t\t\tmainItem!.appendChild(clone);\n\t\t}\n\t}\n\n\t_onThumbnailClick(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tconst item = target.closest<IMediaGalleryItem>(\"[ui5-media-gallery-item]\")!;\n\n\t\tif (item.disabled) {\n\t\t\treturn;\n\t\t}\n\t\tif (item !== this._selectedItem) {\n\t\t\tthis._selectItem(item, true /* userInteraction */);\n\t\t}\n\t}\n\n\t_onOverflowBtnClick() {\n\t\tthis.fireDecoratorEvent(\"overflow-click\");\n\t}\n\n\t_onDisplayAreaClick() {\n\t\tif (!this.interactiveDisplayArea) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"display-area-click\");\n\t}\n\n\t_onCarouselNavigate(e: CustomEvent<CarouselNavigateEventDetail>) {\n\t\tconst selectedIndex = e.detail.selectedIndex,\n\t\t\titem = this._selectableItems[selectedIndex];\n\n\t\tthis.fireDecoratorEvent(\"selection-change\", { item });\n\t}\n\n\tget _mainItemTabIndex() {\n\t\treturn this.interactiveDisplayArea ? 0 : undefined;\n\t}\n\n\tget _selectableItems() {\n\t\treturn this.items.filter(this._isSelectableItem);\n\t}\n\n\tget _carousel() {\n\t\treturn this.shadowRoot!.querySelector<Carousel>(\"[ui5-carousel]\");\n\t}\n\n\tget _display() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-media-gallery-display\");\n\t}\n\n\tget _mainItem() {\n\t\treturn this.shadowRoot!.querySelector<MediaGalleryItem>(\".ui5-media-gallery-display [ui5-media-gallery-item]\");\n\t}\n\n\tget _overflowBtn() {\n\t\treturn this.shadowRoot!.querySelector<Button>(\".ui5-media-gallery-overflow [ui5-button]\");\n\t}\n\n\tget _visibleItems() {\n\t\tconst visibleItemsCount = this.items.length - this._overflowSize;\n\t\treturn this.items.slice(0, visibleItemsCount);\n\t}\n\n\tget _isPhonePlatform() {\n\t\treturn isPhone();\n\t}\n\n\tget _showThumbnails() {\n\t\treturn !isPhone();\n\t}\n\n\tget _showOverflowBtn() {\n\t\treturn this._overflowSize > 0;\n\t}\n\n\tget _isPhoneSize() {\n\t\treturn this.mediaRange === \"S\";\n\t}\n\n\tget _mainItemHasWideLayout() {\n\t\treturn this._mainItem && (this._mainItem.layout === MediaGalleryItemLayout.Wide);\n\t}\n\n\tget _shouldHaveWideDisplay() {\n\t\treturn !!this._mainItemHasWideLayout\n\t\t\t&& this.showAllThumbnails\n\t\t\t&& (this.effectiveLayout === MediaGalleryLayout.Horizontal);\n\t}\n\n\tget _shouldHaveSquareDisplay() {\n\t\t// by default it should be square\n\t\t// with the only exception when a wide 9*16 item should be displayed\n\t\treturn !this._shouldHaveWideDisplay;\n\t}\n\n\tstatic get THUMBNAIL_HEIGHT() {\n\t\treturn 80; // px\n\t}\n\n\tstatic get THUMBNAIL_MARGIN() {\n\t\treturn 16; // px\n\t}\n}\n\nMediaGallery.define();\n\nexport default MediaGallery;\n\nexport type {\n\tMediaGallerySelectionChangeEventDetail,\n\tIMediaGalleryItem,\n};\n"]}
|
|
@@ -26,6 +26,11 @@ import type { IMediaGalleryItem } from "./MediaGallery.js";
|
|
|
26
26
|
* @since 1.1.0
|
|
27
27
|
*/
|
|
28
28
|
declare class MediaGalleryItem extends UI5Element implements IMediaGalleryItem {
|
|
29
|
+
eventDetails: {
|
|
30
|
+
click: {
|
|
31
|
+
item: MediaGalleryItem;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
29
34
|
/**
|
|
30
35
|
* Defines the selected state of the component.
|
|
31
36
|
* @default false
|
package/dist/MediaGalleryItem.js
CHANGED
|
@@ -12,7 +12,7 @@ import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
|
12
12
|
import "@ui5/webcomponents-icons/dist/background.js";
|
|
13
13
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
14
14
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
15
|
-
import event from "@ui5/webcomponents-base/dist/decorators/event.js";
|
|
15
|
+
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
16
16
|
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
17
17
|
// Styles
|
|
18
18
|
import MediaGalleryItemCss from "./generated/themes/MediaGalleryItem.css.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaGalleryItem.js","sourceRoot":"","sources":["../src/MediaGalleryItem.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACjE,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,6CAA6C,CAAC;AACrD,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAInE,SAAS;AACT,OAAO,mBAAmB,MAAM,4CAA4C,CAAC;AAE7E,WAAW;AACX,OAAO,wBAAwB,MAAM,uDAAuD,CAAC;AAE7F;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAcH,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,UAAU;IAoFxC;QACC,KAAK,EAAE,CAAC;QApFT;;;;WAIG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAEjB;;;;WAIG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAEjB;;;;WAIG;QAEH,WAAM,GAAgC,QAAQ,CAAC;QAE/C;;WAEG;QAEH,iBAAY,GAAG,KAAK,CAAC;QAErB;;WAEG;QAEH,YAAO,GAAG,KAAK,CAAA;QAEf;;WAEG;QAEH,0BAAqB,GAAG,KAAK,CAAC;QAE9B;;WAEG;QAEH,uBAAkB,GAAG,KAAK,CAAC;QAE3B;;WAEG;QAEH,qBAAgB,GAAG,KAAK,CAAC;QAkCxB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IACjC,CAAC;IAED,UAAU;QACT,IAAI,CAAC,gBAAgB,GAAG,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzD,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,CAAC;IAED,IAAI,qBAAqB;QACxB,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;IACpD,CAAC;IAED,IAAI,mBAAmB;QACtB,OAAO,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC;IAC7D,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,qBAAqB,CAAC;IAC5D,CAAC;IAED,IAAI,WAAW;QACd,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,mBAAmB,CAAC;IACxD,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;IACxD,CAAC;IAED,IAAI,mBAAmB;QACtB,OAAO,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,qBAAqB,CAAC;IAC9D,CAAC;IAED,IAAI,MAAM;QACT,OAAO;YACN,OAAO,EAAE;gBACR,MAAM,EAAE,IAAI,CAAC,aAAa;aAC1B;SACD,CAAC;IACH,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACjD,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC7B,CAAC;IAED,oBAAoB;QACnB,IAAI,QAAQ,EACX,OAAO,CAAC;QACT,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACtG,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,CAAC,aAAa;YAC9C,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAA8B,EAAE,QAAQ,CAAC,CAAC;YAC/E,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACtG,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,CAAC,aAAa;YACjD,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrD,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAoC,EAAE,QAAQ,CAAC,CAAC;YACrF,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7D,CAAC;IACF,CAAC;IAED,gBAAgB,CAAC,OAAyB,EAAE,QAA2C;QACtF,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,KAAK,KAAK,EACtC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,GAAG,EAAE,CAAC;YACT,QAAQ,CAAC,GAAG,CAAC,CAAC;YACd,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,0BAA0B;oBACnD,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;YACF,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;gBACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,0BAA0B;oBACnD,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;YACF,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAED,yBAAyB,CAAC,KAAuB;QAChD,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC;IACpF,CAAC;IAED,sBAAsB,CAAC,KAAuB;QAC7C,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC;IACjF,CAAC;IAED,UAAU,CAAC,CAAgB;QAC1B,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,CAAC,CAAC,cAAc,EAAE,CAAC;QACpB,CAAC;QAED,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC;IACF,CAAC;IAED,QAAQ,CAAC,CAAgB;QACxB,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC;IACF,CAAC;IAED,cAAc;QACb,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;CACD,CAAA;AAzMA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kDACX;AAQjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kDACX;AAQjB;IADC,QAAQ,EAAE;gDACoC;AAM/C;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;sDACP;AAMrB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDACb;AAMf;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+DACE;AAM9B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4DACD;AAM3B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0DACH;AAMzB;IADC,QAAQ,EAAE;wDACa;AAMxB;IADC,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;uDACT;AAOvB;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;iDAChB;AAO7B;IADC,IAAI,EAAE;mDACwB;AA/E1B,gBAAgB;IAbrB,aAAa,CAAC;QACd,GAAG,EAAE,wBAAwB;QAC7B,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,mBAAmB;QAC3B,QAAQ,EAAE,wBAAwB;QAClC,YAAY,EAAE,CAAC,IAAI,CAAC;KACpB,CAAC;IACF;;OAEG;;IACF,KAAK,CAAC,OAAO,EAAE;QACf,OAAO,EAAE,IAAI;KACb,CAAC;GACI,gBAAgB,CAgNrB;AAED,gBAAgB,CAAC,MAAM,EAAE,CAAC;AAE1B,eAAe,gBAAgB,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isSpace, isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/background.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport type MediaGalleryItemLayout from \"./types/MediaGalleryItemLayout.js\";\nimport type { IMediaGalleryItem } from \"./MediaGallery.js\";\n\n// Styles\nimport MediaGalleryItemCss from \"./generated/themes/MediaGalleryItem.css.js\";\n\n// Template\nimport MediaGalleryItemTemplate from \"./generated/templates/MediaGalleryItemTemplate.lit.js\";\n\n/**\n * @class\n * ### Overview\n * The `ui5-media-gallery-item` web component represents the items displayed in the\n * `ui5-media-gallery` web component.\n *\n * **Note:** `ui5-media-gallery-item` is not supported when used outside of `ui5-media-gallery`.\n *\n * ### Keyboard Handling\n * The `ui5-media-gallery` provides advanced keyboard handling.\n * When focused, the user can use the following keyboard\n * shortcuts in order to perform a navigation:\n *\n * - [Space] / [Enter] or [Return] - Trigger `ui5-click` event\n *\n * ### ES6 Module Import\n * `import \"@ui5/webcomponents-fiori/dist/MediaGalleryItem.js\";` (comes with `ui5-media-gallery`)\n * @constructor\n * @extends UI5Element\n * @public\n * @implements {IMediaGalleryItem}\n * @since 1.1.0\n */\n@customElement({\n\ttag: \"ui5-media-gallery-item\",\n\trenderer: litRender,\n\tstyles: MediaGalleryItemCss,\n\ttemplate: MediaGalleryItemTemplate,\n\tdependencies: [Icon],\n})\n/**\n * @private\n */\n@event(\"click\", {\n\tbubbles: true,\n})\nclass MediaGalleryItem extends UI5Element implements IMediaGalleryItem {\n\t/**\n\t * Defines the selected state of the component.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tselected = false;\n\n\t/**\n\t * Defines whether the component is in disabled state.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Determines the layout of the item container.\n\t * @default \"Square\"\n\t * @public\n\t */\n\t@property()\n\tlayout: `${MediaGalleryItemLayout}` = \"Square\";\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_interactive = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_square = false\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_contentImageNotFound = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_thumbnailNotFound = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_thumbnailDesign = false;\n\n\t/**\n\t * @private\n\t */\n\t@property()\n\tforcedTabIndex?: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\tcontentHeight?: string;\n\n\t/**\n\t * Defines the content of the component.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true })\n\tcontent!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the content of the thumbnail.\n\t * @public\n\t */\n\t@slot()\n\tthumbnail!: Array<HTMLElement>;\n\n\t_monitoredThumbnail: HTMLElement | null;\n\t_monitoredContent: HTMLElement | null;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._monitoredContent = null;\n\t\tthis._monitoredThumbnail = null;\n\t}\n\n\tonEnterDOM() {\n\t\tthis._thumbnailDesign = !isPhone();\n\t\tthis._interactive = !isPhone();\n\t\tthis._square = true;\n\t}\n\n\tget _thumbnail() {\n\t\treturn this.thumbnail.length ? this.thumbnail[0] : null;\n\t}\n\n\tget displayedContent() {\n\t\treturn this.content.length ? this.content[0] : null;\n\t}\n\n\tget _isThubmnailAvailable() {\n\t\treturn this._thumbnail && !this._thumbnailNotFound;\n\t}\n\n\tget _isContentAvailable() {\n\t\treturn this.displayedContent && !this._contentImageNotFound;\n\t}\n\n\tget _useThumbnail() {\n\t\treturn this._thumbnailDesign && this._isThubmnailAvailable;\n\t}\n\n\tget _useContent() {\n\t\treturn !this._useThumbnail && this._isContentAvailable;\n\t}\n\n\tget effectiveTabIndex() {\n\t\treturn this.disabled ? undefined : this.forcedTabIndex;\n\t}\n\n\tget _showBackgroundIcon() {\n\t\treturn this._thumbnailNotFound || this._contentImageNotFound;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\twrapper: {\n\t\t\t\theight: this.contentHeight,\n\t\t\t},\n\t\t};\n\t}\n\n\tget _role() {\n\t\treturn this._interactive ? \"button\" : undefined;\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._monitorLoadingError();\n\t}\n\n\t_monitorLoadingError() {\n\t\tlet callback,\n\t\t\tsuccess;\n\t\tif (this._thumbnailDesign && this.thumbnail.length && (this._monitoredThumbnail !== this._thumbnail)) {\n\t\t\tthis._thumbnailNotFound = false; // reset flag\n\t\t\tcallback = this._updateThumbnailLoaded.bind(this);\n\t\t\tsuccess = this._attachListeners(this._thumbnail as HTMLImageElement, callback);\n\t\t\tsuccess && (this._monitoredThumbnail = this._thumbnail);\n\t\t}\n\t\tif (!this._useThumbnail && this.content.length && (this._monitoredContent !== this.displayedContent)) {\n\t\t\tthis._contentImageNotFound = false; // reset flag\n\t\t\tcallback = this._updateContentImageLoaded.bind(this);\n\t\t\tsuccess = this._attachListeners(this.displayedContent as HTMLImageElement, callback);\n\t\t\tsuccess && (this._monitoredContent = this.displayedContent);\n\t\t}\n\t}\n\n\t_attachListeners(element: HTMLImageElement, callback: (image: HTMLImageElement) => void) {\n\t\tconst isImg = element.tagName === \"IMG\",\n\t\t\timg = isImg ? element : element.querySelector(\"img\");\n\t\tif (img) {\n\t\t\tcallback(img);\n\t\t\timg.addEventListener(\"error\", () => {\n\t\t\t\tif (this.contains(img)) { // img still belongs to us\n\t\t\t\t\tcallback(img);\n\t\t\t\t}\n\t\t\t});\n\t\t\timg.addEventListener(\"load\", () => {\n\t\t\t\tif (this.contains(img)) { // img still belongs to us\n\t\t\t\t\tcallback(img);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn true;\n\t\t}\n\t}\n\n\t_updateContentImageLoaded(image: HTMLImageElement) {\n\t\tthis._contentImageNotFound = image.naturalHeight === 0 && image.naturalWidth === 0;\n\t}\n\n\t_updateThumbnailLoaded(image: HTMLImageElement) {\n\t\tthis._thumbnailNotFound = image.naturalHeight === 0 && image.naturalWidth === 0;\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis._fireItemClick();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._fireItemClick();\n\t\t}\n\t}\n\n\t_fireItemClick() {\n\t\tthis.fireDecoratorEvent(\"click\", { item: this });\n\t}\n}\n\nMediaGalleryItem.define();\n\nexport default MediaGalleryItem;\n"]}
|
|
1
|
+
{"version":3,"file":"MediaGalleryItem.js","sourceRoot":"","sources":["../src/MediaGalleryItem.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACjE,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,6CAA6C,CAAC;AACrD,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAInE,SAAS;AACT,OAAO,mBAAmB,MAAM,4CAA4C,CAAC;AAE7E,WAAW;AACX,OAAO,wBAAwB,MAAM,uDAAuD,CAAC;AAE7F;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAcH,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,UAAU;IAuFxC;QACC,KAAK,EAAE,CAAC;QApFT;;;;WAIG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAEjB;;;;WAIG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAEjB;;;;WAIG;QAEH,WAAM,GAAgC,QAAQ,CAAC;QAE/C;;WAEG;QAEH,iBAAY,GAAG,KAAK,CAAC;QAErB;;WAEG;QAEH,YAAO,GAAG,KAAK,CAAA;QAEf;;WAEG;QAEH,0BAAqB,GAAG,KAAK,CAAC;QAE9B;;WAEG;QAEH,uBAAkB,GAAG,KAAK,CAAC;QAE3B;;WAEG;QAEH,qBAAgB,GAAG,KAAK,CAAC;QAkCxB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IACjC,CAAC;IAED,UAAU;QACT,IAAI,CAAC,gBAAgB,GAAG,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzD,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,CAAC;IAED,IAAI,qBAAqB;QACxB,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;IACpD,CAAC;IAED,IAAI,mBAAmB;QACtB,OAAO,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC;IAC7D,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,qBAAqB,CAAC;IAC5D,CAAC;IAED,IAAI,WAAW;QACd,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,mBAAmB,CAAC;IACxD,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;IACxD,CAAC;IAED,IAAI,mBAAmB;QACtB,OAAO,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,qBAAqB,CAAC;IAC9D,CAAC;IAED,IAAI,MAAM;QACT,OAAO;YACN,OAAO,EAAE;gBACR,MAAM,EAAE,IAAI,CAAC,aAAa;aAC1B;SACD,CAAC;IACH,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACjD,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC7B,CAAC;IAED,oBAAoB;QACnB,IAAI,QAAQ,EACX,OAAO,CAAC;QACT,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACtG,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,CAAC,aAAa;YAC9C,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAA8B,EAAE,QAAQ,CAAC,CAAC;YAC/E,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACtG,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,CAAC,aAAa;YACjD,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrD,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAoC,EAAE,QAAQ,CAAC,CAAC;YACrF,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7D,CAAC;IACF,CAAC;IAED,gBAAgB,CAAC,OAAyB,EAAE,QAA2C;QACtF,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,KAAK,KAAK,EACtC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,GAAG,EAAE,CAAC;YACT,QAAQ,CAAC,GAAG,CAAC,CAAC;YACd,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,0BAA0B;oBACnD,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;YACF,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;gBACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,0BAA0B;oBACnD,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;YACF,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAED,yBAAyB,CAAC,KAAuB;QAChD,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC;IACpF,CAAC;IAED,sBAAsB,CAAC,KAAuB;QAC7C,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC;IACjF,CAAC;IAED,UAAU,CAAC,CAAgB;QAC1B,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,CAAC,CAAC,cAAc,EAAE,CAAC;QACpB,CAAC;QAED,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC;IACF,CAAC;IAED,QAAQ,CAAC,CAAgB;QACxB,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC;IACF,CAAC;IAED,cAAc;QACb,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;CACD,CAAA;AAzMA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kDACX;AAQjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kDACX;AAQjB;IADC,QAAQ,EAAE;gDACoC;AAM/C;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;sDACP;AAMrB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDACb;AAMf;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+DACE;AAM9B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4DACD;AAM3B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0DACH;AAMzB;IADC,QAAQ,EAAE;wDACa;AAMxB;IADC,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;uDACT;AAOvB;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;iDAChB;AAO7B;IADC,IAAI,EAAE;mDACwB;AAlF1B,gBAAgB;IAbrB,aAAa,CAAC;QACd,GAAG,EAAE,wBAAwB;QAC7B,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,mBAAmB;QAC3B,QAAQ,EAAE,wBAAwB;QAClC,YAAY,EAAE,CAAC,IAAI,CAAC;KACpB,CAAC;IACF;;OAEG;;IACF,KAAK,CAAC,OAAO,EAAE;QACf,OAAO,EAAE,IAAI;KACb,CAAC;GACI,gBAAgB,CAmNrB;AAED,gBAAgB,CAAC,MAAM,EAAE,CAAC;AAE1B,eAAe,gBAAgB,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isSpace, isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/background.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport type MediaGalleryItemLayout from \"./types/MediaGalleryItemLayout.js\";\nimport type { IMediaGalleryItem } from \"./MediaGallery.js\";\n\n// Styles\nimport MediaGalleryItemCss from \"./generated/themes/MediaGalleryItem.css.js\";\n\n// Template\nimport MediaGalleryItemTemplate from \"./generated/templates/MediaGalleryItemTemplate.lit.js\";\n\n/**\n * @class\n * ### Overview\n * The `ui5-media-gallery-item` web component represents the items displayed in the\n * `ui5-media-gallery` web component.\n *\n * **Note:** `ui5-media-gallery-item` is not supported when used outside of `ui5-media-gallery`.\n *\n * ### Keyboard Handling\n * The `ui5-media-gallery` provides advanced keyboard handling.\n * When focused, the user can use the following keyboard\n * shortcuts in order to perform a navigation:\n *\n * - [Space] / [Enter] or [Return] - Trigger `ui5-click` event\n *\n * ### ES6 Module Import\n * `import \"@ui5/webcomponents-fiori/dist/MediaGalleryItem.js\";` (comes with `ui5-media-gallery`)\n * @constructor\n * @extends UI5Element\n * @public\n * @implements {IMediaGalleryItem}\n * @since 1.1.0\n */\n@customElement({\n\ttag: \"ui5-media-gallery-item\",\n\trenderer: litRender,\n\tstyles: MediaGalleryItemCss,\n\ttemplate: MediaGalleryItemTemplate,\n\tdependencies: [Icon],\n})\n/**\n * @private\n */\n@event(\"click\", {\n\tbubbles: true,\n})\nclass MediaGalleryItem extends UI5Element implements IMediaGalleryItem {\n\teventDetails!: {\n\t\tclick: { item: MediaGalleryItem },\n\t}\n\t/**\n\t * Defines the selected state of the component.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tselected = false;\n\n\t/**\n\t * Defines whether the component is in disabled state.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Determines the layout of the item container.\n\t * @default \"Square\"\n\t * @public\n\t */\n\t@property()\n\tlayout: `${MediaGalleryItemLayout}` = \"Square\";\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_interactive = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_square = false\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_contentImageNotFound = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_thumbnailNotFound = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_thumbnailDesign = false;\n\n\t/**\n\t * @private\n\t */\n\t@property()\n\tforcedTabIndex?: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\tcontentHeight?: string;\n\n\t/**\n\t * Defines the content of the component.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true })\n\tcontent!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the content of the thumbnail.\n\t * @public\n\t */\n\t@slot()\n\tthumbnail!: Array<HTMLElement>;\n\n\t_monitoredThumbnail: HTMLElement | null;\n\t_monitoredContent: HTMLElement | null;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._monitoredContent = null;\n\t\tthis._monitoredThumbnail = null;\n\t}\n\n\tonEnterDOM() {\n\t\tthis._thumbnailDesign = !isPhone();\n\t\tthis._interactive = !isPhone();\n\t\tthis._square = true;\n\t}\n\n\tget _thumbnail() {\n\t\treturn this.thumbnail.length ? this.thumbnail[0] : null;\n\t}\n\n\tget displayedContent() {\n\t\treturn this.content.length ? this.content[0] : null;\n\t}\n\n\tget _isThubmnailAvailable() {\n\t\treturn this._thumbnail && !this._thumbnailNotFound;\n\t}\n\n\tget _isContentAvailable() {\n\t\treturn this.displayedContent && !this._contentImageNotFound;\n\t}\n\n\tget _useThumbnail() {\n\t\treturn this._thumbnailDesign && this._isThubmnailAvailable;\n\t}\n\n\tget _useContent() {\n\t\treturn !this._useThumbnail && this._isContentAvailable;\n\t}\n\n\tget effectiveTabIndex() {\n\t\treturn this.disabled ? undefined : this.forcedTabIndex;\n\t}\n\n\tget _showBackgroundIcon() {\n\t\treturn this._thumbnailNotFound || this._contentImageNotFound;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\twrapper: {\n\t\t\t\theight: this.contentHeight,\n\t\t\t},\n\t\t};\n\t}\n\n\tget _role() {\n\t\treturn this._interactive ? \"button\" : undefined;\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._monitorLoadingError();\n\t}\n\n\t_monitorLoadingError() {\n\t\tlet callback,\n\t\t\tsuccess;\n\t\tif (this._thumbnailDesign && this.thumbnail.length && (this._monitoredThumbnail !== this._thumbnail)) {\n\t\t\tthis._thumbnailNotFound = false; // reset flag\n\t\t\tcallback = this._updateThumbnailLoaded.bind(this);\n\t\t\tsuccess = this._attachListeners(this._thumbnail as HTMLImageElement, callback);\n\t\t\tsuccess && (this._monitoredThumbnail = this._thumbnail);\n\t\t}\n\t\tif (!this._useThumbnail && this.content.length && (this._monitoredContent !== this.displayedContent)) {\n\t\t\tthis._contentImageNotFound = false; // reset flag\n\t\t\tcallback = this._updateContentImageLoaded.bind(this);\n\t\t\tsuccess = this._attachListeners(this.displayedContent as HTMLImageElement, callback);\n\t\t\tsuccess && (this._monitoredContent = this.displayedContent);\n\t\t}\n\t}\n\n\t_attachListeners(element: HTMLImageElement, callback: (image: HTMLImageElement) => void) {\n\t\tconst isImg = element.tagName === \"IMG\",\n\t\t\timg = isImg ? element : element.querySelector(\"img\");\n\t\tif (img) {\n\t\t\tcallback(img);\n\t\t\timg.addEventListener(\"error\", () => {\n\t\t\t\tif (this.contains(img)) { // img still belongs to us\n\t\t\t\t\tcallback(img);\n\t\t\t\t}\n\t\t\t});\n\t\t\timg.addEventListener(\"load\", () => {\n\t\t\t\tif (this.contains(img)) { // img still belongs to us\n\t\t\t\t\tcallback(img);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn true;\n\t\t}\n\t}\n\n\t_updateContentImageLoaded(image: HTMLImageElement) {\n\t\tthis._contentImageNotFound = image.naturalHeight === 0 && image.naturalWidth === 0;\n\t}\n\n\t_updateThumbnailLoaded(image: HTMLImageElement) {\n\t\tthis._thumbnailNotFound = image.naturalHeight === 0 && image.naturalWidth === 0;\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis._fireItemClick();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._fireItemClick();\n\t\t}\n\t}\n\n\t_fireItemClick() {\n\t\tthis.fireDecoratorEvent(\"click\", { item: this });\n\t}\n}\n\nMediaGalleryItem.define();\n\nexport default MediaGalleryItem;\n"]}
|
|
@@ -41,6 +41,12 @@ type NotificationItemCloseEventDetail = NotificationItemEventDetail;
|
|
|
41
41
|
* @public
|
|
42
42
|
*/
|
|
43
43
|
declare class NotificationList extends UI5Element {
|
|
44
|
+
eventDetails: {
|
|
45
|
+
"item-click": NotificationItemClickEventDetail;
|
|
46
|
+
"item-close": NotificationItemCloseEventDetail;
|
|
47
|
+
"item-toggle": NotificationItemToggleEventDetail;
|
|
48
|
+
"load-more": void;
|
|
49
|
+
};
|
|
44
50
|
/**
|
|
45
51
|
* Defines the items of the component.
|
|
46
52
|
*
|
package/dist/NotificationList.js
CHANGED
|
@@ -9,7 +9,7 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
|
|
|
9
9
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
10
10
|
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
11
11
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
12
|
-
import event from "@ui5/webcomponents-base/dist/decorators/event.js";
|
|
12
|
+
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
13
13
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
14
14
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
15
15
|
import NotificationListInternal from "./NotificationListInternal.js";
|
|
@@ -109,12 +109,6 @@ NotificationList = NotificationList_1 = __decorate([
|
|
|
109
109
|
*/
|
|
110
110
|
,
|
|
111
111
|
event("item-click", {
|
|
112
|
-
detail: {
|
|
113
|
-
/**
|
|
114
|
-
* @public
|
|
115
|
-
*/
|
|
116
|
-
item: { type: HTMLElement },
|
|
117
|
-
},
|
|
118
112
|
bubbles: true,
|
|
119
113
|
cancelable: true,
|
|
120
114
|
})
|
|
@@ -125,12 +119,6 @@ NotificationList = NotificationList_1 = __decorate([
|
|
|
125
119
|
*/
|
|
126
120
|
,
|
|
127
121
|
event("item-close", {
|
|
128
|
-
detail: {
|
|
129
|
-
/**
|
|
130
|
-
* @public
|
|
131
|
-
*/
|
|
132
|
-
item: { type: HTMLElement },
|
|
133
|
-
},
|
|
134
122
|
bubbles: true,
|
|
135
123
|
cancelable: true,
|
|
136
124
|
})
|
|
@@ -142,12 +130,6 @@ NotificationList = NotificationList_1 = __decorate([
|
|
|
142
130
|
*/
|
|
143
131
|
,
|
|
144
132
|
event("item-toggle", {
|
|
145
|
-
detail: {
|
|
146
|
-
/**
|
|
147
|
-
* @public
|
|
148
|
-
*/
|
|
149
|
-
item: { type: HTMLElement },
|
|
150
|
-
},
|
|
151
133
|
bubbles: true,
|
|
152
134
|
cancelable: true,
|
|
153
135
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationList.js","sourceRoot":"","sources":["../src/NotificationList.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"NotificationList.js","sourceRoot":"","sources":["../src/NotificationList.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type {\n\tListItemClickEventDetail,\n\tListItemToggleEventDetail,\n\tListItemCloseEventDetail,\n} from \"@ui5/webcomponents/dist/List.js\";\nimport type NotificationListItemBase from \"./NotificationListItemBase.js\";\nimport NotificationListInternal from \"./NotificationListInternal.js\";\n\n// Template\nimport NotificationListTemplate from \"./generated/templates/NotificationListTemplate.lit.js\";\n\n// Styles\nimport NotificationListCss from \"./generated/themes/NotificationList.css.js\";\n\n// Texts\nimport {\n\tNOTIFICATION_LIST_ACCESSIBLE_NAME,\n} from \"./generated/i18n/i18n-defaults.js\";\n\ntype NotificationItemEventDetail = {\n\titem: NotificationListItemBase,\n}\n\ntype NotificationItemClickEventDetail = NotificationItemEventDetail;\ntype NotificationItemToggleEventDetail = NotificationItemEventDetail;\ntype NotificationItemCloseEventDetail = NotificationItemEventDetail;\n\n/**\n * @class\n * ### Overview\n * The `ui5-notification-list` web component represents\n * a container for `ui5-li-notification-group` and `ui5-li-notification`.\n *\n * ### Keyboard Handling\n *\n * #### Basic Navigation\n * The `ui5-notification-list` provides advanced keyboard handling.\n * When a list is focused the user can use the following keyboard\n * shortcuts in order to perform a navigation:\n *\n * - [Up] or [Left] - Navigates up the items\n * - [Down] or [Right] - Navigates down the items\n * - [Home] - Navigates to first item\n * - [End] - Navigates to the last item\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 * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/NotificationList.js\";``\n * @constructor\n * @extends UI5Element\n * @since 2.0.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-notification-list\",\n\trenderer: litRender,\n\tlanguageAware: true,\n\tstyles: [NotificationListCss],\n\ttemplate: NotificationListTemplate,\n\tdependencies: [\n\t\tNotificationListInternal,\n\t],\n})\n\n/**\n * Fired when an item is clicked.\n * @param {HTMLElement} item The clicked item.\n * @public\n */\n@event(\"item-click\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired when the `Close` button of any item is clicked.\n * @param {HTMLElement} item the item about to be closed.\n * @public\n */\n@event(\"item-close\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired when an item is toggled.\n *\n * @param {HTMLElement} item the toggled item.\n * @public\n */\n@event(\"item-toggle\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\nclass NotificationList extends UI5Element {\n\teventDetails!: {\n\t\t\"item-click\": NotificationItemClickEventDetail,\n\t\t\"item-close\": NotificationItemCloseEventDetail,\n\t\t\"item-toggle\": NotificationItemToggleEventDetail,\n\t\t\"load-more\": void,\n\t}\n\t/**\n\t * Defines the items of the component.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true })\n\titems!: Array<NotificationListItemBase>;\n\n\t/**\n\t * Defines the text that is displayed when the component contains no items.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tnoDataText?: string;\n\n\tget _accessibleName() {\n\t\treturn NotificationList.i18nFioriBundle.getText(NOTIFICATION_LIST_ACCESSIBLE_NAME);\n\t}\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nFioriBundle: I18nBundle;\n\n\tgetEnabledItems() {\n\t\treturn this.innerList?.getEnabledItems() || [];\n\t}\n\n\tget innerList() {\n\t\treturn this.shadowRoot?.querySelector(\"[ui5-notification-list-internal]\") as NotificationListInternal;\n\t}\n\n\t_onItemClick(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst item = e.detail.item as NotificationListItemBase;\n\n\t\tif (!this.fireDecoratorEvent(\"item-click\", { item })) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onItemClose(e: CustomEvent<ListItemCloseEventDetail>) {\n\t\tconst item = e.detail.item as NotificationListItemBase;\n\n\t\tif (!this.fireDecoratorEvent(\"item-close\", { item })) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onItemToggle(e: CustomEvent<ListItemToggleEventDetail>) {\n\t\tconst item = e.detail.item as NotificationListItemBase;\n\n\t\tif (!this.fireDecoratorEvent(\"item-toggle\", { item })) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onLoadMore() {\n\t\tthis.fireDecoratorEvent(\"load-more\");\n\t}\n}\n\nNotificationList.define();\n\nexport default NotificationList;\nexport type {\n\tNotificationItemClickEventDetail,\n\tNotificationItemToggleEventDetail,\n\tNotificationItemCloseEventDetail,\n};\n"]}
|
|
@@ -41,6 +41,10 @@ type NotificationListGroupItemToggleEventDetail = {
|
|
|
41
41
|
* @public
|
|
42
42
|
*/
|
|
43
43
|
declare class NotificationListGroupItem extends NotificationListItemBase {
|
|
44
|
+
eventDetails: NotificationListItemBase["eventDetails"] & {
|
|
45
|
+
toggle: NotificationListGroupItemToggleEventDetail;
|
|
46
|
+
"load-more": void;
|
|
47
|
+
};
|
|
44
48
|
/**
|
|
45
49
|
* Defines if the group is collapsed or expanded.
|
|
46
50
|
* @default false
|
|
@@ -9,7 +9,7 @@ import { isSpace, isPlus, isMinus, isLeft, isRight, } from "@ui5/webcomponents-b
|
|
|
9
9
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
10
10
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
11
11
|
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
12
|
-
import event from "@ui5/webcomponents-base/dist/decorators/event.js";
|
|
12
|
+
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
13
13
|
import Button from "@ui5/webcomponents/dist/Button.js";
|
|
14
14
|
import BusyIndicator from "@ui5/webcomponents/dist/BusyIndicator.js";
|
|
15
15
|
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationListGroupItem.js","sourceRoot":"","sources":["../src/NotificationListGroupItem.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tisSpace, isPlus, isMinus, isLeft, isRight,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\nimport BusyIndicator from \"@ui5/webcomponents/dist/BusyIndicator.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport type NotificationListGrowingMode from \"@ui5/webcomponents/dist/types/NotificationListGrowingMode.js\";\nimport NotificationListGroupList from \"./NotificationListGroupList.js\";\nimport NotificationListItemBase from \"./NotificationListItemBase.js\";\nimport type NotificationListItem from \"./NotificationListItem.js\";\n\n// Icons\nimport \"@ui5/webcomponents-icons/dist/navigation-right-arrow.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\n\n// Texts\nimport {\n\tNOTIFICATION_LIST_GROUP_ITEM_TXT,\n\tNOTIFICATION_LIST_GROUP_COLLAPSED,\n\tNOTIFICATION_LIST_GROUP_EXPANDED,\n\tNOTIFICATION_LIST_GROUP_ITEM_TOGGLE_ICON_COLLAPSE_TITLE,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Templates\nimport NotificationListGroupItemTemplate from \"./generated/templates/NotificationListGroupItemTemplate.lit.js\";\n\n// Styles\nimport NotificationListGroupItemCss from \"./generated/themes/NotificationListGroupItem.css.js\";\n\ntype NotificationListGroupItemToggleEventDetail = {\n\titem: NotificationListGroupItem,\n};\n\n/**\n * @class\n *\n * ### Overview\n * The `ui5-li-notification-group` is a special type of list item,\n * that unlike others can group items within self, usually `ui5-li-notification` items.\n *\n * The component consists of:\n *\n * - `Toggle` button to expand and collapse the group\n * - `TitleText` to entitle the group\n * - Items of the group\n *\n * ### Usage\n * The component can be used in a standard `ui5-list`.\n *\n * ### Keyboard Handling\n * The `ui5-li-notification-group` provides advanced keyboard handling.\n * This component provides fast navigation when the header is focused using the following keyboard shortcuts:\n *\n * - [Space] - toggles expand / collapse of the group\n * - [Plus] - expands the group\n * - [Minus] - collapses the group\n * - [Right] - expands the group\n * - [Left] - collapses the group\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/NotificationListGroupItem.js\";`\n * @constructor\n * @extends NotificationListItemBase\n * @since 1.0.0-rc.8\n * @public\n */\n@customElement({\n\ttag: \"ui5-li-notification-group\",\n\tlanguageAware: true,\n\tstyles: [\n\t\tNotificationListGroupItemCss,\n\t],\n\ttemplate: NotificationListGroupItemTemplate,\n\tdependencies: [\n\t\tNotificationListGroupList,\n\t\tButton,\n\t\tIcon,\n\t\tBusyIndicator,\n\t],\n})\n\n/**\n * Fired when the `ui5-li-notification-group` is expanded/collapsed by user interaction.\n * @public\n */\n@event(\"toggle\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when additional items are requested.\n *\n * @public\n * @since 2.2.0\n */\n@event(\"load-more\", {\n\tbubbles: true,\n})\n\nclass NotificationListGroupItem extends NotificationListItemBase {\n\t/**\n\t * Defines if the group is collapsed or expanded.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tcollapsed = false;\n\n\t/**\n\t * Defines whether the component will have growing capability by pressing a `More` button.\n\t * When button is pressed `load-more` event will be fired.\n\t * @default \"None\"\n\t * @public\n\t * @since 2.2.0\n\t */\n\t@property()\n\tgrowing: `${NotificationListGrowingMode}` = \"None\";\n\n\t/**\n\t * Defines the items of the `ui5-li-notification-group`,\n\t * usually `ui5-li-notification` items.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true })\n\titems!: Array<NotificationListItem>\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\n\t\tthis.items.forEach(item => {\n\t\t\titem._ariaLevel = \"2\";\n\t\t});\n\n\t\tif (this.loading) {\n\t\t\tthis.clearChildBusyIndicator();\n\t\t}\n\t\tthis.actionable = false;\n\t}\n\n\t/**\n\t * Clears child items loading state to show a single loading over the entire group,\n\t * instead of multiple BusyIndicator instances\n\t */\n\tclearChildBusyIndicator() {\n\t\tthis.items.forEach(item => {\n\t\t\titem.loading = false;\n\t\t});\n\t}\n\n\tget toggleIconAccessibleName() {\n\t\treturn NotificationListGroupItem.i18nFioriBundle.getText(NOTIFICATION_LIST_GROUP_ITEM_TOGGLE_ICON_COLLAPSE_TITLE);\n\t}\n\n\tget accInvisibleText() {\n\t\treturn `${this.groupText} ${this.expandText}`;\n\t}\n\n\tget expandText() {\n\t\tif (this.collapsed) {\n\t\t\treturn NotificationListGroupItem.i18nFioriBundle.getText(NOTIFICATION_LIST_GROUP_COLLAPSED);\n\t\t}\n\n\t\treturn NotificationListGroupItem.i18nFioriBundle.getText(NOTIFICATION_LIST_GROUP_EXPANDED);\n\t}\n\n\tget groupText() {\n\t\treturn NotificationListGroupItem.i18nFioriBundle.getText(NOTIFICATION_LIST_GROUP_ITEM_TXT);\n\t}\n\n\tget ariaLabelledBy() {\n\t\tconst id = this._id;\n\n\t\tif (this.loading) {\n\t\t\treturn `${id}-loading`;\n\t\t}\n\n\t\tconst ids = [];\n\n\t\tif (this.hasTitleText) {\n\t\t\tids.push(`${id}-title-text`);\n\t\t}\n\n\t\treturn ids.join(\" \");\n\t}\n\n\tget _expanded() {\n\t\treturn !this.collapsed;\n\t}\n\n\tget _pressable() {\n\t\treturn false;\n\t}\n\n\tget groupCollapsedIcon() {\n\t\treturn this.collapsed ? \"navigation-right-arrow\" : \"navigation-down-arrow\";\n\t}\n\n\ttoggleCollapsed() {\n\t\tthis.collapsed = !this.collapsed;\n\t\tthis.fireDecoratorEvent<NotificationListGroupItemToggleEventDetail>(\"toggle\", { item: this });\n\t}\n\n\t/**\n\t * Event handlers\n\t *\n\t */\n\t_onHeaderToggleClick() {\n\t\tthis.toggleCollapsed();\n\t}\n\n\t_onLoadMore() {\n\t\tthis.fireDecoratorEvent(\"load-more\");\n\t}\n\n\tget loadMoreButton() {\n\t\tconst innerList = this.getDomRef()?.querySelector(\"[ui5-notification-group-list]\") as NotificationListGroupList;\n\t\treturn innerList.getDomRef()?.querySelector(\"[growing-button-inner]\") as HTMLElement;\n\t}\n\n\tasync _onkeydown(e: KeyboardEvent) {\n\t\tconst isFocused = this.matches(\":focus\");\n\t\tif (!isFocused) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait super._onkeydown(e);\n\n\t\tconst space = isSpace(e);\n\t\tconst plus = isPlus(e);\n\t\tconst minus = isMinus(e);\n\t\tconst left = isLeft(e);\n\t\tconst right = isRight(e);\n\n\t\tif (space) {\n\t\t\tthis.toggleCollapsed();\n\t\t}\n\n\t\tif (plus || right) {\n\t\t\t// expand\n\t\t\tif (this.collapsed) {\n\t\t\t\tthis.toggleCollapsed();\n\t\t\t\te.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\n\t\tif (minus || left) {\n\t\t\t// collapse\n\t\t\tif (!this.collapsed) {\n\t\t\t\tthis.toggleCollapsed();\n\t\t\t\te.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t}\n\n\tgetHeaderDomRef() {\n\t\treturn this.getDomRef()?.querySelector(\".ui5-nli-group-header\") as HTMLElement;\n\t}\n}\n\nNotificationListGroupItem.define();\n\nexport default NotificationListGroupItem;\nexport type {\n\tNotificationListGroupItemToggleEventDetail,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"NotificationListGroupItem.js","sourceRoot":"","sources":["../src/NotificationListGroupItem.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tisSpace, isPlus, isMinus, isLeft, isRight,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\nimport BusyIndicator from \"@ui5/webcomponents/dist/BusyIndicator.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport type NotificationListGrowingMode from \"@ui5/webcomponents/dist/types/NotificationListGrowingMode.js\";\nimport NotificationListGroupList from \"./NotificationListGroupList.js\";\nimport NotificationListItemBase from \"./NotificationListItemBase.js\";\nimport type NotificationListItem from \"./NotificationListItem.js\";\n\n// Icons\nimport \"@ui5/webcomponents-icons/dist/navigation-right-arrow.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\n\n// Texts\nimport {\n\tNOTIFICATION_LIST_GROUP_ITEM_TXT,\n\tNOTIFICATION_LIST_GROUP_COLLAPSED,\n\tNOTIFICATION_LIST_GROUP_EXPANDED,\n\tNOTIFICATION_LIST_GROUP_ITEM_TOGGLE_ICON_COLLAPSE_TITLE,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Templates\nimport NotificationListGroupItemTemplate from \"./generated/templates/NotificationListGroupItemTemplate.lit.js\";\n\n// Styles\nimport NotificationListGroupItemCss from \"./generated/themes/NotificationListGroupItem.css.js\";\n\ntype NotificationListGroupItemToggleEventDetail = {\n\titem: NotificationListGroupItem,\n};\n\n/**\n * @class\n *\n * ### Overview\n * The `ui5-li-notification-group` is a special type of list item,\n * that unlike others can group items within self, usually `ui5-li-notification` items.\n *\n * The component consists of:\n *\n * - `Toggle` button to expand and collapse the group\n * - `TitleText` to entitle the group\n * - Items of the group\n *\n * ### Usage\n * The component can be used in a standard `ui5-list`.\n *\n * ### Keyboard Handling\n * The `ui5-li-notification-group` provides advanced keyboard handling.\n * This component provides fast navigation when the header is focused using the following keyboard shortcuts:\n *\n * - [Space] - toggles expand / collapse of the group\n * - [Plus] - expands the group\n * - [Minus] - collapses the group\n * - [Right] - expands the group\n * - [Left] - collapses the group\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/NotificationListGroupItem.js\";`\n * @constructor\n * @extends NotificationListItemBase\n * @since 1.0.0-rc.8\n * @public\n */\n@customElement({\n\ttag: \"ui5-li-notification-group\",\n\tlanguageAware: true,\n\tstyles: [\n\t\tNotificationListGroupItemCss,\n\t],\n\ttemplate: NotificationListGroupItemTemplate,\n\tdependencies: [\n\t\tNotificationListGroupList,\n\t\tButton,\n\t\tIcon,\n\t\tBusyIndicator,\n\t],\n})\n\n/**\n * Fired when the `ui5-li-notification-group` is expanded/collapsed by user interaction.\n * @public\n */\n@event(\"toggle\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when additional items are requested.\n *\n * @public\n * @since 2.2.0\n */\n@event(\"load-more\", {\n\tbubbles: true,\n})\n\nclass NotificationListGroupItem extends NotificationListItemBase {\n\teventDetails!: NotificationListItemBase[\"eventDetails\"] & {\n\t\ttoggle: NotificationListGroupItemToggleEventDetail;\n\t\t\"load-more\": void;\n\t}\n\t/**\n\t * Defines if the group is collapsed or expanded.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tcollapsed = false;\n\n\t/**\n\t * Defines whether the component will have growing capability by pressing a `More` button.\n\t * When button is pressed `load-more` event will be fired.\n\t * @default \"None\"\n\t * @public\n\t * @since 2.2.0\n\t */\n\t@property()\n\tgrowing: `${NotificationListGrowingMode}` = \"None\";\n\n\t/**\n\t * Defines the items of the `ui5-li-notification-group`,\n\t * usually `ui5-li-notification` items.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true })\n\titems!: Array<NotificationListItem>\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\n\t\tthis.items.forEach(item => {\n\t\t\titem._ariaLevel = \"2\";\n\t\t});\n\n\t\tif (this.loading) {\n\t\t\tthis.clearChildBusyIndicator();\n\t\t}\n\t\tthis.actionable = false;\n\t}\n\n\t/**\n\t * Clears child items loading state to show a single loading over the entire group,\n\t * instead of multiple BusyIndicator instances\n\t */\n\tclearChildBusyIndicator() {\n\t\tthis.items.forEach(item => {\n\t\t\titem.loading = false;\n\t\t});\n\t}\n\n\tget toggleIconAccessibleName() {\n\t\treturn NotificationListGroupItem.i18nFioriBundle.getText(NOTIFICATION_LIST_GROUP_ITEM_TOGGLE_ICON_COLLAPSE_TITLE);\n\t}\n\n\tget accInvisibleText() {\n\t\treturn `${this.groupText} ${this.expandText}`;\n\t}\n\n\tget expandText() {\n\t\tif (this.collapsed) {\n\t\t\treturn NotificationListGroupItem.i18nFioriBundle.getText(NOTIFICATION_LIST_GROUP_COLLAPSED);\n\t\t}\n\n\t\treturn NotificationListGroupItem.i18nFioriBundle.getText(NOTIFICATION_LIST_GROUP_EXPANDED);\n\t}\n\n\tget groupText() {\n\t\treturn NotificationListGroupItem.i18nFioriBundle.getText(NOTIFICATION_LIST_GROUP_ITEM_TXT);\n\t}\n\n\tget ariaLabelledBy() {\n\t\tconst id = this._id;\n\n\t\tif (this.loading) {\n\t\t\treturn `${id}-loading`;\n\t\t}\n\n\t\tconst ids = [];\n\n\t\tif (this.hasTitleText) {\n\t\t\tids.push(`${id}-title-text`);\n\t\t}\n\n\t\treturn ids.join(\" \");\n\t}\n\n\tget _expanded() {\n\t\treturn !this.collapsed;\n\t}\n\n\tget _pressable() {\n\t\treturn false;\n\t}\n\n\tget groupCollapsedIcon() {\n\t\treturn this.collapsed ? \"navigation-right-arrow\" : \"navigation-down-arrow\";\n\t}\n\n\ttoggleCollapsed() {\n\t\tthis.collapsed = !this.collapsed;\n\t\tthis.fireDecoratorEvent(\"toggle\", { item: this });\n\t}\n\n\t/**\n\t * Event handlers\n\t *\n\t */\n\t_onHeaderToggleClick() {\n\t\tthis.toggleCollapsed();\n\t}\n\n\t_onLoadMore() {\n\t\tthis.fireDecoratorEvent(\"load-more\");\n\t}\n\n\tget loadMoreButton() {\n\t\tconst innerList = this.getDomRef()?.querySelector(\"[ui5-notification-group-list]\") as NotificationListGroupList;\n\t\treturn innerList.getDomRef()?.querySelector(\"[growing-button-inner]\") as HTMLElement;\n\t}\n\n\tasync _onkeydown(e: KeyboardEvent) {\n\t\tconst isFocused = this.matches(\":focus\");\n\t\tif (!isFocused) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait super._onkeydown(e);\n\n\t\tconst space = isSpace(e);\n\t\tconst plus = isPlus(e);\n\t\tconst minus = isMinus(e);\n\t\tconst left = isLeft(e);\n\t\tconst right = isRight(e);\n\n\t\tif (space) {\n\t\t\tthis.toggleCollapsed();\n\t\t}\n\n\t\tif (plus || right) {\n\t\t\t// expand\n\t\t\tif (this.collapsed) {\n\t\t\t\tthis.toggleCollapsed();\n\t\t\t\te.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\n\t\tif (minus || left) {\n\t\t\t// collapse\n\t\t\tif (!this.collapsed) {\n\t\t\t\tthis.toggleCollapsed();\n\t\t\t\te.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t}\n\n\tgetHeaderDomRef() {\n\t\treturn this.getDomRef()?.querySelector(\".ui5-nli-group-header\") as HTMLElement;\n\t}\n}\n\nNotificationListGroupItem.define();\n\nexport default NotificationListGroupItem;\nexport type {\n\tNotificationListGroupItemToggleEventDetail,\n};\n"]}
|
|
@@ -15,6 +15,7 @@ declare class NotificationListGroupList extends List {
|
|
|
15
15
|
onForwardAfter(): void;
|
|
16
16
|
onItemTabIndexChange(): void;
|
|
17
17
|
onItemFocused(): void;
|
|
18
|
+
_onfocusin(e: FocusEvent): void;
|
|
18
19
|
focusItem(item: ListItemBase): void;
|
|
19
20
|
}
|
|
20
21
|
export default NotificationListGroupList;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationListGroupList.js","sourceRoot":"","sources":["../src/NotificationListGroupList.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,aAAa,MAAM,0DAA0D,CAAC;AAGrF;;;;;;;GAOG;AAEH,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,IAAI;IAC3C,eAAe;QACd,OAAO,EAAE,CAAC;IACX,CAAC;IAED,cAAc;IACd,CAAC;IAED,eAAe;IACf,CAAC;IAED,cAAc;IACd,CAAC;IAED,oBAAoB;IACpB,CAAC;IAED,aAAa;IACb,CAAC;IAED,SAAS,CAAC,IAAkB;QAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,CAAC;CACD,CAAA;
|
|
1
|
+
{"version":3,"file":"NotificationListGroupList.js","sourceRoot":"","sources":["../src/NotificationListGroupList.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,aAAa,MAAM,0DAA0D,CAAC;AAGrF;;;;;;;GAOG;AAEH,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,IAAI;IAC3C,eAAe;QACd,OAAO,EAAE,CAAC;IACX,CAAC;IAED,cAAc;IACd,CAAC;IAED,eAAe;IACf,CAAC;IAED,cAAc;IACd,CAAC;IAED,oBAAoB;IACpB,CAAC;IAED,aAAa;IACb,CAAC;IAED,UAAU,CAAC,CAAa;QACvB,CAAC,CAAC,wBAAwB,EAAE,CAAC;IAC9B,CAAC;IAED,SAAS,CAAC,IAAkB;QAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,CAAC;CACD,CAAA;AA3BK,yBAAyB;IAD9B,aAAa,CAAC,6BAA6B,CAAC;GACvC,yBAAyB,CA2B9B;AAED,yBAAyB,CAAC,MAAM,EAAE,CAAC;AAEnC,eAAe,yBAAyB,CAAC","sourcesContent":["import List from \"@ui5/webcomponents/dist/List.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport type ListItemBase from \"@ui5/webcomponents/dist/ListItemBase.js\";\n\n/**\n * @class\n *\n * Internal `ui5-li-notification-group-list` component,\n * that is used to support keyboard navigation of the notification group internal list.\n *\n * @private\n */\n@customElement(\"ui5-notification-group-list\")\nclass NotificationListGroupList extends List {\n\tgetEnabledItems() {\n\t\treturn [];\n\t}\n\n\t_handleTabNext() {\n\t}\n\n\tonForwardBefore() {\n\t}\n\n\tonForwardAfter() {\n\t}\n\n\tonItemTabIndexChange() {\n\t}\n\n\tonItemFocused() {\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\te.stopImmediatePropagation();\n\t}\n\n\tfocusItem(item: ListItemBase) {\n\t\titem.focus();\n\t}\n}\n\nNotificationListGroupList.define();\n\nexport default NotificationListGroupList;\n"]}
|
|
@@ -63,6 +63,10 @@ type NotificationListItemPressEventDetail = {
|
|
|
63
63
|
* @csspart title-text - Used to style the titleText of the notification list item
|
|
64
64
|
*/
|
|
65
65
|
declare class NotificationListItem extends NotificationListItemBase {
|
|
66
|
+
eventDetails: NotificationListItemBase["eventDetails"] & {
|
|
67
|
+
_press: NotificationListItemPressEventDetail;
|
|
68
|
+
close: NotificationListItemCloseEventDetail;
|
|
69
|
+
};
|
|
66
70
|
/**
|
|
67
71
|
* Defines if the `titleText` and `description` should wrap,
|
|
68
72
|
* they truncate by default.
|
|
@@ -10,7 +10,7 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
|
|
|
10
10
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
11
11
|
import query from "@ui5/webcomponents-base/dist/decorators/query.js";
|
|
12
12
|
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
13
|
-
import event from "@ui5/webcomponents-base/dist/decorators/event.js";
|
|
13
|
+
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
14
14
|
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
15
15
|
import Button from "@ui5/webcomponents/dist/Button.js";
|
|
16
16
|
import BusyIndicator from "@ui5/webcomponents/dist/BusyIndicator.js";
|
|
@@ -479,14 +479,6 @@ NotificationListItem = NotificationListItem_1 = __decorate([
|
|
|
479
479
|
*/
|
|
480
480
|
,
|
|
481
481
|
event("close", {
|
|
482
|
-
detail: {
|
|
483
|
-
/**
|
|
484
|
-
* @public
|
|
485
|
-
*/
|
|
486
|
-
item: {
|
|
487
|
-
type: HTMLElement,
|
|
488
|
-
},
|
|
489
|
-
},
|
|
490
482
|
bubbles: true,
|
|
491
483
|
})
|
|
492
484
|
], NotificationListItem);
|