@eui/ecl 23.0.0-alpha.10 → 23.0.0-alpha.11

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 (231) hide show
  1. package/assets/i18n-ecl/bg.json +13 -2
  2. package/assets/i18n-ecl/cs.json +13 -2
  3. package/assets/i18n-ecl/da.json +13 -2
  4. package/assets/i18n-ecl/de.json +13 -2
  5. package/assets/i18n-ecl/el.json +13 -2
  6. package/assets/i18n-ecl/en.json +13 -2
  7. package/assets/i18n-ecl/es.json +13 -2
  8. package/assets/i18n-ecl/et.json +13 -2
  9. package/assets/i18n-ecl/fi.json +13 -2
  10. package/assets/i18n-ecl/fr.json +13 -2
  11. package/assets/i18n-ecl/ga.json +13 -2
  12. package/assets/i18n-ecl/hr.json +13 -2
  13. package/assets/i18n-ecl/hu.json +13 -2
  14. package/assets/i18n-ecl/it.json +13 -2
  15. package/assets/i18n-ecl/lt.json +13 -2
  16. package/assets/i18n-ecl/lv.json +13 -2
  17. package/assets/i18n-ecl/mt.json +13 -2
  18. package/assets/i18n-ecl/nl.json +13 -2
  19. package/assets/i18n-ecl/pl.json +13 -2
  20. package/assets/i18n-ecl/pt.json +13 -2
  21. package/assets/i18n-ecl/ro.json +13 -2
  22. package/assets/i18n-ecl/sk.json +13 -2
  23. package/assets/i18n-ecl/sl.json +13 -2
  24. package/assets/i18n-ecl/sv.json +13 -2
  25. package/components/ecl-highlighted-search/package.json +4 -0
  26. package/components/ecl-story-card/package.json +4 -0
  27. package/docs/changelog.html +10 -0
  28. package/docs/classes/EclBaseEvent.html +3 -0
  29. package/docs/classes/EclHighlightedSearchEvent.html +443 -0
  30. package/docs/components/EclAccordionSummaryComponent.html +2 -79
  31. package/docs/components/EclAddToCalendarComponent.html +2 -2
  32. package/docs/components/EclAnimatedNumbersComponent.html +2 -2
  33. package/docs/components/EclAnimatedNumbersItemComponent.html +2 -2
  34. package/docs/components/EclAppComponent.html +2 -2
  35. package/docs/components/EclBannerComponent.html +2 -2
  36. package/docs/components/EclBlockquoteComponent.html +2 -2
  37. package/docs/components/EclBreadcrumbComponent.html +2 -2
  38. package/docs/components/EclBreadcrumbSegmentComponent.html +2 -2
  39. package/docs/components/EclButtonComponent.html +2 -2
  40. package/docs/components/EclCardBodyComponent.html +2 -2
  41. package/docs/components/EclCardComponent.html +2 -2
  42. package/docs/components/EclCarouselComponent.html +2 -2
  43. package/docs/components/EclCarouselItemComponent.html +2 -2
  44. package/docs/components/EclCategoryFilterComponent.html +2 -2
  45. package/docs/components/EclCategoryFilterItemComponent.html +2 -2
  46. package/docs/components/EclCategoryFilterListComponent.html +2 -2
  47. package/docs/components/EclCheckboxHelpComponent.html +2 -2
  48. package/docs/components/EclCheckboxLabelComponent.html +2 -2
  49. package/docs/components/EclContentBlockComponent.html +2 -2
  50. package/docs/components/EclContentItemComponent.html +2 -2
  51. package/docs/components/EclDateBlockComponent.html +2 -2
  52. package/docs/components/EclDescriptionListDefinitionComponent.html +2 -2
  53. package/docs/components/EclExpandableComponent.html +2 -2
  54. package/docs/components/EclFactFiguresComponent.html +2 -2
  55. package/docs/components/EclFactFiguresItemComponent.html +2 -2
  56. package/docs/components/EclFactFiguresViewAllComponent.html +2 -2
  57. package/docs/components/EclFeaturedComponent.html +2 -2
  58. package/docs/components/EclFeaturedItemComponent.html +2 -2
  59. package/docs/components/EclFeaturedItemDescriptionComponent.html +2 -2
  60. package/docs/components/EclFileComponent.html +234 -110
  61. package/docs/components/EclFileItemComponent.html +13 -250
  62. package/docs/components/EclFileItemsComponent.html +34 -313
  63. package/docs/components/{EclFileTaxonomyComponent.html → EclFileListsComponent.html} +16 -107
  64. package/docs/components/EclFormGroupComponent.html +2 -2
  65. package/docs/components/EclFormLabelComponent.html +2 -2
  66. package/docs/components/EclGalleryComponent.html +2 -2
  67. package/docs/components/EclGalleryFooterComponent.html +2 -2
  68. package/docs/components/EclGalleryItemComponent.html +3 -3
  69. package/docs/components/EclHighlightBoxComponent.html +2 -2
  70. package/docs/components/EclHighlightedSearchComponent.html +1042 -0
  71. package/docs/components/EclIconComponent.html +5 -2
  72. package/docs/components/EclIndicatorComponent-1.html +2 -2
  73. package/docs/components/EclIndicatorComponent.html +2 -2
  74. package/docs/components/EclInpageNavigationComponent.html +2 -2
  75. package/docs/components/EclInpageNavigationItemComponent.html +2 -2
  76. package/docs/components/EclLayoutWrapperComponent.html +6 -109
  77. package/docs/components/EclListIllustrationComponent.html +2 -2
  78. package/docs/components/EclListIllustrationItemComponent.html +2 -2
  79. package/docs/components/EclLoadingIndicatorComponent.html +2 -2
  80. package/docs/components/EclMediaContainerComponent.html +2 -2
  81. package/docs/components/EclMegaMenuComponent.html +2 -2
  82. package/docs/components/EclMegaMenuFeaturedComponent.html +2 -2
  83. package/docs/components/EclMegaMenuInfoComponent.html +2 -2
  84. package/docs/components/EclMegaMenuItemComponent.html +2 -2
  85. package/docs/components/EclMegaMenuSubitemComponent.html +2 -2
  86. package/docs/components/EclMenuComponent.html +2 -2
  87. package/docs/components/EclMenuItemComponent.html +2 -2
  88. package/docs/components/EclMenuMegaComponent.html +2 -2
  89. package/docs/components/EclMenuMegaItemComponent.html +2 -2
  90. package/docs/components/EclModalBodyComponent.html +2 -2
  91. package/docs/components/EclModalComponent.html +2 -2
  92. package/docs/components/EclModalFooterComponent.html +2 -2
  93. package/docs/components/EclModalHeaderComponent.html +2 -2
  94. package/docs/components/EclMultiselectComponent.html +2 -2
  95. package/docs/components/EclMultiselectDropdownComponent.html +13 -98
  96. package/docs/components/EclMultiselectInputComponent.html +2 -2
  97. package/docs/components/EclMultiselectOptgroupComponent.html +2 -2
  98. package/docs/components/EclMultiselectOptionComponent.html +2 -2
  99. package/docs/components/EclNavigationListComponent.html +2 -2
  100. package/docs/components/EclNavigationListItemComponent.html +2 -2
  101. package/docs/components/EclNewsTickerComponent.html +2 -2
  102. package/docs/components/EclNewsTickerItemComponent.html +2 -2
  103. package/docs/components/EclNotificationComponent.html +2 -2
  104. package/docs/components/EclPageHeaderComponent.html +2 -2
  105. package/docs/components/EclPageHeaderDescriptionContainerComponent.html +2 -2
  106. package/docs/components/EclPageHeaderExpandableComponent.html +2 -2
  107. package/docs/components/EclPageHeaderNextComponent.html +2 -2
  108. package/docs/components/EclPageHeaderSectionComponent.html +2 -2
  109. package/docs/components/EclPageHeaderSectionInfoComponent.html +2 -2
  110. package/docs/components/EclPageSummaryComponent.html +2 -2
  111. package/docs/components/EclPaginationComponent.html +2 -2
  112. package/docs/components/EclPaginationItemComponent.html +2 -2
  113. package/docs/components/EclPopoverComponent.html +2 -2
  114. package/docs/components/EclQuizCardComponent.html +2 -2
  115. package/docs/components/EclQuizComponent.html +3 -3
  116. package/docs/components/EclRadioHelpComponent.html +2 -2
  117. package/docs/components/EclRadioLabelComponent.html +2 -2
  118. package/docs/components/EclRangeBubbleComponent.html +2 -2
  119. package/docs/components/EclRangeValueComponent.html +2 -2
  120. package/docs/components/EclRatingFieldComponent.html +2 -2
  121. package/docs/components/EclSearchFormComponent.html +2 -2
  122. package/docs/components/EclSelectContainerComponent.html +2 -2
  123. package/docs/components/EclSiteFooterComponent.html +2 -2
  124. package/docs/components/EclSiteFooterCoownerComponent.html +2 -2
  125. package/docs/components/EclSiteFooterCoreComponent.html +2 -2
  126. package/docs/components/EclSiteFooterFeedbackComponent.html +2 -2
  127. package/docs/components/EclSiteFooterFixedContentEUComponent.html +2 -2
  128. package/docs/components/EclSiteFooterRowCommonComponent.html +2 -2
  129. package/docs/components/EclSiteHeaderActionComponent.html +2 -2
  130. package/docs/components/EclSiteHeaderBannerTopComponent.html +2 -2
  131. package/docs/components/EclSiteHeaderComponent.html +2 -2
  132. package/docs/components/EclSiteHeaderCustomActionComponent.html +2 -2
  133. package/docs/components/EclSiteHeaderEnvironmentComponent.html +2 -2
  134. package/docs/components/EclSiteHeaderLanguageComponent.html +2 -2
  135. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +2 -2
  136. package/docs/components/EclSiteHeaderLoginComponent.html +2 -2
  137. package/docs/components/EclSiteHeaderNotificationComponent.html +2 -2
  138. package/docs/components/EclSiteHeaderSearchComponent.html +2 -2
  139. package/docs/components/EclSloganTickerComponent.html +2 -2
  140. package/docs/components/EclSocialMediaFollowComponent.html +2 -2
  141. package/docs/components/EclSocialMediaFollowItemComponent.html +2 -2
  142. package/docs/components/EclSplashPageComponent.html +2 -2
  143. package/docs/components/EclSplashPageLanguageCategoryComponent.html +2 -2
  144. package/docs/components/EclSplashPageLanguageContainerComponent.html +2 -2
  145. package/docs/components/EclSplashPageLanguageLinkComponent.html +2 -2
  146. package/docs/components/EclSpotlightComponent.html +2 -2
  147. package/docs/components/EclSpotlightLinkComponent.html +2 -2
  148. package/docs/components/EclStickyContainerComponent.html +2 -2
  149. package/docs/components/EclStoryCardComponent.html +908 -0
  150. package/docs/components/EclStoryCardGridDetailsComponent.html +946 -0
  151. package/docs/components/EclStoryCardItemComponent.html +916 -0
  152. package/docs/components/EclTabComponent.html +2 -2
  153. package/docs/components/EclTabLabelComponent.html +2 -2
  154. package/docs/components/EclTableSortButtonComponent.html +2 -2
  155. package/docs/components/EclTabsComponent.html +2 -2
  156. package/docs/components/EclTagComponent.html +2 -2
  157. package/docs/components/EclTextMediaComponent.html +2 -2
  158. package/docs/components/EclTimelineComponent.html +2 -2
  159. package/docs/components/EclTimelineItemComponent.html +2 -2
  160. package/docs/components/EclTimelineItemTogglerComponent.html +2 -2
  161. package/docs/directives/ECLBaseDirective.html +4 -4
  162. package/docs/directives/EclAccordionDirective.html +33 -36
  163. package/docs/directives/EclFileDownloadDirective.html +0 -116
  164. package/docs/directives/EclFileImageDirective.html +0 -116
  165. package/docs/directives/EclFileMetaDirective.html +488 -0
  166. package/docs/directives/EclFilePictureDirective.html +0 -95
  167. package/docs/directives/EclFilePreviewDirective.html +1 -199
  168. package/docs/directives/EclFileTitleDirective.html +0 -146
  169. package/docs/directives/EclFileTranslationDownloadDirective.html +0 -116
  170. package/docs/directives/EclHighlightedSearchSuggestionsDirective.html +394 -0
  171. package/docs/directives/EclLayoutItemDirective.html +0 -32
  172. package/docs/directives/EclStoryCardLinkDirective.html +491 -0
  173. package/docs/directives/EclStoryCardListDirective.html +491 -0
  174. package/docs/directives/EclStoryCardPictureDirective.html +497 -0
  175. package/docs/interfaces/EclStoryCardSelectionEvent.html +317 -0
  176. package/docs/js/menu-wc.js +34 -1
  177. package/docs/js/search/search_index.js +2 -2
  178. package/docs/json/EclAccordionDirective.md +1 -0
  179. package/docs/json/EclFileComponent.md +43 -7
  180. package/docs/json/EclFileItemComponent.md +6 -6
  181. package/docs/json/EclFileItemsComponent.md +6 -6
  182. package/docs/json/EclFileListsComponent.md +15 -0
  183. package/docs/json/EclFileMetaDirective.md +16 -0
  184. package/docs/json/EclFilePreviewDirective.md +1 -1
  185. package/docs/json/EclFileTitleDirective.md +0 -1
  186. package/docs/json/EclHighlightedSearchComponent.md +46 -0
  187. package/docs/json/EclHighlightedSearchSuggestionsDirective.md +13 -0
  188. package/docs/json/EclLayoutWrapperComponent.md +2 -2
  189. package/docs/json/EclStoryCardComponent.md +43 -0
  190. package/docs/json/EclStoryCardGridDetailsComponent.md +39 -0
  191. package/docs/json/EclStoryCardItemComponent.md +35 -0
  192. package/docs/json/EclStoryCardLinkDirective.md +19 -0
  193. package/docs/json/EclStoryCardListDirective.md +19 -0
  194. package/docs/json/EclStoryCardPictureDirective.md +22 -0
  195. package/docs/json/documentation.json +5287 -2643
  196. package/docs/llms.txt +242 -60
  197. package/docs/miscellaneous/variables.html +112 -1
  198. package/docs/overview.html +4 -4
  199. package/docs/properties.html +1 -1
  200. package/fesm2022/eui-ecl-components-ecl-accordion.mjs +46 -15
  201. package/fesm2022/eui-ecl-components-ecl-accordion.mjs.map +1 -1
  202. package/fesm2022/eui-ecl-components-ecl-file.mjs +284 -275
  203. package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
  204. package/fesm2022/eui-ecl-components-ecl-gallery.mjs +2 -2
  205. package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
  206. package/fesm2022/eui-ecl-components-ecl-highlighted-search.mjs +193 -0
  207. package/fesm2022/eui-ecl-components-ecl-highlighted-search.mjs.map +1 -0
  208. package/fesm2022/eui-ecl-components-ecl-layout-wrapper.mjs +10 -11
  209. package/fesm2022/eui-ecl-components-ecl-layout-wrapper.mjs.map +1 -1
  210. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +26 -36
  211. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
  212. package/fesm2022/eui-ecl-components-ecl-quiz.mjs +36 -2
  213. package/fesm2022/eui-ecl-components-ecl-quiz.mjs.map +1 -1
  214. package/fesm2022/eui-ecl-components-ecl-story-card.mjs +505 -0
  215. package/fesm2022/eui-ecl-components-ecl-story-card.mjs.map +1 -0
  216. package/package.json +9 -1
  217. package/types/eui-ecl-components-ecl-accordion.d.ts +23 -5
  218. package/types/eui-ecl-components-ecl-accordion.d.ts.map +1 -1
  219. package/types/eui-ecl-components-ecl-file.d.ts +131 -116
  220. package/types/eui-ecl-components-ecl-file.d.ts.map +1 -1
  221. package/types/eui-ecl-components-ecl-highlighted-search.d.ts +104 -0
  222. package/types/eui-ecl-components-ecl-highlighted-search.d.ts.map +1 -0
  223. package/types/eui-ecl-components-ecl-layout-wrapper.d.ts +6 -8
  224. package/types/eui-ecl-components-ecl-layout-wrapper.d.ts.map +1 -1
  225. package/types/eui-ecl-components-ecl-multiselect.d.ts +2 -1
  226. package/types/eui-ecl-components-ecl-multiselect.d.ts.map +1 -1
  227. package/types/eui-ecl-components-ecl-quiz.d.ts +11 -0
  228. package/types/eui-ecl-components-ecl-quiz.d.ts.map +1 -1
  229. package/types/eui-ecl-components-ecl-story-card.d.ts +256 -0
  230. package/types/eui-ecl-components-ecl-story-card.d.ts.map +1 -0
  231. package/docs/json/EclFileTaxonomyComponent.md +0 -15
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-file.mjs","sources":["../../components/ecl-file/ecl-file-download.directive.ts","../../components/ecl-file/ecl-file-picture.directive.ts","../../components/ecl-file/ecl-file.component.ts","../../components/ecl-file/ecl-file.component.html","../../components/ecl-file/ecl-file-item/ecl-file-item.component.ts","../../components/ecl-file/ecl-file-item/ecl-file-item.component.html","../../components/ecl-file/events/ecl-file-items-toggle.event.ts","../../components/ecl-file/ecl-file-items/ecl-file-items.component.ts","../../components/ecl-file/ecl-file-items/ecl-file-items.component.html","../../components/ecl-file/ecl-file-taxonomy/ecl-file-taxonomy.component.ts","../../components/ecl-file/ecl-file-taxonomy/ecl-file-taxonomy.component.html","../../components/ecl-file/index.ts","../../components/ecl-file/eui-ecl-components-ecl-file.ts"],"sourcesContent":["import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive to apply the correct styling class for a translation download link\n * inside a file component.\n */\n@Directive({\n selector: '[eclFileTranslationDownload]',\n})\nexport class EclFileTranslationDownloadDirective extends ECLBaseDirective {\n\n /**\n * Applies the ECL translation download class to the host element.\n */\n @HostBinding('class.ecl-file__translation-download') className = true;\n}\n\n/**\n * Directive to apply the correct styling class for a standard file download link.\n */\n@Directive({\n selector: '[eclFileDownload]',\n})\nexport class EclFileDownloadDirective extends ECLBaseDirective {\n\n /**\n * Applies the ECL download class to the host element.\n */\n @HostBinding('class.ecl-file__download') className = true;\n}\n\n/**\n * Directive to style a file preview link.\n * Adds spacing and ECL link classes for standalone appearance.\n */\n@Directive({\n selector: '[eclFilePreview]',\n host: {\n '[style.margin-inline-end.px]': '24',\n },\n})\nexport class EclFilePreviewDirective extends ECLBaseDirective {\n\n /**\n * Applies ECL link class to the host element.\n */\n @HostBinding('class.ecl-link') hasClass = true;\n\n /**\n * Applies the standalone variant of the ECL link class to the host element.\n */\n @HostBinding('class.ecl-link--standalone') hasClassStandalone = true;\n}\n","import { Directive, HostBinding, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive to style a <picture> element used in an ECL file component.\n * Adds ECL-specific picture and file picture classes.\n */\n@Directive({\n selector: 'picture[eclFilePicture]',\n})\nexport class EclFilePictureDirective extends ECLBaseDirective {\n\n /**\n * Applies ECL picture styling classes to the host element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-file__picture')].join(' ').trim();\n }\n}\n\n/**\n * Directive to style an <img> element inside an ECL file component.\n * Adds the ECL-specific image class.\n */\n@Directive({\n selector: 'img[eclFileImage]',\n})\nexport class EclFileImageDirective extends ECLBaseDirective {\n\n /**\n * Applies the ECL image class to the host element.\n */\n @HostBinding('class.ecl-file__image') className = true;\n}\n\n/**\n * Directive to style a title element in an ECL file component.\n */\n@Directive({\n selector: '[eclFileTitle]',\n})\nexport class EclFileTitleDirective extends ECLBaseDirective {\n\n /**\n * Applies the ECL file title class to the host element.\n */\n @HostBinding('class.ecl-file__title') className = true;\n\n /**\n * ID attribute for the title element.\n */\n readonly id = input<string>(undefined);\n}\n","import {\n Component,\n HostBinding,\n inject,\n input,\n contentChild,\n} from '@angular/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_LABEL } from '@eui/ecl/components/ecl-label';\nimport { ECLBaseDirective, EclThemeService } from '@eui/ecl/core';\nimport { EclFilePictureDirective } from './ecl-file-picture.directive';\n\n/**\n * Component representing a file item with optional metadata, description,\n * and image (thumbnail) support.\n */\n@Component({\n selector: 'ecl-file',\n templateUrl: './ecl-file.component.html',\n imports: [\n ...EUI_ECL_ICON,\n ...EUI_ECL_LABEL,\n ],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclFileComponent extends ECLBaseDirective {\n eclThemeService = inject(EclThemeService);\n\n /**\n * Host element CSS classes based on theme and content.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-file'), this.isThumbnail ? 'ecl-file--thumbnail' : ''].join(' ').trim();\n }\n\n /**\n * Optional description displayed under the file title.\n */\n description = input<string>();\n\n /**\n * Optional ID for the file component, useful for accessibility or referencing.\n */\n readonly id = input<string>(undefined);\n\n /**\n * Optional language ID (e.g., for translation or accessibility attributes).\n */\n langId = input<string>();\n\n /**\n * Additional label shown next to the language label, e.g. file type or status.\n */\n labelInfo = input<string>();\n\n /**\n * Language indicator string (e.g. \"EN\", \"FR\") used in the label.\n */\n language = input<string>();\n\n /**\n * Additional details displayed in the file component (e.g. file size, date).\n */\n detailMeta = input<string[]>();\n\n /**\n * Main metadata displayed for the file (e.g. format, license).\n */\n meta = input<string>();\n\n /**\n * ID applied to the meta element for accessibility.\n */\n metaId = input<string>();\n\n /**\n * Optional image directive projected via content slot, used for thumbnails.\n */\n readonly eclPictureContent = contentChild(EclFilePictureDirective);\n\n /**\n * Determines whether the file has an associated thumbnail.\n * Returns true if an `EclFilePictureDirective` is present in projected content.\n */\n get isThumbnail(): boolean {\n return !!this.eclPictureContent();\n }\n}\n","<div class=\"ecl-file__container\">\n @if(!isThumbnail) {\n @if(eclThemeService.isECTheme()) {\n <ecl-icon icon=\"file\" class=\"ecl-file__icon\" size=\"2xl\"></ecl-icon>\n } @else {\n <ecl-icon icon=\"file\" class=\"ecl-file__icon\" size=\"m\"></ecl-icon>\n }\n } @else {\n <ng-content select=\"[eclFilePicture]\"></ng-content>\n }\n <div class=\"ecl-file__info\">\n @if(labelInfo()) {\n <div class=\"ecl-file__label\">\n <span eclLabel variant=\"highlight\">{{ labelInfo() }}</span>\n </div>\n }\n @if(detailMeta()) {\n <ul class=\"ecl-file__detail-meta\">\n @for (el of detailMeta(); track el) {\n <li class=\"ecl-file__detail-meta-item\" >{{ el }}</li>\n }\n </ul>\n }\n <ng-content select=\"[eclFileTitle]\"></ng-content>\n @if(description()) {\n <div class=\"ecl-file__description\">{{ description() }}</div>\n }\n <ng-content select=\"ecl-file-taxonomy\"></ng-content>\n </div>\n\n </div>\n <div class=\"ecl-file__footer\">\n <div class=\"ecl-file__language\" [id]=\"langId()\">{{ language() }}</div>\n <div class=\"ecl-file__meta\" [id]=\"metaId()\">{{ meta() }}</div>\n <div class=\"ecl-file__action\">\n <ng-content select=\"[eclFilePreview]\"></ng-content>\n <ng-content select=\"[eclFileDownload]\"></ng-content>\n </div>\n </div>\n<ng-content></ng-content>\n","import { Component, HostBinding, booleanAttribute, inject, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclFileComponent } from '../ecl-file.component';\n\n/**\n * Component representing a single file translation or descriptive item\n * inside the main ECL File component.\n */\n@Component({\n selector: 'ecl-file-item',\n templateUrl: './ecl-file-item.component.html',\n})\nexport class EclFileItemComponent extends ECLBaseDirective {\n /**\n * Indicates whether the item is a description block rather than a translation.\n * Adds the `ecl-file__translation-description` class when true.\n */\n isDescription = input(false, { transform: booleanAttribute });\n\n /**\n * Title text of the file item.\n */\n eclTitle = input<string>();\n\n /**\n * ID applied to the title element for accessibility.\n */\n titleId = input<string>();\n\n /**\n * ID applied to the meta element for accessibility.\n */\n metaId = input<string>();\n\n /**\n * Additional metadata for the item (e.g., file size, type).\n */\n meta = input<string>();\n\n /**\n * Language label displayed next to the title (e.g., \"FR\", \"EN\").\n */\n label = input<string>();\n\n /**\n * Supplementary language detail displayed below the language label.\n */\n langDetail = input<string>();\n\n /**\n * Host CSS classes for the item, based on the content and state.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-file__translation-item'),\n this.isDescription() ? 'ecl-file__translation-description' : '',\n ].join(' ').trim();\n }\n\n /**\n * ARIA role attribute set to 'listitem' for accessibility.\n */\n @HostBinding('attr.role') role = 'listitem';\n private eclFileComponent = inject(EclFileComponent);\n\n /**\n * Indicates whether the parent `EclFileComponent` has a thumbnail image.\n */\n get isThumbnail(): boolean {\n return this.eclFileComponent && this.eclFileComponent.isThumbnail;\n }\n}\n","@if (isDescription()) {\n <ng-content></ng-content>\n} @else {\n <div class=\"ecl-file__translation-info\">\n <div class=\"ecl-file__translation-title\" [id]=\"titleId()\" [attr.lang]=\"langDetail()\">{{ eclTitle() }}</div>\n <div class=\"ecl-file__translation-meta\" [id]=\"metaId()\">{{ meta() }}</div>\n </div>\n <div class=\"ecl-file__translation-action\">\n <ng-content select=\"[eclFilePreview]\"></ng-content>\n <ng-content select=\"[eclFileTranslationDownload]\"></ng-content>\n </div>\n}\n","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclFileItemsToggleEvent extends EclBaseEvent {\n constructor(public isExpanded: boolean) {\n super();\n }\n}","import {\n Component,\n HostBinding,\n output,\n input,\n model,\n contentChildren,\n} from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclFileItemComponent } from '../ecl-file-item/ecl-file-item.component';\nimport { EclFileItemsToggleEvent } from '../events/ecl-file-items-toggle.event';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\n\n/**\n * Component representing a container for file item translations within an ECL File component.\n * It can be expanded or collapsed, and emits an event when toggled.\n */\n@Component({\n selector: 'ecl-file-items',\n templateUrl: './ecl-file-items.component.html',\n imports: [\n ...EUI_ECL_BUTTON,\n ...EUI_ECL_ICON,\n TranslatePipe,\n ],\n})\nexport class EclFileItemsComponent extends ECLBaseDirective {\n\n /**\n * CSS classes applied to the host element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-file__translation-container')].join(' ').trim();\n }\n\n /**\n * Label displayed above the translations list.\n */\n readonly label = input<string>(undefined);\n\n /**\n * Whether the list is initially expanded.\n */\n readonly isExpanded = model(false);\n\n /**\n * Emits a toggle event when the translations list is expanded or collapsed.\n *\n * @remarks\n * Consumers can call `preventDefault()` on the event to cancel the toggle.\n */\n // eslint-disable-next-line\n readonly toggle = output<EclFileItemsToggleEvent>();\n\n /**\n * Content-projected list of translation items (excluding description blocks).\n */\n readonly items = contentChildren(EclFileItemComponent);\n\n /**\n * Returns the number of translation items excluding description entries.\n */\n getItemsCount(): number {\n return this.items().filter((item) => !item.isDescription()).length;\n }\n\n /**\n * Toggles the expansion state of the translation list.\n * Emits `toggle` event and updates `isExpanded` if not prevented.\n */\n onToggleClick(evt: MouseEvent): void {\n const nextExpandedState = !this.isExpanded();\n const event = new EclFileItemsToggleEvent(nextExpandedState);\n\n this.toggle.emit(event);\n\n if (!event.defaultPrevented) {\n this.isExpanded.set(nextExpandedState);\n }\n }\n}\n","<button eclButton variant=\"tertiary\" class=\"ecl-file__translation-toggle\" [attr.aria-expanded]=\"isExpanded()\" (click)=\"onToggleClick($event)\">\n <span eclButtonLabel>\n {{ label() || 'ecl.file.OTHER-LANGUAGES' | translate: { count: getItemsCount() } }}\n </span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-180\"></ecl-icon>\n</button>\n<ul class=\"ecl-file__translation-list\">\n <ng-content></ng-content>\n</ul>\n","import { Component, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Component representing the taxonomy section of a file in the ECL File component.\n */\n@Component({\n selector: 'ecl-file-taxonomy',\n templateUrl: './ecl-file-taxonomy.component.html',\n})\nexport class EclFileTaxonomyComponent extends ECLBaseDirective {\n\n /**\n * CSS classes applied to the host element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-file__taxonomy')].join(' ').trim();\n }\n}\n","<ng-content></ng-content>\n","import { EclFileDownloadDirective, EclFilePreviewDirective, EclFileTranslationDownloadDirective } from './ecl-file-download.directive';\nimport { EclFileItemComponent } from './ecl-file-item/ecl-file-item.component';\nimport { EclFileItemsComponent } from './ecl-file-items/ecl-file-items.component';\nimport { EclFileImageDirective, EclFilePictureDirective, EclFileTitleDirective } from './ecl-file-picture.directive';\nimport { EclFileTaxonomyComponent } from './ecl-file-taxonomy/ecl-file-taxonomy.component';\nimport { EclFileComponent } from './ecl-file.component';\n\nexport * from './ecl-file.component';\nexport * from './ecl-file-items/ecl-file-items.component';\nexport * from './ecl-file-item/ecl-file-item.component';\nexport * from './ecl-file-download.directive';\nexport * from './ecl-file-taxonomy/ecl-file-taxonomy.component';\nexport * from './ecl-file-picture.directive';\nexport * from './events/ecl-file-items-toggle.event';\n\nexport const EUI_ECL_FILE = [\n EclFileComponent,\n EclFileDownloadDirective,\n EclFileItemsComponent,\n EclFileItemComponent,\n EclFileTaxonomyComponent,\n EclFileTitleDirective,\n EclFileTranslationDownloadDirective,\n EclFilePictureDirective,\n EclFileImageDirective,\n EclFilePreviewDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-file.mjs","sources":["../../components/ecl-file/ecl-file-download.directive.ts","../../components/ecl-file/ecl-file-item/ecl-file-item.component.ts","../../components/ecl-file/ecl-file-item/ecl-file-item.component.html","../../components/ecl-file/ecl-file-items/ecl-file-items.component.ts","../../components/ecl-file/ecl-file-picture.directive.ts","../../components/ecl-file/ecl-file-lists/ecl-file-lists.component.ts","../../components/ecl-file/events/ecl-file-items-toggle.event.ts","../../components/ecl-file/ecl-file.component.ts","../../components/ecl-file/ecl-file.component.html","../../components/ecl-file/index.ts","../../components/ecl-file/eui-ecl-components-ecl-file.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive to apply the correct styling class for a translation download link\n * inside a file component.\n */\n@Directive({\n selector: '[eclFileTranslationDownload]',\n host: {\n class: 'ecl-file__translation-download',\n },\n})\nexport class EclFileTranslationDownloadDirective extends ECLBaseDirective {\n}\n\n/**\n * Directive to apply the correct styling class for a standard file download link.\n */\n@Directive({\n selector: '[eclFileDownload]',\n host: {\n class: 'ecl-file__download',\n },\n})\nexport class EclFileDownloadDirective extends ECLBaseDirective {\n}\n\n/**\n * Directive to style a file preview link.\n * Adds ECL link classes for standalone branded appearance.\n */\n@Directive({\n selector: '[eclFilePreview]',\n})\nexport class EclFilePreviewDirective extends ECLBaseDirective {\n}\n\n/**\n * Directive to style the file meta element (e.g. file size and format)\n * inside the download link label.\n */\n@Directive({\n selector: '[eclFileMeta]',\n host: {\n class: 'ecl-file__meta',\n },\n})\nexport class EclFileMetaDirective extends ECLBaseDirective {\n}\n","import { Component, booleanAttribute, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Component representing a single file translation item\n * inside the ecl-file-items translation list.\n */\n@Component({\n selector: 'ecl-file-item',\n templateUrl: './ecl-file-item.component.html',\n host: {\n class: 'ecl-file__translation-item',\n role: 'listitem',\n },\n})\nexport class EclFileItemComponent extends ECLBaseDirective {\n\n /**\n * @deprecated No longer used in v5.1.0. Kept for backward compatibility.\n */\n isDescription = input(false, { transform: booleanAttribute });\n\n /**\n * Title text of the file item (language name, e.g. \"български\").\n */\n eclTitle = input<string>();\n\n /**\n * ID applied to the title element for accessibility.\n */\n titleId = input<string>();\n\n /**\n * ID applied to the meta element for accessibility.\n */\n metaId = input<string>();\n\n /**\n * Additional metadata for the item (e.g., file size, type).\n */\n meta = input<string>();\n\n /**\n * @deprecated No longer used in v5.1.0. Kept for backward compatibility.\n */\n label = input<string>();\n\n /**\n * Language code (e.g. \"bg\", \"fr\") applied as the `lang` attribute on the title element.\n */\n langDetail = input<string>();\n}\n","<div class=\"ecl-file__translation-info\">\n @if (eclTitle()) {\n <div class=\"ecl-file__translation-title\" [id]=\"titleId()\" [attr.lang]=\"langDetail()\">{{ eclTitle() }}</div>\n }\n @if (meta()) {\n <div class=\"ecl-file__translation-meta\" [id]=\"metaId()\">{{ meta() }}</div>\n }\n</div>\n<div class=\"ecl-file__translation-action\">\n <ng-content select=\"[eclFilePreview]\"></ng-content>\n <ng-content select=\"[eclFileTranslationDownload]\"></ng-content>\n</div>\n","import { Component, model } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Component representing the translation list within an ECL File component.\n * The host element IS the list. The toggle button is rendered by the parent ecl-file.\n */\n@Component({\n selector: 'ecl-file-items',\n template: '<ng-content></ng-content>',\n host: {\n class: 'ecl-file__translation-list',\n role: 'list',\n '[attr.id]': 'id()',\n '[style.display]': 'isExpanded() ? \"block\" : \"none\"',\n },\n})\nexport class EclFileItemsComponent extends ECLBaseDirective {\n\n /**\n * ID for the list, used by the toggle button's aria-controls.\n */\n id = model<string>();\n\n /**\n * Whether the list is expanded. Managed by the parent ecl-file component.\n */\n isExpanded = model(false);\n}\n","import { Directive } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive to style a <picture> element used in an ECL file component.\n * Adds ECL-specific picture and file picture classes.\n */\n@Directive({\n selector: 'picture[eclFilePicture]',\n host: {\n class: 'ecl-picture ecl-file__picture',\n },\n})\nexport class EclFilePictureDirective extends ECLBaseDirective {\n}\n\n/**\n * Directive to style an <img> element inside an ECL file component.\n * Adds the ECL-specific image class.\n */\n@Directive({\n selector: 'img[eclFileImage]',\n host: {\n class: 'ecl-file__image',\n },\n})\nexport class EclFileImageDirective extends ECLBaseDirective {\n}\n\n/**\n * Directive to style a title element in an ECL file component.\n */\n@Directive({\n selector: '[eclFileTitle]',\n host: {\n class: 'ecl-file__title',\n },\n})\nexport class EclFileTitleDirective extends ECLBaseDirective {\n}\n","import { Component } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Component representing the lists section of a file in the ECL File component.\n */\n@Component({\n selector: 'ecl-file-lists, ecl-file-taxonomy',\n template: '<ng-content></ng-content>',\n host: {\n class: 'ecl-file__lists',\n style: 'display: block',\n },\n})\nexport class EclFileListsComponent extends ECLBaseDirective {\n}\n","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclFileItemsToggleEvent extends EclBaseEvent {\n constructor(public isExpanded: boolean) {\n super();\n }\n}","import {\n Component,\n computed,\n contentChild,\n effect,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_LABEL } from '@eui/ecl/components/ecl-label';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { ECLBaseDirective, EclThemeService } from '@eui/ecl/core';\nimport { EclFilePictureDirective } from './ecl-file-picture.directive';\nimport { EclFileItemsComponent } from './ecl-file-items/ecl-file-items.component';\nimport { EclFileItemsToggleEvent } from './events/ecl-file-items-toggle.event';\n\n/**\n * ECL File component.\n * Displays downloadable file information with an icon or picture,\n * metadata, and an optional expandable translations panel.\n *\n * @example\n * ```html\n * <ecl-file id=\"my-file\" language=\"English\" langId=\"my-file-lang\"\n * [primaryMeta]=\"['Meta info', 'DD Month YYYY']\"\n * labelInfo=\"Highlight\" description=\"File description\"\n * fileIcon=\"pdf\"\n * toggleAriaLabel=\"Translations\"\n * (translationsToggle)=\"onToggle($event)\">\n *\n * <div eclFileTitle id=\"my-file-title\">State of the Union 2018 brochure</div>\n *\n * <a eclFileDownload eclLink variant=\"standalone\" isBranded href=\"/path/to/file\">\n * <span eclLinkLabel>\n * <span>Download</span>\n * <span eclFileMeta>(16.2 MB - PDF)</span>\n * </span>\n * <ecl-icon icon=\"download-simple\" iconSet=\"phosphor\" size=\"fluid\"></ecl-icon>\n * </a>\n *\n * <ecl-file-items>\n * <ecl-file-item eclTitle=\"български\" meta=\"(15.7 MB - PDF)\" langDetail=\"bg\"\n * titleId=\"my-file-0-title\" metaId=\"my-file-0-meta\">\n * <a eclFileTranslationDownload eclLink variant=\"standalone\" href=\"/example#bg\" hreflang=\"bg\">\n * <span eclLinkLabel>Download</span>\n * <ecl-icon icon=\"download-simple\" iconSet=\"phosphor\" size=\"fluid\"></ecl-icon>\n * </a>\n * </ecl-file-item>\n * </ecl-file-items>\n * </ecl-file>\n * ```\n */\n@Component({\n selector: 'ecl-file',\n templateUrl: './ecl-file.component.html',\n imports: [\n ...EUI_ECL_ICON,\n ...EUI_ECL_LABEL,\n ...EUI_ECL_BUTTON,\n ],\n host: {\n '[class]': 'cssClasses',\n '[attr.id]': 'id()',\n },\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclFileComponent extends ECLBaseDirective {\n eclThemeService = inject(EclThemeService);\n\n /**\n * Host element CSS classes.\n */\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-file'),\n this.isTranslationsExpanded() ? 'ecl-file--open' : '',\n ].join(' ').trim();\n }\n\n /**\n * Optional description displayed under the file title.\n */\n description = input<string>();\n\n /**\n * Unique ID for the file component. Auto-generated if not provided.\n * Used to derive accessibility IDs for child elements.\n */\n id = input<string>(`ecl-file-${crypto.randomUUID()}`);\n\n /**\n * Optional language ID (e.g., for translation or accessibility attributes).\n */\n langId = input<string>();\n\n /**\n * Additional label shown next to the language label, e.g. file type or status.\n */\n labelInfo = input<string>();\n\n /**\n * Language indicator string (e.g. \"English\", \"French\") used in the footer.\n * When translations are present, this becomes the toggle button label.\n */\n language = input<string>();\n\n /**\n * Primary metadata array (e.g. ['Meta info', 'DD Month YYYY']).\n * Rendered as a list below the title/description.\n */\n primaryMeta = input<string[]>();\n\n /**\n * @deprecated Use `primaryMeta` instead. Kept for backward compatibility.\n */\n detailMeta = input<string[]>();\n\n /**\n * @deprecated Meta is now rendered inside the download link by the consumer.\n * Kept for backward compatibility — no longer rendered in the template.\n */\n meta = input<string>();\n\n /**\n * @deprecated Meta ID is now managed by the consumer inside the download link.\n * Kept for backward compatibility — no longer rendered in the template.\n */\n metaId = input<string>();\n\n /**\n * Accessible label for the translation toggle button.\n * Defaults to the `language` value if not provided.\n */\n toggleAriaLabel = input<string>();\n\n /**\n * File type icon to display. Renders a phosphor icon internally.\n * Options: 'file' (default), 'pdf', 'doc', 'xls', 'txt', 'zip'.\n * Ignored when a picture is projected.\n */\n fileIcon = input<'file' | 'pdf' | 'doc' | 'xls' | 'txt' | 'zip'>('file');\n\n /**\n * Whether the translation list is currently expanded.\n */\n protected isTranslationsExpanded = signal(false);\n\n /**\n * Emits when the translation toggle is clicked.\n * Consumers can call `preventDefault()` on the event to cancel the toggle.\n */\n translationsToggle = output<EclFileItemsToggleEvent>();\n\n /**\n * Optional image directive projected via content slot, used for pictures.\n */\n protected eclPictureContent = contentChild(EclFilePictureDirective);\n\n /**\n * Projected translation list component.\n */\n protected eclFileItems = contentChild(EclFileItemsComponent);\n\n constructor() {\n super();\n // When eclFileItems becomes available, assign ID if not set\n effect(() => {\n const items = this.eclFileItems();\n if (items && !items.id()) {\n items.id.set(`${this.id()}-translations`);\n }\n });\n }\n\n /**\n * Whether this file has a picture projected.\n */\n protected hasPicture = computed(() => !!this.eclPictureContent());\n\n /**\n * Resolved phosphor icon name based on the fileIcon input.\n */\n protected resolvedIconName = computed(() => {\n const icon = this.fileIcon();\n return icon === 'file' ? 'file' : `file-${icon}`;\n });\n\n /**\n * Whether translations are present.\n */\n protected hasTranslations = computed(() => !!this.eclFileItems());\n\n /**\n * Resolved primary meta — uses primaryMeta if available, falls back to deprecated detailMeta.\n */\n protected resolvedPrimaryMeta = computed(() => this.primaryMeta() ?? this.detailMeta());\n\n /**\n * Handles the translation toggle button click.\n */\n onTranslationToggleClick(): void {\n const nextState = !this.isTranslationsExpanded();\n const event = new EclFileItemsToggleEvent(nextState);\n\n this.translationsToggle.emit(event);\n\n if (!event.defaultPrevented) {\n this.isTranslationsExpanded.set(nextState);\n const items = this.eclFileItems();\n if (items) {\n items.isExpanded.set(nextState);\n }\n }\n }\n}\n","<article class=\"ecl-file__container\">\n <div class=\"ecl-file__info\">\n @if (hasPicture()) {\n <ng-content select=\"[eclFilePicture]\"></ng-content>\n } @else {\n <div class=\"ecl-file__icon-box\">\n <ecl-icon [icon]=\"resolvedIconName()\" iconSet=\"phosphor\" size=\"l\" class=\"ecl-file__icon\" [title]=\"fileIcon()\"></ecl-icon>\n </div>\n }\n\n <div class=\"ecl-file__content\">\n @if (labelInfo()) {\n <div class=\"ecl-file__labels\">\n <div class=\"ecl-file__label\">\n <span eclLabel variant=\"highlight\">{{ labelInfo() }}</span>\n </div>\n </div>\n }\n\n <ng-content select=\"[eclFileTitle]\"></ng-content>\n\n @if (description()) {\n <div class=\"ecl-file__description\">{{ description() }}</div>\n }\n\n @if (resolvedPrimaryMeta()) {\n <ul class=\"ecl-file__primary-meta\">\n @for (item of resolvedPrimaryMeta(); track item) {\n <li class=\"ecl-file__primary-meta-item\">{{ item }}</li>\n }\n </ul>\n }\n\n <ng-content select=\"ecl-file-lists, ecl-file-taxonomy\"></ng-content>\n </div>\n </div>\n\n <footer class=\"ecl-file__footer\">\n @if (language()) {\n @if (hasTranslations()) {\n <button eclButton variant=\"tertiary\" eclStyle=\"neutral\"\n class=\"ecl-file__translation-toggle\"\n type=\"button\"\n [attr.aria-expanded]=\"isTranslationsExpanded()\"\n [attr.aria-controls]=\"eclFileItems()?.id()\"\n [attr.aria-label]=\"toggleAriaLabel() || language()\"\n (click)=\"onTranslationToggleClick()\">\n <span eclButtonLabel>\n <span class=\"ecl-file__language\" [id]=\"langId()\">{{ language() }}</span>\n </span>\n <ecl-icon icon=\"caret-down\" iconSet=\"phosphor\" size=\"fluid\"></ecl-icon>\n </button>\n } @else {\n <span class=\"ecl-file__language ecl-file__language--no-toggle\" [id]=\"langId()\">{{ language() }}</span>\n }\n }\n\n <div class=\"ecl-file__action\">\n <ng-content select=\"[eclFilePreview]\"></ng-content>\n <ng-content select=\"[eclFileDownload]\"></ng-content>\n </div>\n </footer>\n</article>\n\n<ng-content select=\"ecl-file-items\"></ng-content>\n<ng-content></ng-content>\n","import { EclFileDownloadDirective, EclFileMetaDirective, EclFilePreviewDirective, EclFileTranslationDownloadDirective } from './ecl-file-download.directive';\nimport { EclFileItemComponent } from './ecl-file-item/ecl-file-item.component';\nimport { EclFileItemsComponent } from './ecl-file-items/ecl-file-items.component';\nimport { EclFileImageDirective, EclFilePictureDirective, EclFileTitleDirective } from './ecl-file-picture.directive';\nimport { EclFileListsComponent } from './ecl-file-lists/ecl-file-lists.component';\nimport { EclFileComponent } from './ecl-file.component';\n\nexport * from './ecl-file.component';\nexport * from './ecl-file-items/ecl-file-items.component';\nexport * from './ecl-file-item/ecl-file-item.component';\nexport * from './ecl-file-download.directive';\nexport * from './ecl-file-lists/ecl-file-lists.component';\nexport * from './ecl-file-picture.directive';\nexport * from './events/ecl-file-items-toggle.event';\n\nexport const EUI_ECL_FILE = [\n EclFileComponent,\n EclFileDownloadDirective,\n EclFileItemsComponent,\n EclFileItemComponent,\n EclFileListsComponent,\n EclFileTitleDirective,\n EclFileTranslationDownloadDirective,\n EclFilePictureDirective,\n EclFileImageDirective,\n EclFilePreviewDirective,\n EclFileMetaDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -369,11 +369,11 @@ class EclGalleryItemComponent extends ECLBaseDirective {
369
369
  this.renderer.selectRootElement(this.el.nativeElement.children[0], true).focus();
370
370
  }
371
371
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclGalleryItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
372
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: EclGalleryItemComponent, isStandalone: true, selector: "ecl-gallery-item", inputs: { isShareable: { classPropertyName: "isShareable", publicName: "isShareable", isSignal: true, isRequired: false, transformFunction: null }, mediaType: { classPropertyName: "mediaType", publicName: "mediaType", isSignal: true, isRequired: false, transformFunction: null }, src: { classPropertyName: "src", publicName: "src", isSignal: false, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: false, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: false, isRequired: false, transformFunction: null }, srVideoAudioDescription: { classPropertyName: "srVideoAudioDescription", publicName: "srVideoAudioDescription", isSignal: false, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: false, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: false, isRequired: false, transformFunction: null }, itemId: { classPropertyName: "itemId", publicName: "itemId", isSignal: false, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClick: "itemClick" }, host: { listeners: { "click": "onItemClick($event)" }, properties: { "class": "this.cssClasses", "attr.role": "this.role" } }, queries: [{ propertyName: "mediaChild", first: true, predicate: EclGalleryMediaDirective, descendants: true, isSignal: true }, { propertyName: "galleryPicture", first: true, predicate: EclGalleryPictureDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<a [href]=\"src\" class=\"ecl-gallery__item-link\" [class.ecl-gallery__item__link--frozen]=\"isNoOverlay\" [id]=\"itemId\"\n [attr.aria-label]=\"ariaLabel()\">\n <figure class=\"ecl-gallery__image-container\">\n <div class=\"ecl-gallery__icon-zoom-wrapper\">\n <ecl-icon class=\"ecl-gallery__icon-zoom\" icon=\"fullscreen\" size=\"s\"></ecl-icon>\n </div>\n @if(mediaType() !== 'image') {\n <div class=\"ecl-gallery__item-icon-wrapper\">\n <ecl-icon isInverted class=\"ecl-gallery__item-icon\" icon=\"play\" size=\"s\"></ecl-icon>\n </div>\n } \n <ng-content select=\"[eclGalleryPicture], [eclGalleryThumbnail], [eclGalleryMedia], [eclGalleryImage]\"></ng-content>\n <figcaption class=\"ecl-gallery__description\">\n @if(title) {\n <span class=\"ecl-gallery__title\" [id]=\"titleId\">{{title}}</span>\n }\n @if(description) {\n <span class=\"ecl-gallery__caption\">{{ description }}</span>\n }\n @if(icon) {\n <ecl-icon class=\"ecl-gallery__description-icon\" [icon]=\"icon\"></ecl-icon>\n }\n <span class=\"ecl-gallery__meta\">\n {{ meta }}\n </span>\n </figcaption>\n </figure>\n</a>", dependencies: [{ kind: "component", type: i1$1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }] }); }
372
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: EclGalleryItemComponent, isStandalone: true, selector: "ecl-gallery-item", inputs: { isShareable: { classPropertyName: "isShareable", publicName: "isShareable", isSignal: true, isRequired: false, transformFunction: null }, mediaType: { classPropertyName: "mediaType", publicName: "mediaType", isSignal: true, isRequired: false, transformFunction: null }, src: { classPropertyName: "src", publicName: "src", isSignal: false, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: false, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: false, isRequired: false, transformFunction: null }, srVideoAudioDescription: { classPropertyName: "srVideoAudioDescription", publicName: "srVideoAudioDescription", isSignal: false, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: false, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: false, isRequired: false, transformFunction: null }, itemId: { classPropertyName: "itemId", publicName: "itemId", isSignal: false, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClick: "itemClick" }, host: { listeners: { "click": "onItemClick($event)" }, properties: { "class": "this.cssClasses", "attr.role": "this.role" } }, queries: [{ propertyName: "mediaChild", first: true, predicate: EclGalleryMediaDirective, descendants: true, isSignal: true }, { propertyName: "galleryPicture", first: true, predicate: EclGalleryPictureDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<a [href]=\"src\" class=\"ecl-gallery__item-link\" [class.ecl-gallery__item__link--frozen]=\"isNoOverlay\" [id]=\"itemId\"\n [attr.aria-label]=\"ariaLabel()\">\n <figure class=\"ecl-gallery__image-container\">\n <div class=\"ecl-gallery__icon-zoom-wrapper\">\n <ecl-icon class=\"ecl-gallery__icon-zoom\" iconSet=\"phosphor\" icon=\"arrows-out-simple\" size=\"s\"></ecl-icon>\n </div>\n @if(mediaType() !== 'image') {\n <div class=\"ecl-gallery__item-icon-wrapper\">\n <ecl-icon isInverted class=\"ecl-gallery__item-icon\" iconSet=\"phosphor-fill\" icon=\"play\" size=\"s\"></ecl-icon>\n </div>\n } \n <ng-content select=\"[eclGalleryPicture], [eclGalleryThumbnail], [eclGalleryMedia], [eclGalleryImage]\"></ng-content>\n <figcaption class=\"ecl-gallery__description\">\n @if(title) {\n <span class=\"ecl-gallery__title\" [id]=\"titleId\">{{title}}</span>\n }\n @if(description) {\n <span class=\"ecl-gallery__caption\">{{ description }}</span>\n }\n @if(icon) {\n <ecl-icon class=\"ecl-gallery__description-icon\" [icon]=\"icon\"></ecl-icon>\n }\n <span class=\"ecl-gallery__meta\">\n {{ meta }}\n </span>\n </figcaption>\n </figure>\n</a>", dependencies: [{ kind: "component", type: i1$1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }] }); }
373
373
  }
374
374
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclGalleryItemComponent, decorators: [{
375
375
  type: Component,
376
- args: [{ selector: 'ecl-gallery-item', imports: [...EUI_ECL_ICON], template: "<a [href]=\"src\" class=\"ecl-gallery__item-link\" [class.ecl-gallery__item__link--frozen]=\"isNoOverlay\" [id]=\"itemId\"\n [attr.aria-label]=\"ariaLabel()\">\n <figure class=\"ecl-gallery__image-container\">\n <div class=\"ecl-gallery__icon-zoom-wrapper\">\n <ecl-icon class=\"ecl-gallery__icon-zoom\" icon=\"fullscreen\" size=\"s\"></ecl-icon>\n </div>\n @if(mediaType() !== 'image') {\n <div class=\"ecl-gallery__item-icon-wrapper\">\n <ecl-icon isInverted class=\"ecl-gallery__item-icon\" icon=\"play\" size=\"s\"></ecl-icon>\n </div>\n } \n <ng-content select=\"[eclGalleryPicture], [eclGalleryThumbnail], [eclGalleryMedia], [eclGalleryImage]\"></ng-content>\n <figcaption class=\"ecl-gallery__description\">\n @if(title) {\n <span class=\"ecl-gallery__title\" [id]=\"titleId\">{{title}}</span>\n }\n @if(description) {\n <span class=\"ecl-gallery__caption\">{{ description }}</span>\n }\n @if(icon) {\n <ecl-icon class=\"ecl-gallery__description-icon\" [icon]=\"icon\"></ecl-icon>\n }\n <span class=\"ecl-gallery__meta\">\n {{ meta }}\n </span>\n </figcaption>\n </figure>\n</a>" }]
376
+ args: [{ selector: 'ecl-gallery-item', imports: [...EUI_ECL_ICON], template: "<a [href]=\"src\" class=\"ecl-gallery__item-link\" [class.ecl-gallery__item__link--frozen]=\"isNoOverlay\" [id]=\"itemId\"\n [attr.aria-label]=\"ariaLabel()\">\n <figure class=\"ecl-gallery__image-container\">\n <div class=\"ecl-gallery__icon-zoom-wrapper\">\n <ecl-icon class=\"ecl-gallery__icon-zoom\" iconSet=\"phosphor\" icon=\"arrows-out-simple\" size=\"s\"></ecl-icon>\n </div>\n @if(mediaType() !== 'image') {\n <div class=\"ecl-gallery__item-icon-wrapper\">\n <ecl-icon isInverted class=\"ecl-gallery__item-icon\" iconSet=\"phosphor-fill\" icon=\"play\" size=\"s\"></ecl-icon>\n </div>\n } \n <ng-content select=\"[eclGalleryPicture], [eclGalleryThumbnail], [eclGalleryMedia], [eclGalleryImage]\"></ng-content>\n <figcaption class=\"ecl-gallery__description\">\n @if(title) {\n <span class=\"ecl-gallery__title\" [id]=\"titleId\">{{title}}</span>\n }\n @if(description) {\n <span class=\"ecl-gallery__caption\">{{ description }}</span>\n }\n @if(icon) {\n <ecl-icon class=\"ecl-gallery__description-icon\" [icon]=\"icon\"></ecl-icon>\n }\n <span class=\"ecl-gallery__meta\">\n {{ meta }}\n </span>\n </figcaption>\n </figure>\n</a>" }]
377
377
  }], propDecorators: { isShareable: [{ type: i0.Input, args: [{ isSignal: true, alias: "isShareable", required: false }] }], mediaType: [{ type: i0.Input, args: [{ isSignal: true, alias: "mediaType", required: false }] }], src: [{
378
378
  type: Input
379
379
  }], meta: [{
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-gallery.mjs","sources":["../../components/ecl-gallery/events/ecl-gallery.event.ts","../../components/ecl-gallery/events/ecl-gallery-item.event.ts","../../components/ecl-gallery/events/ecl-gallery-item-click.event.ts","../../components/ecl-gallery/events/ecl-gallery-toggle-items.event.ts","../../components/ecl-gallery/ecl-gallery-footer.component.ts","../../components/ecl-gallery/ecl-gallery-footer.component.html","../../components/ecl-gallery/ecl-gallery-media.directive.ts","../../components/ecl-gallery/ecl-gallery-item.component.ts","../../components/ecl-gallery/ecl-gallery-item.component.html","../../components/ecl-gallery/ecl-gallery.component.ts","../../components/ecl-gallery/ecl-gallery.component.html","../../components/ecl-gallery/index.ts","../../components/ecl-gallery/eui-ecl-components-ecl-gallery.ts"],"sourcesContent":["import { EclBaseEvent } from '@eui/ecl/core';\nimport { EclGalleryItem } from '../models/ecl-gallery-item.model';\n\nexport class EclGalleryShowEvent extends EclBaseEvent {}\nexport class EclGalleryHideEvent extends EclBaseEvent {}\nexport class EclGalleryFullScreenEvent extends EclBaseEvent {\n\tconstructor(public galleryItem: EclGalleryItem) {\n\t\tsuper();\n\t}\n}\nexport class EclGalleryShareEvent extends EclBaseEvent {\n\tconstructor(public galleryItem: EclGalleryItem) {\n\t\tsuper();\n\t}\n}\n","import { EclBaseEvent } from '@eui/ecl/core';\nimport { EclGalleryItem } from '../models/ecl-gallery-item.model';\n\nexport class EclGalleryItemEvent extends EclBaseEvent {\n\tconstructor(public galleryItem: EclGalleryItem) {\n\t\tsuper();\n\t}\n}","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclGalleryItemClickEvent extends EclBaseEvent {}","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclGalleryToggleItemsEvent extends EclBaseEvent {\n\tconstructor(public expandAll: boolean) {\n\t\tsuper();\n\t}\n}","import { Component, EventEmitter, HostBinding, Input, OnInit, Output } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { EclGalleryToggleItemsEvent } from './events';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\n\n/**\n * Manages styling and functionality for gallery footer.\n */\n@Component({\n selector: 'ecl-gallery-footer',\n templateUrl: './ecl-gallery-footer.component.html',\n imports: [TranslatePipe, ...EUI_ECL_BUTTON],\n})\nexport class EclGalleryFooterComponent implements OnInit {\n @HostBinding('class.ecl-gallery__footer') hasClass = true;\n @Input() infoId: string;\n /**\n * Event, that is emitted when items are expanded/collapsed.\n */\n @Output() toggleItems = new EventEmitter<EclGalleryToggleItemsEvent>();\n\n private _itemsCount: number;\n private _isExpanded = false;\n private _isShowToggleBtn = false;\n\n ngOnInit(): void {\n if (!this.infoId) {\n this.infoId = crypto.randomUUID();\n }\n }\n get isExpanded(): boolean {\n return this._isExpanded;\n }\n set isExpanded(value: boolean) {\n this._isExpanded = value;\n }\n\n get itemsCount(): number {\n return this._itemsCount;\n }\n set itemsCount(value: number) {\n this._itemsCount = value;\n }\n\n get isShowToggleBtn(): boolean {\n return this._isShowToggleBtn;\n }\n set isShowToggleBtn(value: boolean) {\n this._isShowToggleBtn = value;\n }\n\n onToggle(): void {\n this._isExpanded = !this._isExpanded;\n this.toggleItems.next(new EclGalleryToggleItemsEvent(this.isExpanded));\n }\n}\n","<div class=\"ecl-gallery__info\">\n <div class=\"ecl-gallery__info-total\" [id]=\"infoId\">\n <strong>{{ itemsCount }}</strong>{{ 'ecl.gallery.MEDIA-FILES-COUNT' | translate }}\n </div>\n @if(isShowToggleBtn) {\n @if(!isExpanded) {\n <button [attr.aria-describedby]=\"infoId\" eclButton variant=\"tertiary\" class=\"ecl-gallery__view-all\"\n (click)=\"onToggle()\">\n {{ 'ecl.SHOW-MORE-ITEMS' | translate }}\n </button>\n } @else {\n <button [attr.aria-describedby]=\"infoId\" eclButton variant=\"tertiary\" class=\"ecl-gallery__view-all\"\n (click)=\"onToggle()\">\n {{ 'ecl.common.COLLAPSE' | translate }}\n </button>\n }\n }\n</div>\n<hr class=\"ecl-gallery__footer-divider\" />\n<div class=\"ecl-gallery__footer-link\">\n <ng-content></ng-content>\n</div>","import { ChangeDetectorRef, Directive, ElementRef, HostBinding, Input, OnInit, afterNextRender, booleanAttribute, inject, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\nexport class EclGalleryMediaSource {\n src?: string;\n type?: string;\n}\n\nexport class EclGalleryMediaTrack {\n src?: string;\n kind?: string;\n srcLang?: string;\n label?: string;\n}\n\nexport class EclGalleryPictureSource {\n srcset? : string;\n media? : string;\n}\n\nexport class EclGalleryPictureImage {\n src? : string;\n alt? : string;\n loading?: string;\n}\n\n/**\n * Manages image/video for the thumbnail in the gallery. Adding some styling and functionality.\n */\n@Directive({\n selector: '[eclGalleryMedia], [eclGalleryImage]',\n})\nexport class EclGalleryMediaDirective extends ECLBaseDirective implements OnInit {\n /**\n * To be used when there is no thimbnail added. Instead the 'poster' attribute in the <video> element is used\n */\n readonly poster = input<string>(undefined);\n /**\n * When this is true, on mousehover the image will be zoomed.\n */\n readonly hasZoom = input(false, { transform: booleanAttribute });\n sources: EclGalleryMediaSource[] = [];\n tracks: EclGalleryMediaTrack[] = [];\n\n /**\n * Applies the ECL classes for the component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-gallery__image'),\n this.hasZoom() && this.isVideo ? 'ecl-video--zoom' : '',\n ].join(' ').trim();\n }\n @HostBinding('class.ecl-video') isVideo = false;\n private el = inject(ElementRef);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.createGalleryMediaChildren();\n });\n }\n\n ngOnInit(): void {\n this.checkIsVideo();\n }\n\n private checkIsVideo(): void {\n const selector = this.el.nativeElement.tagName;\n this.isVideo = selector === 'VIDEO';\n }\n\n private createGalleryMediaChildren(): void {\n if (!this.getHostElement().hasChildNodes) {\n return;\n }\n this.getHostElement().childNodes.forEach((el: HTMLInputElement) => {\n if (el.nodeName === 'SOURCE') {\n const mediaSource = new EclGalleryMediaSource();\n mediaSource.src = el.getAttribute('src');\n mediaSource.type = el.getAttribute('type');\n this.sources.push(mediaSource);\n } else if (el.nodeName === 'TRACK') {\n const mediaTrack = new EclGalleryMediaTrack();\n mediaTrack.src = el.getAttribute('src');\n mediaTrack.kind = el.getAttribute('kind');\n mediaTrack.srcLang = el.getAttribute('srcLang');\n mediaTrack.label = el.getAttribute('label');\n this.tracks.push(mediaTrack);\n }\n });\n }\n\n private getHostElement(): HTMLInputElement {\n return this.el.nativeElement;\n }\n}\n\n/**\n * Adds styling and functionality for gallery picture component.\n */\n@Directive({\n selector: 'picture[eclGalleryPicture]',\n})\nexport class EclGalleryPictureDirective extends ECLBaseDirective {\n // TODO: to be removed in v19. Thumbnail should be added by user.\n isThumbnail = false;\n sources: EclGalleryPictureSource[] = [];\n img: EclGalleryPictureImage ={};\n private el = inject(ElementRef);\n private cd = inject(ChangeDetectorRef);\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture'), this.isThumbnail ? 'ecl-gallery__thumbnail': 'ecl-gallery__picture'].join(' ').trim();\n }\n\n constructor() {\n super();\n afterNextRender(() => {\n this.createGalleryPictureChildren();\n });\n }\n\n private createGalleryPictureChildren(): void {\n if (!this.getHostElement().hasChildNodes()) {\n return;\n }\n this.getHostElement().childNodes.forEach((el: HTMLSourceElement | HTMLImageElement) => {\n if (el.nodeName === 'SOURCE') {\n const pictureSource = new EclGalleryPictureSource();\n pictureSource.srcset = el.getAttribute('srcset');\n pictureSource.media = el.getAttribute('media');\n this.sources.push(pictureSource);\n } else if (el.nodeName === 'IMG') {\n const imageSource = new EclGalleryPictureImage();\n imageSource.src = el.getAttribute('src');\n imageSource.alt = el.getAttribute('alt');\n imageSource.loading = el.getAttribute('loading');\n this.img.src = imageSource.src;\n this.img.alt = imageSource.alt;\n this.img.loading = imageSource.loading;\n\n }\n this.cd.detectChanges();\n });\n }\n\n private getHostElement(): HTMLElement {\n return this.el.nativeElement;\n }\n}\n\n/**\n * Applies classes for the gallery thumbnail.\n */\n@Directive({\n selector: 'picture[eclGalleryThumbnail]',\n})\nexport class EclGalleryThumbnailDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-gallery__thumbnail')].join(' ').trim();\n }\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-picture--zoom') hasZoom = false;\n}\n","import { Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnInit, Output, Renderer2, booleanAttribute, inject, input, contentChild } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport {\n EclGalleryMediaDirective,\n EclGalleryPictureDirective,\n} from './ecl-gallery-media.directive';\nimport { EclGalleryItemClickEvent } from './events';\nimport { EclGalleryItem } from './models/ecl-gallery-item.model';\n\n/**\n * Wrapper component for gallery item's elements.\n */\n@Component({\n selector: 'ecl-gallery-item',\n templateUrl: './ecl-gallery-item.component.html',\n imports: [...EUI_ECL_ICON],\n})\nexport class EclGalleryItemComponent extends ECLBaseDirective implements EclGalleryItem, OnInit {\n /**\n * Can this item be shared, i.e. show/hide share button.\n */\n readonly isShareable = input(true, { transform: booleanAttribute });\n readonly mediaType = input<'image' | 'video' | 'externalVideo'>('image');\n /**\n * The source link to the image/video, that will be shown in the original size (when open image/video in overlay or in orginal size).\n */\n @Input() src: string;\n @Input() meta: string;\n @Input() description: string;\n /**\n * Embeded audio description.\n */\n @Input() srVideoAudioDescription: string;\n @Input() icon: string;\n @Input() title: string;\n @Input() itemId: string;\n ariaLabel = input<string | null>(null);\n @Output() itemClick = new EventEmitter<EclGalleryItemClickEvent>();\n readonly mediaChild = contentChild(EclGalleryMediaDirective);\n readonly galleryPicture = contentChild(EclGalleryPictureDirective);\n\n /**\n * Binds specific classes for the item. Some depend on some of the properties of the component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-gallery__item'), this._isHidden ? 'ecl-gallery__item--hidden' : ''].join(' ').trim();\n }\n /**\n * The role attribute of the item is 'listitem', should not be changed.\n */\n @HostBinding('attr.role') role = 'listitem';\n\n private _isNoOverlay = false;\n private _isHidden = false;\n private externalVideoUrl: SafeResourceUrl;\n private domSanitizer = inject(DomSanitizer);\n private renderer = inject(Renderer2);\n private el = inject(ElementRef);\n\n ngOnInit(): void {\n if (this.isExternalVideo) {\n const iframeUrl = new URL(this.src);\n if (iframeUrl.host.includes('youtube')) {\n this.externalVideoUrl = this.domSanitizer.bypassSecurityTrustResourceUrl(iframeUrl.toString());\n } else {\n this.externalVideoUrl = this.domSanitizer.bypassSecurityTrustResourceUrl(this.src);\n }\n }\n\n if (!this.itemId) {\n this.itemId = crypto.randomUUID();\n }\n }\n\n /**\n * Set if the item should be shown in the gallery by default.\n */\n set isHidden(value: boolean) {\n this._isHidden = value;\n }\n\n @HostListener('click', ['$event'])\n onItemClick(evt: MouseEvent): void {\n this.itemClick.next(new EclGalleryItemClickEvent());\n evt.preventDefault();\n }\n\n getDownloadLink(): string {\n return this.src;\n }\n\n getUrlExternalVideo(): SafeResourceUrl {\n return this.externalVideoUrl;\n }\n\n get isNoOverlay(): boolean {\n return this._isNoOverlay;\n }\n\n set isNoOverlay(value: boolean) {\n this._isNoOverlay = value;\n }\n\n get isImage(): boolean {\n return this.mediaType() === 'image';\n }\n\n get isVideo(): boolean {\n return this.mediaType() === 'video';\n }\n\n get isExternalVideo(): boolean {\n return this.mediaType() === 'externalVideo';\n }\n\n get isOpenInFullScreenPossible(): boolean {\n return this.mediaType() !== 'externalVideo';\n }\n\n /**\n * Creates id for the title\n */\n get titleId(): string {\n return `${this.itemId}-title`;\n }\n\n onFocus(): void {\n this.renderer.selectRootElement(this.el.nativeElement.children[0], true).focus();\n }\n}\n","<a [href]=\"src\" class=\"ecl-gallery__item-link\" [class.ecl-gallery__item__link--frozen]=\"isNoOverlay\" [id]=\"itemId\"\n [attr.aria-label]=\"ariaLabel()\">\n <figure class=\"ecl-gallery__image-container\">\n <div class=\"ecl-gallery__icon-zoom-wrapper\">\n <ecl-icon class=\"ecl-gallery__icon-zoom\" icon=\"fullscreen\" size=\"s\"></ecl-icon>\n </div>\n @if(mediaType() !== 'image') {\n <div class=\"ecl-gallery__item-icon-wrapper\">\n <ecl-icon isInverted class=\"ecl-gallery__item-icon\" icon=\"play\" size=\"s\"></ecl-icon>\n </div>\n } \n <ng-content select=\"[eclGalleryPicture], [eclGalleryThumbnail], [eclGalleryMedia], [eclGalleryImage]\"></ng-content>\n <figcaption class=\"ecl-gallery__description\">\n @if(title) {\n <span class=\"ecl-gallery__title\" [id]=\"titleId\">{{title}}</span>\n }\n @if(description) {\n <span class=\"ecl-gallery__caption\">{{ description }}</span>\n }\n @if(icon) {\n <ecl-icon class=\"ecl-gallery__description-icon\" [icon]=\"icon\"></ecl-icon>\n }\n <span class=\"ecl-gallery__meta\">\n {{ meta }}\n </span>\n </figcaption>\n </figure>\n</a>","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { NgTemplateOutlet, isPlatformBrowser } from '@angular/common';\nimport { AfterContentInit, AfterViewInit, Component, DOCUMENT, ElementRef, HostBinding, HostListener, Input, OnDestroy, PLATFORM_ID, booleanAttribute, inject, numberAttribute, output, input, contentChildren, contentChild, viewChild } from '@angular/core';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { Subject, delay, fromEvent } from 'rxjs';\nimport { auditTime, takeUntil } from 'rxjs/operators';\nimport { EclGalleryFooterComponent } from './ecl-gallery-footer.component';\nimport { EclGalleryItemComponent } from './ecl-gallery-item.component';\nimport { EclGalleryFullScreenEvent, EclGalleryHideEvent, EclGalleryItemEvent, EclGalleryShareEvent, EclGalleryShowEvent } from './events';\n\n/**\n * This component represents a collection of images or videos and allows a user to browse them.\n * Adds functionality and styling, according to the ECL standards.\n */\n@Component({\n selector: 'ecl-gallery',\n templateUrl: './ecl-gallery.component.html',\n imports: [TranslatePipe, NgTemplateOutlet, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, ...EUI_ECL_LINK],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclGalleryComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy, AfterViewInit {\n readonly isOpenInFullScreenPossible = input(true, { transform: booleanAttribute });\n /**\n * If the items in the gallery can be shared. I.e. if the link for sharing will be present for each item.\n */\n readonly isShareable = input(true, { transform: booleanAttribute });\n /**\n * If set to true, the gallery will have 100 view width.\n */\n readonly isFullWidth = input(false, { transform: booleanAttribute });\n /**\n * If set to true, no overlay will be displayed when user clicks on an image.\n */\n readonly isNoOverlay = input(false, { transform: booleanAttribute });\n /**\n * If set to false, no title will be displayed when user hover on a gallery item.\n */\n readonly isShowTitleOnHover = input(true, { transform: booleanAttribute });\n /**\n * Number of gallery items to be displayed by default. The rest can be displayed with the 'View all' button.\n */\n @Input({ transform: numberAttribute }) maxVisibleItems: number;\n /**\n * If set to true, a specific class will be applied, so the gallery thumbnails are displayed as a grid, all with same size.\n */\n readonly isGrid = input(false, { transform: booleanAttribute });\n\n readonly columns = input<2 | 3 | 4 | number, unknown>(3, { transform: numberAttribute });\n /**\n * This property can be used with 'isGrid' property set to true. By default gridTemplate is 0 and all the thimbnails have same size.\n * If another template value is set, some additional formatting is applied and the thumbnails will have different sizes.\n */\n readonly gridTemplate = input<'0' | '1' | '2' | '3' | '4' | string>('0');\n /**\n * The ratio that will be applied to the gallery thumbnails.\n */\n readonly ratio = input<'3-1' | '3-2' | string>('3-2');\n\n /**\n * Emits event when user clicks on an item to expand it.\n */\n readonly show = output<EclGalleryShowEvent>();\n /**\n * Emits event when an expanded item is closed.\n */\n readonly hide = output<EclGalleryHideEvent>();\n /**\n * Emits event when an item is opened in full screen.\n */\n readonly openFullScreen = output<EclGalleryFullScreenEvent>();\n /**\n * Emits event when an item is shared.\n */\n readonly share = output<EclGalleryShareEvent>();\n /**\n * Emits event when user is browsing items, opened in an overlay.\n */\n readonly itemSwitch = output<EclGalleryItemEvent>();\n readonly galleryItems = contentChildren(EclGalleryItemComponent);\n readonly galleryFooter = contentChild(EclGalleryFooterComponent);\n readonly overlayChild = viewChild<ElementRef>('overlay');\n readonly headerChild = viewChild<ElementRef>('header');\n readonly footerChild = viewChild<ElementRef>('footer');\n\n /**\n * Applies specific clases to the component, related to the component properties values.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-gallery'),\n this.isFullWidth() ? 'ecl-gallery--full-width' : '',\n this.isGrid() ? 'ecl-gallery--grid' : '',\n this.isGrid() && this.gridTemplate() === '0' ? `ecl-gallery--col-${this.columns()}` : '',\n this.isGrid() ? `ecl-gallery--template-${this.gridTemplate()}`: '',\n this.isGrid() ? `ecl-gallery--ratio-${this.ratio()}`: '',\n !this.isShowTitleOnHover() ? 'ecl-gallery--no-hover' : '',\n ].join(' ').trim();\n }\n /**\n * The default role of the component is 'region' and should not be changed.\n */\n @HostBinding('attr.role') role = 'region';\n\n isDialogVisible = false;\n isMobile = false;\n itemsCount: number;\n itemIndex: number;\n item: EclGalleryItemComponent;\n private iframeWidth: number;\n private iframeHeight: number;\n private BREAKPOINT_CHANGES_TIMEOUT = 500;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private visibleItems: number;\n private MAX_VISIBLE_ITEMS_MOBILE = 3;\n private RESOLUTION_16_9_PROPOTION = 16 / 9;\n private RESOLUTION_4_3_PROPOTION = 4 / 3;\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private platformId = inject(PLATFORM_ID);\n private readonly document = inject<Document>(DOCUMENT);\n private readonly window = this.document.defaultView; // Window | null\n\n ngAfterViewInit(): void {\n // Manages the initial display of the gallery, the footer and the visible/hidden items.\n if (isPlatformBrowser(this.platformId) && this.window) {\n this.observeBreakpointChanges();\n fromEvent(this.window, 'resize').pipe(\n auditTime(50),\n takeUntil(this.destroy$)).subscribe(() => {\n this.setIframeDimensions();\n });\n }\n }\n\n ngAfterContentInit(): void {\n this.itemsCount = this.galleryItems().length;\n this.visibleItems = this.maxVisibleItems ? this.maxVisibleItems : this.itemsCount;\n const galleryFooter = this.galleryFooter();\n if (galleryFooter) {\n galleryFooter.itemsCount = this.itemsCount;\n galleryFooter.isShowToggleBtn = this.hasHiddenGaleryItems();\n // Subscribe to 'toggleItems' event from gallery footer, to show or collapse items.\n galleryFooter.toggleItems.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n if (evt.expandAll) {\n this.showAllItems();\n } else {\n this.collapseItems();\n }\n });\n }\n\n if (!this.isNoOverlay()) {\n // For each item, subscribe to 'itemClick' event.\n this.galleryItems().forEach((item) => {\n item.itemClick.pipe(takeUntil(this.destroy$)).subscribe((_) => {\n this.isDialogVisible = true;\n this.item = item;\n this.itemIndex = this.findItemIndex(Array.from(this.galleryItems()), item);\n this.show.emit(new EclGalleryShowEvent());\n if (isPlatformBrowser(this.platformId)) {\n setTimeout(() => this.setIframeDimensions());\n }\n });\n });\n } else {\n this.galleryItems().forEach((item) => (item.isNoOverlay = true));\n }\n\n if (this.hasHiddenGaleryItems()) {\n this.collapseItems();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Emit 'itemSwitch' event, when switching to the previous item. Event contains the new current item.\n * @param evt\n */\n onPrevious(evt: MouseEvent): void {\n this.item = this.findPreviousItem(Array.from(this.galleryItems()), this.item);\n\n this.itemIndex = this.findItemIndex(Array.from(this.galleryItems()), this.item);\n\n this.itemSwitch.emit(new EclGalleryItemEvent(this.item));\n }\n\n /**\n * Emit 'itemSwitch' event, when switching to the next item. Event contains the new current item.\n * @param evt\n */\n onNext(evt: MouseEvent): void {\n this.item = this.findNextItem(Array.from(this.galleryItems()), this.item);\n this.itemIndex = this.findItemIndex(Array.from(this.galleryItems()), this.item);\n\n this.itemSwitch.emit(new EclGalleryItemEvent(this.item));\n }\n\n /**\n * Emit 'hide' event, when closing item dialog.\n * @param evt\n */\n onClose(evt: MouseEvent): void {\n this.item = null;\n this.itemIndex = -1;\n this.isDialogVisible = false;\n this.hide.emit(new EclGalleryHideEvent());\n }\n\n /**\n * On pressing 'esc' key - close the item dialog and emit 'hide' event.\n * @param event\n */\n @HostListener('document:keydown.escape')\n onEscapeKeydownHandler(): void {\n this.isDialogVisible = false;\n this.hide.emit(new EclGalleryHideEvent());\n }\n\n onFullScreenOpen(evt: MouseEvent): void {\n this.openFullScreen.emit(new EclGalleryFullScreenEvent(this.item));\n }\n\n onShare(evt: MouseEvent): void {\n this.share.emit(new EclGalleryShareEvent(this.item));\n evt.preventDefault();\n }\n\n canBeOpenInFullScreen(): boolean {\n return this.isOpenInFullScreenPossible() && this.item?.isOpenInFullScreenPossible;\n }\n\n canBeShared(): boolean {\n return this.isShareable() && this.item?.isShareable();\n }\n\n getIframeWidth(): number {\n return this.iframeWidth;\n }\n\n getIframeHeight(): number {\n return this.iframeHeight;\n }\n\n setIframeDimensions(): void {\n const { width, height } = this.getCalculatedIframeDimensions();\n this.iframeWidth = width;\n this.iframeHeight = height;\n }\n\n private getCalculatedIframeDimensions(): { width: number; height: number } {\n let width = window.innerWidth;\n let height =\n this.overlayChild().nativeElement.clientHeight -\n this.headerChild().nativeElement.clientHeight -\n this.footerChild().nativeElement.clientHeight;\n if (width > height) {\n const scaledHeight = height * this.RESOLUTION_16_9_PROPOTION;\n if (scaledHeight > width) {\n width = width * 0.95;\n } else {\n width = scaledHeight;\n }\n } else {\n const scaledWith = width * this.RESOLUTION_4_3_PROPOTION;\n if (scaledWith > height) {\n height = height * 0.95;\n } else {\n height = scaledWith;\n }\n }\n return {\n width,\n height,\n };\n }\n\n private findItemIndex(items: EclGalleryItemComponent[], item: EclGalleryItemComponent): number {\n return items.findIndex((it) => it === item) + 1;\n }\n\n private findPreviousItem(items: EclGalleryItemComponent[], item: EclGalleryItemComponent): EclGalleryItemComponent {\n const index = this.findPreviousItemIndex(items, item);\n return items[index];\n }\n\n private findNextItem(items: EclGalleryItemComponent[], item: EclGalleryItemComponent): EclGalleryItemComponent {\n const index = this.findNextItemIndex(items, item);\n return items[index];\n }\n\n private findPreviousItemIndex(items: EclGalleryItemComponent[], item: EclGalleryItemComponent): number {\n const currentIndex = items.findIndex((it) => it === item);\n return currentIndex === 0 ? items.length - 1 : currentIndex - 1;\n }\n\n private findNextItemIndex(items: EclGalleryItemComponent[], item: EclGalleryItemComponent): number {\n const currentIndex = items.findIndex((it) => it === item);\n return currentIndex >= items.length - 1 ? 0 : currentIndex + 1;\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([Breakpoints.Handset, Breakpoints.Tablet])\n .pipe(takeUntil(this.destroy$), delay(this.BREAKPOINT_CHANGES_TIMEOUT))\n .subscribe((result) => {\n this.isMobile = result.matches;\n if (this.isMobile) {\n this.manageItemsMobile();\n } else {\n this.manageItemsDesktop();\n }\n });\n }\n\n private manageItemsMobile(): void {\n this.maxVisibleItems = this.MAX_VISIBLE_ITEMS_MOBILE;\n this.collapseItems();\n const galleryFooter = this.galleryFooter();\n if (galleryFooter) {\n galleryFooter.isShowToggleBtn = this.hasHiddenGaleryItems();\n }\n }\n\n private manageItemsDesktop(): void {\n this.maxVisibleItems = this.visibleItems;\n this.getVisibleItems().forEach((elem) => this.showGaleryItem(elem));\n this.collapseItems();\n const galleryFooter = this.galleryFooter();\n if (galleryFooter) {\n galleryFooter.isShowToggleBtn = this.hasHiddenGaleryItems();\n }\n }\n\n private hasHiddenGaleryItems(): boolean {\n if (this.maxVisibleItems && this.itemsCount > 0 && this.maxVisibleItems < this.itemsCount) {\n return true;\n } else {\n return false;\n }\n }\n\n private collapseItems(): void {\n this.getHiddenItems().forEach((elem) => this.hideGaleryItem(elem));\n }\n\n private showAllItems(): void {\n const hiddenItems = this.getHiddenItems();\n hiddenItems.forEach((elem) => this.showGaleryItem(elem));\n setTimeout(() => hiddenItems[0].onFocus());\n }\n\n private hideGaleryItem(item: EclGalleryItemComponent): void {\n item.isHidden = true;\n }\n\n private showGaleryItem(item: EclGalleryItemComponent): void {\n item.isHidden = false;\n }\n\n private getHiddenItems(): EclGalleryItemComponent[] {\n return this.galleryItems().filter((item, cnt) => cnt >= this.maxVisibleItems);\n }\n private getVisibleItems(): EclGalleryItemComponent[] {\n return this.galleryItems().filter((item, cnt) => cnt < this.maxVisibleItems);\n }\n}\n","<ul class=\"ecl-gallery__list\">\n <ng-content></ng-content>\n</ul>\n\n<ng-content select=\"ecl-gallery-footer\"></ng-content>\n\n<dialog #overlay [attr.open]=\"isDialogVisible || null\" class=\"ecl-gallery__overlay\"\n [attr.aria-label]=\"'ecl.gallery.FULL-SIZE-DISPLAY' | translate\">\n <header #header class=\"ecl-gallery__close\">\n <button (click)=\"onClose($event)\" eclButton class=\"ecl-gallery__close-button\" isIconOnly variant=\"tertiary\" eclStyle=\"inverted\">\n <span eclButtonLabel>\n {{ 'ecl.common.CLOSE' | translate }}\n </span>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n </button>\n </header>\n <section class=\"ecl-gallery__slider\">\n <div class=\"ecl-gallery__slider-media-container\">\n @if(item?.isExternalVideo) {\n <div class=\"ecl-gallery__slider-embed\">\n @if (item?.srVideoAudioDescription) {\n <div class=\"ecl-gallery__slider-embed-audio\">{{item?.srVideoAudioDescription}}</div>\n }\n <iframe [src]=\"item?.getUrlExternalVideo()\" [style.width.px]=\"getIframeWidth()\"\n [style.height.px]=\"getIframeHeight()\" [attr.title]=\"item.title + ' - Video player'\" frameborder=\"0\">\n </iframe>\n </div>\n }\n @if(item?.isImage) {\n <picture class=\"ecl-picture ecl-gallery__picture ecl-gallery__slider-image\">\n @for(el of item.galleryPicture()?.sources; track el.srcset) {\n <source [attr.srcset]=\"el.srcset\" [attr.media]=\" el.media\">\n }\n <img [attr.alt]=\"item?.galleryPicture()?.img.alt || null\"\n [src]=\"item?.galleryPicture()?.img.src\"\n [attr.loading]=\"item?.galleryPicture()?.img.loading || null\" />\n </picture>\n }\n @if(item?.isVideo) {\n <video controls=\"controls\" class=\"ecl-gallery__slider-video\" [attr.aria-label]=\"item.title + ' - Video player'\"\n [attr.poster]=\"item.mediaChild()?.poster()\" playsinline>\n @for (el of item.mediaChild()?.sources; track el.src) {\n <source [attr.src]=\"el.src\" [attr.type]=\"el.type\" />\n }\n @for (elem of item.mediaChild()?.tracks; track elem.src) {\n <track [attr.src]=\"elem.src\" [attr.kind]=\"elem.kind\" [attr.srcLang]=\"elem.srcLang\"\n [attr.label]=\"elem.label\" />\n }\n </video>\n }\n </div>\n </section>\n <footer #footer class=\"ecl-gallery__detail\">\n <div class=\"ecl-container\">\n <div class=\"ecl-gallery__detail-container\">\n <div class=\"ecl-gallery__pager\">\n <div class=\"ecl-gallery__detail-counter\">\n <span>{{ itemIndex }}</span> {{ 'ecl.common.OF' | translate }} <span>{{ itemsCount }}</span>\n </div>\n <div class=\"ecl-gallery__controls\">\n <button eclButton class=\"ecl-gallery__slider-previous\" variant=\"tertiary\" isIconOnly\n (click)=\"onPrevious($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>\n {{ 'ecl.common.PREVIOUS' | translate }}\n </span>\n </button>\n <button eclButton class=\"ecl-gallery__slider-next\" variant=\"tertiary\" isIconOnly\n (click)=\"onNext($event)\">\n <span eclButtonLabel>\n {{ 'ecl.common.NEXT' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-90\"></ecl-icon>\n </button>\n </div>\n </div>\n <div class=\"ecl-gallery__detail-actions\">\n <ng-container *ngTemplateOutlet=\"links\"></ng-container>\n </div>\n </div>\n <div class=\"ecl-gallery__detail-description\">\n @if(isMobile) {\n <div class=\"ecl-gallery__detail-actions-mobile\">\n <ng-container *ngTemplateOutlet=\"links\"></ng-container>\n </div>\n }\n @if(item?.title) {\n <span class=\"ecl-gallery__title\" [id]=\"item?.itemId\">{{ item?.title }}</span>\n }\n @if(item?.description) {\n <span class=\"ecl-gallery__caption\">{{ item?.description }}</span>\n }\n @if(item?.meta) {\n <span class=\"ecl-gallery__meta\">{{ item?.meta }}</span>\n }\n </div>\n </div>\n </footer>\n</dialog>\n\n<ng-template #links>\n @if(canBeOpenInFullScreen()) {\n <a eclLink [attr.aria-describedby]=\"item?.titleId\" variant=\"standalone\"\n class=\"ecl-gallery__download\" [href]=\"item?.getDownloadLink()\" target=\"_blank\"\n (click)=\"onFullScreenOpen($event)\" isInverted>\n <span eclLinkLabel>{{ 'ecl.gallery.VIEW-ORIGINAL' | translate }}</span>\n <ecl-icon icon=\"fullscreen\" size=\"fluid\" focusable=\"false\"></ecl-icon>\n </a>\n }\n @if(canBeShared()) {\n <a [attr.aria-describedby]=\"item?.titleId\" eclLink variant=\"standalone\" isInverted\n class=\"ecl-gallery__share\" href=\"\" (click)=\"onShare($event)\">\n <span eclLinkLabel>{{ 'ecl.common.SHARE' | translate }}</span>\n <ecl-icon icon=\"share\" size=\"fluid\" focusable=\"false\"></ecl-icon>\n </a>\n }\n</ng-template>","import { EclGalleryFooterComponent } from './ecl-gallery-footer.component';\nimport { EclGalleryItemComponent } from './ecl-gallery-item.component';\nimport {\n EclGalleryMediaDirective,\n EclGalleryPictureDirective,\n EclGalleryThumbnailDirective,\n} from './ecl-gallery-media.directive';\nimport { EclGalleryComponent } from './ecl-gallery.component';\n\nexport * from './ecl-gallery.component';\nexport * from './ecl-gallery-item.component';\nexport * from './ecl-gallery-footer.component';\nexport * from './ecl-gallery-media.directive';\nexport * from './events/index';\nexport * from './models/ecl-gallery-item.model';\n\nexport const EUI_ECL_GALLERY = [\n EclGalleryComponent,\n EclGalleryFooterComponent,\n EclGalleryItemComponent,\n EclGalleryMediaDirective,\n EclGalleryPictureDirective,\n EclGalleryThumbnailDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-gallery.mjs","sources":["../../components/ecl-gallery/events/ecl-gallery.event.ts","../../components/ecl-gallery/events/ecl-gallery-item.event.ts","../../components/ecl-gallery/events/ecl-gallery-item-click.event.ts","../../components/ecl-gallery/events/ecl-gallery-toggle-items.event.ts","../../components/ecl-gallery/ecl-gallery-footer.component.ts","../../components/ecl-gallery/ecl-gallery-footer.component.html","../../components/ecl-gallery/ecl-gallery-media.directive.ts","../../components/ecl-gallery/ecl-gallery-item.component.ts","../../components/ecl-gallery/ecl-gallery-item.component.html","../../components/ecl-gallery/ecl-gallery.component.ts","../../components/ecl-gallery/ecl-gallery.component.html","../../components/ecl-gallery/index.ts","../../components/ecl-gallery/eui-ecl-components-ecl-gallery.ts"],"sourcesContent":["import { EclBaseEvent } from '@eui/ecl/core';\nimport { EclGalleryItem } from '../models/ecl-gallery-item.model';\n\nexport class EclGalleryShowEvent extends EclBaseEvent {}\nexport class EclGalleryHideEvent extends EclBaseEvent {}\nexport class EclGalleryFullScreenEvent extends EclBaseEvent {\n\tconstructor(public galleryItem: EclGalleryItem) {\n\t\tsuper();\n\t}\n}\nexport class EclGalleryShareEvent extends EclBaseEvent {\n\tconstructor(public galleryItem: EclGalleryItem) {\n\t\tsuper();\n\t}\n}\n","import { EclBaseEvent } from '@eui/ecl/core';\nimport { EclGalleryItem } from '../models/ecl-gallery-item.model';\n\nexport class EclGalleryItemEvent extends EclBaseEvent {\n\tconstructor(public galleryItem: EclGalleryItem) {\n\t\tsuper();\n\t}\n}","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclGalleryItemClickEvent extends EclBaseEvent {}","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclGalleryToggleItemsEvent extends EclBaseEvent {\n\tconstructor(public expandAll: boolean) {\n\t\tsuper();\n\t}\n}","import { Component, EventEmitter, HostBinding, Input, OnInit, Output } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { EclGalleryToggleItemsEvent } from './events';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\n\n/**\n * Manages styling and functionality for gallery footer.\n */\n@Component({\n selector: 'ecl-gallery-footer',\n templateUrl: './ecl-gallery-footer.component.html',\n imports: [TranslatePipe, ...EUI_ECL_BUTTON],\n})\nexport class EclGalleryFooterComponent implements OnInit {\n @HostBinding('class.ecl-gallery__footer') hasClass = true;\n @Input() infoId: string;\n /**\n * Event, that is emitted when items are expanded/collapsed.\n */\n @Output() toggleItems = new EventEmitter<EclGalleryToggleItemsEvent>();\n\n private _itemsCount: number;\n private _isExpanded = false;\n private _isShowToggleBtn = false;\n\n ngOnInit(): void {\n if (!this.infoId) {\n this.infoId = crypto.randomUUID();\n }\n }\n get isExpanded(): boolean {\n return this._isExpanded;\n }\n set isExpanded(value: boolean) {\n this._isExpanded = value;\n }\n\n get itemsCount(): number {\n return this._itemsCount;\n }\n set itemsCount(value: number) {\n this._itemsCount = value;\n }\n\n get isShowToggleBtn(): boolean {\n return this._isShowToggleBtn;\n }\n set isShowToggleBtn(value: boolean) {\n this._isShowToggleBtn = value;\n }\n\n onToggle(): void {\n this._isExpanded = !this._isExpanded;\n this.toggleItems.next(new EclGalleryToggleItemsEvent(this.isExpanded));\n }\n}\n","<div class=\"ecl-gallery__info\">\n <div class=\"ecl-gallery__info-total\" [id]=\"infoId\">\n <strong>{{ itemsCount }}</strong>{{ 'ecl.gallery.MEDIA-FILES-COUNT' | translate }}\n </div>\n @if(isShowToggleBtn) {\n @if(!isExpanded) {\n <button [attr.aria-describedby]=\"infoId\" eclButton variant=\"tertiary\" class=\"ecl-gallery__view-all\"\n (click)=\"onToggle()\">\n {{ 'ecl.SHOW-MORE-ITEMS' | translate }}\n </button>\n } @else {\n <button [attr.aria-describedby]=\"infoId\" eclButton variant=\"tertiary\" class=\"ecl-gallery__view-all\"\n (click)=\"onToggle()\">\n {{ 'ecl.common.COLLAPSE' | translate }}\n </button>\n }\n }\n</div>\n<hr class=\"ecl-gallery__footer-divider\" />\n<div class=\"ecl-gallery__footer-link\">\n <ng-content></ng-content>\n</div>","import { ChangeDetectorRef, Directive, ElementRef, HostBinding, Input, OnInit, afterNextRender, booleanAttribute, inject, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\nexport class EclGalleryMediaSource {\n src?: string;\n type?: string;\n}\n\nexport class EclGalleryMediaTrack {\n src?: string;\n kind?: string;\n srcLang?: string;\n label?: string;\n}\n\nexport class EclGalleryPictureSource {\n srcset? : string;\n media? : string;\n}\n\nexport class EclGalleryPictureImage {\n src? : string;\n alt? : string;\n loading?: string;\n}\n\n/**\n * Manages image/video for the thumbnail in the gallery. Adding some styling and functionality.\n */\n@Directive({\n selector: '[eclGalleryMedia], [eclGalleryImage]',\n})\nexport class EclGalleryMediaDirective extends ECLBaseDirective implements OnInit {\n /**\n * To be used when there is no thimbnail added. Instead the 'poster' attribute in the <video> element is used\n */\n readonly poster = input<string>(undefined);\n /**\n * When this is true, on mousehover the image will be zoomed.\n */\n readonly hasZoom = input(false, { transform: booleanAttribute });\n sources: EclGalleryMediaSource[] = [];\n tracks: EclGalleryMediaTrack[] = [];\n\n /**\n * Applies the ECL classes for the component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-gallery__image'),\n this.hasZoom() && this.isVideo ? 'ecl-video--zoom' : '',\n ].join(' ').trim();\n }\n @HostBinding('class.ecl-video') isVideo = false;\n private el = inject(ElementRef);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.createGalleryMediaChildren();\n });\n }\n\n ngOnInit(): void {\n this.checkIsVideo();\n }\n\n private checkIsVideo(): void {\n const selector = this.el.nativeElement.tagName;\n this.isVideo = selector === 'VIDEO';\n }\n\n private createGalleryMediaChildren(): void {\n if (!this.getHostElement().hasChildNodes) {\n return;\n }\n this.getHostElement().childNodes.forEach((el: HTMLInputElement) => {\n if (el.nodeName === 'SOURCE') {\n const mediaSource = new EclGalleryMediaSource();\n mediaSource.src = el.getAttribute('src');\n mediaSource.type = el.getAttribute('type');\n this.sources.push(mediaSource);\n } else if (el.nodeName === 'TRACK') {\n const mediaTrack = new EclGalleryMediaTrack();\n mediaTrack.src = el.getAttribute('src');\n mediaTrack.kind = el.getAttribute('kind');\n mediaTrack.srcLang = el.getAttribute('srcLang');\n mediaTrack.label = el.getAttribute('label');\n this.tracks.push(mediaTrack);\n }\n });\n }\n\n private getHostElement(): HTMLInputElement {\n return this.el.nativeElement;\n }\n}\n\n/**\n * Adds styling and functionality for gallery picture component.\n */\n@Directive({\n selector: 'picture[eclGalleryPicture]',\n})\nexport class EclGalleryPictureDirective extends ECLBaseDirective {\n // TODO: to be removed in v19. Thumbnail should be added by user.\n isThumbnail = false;\n sources: EclGalleryPictureSource[] = [];\n img: EclGalleryPictureImage ={};\n private el = inject(ElementRef);\n private cd = inject(ChangeDetectorRef);\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture'), this.isThumbnail ? 'ecl-gallery__thumbnail': 'ecl-gallery__picture'].join(' ').trim();\n }\n\n constructor() {\n super();\n afterNextRender(() => {\n this.createGalleryPictureChildren();\n });\n }\n\n private createGalleryPictureChildren(): void {\n if (!this.getHostElement().hasChildNodes()) {\n return;\n }\n this.getHostElement().childNodes.forEach((el: HTMLSourceElement | HTMLImageElement) => {\n if (el.nodeName === 'SOURCE') {\n const pictureSource = new EclGalleryPictureSource();\n pictureSource.srcset = el.getAttribute('srcset');\n pictureSource.media = el.getAttribute('media');\n this.sources.push(pictureSource);\n } else if (el.nodeName === 'IMG') {\n const imageSource = new EclGalleryPictureImage();\n imageSource.src = el.getAttribute('src');\n imageSource.alt = el.getAttribute('alt');\n imageSource.loading = el.getAttribute('loading');\n this.img.src = imageSource.src;\n this.img.alt = imageSource.alt;\n this.img.loading = imageSource.loading;\n\n }\n this.cd.detectChanges();\n });\n }\n\n private getHostElement(): HTMLElement {\n return this.el.nativeElement;\n }\n}\n\n/**\n * Applies classes for the gallery thumbnail.\n */\n@Directive({\n selector: 'picture[eclGalleryThumbnail]',\n})\nexport class EclGalleryThumbnailDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-gallery__thumbnail')].join(' ').trim();\n }\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-picture--zoom') hasZoom = false;\n}\n","import { Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnInit, Output, Renderer2, booleanAttribute, inject, input, contentChild } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport {\n EclGalleryMediaDirective,\n EclGalleryPictureDirective,\n} from './ecl-gallery-media.directive';\nimport { EclGalleryItemClickEvent } from './events';\nimport { EclGalleryItem } from './models/ecl-gallery-item.model';\n\n/**\n * Wrapper component for gallery item's elements.\n */\n@Component({\n selector: 'ecl-gallery-item',\n templateUrl: './ecl-gallery-item.component.html',\n imports: [...EUI_ECL_ICON],\n})\nexport class EclGalleryItemComponent extends ECLBaseDirective implements EclGalleryItem, OnInit {\n /**\n * Can this item be shared, i.e. show/hide share button.\n */\n readonly isShareable = input(true, { transform: booleanAttribute });\n readonly mediaType = input<'image' | 'video' | 'externalVideo'>('image');\n /**\n * The source link to the image/video, that will be shown in the original size (when open image/video in overlay or in orginal size).\n */\n @Input() src: string;\n @Input() meta: string;\n @Input() description: string;\n /**\n * Embeded audio description.\n */\n @Input() srVideoAudioDescription: string;\n @Input() icon: string;\n @Input() title: string;\n @Input() itemId: string;\n ariaLabel = input<string | null>(null);\n @Output() itemClick = new EventEmitter<EclGalleryItemClickEvent>();\n readonly mediaChild = contentChild(EclGalleryMediaDirective);\n readonly galleryPicture = contentChild(EclGalleryPictureDirective);\n\n /**\n * Binds specific classes for the item. Some depend on some of the properties of the component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-gallery__item'), this._isHidden ? 'ecl-gallery__item--hidden' : ''].join(' ').trim();\n }\n /**\n * The role attribute of the item is 'listitem', should not be changed.\n */\n @HostBinding('attr.role') role = 'listitem';\n\n private _isNoOverlay = false;\n private _isHidden = false;\n private externalVideoUrl: SafeResourceUrl;\n private domSanitizer = inject(DomSanitizer);\n private renderer = inject(Renderer2);\n private el = inject(ElementRef);\n\n ngOnInit(): void {\n if (this.isExternalVideo) {\n const iframeUrl = new URL(this.src);\n if (iframeUrl.host.includes('youtube')) {\n this.externalVideoUrl = this.domSanitizer.bypassSecurityTrustResourceUrl(iframeUrl.toString());\n } else {\n this.externalVideoUrl = this.domSanitizer.bypassSecurityTrustResourceUrl(this.src);\n }\n }\n\n if (!this.itemId) {\n this.itemId = crypto.randomUUID();\n }\n }\n\n /**\n * Set if the item should be shown in the gallery by default.\n */\n set isHidden(value: boolean) {\n this._isHidden = value;\n }\n\n @HostListener('click', ['$event'])\n onItemClick(evt: MouseEvent): void {\n this.itemClick.next(new EclGalleryItemClickEvent());\n evt.preventDefault();\n }\n\n getDownloadLink(): string {\n return this.src;\n }\n\n getUrlExternalVideo(): SafeResourceUrl {\n return this.externalVideoUrl;\n }\n\n get isNoOverlay(): boolean {\n return this._isNoOverlay;\n }\n\n set isNoOverlay(value: boolean) {\n this._isNoOverlay = value;\n }\n\n get isImage(): boolean {\n return this.mediaType() === 'image';\n }\n\n get isVideo(): boolean {\n return this.mediaType() === 'video';\n }\n\n get isExternalVideo(): boolean {\n return this.mediaType() === 'externalVideo';\n }\n\n get isOpenInFullScreenPossible(): boolean {\n return this.mediaType() !== 'externalVideo';\n }\n\n /**\n * Creates id for the title\n */\n get titleId(): string {\n return `${this.itemId}-title`;\n }\n\n onFocus(): void {\n this.renderer.selectRootElement(this.el.nativeElement.children[0], true).focus();\n }\n}\n","<a [href]=\"src\" class=\"ecl-gallery__item-link\" [class.ecl-gallery__item__link--frozen]=\"isNoOverlay\" [id]=\"itemId\"\n [attr.aria-label]=\"ariaLabel()\">\n <figure class=\"ecl-gallery__image-container\">\n <div class=\"ecl-gallery__icon-zoom-wrapper\">\n <ecl-icon class=\"ecl-gallery__icon-zoom\" iconSet=\"phosphor\" icon=\"arrows-out-simple\" size=\"s\"></ecl-icon>\n </div>\n @if(mediaType() !== 'image') {\n <div class=\"ecl-gallery__item-icon-wrapper\">\n <ecl-icon isInverted class=\"ecl-gallery__item-icon\" iconSet=\"phosphor-fill\" icon=\"play\" size=\"s\"></ecl-icon>\n </div>\n } \n <ng-content select=\"[eclGalleryPicture], [eclGalleryThumbnail], [eclGalleryMedia], [eclGalleryImage]\"></ng-content>\n <figcaption class=\"ecl-gallery__description\">\n @if(title) {\n <span class=\"ecl-gallery__title\" [id]=\"titleId\">{{title}}</span>\n }\n @if(description) {\n <span class=\"ecl-gallery__caption\">{{ description }}</span>\n }\n @if(icon) {\n <ecl-icon class=\"ecl-gallery__description-icon\" [icon]=\"icon\"></ecl-icon>\n }\n <span class=\"ecl-gallery__meta\">\n {{ meta }}\n </span>\n </figcaption>\n </figure>\n</a>","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { NgTemplateOutlet, isPlatformBrowser } from '@angular/common';\nimport { AfterContentInit, AfterViewInit, Component, DOCUMENT, ElementRef, HostBinding, HostListener, Input, OnDestroy, PLATFORM_ID, booleanAttribute, inject, numberAttribute, output, input, contentChildren, contentChild, viewChild } from '@angular/core';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { Subject, delay, fromEvent } from 'rxjs';\nimport { auditTime, takeUntil } from 'rxjs/operators';\nimport { EclGalleryFooterComponent } from './ecl-gallery-footer.component';\nimport { EclGalleryItemComponent } from './ecl-gallery-item.component';\nimport { EclGalleryFullScreenEvent, EclGalleryHideEvent, EclGalleryItemEvent, EclGalleryShareEvent, EclGalleryShowEvent } from './events';\n\n/**\n * This component represents a collection of images or videos and allows a user to browse them.\n * Adds functionality and styling, according to the ECL standards.\n */\n@Component({\n selector: 'ecl-gallery',\n templateUrl: './ecl-gallery.component.html',\n imports: [TranslatePipe, NgTemplateOutlet, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, ...EUI_ECL_LINK],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclGalleryComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy, AfterViewInit {\n readonly isOpenInFullScreenPossible = input(true, { transform: booleanAttribute });\n /**\n * If the items in the gallery can be shared. I.e. if the link for sharing will be present for each item.\n */\n readonly isShareable = input(true, { transform: booleanAttribute });\n /**\n * If set to true, the gallery will have 100 view width.\n */\n readonly isFullWidth = input(false, { transform: booleanAttribute });\n /**\n * If set to true, no overlay will be displayed when user clicks on an image.\n */\n readonly isNoOverlay = input(false, { transform: booleanAttribute });\n /**\n * If set to false, no title will be displayed when user hover on a gallery item.\n */\n readonly isShowTitleOnHover = input(true, { transform: booleanAttribute });\n /**\n * Number of gallery items to be displayed by default. The rest can be displayed with the 'View all' button.\n */\n @Input({ transform: numberAttribute }) maxVisibleItems: number;\n /**\n * If set to true, a specific class will be applied, so the gallery thumbnails are displayed as a grid, all with same size.\n */\n readonly isGrid = input(false, { transform: booleanAttribute });\n\n readonly columns = input<2 | 3 | 4 | number, unknown>(3, { transform: numberAttribute });\n /**\n * This property can be used with 'isGrid' property set to true. By default gridTemplate is 0 and all the thimbnails have same size.\n * If another template value is set, some additional formatting is applied and the thumbnails will have different sizes.\n */\n readonly gridTemplate = input<'0' | '1' | '2' | '3' | '4' | string>('0');\n /**\n * The ratio that will be applied to the gallery thumbnails.\n */\n readonly ratio = input<'3-1' | '3-2' | string>('3-2');\n\n /**\n * Emits event when user clicks on an item to expand it.\n */\n readonly show = output<EclGalleryShowEvent>();\n /**\n * Emits event when an expanded item is closed.\n */\n readonly hide = output<EclGalleryHideEvent>();\n /**\n * Emits event when an item is opened in full screen.\n */\n readonly openFullScreen = output<EclGalleryFullScreenEvent>();\n /**\n * Emits event when an item is shared.\n */\n readonly share = output<EclGalleryShareEvent>();\n /**\n * Emits event when user is browsing items, opened in an overlay.\n */\n readonly itemSwitch = output<EclGalleryItemEvent>();\n readonly galleryItems = contentChildren(EclGalleryItemComponent);\n readonly galleryFooter = contentChild(EclGalleryFooterComponent);\n readonly overlayChild = viewChild<ElementRef>('overlay');\n readonly headerChild = viewChild<ElementRef>('header');\n readonly footerChild = viewChild<ElementRef>('footer');\n\n /**\n * Applies specific clases to the component, related to the component properties values.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-gallery'),\n this.isFullWidth() ? 'ecl-gallery--full-width' : '',\n this.isGrid() ? 'ecl-gallery--grid' : '',\n this.isGrid() && this.gridTemplate() === '0' ? `ecl-gallery--col-${this.columns()}` : '',\n this.isGrid() ? `ecl-gallery--template-${this.gridTemplate()}`: '',\n this.isGrid() ? `ecl-gallery--ratio-${this.ratio()}`: '',\n !this.isShowTitleOnHover() ? 'ecl-gallery--no-hover' : '',\n ].join(' ').trim();\n }\n /**\n * The default role of the component is 'region' and should not be changed.\n */\n @HostBinding('attr.role') role = 'region';\n\n isDialogVisible = false;\n isMobile = false;\n itemsCount: number;\n itemIndex: number;\n item: EclGalleryItemComponent;\n private iframeWidth: number;\n private iframeHeight: number;\n private BREAKPOINT_CHANGES_TIMEOUT = 500;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private visibleItems: number;\n private MAX_VISIBLE_ITEMS_MOBILE = 3;\n private RESOLUTION_16_9_PROPOTION = 16 / 9;\n private RESOLUTION_4_3_PROPOTION = 4 / 3;\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private platformId = inject(PLATFORM_ID);\n private readonly document = inject<Document>(DOCUMENT);\n private readonly window = this.document.defaultView; // Window | null\n\n ngAfterViewInit(): void {\n // Manages the initial display of the gallery, the footer and the visible/hidden items.\n if (isPlatformBrowser(this.platformId) && this.window) {\n this.observeBreakpointChanges();\n fromEvent(this.window, 'resize').pipe(\n auditTime(50),\n takeUntil(this.destroy$)).subscribe(() => {\n this.setIframeDimensions();\n });\n }\n }\n\n ngAfterContentInit(): void {\n this.itemsCount = this.galleryItems().length;\n this.visibleItems = this.maxVisibleItems ? this.maxVisibleItems : this.itemsCount;\n const galleryFooter = this.galleryFooter();\n if (galleryFooter) {\n galleryFooter.itemsCount = this.itemsCount;\n galleryFooter.isShowToggleBtn = this.hasHiddenGaleryItems();\n // Subscribe to 'toggleItems' event from gallery footer, to show or collapse items.\n galleryFooter.toggleItems.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n if (evt.expandAll) {\n this.showAllItems();\n } else {\n this.collapseItems();\n }\n });\n }\n\n if (!this.isNoOverlay()) {\n // For each item, subscribe to 'itemClick' event.\n this.galleryItems().forEach((item) => {\n item.itemClick.pipe(takeUntil(this.destroy$)).subscribe((_) => {\n this.isDialogVisible = true;\n this.item = item;\n this.itemIndex = this.findItemIndex(Array.from(this.galleryItems()), item);\n this.show.emit(new EclGalleryShowEvent());\n if (isPlatformBrowser(this.platformId)) {\n setTimeout(() => this.setIframeDimensions());\n }\n });\n });\n } else {\n this.galleryItems().forEach((item) => (item.isNoOverlay = true));\n }\n\n if (this.hasHiddenGaleryItems()) {\n this.collapseItems();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Emit 'itemSwitch' event, when switching to the previous item. Event contains the new current item.\n * @param evt\n */\n onPrevious(evt: MouseEvent): void {\n this.item = this.findPreviousItem(Array.from(this.galleryItems()), this.item);\n\n this.itemIndex = this.findItemIndex(Array.from(this.galleryItems()), this.item);\n\n this.itemSwitch.emit(new EclGalleryItemEvent(this.item));\n }\n\n /**\n * Emit 'itemSwitch' event, when switching to the next item. Event contains the new current item.\n * @param evt\n */\n onNext(evt: MouseEvent): void {\n this.item = this.findNextItem(Array.from(this.galleryItems()), this.item);\n this.itemIndex = this.findItemIndex(Array.from(this.galleryItems()), this.item);\n\n this.itemSwitch.emit(new EclGalleryItemEvent(this.item));\n }\n\n /**\n * Emit 'hide' event, when closing item dialog.\n * @param evt\n */\n onClose(evt: MouseEvent): void {\n this.item = null;\n this.itemIndex = -1;\n this.isDialogVisible = false;\n this.hide.emit(new EclGalleryHideEvent());\n }\n\n /**\n * On pressing 'esc' key - close the item dialog and emit 'hide' event.\n * @param event\n */\n @HostListener('document:keydown.escape')\n onEscapeKeydownHandler(): void {\n this.isDialogVisible = false;\n this.hide.emit(new EclGalleryHideEvent());\n }\n\n onFullScreenOpen(evt: MouseEvent): void {\n this.openFullScreen.emit(new EclGalleryFullScreenEvent(this.item));\n }\n\n onShare(evt: MouseEvent): void {\n this.share.emit(new EclGalleryShareEvent(this.item));\n evt.preventDefault();\n }\n\n canBeOpenInFullScreen(): boolean {\n return this.isOpenInFullScreenPossible() && this.item?.isOpenInFullScreenPossible;\n }\n\n canBeShared(): boolean {\n return this.isShareable() && this.item?.isShareable();\n }\n\n getIframeWidth(): number {\n return this.iframeWidth;\n }\n\n getIframeHeight(): number {\n return this.iframeHeight;\n }\n\n setIframeDimensions(): void {\n const { width, height } = this.getCalculatedIframeDimensions();\n this.iframeWidth = width;\n this.iframeHeight = height;\n }\n\n private getCalculatedIframeDimensions(): { width: number; height: number } {\n let width = window.innerWidth;\n let height =\n this.overlayChild().nativeElement.clientHeight -\n this.headerChild().nativeElement.clientHeight -\n this.footerChild().nativeElement.clientHeight;\n if (width > height) {\n const scaledHeight = height * this.RESOLUTION_16_9_PROPOTION;\n if (scaledHeight > width) {\n width = width * 0.95;\n } else {\n width = scaledHeight;\n }\n } else {\n const scaledWith = width * this.RESOLUTION_4_3_PROPOTION;\n if (scaledWith > height) {\n height = height * 0.95;\n } else {\n height = scaledWith;\n }\n }\n return {\n width,\n height,\n };\n }\n\n private findItemIndex(items: EclGalleryItemComponent[], item: EclGalleryItemComponent): number {\n return items.findIndex((it) => it === item) + 1;\n }\n\n private findPreviousItem(items: EclGalleryItemComponent[], item: EclGalleryItemComponent): EclGalleryItemComponent {\n const index = this.findPreviousItemIndex(items, item);\n return items[index];\n }\n\n private findNextItem(items: EclGalleryItemComponent[], item: EclGalleryItemComponent): EclGalleryItemComponent {\n const index = this.findNextItemIndex(items, item);\n return items[index];\n }\n\n private findPreviousItemIndex(items: EclGalleryItemComponent[], item: EclGalleryItemComponent): number {\n const currentIndex = items.findIndex((it) => it === item);\n return currentIndex === 0 ? items.length - 1 : currentIndex - 1;\n }\n\n private findNextItemIndex(items: EclGalleryItemComponent[], item: EclGalleryItemComponent): number {\n const currentIndex = items.findIndex((it) => it === item);\n return currentIndex >= items.length - 1 ? 0 : currentIndex + 1;\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([Breakpoints.Handset, Breakpoints.Tablet])\n .pipe(takeUntil(this.destroy$), delay(this.BREAKPOINT_CHANGES_TIMEOUT))\n .subscribe((result) => {\n this.isMobile = result.matches;\n if (this.isMobile) {\n this.manageItemsMobile();\n } else {\n this.manageItemsDesktop();\n }\n });\n }\n\n private manageItemsMobile(): void {\n this.maxVisibleItems = this.MAX_VISIBLE_ITEMS_MOBILE;\n this.collapseItems();\n const galleryFooter = this.galleryFooter();\n if (galleryFooter) {\n galleryFooter.isShowToggleBtn = this.hasHiddenGaleryItems();\n }\n }\n\n private manageItemsDesktop(): void {\n this.maxVisibleItems = this.visibleItems;\n this.getVisibleItems().forEach((elem) => this.showGaleryItem(elem));\n this.collapseItems();\n const galleryFooter = this.galleryFooter();\n if (galleryFooter) {\n galleryFooter.isShowToggleBtn = this.hasHiddenGaleryItems();\n }\n }\n\n private hasHiddenGaleryItems(): boolean {\n if (this.maxVisibleItems && this.itemsCount > 0 && this.maxVisibleItems < this.itemsCount) {\n return true;\n } else {\n return false;\n }\n }\n\n private collapseItems(): void {\n this.getHiddenItems().forEach((elem) => this.hideGaleryItem(elem));\n }\n\n private showAllItems(): void {\n const hiddenItems = this.getHiddenItems();\n hiddenItems.forEach((elem) => this.showGaleryItem(elem));\n setTimeout(() => hiddenItems[0].onFocus());\n }\n\n private hideGaleryItem(item: EclGalleryItemComponent): void {\n item.isHidden = true;\n }\n\n private showGaleryItem(item: EclGalleryItemComponent): void {\n item.isHidden = false;\n }\n\n private getHiddenItems(): EclGalleryItemComponent[] {\n return this.galleryItems().filter((item, cnt) => cnt >= this.maxVisibleItems);\n }\n private getVisibleItems(): EclGalleryItemComponent[] {\n return this.galleryItems().filter((item, cnt) => cnt < this.maxVisibleItems);\n }\n}\n","<ul class=\"ecl-gallery__list\">\n <ng-content></ng-content>\n</ul>\n\n<ng-content select=\"ecl-gallery-footer\"></ng-content>\n\n<dialog #overlay [attr.open]=\"isDialogVisible || null\" class=\"ecl-gallery__overlay\"\n [attr.aria-label]=\"'ecl.gallery.FULL-SIZE-DISPLAY' | translate\">\n <header #header class=\"ecl-gallery__close\">\n <button (click)=\"onClose($event)\" eclButton class=\"ecl-gallery__close-button\" isIconOnly variant=\"tertiary\" eclStyle=\"inverted\">\n <span eclButtonLabel>\n {{ 'ecl.common.CLOSE' | translate }}\n </span>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n </button>\n </header>\n <section class=\"ecl-gallery__slider\">\n <div class=\"ecl-gallery__slider-media-container\">\n @if(item?.isExternalVideo) {\n <div class=\"ecl-gallery__slider-embed\">\n @if (item?.srVideoAudioDescription) {\n <div class=\"ecl-gallery__slider-embed-audio\">{{item?.srVideoAudioDescription}}</div>\n }\n <iframe [src]=\"item?.getUrlExternalVideo()\" [style.width.px]=\"getIframeWidth()\"\n [style.height.px]=\"getIframeHeight()\" [attr.title]=\"item.title + ' - Video player'\" frameborder=\"0\">\n </iframe>\n </div>\n }\n @if(item?.isImage) {\n <picture class=\"ecl-picture ecl-gallery__picture ecl-gallery__slider-image\">\n @for(el of item.galleryPicture()?.sources; track el.srcset) {\n <source [attr.srcset]=\"el.srcset\" [attr.media]=\" el.media\">\n }\n <img [attr.alt]=\"item?.galleryPicture()?.img.alt || null\"\n [src]=\"item?.galleryPicture()?.img.src\"\n [attr.loading]=\"item?.galleryPicture()?.img.loading || null\" />\n </picture>\n }\n @if(item?.isVideo) {\n <video controls=\"controls\" class=\"ecl-gallery__slider-video\" [attr.aria-label]=\"item.title + ' - Video player'\"\n [attr.poster]=\"item.mediaChild()?.poster()\" playsinline>\n @for (el of item.mediaChild()?.sources; track el.src) {\n <source [attr.src]=\"el.src\" [attr.type]=\"el.type\" />\n }\n @for (elem of item.mediaChild()?.tracks; track elem.src) {\n <track [attr.src]=\"elem.src\" [attr.kind]=\"elem.kind\" [attr.srcLang]=\"elem.srcLang\"\n [attr.label]=\"elem.label\" />\n }\n </video>\n }\n </div>\n </section>\n <footer #footer class=\"ecl-gallery__detail\">\n <div class=\"ecl-container\">\n <div class=\"ecl-gallery__detail-container\">\n <div class=\"ecl-gallery__pager\">\n <div class=\"ecl-gallery__detail-counter\">\n <span>{{ itemIndex }}</span> {{ 'ecl.common.OF' | translate }} <span>{{ itemsCount }}</span>\n </div>\n <div class=\"ecl-gallery__controls\">\n <button eclButton class=\"ecl-gallery__slider-previous\" variant=\"tertiary\" isIconOnly\n (click)=\"onPrevious($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>\n {{ 'ecl.common.PREVIOUS' | translate }}\n </span>\n </button>\n <button eclButton class=\"ecl-gallery__slider-next\" variant=\"tertiary\" isIconOnly\n (click)=\"onNext($event)\">\n <span eclButtonLabel>\n {{ 'ecl.common.NEXT' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-90\"></ecl-icon>\n </button>\n </div>\n </div>\n <div class=\"ecl-gallery__detail-actions\">\n <ng-container *ngTemplateOutlet=\"links\"></ng-container>\n </div>\n </div>\n <div class=\"ecl-gallery__detail-description\">\n @if(isMobile) {\n <div class=\"ecl-gallery__detail-actions-mobile\">\n <ng-container *ngTemplateOutlet=\"links\"></ng-container>\n </div>\n }\n @if(item?.title) {\n <span class=\"ecl-gallery__title\" [id]=\"item?.itemId\">{{ item?.title }}</span>\n }\n @if(item?.description) {\n <span class=\"ecl-gallery__caption\">{{ item?.description }}</span>\n }\n @if(item?.meta) {\n <span class=\"ecl-gallery__meta\">{{ item?.meta }}</span>\n }\n </div>\n </div>\n </footer>\n</dialog>\n\n<ng-template #links>\n @if(canBeOpenInFullScreen()) {\n <a eclLink [attr.aria-describedby]=\"item?.titleId\" variant=\"standalone\"\n class=\"ecl-gallery__download\" [href]=\"item?.getDownloadLink()\" target=\"_blank\"\n (click)=\"onFullScreenOpen($event)\" isInverted>\n <span eclLinkLabel>{{ 'ecl.gallery.VIEW-ORIGINAL' | translate }}</span>\n <ecl-icon icon=\"fullscreen\" size=\"fluid\" focusable=\"false\"></ecl-icon>\n </a>\n }\n @if(canBeShared()) {\n <a [attr.aria-describedby]=\"item?.titleId\" eclLink variant=\"standalone\" isInverted\n class=\"ecl-gallery__share\" href=\"\" (click)=\"onShare($event)\">\n <span eclLinkLabel>{{ 'ecl.common.SHARE' | translate }}</span>\n <ecl-icon icon=\"share\" size=\"fluid\" focusable=\"false\"></ecl-icon>\n </a>\n }\n</ng-template>","import { EclGalleryFooterComponent } from './ecl-gallery-footer.component';\nimport { EclGalleryItemComponent } from './ecl-gallery-item.component';\nimport {\n EclGalleryMediaDirective,\n EclGalleryPictureDirective,\n EclGalleryThumbnailDirective,\n} from './ecl-gallery-media.directive';\nimport { EclGalleryComponent } from './ecl-gallery.component';\n\nexport * from './ecl-gallery.component';\nexport * from './ecl-gallery-item.component';\nexport * from './ecl-gallery-footer.component';\nexport * from './ecl-gallery-media.directive';\nexport * from './events/index';\nexport * from './models/ecl-gallery-item.model';\n\nexport const EUI_ECL_GALLERY = [\n EclGalleryComponent,\n EclGalleryFooterComponent,\n EclGalleryItemComponent,\n EclGalleryMediaDirective,\n EclGalleryPictureDirective,\n EclGalleryThumbnailDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":";;;;;;;;;;;;;;;;AAGM,MAAO,mBAAoB,SAAQ,YAAY,CAAA;AAAG;AAClD,MAAO,mBAAoB,SAAQ,YAAY,CAAA;AAAG;AAClD,MAAO,yBAA0B,SAAQ,YAAY,CAAA;AAC1D,IAAA,WAAA,CAAmB,WAA2B,EAAA;AAC7C,QAAA,KAAK,EAAE;QADW,IAAA,CAAA,WAAW,GAAX,WAAW;IAE9B;AACA;AACK,MAAO,oBAAqB,SAAQ,YAAY,CAAA;AACrD,IAAA,WAAA,CAAmB,WAA2B,EAAA;AAC7C,QAAA,KAAK,EAAE;QADW,IAAA,CAAA,WAAW,GAAX,WAAW;IAE9B;AACA;;ACXK,MAAO,mBAAoB,SAAQ,YAAY,CAAA;AACpD,IAAA,WAAA,CAAmB,WAA2B,EAAA;AAC7C,QAAA,KAAK,EAAE;QADW,IAAA,CAAA,WAAW,GAAX,WAAW;IAE9B;AACA;;ACLK,MAAO,wBAAyB,SAAQ,YAAY,CAAA;AAAG;;ACAvD,MAAO,0BAA2B,SAAQ,YAAY,CAAA;AAC3D,IAAA,WAAA,CAAmB,SAAkB,EAAA;AACpC,QAAA,KAAK,EAAE;QADW,IAAA,CAAA,SAAS,GAAT,SAAS;IAE5B;AACA;;ACDD;;AAEG;MAMU,yBAAyB,CAAA;AALtC,IAAA,WAAA,GAAA;QAM8C,IAAA,CAAA,QAAQ,GAAG,IAAI;AAEzD;;AAEG;AACO,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAA8B;QAG9D,IAAA,CAAA,WAAW,GAAG,KAAK;QACnB,IAAA,CAAA,gBAAgB,GAAG,KAAK;AAgCnC,IAAA;IA9BG,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACd,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE;QACrC;IACJ;AACA,IAAA,IAAI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW;IAC3B;IACA,IAAI,UAAU,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;IAC5B;AAEA,IAAA,IAAI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW;IAC3B;IACA,IAAI,UAAU,CAAC,KAAa,EAAA;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;IAC5B;AAEA,IAAA,IAAI,eAAe,GAAA;QACf,OAAO,IAAI,CAAC,gBAAgB;IAChC;IACA,IAAI,eAAe,CAAC,KAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;IACjC;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW;AACpC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1E;8GAzCS,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,2BAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECbtC,g0BAqBM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,UAAA,EAAA,MAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EDVQ,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAEd,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,WAErB,CAAC,aAAa,EAAE,GAAG,cAAc,CAAC,EAAA,QAAA,EAAA,g0BAAA,EAAA;;sBAG1C,WAAW;uBAAC,2BAA2B;;sBACvC;;sBAIA;;;MEhBQ,qBAAqB,CAAA;AAGjC;MAEY,oBAAoB,CAAA;AAKhC;MAEY,uBAAuB,CAAA;AAGnC;MAEY,sBAAsB,CAAA;AAIlC;AAED;;AAEG;AAIG,MAAO,wBAAyB,SAAQ,gBAAgB,CAAA;AAY1D;;AAEG;AACH,IAAA,IACI,UAAU,GAAA;QACV,OAAO;AACH,YAAA,KAAK,CAAC,aAAa,CAAC,oBAAoB,CAAC;AACzC,YAAA,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,GAAG,iBAAiB,GAAG,EAAE;AAC1D,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACtB;AAIA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AAzBX;;AAEG;QACM,IAAA,CAAA,MAAM,GAAG,KAAK,CAAS,SAAS;mFAAC;AAC1C;;AAEG;QACM,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QAChE,IAAA,CAAA,OAAO,GAA4B,EAAE;QACrC,IAAA,CAAA,MAAM,GAA2B,EAAE;QAYH,IAAA,CAAA,OAAO,GAAG,KAAK;AACvC,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;QAI3B,eAAe,CAAC,MAAK;YACjB,IAAI,CAAC,0BAA0B,EAAE;AACrC,QAAA,CAAC,CAAC;IACN;IAEA,QAAQ,GAAA;QACJ,IAAI,CAAC,YAAY,EAAE;IACvB;IAEQ,YAAY,GAAA;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO;AAC9C,QAAA,IAAI,CAAC,OAAO,GAAG,QAAQ,KAAK,OAAO;IACvC;IAEQ,0BAA0B,GAAA;QAC9B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,EAAE;YACtC;QACJ;QACA,IAAI,CAAC,cAAc,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAoB,KAAI;AAC9D,YAAA,IAAI,EAAE,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC1B,gBAAA,MAAM,WAAW,GAAG,IAAI,qBAAqB,EAAE;gBAC/C,WAAW,CAAC,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;gBACxC,WAAW,CAAC,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC;AAC1C,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;YAClC;AAAO,iBAAA,IAAI,EAAE,CAAC,QAAQ,KAAK,OAAO,EAAE;AAChC,gBAAA,MAAM,UAAU,GAAG,IAAI,oBAAoB,EAAE;gBAC7C,UAAU,CAAC,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;gBACvC,UAAU,CAAC,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC;gBACzC,UAAU,CAAC,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC;gBAC/C,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC;AAC3C,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAChC;AACJ,QAAA,CAAC,CAAC;IACN;IAEQ,cAAc,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa;IAChC;8GAhES,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sCAAsC;AACnD,iBAAA;;sBAgBI,WAAW;uBAAC,OAAO;;sBAOnB,WAAW;uBAAC,iBAAiB;;AA6ClC;;AAEG;AAIG,MAAO,0BAA2B,SAAQ,gBAAgB,CAAA;AAQ5D,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,wBAAwB,GAAE,sBAAsB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACrI;AAEA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;;QAZX,IAAA,CAAA,WAAW,GAAG,KAAK;QACnB,IAAA,CAAA,OAAO,GAA8B,EAAE;QACvC,IAAA,CAAA,GAAG,GAA0B,EAAE;AACvB,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AACvB,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;QASlC,eAAe,CAAC,MAAK;YACjB,IAAI,CAAC,4BAA4B,EAAE;AACvC,QAAA,CAAC,CAAC;IACN;IAEQ,4BAA4B,GAAA;QAChC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,EAAE,EAAE;YACxC;QACJ;QACA,IAAI,CAAC,cAAc,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAwC,KAAI;AAClF,YAAA,IAAI,EAAE,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC1B,gBAAA,MAAM,aAAa,GAAG,IAAI,uBAAuB,EAAE;gBACnD,aAAa,CAAC,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC;gBAChD,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC;AAC9C,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;YACpC;AAAO,iBAAA,IAAI,EAAE,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC9B,gBAAA,MAAM,WAAW,GAAG,IAAI,sBAAsB,EAAE;gBAChD,WAAW,CAAC,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;gBACxC,WAAW,CAAC,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;gBACxC,WAAW,CAAC,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC;gBAChD,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG;gBAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG;gBAC9B,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO;YAE1C;AACA,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AAC3B,QAAA,CAAC,CAAC;IACN;IAEQ,cAAc,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa;IAChC;8GA9CS,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,4BAA4B;AACzC,iBAAA;;sBASI,WAAW;uBAAC,OAAO;;AAyCxB;;AAEG;AAIG,MAAO,4BAA6B,SAAQ,gBAAgB,CAAA;AAHlE,IAAA,WAAA,GAAA;;QAQoF,IAAA,CAAA,OAAO,GAAG,KAAK;AAClG,IAAA;AALG,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,oCAAoC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACvF;8GAJS,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,0GAKjB,gBAAgB,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,cAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAL3B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,8BAA8B;AAC3C,iBAAA;;sBAEI,WAAW;uBAAC,OAAO;;sBAInB,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAAG,WAAW;uBAAC,yBAAyB;;;AC1JlF;;AAEG;AAMG,MAAO,uBAAwB,SAAQ,gBAAgB,CAAA;AAL7D,IAAA,WAAA,GAAA;;AAMI;;AAEG;QACM,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,IAAI,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QAC1D,IAAA,CAAA,SAAS,GAAG,KAAK,CAAsC,OAAO;sFAAC;QAcxE,IAAA,CAAA,SAAS,GAAG,KAAK,CAAgB,IAAI;sFAAC;AAC5B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAA4B;QACzD,IAAA,CAAA,UAAU,GAAG,YAAY,CAAC,wBAAwB;uFAAC;QACnD,IAAA,CAAA,cAAc,GAAG,YAAY,CAAC,0BAA0B;2FAAC;AASlE;;AAEG;QACuB,IAAA,CAAA,IAAI,GAAG,UAAU;QAEnC,IAAA,CAAA,YAAY,GAAG,KAAK;QACpB,IAAA,CAAA,SAAS,GAAG,KAAK;AAEjB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACnC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAC5B,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AAwElC,IAAA;AAzFG;;AAEG;AACH,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAAC,SAAS,GAAG,2BAA2B,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACzH;IAaA,QAAQ,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;YACnC,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AACpC,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,8BAA8B,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YAClG;iBAAO;AACH,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,8BAA8B,CAAC,IAAI,CAAC,GAAG,CAAC;YACtF;QACJ;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACd,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE;QACrC;IACJ;AAEA;;AAEG;IACH,IAAI,QAAQ,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;IAC1B;AAGA,IAAA,WAAW,CAAC,GAAe,EAAA;QACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,wBAAwB,EAAE,CAAC;QACnD,GAAG,CAAC,cAAc,EAAE;IACxB;IAEA,eAAe,GAAA;QACX,OAAO,IAAI,CAAC,GAAG;IACnB;IAEA,mBAAmB,GAAA;QACf,OAAO,IAAI,CAAC,gBAAgB;IAChC;AAEA,IAAA,IAAI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,IAAI,WAAW,CAAC,KAAc,EAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;IAC7B;AAEA,IAAA,IAAI,OAAO,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,KAAK,OAAO;IACvC;AAEA,IAAA,IAAI,OAAO,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,KAAK,OAAO;IACvC;AAEA,IAAA,IAAI,eAAe,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,KAAK,eAAe;IAC/C;AAEA,IAAA,IAAI,0BAA0B,GAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,KAAK,eAAe;IAC/C;AAEA;;AAEG;AACH,IAAA,IAAI,OAAO,GAAA;AACP,QAAA,OAAO,CAAA,EAAG,IAAI,CAAC,MAAM,QAAQ;IACjC;IAEA,OAAO,GAAA;QACH,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE;IACpF;8GAhHS,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAqBG,wBAAwB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACpB,0BAA0B,uFCzCrE,m2CA2BI,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDRS,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAAA,OAAA,EAEnB,CAAC,GAAG,YAAY,CAAC,EAAA,QAAA,EAAA,m2CAAA,EAAA;;sBAWzB;;sBACA;;sBACA;;sBAIA;;sBACA;;sBACA;;sBACA;;sBAEA;AACkC,aAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,wBAAwB,gGACpB,0BAA0B,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA;sBAKhE,WAAW;uBAAC,OAAO;;sBAOnB,WAAW;uBAAC,WAAW;;sBA+BvB,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;AEtErC;;;AAGG;AAaG,MAAO,mBAAoB,SAAQ,gBAAgB,CAAA;AAZzD,IAAA,WAAA,GAAA;;QAaa,IAAA,CAAA,0BAA0B,GAAG,KAAK,CAAC,IAAI,kGAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAClF;;AAEG;QACM,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,IAAI,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACnE;;AAEG;QACM,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACpE;;AAEG;QACM,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACpE;;AAEG;QACM,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAAC,IAAI,0FAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAK1E;;AAEG;QACM,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,KAAK,8EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QAEtD,IAAA,CAAA,OAAO,GAAG,KAAK,CAA8B,CAAC,+EAAI,SAAS,EAAE,eAAe,EAAA,CAAG;AACxF;;;AAGG;QACM,IAAA,CAAA,YAAY,GAAG,KAAK,CAAuC,GAAG;yFAAC;AACxE;;AAEG;QACM,IAAA,CAAA,KAAK,GAAG,KAAK,CAAyB,KAAK;kFAAC;AAErD;;AAEG;QACM,IAAA,CAAA,IAAI,GAAG,MAAM,EAAuB;AAC7C;;AAEG;QACM,IAAA,CAAA,IAAI,GAAG,MAAM,EAAuB;AAC7C;;AAEG;QACM,IAAA,CAAA,cAAc,GAAG,MAAM,EAA6B;AAC7D;;AAEG;QACM,IAAA,CAAA,KAAK,GAAG,MAAM,EAAwB;AAC/C;;AAEG;QACM,IAAA,CAAA,UAAU,GAAG,MAAM,EAAuB;QAC1C,IAAA,CAAA,YAAY,GAAG,eAAe,CAAC,uBAAuB;yFAAC;QACvD,IAAA,CAAA,aAAa,GAAG,YAAY,CAAC,yBAAyB;0FAAC;QACvD,IAAA,CAAA,YAAY,GAAG,SAAS,CAAa,SAAS;yFAAC;QAC/C,IAAA,CAAA,WAAW,GAAG,SAAS,CAAa,QAAQ;wFAAC;QAC7C,IAAA,CAAA,WAAW,GAAG,SAAS,CAAa,QAAQ;wFAAC;AAgBtD;;AAEG;QACuB,IAAA,CAAA,IAAI,GAAG,QAAQ;QAEzC,IAAA,CAAA,eAAe,GAAG,KAAK;QACvB,IAAA,CAAA,QAAQ,GAAG,KAAK;QAMR,IAAA,CAAA,0BAA0B,GAAG,GAAG;AAChC,QAAA,IAAA,CAAA,QAAQ,GAAqB,IAAI,OAAO,EAAW;QAEnD,IAAA,CAAA,wBAAwB,GAAG,CAAC;AAC5B,QAAA,IAAA,CAAA,yBAAyB,GAAG,EAAE,GAAG,CAAC;AAClC,QAAA,IAAA,CAAA,wBAAwB,GAAG,CAAC,GAAG,CAAC;AAChC,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAClD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AACvB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAW,QAAQ,CAAC;QACrC,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;AAyPvD,IAAA;AA5RG;;AAEG;AACH,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC;YACtC,IAAI,CAAC,WAAW,EAAE,GAAG,yBAAyB,GAAG,EAAE;YACnD,IAAI,CAAC,MAAM,EAAE,GAAG,mBAAmB,GAAG,EAAE;YACxC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,GAAG,GAAG,CAAA,iBAAA,EAAoB,IAAI,CAAC,OAAO,EAAE,CAAA,CAAE,GAAG,EAAE;AACxF,YAAA,IAAI,CAAC,MAAM,EAAE,GAAG,CAAA,sBAAA,EAAyB,IAAI,CAAC,YAAY,EAAE,CAAA,CAAE,GAAE,EAAE;AAClE,YAAA,IAAI,CAAC,MAAM,EAAE,GAAG,CAAA,mBAAA,EAAsB,IAAI,CAAC,KAAK,EAAE,CAAA,CAAE,GAAE,EAAE;YACxD,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,uBAAuB,GAAG,EAAE;AAC5D,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACtB;IAwBA,eAAe,GAAA;;QAEX,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;YACnD,IAAI,CAAC,wBAAwB,EAAE;YAC/B,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CACjC,SAAS,CAAC,EAAE,CAAC,EACb,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;gBACzC,IAAI,CAAC,mBAAmB,EAAE;AAC9B,YAAA,CAAC,CAAC;QACN;IACJ;IAEA,kBAAkB,GAAA;QACd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM;AAC5C,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU;AACjF,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;QAC1C,IAAI,aAAa,EAAE;AACf,YAAA,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;AAC1C,YAAA,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC,oBAAoB,EAAE;;AAE3D,YAAA,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;AACvE,gBAAA,IAAI,GAAG,CAAC,SAAS,EAAE;oBACf,IAAI,CAAC,YAAY,EAAE;gBACvB;qBAAO;oBACH,IAAI,CAAC,aAAa,EAAE;gBACxB;AACJ,YAAA,CAAC,CAAC;QACN;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;;YAErB,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACjC,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAC1D,oBAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC3B,oBAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,oBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC;oBAC1E,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB,EAAE,CAAC;AACzC,oBAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;wBACpC,UAAU,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAChD;AACJ,gBAAA,CAAC,CAAC;AACN,YAAA,CAAC,CAAC;QACN;aAAO;AACH,YAAA,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;QACpE;AAEA,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;YAC7B,IAAI,CAAC,aAAa,EAAE;QACxB;IACJ;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;IAC/B;AAEA;;;AAGG;AACH,IAAA,UAAU,CAAC,GAAe,EAAA;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;QAE7E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;AAE/E,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D;AAEA;;;AAGG;AACH,IAAA,MAAM,CAAC,GAAe,EAAA;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;QACzE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;AAE/E,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D;AAEA;;;AAGG;AACH,IAAA,OAAO,CAAC,GAAe,EAAA;AACnB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACnB,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;QAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB,EAAE,CAAC;IAC7C;AAEA;;;AAGG;IAEH,sBAAsB,GAAA;AAClB,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;QAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB,EAAE,CAAC;IAC7C;AAEA,IAAA,gBAAgB,CAAC,GAAe,EAAA;AAC5B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtE;AAEA,IAAA,OAAO,CAAC,GAAe,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,GAAG,CAAC,cAAc,EAAE;IACxB;IAEA,qBAAqB,GAAA;QACjB,OAAO,IAAI,CAAC,0BAA0B,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,0BAA0B;IACrF;IAEA,WAAW,GAAA;QACP,OAAO,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE;IACzD;IAEA,cAAc,GAAA;QACV,OAAO,IAAI,CAAC,WAAW;IAC3B;IAEA,eAAe,GAAA;QACX,OAAO,IAAI,CAAC,YAAY;IAC5B;IAEA,mBAAmB,GAAA;QACf,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,6BAA6B,EAAE;AAC9D,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM;IAC9B;IAEQ,6BAA6B,GAAA;AACjC,QAAA,IAAI,KAAK,GAAG,MAAM,CAAC,UAAU;QAC7B,IAAI,MAAM,GACN,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,YAAY;AAC9C,YAAA,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,YAAY;AAC7C,YAAA,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,YAAY;AACjD,QAAA,IAAI,KAAK,GAAG,MAAM,EAAE;AAChB,YAAA,MAAM,YAAY,GAAG,MAAM,GAAG,IAAI,CAAC,yBAAyB;AAC5D,YAAA,IAAI,YAAY,GAAG,KAAK,EAAE;AACtB,gBAAA,KAAK,GAAG,KAAK,GAAG,IAAI;YACxB;iBAAO;gBACH,KAAK,GAAG,YAAY;YACxB;QACJ;aAAO;AACH,YAAA,MAAM,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,wBAAwB;AACxD,YAAA,IAAI,UAAU,GAAG,MAAM,EAAE;AACrB,gBAAA,MAAM,GAAG,MAAM,GAAG,IAAI;YAC1B;iBAAO;gBACH,MAAM,GAAG,UAAU;YACvB;QACJ;QACA,OAAO;YACH,KAAK;YACL,MAAM;SACT;IACL;IAEQ,aAAa,CAAC,KAAgC,EAAE,IAA6B,EAAA;AACjF,QAAA,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC;IACnD;IAEQ,gBAAgB,CAAC,KAAgC,EAAE,IAA6B,EAAA;QACpF,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC;AACrD,QAAA,OAAO,KAAK,CAAC,KAAK,CAAC;IACvB;IAEQ,YAAY,CAAC,KAAgC,EAAE,IAA6B,EAAA;QAChF,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC;AACjD,QAAA,OAAO,KAAK,CAAC,KAAK,CAAC;IACvB;IAEQ,qBAAqB,CAAC,KAAgC,EAAE,IAA6B,EAAA;AACzF,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;AACzD,QAAA,OAAO,YAAY,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC;IACnE;IAEQ,iBAAiB,CAAC,KAAgC,EAAE,IAA6B,EAAA;AACrF,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;AACzD,QAAA,OAAO,YAAY,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC;IAClE;IAEQ,wBAAwB,GAAA;AAC5B,QAAA,IAAI,CAAC;aACA,OAAO,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC;AACjD,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC;AACrE,aAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AAClB,YAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO;AAC9B,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,CAAC,iBAAiB,EAAE;YAC5B;iBAAO;gBACH,IAAI,CAAC,kBAAkB,EAAE;YAC7B;AACJ,QAAA,CAAC,CAAC;IACV;IAEQ,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,wBAAwB;QACpD,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;QAC1C,IAAI,aAAa,EAAE;AACf,YAAA,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC,oBAAoB,EAAE;QAC/D;IACJ;IAEQ,kBAAkB,GAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY;AACxC,QAAA,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;QAC1C,IAAI,aAAa,EAAE;AACf,YAAA,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC,oBAAoB,EAAE;QAC/D;IACJ;IAEQ,oBAAoB,GAAA;AACxB,QAAA,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE;AACvF,YAAA,OAAO,IAAI;QACf;aAAO;AACH,YAAA,OAAO,KAAK;QAChB;IACJ;IAEQ,aAAa,GAAA;AACjB,QAAA,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACtE;IAEQ,YAAY,GAAA;AAChB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE;AACzC,QAAA,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACxD,QAAA,UAAU,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC9C;AAEQ,IAAA,cAAc,CAAC,IAA6B,EAAA;AAChD,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;IACxB;AAEQ,IAAA,cAAc,CAAC,IAA6B,EAAA;AAChD,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;IACzB;IAEQ,cAAc,GAAA;QAClB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC;IACjF;IACQ,eAAe,GAAA;QACnB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC;IAChF;8GA3VS,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,0BAAA,EAAA,EAAA,iBAAA,EAAA,4BAAA,EAAA,UAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAqBR,eAAe,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,yBAAA,EAAA,0BAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAqCK,uBAAuB,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACzB,yBAAyB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzFnE,+4LAoHc,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED/Fe,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,UAAA,EAAA,MAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAA/B,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FASd,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAZ/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAAA,OAAA,EAEd,CAAC,aAAa,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE,GAAG,YAAY,EAAE,GAAG,YAAY,CAAC,EAAA,QAAA,EAAA,+4LAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;sBA8B9F,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE;AAqCG,aAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,uBAAuB,+FACzB,yBAAyB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CACjB,SAAS,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CACV,QAAQ,qEACR,QAAQ,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA;sBAKpD,WAAW;uBAAC,OAAO;;sBAcnB,WAAW;uBAAC,WAAW;;sBAkHvB,YAAY;uBAAC,yBAAyB;;;AEjNpC,MAAM,eAAe,GAAG;IAC3B,mBAAmB;IACnB,yBAAyB;IACzB,uBAAuB;IACvB,wBAAwB;IACxB,0BAA0B;IAC1B,4BAA4B;;;ACtBhC;;AAEG;;;;"}