@ui5/webcomponents-fiori 1.21.1 → 1.22.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -2
- package/dist/Bar.d.ts +6 -27
- package/dist/Bar.js +3 -14
- package/dist/Bar.js.map +1 -1
- package/dist/BarcodeScannerDialog.d.ts +2 -13
- package/dist/BarcodeScannerDialog.js +10 -12
- package/dist/BarcodeScannerDialog.js.map +1 -1
- package/dist/DynamicSideContent.d.ts +9 -35
- package/dist/DynamicSideContent.js +15 -7
- package/dist/DynamicSideContent.js.map +1 -1
- package/dist/FilterItem.d.ts +3 -14
- package/dist/FilterItem.js +1 -5
- package/dist/FilterItem.js.map +1 -1
- package/dist/FilterItemOption.d.ts +3 -11
- package/dist/FilterItemOption.js +1 -5
- package/dist/FilterItemOption.js.map +1 -1
- package/dist/FlexibleColumnLayout.d.ts +13 -51
- package/dist/FlexibleColumnLayout.js +28 -26
- package/dist/FlexibleColumnLayout.js.map +1 -1
- package/dist/IllustratedMessage.d.ts +9 -35
- package/dist/IllustratedMessage.js +1 -4
- package/dist/IllustratedMessage.js.map +1 -1
- package/dist/Interfaces.d.ts +28 -88
- package/dist/Interfaces.js +2 -113
- package/dist/Interfaces.js.map +1 -1
- package/dist/MediaGallery.d.ts +9 -26
- package/dist/MediaGallery.js +4 -8
- package/dist/MediaGallery.js.map +1 -1
- package/dist/MediaGalleryItem.d.ts +7 -22
- package/dist/MediaGalleryItem.js +2 -5
- package/dist/MediaGalleryItem.js.map +1 -1
- package/dist/NotificationAction.d.ts +7 -20
- package/dist/NotificationAction.js +3 -9
- package/dist/NotificationAction.js.map +1 -1
- package/dist/NotificationListGroupItem.d.ts +5 -27
- package/dist/NotificationListGroupItem.js +1 -16
- package/dist/NotificationListGroupItem.js.map +1 -1
- package/dist/NotificationListItem.d.ts +3 -27
- package/dist/NotificationListItem.js +2 -15
- package/dist/NotificationListItem.js.map +1 -1
- package/dist/NotificationListItemBase.d.ts +7 -32
- package/dist/NotificationListItemBase.js +15 -15
- package/dist/NotificationListItemBase.js.map +1 -1
- package/dist/Page.d.ts +7 -35
- package/dist/Page.js +2 -13
- package/dist/Page.js.map +1 -1
- package/dist/ProductSwitch.d.ts +3 -10
- package/dist/ProductSwitch.js +1 -5
- package/dist/ProductSwitch.js.map +1 -1
- package/dist/ProductSwitchItem.d.ts +9 -22
- package/dist/ProductSwitchItem.js +2 -7
- package/dist/ProductSwitchItem.js.map +1 -1
- package/dist/ShellBar.d.ts +30 -90
- package/dist/ShellBar.js +28 -41
- package/dist/ShellBar.js.map +1 -1
- package/dist/ShellBarItem.d.ts +9 -14
- package/dist/ShellBarItem.js +6 -6
- package/dist/ShellBarItem.js.map +1 -1
- package/dist/SideNavigation.d.ts +29 -17
- package/dist/SideNavigation.js +155 -9
- package/dist/SideNavigation.js.map +1 -1
- package/dist/SideNavigationItem.d.ts +4 -17
- package/dist/SideNavigationItem.js +1 -5
- package/dist/SideNavigationItem.js.map +1 -1
- package/dist/SideNavigationItemBase.d.ts +7 -36
- package/dist/SideNavigationItemBase.js +20 -12
- package/dist/SideNavigationItemBase.js.map +1 -1
- package/dist/SideNavigationSubItem.d.ts +1 -5
- package/dist/SideNavigationSubItem.js +1 -5
- package/dist/SideNavigationSubItem.js.map +1 -1
- package/dist/SortItem.d.ts +3 -11
- package/dist/SortItem.js +1 -5
- package/dist/SortItem.js.map +1 -1
- package/dist/Timeline.d.ts +5 -16
- package/dist/Timeline.js +1 -5
- package/dist/Timeline.js.map +1 -1
- package/dist/TimelineItem.d.ts +11 -34
- package/dist/TimelineItem.js +3 -15
- package/dist/TimelineItem.js.map +1 -1
- package/dist/UploadCollection.d.ts +11 -32
- package/dist/UploadCollection.js +7 -9
- package/dist/UploadCollection.js.map +1 -1
- package/dist/UploadCollectionItem.d.ts +16 -47
- package/dist/UploadCollectionItem.js +3 -10
- package/dist/UploadCollectionItem.js.map +1 -1
- package/dist/ViewSettingsDialog.d.ts +5 -28
- package/dist/ViewSettingsDialog.js +34 -18
- package/dist/ViewSettingsDialog.js.map +1 -1
- package/dist/Wizard.d.ts +15 -39
- package/dist/Wizard.js +23 -33
- package/dist/Wizard.js.map +1 -1
- package/dist/WizardStep.d.ts +8 -31
- package/dist/WizardStep.js +2 -5
- package/dist/WizardStep.js.map +1 -1
- package/dist/WizardTab.d.ts +20 -24
- package/dist/WizardTab.js +1 -5
- package/dist/WizardTab.js.map +1 -1
- package/dist/css/themes/SideNavigation.css +1 -1
- package/dist/custom-elements-internal.json +6682 -0
- package/dist/custom-elements.json +4098 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
- package/dist/generated/i18n/i18n-defaults.js +2 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/SideNavigationPopoverTemplate.lit.js +6 -2
- package/dist/generated/templates/SideNavigationPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SideNavigationTemplate.lit.js +1 -1
- package/dist/generated/templates/SideNavigationTemplate.lit.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/types/BarDesign.d.ts +0 -8
- package/dist/types/BarDesign.js +0 -8
- package/dist/types/BarDesign.js.map +1 -1
- package/dist/types/FCLLayout.d.ts +0 -13
- package/dist/types/FCLLayout.js +0 -13
- package/dist/types/FCLLayout.js.map +1 -1
- package/dist/types/IllustrationMessageSize.d.ts +0 -9
- package/dist/types/IllustrationMessageSize.js +0 -9
- package/dist/types/IllustrationMessageSize.js.map +1 -1
- package/dist/types/IllustrationMessageType.d.ts +0 -107
- package/dist/types/IllustrationMessageType.js +0 -107
- package/dist/types/IllustrationMessageType.js.map +1 -1
- package/dist/types/MediaGalleryItemLayout.d.ts +0 -6
- package/dist/types/MediaGalleryItemLayout.js +0 -6
- package/dist/types/MediaGalleryItemLayout.js.map +1 -1
- package/dist/types/MediaGalleryLayout.d.ts +0 -7
- package/dist/types/MediaGalleryLayout.js +0 -7
- package/dist/types/MediaGalleryLayout.js.map +1 -1
- package/dist/types/MediaGalleryMenuHorizontalAlign.d.ts +0 -6
- package/dist/types/MediaGalleryMenuHorizontalAlign.js +0 -6
- package/dist/types/MediaGalleryMenuHorizontalAlign.js.map +1 -1
- package/dist/types/MediaGalleryMenuVerticalAlign.d.ts +0 -6
- package/dist/types/MediaGalleryMenuVerticalAlign.js +0 -6
- package/dist/types/MediaGalleryMenuVerticalAlign.js.map +1 -1
- package/dist/types/PageBackgroundDesign.d.ts +0 -7
- package/dist/types/PageBackgroundDesign.js +0 -7
- package/dist/types/PageBackgroundDesign.js.map +1 -1
- package/dist/types/SideContentFallDown.d.ts +0 -8
- package/dist/types/SideContentFallDown.js +0 -8
- package/dist/types/SideContentFallDown.js.map +1 -1
- package/dist/types/SideContentPosition.d.ts +0 -6
- package/dist/types/SideContentPosition.js +0 -6
- package/dist/types/SideContentPosition.js.map +1 -1
- package/dist/types/SideContentVisibility.d.ts +0 -9
- package/dist/types/SideContentVisibility.js +0 -9
- package/dist/types/SideContentVisibility.js.map +1 -1
- package/dist/types/TimelineLayout.d.ts +0 -6
- package/dist/types/TimelineLayout.js +0 -6
- package/dist/types/TimelineLayout.js.map +1 -1
- package/dist/types/UploadCollectionDnDMode.d.ts +0 -7
- package/dist/types/UploadCollectionDnDMode.js +0 -7
- package/dist/types/UploadCollectionDnDMode.js.map +1 -1
- package/dist/types/UploadState.d.ts +0 -8
- package/dist/types/UploadState.js +0 -8
- package/dist/types/UploadState.js.map +1 -1
- package/dist/types/ViewSettingsDialogMode.d.ts +0 -6
- package/dist/types/ViewSettingsDialogMode.js +0 -6
- package/dist/types/ViewSettingsDialogMode.js.map +1 -1
- package/dist/types/WizardContentLayout.d.ts +0 -6
- package/dist/types/WizardContentLayout.js +0 -6
- package/dist/types/WizardContentLayout.js.map +1 -1
- package/package.json +7 -7
- package/src/SideNavigation.hbs +21 -0
- package/src/SideNavigationPopover.hbs +61 -28
- package/src/i18n/messagebundle.properties +3 -0
- package/src/themes/SideNavigation.css +11 -1
- package/dist/api.json +0 -1
package/dist/MediaGallery.js
CHANGED
|
@@ -72,11 +72,7 @@ const COLUMNS_COUNT = {
|
|
|
72
72
|
* <code>import "@ui5/webcomponents-fiori/dist/MediaGalleryItem";</code>
|
|
73
73
|
*
|
|
74
74
|
* @constructor
|
|
75
|
-
* @
|
|
76
|
-
* @alias sap.ui.webc.fiori.MediaGallery
|
|
77
|
-
* @extends sap.ui.webc.base.UI5Element
|
|
78
|
-
* @tagname ui5-media-gallery
|
|
79
|
-
* @appenddocs sap.ui.webc.fiori.MediaGalleryItem
|
|
75
|
+
* @extends UI5Element
|
|
80
76
|
* @public
|
|
81
77
|
* @since 1.1.0
|
|
82
78
|
*/
|
|
@@ -357,20 +353,21 @@ MediaGallery = MediaGallery_1 = __decorate([
|
|
|
357
353
|
/**
|
|
358
354
|
* Fired when selection is changed by user interaction.
|
|
359
355
|
*
|
|
360
|
-
* @event sap.ui.webc.fiori.MediaGallery#selection-change
|
|
361
356
|
* @param {HTMLElement} item the selected item.
|
|
362
357
|
* @public
|
|
363
358
|
*/
|
|
364
359
|
,
|
|
365
360
|
event("selection-change", {
|
|
366
361
|
detail: {
|
|
362
|
+
/**
|
|
363
|
+
* @public
|
|
364
|
+
*/
|
|
367
365
|
item: { type: HTMLElement },
|
|
368
366
|
},
|
|
369
367
|
})
|
|
370
368
|
/**
|
|
371
369
|
* Fired when the thumbnails overflow button is clicked.
|
|
372
370
|
*
|
|
373
|
-
* @event sap.ui.webc.fiori.MediaGallery#overflow-click
|
|
374
371
|
* @public
|
|
375
372
|
*/
|
|
376
373
|
,
|
|
@@ -380,7 +377,6 @@ MediaGallery = MediaGallery_1 = __decorate([
|
|
|
380
377
|
* The display area is the central area that contains
|
|
381
378
|
* the enlarged content of the currently selected item.
|
|
382
379
|
*
|
|
383
|
-
* @event sap.ui.webc.fiori.MediaGallery#display-area-click
|
|
384
380
|
* @public
|
|
385
381
|
*/
|
|
386
382
|
,
|
package/dist/MediaGallery.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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 Integer from \"@ui5/webcomponents-base/dist/types/Integer.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 MediaGalleryMenuHorizontalAlign from \"./types/MediaGalleryMenuHorizontalAlign.js\";\nimport 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\ntype MediaGallerySelectionChangeEventDetail = {\n\titem: MediaGalleryItem;\n}\n\n// The allowed number of thumbnail columns on each size\n// (relevant when <code>showAllThumbnails</code> 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 * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-media-gallery</code> 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 <code>ui5-media-gallery-item</code>\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 * <br>\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* <h3>Keyboard Handling</h3>\n * The <code>ui5-media-gallery</code> provides advanced keyboard handling.\n * <br>\n * When the thumbnails menu is focused the following keyboard\n * shortcuts allow the user to navigate through the thumbnail items:\n * <br>\n *\n * <ul>\n * <li>[UP/DOWN] - Navigates up and down the items</li>\n * <li>[HOME] - Navigates to first item</li>\n * <li>[END] - Navigates to the last item</li>\n * <li>[SPACE/ENTER] - Select an item</li>\n * </ul>\n * <br>\n *\n * <h3>ES6 Module Import</h3>\n * <code>import \"@ui5/webcomponents-fiori/dist/MediaGallery\";</code>\n * <br>\n * <code>import \"@ui5/webcomponents-fiori/dist/MediaGalleryItem\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webc.fiori.MediaGallery\n * @extends sap.ui.webc.base.UI5Element\n * @tagname ui5-media-gallery\n * @appenddocs sap.ui.webc.fiori.MediaGalleryItem\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\tstaticAreaTemplate: 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 *\n * @event sap.ui.webc.fiori.MediaGallery#selection-change\n * @param {HTMLElement} item the selected item.\n * @public\n */\n@event(\"selection-change\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired when the thumbnails overflow button is clicked.\n *\n * @event sap.ui.webc.fiori.MediaGallery#overflow-click\n * @public\n */\n@event(\"overflow-click\")\n\n/**\n * Fired when the display area is clicked.<br>\n * The display area is the central area that contains\n * the enlarged content of the currently selected item.\n *\n * @event sap.ui.webc.fiori.MediaGallery#display-area-click\n * @public\n */\n@event(\"display-area-click\")\n\nclass MediaGallery extends UI5Element {\n\t/**\n\t * If set to <code>true</code>, all thumbnails are rendered in a scrollable container.\n\t * If <code>false</code>, only up to five thumbnails are rendered, followed by\n\t * an overflow button that shows the count of the remaining thumbnails.\n\t *\n\t * @type {boolean}\n\t * @name sap.ui.webc.fiori.MediaGallery.prototype.showAllThumbnails\n\t * @defaultvalue false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowAllThumbnails!: boolean;\n\n\t/**\n\t * If enabled, a <code>display-area-click</code> event is fired\n\t * when the user clicks or taps on the display area.\n\t * <br>\n\t * The display area is the central area that contains\n\t * the enlarged content of the currently selected item.\n\t *\n\t * @type {boolean}\n\t * @name sap.ui.webc.fiori.MediaGallery.prototype.interactiveDisplayArea\n\t * @defaultvalue false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tinteractiveDisplayArea!: boolean;\n\n\t/**\n\t * Determines the layout of the component.\n\t *\n\t * @type {sap.ui.webc.fiori.types.MediaGalleryLayout}\n\t * @name sap.ui.webc.fiori.MediaGallery.prototype.layout\n\t * @defaultvalue \"Auto\"\n\t * @public\n\t */\n\t@property({ type: MediaGalleryLayout, defaultValue: MediaGalleryLayout.Auto })\n\tlayout!: `${MediaGalleryLayout}`;\n\n\t/**\n\t * Determines the horizontal alignment of the thumbnails menu\n\t * vs. the central display area.\n\t *\n\t * @type {sap.ui.webc.fiori.types.MediaGalleryMenuHorizontalAlign}\n\t * @name sap.ui.webc.fiori.MediaGallery.prototype.menuHorizontalAlign\n\t * @defaultvalue \"Left\"\n\t * @public\n\t */\n\t@property({ type: MediaGalleryMenuHorizontalAlign, defaultValue: MediaGalleryMenuHorizontalAlign.Left })\n\tmenuHorizontalAlign!: `${MediaGalleryMenuHorizontalAlign}`;\n\n\t/**\n\t * Determines the vertical alignment of the thumbnails menu\n\t * vs. the central display area.\n\t *\n\t * @type {sap.ui.webc.fiori.types.MediaGalleryMenuVerticalAlign}\n\t * @name sap.ui.webc.fiori.MediaGallery.prototype.menuVerticalAlign\n\t * @defaultvalue \"Bottom\"\n\t * @public\n\t */\n\t@property({ type: MediaGalleryMenuVerticalAlign, defaultValue: MediaGalleryMenuVerticalAlign.Bottom })\n\tmenuVerticalAlign!: `${MediaGalleryMenuVerticalAlign}`;\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 <code>Auto</code> layout type).\n\t *\n\t * @type {sap.ui.webc.fiori.types.MediaGalleryLayout}\n\t * @defaultvalue \"Vertical\"\n\t * @private\n\t */\n\t@property({ type: MediaGalleryLayout, defaultValue: MediaGalleryLayout.Vertical })\n\teffectiveLayout!: `${MediaGalleryLayout}`;\n\n\t/**\n\t * Defines the current media query size.\n\t *\n\t * @private\n\t */\n\t@property()\n\tmediaRange!: string;\n\n\t/**\n\t * The number of items in the overflow.\n\t *\n\t * @private\n\t */\n\t@property({ validator: Integer, noAttribute: true, defaultValue: 0 })\n\t_overflowSize!: number;\n\n\t/**\n\t * Defines the component items.\n\t *\n\t * <br><br>\n\t * <b>Note:</b> Only one selected item is allowed.\n\t *\n\t * <br><br>\n\t * <b>Note:</b> Use the <code>ui5-media-gallery-item</code> component to define the desired items.\n\t *\n\t * @type {sap.ui.webc.fiori.IMediaGalleryItem[]}\n\t * @name sap.ui.webc.fiori.MediaGallery.prototype.default\n\t * @slot 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<MediaGalleryItem>;\n\n\t_itemNavigation: ItemNavigation;\n\t_onResize: () => void;\n\t_selectedItem?: MediaGalleryItem;\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\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: MediaGalleryItem) {\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: MediaGalleryItem, 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.fireEvent<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: MediaGalleryItem) {\n\t\tthis.items.forEach(next => { next.selected = false; });\n\t\titemToSelect.selected = true;\n\t}\n\n\t_selectItemOnPhone(item: MediaGalleryItem) {\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: MediaGalleryItem) {\n\t\tlet clone;\n\t\tconst mainItem = this._mainItem,\n\t\t\toldContent = mainItem!._content,\n\t\t\tnewContent = item._content;\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<MediaGalleryItem>(\"[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.fireEvent(\"overflow-click\");\n\t}\n\n\t_onDisplayAreaClick() {\n\t\tif (!this.interactiveDisplayArea) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireEvent(\"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.fireEvent<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 { MediaGallerySelectionChangeEventDetail };\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 Integer from \"@ui5/webcomponents-base/dist/types/Integer.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 MediaGalleryMenuHorizontalAlign from \"./types/MediaGalleryMenuHorizontalAlign.js\";\nimport MediaGalleryMenuVerticalAlign from \"./types/MediaGalleryMenuVerticalAlign.js\";\nimport type IMediaGalleryItem from \"./MediaGalleryItem.js\";\n\n// Styles\nimport MediaGalleryCss from \"./generated/themes/MediaGallery.css.js\";\n\n// Template\nimport MediaGalleryTemplate from \"./generated/templates/MediaGalleryTemplate.lit.js\";\n\ntype MediaGallerySelectionChangeEventDetail = {\n\titem: MediaGalleryItem;\n}\n\n// The allowed number of thumbnail columns on each size\n// (relevant when <code>showAllThumbnails</code> 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 * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-media-gallery</code> 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 <code>ui5-media-gallery-item</code>\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 * <br>\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* <h3>Keyboard Handling</h3>\n * The <code>ui5-media-gallery</code> provides advanced keyboard handling.\n * <br>\n * When the thumbnails menu is focused the following keyboard\n * shortcuts allow the user to navigate through the thumbnail items:\n * <br>\n *\n * <ul>\n * <li>[UP/DOWN] - Navigates up and down the items</li>\n * <li>[HOME] - Navigates to first item</li>\n * <li>[END] - Navigates to the last item</li>\n * <li>[SPACE/ENTER] - Select an item</li>\n * </ul>\n * <br>\n *\n * <h3>ES6 Module Import</h3>\n * <code>import \"@ui5/webcomponents-fiori/dist/MediaGallery\";</code>\n * <br>\n * <code>import \"@ui5/webcomponents-fiori/dist/MediaGalleryItem\";</code>\n *\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\tstaticAreaTemplate: 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 *\n * @param {HTMLElement} item the selected item.\n * @public\n */\n@event(\"selection-change\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\titem: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired when the thumbnails overflow button is clicked.\n *\n * @public\n */\n@event(\"overflow-click\")\n\n/**\n * Fired when the display area is clicked.<br>\n * The display area is the central area that contains\n * the enlarged content of the currently selected item.\n *\n * @public\n */\n@event(\"display-area-click\")\n\nclass MediaGallery extends UI5Element {\n\t/**\n\t * If set to <code>true</code>, all thumbnails are rendered in a scrollable container.\n\t * If <code>false</code>, only up to five thumbnails are rendered, followed by\n\t * an overflow button that shows the count of the remaining thumbnails.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowAllThumbnails!: boolean;\n\n\t/**\n\t * If enabled, a <code>display-area-click</code> event is fired\n\t * when the user clicks or taps on the display area.\n\t * <br>\n\t * The display area is the central area that contains\n\t * the enlarged content of the currently selected item.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tinteractiveDisplayArea!: boolean;\n\n\t/**\n\t * Determines the layout of the component.\n\t *\n\t * @default \"Auto\"\n\t * @public\n\t */\n\t@property({ type: MediaGalleryLayout, defaultValue: MediaGalleryLayout.Auto })\n\tlayout!: `${MediaGalleryLayout}`;\n\n\t/**\n\t * Determines the horizontal alignment of the thumbnails menu\n\t * vs. the central display area.\n\t *\n\t * @default \"Left\"\n\t * @public\n\t */\n\t@property({ type: MediaGalleryMenuHorizontalAlign, defaultValue: MediaGalleryMenuHorizontalAlign.Left })\n\tmenuHorizontalAlign!: `${MediaGalleryMenuHorizontalAlign}`;\n\n\t/**\n\t * Determines the vertical alignment of the thumbnails menu\n\t * vs. the central display area.\n\t *\n\t * @default \"Bottom\"\n\t * @public\n\t */\n\t@property({ type: MediaGalleryMenuVerticalAlign, defaultValue: MediaGalleryMenuVerticalAlign.Bottom })\n\tmenuVerticalAlign!: `${MediaGalleryMenuVerticalAlign}`;\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 <code>Auto</code> layout type).\n\t *\n\t * @default \"Vertical\"\n\t * @private\n\t */\n\t@property({ type: MediaGalleryLayout, defaultValue: MediaGalleryLayout.Vertical })\n\teffectiveLayout!: `${MediaGalleryLayout}`;\n\n\t/**\n\t * Defines the current media query size.\n\t *\n\t * @private\n\t */\n\t@property()\n\tmediaRange!: string;\n\n\t/**\n\t * The number of items in the overflow.\n\t *\n\t * @private\n\t */\n\t@property({ validator: Integer, noAttribute: true, defaultValue: 0 })\n\t_overflowSize!: number;\n\n\t/**\n\t * Defines the component items.\n\t *\n\t * <br><br>\n\t * <b>Note:</b> Only one selected item is allowed.\n\t *\n\t * <br><br>\n\t * <b>Note:</b> Use the <code>ui5-media-gallery-item</code> component to define the desired items.\n\t *\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?: MediaGalleryItem;\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\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: MediaGalleryItem) {\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: MediaGalleryItem, 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.fireEvent<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: MediaGalleryItem) {\n\t\tthis.items.forEach(next => { next.selected = false; });\n\t\titemToSelect.selected = true;\n\t}\n\n\t_selectItemOnPhone(item: MediaGalleryItem) {\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: MediaGalleryItem) {\n\t\tlet clone;\n\t\tconst mainItem = this._mainItem,\n\t\t\toldContent = mainItem!._content,\n\t\t\tnewContent = item._content;\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<MediaGalleryItem>(\"[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.fireEvent(\"overflow-click\");\n\t}\n\n\t_onDisplayAreaClick() {\n\t\tif (!this.interactiveDisplayArea) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireEvent(\"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.fireEvent<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 { MediaGallerySelectionChangeEventDetail };\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
2
|
import "@ui5/webcomponents-icons/dist/background.js";
|
|
3
|
-
import type { ITabbable } from "@ui5/webcomponents-base/dist/delegate/ItemNavigation.js";
|
|
4
3
|
import MediaGalleryItemLayout from "./types/MediaGalleryItemLayout.js";
|
|
4
|
+
import type { IMediaGalleryItem } from "./Interfaces.js";
|
|
5
5
|
/**
|
|
6
6
|
* @class
|
|
7
7
|
* <h3 class="comment-api-title">Overview</h3>
|
|
@@ -24,30 +24,23 @@ import MediaGalleryItemLayout from "./types/MediaGalleryItemLayout.js";
|
|
|
24
24
|
* <code>import "@ui5/webcomponents-fiori/dist/MediaGalleryItem.js";</code> (comes with <code>ui5-media-gallery</code>)
|
|
25
25
|
*
|
|
26
26
|
* @constructor
|
|
27
|
-
* @
|
|
28
|
-
* @alias sap.ui.webc.fiori.MediaGalleryItem
|
|
29
|
-
* @extends sap.ui.webc.base.UI5Element
|
|
30
|
-
* @tagname ui5-media-gallery-item
|
|
27
|
+
* @extends UI5Element
|
|
31
28
|
* @public
|
|
32
|
-
* @implements
|
|
29
|
+
* @implements {IMediaGalleryItem}
|
|
33
30
|
* @since 1.1.0
|
|
34
31
|
*/
|
|
35
|
-
declare class MediaGalleryItem extends UI5Element implements
|
|
32
|
+
declare class MediaGalleryItem extends UI5Element implements IMediaGalleryItem {
|
|
36
33
|
/**
|
|
37
34
|
* Defines the selected state of the component.
|
|
38
35
|
*
|
|
39
|
-
* @
|
|
40
|
-
* @name sap.ui.webc.fiori.MediaGalleryItem.prototype.selected
|
|
41
|
-
* @defaultvalue false
|
|
36
|
+
* @default false
|
|
42
37
|
* @public
|
|
43
38
|
*/
|
|
44
39
|
selected: boolean;
|
|
45
40
|
/**
|
|
46
41
|
* Defines whether the component is in disabled state.
|
|
47
42
|
*
|
|
48
|
-
* @
|
|
49
|
-
* @name sap.ui.webc.fiori.MediaGalleryItem.prototype.disabled
|
|
50
|
-
* @defaultvalue false
|
|
43
|
+
* @default false
|
|
51
44
|
* @public
|
|
52
45
|
*/
|
|
53
46
|
disabled: boolean;
|
|
@@ -60,9 +53,7 @@ declare class MediaGalleryItem extends UI5Element implements ITabbable {
|
|
|
60
53
|
* <li><code>Wide</code></li>
|
|
61
54
|
* </ul>
|
|
62
55
|
*
|
|
63
|
-
* @
|
|
64
|
-
* @name sap.ui.webc.fiori.MediaGalleryItem.prototype.layout
|
|
65
|
-
* @defaultvalue "Square"
|
|
56
|
+
* @default "Square"
|
|
66
57
|
* @public
|
|
67
58
|
*/
|
|
68
59
|
layout: `${MediaGalleryItemLayout}`;
|
|
@@ -101,18 +92,12 @@ declare class MediaGalleryItem extends UI5Element implements ITabbable {
|
|
|
101
92
|
/**
|
|
102
93
|
* Defines the content of the component.
|
|
103
94
|
*
|
|
104
|
-
* @type {HTMLElement}
|
|
105
|
-
* @name sap.ui.webc.fiori.MediaGalleryItem.prototype.default
|
|
106
|
-
* @slot content
|
|
107
95
|
* @public
|
|
108
96
|
*/
|
|
109
97
|
content: Array<HTMLElement>;
|
|
110
98
|
/**
|
|
111
99
|
* Defines the content of the thumbnail.
|
|
112
100
|
*
|
|
113
|
-
* @type {HTMLElement}
|
|
114
|
-
* @name sap.ui.webc.fiori.MediaGalleryItem.prototype.thumbnail
|
|
115
|
-
* @slot thumbnail
|
|
116
101
|
* @public
|
|
117
102
|
*/
|
|
118
103
|
thumbnail: Array<HTMLElement>;
|
package/dist/MediaGalleryItem.js
CHANGED
|
@@ -40,12 +40,9 @@ import MediaGalleryItemTemplate from "./generated/templates/MediaGalleryItemTemp
|
|
|
40
40
|
* <code>import "@ui5/webcomponents-fiori/dist/MediaGalleryItem.js";</code> (comes with <code>ui5-media-gallery</code>)
|
|
41
41
|
*
|
|
42
42
|
* @constructor
|
|
43
|
-
* @
|
|
44
|
-
* @alias sap.ui.webc.fiori.MediaGalleryItem
|
|
45
|
-
* @extends sap.ui.webc.base.UI5Element
|
|
46
|
-
* @tagname ui5-media-gallery-item
|
|
43
|
+
* @extends UI5Element
|
|
47
44
|
* @public
|
|
48
|
-
* @implements
|
|
45
|
+
* @implements {IMediaGalleryItem}
|
|
49
46
|
* @since 1.1.0
|
|
50
47
|
*/
|
|
51
48
|
let MediaGalleryItem = class MediaGalleryItem extends UI5Element {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaGalleryItem.js","sourceRoot":"","sources":["../src/MediaGalleryItem.ts"],"names":[],"mappings":"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","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 slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport MediaGalleryItemLayout from \"./types/MediaGalleryItemLayout.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 * <h3 class=\"comment-api-title\">Overview</h3>\n * The <code>ui5-media-gallery-item</code> web component represents the items displayed in the\n * <code>ui5-media-gallery</code> web component.\n * <br><br>\n * <b>Note:</b> <code>ui5-media-gallery-item</code> is not supported when used outside of <code>ui5-media-gallery</code>.\n * <br><br>\n *\n * <h3>Keyboard Handling</h3>\n * The <code>ui5-media-gallery</code> provides advanced keyboard handling.\n * When focused, the user can use the following keyboard\n * shortcuts in order to perform a navigation:\n * <br>\n * <ul>\n * <li>[SPACE/ENTER/RETURN] - Trigger <code>ui5-click</code> event</li>\n * </ul>\n *\n * <h3>ES6 Module Import</h3>\n * <code>import \"@ui5/webcomponents-fiori/dist/MediaGalleryItem.js\";</code> (comes with <code>ui5-media-gallery</code>)\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webc.fiori.MediaGalleryItem\n * @extends sap.ui.webc.base.UI5Element\n * @tagname ui5-media-gallery-item\n * @public\n * @implements sap.ui.webc.fiori.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})\nclass MediaGalleryItem extends UI5Element implements ITabbable {\n\t/**\n\t * Defines the selected state of the component.\n\t *\n\t * @type {boolean}\n\t * @name sap.ui.webc.fiori.MediaGalleryItem.prototype.selected\n\t * @defaultvalue false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tselected!: boolean;\n\n\t/**\n\t * Defines whether the component is in disabled state.\n\t *\n\t * @type {boolean}\n\t * @name sap.ui.webc.fiori.MediaGalleryItem.prototype.disabled\n\t * @defaultvalue false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Determines the layout of the item container.\n\t * <br><br>\n\t * Available options are:\n\t * <ul>\n\t * <li><code>Square</code></li>\n\t * <li><code>Wide</code></li>\n\t * </ul>\n\t *\n\t * @type {sap.ui.webc.fiori.types.MediaGalleryItemLayout}\n\t * @name sap.ui.webc.fiori.MediaGalleryItem.prototype.layout\n\t * @defaultvalue \"Square\"\n\t * @public\n\t */\n\t@property({ type: MediaGalleryItemLayout, defaultValue: MediaGalleryItemLayout.Square })\n\tlayout!: `${MediaGalleryItemLayout}`;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_interactive!: boolean;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_square!: boolean;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_contentImageNotFound!: boolean;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_thumbnailNotFound!: boolean;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_thumbnailDesign!: boolean;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused!: boolean;\n\n\t/**\n\t * @private\n\t */\n\t@property()\n\t_tabIndex!: 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 *\n\t * @type {HTMLElement}\n\t * @name sap.ui.webc.fiori.MediaGalleryItem.prototype.default\n\t * @slot content\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 *\n\t * @type {HTMLElement}\n\t * @name sap.ui.webc.fiori.MediaGalleryItem.prototype.thumbnail\n\t * @slot 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 _content() {\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._content && !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._tabIndex;\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._content)) {\n\t\t\tthis._contentImageNotFound = false; // reset flag\n\t\t\tcallback = this._updateContentImageLoaded.bind(this);\n\t\t\tsuccess = this._attachListeners(this._content as HTMLImageElement, callback);\n\t\t\tsuccess && (this._monitoredContent = this._content);\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_onfocusout() {\n\t\tthis.focused = false;\n\t}\n\n\t_onfocusin() {\n\t\tthis.focused = true;\n\t}\n\n\t_fireItemClick() {\n\t\tthis.fireEvent(\"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":"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","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 slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport MediaGalleryItemLayout from \"./types/MediaGalleryItemLayout.js\";\nimport type { IMediaGalleryItem } from \"./Interfaces.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 * <h3 class=\"comment-api-title\">Overview</h3>\n * The <code>ui5-media-gallery-item</code> web component represents the items displayed in the\n * <code>ui5-media-gallery</code> web component.\n * <br><br>\n * <b>Note:</b> <code>ui5-media-gallery-item</code> is not supported when used outside of <code>ui5-media-gallery</code>.\n * <br><br>\n *\n * <h3>Keyboard Handling</h3>\n * The <code>ui5-media-gallery</code> provides advanced keyboard handling.\n * When focused, the user can use the following keyboard\n * shortcuts in order to perform a navigation:\n * <br>\n * <ul>\n * <li>[SPACE/ENTER/RETURN] - Trigger <code>ui5-click</code> event</li>\n * </ul>\n *\n * <h3>ES6 Module Import</h3>\n * <code>import \"@ui5/webcomponents-fiori/dist/MediaGalleryItem.js\";</code> (comes with <code>ui5-media-gallery</code>)\n *\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})\nclass MediaGalleryItem extends UI5Element implements IMediaGalleryItem {\n\t/**\n\t * Defines the selected state of the component.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tselected!: boolean;\n\n\t/**\n\t * Defines whether the component is in disabled state.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Determines the layout of the item container.\n\t * <br><br>\n\t * Available options are:\n\t * <ul>\n\t * <li><code>Square</code></li>\n\t * <li><code>Wide</code></li>\n\t * </ul>\n\t *\n\t * @default \"Square\"\n\t * @public\n\t */\n\t@property({ type: MediaGalleryItemLayout, defaultValue: MediaGalleryItemLayout.Square })\n\tlayout!: `${MediaGalleryItemLayout}`;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_interactive!: boolean;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_square!: boolean;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_contentImageNotFound!: boolean;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_thumbnailNotFound!: boolean;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_thumbnailDesign!: boolean;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused!: boolean;\n\n\t/**\n\t * @private\n\t */\n\t@property()\n\t_tabIndex!: 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 *\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 *\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 _content() {\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._content && !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._tabIndex;\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._content)) {\n\t\t\tthis._contentImageNotFound = false; // reset flag\n\t\t\tcallback = this._updateContentImageLoaded.bind(this);\n\t\t\tsuccess = this._attachListeners(this._content as HTMLImageElement, callback);\n\t\t\tsuccess && (this._monitoredContent = this._content);\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_onfocusout() {\n\t\tthis.focused = false;\n\t}\n\n\t_onfocusin() {\n\t\tthis.focused = true;\n\t}\n\n\t_fireItemClick() {\n\t\tthis.fireEvent(\"click\", { item: this });\n\t}\n}\n\nMediaGalleryItem.define();\n\nexport default MediaGalleryItem;\n"]}
|
|
@@ -10,22 +10,15 @@ type NotificationActionClickEventDetail = {
|
|
|
10
10
|
* used in the <code>ui5-li-notification</code> and the <code>ui5-li-notification-group</code> items.
|
|
11
11
|
*
|
|
12
12
|
* @constructor
|
|
13
|
-
* @
|
|
14
|
-
* @alias sap.ui.webc.fiori.NotificationAction
|
|
15
|
-
* @extends sap.ui.webc.base.UI5Element
|
|
16
|
-
* @abstract
|
|
17
|
-
* @tagname ui5-notification-action
|
|
18
|
-
* @implements sap.ui.webc.fiori.INotificationAction
|
|
13
|
+
* @extends UI5Element
|
|
19
14
|
* @public
|
|
20
15
|
*/
|
|
21
16
|
declare class NotificationAction extends UI5Element {
|
|
22
17
|
/**
|
|
23
18
|
* Defines the text of the <code>ui5-notification-action</code>.
|
|
24
19
|
*
|
|
25
|
-
* @
|
|
26
|
-
* @defaultvalue ""
|
|
20
|
+
* @default ""
|
|
27
21
|
* @public
|
|
28
|
-
* @name sap.ui.webc.fiori.NotificationAction.prototype.text
|
|
29
22
|
*/
|
|
30
23
|
text: string;
|
|
31
24
|
/**
|
|
@@ -33,19 +26,15 @@ declare class NotificationAction extends UI5Element {
|
|
|
33
26
|
* <br><br>
|
|
34
27
|
* <b>Note:</b> a disabled action can't be pressed or focused, and it is not in the tab chain.
|
|
35
28
|
*
|
|
36
|
-
* @
|
|
37
|
-
* @defaultvalue false
|
|
29
|
+
* @default false
|
|
38
30
|
* @public
|
|
39
|
-
* @name sap.ui.webc.fiori.NotificationAction.prototype.disabled
|
|
40
31
|
*/
|
|
41
32
|
disabled: boolean;
|
|
42
33
|
/**
|
|
43
34
|
* Defines the action design.
|
|
44
35
|
*
|
|
45
|
-
* @
|
|
46
|
-
* @defaultvalue "Transparent"
|
|
36
|
+
* @default "Transparent"
|
|
47
37
|
* @public
|
|
48
|
-
* @name sap.ui.webc.fiori.NotificationAction.prototype.design
|
|
49
38
|
*/
|
|
50
39
|
design: `${ButtonDesign}`;
|
|
51
40
|
/**
|
|
@@ -55,19 +44,17 @@ declare class NotificationAction extends UI5Element {
|
|
|
55
44
|
* SAP-icons font provides numerous built-in icons. To find all the available icons, see the
|
|
56
45
|
* <ui5-link target="_blank" href="https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html">Icon Explorer</ui5-link>.
|
|
57
46
|
*
|
|
58
|
-
* @
|
|
59
|
-
* @defaultvalue ""
|
|
47
|
+
* @default ""
|
|
60
48
|
* @public
|
|
61
|
-
* @name sap.ui.webc.fiori.NotificationAction.prototype.icon
|
|
62
49
|
*/
|
|
63
50
|
icon: string;
|
|
64
51
|
/**
|
|
65
52
|
* Fires a custom event "click".
|
|
66
53
|
* <b>Note:</b> Called by NotificationListItem and NotificationListGroupItem components.
|
|
67
54
|
*
|
|
68
|
-
* @param
|
|
55
|
+
* @param e
|
|
69
56
|
* @protected
|
|
70
|
-
* @returns
|
|
57
|
+
* @returns false, if the event was cancelled (preventDefault called), true otherwise
|
|
71
58
|
*/
|
|
72
59
|
fireClickEvent(e: MouseEvent): boolean;
|
|
73
60
|
}
|
|
@@ -15,12 +15,7 @@ import event from "@ui5/webcomponents-base/dist/decorators/event.js";
|
|
|
15
15
|
* used in the <code>ui5-li-notification</code> and the <code>ui5-li-notification-group</code> items.
|
|
16
16
|
*
|
|
17
17
|
* @constructor
|
|
18
|
-
* @
|
|
19
|
-
* @alias sap.ui.webc.fiori.NotificationAction
|
|
20
|
-
* @extends sap.ui.webc.base.UI5Element
|
|
21
|
-
* @abstract
|
|
22
|
-
* @tagname ui5-notification-action
|
|
23
|
-
* @implements sap.ui.webc.fiori.INotificationAction
|
|
18
|
+
* @extends UI5Element
|
|
24
19
|
* @public
|
|
25
20
|
*/
|
|
26
21
|
let NotificationAction = class NotificationAction extends UI5Element {
|
|
@@ -28,9 +23,9 @@ let NotificationAction = class NotificationAction extends UI5Element {
|
|
|
28
23
|
* Fires a custom event "click".
|
|
29
24
|
* <b>Note:</b> Called by NotificationListItem and NotificationListGroupItem components.
|
|
30
25
|
*
|
|
31
|
-
* @param
|
|
26
|
+
* @param e
|
|
32
27
|
* @protected
|
|
33
|
-
* @returns
|
|
28
|
+
* @returns false, if the event was cancelled (preventDefault called), true otherwise
|
|
34
29
|
*/
|
|
35
30
|
fireClickEvent(e) {
|
|
36
31
|
return this.fireEvent("click", {
|
|
@@ -55,7 +50,6 @@ NotificationAction = __decorate([
|
|
|
55
50
|
/**
|
|
56
51
|
* Fired, when the action is pressed.
|
|
57
52
|
*
|
|
58
|
-
* @event sap.ui.webc.fiori.NotificationAction#click
|
|
59
53
|
* @param {HTMLElement} targetRef DOM ref of the clicked element
|
|
60
54
|
* @public
|
|
61
55
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationAction.js","sourceRoot":"","sources":["../src/NotificationAction.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,YAAY,MAAM,+CAA+C,CAAC;AACzE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,kDAAkD,CAAC;AAOrE
|
|
1
|
+
{"version":3,"file":"NotificationAction.js","sourceRoot":"","sources":["../src/NotificationAction.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,YAAY,MAAM,+CAA+C,CAAC;AACzE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,kDAAkD,CAAC;AAOrE;;;;;;;;GAQG;AAcH,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,UAAU;IA2C1C;;;;;;;OAOG;IACH,cAAc,CAAC,CAAa;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAqC,OAAO,EAAE;YAClE,SAAS,EAAG,CAAC,CAAC,MAAiB;SAC/B,EAAE,IAAI,CAAC,CAAC;IACV,CAAC;CACD,CAAA;AAhDA;IADC,QAAQ,EAAE;gDACG;AAWd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;oDACT;AASnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,WAAW,EAAE,CAAC;kDAC9C;AAa3B;IADC,QAAQ,EAAE;gDACG;AAzCT,kBAAkB;IAbvB,aAAa,CAAC,yBAAyB,CAAC;IAEzC;;;;;OAKG;;IACF,KAAK,CAAC,OAAO,EAAE;QACf,MAAM,EAAE;YACP,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAChC;KACD,CAAC;GACI,kBAAkB,CAwDvB;AAED,kBAAkB,CAAC,MAAM,EAAE,CAAC;AAE5B,eAAe,kBAAkB,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport ButtonDesign from \"@ui5/webcomponents/dist/types/ButtonDesign.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 type Button from \"@ui5/webcomponents/dist/Button.js\";\n\ntype NotificationActionClickEventDetail = {\n\ttargetRef: Button,\n};\n\n/**\n * @class\n * The <code>ui5-notification-action</code> represents an abstract action,\n * used in the <code>ui5-li-notification</code> and the <code>ui5-li-notification-group</code> items.\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement(\"ui5-notification-action\")\n\n/**\n * Fired, when the action is pressed.\n *\n * @param {HTMLElement} targetRef DOM ref of the clicked element\n * @public\n */\n@event(\"click\", {\n\tdetail: {\n\t\ttargetRef: { type: HTMLElement },\n\t},\n})\nclass NotificationAction extends UI5Element {\n\t/**\n\t * Defines the text of the <code>ui5-notification-action</code>.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\ttext!: string;\n\n\t/**\n\t * Defines if the action is disabled.\n\t * <br><br>\n\t * <b>Note:</b> a disabled action can't be pressed or focused, and it is not in the tab chain.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Defines the action design.\n\t *\n\t * @default \"Transparent\"\n\t * @public\n\t */\n\t@property({ type: ButtonDesign, defaultValue: ButtonDesign.Transparent })\n\tdesign!: `${ButtonDesign}`;\n\n\t/**\n\t * Defines the <code>icon</code> source URI.\n\t * <br><br>\n\t * <b>Note:</b>\n\t * SAP-icons font provides numerous built-in icons. To find all the available icons, see the\n\t * <ui5-link target=\"_blank\" href=\"https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html\">Icon Explorer</ui5-link>.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\ticon!: string;\n\n\t/**\n\t * Fires a custom event \"click\".\n\t * <b>Note:</b> Called by NotificationListItem and NotificationListGroupItem components.\n\t *\n\t * @param e\n\t * @protected\n\t * @returns false, if the event was cancelled (preventDefault called), true otherwise\n\t */\n\tfireClickEvent(e: MouseEvent): boolean {\n\t\treturn this.fireEvent<NotificationActionClickEventDetail>(\"click\", {\n\t\t\ttargetRef: (e.target as Button),\n\t\t}, true);\n\t}\n}\n\nNotificationAction.define();\n\nexport default NotificationAction;\n\nexport type {\n\tNotificationActionClickEventDetail,\n};\n"]}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import NotificationListItemBase from "./NotificationListItemBase.js";
|
|
2
|
-
import type
|
|
2
|
+
import type { NotificationListItemBaseCloseEventDetail as NotificationListGroupItemCloseEventDetail } from "./NotificationListItemBase.js";
|
|
3
3
|
import "@ui5/webcomponents-icons/dist/navigation-right-arrow.js";
|
|
4
4
|
import "@ui5/webcomponents-icons/dist/overflow.js";
|
|
5
5
|
import "@ui5/webcomponents-icons/dist/decline.js";
|
|
6
|
-
import type { NotificationListItemBaseCloseEventDetail as NotificationListGroupItemCloseEventDetail } from "./NotificationListItemBase.js";
|
|
7
6
|
type NotificationListGroupItemToggleEventDetail = {
|
|
8
7
|
item: NotificationListGroupItem;
|
|
9
8
|
};
|
|
@@ -27,44 +26,26 @@ type NotificationListGroupItemToggleEventDetail = {
|
|
|
27
26
|
* <h3>Usage</h3>
|
|
28
27
|
* The component can be used in a standard <code>ui5-list</code>.
|
|
29
28
|
*
|
|
30
|
-
* <h3>CSS Shadow Parts</h3>
|
|
31
|
-
*
|
|
32
|
-
* <ui5-link target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/CSS/::part">CSS Shadow Parts</ui5-link> allow developers to style elements inside the Shadow DOM.
|
|
33
|
-
* <br>
|
|
34
|
-
* The <code>ui5-li-notification-group</code> exposes the following CSS Shadow Parts:
|
|
35
|
-
* <ul>
|
|
36
|
-
* <li>title-text - Used to style the titleText of the notification list group item</li>
|
|
37
|
-
* </ul>
|
|
38
|
-
*
|
|
39
29
|
* <h3>ES6 Module Import</h3>
|
|
40
30
|
*
|
|
41
31
|
* <code>import "@ui5/webcomponents/dist/NotificationListGroupItem.js";</code>
|
|
42
32
|
* <br>
|
|
43
33
|
* <code>import "@ui5/webcomponents/dist/NotificationAction.js";</code> (optional)
|
|
44
34
|
* @constructor
|
|
45
|
-
* @
|
|
46
|
-
* @alias sap.ui.webc.fiori.NotificationListGroupItem
|
|
47
|
-
* @extends sap.ui.webc.fiori.NotificationListItemBase
|
|
48
|
-
* @tagname ui5-li-notification-group
|
|
35
|
+
* @extends NotificationListItemBase
|
|
49
36
|
* @since 1.0.0-rc.8
|
|
50
|
-
* @appenddocs sap.ui.webc.fiori.NotificationAction
|
|
51
|
-
* @implements sap.ui.webc.main.IListItem
|
|
52
37
|
* @public
|
|
53
38
|
*/
|
|
54
39
|
declare class NotificationListGroupItem extends NotificationListItemBase {
|
|
55
40
|
/**
|
|
56
41
|
* Defines if the group is collapsed or expanded.
|
|
57
|
-
* @
|
|
58
|
-
* @defaultvalue false
|
|
59
|
-
* @name sap.ui.webc.fiori.NotificationListGroupItem.prototype.collapsed
|
|
42
|
+
* @default false
|
|
60
43
|
* @public
|
|
61
44
|
*/
|
|
62
45
|
collapsed: boolean;
|
|
63
46
|
/**
|
|
64
47
|
* Defines if the items <code>counter</code> would be displayed.
|
|
65
|
-
* @
|
|
66
|
-
* @defaultvalue false
|
|
67
|
-
* @name sap.ui.webc.fiori.NotificationListGroupItem.prototype.showCounter
|
|
48
|
+
* @default false
|
|
68
49
|
* @public
|
|
69
50
|
*/
|
|
70
51
|
showCounter: boolean;
|
|
@@ -72,12 +53,9 @@ declare class NotificationListGroupItem extends NotificationListItemBase {
|
|
|
72
53
|
* Defines the items of the <code>ui5-li-notification-group</code>,
|
|
73
54
|
* usually <code>ui5-li-notification</code> items.
|
|
74
55
|
*
|
|
75
|
-
* @type {sap.ui.webc.fiori.INotificationListItem[]}
|
|
76
|
-
* @slot items
|
|
77
|
-
* @name sap.ui.webc.fiori.NotificationListGroupItem.prototype.default
|
|
78
56
|
* @public
|
|
79
57
|
*/
|
|
80
|
-
items: Array<
|
|
58
|
+
items: Array<NotificationListItemBase>;
|
|
81
59
|
onBeforeRendering(): void;
|
|
82
60
|
/**
|
|
83
61
|
* Clears child items busy state to show a single busy over the entire group,
|
|
@@ -46,28 +46,14 @@ import NotificationListGroupItemCss from "./generated/themes/NotificationListGro
|
|
|
46
46
|
* <h3>Usage</h3>
|
|
47
47
|
* The component can be used in a standard <code>ui5-list</code>.
|
|
48
48
|
*
|
|
49
|
-
* <h3>CSS Shadow Parts</h3>
|
|
50
|
-
*
|
|
51
|
-
* <ui5-link target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/CSS/::part">CSS Shadow Parts</ui5-link> allow developers to style elements inside the Shadow DOM.
|
|
52
|
-
* <br>
|
|
53
|
-
* The <code>ui5-li-notification-group</code> exposes the following CSS Shadow Parts:
|
|
54
|
-
* <ul>
|
|
55
|
-
* <li>title-text - Used to style the titleText of the notification list group item</li>
|
|
56
|
-
* </ul>
|
|
57
|
-
*
|
|
58
49
|
* <h3>ES6 Module Import</h3>
|
|
59
50
|
*
|
|
60
51
|
* <code>import "@ui5/webcomponents/dist/NotificationListGroupItem.js";</code>
|
|
61
52
|
* <br>
|
|
62
53
|
* <code>import "@ui5/webcomponents/dist/NotificationAction.js";</code> (optional)
|
|
63
54
|
* @constructor
|
|
64
|
-
* @
|
|
65
|
-
* @alias sap.ui.webc.fiori.NotificationListGroupItem
|
|
66
|
-
* @extends sap.ui.webc.fiori.NotificationListItemBase
|
|
67
|
-
* @tagname ui5-li-notification-group
|
|
55
|
+
* @extends NotificationListItemBase
|
|
68
56
|
* @since 1.0.0-rc.8
|
|
69
|
-
* @appenddocs sap.ui.webc.fiori.NotificationAction
|
|
70
|
-
* @implements sap.ui.webc.main.IListItem
|
|
71
57
|
* @public
|
|
72
58
|
*/
|
|
73
59
|
let NotificationListGroupItem = NotificationListGroupItem_1 = class NotificationListGroupItem extends NotificationListItemBase {
|
|
@@ -176,7 +162,6 @@ NotificationListGroupItem = NotificationListGroupItem_1 = __decorate([
|
|
|
176
162
|
* Fired when the <code>ui5-li-notification-group</code> is expanded/collapsed by user interaction.
|
|
177
163
|
*
|
|
178
164
|
* @public
|
|
179
|
-
* @event sap.ui.webc.fiori.NotificationListGroupItem#toggle
|
|
180
165
|
*/
|
|
181
166
|
,
|
|
182
167
|
event("toggle")
|