@sapudex/web-components 2.22.0 → 2.23.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.
Files changed (170) hide show
  1. package/cypress/specs/CountrySelector.cy.tsx +158 -144
  2. package/cypress/specs/EventRibbon.cy.tsx +3 -1
  3. package/cypress/specs/SelectBox.cy.tsx +173 -206
  4. package/cypress/specs/Tag.cy.tsx +1 -1
  5. package/cypress/specs/TextField.cy.tsx +15 -0
  6. package/cypress/specs/Textarea.cy.tsx +15 -33
  7. package/dist/CountrySelector.d.ts +25 -142
  8. package/dist/CountrySelector.js +91 -268
  9. package/dist/CountrySelector.js.map +1 -1
  10. package/dist/FilterMenu.d.ts +14 -2
  11. package/dist/FilterMenu.js +11 -1
  12. package/dist/FilterMenu.js.map +1 -1
  13. package/dist/List.js +2 -3
  14. package/dist/List.js.map +1 -1
  15. package/dist/ListGroupHeaderBase.d.ts +1 -0
  16. package/dist/ListGroupHeaderBase.js +3 -0
  17. package/dist/ListGroupHeaderBase.js.map +1 -1
  18. package/dist/ListItemBase.d.ts +12 -0
  19. package/dist/ListItemBase.js +17 -2
  20. package/dist/ListItemBase.js.map +1 -1
  21. package/dist/MediaPlayer.js +2 -0
  22. package/dist/MediaPlayer.js.map +1 -1
  23. package/dist/MediaPlayerTemplate.js +4 -4
  24. package/dist/MediaPlayerTemplate.js.map +1 -1
  25. package/dist/SearchableListBase.d.ts +23 -16
  26. package/dist/SearchableListBase.js +48 -72
  27. package/dist/SearchableListBase.js.map +1 -1
  28. package/dist/SelectBase.d.ts +193 -0
  29. package/dist/SelectBase.js +428 -0
  30. package/dist/SelectBase.js.map +1 -0
  31. package/dist/SelectBox.d.ts +30 -152
  32. package/dist/SelectBox.js +139 -348
  33. package/dist/SelectBox.js.map +1 -1
  34. package/dist/TagGroup.d.ts +23 -5
  35. package/dist/TagGroup.js +37 -16
  36. package/dist/TagGroup.js.map +1 -1
  37. package/dist/TagTemplate.js +4 -2
  38. package/dist/TagTemplate.js.map +1 -1
  39. package/dist/TextArea.d.ts +1 -1
  40. package/dist/TextArea.js +5 -5
  41. package/dist/TextArea.js.map +1 -1
  42. package/dist/TextAreaTemplate.d.ts +2 -0
  43. package/dist/TextAreaTemplate.js +13 -0
  44. package/dist/TextAreaTemplate.js.map +1 -0
  45. package/dist/TextField.d.ts +29 -4
  46. package/dist/TextField.js +32 -16
  47. package/dist/TextField.js.map +1 -1
  48. package/dist/TextFieldTemplate.d.ts +2 -0
  49. package/dist/TextFieldTemplate.js +14 -0
  50. package/dist/TextFieldTemplate.js.map +1 -0
  51. package/dist/assets/{InputSuggestions-By00xQan.js → InputSuggestions-C8m6N2-d.js} +1 -1
  52. package/dist/assets/{ListItemStandardExpandableTextTemplate-BGtoxRbA.js → ListItemStandardExpandableTextTemplate-BwD5bYhw.js} +1 -1
  53. package/dist/assets/{bundle.esm-9yDdQqR5.js → bundle.esm-hGsUwmUy.js} +218 -217
  54. package/dist/css/themes/CountrySelector.css +1 -1
  55. package/dist/css/themes/EventRibbon.css +1 -1
  56. package/dist/css/themes/ListItem.css +1 -1
  57. package/dist/css/themes/MastheadItem.css +1 -1
  58. package/dist/css/themes/MastheadMobileMenu.css +1 -1
  59. package/dist/css/themes/RatingIndicator.css +1 -1
  60. package/dist/css/themes/Search.css +1 -1
  61. package/dist/css/themes/SelectBase.css +1 -0
  62. package/dist/css/themes/SelectBox.css +1 -1
  63. package/dist/css/themes/Slider.css +1 -1
  64. package/dist/css/themes/TagGroup.css +1 -1
  65. package/dist/css/themes/TextField.css +1 -1
  66. package/dist/custom-elements-internal.json +1088 -1284
  67. package/dist/custom-elements.json +284 -934
  68. package/dist/generated/templates/CountrySelectorTemplate.lit.js +3 -3
  69. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  70. package/dist/generated/templates/ListItemTemplate.lit.js +1 -1
  71. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  72. package/dist/generated/templates/SelectBoxTemplate.lit.js +10 -9
  73. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  74. package/dist/generated/themes/CountrySelector.css.d.ts +1 -1
  75. package/dist/generated/themes/CountrySelector.css.js +1 -1
  76. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  77. package/dist/generated/themes/EventRibbon.css.d.ts +1 -1
  78. package/dist/generated/themes/EventRibbon.css.js +1 -1
  79. package/dist/generated/themes/EventRibbon.css.js.map +1 -1
  80. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  81. package/dist/generated/themes/ListItem.css.js +1 -1
  82. package/dist/generated/themes/ListItem.css.js.map +1 -1
  83. package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
  84. package/dist/generated/themes/MastheadItem.css.js +1 -1
  85. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  86. package/dist/generated/themes/MastheadMobileMenu.css.d.ts +1 -1
  87. package/dist/generated/themes/MastheadMobileMenu.css.js +1 -1
  88. package/dist/generated/themes/MastheadMobileMenu.css.js.map +1 -1
  89. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  90. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  91. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  92. package/dist/generated/themes/Search.css.d.ts +1 -1
  93. package/dist/generated/themes/Search.css.js +1 -1
  94. package/dist/generated/themes/Search.css.js.map +1 -1
  95. package/dist/generated/themes/SelectBase.css.d.ts +2 -0
  96. package/dist/generated/themes/SelectBase.css.js +8 -0
  97. package/dist/generated/themes/SelectBase.css.js.map +1 -0
  98. package/dist/generated/themes/SelectBox.css.d.ts +1 -1
  99. package/dist/generated/themes/SelectBox.css.js +1 -1
  100. package/dist/generated/themes/SelectBox.css.js.map +1 -1
  101. package/dist/generated/themes/Slider.css.d.ts +1 -1
  102. package/dist/generated/themes/Slider.css.js +1 -1
  103. package/dist/generated/themes/Slider.css.js.map +1 -1
  104. package/dist/generated/themes/TagGroup.css.d.ts +1 -1
  105. package/dist/generated/themes/TagGroup.css.js +1 -1
  106. package/dist/generated/themes/TagGroup.css.js.map +1 -1
  107. package/dist/generated/themes/TextField.css.d.ts +1 -1
  108. package/dist/generated/themes/TextField.css.js +1 -1
  109. package/dist/generated/themes/TextField.css.js.map +1 -1
  110. package/dist/types/common.d.ts +1 -1
  111. package/dist/types/common.js +1 -1
  112. package/dist/types/common.js.map +1 -1
  113. package/dist/vscode.html-custom-data.json +23 -234
  114. package/dist/web-types.json +256 -811
  115. package/package.json +1 -1
  116. package/src/CountrySelector.hbs +6 -61
  117. package/src/CountrySelector.ts +93 -375
  118. package/src/FilterMenu.ts +13 -3
  119. package/src/List.ts +2 -3
  120. package/src/ListGroupHeaderBase.ts +4 -0
  121. package/src/ListItem.hbs +0 -1
  122. package/src/ListItemBase.ts +17 -3
  123. package/src/MediaPlayer.ts +2 -0
  124. package/src/MediaPlayerTemplate.tsx +0 -1
  125. package/src/SearchableListBase.ts +68 -83
  126. package/src/SelectBase.ts +580 -0
  127. package/src/SelectBox.hbs +118 -107
  128. package/src/SelectBox.ts +155 -445
  129. package/src/TagGroup.ts +53 -19
  130. package/src/TagTemplate.tsx +4 -2
  131. package/src/TextArea.ts +5 -5
  132. package/src/TextAreaTemplate.tsx +67 -0
  133. package/src/TextField.ts +57 -24
  134. package/src/TextFieldTemplate.tsx +90 -0
  135. package/src/generated/templates/CountrySelectorTemplate.lit.ts +2 -2
  136. package/src/generated/templates/ListItemTemplate.lit.ts +1 -1
  137. package/src/generated/templates/SelectBoxTemplate.lit.ts +10 -9
  138. package/src/generated/themes/CountrySelector.css.ts +1 -1
  139. package/src/generated/themes/EventRibbon.css.ts +1 -1
  140. package/src/generated/themes/ListItem.css.ts +1 -1
  141. package/src/generated/themes/MastheadItem.css.ts +1 -1
  142. package/src/generated/themes/MastheadMobileMenu.css.ts +1 -1
  143. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  144. package/src/generated/themes/Search.css.ts +1 -1
  145. package/src/generated/themes/SelectBase.css.ts +9 -0
  146. package/src/generated/themes/SelectBox.css.ts +1 -1
  147. package/src/generated/themes/Slider.css.ts +1 -1
  148. package/src/generated/themes/TagGroup.css.ts +1 -1
  149. package/src/generated/themes/TextField.css.ts +1 -1
  150. package/src/themes/CountrySelector.css +42 -115
  151. package/src/themes/EventRibbon.css +21 -13
  152. package/src/themes/ListItem.css +6 -0
  153. package/src/themes/MastheadItem.css +0 -2
  154. package/src/themes/MastheadMobileMenu.css +2 -0
  155. package/src/themes/Search.css +0 -1
  156. package/src/themes/SelectBase.css +239 -0
  157. package/src/themes/SelectBox.css +13 -195
  158. package/src/themes/TagGroup.css +0 -1
  159. package/src/themes/TextField.css +7 -7
  160. package/src/types/common.ts +1 -1
  161. package/dist/generated/templates/TextAreaTemplate.lit.d.ts +0 -3
  162. package/dist/generated/templates/TextAreaTemplate.lit.js +0 -13
  163. package/dist/generated/templates/TextAreaTemplate.lit.js.map +0 -1
  164. package/dist/generated/templates/TextFieldTemplate.lit.d.ts +0 -3
  165. package/dist/generated/templates/TextFieldTemplate.lit.js +0 -14
  166. package/dist/generated/templates/TextFieldTemplate.lit.js.map +0 -1
  167. package/src/TextArea.hbs +0 -54
  168. package/src/TextField.hbs +0 -78
  169. package/src/generated/templates/TextAreaTemplate.lit.ts +0 -17
  170. package/src/generated/templates/TextFieldTemplate.lit.ts +0 -18
@@ -1 +1 @@
1
- {"version":3,"file":"MediaPlayer.js","sourceRoot":"","sources":["../src/MediaPlayer.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.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 { VimeoPlayer } from \"./MediaPlayerVimeo.js\";\nimport mapLangFile from \"./mediaPlayerLanguageMapping.js\";\nimport type UDExMediaPlayerYoutube from \"./MediaPlayerYoutube.js\";\nimport type UDExMediaPlayerVimeo from \"./MediaPlayerVimeo.js\";\n\n// Template\nimport MediaPlayerTemplate from \"./MediaPlayerTemplate.js\";\n\n// Styles\nimport MediaPlayerCss from \"./generated/themes/MediaPlayer.css.js\";\n\ndeclare global {\n interface Window {\n videojs: any;\n }\n}\n\nexport type YoutubePlayer = YT.Player;\nexport enum UDExAspectRatio {\n \"16:9\" = \"16:9\",\n \"9:16\" = \"9:16\",\n \"4:3\" = \"4:3\",\n \"1:1\" = \"1:1\",\n \"none\" = \"none\",\n}\n\ntype UDExMediaPlayerVideoProgressEventDetail = {\n progress: number,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-media-player</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/MediaPlayer.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-media-player\n * @public\n */\n@customElement({\n tag: \"udex-media-player\",\n renderer: jsxRenderer,\n styles: MediaPlayerCss,\n template: MediaPlayerTemplate,\n})\n/**\n * Fires when video is played\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoStart\")\n/**\n * Fires when video is paused\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoPause\", { bubbles: true })\n/**\n * Fires when video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoComplete\", { bubbles: true })\n/**\n * Fires when video is ready\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoReady\", { bubbles: true })\n/**\n * Fires when video watching progress changed\n *\n * @allowPreventDefault\n * @public\n * @param {number} progress percentage of video watched\n */\n@event(\"videoProgress\", { bubbles: true })\n/**\n * Fires when 25% of video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"video25\", { bubbles: true })\n/**\n * Fires when 50% of video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"video50\", { bubbles: true })\n/**\n * Fires when 75% of video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"video75\", { bubbles: true })\nclass UDExMediaPlayer extends UI5Element {\n eventDetails!: {\n \"videoStart\": void,\n \"videoPause\": void,\n \"videoComplete\": void,\n \"videoReady\": void,\n \"videoProgress\": UDExMediaPlayerVideoProgressEventDetail,\n \"video25\": void,\n \"video50\": void,\n \"video75\": void,\n };\n /**\n * Defines the options object of video.js element\n * accepts following properties: https://videojs.com/guides/options\n *\n * @public\n */\n @property({ type: String })\n options!: string;\n /**\n * Defines the source of the video or audio\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n source: string = \"\";\n /**\n * Defines the video/audio type (examples: \"video/mp4\" for mp4, \"application/x-mpegURL\" for m3u8, \"audio/mp3\" for mp3) more information https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source\n *\n * @default \"video/mp4\"\n * @public\n */\n @property({ type: String })\n type: string = \"video/mp4\";\n /**\n * Defines a title for youtube video\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n title: string = \"\";\n /**\n * Defines if only audio should be played\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n audioOnly!: boolean;\n /**\n * Defines the poster url\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n poster: string = \"\";\n /**\n * Placeholder for all html `track` elements to provide video subtitles.\n * Example: `<track kind='captions' src='./videoSubtitles.vtt' srclang='en' label='English' default />`\n * More information: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/track\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true, individualSlots: true })\n caption!: Array<HTMLElement>;\n /**\n * Defines video width. Used for YouTube and Vimeo videos only.\n * Regular video and audio sizes are control by CSS variables.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n width: string = \"\";\n /**\n * Defines video height. Used for YouTube and Vimeo videos only.\n * Regular video and audio sizes are control by CSS variables.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n height: string = \"\";\n /**\n * Defines id of html element that videojs will be initialized with\n *\n * @default \"udex-media-player\"\n * @public\n */\n @property({ type: String })\n playerid: string = \"udex-media-player\";\n /**\n * Defines aspect ratio of video. If set, video will be display in fluid mode.\n * Possible values: \"16:9\" , \"9:16\", \"4:3\", \"1:1\", \"none\"\n *\n * @default \"16:9\"\n * @public\n */\n @property()\n aspectRatio: `${UDExAspectRatio}` = \"16:9\";\n /**\n * If this property is set, whenever user will focus on udex-media-player element, focus will be redirected into Big Play Button element.\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n playButtonInitialFocus!: boolean;\n /**\n * Enable videojs instance to be added to global window object\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n enableGlobalDependency!: boolean;\n /**\n * @private\n */\n @property({ type: Boolean })\n _allowIframeLoad!: boolean;\n\n player!: any;\n video25!: boolean;\n video50!: boolean;\n video75!: boolean;\n videoCompleted!: boolean;\n videoStart!: boolean;\n videoReady!: boolean;\n videoProgress!: number;\n\n getPlayedTime = (target: EventTarget): number => {\n const progressControl = (target as any)?.player.controlBar?.progressControl?.childNameIndex_.seekBar;\n if (!progressControl) {\n return 0;\n }\n return Math.round(progressControl.getPercent() * 100);\n };\n\n calculateVideoProgress(timeWatched: number) {\n if (timeWatched >= 25 && !this.video25) {\n this.fireDecoratorEvent(\"video25\");\n this.video25 = true;\n }\n\n if (timeWatched >= 50 && !this.video50) {\n this.fireDecoratorEvent(\"video50\");\n this.video50 = true;\n }\n\n if (timeWatched >= 75 && !this.video75) {\n this.fireDecoratorEvent(\"video75\");\n this.video75 = true;\n }\n\n this.fireDecoratorEvent(\"videoProgress\", { progress: timeWatched });\n }\n\n checkCaptionsAvailability(player: any) {\n player.on(\"loadedmetadata\", () => {\n if (!player?.textTracks) { return; }\n\n const tracks = player?.textTracks();\n let captionsAvailable = false;\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i].kind === \"captions\" || tracks[i].kind === \"subtitles\") {\n captionsAvailable = true;\n }\n }\n\n if (!captionsAvailable && !this._tracks.length) {\n player.controlBar?.removeChild(\"SubsCapsButton\");\n }\n });\n }\n\n applyScrollIntoTheView() {\n const bigPlayButton = this.player.bigPlayButton?.el();\n bigPlayButton.addEventListener(\"focus\", () => {\n this.player.el().scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n });\n }\n\n attachListeners(player: any) {\n player.on(\"timeupdate\", (e: Event) => {\n if (!e.target) {\n return;\n }\n\n const timeWatched = this.getPlayedTime(e.target);\n if (timeWatched >= 0) {\n this.calculateVideoProgress(timeWatched);\n }\n });\n\n player.on(\"play\", () => {\n this.fireDecoratorEvent(\"videoStart\");\n });\n\n player.on(\"ended\", () => {\n this.fireDecoratorEvent(\"videoComplete\");\n });\n\n player.on(\"pause\", () => {\n this.fireDecoratorEvent(\"videoPause\");\n });\n\n player.on(\"ready\", () => {\n this.checkCaptionsAvailability(player);\n this.applyScrollIntoTheView();\n this.fireDecoratorEvent(\"videoReady\");\n });\n\n if (this.playButtonInitialFocus) {\n this.addEventListener(\"focus\", () => {\n (async () => {\n await player.getChild(\"BigPlayButton\")?.el_.focus();\n })();\n });\n }\n }\n\n /**\n * Returns video element\n * @public\n */\n getPlayer(): HTMLVideoElement | HTMLAudioElement | YoutubePlayer | VimeoPlayer | null {\n if (this._youtubeSrc) {\n const player = this.shadowRoot?.querySelector(\"[udex-media-player-youtube]\") as UDExMediaPlayerYoutube;\n return player?.getPlayer() || null;\n }\n if (this._vimeoSrc) {\n const player = this.shadowRoot?.querySelector(\"[udex-media-player-vimeo]\") as UDExMediaPlayerVimeo;\n return player?.getPlayer() || null;\n }\n return this.shadowRoot?.querySelector(\".video-js video\") as HTMLVideoElement || this.shadowRoot?.querySelector(\".video-js audio\") || null;\n }\n\n setupHotkeys(e: KeyboardEvent, player: any) {\n // Back to start\n if (e.key === \"0\") {\n e.preventDefault();\n e.stopPropagation();\n player.currentTime(0);\n player.play();\n return;\n }\n\n // Full screen toggle\n if (e.key.toLowerCase() === \"f\") {\n e.preventDefault();\n e.stopPropagation();\n if (!player.isFullscreen()) {\n player.requestFullscreen();\n } else {\n player.exitFullscreen();\n }\n return;\n }\n\n // Mute / Unmute\n if (e.key.toLowerCase() === \"m\") {\n e.preventDefault();\n e.stopPropagation();\n player.muted(!player.muted());\n return;\n }\n\n // Play / Pause\n if (e.key === \" \") {\n e.preventDefault();\n e.stopPropagation();\n if (player.paused()) {\n player.play();\n } else {\n player.pause();\n }\n return;\n }\n\n // Speed up the video - set higher playback rate\n if (e.key === \"ArrowRight\" && e.shiftKey) {\n e.preventDefault();\n e.stopPropagation();\n const playbackRatesOptions: Array<number> = player.options_.playbackRates;\n const currentRateIndex = playbackRatesOptions.indexOf(player.playbackRate() as number ?? 1);\n if (currentRateIndex < playbackRatesOptions.length - 1) {\n const newPlaybackRate = currentRateIndex + 1;\n player.playbackRate(playbackRatesOptions[newPlaybackRate]);\n }\n return;\n }\n\n // Slow down the video - set lower playback rate\n if (e.key === \"ArrowLeft\" && e.shiftKey) {\n e.preventDefault();\n e.stopPropagation();\n const playbackRatesOptions: Array<number> = player.options_.playbackRates;\n const currentRateIndex = playbackRatesOptions.indexOf(player.playbackRate() as number ?? 1);\n if (currentRateIndex > 0) {\n const newPlaybackRate = currentRateIndex - 1;\n player.playbackRate(playbackRatesOptions[newPlaybackRate]);\n }\n return;\n }\n\n // Skip forward / Skip backward\n if (e.key === \"ArrowRight\" || e.key === \"ArrowLeft\") {\n e.preventDefault();\n e.stopPropagation();\n const stepSeconds = player.controlBar.progressControl.seekBar.options_.stepSeconds;\n const duration: number = player.duration() ?? 0;\n const currentTime: number = player.currentTime() ?? 0;\n const delta: number = (e.key === \"ArrowRight\" ? stepSeconds : -stepSeconds);\n const newTime = Math.min(Math.max(currentTime + delta, 0), duration);\n player.currentTime(newTime);\n return;\n }\n\n // Volume change\n if (((e.key === \"ArrowUp\" || e.key === \"ArrowDown\") && e.ctrlKey)\n || ((e.key === \"ArrowUp\" || e.key === \"ArrowDown\") && e.metaKey)) {\n e.preventDefault();\n e.stopPropagation();\n const volumeStep: number = 0.1;\n const volume: number = player.volume() ?? 0;\n let newVolume = volume + (e.key === \"ArrowUp\" ? volumeStep : -volumeStep);\n newVolume = Math.min(Math.max(newVolume, 0), 1);\n player.volume(newVolume);\n }\n }\n\n getOptionsValue() {\n const baseOptions = {\n playbackRates: [1, 1.5, 2],\n controls: true,\n poster: this.poster,\n audioOnly: this.audioOnly,\n bigPlayButton: true,\n controlBar: {\n playToggle: true,\n volumePanel: true,\n progressControl: {\n seekBar: {\n stepSeconds: 10,\n },\n },\n remainingTimeDisplay: true,\n subsCapsButton: true,\n playbackRateMenuButton: true,\n fullscreenToggle: true,\n pictureInPictureToggle: false,\n },\n userActions: {\n hotkeys: (e: KeyboardEvent) => {\n this.setupHotkeys(e, this.player);\n },\n },\n };\n\n if (!this.options) {\n return baseOptions;\n }\n\n return {\n ...baseOptions,\n ...JSON.parse(this.options),\n };\n }\n\n async setupLanguage(language: string) {\n try {\n return await mapLangFile(language);\n } catch (err) {\n console.warn(\"Cannot load language file\", err);\n }\n }\n\n onAfterRendering(): void {\n if (this._youtubeSrc || this._vimeoSrc) {\n return;\n }\n\n import(\"video.js\").then(async (videojsModule: any) => {\n const videojs = videojsModule.default;\n\n if (this.enableGlobalDependency) {\n window.videojs = videojs;\n }\n\n const options = this.getOptionsValue();\n const language: string = options?.language;\n if (language) {\n const languageData = await this.setupLanguage(language);\n videojs.addLanguage(language, {\n ...languageData,\n ...languageData?.default,\n });\n }\n\n this.player = videojs(this.shadowRoot?.querySelector(\".video-js\") || \"\", options);\n this.attachListeners(this.player);\n\n if (this.audioOnly) { return; }\n\n const backgroundOpacityElement = this.shadowRoot?.querySelector<HTMLOptionElement>(\".vjs-bg-opacity > select > option[value=\\\"0.5\\\"]\");\n if (backgroundOpacityElement) {\n backgroundOpacityElement.value = \"0.7\";\n backgroundOpacityElement.selected = true;\n }\n\n const fontSizeElement = this.shadowRoot?.querySelector<HTMLOptionElement>(\".vjs-font-percent > select > option[value=\\\"1.00\\\"]\");\n if (fontSizeElement) { fontSizeElement.value = \"1.2245\"; }\n\n const playbackSpeed = this.shadowRoot?.querySelector<HTMLOptionElement>(\".vjs-playback-rate .vjs-playback-rate-value\");\n playbackSpeed?.setAttribute(\"aria-hidden\", \"true\");\n });\n }\n\n handleEmbedPlay() {\n this._allowIframeLoad = true;\n }\n\n handleEmbedVideoReady() {\n this.fireDecoratorEvent(\"videoReady\");\n }\n\n handleEmbedVideoPlaying = (embedEvent: CustomEvent) => {\n if (!this.videoStart) {\n this.fireDecoratorEvent(\"videoStart\");\n this.videoStart = true;\n }\n const playedTime = Math.round(embedEvent.detail.percentPlayed as number);\n this.calculateVideoProgress(playedTime);\n };\n\n handleEmbedVideoEnded() {\n this.fireDecoratorEvent(\"videoComplete\");\n }\n\n handleEmbedVideoPause() {\n this.fireDecoratorEvent(\"videoPause\");\n }\n\n get _iframePosterPreload() {\n const shouldBlockIframe = this._iframeLoad && this.poster;\n if (this._allowIframeLoad) {\n return false;\n }\n if (!shouldBlockIframe) {\n this._allowIframeLoad = true;\n }\n return shouldBlockIframe;\n }\n\n get _iframeLoad() {\n return this._youtubeSrc || this._vimeoSrc;\n }\n\n get _tracks(): Array<HTMLTrackElement> {\n return this.getSlottedNodes(\"caption\");\n }\n\n get _vimeoSrc() {\n return this.source.includes(\"vimeo\");\n }\n\n get _youtubeSrc() {\n return this.source.includes(\"youtube\");\n }\n\n get aspectRatioClass() {\n switch (this.aspectRatio) {\n case UDExAspectRatio[\"16:9\"]:\n return \"vjs-16-9 udex-media-player__fluid vjs-fluid\";\n case UDExAspectRatio[\"9:16\"]:\n return \"vjs-9-16 udex-media-player__fluid vjs-fluid\";\n case UDExAspectRatio[\"4:3\"]:\n return \"vjs-4-3 udex-media-player__fluid vjs-fluid\";\n case UDExAspectRatio[\"1:1\"]:\n return \"vjs-1-1 udex-media-player__fluid vjs-fluid\";\n default:\n return \"\";\n }\n }\n\n get embedVideoFluidClass() {\n if (this.aspectRatio === UDExAspectRatio[\"16:9\"] || this.aspectRatio === UDExAspectRatio[\"9:16\"] || this.aspectRatio === UDExAspectRatio[\"4:3\"] || this.aspectRatio === UDExAspectRatio[\"1:1\"]) {\n return true;\n }\n return false;\n }\n\n get playerElementId(): string {\n return this.playerid || \"udex-media-player\";\n }\n\n onExitDOM(): void {\n if (this.player) {\n this.player.dispose();\n }\n }\n}\n\nUDExMediaPlayer.define();\n\nexport default UDExMediaPlayer;\nexport type { UDExMediaPlayerVideoProgressEventDetail };\n"]}
1
+ {"version":3,"file":"MediaPlayer.js","sourceRoot":"","sources":["../src/MediaPlayer.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.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 { VimeoPlayer } from \"./MediaPlayerVimeo.js\";\nimport mapLangFile from \"./mediaPlayerLanguageMapping.js\";\nimport type UDExMediaPlayerYoutube from \"./MediaPlayerYoutube.js\";\nimport type UDExMediaPlayerVimeo from \"./MediaPlayerVimeo.js\";\n\n// Template\nimport MediaPlayerTemplate from \"./MediaPlayerTemplate.js\";\n\n// Styles\nimport MediaPlayerCss from \"./generated/themes/MediaPlayer.css.js\";\n\ndeclare global {\n interface Window {\n videojs: any;\n }\n}\n\nexport type YoutubePlayer = YT.Player;\nexport enum UDExAspectRatio {\n \"16:9\" = \"16:9\",\n \"9:16\" = \"9:16\",\n \"4:3\" = \"4:3\",\n \"1:1\" = \"1:1\",\n \"none\" = \"none\",\n}\n\ntype UDExMediaPlayerVideoProgressEventDetail = {\n progress: number,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-media-player</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/MediaPlayer.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-media-player\n * @public\n */\n@customElement({\n tag: \"udex-media-player\",\n renderer: jsxRenderer,\n styles: MediaPlayerCss,\n template: MediaPlayerTemplate,\n})\n/**\n * Fires when video is played\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoStart\")\n/**\n * Fires when video is paused\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoPause\", { bubbles: true })\n/**\n * Fires when video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoComplete\", { bubbles: true })\n/**\n * Fires when video is ready\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoReady\", { bubbles: true })\n/**\n * Fires when video watching progress changed\n *\n * @allowPreventDefault\n * @public\n * @param {number} progress percentage of video watched\n */\n@event(\"videoProgress\", { bubbles: true })\n/**\n * Fires when 25% of video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"video25\", { bubbles: true })\n/**\n * Fires when 50% of video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"video50\", { bubbles: true })\n/**\n * Fires when 75% of video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"video75\", { bubbles: true })\nclass UDExMediaPlayer extends UI5Element {\n eventDetails!: {\n \"videoStart\": void,\n \"videoPause\": void,\n \"videoComplete\": void,\n \"videoReady\": void,\n \"videoProgress\": UDExMediaPlayerVideoProgressEventDetail,\n \"video25\": void,\n \"video50\": void,\n \"video75\": void,\n };\n /**\n * Defines the options object of video.js element\n * accepts following properties: https://videojs.com/guides/options\n *\n * @public\n */\n @property({ type: String })\n options!: string;\n /**\n * Defines the source of the video or audio\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n source: string = \"\";\n /**\n * Defines the video/audio type (examples: \"video/mp4\" for mp4, \"application/x-mpegURL\" for m3u8, \"audio/mp3\" for mp3) more information https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source\n *\n * @default \"video/mp4\"\n * @public\n */\n @property({ type: String })\n type: string = \"video/mp4\";\n /**\n * Defines a title for youtube video\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n title: string = \"\";\n /**\n * Defines if only audio should be played\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n audioOnly!: boolean;\n /**\n * Defines the poster url\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n poster: string = \"\";\n /**\n * Placeholder for all html `track` elements to provide video subtitles.\n * Example: `<track kind='captions' src='./videoSubtitles.vtt' srclang='en' label='English' default />`\n * More information: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/track\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true, individualSlots: true })\n caption!: Array<HTMLElement>;\n /**\n * Defines video width. Used for YouTube and Vimeo videos only.\n * Regular video and audio sizes are control by CSS variables.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n width: string = \"\";\n /**\n * Defines video height. Used for YouTube and Vimeo videos only.\n * Regular video and audio sizes are control by CSS variables.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n height: string = \"\";\n /**\n * Defines id of html element that videojs will be initialized with\n *\n * @default \"udex-media-player\"\n * @public\n */\n @property({ type: String })\n playerid: string = \"udex-media-player\";\n /**\n * Defines aspect ratio of video. If set, video will be display in fluid mode.\n * Possible values: \"16:9\" , \"9:16\", \"4:3\", \"1:1\", \"none\"\n *\n * @default \"16:9\"\n * @public\n */\n @property()\n aspectRatio: `${UDExAspectRatio}` = \"16:9\";\n /**\n * If this property is set, whenever user will focus on udex-media-player element, focus will be redirected into Big Play Button element.\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n playButtonInitialFocus!: boolean;\n /**\n * Enable videojs instance to be added to global window object\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n enableGlobalDependency!: boolean;\n /**\n * @private\n */\n @property({ type: Boolean })\n _allowIframeLoad!: boolean;\n\n player!: any;\n video25!: boolean;\n video50!: boolean;\n video75!: boolean;\n videoCompleted!: boolean;\n videoStart!: boolean;\n videoReady!: boolean;\n videoProgress!: number;\n\n getPlayedTime = (target: EventTarget): number => {\n const progressControl = (target as any)?.player.controlBar?.progressControl?.childNameIndex_.seekBar;\n if (!progressControl) {\n return 0;\n }\n return Math.round(progressControl.getPercent() * 100);\n };\n\n calculateVideoProgress(timeWatched: number) {\n if (timeWatched >= 25 && !this.video25) {\n this.fireDecoratorEvent(\"video25\");\n this.video25 = true;\n }\n\n if (timeWatched >= 50 && !this.video50) {\n this.fireDecoratorEvent(\"video50\");\n this.video50 = true;\n }\n\n if (timeWatched >= 75 && !this.video75) {\n this.fireDecoratorEvent(\"video75\");\n this.video75 = true;\n }\n\n this.fireDecoratorEvent(\"videoProgress\", { progress: timeWatched });\n }\n\n checkCaptionsAvailability(player: any) {\n player.on(\"loadedmetadata\", () => {\n if (!player?.textTracks) { return; }\n\n const tracks = player?.textTracks();\n let captionsAvailable = false;\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i].kind === \"captions\" || tracks[i].kind === \"subtitles\") {\n captionsAvailable = true;\n }\n }\n\n if (!captionsAvailable && !this._tracks.length) {\n player.controlBar?.removeChild(\"SubsCapsButton\");\n }\n });\n }\n\n applyScrollIntoTheView() {\n const bigPlayButton = this.player.bigPlayButton?.el();\n bigPlayButton.addEventListener(\"focus\", () => {\n this.player.el().scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n });\n }\n\n attachListeners(player: any) {\n player.on(\"timeupdate\", (e: Event) => {\n if (!e.target) {\n return;\n }\n\n const timeWatched = this.getPlayedTime(e.target);\n if (timeWatched >= 0) {\n this.calculateVideoProgress(timeWatched);\n }\n });\n\n player.on(\"play\", () => {\n this.fireDecoratorEvent(\"videoStart\");\n });\n\n player.on(\"ended\", () => {\n this.fireDecoratorEvent(\"videoComplete\");\n });\n\n player.on(\"pause\", () => {\n this.fireDecoratorEvent(\"videoPause\");\n });\n\n player.on(\"ready\", () => {\n this.checkCaptionsAvailability(player);\n this.applyScrollIntoTheView();\n this.player.src(this.source);\n this.fireDecoratorEvent(\"videoReady\");\n });\n\n if (this.playButtonInitialFocus) {\n this.addEventListener(\"focus\", () => {\n (async () => {\n await player.getChild(\"BigPlayButton\")?.el_.focus();\n })();\n });\n }\n }\n\n /**\n * Returns video element\n * @public\n */\n getPlayer(): HTMLVideoElement | HTMLAudioElement | YoutubePlayer | VimeoPlayer | null {\n if (this._youtubeSrc) {\n const player = this.shadowRoot?.querySelector(\"[udex-media-player-youtube]\") as UDExMediaPlayerYoutube;\n return player?.getPlayer() || null;\n }\n if (this._vimeoSrc) {\n const player = this.shadowRoot?.querySelector(\"[udex-media-player-vimeo]\") as UDExMediaPlayerVimeo;\n return player?.getPlayer() || null;\n }\n return this.shadowRoot?.querySelector(\".video-js video\") as HTMLVideoElement || this.shadowRoot?.querySelector(\".video-js audio\") || null;\n }\n\n setupHotkeys(e: KeyboardEvent, player: any) {\n // Back to start\n if (e.key === \"0\") {\n e.preventDefault();\n e.stopPropagation();\n player.currentTime(0);\n player.play();\n return;\n }\n\n // Full screen toggle\n if (e.key.toLowerCase() === \"f\") {\n e.preventDefault();\n e.stopPropagation();\n if (!player.isFullscreen()) {\n player.requestFullscreen();\n } else {\n player.exitFullscreen();\n }\n return;\n }\n\n // Mute / Unmute\n if (e.key.toLowerCase() === \"m\") {\n e.preventDefault();\n e.stopPropagation();\n player.muted(!player.muted());\n return;\n }\n\n // Play / Pause\n if (e.key === \" \") {\n e.preventDefault();\n e.stopPropagation();\n if (player.paused()) {\n player.play();\n } else {\n player.pause();\n }\n return;\n }\n\n // Speed up the video - set higher playback rate\n if (e.key === \"ArrowRight\" && e.shiftKey) {\n e.preventDefault();\n e.stopPropagation();\n const playbackRatesOptions: Array<number> = player.options_.playbackRates;\n const currentRateIndex = playbackRatesOptions.indexOf(player.playbackRate() as number ?? 1);\n if (currentRateIndex < playbackRatesOptions.length - 1) {\n const newPlaybackRate = currentRateIndex + 1;\n player.playbackRate(playbackRatesOptions[newPlaybackRate]);\n }\n return;\n }\n\n // Slow down the video - set lower playback rate\n if (e.key === \"ArrowLeft\" && e.shiftKey) {\n e.preventDefault();\n e.stopPropagation();\n const playbackRatesOptions: Array<number> = player.options_.playbackRates;\n const currentRateIndex = playbackRatesOptions.indexOf(player.playbackRate() as number ?? 1);\n if (currentRateIndex > 0) {\n const newPlaybackRate = currentRateIndex - 1;\n player.playbackRate(playbackRatesOptions[newPlaybackRate]);\n }\n return;\n }\n\n // Skip forward / Skip backward\n if (e.key === \"ArrowRight\" || e.key === \"ArrowLeft\") {\n e.preventDefault();\n e.stopPropagation();\n const stepSeconds = player.controlBar.progressControl.seekBar.options_.stepSeconds;\n const duration: number = player.duration() ?? 0;\n const currentTime: number = player.currentTime() ?? 0;\n const delta: number = (e.key === \"ArrowRight\" ? stepSeconds : -stepSeconds);\n const newTime = Math.min(Math.max(currentTime + delta, 0), duration);\n player.currentTime(newTime);\n return;\n }\n\n // Volume change\n if (((e.key === \"ArrowUp\" || e.key === \"ArrowDown\") && e.ctrlKey)\n || ((e.key === \"ArrowUp\" || e.key === \"ArrowDown\") && e.metaKey)) {\n e.preventDefault();\n e.stopPropagation();\n const volumeStep: number = 0.1;\n const volume: number = player.volume() ?? 0;\n let newVolume = volume + (e.key === \"ArrowUp\" ? volumeStep : -volumeStep);\n newVolume = Math.min(Math.max(newVolume, 0), 1);\n player.volume(newVolume);\n }\n }\n\n getOptionsValue() {\n const baseOptions = {\n type: this.type,\n playbackRates: [1, 1.5, 2],\n controls: true,\n poster: this.poster,\n audioOnly: this.audioOnly,\n bigPlayButton: true,\n controlBar: {\n playToggle: true,\n volumePanel: true,\n progressControl: {\n seekBar: {\n stepSeconds: 10,\n },\n },\n remainingTimeDisplay: true,\n subsCapsButton: true,\n playbackRateMenuButton: true,\n fullscreenToggle: true,\n pictureInPictureToggle: false,\n },\n userActions: {\n hotkeys: (e: KeyboardEvent) => {\n this.setupHotkeys(e, this.player);\n },\n },\n };\n\n if (!this.options) {\n return baseOptions;\n }\n\n return {\n ...baseOptions,\n ...JSON.parse(this.options),\n };\n }\n\n async setupLanguage(language: string) {\n try {\n return await mapLangFile(language);\n } catch (err) {\n console.warn(\"Cannot load language file\", err);\n }\n }\n\n onAfterRendering(): void {\n if (this._youtubeSrc || this._vimeoSrc) {\n return;\n }\n\n import(\"video.js\").then(async (videojsModule: any) => {\n const videojs = videojsModule.default;\n\n if (this.enableGlobalDependency) {\n window.videojs = videojs;\n }\n\n const options = this.getOptionsValue();\n const language: string = options?.language;\n if (language) {\n const languageData = await this.setupLanguage(language);\n videojs.addLanguage(language, {\n ...languageData,\n ...languageData?.default,\n });\n }\n\n this.player = videojs(this.shadowRoot?.querySelector(\".video-js\") || \"\", options);\n this.attachListeners(this.player);\n\n if (this.audioOnly) { return; }\n\n const backgroundOpacityElement = this.shadowRoot?.querySelector<HTMLOptionElement>(\".vjs-bg-opacity > select > option[value=\\\"0.5\\\"]\");\n if (backgroundOpacityElement) {\n backgroundOpacityElement.value = \"0.7\";\n backgroundOpacityElement.selected = true;\n }\n\n const fontSizeElement = this.shadowRoot?.querySelector<HTMLOptionElement>(\".vjs-font-percent > select > option[value=\\\"1.00\\\"]\");\n if (fontSizeElement) { fontSizeElement.value = \"1.2245\"; }\n\n const playbackSpeed = this.shadowRoot?.querySelector<HTMLOptionElement>(\".vjs-playback-rate .vjs-playback-rate-value\");\n playbackSpeed?.setAttribute(\"aria-hidden\", \"true\");\n });\n }\n\n handleEmbedPlay() {\n this._allowIframeLoad = true;\n }\n\n handleEmbedVideoReady() {\n this.fireDecoratorEvent(\"videoReady\");\n }\n\n handleEmbedVideoPlaying = (embedEvent: CustomEvent) => {\n if (!this.videoStart) {\n this.fireDecoratorEvent(\"videoStart\");\n this.videoStart = true;\n }\n const playedTime = Math.round(embedEvent.detail.percentPlayed as number);\n this.calculateVideoProgress(playedTime);\n };\n\n handleEmbedVideoEnded() {\n this.fireDecoratorEvent(\"videoComplete\");\n }\n\n handleEmbedVideoPause() {\n this.fireDecoratorEvent(\"videoPause\");\n }\n\n get _iframePosterPreload() {\n const shouldBlockIframe = this._iframeLoad && this.poster;\n if (this._allowIframeLoad) {\n return false;\n }\n if (!shouldBlockIframe) {\n this._allowIframeLoad = true;\n }\n return shouldBlockIframe;\n }\n\n get _iframeLoad() {\n return this._youtubeSrc || this._vimeoSrc;\n }\n\n get _tracks(): Array<HTMLTrackElement> {\n return this.getSlottedNodes(\"caption\");\n }\n\n get _vimeoSrc() {\n return this.source.includes(\"vimeo\");\n }\n\n get _youtubeSrc() {\n return this.source.includes(\"youtube\");\n }\n\n get aspectRatioClass() {\n switch (this.aspectRatio) {\n case UDExAspectRatio[\"16:9\"]:\n return \"vjs-16-9 udex-media-player__fluid vjs-fluid\";\n case UDExAspectRatio[\"9:16\"]:\n return \"vjs-9-16 udex-media-player__fluid vjs-fluid\";\n case UDExAspectRatio[\"4:3\"]:\n return \"vjs-4-3 udex-media-player__fluid vjs-fluid\";\n case UDExAspectRatio[\"1:1\"]:\n return \"vjs-1-1 udex-media-player__fluid vjs-fluid\";\n default:\n return \"\";\n }\n }\n\n get embedVideoFluidClass() {\n if (this.aspectRatio === UDExAspectRatio[\"16:9\"] || this.aspectRatio === UDExAspectRatio[\"9:16\"] || this.aspectRatio === UDExAspectRatio[\"4:3\"] || this.aspectRatio === UDExAspectRatio[\"1:1\"]) {\n return true;\n }\n return false;\n }\n\n get playerElementId(): string {\n return this.playerid || \"udex-media-player\";\n }\n\n onExitDOM(): void {\n if (this.player) {\n this.player.dispose();\n }\n }\n}\n\nUDExMediaPlayer.define();\n\nexport default UDExMediaPlayer;\nexport type { UDExMediaPlayerVideoProgressEventDetail };\n"]}
@@ -13,10 +13,10 @@ function renderAudioOnlyTemplate(rootClass) {
13
13
  return (_jsx("audio", { id: this.playerElementId, class: `${rootClass} ${this.aspectRatioClass}`, preload: "auto", children: _jsx("source", { src: this.source, type: this.type }) }));
14
14
  }
15
15
  function renderStandardTemplate(rootClass) {
16
- return (_jsxs("video-js", { id: this.playerElementId, class: `${rootClass} ${this.aspectRatioClass}`, children: [_jsx("source", { src: this.source, type: this.type }), this._tracks.map((element, index) => {
17
- const { "default": isDefault, kind, src, srclang, label } = element;
18
- return (_jsx("track", { kind: kind, src: src, srclang: srclang, label: label, ...(isDefault ? { "default": true } : {}) }, index));
19
- })] }));
16
+ return (_jsx("video-js", { id: this.playerElementId, class: `${rootClass} ${this.aspectRatioClass}`, children: this._tracks.map((element, index) => {
17
+ const { "default": isDefault, kind, src, srclang, label } = element;
18
+ return (_jsx("track", { kind: kind, src: src, srclang: srclang, label: label, ...(isDefault ? { "default": true } : {}) }, index));
19
+ }) }));
20
20
  }
21
21
  function renderEmbedTemplate() {
22
22
  if (this._iframePosterPreload) {
@@ -1 +1 @@
1
- {"version":3,"file":"MediaPlayerTemplate.js","sourceRoot":"","sources":["../src/MediaPlayerTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\n// No ts check required for video-js tag usage. Please remove during development.\nimport type UDExMediaPlayer from \"./MediaPlayer.js\";\nimport UDExMediaPlayerYoutube from \"./MediaPlayerYoutube.js\";\nimport UDExMediaPlayerVimeo from \"./MediaPlayerVimeo.js\";\nimport \"@ui5/webcomponents-icons/dist/play.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\n\nexport default function MediaPlayerTemplate(this: UDExMediaPlayer) {\n const rootClass = \"udex-media-player__video video-js\";\n\n return (\n <>\n {this.audioOnly ? renderAudioOnlyTemplate.call(this, rootClass) :\n this._iframeLoad ? renderEmbedTemplate.call(this) :\n renderStandardTemplate.call(this, rootClass)\n }\n </>\n );\n}\n\nfunction renderAudioOnlyTemplate(this: UDExMediaPlayer, rootClass: string) {\n return (\n <audio\n id={this.playerElementId}\n class={`${rootClass} ${this.aspectRatioClass}`}\n preload=\"auto\">\n <source src={this.source} type={this.type}/>\n </audio>\n );\n}\n\nfunction renderStandardTemplate(this: UDExMediaPlayer, rootClass: string) {\n return (\n <video-js\n id={this.playerElementId}\n class={`${rootClass} ${this.aspectRatioClass}`}>\n <source src={this.source} type={this.type} />\n {this._tracks.map((element: HTMLTrackElement, index: number) => {\n const {\n \"default\": isDefault, kind, src, srclang, label\n } = element;\n return (\n <track\n key={index}\n kind={kind}\n src={src}\n srclang={srclang}\n label={label}\n {...(isDefault ? { \"default\": true } : {})}\n />\n );\n })}\n </video-js>\n );\n}\n\nfunction renderEmbedTemplate(this: UDExMediaPlayer) {\n if (this._iframePosterPreload) {\n return (\n <div class={`video-js udex-media-player__iframe-poster ${this.aspectRatioClass}`}>\n <div class=\"udex-media-player__vjs-poster\" aria-disabled=\"false\">\n <picture tabindex={-1}><img loading=\"lazy\" alt=\"\" src={this.poster} width={this.width} height={this.height} /></picture>\n <button class=\"vjs-big-play-button\" type=\"button\" title=\"Play Video\" aria-disabled=\"false\" onClick={this.handleEmbedPlay}>\n <Icon aria-label=\"Play Video\" name=\"play\"></Icon>\n </button>\n </div>\n </div>\n );\n }\n\n if (this._youtubeSrc) {\n return (\n <UDExMediaPlayerYoutube\n source={this.source}\n width={this.width}\n height={this.height}\n class={`video-js ${this.aspectRatioClass}`}\n {...this.embedVideoFluidClass ? { \"fluid-mode\": this.embedVideoFluidClass } : {}}\n onPlaying={this.handleEmbedVideoPlaying}\n onEnded={this.handleEmbedVideoEnded}\n onReady={this.handleEmbedVideoReady}\n onPause={this.handleEmbedVideoPause}>\n </UDExMediaPlayerYoutube>\n );\n }\n\n if (this._vimeoSrc) {\n return (\n <UDExMediaPlayerVimeo\n source={this.source}\n width={this.width}\n height={this.height}\n title={this.title}\n aspect-ratio-class={this.aspectRatioClass}\n {...this.embedVideoFluidClass ? { \"fluid-mode\": this.embedVideoFluidClass } : {}}\n onPlaying={this.handleEmbedVideoPlaying}\n onEnded={this.handleEmbedVideoEnded}\n onReady={this.handleEmbedVideoReady}\n onPause={this.handleEmbedVideoPause}>\n </UDExMediaPlayerVimeo>);\n }\n}\n"]}
1
+ {"version":3,"file":"MediaPlayerTemplate.js","sourceRoot":"","sources":["../src/MediaPlayerTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\n// No ts check required for video-js tag usage. Please remove during development.\nimport type UDExMediaPlayer from \"./MediaPlayer.js\";\nimport UDExMediaPlayerYoutube from \"./MediaPlayerYoutube.js\";\nimport UDExMediaPlayerVimeo from \"./MediaPlayerVimeo.js\";\nimport \"@ui5/webcomponents-icons/dist/play.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\n\nexport default function MediaPlayerTemplate(this: UDExMediaPlayer) {\n const rootClass = \"udex-media-player__video video-js\";\n\n return (\n <>\n {this.audioOnly ? renderAudioOnlyTemplate.call(this, rootClass) :\n this._iframeLoad ? renderEmbedTemplate.call(this) :\n renderStandardTemplate.call(this, rootClass)\n }\n </>\n );\n}\n\nfunction renderAudioOnlyTemplate(this: UDExMediaPlayer, rootClass: string) {\n return (\n <audio\n id={this.playerElementId}\n class={`${rootClass} ${this.aspectRatioClass}`}\n preload=\"auto\">\n <source src={this.source} type={this.type}/>\n </audio>\n );\n}\n\nfunction renderStandardTemplate(this: UDExMediaPlayer, rootClass: string) {\n return (\n <video-js\n id={this.playerElementId}\n class={`${rootClass} ${this.aspectRatioClass}`}>\n {this._tracks.map((element: HTMLTrackElement, index: number) => {\n const {\n \"default\": isDefault, kind, src, srclang, label\n } = element;\n return (\n <track\n key={index}\n kind={kind}\n src={src}\n srclang={srclang}\n label={label}\n {...(isDefault ? { \"default\": true } : {})}\n />\n );\n })}\n </video-js>\n );\n}\n\nfunction renderEmbedTemplate(this: UDExMediaPlayer) {\n if (this._iframePosterPreload) {\n return (\n <div class={`video-js udex-media-player__iframe-poster ${this.aspectRatioClass}`}>\n <div class=\"udex-media-player__vjs-poster\" aria-disabled=\"false\">\n <picture tabindex={-1}><img loading=\"lazy\" alt=\"\" src={this.poster} width={this.width} height={this.height} /></picture>\n <button class=\"vjs-big-play-button\" type=\"button\" title=\"Play Video\" aria-disabled=\"false\" onClick={this.handleEmbedPlay}>\n <Icon aria-label=\"Play Video\" name=\"play\"></Icon>\n </button>\n </div>\n </div>\n );\n }\n\n if (this._youtubeSrc) {\n return (\n <UDExMediaPlayerYoutube\n source={this.source}\n width={this.width}\n height={this.height}\n class={`video-js ${this.aspectRatioClass}`}\n {...this.embedVideoFluidClass ? { \"fluid-mode\": this.embedVideoFluidClass } : {}}\n onPlaying={this.handleEmbedVideoPlaying}\n onEnded={this.handleEmbedVideoEnded}\n onReady={this.handleEmbedVideoReady}\n onPause={this.handleEmbedVideoPause}>\n </UDExMediaPlayerYoutube>\n );\n }\n\n if (this._vimeoSrc) {\n return (\n <UDExMediaPlayerVimeo\n source={this.source}\n width={this.width}\n height={this.height}\n title={this.title}\n aspect-ratio-class={this.aspectRatioClass}\n {...this.embedVideoFluidClass ? { \"fluid-mode\": this.embedVideoFluidClass } : {}}\n onPlaying={this.handleEmbedVideoPlaying}\n onEnded={this.handleEmbedVideoEnded}\n onReady={this.handleEmbedVideoReady}\n onPause={this.handleEmbedVideoPause}>\n </UDExMediaPlayerVimeo>);\n }\n}\n"]}
@@ -1,12 +1,14 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import { UDExListMode } from "./types/List.js";
2
3
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
3
4
  import type Popover from "@ui5/webcomponents/dist/Popover.js";
5
+ import type { UDExProcessedItem } from "./types/SearchableListBase.js";
4
6
  import type UDExSearch from "./Search.js";
5
7
  import type UDExListItemBase from "./ListItemBase.js";
6
8
  import type UDExListGroupHeaderBase from "./ListGroupHeaderBase.js";
7
- import { UDExListMode } from "./types/List.js";
9
+ import type UDExList from "./List.js";
10
+ import type UDExListItem from "./ListItem.js";
8
11
  import type UDExFilterMenuItem from "./FilterMenuItem.js";
9
- import type { UDExProcessedItem } from "./types/SearchableListBase.js";
10
12
  import { UDExPopoverPart } from "./types/SearchableListBase.js";
11
13
  export type UDExItemFromList = UDExListItemBase | UDExListGroupHeaderBase | null | undefined;
12
14
  type UDExSearchableListBaseChangeSearchEventDetail = {
@@ -36,7 +38,7 @@ export type UDExSearchableListBaseEvents = {
36
38
  * @class
37
39
  *
38
40
  * A class to serve as a foundation
39
- * for the <code>UDExFilterMenu</code> , <code>UDExSelectBox</code> and <code>UDExCountrySelector/code> classes.
41
+ * for the <code>UDExFilterMenu</code> and <code>UDExSelectBox</code> classes.
40
42
  *
41
43
  * @constructor
42
44
  * @author SAP SE
@@ -45,7 +47,8 @@ export type UDExSearchableListBaseEvents = {
45
47
  */
46
48
  /**
47
49
  * Fired event when the user click on an item on the list.
48
- *
50
+ * @param {Array<UDExListItemBase>} selectedItems The selected items.
51
+ * @param {UDExListItemBase | UDExListGroupHeaderBase | null | undefined} item The clicked item.
49
52
  * @public
50
53
  * @param {Array<UDExListItemBase>} selectedItems The selected items.
51
54
  * @param {UDExListItemBase | UDExListGroupHeaderBase | null | undefined} item The clicked item.
@@ -136,12 +139,18 @@ declare class UDExSearchableListBase extends UI5Element {
136
139
  */
137
140
  items: Array<UDExListItemBase | UDExListGroupHeaderBase>;
138
141
  /**
139
- * Defines the default accessible role for the list componnet.
142
+ * Defines the default accessible role for the list component.
140
143
  *
141
144
  * @default "list"
142
145
  * @public
143
146
  */
144
147
  defaultAccessibleRole: string;
148
+ /**
149
+ * Defines the filtered items for the component.
150
+ *
151
+ * @default []
152
+ * @private
153
+ */
145
154
  _filteredItems: Array<UDExProcessedItem>;
146
155
  static i18nBundle: I18nBundle;
147
156
  _shouldFilterItems?: boolean;
@@ -149,14 +158,13 @@ declare class UDExSearchableListBase extends UI5Element {
149
158
  constructor();
150
159
  onBeforeRendering(): void;
151
160
  onItemPress(e: CustomEvent): void;
152
- activateHeaderAndSetAllItems(item: UDExListGroupHeaderBase): void;
153
161
  handleDropdownItemPress(dropdownItemId: string): void;
154
162
  handleItemClick(item: UDExListItemBase): void;
155
163
  handleGroupHeaderState(groupHeader: UDExListGroupHeaderBase): void;
156
164
  onHeaderPress(e: CustomEvent): void;
157
165
  onSelectAllHeaderPress(e: CustomEvent): void;
158
- handleGroupHeaderSelection(e: CustomEvent): void;
159
- onSearch(e: CustomEvent): void;
166
+ handleGroupHeaderSelection(id: string): void;
167
+ onSearch(value: string): void;
160
168
  onReset(): void;
161
169
  onResetSearch(): void;
162
170
  onSubmitSearch(): void;
@@ -172,26 +180,24 @@ declare class UDExSearchableListBase extends UI5Element {
172
180
  isIncludes(string: string, value: string): boolean;
173
181
  revertSelectedItems(items: Array<UDExListItemBase>): void;
174
182
  syncFilteredItems(): void;
175
- handleKeyDown(e: KeyboardEvent): void;
176
183
  getSlottedItems(items: Array<UDExListItemBase | UDExListGroupHeaderBase>): Array<UDExListItemBase | UDExListGroupHeaderBase>;
177
184
  getItemFromList(itemId: string): UDExItemFromList;
178
185
  fireSelectionChange(itemId: string): void;
179
- handlePreviousItemFocus(e: KeyboardEvent): void;
180
- handleNextListItemFocus(e: KeyboardEvent): void;
181
186
  fireFirstIconClickEvent(e: CustomEvent): void;
182
187
  fireSecondIconClickEvent(e: CustomEvent): void;
183
188
  private _fireIconClickEvent;
184
189
  getFlattenItemsArray(array: Array<UDExProcessedItem>): (UDExProcessedItem | UDExListItemBase)[];
185
- getCurrentIndex(item: Element): number;
186
- getSearch(): UDExSearch;
190
+ getCurrentIndex(item: UDExListItem): number;
191
+ getList(): UDExList;
192
+ getSearch(): UDExSearch | HTMLInputElement;
187
193
  getPopover(): Popover;
188
- getDomListItems(): Element[];
189
- setItemsModeAndControl(items: Array<UDExFilterMenuItem>): void;
190
- getDataTokenId(e: CustomEvent): string;
194
+ getDomListItems(): UDExListItem[];
195
+ getDataTokenId(item: UDExListItemBase): string;
191
196
  getProcessedItems(): Array<UDExProcessedItem>;
192
197
  getPopoverPart(part: UDExPopoverPart): HTMLElement;
193
198
  _managePopupListeners(part: UDExPopoverPart, action: "addEventListener" | "removeEventListener"): void;
194
199
  _setContentHeight(): void;
200
+ _setItemsModeAndControl(items: Array<UDExFilterMenuItem>): void;
195
201
  get getNoResultText(): string;
196
202
  get noMatchesFoundText(): string;
197
203
  get resultReturnedText(): string;
@@ -209,6 +215,7 @@ declare class UDExSearchableListBase extends UI5Element {
209
215
  get roleForGroupList(): string;
210
216
  get accessibleRoleForList(): string;
211
217
  get listItemRole(): string;
218
+ get hideDropdownSearch(): boolean;
212
219
  }
213
220
  export default UDExSearchableListBase;
214
221
  export type { UDExSelectBoxIconClickEventDetail, UDExSearchableListBaseSubmitSearchEventDetail, UDExSearchableListBaseChangeSearchEventDetail, UDExSearchableListBaseSelectionChangeEventDetail, };
@@ -10,7 +10,6 @@ import event from "@ui5/webcomponents-base/dist/decorators/event-strict.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
12
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
13
- import { isDown, isUp } from "@ui5/webcomponents-base/dist/Keys.js";
14
13
  import { cleanLabel } from "./utils/listItemLabelUtils.js";
15
14
  import { UDExListMode } from "./types/List.js";
16
15
  import { SHOW_SEARCH_AFTER_COUNT, UDExPopoverPart } from "./types/SearchableListBase.js";
@@ -19,7 +18,7 @@ import { NO_MATCHES_FOUND, RESULT_RETURNED } from "./generated/i18n/i18n-default
19
18
  * @class
20
19
  *
21
20
  * A class to serve as a foundation
22
- * for the <code>UDExFilterMenu</code> , <code>UDExSelectBox</code> and <code>UDExCountrySelector/code> classes.
21
+ * for the <code>UDExFilterMenu</code> and <code>UDExSelectBox</code> classes.
23
22
  *
24
23
  * @constructor
25
24
  * @author SAP SE
@@ -28,7 +27,8 @@ import { NO_MATCHES_FOUND, RESULT_RETURNED } from "./generated/i18n/i18n-default
28
27
  */
29
28
  /**
30
29
  * Fired event when the user click on an item on the list.
31
- *
30
+ * @param {Array<UDExListItemBase>} selectedItems The selected items.
31
+ * @param {UDExListItemBase | UDExListGroupHeaderBase | null | undefined} item The clicked item.
32
32
  * @public
33
33
  * @param {Array<UDExListItemBase>} selectedItems The selected items.
34
34
  * @param {UDExListItemBase | UDExListGroupHeaderBase | null | undefined} item The clicked item.
@@ -59,7 +59,7 @@ let UDExSearchableListBase = UDExSearchableListBase_1 = class UDExSearchableList
59
59
  */
60
60
  this.mode = UDExListMode.SingleSelect;
61
61
  /**
62
- * Defines the default accessible role for the list componnet.
62
+ * Defines the default accessible role for the list component.
63
63
  *
64
64
  * @default "list"
65
65
  * @public
@@ -74,14 +74,10 @@ let UDExSearchableListBase = UDExSearchableListBase_1 = class UDExSearchableList
74
74
  }
75
75
  }
76
76
  onItemPress(e) {
77
- const dropdownItemId = this.getDataTokenId(e);
77
+ const dropdownItemId = this.getDataTokenId(e.detail.item);
78
78
  this.handleDropdownItemPress(dropdownItemId);
79
79
  this.fireSelectionChange(dropdownItemId);
80
80
  }
81
- activateHeaderAndSetAllItems(item) {
82
- item.activateHeader();
83
- item.setAllItems(false);
84
- }
85
81
  handleDropdownItemPress(dropdownItemId) {
86
82
  this.getProcessedItems().forEach(({ item, groupItems, isGroup }) => {
87
83
  if (isGroup) {
@@ -113,25 +109,28 @@ let UDExSearchableListBase = UDExSearchableListBase_1 = class UDExSearchableList
113
109
  }
114
110
  }
115
111
  onHeaderPress(e) {
116
- this.handleGroupHeaderSelection(e);
112
+ const item = e.detail.item;
113
+ const id = this.getDataTokenId(item);
114
+ this.handleGroupHeaderSelection(id);
117
115
  this.syncFilteredItems();
118
- this.fireSelectionChange(this.getDataTokenId(e));
116
+ this.fireSelectionChange(id);
119
117
  }
120
118
  onSelectAllHeaderPress(e) {
121
- this.handleGroupHeaderSelection(e);
119
+ const item = e.detail.item;
120
+ const id = this.getDataTokenId(item);
121
+ this.handleGroupHeaderSelection(id);
122
122
  this.syncFilteredItems();
123
123
  this.fireDecoratorEvent("select-all");
124
124
  }
125
- handleGroupHeaderSelection(e) {
126
- const headerItemId = this.getDataTokenId(e);
125
+ handleGroupHeaderSelection(id) {
127
126
  this.getProcessedItems().forEach(({ item }) => {
128
- if (item._id === headerItemId) {
127
+ if (item._id === id) {
129
128
  item.handleSelectionGroupState();
130
129
  }
131
130
  });
132
131
  }
133
- onSearch(e) {
134
- const searchValue = e.detail.value;
132
+ onSearch(value) {
133
+ const searchValue = value;
135
134
  this._shouldFilterItems = true;
136
135
  this._filteredItems = this.filterItems(this.getProcessedItems(), searchValue);
137
136
  const items = this.getFlattenItemsArray(this._filteredItems);
@@ -210,14 +209,6 @@ let UDExSearchableListBase = UDExSearchableListBase_1 = class UDExSearchableList
210
209
  this._filteredItems = this.getProcessedItems();
211
210
  }
212
211
  }
213
- handleKeyDown(e) {
214
- if (isUp(e)) {
215
- this.handlePreviousItemFocus(e);
216
- }
217
- if (isDown(e)) {
218
- this.handleNextListItemFocus(e);
219
- }
220
- }
221
212
  getSlottedItems(items) {
222
213
  const arr = [];
223
214
  items.forEach(item => {
@@ -252,29 +243,6 @@ let UDExSearchableListBase = UDExSearchableListBase_1 = class UDExSearchableList
252
243
  item: this.getItemFromList(itemId),
253
244
  });
254
245
  }
255
- // moves focus to next list item
256
- handlePreviousItemFocus(e) {
257
- const item = e.target;
258
- const listItems = this.getDomListItems();
259
- const currentSelectIndex = this.getCurrentIndex(item);
260
- const previousSelectIndex = currentSelectIndex - 1;
261
- if (currentSelectIndex > 0) {
262
- e.preventDefault();
263
- listItems[previousSelectIndex].focus();
264
- }
265
- }
266
- // moves focus to previous list item
267
- handleNextListItemFocus(e) {
268
- const item = e.target;
269
- const listItems = this.getDomListItems();
270
- const lastItemIndex = listItems.length - 1;
271
- const currentSelectIndex = this.getCurrentIndex(item);
272
- const nextSelectIndex = currentSelectIndex + 1;
273
- if (nextSelectIndex <= lastItemIndex) {
274
- e.preventDefault();
275
- listItems[nextSelectIndex].focus();
276
- }
277
- }
278
246
  fireFirstIconClickEvent(e) {
279
247
  this._fireIconClickEvent("first-icon-click", e);
280
248
  }
@@ -282,7 +250,8 @@ let UDExSearchableListBase = UDExSearchableListBase_1 = class UDExSearchableList
282
250
  this._fireIconClickEvent("second-icon-click", e);
283
251
  }
284
252
  _fireIconClickEvent(eventName, e) {
285
- const id = this.getDataTokenId(e);
253
+ const item = e.detail.item;
254
+ const id = this.getDataTokenId(item);
286
255
  this.fireDecoratorEvent(eventName, {
287
256
  originalEvent: e.detail.originalEvent,
288
257
  item: this.getItemFromList(id),
@@ -302,8 +271,11 @@ let UDExSearchableListBase = UDExSearchableListBase_1 = class UDExSearchableList
302
271
  getCurrentIndex(item) {
303
272
  return this.getDomListItems().indexOf(item);
304
273
  }
274
+ getList() {
275
+ return this.shadowRoot.querySelector("[udex-list]");
276
+ }
305
277
  getSearch() {
306
- return this.shadowRoot.querySelector("[udex-search]");
278
+ return this.shadowRoot.querySelector("[udex-search]") || this.shadowRoot.querySelector(".udex-text-field__search");
307
279
  }
308
280
  getPopover() {
309
281
  return this.shadowRoot.querySelector("[ui5-popover]");
@@ -312,28 +284,19 @@ let UDExSearchableListBase = UDExSearchableListBase_1 = class UDExSearchableList
312
284
  const elementList = this.shadowRoot.querySelector("[udex-list]");
313
285
  return elementList ? Array.from(elementList.querySelectorAll("[udex-list-item]")) : [];
314
286
  }
315
- setItemsModeAndControl(items) {
316
- items.forEach(item => {
317
- item.mode = this.mode;
318
- item.controlled = this.isControlled;
319
- });
320
- }
321
- getDataTokenId(e) {
322
- return e.detail.item.getAttribute("data-token-id");
287
+ getDataTokenId(item) {
288
+ return item.getAttribute("data-token-id");
323
289
  }
324
290
  getProcessedItems() {
325
291
  return this.items.map(item => {
326
- if (item.isGroup) {
327
- const groupItems = item.getItems();
328
- this.setItemsModeAndControl(groupItems);
292
+ const isGroup = item.isGroup;
293
+ const groupItems = isGroup ? item.getItems() : [];
294
+ if (isGroup) {
295
+ this._setItemsModeAndControl(groupItems);
329
296
  }
330
297
  item.mode = this.mode;
331
298
  item.controlled = this.isControlled;
332
- return {
333
- item,
334
- groupItems: item.isGroup ? item.getItems() : [],
335
- isGroup: item.isGroup,
336
- };
299
+ return { item, groupItems, isGroup };
337
300
  });
338
301
  }
339
302
  getPopoverPart(part) {
@@ -347,6 +310,12 @@ let UDExSearchableListBase = UDExSearchableListBase_1 = class UDExSearchableList
347
310
  const content = this.getPopoverPart(UDExPopoverPart.Content);
348
311
  content.style.maxHeight = this.height || "";
349
312
  }
313
+ _setItemsModeAndControl(items) {
314
+ items.forEach(item => {
315
+ item.mode = this.mode;
316
+ item.controlled = this.isControlled;
317
+ });
318
+ }
350
319
  get getNoResultText() {
351
320
  const hasTextProperty = this.noResultText !== undefined && this.noResultText.length > 0;
352
321
  return hasTextProperty ? this.noResultText : this.noMatchesFoundText;
@@ -361,7 +330,8 @@ let UDExSearchableListBase = UDExSearchableListBase_1 = class UDExSearchableList
361
330
  return this._filteredItems.length === 0;
362
331
  }
363
332
  get selectedItems() {
364
- return this.getSlottedItems(this.items).filter(({ selected }) => selected);
333
+ const selectedItems = this.getSlottedItems(this.items).filter(({ selected }) => selected);
334
+ return selectedItems;
365
335
  }
366
336
  get modeMultiSelect() {
367
337
  return this.mode === UDExListMode.MultiSelect;
@@ -384,7 +354,8 @@ let UDExSearchableListBase = UDExSearchableListBase_1 = class UDExSearchableList
384
354
  return this.showSearch ? `${classHeader} udex-searchable-list__header_no-margin` : classHeader;
385
355
  }
386
356
  get showSearch() {
387
- return this.showSearchInput || (this.isSearchActive && !this.modeRadioGroup);
357
+ const isSearchVisible = this.showSearchInput || (this.isSearchActive && !this.modeRadioGroup);
358
+ return !this.hideDropdownSearch && isSearchVisible;
388
359
  }
389
360
  get isSearchActive() {
390
361
  return this.nonGroupItems.length > SHOW_SEARCH_AFTER_COUNT;
@@ -407,6 +378,9 @@ let UDExSearchableListBase = UDExSearchableListBase_1 = class UDExSearchableList
407
378
  }
408
379
  return "none";
409
380
  }
381
+ get hideDropdownSearch() {
382
+ return false;
383
+ }
410
384
  };
411
385
  __decorate([
412
386
  property({ type: Boolean })
@@ -464,7 +438,7 @@ UDExSearchableListBase = UDExSearchableListBase_1 = __decorate([
464
438
  event("select-all", { bubbles: true })
465
439
  /**
466
440
  * Fired event when the user clicks on the submitted icon in the search.
467
- *
441
+ * @param {Array<UDExListItemBase>} selectedItems The selected items.
468
442
  * @public
469
443
  * @param {Array<UDExListItemBase>} selectedItems The selected items.
470
444
  *
@@ -480,7 +454,7 @@ UDExSearchableListBase = UDExSearchableListBase_1 = __decorate([
480
454
  event("reset-search", { bubbles: true })
481
455
  /**
482
456
  * Fired event when the user submitted the value in the search.
483
- *
457
+ * @param {string} value The search value.
484
458
  * @public
485
459
  * @param {string} value The search value.
486
460
  */
@@ -488,7 +462,8 @@ UDExSearchableListBase = UDExSearchableListBase_1 = __decorate([
488
462
  event("change-search", { bubbles: true })
489
463
  /**
490
464
  * Fired event when the user clicks on the first icon.
491
- *
465
+ * @param { PointerEvent } originalEvent The original event object
466
+ * @param { UDExListItemBase | UDExListGroupHeaderBase | null | undefined } item The list item
492
467
  * @public
493
468
  * @param { PointerEvent } originalEvent The original event object
494
469
  * @param { UDExListItemBase | UDExListGroupHeaderBase | null | undefined } item The list item
@@ -497,7 +472,8 @@ UDExSearchableListBase = UDExSearchableListBase_1 = __decorate([
497
472
  event("first-icon-click", { bubbles: true })
498
473
  /**
499
474
  * Fired event when the user clicks on the second icon.
500
- *
475
+ * @param { PointerEvent } originalEvent The original event object
476
+ * @param { UDExListItemBase | UDExListGroupHeaderBase | null | undefined } item The list item
501
477
  * @public
502
478
  * @param { PointerEvent } originalEvent The original event object
503
479
  * @param { UDExListItemBase | UDExListGroupHeaderBase | null | undefined } item The list item