@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,29 @@
1
+ import { SmartPaginationDS, SmartPaginationEH } from '@net7/boilerplate-common';
2
+ import { AwEntitaLayoutDS } from './entita-layout.ds';
3
+ import { AwEntitaLayoutEH } from './entita-layout.eh';
4
+ import * as DS from '../../data-sources';
5
+ import * as EH from '../../event-handlers';
6
+ export const AwEntitaLayoutConfig = {
7
+ layoutId: 'aw-entita-layout',
8
+ widgets: [
9
+ { id: 'aw-entita-nav', hasStaticData: true },
10
+ { id: 'aw-entita-metadata-viewer' },
11
+ { id: 'aw-linked-objects' },
12
+ { id: 'aw-bubble-chart' },
13
+ { id: 'aw-related-entities' },
14
+ { id: 'aw-chart-tippy' },
15
+ {
16
+ id: 'n7-smart-pagination',
17
+ dataSource: SmartPaginationDS,
18
+ eventHandler: SmartPaginationEH,
19
+ },
20
+ ],
21
+ layoutDS: AwEntitaLayoutDS,
22
+ layoutEH: AwEntitaLayoutEH,
23
+ widgetsDataSources: DS,
24
+ widgetsEventHandlers: EH,
25
+ options: {
26
+ // TODO
27
+ },
28
+ };
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRhLWxheW91dC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvbGF5b3V0cy9lbnRpdGEtbGF5b3V0L2VudGl0YS1sYXlvdXQuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekMsT0FBTyxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRztJQUNsQyxRQUFRLEVBQUUsa0JBQWtCO0lBQzVCLE9BQU8sRUFBRTtRQUNQLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFO1FBQzVDLEVBQUUsRUFBRSxFQUFFLDJCQUEyQixFQUFFO1FBQ25DLEVBQUUsRUFBRSxFQUFFLG1CQUFtQixFQUFFO1FBQzNCLEVBQUUsRUFBRSxFQUFFLGlCQUFpQixFQUFFO1FBQ3pCLEVBQUUsRUFBRSxFQUFFLHFCQUFxQixFQUFFO1FBQzdCLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFO1FBQ3hCO1lBQ0UsRUFBRSxFQUFFLHFCQUFxQjtZQUN6QixVQUFVLEVBQUUsaUJBQWlCO1lBQzdCLFlBQVksRUFBRSxpQkFBaUI7U0FDaEM7S0FDRjtJQUNELFFBQVEsRUFBRSxnQkFBZ0I7SUFDMUIsUUFBUSxFQUFFLGdCQUFnQjtJQUMxQixrQkFBa0IsRUFBRSxFQUFFO0lBQ3RCLG9CQUFvQixFQUFFLEVBQUU7SUFDeEIsT0FBTyxFQUFFO0lBQ1AsT0FBTztLQUNSO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNtYXJ0UGFnaW5hdGlvbkRTLCBTbWFydFBhZ2luYXRpb25FSCB9IGZyb20gJ0BuZXQ3L2JvaWxlcnBsYXRlLWNvbW1vbic7XG5pbXBvcnQgeyBBd0VudGl0YUxheW91dERTIH0gZnJvbSAnLi9lbnRpdGEtbGF5b3V0LmRzJztcbmltcG9ydCB7IEF3RW50aXRhTGF5b3V0RUggfSBmcm9tICcuL2VudGl0YS1sYXlvdXQuZWgnO1xuaW1wb3J0ICogYXMgRFMgZnJvbSAnLi4vLi4vZGF0YS1zb3VyY2VzJztcbmltcG9ydCAqIGFzIEVIIGZyb20gJy4uLy4uL2V2ZW50LWhhbmRsZXJzJztcblxuZXhwb3J0IGNvbnN0IEF3RW50aXRhTGF5b3V0Q29uZmlnID0ge1xuICBsYXlvdXRJZDogJ2F3LWVudGl0YS1sYXlvdXQnLFxuICB3aWRnZXRzOiBbIC8vIGFycmF5IG9mIGNvbXBvbmVudHMgb2YgdGhpcyBsYXlvdXRcbiAgICB7IGlkOiAnYXctZW50aXRhLW5hdicsIGhhc1N0YXRpY0RhdGE6IHRydWUgfSxcbiAgICB7IGlkOiAnYXctZW50aXRhLW1ldGFkYXRhLXZpZXdlcicgfSxcbiAgICB7IGlkOiAnYXctbGlua2VkLW9iamVjdHMnIH0sXG4gICAgeyBpZDogJ2F3LWJ1YmJsZS1jaGFydCcgfSxcbiAgICB7IGlkOiAnYXctcmVsYXRlZC1lbnRpdGllcycgfSxcbiAgICB7IGlkOiAnYXctY2hhcnQtdGlwcHknIH0sXG4gICAge1xuICAgICAgaWQ6ICduNy1zbWFydC1wYWdpbmF0aW9uJyxcbiAgICAgIGRhdGFTb3VyY2U6IFNtYXJ0UGFnaW5hdGlvbkRTLFxuICAgICAgZXZlbnRIYW5kbGVyOiBTbWFydFBhZ2luYXRpb25FSCxcbiAgICB9LFxuICBdLFxuICBsYXlvdXREUzogQXdFbnRpdGFMYXlvdXREUyxcbiAgbGF5b3V0RUg6IEF3RW50aXRhTGF5b3V0RUgsXG4gIHdpZGdldHNEYXRhU291cmNlczogRFMsXG4gIHdpZGdldHNFdmVudEhhbmRsZXJzOiBFSCxcbiAgb3B0aW9uczoge1xuICAgIC8vIFRPRE9cbiAgfSxcbn07XG4iXX0=
@@ -0,0 +1,310 @@
1
+ import { LayoutDataSource } from '@n7-frontend/core';
2
+ import { of } from 'rxjs';
3
+ import { catchError, filter, first, tap } from 'rxjs/operators';
4
+ import { get as _get } from 'lodash';
5
+ import metadataHelper from '../../helpers/metadata.helper';
6
+ export class AwEntitaLayoutDS extends LayoutDataSource {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.hasMetadataFields = false;
10
+ this.navHeader = {}; // nav-header (custom) data
11
+ this.currentPage = 1; // pagination value (url param)
12
+ this.pageSize = 10; // linked objects page size
13
+ // ===== BUBBLE CHART =====
14
+ this.bubblesSize = 10; // related entities (bubbles) page size
15
+ this.fallbackText = '';
16
+ this.loading = true;
17
+ this.updateComponent = (id, data, options) => {
18
+ if (options) {
19
+ this.one(id).updateOptions(options);
20
+ }
21
+ this.one(id).update(data);
22
+ };
23
+ /**
24
+ * Updates the pagination component
25
+ */
26
+ this.drawPagination = (totalItems, pageSize) => {
27
+ if (!this.getLinkedObjectItems())
28
+ return;
29
+ const { href, queryParams } = this._getPaginationURL();
30
+ this.one('n7-smart-pagination').updateOptions({
31
+ mode: 'href',
32
+ href,
33
+ queryParams,
34
+ });
35
+ this.one('n7-smart-pagination').update({
36
+ totalPages: this.getPageCount(totalItems, pageSize),
37
+ currentPage: +this.currentPage || 1,
38
+ pageLimit: 5,
39
+ sizes: {
40
+ label: 'Numero di risultati',
41
+ list: [10, 25, 50],
42
+ active: +this.pageSize,
43
+ },
44
+ });
45
+ };
46
+ /**
47
+ * Updates the selected tab on tab change
48
+ */
49
+ this.handlePageNavigation = () => {
50
+ if (!this.myResponse) {
51
+ return;
52
+ }
53
+ this.getEntityDetailsPage(this.myResponse.id, +this.currentPage, +this.pageSize)
54
+ .pipe(first())
55
+ .subscribe({
56
+ // Await for network response
57
+ next: (data) => {
58
+ this.myResponse = data;
59
+ const { href, queryParams } = this._getPaginationURL();
60
+ // update layout state
61
+ this.pageSize = queryParams.size;
62
+ this.currentPage = queryParams.page;
63
+ // update components
64
+ this.drawPagination(this.getItemCount(), this.pageSize);
65
+ this.one('aw-linked-objects').updateOptions({
66
+ paginationParams: { href, queryParams },
67
+ context: this.selectedTab,
68
+ config: this.configuration,
69
+ dynamicPagination: {
70
+ total: this.getItemCount(),
71
+ },
72
+ page: queryParams.page,
73
+ size: queryParams.size,
74
+ pagination: true,
75
+ });
76
+ this.one('aw-linked-objects').update({ items: this.getLinkedObjectItems() });
77
+ },
78
+ error: (e) => catchError(e),
79
+ });
80
+ };
81
+ this.handleNavUpdate = (tab) => {
82
+ this.selectedTab = tab;
83
+ this.updateWidgets(this.myResponse);
84
+ this.one('aw-linked-objects').updateOptions({
85
+ context: this.selectedTab,
86
+ config: this.configuration,
87
+ dynamicPagination: {
88
+ total: this.getItemCount(),
89
+ },
90
+ page: this.currentPage,
91
+ size: this.pageSize,
92
+ pagination: true,
93
+ paginationParams: this._getPaginationURL(),
94
+ });
95
+ this.one('aw-linked-objects').update({ items: this.getLinkedObjectItems() });
96
+ // update the url with the correct page and size
97
+ const queryParams = {
98
+ page: this.currentPage, size: this.pageSize,
99
+ };
100
+ this.router.navigate([], {
101
+ relativeTo: this.route,
102
+ queryParams,
103
+ queryParamsHandling: 'merge'
104
+ });
105
+ };
106
+ }
107
+ onInit({ configuration, mainState, router, route, options, titleService, communication, }) {
108
+ this.route = route;
109
+ this.communication = communication;
110
+ this.configuration = configuration;
111
+ this.mainState = mainState;
112
+ this.options = options;
113
+ this.router = router;
114
+ this.titleService = titleService;
115
+ this.currentId = '';
116
+ this.currentPage = +this.route.snapshot.queryParams.page ?? 1;
117
+ this.one('aw-related-entities').updateOptions({
118
+ config: this.configuration,
119
+ });
120
+ // navigation update
121
+ this.mainState.updateCustom('currentNav', 'entita');
122
+ // update head title
123
+ this.mainState.update('headTitle', 'Arianna4View - Entità');
124
+ // check if there is only one tab
125
+ this.singleTabCheck();
126
+ }
127
+ singleTabCheck() {
128
+ const navDS = this.getWidgetDataSource('aw-entita-nav');
129
+ navDS.out$
130
+ .pipe(filter((output) => !!output))
131
+ .subscribe(({ items }) => {
132
+ // if there is only one tab
133
+ // and there are no query params
134
+ // navigate to the tab.
135
+ if (items.length === 1 && !this.currentPage) {
136
+ this.router.navigate([items[0].anchor.href], { replaceUrl: true });
137
+ }
138
+ });
139
+ }
140
+ updateWidgets(data) {
141
+ /*
142
+ Updates the widgets on this layout, based on route
143
+ */
144
+ const selected = this.selectedTab;
145
+ Object.keys(data).forEach((k) => {
146
+ if (Array.isArray(data[k]) && data[k].length === 0) {
147
+ data[k] = null;
148
+ }
149
+ });
150
+ this.one('aw-entita-nav').update({
151
+ data,
152
+ selected,
153
+ basePath: this.getNavBasePath(),
154
+ });
155
+ this.updateComponent('aw-entita-metadata-viewer', this.getFields(this.myResponse));
156
+ this.one('aw-related-entities').update(this.myResponse.relatedEntities);
157
+ this.drawPagination(this.getItemCount(), this.pageSize);
158
+ }
159
+ /**
160
+ * Given a page number and a list size, returns the data
161
+ * for a single page of content.
162
+ *
163
+ * @param id Entity ID
164
+ * @param pageNumber Page number to load
165
+ * @param pageSize How many items need to be loaded
166
+ */
167
+ getEntityDetailsPage(id, pageNumber, pageSize) {
168
+ return this.communication.request$('getEntityDetails', {
169
+ onError: (error) => console.error(error),
170
+ params: {
171
+ entityId: id,
172
+ itemsPagination: { offset: ((pageNumber || 1) - 1) * pageSize, limit: +pageSize },
173
+ entitiesListSize: this.bubblesSize
174
+ },
175
+ }).pipe(
176
+ // global metadata tab control
177
+ tap(({ fields, typeOfEntity }) => {
178
+ this.hasMetadataFields = !!metadataHelper.normalize({
179
+ fields,
180
+ paths: this.configuration.get('paths'),
181
+ labels: this.configuration.get('labels'),
182
+ metadataToShow: _get(this.configuration.get('entita-layout'), 'metadata-to-show', []),
183
+ type: typeOfEntity
184
+ }).length;
185
+ }));
186
+ }
187
+ /*
188
+ * Loads the data for the selected nav item, into the adjacent text block.
189
+ */
190
+ loadItem(id, slug, tab) {
191
+ this.loading = true;
192
+ if (id && tab) {
193
+ this.currentId = id; // store selected item from url
194
+ this.currentSlug = slug; // store selected item from url
195
+ this.selectedTab = tab; // store selected tab from url
196
+ return this.getEntityDetailsPage(id, this.currentPage, this.pageSize);
197
+ }
198
+ this.pageTitle = 'Entità Test';
199
+ return of(null);
200
+ }
201
+ loadContent(res) {
202
+ this.loading = false;
203
+ const config = this.configuration.get('config-keys')[res.typeOfEntity];
204
+ this.myResponse = res;
205
+ this.navHeader = {
206
+ icon: config ? config.icon : '',
207
+ text: this.myResponse.label,
208
+ color: config['class-name'],
209
+ };
210
+ this.one('aw-entita-nav').updateOptions({
211
+ bubblesEnabled: this.bubblesEnabled,
212
+ config: this.configuration.get('entita-layout'),
213
+ hasMetadataFields: this.hasMetadataFields,
214
+ labels: this.configuration.get('labels')
215
+ });
216
+ this.one('aw-entita-metadata-viewer').update(this.getFields(res));
217
+ this.one('aw-linked-objects').updateOptions({
218
+ context: this.selectedTab,
219
+ config: this.configuration,
220
+ page: this.currentPage,
221
+ pagination: true,
222
+ dynamicPagination: {
223
+ total: this.getItemCount(),
224
+ },
225
+ paginationParams: this._getPaginationURL(),
226
+ size: this.pageSize,
227
+ });
228
+ this.getLinkedObjectItems().forEach((el) => {
229
+ el.relationName = res.label.length > 30
230
+ ? `${res.label.substr(0, 30)}... `
231
+ : res.label;
232
+ });
233
+ res.relatedEntities.forEach((el) => {
234
+ el.relationName = res.label.length > 30
235
+ ? `${res.label.substr(0, 30)}... `
236
+ : res.label;
237
+ });
238
+ this.one('aw-linked-objects').update({ items: this.getLinkedObjectItems() });
239
+ this.one('aw-related-entities').update(res.relatedEntities);
240
+ // fallback text
241
+ if (!this.hasMetadataFields) {
242
+ this.fallbackText = this.configuration.get('entita-layout').fallback;
243
+ }
244
+ // update head title
245
+ this.mainState.update('headTitle', `Arianna4View - Entità - ${this.myResponse.label}`);
246
+ }
247
+ _getPaginationURL() {
248
+ return {
249
+ href: [
250
+ this.configuration.get('paths').entitaBasePath,
251
+ `${this.currentId}/`,
252
+ this.currentSlug,
253
+ `/${this.selectedTab}/`,
254
+ ].join(''),
255
+ queryParams: {
256
+ page: this.currentPage || 1,
257
+ size: this.pageSize,
258
+ },
259
+ };
260
+ }
261
+ getNavBasePath() {
262
+ return [
263
+ this.configuration.get('paths').entitaBasePath,
264
+ `${this.currentId}/`,
265
+ this.currentSlug,
266
+ ].join('');
267
+ }
268
+ getItemCount() {
269
+ switch (this.selectedTab) {
270
+ case 'fondi-collegati':
271
+ return this.myResponse.relatedLaTotalCount;
272
+ case 'oggetti-collegati':
273
+ return this.myResponse.relatedItemsTotalCount;
274
+ default:
275
+ return 0;
276
+ }
277
+ }
278
+ getFields(response) {
279
+ const { fields, typeOfEntity } = response;
280
+ const paths = this.configuration.get('paths');
281
+ const labels = this.configuration.get('labels');
282
+ let metadataToShow = _get(this.configuration.get('entita-layout'), 'metadata-to-show', []);
283
+ if (this.selectedTab === 'overview') {
284
+ metadataToShow = _get(this.configuration.get('entita-layout'), 'overview.informazioni', []);
285
+ }
286
+ return metadataHelper.normalize({
287
+ fields,
288
+ paths,
289
+ labels,
290
+ metadataToShow,
291
+ type: typeOfEntity
292
+ });
293
+ }
294
+ getLinkedObjectItems() {
295
+ return this.selectedTab === 'fondi-collegati'
296
+ ? this.myResponse.relatedLa
297
+ : this.myResponse.relatedItems;
298
+ }
299
+ /**
300
+ * Calculates the total amount of pages
301
+ *
302
+ * @param items the number of records in the database
303
+ * @param size the number of items shown on a page
304
+ * @returns the total number of pages
305
+ */
306
+ getPageCount(items, size) {
307
+ return Math.floor(items / size);
308
+ }
309
+ }
310
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRhLWxheW91dC5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9sYXlvdXRzL2VudGl0YS1sYXlvdXQvZW50aXRhLWxheW91dC5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFDTCxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQy9CLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFckMsT0FBTyxjQUFjLE1BQU0sK0JBQStCLENBQUM7QUFHM0QsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGdCQUFnQjtJQUF0RDs7UUFlUyxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFNMUIsY0FBUyxHQUFRLEVBQUUsQ0FBQyxDQUFDLDJCQUEyQjtRQU1oRCxnQkFBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLCtCQUErQjtRQUVoRCxhQUFRLEdBQUcsRUFBRSxDQUFDLENBQUMsMkJBQTJCO1FBRWpELDJCQUEyQjtRQUNwQixnQkFBVyxHQUFHLEVBQUUsQ0FBQyxDQUFDLHVDQUF1QztRQU96RCxpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUVsQixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBNENmLG9CQUFlLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQVEsRUFBRSxFQUFFO1lBQzlDLElBQUksT0FBTyxFQUFFO2dCQUNYLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3JDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FB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LE1BQU07WUFDTixLQUFLO1lBQ0wsTUFBTTtZQUNOLGNBQWM7WUFDZCxJQUFJLEVBQUUsWUFBWTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxpQkFBaUI7WUFDM0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUztZQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLFlBQVksQ0FBQyxLQUFhLEVBQUUsSUFBWTtRQUM5QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExheW91dERhdGFTb3VyY2UgfSBmcm9tICdAbjctZnJvbnRlbmQvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvciwgZmlsdGVyLCBmaXJzdCwgdGFwXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGdldCBhcyBfZ2V0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBQYXJhbXMsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgbWV0YWRhdGFIZWxwZXIgZnJvbSAnLi4vLi4vaGVscGVycy9tZXRhZGF0YS5oZWxwZXInO1xuaW1wb3J0IHsgRW50aXRhTGF5b3V0UmVzcG9uc2UgfSBmcm9tICcuL2VudGl0YS1sYXlvdXQudHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgQXdFbnRpdGFMYXlvdXREUyBleHRlbmRzIExheW91dERhdGFTb3VyY2Uge1xuICBwcm90ZWN0ZWQgY29uZmlndXJhdGlvbjogYW55O1xuXG4gIHByb3RlY3RlZCBtYWluU3RhdGU6IGFueTtcblxuICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXI7XG5cbiAgcHJvdGVjdGVkIHRpdGxlU2VydmljZTogYW55O1xuXG4gIHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGU7XG5cbiAgcHVibGljIG9wdGlvbnM6IGFueTtcblxuICBwdWJsaWMgcGFnZVRpdGxlOiBzdHJpbmc7XG5cbiAgcHVibGljIGhhc01ldGFkYXRhRmllbGRzID0gZmFsc2U7XG5cbiAgcHVibGljIG15UmVzcG9uc2U6IEVudGl0YUxheW91dFJlc3BvbnNlOyAvLyBiYWNrZW5kIHJlc3BvbnNlIG9iamVjdFxuXG4gIHB1YmxpYyBzZWxlY3RlZFRhYjogc3RyaW5nOyAvLyBzZWxlY3RlZCBuYXYgaXRlbVxuXG4gIHB1YmxpYyBuYXZIZWFkZXI6IGFueSA9IHt9OyAvLyBuYXYtaGVhZGVyIChjdXN0b20pIGRhdGFcblxuICBwdWJsaWMgY3VycmVudElkOiBzdHJpbmc7IC8vIHNlbGVjdGVkIGVudGl0eSAodXJsIHBhcmFtKVxuXG4gIHB1YmxpYyBjdXJyZW50U2x1Zzogc3RyaW5nOyAvLyBzZWxlY3RlZCBlbnRpdHkgKHVybCBwYXJhbSlcblxuICBwdWJsaWMgY3VycmVudFBhZ2UgPSAxOyAvLyBwYWdpbmF0aW9uIHZhbHVlICh1cmwgcGFyYW0pXG5cbiAgcHVibGljIHBhZ2VTaXplID0gMTA7IC8vIGxpbmtlZCBvYmplY3RzIHBhZ2Ugc2l6ZVxuXG4gIC8vID09PT09IEJVQkJMRSBDSEFSVCA9PT09PVxuICBwdWJsaWMgYnViYmxlc1NpemUgPSAxMDsgLy8gcmVsYXRlZCBlbnRpdGllcyAoYnViYmxlcykgcGFnZSBzaXplXG5cbiAgcHVibGljIGJ1YmJsZXNFbmFibGVkOiBib29sZWFuO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PVxuICBwcml2YXRlIGNvbW11bmljYXRpb246IGFueTtcblxuICBwdWJsaWMgZmFsbGJhY2tUZXh0ID0gJyc7XG5cbiAgcHVibGljIGxvYWRpbmcgPSB0cnVlO1xuXG4gIG9uSW5pdCh7XG4gICAgY29uZmlndXJhdGlvbiwgbWFpblN0YXRlLCByb3V0ZXIsIHJvdXRlLCBvcHRpb25zLCB0aXRsZVNlcnZpY2UsIGNvbW11bmljYXRpb24sXG4gIH0pIHtcbiAgICB0aGlzLnJvdXRlID0gcm91dGU7XG4gICAgdGhpcy5jb21tdW5pY2F0aW9uID0gY29tbXVuaWNhdGlvbjtcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uO1xuICAgIHRoaXMubWFpblN0YXRlID0gbWFpblN0YXRlO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5yb3V0ZXIgPSByb3V0ZXI7XG4gICAgdGhpcy50aXRsZVNlcnZpY2UgPSB0aXRsZVNlcnZpY2U7XG4gICAgdGhpcy5jdXJyZW50SWQgPSAnJztcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gK3RoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMucGFnZSA/PyAxO1xuICAgIHRoaXMub25lKCdhdy1yZWxhdGVkLWVudGl0aWVzJykudXBkYXRlT3B0aW9ucyh7XG4gICAgICBjb25maWc6IHRoaXMuY29uZmlndXJhdGlvbixcbiAgICB9KTtcblxuICAgIC8vIG5hdmlnYXRpb24gdXBkYXRlXG4gICAgdGhpcy5tYWluU3RhdGUudXBkYXRlQ3VzdG9tKCdjdXJyZW50TmF2JywgJ2VudGl0YScpO1xuXG4gICAgLy8gdXBkYXRlIGhlYWQgdGl0bGVcbiAgICB0aGlzLm1haW5TdGF0ZS51cGRhdGUoJ2hlYWRUaXRsZScsICdBcmlhbm5hNFZpZXcgLSBFbnRpdMOgJyk7XG5cbiAgICAvLyBjaGVjayBpZiB0aGVyZSBpcyBvbmx5IG9uZSB0YWJcbiAgICB0aGlzLnNpbmdsZVRhYkNoZWNrKCk7XG4gIH1cblxuICBzaW5nbGVUYWJDaGVjaygpIHtcbiAgICBjb25zdCBuYXZEUyA9IHRoaXMuZ2V0V2lkZ2V0RGF0YVNvdXJjZSgnYXctZW50aXRhLW5hdicpO1xuICAgIG5hdkRTLm91dCRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKG91dHB1dCkgPT4gISFvdXRwdXQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh7IGl0ZW1zIH0pID0+IHtcbiAgICAgICAgLy8gaWYgdGhlcmUgaXMgb25seSBvbmUgdGFiXG4gICAgICAgIC8vIGFuZCB0aGVyZSBhcmUgbm8gcXVlcnkgcGFyYW1zXG4gICAgICAgIC8vIG5hdmlnYXRlIHRvIHRoZSB0YWIuXG4gICAgICAgIGlmIChpdGVtcy5sZW5ndGggPT09IDEgJiYgIXRoaXMuY3VycmVudFBhZ2UpIHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbaXRlbXNbMF0uYW5jaG9yLmhyZWZdLCB7IHJlcGxhY2VVcmw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUNvbXBvbmVudCA9IChpZCwgZGF0YSwgb3B0aW9ucz8pID0+IHtcbiAgICBpZiAob3B0aW9ucykge1xuICAgICAgdGhpcy5vbmUoaWQpLnVwZGF0ZU9wdGlvbnMob3B0aW9ucyk7XG4gICAgfVxuICAgIHRoaXMub25lKGlkKS51cGRhdGUoZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcGFnaW5hdGlvbiBjb21wb25lbnRcbiAgICovXG4gIGRyYXdQYWdpbmF0aW9uID0gKHRvdGFsSXRlbXMsIHBhZ2VTaXplKSA9PiB7XG4gICAgaWYgKCF0aGlzLmdldExpbmtlZE9iamVjdEl0ZW1zKCkpIHJldHVybjtcbiAgICBjb25zdCB7IGhyZWYsIHF1ZXJ5UGFyYW1zIH0gPSB0aGlzLl9nZXRQYWdpbmF0aW9uVVJMKCk7XG4gICAgdGhpcy5vbmUoJ243LXNtYXJ0LXBhZ2luYXRpb24nKS51cGRhdGVPcHRpb25zKHtcbiAgICAgIG1vZGU6ICdocmVmJyxcbiAgICAgIGhyZWYsXG4gICAgICBxdWVyeVBhcmFtcyxcbiAgICB9KTtcbiAgICB0aGlzLm9uZSgnbjctc21hcnQtcGFnaW5hdGlvbicpLnVwZGF0ZSh7XG4gICAgICB0b3RhbFBhZ2VzOiB0aGlzLmdldFBhZ2VDb3VudCh0b3RhbEl0ZW1zLCBwYWdlU2l6ZSksXG4gICAgICBjdXJyZW50UGFnZTogK3RoaXMuY3VycmVudFBhZ2UgfHwgMSxcbiAgICAgIHBhZ2VMaW1pdDogNSxcbiAgICAgIHNpemVzOiB7XG4gICAgICAgIGxhYmVsOiAnTnVtZXJvIGRpIHJpc3VsdGF0aScsXG4gICAgICAgIGxpc3Q6IFsxMCwgMjUsIDUwXSxcbiAgICAgICAgYWN0aXZlOiArdGhpcy5wYWdlU2l6ZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgc2VsZWN0ZWQgdGFiIG9uIHRhYiBjaGFuZ2VcbiAgICovXG4gIGhhbmRsZVBhZ2VOYXZpZ2F0aW9uID0gKCkgPT4ge1xuICAgIGlmICghdGhpcy5teVJlc3BvbnNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZ2V0RW50aXR5RGV0YWlsc1BhZ2UodGhpcy5teVJlc3BvbnNlLmlkLCArdGhpcy5jdXJyZW50UGFnZSwgK3RoaXMucGFnZVNpemUpXG4gICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIC8vIEF3YWl0IGZvciBuZXR3b3JrIHJlc3BvbnNlXG4gICAgICAgIG5leHQ6IChkYXRhKSA9PiB7XG4gICAgICAgICAgdGhpcy5teVJlc3BvbnNlID0gZGF0YTtcbiAgICAgICAgICBjb25zdCB7IGhyZWYsIHF1ZXJ5UGFyYW1zIH0gPSB0aGlzLl9nZXRQYWdpbmF0aW9uVVJMKCk7XG4gICAgICAgICAgLy8gdXBkYXRlIGxheW91dCBzdGF0ZVxuICAgICAgICAgIHRoaXMucGFnZVNpemUgPSBxdWVyeVBhcmFtcy5zaXplO1xuICAgICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSBxdWVyeVBhcmFtcy5wYWdlO1xuICAgICAgICAgIC8vIHVwZGF0ZSBjb21wb25lbnRzXG4gICAgICAgICAgdGhpcy5kcmF3UGFnaW5hdGlvbih0aGlzLmdldEl0ZW1Db3VudCgpLCB0aGlzLnBhZ2VTaXplKTtcbiAgICAgICAgICB0aGlzLm9uZSgnYXctbGlua2VkLW9iamVjdHMnKS51cGRhdGVPcHRpb25zKHtcbiAgICAgICAgICAgIHBhZ2luYXRpb25QYXJhbXM6IHsgaHJlZiwgcXVlcnlQYXJhbXMgfSxcbiAgICAgICAgICAgIGNvbnRleHQ6IHRoaXMuc2VsZWN0ZWRUYWIsXG4gICAgICAgICAgICBjb25maWc6IHRoaXMuY29uZmlndXJhdGlvbixcbiAgICAgICAgICAgIGR5bmFtaWNQYWdpbmF0aW9uOiB7XG4gICAgICAgICAgICAgIHRvdGFsOiB0aGlzLmdldEl0ZW1Db3VudCgpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhZ2U6IHF1ZXJ5UGFyYW1zLnBhZ2UsXG4gICAgICAgICAgICBzaXplOiBxdWVyeVBhcmFtcy5zaXplLFxuICAgICAgICAgICAgcGFnaW5hdGlvbjogdHJ1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLm9uZSgnYXctbGlua2VkLW9iamVjdHMnKS51cGRhdGUoeyBpdGVtczogdGhpcy5nZXRMaW5rZWRPYmplY3RJdGVtcygpIH0pO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGUpID0+IGNhdGNoRXJyb3IoZSksXG4gICAgICB9KTtcbiAgfVxuXG4gIGhhbmRsZU5hdlVwZGF0ZSA9ICh0YWIpID0+IHtcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gdGFiO1xuICAgIHRoaXMudXBkYXRlV2lkZ2V0cyh0aGlzLm15UmVzcG9uc2UpO1xuICAgIHRoaXMub25lKCdhdy1saW5rZWQtb2JqZWN0cycpLnVwZGF0ZU9wdGlvbnMoe1xuICAgICAgY29udGV4dDogdGhpcy5zZWxlY3RlZFRhYixcbiAgICAgIGNvbmZpZzogdGhpcy5jb25maWd1cmF0aW9uLFxuICAgICAgZHluYW1pY1BhZ2luYXRpb246IHtcbiAgICAgICAgdG90YWw6IHRoaXMuZ2V0SXRlbUNvdW50KCksXG4gICAgICB9LFxuICAgICAgcGFnZTogdGhpcy5jdXJyZW50UGFnZSxcbiAgICAgIHNpemU6IHRoaXMucGFnZVNpemUsXG4gICAgICBwYWdpbmF0aW9uOiB0cnVlLFxuICAgICAgcGFnaW5hdGlvblBhcmFtczogdGhpcy5fZ2V0UGFnaW5hdGlvblVSTCgpLFxuICAgIH0pO1xuICAgIHRoaXMub25lKCdhdy1saW5rZWQtb2JqZWN0cycpLnVwZGF0ZSh7IGl0ZW1zOiB0aGlzLmdldExpbmtlZE9iamVjdEl0ZW1zKCkgfSk7XG4gICAgLy8gdXBkYXRlIHRoZSB1cmwgd2l0aCB0aGUgY29ycmVjdCBwYWdlIGFuZCBzaXplXG4gICAgY29uc3QgcXVlcnlQYXJhbXM6IFBhcmFtcyA9IHtcbiAgICAgIHBhZ2U6IHRoaXMuY3VycmVudFBhZ2UsIHNpemU6IHRoaXMucGFnZVNpemUsXG4gICAgfTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcbiAgICAgIFtdLCB7XG4gICAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXG4gICAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHVwZGF0ZVdpZGdldHMoZGF0YSkge1xuICAgIC8qXG4gICAgICBVcGRhdGVzIHRoZSB3aWRnZXRzIG9uIHRoaXMgbGF5b3V0LCBiYXNlZCBvbiByb3V0ZVxuICAgICovXG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkVGFiO1xuICAgIE9iamVjdC5rZXlzKGRhdGEpLmZvckVhY2goKGspID0+IHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGFba10pICYmIGRhdGFba10ubGVuZ3RoID09PSAwKSB7IGRhdGFba10gPSBudWxsOyB9XG4gICAgfSk7XG4gICAgdGhpcy5vbmUoJ2F3LWVudGl0YS1uYXYnKS51cGRhdGUoe1xuICAgICAgZGF0YSxcbiAgICAgIHNlbGVjdGVkLFxuICAgICAgYmFzZVBhdGg6IHRoaXMuZ2V0TmF2QmFzZVBhdGgoKSxcbiAgICB9KTtcbiAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudCgnYXctZW50aXRhLW1ldGFkYXRhLXZpZXdlcicsIHRoaXMuZ2V0RmllbGRzKHRoaXMubXlSZXNwb25zZSkpO1xuICAgIHRoaXMub25lKCdhdy1yZWxhdGVkLWVudGl0aWVzJykudXBkYXRlKHRoaXMubXlSZXNwb25zZS5yZWxhdGVkRW50aXRpZXMpO1xuICAgIHRoaXMuZHJhd1BhZ2luYXRpb24odGhpcy5nZXRJdGVtQ291bnQoKSwgdGhpcy5wYWdlU2l6ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2l2ZW4gYSBwYWdlIG51bWJlciBhbmQgYSBsaXN0IHNpemUsIHJldHVybnMgdGhlIGRhdGFcbiAgICogZm9yIGEgc2luZ2xlIHBhZ2Ugb2YgY29udGVudC5cbiAgICpcbiAgICogQHBhcmFtIGlkIEVudGl0eSBJRFxuICAgKiBAcGFyYW0gcGFnZU51bWJlciBQYWdlIG51bWJlciB0byBsb2FkXG4gICAqIEBwYXJhbSBwYWdlU2l6ZSBIb3cgbWFueSBpdGVtcyBuZWVkIHRvIGJlIGxvYWRlZFxuICAgKi9cbiAgZ2V0RW50aXR5RGV0YWlsc1BhZ2UoaWQsIHBhZ2VOdW1iZXI6IG51bWJlciwgcGFnZVNpemU6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuY29tbXVuaWNhdGlvbi5yZXF1ZXN0JCgnZ2V0RW50aXR5RGV0YWlscycsIHtcbiAgICAgIG9uRXJyb3I6IChlcnJvcikgPT4gY29uc29sZS5lcnJvcihlcnJvciksXG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgZW50aXR5SWQ6IGlkLFxuICAgICAgICBpdGVtc1BhZ2luYXRpb246IHsgb2Zmc2V0OiAoKHBhZ2VOdW1iZXIgfHwgMSkgLSAxKSAqIHBhZ2VTaXplLCBsaW1pdDogK3BhZ2VTaXplIH0sXG4gICAgICAgIGVudGl0aWVzTGlzdFNpemU6IHRoaXMuYnViYmxlc1NpemVcbiAgICAgIH0sXG4gICAgfSkucGlwZShcbiAgICAgIC8vIGdsb2JhbCBtZXRhZGF0YSB0YWIgY29udHJvbFxuICAgICAgdGFwKCh7IGZpZWxkcywgdHlwZU9mRW50aXR5IH0pID0+IHtcbiAgICAgICAgdGhpcy5oYXNNZXRhZGF0YUZpZWxkcyA9ICEhbWV0YWRhdGFIZWxwZXIubm9ybWFsaXplKHtcbiAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgcGF0aHM6IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ3BhdGhzJyksXG4gICAgICAgICAgbGFiZWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdsYWJlbHMnKSxcbiAgICAgICAgICBtZXRhZGF0YVRvU2hvdzogX2dldCh0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdlbnRpdGEtbGF5b3V0JyksICdtZXRhZGF0YS10by1zaG93JywgW10pLFxuICAgICAgICAgIHR5cGU6IHR5cGVPZkVudGl0eVxuICAgICAgICB9KS5sZW5ndGg7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKlxuICAgKiBMb2FkcyB0aGUgZGF0YSBmb3IgdGhlIHNlbGVjdGVkIG5hdiBpdGVtLCBpbnRvIHRoZSBhZGphY2VudCB0ZXh0IGJsb2NrLlxuICAgKi9cbiAgbG9hZEl0ZW0oaWQsIHNsdWcsIHRhYik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICBpZiAoaWQgJiYgdGFiKSB7XG4gICAgICB0aGlzLmN1cnJlbnRJZCA9IGlkOyAvLyBzdG9yZSBzZWxlY3RlZCBpdGVtIGZyb20gdXJsXG4gICAgICB0aGlzLmN1cnJlbnRTbHVnID0gc2x1ZzsgLy8gc3RvcmUgc2VsZWN0ZWQgaXRlbSBmcm9tIHVybFxuICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9IHRhYjsgLy8gc3RvcmUgc2VsZWN0ZWQgdGFiIGZyb20gdXJsXG4gICAgICByZXR1cm4gdGhpcy5nZXRFbnRpdHlEZXRhaWxzUGFnZShpZCwgdGhpcy5jdXJyZW50UGFnZSwgdGhpcy5wYWdlU2l6ZSk7XG4gICAgfVxuICAgIHRoaXMucGFnZVRpdGxlID0gJ0VudGl0w6AgVGVzdCc7XG4gICAgcmV0dXJuIG9mKG51bGwpO1xuICB9XG5cbiAgbG9hZENvbnRlbnQocmVzKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCgnY29uZmlnLWtleXMnKVtyZXMudHlwZU9mRW50aXR5XTtcbiAgICB0aGlzLm15UmVzcG9uc2UgPSByZXM7XG4gICAgdGhpcy5uYXZIZWFkZXIgPSB7IC8vIGFsd2F5cyByZW5kZXIgbmF2IGhlYWRlclxuICAgICAgaWNvbjogY29uZmlnID8gY29uZmlnLmljb24gOiAnJyxcbiAgICAgIHRleHQ6IHRoaXMubXlSZXNwb25zZS5sYWJlbCxcbiAgICAgIGNvbG9yOiBjb25maWdbJ2NsYXNzLW5hbWUnXSxcbiAgICB9O1xuICAgIHRoaXMub25lKCdhdy1lbnRpdGEtbmF2JykudXBkYXRlT3B0aW9ucyh7XG4gICAgICBidWJibGVzRW5hYmxlZDogdGhpcy5idWJibGVzRW5hYmxlZCxcbiAgICAgIGNvbmZpZzogdGhpcy5jb25maWd1cmF0aW9uLmdldCgnZW50aXRhLWxheW91dCcpLFxuICAgICAgaGFzTWV0YWRhdGFGaWVsZHM6IHRoaXMuaGFzTWV0YWRhdGFGaWVsZHMsXG4gICAgICBsYWJlbHM6IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ2xhYmVscycpXG4gICAgfSk7XG4gICAgdGhpcy5vbmUoJ2F3LWVudGl0YS1tZXRhZGF0YS12aWV3ZXInKS51cGRhdGUodGhpcy5nZXRGaWVsZHMocmVzKSk7XG4gICAgdGhpcy5vbmUoJ2F3LWxpbmtlZC1vYmplY3RzJykudXBkYXRlT3B0aW9ucyh7XG4gICAgICBjb250ZXh0OiB0aGlzLnNlbGVjdGVkVGFiLFxuICAgICAgY29uZmlnOiB0aGlzLmNvbmZpZ3VyYXRpb24sXG4gICAgICBwYWdlOiB0aGlzLmN1cnJlbnRQYWdlLFxuICAgICAgcGFnaW5hdGlvbjogdHJ1ZSxcbiAgICAgIGR5bmFtaWNQYWdpbmF0aW9uOiB7XG4gICAgICAgIHRvdGFsOiB0aGlzLmdldEl0ZW1Db3VudCgpLFxuICAgICAgfSxcbiAgICAgIHBhZ2luYXRpb25QYXJhbXM6IHRoaXMuX2dldFBhZ2luYXRpb25VUkwoKSxcbiAgICAgIHNpemU6IHRoaXMucGFnZVNpemUsXG4gICAgfSk7XG4gICAgdGhpcy5nZXRMaW5rZWRPYmplY3RJdGVtcygpLmZvckVhY2goKGVsOiBhbnkpID0+IHtcbiAgICAgIGVsLnJlbGF0aW9uTmFtZSA9IHJlcy5sYWJlbC5sZW5ndGggPiAzMFxuICAgICAgICA/IGAke3Jlcy5sYWJlbC5zdWJzdHIoMCwgMzApfS4uLiBgXG4gICAgICAgIDogcmVzLmxhYmVsO1xuICAgIH0pO1xuICAgIHJlcy5yZWxhdGVkRW50aXRpZXMuZm9yRWFjaCgoZWw6IGFueSkgPT4ge1xuICAgICAgZWwucmVsYXRpb25OYW1lID0gcmVzLmxhYmVsLmxlbmd0aCA+IDMwXG4gICAgICAgID8gYCR7cmVzLmxhYmVsLnN1YnN0cigwLCAzMCl9Li4uIGBcbiAgICAgICAgOiByZXMubGFiZWw7XG4gICAgfSk7XG4gICAgdGhpcy5vbmUoJ2F3LWxpbmtlZC1vYmplY3RzJykudXBkYXRlKHsgaXRlbXM6IHRoaXMuZ2V0TGlua2VkT2JqZWN0SXRlbXMoKSB9KTtcbiAgICB0aGlzLm9uZSgnYXctcmVsYXRlZC1lbnRpdGllcycpLnVwZGF0ZShyZXMucmVsYXRlZEVudGl0aWVzKTtcbiAgICAvLyBmYWxsYmFjayB0ZXh0XG4gICAgaWYgKCF0aGlzLmhhc01ldGFkYXRhRmllbGRzKSB7XG4gICAgICB0aGlzLmZhbGxiYWNrVGV4dCA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ2VudGl0YS1sYXlvdXQnKS5mYWxsYmFjaztcbiAgICB9XG4gICAgLy8gdXBkYXRlIGhlYWQgdGl0bGVcbiAgICB0aGlzLm1haW5TdGF0ZS51cGRhdGUoJ2hlYWRUaXRsZScsIGBBcmlhbm5hNFZpZXcgLSBFbnRpdMOgIC0gJHt0aGlzLm15UmVzcG9uc2UubGFiZWx9YCk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRQYWdpbmF0aW9uVVJMKCkge1xuICAgIHJldHVybiB7XG4gICAgICBocmVmOiBbXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ3BhdGhzJykuZW50aXRhQmFzZVBhdGgsXG4gICAgICAgIGAke3RoaXMuY3VycmVudElkfS9gLFxuICAgICAgICB0aGlzLmN1cnJlbnRTbHVnLFxuICAgICAgICBgLyR7dGhpcy5zZWxlY3RlZFRhYn0vYCxcbiAgICAgIF0uam9pbignJyksXG4gICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICBwYWdlOiB0aGlzLmN1cnJlbnRQYWdlIHx8IDEsXG4gICAgICAgIHNpemU6IHRoaXMucGFnZVNpemUsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0TmF2QmFzZVBhdGgoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ3BhdGhzJykuZW50aXRhQmFzZVBhdGgsXG4gICAgICBgJHt0aGlzLmN1cnJlbnRJZH0vYCxcbiAgICAgIHRoaXMuY3VycmVudFNsdWcsXG4gICAgXS5qb2luKCcnKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRJdGVtQ291bnQoKTogbnVtYmVyIHtcbiAgICBzd2l0Y2ggKHRoaXMuc2VsZWN0ZWRUYWIpIHtcbiAgICAgIGNhc2UgJ2ZvbmRpLWNvbGxlZ2F0aSc6XG4gICAgICAgIHJldHVybiB0aGlzLm15UmVzcG9uc2UucmVsYXRlZExhVG90YWxDb3VudDtcbiAgICAgIGNhc2UgJ29nZ2V0dGktY29sbGVnYXRpJzpcbiAgICAgICAgcmV0dXJuIHRoaXMubXlSZXNwb25zZS5yZWxhdGVkSXRlbXNUb3RhbENvdW50O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEZpZWxkcyhyZXNwb25zZSkge1xuICAgIGNvbnN0IHsgZmllbGRzLCB0eXBlT2ZFbnRpdHkgfSA9IHJlc3BvbnNlO1xuICAgIGNvbnN0IHBhdGhzID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCgncGF0aHMnKTtcbiAgICBjb25zdCBsYWJlbHMgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdsYWJlbHMnKTtcbiAgICBsZXQgbWV0YWRhdGFUb1Nob3cgPSBfZ2V0KHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ2VudGl0YS1sYXlvdXQnKSwgJ21ldGFkYXRhLXRvLXNob3cnLCBbXSk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRUYWIgPT09ICdvdmVydmlldycpIHtcbiAgICAgIG1ldGFkYXRhVG9TaG93ID0gX2dldCh0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdlbnRpdGEtbGF5b3V0JyksICdvdmVydmlldy5pbmZvcm1hemlvbmknLCBbXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1ldGFkYXRhSGVscGVyLm5vcm1hbGl6ZSh7XG4gICAgICBmaWVsZHMsXG4gICAgICBwYXRocyxcbiAgICAgIGxhYmVscyxcbiAgICAgIG1ldGFkYXRhVG9TaG93LFxuICAgICAgdHlwZTogdHlwZU9mRW50aXR5XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldExpbmtlZE9iamVjdEl0ZW1zKCkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVGFiID09PSAnZm9uZGktY29sbGVnYXRpJ1xuICAgICAgPyB0aGlzLm15UmVzcG9uc2UucmVsYXRlZExhXG4gICAgICA6IHRoaXMubXlSZXNwb25zZS5yZWxhdGVkSXRlbXM7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgdG90YWwgYW1vdW50IG9mIHBhZ2VzXG4gICAqXG4gICAqIEBwYXJhbSBpdGVtcyB0aGUgbnVtYmVyIG9mIHJlY29yZHMgaW4gdGhlIGRhdGFiYXNlXG4gICAqIEBwYXJhbSBzaXplIHRoZSBudW1iZXIgb2YgaXRlbXMgc2hvd24gb24gYSBwYWdlXG4gICAqIEByZXR1cm5zIHRoZSB0b3RhbCBudW1iZXIgb2YgcGFnZXNcbiAgICovXG4gIHByaXZhdGUgZ2V0UGFnZUNvdW50KGl0ZW1zOiBudW1iZXIsIHNpemU6IG51bWJlcikge1xuICAgIHJldHVybiBNYXRoLmZsb29yKGl0ZW1zIC8gc2l6ZSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,119 @@
1
+ import { EventHandler } from '@n7-frontend/core';
2
+ import { Subject } from 'rxjs';
3
+ import { map } from 'rxjs/operators';
4
+ export class AwEntitaLayoutEH extends EventHandler {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.destroyed$ = new Subject();
8
+ this.handlePageSizeChange = (size) => {
9
+ this.dataSource.pageSize = size;
10
+ this.dataSource.currentPage = 1;
11
+ this.dataSource.handleNavUpdate('oggetti-collegati');
12
+ // this.dataSource.handlePageNavigation();
13
+ };
14
+ }
15
+ listen() {
16
+ this.innerEvents$.subscribe(({ type, payload }) => {
17
+ switch (type) {
18
+ case 'aw-entita-layout.init':
19
+ this.dataSource.onInit(payload);
20
+ this.configuration = payload.configuration;
21
+ this.route = payload.route;
22
+ this.entityId = this.route.snapshot.params.id || '';
23
+ this.dataSource.currentPage = this.route.snapshot.params.page || 1;
24
+ this.listenRoute(this.entityId);
25
+ // scroll top
26
+ window.scrollTo(0, 0);
27
+ break;
28
+ case 'aw-entita-layout.destroy':
29
+ this.destroyed$.next();
30
+ break;
31
+ case 'aw-entita-layout.showmore':
32
+ if (payload) {
33
+ this.dataSource.handleNavUpdate(payload);
34
+ }
35
+ break;
36
+ default:
37
+ break;
38
+ }
39
+ });
40
+ this.outerEvents$.subscribe(({ type, payload }) => {
41
+ switch (type) {
42
+ case 'aw-entita-nav.click':
43
+ if (payload) {
44
+ this.dataSource.selectedTab = payload;
45
+ this.dataSource.handleNavUpdate(payload);
46
+ }
47
+ break;
48
+ case 'aw-linked-objects.change':
49
+ {
50
+ const options = {
51
+ context: this.dataSource.selectedTab,
52
+ config: this.dataSource.configuration,
53
+ dynamicPagination: {
54
+ total: this.dataSource.myResponse.totalCount,
55
+ },
56
+ page: this.dataSource.currentPage,
57
+ size: this.dataSource.pageSize,
58
+ pagination: true,
59
+ };
60
+ this.dataSource.updateComponent('aw-linked-objects', { items: this.dataSource.myResponse.relatedItems }, options);
61
+ }
62
+ break;
63
+ case 'n7-smart-pagination.change': // changed page size value (pagination)
64
+ this.handlePageSizeChange(payload.value);
65
+ break;
66
+ default:
67
+ break;
68
+ }
69
+ });
70
+ }
71
+ /**
72
+ * Listens to routing events of this layout.
73
+ */
74
+ listenRoute(selectedItem = '', forceReload = false) {
75
+ // listen for "page" query param changes-
76
+ this.route.queryParams.pipe(map((params) => ({
77
+ page: params.page,
78
+ size: params.size
79
+ }))).subscribe(({ page, size }) => {
80
+ if (size) {
81
+ this.dataSource.pageSize = size;
82
+ }
83
+ if (this.dataSource.currentPage !== page) {
84
+ this.dataSource.currentPage = page;
85
+ this.dataSource.handlePageNavigation();
86
+ }
87
+ });
88
+ // get URL parameters with angular's paramMap
89
+ this.route.paramMap.subscribe((params) => {
90
+ // look for id
91
+ if (params.get('id')) {
92
+ if (this.dataSource.currentId === params.get('id') && !forceReload) {
93
+ if (this.dataSource.selectedTab !== params.get('tab')) {
94
+ this.dataSource.handleNavUpdate(params.get('tab'));
95
+ }
96
+ return;
97
+ }
98
+ // get item from response with id === id and return as promise
99
+ this.dataSource.loadItem(params.get('id'), params.get('slug'), params.get('tab'))
100
+ .subscribe((res) => {
101
+ if (res) {
102
+ this.dataSource.loadContent(res);
103
+ // remove the entity of this page
104
+ this.dataSource.updateWidgets(res);
105
+ if (selectedItem) {
106
+ this.emitOuter('selectItem', selectedItem);
107
+ }
108
+ }
109
+ });
110
+ }
111
+ else {
112
+ this.dataSource.loadItem();
113
+ }
114
+ // scroll top
115
+ window.scrollTo(0, 0);
116
+ });
117
+ }
118
+ }
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRhLWxheW91dC5laC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9sYXlvdXRzL2VudGl0YS1sYXlvdXQvZW50aXRhLWxheW91dC5laC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFlBQVk7SUFBbEQ7O1FBQ1UsZUFBVSxHQUFpQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBdUV6Qyx5QkFBb0IsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNyRCwwQ0FBMEM7UUFDNUMsQ0FBQyxDQUFBO0lBa0RILENBQUM7SUF0SFEsTUFBTTtRQUNYLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtZQUNoRCxRQUFRLElBQUksRUFBRTtnQkFDWixLQUFLLHVCQUF1QjtvQkFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ2hDLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztvQkFDM0MsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO29CQUMzQixJ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LENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQzt5QkFDNUM7cUJBQ0Y7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDTjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQzVCO1lBQ0QsYUFBYTtZQUNiLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRIYW5kbGVyIH0gZnJvbSAnQG43LWZyb250ZW5kL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgY2xhc3MgQXdFbnRpdGFMYXlvdXRFSCBleHRlbmRzIEV2ZW50SGFuZGxlciB7XG4gIHByaXZhdGUgZGVzdHJveWVkJDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIGNvbmZpZ3VyYXRpb246IGFueTtcblxuICBwcml2YXRlIHJvdXRlOiBhbnk7XG5cbiAgcHJpdmF0ZSBlbnRpdHlJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBsaXN0ZW4oKSB7XG4gICAgdGhpcy5pbm5lckV2ZW50cyQuc3Vic2NyaWJlKCh7IHR5cGUsIHBheWxvYWQgfSkgPT4ge1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgJ2F3LWVudGl0YS1sYXlvdXQuaW5pdCc6XG4gICAgICAgICAgdGhpcy5kYXRhU291cmNlLm9uSW5pdChwYXlsb2FkKTtcbiAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBwYXlsb2FkLmNvbmZpZ3VyYXRpb247XG4gICAgICAgICAgdGhpcy5yb3V0ZSA9IHBheWxvYWQucm91dGU7XG4gICAgICAgICAgdGhpcy5lbnRpdHlJZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmlkIHx8ICcnO1xuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5jdXJyZW50UGFnZSA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLnBhZ2UgfHwgMTtcbiAgICAgICAgICB0aGlzLmxpc3RlblJvdXRlKHRoaXMuZW50aXR5SWQpO1xuICAgICAgICAgIC8vIHNjcm9sbCB0b3BcbiAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnYXctZW50aXRhLWxheW91dC5kZXN0cm95JzpcbiAgICAgICAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2F3LWVudGl0YS1sYXlvdXQuc2hvd21vcmUnOlxuICAgICAgICAgIGlmIChwYXlsb2FkKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UuaGFuZGxlTmF2VXBkYXRlKHBheWxvYWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5vdXRlckV2ZW50cyQuc3Vic2NyaWJlKCh7IHR5cGUsIHBheWxvYWQgfSkgPT4ge1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgJ2F3LWVudGl0YS1uYXYuY2xpY2snOlxuICAgICAgICAgIGlmIChwYXlsb2FkKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2Uuc2VsZWN0ZWRUYWIgPSBwYXlsb2FkO1xuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlLmhhbmRsZU5hdlVwZGF0ZShwYXlsb2FkKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2F3LWxpbmtlZC1vYmplY3RzLmNoYW5nZSc6IHtcbiAgICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgY29udGV4dDogdGhpcy5kYXRhU291cmNlLnNlbGVjdGVkVGFiLFxuICAgICAgICAgICAgY29uZmlnOiB0aGlzLmRhdGFTb3VyY2UuY29uZmlndXJhdGlvbixcbiAgICAgICAgICAgIGR5bmFtaWNQYWdpbmF0aW9uOiB7XG4gICAgICAgICAgICAgIHRvdGFsOiB0aGlzLmRhdGFTb3VyY2UubXlSZXNwb25zZS50b3RhbENvdW50LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhZ2U6IHRoaXMuZGF0YVNvdXJjZS5jdXJyZW50UGFnZSxcbiAgICAgICAgICAgIHNpemU6IHRoaXMuZGF0YVNvdXJjZS5wYWdlU2l6ZSxcbiAgICAgICAgICAgIHBhZ2luYXRpb246IHRydWUsXG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UudXBkYXRlQ29tcG9uZW50KFxuICAgICAgICAgICAgJ2F3LWxpbmtlZC1vYmplY3RzJyxcbiAgICAgICAgICAgIHsgaXRlbXM6IHRoaXMuZGF0YVNvdXJjZS5teVJlc3BvbnNlLnJlbGF0ZWRJdGVtcyB9LFxuICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICApO1xuICAgICAgICB9IGJyZWFrO1xuICAgICAgICBjYXNlICduNy1zbWFydC1wYWdpbmF0aW9uLmNoYW5nZSc6IC8vIGNoYW5nZWQgcGFnZSBzaXplIHZhbHVlIChwYWdpbmF0aW9uKVxuICAgICAgICAgIHRoaXMuaGFuZGxlUGFnZVNpemVDaGFuZ2UocGF5bG9hZC52YWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVBhZ2VTaXplQ2hhbmdlID0gKHNpemUpID0+IHtcbiAgICB0aGlzLmRhdGFTb3VyY2UucGFnZVNpemUgPSBzaXplO1xuICAgIHRoaXMuZGF0YVNvdXJjZS5jdXJyZW50UGFnZSA9IDE7XG4gICAgdGhpcy5kYXRhU291cmNlLmhhbmRsZU5hdlVwZGF0ZSgnb2dnZXR0aS1jb2xsZWdhdGknKTtcbiAgICAvLyB0aGlzLmRhdGFTb3VyY2UuaGFuZGxlUGFnZU5hdmlnYXRpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW5zIHRvIHJvdXRpbmcgZXZlbnRzIG9mIHRoaXMgbGF5b3V0LlxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Sb3V0ZShzZWxlY3RlZEl0ZW0gPSAnJywgZm9yY2VSZWxvYWQgPSBmYWxzZSkge1xuICAgIC8vIGxpc3RlbiBmb3IgXCJwYWdlXCIgcXVlcnkgcGFyYW0gY2hhbmdlcy1cbiAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnBpcGUoXG4gICAgICBtYXAoKHBhcmFtczogYW55KSA9PiAoe1xuICAgICAgICBwYWdlOiBwYXJhbXMucGFnZSxcbiAgICAgICAgc2l6ZTogcGFyYW1zLnNpemVcbiAgICAgIH0pKSxcbiAgICApLnN1YnNjcmliZSgoeyBwYWdlLCBzaXplIH0pID0+IHtcbiAgICAgIGlmIChzaXplKSB7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5wYWdlU2l6ZSA9IHNpemU7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5kYXRhU291cmNlLmN1cnJlbnRQYWdlICE9PSBwYWdlKSB7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5jdXJyZW50UGFnZSA9IHBhZ2U7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5oYW5kbGVQYWdlTmF2aWdhdGlvbigpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIC8vIGdldCBVUkwgcGFyYW1ldGVycyB3aXRoIGFuZ3VsYXIncyBwYXJhbU1hcFxuICAgIHRoaXMucm91dGUucGFyYW1NYXAuc3Vic2NyaWJlKChwYXJhbXMpID0+IHtcbiAgICAgIC8vIGxvb2sgZm9yIGlkXG4gICAgICBpZiAocGFyYW1zLmdldCgnaWQnKSkge1xuICAgICAgICBpZiAodGhpcy5kYXRhU291cmNlLmN1cnJlbnRJZCA9PT0gcGFyYW1zLmdldCgnaWQnKSAmJiAhZm9yY2VSZWxvYWQpIHtcbiAgICAgICAgICBpZiAodGhpcy5kYXRhU291cmNlLnNlbGVjdGVkVGFiICE9PSBwYXJhbXMuZ2V0KCd0YWInKSkge1xuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlLmhhbmRsZU5hdlVwZGF0ZShwYXJhbXMuZ2V0KCd0YWInKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBnZXQgaXRlbSBmcm9tIHJlc3BvbnNlIHdpdGggaWQgPT09IGlkIGFuZCByZXR1cm4gYXMgcHJvbWlzZVxuICAgICAgICB0aGlzLmRhdGFTb3VyY2UubG9hZEl0ZW0ocGFyYW1zLmdldCgnaWQnKSwgcGFyYW1zLmdldCgnc2x1ZycpLCBwYXJhbXMuZ2V0KCd0YWInKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlLmxvYWRDb250ZW50KHJlcyk7XG4gICAgICAgICAgICAgIC8vIHJlbW92ZSB0aGUgZW50aXR5IG9mIHRoaXMgcGFnZVxuICAgICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UudXBkYXRlV2lkZ2V0cyhyZXMpO1xuICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0T3V0ZXIoJ3NlbGVjdEl0ZW0nLCBzZWxlY3RlZEl0ZW0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UubG9hZEl0ZW0oKTtcbiAgICAgIH1cbiAgICAgIC8vIHNjcm9sbCB0b3BcbiAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcbiAgICB9KTtcbiAgfVxufVxuIl19