@net7/boilerplate-arianna 3.0.1-rc.2

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 (256) hide show
  1. package/README.md +24 -0
  2. package/esm2020/lib/components/aw-facets-wrapper/aw-facets-wrapper.mjs +29 -0
  3. package/esm2020/lib/components/bubble-chart-wrapper/bubble-chart-wrapper.mjs +23 -0
  4. package/esm2020/lib/components/chart-tippy/chart-tippy.mjs +25 -0
  5. package/esm2020/lib/components/index.mjs +7 -0
  6. package/esm2020/lib/components/pdf-viewer/pdf-viewer.mjs +31 -0
  7. package/esm2020/lib/components/scheda-dropdown/scheda-dropdown.mjs +26 -0
  8. package/esm2020/lib/components/smart-breadcrumbs/smart-breadcrumbs.mjs +82 -0
  9. package/esm2020/lib/config/apollo.config.mjs +706 -0
  10. package/esm2020/lib/config-types/arianna/app.mjs +2 -0
  11. package/esm2020/lib/config-types/arianna/index.mjs +3 -0
  12. package/esm2020/lib/config-types/arianna/layouts.mjs +2 -0
  13. package/esm2020/lib/config-types/index.mjs +2 -0
  14. package/esm2020/lib/data-sources/autocomplete-wrapper.ds.mjs +48 -0
  15. package/esm2020/lib/data-sources/aw-facets-wrapper.ds.mjs +162 -0
  16. package/esm2020/lib/data-sources/bubble-chart.ds.mjs +95 -0
  17. package/esm2020/lib/data-sources/carousel.ds.mjs +74 -0
  18. package/esm2020/lib/data-sources/chart-tippy.ds.mjs +30 -0
  19. package/esm2020/lib/data-sources/entita-metadata-viewer.ds.mjs +16 -0
  20. package/esm2020/lib/data-sources/entita-nav.ds.mjs +74 -0
  21. package/esm2020/lib/data-sources/gallery-results.ds.mjs +103 -0
  22. package/esm2020/lib/data-sources/hero.ds.mjs +27 -0
  23. package/esm2020/lib/data-sources/home-autocomplete.ds.mjs +80 -0
  24. package/esm2020/lib/data-sources/home-facets-wrapper.ds.mjs +178 -0
  25. package/esm2020/lib/data-sources/home-hero-patrimonio.ds.mjs +7 -0
  26. package/esm2020/lib/data-sources/home-item-tags-wrapper.ds.mjs +7 -0
  27. package/esm2020/lib/data-sources/index.mjs +36 -0
  28. package/esm2020/lib/data-sources/linked-objects.ds.mjs +219 -0
  29. package/esm2020/lib/data-sources/map.ds.mjs +88 -0
  30. package/esm2020/lib/data-sources/related-entities.ds.mjs +35 -0
  31. package/esm2020/lib/data-sources/scheda-breadcrumbs.ds.mjs +18 -0
  32. package/esm2020/lib/data-sources/scheda-dropdown.ds.mjs +40 -0
  33. package/esm2020/lib/data-sources/scheda-image.ds.mjs +65 -0
  34. package/esm2020/lib/data-sources/scheda-inner-title.ds.mjs +7 -0
  35. package/esm2020/lib/data-sources/scheda-metadata.ds.mjs +11 -0
  36. package/esm2020/lib/data-sources/scheda-pdf.ds.mjs +54 -0
  37. package/esm2020/lib/data-sources/search-layout-tabs.ds.mjs +28 -0
  38. package/esm2020/lib/data-sources/sidebar-header.ds.mjs +24 -0
  39. package/esm2020/lib/data-sources/table.ds.mjs +8 -0
  40. package/esm2020/lib/data-sources/timeline.ds.mjs +106 -0
  41. package/esm2020/lib/data-sources/tree.ds.mjs +154 -0
  42. package/esm2020/lib/event-handlers/autocomplete-wrapper.eh.mjs +18 -0
  43. package/esm2020/lib/event-handlers/aw-facets-wrapper.eh.mjs +88 -0
  44. package/esm2020/lib/event-handlers/bubble-chart.eh.mjs +98 -0
  45. package/esm2020/lib/event-handlers/chart-tippy.eh.mjs +64 -0
  46. package/esm2020/lib/event-handlers/entita-nav.eh.mjs +22 -0
  47. package/esm2020/lib/event-handlers/gallery-results.eh.mjs +38 -0
  48. package/esm2020/lib/event-handlers/hero.eh.mjs +25 -0
  49. package/esm2020/lib/event-handlers/home-autocomplete.eh.mjs +15 -0
  50. package/esm2020/lib/event-handlers/home-facets-wrapper.eh.mjs +125 -0
  51. package/esm2020/lib/event-handlers/home-hero-patrimonio.eh.mjs +7 -0
  52. package/esm2020/lib/event-handlers/home-item-tags-wrapper.eh.mjs +18 -0
  53. package/esm2020/lib/event-handlers/index.mjs +30 -0
  54. package/esm2020/lib/event-handlers/linked-objects.eh.mjs +60 -0
  55. package/esm2020/lib/event-handlers/map.eh.mjs +23 -0
  56. package/esm2020/lib/event-handlers/scheda-breadcrumbs.eh.mjs +12 -0
  57. package/esm2020/lib/event-handlers/scheda-dropdown.eh.mjs +17 -0
  58. package/esm2020/lib/event-handlers/scheda-pdf.eh.mjs +14 -0
  59. package/esm2020/lib/event-handlers/search-layout-tabs.eh.mjs +7 -0
  60. package/esm2020/lib/event-handlers/sidebar-header.eh.mjs +11 -0
  61. package/esm2020/lib/event-handlers/table.eh.mjs +15 -0
  62. package/esm2020/lib/event-handlers/timeline.eh.mjs +46 -0
  63. package/esm2020/lib/event-handlers/tree.eh.mjs +113 -0
  64. package/esm2020/lib/helpers/metadata.helper.mjs +89 -0
  65. package/esm2020/lib/layouts/collection-layout/collection-layout.config.mjs +17 -0
  66. package/esm2020/lib/layouts/collection-layout/collection-layout.ds.mjs +173 -0
  67. package/esm2020/lib/layouts/collection-layout/collection-layout.eh.mjs +27 -0
  68. package/esm2020/lib/layouts/collection-layout/collection-layout.mjs +38 -0
  69. package/esm2020/lib/layouts/collection-layout/collection-layout.types.mjs +2 -0
  70. package/esm2020/lib/layouts/entita-layout/entita-layout.config.mjs +29 -0
  71. package/esm2020/lib/layouts/entita-layout/entita-layout.ds.mjs +310 -0
  72. package/esm2020/lib/layouts/entita-layout/entita-layout.eh.mjs +119 -0
  73. package/esm2020/lib/layouts/entita-layout/entita-layout.mjs +51 -0
  74. package/esm2020/lib/layouts/entita-layout/entita-layout.types.mjs +2 -0
  75. package/esm2020/lib/layouts/gallery-layout/gallery-facets.config.mjs +145 -0
  76. package/esm2020/lib/layouts/gallery-layout/gallery-layout.config.mjs +32 -0
  77. package/esm2020/lib/layouts/gallery-layout/gallery-layout.ds.mjs +15 -0
  78. package/esm2020/lib/layouts/gallery-layout/gallery-layout.eh.mjs +8 -0
  79. package/esm2020/lib/layouts/gallery-layout/gallery-layout.mjs +45 -0
  80. package/esm2020/lib/layouts/home-layout/home-layout.config.mjs +36 -0
  81. package/esm2020/lib/layouts/home-layout/home-layout.ds.mjs +286 -0
  82. package/esm2020/lib/layouts/home-layout/home-layout.eh.mjs +245 -0
  83. package/esm2020/lib/layouts/home-layout/home-layout.mjs +44 -0
  84. package/esm2020/lib/layouts/index.mjs +41 -0
  85. package/esm2020/lib/layouts/map-layout/map-layout.config.mjs +26 -0
  86. package/esm2020/lib/layouts/map-layout/map-layout.ds.mjs +112 -0
  87. package/esm2020/lib/layouts/map-layout/map-layout.eh.mjs +44 -0
  88. package/esm2020/lib/layouts/map-layout/map-layout.mjs +46 -0
  89. package/esm2020/lib/layouts/scheda-layout/scheda-layout.config.mjs +32 -0
  90. package/esm2020/lib/layouts/scheda-layout/scheda-layout.ds.mjs +282 -0
  91. package/esm2020/lib/layouts/scheda-layout/scheda-layout.eh.mjs +150 -0
  92. package/esm2020/lib/layouts/scheda-layout/scheda-layout.mjs +53 -0
  93. package/esm2020/lib/layouts/search-layout/search-facets.config.mjs +163 -0
  94. package/esm2020/lib/layouts/search-layout/search-layout.config.mjs +32 -0
  95. package/esm2020/lib/layouts/search-layout/search-layout.ds.mjs +296 -0
  96. package/esm2020/lib/layouts/search-layout/search-layout.eh.mjs +175 -0
  97. package/esm2020/lib/layouts/search-layout/search-layout.mjs +50 -0
  98. package/esm2020/lib/layouts/timeline-layout/timeline-layout.config.mjs +26 -0
  99. package/esm2020/lib/layouts/timeline-layout/timeline-layout.ds.mjs +133 -0
  100. package/esm2020/lib/layouts/timeline-layout/timeline-layout.eh.mjs +41 -0
  101. package/esm2020/lib/layouts/timeline-layout/timeline-layout.mjs +46 -0
  102. package/esm2020/lib/n7-boilerplate-arianna.module.mjs +110 -0
  103. package/esm2020/lib/search/aw-facet-inputs/aw-facet-input-checkbox.mjs +32 -0
  104. package/esm2020/lib/search/aw-facet-inputs/aw-facet-input-link.mjs +89 -0
  105. package/esm2020/lib/search/aw-facet-inputs/aw-facet-input-select.mjs +28 -0
  106. package/esm2020/lib/search/aw-facet-inputs/aw-facet-input-text.mjs +36 -0
  107. package/esm2020/lib/search/aw-facet-inputs/aw-facet-input.mjs +30 -0
  108. package/esm2020/lib/search/aw-facet-inputs/index.mjs +6 -0
  109. package/esm2020/lib/search/aw-search.model.mjs +331 -0
  110. package/esm2020/lib/search/aw-search.service.mjs +42 -0
  111. package/esm2020/lib/search/entity-links.helper.mjs +126 -0
  112. package/esm2020/net7-boilerplate-arianna.mjs +5 -0
  113. package/esm2020/public-api.mjs +11 -0
  114. package/fesm2015/net7-boilerplate-arianna.mjs +7482 -0
  115. package/fesm2015/net7-boilerplate-arianna.mjs.map +1 -0
  116. package/fesm2020/net7-boilerplate-arianna.mjs +7520 -0
  117. package/fesm2020/net7-boilerplate-arianna.mjs.map +1 -0
  118. package/lib/components/aw-facets-wrapper/aw-facets-wrapper.d.ts +9 -0
  119. package/lib/components/bubble-chart-wrapper/bubble-chart-wrapper.d.ts +9 -0
  120. package/lib/components/chart-tippy/chart-tippy.d.ts +9 -0
  121. package/lib/components/index.d.ts +6 -0
  122. package/lib/components/pdf-viewer/pdf-viewer.d.ts +38 -0
  123. package/lib/components/scheda-dropdown/scheda-dropdown.d.ts +23 -0
  124. package/lib/components/smart-breadcrumbs/smart-breadcrumbs.d.ts +71 -0
  125. package/lib/config/apollo.config.d.ts +67 -0
  126. package/lib/config-types/arianna/app.d.ts +103 -0
  127. package/lib/config-types/arianna/index.d.ts +2 -0
  128. package/lib/config-types/arianna/layouts.d.ts +164 -0
  129. package/lib/config-types/index.d.ts +1 -0
  130. package/lib/data-sources/autocomplete-wrapper.ds.d.ts +18 -0
  131. package/lib/data-sources/aw-facets-wrapper.ds.d.ts +50 -0
  132. package/lib/data-sources/bubble-chart.ds.d.ts +47 -0
  133. package/lib/data-sources/carousel.ds.d.ts +22 -0
  134. package/lib/data-sources/chart-tippy.ds.d.ts +4 -0
  135. package/lib/data-sources/entita-metadata-viewer.ds.d.ts +9 -0
  136. package/lib/data-sources/entita-nav.ds.d.ts +4 -0
  137. package/lib/data-sources/gallery-results.ds.d.ts +11 -0
  138. package/lib/data-sources/hero.ds.d.ts +20 -0
  139. package/lib/data-sources/home-autocomplete.ds.d.ts +37 -0
  140. package/lib/data-sources/home-facets-wrapper.ds.d.ts +14 -0
  141. package/lib/data-sources/home-hero-patrimonio.ds.d.ts +4 -0
  142. package/lib/data-sources/home-item-tags-wrapper.ds.d.ts +4 -0
  143. package/lib/data-sources/index.d.ts +27 -0
  144. package/lib/data-sources/linked-objects.ds.d.ts +22 -0
  145. package/lib/data-sources/map.ds.d.ts +17 -0
  146. package/lib/data-sources/related-entities.ds.d.ts +7 -0
  147. package/lib/data-sources/scheda-breadcrumbs.ds.d.ts +5 -0
  148. package/lib/data-sources/scheda-dropdown.ds.d.ts +7 -0
  149. package/lib/data-sources/scheda-image.ds.d.ts +10 -0
  150. package/lib/data-sources/scheda-inner-title.ds.d.ts +4 -0
  151. package/lib/data-sources/scheda-metadata.ds.d.ts +8 -0
  152. package/lib/data-sources/scheda-pdf.ds.d.ts +8 -0
  153. package/lib/data-sources/search-layout-tabs.ds.d.ts +12 -0
  154. package/lib/data-sources/sidebar-header.ds.d.ts +11 -0
  155. package/lib/data-sources/table.ds.d.ts +4 -0
  156. package/lib/data-sources/timeline.ds.d.ts +37 -0
  157. package/lib/data-sources/tree.ds.d.ts +19 -0
  158. package/lib/event-handlers/autocomplete-wrapper.eh.d.ts +4 -0
  159. package/lib/event-handlers/aw-facets-wrapper.eh.d.ts +7 -0
  160. package/lib/event-handlers/bubble-chart.eh.d.ts +7 -0
  161. package/lib/event-handlers/chart-tippy.eh.d.ts +6 -0
  162. package/lib/event-handlers/entita-nav.eh.d.ts +4 -0
  163. package/lib/event-handlers/gallery-results.eh.d.ts +4 -0
  164. package/lib/event-handlers/hero.eh.d.ts +4 -0
  165. package/lib/event-handlers/home-autocomplete.eh.d.ts +4 -0
  166. package/lib/event-handlers/home-facets-wrapper.eh.d.ts +7 -0
  167. package/lib/event-handlers/home-hero-patrimonio.eh.d.ts +4 -0
  168. package/lib/event-handlers/home-item-tags-wrapper.eh.d.ts +4 -0
  169. package/lib/event-handlers/index.d.ts +21 -0
  170. package/lib/event-handlers/linked-objects.eh.d.ts +5 -0
  171. package/lib/event-handlers/map.eh.d.ts +5 -0
  172. package/lib/event-handlers/scheda-breadcrumbs.eh.d.ts +4 -0
  173. package/lib/event-handlers/scheda-dropdown.eh.d.ts +4 -0
  174. package/lib/event-handlers/scheda-pdf.eh.d.ts +6 -0
  175. package/lib/event-handlers/search-layout-tabs.eh.d.ts +4 -0
  176. package/lib/event-handlers/sidebar-header.eh.d.ts +4 -0
  177. package/lib/event-handlers/table.eh.d.ts +4 -0
  178. package/lib/event-handlers/timeline.eh.d.ts +5 -0
  179. package/lib/event-handlers/tree.eh.d.ts +9 -0
  180. package/lib/helpers/metadata.helper.d.ts +15 -0
  181. package/lib/layouts/collection-layout/collection-layout.config.d.ts +13 -0
  182. package/lib/layouts/collection-layout/collection-layout.d.ts +21 -0
  183. package/lib/layouts/collection-layout/collection-layout.ds.d.ts +50 -0
  184. package/lib/layouts/collection-layout/collection-layout.eh.d.ts +6 -0
  185. package/lib/layouts/collection-layout/collection-layout.types.d.ts +31 -0
  186. package/lib/layouts/entita-layout/entita-layout.config.d.ts +29 -0
  187. package/lib/layouts/entita-layout/entita-layout.d.ts +28 -0
  188. package/lib/layouts/entita-layout/entita-layout.ds.d.ts +76 -0
  189. package/lib/layouts/entita-layout/entita-layout.eh.d.ts +13 -0
  190. package/lib/layouts/entita-layout/entita-layout.types.d.ts +17 -0
  191. package/lib/layouts/gallery-layout/gallery-facets.config.d.ts +150 -0
  192. package/lib/layouts/gallery-layout/gallery-layout.config.d.ts +38 -0
  193. package/lib/layouts/gallery-layout/gallery-layout.d.ts +26 -0
  194. package/lib/layouts/gallery-layout/gallery-layout.ds.d.ts +158 -0
  195. package/lib/layouts/gallery-layout/gallery-layout.eh.d.ts +4 -0
  196. package/lib/layouts/home-layout/home-layout.config.d.ts +15 -0
  197. package/lib/layouts/home-layout/home-layout.d.ts +23 -0
  198. package/lib/layouts/home-layout/home-layout.ds.d.ts +53 -0
  199. package/lib/layouts/home-layout/home-layout.eh.d.ts +11 -0
  200. package/lib/layouts/index.d.ts +32 -0
  201. package/lib/layouts/map-layout/map-layout.config.d.ts +22 -0
  202. package/lib/layouts/map-layout/map-layout.d.ts +23 -0
  203. package/lib/layouts/map-layout/map-layout.ds.d.ts +37 -0
  204. package/lib/layouts/map-layout/map-layout.eh.d.ts +5 -0
  205. package/lib/layouts/scheda-layout/scheda-layout.config.d.ts +19 -0
  206. package/lib/layouts/scheda-layout/scheda-layout.d.ts +33 -0
  207. package/lib/layouts/scheda-layout/scheda-layout.ds.d.ts +75 -0
  208. package/lib/layouts/scheda-layout/scheda-layout.eh.d.ts +11 -0
  209. package/lib/layouts/search-layout/search-facets.config.d.ts +168 -0
  210. package/lib/layouts/search-layout/search-layout.config.d.ts +38 -0
  211. package/lib/layouts/search-layout/search-layout.d.ts +31 -0
  212. package/lib/layouts/search-layout/search-layout.ds.d.ts +71 -0
  213. package/lib/layouts/search-layout/search-layout.eh.d.ts +31 -0
  214. package/lib/layouts/timeline-layout/timeline-layout.config.d.ts +22 -0
  215. package/lib/layouts/timeline-layout/timeline-layout.d.ts +23 -0
  216. package/lib/layouts/timeline-layout/timeline-layout.ds.d.ts +39 -0
  217. package/lib/layouts/timeline-layout/timeline-layout.eh.d.ts +5 -0
  218. package/lib/n7-boilerplate-arianna.module.d.ts +28 -0
  219. package/lib/search/aw-facet-inputs/aw-facet-input-checkbox.d.ts +18 -0
  220. package/lib/search/aw-facet-inputs/aw-facet-input-link.d.ts +8 -0
  221. package/lib/search/aw-facet-inputs/aw-facet-input-select.d.ts +21 -0
  222. package/lib/search/aw-facet-inputs/aw-facet-input-text.d.ts +30 -0
  223. package/lib/search/aw-facet-inputs/aw-facet-input.d.ts +35 -0
  224. package/lib/search/aw-facet-inputs/index.d.ts +5 -0
  225. package/lib/search/aw-search.model.d.ts +125 -0
  226. package/lib/search/aw-search.service.d.ts +13 -0
  227. package/lib/search/entity-links.helper.d.ts +12 -0
  228. package/net7-boilerplate-arianna.d.ts +5 -0
  229. package/package.json +36 -0
  230. package/public-api.d.ts +6 -0
  231. package/src/lib/styles/arianna/components/_advanced-autocomplete.scss +103 -0
  232. package/src/lib/styles/arianna/components/_breadcrumbs.scss +129 -0
  233. package/src/lib/styles/arianna/components/_bubble-popup-menu.scss +87 -0
  234. package/src/lib/styles/arianna/components/_carousel.scss +32 -0
  235. package/src/lib/styles/arianna/components/_facet-header.scss +58 -0
  236. package/src/lib/styles/arianna/components/_facet.scss +268 -0
  237. package/src/lib/styles/arianna/components/_footer.scss +64 -0
  238. package/src/lib/styles/arianna/components/_header.scss +61 -0
  239. package/src/lib/styles/arianna/components/_item-preview.scss +278 -0
  240. package/src/lib/styles/arianna/components/_map.scss +59 -0
  241. package/src/lib/styles/arianna/components/_metadata-viewer.scss +106 -0
  242. package/src/lib/styles/arianna/components/_pdf-viewer.scss +93 -0
  243. package/src/lib/styles/arianna/components/_simple-autocomplete.scss +60 -0
  244. package/src/lib/styles/arianna/components/_timeline.scss +112 -0
  245. package/src/lib/styles/arianna/components/_tippy-tooltip.scss +41 -0
  246. package/src/lib/styles/arianna/components/_tree.scss +110 -0
  247. package/src/lib/styles/arianna/generic/_color_scheme.scss +60 -0
  248. package/src/lib/styles/arianna/generic/_mixins.scss +18 -0
  249. package/src/lib/styles/arianna/generic/_variables.scss +380 -0
  250. package/src/lib/styles/arianna/layouts/_collection-layout.scss +200 -0
  251. package/src/lib/styles/arianna/layouts/_entita-layout.scss +344 -0
  252. package/src/lib/styles/arianna/layouts/_home-layout.scss +785 -0
  253. package/src/lib/styles/arianna/layouts/_multimedia-layout.scss +132 -0
  254. package/src/lib/styles/arianna/layouts/_scheda-layout.scss +438 -0
  255. package/src/lib/styles/arianna/layouts/_search-layout.scss +284 -0
  256. package/src/lib/styles/arianna/utilities/_item-preview-list.scss +48 -0
@@ -0,0 +1,286 @@
1
+ import { LayoutDataSource } from '@n7-frontend/core';
2
+ import { Subject, forkJoin, fromEvent } from 'rxjs';
3
+ import { debounceTime, takeUntil } from 'rxjs/operators';
4
+ import { helpers } from '@net7/boilerplate-common';
5
+ export class AwHomeLayoutDS extends LayoutDataSource {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.facetInputs = {};
9
+ this.autocompletePopoverOpen = false;
10
+ this.autocompleteChanged$ = new Subject();
11
+ this.numOfItemsStr = null;
12
+ this.currentHoverEntity = null;
13
+ this.hasScrollBackground = false;
14
+ this.resultsLimit = -1;
15
+ this.selectedEntitiesIds = [];
16
+ this.destroyed$ = new Subject();
17
+ this.homeAutocompleteIsLoading = false;
18
+ this.resultsListIsLoading = false;
19
+ /** Enabled from: arianna-config/features-enabled/carousel */
20
+ this.carouselEnabled = false;
21
+ // ===== BUBBLE CHART =====
22
+ this.bubblesEnabled = false; // true if this Arianna Web project has the bubble chart module
23
+ this.selectedBubbles = []; // array of IDs
24
+ this.updateComponent = (id, data, options) => {
25
+ // update components from EH
26
+ if (options) {
27
+ this.one(id).updateOptions(options);
28
+ }
29
+ this.one(id).update(data);
30
+ };
31
+ }
32
+ // ========================
33
+ onInit({ communication, mainState, configuration, tippy, }) {
34
+ this.communication = communication;
35
+ this.configuration = configuration;
36
+ // this.facetData = [];
37
+ this.mainState = mainState;
38
+ this.tippy = tippy;
39
+ this.resultsLimit = this.configuration.get('home-layout')['results-limit'];
40
+ this.bubblesEnabled = this.configuration.get('features-enabled')?.bubblechart;
41
+ this.carouselEnabled = this.configuration.get('features-enabled')?.carousel;
42
+ if (this.carouselEnabled) {
43
+ this.loadCarousel();
44
+ }
45
+ this.one('aw-hero').update(this.configuration.get('home-layout')['top-hero']);
46
+ this.one('aw-home-hero-patrimonio').update(this.configuration.get('home-layout')['bottom-hero']);
47
+ // update streams
48
+ this.mainState.update('headTitle', 'Arianna4View - Homepage');
49
+ this.mainState.update('pageTitle', 'Arianna4View - Homepage');
50
+ this.mainState.updateCustom('currentNav', 'home');
51
+ // listen autocomplete changes
52
+ this._listenAutoCompleteChanges();
53
+ this.outerLinks = this.configuration.get('home-layout')['outer-links'].test;
54
+ this.outerLinksTitle = this.configuration.get('home-layout')['outer-links'].title;
55
+ this.outerLinksDescription = this.configuration.get('home-layout')['outer-links'].description;
56
+ this.one('aw-bubble-chart').updateOptions({
57
+ selectable: true,
58
+ config: this.configuration,
59
+ limit: this.configuration.get('bubble-chart').bubbleLimit,
60
+ });
61
+ this.one('aw-chart-tippy').updateOptions({
62
+ basePath: this.configuration.get('paths').entitaBasePath,
63
+ selectable: true,
64
+ });
65
+ }
66
+ onDestroy() {
67
+ this.destroyed$.next();
68
+ }
69
+ makeRequest$(query, params) {
70
+ // make request from EH
71
+ return this.communication.request$(query, {
72
+ onError: (error) => console.error(error),
73
+ params,
74
+ });
75
+ }
76
+ initialFilterRequest() {
77
+ return this.communication.request$('globalFilter', {
78
+ onError: (error) => console.error(error),
79
+ params: {
80
+ entitiesListSize: this.configuration.get('bubble-chart').bubbleLimit,
81
+ },
82
+ });
83
+ }
84
+ parseInitialRequest(response) {
85
+ this.firstBubbleResponse = response.entitiesData;
86
+ const facetData = [];
87
+ response.typeOfEntityData.forEach((toe) => {
88
+ const TOEconfigData = this.configuration.get('config-keys')[toe.type];
89
+ facetData.push({
90
+ ...toe,
91
+ enabled: true,
92
+ locked: false,
93
+ ...TOEconfigData,
94
+ });
95
+ });
96
+ this.one('aw-home-facets-wrapper').update(facetData);
97
+ }
98
+ renderPreviewsFromApolloQuery(response) {
99
+ if (!response || !response.itemsPagination) {
100
+ return;
101
+ }
102
+ let numOfItems = response.itemsPagination.totalCount;
103
+ if (numOfItems > 0) {
104
+ let numOfThousand = 0;
105
+ while (numOfItems > 999) {
106
+ numOfItems -= 1000;
107
+ numOfThousand += 1;
108
+ }
109
+ let numOfItemsTmpStr = `${numOfItems}`;
110
+ if (numOfItems < 10)
111
+ numOfItemsTmpStr = `00${numOfItems}`;
112
+ else if (numOfItems < 100)
113
+ numOfItemsTmpStr = `0${numOfItems}`;
114
+ if (numOfThousand > 0)
115
+ this.numOfItemsStr = `${numOfThousand}.${numOfItemsTmpStr}`;
116
+ else
117
+ this.numOfItemsStr = `${numOfItems}`;
118
+ }
119
+ else {
120
+ this.numOfItemsStr = '0';
121
+ }
122
+ this.one('aw-linked-objects').updateOptions({
123
+ context: 'home',
124
+ config: this.configuration,
125
+ });
126
+ this.one('aw-linked-objects').update(response.itemsPagination);
127
+ // scroll control
128
+ setTimeout(() => {
129
+ this._scrollBackgroundControl();
130
+ });
131
+ }
132
+ updateTags(onlyBubbles) {
133
+ if (!onlyBubbles) {
134
+ this.renderItemTags();
135
+ }
136
+ }
137
+ handleFacetSearchChange(change) {
138
+ const payload = change.inputPayload;
139
+ const { value } = change;
140
+ // store the entered text in facetInputs
141
+ this.facetInputs[payload] = value;
142
+ }
143
+ renderItemTags() {
144
+ /*
145
+ Try to build an item tag for each selected query looking at the data from the
146
+ first response. If the needed bubble data cannot be found, ask the backend
147
+ for that bubble's data.
148
+ */
149
+ const queryList = []; // list of pending queries
150
+ const tagsData = []; // list of tags data built from query
151
+ this.selectedBubbles.forEach((b) => {
152
+ const theBubble = this.firstBubbleResponse.find((el) => el.entity.id === b);
153
+ if (theBubble) { // if a bubble was found
154
+ const bubbleConfig = this.configuration.get('config-keys')[theBubble.entity.typeOfEntity];
155
+ tagsData.push({
156
+ label: theBubble.entity.label,
157
+ icon: 'n7-icon-close',
158
+ payload: b,
159
+ classes: `tag-${bubbleConfig['class-name']}`,
160
+ });
161
+ }
162
+ else { // if the bubble was not found, make a query
163
+ const params = { entityId: b, entitiesListSize: 1 };
164
+ queryList.push(this.makeRequest$('getMissingBubble', params));
165
+ }
166
+ });
167
+ if (queryList.length > 0) { // if there are pending bubble queries
168
+ forkJoin(queryList).subscribe((forkres) => {
169
+ forkres.forEach((r) => {
170
+ const bubbleConfig = this.configuration.get('config-keys')[r.typeOfEntity];
171
+ tagsData.push({
172
+ label: r.label,
173
+ icon: 'n7-icon-close',
174
+ payload: r.id,
175
+ classes: `tag-${bubbleConfig['class-name']}`,
176
+ });
177
+ });
178
+ this.one('aw-home-item-tags-wrapper').update(tagsData);
179
+ });
180
+ }
181
+ else {
182
+ this.one('aw-home-item-tags-wrapper').update(tagsData);
183
+ }
184
+ }
185
+ /**
186
+ * Loads data for the carousel component
187
+ */
188
+ loadCarousel() {
189
+ const baseUrls = this.configuration.get('baseUrls') || {};
190
+ const baseUrl = baseUrls.portaleMatriceServer || null;
191
+ this.communication.request$('getSlider', baseUrl ? {
192
+ params: { baseUrl }
193
+ } : {}).subscribe({
194
+ next: (res) => {
195
+ if (res) {
196
+ this.one('aw-carousel').update(res);
197
+ }
198
+ },
199
+ error: (err) => {
200
+ console.error(err);
201
+ this.carouselEnabled = false;
202
+ },
203
+ });
204
+ }
205
+ onHeroChange(value) {
206
+ if (value) {
207
+ const escapedValue = helpers.escapeQuotes(value);
208
+ this.autocompleteChanged$.next(escapedValue);
209
+ this.homeAutocompleteIsLoading = true;
210
+ this.homeAutocompleteQuery = escapedValue;
211
+ if (!this.autocompletePopoverOpen) {
212
+ this._toggleAutocompletePopover();
213
+ }
214
+ }
215
+ else if (this.autocompletePopoverOpen) {
216
+ this._toggleAutocompletePopover();
217
+ }
218
+ }
219
+ _scrollBackgroundControl() {
220
+ const node = document.getElementById('bubble-results-list');
221
+ if (!node)
222
+ return;
223
+ const source$ = fromEvent(node, 'scroll');
224
+ // height control
225
+ setTimeout(() => {
226
+ this._setHasScrollBackground(node);
227
+ }, 500);
228
+ // scroll listen
229
+ source$.pipe(debounceTime(50)).subscribe(({ target }) => {
230
+ this._setHasScrollBackground(target);
231
+ });
232
+ }
233
+ _setHasScrollBackground(target) {
234
+ this.hasScrollBackground = target ? (target.scrollHeight > (target.scrollTop + target.clientHeight)) : false;
235
+ }
236
+ _listenAutoCompleteChanges() {
237
+ this.one('aw-home-autocomplete').updateOptions({
238
+ keys: this.configuration.get('config-keys'),
239
+ config: this.configuration,
240
+ labels: this.configuration.get('labels'),
241
+ paths: this.configuration.get('paths'),
242
+ });
243
+ this.autocompleteChanged$.pipe(debounceTime(500), takeUntil(this.destroyed$)).subscribe((value) => {
244
+ this.communication.request$('autoComplete', {
245
+ onError: (error) => console.error(error),
246
+ params: {
247
+ input: value,
248
+ itemsPagination: { offset: 0, limit: this.configuration.get('home-layout')['results-limit'] },
249
+ },
250
+ }).subscribe((response) => {
251
+ this.homeAutocompleteIsLoading = false;
252
+ this.one('aw-home-autocomplete').update({
253
+ response,
254
+ query: value,
255
+ });
256
+ });
257
+ });
258
+ }
259
+ _toggleAutocompletePopover() {
260
+ if (!this.autocompletePopover) {
261
+ const template = document.getElementById('aw-home-advanced-autocomplete-popover');
262
+ template.style.display = 'block';
263
+ const [popOver] = this.tippy('.aw-home__top-hero .n7-hero__input', {
264
+ content: template,
265
+ trigger: 'manual',
266
+ interactive: true,
267
+ arrow: false,
268
+ flip: false,
269
+ appendTo: 'parent',
270
+ theme: 'light-border',
271
+ placement: 'bottom-start',
272
+ maxWidth: '100%',
273
+ onHidden: () => { this.autocompletePopoverOpen = false; },
274
+ });
275
+ this.autocompletePopover = popOver;
276
+ }
277
+ if (this.autocompletePopoverOpen) {
278
+ this.autocompletePopover.hide();
279
+ }
280
+ else {
281
+ this.autocompletePopover.show();
282
+ }
283
+ this.autocompletePopoverOpen = !this.autocompletePopoverOpen;
284
+ }
285
+ }
286
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1sYXlvdXQuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvbGF5b3V0cy9ob21lLWxheW91dC9ob21lLWxheW91dC5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQXdCLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXpFLE1BQU0sT0FBTyxjQUFlLFNBQVEsZ0JBQWdCO0lBQXBEOztRQVNVLGdCQUFXLEdBQVEsRUFBRSxDQUFDO1FBSXRCLDRCQUF1QixHQUFHLEtBQUssQ0FBQztRQUVoQyx5QkFBb0IsR0FBb0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV2RCxrQkFBYSxHQUFXLElBQUksQ0FBQztRQUU3Qix1QkFBa0IsR0FBUSxJQUFJLENBQUM7UUFFL0Isd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBRTVCLGlCQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFbEIsd0JBQW1CLEdBQUcsRUFBRSxDQUFDO1FBVXhCLGVBQVUsR0FBaUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUxQyw4QkFBeUIsR0FBRyxLQUFLLENBQUM7UUFFbEMseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBRXBDLDZEQUE2RDtRQUN0RCxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUUvQiwyQkFBMkI7UUFDcEIsbUJBQWMsR0FBRyxLQUFLLENBQUMsQ0FBQywrREFBK0Q7UUFFdkYsb0JBQWUsR0FBVSxFQUFFLENBQUEsQ0FBQyxlQUFlO1FBeUQzQyxvQkFB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SSxDQUFDLG1CQUFtQixFQUFFO1lBQzdCLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsdUNBQXVDLENBQUMsQ0FBQztZQUNsRixRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7WUFDakMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsb0NBQW9DLEVBQUU7Z0JBQ2pFLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixPQUFPLEVBQUUsUUFBUTtnQkFDakIsV0FBVyxFQUFFLElBQUk7Z0JBQ2pCLEtBQUssRUFBRSxLQUFLO2dCQUNaLElBQUksRUFBRSxLQUFLO2dCQUNYLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixLQUFLLEVBQUUsY0FBYztnQkFDckIsU0FBUyxFQUFFLGNBQWM7Z0JBQ3pCLFFBQVEsRUFBRSxNQUFNO2dCQUNoQixRQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDMUQsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE9BQU8sQ0FBQztTQUNwQztRQUNELElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQ2hDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNqQzthQUFNO1lBQ0wsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxDQUFDLHVCQUF1QixHQUFHLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDO0lBQy9ELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExheW91dERhdGFTb3VyY2UgfSBmcm9tICdAbjctZnJvbnRlbmQvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBmb3JrSm9pbiwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbW11bmljYXRpb25TZXJ2aWNlLCBoZWxwZXJzIH0gZnJvbSAnQG5ldDcvYm9pbGVycGxhdGUtY29tbW9uJztcblxuZXhwb3J0IGNsYXNzIEF3SG9tZUxheW91dERTIGV4dGVuZHMgTGF5b3V0RGF0YVNvdXJjZSB7XG4gIHByaXZhdGUgY29tbXVuaWNhdGlvbjogQ29tbXVuaWNhdGlvblNlcnZpY2U7XG5cbiAgcHJpdmF0ZSBtYWluU3RhdGU6IGFueTtcblxuICBwcml2YXRlIHRpcHB5OiBhbnk7XG5cbiAgcHJpdmF0ZSBjb25maWd1cmF0aW9uOiBhbnk7XG5cbiAgcHJpdmF0ZSBmYWNldElucHV0czogYW55ID0ge307XG5cbiAgcHJpdmF0ZSBhdXRvY29tcGxldGVQb3BvdmVyOiBhbnk7XG5cbiAgcHJpdmF0ZSBhdXRvY29tcGxldGVQb3BvdmVyT3BlbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgYXV0b2NvbXBsZXRlQ2hhbmdlZCQ6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHVibGljIG51bU9mSXRlbXNTdHI6IHN0cmluZyA9IG51bGw7XG5cbiAgcHVibGljIGN1cnJlbnRIb3ZlckVudGl0eTogYW55ID0gbnVsbDtcblxuICBwdWJsaWMgaGFzU2Nyb2xsQmFja2dyb3VuZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyByZXN1bHRzTGltaXQgPSAtMTtcblxuICBwdWJsaWMgc2VsZWN0ZWRFbnRpdGllc0lkcyA9IFtdO1xuXG4gIHB1YmxpYyBvdXRlckxpbmtzOiBhbnk7XG5cbiAgcHVibGljIG91dGVyTGlua3NUaXRsZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBvdXRlckxpbmtzRGVzY3JpcHRpb246IHN0cmluZztcblxuICBwdWJsaWMgaG9tZUF1dG9jb21wbGV0ZVF1ZXJ5OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBkZXN0cm95ZWQkOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHB1YmxpYyBob21lQXV0b2NvbXBsZXRlSXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgcHVibGljIHJlc3VsdHNMaXN0SXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgLyoqIEVuYWJsZWQgZnJvbTogYXJpYW5uYS1jb25maWcvZmVhdHVyZXMtZW5hYmxlZC9jYXJvdXNlbCAqL1xuICBwdWJsaWMgY2Fyb3VzZWxFbmFibGVkID0gZmFsc2U7XG5cbiAgLy8gPT09PT0gQlVCQkxFIENIQVJUID09PT09XG4gIHB1YmxpYyBidWJibGVzRW5hYmxlZCA9IGZhbHNlOyAvLyB0cnVlIGlmIHRoaXMgQXJpYW5uYSBXZWIgcHJvamVjdCBoYXMgdGhlIGJ1YmJsZSBjaGFydCBtb2R1bGVcblxuICBwdWJsaWMgc2VsZWN0ZWRCdWJibGVzOiBhbnlbXSA9IFtdIC8vIGFycmF5IG9mIElEc1xuXG4gIC8vIHN0b3JlIGxhc3QgYnViYmxlIHJlc3BvbnNlIHRvIHJlZnJlc2ggdGhlIGdyYXBoIHdpdGggdGhlIHNhbWUgZGF0YVxuICBwdWJsaWMgbGFzdEJ1YmJsZVJlc3BvbnNlOiBhbnlcblxuICAvLyBzdG9yZSB0aGUgZmlyc3QgYXJyYXkgb2YgYnViYmxlcywgdG8gZmluZCB0aGVtIGluIGNhc2Ugb2Ygbm8gcmVzdWx0cy5cbiAgcHVibGljIGZpcnN0QnViYmxlUmVzcG9uc2U6IGFueVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT1cblxuICBvbkluaXQoe1xuICAgIGNvbW11bmljYXRpb24sIG1haW5TdGF0ZSwgY29uZmlndXJhdGlvbiwgdGlwcHksXG4gIH0pIHtcbiAgICB0aGlzLmNvbW11bmljYXRpb24gPSBjb21tdW5pY2F0aW9uO1xuICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247XG4gICAgLy8gdGhpcy5mYWNldERhdGEgPSBbXTtcbiAgICB0aGlzLm1haW5TdGF0ZSA9IG1haW5TdGF0ZTtcbiAgICB0aGlzLnRpcHB5ID0gdGlwcHk7XG4gICAgdGhpcy5yZXN1bHRzTGltaXQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdob21lLWxheW91dCcpWydyZXN1bHRzLWxpbWl0J107XG4gICAgdGhpcy5idWJibGVzRW5hYmxlZCA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ2ZlYXR1cmVzLWVuYWJsZWQnKT8uYnViYmxlY2hhcnQ7XG4gICAgdGhpcy5jYXJvdXNlbEVuYWJsZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdmZWF0dXJlcy1lbmFibGVkJyk/LmNhcm91c2VsO1xuICAgIGlmICh0aGlzLmNhcm91c2VsRW5hYmxlZCkge1xuICAgICAgdGhpcy5sb2FkQ2Fyb3VzZWwoKTtcbiAgICB9XG4gICAgdGhpcy5vbmUoJ2F3LWhlcm8nKS51cGRhdGUodGhpcy5jb25maWd1cmF0aW9uLmdldCgnaG9tZS1sYXlvdXQnKVsndG9wLWhlcm8nXSk7XG4gICAgdGhpcy5vbmUoJ2F3LWhvbWUtaGVyby1wYXRyaW1vbmlvJykudXBkYXRlKHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ2hvbWUtbGF5b3V0JylbJ2JvdHRvbS1oZXJvJ10pO1xuICAgIC8vIHVwZGF0ZSBzdHJlYW1zXG4gICAgdGhpcy5tYWluU3RhdGUudXBkYXRlKCdoZWFkVGl0bGUnLCAnQXJpYW5uYTRWaWV3IC0gSG9tZXBhZ2UnKTtcbiAgICB0aGlzLm1haW5TdGF0ZS51cGRhdGUoJ3BhZ2VUaXRsZScsICdBcmlhbm5hNFZpZXcgLSBIb21lcGFnZScpO1xuICAgIHRoaXMubWFpblN0YXRlLnVwZGF0ZUN1c3RvbSgnY3VycmVudE5hdicsICdob21lJyk7XG4gICAgLy8gbGlzdGVuIGF1dG9jb21wbGV0ZSBjaGFuZ2VzXG4gICAgdGhpcy5fbGlzdGVuQXV0b0NvbXBsZXRlQ2hhbmdlcygpO1xuICAgIHRoaXMub3V0ZXJMaW5rcyA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ2hvbWUtbGF5b3V0JylbJ291dGVyLWxpbmtzJ10udGVzdDtcbiAgICB0aGlzLm91dGVyTGlua3NUaXRsZSA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ2hvbWUtbGF5b3V0JylbJ291dGVyLWxpbmtzJ10udGl0bGU7XG4gICAgdGhpcy5vdXRlckxpbmtzRGVzY3JpcHRpb24gPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdob21lLWxheW91dCcpWydvdXRlci1saW5rcyddLmRlc2NyaXB0aW9uO1xuICAgIHRoaXMub25lKCdhdy1idWJibGUtY2hhcnQnKS51cGRhdGVPcHRpb25zKHtcbiAgICAgIHNlbGVjdGFibGU6IHRydWUsXG4gICAgICBjb25maWc6IHRoaXMuY29uZmlndXJhdGlvbixcbiAgICAgIGxpbWl0OiB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdidWJibGUtY2hhcnQnKS5idWJibGVMaW1pdCxcbiAgICB9KTtcbiAgICB0aGlzLm9uZSgnYXctY2hhcnQtdGlwcHknKS51cGRhdGVPcHRpb25zKHtcbiAgICAgIGJhc2VQYXRoOiB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdwYXRocycpLmVudGl0YUJhc2VQYXRoLFxuICAgICAgc2VsZWN0YWJsZTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIG9uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIG1ha2VSZXF1ZXN0JChxdWVyeSwgcGFyYW1zKSB7XG4gICAgLy8gbWFrZSByZXF1ZXN0IGZyb20gRUhcbiAgICByZXR1cm4gdGhpcy5jb21tdW5pY2F0aW9uLnJlcXVlc3QkKHF1ZXJ5LCB7XG4gICAgICBvbkVycm9yOiAoZXJyb3IpID0+IGNvbnNvbGUuZXJyb3IoZXJyb3IpLFxuICAgICAgcGFyYW1zLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUNvbXBvbmVudCA9IChpZCwgZGF0YSwgb3B0aW9ucz8pID0+IHtcbiAgICAvLyB1cGRhdGUgY29tcG9uZW50cyBmcm9tIEVIXG4gICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgIHRoaXMub25lKGlkKS51cGRhdGVPcHRpb25zKG9wdGlvbnMpO1xuICAgIH1cbiAgICB0aGlzLm9uZShpZCkudXBkYXRlKGRhdGEpO1xuICB9XG5cbiAgaW5pdGlhbEZpbHRlclJlcXVlc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29tbXVuaWNhdGlvbi5yZXF1ZXN0JCgnZ2xvYmFsRmlsdGVyJywge1xuICAgICAgb25FcnJvcjogKGVycm9yKSA9PiBjb25zb2xlLmVycm9yKGVycm9yKSxcbiAgICAgIHBhcmFtczoge1xuICAgICAgICBlbnRpdGllc0xpc3RTaXplOiB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdidWJibGUtY2hhcnQnKS5idWJibGVMaW1pdCxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwYXJzZUluaXRpYWxSZXF1ZXN0KHJlc3BvbnNlKSB7XG4gICAgdGhpcy5maXJzdEJ1YmJsZVJlc3BvbnNlID0gcmVzcG9uc2UuZW50aXRpZXNEYXRhO1xuICAgIGNvbnN0IGZhY2V0RGF0YSA9IFtdO1xuICAgIHJlc3BvbnNlLnR5cGVPZkVudGl0eURhdGEuZm9yRWFjaCgodG9lKSA9PiB7XG4gICAgICBjb25zdCBUT0Vjb25maWdEYXRhID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCgnY29uZmlnLWtleXMnKVt0b2UudHlwZV07XG4gICAgICBmYWNldERhdGEucHVzaCh7XG4gICAgICAgIC4uLnRvZSxcbiAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgbG9ja2VkOiBmYWxzZSxcbiAgICAgICAgLi4uVE9FY29uZmlnRGF0YSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHRoaXMub25lKCdhdy1ob21lLWZhY2V0cy13cmFwcGVyJykudXBkYXRlKGZhY2V0RGF0YSk7XG4gIH1cblxuICByZW5kZXJQcmV2aWV3c0Zyb21BcG9sbG9RdWVyeShyZXNwb25zZTogYW55KSB7XG4gICAgaWYgKCFyZXNwb25zZSB8fCAhcmVzcG9uc2UuaXRlbXNQYWdpbmF0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBudW1PZkl0ZW1zID0gcmVzcG9uc2UuaXRlbXNQYWdpbmF0aW9uLnRvdGFsQ291bnQ7XG4gICAgaWYgKG51bU9mSXRlbXMgPiAwKSB7XG4gICAgICBsZXQgbnVtT2ZUaG91c2FuZCA9IDA7XG4gICAgICB3aGlsZSAobnVtT2ZJdGVtcyA+IDk5OSkge1xuICAgICAgICBudW1PZkl0ZW1zIC09IDEwMDA7XG4gICAgICAgIG51bU9mVGhvdXNhbmQgKz0gMTtcbiAgICAgIH1cbiAgICAgIGxldCBudW1PZkl0ZW1zVG1wU3RyID0gYCR7bnVtT2ZJdGVtc31gO1xuICAgICAgaWYgKG51bU9mSXRlbXMgPCAxMCkgbnVtT2ZJdGVtc1RtcFN0ciA9IGAwMCR7bnVtT2ZJdGVtc31gO1xuICAgICAgZWxzZSBpZiAobnVtT2ZJdGVtcyA8IDEwMCkgbnVtT2ZJdGVtc1RtcFN0ciA9IGAwJHtudW1PZkl0ZW1zfWA7XG4gICAgICBpZiAobnVtT2ZUaG91c2FuZCA+IDApIHRoaXMubnVtT2ZJdGVtc1N0ciA9IGAke251bU9mVGhvdXNhbmR9LiR7bnVtT2ZJdGVtc1RtcFN0cn1gO1xuICAgICAgZWxzZSB0aGlzLm51bU9mSXRlbXNTdHIgPSBgJHtudW1PZkl0ZW1zfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubnVtT2ZJdGVtc1N0ciA9ICcwJztcbiAgICB9XG4gICAgdGhpcy5vbmUoJ2F3LWxpbmtlZC1vYmplY3RzJykudXBkYXRlT3B0aW9ucyh7XG4gICAgICBjb250ZXh0OiAnaG9tZScsXG4gICAgICBjb25maWc6IHRoaXMuY29uZmlndXJhdGlvbixcbiAgICB9KTtcbiAgICB0aGlzLm9uZSgnYXctbGlua2VkLW9iamVjdHMnKS51cGRhdGUocmVzcG9uc2UuaXRlbXNQYWdpbmF0aW9uKTtcblxuICAgIC8vIHNjcm9sbCBjb250cm9sXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9zY3JvbGxCYWNrZ3JvdW5kQ29udHJvbCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVRhZ3Mob25seUJ1YmJsZXM/OiBib29sZWFuKSB7XG4gICAgaWYgKCFvbmx5QnViYmxlcykge1xuICAgICAgdGhpcy5yZW5kZXJJdGVtVGFncygpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUZhY2V0U2VhcmNoQ2hhbmdlKGNoYW5nZSkge1xuICAgIGNvbnN0IHBheWxvYWQ6IHN0cmluZyA9IGNoYW5nZS5pbnB1dFBheWxvYWQ7XG4gICAgY29uc3QgeyB2YWx1ZSB9ID0gY2hhbmdlO1xuICAgIC8vIHN0b3JlIHRoZSBlbnRlcmVkIHRleHQgaW4gZmFjZXRJbnB1dHNcbiAgICB0aGlzLmZhY2V0SW5wdXRzW3BheWxvYWRdID0gdmFsdWU7XG4gIH1cblxuICByZW5kZXJJdGVtVGFncygpIHtcbiAgICAvKlxuICAgICAgICAgIFRyeSB0byBidWlsZCBhbiBpdGVtIHRhZyBmb3IgZWFjaCBzZWxlY3RlZCBxdWVyeSBsb29raW5nIGF0IHRoZSBkYXRhIGZyb20gdGhlXG4gICAgICAgICAgZmlyc3QgcmVzcG9uc2UuIElmIHRoZSBuZWVkZWQgYnViYmxlIGRhdGEgY2Fubm90IGJlIGZvdW5kLCBhc2sgdGhlIGJhY2tlbmRcbiAgICAgICAgICBmb3IgdGhhdCBidWJibGUncyBkYXRhLlxuICAgICAgKi9cbiAgICBjb25zdCBxdWVyeUxpc3QgPSBbXTsgLy8gbGlzdCBvZiBwZW5kaW5nIHF1ZXJpZXNcbiAgICBjb25zdCB0YWdzRGF0YSA9IFtdOyAvLyBsaXN0IG9mIHRhZ3MgZGF0YSBidWlsdCBmcm9tIHF1ZXJ5XG4gICAgdGhpcy5zZWxlY3RlZEJ1YmJsZXMuZm9yRWFjaCgoYikgPT4geyAvLyB0cnkgdG8gZ2V0IHRoZSBkYXRhIG9mIGVhY2ggc2VsZWN0ZWQgYnViYmxlXG4gICAgICBjb25zdCB0aGVCdWJibGUgPSB0aGlzLmZpcnN0QnViYmxlUmVzcG9uc2UuZmluZCgoZWwpID0+IGVsLmVudGl0eS5pZCA9PT0gYik7XG4gICAgICBpZiAodGhlQnViYmxlKSB7IC8vIGlmIGEgYnViYmxlIHdhcyBmb3VuZFxuICAgICAgICBjb25zdCBidWJibGVDb25maWcgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdjb25maWcta2V5cycpW3RoZUJ1YmJsZS5lbnRpdHkudHlwZU9mRW50aXR5XTtcbiAgICAgICAgdGFnc0RhdGEucHVzaCh7XG4gICAgICAgICAgbGFiZWw6IHRoZUJ1YmJsZS5lbnRpdHkubGFiZWwsXG4gICAgICAgICAgaWNvbjogJ243LWljb24tY2xvc2UnLFxuICAgICAgICAgIHBheWxvYWQ6IGIsXG4gICAgICAgICAgY2xhc3NlczogYHRhZy0ke2J1YmJsZUNvbmZpZ1snY2xhc3MtbmFtZSddfWAsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHsgLy8gaWYgdGhlIGJ1YmJsZSB3YXMgbm90IGZvdW5kLCBtYWtlIGEgcXVlcnlcbiAgICAgICAgY29uc3QgcGFyYW1zID0geyBlbnRpdHlJZDogYiwgZW50aXRpZXNMaXN0U2l6ZTogMSB9O1xuICAgICAgICBxdWVyeUxpc3QucHVzaCh0aGlzLm1ha2VSZXF1ZXN0JCgnZ2V0TWlzc2luZ0J1YmJsZScsIHBhcmFtcykpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmIChxdWVyeUxpc3QubGVuZ3RoID4gMCkgeyAvLyBpZiB0aGVyZSBhcmUgcGVuZGluZyBidWJibGUgcXVlcmllc1xuICAgICAgZm9ya0pvaW4ocXVlcnlMaXN0KS5zdWJzY3JpYmUoKGZvcmtyZXMpID0+IHtcbiAgICAgICAgZm9ya3Jlcy5mb3JFYWNoKChyOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBidWJibGVDb25maWcgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdjb25maWcta2V5cycpW3IudHlwZU9mRW50aXR5XTtcbiAgICAgICAgICB0YWdzRGF0YS5wdXNoKHtcbiAgICAgICAgICAgIGxhYmVsOiByLmxhYmVsLFxuICAgICAgICAgICAgaWNvbjogJ243LWljb24tY2xvc2UnLFxuICAgICAgICAgICAgcGF5bG9hZDogci5pZCxcbiAgICAgICAgICAgIGNsYXNzZXM6IGB0YWctJHtidWJibGVDb25maWdbJ2NsYXNzLW5hbWUnXX1gLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vbmUoJ2F3LWhvbWUtaXRlbS10YWdzLXdyYXBwZXInKS51cGRhdGUodGFnc0RhdGEpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25lKCdhdy1ob21lLWl0ZW0tdGFncy13cmFwcGVyJykudXBkYXRlKHRhZ3NEYXRhKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgZGF0YSBmb3IgdGhlIGNhcm91c2VsIGNvbXBvbmVudFxuICAgKi9cbiAgbG9hZENhcm91c2VsKCkge1xuICAgIGNvbnN0IGJhc2VVcmxzID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCgnYmFzZVVybHMnKSB8fCB7fTtcbiAgICBjb25zdCBiYXNlVXJsID0gYmFzZVVybHMucG9ydGFsZU1hdHJpY2VTZXJ2ZXIgfHwgbnVsbDtcbiAgICB0aGlzLmNvbW11bmljYXRpb24ucmVxdWVzdCQoJ2dldFNsaWRlcicsIGJhc2VVcmwgPyB7XG4gICAgICBwYXJhbXM6IHsgYmFzZVVybCB9XG4gICAgfSA6IHt9KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgdGhpcy5vbmUoJ2F3LWNhcm91c2VsJykudXBkYXRlKHJlcyk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgIHRoaXMuY2Fyb3VzZWxFbmFibGVkID0gZmFsc2U7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgb25IZXJvQ2hhbmdlKHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBjb25zdCBlc2NhcGVkVmFsdWUgPSBoZWxwZXJzLmVzY2FwZVF1b3Rlcyh2YWx1ZSk7XG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZUNoYW5nZWQkLm5leHQoZXNjYXBlZFZhbHVlKTtcbiAgICAgIHRoaXMuaG9tZUF1dG9jb21wbGV0ZUlzTG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLmhvbWVBdXRvY29tcGxldGVRdWVyeSA9IGVzY2FwZWRWYWx1ZTtcbiAgICAgIGlmICghdGhpcy5hdXRvY29tcGxldGVQb3BvdmVyT3Blbikge1xuICAgICAgICB0aGlzLl90b2dnbGVBdXRvY29tcGxldGVQb3BvdmVyKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLmF1dG9jb21wbGV0ZVBvcG92ZXJPcGVuKSB7XG4gICAgICB0aGlzLl90b2dnbGVBdXRvY29tcGxldGVQb3BvdmVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2Nyb2xsQmFja2dyb3VuZENvbnRyb2woKSB7XG4gICAgY29uc3Qgbm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidWJibGUtcmVzdWx0cy1saXN0Jyk7XG4gICAgaWYgKCFub2RlKSByZXR1cm47XG4gICAgY29uc3Qgc291cmNlJCA9IGZyb21FdmVudChub2RlLCAnc2Nyb2xsJyk7XG5cbiAgICAvLyBoZWlnaHQgY29udHJvbFxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fc2V0SGFzU2Nyb2xsQmFja2dyb3VuZChub2RlKTtcbiAgICB9LCA1MDApO1xuXG4gICAgLy8gc2Nyb2xsIGxpc3RlblxuICAgIHNvdXJjZSQucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSg1MCksXG4gICAgKS5zdWJzY3JpYmUoKHsgdGFyZ2V0IH06IHsgdGFyZ2V0OiBhbnkgfSkgPT4ge1xuICAgICAgdGhpcy5fc2V0SGFzU2Nyb2xsQmFja2dyb3VuZCh0YXJnZXQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0SGFzU2Nyb2xsQmFja2dyb3VuZCh0YXJnZXQpIHtcbiAgICB0aGlzLmhhc1Njcm9sbEJhY2tncm91bmQgPSB0YXJnZXQgPyAoXG4gICAgICB0YXJnZXQuc2Nyb2xsSGVpZ2h0ID4gKHRhcmdldC5zY3JvbGxUb3AgKyB0YXJnZXQuY2xpZW50SGVpZ2h0KVxuICAgICkgOiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3RlbkF1dG9Db21wbGV0ZUNoYW5nZXMoKSB7XG4gICAgdGhpcy5vbmUoJ2F3LWhvbWUtYXV0b2NvbXBsZXRlJykudXBkYXRlT3B0aW9ucyh7XG4gICAgICBrZXlzOiB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdjb25maWcta2V5cycpLFxuICAgICAgY29uZmlnOiB0aGlzLmNvbmZpZ3VyYXRpb24sXG4gICAgICBsYWJlbHM6IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ2xhYmVscycpLFxuICAgICAgcGF0aHM6IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ3BhdGhzJyksXG4gICAgfSk7XG4gICAgdGhpcy5hdXRvY29tcGxldGVDaGFuZ2VkJC5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKDUwMCksXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICApLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgIHRoaXMuY29tbXVuaWNhdGlvbi5yZXF1ZXN0JCgnYXV0b0NvbXBsZXRlJywge1xuICAgICAgICBvbkVycm9yOiAoZXJyb3IpID0+IGNvbnNvbGUuZXJyb3IoZXJyb3IpLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICBpbnB1dDogdmFsdWUsXG4gICAgICAgICAgaXRlbXNQYWdpbmF0aW9uOiB7IG9mZnNldDogMCwgbGltaXQ6IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ2hvbWUtbGF5b3V0JylbJ3Jlc3VsdHMtbGltaXQnXSB9LFxuICAgICAgICB9LFxuICAgICAgfSkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLmhvbWVBdXRvY29tcGxldGVJc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vbmUoJ2F3LWhvbWUtYXV0b2NvbXBsZXRlJykudXBkYXRlKHtcbiAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICBxdWVyeTogdmFsdWUsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF90b2dnbGVBdXRvY29tcGxldGVQb3BvdmVyKCkge1xuICAgIGlmICghdGhpcy5hdXRvY29tcGxldGVQb3BvdmVyKSB7XG4gICAgICBjb25zdCB0ZW1wbGF0ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhdy1ob21lLWFkdmFuY2VkLWF1dG9jb21wbGV0ZS1wb3BvdmVyJyk7XG4gICAgICB0ZW1wbGF0ZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICAgIGNvbnN0IFtwb3BPdmVyXSA9IHRoaXMudGlwcHkoJy5hdy1ob21lX190b3AtaGVybyAubjctaGVyb19faW5wdXQnLCB7XG4gICAgICAgIGNvbnRlbnQ6IHRlbXBsYXRlLFxuICAgICAgICB0cmlnZ2VyOiAnbWFudWFsJyxcbiAgICAgICAgaW50ZXJhY3RpdmU6IHRydWUsXG4gICAgICAgIGFycm93OiBmYWxzZSxcbiAgICAgICAgZmxpcDogZmFsc2UsXG4gICAgICAgIGFwcGVuZFRvOiAncGFyZW50JyxcbiAgICAgICAgdGhlbWU6ICdsaWdodC1ib3JkZXInLFxuICAgICAgICBwbGFjZW1lbnQ6ICdib3R0b20tc3RhcnQnLFxuICAgICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgICBvbkhpZGRlbjogKCkgPT4geyB0aGlzLmF1dG9jb21wbGV0ZVBvcG92ZXJPcGVuID0gZmFsc2U7IH0sXG4gICAgICB9KTtcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlUG9wb3ZlciA9IHBvcE92ZXI7XG4gICAgfVxuICAgIGlmICh0aGlzLmF1dG9jb21wbGV0ZVBvcG92ZXJPcGVuKSB7XG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZVBvcG92ZXIuaGlkZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZVBvcG92ZXIuc2hvdygpO1xuICAgIH1cbiAgICB0aGlzLmF1dG9jb21wbGV0ZVBvcG92ZXJPcGVuID0gIXRoaXMuYXV0b2NvbXBsZXRlUG9wb3Zlck9wZW47XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,245 @@
1
+ import { EventHandler } from '@n7-frontend/core';
2
+ import { Subject, forkJoin } from 'rxjs';
3
+ import { helpers } from '@net7/boilerplate-common';
4
+ export class AwHomeLayoutEH extends EventHandler {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.destroyed$ = new Subject();
8
+ this.handleSimpleAutocompleteClick = (payload) => {
9
+ this.emitOuter('facetclick', payload);
10
+ };
11
+ this.handleChartSelection = (payload) => {
12
+ const selectedEntitiesIds = payload;
13
+ this.dataSource.selectedBubbles = payload;
14
+ this.dataSource.resultsListIsLoading = true;
15
+ this.dataSource.makeRequest$('globalFilter', {
16
+ selectedEntitiesIds,
17
+ entitiesListSize: this.configuration.get('bubble-chart').bubbleLimit,
18
+ }).subscribe((res) => {
19
+ this.dataSource.resultsListIsLoading = false;
20
+ if (res && res.entitiesData.length > 0) {
21
+ // if some linked objects exist for the selected entities:
22
+ this.dataSource.lastBubbleResponse = res.entitiesData;
23
+ this.emitOuter('filterbubbleresponse', res.entitiesData);
24
+ this.dataSource.renderPreviewsFromApolloQuery(res);
25
+ this.dataSource.renderItemTags();
26
+ }
27
+ else {
28
+ // if the backend returns an empty list of results:
29
+ const queryList = [];
30
+ this.dataSource.selectedBubbles.forEach((b) => {
31
+ const params = { entityId: b, entitiesListSize: 1 };
32
+ queryList.push(// make a query for each selected bubble
33
+ this.dataSource.makeRequest$('getMissingBubble', params));
34
+ });
35
+ // await for every missing bubble and build a custom response
36
+ forkJoin(queryList).subscribe((forkres) => {
37
+ const customBubbles = [];
38
+ forkres.forEach((r) => { customBubbles.push({ count: 0, entity: r }); });
39
+ this.emitOuter('filterbubbleresponse', customBubbles);
40
+ this.dataSource.renderPreviewsFromApolloQuery(res);
41
+ this.dataSource.renderItemTags();
42
+ });
43
+ }
44
+ });
45
+ };
46
+ }
47
+ listen() {
48
+ this.innerEvents$.subscribe(({ type, payload }) => {
49
+ switch (type) {
50
+ case 'aw-home-layout.init':
51
+ this.dataSource.onInit(payload);
52
+ this.loadFilters();
53
+ this.configuration = payload.configuration;
54
+ // scroll top
55
+ window.scrollTo(0, 0);
56
+ break;
57
+ case 'aw-home-layout.outerlinkclick':
58
+ this.emitGlobal('navigate', {
59
+ handler: 'router',
60
+ path: payload,
61
+ });
62
+ break;
63
+ case 'aw-home-layout.destroy':
64
+ this.dataSource.onDestroy();
65
+ break;
66
+ case 'aw-home-layout.bubbleresultsviewallclick':
67
+ {
68
+ const entityLinks = this.dataSource.selectedBubbles.join(',');
69
+ const basePath = this.configuration.get('paths').searchBasePath;
70
+ this.emitGlobal('navigate', {
71
+ handler: 'router',
72
+ path: [basePath],
73
+ queryParams: { 'entity-links': entityLinks },
74
+ });
75
+ }
76
+ break;
77
+ case 'aw-home-layout.clearselection':
78
+ this.emitOuter('clearselection');
79
+ break;
80
+ default:
81
+ console.warn('(home) unhandled inner event of type: ', type);
82
+ break;
83
+ }
84
+ });
85
+ this.outerEvents$.subscribe(({ type, payload }) => {
86
+ switch (type) {
87
+ case 'aw-bubble-chart.d3end': // bounce the event, from bubble-chart to chart-tippy
88
+ this.emitOuter('d3end', payload);
89
+ break;
90
+ case 'aw-chart-tippy.select':
91
+ this.emitOuter('select', payload);
92
+ break;
93
+ case 'aw-hero.enter':
94
+ {
95
+ const query = helpers.escapeQuotes(payload.value);
96
+ this.emitGlobal('navigate', {
97
+ handler: 'router',
98
+ path: [this.configuration.get('paths').searchBasePath],
99
+ queryParams: { query },
100
+ });
101
+ }
102
+ break;
103
+ case 'aw-hero.change':
104
+ this.dataSource.autocompleteValue = payload.value;
105
+ this.dataSource.onHeroChange(payload.value);
106
+ break;
107
+ case 'aw-home-facets-wrapper.click':
108
+ this.emitOuter('togglefilter', payload);
109
+ break;
110
+ case 'aw-home-facets-wrapper.change':
111
+ if (!payload.value
112
+ || (typeof payload.value === 'string' && payload.value.trim().length === 0)) {
113
+ this.emitOuter('facetswrapperclose', { facetId: payload });
114
+ }
115
+ else if (payload.value) {
116
+ this.emitOuter('facetswrapperrequest', { facetId: payload });
117
+ // clear autocomplete results
118
+ this.dataSource.updateComponent('aw-autocomplete-wrapper', { key: payload.value, response: null });
119
+ const params = {
120
+ input: payload.value,
121
+ typeOfEntity: payload.inputPayload.replace(/-search/g, '').replace(/-/g, ' '),
122
+ itemsPagination: {
123
+ offset: 0, limit: this.configuration.get('home-layout')['results-limit'],
124
+ },
125
+ };
126
+ this.dataSource.makeRequest$('autoComplete', params).subscribe((response) => {
127
+ if (response.results.length < 1) {
128
+ const fallback = {
129
+ totalcount: 0,
130
+ results: [
131
+ {
132
+ entity: {
133
+ id: 'fallback',
134
+ label: // use fallback string from configuration
135
+ this.configuration.get('home-layout')['autocomplete-fallback']
136
+ ? this.configuration.get('home-layout')['autocomplete-fallback']
137
+ : 'Nessun risultato trovato',
138
+ },
139
+ },
140
+ ],
141
+ };
142
+ // this.emitOuter('facetswrapperresponse', { facetId: payload, response: fallback })
143
+ this.dataSource.updateComponent('aw-autocomplete-wrapper', { key: payload.value, response: fallback }, { config: this.configuration });
144
+ }
145
+ else {
146
+ // this.emitOuter('facetswrapperresponse', { facetId: payload, response })
147
+ this.dataSource.updateComponent('aw-autocomplete-wrapper', // ID
148
+ { key: payload.value, response }, // DATA
149
+ { config: this.configuration });
150
+ }
151
+ });
152
+ }
153
+ break;
154
+ case 'aw-home-item-tags-wrapper.click':
155
+ this.emitOuter('tagclick', payload);
156
+ break;
157
+ case 'aw-linked-objects.datarequest':
158
+ {
159
+ const { currentPage } = payload;
160
+ const params = {
161
+ selectedEntitiesIds: this.dataSource.selectedBubbles,
162
+ itemsPagination: {
163
+ offset: currentPage * this.dataSource.resultsLimit,
164
+ limit: this.dataSource.resultsLimit,
165
+ },
166
+ };
167
+ this.dataSource.makeRequest$('globalFilter', params).subscribe((res) => {
168
+ if (res) {
169
+ this.emitOuter('dataresponse', { res });
170
+ }
171
+ else {
172
+ console.warn('Unable to fetch additional data.');
173
+ }
174
+ });
175
+ }
176
+ break;
177
+ case 'aw-autocomplete-wrapper.clickresult':
178
+ this.handleSimpleAutocompleteClick(payload);
179
+ break;
180
+ case 'aw-home-autocomplete.click':
181
+ {
182
+ const { source, type: payloadType } = payload;
183
+ let basePath;
184
+ if (source === 'item') {
185
+ if (payloadType === 'oggetto-culturale') {
186
+ basePath = this.configuration.get('paths').schedaBasePath;
187
+ }
188
+ else {
189
+ basePath = this.configuration.get('paths').entitaBasePath;
190
+ }
191
+ this.emitGlobal('navigate', {
192
+ handler: 'router',
193
+ path: [basePath, payload.id, helpers.slugify(payload.title)],
194
+ });
195
+ }
196
+ else if (source === 'showMore') {
197
+ const query = this.dataSource.homeAutocompleteQuery;
198
+ basePath = this.configuration.get('paths').searchBasePath;
199
+ this.emitGlobal('navigate', {
200
+ handler: 'router',
201
+ path: [basePath],
202
+ queryParams: { query },
203
+ });
204
+ }
205
+ else if (source === 'extendsearch') { // click on <Cerca in tutti i campi> (call to action)
206
+ this.emitGlobal('navigate', {
207
+ handler: 'router',
208
+ path: [this.configuration.get('paths').searchBasePath],
209
+ queryParams: {
210
+ query: this.dataSource.autocompleteValue,
211
+ 'query-all': 1,
212
+ },
213
+ });
214
+ }
215
+ }
216
+ break;
217
+ case 'aw-bubble-chart.selection':
218
+ this.handleChartSelection(payload);
219
+ break;
220
+ case 'aw-bubble-chart.lockfilter':
221
+ this.emitOuter('lockfilter', payload); // let aw-home-facets-wrapper handle this event
222
+ break;
223
+ default:
224
+ // console.warn('(home) unhandled outer event of type', type)
225
+ break;
226
+ }
227
+ });
228
+ }
229
+ loadFilters() {
230
+ this.dataSource.initialFilterRequest().subscribe((response) => {
231
+ // console.log('(home) Apollo responded with:', response)
232
+ if (!response) {
233
+ return;
234
+ }
235
+ this.dataSource.parseInitialRequest(response);
236
+ if (this.dataSource.bubblesEnabled) {
237
+ this.emitOuter('filterbubbleresponse', response.entitiesData);
238
+ }
239
+ });
240
+ }
241
+ outerLinkClick(type, payload) {
242
+ window.open(payload, '_blank');
243
+ }
244
+ }
245
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1sYXlvdXQuZWguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvbGF5b3V0cy9ob21lLWxheW91dC9ob21lLWxheW91dC5laC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRW5ELE1BQU0sT0FBTyxjQUFlLFNBQVEsWUFBWTtJQUFoRDs7UUFDVSxlQUFVLEdBQWlCLElBQUksT0FBTyxFQUFFLENBQUM7UUF1TTFDLGtDQUE2QixHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDakQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFBO1FBTU0seUJBQW9CLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN4QyxNQUFNLG1CQUFtQixHQUFHLE9BQU8sQ0FBQztZQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUM7WUFDMUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7WUFDNUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFO2dCQUMzQyxtQkFBbUI7Z0JBQ25CLGdCQUFnQixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFdBQVc7YUFDckUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztnQkFDN0Ms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QUN4QyxXQUFXLEVBQUUsQ0FBQztpQ0FDZjs2QkFDRixDQUFDLENBQUM7eUJBQ0o7cUJBQ0Y7b0JBQUMsTUFBTTtnQkFDUixLQUFLLDJCQUEyQjtvQkFDOUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUNuQyxNQUFNO2dCQUNSLEtBQUssNEJBQTRCO29CQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLCtDQUErQztvQkFDdEYsTUFBTTtnQkFDUjtvQkFDRSw2REFBNkQ7b0JBQzdELE1BQU07YUFDVDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQzVELHlEQUF5RDtZQUN6RCxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUFFLE9BQU87YUFBRTtZQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQy9EO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBTU0sY0FBYyxDQUFDLElBQUksRUFBRSxPQUFPO1FBQ2pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7Q0FxQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEhhbmRsZXIgfSBmcm9tICdAbjctZnJvbnRlbmQvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBmb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaGVscGVycyB9IGZyb20gJ0BuZXQ3L2JvaWxlcnBsYXRlLWNvbW1vbic7XG5cbmV4cG9ydCBjbGFzcyBBd0hvbWVMYXlvdXRFSCBleHRlbmRzIEV2ZW50SGFuZGxlciB7XG4gIHByaXZhdGUgZGVzdHJveWVkJDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIGNvbmZpZ3VyYXRpb246IGFueTtcblxuICBwcml2YXRlIHJvdXRlOiBhbnk7XG5cbiAgcHVibGljIGxpc3RlbigpIHtcbiAgICB0aGlzLmlubmVyRXZlbnRzJC5zdWJzY3JpYmUoKHsgdHlwZSwgcGF5bG9hZCB9KSA9PiB7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSAnYXctaG9tZS1sYXlvdXQuaW5pdCc6XG4gICAgICAgICAgdGhpcy5kYXRhU291cmNlLm9uSW5pdChwYXlsb2FkKTtcbiAgICAgICAgICB0aGlzLmxvYWRGaWx0ZXJzKCk7XG4gICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uID0gcGF5bG9hZC5jb25maWd1cmF0aW9uO1xuICAgICAgICAgIC8vIHNjcm9sbCB0b3BcbiAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2F3LWhvbWUtbGF5b3V0Lm91dGVybGlua2NsaWNrJzpcbiAgICAgICAgICB0aGlzLmVtaXRHbG9iYWwoJ25hdmlnYXRlJywge1xuICAgICAgICAgICAgaGFuZGxlcjogJ3JvdXRlcicsXG4gICAgICAgICAgICBwYXRoOiBwYXlsb2FkLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdhdy1ob21lLWxheW91dC5kZXN0cm95JzpcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2Uub25EZXN0cm95KCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2F3LWhvbWUtbGF5b3V0LmJ1YmJsZXJlc3VsdHN2aWV3YWxsY2xpY2snOiB7XG4gICAgICAgICAgY29uc3QgZW50aXR5TGlua3MgPSB0aGlzLmRhdGFTb3VyY2Uuc2VsZWN0ZWRCdWJibGVzLmpvaW4oJywnKTtcbiAgICAgICAgICBjb25zdCBiYXNlUGF0aCA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ3BhdGhzJykuc2VhcmNoQmFzZVBhdGg7XG4gICAgICAgICAgdGhpcy5lbWl0R2xvYmFsKCduYXZpZ2F0ZScsIHtcbiAgICAgICAgICAgIGhhbmRsZXI6ICdyb3V0ZXInLFxuICAgICAgICAgICAgcGF0aDogW2Jhc2VQYXRoXSxcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7ICdlbnRpdHktbGlua3MnOiBlbnRpdHlMaW5rcyB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2F3LWhvbWUtbGF5b3V0LmNsZWFyc2VsZWN0aW9uJzpcbiAgICAgICAgICB0aGlzLmVtaXRPdXRlcignY2xlYXJzZWxlY3Rpb24nKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBjb25zb2xlLndhcm4oJyhob21lKSB1bmhhbmRsZWQgaW5uZXIgZXZlbnQgb2YgdHlwZTogJywgdHlwZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLm91dGVyRXZlbnRzJC5zdWJzY3JpYmUoKHsgdHlwZSwgcGF5bG9hZCB9KSA9PiB7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSAnYXctYnViYmxlLWNoYXJ0LmQzZW5kJzogLy8gYm91bmNlIHRoZSBldmVudCwgZnJvbSBidWJibGUtY2hhcnQgdG8gY2hhcnQtdGlwcHlcbiAgICAgICAgICB0aGlzLmVtaXRPdXRlcignZDNlbmQnLCBwYXlsb2FkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYXctY2hhcnQtdGlwcHkuc2VsZWN0JzpcbiAgICAgICAgICB0aGlzLmVtaXRPdXRlcignc2VsZWN0JywgcGF5bG9hZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2F3LWhlcm8uZW50ZXInOiB7XG4gICAgICAgICAgY29uc3QgcXVlcnkgPSBoZWxwZXJzLmVzY2FwZVF1b3RlcyhwYXlsb2FkLnZhbHVlKTtcbiAgICAgICAgICB0aGlzLmVtaXRHbG9iYWwoJ25hdmlnYXRlJywge1xuICAgICAgICAgICAgaGFuZGxlcjogJ3JvdXRlcicsXG4gICAgICAgICAgICBwYXRoOiBbdGhpcy5jb25maWd1cmF0aW9uLmdldCgncGF0aHMnKS5zZWFyY2hCYXNlUGF0aF0sXG4gICAgICAgICAgICBxdWVyeVBhcmFtczogeyBxdWVyeSB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGJyZWFrO1xuICAgICAgICBjYXNlICdhdy1oZXJvLmNoYW5nZSc6XG4gICAgICAgICAgdGhpcy5kYXRhU291cmNlLmF1dG9jb21wbGV0ZVZhbHVlID0gcGF5bG9hZC52YWx1ZTtcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2Uub25IZXJvQ2hhbmdlKHBheWxvYWQudmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdhdy1ob21lLWZhY2V0cy13cmFwcGVyLmNsaWNrJzpcbiAgICAgICAgICB0aGlzLmVtaXRPdXRlcigndG9nZ2xlZmlsdGVyJywgcGF5bG9hZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2F3LWhvbWUtZmFjZXRzLXdyYXBwZXIuY2hhbmdlJzpcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhcGF5bG9hZC52YWx1ZVxuICAgICAgICAgICAgfHwgKHR5cGVvZiBwYXlsb2FkLnZhbHVlID09PSAnc3RyaW5nJyAmJiBwYXlsb2FkLnZhbHVlLnRyaW0oKS5sZW5ndGggPT09IDApXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmVtaXRPdXRlcignZmFjZXRzd3JhcHBlcmNsb3NlJywgeyBmYWNldElkOiBwYXlsb2FkIH0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAocGF5bG9hZC52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5lbWl0T3V0ZXIoJ2ZhY2V0c3dyYXBwZXJyZXF1ZXN0JywgeyBmYWNldElkOiBwYXlsb2FkIH0pO1xuICAgICAgICAgICAgLy8gY2xlYXIgYXV0b2NvbXBsZXRlIHJlc3VsdHNcbiAgICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS51cGRhdGVDb21wb25lbnQoXG4gICAgICAgICAgICAgICdhdy1hdXRvY29tcGxldGUtd3JhcHBlcicsXG4gICAgICAgICAgICAgIHsga2V5OiBwYXlsb2FkLnZhbHVlLCByZXNwb25zZTogbnVsbCB9LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgaW5wdXQ6IHBheWxvYWQudmFsdWUsXG4gICAgICAgICAgICAgIHR5cGVPZkVudGl0eTogcGF5bG9hZC5pbnB1dFBheWxvYWQucmVwbGFjZSgvLXNlYXJjaC9nLCAnJykucmVwbGFjZSgvLS9nLCAnICcpLFxuICAgICAgICAgICAgICBpdGVtc1BhZ2luYXRpb246IHtcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IDAsIGxpbWl0OiB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdob21lLWxheW91dCcpWydyZXN1bHRzLWxpbWl0J10sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlLm1ha2VSZXF1ZXN0JCgnYXV0b0NvbXBsZXRlJywgcGFyYW1zKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZXN1bHRzLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmYWxsYmFjayA9IHtcbiAgICAgICAgICAgICAgICAgIHRvdGFsY291bnQ6IDAsXG4gICAgICAgICAgICAgICAgICByZXN1bHRzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBlbnRpdHk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnZmFsbGJhY2snLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IC8vIHVzZSBmYWxsYmFjayBzdHJpbmcgZnJvbSBjb25maWd1cmF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ2hvbWUtbGF5b3V0JylbJ2F1dG9jb21wbGV0ZS1mYWxsYmFjayddXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdob21lLWxheW91dCcpWydhdXRvY29tcGxldGUtZmFsbGJhY2snXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ05lc3N1biByaXN1bHRhdG8gdHJvdmF0bycsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmVtaXRPdXRlcignZmFjZXRzd3JhcHBlcnJlc3BvbnNlJywgeyBmYWNldElkOiBwYXlsb2FkLCByZXNwb25zZTogZmFsbGJhY2sgfSlcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UudXBkYXRlQ29tcG9uZW50KFxuICAgICAgICAgICAgICAgICAgJ2F3LWF1dG9jb21wbGV0ZS13cmFwcGVyJyxcbiAgICAgICAgICAgICAgICAgIHsga2V5OiBwYXlsb2FkLnZhbHVlLCByZXNwb25zZTogZmFsbGJhY2sgfSxcbiAgICAgICAgICAgICAgICAgIHsgY29uZmlnOiB0aGlzLmNvbmZpZ3VyYXRpb24gfSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIHRoaXMuZW1pdE91dGVyKCdmYWNldHN3cmFwcGVycmVzcG9uc2UnLCB7IGZhY2V0SWQ6IHBheWxvYWQsIHJlc3BvbnNlIH0pXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlLnVwZGF0ZUNvbXBvbmVudChcbiAgICAgICAgICAgICAgICAgICdhdy1hdXRvY29tcGxldGUtd3JhcHBlcicsIC8vIElEXG4gICAgICAgICAgICAgICAgICB7IGtleTogcGF5bG9hZC52YWx1ZSwgcmVzcG9uc2UgfSwgLy8gREFUQVxuICAgICAgICAgICAgICAgICAgeyBjb25maWc6IHRoaXMuY29uZmlndXJhdGlvbiB9LCAvLyBPUFRJT05TXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdhdy1ob21lLWl0ZW0tdGFncy13cmFwcGVyLmNsaWNrJzpcbiAgICAgICAgICB0aGlzLmVtaXRPdXRlcigndGFnY2xpY2snLCBwYXlsb2FkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYXctbGlua2VkLW9iamVjdHMuZGF0YXJlcXVlc3QnOiB7XG4gICAgICAgICAgY29uc3QgeyBjdXJyZW50UGFnZSB9ID0gcGF5bG9hZDtcbiAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgICAgICBzZWxlY3RlZEVudGl0aWVzSWRzOiB0aGlzLmRhdGFTb3VyY2Uuc2VsZWN0ZWRCdWJibGVzLFxuICAgICAgICAgICAgaXRlbXNQYWdpbmF0aW9uOiB7XG4gICAgICAgICAgICAgIG9mZnNldDogY3VycmVudFBhZ2UgKiB0aGlzLmRhdGFTb3VyY2UucmVzdWx0c0xpbWl0LFxuICAgICAgICAgICAgICBsaW1pdDogdGhpcy5kYXRhU291cmNlLnJlc3VsdHNMaW1pdCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UubWFrZVJlcXVlc3QkKCdnbG9iYWxGaWx0ZXInLCBwYXJhbXMpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICAgIHRoaXMuZW1pdE91dGVyKCdkYXRhcmVzcG9uc2UnLCB7IHJlcyB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybignVW5hYmxlIHRvIGZldGNoIGFkZGl0aW9uYWwgZGF0YS4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBicmVhaztcbiAgICAgICAgY2FzZSAnYXctYXV0b2NvbXBsZXRlLXdyYXBwZXIuY2xpY2tyZXN1bHQnOlxuICAgICAgICAgIHRoaXMuaGFuZGxlU2ltcGxlQXV0b2NvbXBsZXRlQ2xpY2socGF5bG9hZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2F3LWhvbWUtYXV0b2NvbXBsZXRlLmNsaWNrJzoge1xuICAgICAgICAgIGNvbnN0IHsgc291cmNlLCB0eXBlOiBwYXlsb2FkVHlwZSB9ID0gcGF5bG9hZDtcbiAgICAgICAgICBsZXQgYmFzZVBhdGg7XG4gICAgICAgICAgaWYgKHNvdXJjZSA9PT0gJ2l0ZW0nKSB7XG4gICAgICAgICAgICBpZiAocGF5bG9hZFR5cGUgPT09ICdvZ2dldHRvLWN1bHR1cmFsZScpIHtcbiAgICAgICAgICAgICAgYmFzZVBhdGggPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdwYXRocycpLnNjaGVkYUJhc2VQYXRoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgYmFzZVBhdGggPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdwYXRocycpLmVudGl0YUJhc2VQYXRoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5lbWl0R2xvYmFsKCduYXZpZ2F0ZScsIHtcbiAgICAgICAgICAgICAgaGFuZGxlcjogJ3JvdXRlcicsXG4gICAgICAgICAgICAgIHBhdGg6IFtiYXNlUGF0aCwgcGF5bG9hZC5pZCwgaGVscGVycy5zbHVnaWZ5KHBheWxvYWQudGl0bGUpXSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAoc291cmNlID09PSAnc2hvd01vcmUnKSB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeSA9IHRoaXMuZGF0YVNvdXJjZS5ob21lQXV0b2NvbXBsZXRlUXVlcnk7XG4gICAgICAgICAgICBiYXNlUGF0aCA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ3BhdGhzJykuc2VhcmNoQmFzZVBhdGg7XG4gICAgICAgICAgICB0aGlzLmVtaXRHbG9iYWwoJ25hdmlnYXRlJywge1xuICAgICAgICAgICAgICBoYW5kbGVyOiAncm91dGVyJyxcbiAgICAgICAgICAgICAgcGF0aDogW2Jhc2VQYXRoXSxcbiAgICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHsgcXVlcnkgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAoc291cmNlID09PSAnZXh0ZW5kc2VhcmNoJykgeyAvLyBjbGljayBvbiA8Q2VyY2EgaW4gdHV0dGkgaSBjYW1waT4gKGNhbGwgdG8gYWN0aW9uKVxuICAgICAgICAgICAgdGhpcy5lbWl0R2xvYmFsKCduYXZpZ2F0ZScsIHtcbiAgICAgICAgICAgICAgaGFuZGxlcjogJ3JvdXRlcicsXG4gICAgICAgICAgICAgIHBhdGg6IFt0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdwYXRocycpLnNlYXJjaEJhc2VQYXRoXSxcbiAgICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgICAgICAgICBxdWVyeTogdGhpcy5kYXRhU291cmNlLmF1dG9jb21wbGV0ZVZhbHVlLFxuICAgICAgICAgICAgICAgICdxdWVyeS1hbGwnOiAxLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGJyZWFrO1xuICAgICAgICBjYXNlICdhdy1idWJibGUtY2hhcnQuc2VsZWN0aW9uJzpcbiAgICAgICAgICB0aGlzLmhhbmRsZUNoYXJ0U2VsZWN0aW9uKHBheWxvYWQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdhdy1idWJibGUtY2hhcnQubG9ja2ZpbHRlcic6XG4gICAgICAgICAgdGhpcy5lbWl0T3V0ZXIoJ2xvY2tmaWx0ZXInLCBwYXlsb2FkKTsgLy8gbGV0IGF3LWhvbWUtZmFjZXRzLXdyYXBwZXIgaGFuZGxlIHRoaXMgZXZlbnRcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAvLyBjb25zb2xlLndhcm4oJyhob21lKSB1bmhhbmRsZWQgb3V0ZXIgZXZlbnQgb2YgdHlwZScsIHR5cGUpXG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRGaWx0ZXJzKCkge1xuICAgIHRoaXMuZGF0YVNvdXJjZS5pbml0aWFsRmlsdGVyUmVxdWVzdCgpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKCcoaG9tZSkgQXBvbGxvIHJlc3BvbmRlZCB3aXRoOicsIHJlc3BvbnNlKVxuICAgICAgaWYgKCFyZXNwb25zZSkgeyByZXR1cm47IH1cbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5wYXJzZUluaXRpYWxSZXF1ZXN0KHJlc3BvbnNlKTtcbiAgICAgIGlmICh0aGlzLmRhdGFTb3VyY2UuYnViYmxlc0VuYWJsZWQpIHtcbiAgICAgICAgdGhpcy5lbWl0T3V0ZXIoJ2ZpbHRlcmJ1YmJsZXJlc3BvbnNlJywgcmVzcG9uc2UuZW50aXRpZXNEYXRhKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVTaW1wbGVBdXRvY29tcGxldGVDbGljayA9IChwYXlsb2FkKSA9PiB7XG4gICAgdGhpcy5lbWl0T3V0ZXIoJ2ZhY2V0Y2xpY2snLCBwYXlsb2FkKTtcbiAgfVxuXG4gIHB1YmxpYyBvdXRlckxpbmtDbGljayh0eXBlLCBwYXlsb2FkKSB7XG4gICAgd2luZG93Lm9wZW4ocGF5bG9hZCwgJ19ibGFuaycpO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUNoYXJ0U2VsZWN0aW9uID0gKHBheWxvYWQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZEVudGl0aWVzSWRzID0gcGF5bG9hZDtcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc2VsZWN0ZWRCdWJibGVzID0gcGF5bG9hZDtcbiAgICB0aGlzLmRhdGFTb3VyY2UucmVzdWx0c0xpc3RJc0xvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuZGF0YVNvdXJjZS5tYWtlUmVxdWVzdCQoJ2dsb2JhbEZpbHRlcicsIHtcbiAgICAgIHNlbGVjdGVkRW50aXRpZXNJZHMsXG4gICAgICBlbnRpdGllc0xpc3RTaXplOiB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdidWJibGUtY2hhcnQnKS5idWJibGVMaW1pdCxcbiAgICB9KS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgdGhpcy5kYXRhU291cmNlLnJlc3VsdHNMaXN0SXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICBpZiAocmVzICYmIHJlcy5lbnRpdGllc0RhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICAvLyBpZiBzb21lIGxpbmtlZCBvYmplY3RzIGV4aXN0IGZvciB0aGUgc2VsZWN0ZWQgZW50aXRpZXM6XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5sYXN0QnViYmxlUmVzcG9uc2UgPSByZXMuZW50aXRpZXNEYXRhO1xuICAgICAgICB0aGlzLmVtaXRPdXRlcignZmlsdGVyYnViYmxlcmVzcG9uc2UnLCByZXMuZW50aXRpZXNEYXRhKTtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLnJlbmRlclByZXZpZXdzRnJvbUFwb2xsb1F1ZXJ5KHJlcyk7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5yZW5kZXJJdGVtVGFncygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gaWYgdGhlIGJhY2tlbmQgcmV0dXJucyBhbiBlbXB0eSBsaXN0IG9mIHJlc3VsdHM6XG4gICAgICAgIGNvbnN0IHF1ZXJ5TGlzdCA9IFtdO1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2Uuc2VsZWN0ZWRCdWJibGVzLmZvckVhY2goKGIpID0+IHtcbiAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7IGVudGl0eUlkOiBiLCBlbnRpdGllc0xpc3RTaXplOiAxIH07XG4gICAgICAgICAgcXVlcnlMaXN0LnB1c2goIC8vIG1ha2UgYSBxdWVyeSBmb3IgZWFjaCBzZWxlY3RlZCBidWJibGVcbiAgICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5tYWtlUmVxdWVzdCQoJ2dldE1pc3NpbmdCdWJibGUnLCBwYXJhbXMpLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBhd2FpdCBmb3IgZXZlcnkgbWlzc2luZyBidWJibGUgYW5kIGJ1aWxkIGEgY3VzdG9tIHJlc3BvbnNlXG4gICAgICAgIGZvcmtKb2luKHF1ZXJ5TGlzdCkuc3Vic2NyaWJlKChmb3JrcmVzKSA9PiB7XG4gICAgICAgICAgY29uc3QgY3VzdG9tQnViYmxlcyA9IFtdO1xuICAgICAgICAgIGZvcmtyZXMuZm9yRWFjaCgocikgPT4geyBjdXN0b21CdWJibGVzLnB1c2goeyBjb3VudDogMCwgZW50aXR5OiByIH0pOyB9KTtcbiAgICAgICAgICB0aGlzLmVtaXRPdXRlcignZmlsdGVyYnViYmxlcmVzcG9uc2UnLCBjdXN0b21CdWJibGVzKTtcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UucmVuZGVyUHJldmlld3NGcm9tQXBvbGxvUXVlcnkocmVzKTtcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UucmVuZGVySXRlbVRhZ3MoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==