ngx-sfc-components 0.0.1

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 (232) hide show
  1. package/README.md +685 -0
  2. package/esm2020/lib/components/avatar/avatar.component.mjs +83 -0
  3. package/esm2020/lib/components/avatar/avatar.constants.mjs +9 -0
  4. package/esm2020/lib/components/avatar/models/avatar-data.model.mjs +2 -0
  5. package/esm2020/lib/components/avatar/models/avatar-image.model.mjs +14 -0
  6. package/esm2020/lib/components/avatar/models/avatar-progress.model.mjs +2 -0
  7. package/esm2020/lib/components/avatar/parts/badge/avatar-badge-position.enum.mjs +12 -0
  8. package/esm2020/lib/components/avatar/parts/badge/avatar-badge.component.mjs +88 -0
  9. package/esm2020/lib/components/avatar/parts/badge/avatar-badge.constants.mjs +5 -0
  10. package/esm2020/lib/components/carousel/carousel.component.mjs +230 -0
  11. package/esm2020/lib/components/carousel/carousel.enum.mjs +33 -0
  12. package/esm2020/lib/components/carousel/directive/carousel-slide.directive.mjs +31 -0
  13. package/esm2020/lib/components/carousel/models/dom.model.mjs +2 -0
  14. package/esm2020/lib/components/carousel/models/navigation.model.mjs +2 -0
  15. package/esm2020/lib/components/carousel/models/options.model.mjs +2 -0
  16. package/esm2020/lib/components/carousel/models/slide.model.mjs +3 -0
  17. package/esm2020/lib/components/carousel/parts/stage/carousel-stage.component.mjs +83 -0
  18. package/esm2020/lib/components/carousel/parts/stage/carousel-stage.model.mjs +2 -0
  19. package/esm2020/lib/components/carousel/service/animate/carousel-animate.service.mjs +86 -0
  20. package/esm2020/lib/components/carousel/service/autoplay/carousel-autoplay.service.mjs +129 -0
  21. package/esm2020/lib/components/carousel/service/carousel/carousel-service.constants.mjs +44 -0
  22. package/esm2020/lib/components/carousel/service/carousel/carousel-service.enum.mjs +14 -0
  23. package/esm2020/lib/components/carousel/service/carousel/carousel-service.model.mjs +2 -0
  24. package/esm2020/lib/components/carousel/service/carousel/carousel.service.mjs +697 -0
  25. package/esm2020/lib/components/carousel/service/lazy/carousel-lazy-load.service.mjs +59 -0
  26. package/esm2020/lib/components/carousel/service/navigation/carousel-navigation.service.mjs +211 -0
  27. package/esm2020/lib/components/chart/chart-option.model.mjs +2 -0
  28. package/esm2020/lib/components/chart/chart.component.mjs +124 -0
  29. package/esm2020/lib/components/chart/chart.constants.mjs +95 -0
  30. package/esm2020/lib/components/chart/service/settings/chart-settings.service.mjs +87 -0
  31. package/esm2020/lib/components/chart/service/theme/chart-theme.model.mjs +2 -0
  32. package/esm2020/lib/components/chart/service/theme/chart-theme.service.mjs +25 -0
  33. package/esm2020/lib/components/index.mjs +40 -0
  34. package/esm2020/lib/components/menu/dropdown/dropdown-menu.component.mjs +86 -0
  35. package/esm2020/lib/components/menu/dropdown/parts/item/dropdown-menu-item.component.mjs +26 -0
  36. package/esm2020/lib/components/menu/dropdown/parts/item/dropdown-menu-item.model.mjs +2 -0
  37. package/esm2020/lib/components/menu/navigation/navigation-menu.component.mjs +26 -0
  38. package/esm2020/lib/components/menu/navigation/parts/item/navigation-menu-item.component.mjs +31 -0
  39. package/esm2020/lib/components/menu/navigation/parts/item/navigation-menu-item.model.mjs +2 -0
  40. package/esm2020/lib/components/menu/side/parts/header/side-menu-header.component.mjs +31 -0
  41. package/esm2020/lib/components/menu/side/parts/item/content/side-menu-item-content.component.mjs +56 -0
  42. package/esm2020/lib/components/menu/side/parts/item/side-menu-item.component.mjs +81 -0
  43. package/esm2020/lib/components/menu/side/parts/title/side-menu-title.component.mjs +24 -0
  44. package/esm2020/lib/components/menu/side/side-menu.component.mjs +47 -0
  45. package/esm2020/lib/components/menu/side/side-menu.model.mjs +6 -0
  46. package/esm2020/lib/components/no-export-index.mjs +15 -0
  47. package/esm2020/lib/components/notification/enums/notification-template.enum.mjs +5 -0
  48. package/esm2020/lib/components/notification/enums/notification-type.enum.mjs +7 -0
  49. package/esm2020/lib/components/notification/notification-auto-close.model.mjs +2 -0
  50. package/esm2020/lib/components/notification/notification.component.mjs +67 -0
  51. package/esm2020/lib/components/notification/parts/content/notification-content.component.mjs +33 -0
  52. package/esm2020/lib/components/notification/parts/content/notification-content.model.mjs +2 -0
  53. package/esm2020/lib/components/progress/circle/progress-circle.component.mjs +23 -0
  54. package/esm2020/lib/components/progress/line/progress-line.component.mjs +40 -0
  55. package/esm2020/lib/components/progress/progress-color.enum.mjs +13 -0
  56. package/esm2020/lib/components/progress/progress.component.mjs +50 -0
  57. package/esm2020/lib/components/progress/semi-circle/progress-semi-circle.component.mjs +42 -0
  58. package/esm2020/lib/components/slider/parts/button/slider-button-type.enum.mjs +6 -0
  59. package/esm2020/lib/components/slider/parts/button/slider-button.component.mjs +34 -0
  60. package/esm2020/lib/components/slider/parts/item/slider-item.component.mjs +17 -0
  61. package/esm2020/lib/components/slider/parts/item/slider-item.model.mjs +2 -0
  62. package/esm2020/lib/components/slider/parts/pagination/slider-pagination.component.mjs +29 -0
  63. package/esm2020/lib/components/slider/service/automatic/slider-automatic.service.mjs +35 -0
  64. package/esm2020/lib/components/slider/service/slider/slider-move-type.enum.mjs +7 -0
  65. package/esm2020/lib/components/slider/service/slider/slider-move.event.mjs +2 -0
  66. package/esm2020/lib/components/slider/service/slider/slider-move.model.mjs +2 -0
  67. package/esm2020/lib/components/slider/service/slider/slider.service.mjs +40 -0
  68. package/esm2020/lib/components/slider/slider-type.enum.mjs +6 -0
  69. package/esm2020/lib/components/slider/slider.component.mjs +116 -0
  70. package/esm2020/lib/components/stars/star-type.enum.mjs +9 -0
  71. package/esm2020/lib/components/stars/stars.component.mjs +42 -0
  72. package/esm2020/lib/components/table/enums/table-data-type.enum.mjs +6 -0
  73. package/esm2020/lib/components/table/enums/table-template.enum.mjs +7 -0
  74. package/esm2020/lib/components/table/models/table-pagination.model.mjs +2 -0
  75. package/esm2020/lib/components/table/models/table.model.mjs +2 -0
  76. package/esm2020/lib/components/table/parts/columns/default/default-table-column.component.mjs +24 -0
  77. package/esm2020/lib/components/table/parts/columns/selectable/selectable-table-column.component.mjs +30 -0
  78. package/esm2020/lib/components/table/parts/columns/table-column-type.enum.mjs +8 -0
  79. package/esm2020/lib/components/table/parts/columns/table-column.model.mjs +2 -0
  80. package/esm2020/lib/components/table/parts/content/base-default-table-content.component.mjs +74 -0
  81. package/esm2020/lib/components/table/parts/content/cards/default/default-table-card.component.mjs +14 -0
  82. package/esm2020/lib/components/table/parts/content/rows/default/default-table-row.component.mjs +28 -0
  83. package/esm2020/lib/components/table/parts/content/rows/expanded/expanded-table-row-template.enum.mjs +6 -0
  84. package/esm2020/lib/components/table/parts/content/rows/expanded/expanded-table-row.component.mjs +42 -0
  85. package/esm2020/lib/components/table/parts/content/rows/expanded/expanded-table-row.model.mjs +2 -0
  86. package/esm2020/lib/components/table/parts/toggle/columns-toggle.component.mjs +33 -0
  87. package/esm2020/lib/components/table/parts/toggle/columns-toggle.constants.mjs +11 -0
  88. package/esm2020/lib/components/table/parts/toggle/service/columns-toggle.service.mjs +34 -0
  89. package/esm2020/lib/components/table/service/select/table-select.event.mjs +2 -0
  90. package/esm2020/lib/components/table/service/select/table-select.service.mjs +24 -0
  91. package/esm2020/lib/components/table/table.component.mjs +250 -0
  92. package/esm2020/lib/components/table/table.constants.mjs +11 -0
  93. package/esm2020/lib/components/tabs/models/tab.model.mjs +2 -0
  94. package/esm2020/lib/components/tabs/models/tabs-view.model.mjs +2 -0
  95. package/esm2020/lib/components/tabs/parts/labels/tab-label-content-base.component.mjs +29 -0
  96. package/esm2020/lib/components/tabs/parts/labels/tab-label-icon/tab-label-icon.component.mjs +20 -0
  97. package/esm2020/lib/components/tabs/parts/labels/tab-label-line/tab-label-line.component.mjs +13 -0
  98. package/esm2020/lib/components/tabs/parts/sliders/tab-label-icon/tab-label-icon-slider.component.mjs +20 -0
  99. package/esm2020/lib/components/tabs/parts/sliders/tab-label-line/tab-label-line-slider.component.mjs +20 -0
  100. package/esm2020/lib/components/tabs/parts/sliders/tab-slider-base.component.mjs +18 -0
  101. package/esm2020/lib/components/tabs/parts/sliders/tab-slider-context.model.mjs +2 -0
  102. package/esm2020/lib/components/tabs/service/tab.service.mjs +11 -0
  103. package/esm2020/lib/components/tabs/tabs-template.enum.mjs +7 -0
  104. package/esm2020/lib/components/tabs/tabs.component.mjs +69 -0
  105. package/esm2020/lib/components/tags/parts/tag/tag.component.mjs +18 -0
  106. package/esm2020/lib/components/tags/parts/tag/tag.model.mjs +2 -0
  107. package/esm2020/lib/components/tags/tags.component.mjs +18 -0
  108. package/esm2020/lib/components/timeline/parts/item/timeline-item-position.enum.mjs +6 -0
  109. package/esm2020/lib/components/timeline/parts/item/timeline-item.component.mjs +34 -0
  110. package/esm2020/lib/components/timeline/parts/item/timeline-item.model.mjs +2 -0
  111. package/esm2020/lib/components/timeline/timeline.component.mjs +18 -0
  112. package/esm2020/lib/ngx-sfc-components.module.mjs +208 -0
  113. package/esm2020/ngx-sfc-components.mjs +5 -0
  114. package/esm2020/public-api.mjs +6 -0
  115. package/fesm2015/ngx-sfc-components.mjs +4006 -0
  116. package/fesm2015/ngx-sfc-components.mjs.map +1 -0
  117. package/fesm2020/ngx-sfc-components.mjs +3989 -0
  118. package/fesm2020/ngx-sfc-components.mjs.map +1 -0
  119. package/lib/components/avatar/avatar.component.d.ts +42 -0
  120. package/lib/components/avatar/avatar.constants.d.ts +8 -0
  121. package/lib/components/avatar/models/avatar-data.model.d.ts +6 -0
  122. package/lib/components/avatar/models/avatar-image.model.d.ts +12 -0
  123. package/lib/components/avatar/models/avatar-progress.model.d.ts +4 -0
  124. package/lib/components/avatar/parts/badge/avatar-badge-position.enum.d.ts +10 -0
  125. package/lib/components/avatar/parts/badge/avatar-badge.component.d.ts +14 -0
  126. package/lib/components/avatar/parts/badge/avatar-badge.constants.d.ts +4 -0
  127. package/lib/components/carousel/carousel.component.d.ts +62 -0
  128. package/lib/components/carousel/carousel.enum.d.ts +26 -0
  129. package/lib/components/carousel/directive/carousel-slide.directive.d.ts +13 -0
  130. package/lib/components/carousel/models/dom.model.d.ts +7 -0
  131. package/lib/components/carousel/models/navigation.model.d.ts +17 -0
  132. package/lib/components/carousel/models/options.model.d.ts +40 -0
  133. package/lib/components/carousel/models/slide.model.d.ts +28 -0
  134. package/lib/components/carousel/parts/stage/carousel-stage.component.d.ts +30 -0
  135. package/lib/components/carousel/parts/stage/carousel-stage.model.d.ts +7 -0
  136. package/lib/components/carousel/service/animate/carousel-animate.service.d.ts +17 -0
  137. package/lib/components/carousel/service/autoplay/carousel-autoplay.service.d.ts +29 -0
  138. package/lib/components/carousel/service/carousel/carousel-service.constants.d.ts +5 -0
  139. package/lib/components/carousel/service/carousel/carousel-service.enum.d.ts +9 -0
  140. package/lib/components/carousel/service/carousel/carousel-service.model.d.ts +21 -0
  141. package/lib/components/carousel/service/carousel/carousel.service.d.ts +92 -0
  142. package/lib/components/carousel/service/lazy/carousel-lazy-load.service.d.ts +14 -0
  143. package/lib/components/carousel/service/navigation/carousel-navigation.service.d.ts +28 -0
  144. package/lib/components/chart/chart-option.model.d.ts +9 -0
  145. package/lib/components/chart/chart.component.d.ts +38 -0
  146. package/lib/components/chart/chart.constants.d.ts +100 -0
  147. package/lib/components/chart/service/settings/chart-settings.service.d.ts +14 -0
  148. package/lib/components/chart/service/theme/chart-theme.model.d.ts +15 -0
  149. package/lib/components/chart/service/theme/chart-theme.service.d.ts +11 -0
  150. package/lib/components/index.d.ts +56 -0
  151. package/lib/components/menu/dropdown/dropdown-menu.component.d.ts +28 -0
  152. package/lib/components/menu/dropdown/parts/item/dropdown-menu-item.component.d.ts +8 -0
  153. package/lib/components/menu/dropdown/parts/item/dropdown-menu-item.model.d.ts +6 -0
  154. package/lib/components/menu/navigation/navigation-menu.component.d.ts +10 -0
  155. package/lib/components/menu/navigation/parts/item/navigation-menu-item.component.d.ts +9 -0
  156. package/lib/components/menu/navigation/parts/item/navigation-menu-item.model.d.ts +6 -0
  157. package/lib/components/menu/side/parts/header/side-menu-header.component.d.ts +11 -0
  158. package/lib/components/menu/side/parts/item/content/side-menu-item-content.component.d.ts +17 -0
  159. package/lib/components/menu/side/parts/item/side-menu-item.component.d.ts +17 -0
  160. package/lib/components/menu/side/parts/title/side-menu-title.component.d.ts +7 -0
  161. package/lib/components/menu/side/side-menu.component.d.ts +13 -0
  162. package/lib/components/menu/side/side-menu.model.d.ts +15 -0
  163. package/lib/components/no-export-index.d.ts +14 -0
  164. package/lib/components/notification/enums/notification-template.enum.d.ts +3 -0
  165. package/lib/components/notification/enums/notification-type.enum.d.ts +5 -0
  166. package/lib/components/notification/notification-auto-close.model.d.ts +4 -0
  167. package/lib/components/notification/notification.component.d.ts +26 -0
  168. package/lib/components/notification/parts/content/notification-content.component.d.ts +14 -0
  169. package/lib/components/notification/parts/content/notification-content.model.d.ts +8 -0
  170. package/lib/components/progress/circle/progress-circle.component.d.ts +8 -0
  171. package/lib/components/progress/line/progress-line.component.d.ts +17 -0
  172. package/lib/components/progress/progress-color.enum.d.ts +11 -0
  173. package/lib/components/progress/progress.component.d.ts +9 -0
  174. package/lib/components/progress/semi-circle/progress-semi-circle.component.d.ts +16 -0
  175. package/lib/components/slider/parts/button/slider-button-type.enum.d.ts +4 -0
  176. package/lib/components/slider/parts/button/slider-button.component.d.ts +11 -0
  177. package/lib/components/slider/parts/item/slider-item.component.d.ts +7 -0
  178. package/lib/components/slider/parts/item/slider-item.model.d.ts +5 -0
  179. package/lib/components/slider/parts/pagination/slider-pagination.component.d.ts +11 -0
  180. package/lib/components/slider/service/automatic/slider-automatic.service.d.ts +17 -0
  181. package/lib/components/slider/service/slider/slider-move-type.enum.d.ts +5 -0
  182. package/lib/components/slider/service/slider/slider-move.event.d.ts +5 -0
  183. package/lib/components/slider/service/slider/slider-move.model.d.ts +4 -0
  184. package/lib/components/slider/service/slider/slider.service.d.ts +12 -0
  185. package/lib/components/slider/slider-type.enum.d.ts +4 -0
  186. package/lib/components/slider/slider.component.d.ts +45 -0
  187. package/lib/components/stars/star-type.enum.d.ts +7 -0
  188. package/lib/components/stars/stars.component.d.ts +11 -0
  189. package/lib/components/table/enums/table-data-type.enum.d.ts +4 -0
  190. package/lib/components/table/enums/table-template.enum.d.ts +5 -0
  191. package/lib/components/table/models/table-pagination.model.d.ts +5 -0
  192. package/lib/components/table/models/table.model.d.ts +9 -0
  193. package/lib/components/table/parts/columns/default/default-table-column.component.d.ts +8 -0
  194. package/lib/components/table/parts/columns/selectable/selectable-table-column.component.d.ts +10 -0
  195. package/lib/components/table/parts/columns/table-column-type.enum.d.ts +6 -0
  196. package/lib/components/table/parts/columns/table-column.model.d.ts +11 -0
  197. package/lib/components/table/parts/content/base-default-table-content.component.d.ts +27 -0
  198. package/lib/components/table/parts/content/cards/default/default-table-card.component.d.ts +6 -0
  199. package/lib/components/table/parts/content/rows/default/default-table-row.component.d.ts +10 -0
  200. package/lib/components/table/parts/content/rows/expanded/expanded-table-row-template.enum.d.ts +4 -0
  201. package/lib/components/table/parts/content/rows/expanded/expanded-table-row.component.d.ts +16 -0
  202. package/lib/components/table/parts/content/rows/expanded/expanded-table-row.model.d.ts +11 -0
  203. package/lib/components/table/parts/toggle/columns-toggle.component.d.ts +13 -0
  204. package/lib/components/table/parts/toggle/columns-toggle.constants.d.ts +10 -0
  205. package/lib/components/table/parts/toggle/service/columns-toggle.service.d.ts +15 -0
  206. package/lib/components/table/service/select/table-select.event.d.ts +4 -0
  207. package/lib/components/table/service/select/table-select.service.d.ts +11 -0
  208. package/lib/components/table/table.component.d.ts +74 -0
  209. package/lib/components/table/table.constants.d.ts +11 -0
  210. package/lib/components/tabs/models/tab.model.d.ts +7 -0
  211. package/lib/components/tabs/models/tabs-view.model.d.ts +8 -0
  212. package/lib/components/tabs/parts/labels/tab-label-content-base.component.d.ts +9 -0
  213. package/lib/components/tabs/parts/labels/tab-label-icon/tab-label-icon.component.d.ts +9 -0
  214. package/lib/components/tabs/parts/labels/tab-label-line/tab-label-line.component.d.ts +6 -0
  215. package/lib/components/tabs/parts/sliders/tab-label-icon/tab-label-icon-slider.component.d.ts +7 -0
  216. package/lib/components/tabs/parts/sliders/tab-label-line/tab-label-line-slider.component.d.ts +10 -0
  217. package/lib/components/tabs/parts/sliders/tab-slider-base.component.d.ts +8 -0
  218. package/lib/components/tabs/parts/sliders/tab-slider-context.model.d.ts +4 -0
  219. package/lib/components/tabs/service/tab.service.d.ts +6 -0
  220. package/lib/components/tabs/tabs-template.enum.d.ts +5 -0
  221. package/lib/components/tabs/tabs.component.d.ts +26 -0
  222. package/lib/components/tags/parts/tag/tag.component.d.ts +7 -0
  223. package/lib/components/tags/parts/tag/tag.model.d.ts +4 -0
  224. package/lib/components/tags/tags.component.d.ts +7 -0
  225. package/lib/components/timeline/parts/item/timeline-item-position.enum.d.ts +4 -0
  226. package/lib/components/timeline/parts/item/timeline-item.component.d.ts +11 -0
  227. package/lib/components/timeline/parts/item/timeline-item.model.d.ts +10 -0
  228. package/lib/components/timeline/timeline.component.d.ts +7 -0
  229. package/lib/ngx-sfc-components.module.d.ts +49 -0
  230. package/ngx-sfc-components.d.ts +5 -0
  231. package/package.json +50 -0
  232. package/public-api.d.ts +2 -0
@@ -0,0 +1,230 @@
1
+ import { Component, ContentChildren, EventEmitter, HostBinding, HostListener, Inject, Input, Output } from '@angular/core';
2
+ import { any, UIClass } from 'ngx-sfc-common';
3
+ import { DOCUMENT } from 'ngx-sfc-common';
4
+ import { switchMap, delay, tap, filter, skip, take, map, from, of, toArray, merge } from 'rxjs';
5
+ import { CarouselProperty } from './carousel.enum';
6
+ import { CarouselSlideDirective } from './directive/carousel-slide.directive';
7
+ import { CarouselAnimateService } from './service/animate/carousel-animate.service';
8
+ import { CarouselAutoplayService } from './service/autoplay/carousel-autoplay.service';
9
+ import { CarouselServiceConstants } from './service/carousel/carousel-service.constants';
10
+ import { CarouselService } from './service/carousel/carousel.service';
11
+ import { CarouselLazyLoadService } from './service/lazy/carousel-lazy-load.service';
12
+ import { CarouselNavigationService } from './service/navigation/carousel-navigation.service';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "ngx-sfc-common";
15
+ import * as i2 from "./service/carousel/carousel.service";
16
+ import * as i3 from "./service/navigation/carousel-navigation.service";
17
+ import * as i4 from "./service/autoplay/carousel-autoplay.service";
18
+ import * as i5 from "./service/lazy/carousel-lazy-load.service";
19
+ import * as i6 from "./service/animate/carousel-animate.service";
20
+ import * as i7 from "./parts/stage/carousel-stage.component";
21
+ import * as i8 from "@angular/common";
22
+ export class CarouselComponent {
23
+ constructor(el, resizeService, carouselService, navigationService, autoplayService, lazyLoadService, animateService, changeDetectorRef, documentRef) {
24
+ this.el = el;
25
+ this.resizeService = resizeService;
26
+ this.carouselService = carouselService;
27
+ this.navigationService = navigationService;
28
+ this.autoplayService = autoplayService;
29
+ this.lazyLoadService = lazyLoadService;
30
+ this.animateService = animateService;
31
+ this.changeDetectorRef = changeDetectorRef;
32
+ this.translated = new EventEmitter();
33
+ this.initialized = new EventEmitter();
34
+ this.changing = new EventEmitter();
35
+ this.changed = new EventEmitter();
36
+ this.slidesModel = [];
37
+ this.carouselLoaded = false;
38
+ this.carouselWindowWidth = 0;
39
+ this.documentRef = documentRef;
40
+ }
41
+ get rtl() {
42
+ return this.carouselDOMModel?.rtl || false;
43
+ }
44
+ get clientWidth() {
45
+ return this.el.nativeElement.querySelector('.container').clientWidth;
46
+ }
47
+ onVisibilityChange() {
48
+ if (this.carouselService.settings.autoplay) {
49
+ switch (this.documentRef.visibilityState) {
50
+ case UIClass.Visible:
51
+ if (!this.autoplayService.isAutoplayStopped)
52
+ this.autoplayService.play();
53
+ break;
54
+ case UIClass.Hidden:
55
+ this.autoplayService.pause();
56
+ break;
57
+ }
58
+ }
59
+ }
60
+ ;
61
+ ngOnInit() {
62
+ this.carouselWindowWidth = this.clientWidth;
63
+ this.initDataStreams();
64
+ }
65
+ ngAfterContentInit() {
66
+ if (any(this.slides.toArray())) {
67
+ this.carouselService.setup(this.carouselWindowWidth, this.slides.toArray(), this.options);
68
+ this.carouselService.initialize(this.slides.toArray());
69
+ this.initResizeWatcher();
70
+ }
71
+ this.slidesChangesSubscription = this.slides.changes.pipe(tap((slides) => {
72
+ if (any(slides)) {
73
+ this.carouselService.setup(this.carouselWindowWidth, slides.toArray(), this.options);
74
+ this.carouselService.initialize(slides.toArray());
75
+ }
76
+ else {
77
+ this.carouselLoaded = false;
78
+ }
79
+ })).subscribe();
80
+ }
81
+ ngOnDestroy() {
82
+ if (this.resizeSubscription)
83
+ this.resizeSubscription.unsubscribe();
84
+ if (this.slidesChangesSubscription)
85
+ this.slidesChangesSubscription.unsubscribe();
86
+ if (this.carouselSubscription)
87
+ this.carouselSubscription.unsubscribe();
88
+ }
89
+ initDataStreams() {
90
+ const _viewCurSettings$ = this.carouselService.viewCurrrentSettings.pipe(tap(data => {
91
+ this.carouselDOMModel = data.carouselDOMModel;
92
+ this.stageModel = data.stageModel;
93
+ this.slidesModel = data.slidesModel;
94
+ if (!this.carouselLoaded) {
95
+ this.carouselLoaded = true;
96
+ }
97
+ this.navigationModel = data.navigationModel;
98
+ this.navigationDotsModel = data.navigationDotsModel;
99
+ this.changeDetectorRef.markForCheck();
100
+ }));
101
+ const _initializedCarousel$ = this.carouselService.initializedState.pipe(tap(() => {
102
+ this.gatherTranslatedData();
103
+ this.initialized.emit(this.slideEvent);
104
+ }));
105
+ const _translatedCarousel$ = this.carouselService.translatedState.pipe(tap(() => {
106
+ this.gatherTranslatedData();
107
+ this.translated.emit(this.slideEvent);
108
+ }));
109
+ const _changeCarousel$ = this.carouselService.changeState.pipe(tap(() => {
110
+ this.gatherTranslatedData();
111
+ this.changing.emit(this.slideEvent);
112
+ }));
113
+ const _changedCarousel$ = this.carouselService.changeState.pipe(switchMap(value => {
114
+ const changedPosition = of(value).pipe(filter(() => value.property.name === CarouselProperty.Position), switchMap(() => from(this.slidesModel)), skip(value.property.value), take(this.carouselService.settings.items || 0), map(slide => {
115
+ const id = slide.id.indexOf(CarouselServiceConstants.CLONE_ID_PREFIX) >= 0 ? slide.id.slice(CarouselServiceConstants.CLONE_ID_PREFIX.length) : slide.id;
116
+ return { ...slide, id: id, isActive: true };
117
+ }), toArray(), map(slides => {
118
+ return {
119
+ slides: slides,
120
+ startPosition: this.carouselService.relative(value.property.value)
121
+ };
122
+ }));
123
+ return merge(changedPosition);
124
+ }), tap(slidesData => {
125
+ this.gatherTranslatedData();
126
+ this.changed.emit(slidesData.slides?.length ? slidesData : this.slideEvent);
127
+ }));
128
+ this.carouselSubscription = merge(_viewCurSettings$, _translatedCarousel$, _changeCarousel$, _changedCarousel$, _initializedCarousel$).subscribe();
129
+ }
130
+ initResizeWatcher() {
131
+ if (Object.keys(this.carouselService.options.responsive || {}).length) {
132
+ this.resizeSubscription = this.resizeService.onResize$
133
+ .pipe(filter(() => this.carouselWindowWidth !== this.clientWidth), delay(this.carouselService.settings.responsiveRefreshRate || 0)).subscribe(() => {
134
+ this.carouselService.onResize(this.clientWidth);
135
+ this.carouselWindowWidth = this.clientWidth;
136
+ });
137
+ }
138
+ }
139
+ onTransitionEnd() {
140
+ this.carouselService.onTransitionEnd();
141
+ }
142
+ next() {
143
+ if (this.carouselLoaded)
144
+ this.navigationService.next(this.carouselService.settings.navSpeed || false);
145
+ }
146
+ previous() {
147
+ if (this.carouselLoaded)
148
+ this.navigationService.previous(this.carouselService.settings.navSpeed || false);
149
+ }
150
+ moveByDot(dotId) {
151
+ if (this.carouselLoaded)
152
+ this.navigationService.moveByDot(dotId);
153
+ }
154
+ pause() {
155
+ this.autoplayService.startPausing();
156
+ }
157
+ play() {
158
+ this.autoplayService.startPlayingMouseLeave();
159
+ }
160
+ stopAutoplay() {
161
+ this.autoplayService.isAutoplayStopped = true;
162
+ this.autoplayService.stop();
163
+ }
164
+ startAutoplay() {
165
+ this.autoplayService.isAutoplayStopped = false;
166
+ this.autoplayService.play();
167
+ }
168
+ gatherTranslatedData() {
169
+ let startPosition;
170
+ const activeSlides = this.slidesModel
171
+ .filter(slide => slide.isActive === true)
172
+ .map(slide => {
173
+ return {
174
+ id: slide.id.indexOf(CarouselServiceConstants.CLONE_ID_PREFIX) >= 0 ? slide.id.slice(CarouselServiceConstants.CLONE_ID_PREFIX.length) : slide.id,
175
+ width: slide.width,
176
+ marginL: slide.marginL,
177
+ marginR: slide.marginR,
178
+ center: slide.isCentered,
179
+ tplRef: null,
180
+ classes: {}
181
+ };
182
+ });
183
+ startPosition = this.carouselService.relative(this.carouselService.current() || 0);
184
+ this.slideEvent = {
185
+ startPosition: startPosition,
186
+ slides: activeSlides
187
+ };
188
+ }
189
+ }
190
+ CarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CarouselComponent, deps: [{ token: i0.ElementRef }, { token: i1.ResizeService }, { token: i2.CarouselService }, { token: i3.CarouselNavigationService }, { token: i4.CarouselAutoplayService }, { token: i5.CarouselLazyLoadService }, { token: i6.CarouselAnimateService }, { token: i0.ChangeDetectorRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
191
+ CarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: CarouselComponent, selector: "sfc-carousel", inputs: { options: "options" }, outputs: { translated: "translated", initialized: "initialized", changing: "changing", changed: "changed" }, host: { listeners: { "document:visibilitychange": "onVisibilityChange()" }, properties: { "class.rtl": "this.rtl" } }, providers: [
192
+ CarouselNavigationService,
193
+ CarouselAutoplayService,
194
+ CarouselService,
195
+ CarouselAnimateService,
196
+ CarouselLazyLoadService
197
+ ], queries: [{ propertyName: "slides", predicate: CarouselSlideDirective }], ngImport: i0, template: "<div class=\"container\" (mouseover)=\"pause()\" (mouseleave)=\"play()\">\r\n <div *ngIf=\"carouselLoaded\" class=\"stage\">\r\n <sfc-carousel-stage [stageModel]=\"stageModel\" [slidesModel]=\"slidesModel\"></sfc-carousel-stage>\r\n </div>\r\n <ng-container *ngIf=\"slides.toArray().length\">\r\n <div class=\"navigation\" [class.disabled]=\"navigationModel?.disabled\">\r\n <div class=\"action previous\" [class.disabled]=\"navigationModel?.previous?.disabled\" (click)=\"previous()\">\r\n {{navigationModel?.previous?.label}}\r\n </div>\r\n <div class=\"action next\" [class.disabled]=\"navigationModel?.next?.disabled\" (click)=\"next()\">\r\n {{navigationModel?.next?.label}}\r\n </div>\r\n </div>\r\n <div class=\"dots\" [class.disabled]=\"navigationDotsModel?.disabled\">\r\n <div *ngFor=\"let dot of navigationDotsModel?.dots\" class=\"dot\" [class.active]=\"dot.active\"\r\n (click)=\"moveByDot(dot.id)\">\r\n <span></span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>", styles: [":host .container{display:block;width:100%;-webkit-tap-highlight-color:transparent;position:relative;z-index:1}:host .container .stage{position:relative;overflow:hidden;transform:translate(0)}:host .container .dots{text-align:center;-webkit-tap-highlight-color:transparent}:host .container .dots.disabled{display:none}:host .container .dots .dot{display:inline-block;zoom:1;cursor:pointer;-webkit-user-select:none;user-select:none}:host .container .dots .dot span{width:10px;height:10px;margin:5px 7px;display:block;-webkit-backface-visibility:visible;backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}:host-context(.sfc-default-theme) :host .container .dots .dot span{background:#d8d7d7}:host-context(.sfc-dark-theme) :host .container .dots .dot span{background:#f6f6f6}:host-context(.sfc-default-theme) :host .container .dots .dot.active span,:host-context(.sfc-default-theme) :host .container .dots .dot:hover span{background:#656d78}:host-context(.sfc-dark-theme) :host .container .dots .dot.active span,:host-context(.sfc-dark-theme) :host .container .dots .dot:hover span{background:#aab2bd}:host .container .navigation{margin-top:10px;text-align:center;-webkit-tap-highlight-color:transparent}:host .container .navigation .action{font-size:14px;margin:5px;padding:4px 7px;display:inline-block;cursor:pointer;border-radius:3px}:host-context(.sfc-default-theme) :host .container .navigation .action{color:#fff}:host-context(.sfc-dark-theme) :host .container .navigation .action{color:#545e61}:host-context(.sfc-default-theme) :host .container .navigation .action{background:#d8d7d7}:host-context(.sfc-dark-theme) :host .container .navigation .action{background:#f6f6f6}:host .container .navigation .action:hover{text-decoration:none}:host-context(.sfc-default-theme) :host .container .navigation .action:hover{background:#0000001a}:host-context(.sfc-dark-theme) :host .container .navigation .action:hover{background:#d8d7d7}:host .container .navigation .action.previous,:host .container .navigation .action.next{cursor:pointer;-webkit-user-select:none;user-select:none}:host .container .navigation .action.disabled{opacity:.5;cursor:default}:host .container .navigation.disabled{display:none}:host .container .navigation.disabled+.dots{margin-top:10px}:host.rtl .container{direction:rtl}\n"], components: [{ type: i7.CarouselStageComponent, selector: "sfc-carousel-stage", inputs: ["stageModel", "slidesModel"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
198
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CarouselComponent, decorators: [{
199
+ type: Component,
200
+ args: [{ selector: 'sfc-carousel', providers: [
201
+ CarouselNavigationService,
202
+ CarouselAutoplayService,
203
+ CarouselService,
204
+ CarouselAnimateService,
205
+ CarouselLazyLoadService
206
+ ], template: "<div class=\"container\" (mouseover)=\"pause()\" (mouseleave)=\"play()\">\r\n <div *ngIf=\"carouselLoaded\" class=\"stage\">\r\n <sfc-carousel-stage [stageModel]=\"stageModel\" [slidesModel]=\"slidesModel\"></sfc-carousel-stage>\r\n </div>\r\n <ng-container *ngIf=\"slides.toArray().length\">\r\n <div class=\"navigation\" [class.disabled]=\"navigationModel?.disabled\">\r\n <div class=\"action previous\" [class.disabled]=\"navigationModel?.previous?.disabled\" (click)=\"previous()\">\r\n {{navigationModel?.previous?.label}}\r\n </div>\r\n <div class=\"action next\" [class.disabled]=\"navigationModel?.next?.disabled\" (click)=\"next()\">\r\n {{navigationModel?.next?.label}}\r\n </div>\r\n </div>\r\n <div class=\"dots\" [class.disabled]=\"navigationDotsModel?.disabled\">\r\n <div *ngFor=\"let dot of navigationDotsModel?.dots\" class=\"dot\" [class.active]=\"dot.active\"\r\n (click)=\"moveByDot(dot.id)\">\r\n <span></span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>", styles: [":host .container{display:block;width:100%;-webkit-tap-highlight-color:transparent;position:relative;z-index:1}:host .container .stage{position:relative;overflow:hidden;transform:translate(0)}:host .container .dots{text-align:center;-webkit-tap-highlight-color:transparent}:host .container .dots.disabled{display:none}:host .container .dots .dot{display:inline-block;zoom:1;cursor:pointer;-webkit-user-select:none;user-select:none}:host .container .dots .dot span{width:10px;height:10px;margin:5px 7px;display:block;-webkit-backface-visibility:visible;backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}:host-context(.sfc-default-theme) :host .container .dots .dot span{background:#d8d7d7}:host-context(.sfc-dark-theme) :host .container .dots .dot span{background:#f6f6f6}:host-context(.sfc-default-theme) :host .container .dots .dot.active span,:host-context(.sfc-default-theme) :host .container .dots .dot:hover span{background:#656d78}:host-context(.sfc-dark-theme) :host .container .dots .dot.active span,:host-context(.sfc-dark-theme) :host .container .dots .dot:hover span{background:#aab2bd}:host .container .navigation{margin-top:10px;text-align:center;-webkit-tap-highlight-color:transparent}:host .container .navigation .action{font-size:14px;margin:5px;padding:4px 7px;display:inline-block;cursor:pointer;border-radius:3px}:host-context(.sfc-default-theme) :host .container .navigation .action{color:#fff}:host-context(.sfc-dark-theme) :host .container .navigation .action{color:#545e61}:host-context(.sfc-default-theme) :host .container .navigation .action{background:#d8d7d7}:host-context(.sfc-dark-theme) :host .container .navigation .action{background:#f6f6f6}:host .container .navigation .action:hover{text-decoration:none}:host-context(.sfc-default-theme) :host .container .navigation .action:hover{background:#0000001a}:host-context(.sfc-dark-theme) :host .container .navigation .action:hover{background:#d8d7d7}:host .container .navigation .action.previous,:host .container .navigation .action.next{cursor:pointer;-webkit-user-select:none;user-select:none}:host .container .navigation .action.disabled{opacity:.5;cursor:default}:host .container .navigation.disabled{display:none}:host .container .navigation.disabled+.dots{margin-top:10px}:host.rtl .container{direction:rtl}\n"] }]
207
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ResizeService }, { type: i2.CarouselService }, { type: i3.CarouselNavigationService }, { type: i4.CarouselAutoplayService }, { type: i5.CarouselLazyLoadService }, { type: i6.CarouselAnimateService }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
208
+ type: Inject,
209
+ args: [DOCUMENT]
210
+ }] }]; }, propDecorators: { options: [{
211
+ type: Input
212
+ }], translated: [{
213
+ type: Output
214
+ }], initialized: [{
215
+ type: Output
216
+ }], changing: [{
217
+ type: Output
218
+ }], changed: [{
219
+ type: Output
220
+ }], slides: [{
221
+ type: ContentChildren,
222
+ args: [CarouselSlideDirective]
223
+ }], rtl: [{
224
+ type: HostBinding,
225
+ args: ['class.rtl']
226
+ }], onVisibilityChange: [{
227
+ type: HostListener,
228
+ args: ['document:visibilitychange']
229
+ }] } });
230
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYXJvdXNlbC9jYXJvdXNlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2Nhcm91c2VsL2Nhcm91c2VsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQUUsZUFBZSxFQUFjLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFDMUgsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFpQixNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBNEIsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQU05RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0s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QUROLFdBQVc7dUJBQUMsV0FBVztnQkE0QnhCLGtCQUFrQjtzQkFEakIsWUFBWTt1QkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudEluaXQsIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFF1ZXJ5TGlzdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBhbnksIFVJQ2xhc3MgfSBmcm9tICduZ3gtc2ZjLWNvbW1vbic7XHJcbmltcG9ydCB7IERPQ1VNRU5ULCBSZXNpemVTZXJ2aWNlIH0gZnJvbSAnbmd4LXNmYy1jb21tb24nO1xyXG5pbXBvcnQgeyBzd2l0Y2hNYXAsIGRlbGF5LCB0YXAsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgZmlsdGVyLCBza2lwLCB0YWtlLCBtYXAsIGZyb20sIG9mLCB0b0FycmF5LCBtZXJnZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDYXJvdXNlbFByb3BlcnR5IH0gZnJvbSAnLi9jYXJvdXNlbC5lbnVtJztcclxuaW1wb3J0IHsgQ2Fyb3VzZWxTbGlkZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlL2Nhcm91c2VsLXNsaWRlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENhcm91c2VsRE9NTW9kZWwgfSBmcm9tICcuL21vZGVscy9kb20ubW9kZWwnO1xyXG5pbXBvcnQgeyBDYXJvdXNlbE5hdmlnYXRpb25Eb3RzTW9kZWwsIENhcm91c2VsTmF2aWdhdGlvbk1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvbmF2aWdhdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IENhcm91c2VsT3B0aW9uc01vZGVsIH0gZnJvbSAnLi9tb2RlbHMvb3B0aW9ucy5tb2RlbCc7XHJcbmltcG9ydCB7IENhcm91c2VsU2xpZGVNb2RlbCwgQ2Fyb3VzZWxTbGlkZUV2ZW50IH0gZnJvbSAnLi9tb2RlbHMvc2xpZGUubW9kZWwnO1xyXG5pbXBvcnQgeyBDYXJvdXNlbFN0YWdlTW9kZWwgfSBmcm9tICcuL3BhcnRzL3N0YWdlL2Nhcm91c2VsLXN0YWdlLm1vZGVsJztcclxuaW1wb3J0IHsgQ2Fyb3VzZWxBbmltYXRlU2VydmljZSB9IGZyb20gJy4vc2VydmljZS9hbmltYXRlL2Nhcm91c2VsLWFuaW1hdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IENhcm91c2VsQXV0b3BsYXlTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlL2F1dG9wbGF5L2Nhcm91c2VsLWF1dG9wbGF5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDYXJvdXNlbFNlcnZpY2VDb25zdGFudHMgfSBmcm9tICcuL3NlcnZpY2UvY2Fyb3VzZWwvY2Fyb3VzZWwtc2VydmljZS5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBDYXJvdXNlbFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2UvY2Fyb3VzZWwvY2Fyb3VzZWwuc2VydmljZSc7XHJcbmltcG9ydCB7IENhcm91c2VsTGF6eUxvYWRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlL2xhenkvY2Fyb3VzZWwtbGF6eS1sb2FkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDYXJvdXNlbE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlL25hdmlnYXRpb24vY2Fyb3VzZWwtbmF2aWdhdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ZjLWNhcm91c2VsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Nhcm91c2VsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBDYXJvdXNlbE5hdmlnYXRpb25TZXJ2aWNlLFxyXG4gICAgQ2Fyb3VzZWxBdXRvcGxheVNlcnZpY2UsXHJcbiAgICBDYXJvdXNlbFNlcnZpY2UsXHJcbiAgICBDYXJvdXNlbEFuaW1hdGVTZXJ2aWNlLFxyXG4gICAgQ2Fyb3VzZWxMYXp5TG9hZFNlcnZpY2VcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXJvdXNlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgQElucHV0KClcclxuICBvcHRpb25zITogQ2Fyb3VzZWxPcHRpb25zTW9kZWw7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHRyYW5zbGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENhcm91c2VsU2xpZGVFdmVudD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgaW5pdGlhbGl6ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENhcm91c2VsU2xpZGVFdmVudD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgY2hhbmdpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPENhcm91c2VsU2xpZGVFdmVudD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgY2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q2Fyb3VzZWxTbGlkZUV2ZW50PigpO1xyXG5cclxuICBAQ29udGVudENoaWxkcmVuKENhcm91c2VsU2xpZGVEaXJlY3RpdmUpXHJcbiAgc2xpZGVzITogUXVlcnlMaXN0PENhcm91c2VsU2xpZGVEaXJlY3RpdmU+O1xyXG5cclxuICAvLyBTVUJTQ1JJUFRJT05TXHJcblxyXG4gIHByaXZhdGUgcmVzaXplU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBwcml2YXRlIGNhcm91c2VsU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBwcml2YXRlIHNsaWRlc0NoYW5nZXNTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIC8vIEVORCBTVUJTQ1JJUFRJT05TXHJcblxyXG4gIC8vIE1PREVMU1xyXG5cclxuICBjYXJvdXNlbERPTU1vZGVsITogQ2Fyb3VzZWxET01Nb2RlbDtcclxuXHJcbiAgc3RhZ2VNb2RlbCE6IENhcm91c2VsU3RhZ2VNb2RlbDtcclxuXHJcbiAgc2xpZGVzTW9kZWw6IENhcm91c2VsU2xpZGVNb2RlbFtdID0gW107XHJcblxyXG4gIG5hdmlnYXRpb25Nb2RlbCE6IENhcm91c2VsTmF2aWdhdGlvbk1vZGVsO1xyXG5cclxuICBuYXZpZ2F0aW9uRG90c01vZGVsITogQ2Fyb3VzZWxOYXZpZ2F0aW9uRG90c01vZGVsO1xyXG5cclxuICAvLyBFTkQgTU9ERUxTXHJcblxyXG4gIHNsaWRlRXZlbnQhOiBDYXJvdXNlbFNsaWRlRXZlbnQ7XHJcblxyXG4gIGNhcm91c2VsTG9hZGVkID0gZmFsc2U7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MucnRsJylcclxuICBnZXQgcnRsKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2Fyb3VzZWxET01Nb2RlbD8ucnRsIHx8IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNsaWVudFdpZHRoKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jb250YWluZXInKS5jbGllbnRXaWR0aDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2Fyb3VzZWxXaW5kb3dXaWR0aDogbnVtYmVyID0gMDtcclxuXHJcbiAgcHJpdmF0ZSBkb2N1bWVudFJlZjogRG9jdW1lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgcmVzaXplU2VydmljZTogUmVzaXplU2VydmljZSxcclxuICAgIHByaXZhdGUgY2Fyb3VzZWxTZXJ2aWNlOiBDYXJvdXNlbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG5hdmlnYXRpb25TZXJ2aWNlOiBDYXJvdXNlbE5hdmlnYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRvcGxheVNlcnZpY2U6IENhcm91c2VsQXV0b3BsYXlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsYXp5TG9hZFNlcnZpY2U6IENhcm91c2VsTGF6eUxvYWRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhbmltYXRlU2VydmljZTogQ2Fyb3VzZWxBbmltYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnRSZWY6IGFueVxyXG4gICkge1xyXG4gICAgdGhpcy5kb2N1bWVudFJlZiA9IGRvY3VtZW50UmVmIGFzIERvY3VtZW50O1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6dmlzaWJpbGl0eWNoYW5nZScpXHJcbiAgb25WaXNpYmlsaXR5Q2hhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMuY2Fyb3VzZWxTZXJ2aWNlLnNldHRpbmdzLmF1dG9wbGF5KSB7XHJcbiAgICAgIHN3aXRjaCAodGhpcy5kb2N1bWVudFJlZi52aXNpYmlsaXR5U3RhdGUpIHtcclxuICAgICAgICBjYXNlIFVJQ2xhc3MuVmlzaWJsZTpcclxuICAgICAgICAgIGlmICghdGhpcy5hdXRvcGxheVNlcnZpY2UuaXNBdXRvcGxheVN0b3BwZWQpXHJcbiAgICAgICAgICAgIHRoaXMuYXV0b3BsYXlTZXJ2aWNlLnBsYXkoKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgVUlDbGFzcy5IaWRkZW46XHJcbiAgICAgICAgICB0aGlzLmF1dG9wbGF5U2VydmljZS5wYXVzZSgpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY2Fyb3VzZWxXaW5kb3dXaWR0aCA9IHRoaXMuY2xpZW50V2lkdGg7XHJcbiAgICB0aGlzLmluaXREYXRhU3RyZWFtcygpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xyXG4gICAgaWYgKGFueSh0aGlzLnNsaWRlcy50b0FycmF5KCkpKSB7XHJcbiAgICAgIHRoaXMuY2Fyb3VzZWxTZXJ2aWNlLnNldHVwKHRoaXMuY2Fyb3VzZWxXaW5kb3dXaWR0aCwgdGhpcy5zbGlkZXMudG9BcnJheSgpLCB0aGlzLm9wdGlvbnMpO1xyXG4gICAgICB0aGlzLmNhcm91c2VsU2VydmljZS5pbml0aWFsaXplKHRoaXMuc2xpZGVzLnRvQXJyYXkoKSk7XHJcblxyXG4gICAgICB0aGlzLmluaXRSZXNpemVXYXRjaGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zbGlkZXNDaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5zbGlkZXMuY2hhbmdlcy5waXBlKFxyXG4gICAgICB0YXAoKHNsaWRlcykgPT4ge1xyXG4gICAgICAgIGlmIChhbnkoc2xpZGVzKSkge1xyXG4gICAgICAgICAgdGhpcy5jYXJvdXNlbFNlcnZpY2Uuc2V0dXAodGhpcy5jYXJvdXNlbFdpbmRvd1dpZHRoLCBzbGlkZXMudG9BcnJheSgpLCB0aGlzLm9wdGlvbnMpO1xyXG4gICAgICAgICAgdGhpcy5jYXJvdXNlbFNlcnZpY2UuaW5pdGlhbGl6ZShzbGlkZXMudG9BcnJheSgpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jYXJvdXNlbExvYWRlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICkuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIGlmICh0aGlzLnJlc2l6ZVN1YnNjcmlwdGlvbilcclxuICAgICAgdGhpcy5yZXNpemVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICBpZiAodGhpcy5zbGlkZXNDaGFuZ2VzU3Vic2NyaXB0aW9uKVxyXG4gICAgICB0aGlzLnNsaWRlc0NoYW5nZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICBpZiAodGhpcy5jYXJvdXNlbFN1YnNjcmlwdGlvbilcclxuICAgICAgdGhpcy5jYXJvdXNlbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdERhdGFTdHJlYW1zKCkge1xyXG4gICAgY29uc3QgX3ZpZXdDdXJTZXR0aW5ncyQgPSB0aGlzLmNhcm91c2VsU2VydmljZS52aWV3Q3VycnJlbnRTZXR0aW5ncy5waXBlKFxyXG4gICAgICB0YXAoZGF0YSA9PiB7XHJcbiAgICAgICAgdGhpcy5jYXJvdXNlbERPTU1vZGVsID0gZGF0YS5jYXJvdXNlbERPTU1vZGVsO1xyXG4gICAgICAgIHRoaXMuc3RhZ2VNb2RlbCA9IGRhdGEuc3RhZ2VNb2RlbDtcclxuICAgICAgICB0aGlzLnNsaWRlc01vZGVsID0gZGF0YS5zbGlkZXNNb2RlbDtcclxuICAgICAgICBpZiAoIXRoaXMuY2Fyb3VzZWxMb2FkZWQpIHtcclxuICAgICAgICAgIHRoaXMuY2Fyb3VzZWxMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm5hdmlnYXRpb25Nb2RlbCA9IGRhdGEubmF2aWdhdGlvbk1vZGVsO1xyXG4gICAgICAgIHRoaXMubmF2aWdhdGlvbkRvdHNNb2RlbCA9IGRhdGEubmF2aWdhdGlvbkRvdHNNb2RlbDtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBfaW5pdGlhbGl6ZWRDYXJvdXNlbCQgPSB0aGlzLmNhcm91c2VsU2VydmljZS5pbml0aWFsaXplZFN0YXRlLnBpcGUoXHJcbiAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5nYXRoZXJUcmFuc2xhdGVkRGF0YSgpO1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQuZW1pdCh0aGlzLnNsaWRlRXZlbnQpO1xyXG4gICAgICB9KVxyXG4gICAgKVxyXG5cclxuICAgIGNvbnN0IF90cmFuc2xhdGVkQ2Fyb3VzZWwkID0gdGhpcy5jYXJvdXNlbFNlcnZpY2UudHJhbnNsYXRlZFN0YXRlLnBpcGUoXHJcbiAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5nYXRoZXJUcmFuc2xhdGVkRGF0YSgpO1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlZC5lbWl0KHRoaXMuc2xpZGVFdmVudCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IF9jaGFuZ2VDYXJvdXNlbCQgPSB0aGlzLmNhcm91c2VsU2VydmljZS5jaGFuZ2VTdGF0ZS5waXBlKFxyXG4gICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZ2F0aGVyVHJhbnNsYXRlZERhdGEoKTtcclxuICAgICAgICB0aGlzLmNoYW5naW5nLmVtaXQodGhpcy5zbGlkZUV2ZW50KTtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgX2NoYW5nZWRDYXJvdXNlbCQgPSB0aGlzLmNhcm91c2VsU2VydmljZS5jaGFuZ2VTdGF0ZS5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAodmFsdWUgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNoYW5nZWRQb3NpdGlvbjogT2JzZXJ2YWJsZTxDYXJvdXNlbFNsaWRlRXZlbnQ+ID0gb2YodmFsdWUpLnBpcGUoXHJcbiAgICAgICAgICBmaWx0ZXIoKCkgPT4gdmFsdWUucHJvcGVydHkubmFtZSA9PT0gQ2Fyb3VzZWxQcm9wZXJ0eS5Qb3NpdGlvbiksXHJcbiAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gZnJvbSh0aGlzLnNsaWRlc01vZGVsKSksXHJcbiAgICAgICAgICBza2lwKHZhbHVlLnByb3BlcnR5LnZhbHVlKSxcclxuICAgICAgICAgIHRha2UodGhpcy5jYXJvdXNlbFNlcnZpY2Uuc2V0dGluZ3MuaXRlbXMgfHwgMCksXHJcbiAgICAgICAgICBtYXAoc2xpZGUgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpZCA9IHNsaWRlLmlkLmluZGV4T2YoQ2Fyb3VzZWxTZXJ2aWNlQ29uc3RhbnRzLkNMT05FX0lEX1BSRUZJWCkgPj0gMCA/IHNsaWRlLmlkLnNsaWNlKENhcm91c2VsU2VydmljZUNvbnN0YW50cy5DTE9ORV9JRF9QUkVGSVgubGVuZ3RoKSA6IHNsaWRlLmlkO1xyXG4gICAgICAgICAgICByZXR1cm4geyAuLi5zbGlkZSwgaWQ6IGlkLCBpc0FjdGl2ZTogdHJ1ZSB9O1xyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICB0b0FycmF5KCksXHJcbiAgICAgICAgICBtYXAoc2xpZGVzID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICBzbGlkZXM6IHNsaWRlcyxcclxuICAgICAgICAgICAgICBzdGFydFBvc2l0aW9uOiB0aGlzLmNhcm91c2VsU2VydmljZS5yZWxhdGl2ZSh2YWx1ZS5wcm9wZXJ0eS52YWx1ZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4gbWVyZ2UoY2hhbmdlZFBvc2l0aW9uKTtcclxuICAgICAgfSksXHJcbiAgICAgIHRhcChzbGlkZXNEYXRhID0+IHtcclxuICAgICAgICB0aGlzLmdhdGhlclRyYW5zbGF0ZWREYXRhKCk7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VkLmVtaXQoc2xpZGVzRGF0YS5zbGlkZXM/Lmxlbmd0aCA/IHNsaWRlc0RhdGEgOiB0aGlzLnNsaWRlRXZlbnQpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmNhcm91c2VsU3Vic2NyaXB0aW9uID0gbWVyZ2UoXHJcbiAgICAgIF92aWV3Q3VyU2V0dGluZ3MkLFxyXG4gICAgICBfdHJhbnNsYXRlZENhcm91c2VsJCxcclxuICAgICAgX2NoYW5nZUNhcm91c2VsJCxcclxuICAgICAgX2NoYW5nZWRDYXJvdXNlbCQsXHJcbiAgICAgIF9pbml0aWFsaXplZENhcm91c2VsJFxyXG4gICAgKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdFJlc2l6ZVdhdGNoZXIoKSB7XHJcbiAgICBpZiAoT2JqZWN0LmtleXModGhpcy5jYXJvdXNlbFNlcnZpY2Uub3B0aW9ucy5yZXNwb25zaXZlIHx8IHt9KS5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5yZXNpemVTdWJzY3JpcHRpb24gPSB0aGlzLnJlc2l6ZVNlcnZpY2Uub25SZXNpemUkXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5jYXJvdXNlbFdpbmRvd1dpZHRoICE9PSB0aGlzLmNsaWVudFdpZHRoKSxcclxuICAgICAgICAgIGRlbGF5KHRoaXMuY2Fyb3VzZWxTZXJ2aWNlLnNldHRpbmdzLnJlc3BvbnNpdmVSZWZyZXNoUmF0ZSB8fCAwKVxyXG4gICAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY2Fyb3VzZWxTZXJ2aWNlLm9uUmVzaXplKHRoaXMuY2xpZW50V2lkdGgpO1xyXG4gICAgICAgICAgdGhpcy5jYXJvdXNlbFdpbmRvd1dpZHRoID0gdGhpcy5jbGllbnRXaWR0aDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uVHJhbnNpdGlvbkVuZCgpIHtcclxuICAgIHRoaXMuY2Fyb3VzZWxTZXJ2aWNlLm9uVHJhbnNpdGlvbkVuZCgpO1xyXG4gIH1cclxuXHJcbiAgbmV4dCgpIHtcclxuICAgIGlmICh0aGlzLmNhcm91c2VsTG9hZGVkKVxyXG4gICAgICB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLm5leHQodGhpcy5jYXJvdXNlbFNlcnZpY2Uuc2V0dGluZ3MubmF2U3BlZWQgfHwgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcHJldmlvdXMoKSB7XHJcbiAgICBpZiAodGhpcy5jYXJvdXNlbExvYWRlZClcclxuICAgICAgdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5wcmV2aW91cyh0aGlzLmNhcm91c2VsU2VydmljZS5zZXR0aW5ncy5uYXZTcGVlZCB8fCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBtb3ZlQnlEb3QoZG90SWQ6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuY2Fyb3VzZWxMb2FkZWQpXHJcbiAgICAgIHRoaXMubmF2aWdhdGlvblNlcnZpY2UubW92ZUJ5RG90KGRvdElkKTtcclxuICB9XHJcblxyXG4gIHBhdXNlKCkge1xyXG4gICAgdGhpcy5hdXRvcGxheVNlcnZpY2Uuc3RhcnRQYXVzaW5nKCk7XHJcbiAgfVxyXG5cclxuICBwbGF5KCkge1xyXG4gICAgdGhpcy5hdXRvcGxheVNlcnZpY2Uuc3RhcnRQbGF5aW5nTW91c2VMZWF2ZSgpO1xyXG4gIH1cclxuXHJcbiAgc3RvcEF1dG9wbGF5KCkge1xyXG4gICAgdGhpcy5hdXRvcGxheVNlcnZpY2UuaXNBdXRvcGxheVN0b3BwZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5hdXRvcGxheVNlcnZpY2Uuc3RvcCgpO1xyXG4gIH1cclxuXHJcbiAgc3RhcnRBdXRvcGxheSgpIHtcclxuICAgIHRoaXMuYXV0b3BsYXlTZXJ2aWNlLmlzQXV0b3BsYXlTdG9wcGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmF1dG9wbGF5U2VydmljZS5wbGF5KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdhdGhlclRyYW5zbGF0ZWREYXRhKCkge1xyXG4gICAgbGV0IHN0YXJ0UG9zaXRpb246IG51bWJlcjtcclxuICAgIGNvbnN0IGFjdGl2ZVNsaWRlczogQ2Fyb3VzZWxTbGlkZU1vZGVsW10gPSB0aGlzLnNsaWRlc01vZGVsXHJcbiAgICAgIC5maWx0ZXIoc2xpZGUgPT4gc2xpZGUuaXNBY3RpdmUgPT09IHRydWUpXHJcbiAgICAgIC5tYXAoc2xpZGUgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBpZDogc2xpZGUuaWQuaW5kZXhPZihDYXJvdXNlbFNlcnZpY2VDb25zdGFudHMuQ0xPTkVfSURfUFJFRklYKSA+PSAwID8gc2xpZGUuaWQuc2xpY2UoQ2Fyb3VzZWxTZXJ2aWNlQ29uc3RhbnRzLkNMT05FX0lEX1BSRUZJWC5sZW5ndGgpIDogc2xpZGUuaWQsXHJcbiAgICAgICAgICB3aWR0aDogc2xpZGUud2lkdGgsXHJcbiAgICAgICAgICBtYXJnaW5MOiBzbGlkZS5tYXJnaW5MLFxyXG4gICAgICAgICAgbWFyZ2luUjogc2xpZGUubWFyZ2luUixcclxuICAgICAgICAgIGNlbnRlcjogc2xpZGUuaXNDZW50ZXJlZCxcclxuICAgICAgICAgIHRwbFJlZjogbnVsbCxcclxuICAgICAgICAgIGNsYXNzZXM6IHt9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIHN0YXJ0UG9zaXRpb24gPSB0aGlzLmNhcm91c2VsU2VydmljZS5yZWxhdGl2ZSh0aGlzLmNhcm91c2VsU2VydmljZS5jdXJyZW50KCkgfHwgMCk7XHJcbiAgICB0aGlzLnNsaWRlRXZlbnQgPSB7XHJcbiAgICAgIHN0YXJ0UG9zaXRpb246IHN0YXJ0UG9zaXRpb24sXHJcbiAgICAgIHNsaWRlczogYWN0aXZlU2xpZGVzXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXJcIiAobW91c2VvdmVyKT1cInBhdXNlKClcIiAobW91c2VsZWF2ZSk9XCJwbGF5KClcIj5cclxuICAgIDxkaXYgKm5nSWY9XCJjYXJvdXNlbExvYWRlZFwiIGNsYXNzPVwic3RhZ2VcIj5cclxuICAgICAgICA8c2ZjLWNhcm91c2VsLXN0YWdlIFtzdGFnZU1vZGVsXT1cInN0YWdlTW9kZWxcIiBbc2xpZGVzTW9kZWxdPVwic2xpZGVzTW9kZWxcIj48L3NmYy1jYXJvdXNlbC1zdGFnZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNsaWRlcy50b0FycmF5KCkubGVuZ3RoXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hdmlnYXRpb25cIiBbY2xhc3MuZGlzYWJsZWRdPVwibmF2aWdhdGlvbk1vZGVsPy5kaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uIHByZXZpb3VzXCIgW2NsYXNzLmRpc2FibGVkXT1cIm5hdmlnYXRpb25Nb2RlbD8ucHJldmlvdXM/LmRpc2FibGVkXCIgKGNsaWNrKT1cInByZXZpb3VzKClcIj5cclxuICAgICAgICAgICAgICAgIHt7bmF2aWdhdGlvbk1vZGVsPy5wcmV2aW91cz8ubGFiZWx9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbiBuZXh0XCIgW2NsYXNzLmRpc2FibGVkXT1cIm5hdmlnYXRpb25Nb2RlbD8ubmV4dD8uZGlzYWJsZWRcIiAoY2xpY2spPVwibmV4dCgpXCI+XHJcbiAgICAgICAgICAgICAgICB7e25hdmlnYXRpb25Nb2RlbD8ubmV4dD8ubGFiZWx9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZG90c1wiIFtjbGFzcy5kaXNhYmxlZF09XCJuYXZpZ2F0aW9uRG90c01vZGVsPy5kaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBkb3Qgb2YgbmF2aWdhdGlvbkRvdHNNb2RlbD8uZG90c1wiIGNsYXNzPVwiZG90XCIgW2NsYXNzLmFjdGl2ZV09XCJkb3QuYWN0aXZlXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJtb3ZlQnlEb3QoZG90LmlkKVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj4iXX0=
@@ -0,0 +1,33 @@
1
+ export var CarouselProperty;
2
+ (function (CarouselProperty) {
3
+ CarouselProperty["Position"] = "position";
4
+ CarouselProperty["Settings"] = "settings";
5
+ CarouselProperty["Width"] = "width";
6
+ CarouselProperty["Items"] = "items";
7
+ })(CarouselProperty || (CarouselProperty = {}));
8
+ ;
9
+ export var CarouselState;
10
+ (function (CarouselState) {
11
+ CarouselState["Busy"] = "busy";
12
+ CarouselState["Interacting"] = "interacting";
13
+ CarouselState["Rotating"] = "rotating";
14
+ })(CarouselState || (CarouselState = {}));
15
+ ;
16
+ export var CarouselEventType;
17
+ (function (CarouselEventType) {
18
+ CarouselEventType["Initializing"] = "initializing";
19
+ CarouselEventType["Initialized"] = "initialized";
20
+ CarouselEventType["Change"] = "change";
21
+ CarouselEventType["Changed"] = "changed";
22
+ CarouselEventType["Resize"] = "resize";
23
+ CarouselEventType["Resizing"] = "resizing";
24
+ CarouselEventType["Resized"] = "resized";
25
+ CarouselEventType["Refresh"] = "refresh";
26
+ CarouselEventType["Refreshed"] = "refreshed";
27
+ CarouselEventType["Translate"] = "translate";
28
+ CarouselEventType["Translated"] = "translated";
29
+ CarouselEventType["Animating"] = "animating";
30
+ CarouselEventType["Refreshing"] = "refreshing";
31
+ })(CarouselEventType || (CarouselEventType = {}));
32
+ ;
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2Fyb3VzZWwvY2Fyb3VzZWwuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxnQkFLWDtBQUxELFdBQVksZ0JBQWdCO0lBQ3hCLHlDQUFxQixDQUFBO0lBQ3JCLHlDQUFxQixDQUFBO0lBQ3JCLG1DQUFlLENBQUE7SUFDZixtQ0FBZSxDQUFBO0FBQ25CLENBQUMsRUFMVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBSzNCO0FBQUEsQ0FBQztBQUVGLE1BQU0sQ0FBTixJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDckIsOEJBQWEsQ0FBQTtJQUNiLDRDQUEyQixDQUFBO0lBQzNCLHNDQUFxQixDQUFBO0FBQ3pCLENBQUMsRUFKVyxhQUFhLEtBQWIsYUFBYSxRQUl4QjtBQUFBLENBQUM7QUFFRixNQUFNLENBQU4sSUFBWSxpQkFjWDtBQWRELFdBQVksaUJBQWlCO0lBQ3pCLGtEQUE2QixDQUFBO0lBQzdCLGdEQUEyQixDQUFBO0lBQzNCLHNDQUFpQixDQUFBO0lBQ2pCLHdDQUFtQixDQUFBO0lBQ25CLHNDQUFpQixDQUFBO0lBQ2pCLDBDQUFxQixDQUFBO0lBQ3JCLHdDQUFtQixDQUFBO0lBQ25CLHdDQUFtQixDQUFBO0lBQ25CLDRDQUF1QixDQUFBO0lBQ3ZCLDRDQUF1QixDQUFBO0lBQ3ZCLDhDQUF5QixDQUFBO0lBQ3pCLDRDQUF1QixDQUFBO0lBQ3ZCLDhDQUF5QixDQUFBO0FBQzdCLENBQUMsRUFkVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBYzVCO0FBQUEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIENhcm91c2VsUHJvcGVydHkge1xyXG4gICAgUG9zaXRpb24gPSAncG9zaXRpb24nLFxyXG4gICAgU2V0dGluZ3MgPSAnc2V0dGluZ3MnLFxyXG4gICAgV2lkdGggPSAnd2lkdGgnLFxyXG4gICAgSXRlbXMgPSAnaXRlbXMnXHJcbn07XHJcblxyXG5leHBvcnQgZW51bSBDYXJvdXNlbFN0YXRlIHtcclxuICAgIEJ1c3kgPSAnYnVzeScsXHJcbiAgICBJbnRlcmFjdGluZyA9ICdpbnRlcmFjdGluZycsXHJcbiAgICBSb3RhdGluZyA9ICdyb3RhdGluZydcclxufTtcclxuXHJcbmV4cG9ydCBlbnVtIENhcm91c2VsRXZlbnRUeXBlIHtcclxuICAgIEluaXRpYWxpemluZyA9ICdpbml0aWFsaXppbmcnLFxyXG4gICAgSW5pdGlhbGl6ZWQgPSAnaW5pdGlhbGl6ZWQnLFxyXG4gICAgQ2hhbmdlID0gJ2NoYW5nZScsXHJcbiAgICBDaGFuZ2VkID0gJ2NoYW5nZWQnLFxyXG4gICAgUmVzaXplID0gJ3Jlc2l6ZScsXHJcbiAgICBSZXNpemluZyA9ICdyZXNpemluZycsXHJcbiAgICBSZXNpemVkID0gJ3Jlc2l6ZWQnLFxyXG4gICAgUmVmcmVzaCA9ICdyZWZyZXNoJyxcclxuICAgIFJlZnJlc2hlZCA9ICdyZWZyZXNoZWQnLFxyXG4gICAgVHJhbnNsYXRlID0gJ3RyYW5zbGF0ZScsXHJcbiAgICBUcmFuc2xhdGVkID0gJ3RyYW5zbGF0ZWQnLFxyXG4gICAgQW5pbWF0aW5nID0gJ2FuaW1hdGluZycsXHJcbiAgICBSZWZyZXNoaW5nID0gJ3JlZnJlc2hpbmcnICAgIFxyXG59OyJdfQ==
@@ -0,0 +1,31 @@
1
+ import { Directive, Input } from "@angular/core";
2
+ import { isNumeric } from "ngx-sfc-common";
3
+ import * as i0 from "@angular/core";
4
+ let nextId = 0;
5
+ /* eslint-disable */
6
+ export class CarouselSlideDirective {
7
+ constructor(tplRef) {
8
+ this.tplRef = tplRef;
9
+ this.id = `slide-${nextId++}`;
10
+ this._dataMerge = 1;
11
+ this.width = 0;
12
+ }
13
+ set dataMerge(data) {
14
+ this._dataMerge = isNumeric(data) ? data : 1;
15
+ }
16
+ ;
17
+ get dataMerge() { return this._dataMerge; }
18
+ }
19
+ CarouselSlideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CarouselSlideDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
20
+ CarouselSlideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: CarouselSlideDirective, selector: "ng-template[sfcCarouselSlide]", inputs: { id: "id", dataMerge: "dataMerge", width: "width" }, ngImport: i0 });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CarouselSlideDirective, decorators: [{
22
+ type: Directive,
23
+ args: [{ selector: 'ng-template[sfcCarouselSlide]' }]
24
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { id: [{
25
+ type: Input
26
+ }], dataMerge: [{
27
+ type: Input
28
+ }], width: [{
29
+ type: Input
30
+ }] } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtc2xpZGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYXJvdXNlbC9kaXJlY3RpdmUvY2Fyb3VzZWwtc2xpZGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFM0MsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBRWYsb0JBQW9CO0FBRXBCLE1BQU0sT0FBTyxzQkFBc0I7SUFlakMsWUFBbUIsTUFBd0I7UUFBeEIsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFaM0MsT0FBRSxHQUFHLFNBQVMsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUVqQixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBUXZCLFVBQUssR0FBRyxDQUFDLENBQUM7SUFFcUMsQ0FBQztJQVRoRCxJQUNJLFNBQVMsQ0FBQyxJQUFZO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQUEsQ0FBQztJQUNGLElBQUksU0FBUyxLQUFhLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQSxDQUFDLENBQUM7O21IQVZ2QyxzQkFBc0I7dUdBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQURsQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLCtCQUErQixFQUFFO2tHQUl0RCxFQUFFO3NCQURELEtBQUs7Z0JBS0YsU0FBUztzQkFEWixLQUFLO2dCQU9OLEtBQUs7c0JBREosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgaXNOdW1lcmljIH0gZnJvbSBcIm5neC1zZmMtY29tbW9uXCI7XHJcblxyXG5sZXQgbmV4dElkID0gMDtcclxuXHJcbi8qIGVzbGludC1kaXNhYmxlICovXHJcbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW3NmY0Nhcm91c2VsU2xpZGVdJyB9KVxyXG5leHBvcnQgY2xhc3MgQ2Fyb3VzZWxTbGlkZURpcmVjdGl2ZSB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaWQgPSBgc2xpZGUtJHtuZXh0SWQrK31gO1xyXG5cclxuICBwcml2YXRlIF9kYXRhTWVyZ2UgPSAxO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRhdGFNZXJnZShkYXRhOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2RhdGFNZXJnZSA9IGlzTnVtZXJpYyhkYXRhKSA/IGRhdGEgOiAxO1xyXG4gIH07XHJcbiAgZ2V0IGRhdGFNZXJnZSgpOiBudW1iZXIgeyByZXR1cm4gdGhpcy5fZGF0YU1lcmdlIH1cclxuXHJcbiAgQElucHV0KClcclxuICB3aWR0aCA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0cGxSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHsgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYXJvdXNlbC9tb2RlbHMvZG9tLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENhcm91c2VsRE9NTW9kZWwge1xyXG4gICAgcnRsOiBib29sZWFuO1xyXG4gICAgaXNSZXNwb25zaXZlOiBib29sZWFuO1xyXG4gICAgaXNSZWZyZXNoZWQ6IGJvb2xlYW47XHJcbiAgICBpc0xvYWRlZDogYm9vbGVhbjtcclxuICAgIGlzTG9hZGluZzogYm9vbGVhbjtcclxufSJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2Fyb3VzZWwvbW9kZWxzL25hdmlnYXRpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ2Fyb3VzZWxOYXZpZ2F0aW9uQnV0dG9uTW9kZWwge1xyXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENhcm91c2VsTmF2aWdhdGlvbk1vZGVsIHtcclxuICAgIGRpc2FibGVkOiBib29sZWFuO1xyXG4gICAgcHJldmlvdXM6IENhcm91c2VsTmF2aWdhdGlvbkJ1dHRvbk1vZGVsO1xyXG4gICAgbmV4dDogQ2Fyb3VzZWxOYXZpZ2F0aW9uQnV0dG9uTW9kZWw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2Fyb3VzZWxOYXZpZ2F0aW9uRG90IHtcclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICBhY3RpdmU6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2Fyb3VzZWxOYXZpZ2F0aW9uRG90c01vZGVsIHtcclxuICAgIGRpc2FibGVkOiBib29sZWFuO1xyXG4gICAgZG90czogQ2Fyb3VzZWxOYXZpZ2F0aW9uRG90W107XHJcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2Fyb3VzZWwvbW9kZWxzL29wdGlvbnMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ2Fyb3VzZWxPcHRpb25zIHtcclxuICAgIGl0ZW1zPzogbnVtYmVyO1xyXG4gICAgc2tpcF92YWxpZGF0ZUl0ZW1zPzogYm9vbGVhbjtcclxuICAgIGxvb3A/OiBib29sZWFuO1xyXG4gICAgY2VudGVyPzogYm9vbGVhbjtcclxuICAgIHJld2luZD86IGJvb2xlYW47XHJcbiAgICBtYXJnaW4/OiBudW1iZXI7XHJcbiAgICBzdGFnZVBhZGRpbmc/OiBudW1iZXI7XHJcbiAgICBtZXJnZT86IGJvb2xlYW47XHJcbiAgICBtZXJnZUZpdD86IGJvb2xlYW47XHJcbiAgICBhdXRvV2lkdGg/OiBib29sZWFuO1xyXG4gICAgcmVzcG9uc2l2ZVJlZnJlc2hSYXRlPzogbnVtYmVyO1xyXG4gICAgbmF2PzogYm9vbGVhbjtcclxuICAgIG5hdlNwZWVkPzogbnVtYmVyIHwgYm9vbGVhbjtcclxuICAgIHNsaWRlQnk/OiBudW1iZXIgfCBzdHJpbmc7XHJcbiAgICBkb3RzPzogYm9vbGVhbjtcclxuICAgIGRvdHNFYWNoPzogbnVtYmVyIHwgYm9vbGVhbjtcclxuICAgIGRvdHNTcGVlZD86IG51bWJlciB8IGJvb2xlYW47XHJcbiAgICBhdXRvcGxheT86IGJvb2xlYW47XHJcbiAgICBhdXRvcGxheVRpbWVvdXQ/OiBudW1iZXI7XHJcbiAgICBhdXRvcGxheVNwZWVkPzogbnVtYmVyIHwgYm9vbGVhbjtcclxuICAgIGF1dG9wbGF5TW91c2VsZWF2ZVRpbWVvdXQ/OiBudW1iZXI7XHJcbiAgICBzbGlkZVRyYW5zaXRpb24/OiBzdHJpbmc7XHJcbiAgICBhbmltYXRlT3V0Pzogc3RyaW5nIHwgYm9vbGVhbjtcclxuICAgIGFuaW1hdGVJbj86IHN0cmluZyB8IGJvb2xlYW47XHJcbiAgICBhdXRvSGVpZ2h0PzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDYXJvdXNlbFJlc3BvbnNpdmVNb2RlbCB7XHJcbiAgICBba2V5OiBudW1iZXJdOiBDYXJvdXNlbE9wdGlvbnM7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2Fyb3VzZWxPcHRpb25zTW9kZWwgZXh0ZW5kcyBDYXJvdXNlbE9wdGlvbnMge1xyXG4gICAgc3RhcnRQb3NpdGlvbj86IG51bWJlciB8IHN0cmluZztcclxuICAgIHJ0bD86IGJvb2xlYW47XHJcbiAgICByZXNwb25zaXZlPzogQ2Fyb3VzZWxSZXNwb25zaXZlTW9kZWw7XHJcbiAgICBuYXZUZXh0Pzogc3RyaW5nW107XHJcbiAgICBuYXZpZ2F0aW9uRG90c01vZGVsPzogYm9vbGVhbjtcclxuICAgIGF1dG9wbGF5SG92ZXJQYXVzZT86IGJvb2xlYW47XHJcbiAgICBsYXp5TG9hZD86IGJvb2xlYW47XHJcbiAgICBsYXp5TG9hZEVhZ2VyPzogbnVtYmVyO1xyXG59Il19
@@ -0,0 +1,3 @@
1
+ ;
2
+ export {};
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2Nhcm91c2VsL21vZGVscy9zbGlkZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEyQkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2Fyb3VzZWxTbGlkZU1vZGVsIHtcclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICBpc0FjdGl2ZT86IGJvb2xlYW47XHJcbiAgICB0cGxSZWY6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xyXG4gICAgZGF0YU1lcmdlPzogbnVtYmVyO1xyXG4gICAgd2lkdGg/OiBudW1iZXIgfCBzdHJpbmc7XHJcbiAgICBtYXJnaW5MPzogbnVtYmVyIHwgc3RyaW5nO1xyXG4gICAgbWFyZ2luUj86IG51bWJlciB8IHN0cmluZztcclxuICAgIGlzQ2VudGVyZWQ/OiBib29sZWFuO1xyXG4gICAgY2VudGVyPzogYm9vbGVhbjtcclxuICAgIGlzQ2xvbmVkPzogYm9vbGVhbjtcclxuICAgIGxvYWQ/OiBib29sZWFuO1xyXG4gICAgbGVmdD86IG51bWJlciB8IHN0cmluZztcclxuICAgIGNsYXNzZXM6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9O1xyXG4gICAgaXNBbmltYXRlZD86IGJvb2xlYW47XHJcbiAgICBpc0RlZkFuaW1hdGVkSW4/OiBib29sZWFuOyAgIFxyXG4gICAgaXNEZWZBbmltYXRlZE91dD86IGJvb2xlYW47ICAgXHJcbiAgICBpc0N1c3RvbUFuaW1hdGVkSW4/OiBib29sZWFuOyAgIFxyXG4gICAgaXNDdXN0b21BbmltYXRlZE91dD86IGJvb2xlYW47XHJcbiAgICBoZWlnaHRTdGF0ZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDYXJvdXNlbFNsaWRlRXZlbnQge1xyXG4gICAgc3RhcnRQb3NpdGlvbj86IG51bWJlcjtcclxuICAgIHNsaWRlcz86IENhcm91c2VsU2xpZGVNb2RlbFtdO1xyXG59OyJdfQ==
@@ -0,0 +1,83 @@
1
+ import { animate, state, style, transition, trigger } from '@angular/animations';
2
+ import { Component, Input } from '@angular/core';
3
+ import { CommonConstants } from 'ngx-sfc-common';
4
+ import { getCssLikeValue } from 'ngx-sfc-common';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../service/carousel/carousel.service";
7
+ import * as i2 from "../../service/animate/carousel-animate.service";
8
+ import * as i3 from "@angular/common";
9
+ export class CarouselStageComponent {
10
+ constructor(carouselService, animateService) {
11
+ this.carouselService = carouselService;
12
+ this.animateService = animateService;
13
+ this.stageModel = {
14
+ width: 0,
15
+ paddingL: 0,
16
+ paddingR: 0,
17
+ transform: CommonConstants.EMPTY_STRING,
18
+ transition: CommonConstants.EMPTY_STRING
19
+ };
20
+ this.slidesModel = [];
21
+ this.preparePublicSlide = (slide) => {
22
+ const newSlide = { ...slide };
23
+ newSlide.tplRef = null;
24
+ return newSlide;
25
+ };
26
+ }
27
+ get styles() {
28
+ return {
29
+ width: getCssLikeValue(this.stageModel.width),
30
+ transform: this.stageModel.transform,
31
+ transition: this.stageModel.transition,
32
+ paddingLeft: getCssLikeValue(this.stageModel.paddingL),
33
+ paddingRight: getCssLikeValue(this.stageModel.paddingR)
34
+ };
35
+ }
36
+ getItemStyles(slide) {
37
+ return {
38
+ width: getCssLikeValue(slide.width),
39
+ marginLeft: getCssLikeValue(slide.marginL),
40
+ marginRight: getCssLikeValue(slide.marginR),
41
+ left: getCssLikeValue(slide.left)
42
+ };
43
+ }
44
+ onTransitionEnd() {
45
+ this.carouselService.onTransitionEnd();
46
+ }
47
+ clear(id) {
48
+ this.animateService.clear(id);
49
+ }
50
+ }
51
+ CarouselStageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CarouselStageComponent, deps: [{ token: i1.CarouselService }, { token: i2.CarouselAnimateService }], target: i0.ɵɵFactoryTarget.Component });
52
+ CarouselStageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: CarouselStageComponent, selector: "sfc-carousel-stage", inputs: { stageModel: "stageModel", slidesModel: "slidesModel" }, ngImport: i0, template: "<div class=\"container\" [ngStyle]=\"styles\" (transitionend)=\"onTransitionEnd()\">\r\n <ng-container *ngFor=\"let slide of slidesModel; let i = index\">\r\n <div class=\"item\" [ngClass]=\"slide.classes\" [ngStyle]=\"getItemStyles(slide)\" (animationend)=\"clear(slide.id)\"\r\n [@autoHeight]=\"slide.heightState\">\r\n <ng-template *ngIf=\"slide.load\" [ngTemplateOutlet]=\"slide.tplRef\"\r\n [ngTemplateOutletContext]=\"{ $implicit: preparePublicSlide(slide), index: i }\">\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n</div>", styles: [":host .container{position:relative;touch-action:pan-y;touch-action:manipulation;-webkit-backface-visibility:hidden;backface-visibility:hidden}:host .container:after{content:\".\";display:block;clear:both;visibility:hidden;line-height:0;height:0}:host .container .item{-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translate(0);position:relative;min-height:1px;float:left;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}:host .container .item.center{z-index:5}:host .container .item img{display:block;width:100%}\n"], directives: [{ type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [
53
+ trigger('autoHeight', [
54
+ state('nulled', style({ height: 0 })),
55
+ state('full', style({ height: '*' })),
56
+ transition('full => nulled', [
57
+ animate('700ms 350ms')
58
+ ]),
59
+ transition('nulled => full', [
60
+ animate(350)
61
+ ]),
62
+ ])
63
+ ] });
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CarouselStageComponent, decorators: [{
65
+ type: Component,
66
+ args: [{ selector: 'sfc-carousel-stage', animations: [
67
+ trigger('autoHeight', [
68
+ state('nulled', style({ height: 0 })),
69
+ state('full', style({ height: '*' })),
70
+ transition('full => nulled', [
71
+ animate('700ms 350ms')
72
+ ]),
73
+ transition('nulled => full', [
74
+ animate(350)
75
+ ]),
76
+ ])
77
+ ], template: "<div class=\"container\" [ngStyle]=\"styles\" (transitionend)=\"onTransitionEnd()\">\r\n <ng-container *ngFor=\"let slide of slidesModel; let i = index\">\r\n <div class=\"item\" [ngClass]=\"slide.classes\" [ngStyle]=\"getItemStyles(slide)\" (animationend)=\"clear(slide.id)\"\r\n [@autoHeight]=\"slide.heightState\">\r\n <ng-template *ngIf=\"slide.load\" [ngTemplateOutlet]=\"slide.tplRef\"\r\n [ngTemplateOutletContext]=\"{ $implicit: preparePublicSlide(slide), index: i }\">\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n</div>", styles: [":host .container{position:relative;touch-action:pan-y;touch-action:manipulation;-webkit-backface-visibility:hidden;backface-visibility:hidden}:host .container:after{content:\".\";display:block;clear:both;visibility:hidden;line-height:0;height:0}:host .container .item{-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translate(0);position:relative;min-height:1px;float:left;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}:host .container .item.center{z-index:5}:host .container .item img{display:block;width:100%}\n"] }]
78
+ }], ctorParameters: function () { return [{ type: i1.CarouselService }, { type: i2.CarouselAnimateService }]; }, propDecorators: { stageModel: [{
79
+ type: Input
80
+ }], slidesModel: [{
81
+ type: Input
82
+ }] } });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtc3RhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYXJvdXNlbC9wYXJ0cy9zdGFnZS9jYXJvdXNlbC1zdGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2Nhcm91c2VsL3BhcnRzL3N0YWdlL2Nhcm91c2VsLXN0YWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUF1QmpELE1BQU0sT0FBTyxzQkFBc0I7SUF3QmpDLFlBQW9CLGVBQWdDLEVBQVUsY0FBc0M7UUFBaEYsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQXdCO1FBckJwRyxlQUFVLEdBQXVCO1lBQy9CLEtBQUssRUFBRSxDQUFDO1lBQ1IsUUFBUSxFQUFFLENBQUM7WUFDWCxRQUFRLEVBQUUsQ0FBQztZQUNYLFNBQVMsRUFBRSxlQUFlLENBQUMsWUFBWTtZQUN2QyxVQUFVLEVBQUUsZUFBZSxDQUFDLFlBQVk7U0FDekMsQ0FBQztRQUdGLGdCQUFXLEdBQXlCLEVBQUUsQ0FBQztRQStCdkMsdUJBQWtCLEdBQUcsQ0FBQyxLQUF5QixFQUFzQixFQUFFO1lBQ3JFLE1BQU0sUUFBUSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUM5QixRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUN2QixPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDLENBQUE7SUF2QnVHLENBQUM7SUFWekcsSUFBSSxNQUFNO1FBQ1IsT0FBTztZQUNMLEtBQUssRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFlLENBQUM7WUFDdkQsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUztZQUNwQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVO1lBQ3RDLFdBQVcsRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFrQixDQUFDO1lBQ2hFLFlBQVksRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFrQixDQUFDO1NBQ2xFLENBQUE7SUFDSCxDQUFDO0lBSUQsYUFBYSxDQUFDLEtBQXlCO1FBQ3JDLE9BQU87WUFDTCxLQUFLLEVBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQyxLQUFlLENBQUM7WUFDN0MsVUFBVSxFQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUMsT0FBaUIsQ0FBQztZQUNwRCxXQUFXLEVBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQyxPQUFpQixDQUFDO1lBQ3JELElBQUksRUFBRSxlQUFlLENBQUMsS0FBSyxDQUFDLElBQWMsQ0FBQztTQUM1QyxDQUFBO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxLQUFLLENBQUMsRUFBVTtRQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7O21IQXpDVSxzQkFBc0I7dUdBQXRCLHNCQUFzQiw0SEMxQm5DLCtsQkFTTSx3aENESVE7UUFDVixPQUFPLENBQUMsWUFBWSxFQUFFO1lBQ3BCLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDckMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNyQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQzNCLE9BQU8sQ0FBQyxhQUFhLENBQUM7YUFDdkIsQ0FBQztZQUNGLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDM0IsT0FBTyxDQUFDLEdBQUcsQ0FBQzthQUNiLENBQUM7U0FDSCxDQUFDO0tBQ0g7MkZBRVUsc0JBQXNCO2tCQWpCbEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FHbEI7d0JBQ1YsT0FBTyxDQUFDLFlBQVksRUFBRTs0QkFDcEIsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzs0QkFDckMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQzs0QkFDckMsVUFBVSxDQUFDLGdCQUFnQixFQUFFO2dDQUMzQixPQUFPLENBQUMsYUFBYSxDQUFDOzZCQUN2QixDQUFDOzRCQUNGLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRTtnQ0FDM0IsT0FBTyxDQUFDLEdBQUcsQ0FBQzs2QkFDYixDQUFDO3lCQUNILENBQUM7cUJBQ0g7MklBS0QsVUFBVTtzQkFEVCxLQUFLO2dCQVVOLFdBQVc7c0JBRFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbkNvbnN0YW50cyB9IGZyb20gJ25neC1zZmMtY29tbW9uJztcclxuaW1wb3J0IHsgZ2V0Q3NzTGlrZVZhbHVlIH0gZnJvbSAnbmd4LXNmYy1jb21tb24nO1xyXG5pbXBvcnQgeyBDYXJvdXNlbFNsaWRlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2xpZGUubW9kZWwnO1xyXG5pbXBvcnQgeyBDYXJvdXNlbEFuaW1hdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hbmltYXRlL2Nhcm91c2VsLWFuaW1hdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IENhcm91c2VsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvY2Fyb3VzZWwvY2Fyb3VzZWwuc2VydmljZSc7XHJcbmltcG9ydCB7IENhcm91c2VsU3RhZ2VNb2RlbCB9IGZyb20gJy4vY2Fyb3VzZWwtc3RhZ2UubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzZmMtY2Fyb3VzZWwtc3RhZ2UnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJvdXNlbC1zdGFnZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2Fyb3VzZWwtc3RhZ2UuY29tcG9uZW50LnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKCdhdXRvSGVpZ2h0JywgW1xyXG4gICAgICBzdGF0ZSgnbnVsbGVkJywgc3R5bGUoeyBoZWlnaHQ6IDAgfSkpLFxyXG4gICAgICBzdGF0ZSgnZnVsbCcsIHN0eWxlKHsgaGVpZ2h0OiAnKicgfSkpLFxyXG4gICAgICB0cmFuc2l0aW9uKCdmdWxsID0+IG51bGxlZCcsIFtcclxuICAgICAgICBhbmltYXRlKCc3MDBtcyAzNTBtcycpXHJcbiAgICAgIF0pLFxyXG4gICAgICB0cmFuc2l0aW9uKCdudWxsZWQgPT4gZnVsbCcsIFtcclxuICAgICAgICBhbmltYXRlKDM1MClcclxuICAgICAgXSksXHJcbiAgICBdKVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIENhcm91c2VsU3RhZ2VDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHN0YWdlTW9kZWw6IENhcm91c2VsU3RhZ2VNb2RlbCA9IHtcclxuICAgIHdpZHRoOiAwLFxyXG4gICAgcGFkZGluZ0w6IDAsXHJcbiAgICBwYWRkaW5nUjogMCxcclxuICAgIHRyYW5zZm9ybTogQ29tbW9uQ29uc3RhbnRzLkVNUFRZX1NUUklORyxcclxuICAgIHRyYW5zaXRpb246IENvbW1vbkNvbnN0YW50cy5FTVBUWV9TVFJJTkdcclxuICB9O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNsaWRlc01vZGVsOiBDYXJvdXNlbFNsaWRlTW9kZWxbXSA9IFtdO1xyXG5cclxuICBnZXQgc3R5bGVzKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgd2lkdGg6IGdldENzc0xpa2VWYWx1ZSh0aGlzLnN0YWdlTW9kZWwud2lkdGggYXMgbnVtYmVyKSxcclxuICAgICAgdHJhbnNmb3JtOiB0aGlzLnN0YWdlTW9kZWwudHJhbnNmb3JtLFxyXG4gICAgICB0cmFuc2l0aW9uOiB0aGlzLnN0YWdlTW9kZWwudHJhbnNpdGlvbixcclxuICAgICAgcGFkZGluZ0xlZnQ6IGdldENzc0xpa2VWYWx1ZSh0aGlzLnN0YWdlTW9kZWwucGFkZGluZ0wgYXMgbnVtYmVyKSxcclxuICAgICAgcGFkZGluZ1JpZ2h0OiBnZXRDc3NMaWtlVmFsdWUodGhpcy5zdGFnZU1vZGVsLnBhZGRpbmdSIGFzIG51bWJlcilcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2Fyb3VzZWxTZXJ2aWNlOiBDYXJvdXNlbFNlcnZpY2UsIHByaXZhdGUgYW5pbWF0ZVNlcnZpY2U6IENhcm91c2VsQW5pbWF0ZVNlcnZpY2UpIHsgfVxyXG5cclxuICBnZXRJdGVtU3R5bGVzKHNsaWRlOiBDYXJvdXNlbFNsaWRlTW9kZWwpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHdpZHRoOiBnZXRDc3NMaWtlVmFsdWUoc2xpZGUud2lkdGggYXMgbnVtYmVyKSxcclxuICAgICAgbWFyZ2luTGVmdDogZ2V0Q3NzTGlrZVZhbHVlKHNsaWRlLm1hcmdpbkwgYXMgbnVtYmVyKSxcclxuICAgICAgbWFyZ2luUmlnaHQ6IGdldENzc0xpa2VWYWx1ZShzbGlkZS5tYXJnaW5SIGFzIG51bWJlciksXHJcbiAgICAgIGxlZnQ6IGdldENzc0xpa2VWYWx1ZShzbGlkZS5sZWZ0IGFzIG51bWJlcilcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uVHJhbnNpdGlvbkVuZCgpIHtcclxuICAgIHRoaXMuY2Fyb3VzZWxTZXJ2aWNlLm9uVHJhbnNpdGlvbkVuZCgpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIoaWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5hbmltYXRlU2VydmljZS5jbGVhcihpZCk7XHJcbiAgfVxyXG5cclxuICBwcmVwYXJlUHVibGljU2xpZGUgPSAoc2xpZGU6IENhcm91c2VsU2xpZGVNb2RlbCk6IENhcm91c2VsU2xpZGVNb2RlbCA9PiB7XHJcbiAgICBjb25zdCBuZXdTbGlkZSA9IHsgLi4uc2xpZGUgfTtcclxuICAgIG5ld1NsaWRlLnRwbFJlZiA9IG51bGw7XHJcbiAgICByZXR1cm4gbmV3U2xpZGU7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBbbmdTdHlsZV09XCJzdHlsZXNcIiAodHJhbnNpdGlvbmVuZCk9XCJvblRyYW5zaXRpb25FbmQoKVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2xpZGUgb2Ygc2xpZGVzTW9kZWw7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiIFtuZ0NsYXNzXT1cInNsaWRlLmNsYXNzZXNcIiBbbmdTdHlsZV09XCJnZXRJdGVtU3R5bGVzKHNsaWRlKVwiIChhbmltYXRpb25lbmQpPVwiY2xlYXIoc2xpZGUuaWQpXCJcclxuICAgICAgICAgICAgW0BhdXRvSGVpZ2h0XT1cInNsaWRlLmhlaWdodFN0YXRlXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cInNsaWRlLmxvYWRcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJzbGlkZS50cGxSZWZcIlxyXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBwcmVwYXJlUHVibGljU2xpZGUoc2xpZGUpLCBpbmRleDogaSB9XCI+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+Il19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtc3RhZ2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2Nhcm91c2VsL3BhcnRzL3N0YWdlL2Nhcm91c2VsLXN0YWdlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENhcm91c2VsU3RhZ2VNb2RlbCB7XHJcbiAgICB0cmFuc2Zvcm06IHN0cmluZztcclxuICAgIHRyYW5zaXRpb246IHN0cmluZztcclxuICAgIHdpZHRoOiBudW1iZXIgfCBzdHJpbmc7XHJcbiAgICBwYWRkaW5nTDogbnVtYmVyIHwgc3RyaW5nO1xyXG4gICAgcGFkZGluZ1I6IG51bWJlciB8IHN0cmluZztcclxufVxyXG4iXX0=
@@ -0,0 +1,86 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { CommonConstants } from 'ngx-sfc-common';
3
+ import { getCssLikeValue } from 'ngx-sfc-common';
4
+ import { tap, merge } from 'rxjs';
5
+ import { CarouselProperty } from '../../carousel.enum';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../carousel/carousel.service";
8
+ export class CarouselAnimateService {
9
+ constructor(carouselService) {
10
+ this.carouselService = carouselService;
11
+ this.swapping = true;
12
+ this.next = undefined;
13
+ this.initDataStreams();
14
+ }
15
+ ngOnDestroy() {
16
+ this.animateSubscription.unsubscribe();
17
+ }
18
+ initDataStreams() {
19
+ const changeSettings$ = this.carouselService.changeState.pipe(tap(data => {
20
+ if (data.property.name === CarouselProperty.Position) {
21
+ this.previous = this.carouselService.current();
22
+ this.next = data.property.value;
23
+ }
24
+ }));
25
+ const translateCarousel$ = this.carouselService.translateState.pipe(tap(() => {
26
+ if (this.swapping && (this.carouselService.options.animateOut || this.carouselService.options.animateIn)) {
27
+ this.swap();
28
+ }
29
+ }));
30
+ this.animateSubscription = merge(changeSettings$, translateCarousel$).subscribe();
31
+ }
32
+ swap() {
33
+ if (this.carouselService.settings.items !== 1)
34
+ return;
35
+ this.carouselService.speed(0);
36
+ let left;
37
+ const previous = this.carouselService.slidesModel[this.previous || 0], next = this.carouselService.slidesModel[this.next || 0], incoming = this.carouselService.settings.animateIn, outgoing = this.carouselService.settings.animateOut;
38
+ if (this.carouselService.current() === this.previous)
39
+ return;
40
+ if (outgoing) {
41
+ left = +this.carouselService.coordinates(this.previous) - +this.carouselService.coordinates(this.next);
42
+ this.carouselService.slidesModel.forEach(slide => {
43
+ if (slide.id === previous.id) {
44
+ slide.left = getCssLikeValue(left);
45
+ slide.isAnimated = true;
46
+ slide.isDefAnimatedOut = true;
47
+ slide.isCustomAnimatedOut = true;
48
+ }
49
+ });
50
+ }
51
+ if (incoming) {
52
+ this.carouselService.slidesModel.forEach(slide => {
53
+ if (slide.id === next.id) {
54
+ slide.isAnimated = true;
55
+ slide.isDefAnimatedIn = true;
56
+ slide.isCustomAnimatedIn = true;
57
+ }
58
+ });
59
+ }
60
+ }
61
+ ;
62
+ clear(id) {
63
+ this.carouselService.slidesModel.forEach(slide => {
64
+ if (slide.id === id) {
65
+ slide.left = CommonConstants.EMPTY_STRING;
66
+ slide.isAnimated = false;
67
+ slide.isDefAnimatedOut = false;
68
+ slide.isCustomAnimatedOut = false;
69
+ slide.isDefAnimatedIn = false;
70
+ slide.isCustomAnimatedIn = false;
71
+ slide.classes = this.carouselService.setCurrentSlideClasses(slide);
72
+ }
73
+ });
74
+ this.carouselService.onTransitionEnd();
75
+ }
76
+ ;
77
+ }
78
+ CarouselAnimateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CarouselAnimateService, deps: [{ token: i1.CarouselService }], target: i0.ɵɵFactoryTarget.Injectable });
79
+ CarouselAnimateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CarouselAnimateService, providedIn: 'root' });
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CarouselAnimateService, decorators: [{
81
+ type: Injectable,
82
+ args: [{
83
+ providedIn: 'root'
84
+ }]
85
+ }], ctorParameters: function () { return [{ type: i1.CarouselService }]; } });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtYW5pbWF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYXJvdXNlbC9zZXJ2aWNlL2FuaW1hdGUvY2Fyb3VzZWwtYW5pbWF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUE0QixLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQU12RCxNQUFNLE9BQU8sc0JBQXNCO0lBVWpDLFlBQW9CLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQVI1QyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBSWhCLFNBQUksR0FBRyxTQUFTLENBQUM7UUFLdkIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFTyxlQUFlO1FBQ3JCLE1BQU0sZUFBZSxHQUFvQixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzVFLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNULElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsUUFBUSxFQUFFO2dCQUNwRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7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SyxFQUFFLEVBQUU7Z0JBQ25CLEtBQUssQ0FBQyxJQUFJLEdBQUcsZUFBZSxDQUFDLFlBQVksQ0FBQztnQkFDMUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7Z0JBQ3pCLEtBQUssQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7Z0JBQy9CLEtBQUssQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7Z0JBQ2xDLEtBQUssQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO2dCQUM5QixLQUFLLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO2dCQUNqQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDcEU7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUFBLENBQUM7O21IQTFGUyxzQkFBc0I7dUhBQXRCLHNCQUFzQixjQUZyQixNQUFNOzJGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uQ29uc3RhbnRzIH0gZnJvbSAnbmd4LXNmYy1jb21tb24nO1xyXG5pbXBvcnQgeyBnZXRDc3NMaWtlVmFsdWUgfSBmcm9tICduZ3gtc2ZjLWNvbW1vbic7XHJcbmltcG9ydCB7IHRhcCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBtZXJnZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDYXJvdXNlbFByb3BlcnR5IH0gZnJvbSAnLi4vLi4vY2Fyb3VzZWwuZW51bSc7XHJcbmltcG9ydCB7IENhcm91c2VsU2VydmljZSB9IGZyb20gJy4uL2Nhcm91c2VsL2Nhcm91c2VsLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2Fyb3VzZWxBbmltYXRlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gIHByaXZhdGUgc3dhcHBpbmcgPSB0cnVlO1xyXG5cclxuICBwcml2YXRlIHByZXZpb3VzPzogbnVtYmVyO1xyXG5cclxuICBwcml2YXRlIG5leHQgPSB1bmRlZmluZWQ7XHJcblxyXG4gIHByaXZhdGUgYW5pbWF0ZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjYXJvdXNlbFNlcnZpY2U6IENhcm91c2VsU2VydmljZSkge1xyXG4gICAgdGhpcy5pbml0RGF0YVN0cmVhbXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5hbmltYXRlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXREYXRhU3RyZWFtcygpIHtcclxuICAgIGNvbnN0IGNoYW5nZVNldHRpbmdzJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5jYXJvdXNlbFNlcnZpY2UuY2hhbmdlU3RhdGUucGlwZShcclxuICAgICAgdGFwKGRhdGEgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhLnByb3BlcnR5Lm5hbWUgPT09IENhcm91c2VsUHJvcGVydHkuUG9zaXRpb24pIHtcclxuICAgICAgICAgIHRoaXMucHJldmlvdXMgPSB0aGlzLmNhcm91c2VsU2VydmljZS5jdXJyZW50KCk7XHJcbiAgICAgICAgICB0aGlzLm5leHQgPSBkYXRhLnByb3BlcnR5LnZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgdHJhbnNsYXRlQ2Fyb3VzZWwkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLmNhcm91c2VsU2VydmljZS50cmFuc2xhdGVTdGF0ZS5waXBlKFxyXG4gICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLnN3YXBwaW5nICYmICh0aGlzLmNhcm91c2VsU2VydmljZS5vcHRpb25zLmFuaW1hdGVPdXQgfHwgdGhpcy5jYXJvdXNlbFNlcnZpY2Uub3B0aW9ucy5hbmltYXRlSW4pKSB7XHJcbiAgICAgICAgICB0aGlzLnN3YXAoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuYW5pbWF0ZVN1YnNjcmlwdGlvbiA9IG1lcmdlKGNoYW5nZVNldHRpbmdzJCwgdHJhbnNsYXRlQ2Fyb3VzZWwkKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3dhcCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNhcm91c2VsU2VydmljZS5zZXR0aW5ncy5pdGVtcyAhPT0gMSlcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuY2Fyb3VzZWxTZXJ2aWNlLnNwZWVkKDApO1xyXG5cclxuICAgIGxldCBsZWZ0OiBudW1iZXI7XHJcbiAgICBjb25zdCBwcmV2aW91cyA9IHRoaXMuY2Fyb3VzZWxTZXJ2aWNlLnNsaWRlc01vZGVsW3RoaXMucHJldmlvdXMgfHwgMF0sXHJcbiAgICAgIG5leHQgPSB0aGlzLmNhcm91c2VsU2VydmljZS5zbGlkZXNNb2RlbFt0aGlzLm5leHQgfHwgMF0sXHJcbiAgICAgIGluY29taW5nID0gdGhpcy5jYXJvdXNlbFNlcnZpY2Uuc2V0dGluZ3MuYW5pbWF0ZUluLFxyXG4gICAgICBvdXRnb2luZyA9IHRoaXMuY2Fyb3VzZWxTZXJ2aWNlLnNldHRpbmdzLmFuaW1hdGVPdXQ7XHJcblxyXG4gICAgaWYgKHRoaXMuY2Fyb3VzZWxTZXJ2aWNlLmN1cnJlbnQoKSA9PT0gdGhpcy5wcmV2aW91cylcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIGlmIChvdXRnb2luZykge1xyXG4gICAgICBsZWZ0ID0gK3RoaXMuY2Fyb3VzZWxTZXJ2aWNlLmNvb3JkaW5hdGVzKHRoaXMucHJldmlvdXMpIC0gK3RoaXMuY2Fyb3VzZWxTZXJ2aWNlLmNvb3JkaW5hdGVzKHRoaXMubmV4dCk7XHJcbiAgICAgIHRoaXMuY2Fyb3VzZWxTZXJ2aWNlLnNsaWRlc01vZGVsLmZvckVhY2goc2xpZGUgPT4ge1xyXG4gICAgICAgIGlmIChzbGlkZS5pZCA9PT0gcHJldmlvdXMuaWQpIHtcclxuICAgICAgICAgIHNsaWRlLmxlZnQgPSBnZXRDc3NMaWtlVmFsdWUobGVmdCk7XHJcbiAgICAgICAgICBzbGlkZS5pc0FuaW1hdGVkID0gdHJ1ZTtcclxuICAgICAgICAgIHNsaWRlLmlzRGVmQW5pbWF0ZWRPdXQgPSB0cnVlO1xyXG4gICAgICAgICAgc2xpZGUuaXNDdXN0b21BbmltYXRlZE91dCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaW5jb21pbmcpIHtcclxuICAgICAgdGhpcy5jYXJvdXNlbFNlcnZpY2Uuc2xpZGVzTW9kZWwuZm9yRWFjaChzbGlkZSA9PiB7XHJcbiAgICAgICAgaWYgKHNsaWRlLmlkID09PSBuZXh0LmlkKSB7XHJcbiAgICAgICAgICBzbGlkZS5pc0FuaW1hdGVkID0gdHJ1ZTtcclxuICAgICAgICAgIHNsaWRlLmlzRGVmQW5pbWF0ZWRJbiA9IHRydWU7XHJcbiAgICAgICAgICBzbGlkZS5pc0N1c3RvbUFuaW1hdGVkSW4gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgY2xlYXIoaWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5jYXJvdXNlbFNlcnZpY2Uuc2xpZGVzTW9kZWwuZm9yRWFjaChzbGlkZSA9PiB7XHJcbiAgICAgIGlmIChzbGlkZS5pZCA9PT0gaWQpIHtcclxuICAgICAgICBzbGlkZS5sZWZ0ID0gQ29tbW9uQ29uc3RhbnRzLkVNUFRZX1NUUklORztcclxuICAgICAgICBzbGlkZS5pc0FuaW1hdGVkID0gZmFsc2U7XHJcbiAgICAgICAgc2xpZGUuaXNEZWZBbmltYXRlZE91dCA9IGZhbHNlO1xyXG4gICAgICAgIHNsaWRlLmlzQ3VzdG9tQW5pbWF0ZWRPdXQgPSBmYWxzZTtcclxuICAgICAgICBzbGlkZS5pc0RlZkFuaW1hdGVkSW4gPSBmYWxzZTtcclxuICAgICAgICBzbGlkZS5pc0N1c3RvbUFuaW1hdGVkSW4gPSBmYWxzZTtcclxuICAgICAgICBzbGlkZS5jbGFzc2VzID0gdGhpcy5jYXJvdXNlbFNlcnZpY2Uuc2V0Q3VycmVudFNsaWRlQ2xhc3NlcyhzbGlkZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5jYXJvdXNlbFNlcnZpY2Uub25UcmFuc2l0aW9uRW5kKCk7XHJcbiAgfTtcclxufVxyXG4iXX0=