@net7/boilerplate-arianna 4.9.7 → 5.0.0

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 (216) hide show
  1. package/esm2022/lib/components/aw-facets-wrapper/aw-facets-wrapper.mjs +29 -0
  2. package/{esm2020 → esm2022}/lib/components/bubble-chart-wrapper/bubble-chart-wrapper.mjs +4 -4
  3. package/{esm2020 → esm2022}/lib/components/chart-tippy/chart-tippy.mjs +4 -4
  4. package/{esm2020 → esm2022}/lib/components/extended-tree/extended-tree.mjs +4 -4
  5. package/{esm2020 → esm2022}/lib/components/gallery-breadcrumbs-tooltip/gallery-breadcrumbs-tooltip.mjs +4 -4
  6. package/esm2022/lib/components/pdf-viewer/pdf-viewer.mjs +31 -0
  7. package/esm2022/lib/components/scheda-dropdown/scheda-dropdown.mjs +26 -0
  8. package/{esm2020 → esm2022}/lib/components/scheda-image-navigator/scheda-image-navigator.mjs +4 -4
  9. package/{esm2020 → esm2022}/lib/components/scheda-search/scheda-search.mjs +4 -4
  10. package/esm2022/lib/components/smart-breadcrumbs/smart-breadcrumbs.mjs +82 -0
  11. package/esm2022/lib/config/apollo.config.mjs +738 -0
  12. package/esm2022/lib/data-sources/autocomplete-wrapper.ds.mjs +48 -0
  13. package/esm2022/lib/data-sources/aw-facets-wrapper.ds.mjs +162 -0
  14. package/esm2022/lib/data-sources/bubble-chart.ds.mjs +95 -0
  15. package/esm2022/lib/data-sources/carousel.ds.mjs +74 -0
  16. package/esm2022/lib/data-sources/entita-nav.ds.mjs +74 -0
  17. package/esm2022/lib/data-sources/extended-tree.ds.mjs +157 -0
  18. package/esm2022/lib/data-sources/gallery-results.ds.mjs +103 -0
  19. package/esm2022/lib/data-sources/home-autocomplete.ds.mjs +80 -0
  20. package/esm2022/lib/data-sources/home-facets-wrapper.ds.mjs +190 -0
  21. package/esm2022/lib/data-sources/linked-objects.ds.mjs +219 -0
  22. package/{esm2020 → esm2022}/lib/data-sources/map.ds.mjs +1 -1
  23. package/{esm2020 → esm2022}/lib/data-sources/related-entities.ds.mjs +2 -2
  24. package/{esm2020 → esm2022}/lib/data-sources/scheda-breadcrumbs.ds.mjs +1 -1
  25. package/{esm2020 → esm2022}/lib/data-sources/scheda-dropdown.ds.mjs +1 -1
  26. package/esm2022/lib/data-sources/scheda-image-navigator.ds.mjs +82 -0
  27. package/{esm2020 → esm2022}/lib/data-sources/scheda-image.ds.mjs +1 -1
  28. package/esm2022/lib/data-sources/scheda-pdf.ds.mjs +54 -0
  29. package/esm2022/lib/data-sources/scheda-search.ds.mjs +141 -0
  30. package/{esm2020 → esm2022}/lib/data-sources/sidebar-header.ds.mjs +1 -1
  31. package/esm2022/lib/data-sources/timeline.ds.mjs +106 -0
  32. package/esm2022/lib/data-sources/tree.ds.mjs +154 -0
  33. package/esm2022/lib/event-handlers/autocomplete-wrapper.eh.mjs +18 -0
  34. package/esm2022/lib/event-handlers/aw-facets-wrapper.eh.mjs +88 -0
  35. package/esm2022/lib/event-handlers/bubble-chart.eh.mjs +98 -0
  36. package/esm2022/lib/event-handlers/chart-tippy.eh.mjs +64 -0
  37. package/{esm2020 → esm2022}/lib/event-handlers/entita-nav.eh.mjs +1 -1
  38. package/esm2022/lib/event-handlers/extended-tree.eh.mjs +23 -0
  39. package/esm2022/lib/event-handlers/gallery-results.eh.mjs +38 -0
  40. package/esm2022/lib/event-handlers/hero.eh.mjs +25 -0
  41. package/{esm2020 → esm2022}/lib/event-handlers/home-autocomplete.eh.mjs +1 -1
  42. package/esm2022/lib/event-handlers/home-facets-wrapper.eh.mjs +125 -0
  43. package/{esm2020 → esm2022}/lib/event-handlers/home-item-tags-wrapper.eh.mjs +1 -1
  44. package/esm2022/lib/event-handlers/linked-objects.eh.mjs +60 -0
  45. package/esm2022/lib/event-handlers/map.eh.mjs +23 -0
  46. package/{esm2020 → esm2022}/lib/event-handlers/scheda-breadcrumbs.eh.mjs +1 -1
  47. package/esm2022/lib/event-handlers/scheda-dropdown.eh.mjs +17 -0
  48. package/esm2022/lib/event-handlers/scheda-image-navigator.eh.mjs +18 -0
  49. package/esm2022/lib/event-handlers/scheda-pdf.eh.mjs +14 -0
  50. package/{esm2020 → esm2022}/lib/event-handlers/scheda-search.eh.mjs +1 -1
  51. package/{esm2020 → esm2022}/lib/event-handlers/sidebar-header.eh.mjs +1 -1
  52. package/esm2022/lib/event-handlers/timeline.eh.mjs +46 -0
  53. package/esm2022/lib/event-handlers/tree.eh.mjs +119 -0
  54. package/esm2022/lib/helpers/metadata.helper.mjs +89 -0
  55. package/esm2022/lib/helpers/node.helper.mjs +14 -0
  56. package/esm2022/lib/helpers/title.helper.mjs +12 -0
  57. package/esm2022/lib/layouts/collection-layout/collection-layout.ds.mjs +185 -0
  58. package/esm2022/lib/layouts/collection-layout/collection-layout.eh.mjs +27 -0
  59. package/{esm2020 → esm2022}/lib/layouts/collection-layout/collection-layout.mjs +5 -5
  60. package/esm2022/lib/layouts/entita-layout/entita-layout.ds.mjs +320 -0
  61. package/esm2022/lib/layouts/entita-layout/entita-layout.eh.mjs +119 -0
  62. package/{esm2020 → esm2022}/lib/layouts/entita-layout/entita-layout.mjs +5 -5
  63. package/{esm2020 → esm2022}/lib/layouts/gallery-layout/gallery-facets.config.mjs +3 -3
  64. package/esm2022/lib/layouts/gallery-layout/gallery-layout.ds.mjs +48 -0
  65. package/{esm2020 → esm2022}/lib/layouts/gallery-layout/gallery-layout.mjs +5 -5
  66. package/esm2022/lib/layouts/home-layout/home-layout.ds.mjs +298 -0
  67. package/esm2022/lib/layouts/home-layout/home-layout.eh.mjs +245 -0
  68. package/{esm2020 → esm2022}/lib/layouts/home-layout/home-layout.mjs +5 -5
  69. package/esm2022/lib/layouts/map-layout/map-layout.ds.mjs +122 -0
  70. package/esm2022/lib/layouts/map-layout/map-layout.eh.mjs +44 -0
  71. package/{esm2020 → esm2022}/lib/layouts/map-layout/map-layout.mjs +5 -5
  72. package/esm2022/lib/layouts/scheda-layout/scheda-layout.ds.mjs +472 -0
  73. package/esm2022/lib/layouts/scheda-layout/scheda-layout.eh.mjs +347 -0
  74. package/{esm2020 → esm2022}/lib/layouts/scheda-layout/scheda-layout.mjs +5 -5
  75. package/{esm2020 → esm2022}/lib/layouts/search-layout/search-facets.config.mjs +3 -3
  76. package/esm2022/lib/layouts/search-layout/search-layout.ds.mjs +306 -0
  77. package/esm2022/lib/layouts/search-layout/search-layout.eh.mjs +175 -0
  78. package/{esm2020 → esm2022}/lib/layouts/search-layout/search-layout.mjs +5 -5
  79. package/esm2022/lib/layouts/timeline-layout/timeline-layout.ds.mjs +143 -0
  80. package/esm2022/lib/layouts/timeline-layout/timeline-layout.eh.mjs +41 -0
  81. package/{esm2020 → esm2022}/lib/layouts/timeline-layout/timeline-layout.mjs +5 -5
  82. package/{esm2020 → esm2022}/lib/n7-boilerplate-arianna.module.mjs +48 -48
  83. package/{esm2020 → esm2022}/lib/search/aw-facet-inputs/aw-facet-input-checkbox.mjs +1 -1
  84. package/esm2022/lib/search/aw-facet-inputs/aw-facet-input-link.mjs +89 -0
  85. package/esm2022/lib/search/aw-facet-inputs/aw-facet-input.mjs +30 -0
  86. package/esm2022/lib/search/aw-search.model.mjs +331 -0
  87. package/esm2022/lib/search/aw-search.service.mjs +42 -0
  88. package/esm2022/lib/search/entity-links.helper.mjs +126 -0
  89. package/{fesm2020 → fesm2022}/net7-boilerplate-arianna.mjs +170 -159
  90. package/fesm2022/net7-boilerplate-arianna.mjs.map +1 -0
  91. package/lib/components/aw-facets-wrapper/aw-facets-wrapper.d.ts +1 -1
  92. package/lib/components/bubble-chart-wrapper/bubble-chart-wrapper.d.ts +1 -1
  93. package/lib/components/chart-tippy/chart-tippy.d.ts +1 -1
  94. package/lib/components/extended-tree/extended-tree.d.ts +2 -2
  95. package/lib/components/gallery-breadcrumbs-tooltip/gallery-breadcrumbs-tooltip.d.ts +2 -2
  96. package/lib/components/pdf-viewer/pdf-viewer.d.ts +3 -3
  97. package/lib/components/scheda-dropdown/scheda-dropdown.d.ts +2 -2
  98. package/lib/components/scheda-image-navigator/scheda-image-navigator.d.ts +2 -2
  99. package/lib/components/scheda-search/scheda-search.d.ts +2 -2
  100. package/lib/components/smart-breadcrumbs/smart-breadcrumbs.d.ts +1 -1
  101. package/lib/config-types/arianna/app.d.ts +4 -4
  102. package/lib/config-types/arianna/layouts.d.ts +1 -1
  103. package/lib/data-sources/carousel.ds.d.ts +2 -2
  104. package/lib/data-sources/extended-tree.ds.d.ts +2 -2
  105. package/lib/layouts/collection-layout/collection-layout.d.ts +1 -1
  106. package/lib/layouts/collection-layout/collection-layout.types.d.ts +2 -2
  107. package/lib/layouts/entita-layout/entita-layout.d.ts +1 -1
  108. package/lib/layouts/entita-layout/entita-layout.types.d.ts +2 -2
  109. package/lib/layouts/gallery-layout/gallery-layout.d.ts +1 -1
  110. package/lib/layouts/home-layout/home-layout.d.ts +1 -1
  111. package/lib/layouts/map-layout/map-layout.d.ts +1 -1
  112. package/lib/layouts/map-layout/map-layout.ds.d.ts +1 -1
  113. package/lib/layouts/scheda-layout/scheda-layout.d.ts +1 -1
  114. package/lib/layouts/search-layout/search-layout.d.ts +1 -1
  115. package/lib/layouts/search-layout/search-layout.ds.d.ts +1 -1
  116. package/lib/layouts/timeline-layout/timeline-layout.d.ts +1 -1
  117. package/lib/layouts/timeline-layout/timeline-layout.ds.d.ts +1 -1
  118. package/lib/search/aw-search.model.d.ts +3 -3
  119. package/package.json +5 -11
  120. package/esm2020/lib/components/aw-facets-wrapper/aw-facets-wrapper.mjs +0 -29
  121. package/esm2020/lib/components/pdf-viewer/pdf-viewer.mjs +0 -31
  122. package/esm2020/lib/components/scheda-dropdown/scheda-dropdown.mjs +0 -26
  123. package/esm2020/lib/components/smart-breadcrumbs/smart-breadcrumbs.mjs +0 -82
  124. package/esm2020/lib/config/apollo.config.mjs +0 -738
  125. package/esm2020/lib/data-sources/autocomplete-wrapper.ds.mjs +0 -48
  126. package/esm2020/lib/data-sources/aw-facets-wrapper.ds.mjs +0 -162
  127. package/esm2020/lib/data-sources/bubble-chart.ds.mjs +0 -95
  128. package/esm2020/lib/data-sources/carousel.ds.mjs +0 -74
  129. package/esm2020/lib/data-sources/entita-nav.ds.mjs +0 -74
  130. package/esm2020/lib/data-sources/extended-tree.ds.mjs +0 -157
  131. package/esm2020/lib/data-sources/gallery-results.ds.mjs +0 -103
  132. package/esm2020/lib/data-sources/home-autocomplete.ds.mjs +0 -80
  133. package/esm2020/lib/data-sources/home-facets-wrapper.ds.mjs +0 -190
  134. package/esm2020/lib/data-sources/linked-objects.ds.mjs +0 -219
  135. package/esm2020/lib/data-sources/scheda-image-navigator.ds.mjs +0 -82
  136. package/esm2020/lib/data-sources/scheda-pdf.ds.mjs +0 -54
  137. package/esm2020/lib/data-sources/scheda-search.ds.mjs +0 -141
  138. package/esm2020/lib/data-sources/timeline.ds.mjs +0 -106
  139. package/esm2020/lib/data-sources/tree.ds.mjs +0 -154
  140. package/esm2020/lib/event-handlers/autocomplete-wrapper.eh.mjs +0 -18
  141. package/esm2020/lib/event-handlers/aw-facets-wrapper.eh.mjs +0 -88
  142. package/esm2020/lib/event-handlers/bubble-chart.eh.mjs +0 -98
  143. package/esm2020/lib/event-handlers/chart-tippy.eh.mjs +0 -64
  144. package/esm2020/lib/event-handlers/extended-tree.eh.mjs +0 -23
  145. package/esm2020/lib/event-handlers/gallery-results.eh.mjs +0 -38
  146. package/esm2020/lib/event-handlers/hero.eh.mjs +0 -25
  147. package/esm2020/lib/event-handlers/home-facets-wrapper.eh.mjs +0 -125
  148. package/esm2020/lib/event-handlers/linked-objects.eh.mjs +0 -60
  149. package/esm2020/lib/event-handlers/map.eh.mjs +0 -23
  150. package/esm2020/lib/event-handlers/scheda-dropdown.eh.mjs +0 -17
  151. package/esm2020/lib/event-handlers/scheda-image-navigator.eh.mjs +0 -18
  152. package/esm2020/lib/event-handlers/scheda-pdf.eh.mjs +0 -14
  153. package/esm2020/lib/event-handlers/timeline.eh.mjs +0 -46
  154. package/esm2020/lib/event-handlers/tree.eh.mjs +0 -119
  155. package/esm2020/lib/helpers/metadata.helper.mjs +0 -89
  156. package/esm2020/lib/helpers/node.helper.mjs +0 -14
  157. package/esm2020/lib/helpers/title.helper.mjs +0 -12
  158. package/esm2020/lib/layouts/collection-layout/collection-layout.ds.mjs +0 -185
  159. package/esm2020/lib/layouts/collection-layout/collection-layout.eh.mjs +0 -27
  160. package/esm2020/lib/layouts/entita-layout/entita-layout.ds.mjs +0 -320
  161. package/esm2020/lib/layouts/entita-layout/entita-layout.eh.mjs +0 -119
  162. package/esm2020/lib/layouts/gallery-layout/gallery-layout.ds.mjs +0 -48
  163. package/esm2020/lib/layouts/home-layout/home-layout.ds.mjs +0 -298
  164. package/esm2020/lib/layouts/home-layout/home-layout.eh.mjs +0 -245
  165. package/esm2020/lib/layouts/map-layout/map-layout.ds.mjs +0 -122
  166. package/esm2020/lib/layouts/map-layout/map-layout.eh.mjs +0 -44
  167. package/esm2020/lib/layouts/scheda-layout/scheda-layout.ds.mjs +0 -472
  168. package/esm2020/lib/layouts/scheda-layout/scheda-layout.eh.mjs +0 -347
  169. package/esm2020/lib/layouts/search-layout/search-layout.ds.mjs +0 -306
  170. package/esm2020/lib/layouts/search-layout/search-layout.eh.mjs +0 -175
  171. package/esm2020/lib/layouts/timeline-layout/timeline-layout.ds.mjs +0 -143
  172. package/esm2020/lib/layouts/timeline-layout/timeline-layout.eh.mjs +0 -41
  173. package/esm2020/lib/search/aw-facet-inputs/aw-facet-input-link.mjs +0 -89
  174. package/esm2020/lib/search/aw-facet-inputs/aw-facet-input.mjs +0 -30
  175. package/esm2020/lib/search/aw-search.model.mjs +0 -331
  176. package/esm2020/lib/search/aw-search.service.mjs +0 -42
  177. package/esm2020/lib/search/entity-links.helper.mjs +0 -126
  178. package/fesm2015/net7-boilerplate-arianna.mjs +0 -8551
  179. package/fesm2015/net7-boilerplate-arianna.mjs.map +0 -1
  180. package/fesm2020/net7-boilerplate-arianna.mjs.map +0 -1
  181. /package/{esm2020 → esm2022}/lib/components/index.mjs +0 -0
  182. /package/{esm2020 → esm2022}/lib/config-types/arianna/app.mjs +0 -0
  183. /package/{esm2020 → esm2022}/lib/config-types/arianna/index.mjs +0 -0
  184. /package/{esm2020 → esm2022}/lib/config-types/arianna/layouts.mjs +0 -0
  185. /package/{esm2020 → esm2022}/lib/config-types/index.mjs +0 -0
  186. /package/{esm2020 → esm2022}/lib/data-sources/chart-tippy.ds.mjs +0 -0
  187. /package/{esm2020 → esm2022}/lib/data-sources/entita-metadata-viewer.ds.mjs +0 -0
  188. /package/{esm2020 → esm2022}/lib/data-sources/hero.ds.mjs +0 -0
  189. /package/{esm2020 → esm2022}/lib/data-sources/home-hero-patrimonio.ds.mjs +0 -0
  190. /package/{esm2020 → esm2022}/lib/data-sources/home-item-tags-wrapper.ds.mjs +0 -0
  191. /package/{esm2020 → esm2022}/lib/data-sources/index.mjs +0 -0
  192. /package/{esm2020 → esm2022}/lib/data-sources/scheda-inner-title.ds.mjs +0 -0
  193. /package/{esm2020 → esm2022}/lib/data-sources/scheda-metadata.ds.mjs +0 -0
  194. /package/{esm2020 → esm2022}/lib/data-sources/search-layout-tabs.ds.mjs +0 -0
  195. /package/{esm2020 → esm2022}/lib/data-sources/table.ds.mjs +0 -0
  196. /package/{esm2020 → esm2022}/lib/event-handlers/home-hero-patrimonio.eh.mjs +0 -0
  197. /package/{esm2020 → esm2022}/lib/event-handlers/index.mjs +0 -0
  198. /package/{esm2020 → esm2022}/lib/event-handlers/search-layout-tabs.eh.mjs +0 -0
  199. /package/{esm2020 → esm2022}/lib/event-handlers/table.eh.mjs +0 -0
  200. /package/{esm2020 → esm2022}/lib/layouts/collection-layout/collection-layout.config.mjs +0 -0
  201. /package/{esm2020 → esm2022}/lib/layouts/collection-layout/collection-layout.types.mjs +0 -0
  202. /package/{esm2020 → esm2022}/lib/layouts/entita-layout/entita-layout.config.mjs +0 -0
  203. /package/{esm2020 → esm2022}/lib/layouts/entita-layout/entita-layout.types.mjs +0 -0
  204. /package/{esm2020 → esm2022}/lib/layouts/gallery-layout/gallery-layout.config.mjs +0 -0
  205. /package/{esm2020 → esm2022}/lib/layouts/gallery-layout/gallery-layout.eh.mjs +0 -0
  206. /package/{esm2020 → esm2022}/lib/layouts/home-layout/home-layout.config.mjs +0 -0
  207. /package/{esm2020 → esm2022}/lib/layouts/index.mjs +0 -0
  208. /package/{esm2020 → esm2022}/lib/layouts/map-layout/map-layout.config.mjs +0 -0
  209. /package/{esm2020 → esm2022}/lib/layouts/scheda-layout/scheda-layout.config.mjs +0 -0
  210. /package/{esm2020 → esm2022}/lib/layouts/search-layout/search-layout.config.mjs +0 -0
  211. /package/{esm2020 → esm2022}/lib/layouts/timeline-layout/timeline-layout.config.mjs +0 -0
  212. /package/{esm2020 → esm2022}/lib/search/aw-facet-inputs/aw-facet-input-select.mjs +0 -0
  213. /package/{esm2020 → esm2022}/lib/search/aw-facet-inputs/aw-facet-input-text.mjs +0 -0
  214. /package/{esm2020 → esm2022}/lib/search/aw-facet-inputs/index.mjs +0 -0
  215. /package/{esm2020 → esm2022}/net7-boilerplate-arianna.mjs +0 -0
  216. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -0,0 +1,157 @@
1
+ import { DataSource } from '@net7/core';
2
+ import { helpers } from '@net7/boilerplate-common';
3
+ import nodeHelper from '../helpers/node.helper';
4
+ const PAGE_LIMIT = 5;
5
+ const SEARCH_OPEN_CLASS = 'search-is-open';
6
+ export class AwExtendedTreeDS extends DataSource {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.searchIsOpen = false;
10
+ this.transform = ({ parent, nodes }) => {
11
+ const { totalCount } = nodes;
12
+ const { title, params, basePath, lite, configKeys, fallback, } = this.options;
13
+ const page = params.page ? +params.page : 1;
14
+ const limit = params.limit ? +params.limit : 10;
15
+ this.searchIsOpen = (this.searchIsOpen
16
+ || (typeof params.query === 'string' && params.query.trim()));
17
+ // header
18
+ const header = {
19
+ title: {
20
+ main: {
21
+ text: `${title} <span class="aw-extended-tree__total">(${totalCount})</span>`,
22
+ },
23
+ secondary: {
24
+ text: `In: "${parent.label}"`
25
+ }
26
+ },
27
+ actions: {
28
+ search: {
29
+ placeholder: 'Cerca negli oggetti culturali',
30
+ payload: 'search-input',
31
+ button: {
32
+ text: '',
33
+ payload: 'search-button'
34
+ }
35
+ },
36
+ },
37
+ classes: this.searchIsOpen ? SEARCH_OPEN_CLASS : ''
38
+ };
39
+ // items
40
+ const items = (nodes.items || []).map((item) => ({
41
+ icon: nodeHelper.getNodeIcon(configKeys, item),
42
+ thumbnail: lite ? null : item.img,
43
+ label: item.label,
44
+ anchor: {
45
+ href: `${basePath}/${item.id}/${helpers.slugify(item.label)}`
46
+ }
47
+ }));
48
+ // pagination
49
+ const pagination = this.getPagination(page, totalCount, limit);
50
+ // page input
51
+ const pageInput = {
52
+ id: 'page-input',
53
+ type: 'number',
54
+ // value: page,
55
+ placeholder: 'pag',
56
+ inputPayload: 'page-input-change',
57
+ enterPayload: 'page-input-enter',
58
+ };
59
+ // results limit select
60
+ const limitSelect = {
61
+ id: 'limit-select',
62
+ label: 'Numero di risultati',
63
+ options: [10, 25, 50].map((size) => ({
64
+ label: `${size}`,
65
+ value: size,
66
+ selected: size === limit
67
+ })),
68
+ payload: 'limit-select',
69
+ };
70
+ return {
71
+ header,
72
+ items,
73
+ pagination,
74
+ pageInput,
75
+ limitSelect,
76
+ fallback: nodes ? fallback : null,
77
+ loading: false,
78
+ };
79
+ };
80
+ }
81
+ setLoading(loading) {
82
+ this.output.loading = loading;
83
+ }
84
+ toggleSearch() {
85
+ this.searchIsOpen = !this.searchIsOpen;
86
+ const { header } = this.output;
87
+ header.classes = this.searchIsOpen ? SEARCH_OPEN_CLASS : '';
88
+ // trigger focus
89
+ if (this.searchIsOpen) {
90
+ setTimeout(() => {
91
+ const inputEl = document.querySelector('.aw-extended-tree input.n7-inner-title__search-bar');
92
+ inputEl.focus();
93
+ }, 500);
94
+ }
95
+ }
96
+ getPagination(page, totalCount, limit) {
97
+ const pages = Math.ceil(totalCount / limit);
98
+ return {
99
+ links: this.getPaginationLinks(page, pages),
100
+ first: {
101
+ anchor: {
102
+ payload: 1,
103
+ },
104
+ classes: page === 1 ? 'is-disabled' : '',
105
+ },
106
+ prev: {
107
+ anchor: {
108
+ payload: page === 1 ? 1 : page - 1,
109
+ },
110
+ classes: page === 1 ? 'is-disabled' : ''
111
+ },
112
+ next: {
113
+ anchor: {
114
+ payload: page === pages ? pages : page + 1,
115
+ },
116
+ classes: page === pages ? 'is-disabled' : '',
117
+ },
118
+ last: {
119
+ anchor: {
120
+ payload: pages,
121
+ },
122
+ classes: page === pages ? 'is-disabled' : '',
123
+ }
124
+ };
125
+ }
126
+ getPaginationLinks(page, pages) {
127
+ let firstItem = 1;
128
+ const links = [];
129
+ const limit = PAGE_LIMIT;
130
+ let last = limit;
131
+ if (pages > limit) {
132
+ const steps = Math.floor(limit / 2);
133
+ if (page > steps) {
134
+ firstItem = page - steps;
135
+ }
136
+ if ((page + steps) > pages) {
137
+ firstItem = (pages - limit) + 1;
138
+ }
139
+ }
140
+ else {
141
+ last = pages;
142
+ }
143
+ let i;
144
+ for (i = 0; i < last; i += 1) {
145
+ const itemPage = firstItem + i;
146
+ links.push({
147
+ text: itemPage,
148
+ classes: itemPage === page ? 'is-disabled' : '',
149
+ anchor: {
150
+ payload: itemPage,
151
+ }
152
+ });
153
+ }
154
+ return links;
155
+ }
156
+ }
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWQtdHJlZS5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9kYXRhLXNvdXJjZXMvZXh0ZW5kZWQtdHJlZS5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVuRCxPQUFPLFVBQVUsTUFBTSx3QkFBd0IsQ0FBQztBQXFCaEQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0FBRXJCLE1BQU0saUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7QUFFM0MsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFVBQVU7SUFBaEQ7O1FBQ1MsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFbEIsY0FBUyxHQUFHLENBQ3BCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFDaUMsRUFDOUIsRUFBRTtZQUNwQixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsS0FBSyxDQUFDO1lBQzdCLE1BQU0sRUFDSixLQUFLLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFDUixJQUFJLEVBQ0osVUFBVSxFQUNWLFFBQVEsR0FDVCxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDakIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUNsQixJQUFJLENBQUMsWUFBWTttQkFDZCxDQUFDLE9BQU8sTUFBTSxDQUFDLEtB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QUFDLEVBQUUsQ0FBQztZQUM3QixNQUFNLFFBQVEsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1lBQy9CLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ1QsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsT0FBTyxFQUFFLFFBQVEsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDL0MsTUFBTSxFQUFFO29CQUNOLE9BQU8sRUFBRSxRQUFRO2lCQUNsQjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJ1dHRvbiwgSW5uZXJUaXRsZURhdGEsIElucHV0U2VsZWN0RGF0YSwgSW5wdXRUZXh0RGF0YSwgUGFnaW5hdGlvbkRhdGFcbn0gZnJvbSAnQG5ldDcvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQG5ldDcvY29yZSc7XG5pbXBvcnQgeyBoZWxwZXJzIH0gZnJvbSAnQG5ldDcvYm9pbGVycGxhdGUtY29tbW9uJztcbmltcG9ydCB7IEV4dGVuZGVkVHJlZURhdGEgfSBmcm9tICcuLi9jb21wb25lbnRzL2V4dGVuZGVkLXRyZWUvZXh0ZW5kZWQtdHJlZSc7XG5pbXBvcnQgbm9kZUhlbHBlciBmcm9tICcuLi9oZWxwZXJzL25vZGUuaGVscGVyJztcblxudHlwZSBQYXJlbnRSZXNwb25zZSA9IHtcbiAgbGFiZWw6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgTm9kZXNSZXNwb25zZSA9IHtcbiAgaXRlbXM6IHtcbiAgICBpbWc/OiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBpZDogc3RyaW5nO1xuICAgIGRvY3VtZW50X3R5cGU6IHN0cmluZztcbiAgICBkb2N1bWVudF9jbGFzc2lmaWNhdGlvbjogc3RyaW5nO1xuICAgIGJyZWFkY3J1bWJzPzoge1xuICAgICAgbGFiZWw6IHN0cmluZztcbiAgICAgIGxpbms6IHN0cmluZztcbiAgICB9W107XG4gIH1bXTtcbiAgdG90YWxDb3VudDogbnVtYmVyO1xufVxuXG5jb25zdCBQQUdFX0xJTUlUID0gNTtcblxuY29uc3QgU0VBUkNIX09QRU5fQ0xBU1MgPSAnc2VhcmNoLWlzLW9wZW4nO1xuXG5leHBvcnQgY2xhc3MgQXdFeHRlbmRlZFRyZWVEUyBleHRlbmRzIERhdGFTb3VyY2Uge1xuICBwdWJsaWMgc2VhcmNoSXNPcGVuID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIHRyYW5zZm9ybSA9IChcbiAgICB7IHBhcmVudCwgbm9kZXMgfTpcbiAgICB7IHBhcmVudDogUGFyZW50UmVzcG9uc2U7IG5vZGVzOiBOb2Rlc1Jlc3BvbnNlIH1cbiAgKTogRXh0ZW5kZWRUcmVlRGF0YSA9PiB7XG4gICAgY29uc3QgeyB0b3RhbENvdW50IH0gPSBub2RlcztcbiAgICBjb25zdCB7XG4gICAgICB0aXRsZSxcbiAgICAgIHBhcmFtcyxcbiAgICAgIGJhc2VQYXRoLFxuICAgICAgbGl0ZSxcbiAgICAgIGNvbmZpZ0tleXMsXG4gICAgICBmYWxsYmFjayxcbiAgICB9ID0gdGhpcy5vcHRpb25zO1xuICAgIGNvbnN0IHBhZ2UgPSBwYXJhbXMucGFnZSA/ICtwYXJhbXMucGFnZSA6IDE7XG4gICAgY29uc3QgbGltaXQgPSBwYXJhbXMubGltaXQgPyArcGFyYW1zLmxpbWl0IDogMTA7XG4gICAgdGhpcy5zZWFyY2hJc09wZW4gPSAoXG4gICAgICB0aGlzLnNlYXJjaElzT3BlblxuICAgICAgfHwgKHR5cGVvZiBwYXJhbXMucXVlcnkgPT09ICdzdHJpbmcnICYmIHBhcmFtcy5xdWVyeS50cmltKCkpXG4gICAgKTtcbiAgICAvLyBoZWFkZXJcbiAgICBjb25zdCBoZWFkZXI6IElubmVyVGl0bGVEYXRhID0ge1xuICAgICAgdGl0bGU6IHtcbiAgICAgICAgbWFpbjoge1xuICAgICAgICAgIHRleHQ6IGAke3RpdGxlfSA8c3BhbiBjbGFzcz1cImF3LWV4dGVuZGVkLXRyZWVfX3RvdGFsXCI+KCR7dG90YWxDb3VudH0pPC9zcGFuPmAsXG4gICAgICAgIH0sXG4gICAgICAgIHNlY29uZGFyeToge1xuICAgICAgICAgIHRleHQ6IGBJbjogXCIke3BhcmVudC5sYWJlbH1cImBcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGFjdGlvbnM6IHtcbiAgICAgICAgc2VhcmNoOiB7XG4gICAgICAgICAgcGxhY2Vob2xkZXI6ICdDZXJjYSBuZWdsaSBvZ2dldHRpIGN1bHR1cmFsaScsXG4gICAgICAgICAgcGF5bG9hZDogJ3NlYXJjaC1pbnB1dCcsXG4gICAgICAgICAgYnV0dG9uOiB7XG4gICAgICAgICAgICB0ZXh0OiAnJyxcbiAgICAgICAgICAgIHBheWxvYWQ6ICdzZWFyY2gtYnV0dG9uJ1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBjbGFzc2VzOiB0aGlzLnNlYXJjaElzT3BlbiA/IFNFQVJDSF9PUEVOX0NMQVNTIDogJydcbiAgICB9O1xuICAgIC8vIGl0ZW1zXG4gICAgY29uc3QgaXRlbXMgPSAobm9kZXMuaXRlbXMgfHwgW10pLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgIGljb246IG5vZGVIZWxwZXIuZ2V0Tm9kZUljb24oY29uZmlnS2V5cywgaXRlbSksXG4gICAgICB0aHVtYm5haWw6IGxpdGUgPyBudWxsIDogaXRlbS5pbWcsXG4gICAgICBsYWJlbDogaXRlbS5sYWJlbCxcbiAgICAgIGFuY2hvcjoge1xuICAgICAgICBocmVmOiBgJHtiYXNlUGF0aH0vJHtpdGVtLmlkfS8ke2hlbHBlcnMuc2x1Z2lmeShpdGVtLmxhYmVsKX1gXG4gICAgICB9XG4gICAgfSkpO1xuICAgIC8vIHBhZ2luYXRpb25cbiAgICBjb25zdCBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uRGF0YSA9IHRoaXMuZ2V0UGFnaW5hdGlvbihwYWdlLCB0b3RhbENvdW50LCBsaW1pdCk7XG4gICAgLy8gcGFnZSBpbnB1dFxuICAgIGNvbnN0IHBhZ2VJbnB1dDogSW5wdXRUZXh0RGF0YSA9IHtcbiAgICAgIGlkOiAncGFnZS1pbnB1dCcsXG4gICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgIC8vIHZhbHVlOiBwYWdlLFxuICAgICAgcGxhY2Vob2xkZXI6ICdwYWcnLFxuICAgICAgaW5wdXRQYXlsb2FkOiAncGFnZS1pbnB1dC1jaGFuZ2UnLFxuICAgICAgZW50ZXJQYXlsb2FkOiAncGFnZS1pbnB1dC1lbnRlcicsXG4gICAgfTtcbiAgICAvLyByZXN1bHRzIGxpbWl0IHNlbGVjdFxuICAgIGNvbnN0IGxpbWl0U2VsZWN0OiBJbnB1dFNlbGVjdERhdGEgPSB7XG4gICAgICBpZDogJ2xpbWl0LXNlbGVjdCcsXG4gICAgICBsYWJlbDogJ051bWVybyBkaSByaXN1bHRhdGknLFxuICAgICAgb3B0aW9uczogWzEwLCAyNSwgNTBdLm1hcCgoc2l6ZSkgPT4gKHtcbiAgICAgICAgbGFiZWw6IGAke3NpemV9YCxcbiAgICAgICAgdmFsdWU6IHNpemUsXG4gICAgICAgIHNlbGVjdGVkOiBzaXplID09PSBsaW1pdFxuICAgICAgfSkpLFxuICAgICAgcGF5bG9hZDogJ2xpbWl0LXNlbGVjdCcsXG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgaGVhZGVyLFxuICAgICAgaXRlbXMsXG4gICAgICBwYWdpbmF0aW9uLFxuICAgICAgcGFnZUlucHV0LFxuICAgICAgbGltaXRTZWxlY3QsXG4gICAgICBmYWxsYmFjazogbm9kZXMgPyBmYWxsYmFjayA6IG51bGwsXG4gICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICB9O1xuICB9O1xuXG4gIHB1YmxpYyBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm91dHB1dC5sb2FkaW5nID0gbG9hZGluZztcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVTZWFyY2goKSB7XG4gICAgdGhpcy5zZWFyY2hJc09wZW4gPSAhdGhpcy5zZWFyY2hJc09wZW47XG5cbiAgICBjb25zdCB7IGhlYWRlciB9ID0gdGhpcy5vdXRwdXQ7XG4gICAgaGVhZGVyLmNsYXNzZXMgPSB0aGlzLnNlYXJjaElzT3BlbiA/IFNFQVJDSF9PUEVOX0NMQVNTIDogJyc7XG5cbiAgICAvLyB0cmlnZ2VyIGZvY3VzXG4gICAgaWYgKHRoaXMuc2VhcmNoSXNPcGVuKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgaW5wdXRFbDogSFRNTElucHV0RWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hdy1leHRlbmRlZC10cmVlIGlucHV0Lm43LWlubmVyLXRpdGxlX19zZWFyY2gtYmFyJyk7XG4gICAgICAgIGlucHV0RWwuZm9jdXMoKTtcbiAgICAgIH0sIDUwMCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYWdpbmF0aW9uKHBhZ2UsIHRvdGFsQ291bnQsIGxpbWl0KTogUGFnaW5hdGlvbkRhdGEge1xuICAgIGNvbnN0IHBhZ2VzID0gTWF0aC5jZWlsKHRvdGFsQ291bnQgLyBsaW1pdCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbGlua3M6IHRoaXMuZ2V0UGFnaW5hdGlvbkxpbmtzKHBhZ2UsIHBhZ2VzKSxcbiAgICAgIGZpcnN0OiB7XG4gICAgICAgIGFuY2hvcjoge1xuICAgICAgICAgIHBheWxvYWQ6IDEsXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzZXM6IHBhZ2UgPT09IDEgPyAnaXMtZGlzYWJsZWQnIDogJycsXG4gICAgICB9LFxuICAgICAgcHJldjoge1xuICAgICAgICBhbmNob3I6IHtcbiAgICAgICAgICBwYXlsb2FkOiBwYWdlID09PSAxID8gMSA6IHBhZ2UgLSAxLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc2VzOiBwYWdlID09PSAxID8gJ2lzLWRpc2FibGVkJyA6ICcnXG4gICAgICB9LFxuICAgICAgbmV4dDoge1xuICAgICAgICBhbmNob3I6IHtcbiAgICAgICAgICBwYXlsb2FkOiBwYWdlID09PSBwYWdlcyA/IHBhZ2VzIDogcGFnZSArIDEsXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzZXM6IHBhZ2UgPT09IHBhZ2VzID8gJ2lzLWRpc2FibGVkJyA6ICcnLFxuICAgICAgfSxcbiAgICAgIGxhc3Q6IHtcbiAgICAgICAgYW5jaG9yOiB7XG4gICAgICAgICAgcGF5bG9hZDogcGFnZXMsXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzZXM6IHBhZ2UgPT09IHBhZ2VzID8gJ2lzLWRpc2FibGVkJyA6ICcnLFxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFBhZ2luYXRpb25MaW5rcyhwYWdlLCBwYWdlcyk6IEJ1dHRvbltdIHtcbiAgICBsZXQgZmlyc3RJdGVtID0gMTtcbiAgICBjb25zdCBsaW5rczogQnV0dG9uW10gPSBbXTtcbiAgICBjb25zdCBsaW1pdCA9IFBBR0VfTElNSVQ7XG4gICAgbGV0IGxhc3QgPSBsaW1pdDtcblxuICAgIGlmIChwYWdlcyA+IGxpbWl0KSB7XG4gICAgICBjb25zdCBzdGVwcyA9IE1hdGguZmxvb3IobGltaXQgLyAyKTtcbiAgICAgIGlmIChwYWdlID4gc3RlcHMpIHtcbiAgICAgICAgZmlyc3RJdGVtID0gcGFnZSAtIHN0ZXBzO1xuICAgICAgfVxuXG4gICAgICBpZiAoKHBhZ2UgKyBzdGVwcykgPiBwYWdlcykge1xuICAgICAgICBmaXJzdEl0ZW0gPSAocGFnZXMgLSBsaW1pdCkgKyAxO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsYXN0ID0gcGFnZXM7XG4gICAgfVxuXG4gICAgbGV0IGk7XG4gICAgZm9yIChpID0gMDsgaSA8IGxhc3Q7IGkgKz0gMSkge1xuICAgICAgY29uc3QgaXRlbVBhZ2UgPSBmaXJzdEl0ZW0gKyBpO1xuICAgICAgbGlua3MucHVzaCh7XG4gICAgICAgIHRleHQ6IGl0ZW1QYWdlLFxuICAgICAgICBjbGFzc2VzOiBpdGVtUGFnZSA9PT0gcGFnZSA/ICdpcy1kaXNhYmxlZCcgOiAnJyxcbiAgICAgICAgYW5jaG9yOiB7XG4gICAgICAgICAgcGF5bG9hZDogaXRlbVBhZ2UsXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBsaW5rcztcbiAgfVxufVxuIl19
@@ -0,0 +1,103 @@
1
+ import { DataSource } from '@net7/core';
2
+ export class AwGalleryResultsDS extends DataSource {
3
+ constructor() {
4
+ super(...arguments);
5
+ this.addPagination = (page, totalPages, size) => {
6
+ const sizeOptions = [12, 24, 48];
7
+ this.pagination = {
8
+ first: { payload: `goto-${1}`, classes: page === 1 ? 'is-disabled' : '' },
9
+ prev: { payload: `goto-${page / 1 - 1}`, classes: page === 1 ? 'is-disabled' : '' },
10
+ next: { payload: `goto-${page / 1 + 1}`, classes: page === totalPages ? 'is-disabled' : '' },
11
+ last: { payload: `goto-${totalPages}`, classes: page === totalPages ? 'is-disabled' : '' },
12
+ links: this.makePagination(totalPages, page),
13
+ select: {
14
+ label: 'Numero di risultati',
15
+ options: sizeOptions.map((o) => ({
16
+ text: o,
17
+ selected: o === size,
18
+ })),
19
+ payload: 'select-size'
20
+ },
21
+ };
22
+ };
23
+ this.makePagination = (totalPages, currentPage) => {
24
+ /*
25
+ Called by this.unpackData() when this.options.page is defined.
26
+ Returns the data for <n7-pagination> component.
27
+ */
28
+ const result = [];
29
+ let limit = 5 - 1;
30
+ if (totalPages <= limit) {
31
+ limit = totalPages - 1;
32
+ }
33
+ // always push the first page
34
+ if (limit) {
35
+ let lastPage;
36
+ let firstPage;
37
+ if (currentPage > Math.floor(limit / 2)) {
38
+ if (totalPages === 2) {
39
+ lastPage = totalPages;
40
+ firstPage = 1;
41
+ // when currentPage is after half-point
42
+ // (example: [ 14 ][ 15 ][!16!][ 17 ][ 18 ])
43
+ }
44
+ else if (currentPage < (totalPages - Math.floor(limit / 2))) {
45
+ lastPage = currentPage / 1 + Math.floor(limit / 2);
46
+ firstPage = currentPage / 1 - Math.floor(limit / 2);
47
+ }
48
+ else {
49
+ lastPage = totalPages;
50
+ firstPage = currentPage - limit + (totalPages - currentPage);
51
+ }
52
+ }
53
+ else {
54
+ // when currentPage is before half-point
55
+ // (example: [ 1 ][!2!][ 3 ][ 4 ][ 5 ])
56
+ lastPage = limit + 1;
57
+ firstPage = 1;
58
+ }
59
+ // eslint-disable-next-line no-plusplus
60
+ for (let i = firstPage; i <= lastPage; i++) {
61
+ result.push({
62
+ text: String(i),
63
+ payload: `page-${String(i)}`,
64
+ classes: currentPage === i ? 'is-active' : ''
65
+ });
66
+ }
67
+ }
68
+ else {
69
+ result.push({
70
+ text: '1',
71
+ payload: 'page-1',
72
+ classes: currentPage === 1 ? 'is-active' : ''
73
+ });
74
+ // eslint-disable-next-line no-plusplus
75
+ for (let i = 1; i < totalPages; i++) {
76
+ result.push({ text: String(i + 1), payload: `page-${String(i + 1)}`, classes: currentPage === i + 1 ? 'is-active' : '' });
77
+ }
78
+ }
79
+ return result;
80
+ };
81
+ }
82
+ transform(data) {
83
+ if (!data)
84
+ return null;
85
+ const { pageSize, currentPage } = this.options;
86
+ // if the data doesn't fit on one page, render the pagination component
87
+ if (data.length > pageSize) {
88
+ this.addPagination(currentPage, Math.ceil(data.length / pageSize), pageSize);
89
+ }
90
+ return {
91
+ res: data.slice(0, pageSize),
92
+ pagination: this.pagination
93
+ };
94
+ }
95
+ chunks(a, size) {
96
+ const results = [];
97
+ while (a.length) {
98
+ results.push(a.splice(0, size));
99
+ }
100
+ return results;
101
+ }
102
+ }
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS1yZXN1bHRzLmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtYXJpYW5uYS9zcmMvbGliL2RhdGEtc291cmNlcy9nYWxsZXJ5LXJlc3VsdHMuZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV4QyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsVUFBVTtJQUFsRDs7UUF3QlMsa0JBQWEsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDaEQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxVQUFVLEdBQUc7Z0JBQ2hCLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDekUsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLFFBQVEsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ25GLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUM1RixJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxLQUFLLFVBQVUsQ0FBQyxD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QUM7WUFDaEIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBOEVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0BuZXQ3L2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQXdHYWxsZXJ5UmVzdWx0c0RTIGV4dGVuZHMgRGF0YVNvdXJjZSB7XG4gIHByaXZhdGUgcGFnaW5hdGlvbjogYW55XG5cbiAgcHJvdGVjdGVkIHRyYW5zZm9ybShkYXRhKSB7XG4gICAgaWYgKCFkYXRhKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB7IHBhZ2VTaXplLCBjdXJyZW50UGFnZSB9ID0gdGhpcy5vcHRpb25zO1xuICAgIC8vIGlmIHRoZSBkYXRhIGRvZXNuJ3QgZml0IG9uIG9uZSBwYWdlLCByZW5kZXIgdGhlIHBhZ2luYXRpb24gY29tcG9uZW50XG4gICAgaWYgKGRhdGEubGVuZ3RoID4gcGFnZVNpemUpIHtcbiAgICAgIHRoaXMuYWRkUGFnaW5hdGlvbihjdXJyZW50UGFnZSwgTWF0aC5jZWlsKGRhdGEubGVuZ3RoIC8gcGFnZVNpemUpLCBwYWdlU2l6ZSk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICByZXM6IGRhdGEuc2xpY2UoMCwgcGFnZVNpemUpLFxuICAgICAgcGFnaW5hdGlvbjogdGhpcy5wYWdpbmF0aW9uXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBjaHVua3MoYSwgc2l6ZSkge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBbXTtcbiAgICB3aGlsZSAoYS5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdHMucHVzaChhLnNwbGljZSgwLCBzaXplKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG5cbiAgcHVibGljIGFkZFBhZ2luYXRpb24gPSAocGFnZSwgdG90YWxQYWdlcywgc2l6ZSkgPT4ge1xuICAgIGNvbnN0IHNpemVPcHRpb25zID0gWzEyLCAyNCwgNDhdO1xuICAgIHRoaXMucGFnaW5hdGlvbiA9IHtcbiAgICAgIGZpcnN0OiB7IHBheWxvYWQ6IGBnb3RvLSR7MX1gLCBjbGFzc2VzOiBwYWdlID09PSAxID8gJ2lzLWRpc2FibGVkJyA6ICcnIH0sXG4gICAgICBwcmV2OiB7IHBheWxvYWQ6IGBnb3RvLSR7cGFnZSAvIDEgLSAxfWAsIGNsYXNzZXM6IHBhZ2UgPT09IDEgPyAnaXMtZGlzYWJsZWQnIDogJycgfSxcbiAgICAgIG5leHQ6IHsgcGF5bG9hZDogYGdvdG8tJHtwYWdlIC8gMSArIDF9YCwgY2xhc3NlczogcGFnZSA9PT0gdG90YWxQYWdlcyA/ICdpcy1kaXNhYmxlZCcgOiAnJyB9LFxuICAgICAgbGFzdDogeyBwYXlsb2FkOiBgZ290by0ke3RvdGFsUGFnZXN9YCwgY2xhc3NlczogcGFnZSA9PT0gdG90YWxQYWdlcyA/ICdpcy1kaXNhYmxlZCcgOiAnJyB9LFxuICAgICAgbGlua3M6IHRoaXMubWFrZVBhZ2luYXRpb24odG90YWxQYWdlcywgcGFnZSksXG4gICAgICBzZWxlY3Q6IHtcbiAgICAgICAgbGFiZWw6ICdOdW1lcm8gZGkgcmlzdWx0YXRpJyxcbiAgICAgICAgb3B0aW9uczogc2l6ZU9wdGlvbnMubWFwKChvKSA9PiAoe1xuICAgICAgICAgIHRleHQ6IG8sXG4gICAgICAgICAgc2VsZWN0ZWQ6IG8gPT09IHNpemUsXG4gICAgICAgIH0pKSxcbiAgICAgICAgcGF5bG9hZDogJ3NlbGVjdC1zaXplJ1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIG1ha2VQYWdpbmF0aW9uID0gKHRvdGFsUGFnZXMsIGN1cnJlbnRQYWdlKSA9PiB7XG4gICAgLypcbiAgICAgIENhbGxlZCBieSB0aGlzLnVucGFja0RhdGEoKSB3aGVuIHRoaXMub3B0aW9ucy5wYWdlIGlzIGRlZmluZWQuXG4gICAgICBSZXR1cm5zIHRoZSBkYXRhIGZvciA8bjctcGFnaW5hdGlvbj4gY29tcG9uZW50LlxuICAgICovXG4gICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgbGV0IGxpbWl0ID0gNSAtIDE7XG5cbiAgICBpZiAodG90YWxQYWdlcyA8PSBsaW1pdCkge1xuICAgICAgbGltaXQgPSB0b3RhbFBhZ2VzIC0gMTtcbiAgICB9XG5cbiAgICAvLyBhbHdheXMgcHVzaCB0aGUgZmlyc3QgcGFnZVxuICAgIGlmIChsaW1pdCkge1xuICAgICAgbGV0IGxhc3RQYWdlOiBudW1iZXI7IGxldFxuICAgICAgICBmaXJzdFBhZ2U6IG51bWJlcjtcbiAgICAgIGlmIChjdXJyZW50UGFnZSA+IE1hdGguZmxvb3IobGltaXQgLyAyKSkge1xuICAgICAgICBpZiAodG90YWxQYWdlcyA9PT0gMikge1xuICAgICAgICAgIGxhc3RQYWdlID0gdG90YWxQYWdlcztcbiAgICAgICAgICBmaXJzdFBhZ2UgPSAxO1xuICAgICAgICAgIC8vIHdoZW4gY3VycmVudFBhZ2UgaXMgYWZ0ZXIgaGFsZi1wb2ludFxuICAgICAgICAgIC8vIChleGFtcGxlOiBbIDE0IF1bIDE1IF1bITE2IV1bIDE3IF1bIDE4IF0pXG4gICAgICAgIH0gZWxzZSBpZiAoY3VycmVudFBhZ2UgPCAodG90YWxQYWdlcyAtIE1hdGguZmxvb3IobGltaXQgLyAyKSkpIHtcbiAgICAgICAgICBsYXN0UGFnZSA9IGN1cnJlbnRQYWdlIC8gMSArIE1hdGguZmxvb3IobGltaXQgLyAyKTtcbiAgICAgICAgICBmaXJzdFBhZ2UgPSBjdXJyZW50UGFnZSAvIDEgLSBNYXRoLmZsb29yKGxpbWl0IC8gMik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGFzdFBhZ2UgPSB0b3RhbFBhZ2VzO1xuICAgICAgICAgIGZpcnN0UGFnZSA9IGN1cnJlbnRQYWdlIC0gbGltaXQgKyAodG90YWxQYWdlcyAtIGN1cnJlbnRQYWdlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gd2hlbiBjdXJyZW50UGFnZSBpcyBiZWZvcmUgaGFsZi1wb2ludFxuICAgICAgICAvLyAoZXhhbXBsZTogWyAxIF1bITIhXVsgMyBdWyA0IF1bIDUgXSlcbiAgICAgICAgbGFzdFBhZ2UgPSBsaW1pdCArIDE7XG4gICAgICAgIGZpcnN0UGFnZSA9IDE7XG4gICAgICB9XG5cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICAgICAgZm9yIChsZXQgaSA9IGZpcnN0UGFnZTsgaSA8PSBsYXN0UGFnZTsgaSsrKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgICB0ZXh0OiBTdHJpbmcoaSksXG4gICAgICAgICAgcGF5bG9hZDogYHBhZ2UtJHtTdHJpbmcoaSl9YCxcbiAgICAgICAgICBjbGFzc2VzOiBjdXJyZW50UGFnZSA9PT0gaSA/ICdpcy1hY3RpdmUnIDogJydcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgdGV4dDogJzEnLFxuICAgICAgICBwYXlsb2FkOiAncGFnZS0xJyxcbiAgICAgICAgY2xhc3NlczogY3VycmVudFBhZ2UgPT09IDEgPyAnaXMtYWN0aXZlJyA6ICcnXG4gICAgICB9KTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCB0b3RhbFBhZ2VzOyBpKyspIHtcbiAgICAgICAgcmVzdWx0LnB1c2goeyB0ZXh0OiBTdHJpbmcoaSArIDEpLCBwYXlsb2FkOiBgcGFnZS0ke1N0cmluZyhpICsgMSl9YCwgY2xhc3NlczogY3VycmVudFBhZ2UgPT09IGkgKyAxID8gJ2lzLWFjdGl2ZScgOiAnJyB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIl19
@@ -0,0 +1,80 @@
1
+ import { DataSource } from '@net7/core';
2
+ import { helpers } from '@net7/boilerplate-common';
3
+ export class AwHomeAutocompleteDS extends DataSource {
4
+ transform(data) {
5
+ const { response, query } = data;
6
+ const { results, totalCount } = response;
7
+ const { keys, config, paths } = this.options;
8
+ const labels = this.options.labels || {};
9
+ const itemIds = [];
10
+ const groups = {};
11
+ results.forEach(({ item, entity }) => {
12
+ const groupId = entity ? entity.typeOfEntity : item.document_type;
13
+ const groupConfig = keys[groupId];
14
+ const mainMetadata = groupConfig['main-metadata'];
15
+ const currentItem = item || entity;
16
+ if (!groups[groupId]) {
17
+ const { label, icon } = groupConfig;
18
+ groups[groupId] = {
19
+ title: label,
20
+ icon,
21
+ classes: `color-${groupConfig['class-name']}`,
22
+ items: [],
23
+ type: groupId,
24
+ };
25
+ }
26
+ if (itemIds.indexOf(currentItem.id) === -1) {
27
+ const metadata = [];
28
+ if (currentItem.fields) {
29
+ currentItem.fields.forEach(({ key, value }) => {
30
+ if (mainMetadata && key === mainMetadata) {
31
+ metadata.push({ key: helpers.prettifySnakeCase(key, labels[key]), value });
32
+ }
33
+ });
34
+ }
35
+ groups[groupId].items.push({
36
+ title: currentItem.label,
37
+ metadata,
38
+ anchor: {
39
+ href: `${paths[entity ? 'entitaBasePath' : 'schedaBasePath']}/${currentItem.id}/${helpers.slugify(currentItem.label)}`,
40
+ },
41
+ });
42
+ }
43
+ });
44
+ const grouplist = Object.keys(groups).map((key) => ({
45
+ group: {
46
+ title: groups[key].title,
47
+ icon: groups[key].icon,
48
+ classes: groups[key].classes,
49
+ },
50
+ items: groups[key].items,
51
+ }));
52
+ return {
53
+ results: grouplist,
54
+ actions: grouplist.length > 0 ? {
55
+ showMore: {
56
+ text: `Visualizza tutti i ${totalCount} risultati`,
57
+ anchor: {
58
+ href: paths.searchBasePath,
59
+ queryParams: {
60
+ query,
61
+ },
62
+ },
63
+ },
64
+ } : {
65
+ showMore: {
66
+ text: 'Cerca in tutti i campi',
67
+ anchor: {
68
+ href: paths.searchBasePath,
69
+ queryParams: {
70
+ query, // Query string
71
+ 'query-all': 1, // "Cerca in tutti i campi delle schede"
72
+ },
73
+ },
74
+ },
75
+ },
76
+ fallback: ((config.get('home-layout') || {})['top-hero'] || {}).fallback,
77
+ };
78
+ }
79
+ }
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1hdXRvY29tcGxldGUuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvZGF0YS1zb3VyY2VzL2hvbWUtYXV0b2NvbXBsZXRlLmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRW5ELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxVQUFVO0lBQ3hDLFNBQVMsQ0FBQyxJQUFJO1FBQ3RCLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsUUFBUSxDQUFDO1FBQ3pDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNuQixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFbEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7WUFDbkMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQ2xFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNsQyxNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDbEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxJ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Q0QsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVE7U0FDekUsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAbmV0Ny9jb3JlJztcbmltcG9ydCB7IGhlbHBlcnMgfSBmcm9tICdAbmV0Ny9ib2lsZXJwbGF0ZS1jb21tb24nO1xuXG5leHBvcnQgY2xhc3MgQXdIb21lQXV0b2NvbXBsZXRlRFMgZXh0ZW5kcyBEYXRhU291cmNlIHtcbiAgcHJvdGVjdGVkIHRyYW5zZm9ybShkYXRhKSB7XG4gICAgY29uc3QgeyByZXNwb25zZSwgcXVlcnkgfSA9IGRhdGE7XG4gICAgY29uc3QgeyByZXN1bHRzLCB0b3RhbENvdW50IH0gPSByZXNwb25zZTtcbiAgICBjb25zdCB7IGtleXMsIGNvbmZpZywgcGF0aHMgfSA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCBsYWJlbHMgPSB0aGlzLm9wdGlvbnMubGFiZWxzIHx8IHt9O1xuICAgIGNvbnN0IGl0ZW1JZHMgPSBbXTtcbiAgICBjb25zdCBncm91cHMgPSB7fTtcblxuICAgIHJlc3VsdHMuZm9yRWFjaCgoeyBpdGVtLCBlbnRpdHkgfSkgPT4ge1xuICAgICAgY29uc3QgZ3JvdXBJZCA9IGVudGl0eSA/IGVudGl0eS50eXBlT2ZFbnRpdHkgOiBpdGVtLmRvY3VtZW50X3R5cGU7XG4gICAgICBjb25zdCBncm91cENvbmZpZyA9IGtleXNbZ3JvdXBJZF07XG4gICAgICBjb25zdCBtYWluTWV0YWRhdGEgPSBncm91cENvbmZpZ1snbWFpbi1tZXRhZGF0YSddO1xuICAgICAgY29uc3QgY3VycmVudEl0ZW0gPSBpdGVtIHx8IGVudGl0eTtcblxuICAgICAgaWYgKCFncm91cHNbZ3JvdXBJZF0pIHtcbiAgICAgICAgY29uc3QgeyBsYWJlbCwgaWNvbiB9ID0gZ3JvdXBDb25maWc7XG4gICAgICAgIGdyb3Vwc1tncm91cElkXSA9IHtcbiAgICAgICAgICB0aXRsZTogbGFiZWwsXG4gICAgICAgICAgaWNvbixcbiAgICAgICAgICBjbGFzc2VzOiBgY29sb3ItJHtncm91cENvbmZpZ1snY2xhc3MtbmFtZSddfWAsXG4gICAgICAgICAgaXRlbXM6IFtdLFxuICAgICAgICAgIHR5cGU6IGdyb3VwSWQsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGlmIChpdGVtSWRzLmluZGV4T2YoY3VycmVudEl0ZW0uaWQpID09PSAtMSkge1xuICAgICAgICBjb25zdCBtZXRhZGF0YSA9IFtdO1xuICAgICAgICBpZiAoY3VycmVudEl0ZW0uZmllbGRzKSB7XG4gICAgICAgICAgY3VycmVudEl0ZW0uZmllbGRzLmZvckVhY2goKHsga2V5LCB2YWx1ZSB9KSA9PiB7XG4gICAgICAgICAgICBpZiAobWFpbk1ldGFkYXRhICYmIGtleSA9PT0gbWFpbk1ldGFkYXRhKSB7XG4gICAgICAgICAgICAgIG1ldGFkYXRhLnB1c2goeyBrZXk6IGhlbHBlcnMucHJldHRpZnlTbmFrZUNhc2Uoa2V5LCBsYWJlbHNba2V5XSksIHZhbHVlIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGdyb3Vwc1tncm91cElkXS5pdGVtcy5wdXNoKHtcbiAgICAgICAgICB0aXRsZTogY3VycmVudEl0ZW0ubGFiZWwsXG4gICAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgICAgYW5jaG9yOiB7XG4gICAgICAgICAgICBocmVmOiBgJHtwYXRoc1tlbnRpdHkgPyAnZW50aXRhQmFzZVBhdGgnIDogJ3NjaGVkYUJhc2VQYXRoJ119LyR7Y3VycmVudEl0ZW0uaWR9LyR7aGVscGVycy5zbHVnaWZ5KGN1cnJlbnRJdGVtLmxhYmVsKX1gLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgZ3JvdXBsaXN0ID0gT2JqZWN0LmtleXMoZ3JvdXBzKS5tYXAoKGtleSkgPT4gKHtcbiAgICAgIGdyb3VwOiB7XG4gICAgICAgIHRpdGxlOiBncm91cHNba2V5XS50aXRsZSxcbiAgICAgICAgaWNvbjogZ3JvdXBzW2tleV0uaWNvbixcbiAgICAgICAgY2xhc3NlczogZ3JvdXBzW2tleV0uY2xhc3NlcyxcbiAgICAgIH0sXG4gICAgICBpdGVtczogZ3JvdXBzW2tleV0uaXRlbXMsXG4gICAgfSkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHJlc3VsdHM6IGdyb3VwbGlzdCxcbiAgICAgIGFjdGlvbnM6IGdyb3VwbGlzdC5sZW5ndGggPiAwID8ge1xuICAgICAgICBzaG93TW9yZToge1xuICAgICAgICAgIHRleHQ6IGBWaXN1YWxpenphIHR1dHRpIGkgJHt0b3RhbENvdW50fSByaXN1bHRhdGlgLFxuICAgICAgICAgIGFuY2hvcjoge1xuICAgICAgICAgICAgaHJlZjogcGF0aHMuc2VhcmNoQmFzZVBhdGgsXG4gICAgICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0gOiB7XG4gICAgICAgIHNob3dNb3JlOiB7XG4gICAgICAgICAgdGV4dDogJ0NlcmNhIGluIHR1dHRpIGkgY2FtcGknLFxuICAgICAgICAgIGFuY2hvcjoge1xuICAgICAgICAgICAgaHJlZjogcGF0aHMuc2VhcmNoQmFzZVBhdGgsXG4gICAgICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgICAgICBxdWVyeSwgLy8gUXVlcnkgc3RyaW5nXG4gICAgICAgICAgICAgICdxdWVyeS1hbGwnOiAxLCAvLyBcIkNlcmNhIGluIHR1dHRpIGkgY2FtcGkgZGVsbGUgc2NoZWRlXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBmYWxsYmFjazogKChjb25maWcuZ2V0KCdob21lLWxheW91dCcpIHx8IHt9KVsndG9wLWhlcm8nXSB8fCB7fSkuZmFsbGJhY2ssXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -0,0 +1,190 @@
1
+ import { DataSource } from '@net7/core';
2
+ import tippy from 'tippy.js';
3
+ export class AwHomeFacetsWrapperDS extends DataSource {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.autoComplete = {}; // autocomplete data for each facet
7
+ this.lockedFacets = {}; // locked means that the eye cannot be closed
8
+ // store the last response so the component can be rendered again with the same data
9
+ this.lastData = {};
10
+ this.closedEyes = []; // list of closed eyes
11
+ this.openTippy = ''; // tipe of entity of the currently open tippy
12
+ this.tippyMaker = (id) => {
13
+ /*
14
+ Builds or updates Tippy for the input in use (id)
15
+ */
16
+ const newId = id.replace(/ /g, '-');
17
+ // create data for this facet
18
+ if (!this.autoComplete[newId]) {
19
+ this.autoComplete[newId] = {
20
+ tippy: undefined, // tippy data / config
21
+ open: true, // show or hide tippy
22
+ };
23
+ const ac = this.autoComplete[newId];
24
+ const getContent = () => {
25
+ const contentNode = document.getElementsByClassName('aw-simple-autocomplete__template')[0];
26
+ contentNode.setAttribute('style', 'display: block');
27
+ return contentNode;
28
+ };
29
+ if (!ac.tippy) {
30
+ // target the correct this.autoComplete[id] input class
31
+ const target = document.getElementsByClassName(newId)[1];
32
+ ac.tippy = tippy(target, {
33
+ content: getContent(),
34
+ trigger: 'manual',
35
+ interactive: true,
36
+ arrow: false,
37
+ flip: false,
38
+ appendTo: 'parent',
39
+ theme: 'light-border aw-home__facet-tippy',
40
+ placement: 'bottom-start',
41
+ maxWidth: '100%',
42
+ }); // attach tippy to input type text
43
+ }
44
+ }
45
+ const ac = this.autoComplete[newId];
46
+ if (ac.tippy) {
47
+ ac.tippy.show();
48
+ }
49
+ };
50
+ this.tippyClose = (id) => {
51
+ const newId = id.replace(/ /g, '-');
52
+ if (this.autoComplete[newId]) {
53
+ const ac = this.autoComplete[newId];
54
+ if (ac.tippy) {
55
+ ac.tippy.hide();
56
+ }
57
+ }
58
+ };
59
+ }
60
+ transform(data) {
61
+ this.lastData = data;
62
+ const headers = [];
63
+ const inputs = [];
64
+ const links = [];
65
+ const facetData = data;
66
+ const { pageConfig, paths } = this.options || {};
67
+ const { lockedFacets } = this; // locked means that the eye cannot be closed
68
+ const { closedEyes } = this; // list of closed eyes
69
+ // when facet data changes, destroy every tippy and reset autocomplete data.
70
+ Object.keys(this.autoComplete).forEach((id) => {
71
+ if (this.autoComplete[id] && this.autoComplete[id].tippy) {
72
+ this.autoComplete[id].tippy.destroy(); // destroy
73
+ }
74
+ });
75
+ this.autoComplete = {}; // reset data
76
+ facetData.forEach((facet, j) => {
77
+ /*
78
+ For each facet on back-end, push a header-component
79
+ and a facet-component (search input only) to each array.
80
+ ---//---
81
+ # LOGIC:
82
+ Each facet can be "locked" or "enabled".
83
+ if a facet is locked, it means that it cannot be enabled or disabled.
84
+ if a facet is enabled or disabled it means that the filter is active or inactive.
85
+
86
+ there are 2 ways that a facet can be "locked"
87
+ 1. When a bubble of the same type is selected in the chart
88
+ 2. When that facet is the only enabled facet
89
+
90
+ The first case is managed by pushing the selected bubble's ID to the corresponding array
91
+ of lockedFacets.
92
+ The second case is managed by pushing a "LOCK_LAST" string
93
+ to the lockedFacets array of the last
94
+ enabled facet.
95
+ */
96
+ Object.keys(lockedFacets).forEach((key) => {
97
+ // clear all locked facets arrays from "LOCK_LAST" values (reset all locks)
98
+ const index = lockedFacets[key].indexOf('LOCK_LAST');
99
+ if (index >= 0) {
100
+ lockedFacets[key].splice(index, 1);
101
+ }
102
+ });
103
+ if (closedEyes) {
104
+ if (closedEyes.length === facetData.length - 1) {
105
+ const lastFacet = facetData.find((f) => !closedEyes.includes(f.type.replace(/ /g, '-')));
106
+ if (lastFacet) {
107
+ if (closedEyes[lastFacet.type]) {
108
+ lockedFacets[lastFacet.type].push('LOCK_LAST');
109
+ }
110
+ else {
111
+ lockedFacets[lastFacet.type] = ['LOCK_LAST'];
112
+ }
113
+ }
114
+ }
115
+ if (closedEyes.includes(facet.type.replace(/ /g, '-'))) { // check if the eyes are open
116
+ facet.enabled = false;
117
+ }
118
+ else {
119
+ facet.enabled = true;
120
+ }
121
+ }
122
+ if (Object.keys(lockedFacets).length) { // check if bubble chart wants to lock this facet
123
+ if (lockedFacets[facet.type] && lockedFacets[facet.type].length > 0) {
124
+ // if bubble chart say lock this facet, lock it
125
+ facet.locked = true;
126
+ }
127
+ else {
128
+ facet.locked = false;
129
+ }
130
+ }
131
+ else {
132
+ facet.locked = false;
133
+ }
134
+ const headerClasses = [];
135
+ const iconClasses = [facet.icon];
136
+ if (!facet.enabled) {
137
+ headerClasses.push('is-disabled');
138
+ }
139
+ if (facet['class-name']) {
140
+ headerClasses.push(`color-${facet['class-name']}`);
141
+ iconClasses.push(`color-${facet['class-name']}`);
142
+ }
143
+ // make array of headers data
144
+ headers.push({
145
+ iconLeft: iconClasses.join(' '),
146
+ text: facet.label,
147
+ additionalText: facet.count,
148
+ iconRight: facet.enabled ? 'n7-icon-eye' : 'n7-icon-eye-slash',
149
+ classes: headerClasses.join(' ')
150
+ + (facet.locked
151
+ ? ' is-blocked'
152
+ : ' not-blocked'),
153
+ payload: facet.locked === true ? null : facet.type.replace(/ /g, '-'),
154
+ });
155
+ // make array of inputs data
156
+ inputs.push({
157
+ sections: [
158
+ {
159
+ inputs: [
160
+ {
161
+ id: `${facet.type.replace(/ /g, '-')}-${j}`,
162
+ type: 'text',
163
+ placeholder: facet['input-placeholder'],
164
+ icon: 'n7-icon-search',
165
+ disabled: !facet.enabled,
166
+ inputPayload: `${String(facet.type.replace(/ /g, '-'))}-search`,
167
+ iconPayload: `${String(facet.type.replace(/ /g, '-'))}-search`,
168
+ enterPayload: `${String(facet.type.replace(/ /g, '-'))}-search`,
169
+ classes: `${String(facet.type.replace(' ', '-'))}-search`,
170
+ },
171
+ ],
172
+ },
173
+ ],
174
+ });
175
+ if (pageConfig?.['view-all-links']?.enabled) {
176
+ const { label } = pageConfig['view-all-links'];
177
+ links.push({
178
+ label: label || 'Visualizza tutti',
179
+ path: paths.searchBasePath,
180
+ queryParams: {
181
+ 'query-links': facet.type.replace(/ /g, '-')
182
+ }
183
+ });
184
+ }
185
+ });
186
+ // zipping arrays to render widgets with separate data (see home-layout.html)
187
+ return headers.map((h, i) => ({ header: h, input: inputs[i], link: links[i] || null }));
188
+ }
189
+ }
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1mYWNldHMtd3JhcHBlci5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9kYXRhLXNvdXJjZXMvaG9tZS1mYWNldHMtd3JhcHBlci5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxNQUFNLFVBQVUsQ0FBQztBQUU3QixNQUFNLE9BQU8scUJBQXNCLFNBQVEsVUFBVTtJQUFyRDs7UUFDVSxpQkFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLG1DQUFtQztRQUV2RCxpQkFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLDZDQUE2QztRQUV2RSxvRkFBb0Y7UUFDN0UsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUVkLGVBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQyxzQkFBc0I7UUFFdkMsY0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFDLDZDQUE2QztRQWtJN0QsZUFBVSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDekI7O2NBRUU7WUFDRixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNwQyw2QkFBNkI7WUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRztvQkFDekIsS0FBSyxFQUFFLFNBQVMsRUFBRSxzQkFBc0I7b0JBQ3hDLElBQUksRUFBRSxJQUFJLEVBQUUscUJBQXFCO2lCQUNsQyxDQUFDO2dCQUNGLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BDLE1BQU0sVUFBVSxHQUFHLEdBQUcsRUFBRTtvQkFDdEIsTUFB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YXRhU291cmNlIH0gZnJvbSAnQG5ldDcvY29yZSc7XG5pbXBvcnQgdGlwcHkgZnJvbSAndGlwcHkuanMnO1xuXG5leHBvcnQgY2xhc3MgQXdIb21lRmFjZXRzV3JhcHBlckRTIGV4dGVuZHMgRGF0YVNvdXJjZSB7XG4gIHByaXZhdGUgYXV0b0NvbXBsZXRlID0ge307IC8vIGF1dG9jb21wbGV0ZSBkYXRhIGZvciBlYWNoIGZhY2V0XG5cbiAgcHVibGljIGxvY2tlZEZhY2V0cyA9IHt9OyAvLyBsb2NrZWQgbWVhbnMgdGhhdCB0aGUgZXllIGNhbm5vdCBiZSBjbG9zZWRcblxuICAvLyBzdG9yZSB0aGUgbGFzdCByZXNwb25zZSBzbyB0aGUgY29tcG9uZW50IGNhbiBiZSByZW5kZXJlZCBhZ2FpbiB3aXRoIHRoZSBzYW1lIGRhdGFcbiAgcHVibGljIGxhc3REYXRhID0ge307XG5cbiAgcHVibGljIGNsb3NlZEV5ZXMgPSBbXTsgLy8gbGlzdCBvZiBjbG9zZWQgZXllc1xuXG4gIHB1YmxpYyBvcGVuVGlwcHkgPSAnJzsgLy8gdGlwZSBvZiBlbnRpdHkgb2YgdGhlIGN1cnJlbnRseSBvcGVuIHRpcHB5XG5cbiAgcHJvdGVjdGVkIHRyYW5zZm9ybShkYXRhKSB7XG4gICAgdGhpcy5sYXN0RGF0YSA9IGRhdGE7XG4gICAgY29uc3QgaGVhZGVyczogYW55W10gPSBbXTtcbiAgICBjb25zdCBpbnB1dHM6IGFueVtdID0gW107XG4gICAgY29uc3QgbGlua3M6IGFueVtdID0gW107XG4gICAgY29uc3QgZmFjZXREYXRhID0gZGF0YTtcbiAgICBjb25zdCB7IHBhZ2VDb25maWcsIHBhdGhzIH0gPSB0aGlzLm9wdGlvbnMgfHwge307XG4gICAgY29uc3QgeyBsb2NrZWRGYWNldHMgfSA9IHRoaXM7IC8vIGxvY2tlZCBtZWFucyB0aGF0IHRoZSBleWUgY2Fubm90IGJlIGNsb3NlZFxuICAgIGNvbnN0IHsgY2xvc2VkRXllcyB9ID0gdGhpczsgLy8gbGlzdCBvZiBjbG9zZWQgZXllc1xuXG4gICAgLy8gd2hlbiBmYWNldCBkYXRhIGNoYW5nZXMsIGRlc3Ryb3kgZXZlcnkgdGlwcHkgYW5kIHJlc2V0IGF1dG9jb21wbGV0ZSBkYXRhLlxuICAgIE9iamVjdC5rZXlzKHRoaXMuYXV0b0NvbXBsZXRlKS5mb3JFYWNoKChpZCkgPT4ge1xuICAgICAgaWYgKHRoaXMuYXV0b0NvbXBsZXRlW2lkXSAmJiB0aGlzLmF1dG9Db21wbGV0ZVtpZF0udGlwcHkpIHtcbiAgICAgICAgdGhpcy5hdXRvQ29tcGxldGVbaWRdLnRpcHB5LmRlc3Ryb3koKTsgLy8gZGVzdHJveVxuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuYXV0b0NvbXBsZXRlID0ge307IC8vIHJlc2V0IGRhdGFcblxuICAgIGZhY2V0RGF0YS5mb3JFYWNoKChmYWNldCwgaikgPT4ge1xuICAgICAgLypcbiAgICAgICBGb3IgZWFjaCBmYWNldCBvbiBiYWNrLWVuZCwgcHVzaCBhIGhlYWRlci1jb21wb25lbnRcbiAgICAgICBhbmQgYSBmYWNldC1jb21wb25lbnQgKHNlYXJjaCBpbnB1dCBvbmx5KSB0byBlYWNoIGFycmF5LlxuICAgICAgIC0tLS8vLS0tXG4gICAgICAgIyBMT0dJQzpcbiAgICAgICBFYWNoIGZhY2V0IGNhbiBiZSBcImxvY2tlZFwiIG9yIFwiZW5hYmxlZFwiLlxuICAgICAgIGlmIGEgZmFjZXQgaXMgbG9ja2VkLCBpdCBtZWFucyB0aGF0IGl0IGNhbm5vdCBiZSBlbmFibGVkIG9yIGRpc2FibGVkLlxuICAgICAgIGlmIGEgZmFjZXQgaXMgZW5hYmxlZCBvciBkaXNhYmxlZCBpdCBtZWFucyB0aGF0IHRoZSBmaWx0ZXIgaXMgYWN0aXZlIG9yIGluYWN0aXZlLlxuXG4gICAgICAgdGhlcmUgYXJlIDIgd2F5cyB0aGF0IGEgZmFjZXQgY2FuIGJlIFwibG9ja2VkXCJcbiAgICAgICAgIDEuIFdoZW4gYSBidWJibGUgb2YgdGhlIHNhbWUgdHlwZSBpcyBzZWxlY3RlZCBpbiB0aGUgY2hhcnRcbiAgICAgICAgIDIuIFdoZW4gdGhhdCBmYWNldCBpcyB0aGUgb25seSBlbmFibGVkIGZhY2V0XG5cbiAgICAgICBUaGUgZmlyc3QgY2FzZSBpcyBtYW5hZ2VkIGJ5IHB1c2hpbmcgdGhlIHNlbGVjdGVkIGJ1YmJsZSdzIElEIHRvIHRoZSBjb3JyZXNwb25kaW5nIGFycmF5XG4gICAgICAgb2YgbG9ja2VkRmFjZXRzLlxuICAgICAgIFRoZSBzZWNvbmQgY2FzZSBpcyBtYW5hZ2VkIGJ5IHB1c2hpbmcgYSBcIkxPQ0tfTEFTVFwiIHN0cmluZ1xuICAgICAgIHRvIHRoZSBsb2NrZWRGYWNldHMgYXJyYXkgb2YgdGhlIGxhc3RcbiAgICAgICBlbmFibGVkIGZhY2V0LlxuICAgICAgKi9cbiAgICAgIE9iamVjdC5rZXlzKGxvY2tlZEZhY2V0cykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIC8vIGNsZWFyIGFsbCBsb2NrZWQgZmFjZXRzIGFycmF5cyBmcm9tIFwiTE9DS19MQVNUXCIgdmFsdWVzIChyZXNldCBhbGwgbG9ja3MpXG4gICAgICAgIGNvbnN0IGluZGV4ID0gbG9ja2VkRmFjZXRzW2tleV0uaW5kZXhPZignTE9DS19MQVNUJyk7XG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgbG9ja2VkRmFjZXRzW2tleV0uc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpZiAoY2xvc2VkRXllcykge1xuICAgICAgICBpZiAoY2xvc2VkRXllcy5sZW5ndGggPT09IGZhY2V0RGF0YS5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgY29uc3QgbGFzdEZhY2V0ID0gZmFjZXREYXRhLmZpbmQoKGYpID0+ICFjbG9zZWRFeWVzLmluY2x1ZGVzKGYudHlwZS5yZXBsYWNlKC8gL2csICctJykpKTtcbiAgICAgICAgICBpZiAobGFzdEZhY2V0KSB7XG4gICAgICAgICAgICBpZiAoY2xvc2VkRXllc1tsYXN0RmFjZXQudHlwZV0pIHtcbiAgICAgICAgICAgICAgbG9ja2VkRmFjZXRzW2xhc3RGYWNldC50eXBlXS5wdXNoKCdMT0NLX0xBU1QnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGxvY2tlZEZhY2V0c1tsYXN0RmFjZXQudHlwZV0gPSBbJ0xPQ0tfTEFTVCddO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY2xvc2VkRXllcy5pbmNsdWRlcyhmYWNldC50eXBlLnJlcGxhY2UoLyAvZywgJy0nKSkpIHsgLy8gY2hlY2sgaWYgdGhlIGV5ZXMgYXJlIG9wZW5cbiAgICAgICAgICBmYWNldC5lbmFibGVkID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmFjZXQuZW5hYmxlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChPYmplY3Qua2V5cyhsb2NrZWRGYWNldHMpLmxlbmd0aCkgeyAvLyBjaGVjayBpZiBidWJibGUgY2hhcnQgd2FudHMgdG8gbG9jayB0aGlzIGZhY2V0XG4gICAgICAgIGlmIChsb2NrZWRGYWNldHNbZmFjZXQudHlwZV0gJiYgbG9ja2VkRmFjZXRzW2ZhY2V0LnR5cGVdLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAvLyBpZiBidWJibGUgY2hhcnQgc2F5IGxvY2sgdGhpcyBmYWNldCwgbG9jayBpdFxuICAgICAgICAgIGZhY2V0LmxvY2tlZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmFjZXQubG9ja2VkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZhY2V0LmxvY2tlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgY29uc3QgaGVhZGVyQ2xhc3NlcyA9IFtdO1xuICAgICAgY29uc3QgaWNvbkNsYXNzZXMgPSBbZmFjZXQuaWNvbl07XG4gICAgICBpZiAoIWZhY2V0LmVuYWJsZWQpIHsgaGVhZGVyQ2xhc3Nlcy5wdXNoKCdpcy1kaXNhYmxlZCcpOyB9XG4gICAgICBpZiAoZmFjZXRbJ2NsYXNzLW5hbWUnXSkge1xuICAgICAgICBoZWFkZXJDbGFzc2VzLnB1c2goYGNvbG9yLSR7ZmFjZXRbJ2NsYXNzLW5hbWUnXX1gKTtcbiAgICAgICAgaWNvbkNsYXNzZXMucHVzaChgY29sb3ItJHtmYWNldFsnY2xhc3MtbmFtZSddfWApO1xuICAgICAgfVxuICAgICAgLy8gbWFrZSBhcnJheSBvZiBoZWFkZXJzIGRhdGFcbiAgICAgIGhlYWRlcnMucHVzaCh7XG4gICAgICAgIGljb25MZWZ0OiBpY29uQ2xhc3Nlcy5qb2luKCcgJyksXG4gICAgICAgIHRleHQ6IGZhY2V0LmxhYmVsLFxuICAgICAgICBhZGRpdGlvbmFsVGV4dDogZmFjZXQuY291bnQsXG4gICAgICAgIGljb25SaWdodDogZmFjZXQuZW5hYmxlZCA/ICduNy1pY29uLWV5ZScgOiAnbjctaWNvbi1leWUtc2xhc2gnLFxuICAgICAgICBjbGFzc2VzOlxuICAgICAgICAgIGhlYWRlckNsYXNzZXMuam9pbignICcpXG4gICAgICAgICAgKyAoZmFjZXQubG9ja2VkXG4gICAgICAgICAgICA/ICcgaXMtYmxvY2tlZCdcbiAgICAgICAgICAgIDogJyBub3QtYmxvY2tlZCcpLFxuICAgICAgICBwYXlsb2FkOiBmYWNldC5sb2NrZWQgPT09IHRydWUgPyBudWxsIDogZmFjZXQudHlwZS5yZXBsYWNlKC8gL2csICctJyksXG4gICAgICB9KTtcbiAgICAgIC8vIG1ha2UgYXJyYXkgb2YgaW5wdXRzIGRhdGFcbiAgICAgIGlucHV0cy5wdXNoKHtcbiAgICAgICAgc2VjdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpbnB1dHM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiBgJHtmYWNldC50eXBlLnJlcGxhY2UoLyAvZywgJy0nKX0tJHtqfWAsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBmYWNldFsnaW5wdXQtcGxhY2Vob2xkZXInXSxcbiAgICAgICAgICAgICAgICBpY29uOiAnbjctaWNvbi1zZWFyY2gnLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhZmFjZXQuZW5hYmxlZCxcbiAgICAgICAgICAgICAgICBpbnB1dFBheWxvYWQ6IGAke1N0cmluZyhmYWNldC50eXBlLnJlcGxhY2UoLyAvZywgJy0nKSl9LXNlYXJjaGAsXG4gICAgICAgICAgICAgICAgaWNvblBheWxvYWQ6IGAke1N0cmluZyhmYWNldC50eXBlLnJlcGxhY2UoLyAvZywgJy0nKSl9LXNlYXJjaGAsXG4gICAgICAgICAgICAgICAgZW50ZXJQYXlsb2FkOiBgJHtTdHJpbmcoZmFjZXQudHlwZS5yZXBsYWNlKC8gL2csICctJykpfS1zZWFyY2hgLFxuICAgICAgICAgICAgICAgIGNsYXNzZXM6IGAke1N0cmluZyhmYWNldC50eXBlLnJlcGxhY2UoJyAnLCAnLScpKX0tc2VhcmNoYCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgICAgaWYgKHBhZ2VDb25maWc/Llsndmlldy1hbGwtbGlua3MnXT8uZW5hYmxlZCkge1xuICAgICAgICBjb25zdCB7IGxhYmVsIH0gPSBwYWdlQ29uZmlnWyd2aWV3LWFsbC1saW5rcyddO1xuICAgICAgICBsaW5rcy5wdXNoKHtcbiAgICAgICAgICBsYWJlbDogbGFiZWwgfHwgJ1Zpc3VhbGl6emEgdHV0dGknLFxuICAgICAgICAgIHBhdGg6IHBhdGhzLnNlYXJjaEJhc2VQYXRoLFxuICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgICAncXVlcnktbGlua3MnOiBmYWNldC50eXBlLnJlcGxhY2UoLyAvZywgJy0nKVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyB6aXBwaW5nIGFycmF5cyB0byByZW5kZXIgd2lkZ2V0cyB3aXRoIHNlcGFyYXRlIGRhdGEgKHNlZSBob21lLWxheW91dC5odG1sKVxuICAgIHJldHVybiBoZWFkZXJzLm1hcCgoaCwgaSkgPT4gKHsgaGVhZGVyOiBoLCBpbnB1dDogaW5wdXRzW2ldLCBsaW5rOiBsaW5rc1tpXSB8fCBudWxsIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyB0aXBweU1ha2VyID0gKGlkKSA9PiB7XG4gICAgLypcbiAgICAgIEJ1aWxkcyBvciB1cGRhdGVzIFRpcHB5IGZvciB0aGUgaW5wdXQgaW4gdXNlIChpZClcbiAgICAqL1xuICAgIGNvbnN0IG5ld0lkID0gaWQucmVwbGFjZSgvIC9nLCAnLScpO1xuICAgIC8vIGNyZWF0ZSBkYXRhIGZvciB0aGlzIGZhY2V0XG4gICAgaWYgKCF0aGlzLmF1dG9Db21wbGV0ZVtuZXdJZF0pIHtcbiAgICAgIHRoaXMuYXV0b0NvbXBsZXRlW25ld0lkXSA9IHtcbiAgICAgICAgdGlwcHk6IHVuZGVmaW5lZCwgLy8gdGlwcHkgZGF0YSAvIGNvbmZpZ1xuICAgICAgICBvcGVuOiB0cnVlLCAvLyBzaG93IG9yIGhpZGUgdGlwcHlcbiAgICAgIH07XG4gICAgICBjb25zdCBhYyA9IHRoaXMuYXV0b0NvbXBsZXRlW25ld0lkXTtcbiAgICAgIGNvbnN0IGdldENvbnRlbnQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnROb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcbiAgICAgICAgICAnYXctc2ltcGxlLWF1dG9jb21wbGV0ZV9fdGVtcGxhdGUnLFxuICAgICAgICApWzBdO1xuICAgICAgICBjb250ZW50Tm9kZS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2Rpc3BsYXk6IGJsb2NrJyk7XG4gICAgICAgIHJldHVybiBjb250ZW50Tm9kZTtcbiAgICAgIH07XG5cbiAgICAgIGlmICghYWMudGlwcHkpIHtcbiAgICAgICAgLy8gdGFyZ2V0IHRoZSBjb3JyZWN0IHRoaXMuYXV0b0NvbXBsZXRlW2lkXSBpbnB1dCBjbGFzc1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKG5ld0lkKVsxXTtcbiAgICAgICAgYWMudGlwcHkgPSB0aXBweSh0YXJnZXQsIHtcbiAgICAgICAgICBjb250ZW50OiBnZXRDb250ZW50KCksXG4gICAgICAgICAgdHJpZ2dlcjogJ21hbnVhbCcsXG4gICAgICAgICAgaW50ZXJhY3RpdmU6IHRydWUsXG4gICAgICAgICAgYXJyb3c6IGZhbHNlLFxuICAgICAgICAgIGZsaXA6IGZhbHNlLFxuICAgICAgICAgIGFwcGVuZFRvOiAncGFyZW50JyxcbiAgICAgICAgICB0aGVtZTogJ2xpZ2h0LWJvcmRlciBhdy1ob21lX19mYWNldC10aXBweScsXG4gICAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tLXN0YXJ0JyxcbiAgICAgICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgICB9KTsgLy8gYXR0YWNoIHRpcHB5IHRvIGlucHV0IHR5cGUgdGV4dFxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBhYyA9IHRoaXMuYXV0b0NvbXBsZXRlW25ld0lkXTtcbiAgICBpZiAoYWMudGlwcHkpIHtcbiAgICAgIGFjLnRpcHB5LnNob3coKTtcbiAgICB9XG4gIH07XG5cbiAgcHVibGljIHRpcHB5Q2xvc2UgPSAoaWQpID0+IHtcbiAgICBjb25zdCBuZXdJZCA9IGlkLnJlcGxhY2UoLyAvZywgJy0nKTtcbiAgICBpZiAodGhpcy5hdXRvQ29tcGxldGVbbmV3SWRdKSB7XG4gICAgICBjb25zdCBhYyA9IHRoaXMuYXV0b0NvbXBsZXRlW25ld0lkXTtcbiAgICAgIGlmIChhYy50aXBweSkge1xuICAgICAgICBhYy50aXBweS5oaWRlKCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuIl19