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,59 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { tap, merge } from 'rxjs';
3
+ import { CarouselEventType, CarouselProperty } from '../../carousel.enum';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../carousel/carousel.service";
6
+ export class CarouselLazyLoadService {
7
+ constructor(carouselService) {
8
+ this.carouselService = carouselService;
9
+ this.initDataStreams();
10
+ }
11
+ ngOnDestroy() {
12
+ this.lazyLoadSubscription.unsubscribe();
13
+ }
14
+ initDataStreams() {
15
+ const initializedCarousel$ = this.carouselService.initializedState.pipe(tap(() => {
16
+ const isLazyLoad = this.carouselService.settings && !this.carouselService.settings.lazyLoad;
17
+ this.carouselService.slidesModel.forEach(item => item.load = isLazyLoad ? true : false);
18
+ }));
19
+ const changeSettings$ = this.carouselService.changeState;
20
+ const resizedCarousel$ = this.carouselService.resizedState;
21
+ this.lazyLoadSubscription = merge(initializedCarousel$, changeSettings$, resizedCarousel$).pipe(tap(data => this.defineLazyLoadSlides(data))).subscribe();
22
+ }
23
+ defineLazyLoadSlides(data) {
24
+ if (!this.carouselService.settings || !this.carouselService.settings.lazyLoad)
25
+ return;
26
+ if ((data.property && data.property.name === CarouselProperty.Position) || data === CarouselEventType.Initialized || data === CarouselEventType.Resized) {
27
+ const settings = this.carouselService.settings, clones = this.carouselService.clones().length;
28
+ let n = (settings.center && Math.ceil((settings.items || 0) / 2) || settings.items) || 0, i = ((settings.center && n * -1) || 0), position = (data.property && data.property.value !== undefined ? data.property.value : this.carouselService.current()) + i;
29
+ if ((settings.lazyLoadEager || 0) > 0) {
30
+ n += settings.lazyLoadEager || 0;
31
+ if (settings.loop) {
32
+ position -= settings.lazyLoadEager || 0;
33
+ n++;
34
+ }
35
+ }
36
+ while (i++ < n) {
37
+ this.load(clones / 2 + this.carouselService.relative(position));
38
+ if (clones) {
39
+ this.carouselService.clones(this.carouselService.relative(position)).forEach(value => this.load(value));
40
+ }
41
+ position++;
42
+ }
43
+ }
44
+ }
45
+ load(position) {
46
+ if (this.carouselService.slidesModel[position].load)
47
+ return;
48
+ this.carouselService.slidesModel[position].load = true;
49
+ }
50
+ }
51
+ CarouselLazyLoadService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CarouselLazyLoadService, deps: [{ token: i1.CarouselService }], target: i0.ɵɵFactoryTarget.Injectable });
52
+ CarouselLazyLoadService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CarouselLazyLoadService, providedIn: 'root' });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CarouselLazyLoadService, decorators: [{
54
+ type: Injectable,
55
+ args: [{
56
+ providedIn: 'root'
57
+ }]
58
+ }], ctorParameters: function () { return [{ type: i1.CarouselService }]; } });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtbGF6eS1sb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2Nhcm91c2VsL3NlcnZpY2UvbGF6eS9jYXJvdXNlbC1sYXp5LWxvYWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUE0QixNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBTTFFLE1BQU0sT0FBTyx1QkFBdUI7SUFJbEMsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2xELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRU8sZUFBZTtRQUNyQixNQUFNLG9CQUFvQixHQUF1QixJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDekYsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQzVGLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFGLENBQUMsQ0FB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QUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3pELENBQUM7O29IQS9EVSx1QkFBdUI7d0hBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzJGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdGFwLCBtZXJnZSwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENhcm91c2VsRXZlbnRUeXBlLCBDYXJvdXNlbFByb3BlcnR5IH0gZnJvbSAnLi4vLi4vY2Fyb3VzZWwuZW51bSc7XHJcbmltcG9ydCB7IENhcm91c2VsU2VydmljZSB9IGZyb20gJy4uL2Nhcm91c2VsL2Nhcm91c2VsLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2Fyb3VzZWxMYXp5TG9hZFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwcml2YXRlIGxhenlMb2FkU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNhcm91c2VsU2VydmljZTogQ2Fyb3VzZWxTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmluaXREYXRhU3RyZWFtcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmxhenlMb2FkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXREYXRhU3RyZWFtcygpIHtcclxuICAgIGNvbnN0IGluaXRpYWxpemVkQ2Fyb3VzZWwkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLmNhcm91c2VsU2VydmljZS5pbml0aWFsaXplZFN0YXRlLnBpcGUoXHJcbiAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaXNMYXp5TG9hZCA9IHRoaXMuY2Fyb3VzZWxTZXJ2aWNlLnNldHRpbmdzICYmICF0aGlzLmNhcm91c2VsU2VydmljZS5zZXR0aW5ncy5sYXp5TG9hZDtcclxuICAgICAgICB0aGlzLmNhcm91c2VsU2VydmljZS5zbGlkZXNNb2RlbC5mb3JFYWNoKGl0ZW0gPT4gaXRlbS5sb2FkID0gaXNMYXp5TG9hZCA/IHRydWUgOiBmYWxzZSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IGNoYW5nZVNldHRpbmdzJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5jYXJvdXNlbFNlcnZpY2UuY2hhbmdlU3RhdGU7XHJcblxyXG4gICAgY29uc3QgcmVzaXplZENhcm91c2VsJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5jYXJvdXNlbFNlcnZpY2UucmVzaXplZFN0YXRlO1xyXG5cclxuICAgIHRoaXMubGF6eUxvYWRTdWJzY3JpcHRpb24gPSBtZXJnZShpbml0aWFsaXplZENhcm91c2VsJCwgY2hhbmdlU2V0dGluZ3MkLCByZXNpemVkQ2Fyb3VzZWwkKS5waXBlKFxyXG4gICAgICB0YXAoZGF0YSA9PiB0aGlzLmRlZmluZUxhenlMb2FkU2xpZGVzKGRhdGEpKVxyXG4gICAgKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGVmaW5lTGF6eUxvYWRTbGlkZXMoZGF0YTogYW55KSB7XHJcbiAgICBpZiAoIXRoaXMuY2Fyb3VzZWxTZXJ2aWNlLnNldHRpbmdzIHx8ICF0aGlzLmNhcm91c2VsU2VydmljZS5zZXR0aW5ncy5sYXp5TG9hZClcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIGlmICgoZGF0YS5wcm9wZXJ0eSAmJiBkYXRhLnByb3BlcnR5Lm5hbWUgPT09IENhcm91c2VsUHJvcGVydHkuUG9zaXRpb24pIHx8IGRhdGEgPT09IENhcm91c2VsRXZlbnRUeXBlLkluaXRpYWxpemVkIHx8IGRhdGEgPT09IENhcm91c2VsRXZlbnRUeXBlLlJlc2l6ZWQpIHtcclxuICAgICAgY29uc3Qgc2V0dGluZ3MgPSB0aGlzLmNhcm91c2VsU2VydmljZS5zZXR0aW5ncyxcclxuICAgICAgICBjbG9uZXMgPSB0aGlzLmNhcm91c2VsU2VydmljZS5jbG9uZXMoKS5sZW5ndGg7XHJcbiAgICAgIGxldCBuID0gKHNldHRpbmdzLmNlbnRlciAmJiBNYXRoLmNlaWwoKHNldHRpbmdzLml0ZW1zIHx8IDApIC8gMikgfHwgc2V0dGluZ3MuaXRlbXMpIHx8IDAsXHJcbiAgICAgICAgaSA9ICgoc2V0dGluZ3MuY2VudGVyICYmIG4gKiAtMSkgfHwgMCksXHJcbiAgICAgICAgcG9zaXRpb24gPSAoZGF0YS5wcm9wZXJ0eSAmJiBkYXRhLnByb3BlcnR5LnZhbHVlICE9PSB1bmRlZmluZWQgPyBkYXRhLnByb3BlcnR5LnZhbHVlIDogdGhpcy5jYXJvdXNlbFNlcnZpY2UuY3VycmVudCgpKSArIGk7XHJcbiAgICAgIGlmICgoc2V0dGluZ3MubGF6eUxvYWRFYWdlciB8fCAwKSA+IDApIHtcclxuICAgICAgICBuICs9IHNldHRpbmdzLmxhenlMb2FkRWFnZXIgfHwgMDtcclxuICAgICAgICBpZiAoc2V0dGluZ3MubG9vcCkge1xyXG4gICAgICAgICAgcG9zaXRpb24gLT0gc2V0dGluZ3MubGF6eUxvYWRFYWdlciB8fCAwO1xyXG4gICAgICAgICAgbisrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgd2hpbGUgKGkrKyA8IG4pIHtcclxuICAgICAgICB0aGlzLmxvYWQoY2xvbmVzIC8gMiArIHRoaXMuY2Fyb3VzZWxTZXJ2aWNlLnJlbGF0aXZlKHBvc2l0aW9uKSk7XHJcbiAgICAgICAgaWYgKGNsb25lcykge1xyXG4gICAgICAgICAgdGhpcy5jYXJvdXNlbFNlcnZpY2UuY2xvbmVzKHRoaXMuY2Fyb3VzZWxTZXJ2aWNlLnJlbGF0aXZlKHBvc2l0aW9uKSkuZm9yRWFjaCh2YWx1ZSA9PiB0aGlzLmxvYWQodmFsdWUpKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBvc2l0aW9uKys7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZChwb3NpdGlvbjogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5jYXJvdXNlbFNlcnZpY2Uuc2xpZGVzTW9kZWxbcG9zaXRpb25dLmxvYWQpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmNhcm91c2VsU2VydmljZS5zbGlkZXNNb2RlbFtwb3NpdGlvbl0ubG9hZCA9IHRydWU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,211 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { CommonConstants } from 'ngx-sfc-common';
3
+ import { tap, filter, merge } from 'rxjs';
4
+ import { CarouselProperty } from '../../carousel.enum';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../carousel/carousel.service";
7
+ export class CarouselNavigationService {
8
+ constructor(carouselService) {
9
+ this.carouselService = carouselService;
10
+ this.pages = [];
11
+ this.navigationModel = {
12
+ disabled: false,
13
+ previous: {
14
+ disabled: false,
15
+ label: CommonConstants.EMPTY_STRING
16
+ },
17
+ next: {
18
+ disabled: false,
19
+ label: CommonConstants.EMPTY_STRING
20
+ }
21
+ };
22
+ this.navigationDotsModel = {
23
+ disabled: false,
24
+ dots: []
25
+ };
26
+ this.initDataStreams();
27
+ }
28
+ ngOnDestroy() {
29
+ this.navSubscription.unsubscribe();
30
+ }
31
+ next(speed) {
32
+ this.carouselService.to(this.getPosition(true), speed);
33
+ }
34
+ ;
35
+ previous(speed) {
36
+ this.carouselService.to(this.getPosition(false), speed);
37
+ }
38
+ ;
39
+ to(position, speed, standard) {
40
+ let length;
41
+ if (!standard && this.pages.length) {
42
+ length = this.pages.length;
43
+ this.carouselService.to(this.pages[((position % length) + length) % length].start, speed);
44
+ }
45
+ else {
46
+ this.carouselService.to(position, speed);
47
+ }
48
+ }
49
+ ;
50
+ moveByDot(dotId) {
51
+ const index = this.navigationDotsModel.dots.findIndex(dot => dotId === dot.id);
52
+ this.to(index, this.carouselService.settings.dotsSpeed || 0);
53
+ }
54
+ toSlideById(id) {
55
+ const position = this.carouselService.slidesModel.findIndex(slide => slide.id === id && slide.isCloned === false);
56
+ if (position === -1 || position === this.carouselService.current())
57
+ return;
58
+ this.carouselService.to(this.carouselService.relative(position), false);
59
+ }
60
+ initDataStreams() {
61
+ const initializedCarousel$ = this.carouselService.initializedState.pipe(tap(() => {
62
+ this.initialize();
63
+ this.updateNavPages();
64
+ this.draw();
65
+ this.update();
66
+ this.carouselService.sendChanges();
67
+ }));
68
+ const changedSettings$ = this.carouselService.changedState.pipe(filter(data => data.property.name === CarouselProperty.Position), tap(() => this.update()));
69
+ const refreshedCarousel$ = this.carouselService.refreshedState.pipe(tap(() => {
70
+ this.updateNavPages();
71
+ this.draw();
72
+ this.update();
73
+ this.carouselService.sendChanges();
74
+ }));
75
+ this.navSubscription = merge(initializedCarousel$, changedSettings$, refreshedCarousel$).subscribe();
76
+ }
77
+ initialize() {
78
+ this.navigationModel.disabled = true;
79
+ if (this.carouselService.settings.navText) {
80
+ this.navigationModel.previous.label = this.carouselService.settings.navText[0];
81
+ this.navigationModel.next.label = this.carouselService.settings.navText[1];
82
+ }
83
+ this.navigationDotsModel.disabled = true;
84
+ this.carouselService.navigationModel = this.navigationModel;
85
+ this.carouselService.navigationDotsModel = this.navigationDotsModel;
86
+ }
87
+ updateNavPages() {
88
+ let i, j, k;
89
+ const lower = this.carouselService.clones().length / 2, upper = lower + this.carouselService.items().length, maximum = this.carouselService.maximum(true), pages = [], settings = this.carouselService.settings;
90
+ let size = settings.center || settings.autoWidth || settings.navigationDotsModel
91
+ ? 1 : settings.dotsEach || settings.items;
92
+ size = +size;
93
+ if (settings.slideBy !== 'page') {
94
+ settings.slideBy = Math.min(+settings.slideBy, settings.items || 0);
95
+ }
96
+ if (settings.dots || settings.slideBy === 'page') {
97
+ for (i = lower, j = 0, k = 0; i < upper; i++) {
98
+ if (j >= size || j === 0) {
99
+ pages.push({
100
+ start: Math.min(maximum, i - lower),
101
+ end: i - lower + size - 1
102
+ });
103
+ if (Math.min(maximum, i - lower) === maximum) {
104
+ break;
105
+ }
106
+ j = 0, ++k;
107
+ }
108
+ j += this.carouselService.mergers(this.carouselService.relative(i));
109
+ }
110
+ }
111
+ this.pages = pages;
112
+ }
113
+ draw() {
114
+ let difference;
115
+ const settings = this.carouselService.settings, items = this.carouselService.items(), disabled = items.length <= (settings.items || 0);
116
+ this.navigationModel.disabled = !settings.nav || disabled;
117
+ this.navigationDotsModel.disabled = !settings.dots || disabled;
118
+ if (settings.dots) {
119
+ difference = this.pages.length - this.navigationDotsModel.dots.length;
120
+ if (settings.navigationDotsModel && difference !== 0) {
121
+ this.navigationDotsModel.dots = [];
122
+ items.forEach(item => {
123
+ this.navigationDotsModel.dots.push({
124
+ active: false,
125
+ id: `dot-${item.id}`
126
+ });
127
+ });
128
+ }
129
+ else if (difference > 0) {
130
+ const startI = this.navigationDotsModel.dots.length > 0 ? this.navigationDotsModel.dots.length : 0;
131
+ for (let i = 0; i < difference; i++) {
132
+ this.navigationDotsModel.dots.push({
133
+ active: false,
134
+ id: `dot-${i + startI}`
135
+ });
136
+ }
137
+ }
138
+ else if (difference < 0) {
139
+ this.navigationDotsModel.dots.splice(difference, Math.abs(difference));
140
+ }
141
+ }
142
+ this.carouselService.navigationModel = this.navigationModel;
143
+ this.carouselService.navigationDotsModel = this.navigationDotsModel;
144
+ }
145
+ ;
146
+ update() {
147
+ this.updateNavButtons();
148
+ this.updateDots();
149
+ }
150
+ updateNavButtons() {
151
+ const settings = this.carouselService.settings, loop = settings.loop || settings.rewind || false, index = this.carouselService.relative(this.carouselService.current() || 0);
152
+ if (settings.nav) {
153
+ this.navigationModel.previous.disabled = !loop && index <= this.carouselService.minimum(true);
154
+ this.navigationModel.next.disabled = !loop && index >= this.carouselService.maximum(true);
155
+ }
156
+ this.carouselService.navigationModel = this.navigationModel;
157
+ }
158
+ updateDots() {
159
+ let curActiveDotI;
160
+ if (!this.carouselService.settings.dots)
161
+ return;
162
+ this.navigationDotsModel.dots.forEach(item => {
163
+ if (item.active === true) {
164
+ item.active = false;
165
+ }
166
+ });
167
+ curActiveDotI = this.getCurrent();
168
+ if (this.navigationDotsModel.dots.length) {
169
+ this.navigationDotsModel.dots[curActiveDotI].active = true;
170
+ }
171
+ this.carouselService.navigationDotsModel = this.navigationDotsModel;
172
+ }
173
+ getCurrent() {
174
+ const current = this.carouselService.relative(this.carouselService.current() || 0);
175
+ let finalCurrent;
176
+ const pages = this.pages.filter((page, index) => {
177
+ return page.start <= current && page.end >= current;
178
+ }).pop();
179
+ finalCurrent = this.pages.findIndex(page => {
180
+ return page.start === pages.start && page.end === pages.end;
181
+ });
182
+ return finalCurrent;
183
+ }
184
+ ;
185
+ getPosition(successor) {
186
+ let position, length;
187
+ const settings = this.carouselService.settings;
188
+ if (settings.slideBy === 'page') {
189
+ position = this.getCurrent();
190
+ length = this.pages.length;
191
+ successor ? ++position : --position;
192
+ position = this.pages[((position % length) + length) % length].start;
193
+ }
194
+ else {
195
+ position = this.carouselService.relative(this.carouselService.current() || 0);
196
+ length = this.carouselService.items().length;
197
+ successor ? position += +settings.slideBy : position -= +settings.slideBy;
198
+ }
199
+ return position;
200
+ }
201
+ ;
202
+ }
203
+ CarouselNavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CarouselNavigationService, deps: [{ token: i1.CarouselService }], target: i0.ɵɵFactoryTarget.Injectable });
204
+ CarouselNavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CarouselNavigationService, providedIn: 'root' });
205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CarouselNavigationService, decorators: [{
206
+ type: Injectable,
207
+ args: [{
208
+ providedIn: 'root'
209
+ }]
210
+ }], ctorParameters: function () { return [{ type: i1.CarouselService }]; } });
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtbmF2aWdhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYXJvdXNlbC9zZXJ2aWNlL25hdmlnYXRpb24vY2Fyb3VzZWwtbmF2aWdhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBNEIsTUFBTSxNQUFNLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQVN2RCxNQUFNLE9BQU8seUJBQXlCO0lBdUJwQyxZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFuQjVDLFVBQUssR0FBVSxFQUFFLENBQUM7UUFFbEIsb0JBQWUsR0FBNEI7WUFDakQsUUFBUSxFQUFFLEtBQUs7WUFDZixRQUFRLEVBQUU7Z0JBQ1IsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsS0FBSyxFQUFFLGVBQWUsQ0FBQyxZQUFZO2FBQ3BDO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLFFBQVEsRUFBRSxLQUFLO2dCQUNmLEtBQUssRUFBRSxlQUFlLENBQUMsWUFBWTthQUNwQztTQUNGLENBQUM7UUFFTSx3QkFBbUIsR0FBZ0M7WUFDekQsUUFBUSxFQUFFLEtBQUs7WUFDZixJQUFJLEVBQUUsRUFBRTtTQUNULENBQUM7UUFHQSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJ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N0IsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQzNCLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDO1lBQ3BDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDO1NBQ3RFO2FBQU07WUFDTCxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM5RSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDN0MsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBRSxRQUFRLENBQUMsT0FBa0IsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUUsUUFBUSxDQUFDLE9BQWtCLENBQUM7U0FDbkc7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBQUEsQ0FBQzs7c0hBalBTLHlCQUF5QjswSEFBekIseUJBQXlCLGNBRnhCLE1BQU07MkZBRVAseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Db25zdGFudHMgfSBmcm9tICduZ3gtc2ZjLWNvbW1vbic7XHJcbmltcG9ydCB7IHRhcCwgZmlsdGVyLCBtZXJnZSwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENhcm91c2VsUHJvcGVydHkgfSBmcm9tICcuLi8uLi9jYXJvdXNlbC5lbnVtJztcclxuaW1wb3J0IHsgQ2Fyb3VzZWxTbGlkZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jYXJvdXNlbC1zbGlkZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDYXJvdXNlbE5hdmlnYXRpb25Eb3RzTW9kZWwsIENhcm91c2VsTmF2aWdhdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL25hdmlnYXRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBDYXJvdXNlbE9wdGlvbnNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9vcHRpb25zLm1vZGVsJztcclxuaW1wb3J0IHsgQ2Fyb3VzZWxTZXJ2aWNlIH0gZnJvbSAnLi4vY2Fyb3VzZWwvY2Fyb3VzZWwuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXJvdXNlbE5hdmlnYXRpb25TZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgcHJpdmF0ZSBuYXZTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIHByaXZhdGUgcGFnZXM6IGFueVtdID0gW107XHJcblxyXG4gIHByaXZhdGUgbmF2aWdhdGlvbk1vZGVsOiBDYXJvdXNlbE5hdmlnYXRpb25Nb2RlbCA9IHtcclxuICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgIHByZXZpb3VzOiB7XHJcbiAgICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgICAgbGFiZWw6IENvbW1vbkNvbnN0YW50cy5FTVBUWV9TVFJJTkdcclxuICAgIH0sXHJcbiAgICBuZXh0OiB7XHJcbiAgICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgICAgbGFiZWw6IENvbW1vbkNvbnN0YW50cy5FTVBUWV9TVFJJTkdcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBwcml2YXRlIG5hdmlnYXRpb25Eb3RzTW9kZWw6IENhcm91c2VsTmF2aWdhdGlvbkRvdHNNb2RlbCA9IHtcclxuICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgIGRvdHM6IFtdXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjYXJvdXNlbFNlcnZpY2U6IENhcm91c2VsU2VydmljZSkge1xyXG4gICAgdGhpcy5pbml0RGF0YVN0cmVhbXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5uYXZTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5leHQoc3BlZWQ6IG51bWJlciB8IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuY2Fyb3VzZWxTZXJ2aWNlLnRvKHRoaXMuZ2V0UG9zaXRpb24odHJ1ZSksIHNwZWVkKTtcclxuICB9O1xyXG5cclxuICBwcmV2aW91cyhzcGVlZDogbnVtYmVyIHwgYm9vbGVhbikge1xyXG4gICAgdGhpcy5jYXJvdXNlbFNlcnZpY2UudG8odGhpcy5nZXRQb3NpdGlvbihmYWxzZSksIHNwZWVkKTtcclxuICB9O1xyXG5cclxuICB0byhwb3NpdGlvbjogbnVtYmVyLCBzcGVlZDogbnVtYmVyIHwgYm9vbGVhbiwgc3RhbmRhcmQ/OiBib29sZWFuKSB7XHJcbiAgICBsZXQgbGVuZ3RoOiBudW1iZXI7XHJcbiAgICBpZiAoIXN0YW5kYXJkICYmIHRoaXMucGFnZXMubGVuZ3RoKSB7XHJcbiAgICAgIGxlbmd0aCA9IHRoaXMucGFnZXMubGVuZ3RoO1xyXG4gICAgICB0aGlzLmNhcm91c2VsU2VydmljZS50byh0aGlzLnBhZ2VzWygocG9zaXRpb24gJSBsZW5ndGgpICsgbGVuZ3RoKSAlIGxlbmd0aF0uc3RhcnQsIHNwZWVkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2Fyb3VzZWxTZXJ2aWNlLnRvKHBvc2l0aW9uLCBzcGVlZCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgbW92ZUJ5RG90KGRvdElkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGluZGV4OiBudW1iZXIgPSB0aGlzLm5hdmlnYXRpb25Eb3RzTW9kZWwuZG90cy5maW5kSW5kZXgoZG90ID0+IGRvdElkID09PSBkb3QuaWQpO1xyXG4gICAgdGhpcy50byhpbmRleCwgdGhpcy5jYXJvdXNlbFNlcnZpY2Uuc2V0dGluZ3MuZG90c1NwZWVkIHx8IDApO1xyXG4gIH1cclxuXHJcbiAgdG9TbGlkZUJ5SWQoaWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmNhcm91c2VsU2VydmljZS5zbGlkZXNNb2RlbC5maW5kSW5kZXgoc2xpZGUgPT4gc2xpZGUuaWQgPT09IGlkICYmIHNsaWRlLmlzQ2xvbmVkID09PSBmYWxzZSk7XHJcblxyXG4gICAgaWYgKHBvc2l0aW9uID09PSAtMSB8fCBwb3NpdGlvbiA9PT0gdGhpcy5jYXJvdXNlbFNlcnZpY2UuY3VycmVudCgpKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5jYXJvdXNlbFNlcnZpY2UudG8odGhpcy5jYXJvdXNlbFNlcnZpY2UucmVsYXRpdmUocG9zaXRpb24pLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXREYXRhU3RyZWFtcygpIHtcclxuICAgIGNvbnN0IGluaXRpYWxpemVkQ2Fyb3VzZWwkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLmNhcm91c2VsU2VydmljZS5pbml0aWFsaXplZFN0YXRlLnBpcGUoXHJcbiAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pbml0aWFsaXplKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVOYXZQYWdlcygpO1xyXG4gICAgICAgIHRoaXMuZHJhdygpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlKCk7XHJcbiAgICAgICAgdGhpcy5jYXJvdXNlbFNlcnZpY2Uuc2VuZENoYW5nZXMoKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgY2hhbmdlZFNldHRpbmdzJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5jYXJvdXNlbFNlcnZpY2UuY2hhbmdlZFN0YXRlLnBpcGUoXHJcbiAgICAgIGZpbHRlcihkYXRhID0+IGRhdGEucHJvcGVydHkubmFtZSA9PT0gQ2Fyb3VzZWxQcm9wZXJ0eS5Qb3NpdGlvbiksXHJcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnVwZGF0ZSgpKVxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCByZWZyZXNoZWRDYXJvdXNlbCQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuY2Fyb3VzZWxTZXJ2aWNlLnJlZnJlc2hlZFN0YXRlLnBpcGUoXHJcbiAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVOYXZQYWdlcygpO1xyXG4gICAgICAgIHRoaXMuZHJhdygpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlKCk7XHJcbiAgICAgICAgdGhpcy5jYXJvdXNlbFNlcnZpY2Uuc2VuZENoYW5nZXMoKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5uYXZTdWJzY3JpcHRpb24gPSBtZXJnZShpbml0aWFsaXplZENhcm91c2VsJCwgY2hhbmdlZFNldHRpbmdzJCwgcmVmcmVzaGVkQ2Fyb3VzZWwkKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZSgpIHtcclxuICAgIHRoaXMubmF2aWdhdGlvbk1vZGVsLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmNhcm91c2VsU2VydmljZS5zZXR0aW5ncy5uYXZUZXh0KSB7XHJcbiAgICAgIHRoaXMubmF2aWdhdGlvbk1vZGVsLnByZXZpb3VzLmxhYmVsID0gdGhpcy5jYXJvdXNlbFNlcnZpY2Uuc2V0dGluZ3MubmF2VGV4dFswXTtcclxuICAgICAgdGhpcy5uYXZpZ2F0aW9uTW9kZWwubmV4dC5sYWJlbCA9IHRoaXMuY2Fyb3VzZWxTZXJ2aWNlLnNldHRpbmdzLm5hdlRleHRbMV07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5uYXZpZ2F0aW9uRG90c01vZGVsLmRpc2FibGVkID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLmNhcm91c2VsU2VydmljZS5uYXZpZ2F0aW9uTW9kZWwgPSB0aGlzLm5hdmlnYXRpb25Nb2RlbDtcclxuICAgIHRoaXMuY2Fyb3VzZWxTZXJ2aWNlLm5hdmlnYXRpb25Eb3RzTW9kZWwgPSB0aGlzLm5hdmlnYXRpb25Eb3RzTW9kZWw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZU5hdlBhZ2VzKCkge1xyXG4gICAgbGV0IGk6IG51bWJlciwgajogbnVtYmVyLCBrOiBudW1iZXI7XHJcbiAgICBjb25zdCBsb3dlcjogbnVtYmVyID0gdGhpcy5jYXJvdXNlbFNlcnZpY2UuY2xvbmVzKCkubGVuZ3RoIC8gMixcclxuICAgICAgdXBwZXI6IG51bWJlciA9IGxvd2VyICsgdGhpcy5jYXJvdXNlbFNlcnZpY2UuaXRlbXMoKS5sZW5ndGgsXHJcbiAgICAgIG1heGltdW06IG51bWJlciA9IHRoaXMuY2Fyb3VzZWxTZXJ2aWNlLm1heGltdW0odHJ1ZSksXHJcbiAgICAgIHBhZ2VzOiBhbnlbXSA9IFtdLFxyXG4gICAgICBzZXR0aW5nczogQ2Fyb3VzZWxPcHRpb25zTW9kZWwgPSB0aGlzLmNhcm91c2VsU2VydmljZS5zZXR0aW5ncztcclxuICAgIGxldCBzaXplID0gc2V0dGluZ3MuY2VudGVyIHx8IHNldHRpbmdzLmF1dG9XaWR0aCB8fCBzZXR0aW5ncy5uYXZpZ2F0aW9uRG90c01vZGVsXHJcbiAgICAgID8gMSA6IHNldHRpbmdzLmRvdHNFYWNoIHx8IHNldHRpbmdzLml0ZW1zO1xyXG4gICAgc2l6ZSA9ICsoc2l6ZSBhcyBudW1iZXIpO1xyXG4gICAgaWYgKHNldHRpbmdzLnNsaWRlQnkgIT09ICdwYWdlJykge1xyXG4gICAgICBzZXR0aW5ncy5zbGlkZUJ5ID0gTWF0aC5taW4oKyhzZXR0aW5ncy5zbGlkZUJ5IGFzIG51bWJlciksIHNldHRpbmdzLml0ZW1zIHx8IDApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzZXR0aW5ncy5kb3RzIHx8IHNldHRpbmdzLnNsaWRlQnkgPT09ICdwYWdlJykge1xyXG5cclxuICAgICAgZm9yIChpID0gbG93ZXIsIGogPSAwLCBrID0gMDsgaSA8IHVwcGVyOyBpKyspIHtcclxuICAgICAgICBpZiAoaiA+PSBzaXplIHx8IGogPT09IDApIHtcclxuICAgICAgICAgIHBhZ2VzLnB1c2goe1xyXG4gICAgICAgICAgICBzdGFydDogTWF0aC5taW4obWF4aW11bSwgaSAtIGxvd2VyKSxcclxuICAgICAgICAgICAgZW5kOiBpIC0gbG93ZXIgKyBzaXplIC0gMVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBpZiAoTWF0aC5taW4obWF4aW11bSwgaSAtIGxvd2VyKSA9PT0gbWF4aW11bSkge1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGogPSAwLCArK2s7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGogKz0gdGhpcy5jYXJvdXNlbFNlcnZpY2UubWVyZ2Vycyh0aGlzLmNhcm91c2VsU2VydmljZS5yZWxhdGl2ZShpKSkgYXMgbnVtYmVyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnBhZ2VzID0gcGFnZXM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRyYXcoKSB7XHJcbiAgICBsZXQgZGlmZmVyZW5jZTogbnVtYmVyO1xyXG4gICAgY29uc3Qgc2V0dGluZ3M6IENhcm91c2VsT3B0aW9uc01vZGVsID0gdGhpcy5jYXJvdXNlbFNlcnZpY2Uuc2V0dGluZ3MsXHJcbiAgICAgIGl0ZW1zOiBDYXJvdXNlbFNsaWRlRGlyZWN0aXZlW10gPSB0aGlzLmNhcm91c2VsU2VydmljZS5pdGVtcygpLFxyXG4gICAgICBkaXNhYmxlZCA9IGl0ZW1zLmxlbmd0aCA8PSAoc2V0dGluZ3MuaXRlbXMgfHwgMCk7XHJcblxyXG4gICAgdGhpcy5uYXZpZ2F0aW9uTW9kZWwuZGlzYWJsZWQgPSAhc2V0dGluZ3MubmF2IHx8IGRpc2FibGVkO1xyXG4gICAgdGhpcy5uYXZpZ2F0aW9uRG90c01vZGVsLmRpc2FibGVkID0gIXNldHRpbmdzLmRvdHMgfHwgZGlzYWJsZWQ7XHJcblxyXG4gICAgaWYgKHNldHRpbmdzLmRvdHMpIHtcclxuICAgICAgZGlmZmVyZW5jZSA9IHRoaXMucGFnZXMubGVuZ3RoIC0gdGhpcy5uYXZpZ2F0aW9uRG90c01vZGVsLmRvdHMubGVuZ3RoO1xyXG5cclxuICAgICAgaWYgKHNldHRpbmdzLm5hdmlnYXRpb25Eb3RzTW9kZWwgJiYgZGlmZmVyZW5jZSAhPT0gMCkge1xyXG4gICAgICAgIHRoaXMubmF2aWdhdGlvbkRvdHNNb2RlbC5kb3RzID0gW107XHJcbiAgICAgICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICAgIHRoaXMubmF2aWdhdGlvbkRvdHNNb2RlbC5kb3RzLnB1c2goe1xyXG4gICAgICAgICAgICBhY3RpdmU6IGZhbHNlLFxyXG4gICAgICAgICAgICBpZDogYGRvdC0ke2l0ZW0uaWR9YFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZGlmZmVyZW5jZSA+IDApIHtcclxuICAgICAgICBjb25zdCBzdGFydEk6IG51bWJlciA9IHRoaXMubmF2aWdhdGlvbkRvdHNNb2RlbC5kb3RzLmxlbmd0aCA+IDAgPyB0aGlzLm5hdmlnYXRpb25Eb3RzTW9kZWwuZG90cy5sZW5ndGggOiAwO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGlmZmVyZW5jZTsgaSsrKSB7XHJcbiAgICAgICAgICB0aGlzLm5hdmlnYXRpb25Eb3RzTW9kZWwuZG90cy5wdXNoKHtcclxuICAgICAgICAgICAgYWN0aXZlOiBmYWxzZSxcclxuICAgICAgICAgICAgaWQ6IGBkb3QtJHtpICsgc3RhcnRJfWBcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChkaWZmZXJlbmNlIDwgMCkge1xyXG4gICAgICAgIHRoaXMubmF2aWdhdGlvbkRvdHNNb2RlbC5kb3RzLnNwbGljZShkaWZmZXJlbmNlLCBNYXRoLmFicyhkaWZmZXJlbmNlKSlcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2Fyb3VzZWxTZXJ2aWNlLm5hdmlnYXRpb25Nb2RlbCA9IHRoaXMubmF2aWdhdGlvbk1vZGVsO1xyXG4gICAgdGhpcy5jYXJvdXNlbFNlcnZpY2UubmF2aWdhdGlvbkRvdHNNb2RlbCA9IHRoaXMubmF2aWdhdGlvbkRvdHNNb2RlbDtcclxuICB9O1xyXG5cclxuICBwcml2YXRlIHVwZGF0ZSgpIHtcclxuICAgIHRoaXMudXBkYXRlTmF2QnV0dG9ucygpO1xyXG4gICAgdGhpcy51cGRhdGVEb3RzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZU5hdkJ1dHRvbnMoKSB7XHJcbiAgICBjb25zdCBzZXR0aW5nczogQ2Fyb3VzZWxPcHRpb25zTW9kZWwgPSB0aGlzLmNhcm91c2VsU2VydmljZS5zZXR0aW5ncyxcclxuICAgICAgbG9vcDogYm9vbGVhbiA9IHNldHRpbmdzLmxvb3AgfHwgc2V0dGluZ3MucmV3aW5kIHx8IGZhbHNlLFxyXG4gICAgICBpbmRleDogbnVtYmVyID0gdGhpcy5jYXJvdXNlbFNlcnZpY2UucmVsYXRpdmUodGhpcy5jYXJvdXNlbFNlcnZpY2UuY3VycmVudCgpIHx8IDApO1xyXG5cclxuICAgIGlmIChzZXR0aW5ncy5uYXYpIHtcclxuICAgICAgdGhpcy5uYXZpZ2F0aW9uTW9kZWwucHJldmlvdXMuZGlzYWJsZWQgPSAhbG9vcCAmJiBpbmRleCA8PSB0aGlzLmNhcm91c2VsU2VydmljZS5taW5pbXVtKHRydWUpO1xyXG4gICAgICB0aGlzLm5hdmlnYXRpb25Nb2RlbC5uZXh0LmRpc2FibGVkID0gIWxvb3AgJiYgaW5kZXggPj0gdGhpcy5jYXJvdXNlbFNlcnZpY2UubWF4aW11bSh0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNhcm91c2VsU2VydmljZS5uYXZpZ2F0aW9uTW9kZWwgPSB0aGlzLm5hdmlnYXRpb25Nb2RlbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRG90cygpIHtcclxuICAgIGxldCBjdXJBY3RpdmVEb3RJOiBudW1iZXI7XHJcblxyXG4gICAgaWYgKCF0aGlzLmNhcm91c2VsU2VydmljZS5zZXR0aW5ncy5kb3RzKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5uYXZpZ2F0aW9uRG90c01vZGVsLmRvdHMuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgaWYgKGl0ZW0uYWN0aXZlID09PSB0cnVlKSB7XHJcbiAgICAgICAgaXRlbS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgICBjdXJBY3RpdmVEb3RJID0gdGhpcy5nZXRDdXJyZW50KCk7XHJcbiAgICBpZiAodGhpcy5uYXZpZ2F0aW9uRG90c01vZGVsLmRvdHMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMubmF2aWdhdGlvbkRvdHNNb2RlbC5kb3RzW2N1ckFjdGl2ZURvdEldLmFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNhcm91c2VsU2VydmljZS5uYXZpZ2F0aW9uRG90c01vZGVsID0gdGhpcy5uYXZpZ2F0aW9uRG90c01vZGVsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRDdXJyZW50KCk6IGFueSB7XHJcbiAgICBjb25zdCBjdXJyZW50OiBudW1iZXIgPSB0aGlzLmNhcm91c2VsU2VydmljZS5yZWxhdGl2ZSh0aGlzLmNhcm91c2VsU2VydmljZS5jdXJyZW50KCkgfHwgMCk7XHJcbiAgICBsZXQgZmluYWxDdXJyZW50OiBudW1iZXI7XHJcbiAgICBjb25zdCBwYWdlczogYW55ID0gdGhpcy5wYWdlcy5maWx0ZXIoKHBhZ2UsIGluZGV4KSA9PiB7XHJcbiAgICAgIHJldHVybiBwYWdlLnN0YXJ0IDw9IGN1cnJlbnQgJiYgcGFnZS5lbmQgPj0gY3VycmVudDtcclxuICAgIH0pLnBvcCgpO1xyXG5cclxuICAgIGZpbmFsQ3VycmVudCA9IHRoaXMucGFnZXMuZmluZEluZGV4KHBhZ2UgPT4ge1xyXG4gICAgICByZXR1cm4gcGFnZS5zdGFydCA9PT0gcGFnZXMuc3RhcnQgJiYgcGFnZS5lbmQgPT09IHBhZ2VzLmVuZDtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBmaW5hbEN1cnJlbnQ7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBnZXRQb3NpdGlvbihzdWNjZXNzb3I6IG51bWJlciB8IGJvb2xlYW4pOiBudW1iZXIge1xyXG4gICAgbGV0IHBvc2l0aW9uOiBudW1iZXIsIGxlbmd0aDogbnVtYmVyO1xyXG4gICAgY29uc3Qgc2V0dGluZ3M6IENhcm91c2VsT3B0aW9uc01vZGVsID0gdGhpcy5jYXJvdXNlbFNlcnZpY2Uuc2V0dGluZ3M7XHJcblxyXG4gICAgaWYgKHNldHRpbmdzLnNsaWRlQnkgPT09ICdwYWdlJykge1xyXG4gICAgICBwb3NpdGlvbiA9IHRoaXMuZ2V0Q3VycmVudCgpO1xyXG4gICAgICBsZW5ndGggPSB0aGlzLnBhZ2VzLmxlbmd0aDtcclxuICAgICAgc3VjY2Vzc29yID8gKytwb3NpdGlvbiA6IC0tcG9zaXRpb247XHJcbiAgICAgIHBvc2l0aW9uID0gdGhpcy5wYWdlc1soKHBvc2l0aW9uICUgbGVuZ3RoKSArIGxlbmd0aCkgJSBsZW5ndGhdLnN0YXJ0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcG9zaXRpb24gPSB0aGlzLmNhcm91c2VsU2VydmljZS5yZWxhdGl2ZSh0aGlzLmNhcm91c2VsU2VydmljZS5jdXJyZW50KCkgfHwgMCk7XHJcbiAgICAgIGxlbmd0aCA9IHRoaXMuY2Fyb3VzZWxTZXJ2aWNlLml0ZW1zKCkubGVuZ3RoO1xyXG4gICAgICBzdWNjZXNzb3IgPyBwb3NpdGlvbiArPSArKHNldHRpbmdzLnNsaWRlQnkgYXMgbnVtYmVyKSA6IHBvc2l0aW9uIC09ICsoc2V0dGluZ3Muc2xpZGVCeSBhcyBudW1iZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwb3NpdGlvbjtcclxuICB9O1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtb3B0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jaGFydC9jaGFydC1vcHRpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ2hhcnRPcHRpb25Nb2RlbCB7XHJcbiAgICBsZWdlbmQ/OiBib29sZWFuO1xyXG4gICAgZ3JpZExpbmVzPzogYm9vbGVhbjtcclxuICAgIHhBeGU/OmJvb2xlYW47XHJcbiAgICB5QXhlPzpib29sZWFuO1xyXG4gICAgdG9vbHRpcD86IGJvb2xlYW47XHJcbiAgICB0aWNrcz86IGJvb2xlYW47XHJcbiAgICBkZWZhdWx0Q29sb3JzPzogYm9vbGVhbjtcclxufSJdfQ==
@@ -0,0 +1,124 @@
1
+ import { Component, Input, ViewChild } from '@angular/core';
2
+ import { Chart } from 'chart.js';
3
+ import { isDefined, mergeDeep, Theme } from 'ngx-sfc-common';
4
+ import { distinctUntilChanged } from 'rxjs';
5
+ import { CHART_DEFAULTS } from './chart.constants';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "./service/theme/chart-theme.service";
8
+ import * as i2 from "./service/settings/chart-settings.service";
9
+ export class ChartComponent {
10
+ constructor(zone, themeService, settingsService) {
11
+ this.zone = zone;
12
+ this.themeService = themeService;
13
+ this.settingsService = settingsService;
14
+ // Chart configuration
15
+ this.type = 'line';
16
+ this.plugins = [];
17
+ this._theme = Theme.Default;
18
+ this._themeSubscription = this.themeService.colors$
19
+ .pipe(distinctUntilChanged())
20
+ .subscribe((model) => this.updateColors(model));
21
+ }
22
+ get theme() {
23
+ return this._theme;
24
+ }
25
+ set theme(value) {
26
+ if (this._theme != value) {
27
+ this._theme = value;
28
+ this.themeService.setColors({ options: this.themeOptions });
29
+ }
30
+ }
31
+ get themeOptions() {
32
+ return this.theme === Theme.Dark ? CHART_DEFAULTS.THEME.DARK : CHART_DEFAULTS.THEME.DEFAULT;
33
+ }
34
+ ngOnInit() {
35
+ this.chartOptions = {
36
+ ...this.settingsService.getDefaultChartOptions(this.type),
37
+ ...this.chartOptions
38
+ };
39
+ }
40
+ ngAfterViewInit() {
41
+ const ctx = this.canvas.nativeElement.getContext('2d');
42
+ if (this.chart) {
43
+ this.chart.destroy();
44
+ }
45
+ this.zone.runOutsideAngular(() => this.chart = new Chart(ctx, this.getChartConfiguration()));
46
+ }
47
+ ngOnDestroy() {
48
+ if (this.chart) {
49
+ this.chart.destroy();
50
+ this.chart = void 0;
51
+ }
52
+ this._themeSubscription?.unsubscribe();
53
+ }
54
+ update() {
55
+ this.zone.runOutsideAngular(() => this.chart?.update());
56
+ }
57
+ getChartConfiguration() {
58
+ return {
59
+ type: this.type,
60
+ data: this.getChartData(),
61
+ options: this.getChartOptions(),
62
+ plugins: this.plugins
63
+ };
64
+ }
65
+ getChartData() {
66
+ const chartData = this.data ? this.data : {
67
+ labels: this.labels || [],
68
+ datasets: this.datasets || []
69
+ };
70
+ if (this.chartOptions.defaultColors)
71
+ this.settingsService.setDatasetStyles(this.type, chartData.datasets);
72
+ return chartData;
73
+ }
74
+ getChartOptions() {
75
+ const chartOptions = this.overrideDefaultOptionsByModel();
76
+ return mergeDeep(chartOptions, this.options);
77
+ }
78
+ overrideDefaultOptionsByModel() {
79
+ const defaultChartOptions = this.settingsService.getDefaultOptions(this.type);
80
+ defaultChartOptions.scales.x.grid.display = this.chartOptions.gridLines;
81
+ defaultChartOptions.scales.x.display = this.chartOptions.xAxe;
82
+ defaultChartOptions.scales.y.grid.display = this.chartOptions.gridLines;
83
+ defaultChartOptions.scales.y.display = this.chartOptions.yAxe;
84
+ defaultChartOptions.scales.x.ticks.display = this.chartOptions.ticks;
85
+ defaultChartOptions.scales.y.ticks.display = this.chartOptions.ticks;
86
+ defaultChartOptions.plugins.tooltip.enabled = this.chartOptions.tooltip;
87
+ defaultChartOptions.plugins.legend.display = this.chartOptions.legend;
88
+ return mergeDeep(defaultChartOptions, this.themeOptions);
89
+ }
90
+ updateColors(model) {
91
+ if (this.chart) {
92
+ mergeDeep(this.chart.config.options, model.options);
93
+ if (isDefined(model.dataSetColors))
94
+ this.settingsService.setDatasetStyles(this.type, this.chart.config.data.datasets, model.dataSetColors);
95
+ this.update();
96
+ }
97
+ }
98
+ }
99
+ ChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ChartComponent, deps: [{ token: i0.NgZone }, { token: i1.ChartThemeService }, { token: i2.ChartSettingsService }], target: i0.ɵɵFactoryTarget.Component });
100
+ ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: ChartComponent, selector: "sfc-chart", inputs: { type: "type", data: "data", options: "options", plugins: "plugins", labels: "labels", datasets: "datasets", chartOptions: "chartOptions", theme: "theme" }, viewQueries: [{ propertyName: "canvas", first: true, predicate: ["chart"], descendants: true }], ngImport: i0, template: "<canvas #chart></canvas>", styles: [":host{height:inherit;width:inherit}\n"] });
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ChartComponent, decorators: [{
102
+ type: Component,
103
+ args: [{ selector: 'sfc-chart', styles: [':host { height: inherit; width: inherit;}'], template: "<canvas #chart></canvas>" }]
104
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.ChartThemeService }, { type: i2.ChartSettingsService }]; }, propDecorators: { type: [{
105
+ type: Input
106
+ }], data: [{
107
+ type: Input
108
+ }], options: [{
109
+ type: Input
110
+ }], plugins: [{
111
+ type: Input
112
+ }], labels: [{
113
+ type: Input
114
+ }], datasets: [{
115
+ type: Input
116
+ }], chartOptions: [{
117
+ type: Input
118
+ }], theme: [{
119
+ type: Input
120
+ }], canvas: [{
121
+ type: ViewChild,
122
+ args: ['chart']
123
+ }] } });
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jaGFydC9jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLEtBQUssRUFBNkIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxLQUFLLEVBQWlFLE1BQU0sVUFBVSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBVW5ELE1BQU0sT0FBTyxjQUFjO0lBd0R6QixZQUEyQixJQUFZLEVBQVUsWUFBK0IsRUFBVSxlQUFxQztRQUFwRyxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQW1CO1FBQVUsb0JBQWUsR0FBZixlQUFlLENBQXNCO1FBcEQvSCxzQkFBc0I7UUFHdEIsU0FBSSxHQUFxRCxNQUFlLENBQUM7UUFTekUsWUFBTyxHQUF5RCxFQUFFLENBQUM7UUEyQjNELFdBQU0sR0FBVSxLQUFLLENBQUMsT0FBTyxDQUFDO1FBY3BDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU87YUFDaEQsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7YUFDNUIsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVB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Q3pDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUVkLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXBELElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBZSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUVoSCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDZjtJQUNILENBQUM7OzJHQS9JVSxjQUFjOytGQUFkLGNBQWMsd1RDZjNCLDBCQUF3QjsyRkRlWCxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFdBQVcsVUFFYixDQUFDLDJDQUEyQyxDQUFDO2dLQVNyRCxJQUFJO3NCQURILEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBUU4sTUFBTTtzQkFETCxLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFNTixZQUFZO3NCQURYLEtBQUs7Z0JBSUssS0FBSztzQkFEZixLQUFLO2dCQWFFLE1BQU07c0JBRGIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgTmdab25lLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENoYXJ0LCBDaGFydENvbmZpZ3VyYXRpb24sIENoYXJ0T3B0aW9ucywgQ2hhcnRUeXBlLCBEZWZhdWx0RGF0YVBvaW50IH0gZnJvbSAnY2hhcnQuanMnO1xyXG5pbXBvcnQgeyBpc0RlZmluZWQsIG1lcmdlRGVlcCwgVGhlbWUgfSBmcm9tICduZ3gtc2ZjLWNvbW1vbic7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ2hhcnRPcHRpb25Nb2RlbCB9IGZyb20gJy4vY2hhcnQtb3B0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgQ0hBUlRfREVGQVVMVFMgfSBmcm9tICcuL2NoYXJ0LmNvbnN0YW50cyc7XHJcbmltcG9ydCB7IENoYXJ0U2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlL3NldHRpbmdzL2NoYXJ0LXNldHRpbmdzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDaGFydFRoZW1lTW9kZWwgfSBmcm9tICcuL3NlcnZpY2UvdGhlbWUvY2hhcnQtdGhlbWUubW9kZWwnO1xyXG5pbXBvcnQgeyBDaGFydFRoZW1lU2VydmljZSB9IGZyb20gJy4vc2VydmljZS90aGVtZS9jaGFydC10aGVtZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ZjLWNoYXJ0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlczogWyc6aG9zdCB7IGhlaWdodDogaW5oZXJpdDsgd2lkdGg6IGluaGVyaXQ7fSddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGFydENvbXBvbmVudDxUVHlwZSBleHRlbmRzIENoYXJ0VHlwZSA9IENoYXJ0VHlwZSxcclxuICBURGF0YSA9IERlZmF1bHREYXRhUG9pbnQ8VFR5cGU+LFxyXG4gIFRMYWJlbCA9IHVua25vd24+IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAvLyBDaGFydCBjb25maWd1cmF0aW9uXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdHlwZTogQ2hhcnRDb25maWd1cmF0aW9uPFRUeXBlLCBURGF0YSwgVExhYmVsPlsndHlwZSddID0gJ2xpbmUnIGFzIFRUeXBlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGRhdGEhOiBDaGFydENvbmZpZ3VyYXRpb248VFR5cGUsIFREYXRhLCBUTGFiZWw+WydkYXRhJ107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgb3B0aW9ucyE6IENoYXJ0Q29uZmlndXJhdGlvbjxUVHlwZSwgVERhdGEsIFRMYWJlbD5bJ29wdGlvbnMnXTtcclxuXHJcbiAgQElucHV0KClcclxuICBwbHVnaW5zPzogQ2hhcnRDb25maWd1cmF0aW9uPFRUeXBlLCBURGF0YSwgVExhYmVsPlsncGx1Z2lucyddID0gW107XHJcblxyXG4gIC8vIEVuZCBDaGFydCBjb25maWd1cmF0aW9uXHJcblxyXG4gIC8vIENoYXJ0IGRhdGEgY29uZmlndXJhdGlvblxyXG5cclxuICBASW5wdXQoKVxyXG4gIGxhYmVscz86IENoYXJ0Q29uZmlndXJhdGlvbjxUVHlwZSwgVERhdGEsIFRMYWJlbD5bJ2RhdGEnXVsnbGFiZWxzJ107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGF0YXNldHM/OiBDaGFydENvbmZpZ3VyYXRpb248VFR5cGUsIFREYXRhLCBUTGFiZWw+WydkYXRhJ11bJ2RhdGFzZXRzJ107XHJcblxyXG4gIC8vIEVuZCBDaGFydCBkYXRhIGNvbmZpZ3VyYXRpb25cclxuXHJcbiAgQElucHV0KClcclxuICBjaGFydE9wdGlvbnMhOiBDaGFydE9wdGlvbk1vZGVsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgdGhlbWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGhlbWU7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgdGhlbWUodmFsdWUpIHtcclxuICAgIGlmICh0aGlzLl90aGVtZSAhPSB2YWx1ZSkge1xyXG4gICAgICB0aGlzLl90aGVtZSA9IHZhbHVlO1xyXG4gICAgICB0aGlzLnRoZW1lU2VydmljZS5zZXRDb2xvcnMoeyBvcHRpb25zOiB0aGlzLnRoZW1lT3B0aW9ucyB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfdGhlbWU6IFRoZW1lID0gVGhlbWUuRGVmYXVsdDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnY2hhcnQnKVxyXG4gIHByaXZhdGUgY2FudmFzITogRWxlbWVudFJlZjtcclxuXHJcbiAgcHJpdmF0ZSBjaGFydD86IENoYXJ0PFRUeXBlLCBURGF0YSwgVExhYmVsPjtcclxuXHJcbiAgcHJpdmF0ZSBfdGhlbWVTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XHJcblxyXG4gIHByaXZhdGUgZ2V0IHRoZW1lT3B0aW9ucygpOiBDaGFydE9wdGlvbnMge1xyXG4gICAgcmV0dXJuIHRoaXMudGhlbWUgPT09IFRoZW1lLkRhcmsgPyBDSEFSVF9ERUZBVUxUUy5USEVNRS5EQVJLIDogQ0hBUlRfREVGQVVMVFMuVEhFTUUuREVGQVVMVDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHpvbmU6IE5nWm9uZSwgcHJpdmF0ZSB0aGVtZVNlcnZpY2U6IENoYXJ0VGhlbWVTZXJ2aWNlLCBwcml2YXRlIHNldHRpbmdzU2VydmljZTogQ2hhcnRTZXR0aW5nc1NlcnZpY2UpIHtcclxuICAgIHRoaXMuX3RoZW1lU3Vic2NyaXB0aW9uID0gdGhpcy50aGVtZVNlcnZpY2UuY29sb3JzJFxyXG4gICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxyXG4gICAgICAuc3Vic2NyaWJlKChtb2RlbCkgPT4gdGhpcy51cGRhdGVDb2xvcnMobW9kZWwpKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGFydE9wdGlvbnMgPSB7XHJcbiAgICAgIC4uLnRoaXMuc2V0dGluZ3NTZXJ2aWNlLmdldERlZmF1bHRDaGFydE9wdGlvbnModGhpcy50eXBlKSxcclxuICAgICAgLi4udGhpcy5jaGFydE9wdGlvbnNcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjdHggPSB0aGlzLmNhbnZhcy5uYXRpdmVFbGVtZW50LmdldENvbnRleHQoJzJkJyk7XHJcblxyXG4gICAgaWYgKHRoaXMuY2hhcnQpIHtcclxuICAgICAgdGhpcy5jaGFydC5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQoY3R4LCB0aGlzLmdldENoYXJ0Q29uZmlndXJhdGlvbigpKSlcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY2hhcnQpIHtcclxuICAgICAgdGhpcy5jaGFydC5kZXN0cm95KCk7XHJcbiAgICAgIHRoaXMuY2hhcnQgPSB2b2lkIDA7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fdGhlbWVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlKCkge1xyXG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHRoaXMuY2hhcnQ/LnVwZGF0ZSgpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q2hhcnRDb25maWd1cmF0aW9uKCk6IENoYXJ0Q29uZmlndXJhdGlvbjxUVHlwZSwgVERhdGEsIFRMYWJlbD4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZTogdGhpcy50eXBlLFxyXG4gICAgICBkYXRhOiB0aGlzLmdldENoYXJ0RGF0YSgpLFxyXG4gICAgICBvcHRpb25zOiB0aGlzLmdldENoYXJ0T3B0aW9ucygpLFxyXG4gICAgICBwbHVnaW5zOiB0aGlzLnBsdWdpbnNcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENoYXJ0RGF0YSgpOiBDaGFydENvbmZpZ3VyYXRpb248VFR5cGUsIFREYXRhLCBUTGFiZWw+WydkYXRhJ10ge1xyXG4gICAgY29uc3QgY2hhcnREYXRhID0gdGhpcy5kYXRhID8gdGhpcy5kYXRhIDoge1xyXG4gICAgICBsYWJlbHM6IHRoaXMubGFiZWxzIHx8IFtdLFxyXG4gICAgICBkYXRhc2V0czogdGhpcy5kYXRhc2V0cyB8fCBbXVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy5jaGFydE9wdGlvbnMuZGVmYXVsdENvbG9ycylcclxuICAgICAgdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0RGF0YXNldFN0eWxlcyh0aGlzLnR5cGUsIGNoYXJ0RGF0YS5kYXRhc2V0cyBhcyBhbnkpO1xyXG5cclxuICAgIHJldHVybiBjaGFydERhdGE7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENoYXJ0T3B0aW9ucygpOiBDaGFydENvbmZpZ3VyYXRpb248VFR5cGUsIFREYXRhLCBUTGFiZWw+WydvcHRpb25zJ10ge1xyXG4gICAgY29uc3QgY2hhcnRPcHRpb25zID0gdGhpcy5vdmVycmlkZURlZmF1bHRPcHRpb25zQnlNb2RlbCgpO1xyXG4gICAgcmV0dXJuIG1lcmdlRGVlcChjaGFydE9wdGlvbnMsIHRoaXMub3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG92ZXJyaWRlRGVmYXVsdE9wdGlvbnNCeU1vZGVsKCk6IHZvaWQge1xyXG4gICAgY29uc3QgZGVmYXVsdENoYXJ0T3B0aW9ucyA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmdldERlZmF1bHRPcHRpb25zKHRoaXMudHlwZSk7XHJcblxyXG4gICAgZGVmYXVsdENoYXJ0T3B0aW9ucy5zY2FsZXMueC5ncmlkLmRpc3BsYXkgPSB0aGlzLmNoYXJ0T3B0aW9ucy5ncmlkTGluZXM7XHJcbiAgICBkZWZhdWx0Q2hhcnRPcHRpb25zLnNjYWxlcy54LmRpc3BsYXkgPSB0aGlzLmNoYXJ0T3B0aW9ucy54QXhlO1xyXG4gICAgZGVmYXVsdENoYXJ0T3B0aW9ucy5zY2FsZXMueS5ncmlkLmRpc3BsYXkgPSB0aGlzLmNoYXJ0T3B0aW9ucy5ncmlkTGluZXM7XHJcbiAgICBkZWZhdWx0Q2hhcnRPcHRpb25zLnNjYWxlcy55LmRpc3BsYXkgPSB0aGlzLmNoYXJ0T3B0aW9ucy55QXhlO1xyXG4gICAgZGVmYXVsdENoYXJ0T3B0aW9ucy5zY2FsZXMueC50aWNrcy5kaXNwbGF5ID0gdGhpcy5jaGFydE9wdGlvbnMudGlja3M7XHJcbiAgICBkZWZhdWx0Q2hhcnRPcHRpb25zLnNjYWxlcy55LnRpY2tzLmRpc3BsYXkgPSB0aGlzLmNoYXJ0T3B0aW9ucy50aWNrcztcclxuICAgIGRlZmF1bHRDaGFydE9wdGlvbnMucGx1Z2lucy50b29sdGlwLmVuYWJsZWQgPSB0aGlzLmNoYXJ0T3B0aW9ucy50b29sdGlwO1xyXG4gICAgZGVmYXVsdENoYXJ0T3B0aW9ucy5wbHVnaW5zLmxlZ2VuZC5kaXNwbGF5ID0gdGhpcy5jaGFydE9wdGlvbnMubGVnZW5kO1xyXG5cclxuICAgIHJldHVybiBtZXJnZURlZXAoZGVmYXVsdENoYXJ0T3B0aW9ucywgdGhpcy50aGVtZU9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVDb2xvcnMobW9kZWw6IENoYXJ0VGhlbWVNb2RlbCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY2hhcnQpIHtcclxuXHJcbiAgICAgIG1lcmdlRGVlcCh0aGlzLmNoYXJ0LmNvbmZpZy5vcHRpb25zLCBtb2RlbC5vcHRpb25zKTtcclxuXHJcbiAgICAgIGlmIChpc0RlZmluZWQobW9kZWwuZGF0YVNldENvbG9ycykpXHJcbiAgICAgICAgdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0RGF0YXNldFN0eWxlcyh0aGlzLnR5cGUsIHRoaXMuY2hhcnQuY29uZmlnLmRhdGEuZGF0YXNldHMgYXMgYW55LCBtb2RlbC5kYXRhU2V0Q29sb3JzKTtcclxuXHJcbiAgICAgIHRoaXMudXBkYXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxjYW52YXMgI2NoYXJ0PjwvY2FudmFzPiJdfQ==
@@ -0,0 +1,95 @@
1
+ import { UIConstants, replaceRgbOpacity } from "ngx-sfc-common";
2
+ const DEFAULT_BACKGROUND_COLORS = [
3
+ `rgb(93%, 33%, 40%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,
4
+ `rgba(99%, 43%, 32%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,
5
+ `rgb(100%, 81%, 33%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,
6
+ `rgb(63%, 83%, 41%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,
7
+ `rgb(28%, 81%, 68%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,
8
+ `rgb(31%, 76%, 91%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,
9
+ `rgb(36%, 61%, 93%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,
10
+ `rgb(67%, 57%, 93%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,
11
+ `rgb(93%, 53%, 75%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,
12
+ `rgb(80%, 82%, 85%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`
13
+ ];
14
+ const DEFAULT_BORDER_COLORS = ['#DA4453', '#E9573F', '#FCBB42', '#8CC152', '#37BC9B', '#3BAFDA', '#4A89DC', '#967ADC', '#D770AD', '#AAB2BD'];
15
+ const DEFAULT_MODE_COLORS = { GRID: 'rgba(0,0,0,0.1)', TICKS: '#666' };
16
+ const DARK_MODE_COLORS = { GRID: '#656D78', TICKS: '#E6E9ED' };
17
+ export const CHART_DEFAULTS = {
18
+ OPTIONS: _getOptions(),
19
+ OPTIONS_NOT_LINES: _getOptions(false),
20
+ OPTIONS_RADIAL: _getOptions(false, true),
21
+ COLORS: _getColors(),
22
+ HALF_TRANSPARENT_COLORS: _getColors(0.5),
23
+ THEME: {
24
+ DEFAULT: _getThemeOptions(false),
25
+ DARK: _getThemeOptions(true)
26
+ }
27
+ };
28
+ function _getOptions(showAxes = true, showRadialAxes = false) {
29
+ return {
30
+ responsive: true,
31
+ maintainAspectRatio: false,
32
+ scales: {
33
+ x: {
34
+ display: showAxes,
35
+ grid: { display: true },
36
+ ticks: { display: true }
37
+ },
38
+ y: {
39
+ display: showAxes,
40
+ grid: { display: true },
41
+ ticks: { display: true }
42
+ },
43
+ r: {
44
+ display: showRadialAxes,
45
+ }
46
+ },
47
+ plugins: {
48
+ tooltip: { enabled: true },
49
+ legend: { display: true }
50
+ }
51
+ };
52
+ }
53
+ function _getColors(opacity = 1) {
54
+ const backgrounds = DEFAULT_BACKGROUND_COLORS.map(b => replaceRgbOpacity(b, opacity));
55
+ return backgrounds.map((background, index) => {
56
+ const border = DEFAULT_BORDER_COLORS[index];
57
+ return {
58
+ backgroundColor: background,
59
+ hoverBackgroundColor: background,
60
+ borderColor: border,
61
+ pointBackgroundColor: background,
62
+ pointBorderColor: border
63
+ };
64
+ });
65
+ }
66
+ function _getThemeOptions(dark) {
67
+ const grid = dark ? DARK_MODE_COLORS.GRID : DEFAULT_MODE_COLORS.GRID, ticks = dark ? DARK_MODE_COLORS.TICKS : DEFAULT_MODE_COLORS.TICKS;
68
+ return {
69
+ scales: {
70
+ x: {
71
+ grid: { color: grid },
72
+ ticks: { color: ticks }
73
+ },
74
+ y: {
75
+ grid: { color: grid },
76
+ ticks: { color: ticks }
77
+ },
78
+ r: {
79
+ angleLines: { color: grid },
80
+ grid: { color: grid },
81
+ ticks: { color: ticks, backdropColor: 'transparent' },
82
+ pointLabels: { color: ticks }
83
+ }
84
+ },
85
+ plugins: {
86
+ legend: {
87
+ labels: { color: ticks }
88
+ },
89
+ title: {
90
+ color: ticks
91
+ }
92
+ }
93
+ };
94
+ }
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jaGFydC9jaGFydC5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2hFLE1BQU0seUJBQXlCLEdBQUc7SUFDOUIsc0JBQXNCLFdBQVcsQ0FBQyx1QkFBdUIsR0FBRztJQUM1RCx1QkFBdUIsV0FBVyxDQUFDLHVCQUF1QixHQUFHO0lBQzdELHVCQUF1QixXQUFXLENBQUMsdUJBQXVCLEdBQUc7SUFDN0Qsc0JBQXNCLFdBQVcsQ0FBQyx1QkFBdUIsR0FBRztJQUM1RCxzQkFBc0IsV0FBVyxDQUFDLHVCQUF1QixHQUFHO0lBQzVELHNCQUFzQixXQUFXLENBQUMsdUJBQXVCLEdBQUc7SUFDNUQsc0JBQXNCLFdBQVcsQ0FBQyx1QkFBdUIsR0FBRztJQUM1RCxzQkFBc0IsV0FBVyxDQUFDLHVCQUF1QixHQUFHO0lBQzVELHNCQUFzQixXQUFXLENBQUMsdUJBQXVCLEdBQUc7SUFDNUQsc0JBQXNCLFdBQVcsQ0FBQyx1QkFBdUIsR0FBRztDQUMvRCxDQUFDO0FBRUYsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBRTdJLE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBRXZFLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FB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Z0JBQ3JCLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRTtnQkFDckQsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTthQUNoQztTQUNKO1FBQ0QsT0FBTyxFQUFFO1lBQ0wsTUFBTSxFQUFFO2dCQUNKLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7YUFDM0I7WUFDRCxLQUFLLEVBQUU7Z0JBQ0gsS0FBSyxFQUFFLEtBQUs7YUFDZjtTQUNKO0tBQ0osQ0FBQTtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFydENvbmZpZ3VyYXRpb24gfSBmcm9tIFwiY2hhcnQuanNcIjtcclxuaW1wb3J0IHsgVUlDb25zdGFudHMsIHJlcGxhY2VSZ2JPcGFjaXR5IH0gZnJvbSBcIm5neC1zZmMtY29tbW9uXCI7XHJcbmltcG9ydCB7IENoYXJ0VGhlbWVEYXRhU2V0Q29sb3JzIH0gZnJvbSBcIi4vc2VydmljZS90aGVtZS9jaGFydC10aGVtZS5tb2RlbFwiO1xyXG5cclxuY29uc3QgREVGQVVMVF9CQUNLR1JPVU5EX0NPTE9SUyA9IFtcclxuICAgIGByZ2IoOTMlLCAzMyUsIDQwJSwgJHtVSUNvbnN0YW50cy5SR0JfT1BBQ0lUWV9QTEFDRUhPTERFUn0pYCxcclxuICAgIGByZ2JhKDk5JSwgNDMlLCAzMiUsICR7VUlDb25zdGFudHMuUkdCX09QQUNJVFlfUExBQ0VIT0xERVJ9KWAsXHJcbiAgICBgcmdiKDEwMCUsIDgxJSwgMzMlLCAke1VJQ29uc3RhbnRzLlJHQl9PUEFDSVRZX1BMQUNFSE9MREVSfSlgLFxyXG4gICAgYHJnYig2MyUsIDgzJSwgNDElLCAke1VJQ29uc3RhbnRzLlJHQl9PUEFDSVRZX1BMQUNFSE9MREVSfSlgLFxyXG4gICAgYHJnYigyOCUsIDgxJSwgNjglLCAke1VJQ29uc3RhbnRzLlJHQl9PUEFDSVRZX1BMQUNFSE9MREVSfSlgLFxyXG4gICAgYHJnYigzMSUsIDc2JSwgOTElLCAke1VJQ29uc3RhbnRzLlJHQl9PUEFDSVRZX1BMQUNFSE9MREVSfSlgLFxyXG4gICAgYHJnYigzNiUsIDYxJSwgOTMlLCAke1VJQ29uc3RhbnRzLlJHQl9PUEFDSVRZX1BMQUNFSE9MREVSfSlgLFxyXG4gICAgYHJnYig2NyUsIDU3JSwgOTMlLCAke1VJQ29uc3RhbnRzLlJHQl9PUEFDSVRZX1BMQUNFSE9MREVSfSlgLFxyXG4gICAgYHJnYig5MyUsIDUzJSwgNzUlLCAke1VJQ29uc3RhbnRzLlJHQl9PUEFDSVRZX1BMQUNFSE9MREVSfSlgLFxyXG4gICAgYHJnYig4MCUsIDgyJSwgODUlLCAke1VJQ29uc3RhbnRzLlJHQl9PUEFDSVRZX1BMQUNFSE9MREVSfSlgXHJcbl07XHJcblxyXG5jb25zdCBERUZBVUxUX0JPUkRFUl9DT0xPUlMgPSBbJyNEQTQ0NTMnLCAnI0U5NTczRicsICcjRkNCQjQyJywgJyM4Q0MxNTInLCAnIzM3QkM5QicsICcjM0JBRkRBJywgJyM0QTg5REMnLCAnIzk2N0FEQycsICcjRDc3MEFEJywgJyNBQUIyQkQnXTtcclxuXHJcbmNvbnN0IERFRkFVTFRfTU9ERV9DT0xPUlMgPSB7IEdSSUQ6ICdyZ2JhKDAsMCwwLDAuMSknLCBUSUNLUzogJyM2NjYnIH07XHJcblxyXG5jb25zdCBEQVJLX01PREVfQ09MT1JTID0geyBHUklEOiAnIzY1NkQ3OCcsIFRJQ0tTOiAnI0U2RTlFRCcgfTtcclxuXHJcbmV4cG9ydCBjb25zdCBDSEFSVF9ERUZBVUxUUyA9IHtcclxuICAgIE9QVElPTlM6IF9nZXRPcHRpb25zKCksXHJcbiAgICBPUFRJT05TX05PVF9MSU5FUzogX2dldE9wdGlvbnMoZmFsc2UpLFxyXG4gICAgT1BUSU9OU19SQURJQUw6IF9nZXRPcHRpb25zKGZhbHNlLCB0cnVlKSxcclxuICAgIENPTE9SUzogX2dldENvbG9ycygpLFxyXG4gICAgSEFMRl9UUkFOU1BBUkVOVF9DT0xPUlM6IF9nZXRDb2xvcnMoMC41KSxcclxuICAgIFRIRU1FOiB7XHJcbiAgICAgICAgREVGQVVMVDogX2dldFRoZW1lT3B0aW9ucyhmYWxzZSksXHJcbiAgICAgICAgREFSSzogX2dldFRoZW1lT3B0aW9ucyh0cnVlKVxyXG4gICAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBfZ2V0T3B0aW9ucyhzaG93QXhlczogYm9vbGVhbiA9IHRydWUsIHNob3dSYWRpYWxBeGVzOiBib29sZWFuID0gZmFsc2UpOiBDaGFydENvbmZpZ3VyYXRpb25bJ29wdGlvbnMnXSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHJlc3BvbnNpdmU6IHRydWUsXHJcbiAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXHJcbiAgICAgICAgc2NhbGVzOiB7XHJcbiAgICAgICAgICAgIHg6IHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IHNob3dBeGVzLFxyXG4gICAgICAgICAgICAgICAgZ3JpZDogeyBkaXNwbGF5OiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgICB0aWNrczogeyBkaXNwbGF5OiB0cnVlIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeToge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogc2hvd0F4ZXMsXHJcbiAgICAgICAgICAgICAgICBncmlkOiB7IGRpc3BsYXk6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIHRpY2tzOiB7IGRpc3BsYXk6IHRydWUgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICByOiB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBzaG93UmFkaWFsQXhlcyxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcGx1Z2luczoge1xyXG4gICAgICAgICAgICB0b29sdGlwOiB7IGVuYWJsZWQ6IHRydWUgfSxcclxuICAgICAgICAgICAgbGVnZW5kOiB7IGRpc3BsYXk6IHRydWUgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIF9nZXRDb2xvcnMob3BhY2l0eTogbnVtYmVyID0gMSk6IENoYXJ0VGhlbWVEYXRhU2V0Q29sb3JzW10ge1xyXG4gICAgY29uc3QgYmFja2dyb3VuZHMgPSBERUZBVUxUX0JBQ0tHUk9VTkRfQ09MT1JTLm1hcChiID0+IHJlcGxhY2VSZ2JPcGFjaXR5KGIsIG9wYWNpdHkpKTtcclxuXHJcbiAgICByZXR1cm4gYmFja2dyb3VuZHMubWFwKChiYWNrZ3JvdW5kOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICBjb25zdCBib3JkZXIgPSBERUZBVUxUX0JPUkRFUl9DT0xPUlNbaW5kZXhdO1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogYmFja2dyb3VuZCxcclxuICAgICAgICAgICAgaG92ZXJCYWNrZ3JvdW5kQ29sb3I6IGJhY2tncm91bmQsXHJcbiAgICAgICAgICAgIGJvcmRlckNvbG9yOiBib3JkZXIsXHJcbiAgICAgICAgICAgIHBvaW50QmFja2dyb3VuZENvbG9yOiBiYWNrZ3JvdW5kLFxyXG4gICAgICAgICAgICBwb2ludEJvcmRlckNvbG9yOiBib3JkZXJcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gX2dldFRoZW1lT3B0aW9ucyhkYXJrOiBib29sZWFuKSB7XHJcbiAgICBjb25zdCBncmlkID0gZGFyayA/IERBUktfTU9ERV9DT0xPUlMuR1JJRCA6IERFRkFVTFRfTU9ERV9DT0xPUlMuR1JJRCxcclxuICAgICAgICB0aWNrcyA9IGRhcmsgPyBEQVJLX01PREVfQ09MT1JTLlRJQ0tTIDogREVGQVVMVF9NT0RFX0NPTE9SUy5USUNLUztcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgc2NhbGVzOiB7XHJcbiAgICAgICAgICAgIHg6IHtcclxuICAgICAgICAgICAgICAgIGdyaWQ6IHsgY29sb3I6IGdyaWQgfSxcclxuICAgICAgICAgICAgICAgIHRpY2tzOiB7IGNvbG9yOiB0aWNrcyB9XHJcblxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB5OiB7XHJcbiAgICAgICAgICAgICAgICBncmlkOiB7IGNvbG9yOiBncmlkIH0sXHJcbiAgICAgICAgICAgICAgICB0aWNrczogeyBjb2xvcjogdGlja3MgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICByOiB7XHJcbiAgICAgICAgICAgICAgICBhbmdsZUxpbmVzOiB7IGNvbG9yOiBncmlkIH0sXHJcbiAgICAgICAgICAgICAgICBncmlkOiB7IGNvbG9yOiBncmlkIH0sXHJcbiAgICAgICAgICAgICAgICB0aWNrczogeyBjb2xvcjogdGlja3MsIGJhY2tkcm9wQ29sb3I6ICd0cmFuc3BhcmVudCcgfSxcclxuICAgICAgICAgICAgICAgIHBvaW50TGFiZWxzOiB7IGNvbG9yOiB0aWNrcyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHBsdWdpbnM6IHtcclxuICAgICAgICAgICAgbGVnZW5kOiB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbHM6IHsgY29sb3I6IHRpY2tzIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgdGl0bGU6IHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB0aWNrc1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19